use thiserror::Error;
#[derive(Debug, Error)]
pub enum AiError {
#[error("HTTP request failed: {0}")]
HttpError(#[from] reqwest::Error),
#[error("API error: {status} - {message}")]
ApiError {
status: u16,
message: String,
},
#[error("Rate limit exceeded. Retry after {retry_after} seconds")]
RateLimited {
retry_after: u64,
},
#[error("Invalid API key")]
InvalidApiKey,
#[error("Model '{0}' not found")]
ModelNotFound(String),
#[error("Failed to parse response: {0}")]
ParseError(String),
#[error("Content filter triggered: {0}")]
ContentFiltered(String),
}
impl From<AiError> for aether_core::AetherError {
fn from(e: AiError) -> Self {
aether_core::AetherError::ProviderError(e.to_string())
}
}