mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
feat(azure): add all tool-calling models from models.dev/api.json
Expand azure model list from 27 (OpenAI-only) to 64 models with tool_call support, including Claude, Cohere, DeepSeek, Grok, Kimi, Llama, Mistral, Phi, and Model Router families. All model metadata (pricing, context window, capabilities) sourced from https://models.dev/api.json. Existing Roo-specific overrides (includedTools, excludedTools, reasoningEffort, etc.) preserved.
This commit is contained in:
parent
562e9ea894
commit
d3fe52c8e8
1 changed files with 383 additions and 22 deletions
|
|
@ -6,10 +6,68 @@ import type { ModelInfo } from "../model.js"
|
|||
* NOTE:
|
||||
* - Azure AI Foundry uses *deployment names* at runtime, but Roo still needs underlying model
|
||||
* capabilities (maxTokens/contextWindow/etc.) for validation and parameter shaping.
|
||||
* - This list is derived from https://models.dev/api.json (provider: "azure") and intentionally
|
||||
* restricted to OpenAI/Azure OpenAI-style IDs (gpt-*, o*, codex-*).
|
||||
* - This list is derived from https://models.dev/api.json (provider: "azure") and includes
|
||||
* all models with tool calling support available through Azure AI Foundry deployments.
|
||||
*/
|
||||
export const azureModels = {
|
||||
"claude-haiku-4-5": {
|
||||
maxTokens: 64_000,
|
||||
contextWindow: 200_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 1,
|
||||
outputPrice: 5,
|
||||
cacheWritesPrice: 1.25,
|
||||
cacheReadsPrice: 0.1,
|
||||
supportsTemperature: true,
|
||||
description: "Claude Haiku 4.5",
|
||||
},
|
||||
"claude-opus-4-1": {
|
||||
maxTokens: 32_000,
|
||||
contextWindow: 200_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 15,
|
||||
outputPrice: 75,
|
||||
cacheWritesPrice: 18.75,
|
||||
cacheReadsPrice: 1.5,
|
||||
supportsTemperature: true,
|
||||
description: "Claude Opus 4.1",
|
||||
},
|
||||
"claude-opus-4-5": {
|
||||
maxTokens: 64_000,
|
||||
contextWindow: 200_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 5,
|
||||
outputPrice: 25,
|
||||
cacheWritesPrice: 6.25,
|
||||
cacheReadsPrice: 0.5,
|
||||
supportsTemperature: true,
|
||||
description: "Claude Opus 4.5",
|
||||
},
|
||||
"claude-sonnet-4-5": {
|
||||
maxTokens: 64_000,
|
||||
contextWindow: 200_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 3,
|
||||
outputPrice: 15,
|
||||
cacheWritesPrice: 3.75,
|
||||
cacheReadsPrice: 0.3,
|
||||
supportsTemperature: true,
|
||||
description: "Claude Sonnet 4.5",
|
||||
},
|
||||
"codestral-2501": {
|
||||
maxTokens: 256_000,
|
||||
contextWindow: 256_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.3,
|
||||
outputPrice: 0.9,
|
||||
supportsTemperature: true,
|
||||
description: "Codestral 25.01",
|
||||
},
|
||||
"codex-mini": {
|
||||
maxTokens: 100_000,
|
||||
contextWindow: 200_000,
|
||||
|
|
@ -19,8 +77,77 @@ export const azureModels = {
|
|||
outputPrice: 6,
|
||||
cacheReadsPrice: 0.375,
|
||||
supportsTemperature: false,
|
||||
description:
|
||||
"Codex Mini: Cloud-based software engineering agent powered by codex-1, a version of o3 optimized for coding tasks",
|
||||
description: "Codex Mini",
|
||||
},
|
||||
"cohere-command-a": {
|
||||
maxTokens: 8_000,
|
||||
contextWindow: 256_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 2.5,
|
||||
outputPrice: 10,
|
||||
supportsTemperature: true,
|
||||
description: "Command A",
|
||||
},
|
||||
"cohere-command-r-08-2024": {
|
||||
maxTokens: 4_000,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.15,
|
||||
outputPrice: 0.6,
|
||||
supportsTemperature: true,
|
||||
description: "Command R",
|
||||
},
|
||||
"cohere-command-r-plus-08-2024": {
|
||||
maxTokens: 4_000,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 2.5,
|
||||
outputPrice: 10,
|
||||
supportsTemperature: true,
|
||||
description: "Command R+",
|
||||
},
|
||||
"deepseek-r1-0528": {
|
||||
maxTokens: 163_840,
|
||||
contextWindow: 163_840,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 1.35,
|
||||
outputPrice: 5.4,
|
||||
supportsTemperature: true,
|
||||
description: "DeepSeek-R1-0528",
|
||||
},
|
||||
"deepseek-v3-0324": {
|
||||
maxTokens: 131_072,
|
||||
contextWindow: 131_072,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 1.14,
|
||||
outputPrice: 4.56,
|
||||
supportsTemperature: true,
|
||||
description: "DeepSeek-V3-0324",
|
||||
},
|
||||
"deepseek-v3.1": {
|
||||
maxTokens: 131_072,
|
||||
contextWindow: 131_072,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.56,
|
||||
outputPrice: 1.68,
|
||||
supportsTemperature: true,
|
||||
description: "DeepSeek-V3.1",
|
||||
},
|
||||
"deepseek-v3.2": {
|
||||
maxTokens: 128_000,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.58,
|
||||
outputPrice: 1.68,
|
||||
supportsTemperature: true,
|
||||
description: "DeepSeek-V3.2",
|
||||
},
|
||||
"gpt-4": {
|
||||
maxTokens: 8_192,
|
||||
|
|
@ -131,7 +258,7 @@ export const azureModels = {
|
|||
cacheReadsPrice: 0.13,
|
||||
supportsVerbosity: true,
|
||||
supportsTemperature: false,
|
||||
description: "GPT-5: The best model for coding and agentic tasks across domains",
|
||||
description: "GPT-5",
|
||||
},
|
||||
"gpt-5-codex": {
|
||||
maxTokens: 128_000,
|
||||
|
|
@ -146,7 +273,7 @@ export const azureModels = {
|
|||
outputPrice: 10,
|
||||
cacheReadsPrice: 0.13,
|
||||
supportsTemperature: false,
|
||||
description: "GPT-5-Codex: A version of GPT-5 optimized for agentic coding in Codex",
|
||||
description: "GPT-5-Codex",
|
||||
},
|
||||
"gpt-5-mini": {
|
||||
maxTokens: 128_000,
|
||||
|
|
@ -162,7 +289,7 @@ export const azureModels = {
|
|||
cacheReadsPrice: 0.03,
|
||||
supportsVerbosity: true,
|
||||
supportsTemperature: false,
|
||||
description: "GPT-5 Mini: A faster, more cost-efficient version of GPT-5 for well-defined tasks",
|
||||
description: "GPT-5 Mini",
|
||||
},
|
||||
"gpt-5-nano": {
|
||||
maxTokens: 128_000,
|
||||
|
|
@ -178,7 +305,7 @@ export const azureModels = {
|
|||
cacheReadsPrice: 0.01,
|
||||
supportsVerbosity: true,
|
||||
supportsTemperature: false,
|
||||
description: "GPT-5 Nano: Fastest, most cost-efficient version of GPT-5",
|
||||
description: "GPT-5 Nano",
|
||||
},
|
||||
"gpt-5-pro": {
|
||||
maxTokens: 272_000,
|
||||
|
|
@ -210,7 +337,7 @@ export const azureModels = {
|
|||
cacheReadsPrice: 0.125,
|
||||
supportsVerbosity: true,
|
||||
supportsTemperature: false,
|
||||
description: "GPT-5.1: The best model for coding and agentic tasks across domains",
|
||||
description: "GPT-5.1",
|
||||
},
|
||||
"gpt-5.1-chat": {
|
||||
maxTokens: 16_384,
|
||||
|
|
@ -224,7 +351,7 @@ export const azureModels = {
|
|||
outputPrice: 10,
|
||||
cacheReadsPrice: 0.125,
|
||||
supportsTemperature: false,
|
||||
description: "GPT-5.1 Chat: Optimized for conversational AI and chat use cases",
|
||||
description: "GPT-5.1 Chat",
|
||||
},
|
||||
"gpt-5.1-codex": {
|
||||
maxTokens: 128_000,
|
||||
|
|
@ -240,7 +367,7 @@ export const azureModels = {
|
|||
outputPrice: 10,
|
||||
cacheReadsPrice: 0.125,
|
||||
supportsTemperature: false,
|
||||
description: "GPT-5.1 Codex: A version of GPT-5.1 optimized for agentic coding in Codex",
|
||||
description: "GPT-5.1 Codex",
|
||||
},
|
||||
"gpt-5.1-codex-max": {
|
||||
maxTokens: 128_000,
|
||||
|
|
@ -256,8 +383,7 @@ export const azureModels = {
|
|||
outputPrice: 10,
|
||||
cacheReadsPrice: 0.125,
|
||||
supportsTemperature: false,
|
||||
description:
|
||||
"GPT-5.1 Codex Max: Our most intelligent coding model optimized for long-horizon, agentic coding tasks",
|
||||
description: "GPT-5.1 Codex Max",
|
||||
},
|
||||
"gpt-5.1-codex-mini": {
|
||||
maxTokens: 128_000,
|
||||
|
|
@ -273,7 +399,7 @@ export const azureModels = {
|
|||
outputPrice: 2,
|
||||
cacheReadsPrice: 0.025,
|
||||
supportsTemperature: false,
|
||||
description: "GPT-5.1 Codex mini: A version of GPT-5.1 optimized for agentic coding in Codex",
|
||||
description: "GPT-5.1 Codex Mini",
|
||||
},
|
||||
"gpt-5.2": {
|
||||
maxTokens: 128_000,
|
||||
|
|
@ -290,7 +416,7 @@ export const azureModels = {
|
|||
cacheReadsPrice: 0.125,
|
||||
supportsVerbosity: true,
|
||||
supportsTemperature: false,
|
||||
description: "GPT-5.2: Our flagship model for coding and agentic tasks across industries",
|
||||
description: "GPT-5.2",
|
||||
},
|
||||
"gpt-5.2-chat": {
|
||||
maxTokens: 16_384,
|
||||
|
|
@ -303,7 +429,7 @@ export const azureModels = {
|
|||
outputPrice: 14,
|
||||
cacheReadsPrice: 0.175,
|
||||
supportsTemperature: false,
|
||||
description: "GPT-5.2 Chat: Optimized for conversational AI and chat use cases",
|
||||
description: "GPT-5.2 Chat",
|
||||
},
|
||||
"gpt-5.2-codex": {
|
||||
maxTokens: 128_000,
|
||||
|
|
@ -319,10 +445,225 @@ export const azureModels = {
|
|||
outputPrice: 14,
|
||||
cacheReadsPrice: 0.175,
|
||||
supportsTemperature: false,
|
||||
description:
|
||||
"GPT-5.2 Codex: Our most intelligent coding model optimized for long-horizon, agentic coding tasks",
|
||||
description: "GPT-5.2 Codex",
|
||||
},
|
||||
o1: {
|
||||
"grok-3": {
|
||||
maxTokens: 8_192,
|
||||
contextWindow: 131_072,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 3,
|
||||
outputPrice: 15,
|
||||
cacheReadsPrice: 0.75,
|
||||
supportsTemperature: true,
|
||||
description: "Grok 3",
|
||||
},
|
||||
"grok-3-mini": {
|
||||
maxTokens: 8_192,
|
||||
contextWindow: 131_072,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 0.3,
|
||||
outputPrice: 0.5,
|
||||
cacheReadsPrice: 0.075,
|
||||
supportsTemperature: true,
|
||||
description: "Grok 3 Mini",
|
||||
},
|
||||
"grok-4": {
|
||||
maxTokens: 64_000,
|
||||
contextWindow: 256_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 3,
|
||||
outputPrice: 15,
|
||||
cacheReadsPrice: 0.75,
|
||||
supportsTemperature: true,
|
||||
description: "Grok 4",
|
||||
},
|
||||
"grok-4-fast-non-reasoning": {
|
||||
maxTokens: 30_000,
|
||||
contextWindow: 2_000_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 0.2,
|
||||
outputPrice: 0.5,
|
||||
cacheReadsPrice: 0.05,
|
||||
supportsTemperature: true,
|
||||
description: "Grok 4 Fast (Non-Reasoning)",
|
||||
},
|
||||
"grok-4-fast-reasoning": {
|
||||
maxTokens: 30_000,
|
||||
contextWindow: 2_000_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 0.2,
|
||||
outputPrice: 0.5,
|
||||
cacheReadsPrice: 0.05,
|
||||
supportsTemperature: true,
|
||||
description: "Grok 4 Fast (Reasoning)",
|
||||
},
|
||||
"grok-code-fast-1": {
|
||||
maxTokens: 10_000,
|
||||
contextWindow: 256_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 0.2,
|
||||
outputPrice: 1.5,
|
||||
cacheReadsPrice: 0.02,
|
||||
supportsTemperature: true,
|
||||
description: "Grok Code Fast 1",
|
||||
},
|
||||
"kimi-k2-thinking": {
|
||||
maxTokens: 262_144,
|
||||
contextWindow: 262_144,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 0.6,
|
||||
outputPrice: 2.5,
|
||||
cacheReadsPrice: 0.15,
|
||||
supportsTemperature: true,
|
||||
description: "Kimi K2 Thinking",
|
||||
},
|
||||
"llama-3.2-11b-vision-instruct": {
|
||||
maxTokens: 8_192,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.37,
|
||||
outputPrice: 0.37,
|
||||
supportsTemperature: true,
|
||||
description: "Llama-3.2-11B-Vision-Instruct",
|
||||
},
|
||||
"llama-3.2-90b-vision-instruct": {
|
||||
maxTokens: 8_192,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 2.04,
|
||||
outputPrice: 2.04,
|
||||
supportsTemperature: true,
|
||||
description: "Llama-3.2-90B-Vision-Instruct",
|
||||
},
|
||||
"llama-3.3-70b-instruct": {
|
||||
maxTokens: 32_768,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.71,
|
||||
outputPrice: 0.71,
|
||||
supportsTemperature: true,
|
||||
description: "Llama-3.3-70B-Instruct",
|
||||
},
|
||||
"llama-4-maverick-17b-128e-instruct-fp8": {
|
||||
maxTokens: 8_192,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.25,
|
||||
outputPrice: 1,
|
||||
supportsTemperature: true,
|
||||
description: "Llama 4 Maverick 17B 128E Instruct FP8",
|
||||
},
|
||||
"llama-4-scout-17b-16e-instruct": {
|
||||
maxTokens: 8_192,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.2,
|
||||
outputPrice: 0.78,
|
||||
supportsTemperature: true,
|
||||
description: "Llama 4 Scout 17B 16E Instruct",
|
||||
},
|
||||
"meta-llama-3.1-405b-instruct": {
|
||||
maxTokens: 32_768,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 5.33,
|
||||
outputPrice: 16,
|
||||
supportsTemperature: true,
|
||||
description: "Meta-Llama-3.1-405B-Instruct",
|
||||
},
|
||||
"meta-llama-3.1-70b-instruct": {
|
||||
maxTokens: 32_768,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 2.68,
|
||||
outputPrice: 3.54,
|
||||
supportsTemperature: true,
|
||||
description: "Meta-Llama-3.1-70B-Instruct",
|
||||
},
|
||||
"meta-llama-3.1-8b-instruct": {
|
||||
maxTokens: 32_768,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.3,
|
||||
outputPrice: 0.61,
|
||||
supportsTemperature: true,
|
||||
description: "Meta-Llama-3.1-8B-Instruct",
|
||||
},
|
||||
"ministral-3b": {
|
||||
maxTokens: 8_192,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.04,
|
||||
outputPrice: 0.04,
|
||||
supportsTemperature: true,
|
||||
description: "Ministral 3B",
|
||||
},
|
||||
"mistral-large-2411": {
|
||||
maxTokens: 32_768,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 2,
|
||||
outputPrice: 6,
|
||||
supportsTemperature: true,
|
||||
description: "Mistral Large 24.11",
|
||||
},
|
||||
"mistral-medium-2505": {
|
||||
maxTokens: 128_000,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.4,
|
||||
outputPrice: 2,
|
||||
supportsTemperature: true,
|
||||
description: "Mistral Medium 3",
|
||||
},
|
||||
"mistral-nemo": {
|
||||
maxTokens: 128_000,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.15,
|
||||
outputPrice: 0.15,
|
||||
supportsTemperature: true,
|
||||
description: "Mistral Nemo",
|
||||
},
|
||||
"mistral-small-2503": {
|
||||
maxTokens: 32_768,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.1,
|
||||
outputPrice: 0.3,
|
||||
supportsTemperature: true,
|
||||
description: "Mistral Small 3.1",
|
||||
},
|
||||
"model-router": {
|
||||
maxTokens: 16_384,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: true,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.14,
|
||||
outputPrice: 0,
|
||||
description: "Model Router",
|
||||
},
|
||||
"o1": {
|
||||
maxTokens: 100_000,
|
||||
contextWindow: 200_000,
|
||||
supportsImages: true,
|
||||
|
|
@ -336,7 +677,7 @@ export const azureModels = {
|
|||
"o1-mini": {
|
||||
maxTokens: 65_536,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: true,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 1.1,
|
||||
outputPrice: 4.4,
|
||||
|
|
@ -347,7 +688,7 @@ export const azureModels = {
|
|||
"o1-preview": {
|
||||
maxTokens: 32_768,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: true,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: true,
|
||||
inputPrice: 16.5,
|
||||
outputPrice: 66,
|
||||
|
|
@ -355,7 +696,7 @@ export const azureModels = {
|
|||
supportsTemperature: false,
|
||||
description: "o1-preview",
|
||||
},
|
||||
o3: {
|
||||
"o3": {
|
||||
maxTokens: 100_000,
|
||||
contextWindow: 200_000,
|
||||
supportsImages: true,
|
||||
|
|
@ -394,6 +735,26 @@ export const azureModels = {
|
|||
supportsTemperature: false,
|
||||
description: "o4-mini",
|
||||
},
|
||||
"phi-4-mini": {
|
||||
maxTokens: 4_096,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.075,
|
||||
outputPrice: 0.3,
|
||||
supportsTemperature: true,
|
||||
description: "Phi-4-mini",
|
||||
},
|
||||
"phi-4-mini-reasoning": {
|
||||
maxTokens: 4_096,
|
||||
contextWindow: 128_000,
|
||||
supportsImages: false,
|
||||
supportsPromptCache: false,
|
||||
inputPrice: 0.075,
|
||||
outputPrice: 0.3,
|
||||
supportsTemperature: true,
|
||||
description: "Phi-4-mini-reasoning",
|
||||
},
|
||||
} as const satisfies Record<string, ModelInfo>
|
||||
|
||||
export type AzureModelId = keyof typeof azureModels
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue