use thiserror::Error;
#[derive(Debug, Error)]
pub enum ChainError {
#[error("LLM error: {0}")]
LlmError(String),
#[error("missing prompt variable: {0}")]
MissingVariable(String),
#[error("memory error: {0}")]
MemoryError(String),
#[error("{0}")]
Other(String),
}
#[derive(Debug, Error)]
pub enum LlmError {
#[error("request failed: {0}")]
RequestFailed(String),
#[error("provider error: {0}")]
ProviderError(String),
#[error("invalid response: {0}")]
InvalidResponse(String),
#[error("{0}")]
Other(String),
}
impl From<LlmError> for ChainError {
fn from(err: LlmError) -> Self {
ChainError::LlmError(err.to_string())
}
}