use thiserror::Error;
#[derive(Debug, Error)]
pub enum AonyxError {
#[error("configuration error: {0}")]
Config(String),
#[error("provider error: {0}")]
Provider(String),
#[error("memory error: {0}")]
Memory(String),
#[error("tool error: {0}")]
Tool(String),
#[error("skill error: {0}")]
Skill(String),
#[error("mcp error: {0}")]
Mcp(String),
#[error("adapter error: {0}")]
Adapter(String),
#[error("approval rejected: {0}")]
ApprovalRejected(String),
#[error(transparent)]
Io(#[from] std::io::Error),
#[error(transparent)]
Json(#[from] serde_json::Error),
}
pub type Result<T> = std::result::Result<T, AonyxError>;