Skip to main content

Module providers

Module providers 

Source
Expand description

Provider-facing traits: ModelProvider + ToolExecutor.

This module is the boundary between “inert data the reducer produces” and “real I/O the effect runner performs.” Concrete provider adapters (Ollama, Anthropic, Gemini, OpenAI-compat) live under model/; tool implementations live under tool/.

The goal is that adding a provider or tool touches exactly one file — no observer plumbing, no dispatch wiring, no adapter- specific retry logic. The traits carry the full surface; the effect runner just looks up an impl and calls it.

Re-exports§

pub use capabilities::Capabilities;
pub use ctx::ExecContext;
pub use ctx::FinalResponse;
pub use ctx::ProgressEvent;
pub use ctx::StreamContext;
pub use ctx::StreamEvent;
pub use ctx::SubagentPhase;
pub use ctx::clone_messages;
pub use ctx::test_exec_context;
pub use ctx::test_stream_context;
pub use factory::ProviderFactory;
pub use model::AnthropicProvider;
pub use model::GeminiProvider;
pub use model::ModelProvider;
pub use model::OllamaProvider;
pub use model::OpenAICompatProvider;
pub use tool::ToolExecutor;
pub use tool::ToolRegistry;
pub use tool::TuiMode;

Modules§

capabilities
Per-provider capability flags.
ctx
Per-call context passed to providers and tool executors.
factory
Runtime provider construction.
model
Model adapters wrapped as ModelProvider implementations.
tool
Tool executors — one type per tool the model can call.