Skip to main content

mermaid_cli/models/
mod.rs

1// Gateway module for models
2// All external access must go through this gateway
3
4// Core modules
5mod adapters; // Provider adapters (Ollama, OpenAI-compatible)
6mod backend; // ModelFactory (single factory)
7mod capabilities; // Per-model capability flags
8mod config; // Unified configuration
9mod error; // Structured error types
10mod providers; // OpenAI-compatible provider profiles + registry
11mod reasoning; // ReasoningLevel, ReasoningCapability, nearest_effort
12mod stream; // Typed StreamEvent enum (replaces text-only callback)
13pub mod tool_call; // Tool call parsing (native function calling)
14pub mod tools; // Tool definitions
15mod traits; // Model trait (public API)
16mod types; // Core types (ChatMessage, etc)
17
18// Public re-exports - the ONLY way to access model functionality
19pub use backend::ModelFactory;
20pub use capabilities::ModelCapabilities;
21pub use config::{BackendConfig, ModelConfig, OllamaOptions};
22pub use error::{BackendError, ConfigError, ErrorCategory, ModelError, Result, UserFacingError};
23pub use providers::{
24    CompatStyle, ProviderProfile, REGISTRY as PROVIDER_REGISTRY, ReasoningExtraction,
25    ReasoningStrategy, lookup_provider,
26};
27pub use reasoning::{ReasoningCapability, ReasoningChunk, ReasoningLevel, nearest_effort};
28pub use stream::{StreamCallback, StreamEvent};
29pub use tool_call::{FunctionCall, ToolCall};
30pub use tools::{Tool, ToolFunction, ToolRegistry};
31pub use traits::Model;
32pub use types::{ChatMessage, MessageRole, ModelResponse, TokenUsage};