1mod client;
2mod error;
3mod providers;
4mod sse;
5mod types;
6
7fn default_http_client() -> reqwest::Client {
8 reqwest::Client::builder()
9 .connect_timeout(std::time::Duration::from_secs(30))
10 .timeout(std::time::Duration::from_secs(300))
11 .build()
12 .unwrap_or_default()
13}
14
15pub use client::{
16 oauth_token_is_expired, read_base_url, read_xai_base_url, resolve_saved_oauth_token,
17 resolve_startup_auth_source, MessageStream, OAuthTokenSet, ProviderClient,
18};
19pub use error::ApiError;
20pub use providers::codineer_provider::{AuthSource, CodineerApiClient};
21pub use providers::openai_compat::{OpenAiCompatClient, OpenAiCompatConfig};
22pub use providers::{
23 auto_detect_default_model, builtin_preset, detect_provider_kind, list_known_models,
24 max_tokens_for_model, parse_custom_provider_prefix, provider_kind_by_name, resolve_model_alias,
25 BuiltinProviderPreset, ProviderKind, RetryPolicy, BUILTIN_PROVIDER_PRESETS,
26};
27pub use sse::{parse_frame, SseParser};
28pub use types::{
29 ContentBlockDelta, ContentBlockDeltaEvent, ContentBlockStartEvent, ContentBlockStopEvent,
30 ImageSource, InputContentBlock, InputMessage, MessageDelta, MessageDeltaEvent, MessageRequest,
31 MessageResponse, MessageStartEvent, MessageStopEvent, OutputContentBlock, StreamEvent,
32 ToolChoice, ToolDefinition, ToolResultContentBlock, Usage,
33};