1#![allow(unused_doc_comments)]
2#![warn(missing_docs)]
3#![warn(clippy::unwrap_used)]
4
5pub mod circuit_breaker;
11mod compaction;
12mod complexity_router;
13mod context;
14pub mod env_api_keys;
15mod error;
16mod high_level;
17mod messages;
18pub mod oauth;
19pub mod provider_pool;
20pub mod provider_registry;
21mod providers;
22
23#[allow(missing_docs)]
24pub mod register_builtins {
25 pub use crate::providers::register_builtins::*;
26}
27pub mod router;
28pub mod secret;
29mod tools;
30mod transform;
31pub mod types;
32pub mod utils;
33
34pub mod prelude {
36 pub use crate::compaction::generate_branch_summary;
37 pub use crate::compaction::{
38 CompactedContext, CompactionManager, CompactionStrategy, Compactor, LlmCompactor,
39 };
40 pub use crate::context::Context;
41 pub use crate::error::{Error, Result};
42 pub use crate::messages::*;
43 pub use crate::providers::{Provider, ProviderEvent, StreamOptions};
44 pub use crate::tools::{validate_args, Tool};
45 pub use crate::types::*;
46}
47
48pub use crate::error::ProviderError;
52
53pub use context::Context;
55
56pub use error::{Error, Result};
58
59pub use messages::*;
61
62pub use providers::CacheRetention;
64
65pub use providers::{
67 custom_provider_names, get_provider, get_provider_arc, register_provider, unregister_provider,
68 Provider, ProviderEvent, ProviderOptions, ProviderRegistry, StreamOptions,
69};
70
71pub use providers::register_builtins::{
73 create_builtin_provider, create_builtin_provider_with_options, get_all_provider_names,
74 get_builtin_provider, get_provider_env_key, get_provider_env_keys, is_builtin_provider,
75};
76
77pub use providers::OpenAiProvider;
79
80pub use providers::AnthropicProvider;
82pub use providers::AzureProvider;
84
85pub use providers::model_fetch::{fetch_models_async, fetch_models_blocking};
87
88pub use providers::OpenAiResponsesProvider;
90
91pub use providers::BedrockProvider;
93pub use providers::GoogleProvider;
95pub use providers::MistralProvider;
97pub use providers::VertexProvider;
99
100pub use providers::normalize_messages;
103
104pub use tools::{progress_callback, validate_args, ProgressCallback, Tool, ToolValidationError};
106
107pub use compaction::generate_branch_summary;
108pub use types::*;
110
111pub use high_level::tokens::{context_usage, estimate, estimate_words};
115
116pub use high_level::{complete, estimate_tokens};
118
119pub use compaction::{
123 CompactedContext, CompactionManager, CompactionStrategy, Compactor, LlmCompactor,
124};
125
126pub use complexity_router::{ComplexityRouter, DefaultRouter};
130
131pub use transform::{
135 anthropic_to_google, anthropic_to_openai, google_to_openai, normalize_tool_call_id,
136 openai_to_anthropic, transform_messages, transform_messages_for_model, TransformOptions,
137};
138
139pub mod multi_provider;
143
144pub use multi_provider::MultiProvider;
146
147mod model_registry;
149
150pub use model_registry::{
154 dynamic_models, get_model, get_models, get_providers, lookup_model, register_model,
155 unregister_model, ModelRegistry,
156};
157
158pub mod model_db;
160
161pub use model_db::{
165 get_all_models, get_cheapest_models, get_model_entry, get_provider_models,
166 get_reasoning_models, get_vision_models, model_count, search_models, ModelEntry,
167};
168
169pub mod fallback_chain;
171
172pub use fallback_chain::{FallbackChain, FallbackChainError};
174
175pub mod partial_response;
177
178pub use partial_response::PartialResponse;
180
181pub use circuit_breaker::{CircuitBreakerConfig, CircuitOpenError, ProviderCircuitBreaker};
184
185pub use messages::AssistantMessage;
187
188pub use env_api_keys::{find_env_keys, get_all_env_keys, get_env_api_key};
192
193pub use provider_registry::{OAuthTokenInfo, ProviderAuth, ProviderAuthRegistry};