/// LLM-specific errors. Kept flat — one enum covers transport, provider, and parsing failures. #[derive(Debug, thiserror::Error)] pub enum LlmError { #[error("HTTP error: {0}")] Http(#[from] reqwest::Error), #[error("no providers available")] NoProviders, #[error("all providers failed: {0}")] AllProvidersFailed(String), #[error("invalid JSON response: {0}")] InvalidJson(String), #[error("provider error: {0}")] ProviderError(String), }