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 mod catalog; // Data-driven model-capability catalog (first-match-wins const table)
7pub(crate) mod config; // Unified configuration
8mod error; // Structured error types
9mod providers; // OpenAI-compatible provider profiles + registry
10mod reasoning; // ReasoningLevel, ReasoningCapability, nearest_effort
11mod stream; // Typed StreamEvent enum
12pub mod tool_call; // Tool call parsing (native function calling)
13
14mod traits; // Model trait (public API)
15mod types; // Core types (ChatMessage, etc)
16
17// Public re-exports — the ONLY way to access model functionality
18pub use capabilities::ModelCapabilities;
19pub use config::{BackendConfig, ModelConfig, OllamaOptions};
20pub use error::{
21    BackendError, ConfigError, ErrorCategory, ModelError, ResponseDebugContext, Result,
22    UserFacingError,
23};
24pub use providers::{
25    CompatStyle, MaxTokensParam, ProviderProfile, REGISTRY as PROVIDER_REGISTRY,
26    ReasoningExtraction, ReasoningStrategy, lookup_provider,
27};
28pub use reasoning::{ReasoningCapability, ReasoningChunk, ReasoningLevel, nearest_effort};
29pub use stream::{StreamCallback, StreamEvent};
30pub use tool_call::{FunctionCall, ToolCall};
31
32pub use traits::Model;
33pub use types::{
34    ChatMessage, ChatMessageKind, FinishReason, MessageRole, MetaResponseItem, ModelResponse,
35    ProviderContinuation, TokenUsage, TokenUsageSource,
36};