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 secret;
28mod tools;
29mod transform;
30mod types;
31pub mod utils;
32
33pub mod prelude {
35 pub use crate::compaction::{
36 CompactedContext, CompactionManager, CompactionStrategy, Compactor, LlmCompactor,
37 };
38 pub use crate::context::Context;
39 pub use crate::error::{Error, Result};
40 pub use crate::messages::*;
41 pub use crate::providers::{Provider, ProviderEvent, StreamOptions};
42 pub use crate::tools::{validate_args, Tool};
43 pub use crate::types::*;
44}
45
46pub use crate::error::ProviderError;
50
51pub use context::Context;
53
54pub use error::{Error, Result};
56
57pub use messages::*;
59
60pub use providers::CacheRetention;
62
63pub use providers::{
65 custom_provider_names, get_provider, register_provider, unregister_provider, Provider,
66 ProviderEvent, ProviderRegistry, StreamOptions,
67};
68
69pub use providers::register_builtins::{
71 create_builtin_provider, get_all_provider_names, get_builtin_provider, get_provider_env_key,
72 get_provider_env_keys, is_builtin_provider,
73};
74
75pub use providers::OpenAiProvider;
77
78pub use providers::model_fetch::{fetch_models_async, fetch_models_blocking};
80
81pub use providers::OpenAiResponsesProvider;
83
84pub use tools::{progress_callback, validate_args, ProgressCallback, Tool, ToolValidationError};
86
87pub use types::*;
89
90pub use high_level::tokens::{context_usage, estimate, estimate_words};
94
95pub use high_level::{complete, estimate_tokens};
97
98pub use compaction::{
102 CompactedContext, CompactionManager, CompactionStrategy, Compactor, LlmCompactor,
103};
104
105pub use complexity_router::{ComplexityRouter, DefaultRouter};
109
110pub use transform::{
114 anthropic_to_google, anthropic_to_openai, google_to_openai, normalize_tool_call_id,
115 openai_to_anthropic, transform_messages, transform_messages_for_model, TransformOptions,
116};
117
118pub mod multi_provider;
122
123pub use multi_provider::MultiProvider;
125
126mod model_registry;
128
129pub use model_registry::{
133 get_model, get_models, get_providers, lookup_model, register_model, unregister_model,
134 ModelRegistry,
135};
136
137pub mod model_db;
139
140pub use model_db::{
144 get_all_models, get_cheapest_models, get_model_entry, get_provider_models,
145 get_reasoning_models, get_vision_models, model_count, search_models, ModelEntry,
146};
147
148pub mod fallback_chain;
150
151pub use fallback_chain::{FallbackChain, FallbackChainError};
153
154pub mod partial_response;
156
157pub use partial_response::PartialResponse;
159
160pub use circuit_breaker::{CircuitBreakerConfig, CircuitOpenError, ProviderCircuitBreaker};
163
164pub use messages::AssistantMessage;
166
167pub use env_api_keys::{find_env_keys, get_all_env_keys, get_env_api_key};
171
172pub use provider_registry::{OAuthTokenInfo, ProviderAuth, ProviderAuthRegistry};