//! LLM provider implementations.
//!
//! The only HTTP client implementation is [`GenericProvider`], which delegates
//! protocol encoding/decoding to a [`crate::protocol::ProtocolAdapter`].
//! Historical `OpenAiCompatibleProvider` (a second full HTTP stack) was removed;
//! OpenAI-compatible endpoints use `GenericProvider` + `OpenAiChatAdapter` /
//! `OpenAiResponsesAdapter` via [`crate::ProviderBuilder`].
pub use GenericProvider;
/// Parse Retry-After header value from an HTTP response.
/// Supports integer seconds format ("120") and float ("120.5").
/// Falls back to `default_ms` if header is missing or unparseable.
pub