/** * Payload carried by the native `tool-call-suspended` event when `submit_plan` pauses. * Hosts read this to render the plan for review with approve/reject controls. */ export interface SubmitPlanSuspendPayload { title: string; plan: string; } /** * The action a host resumes a suspended `submit_plan` call with. * * `approved` means the user accepted the plan and the agent should proceed. `rejected` * means the user wants revisions; the optional `feedback` is surfaced to the model so it * can revise and submit again. * * Hosts that layer additional behavior on approval (e.g. a Harness switching from a * planning mode to an execution mode) drive that from their own response handling; the * tool itself only reports the outcome back to the model. */ export interface SubmitPlanResumeData { action: 'approved' | 'rejected'; feedback?: string; } /** * Built-in, agent-agnostic tool: submit an implementation plan for user review. * * Pausing uses the agent-native tool suspension primitive: the tool calls * `suspend({ title, plan })`, which makes the agent emit a `tool-call-suspended` event * and persist run state. The host renders the plan, collects an approve/reject decision, * and continues the run via `agent.resumeStream({ action, feedback })`; the tool re-runs * with `resumeData` set to that decision and reports it back to the model. * * This tool is deliberately host-agnostic: it does not know about Harness modes or any * UI. A plain Agent (e.g. embedded in Studio or a customer app) can use it directly, and * a Harness can layer mode-switch behavior on top of the approval in its own response * handling without the tool needing to change. * * When executed without an agent `suspend` (e.g. direct invocation outside an agent run), * the tool returns the plan as readable text so it is still surfaced. */ export declare const submitPlanTool: import("..").Tool<{ plan: string; title?: string | undefined; }, unknown, { title: string; plan: string; }, { action: "rejected" | "approved"; feedback?: string | undefined; }, import("..").ToolExecutionContext<{ title: string; plan: string; }, { action: "rejected" | "approved"; feedback?: string | undefined; }, unknown>, "submit_plan", unknown>; //# sourceMappingURL=submit-plan.d.ts.map