use thiserror::Error;
#[derive(Debug, Error)]
#[non_exhaustive]
pub enum CoreError {
#[error("Agent error: {0}")]
AgentError(String),
#[error("Prompt error: {0}")]
PromptError(#[from] coda_pm::PromptError),
#[error("IO error: {0}")]
IoError(#[from] std::io::Error),
#[error("Config error: {0}")]
ConfigError(String),
#[error("State error: {0}")]
StateError(String),
#[error("Plan error: {0}")]
PlanError(String),
#[error("Git error: {0}")]
GitError(String),
#[error("YAML error: {0}")]
YamlError(#[from] serde_yaml::Error),
#[error(transparent)]
AnyhowError(#[from] anyhow::Error),
}