#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum ToolError {
#[error("tool invocation failed: {message}")]
InvocationFailed {
message: String,
},
#[error("tool input validation failed: {message}")]
ValidationFailed {
message: String,
},
#[error("tool not found: {name}")]
NotFound {
name: String,
},
#[error("invalid tool name '{name}': {reason}")]
InvalidName {
name: String,
reason: String,
},
#[error("path traversal detected: {path}")]
PathTraversal {
path: String,
},
#[error("tool execution timed out")]
Timeout,
#[error("tool error: {message}")]
Other {
message: String,
},
}