Skip to main content

mermaid_cli/models/
mod.rs

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