use thiserror::Error;
#[derive(Error, Debug)]
pub enum LLMError {
#[error("API error: {0}")]
ApiError(String),
#[error("Connection error: {0}")]
ConnectionError(String),
#[error("Authentication failed: {0}")]
AuthenticationError(String),
#[error("Rate limit exceeded: {0}")]
RateLimitError(String),
#[error("Empty response from LLM")]
EmptyResponse,
#[error("Invalid response format: {0}")]
InvalidResponse(String),
#[error("Request timed out")]
Timeout,
#[error("Model not found: {0}")]
ModelNotFound(String),
#[error("Configuration error: {0}")]
ConfigError(String),
}