Expand description
Tool system — trait, registry, and built-in tool implementations.
All tools implement the Tool trait and are registered in ToolRegistry.
Subagents get ToolRegistry::without_subagent() to prevent recursion.
Modules§
- activation
SessionToolSet— per-session core + exact activated tools (Task 15, spec §7.1, §4.2).- catalog
ToolCatalog— all locally known capabilities (spec §7.1, Task 14).- discovery
- Model-facing discovery and exact-activation builtins (Task 17, spec
§4.2, §7.2, §7.3, §7.7):
search_toolsandactivate_tools. - forum
- Explicit, project-wide peer notes through the captured host memory binding.
- ledger
- Task 25 — typed tool-call ledger (spec §8.3).
- memory
- Model-facing repository memory and explicitly opted-in user notes.
- output
- Task 26 — bounded tool-output delta channels with an explicit backpressure/coalescing policy (spec §8.4).
- prompt_
catalog - System-prompt catalog of activatable tools (progressive disclosure).
- respond
- RespondTool — reply to an event through its original source channel.
- send_
channel - SendChannelTool — proactively send a message to a specific channel.
- shell
- Interactive PTY-based shell sessions for agents.
- watcher_
exit
Structs§
- Activate
Tools Tool - Model-initiated deterministic exact activation. Every requested id must
be an exact known cataloged
ToolId; the whole batch validates first (host grant issuance: exact id, current generation/digest, source trust) and applies atomically in stable id order with exactly one session schema-generation advance. Requires host-supplied confirmation authority; a model-authored JSON flag can never substitute for it. - Bash
Intermediary Snapshot - Bash
Tool - Deferred
Tool Split - Result of
ToolRegistry::deferred_tool_split. - Edit
Tool - Extension
Tool - Find
Tool - Grep
Tool - LsTool
- Memory
Context Tool - Control the continuous-memory context of the current session (spec §7.2).
- Power
Shell Tool - Read
Tool - Respond
Tool - Search
Tools Tool - Bounded, deterministic, descriptor-only capability search over the passive catalog snapshot. Pure and local: no factory invocation, no process start, no network, no schema exposure, no grant.
- Secret
Prompt Handle - UI-only secret prompt plumbing for interactive tools.
- Secret
Prompt Queue - Secret
Prompt Request - Send
Channel Tool - Session
Schema Projection - Typed projection report for
ToolRegistry::session_tools_schema: the projected schema entries PLUS every pinned session member that was dropped fail-closed, with the typed reason. Metadata-only reasons: bounded identities, never schema bytes. Callers can surfacedroppedfor audit/telemetry instead of losing the signal to a log line. - Shell
EndTool - Shell
Send Tool - Shell
Start Tool - Subagent
Collect Tool - Subagent
Display Row - Snapshot row produced by SubagentRegistry::display_rows().
Used by the TUI reconcile path as the registry’s liveness authority.
Serde: travels in
SessionEventWire::SubagentRows(phase 3). - Subagent
Handle - Subagent
Model Authorize Tool - Subagent
Models Tool - Subagent
Registry - Subagent
Result - Subagent
Resume Tool - Subagent
Start Tool - Subagent
State - All mutable state shared between the subagent thread and its handle. Collapsed behind a single RwLock so a status poll takes exactly one lock.
- Subagent
Status Tool - Subagent
Steer Tool - Subagent
Tool - Tool
Capabilities - Runtime capability handles — shared services a tool may require.
- Tool
Channels - Streaming channels — carry partial tool output and stream events.
- Tool
Context - Context passed to tool execution — composition of channels, capabilities, and limits.
- Tool
Limits - Configuration limits and timeouts.
- Tool
Registry - Registry of available tools. Maintains a name→tool map and a cached JSON schema
array that gets sent to the API. Thread-safe via
Arc<RwLock<ToolRegistry>>. - Watcher
Exit Tool - Write
Tool
Enums§
- Concurrency
Key - Dropped
Session Member - Why a pinned session member was dropped from a schema projection.
- Prompt
Kind - Subagent
Status - Tool
Origin - Explicit runtime-origin identity of a registered tool implementation.
- Tool
Output - Structured tool output.
Textis the legacy contract (whatexecutereturns).Blockscarries Anthropic-shaped content blocks destined fortool_result.content, plus a plain-textsummaryused everywhere aStringis expected today: UI preview,after_tool_callhooks, trace ledger byte counts, headless logs, and providers that cannot carry the blocks. INVARIANT:blocks[0]MUST be a{"type":"text"}block whosetext==summary(compaction readsblocks[0].text; non-Anthropic translators join only text sub-blocks).
Traits§
- Tool
- The core trait for all tools. Implement this to add a new tool.
Functions§
- bash_
intermediary_ snapshot - legacy_
fresh_ runtime - Kill-switch:
SYNAPS_SUBAGENT_FRESH_RUNTIME=1restores the pre-engine-host spawn path (freshRuntime::new(), fresh HTTP client, registry rebuilt, global broker re-installed with a fresh token cache on every spawn). - resolve_
agent_ prompt - Resolve an agent name to a system prompt.
- spawn_
runtime - Build the runtime a subagent runs on. Preferred:
EngineHost::worker_runtime()— shares the host credential source and token cache (so NOset_global_brokerre-install and NO token-cache eviction per spawn) and takes a clone of the cached worker registry template. Legacy path (no host installed, or kill-switch set): today’sRuntime::new()+ rebuilt tools +apply_auth_config, verbatim.