Structured error types for programmatic error handling in deputy.
All deputy errors inherit from deputy_error and include contextual
information for debugging. Errors use cli formatting for readable output.
Error Hierarchy
deputy_error - Base class for all deputy errors
deputy_permission - Permission-related failures
deputy_permission_denied- Tool/action not allowed by permissions
deputy_tool - Tool execution failures
deputy_tool_execution- Tool failed during execution
deputy_budget - Resource limit violations
deputy_budget_exceeded- Cost limit exceededdeputy_turn_limit- Max turns exceeded
deputy_provider - LLM provider failures
deputy_session - Session management failures
deputy_session_load- Failed to load sessiondeputy_session_save- Failed to save session
deputy_hook - Hook execution failures
Usage
Errors can be caught using tryCatch() with class-based matching:
tryCatch(
agent$run_sync("task"),
deputy_budget_exceeded = function(e) {
message("Budget exceeded: ", conditionMessage(e))
message("Current cost: $", e$current_cost)
},
deputy_error = function(e) {
message("Deputy error: ", conditionMessage(e))
}
)