1use thiserror::Error;
2
3use crate::usage::UsageError;
4
5#[derive(Debug, Error)]
6pub enum AgentError {
7 #[error("model error: {0}")]
8 Model(#[from] crate::model::ModelError),
9 #[error("tool error: {0}")]
10 Tool(#[from] crate::tools::ToolError),
11 #[error("usage limit exceeded: {0}")]
12 Usage(#[from] UsageError),
13 #[error("unknown tool: {0}")]
14 UnknownTool(String),
15 #[error("output validation failed: {0}")]
16 OutputValidation(String),
17 #[error("invalid configuration: {0}")]
18 Config(String),
19}