pub enum ModelId {
Show 20 variants
Gemini25FlashPreview,
Gemini25Flash,
Gemini25FlashLite,
Gemini25Pro,
GPT5,
GPT5Mini,
GPT5Nano,
CodexMiniLatest,
ClaudeOpus41,
ClaudeSonnet4,
XaiGrok2Latest,
XaiGrok2,
XaiGrok2Mini,
XaiGrok2Reasoning,
XaiGrok2Vision,
OpenRouterGrokCodeFast1,
OpenRouterQwen3Coder,
OpenRouterDeepSeekChatV31,
OpenRouterOpenAIGPT5,
OpenRouterAnthropicClaudeSonnet4,
}
Expand description
Centralized enum for all supported model identifiers
Variants§
Gemini25FlashPreview
Gemini 2.5 Flash Preview - Latest fast model with advanced capabilities
Gemini25Flash
Gemini 2.5 Flash - Legacy alias for flash preview
Gemini25FlashLite
Gemini 2.5 Flash Lite - Legacy alias for flash preview (lite)
Gemini25Pro
Gemini 2.5 Pro - Latest most capable Gemini model
GPT5
GPT-5 - Latest most capable OpenAI model (2025-08-07)
GPT5Mini
GPT-5 Mini - Latest efficient OpenAI model (2025-08-07)
GPT5Nano
GPT-5 Nano - Latest most cost-effective OpenAI model (2025-08-07)
CodexMiniLatest
Codex Mini Latest - Latest Codex model for code generation (2025-05-16)
ClaudeOpus41
Claude Opus 4.1 - Latest most capable Anthropic model (2025-08-05)
ClaudeSonnet4
Claude Sonnet 4 - Latest balanced Anthropic model (2025-05-14)
XaiGrok2Latest
Grok-2 Latest - Flagship xAI model with advanced reasoning
XaiGrok2
Grok-2 - Stable xAI model variant
XaiGrok2Mini
Grok-2 Mini - Efficient xAI model
XaiGrok2Reasoning
Grok-2 Reasoning - Enhanced reasoning trace variant
XaiGrok2Vision
Grok-2 Vision - Multimodal xAI model
OpenRouterGrokCodeFast1
Grok Code Fast 1 - Fast OpenRouter coding model
OpenRouterQwen3Coder
Qwen3 Coder - Balanced OpenRouter coding model
OpenRouterDeepSeekChatV31
DeepSeek Chat v3.1 - Advanced DeepSeek model via OpenRouter
OpenRouterOpenAIGPT5
OpenAI GPT-5 via OpenRouter
OpenRouterAnthropicClaudeSonnet4
Anthropic Claude Sonnet 4 via OpenRouter
Implementations§
Source§impl ModelId
impl ModelId
Sourcepub fn as_str(&self) -> &'static str
pub fn as_str(&self) -> &'static str
Convert the model identifier to its string representation used in API calls and configurations
Sourcepub fn display_name(&self) -> &'static str
pub fn display_name(&self) -> &'static str
Get the display name for the model (human-readable)
Sourcepub fn description(&self) -> &'static str
pub fn description(&self) -> &'static str
Get a description of the model’s characteristics
Sourcepub fn all_models() -> Vec<ModelId>
pub fn all_models() -> Vec<ModelId>
Get all available models as a vector
Sourcepub fn models_for_provider(provider: Provider) -> Vec<ModelId>
pub fn models_for_provider(provider: Provider) -> Vec<ModelId>
Get all models for a specific provider
Sourcepub fn fallback_models() -> Vec<ModelId>
pub fn fallback_models() -> Vec<ModelId>
Get recommended fallback models in order of preference
Sourcepub fn default_orchestrator() -> Self
pub fn default_orchestrator() -> Self
Get the default orchestrator model (more capable)
Sourcepub fn default_subagent() -> Self
pub fn default_subagent() -> Self
Get the default subagent model (fast and efficient)
Sourcepub fn default_orchestrator_for_provider(provider: Provider) -> Self
pub fn default_orchestrator_for_provider(provider: Provider) -> Self
Get provider-specific defaults for orchestrator
Sourcepub fn default_subagent_for_provider(provider: Provider) -> Self
pub fn default_subagent_for_provider(provider: Provider) -> Self
Get provider-specific defaults for subagent
Sourcepub fn default_single_for_provider(provider: Provider) -> Self
pub fn default_single_for_provider(provider: Provider) -> Self
Get provider-specific defaults for single agent
Sourcepub fn is_flash_variant(&self) -> bool
pub fn is_flash_variant(&self) -> bool
Check if this is a “flash” variant (optimized for speed)
Sourcepub fn is_pro_variant(&self) -> bool
pub fn is_pro_variant(&self) -> bool
Check if this is a “pro” variant (optimized for capability)
Sourcepub fn is_efficient_variant(&self) -> bool
pub fn is_efficient_variant(&self) -> bool
Check if this is an optimized/efficient variant
Sourcepub fn is_top_tier(&self) -> bool
pub fn is_top_tier(&self) -> bool
Check if this is a top-tier model
Sourcepub fn generation(&self) -> &'static str
pub fn generation(&self) -> &'static str
Get the generation/version string for this model
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ModelId
impl<'de> Deserialize<'de> for ModelId
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ModelId
impl StructuralPartialEq for ModelId
Auto Trait Implementations§
impl Freeze for ModelId
impl RefUnwindSafe for ModelId
impl Send for ModelId
impl Sync for ModelId
impl Unpin for ModelId
impl UnwindSafe for ModelId
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string()
Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString
. Read moreSource§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string
, but without panic on OOM.