(opts?: { onPrompt?: (input: SessionPrompt.PromptInput) => void; text?: string })
| 97 | }) |
| 98 | |
| 99 | function stubOps(opts?: { onPrompt?: (input: SessionPrompt.PromptInput) => void; text?: string }): TaskPromptOps { |
| 100 | return { |
| 101 | cancel: () => Effect.void, |
| 102 | resolvePromptParts: (template) => Effect.succeed([{ type: "text" as const, text: template }]), |
| 103 | prompt: (input) => |
| 104 | Effect.sync(() => { |
| 105 | opts?.onPrompt?.(input) |
| 106 | return reply(input, opts?.text ?? "done") |
| 107 | }), |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | function reply(input: SessionPrompt.PromptInput, text: string): SessionV1.WithParts { |
| 112 | const id = MessageID.ascending() |
no test coverage detected