1335 lines
56 KiB
TypeScript
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;
|
|
}
|