#![allow(unused_doc_comments)]
#![warn(missing_docs)]
#![warn(clippy::unwrap_used)]
#![allow(clippy::unwrap_used_in_tests)]
mod compaction;
mod context;
pub mod env_api_keys;
mod error;
mod high_level;
mod messages;
pub mod oauth;
pub mod provider_registry;
mod providers;
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::{get_provider, register_provider, unregister_provider, custom_provider_names, Provider, ProviderEvent, ProviderRegistry, StreamOptions};
pub use providers::register_builtins::{
create_builtin_provider, get_builtin_provider,
get_provider_env_key, get_provider_env_keys, get_all_provider_names, 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 transform::{
anthropic_to_google, anthropic_to_openai, google_to_openai, normalize_tool_call_id,
openai_to_anthropic, transform_messages, transform_messages_for_model, TransformOptions,
};
mod model_registry;
pub use model_registry::{get_model, get_models, get_providers, register_model, unregister_model, lookup_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 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};