use thiserror::Error;
pub type Result<T> = std::result::Result<T, CoreError>;
#[derive(Debug, Error)]
pub enum CoreError {
#[error("unknown tool: {0}")]
UnknownTool(String),
#[error("tool input validation failed: {0}")]
ToolInputValidation(String),
#[error("tool output invalid: {0}")]
ToolOutput(String),
#[error("model provider error: {0}")]
ModelProvider(String),
#[error("model response parse error: {0}")]
ModelResponse(String),
#[error("transport error: {0}")]
Transport(String),
#[error("operation cancelled: {0}")]
Cancelled(String),
}