import type { ToolDefinition } from '../../types/tools.js'; import type { ExecutionIntent } from '../../runtime/execution-intents.js'; /** * JSON Schema for the agent tool's input. * Manages in-process subagents: spawn, status, cancel, list, templates. */ export declare const AGENT_TOOL_SCHEMA: ToolDefinition; export interface AgentProviderRoutingPolicy { providerSelection?: 'inherit-current' | 'concrete' | 'synthetic' | undefined; providerFailurePolicy?: 'ordered-fallbacks' | 'fail' | undefined; fallbackModels?: readonly string[] | undefined; } /** * Internal marker recording that a requested multi-agent fan-out was collapsed * into a single WRFC owner chain by the topology guard. Set by the collapse * guards (wrfc-batch-policy.ts / the TUI wrfc-agent-guard), threaded onto the * owner AgentRecord and then the WrfcChain. It lets the controller mechanically * recognise, and never fail the review on, the parallelism/spawn-count * constraints the collapse itself made unsatisfiable, and lets the host state * the collapse plainly to the user. Never set by the model-facing tool call. */ export interface FanoutCollapseInfo { /** How many separate agents the requester asked to fan out into. */ readonly requestedAgentCount: number; /** Short human phrase describing the requested shape, for the user-facing announcement. */ readonly requestedShape: string; } /** Input shape for the agent tool. */ export interface AgentInput { mode: 'spawn' | 'batch-spawn' | 'status' | 'cancel' | 'list' | 'templates' | 'get' | 'budget' | 'plan' | 'wait' | 'message' | 'wrfc-chains' | 'wrfc-history' | 'cohort-status' | 'cohort-report'; task?: string | undefined; authoritativeTask?: string | undefined; template?: string | undefined; model?: string | undefined; provider?: string | undefined; fallbackModels?: string[] | undefined; routing?: AgentProviderRoutingPolicy | undefined; executionIntent?: ExecutionIntent | undefined; reasoningEffort?: string | undefined; tools?: string[] | undefined; restrictTools?: boolean | undefined; context?: string | undefined; /** * Internal: the write authority to bind this run's `profile` capture tool to. * Set by the composition root from the turn's channel, never by model output, * see personal-capture/authority.ts. Deliberately absent from the tool's own * JSON schema so a model cannot ask for it. */ captureAuthority?: import('../../personal-capture/index.js').CaptureAuthorityDecision | undefined; /** Internal prompt addendum used by WRFC phase agents. */ systemPromptAddendum?: string | undefined; /** Internal compound WRFC deliverables owned by one top-level WRFC chain. */ wrfcSubtasks?: AgentInput['tasks'] | undefined; /** Internal: set by the topology guard when a requested fan-out was collapsed into this owner chain. */ fanoutCollapse?: FanoutCollapseInfo | undefined; successCriteria?: string[] | undefined; requiredEvidence?: string[] | undefined; writeScope?: string[] | undefined; executionProtocol?: 'direct' | 'gather-plan-apply' | undefined; reviewMode?: 'none' | 'wrfc' | undefined; communicationLane?: 'parent-only' | 'parent-and-children' | 'cohort' | 'direct' | undefined; parentAgentId?: string | undefined; orchestrationGraphId?: string | undefined; orchestrationNodeId?: string | undefined; parentNodeId?: string | undefined; dangerously_disable_wrfc?: boolean | undefined; /** * What the caller wants the agent's final message to LOOK like. * * - 'report' (default) The structured completion report the WRFC * controller parses, plus its prose Summary/Changes/ * Decisions/Issues/Uncertainties sections. * - 'conversational' A reply to a person. No completion report, no section * headings, no template, just the answer. * * Set by the conversation-first gate, which already knows an inbound channel * message is conversation rather than work. Deliberately NOT in the agent * tool's JSON schema: it is a decision the platform makes about a spawn, not * a knob a model may turn to opt out of reporting on real work. */ replyStyle?: 'report' | 'conversational' | undefined; /** * Overrides this spawn's tool working directory (absolute path), e.g. an * orchestration-engine item's dedicated git worktree in `worktree` * isolation mode (see platform/orchestration/worktree-isolation.ts). * Omitted ⇒ the orchestrator's default working directory, exactly as * before this field existed. Internal, not part of any user-facing agent * template surface. */ workingDirectory?: string | undefined; cohort?: string | undefined; tasks?: Array<{ task: string; template?: string | undefined; model?: string | undefined; provider?: string | undefined; fallbackModels?: string[] | undefined; routing?: AgentProviderRoutingPolicy | undefined; executionIntent?: ExecutionIntent | undefined; reasoningEffort?: string | undefined; tools?: string[] | undefined; restrictTools?: boolean | undefined; context?: string | undefined; successCriteria?: string[] | undefined; requiredEvidence?: string[] | undefined; writeScope?: string[] | undefined; executionProtocol?: 'direct' | 'gather-plan-apply' | undefined; reviewMode?: 'none' | 'wrfc' | undefined; communicationLane?: 'parent-only' | 'parent-and-children' | 'cohort' | 'direct' | undefined; parentAgentId?: string | undefined; orchestrationGraphId?: string | undefined; orchestrationNodeId?: string | undefined; parentNodeId?: string | undefined; dangerously_disable_wrfc?: boolean | undefined; }>; agentId?: string | undefined; detail?: 'summary' | 'contract' | 'messages' | 'full' | undefined; timeoutMs?: number | undefined; message?: string | undefined; kind?: 'directive' | 'status' | 'question' | 'finding' | 'review' | 'handoff' | 'escalation' | 'completion' | undefined; wrfcId?: string | undefined; } //# sourceMappingURL=schema.d.ts.map