use crate::core::capabilities::*;
use crate::model_capabilities;
use crate::providers::github_copilot::GithubCopilot;
model_capabilities! {
provider: GithubCopilot,
models: {
ClaudeHaiku45 {
model_name: "claude-haiku-4.5",
constructor_name: claude_haiku_4_5,
display_name: "Claude Haiku 4.5",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
ClaudeOpus45 {
model_name: "claude-opus-4.5",
constructor_name: claude_opus_4_5,
display_name: "Claude Opus 4.5",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
ClaudeOpus46 {
model_name: "claude-opus-4.6",
constructor_name: claude_opus_4_6,
display_name: "Claude Opus 4.6",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
ClaudeOpus41 {
model_name: "claude-opus-41",
constructor_name: claude_opus_41,
display_name: "Claude Opus 4.1",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport]
},
ClaudeSonnet4 {
model_name: "claude-sonnet-4",
constructor_name: claude_sonnet_4,
display_name: "Claude Sonnet 4",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
ClaudeSonnet45 {
model_name: "claude-sonnet-4.5",
constructor_name: claude_sonnet_4_5,
display_name: "Claude Sonnet 4.5",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
Gemini25Pro {
model_name: "gemini-2.5-pro",
constructor_name: gemini_2_5_pro,
display_name: "Gemini 2.5 Pro",
capabilities: [AudioInputSupport, ImageInputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini3FlashPreview {
model_name: "gemini-3-flash-preview",
constructor_name: gemini_3_flash_preview,
display_name: "Gemini 3 Flash",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini3ProPreview {
model_name: "gemini-3-pro-preview",
constructor_name: gemini_3_pro_preview,
display_name: "Gemini 3 Pro Preview",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gpt41 {
model_name: "gpt-4.1",
constructor_name: gpt_4_1,
display_name: "GPT-4.1",
capabilities: [ImageInputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
Gpt4o {
model_name: "gpt-4o",
constructor_name: gpt_4o,
display_name: "GPT-4o",
capabilities: [ImageInputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
Gpt5 {
model_name: "gpt-5",
constructor_name: gpt_5,
display_name: "GPT-5",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
Gpt5Mini {
model_name: "gpt-5-mini",
constructor_name: gpt_5_mini,
display_name: "GPT-5-mini",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
Gpt51 {
model_name: "gpt-5.1",
constructor_name: gpt_5_1,
display_name: "GPT-5.1",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
Gpt51Codex {
model_name: "gpt-5.1-codex",
constructor_name: gpt_5_1_codex,
display_name: "GPT-5.1-Codex",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
Gpt51CodexMax {
model_name: "gpt-5.1-codex-max",
constructor_name: gpt_5_1_codex_max,
display_name: "GPT-5.1-Codex-max",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
Gpt51CodexMini {
model_name: "gpt-5.1-codex-mini",
constructor_name: gpt_5_1_codex_mini,
display_name: "GPT-5.1-Codex-mini",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
Gpt52 {
model_name: "gpt-5.2",
constructor_name: gpt_5_2,
display_name: "GPT-5.2",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
Gpt52Codex {
model_name: "gpt-5.2-codex",
constructor_name: gpt_5_2_codex,
display_name: "GPT-5.2-Codex",
capabilities: [ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
GrokCodeFast1 {
model_name: "grok-code-fast-1",
constructor_name: grok_code_fast_1,
display_name: "Grok Code Fast 1",
capabilities: [ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport]
},
}
}