Number of registered tools
Execute a tool call by dispatching to the matching registered handler.
Returns a ToolCallRecord capturing the full lifecycle: name, arguments, result, success/error, and duration.
Errors are caught and wrapped — they never propagate up. The engine feeds the error back to the controller LLM.
Get tool definitions for inclusion in the controller LLM prompt. Returns name + description + schema — no handler functions.
Register tools for this run. Duplicate names are rejected immediately to prevent silent overwrites.
Whether any tools are registered