use super::{ModelCapabilities, ThinkingSupport};
use crate::Provider;
use crate::model_profile::catalog::ModelTier;
pub const CAPABILITIES: &[ModelCapabilities] = &[
ModelCapabilities {
id: "gemini-3-flash-preview",
provider: Provider::Gemini,
display_name: "Gemini 3 Flash Preview",
tier: ModelTier::Recommended,
model_family: "gemini-3",
context_window: 1_048_576,
max_output_tokens: 65_536,
context_window_beta: None,
max_output_tokens_beta: None,
vision: true,
image_tool_results: true,
inline_video: true,
realtime: false,
supports_temperature: true,
supports_top_p: true,
supports_top_k: true,
thinking: ThinkingSupport::GeminiThinkingLevel,
supports_reasoning: false,
effort_levels: &[],
supports_web_search: true,
supports_inference_geo: false,
supports_compaction: false,
supports_structured_output: true,
supports_legacy_penalties: false,
supports_thinking_budget_legacy: true,
beta_headers: &[],
call_timeout_secs: Some(120),
},
ModelCapabilities {
id: "gemini-3.1-pro-preview",
provider: Provider::Gemini,
display_name: "Gemini 3.1 Pro Preview",
tier: ModelTier::Supported,
model_family: "gemini-3",
context_window: 1_048_576,
max_output_tokens: 65_536,
context_window_beta: None,
max_output_tokens_beta: None,
vision: true,
image_tool_results: true,
inline_video: true,
realtime: false,
supports_temperature: true,
supports_top_p: true,
supports_top_k: true,
thinking: ThinkingSupport::GeminiThinkingLevel,
supports_reasoning: false,
effort_levels: &[],
supports_web_search: true,
supports_inference_geo: false,
supports_compaction: false,
supports_structured_output: true,
supports_legacy_penalties: false,
supports_thinking_budget_legacy: true,
beta_headers: &[],
call_timeout_secs: Some(600),
},
ModelCapabilities {
id: "gemini-3.1-flash-lite-preview",
provider: Provider::Gemini,
display_name: "Gemini 3.1 Flash Lite Preview",
tier: ModelTier::Supported,
model_family: "gemini-3",
context_window: 1_048_576,
max_output_tokens: 65_536,
context_window_beta: None,
max_output_tokens_beta: None,
vision: true,
image_tool_results: true,
inline_video: true,
realtime: false,
supports_temperature: true,
supports_top_p: true,
supports_top_k: true,
thinking: ThinkingSupport::GeminiThinkingLevel,
supports_reasoning: false,
effort_levels: &[],
supports_web_search: true,
supports_inference_geo: false,
supports_compaction: false,
supports_structured_output: true,
supports_legacy_penalties: false,
supports_thinking_budget_legacy: true,
beta_headers: &[],
call_timeout_secs: Some(120),
},
];