Synchronous tool executor. Implementations provide tool definitions and execute tool calls against concrete backends (repository, filesystem, etc.).
| 143 | /// Synchronous tool executor. Implementations provide tool definitions and |
| 144 | /// execute tool calls against concrete backends (repository, filesystem, etc.). |
| 145 | pub trait ToolExecutor: Send + Sync { |
| 146 | /// Return the set of tools this executor provides. |
| 147 | fn tool_definitions(&self) -> Vec<ToolDefinition>; |
| 148 | |
| 149 | /// Execute a tool call and return the result as a string. |
| 150 | /// Errors are represented as `Err(message)` and surfaced to the LLM |
| 151 | /// as `ToolResult { is_error: true }`. |
| 152 | fn execute(&self, call: &ToolCall) -> Result<String, String>; |
| 153 | } |
| 154 | |
| 155 | // ── LlmProvider: tool-aware chat ──────────────────────────────── |
| 156 |
nothing calls this directly
no outgoing calls
no test coverage detected