wireSchemas() already advertised only run_code under mode: 'code', but the executor resolved every call through get(), which returns the full visible map plus the reserved transport. A model could name a native tool directly and bypass run_code entirely. Route the execution-path lookups through a new private resolveExecution() that applies the mode collapse at the operation boundary: model-direct calls under 'code' may only name run_code (UNKNOWN_TOOL otherwise), while SDK sub-dispatches (parent token set) keep every visible tool. get()/schemas() public semantics are unchanged. The denial happens at createExecution, before the extensible policy pipeline — pre-execute listeners, approval ask, and guards never observe a call that is deterministically denied. A collapsed call honors the pre-dispatch cancellation contract, routes aborted results through the visible tool's finalizeContent, and captures the finalizer before argument materialization. Regenerated docs, catalogs, graphs, scoped events, re-recorded translation pairs, and updated test assertions. Fixes #1815
subagent/ — subagent capability family
English | 中文
This family lets an agent delegate work to child agents. Multiple named providers may coexist in one context.
| Package | Role | ctx key |
|---|---|---|
subagent/ |
Defines provider registration, delegation, and continuation | ctx.subagents |
subagent-inprocess/ |
Provides the shared in-process run driver | — |
subagent-spawn/ |
Starts a fresh in-process child | registers on ctx.subagents |
subagent-fork/ |
Starts an in-process child from the parent's completed history | registers on ctx.subagents |
subagent-acp/ |
Starts an out-of-process child over ACP | registers on ctx.subagents |
subagent-codex/ |
Starts a real Codex app-server child | registers on ctx.subagents |
subagent-claude-code/ |
Starts a real Claude Code child through the official Claude Agent SDK | registers on ctx.subagents |
subagent-dsh-sdk/ |
Starts an out-of-process Harness child through the TypeScript SDK | registers on ctx.subagents |
tool-subagent/ |
Exposes delegation to the model | registers on ctx.tools |
tool-subagent-control/ |
Exposes child messaging and listing to the model | registers on ctx.tools |
tool-subagent-report/ |
Provides the child-to-parent report channel | registers in child scopes |
See the decisions for the capability family, continuable children, and control tools.
The subsystem reference — start requests, results, live runs, the provider contract, continuable background children — is docs/subsystems/subagent.md; design rationale in the subagent capability seam, continuable background subagents, and merged subagent control service Agent Notes.