#![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 provider_api;
pub mod fallback;
pub mod convergence;
pub mod contract;
pub mod llm;
#[cfg(feature = "anthropic")]
mod anthropic;
#[cfg(feature = "apertus")]
mod apertus;
#[cfg(feature = "baidu")]
mod baidu;
#[cfg(feature = "brave")]
pub mod brave;
mod capability_registry;
mod common;
#[cfg(feature = "deepseek")]
mod deepseek;
mod factory;
mod fake;
#[cfg(feature = "gemini")]
mod gemini;
#[cfg(feature = "grok")]
mod grok;
#[cfg(feature = "kimi")]
mod kimi;
#[cfg(feature = "kong")]
pub mod kong;
#[cfg(feature = "minmax")]
mod minmax;
#[cfg(feature = "mistral")]
mod mistral;
mod model_selection;
pub mod ocr;
#[cfg(feature = "ollama")]
mod ollama;
#[cfg(feature = "openai")]
mod openai;
#[cfg(feature = "openai")]
mod openrouter;
#[cfg(feature = "perplexity")]
mod perplexity;
mod prompt;
#[cfg(feature = "qwen")]
mod qwen;
#[cfg(feature = "zhipu")]
mod zhipu;
#[cfg(feature = "patent")]
pub mod patent;
pub mod tools;
#[cfg(feature = "linkedin")]
mod linkedin;
pub mod embedding;
pub mod graph;
#[cfg(feature = "registry")]
pub mod registry_loader;
pub mod reranker;
pub mod vector;
#[cfg(feature = "anthropic")]
pub use anthropic::AnthropicProvider;
#[cfg(feature = "apertus")]
pub use apertus::ApertusProvider;
#[cfg(feature = "baidu")]
pub use baidu::BaiduProvider;
pub use capability_registry::{
CapabilityRegistry, CapabilityRequirements, SearchProviderMeta, WebSearchRequirements,
};
pub use common::{
ChatCompletionRequest, ChatCompletionResponse, ChatMessage, ChatUsage, HttpProviderConfig,
OpenAiCompatibleProvider, OpenAiStyleError, OpenAiStyleErrorDetail,
chat_response_to_llm_response, handle_openai_style_error, make_chat_completion_request,
parse_finish_reason,
};
#[cfg(feature = "deepseek")]
pub use deepseek::DeepSeekProvider;
pub use factory::{
can_create_provider, create_provider, create_provider_with_secrets, create_tool_aware_provider,
};
pub use fallback::{FallbackLlmProvider, try_with_fallback};
#[cfg(feature = "gemini")]
pub use gemini::GeminiProvider;
#[cfg(feature = "grok")]
pub use grok::GrokProvider;
#[cfg(feature = "kimi")]
pub use kimi::KimiProvider;
#[cfg(feature = "kong")]
pub use kong::{KongGateway, KongProvider, KongRoute};
#[cfg(feature = "minmax")]
pub use minmax::MinMaxProvider;
#[cfg(feature = "mistral")]
pub use mistral::MistralProvider;
pub use model_selection::{
FitnessBreakdown, ModelMetadata, ModelSelector, ProviderRegistry, RejectionReason,
SelectionResult, is_brave_available, is_provider_available,
};
#[cfg(feature = "ollama")]
pub use ollama::{
DEFAULT_OLLAMA_URL, ModelInfo as OllamaModelInfo, ModelListEntry as OllamaModelEntry,
OllamaProvider,
};
#[cfg(feature = "openai")]
pub use openai::OpenAiProvider;
#[cfg(feature = "openai")]
pub use openrouter::OpenRouterProvider;
#[cfg(feature = "perplexity")]
pub use perplexity::PerplexityProvider;
pub use prompt::{
ProviderPromptBuilder, StructuredResponseParser, build_claude_prompt, build_openai_prompt,
};
#[cfg(feature = "qwen")]
pub use qwen::QwenProvider;
#[cfg(feature = "zhipu")]
pub use zhipu::ZhipuProvider;
pub use secret::{
EnvSecretProvider, SecretError, SecretProvider, SecretString, StaticSecretProvider,
};
pub use fake::FakeProvider;
pub use provider_api::{
AgentRequirements, FinishReason, LlmError, LlmErrorKind, LlmProvider, LlmRequest, LlmResponse,
ModelSelectorTrait, TokenUsage as LlmTokenUsage,
};
pub use convergence::LlmAgent;
pub use contract::{
CallTimer, Capability, ProviderCallContext, ProviderMeta, ProviderObservation, Region,
TokenUsage, canonical_hash,
};
#[cfg(feature = "anthropic")]
pub use llm::AnthropicBackend;
#[cfg(feature = "patent")]
pub use patent::{
CompositePatentProvider, PatentOperator, PatentSearchProvider, PatentSearchRequest,
PatentSearchResponse, PatentSearchResult, StubPatentProvider,
};
#[cfg(feature = "linkedin")]
pub use linkedin::{
LinkedInApiProvider, LinkedInGetRequest, LinkedInProvider, StubLinkedInProvider,
};
#[cfg(feature = "brave")]
pub use brave::{
BraveCapability, BraveSearchError, BraveSearchProvider, BraveSearchRequest,
BraveSearchResponse, BraveSearchResult,
};
pub use ocr::{
DeepSeekOcrProvider,
LightOnOcrProvider,
MistralOcrProvider,
OcrConfidence,
OcrError,
OcrImage,
OcrInput,
OcrOutputFormat,
OcrPreprocessing,
OcrProvenance,
OcrProvider,
OcrRequest,
OcrResult,
OcrSpan,
OcrTable,
TesseractConfig,
TesseractOcrProvider,
TesseractOutputFormat,
compute_hash,
with_trace_hashes,
};
pub use tools::{
GraphQlConfig, GraphQlConverter, GraphQlOperationType, InlineToolConfig, InputSchema,
McpClient, McpClientBuilder, McpServerConfig, McpTransport, McpTransportType, OpenApiConfig,
OpenApiConverter, ParsedToolCall, SourceFilter, ToolAwareProvider, ToolAwareResponse, ToolCall,
ToolDefinition, ToolError, ToolErrorKind, ToolFormat, ToolHandler, ToolRegistry, ToolResult,
ToolResultContent, ToolSource, ToolsConfig, ToolsConfigError,
};