1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum LlmError {
5 #[error("provider {provider} is not configured")]
6 ProviderNotConfigured { provider: String },
7
8 #[error("missing API key: set {env} environment variable or configure api_key")]
9 MissingApiKey { env: String },
10
11 #[error("configuration error: {0}")]
12 Config(String),
13
14 #[error("HTTP request failed: {0}")]
15 Http(#[from] reqwest::Error),
16
17 #[error("API error ({status}): {message}")]
18 Api { status: u16, message: String },
19
20 #[error("failed to parse streaming response: {0}")]
21 StreamParse(String),
22
23 #[error("unsupported provider: {0}")]
24 UnsupportedProvider(String),
25}