use std::io;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum OxydeError {
#[error("Configuration error: {0}")]
ConfigurationError(String),
#[error("Memory error: {0}")]
MemoryError(String),
#[error("Inference error: {0}")]
InferenceError(String),
#[error("Intent error: {0}")]
IntentError(String),
#[error("Behavior error: {0}")]
BehaviorError(String),
#[error("Binding error: {0}")]
BindingError(String),
#[error("IO error: {0}")]
IoError(#[from] io::Error),
#[error("Serialization error: {0}")]
SerializationError(#[from] serde_json::Error),
#[error("Request error: {0}")]
RequestError(String),
#[error("CLI error: {0}")]
CliError(String),
}