#![allow(clippy::missing_errors_doc)]
#![allow(clippy::missing_panics_doc)]
#![allow(clippy::struct_excessive_bools)]
#![allow(clippy::doc_link_with_quotes)]
#![allow(clippy::cast_possible_wrap)]
#![allow(clippy::unused_self)]
#![allow(clippy::needless_pass_by_value)]
pub mod secret;
pub mod contract;
pub mod llm;
mod capability_registry;
mod model_selection;
#[cfg(feature = "brave")]
pub mod brave;
#[cfg(feature = "_http")]
pub mod fetch;
pub mod search;
#[cfg(feature = "tavily")]
pub mod tavily;
pub mod tools;
#[cfg(feature = "_http")]
pub mod embedding;
#[cfg(feature = "registry")]
pub mod registry_loader;
#[cfg(feature = "_http")]
pub mod reranker;
pub mod vector;
pub use capability_registry::{
CapabilityRegistry, CapabilityRequirements, SearchProviderMeta, WebSearchRequirements,
};
pub use model_selection::{
FitnessBreakdown, ModelMetadata, ModelSelector, ProviderRegistry, RejectionReason,
SelectionResult, is_brave_available, is_provider_available,
};
pub use secret::{
EnvSecretProvider, SecretError, SecretProvider, SecretString, StaticSecretProvider,
};
#[cfg(feature = "anthropic")]
pub use llm::AnthropicBackend;
#[cfg(feature = "gemini")]
pub use llm::GeminiBackend;
#[cfg(feature = "kong")]
pub use llm::KongBackend;
#[cfg(feature = "mistral")]
pub use llm::MistralBackend;
#[cfg(feature = "openai")]
pub use llm::OpenAiBackend;
#[cfg(feature = "openrouter")]
pub use llm::OpenRouterBackend;
#[cfg(feature = "staik")]
pub use llm::StaikBackend;
pub use llm::{
ChatBackendSelectionConfig, ChatBackendSelectionConfigError, ResilientChatBackend,
SelectedChatBackend, select_chat_backend, select_chat_backend_with_secret_provider,
select_healthy_chat_backend, select_healthy_chat_backend_with_secret_provider,
};
#[cfg(feature = "brave")]
pub use brave::{
BraveCapability, BraveSearchError, BraveSearchProvider, BraveSearchRequest,
BraveSearchResponse, BraveSearchResult,
};
#[cfg(feature = "_http")]
pub use fetch::HttpFetchProvider;
pub use search::{
SearchDepth, SearchTopic, WebFetchBackend, WebFetchError, WebFetchRequest, WebFetchResponse,
WebSearchBackend, WebSearchError, WebSearchImage, WebSearchRequest, WebSearchResponse,
WebSearchResult,
};
#[cfg(feature = "tavily")]
pub use tavily::TavilySearchProvider;
pub use contract::{
CallTimer, Capability, ProviderCallContext, ProviderMeta, ProviderObservation, Region,
TokenUsage, canonical_hash,
};
pub mod selection_suggestor;
pub use selection_suggestor::ProviderSelectionSuggestor;
pub use tools::{
GraphQlConfig, GraphQlConverter, GraphQlOperationType, InlineToolConfig, InputSchema,
OpenApiConfig, OpenApiConverter, SourceFilter, ToolCall, ToolDefinition, ToolError,
ToolErrorKind, ToolFormat, ToolHandler, ToolRegistry, ToolResult, ToolResultContent,
ToolSource, ToolsConfig, ToolsConfigError,
};