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
ModelProviderimplementations. - tool
- Tool executors — one type per tool the model can call.