use thiserror::Error;
#[derive(Error, Debug)]
pub enum AiToolError {
#[error("Validation error: {message}")]
ValidationError { message: String },
#[error("Tool not found: {name}")]
NotFound { name: String },
#[error("Serialization error: {0}")]
SerializationError(#[from] serde_json::Error),
#[error("Internal error: {message}")]
InternalError { message: String },
}
impl From<AiToolError> for tokitai_core::ToolError {
fn from(err: AiToolError) -> Self {
match err {
AiToolError::ValidationError { message } => {
tokitai_core::ToolError::validation_error(message)
}
AiToolError::NotFound { name } => tokitai_core::ToolError::not_found(name),
AiToolError::SerializationError(e) => {
tokitai_core::ToolError::internal_error(e.to_string())
}
AiToolError::InternalError { message } => {
tokitai_core::ToolError::internal_error(message)
}
}
}
}