use thiserror::Error;
#[derive(Error, Debug)]
pub enum ToolError {
#[error("Execution failed: {0}")]
ExecutionError(String),
#[error("Tool not found: {0}")]
ToolNotFound(String),
#[error("Invalid input: {0}")]
InvalidInputError(String),
#[error("Input parsing failed: {0}")]
ParsingError(String),
#[error("Missing required input: {0}")]
MissingInput(String),
#[error("Timeout: {0}")]
TimeoutError(String),
#[error("Rate limit exceeded")]
RateLimitError,
#[error("Resource not found: {0}")]
ResourceNotFound(String),
#[error("Permission denied: {0}")]
PermissionError(String),
#[error("Security error: {0}")]
SecurityError(String),
#[error("Configuration error: {0}")]
ConfigurationError(String),
#[error("Missing configuration: {0}")]
MissingConfiguration(String),
#[error("External service error: {0}")]
ExternalServiceError(String),
#[error("Network error: {0}")]
NetworkError(String),
#[error("Internal error: {0}")]
InternalError(String),
#[error("Unknown error: {0}")]
Unknown(String),
}
impl From<String> for ToolError {
fn from(s: String) -> Self {
ToolError::Unknown(s)
}
}