pub use crate::agent::AgentError;
pub use crate::llms::LlmError;
pub use crate::memory::MemoryError;
pub use crate::tool::ToolError;
#[cfg(feature = "wallet")]
pub use crate::wallet::WalletError;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum Error {
#[error("LLM error: {0}")]
Llm(#[from] LlmError),
#[error("Tool error: {0}")]
Tool(#[from] ToolError),
#[error("Memory error: {0}")]
Memory(#[from] MemoryError),
#[error("Agent error: {0}")]
Agent(#[from] AgentError),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("HTTP error: {0}")]
Http(#[from] reqwest::Error),
#[cfg(feature = "wallet")]
#[error("Wallet error: {0}")]
Wallet(#[from] WalletError),
}