#![warn(missing_docs)]
use std::time::Duration;
pub mod anthropic;
pub mod costs;
pub mod fallback;
pub mod openai;
pub mod retry;
pub mod sse;
pub use anthropic::AnthropicProvider;
pub use costs::ModelCost;
pub use fallback::FallbackProvider;
pub use openai::OpenAiProvider;
pub use retry::{with_retry, RetryConfig};
pub use sse::SseStream;
pub const DEFAULT_TIMEOUT: Duration = Duration::from_secs(60);
pub fn create_http_client(timeout: Duration) -> cognate_core::Result<reqwest::Client> {
reqwest::Client::builder()
.timeout(timeout)
.build()
.map_err(|e| cognate_core::Error::Configuration(e.to_string()))
}