#![forbid(unsafe_code)]
#[cfg(any(
feature = "anthropic",
feature = "openai",
feature = "openai-codex",
feature = "gemini",
feature = "vertex",
feature = "cloudflare",
))]
pub mod attachments;
pub mod fallback;
#[cfg(any(
feature = "anthropic",
feature = "openai",
feature = "openai-codex",
feature = "gemini",
feature = "vertex",
feature = "cloudflare",
))]
pub(crate) mod http;
pub mod impls;
pub mod model_capabilities;
#[cfg(feature = "model-discovery")]
pub mod model_catalog;
pub mod provider;
#[cfg(feature = "record-replay")]
pub mod record_replay;
pub mod refresh;
pub mod router;
pub mod search;
pub mod streaming;
pub mod structured;
pub use fallback::FallbackProvider;
pub use provider::{LlmProvider, ModelInfo, StructuredOutputSupport, collect_stream};
#[cfg(feature = "record-replay")]
pub use record_replay::{RecordReplayMode, RecordReplayProvider};
pub use refresh::{RefreshingProvider, is_unauthorized_error};
pub use router::{ModelRouter, ModelTier, TaskComplexity};
pub use streaming::{StreamAccumulator, StreamBox, StreamDelta};
pub use structured::{
StructuredConfig, StructuredOutput, StructuredOutputError, StructuredStream,
StructuredStreamUpdate, run_structured, run_structured_stream,
};
pub use agent_sdk_foundation::llm::*;
#[cfg(feature = "cloudflare")]
pub use impls::CloudflareAIGatewayProvider;
#[cfg(feature = "gemini")]
pub use impls::GeminiProvider;
#[cfg(feature = "openai-codex")]
pub use impls::OpenAICodexResponsesProvider;
#[cfg(feature = "vertex")]
pub use impls::VertexProvider;
#[cfg(feature = "anthropic")]
pub use impls::{AnthropicProvider, is_oauth_token};
#[cfg(feature = "openai")]
pub use impls::{OpenAIProvider, OpenAIResponsesProvider};
pub use model_capabilities::{
ModelCapabilities, PricePoint, Pricing, SourceStatus, get_model_capabilities,
supported_model_capabilities,
};
#[cfg(feature = "model-discovery")]
pub use model_catalog::{
CatalogEntry, ModelCatalogSource, ModelRegistry, ModelsDevSource, OpenRouterSource,
ResolvedModel, ResolvedSource,
};
pub use search::{BraveSearchProvider, SearchProvider, SearchResponse, SearchResult};