pub enum ToolError {
Blocked {
command: String,
},
SandboxViolation {
path: String,
},
ConfirmationRequired {
command: String,
},
Timeout {
timeout_secs: u64,
},
Cancelled,
InvalidParams {
message: String,
},
Execution(Error),
Http {
status: u16,
message: String,
},
Shell {
exit_code: i32,
category: ToolErrorCategory,
message: String,
},
SnapshotFailed {
reason: String,
},
}Expand description
Errors that can occur during tool execution.
Variants§
Blocked
SandboxViolation
ConfirmationRequired
Timeout
Cancelled
InvalidParams
Execution(Error)
Http
HTTP or API error with status code for fine-grained classification.
Used by WebScrapeExecutor and other HTTP-based tools to preserve the status
code for taxonomy classification. Scope: HTTP tools only (MCP uses a separate path).
Shell
Shell execution error with explicit exit code and pre-classified category.
Used by ShellExecutor when the exit code or stderr content maps to a known
taxonomy category (e.g., exit 126 → PolicyBlocked, exit 127 → PermanentFailure).
Preserves the exit code for audit logging and the category for skill evolution.
SnapshotFailed
Implementations§
Source§impl ToolError
impl ToolError
Sourcepub fn category(&self) -> ToolErrorCategory
pub fn category(&self) -> ToolErrorCategory
Fine-grained error classification using the 12-category taxonomy.
Prefer category() over kind() for new code. kind() is preserved for
backward compatibility and delegates to category().error_kind().
Sourcepub fn kind(&self) -> ErrorKind
pub fn kind(&self) -> ErrorKind
Coarse classification for backward compatibility. Delegates to category().error_kind().
For Execution(io::Error), the classification inspects io::Error::kind():
- Transient:
TimedOut,WouldBlock,Interrupted,ConnectionReset,ConnectionAborted,BrokenPipe— these may succeed on retry. - Permanent:
NotFound,PermissionDenied,AlreadyExists, and all other I/O error kinds — retrying would waste time with no benefit.
Trait Implementations§
Source§impl Error for ToolError
impl Error for ToolError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for ToolError
impl !RefUnwindSafe for ToolError
impl Send for ToolError
impl Sync for ToolError
impl Unpin for ToolError
impl UnsafeUnpin for ToolError
impl !UnwindSafe for ToolError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.