From ced04bddd3c9419afa332e38981f287a38864bf7 Mon Sep 17 00:00:00 2001 From: Parthy <52548018+mm-parthy@users.noreply.github.com> Date: Tue, 22 Jul 2025 20:15:22 +0200 Subject: [PATCH] docs(models): update model configuration to add supported field (#1030) --- docs/scripts/models-json-to-markdown.js | 70 ++++-- scripts/modules/config-manager.js | 58 ++--- scripts/modules/supported-models.json | 272 ++++++++++++++++-------- 3 files changed, 262 insertions(+), 138 deletions(-) diff --git a/docs/scripts/models-json-to-markdown.js b/docs/scripts/models-json-to-markdown.js index 26ab8a1e..1980bd0b 100644 --- a/docs/scripts/models-json-to-markdown.js +++ b/docs/scripts/models-json-to-markdown.js @@ -47,6 +47,20 @@ function generateMarkdownTable(title, models) { return table; } +function generateUnsupportedTable(models) { + if (!models || models.length === 0) { + return '## Unsupported Models\n\nNo unsupported models found.\n\n'; + } + let table = '## Unsupported Models\n\n'; + table += '| Provider | Model Name | Reason |\n'; + table += '|---|---|---|\n'; + models.forEach((model) => { + table += `| ${model.provider} | ${model.modelName} | ${model.reason || '—'} |\n`; + }); + table += '\n'; + return table; +} + function main() { try { const correctSupportedModelsPath = path.join( @@ -68,31 +82,46 @@ function main() { const mainModels = []; const researchModels = []; const fallbackModels = []; + const unsupportedModels = []; for (const provider in supportedModels) { if (Object.hasOwnProperty.call(supportedModels, provider)) { const models = supportedModels[provider]; models.forEach((model) => { - const modelEntry = { - provider: provider, - modelName: model.id, - sweScore: model.swe_score, - inputCost: model.cost_per_1m_tokens - ? model.cost_per_1m_tokens.input - : null, - outputCost: model.cost_per_1m_tokens - ? model.cost_per_1m_tokens.output - : null - }; - - if (model.allowed_roles.includes('main')) { - mainModels.push(modelEntry); - } - if (model.allowed_roles.includes('research')) { - researchModels.push(modelEntry); - } - if (model.allowed_roles.includes('fallback')) { - fallbackModels.push(modelEntry); + const isSupported = model.supported !== false; // default to true if missing + if (isSupported) { + const modelEntry = { + provider: provider, + modelName: model.id, + sweScore: model.swe_score, + inputCost: model.cost_per_1m_tokens + ? model.cost_per_1m_tokens.input + : null, + outputCost: model.cost_per_1m_tokens + ? model.cost_per_1m_tokens.output + : null + }; + if (model.allowed_roles && model.allowed_roles.includes('main')) { + mainModels.push(modelEntry); + } + if ( + model.allowed_roles && + model.allowed_roles.includes('research') + ) { + researchModels.push(modelEntry); + } + if ( + model.allowed_roles && + model.allowed_roles.includes('fallback') + ) { + fallbackModels.push(modelEntry); + } + } else { + unsupportedModels.push({ + provider: provider, + modelName: model.id, + reason: model.reason || 'Not specified' + }); } }); } @@ -119,6 +148,7 @@ function main() { markdownContent += generateMarkdownTable('Main Models', mainModels); markdownContent += generateMarkdownTable('Research Models', researchModels); markdownContent += generateMarkdownTable('Fallback Models', fallbackModels); + markdownContent += generateUnsupportedTable(unsupportedModels); fs.writeFileSync(correctOutputMarkdownPath, markdownContent, 'utf8'); console.log(`Successfully updated ${correctOutputMarkdownPath}`); diff --git a/scripts/modules/config-manager.js b/scripts/modules/config-manager.js index ed9a3ebc..2f8211b6 100644 --- a/scripts/modules/config-manager.js +++ b/scripts/modules/config-manager.js @@ -772,36 +772,38 @@ function getAvailableModels() { const available = []; for (const [provider, models] of Object.entries(MODEL_MAP)) { if (models.length > 0) { - models.forEach((modelObj) => { - // Basic name generation - can be improved - const modelId = modelObj.id; - const sweScore = modelObj.swe_score; - const cost = modelObj.cost_per_1m_tokens; - const allowedRoles = modelObj.allowed_roles || ['main', 'fallback']; - const nameParts = modelId - .split('-') - .map((p) => p.charAt(0).toUpperCase() + p.slice(1)); - // Handle specific known names better if needed - let name = nameParts.join(' '); - if (modelId === 'claude-3.5-sonnet-20240620') - name = 'Claude 3.5 Sonnet'; - if (modelId === 'claude-3-7-sonnet-20250219') - name = 'Claude 3.7 Sonnet'; - if (modelId === 'gpt-4o') name = 'GPT-4o'; - if (modelId === 'gpt-4-turbo') name = 'GPT-4 Turbo'; - if (modelId === 'sonar-pro') name = 'Perplexity Sonar Pro'; - if (modelId === 'sonar-mini') name = 'Perplexity Sonar Mini'; + models + .filter((modelObj) => Boolean(modelObj.supported)) + .forEach((modelObj) => { + // Basic name generation - can be improved + const modelId = modelObj.id; + const sweScore = modelObj.swe_score; + const cost = modelObj.cost_per_1m_tokens; + const allowedRoles = modelObj.allowed_roles || ['main', 'fallback']; + const nameParts = modelId + .split('-') + .map((p) => p.charAt(0).toUpperCase() + p.slice(1)); + // Handle specific known names better if needed + let name = nameParts.join(' '); + if (modelId === 'claude-3.5-sonnet-20240620') + name = 'Claude 3.5 Sonnet'; + if (modelId === 'claude-3-7-sonnet-20250219') + name = 'Claude 3.7 Sonnet'; + if (modelId === 'gpt-4o') name = 'GPT-4o'; + if (modelId === 'gpt-4-turbo') name = 'GPT-4 Turbo'; + if (modelId === 'sonar-pro') name = 'Perplexity Sonar Pro'; + if (modelId === 'sonar-mini') name = 'Perplexity Sonar Mini'; - available.push({ - id: modelId, - name: name, - provider: provider, - swe_score: sweScore, - cost_per_1m_tokens: cost, - allowed_roles: allowedRoles, - max_tokens: modelObj.max_tokens + available.push({ + id: modelId, + name: name, + provider: provider, + swe_score: sweScore, + cost_per_1m_tokens: cost, + allowed_roles: allowedRoles, + max_tokens: modelObj.max_tokens + }); }); - }); } else { // For providers with empty lists (like ollama), maybe add a placeholder or skip available.push({ diff --git a/scripts/modules/supported-models.json b/scripts/modules/supported-models.json index f968bc31..abcdd56f 100644 --- a/scripts/modules/supported-models.json +++ b/scripts/modules/supported-models.json @@ -8,7 +8,8 @@ "output": 15.0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 64000 + "max_tokens": 64000, + "supported": true }, { "id": "claude-opus-4-20250514", @@ -18,7 +19,8 @@ "output": 75.0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 32000 + "max_tokens": 32000, + "supported": true }, { "id": "claude-3-7-sonnet-20250219", @@ -28,7 +30,8 @@ "output": 15.0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 120000 + "max_tokens": 120000, + "supported": true }, { "id": "claude-3-5-sonnet-20241022", @@ -38,7 +41,8 @@ "output": 15.0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 8192 + "max_tokens": 8192, + "supported": true } ], "claude-code": [ @@ -50,7 +54,8 @@ "output": 0 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 32000 + "max_tokens": 32000, + "supported": true }, { "id": "sonnet", @@ -60,7 +65,8 @@ "output": 0 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 64000 + "max_tokens": 64000, + "supported": true } ], "mcp": [ @@ -72,7 +78,8 @@ "output": 0 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 100000 + "max_tokens": 100000, + "supported": true } ], "gemini-cli": [ @@ -84,7 +91,8 @@ "output": 0 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 65536 + "max_tokens": 65536, + "supported": true }, { "id": "gemini-2.5-flash", @@ -94,7 +102,8 @@ "output": 0 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 65536 + "max_tokens": 65536, + "supported": true } ], "openai": [ @@ -106,7 +115,8 @@ "output": 10.0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 16384 + "max_tokens": 16384, + "supported": true }, { "id": "o1", @@ -115,7 +125,8 @@ "input": 15.0, "output": 60.0 }, - "allowed_roles": ["main"] + "allowed_roles": ["main"], + "supported": true }, { "id": "o3", @@ -125,7 +136,8 @@ "output": 8.0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 100000 + "max_tokens": 100000, + "supported": true }, { "id": "o3-mini", @@ -135,7 +147,8 @@ "output": 4.4 }, "allowed_roles": ["main"], - "max_tokens": 100000 + "max_tokens": 100000, + "supported": true }, { "id": "o4-mini", @@ -144,7 +157,8 @@ "input": 1.1, "output": 4.4 }, - "allowed_roles": ["main", "fallback"] + "allowed_roles": ["main", "fallback"], + "supported": true }, { "id": "o1-mini", @@ -153,7 +167,8 @@ "input": 1.1, "output": 4.4 }, - "allowed_roles": ["main"] + "allowed_roles": ["main"], + "supported": true }, { "id": "o1-pro", @@ -162,7 +177,8 @@ "input": 150.0, "output": 600.0 }, - "allowed_roles": ["main"] + "allowed_roles": ["main"], + "supported": true }, { "id": "gpt-4-5-preview", @@ -171,7 +187,8 @@ "input": 75.0, "output": 150.0 }, - "allowed_roles": ["main"] + "allowed_roles": ["main"], + "supported": true }, { "id": "gpt-4-1-mini", @@ -180,7 +197,8 @@ "input": 0.4, "output": 1.6 }, - "allowed_roles": ["main"] + "allowed_roles": ["main"], + "supported": true }, { "id": "gpt-4-1-nano", @@ -189,7 +207,8 @@ "input": 0.1, "output": 0.4 }, - "allowed_roles": ["main"] + "allowed_roles": ["main"], + "supported": true }, { "id": "gpt-4o-mini", @@ -198,7 +217,8 @@ "input": 0.15, "output": 0.6 }, - "allowed_roles": ["main"] + "allowed_roles": ["main"], + "supported": true }, { "id": "gpt-4o-search-preview", @@ -207,7 +227,8 @@ "input": 2.5, "output": 10.0 }, - "allowed_roles": ["research"] + "allowed_roles": ["research"], + "supported": true }, { "id": "gpt-4o-mini-search-preview", @@ -216,7 +237,8 @@ "input": 0.15, "output": 0.6 }, - "allowed_roles": ["research"] + "allowed_roles": ["research"], + "supported": true } ], "google": [ @@ -225,21 +247,24 @@ "swe_score": 0.638, "cost_per_1m_tokens": null, "allowed_roles": ["main", "fallback"], - "max_tokens": 1048000 + "max_tokens": 1048000, + "supported": true }, { "id": "gemini-2.5-pro-preview-03-25", "swe_score": 0.638, "cost_per_1m_tokens": null, "allowed_roles": ["main", "fallback"], - "max_tokens": 1048000 + "max_tokens": 1048000, + "supported": true }, { "id": "gemini-2.5-flash-preview-04-17", "swe_score": 0.604, "cost_per_1m_tokens": null, "allowed_roles": ["main", "fallback"], - "max_tokens": 1048000 + "max_tokens": 1048000, + "supported": true }, { "id": "gemini-2.0-flash", @@ -249,14 +274,16 @@ "output": 0.6 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1048000 + "max_tokens": 1048000, + "supported": true }, { "id": "gemini-2.0-flash-lite", "swe_score": 0, "cost_per_1m_tokens": null, "allowed_roles": ["main", "fallback"], - "max_tokens": 1048000 + "max_tokens": 1048000, + "supported": true } ], "xai": [ @@ -269,7 +296,8 @@ "output": 15 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 131072 + "max_tokens": 131072, + "supported": true }, { "id": "grok-3-fast", @@ -280,7 +308,8 @@ "output": 25 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 131072 + "max_tokens": 131072, + "supported": true }, { "id": "grok-4", @@ -291,7 +320,8 @@ "output": 15 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 131072 + "max_tokens": 131072, + "supported": true } ], "groq": [ @@ -303,7 +333,8 @@ "output": 3.0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 131072 + "max_tokens": 131072, + "supported": true }, { "id": "llama-3.3-70b-versatile", @@ -313,7 +344,8 @@ "output": 0.79 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 32768 + "max_tokens": 32768, + "supported": true }, { "id": "llama-3.1-8b-instant", @@ -323,7 +355,8 @@ "output": 0.08 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 131072 + "max_tokens": 131072, + "supported": true }, { "id": "llama-4-scout", @@ -333,7 +366,8 @@ "output": 0.34 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 32768 + "max_tokens": 32768, + "supported": true }, { "id": "llama-4-maverick", @@ -343,7 +377,8 @@ "output": 0.77 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 32768 + "max_tokens": 32768, + "supported": true }, { "id": "mixtral-8x7b-32768", @@ -353,7 +388,8 @@ "output": 0.24 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 32768 + "max_tokens": 32768, + "supported": true }, { "id": "qwen-qwq-32b-preview", @@ -363,7 +399,8 @@ "output": 0.18 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 32768 + "max_tokens": 32768, + "supported": true }, { "id": "deepseek-r1-distill-llama-70b", @@ -373,7 +410,8 @@ "output": 0.99 }, "allowed_roles": ["main", "research"], - "max_tokens": 8192 + "max_tokens": 8192, + "supported": true }, { "id": "gemma2-9b-it", @@ -383,7 +421,8 @@ "output": 0.2 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 8192 + "max_tokens": 8192, + "supported": true }, { "id": "whisper-large-v3", @@ -393,7 +432,8 @@ "output": 0 }, "allowed_roles": ["main"], - "max_tokens": 0 + "max_tokens": 0, + "supported": true } ], "perplexity": [ @@ -405,7 +445,8 @@ "output": 15 }, "allowed_roles": ["main", "research"], - "max_tokens": 8700 + "max_tokens": 8700, + "supported": true }, { "id": "sonar", @@ -415,7 +456,8 @@ "output": 1 }, "allowed_roles": ["research"], - "max_tokens": 8700 + "max_tokens": 8700, + "supported": true }, { "id": "deep-research", @@ -425,7 +467,8 @@ "output": 8 }, "allowed_roles": ["research"], - "max_tokens": 8700 + "max_tokens": 8700, + "supported": true }, { "id": "sonar-reasoning-pro", @@ -435,7 +478,8 @@ "output": 8 }, "allowed_roles": ["main", "research", "fallback"], - "max_tokens": 8700 + "max_tokens": 8700, + "supported": true }, { "id": "sonar-reasoning", @@ -445,7 +489,8 @@ "output": 5 }, "allowed_roles": ["main", "research", "fallback"], - "max_tokens": 8700 + "max_tokens": 8700, + "supported": true } ], "openrouter": [ @@ -457,7 +502,8 @@ "output": 0.6 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1048576 + "max_tokens": 1048576, + "supported": true }, { "id": "google/gemini-2.5-flash-preview-05-20:thinking", @@ -467,7 +513,8 @@ "output": 3.5 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1048576 + "max_tokens": 1048576, + "supported": true }, { "id": "google/gemini-2.5-pro-exp-03-25", @@ -477,7 +524,8 @@ "output": 0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1000000 + "max_tokens": 1000000, + "supported": true }, { "id": "deepseek/deepseek-chat-v3-0324:free", @@ -487,7 +535,9 @@ "output": 0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 163840 + "max_tokens": 163840, + "supported": false, + "reason": "Free OpenRouter models are not supported due to severe rate limits, lack of tool use support, and other reliability issues that make them impractical for production use." }, { "id": "deepseek/deepseek-chat-v3-0324", @@ -497,7 +547,8 @@ "output": 1.1 }, "allowed_roles": ["main"], - "max_tokens": 64000 + "max_tokens": 64000, + "supported": true }, { "id": "openai/gpt-4.1", @@ -507,7 +558,8 @@ "output": 8 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1000000 + "max_tokens": 1000000, + "supported": true }, { "id": "openai/gpt-4.1-mini", @@ -517,7 +569,8 @@ "output": 1.6 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1000000 + "max_tokens": 1000000, + "supported": true }, { "id": "openai/gpt-4.1-nano", @@ -527,7 +580,8 @@ "output": 0.4 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1000000 + "max_tokens": 1000000, + "supported": true }, { "id": "openai/o3", @@ -537,7 +591,8 @@ "output": 40 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 200000 + "max_tokens": 200000, + "supported": true }, { "id": "openai/codex-mini", @@ -547,7 +602,8 @@ "output": 6 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 100000 + "max_tokens": 100000, + "supported": true }, { "id": "openai/gpt-4o-mini", @@ -557,7 +613,8 @@ "output": 0.6 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 100000 + "max_tokens": 100000, + "supported": true }, { "id": "openai/o4-mini", @@ -567,7 +624,8 @@ "output": 4.4 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 100000 + "max_tokens": 100000, + "supported": true }, { "id": "openai/o4-mini-high", @@ -577,7 +635,8 @@ "output": 4.4 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 100000 + "max_tokens": 100000, + "supported": true }, { "id": "openai/o1-pro", @@ -587,7 +646,8 @@ "output": 600 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 100000 + "max_tokens": 100000, + "supported": true }, { "id": "meta-llama/llama-3.3-70b-instruct", @@ -597,7 +657,8 @@ "output": 600 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1048576 + "max_tokens": 1048576, + "supported": true }, { "id": "meta-llama/llama-4-maverick", @@ -607,7 +668,8 @@ "output": 0.6 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1000000 + "max_tokens": 1000000, + "supported": true }, { "id": "meta-llama/llama-4-scout", @@ -617,7 +679,8 @@ "output": 0.3 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1000000 + "max_tokens": 1000000, + "supported": true }, { "id": "qwen/qwen-max", @@ -627,7 +690,8 @@ "output": 6.4 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 32768 + "max_tokens": 32768, + "supported": true }, { "id": "qwen/qwen-turbo", @@ -637,7 +701,8 @@ "output": 0.2 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1000000 + "max_tokens": 1000000, + "supported": true }, { "id": "qwen/qwen3-235b-a22b", @@ -647,7 +712,8 @@ "output": 2 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 24000 + "max_tokens": 24000, + "supported": true }, { "id": "mistralai/mistral-small-3.1-24b-instruct:free", @@ -657,7 +723,9 @@ "output": 0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 96000 + "max_tokens": 96000, + "supported": false, + "reason": "Free OpenRouter models are not supported due to severe rate limits, lack of tool use support, and other reliability issues that make them impractical for production use." }, { "id": "mistralai/mistral-small-3.1-24b-instruct", @@ -667,7 +735,8 @@ "output": 0.3 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 128000 + "max_tokens": 128000, + "supported": true }, { "id": "mistralai/devstral-small", @@ -677,7 +746,8 @@ "output": 0.3 }, "allowed_roles": ["main"], - "max_tokens": 110000 + "max_tokens": 110000, + "supported": true }, { "id": "mistralai/mistral-nemo", @@ -687,7 +757,8 @@ "output": 0.07 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 100000 + "max_tokens": 100000, + "supported": true }, { "id": "thudm/glm-4-32b:free", @@ -697,7 +768,9 @@ "output": 0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 32768 + "max_tokens": 32768, + "supported": false, + "reason": "Free OpenRouter models are not supported due to severe rate limits, lack of tool use support, and other reliability issues that make them impractical for production use." } ], "ollama": [ @@ -708,7 +781,8 @@ "input": 0, "output": 0 }, - "allowed_roles": ["main", "fallback"] + "allowed_roles": ["main", "fallback"], + "supported": true }, { "id": "qwen3:latest", @@ -717,7 +791,8 @@ "input": 0, "output": 0 }, - "allowed_roles": ["main", "fallback"] + "allowed_roles": ["main", "fallback"], + "supported": true }, { "id": "qwen3:14b", @@ -726,7 +801,8 @@ "input": 0, "output": 0 }, - "allowed_roles": ["main", "fallback"] + "allowed_roles": ["main", "fallback"], + "supported": true }, { "id": "qwen3:32b", @@ -735,7 +811,8 @@ "input": 0, "output": 0 }, - "allowed_roles": ["main", "fallback"] + "allowed_roles": ["main", "fallback"], + "supported": true }, { "id": "mistral-small3.1:latest", @@ -744,7 +821,8 @@ "input": 0, "output": 0 }, - "allowed_roles": ["main", "fallback"] + "allowed_roles": ["main", "fallback"], + "supported": true }, { "id": "llama3.3:latest", @@ -753,7 +831,8 @@ "input": 0, "output": 0 }, - "allowed_roles": ["main", "fallback"] + "allowed_roles": ["main", "fallback"], + "supported": true }, { "id": "phi4:latest", @@ -762,7 +841,8 @@ "input": 0, "output": 0 }, - "allowed_roles": ["main", "fallback"] + "allowed_roles": ["main", "fallback"], + "supported": true } ], "azure": [ @@ -771,10 +851,11 @@ "swe_score": 0.332, "cost_per_1m_tokens": { "input": 2.5, - "output": 10.0 + "output": 10 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 16384 + "max_tokens": 16384, + "supported": true }, { "id": "gpt-4o-mini", @@ -784,7 +865,8 @@ "output": 0.6 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 16384 + "max_tokens": 16384, + "supported": true }, { "id": "gpt-4-1", @@ -794,7 +876,8 @@ "output": 10.0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 16384 + "max_tokens": 16384, + "supported": true } ], "bedrock": [ @@ -805,7 +888,8 @@ "input": 0.25, "output": 1.25 }, - "allowed_roles": ["main", "fallback"] + "allowed_roles": ["main", "fallback"], + "supported": true }, { "id": "us.anthropic.claude-3-opus-20240229-v1:0", @@ -814,7 +898,8 @@ "input": 15, "output": 75 }, - "allowed_roles": ["main", "fallback", "research"] + "allowed_roles": ["main", "fallback", "research"], + "supported": true }, { "id": "us.anthropic.claude-3-5-sonnet-20240620-v1:0", @@ -823,7 +908,8 @@ "input": 3, "output": 15 }, - "allowed_roles": ["main", "fallback", "research"] + "allowed_roles": ["main", "fallback", "research"], + "supported": true }, { "id": "us.anthropic.claude-3-5-sonnet-20241022-v2:0", @@ -832,7 +918,8 @@ "input": 3, "output": 15 }, - "allowed_roles": ["main", "fallback", "research"] + "allowed_roles": ["main", "fallback", "research"], + "supported": true }, { "id": "us.anthropic.claude-3-7-sonnet-20250219-v1:0", @@ -842,7 +929,8 @@ "output": 15 }, "allowed_roles": ["main", "fallback", "research"], - "max_tokens": 65536 + "max_tokens": 65536, + "supported": true }, { "id": "us.anthropic.claude-3-5-haiku-20241022-v1:0", @@ -851,7 +939,8 @@ "input": 0.8, "output": 4 }, - "allowed_roles": ["main", "fallback"] + "allowed_roles": ["main", "fallback"], + "supported": true }, { "id": "us.anthropic.claude-opus-4-20250514-v1:0", @@ -860,7 +949,8 @@ "input": 15, "output": 75 }, - "allowed_roles": ["main", "fallback", "research"] + "allowed_roles": ["main", "fallback", "research"], + "supported": true }, { "id": "us.anthropic.claude-sonnet-4-20250514-v1:0", @@ -869,7 +959,8 @@ "input": 3, "output": 15 }, - "allowed_roles": ["main", "fallback", "research"] + "allowed_roles": ["main", "fallback", "research"], + "supported": true }, { "id": "us.deepseek.r1-v1:0", @@ -879,7 +970,8 @@ "output": 5.4 }, "allowed_roles": ["research"], - "max_tokens": 65536 + "max_tokens": 65536, + "supported": true } ] }