Expand description
Extensible Tool System
Provides a trait-based abstraction for tools that can be:
- Built-in (Rust implementations)
- Binary (external executables)
- HTTP (API calls)
- Script (interpreted scripts)
§Architecture
ToolRegistry
├── builtin tools (bash, read, write, edit, grep, glob, ls)
├── native tools (search_skills, install_skill, load_skill)
└── dynamic tools (loaded from skills)
├── BinaryTool
├── HttpTool
└── ScriptToolRe-exports§
pub use skill::builtin_skills;pub use skill::load_skills;pub use skill::Skill;pub use skill::SkillKind;pub use skill::ToolPermission;pub use task::parallel_task_params_schema;pub use task::task_params_schema;pub use task::ParallelTaskParams;pub use task::ParallelTaskTool;pub use task::TaskExecutor;pub use task::TaskParams;pub use task::TaskResult;
Modules§
Structs§
- Tool
Context - Tool execution context
- Tool
Executor - Tool executor with workspace sandboxing
- Tool
Output - Tool execution output
- Tool
Registry - Tool registry for managing all available tools
- Tool
Result - Tool execution result (legacy format for backward compatibility)
Enums§
- Tool
Backend - Tool backend type for dynamic tools
- Tool
Stream Event - Events emitted by tools during execution
Constants§
- DEFAULT_
CATALOG_ THRESHOLD - Default threshold for switching to catalog mode. When the number of instruction-kind skills exceeds this, a lightweight catalog is injected instead of full content.
- MAX_
LINE_ LENGTH - Maximum line length before truncation
- MAX_
OUTPUT_ SIZE - Maximum output size in bytes before truncation
- MAX_
READ_ LINES - Maximum lines to read from a file
Traits§
- Tool
- Tool trait - the core abstraction for all tools
Functions§
- build_
skills_ injection - Build the skills injection for the system prompt.
- create_
tool - Create a dynamic tool from a backend specification.
Type Aliases§
- Tool
Event Sender - Sender for streaming tool output deltas during execution.