#![allow(unused_doc_comments)]
#![warn(missing_docs)]
#![warn(clippy::unwrap_used)]
pub mod circuit_breaker;
mod compaction;
mod complexity_router;
mod context;
pub mod env_api_keys;
mod error;
mod high_level;
mod messages;
pub mod oauth;
pub mod provider_pool;
pub mod provider_registry;
mod providers;
#[allow(missing_docs)]
pub mod register_builtins {
pub use crate::providers::register_builtins::*;
}
pub mod secret;
mod tools;
mod transform;
mod types;
pub mod utils;
pub mod prelude {
pub use crate::compaction::{
CompactedContext, CompactionManager, CompactionStrategy, Compactor, LlmCompactor,
};
pub use crate::context::Context;
pub use crate::error::{Error, Result};
pub use crate::messages::*;
pub use crate::providers::{Provider, ProviderEvent, StreamOptions};
pub use crate::tools::{validate_args, Tool};
pub use crate::types::*;
}
pub use crate::error::ProviderError;
pub use context::Context;
pub use error::{Error, Result};
pub use messages::*;
pub use providers::CacheRetention;
pub use providers::{
custom_provider_names, get_provider, register_provider, unregister_provider, Provider,
ProviderEvent, ProviderRegistry, StreamOptions,
};
pub use providers::register_builtins::{
create_builtin_provider, get_all_provider_names, get_builtin_provider, get_provider_env_key,
get_provider_env_keys, is_builtin_provider,
};
pub use providers::OpenAiProvider;
pub use providers::model_fetch::{fetch_models_async, fetch_models_blocking};
pub use providers::OpenAiResponsesProvider;
pub use tools::{progress_callback, validate_args, ProgressCallback, Tool, ToolValidationError};
pub use types::*;
pub use high_level::tokens::{context_usage, estimate, estimate_words};
pub use high_level::{complete, estimate_tokens};
pub use compaction::{
CompactedContext, CompactionManager, CompactionStrategy, Compactor, LlmCompactor,
};
pub use complexity_router::{ComplexityRouter, DefaultRouter};
pub use transform::{
anthropic_to_google, anthropic_to_openai, google_to_openai, normalize_tool_call_id,
openai_to_anthropic, transform_messages, transform_messages_for_model, TransformOptions,
};
pub mod multi_provider;
pub use multi_provider::MultiProvider;
mod model_registry;
pub use model_registry::{
get_model, get_models, get_providers, lookup_model, register_model, unregister_model,
ModelRegistry,
};
pub mod model_db;
pub use model_db::{
get_all_models, get_cheapest_models, get_model_entry, get_provider_models,
get_reasoning_models, get_vision_models, model_count, search_models, ModelEntry,
};
pub mod fallback_chain;
pub use fallback_chain::{FallbackChain, FallbackChainError};
pub mod partial_response;
pub use partial_response::PartialResponse;
pub use circuit_breaker::{CircuitBreakerConfig, CircuitOpenError, ProviderCircuitBreaker};
pub use messages::AssistantMessage;
pub use env_api_keys::{find_env_keys, get_all_env_keys, get_env_api_key};
pub use provider_registry::{OAuthTokenInfo, ProviderAuth, ProviderAuthRegistry};