Expand description
LLM provider trait, streaming primitives, and first-party provider implementations.
This crate defines the LlmProvider trait that all LLM backends implement,
streaming types for incremental response processing, attachment validation,
model capability metadata, and seven first-party provider implementations.
§Provider Implementations
| Provider | Module | Protocol |
|---|---|---|
| Anthropic (Messages API) | impls::anthropic | SSE streaming |
| OpenAI (Chat Completions) | impls::openai | SSE streaming |
| OpenAI (Responses API) | impls::openai_responses | SSE streaming |
| OpenAI Codex / ChatGPT | impls::openai_codex_responses | WebSocket |
| Google Gemini | impls::gemini | SSE streaming |
| Google Vertex AI | impls::vertex | SSE streaming |
| Cloudflare AI Gateway | impls::cloudflare_ai_gateway | Proxy wrapper |
Re-exports§
pub use fallback::FallbackProvider;pub use provider::LlmProvider;pub use provider::ModelInfo;pub use provider::StructuredOutputSupport;pub use provider::collect_stream;pub use provider::probe_http_reachability;pub use record_replay::RecordReplayMode;record-replaypub use record_replay::RecordReplayProvider;record-replaypub use refresh::RefreshingProvider;pub use router::ModelRouter;pub use router::ModelTier;pub use router::TaskComplexity;pub use streaming::StreamAccumulator;pub use streaming::StreamBox;pub use streaming::StreamDelta;pub use structured::StructuredConfig;structured-outputpub use structured::StructuredOutput;structured-outputpub use structured::StructuredOutputError;structured-outputpub use structured::StructuredStream;structured-outputpub use structured::StructuredStreamUpdate;structured-outputpub use structured::run_structured;structured-outputpub use structured::run_structured_stream;structured-outputpub use impls::CloudflareAIGatewayProvider;cloudflarepub use impls::GeminiProvider;geminipub use impls::OpenAICodexResponsesProvider;openai-codexpub use impls::VertexProvider;vertexpub use impls::AnthropicProvider;anthropicpub use impls::is_oauth_token;anthropicpub use impls::OpenAIAllowedToolsMode;openaipub use impls::OpenAIApiSurface;openaipub use impls::OpenAIPromptCacheMode;openaipub use impls::OpenAIPromptCacheTtl;openaipub use impls::OpenAIProvider;openaipub use impls::OpenAIReasoningConfig;openaipub use impls::OpenAIReasoningContext;openaipub use impls::OpenAIReasoningEffort;openaipub use impls::OpenAIReasoningMode;openaipub use impls::OpenAIReasoningSummary;openaipub use impls::OpenAIResponsesProvider;openaipub use impls::OpenAITextVerbosity;openaipub use impls::OpenAIToolChoice;openaipub use impls::supports_reasoning_summary;openaipub use model_capabilities::ModelCapabilities;pub use model_capabilities::PricePoint;pub use model_capabilities::Pricing;pub use model_capabilities::SourceStatus;pub use model_capabilities::get_model_capabilities;pub use model_capabilities::supported_model_capabilities;pub use model_features::ModelApiSurface;pub use model_features::ModelFeatureSet;pub use model_features::ModelFeatures;pub use model_features::ModelInputModality;pub use model_features::ModelPromptCacheFeatures;pub use model_features::ModelPromptCacheMode;pub use model_features::ModelPromptCacheTtl;pub use model_features::ModelReasoningContext;pub use model_features::ModelReasoningEffort;pub use model_features::ModelReasoningFeatures;pub use model_features::ModelReasoningMode;pub use model_features::ModelReasoningStateReplay;pub use model_features::ModelReasoningSummary;pub use model_features::ModelToolChoice;pub use model_features::ModelToolFeatures;pub use model_features::get_model_features;pub use model_features::supported_model_features;pub use model_catalog::CatalogEntry;model-discoverypub use model_catalog::ModelCatalogSource;model-discoverypub use model_catalog::ModelRegistry;model-discoverypub use model_catalog::ModelsDevSource;model-discoverypub use model_catalog::OpenRouterSource;model-discoverypub use model_catalog::PricingTier;model-discoverypub use model_catalog::ResolvedModel;model-discoverypub use model_catalog::ResolvedSource;model-discoverypub use model_catalog::applicable_pricing;model-discoverypub use search::BraveSearchProvider;pub use search::SearchProvider;pub use search::SearchResponse;pub use search::SearchResult;
Modules§
- attachments
anthropicorcloudflareorgeminioropenai-codexoropenaiorvertex - fallback
- Provider failover: try an ordered list of providers until one succeeds.
- impls
- First-party LLM provider implementations.
- model_
capabilities - model_
catalog model-discovery - Dynamic model capability/pricing discovery from third-party feeds.
- model_
features - Static feature metadata for
OpenAImodels. - provider
- LLM provider trait and streaming helpers.
- record_
replay record-replay - Deterministic record / replay provider wrapper (feature
record-replay). - refresh
- Provider wrapper that refreshes credentials on 401 and retries once.
- router
- search
- Search provider trait and implementations.
- streaming
- Streaming types for LLM responses.
- structured
structured-output - Schema-validated structured output.
Structs§
- Cache
Config - Caller-facing control over provider-side prompt caching.
- Chat
Request - Chat
Response - Content
Source - Source data for image and document content blocks.
- Message
- Response
Format - Requests that the model constrain its final answer to a JSON Schema.
- Snapcompact
Frame Digest - Content digest for one rendered Snapcompact frame artifact.
- Snapcompact
Integrity - Content-integrity pins computed at a Snapcompact persist site.
- Snapcompact
Metadata - Exact-source metadata for a locally rendered Snapcompact checkpoint.
- Thinking
Config - Configuration for extended thinking.
- Tool
- Usage
Enums§
- Cache
Ttl - Time-to-live for a provider-side prompt-cache breakpoint.
- Chat
Outcome - Content
- Content
Block - A provider-compatible content block.
- Effort
- Effort level for adaptive thinking via
output_config. - Image
Detail - Provider rendering detail requested for an image content block.
- Role
- Served
Speed - Which speed tier a provider actually used, as reported back on the response.
- Speed
Tier - Inference speed tier — the “pay a premium for lower latency” knob.
- Stop
Reason - Thinking
Display - How thinking content is returned in responses.
- Thinking
Mode - The mode of extended thinking.
- Tool
Choice - Controls whether the model must use a tool.
Constants§
- COMPACTION_
SUMMARY_ PREFIX - Legacy on-disk marker used for rollback-readable compaction entries.
- SNAPCOMPACT_
HISTORY_ IMAGE_ WARNING - Fixed guard that separates rendered Snapcompact frames from active instructions.
- USER_
CANCELLED_ TOOL_ RESULT - Default
tool_resulttext used to close atool_useblock the user cancelled (or otherwise abandoned) before it produced a real result.
Functions§
- balance_
tool_ results - Close every unanswered
tool_useloop inmessages. - canonical_
snapcompact_ checkpoint - Validates and returns the checkpoint metadata for one canonical Snapcompact replacement.
- has_
unbalanced_ tool_ use - True when
messagescontains atool_useblock whose id is not answered by anytool_resultblock anywhere in the conversation. - is_
provider_ valid_ tool_ sequence - Whether
messagessatisfyprovider_tool_sequence_error_index. - orphaned_
tool_ result_ message - Build the raw audit message appended by append-only orphan repair.
- parse_
retry_ after - Parse the value of an HTTP
Retry-Afterheader into aDuration. - provider_
tool_ sequence_ error_ index - Return the first message index that violates provider tool-call ordering.
- render_
compaction_ summary_ for_ provider - Render a typed compaction summary as inert historical data for providers.
- sha256_
hex - Lowercase hex SHA-256 of
bytes. - snapcompact_
integrity - Computes the integrity pins for a Snapcompact source and its rendered
frames, given
(frame_artifact_id, png_bytes)pairs in declared order.