1#[derive(thiserror::Error, Debug)]
2pub enum AgentError {
3 #[error("Tool error: {0}")]
4 ToolError(String),
5 #[error("State error: {0}")]
6 StateError(String),
7 #[error("Sandbox error: {0}")]
8 SandboxError(String),
9 #[error("IO error: {0}")]
10 IoError(String),
11 #[error("Bincode error: {0}")]
12 BincodeError(String),
13}
14
15impl Clone for AgentError {
16 fn clone(&self) -> Self {
17 match self {
18 AgentError::ToolError(s) => AgentError::ToolError(s.clone()),
19 AgentError::StateError(s) => AgentError::StateError(s.clone()),
20 AgentError::SandboxError(s) => AgentError::SandboxError(s.clone()),
21 AgentError::IoError(s) => AgentError::IoError(s.clone()),
22 AgentError::BincodeError(s) => AgentError::BincodeError(s.clone()),
23 }
24 }
25}
26
27impl From<std::io::Error> for AgentError {
28 fn from(err: std::io::Error) -> Self {
29 AgentError::IoError(err.to_string())
30 }
31}