agent-ecosystem/src/renderer/utils/openCodeModelRecommendations.ts

1335 lines
56 KiB
TypeScript

export type OpenCodeTeamModelRecommendationLevel =
| 'recommended'
| 'recommended-with-limits'
| 'tested'
| 'tested-with-limits'
| 'unavailable-in-opencode'
| 'not-recommended';
export interface OpenCodeTeamModelRecommendation {
readonly level: OpenCodeTeamModelRecommendationLevel;
readonly label: string;
readonly reason: string;
}
const PASSED_REAL_AGENT_TEAMS_E2E_REASON =
'This exact model route passed real OpenCode Agent Teams smoke E2E: launch, direct reply, and teammate-to-teammate relay.';
const PASSED_FREE_ROUTE_REAL_AGENT_TEAMS_E2E_REASON =
'This exact free model route passed real OpenCode Agent Teams smoke E2E, but free routes can still have capacity limits, rate limits, and variable latency.';
const PASSED_GAUNTLET_REAL_AGENT_TEAMS_E2E_REASON =
'This exact model route passed the deeper OpenCode Agent Teams gauntlet: repeated launches, peer relays, concurrent deliveries, taskRefs, and transcript hygiene.';
const PASSED_GAUNTLET_WITH_LIMITS_REASON =
'This exact model route passed the deeper OpenCode Agent Teams gauntlet, but has a production caveat such as free-route capacity, preview availability, cost, or latency variance.';
const OPENCODE_TEAM_RECOMMENDED_MODELS = new Set<string>(['opencode/big-pickle']);
const OPENCODE_TEAM_RECOMMENDED_WITH_LIMITS_MODELS = new Set<string>([]);
const OPENCODE_TEAM_TESTED_MODELS = new Set<string>([
'openrouter/anthropic/claude-haiku-4.5',
'openrouter/anthropic/claude-sonnet-4.6',
'openrouter/google/gemini-2.5-flash',
'openrouter/google/gemini-3.1-flash-lite-preview',
'openrouter/google/gemini-3-flash-preview',
'openrouter/google/gemma-4-26b-a4b-it',
'openrouter/minimax/minimax-m2',
'openrouter/minimax/minimax-m2.1',
'openrouter/minimax/minimax-m2.5',
'openrouter/minimax/minimax-m2.7',
'openrouter/moonshotai/kimi-k2.6',
'openrouter/mistralai/codestral-2508',
'openrouter/openai/gpt-5.1-codex-mini',
'openrouter/openai/gpt-5.3-codex',
'openrouter/openai/gpt-5-nano',
'openrouter/stepfun/step-3.5-flash',
'openrouter/x-ai/grok-4.1-fast',
'openrouter/xiaomi/mimo-v2-pro',
'openrouter/z-ai/glm-4.7',
'openrouter/z-ai/glm-4.7-flash',
'openrouter/z-ai/glm-5.1',
]);
const OPENCODE_TEAM_TESTED_WITH_LIMITS_MODELS = new Set<string>(['opencode/minimax-m2.5-free']);
const OPENCODE_TEAM_TESTED_WITH_LIMITS_REASONS = new Map<string, string>([
[
'opencode/minimax-m2.5-free',
'This exact free model route passed simple OpenCode Agent Teams provider stress, but a deeper repeated gauntlet hit duplicate or missing reply tokens. Keep it below Recommended until a clean repeated gauntlet passes.',
],
]);
const OPENCODE_TEAM_UNAVAILABLE_MODELS = new Map<string, string>([
[
'openrouter/qwen/qwen3-coder-plus',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-coder-next',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/google/gemini-2.0-flash-lite-001',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4.1-nano',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4o-mini-2024-07-18',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4o-mini-search-preview',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen-plus',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen-turbo',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-coder:free',
'This free route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-next-80b-a3b-instruct:free',
'This free route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-235b-a22b-2507',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-32b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-14b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-8b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwq-32b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/deepseek/deepseek-v3.2-exp',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/deepseek/deepseek-chat',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mistral-nemo',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mistral-small-24b-instruct-2501',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mistral-small-3.1-24b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mixtral-8x7b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/cohere/command-r7b-12-2024',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/cohere/command-r-08-2024',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/rekaai/reka-flash-3',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/rekaai/reka-edge',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/nvidia/nemotron-3-nano-30b-a3b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/minimax/minimax-01',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/nvidia/llama-3.3-nemotron-super-49b-v1.5',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-max-thinking',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/devstral-medium',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/devstral-small',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mistral-large-2512',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/ministral-14b-2512',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/ministral-8b-2512',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/ministral-3b-2512',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3.5-35b-a3b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-30b-a3b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/baidu/ernie-4.5-21b-a3b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/nousresearch/hermes-4-70b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/minimax/minimax-m2-her',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/xiaomi/mimo-v2.5',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/xiaomi/mimo-v2.5-pro',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/x-ai/grok-4.20',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/google/gemini-3.1-flash-image-preview',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/z-ai/glm-5v-turbo',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/x-ai/grok-4.20-multi-agent',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mistral-small-creative',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-5.3-chat',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/voxtral-small-24b-2507',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-5-chat',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen-2.5-72b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/tngtech/deepseek-r1t2-chimera',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/google/gemini-2.5-pro-preview',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mistral-saba',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mistral-large-2411',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-vl-30b-a3b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/inclusionai/ling-2.6-1t:free',
'This free route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/inclusionai/ling-2.6-flash:free',
'This free route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/meta-llama/llama-3.1-8b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen-2.5-7b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/amazon/nova-lite-v1',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/z-ai/glm-4-32b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/bytedance-seed/seed-1.6-flash',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/meta-llama/llama-4-scout',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/meta-llama/llama-3.3-70b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/bytedance-seed/seed-2.0-mini',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-vl-32b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/alibaba/tongyi-deepresearch-30b-a3b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/arcee-ai/trinity-large-preview',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/amazon/nova-micro-v1',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/arcee-ai/trinity-mini',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3.5-9b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/essentialai/rnj-1-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/upstage/solar-pro-3',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/allenai/olmo-3.1-32b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen-plus-2025-07-28',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/tencent/hy3-preview:free',
'This free route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-vl-8b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/nex-agi/deepseek-v3.1-nex-n1',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/baidu/ernie-4.5-vl-28b-a3b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/thedrummer/rocinante-12b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/meta-llama/llama-3.1-70b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen-plus-2025-07-28:thinking',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/z-ai/glm-4.6v',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/anthropic/claude-3-haiku',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/bytedance-seed/seed-2.0-lite',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-235b-a22b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3.5-122b-a10b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/deepseek/deepseek-r1-0528',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/amazon/nova-2-lite-v1',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/o3-mini',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mistral-large-2407',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/thedrummer/unslopnemo-12b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-vl-235b-a22b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-vl-8b-thinking',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/kwaipilot/kat-coder-pro-v2',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/o4-mini-high',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/o3-mini-high',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4o',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/cohere/command-r-plus-08-2024',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-vl-30b-a3b-thinking',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/sao10k/l3.1-euryale-70b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3.5-27b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/arcee-ai/virtuoso-large',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-3.5-turbo',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/bytedance-seed/seed-1.6',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/nvidia/llama-3.1-nemotron-70b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen-vl-max',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen3-vl-235b-a22b-thinking',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-audio-mini',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/amazon/nova-pro-v1',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/relace/relace-search',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen-max',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/pixtral-large-2411',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mixtral-8x22b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-3.5-turbo-16k',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/mistralai/mistral-large',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/o4-mini-deep-research',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/ai21/jamba-large-1.7',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/o3',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-audio',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4o-audio-preview',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4o-2024-11-20',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4o-2024-08-06',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/amazon/nova-premier-v1',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/anthropic/claude-3.7-sonnet:thinking',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4o-2024-05-13',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/~anthropic/claude-opus-latest',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4-turbo',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4-turbo-preview',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-4-1106-preview',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/o3-deep-research',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/o1',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/o3-pro',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/anthropic/claude-opus-4.6-fast',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openai/gpt-5.5-pro',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openrouter/auto',
'This aggregator route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openrouter/pareto-code',
'This aggregator route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/openrouter/bodybuilder',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/baidu/qianfan-ocr-fast:free',
'This free route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/google/lyria-3-pro-preview',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/ibm-granite/granite-4.0-h-micro',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/microsoft/phi-4',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/meta-llama/llama-guard-4-12b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/qwen/qwen-vl-plus',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/deepseek/deepseek-r1-distill-qwen-32b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/google/lyria-3-clip-preview',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/liquid/lfm-2-24b-a2b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/meta-llama/llama-3.2-1b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/bytedance/ui-tars-1.5-7b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/baidu/ernie-4.5-21b-a3b-thinking',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/arcee-ai/spotlight',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/meta-llama/llama-3.2-3b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/meta-llama/llama-guard-3-8b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/nousresearch/hermes-3-llama-3.1-70b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/allenai/olmo-3-32b-think',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/tencent/hunyuan-a13b-instruct',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/meta-llama/llama-4-maverick',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/nvidia/nemotron-nano-12b-v2-vl',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/thedrummer/cydonia-24b-v4.1',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/microsoft/wizardlm-2-8x22b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/arcee-ai/coder-large',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/thedrummer/skyfall-36b-v2',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/baidu/ernie-4.5-300b-a47b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
[
'openrouter/sao10k/l3.3-euryale-70b',
'This route exists in OpenRouter, but was not found in the live OpenCode provider catalog used for Agent Teams launch.',
],
]);
const OPENCODE_TEAM_NOT_RECOMMENDED_MODELS = new Map<string, string>([
[
'opencode/ling-2.6-flash-free',
'Real OpenCode Agent Teams E2E showed unreliable peer relay for this model.',
],
[
'opencode/nemotron-3-super-free',
'Real OpenCode Agent Teams E2E showed unreliable team messaging: a current matrix run failed direct reply, peer relay, and taskRefs, and work-sync was inconsistent or took several minutes.',
],
[
'openrouter/google/gemini-2.5-pro',
'Real OpenCode Agent Teams E2E passed direct reply but failed peer relay.',
],
[
'openrouter/anthropic/claude-opus-4.6',
'Fresh OpenCode Agent Teams gauntlet launched but timed out already on direct reply.',
],
[
'openrouter/anthropic/claude-opus-4.7',
'Fresh OpenCode Agent Teams gauntlet failed OpenCode launch readiness.',
],
[
'openrouter/google/gemini-2.5-flash-lite',
'Real OpenCode Agent Teams E2E passed direct reply but failed peer relay with plain/control-character output instead of MCP message_send.',
],
[
'openrouter/google/gemini-3-pro-preview',
'OpenRouter reported no runnable endpoints for this model during execution verification.',
],
[
'openrouter/google/gemini-3.1-pro-preview',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness before producing usable Agent Teams behavior.',
],
[
'openrouter/google/gemini-3.1-pro-preview-customtools',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/google/gemini-2.5-pro-preview-05-06',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/deepseek/deepseek-v3.2',
'Real OpenCode Agent Teams E2E passed direct reply but failed peer relay after treating Agent Teams MCP tools as unavailable.',
],
[
'openrouter/deepseek/deepseek-v3.2-speciale',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this route.',
],
[
'openrouter/meta-llama/llama-3.3-70b-instruct:free',
'Execution verification timed out before Agent Teams launch could proceed.',
],
[
'openrouter/minimax/minimax-m2.5:free',
'This OpenRouter free route for MiniMax M2.5 passed direct reply but failed teammate-to-teammate relay. The non-free OpenRouter route and the OpenCode free alias are tracked separately.',
],
[
'openrouter/minimax/minimax-m1',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/moonshotai/kimi-k2-thinking',
'Real OpenCode Agent Teams E2E failed during launch reconciliation with an aborted assistant message.',
],
[
'openrouter/moonshotai/kimi-k2.5',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/moonshotai/kimi-k2-0905',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/moonshotai/kimi-k2',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/openai/gpt-5.2-codex',
'Real OpenCode Agent Teams E2E failed launch readiness because model verification timed out.',
],
[
'openrouter/openai/gpt-5.2',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/openai/gpt-5-mini',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/openai/gpt-5-codex',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/openai/gpt-5.5',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/openai/gpt-5.1-chat',
'Real OpenCode Agent Teams E2E passed direct reply but failed peer relay by delegating to the lead instead of messaging the requested teammate.',
],
[
'openrouter/openai/gpt-5.1',
'Fresh OpenCode Agent Teams gauntlet passed direct and peer relays but failed concurrent delivery, taskRefs, and duplicate-token correctness.',
],
[
'openrouter/openai/gpt-5.1-codex',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness during model verification.',
],
[
'openrouter/openai/gpt-5.4-mini',
'Fresh OpenCode Agent Teams gauntlet passed direct and peer relays but failed concurrent delivery, taskRefs, and duplicate-token correctness.',
],
[
'openrouter/openai/gpt-5.4',
'Fresh OpenCode Agent Teams gauntlet passed direct and peer relays but failed concurrent delivery, taskRefs, and duplicate-token correctness.',
],
[
'openrouter/openai/gpt-oss-20b:free',
'Execution verification passed, but real Agent Teams E2E produced fake tool text instead of MCP message_send.',
],
[
'openrouter/openai/gpt-oss-120b:free',
'Fresh OpenCode Agent Teams gauntlet passed direct reply but timed out on peer relay and later Agent Teams stages.',
],
[
'openrouter/google/gemma-4-26b-a4b-it:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness during model verification.',
],
[
'openrouter/google/gemma-4-31b-it:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness during model verification.',
],
[
'openrouter/nvidia/nemotron-3-super-120b-a12b:free',
'Fresh OpenCode Agent Teams gauntlet passed direct reply but failed peer relay and later Agent Teams stages.',
],
[
'openrouter/nvidia/nemotron-3-nano-30b-a3b:free',
'Fresh OpenCode Agent Teams gauntlet passed direct reply but failed peer relay and later Agent Teams stages.',
],
[
'openrouter/nvidia/nemotron-nano-12b-v2-vl:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because model verification timed out.',
],
[
'openrouter/nvidia/nemotron-nano-9b-v2:free',
'Fresh OpenCode Agent Teams gauntlet passed direct reply but failed peer relay through OpenCode tool usage.',
],
[
'openrouter/google/gemma-3-12b-it',
'Fresh OpenCode Agent Teams gauntlet launched but timed out already on direct reply.',
],
[
'openrouter/openai/gpt-oss-safeguard-20b',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/google/gemini-2.5-flash-lite-preview-09-2025',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/openrouter/free',
'Aggregator routing was unstable in real Agent Teams E2E and timed out during peer relay.',
],
[
'openrouter/x-ai/grok-code-fast-1',
'Real OpenCode Agent Teams E2E passed direct reply but failed peer relay by delegating to the lead instead of messaging the requested teammate.',
],
[
'openrouter/z-ai/glm-4.5-air:free',
'Real OpenCode Agent Teams E2E was slow and failed peer relay with empty assistant turns.',
],
[
'openrouter/z-ai/glm-4.5',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/z-ai/glm-5-turbo',
'Real OpenCode Agent Teams gauntlet passed direct reply but failed peer relay and concurrent delivery.',
],
[
'openrouter/qwen/qwen3.5-flash-02-23',
'Real OpenCode Agent Teams gauntlet completed the flow but failed duplicate-token correctness.',
],
[
'openrouter/qwen/qwen3-coder-flash',
'Fresh OpenCode Agent Teams gauntlet passed direct and first relay, then failed chained and concurrent reply flow.',
],
[
'openrouter/qwen/qwen3-coder',
'Fresh OpenCode Agent Teams gauntlet failed concurrent delivery, taskRefs, and protocol cleanliness.',
],
[
'openrouter/qwen/qwen3.6-plus',
'Real OpenCode Agent Teams gauntlet completed most stages but failed taskRefs and duplicate-token correctness.',
],
[
'openrouter/qwen/qwen3.5-plus-02-15',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/qwen/qwen3.5-397b-a17b',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/qwen/qwen3-30b-a3b-instruct-2507',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/qwen/qwen3-30b-a3b-thinking-2507',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/inception/mercury-2',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/prime-intellect/intellect-3',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/openai/gpt-4.1-mini',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/openai/o4-mini',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance even at the reduced verification cap.',
],
[
'openrouter/arcee-ai/trinity-large-thinking',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/qwen/qwen3-235b-a22b-thinking-2507',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/xiaomi/mimo-v2-omni',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/deepseek/deepseek-r1',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/openai/gpt-4.1',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance even at the reduced verification cap.',
],
[
'openrouter/openai/gpt-5',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance even at the reduced verification cap.',
],
[
'openrouter/openai/gpt-5.1-codex-max',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/openai/gpt-5.2-chat',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/x-ai/grok-3',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/anthropic/claude-sonnet-4',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/x-ai/grok-3-beta',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/anthropic/claude-opus-4.1',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/anthropic/claude-opus-4',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/openai/gpt-5-pro',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/openai/gpt-5.2-pro',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/openai/gpt-5.4-pro',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/liquid/lfm-2.5-1.2b-thinking:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this free route.',
],
[
'openrouter/liquid/lfm-2.5-1.2b-instruct:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this free route.',
],
[
'openrouter/google/gemma-3-4b-it:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this free route.',
],
[
'openrouter/meta-llama/llama-3.2-3b-instruct:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this free route.',
],
[
'openrouter/google/gemma-3-27b-it:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this free route.',
],
[
'openrouter/nousresearch/hermes-3-llama-3.1-405b:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this free route.',
],
[
'openrouter/google/gemma-3-4b-it',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this route.',
],
[
'openrouter/cognitivecomputations/dolphin-mistral-24b-venice-edition:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this free route.',
],
[
'openrouter/google/gemma-3-12b-it:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this free route.',
],
[
'openrouter/meta-llama/llama-3.2-11b-vision-instruct',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this route.',
],
[
'openrouter/qwen/qwen2.5-vl-72b-instruct',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this route.',
],
[
'openrouter/deepseek/deepseek-r1-distill-llama-70b',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this route.',
],
[
'openrouter/z-ai/glm-4.5v',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/qwen/qwen3-max',
'Fresh OpenCode Agent Teams gauntlet passed direct and peer relays but failed concurrent delivery, taskRefs, and duplicate-token correctness.',
],
[
'openrouter/xiaomi/mimo-v2-flash',
'Real OpenCode Agent Teams gauntlet failed concurrent reply delivery and taskRefs for one teammate.',
],
[
'openrouter/mistralai/mistral-small-2603',
'Real OpenCode Agent Teams gauntlet passed direct and first relay but failed chained/concurrent relay.',
],
[
'openrouter/deepseek/deepseek-v4-pro',
'Real OpenCode Agent Teams gauntlet passed direct reply but timed out on peer relay and concurrent delivery.',
],
[
'openrouter/x-ai/grok-4',
'Real OpenCode Agent Teams gauntlet passed direct reply but failed peer relay with an empty assistant turn.',
],
[
'openrouter/google/gemini-2.0-flash-001',
'Real OpenCode Agent Teams gauntlet passed direct and first relay but failed chained/concurrent relay.',
],
[
'openrouter/google/gemma-3n-e4b-it',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this route.',
],
[
'openrouter/google/gemma-3n-e2b-it:free',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this free route.',
],
[
'openrouter/deepseek/deepseek-chat-v3.1',
'Real OpenCode Agent Teams gauntlet failed concurrent replies, taskRefs, and duplicate-token correctness.',
],
[
'openrouter/z-ai/glm-4.5-air',
'Real OpenCode Agent Teams gauntlet passed direct reply but failed peer relay through OpenCode tool handling.',
],
[
'openrouter/anthropic/claude-sonnet-4.5',
'Fresh OpenCode Agent Teams gauntlet hit concurrent reply, taskRefs, and protocol failure; keep below Tested until rerun passes.',
],
[
'openrouter/anthropic/claude-opus-4.5',
'Fresh OpenCode Agent Teams gauntlet hit concurrent reply, taskRefs, and protocol failure; keep below Tested until rerun passes.',
],
[
'openrouter/anthropic/claude-3.5-haiku',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because production Agent Teams prompts exceeded the route/key token allowance.',
],
[
'openrouter/anthropic/claude-3.7-sonnet',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/mistralai/mistral-medium-3',
'Real OpenCode Agent Teams gauntlet timed out already on direct reply.',
],
[
'openrouter/mistralai/mistral-medium-3.1',
'Fresh OpenCode Agent Teams gauntlet passed direct reply but timed out on peer relay and later Agent Teams stages.',
],
[
'openrouter/mistralai/devstral-2512',
'Fresh OpenCode Agent Teams gauntlet failed OpenCode launch readiness.',
],
[
'openrouter/x-ai/grok-3-mini',
'Real OpenCode Agent Teams gauntlet passed direct reply but failed peer relay and concurrent delivery.',
],
[
'openrouter/x-ai/grok-3-mini-beta',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/qwen/qwen3-next-80b-a3b-instruct',
'Real OpenCode Agent Teams gauntlet passed direct reply but timed out on peer relay through OpenCode.',
],
[
'openrouter/z-ai/glm-4.6',
'Fresh OpenCode Agent Teams gauntlet regressed versus older smoke: direct reply passed, but peer relay failed.',
],
[
'openrouter/openai/gpt-oss-120b',
'Real OpenCode Agent Teams gauntlet passed direct and first relay but failed chained relay, concurrent delivery, transcript hygiene, and duplicate-token correctness.',
],
[
'openrouter/qwen/qwen3-coder-30b-a3b-instruct',
'Real OpenCode Agent Teams gauntlet passed direct and peer relays but failed concurrent delivery, taskRefs, and duplicate-token correctness.',
],
[
'openrouter/qwen/qwen-2.5-coder-32b-instruct',
'Fresh OpenCode Agent Teams gauntlet failed launch readiness because OpenRouter reported no tool-use endpoint for this route.',
],
[
'openrouter/x-ai/grok-4-fast',
'Fresh OpenCode Agent Teams gauntlet passed direct and peer relays but failed concurrent delivery, taskRefs, transcript hygiene, and duplicate-token correctness.',
],
[
'openrouter/openai/gpt-5.4-nano',
'Real OpenCode Agent Teams gauntlet passed direct and peer relays but failed concurrent delivery, taskRefs, and duplicate-token correctness.',
],
[
'openrouter/nvidia/nemotron-3-super-120b-a12b',
'Real OpenCode Agent Teams gauntlet passed direct reply but failed peer relay, concurrent delivery, transcript hygiene, and latency stability.',
],
[
'openrouter/mistralai/mistral-small-3.2-24b-instruct',
'Real OpenCode Agent Teams gauntlet passed direct and peer relays but failed concurrent delivery, taskRefs, and duplicate-token correctness.',
],
[
'openrouter/google/gemma-4-31b-it',
'Real OpenCode Agent Teams gauntlet launched but timed out already on direct reply.',
],
[
'openrouter/openai/gpt-oss-20b',
'Real OpenCode Agent Teams gauntlet launched but timed out already on direct reply.',
],
[
'openrouter/google/gemma-3-27b-it',
'Real OpenCode Agent Teams gauntlet launched but timed out already on direct reply.',
],
[
'openrouter/openai/gpt-4o-mini',
'Fresh OpenCode Agent Teams gauntlet passed direct and peer relays but failed concurrent delivery, taskRefs, and duplicate-token correctness.',
],
[
'openrouter/deepseek/deepseek-chat-v3-0324',
'Real OpenCode Agent Teams gauntlet passed direct reply but failed peer relay, concurrent delivery, transcript hygiene, and latency stability.',
],
[
'openrouter/deepseek/deepseek-v3.1-terminus',
'Fresh OpenCode Agent Teams gauntlet was blocked during launch by OpenRouter key/max_tokens allowance under production Agent Teams prompts.',
],
[
'openrouter/qwen/qwen3-next-80b-a3b-thinking',
'Real OpenCode Agent Teams gauntlet launched but timed out already on direct reply.',
],
[
'openrouter/nvidia/nemotron-nano-9b-v2',
'Real OpenCode Agent Teams gauntlet passed direct reply but failed peer relay, concurrent delivery, transcript hygiene, and latency stability.',
],
]);
function normalizeOpenCodeTeamModelId(modelId: string | null | undefined): string {
return modelId?.trim().toLowerCase() ?? '';
}
function isOpenCodeProviderAllowanceReason(reason: string): boolean {
return /(?:allowance|max_tokens|max-token)/i.test(reason);
}
export function getOpenCodeTeamModelRecommendation(
modelId: string | null | undefined
): OpenCodeTeamModelRecommendation | null {
const normalizedModelId = normalizeOpenCodeTeamModelId(modelId);
if (!normalizedModelId) {
return null;
}
if (OPENCODE_TEAM_RECOMMENDED_MODELS.has(normalizedModelId)) {
return {
level: 'recommended',
label: 'Recommended',
reason: PASSED_GAUNTLET_REAL_AGENT_TEAMS_E2E_REASON,
};
}
if (OPENCODE_TEAM_RECOMMENDED_WITH_LIMITS_MODELS.has(normalizedModelId)) {
return {
level: 'recommended-with-limits',
label: 'Recommended with limits',
reason: PASSED_GAUNTLET_WITH_LIMITS_REASON,
};
}
if (OPENCODE_TEAM_TESTED_MODELS.has(normalizedModelId)) {
return {
level: 'tested',
label: 'Tested',
reason: PASSED_REAL_AGENT_TEAMS_E2E_REASON,
};
}
if (OPENCODE_TEAM_TESTED_WITH_LIMITS_MODELS.has(normalizedModelId)) {
return {
level: 'tested-with-limits',
label: 'Tested with limits',
reason:
OPENCODE_TEAM_TESTED_WITH_LIMITS_REASONS.get(normalizedModelId) ??
PASSED_FREE_ROUTE_REAL_AGENT_TEAMS_E2E_REASON,
};
}
const unavailableReason = OPENCODE_TEAM_UNAVAILABLE_MODELS.get(normalizedModelId);
if (unavailableReason) {
return {
level: 'unavailable-in-opencode',
label: 'Not verified in OpenCode',
reason: unavailableReason,
};
}
const notRecommendedReason = OPENCODE_TEAM_NOT_RECOMMENDED_MODELS.get(normalizedModelId);
if (notRecommendedReason) {
if (isOpenCodeProviderAllowanceReason(notRecommendedReason)) {
return null;
}
return {
level: 'not-recommended',
label: 'Not recommended',
reason: notRecommendedReason,
};
}
return null;
}
export function isOpenCodeTeamModelRecommended(modelId: string | null | undefined): boolean {
const recommendation = getOpenCodeTeamModelRecommendation(modelId);
return (
recommendation?.level === 'recommended' || recommendation?.level === 'recommended-with-limits'
);
}
export function getOpenCodeTeamModelRecommendationSortRank(
modelId: string | null | undefined
): number {
const recommendation = getOpenCodeTeamModelRecommendation(modelId);
if (recommendation?.level === 'recommended') {
return 0;
}
if (recommendation?.level === 'recommended-with-limits') {
return 1;
}
if (recommendation?.level === 'tested') {
return 2;
}
if (recommendation?.level === 'tested-with-limits') {
return 3;
}
if (recommendation?.level === 'unavailable-in-opencode') {
return 5;
}
if (recommendation?.level === 'not-recommended') {
return 6;
}
return 4;
}
export function compareOpenCodeTeamModelRecommendations(
leftModelId: string | null | undefined,
rightModelId: string | null | undefined
): number {
const leftRank = getOpenCodeTeamModelRecommendationSortRank(leftModelId);
const rightRank = getOpenCodeTeamModelRecommendationSortRank(rightModelId);
if (leftRank !== rightRank) {
return leftRank - rightRank;
}
return 0;
}