From ffd3e9e2628e33da5d529a28e3b463d2f2b2d676 Mon Sep 17 00:00:00 2001 From: Sisyphus Date: Tue, 28 Apr 2026 14:50:38 +0200 Subject: [PATCH] feat: prepend openrouter model fallbacks (deepseek-v4-pro, kimi-k2.6, qwen3.6-flash, etc.) --- src/shared/model-requirements.ts | 216 +++++++++++++++++++++++++++++++ 1 file changed, 216 insertions(+) diff --git a/src/shared/model-requirements.ts b/src/shared/model-requirements.ts index 786de36371..b8d7308393 100644 --- a/src/shared/model-requirements.ts +++ b/src/shared/model-requirements.ts @@ -20,6 +20,7 @@ export type ModelRequirement = { export const AGENT_MODEL_REQUIREMENTS: Record = { sisyphus: { fallbackChain: [ + { providers: ["openrouter"], model: "deepseek/deepseek-v4-pro", variant: "max" }, { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-opus-4-7", @@ -44,6 +45,26 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { { providers: ["opencode"], model: "big-pickle" }, ], requiresAnyModel: true, + }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["kimi-for-coding"], model: "k2p5" }, + { + providers: [ + "opencode", + "moonshotai", + "moonshotai-cn", + "firmware", + "ollama-cloud", + "aihubmix", + "vercel", + ], + model: "kimi-k2.5", + }, + { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5", variant: "medium" }, + { providers: ["zai-coding-plan", "opencode", "vercel"], model: "glm-5" }, + { providers: ["opencode"], model: "big-pickle" }, + ], + requiresAnyModel: true, }, hephaestus: { fallbackChain: [ @@ -57,6 +78,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, oracle: { fallbackChain: [ + { providers: ["openrouter"], model: "moonshotai/kimi-k2.6" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5", @@ -74,9 +96,33 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, { providers: ["opencode-go", "vercel"], model: "glm-5" }, ], + }, + { + providers: ["google", "github-copilot", "opencode", "vercel"], + model: "gemini-3.1-pro", + variant: "high", + }, + { + providers: ["anthropic", "github-copilot", "opencode", "vercel"], + model: "claude-opus-4-7", + variant: "max", + }, + { providers: ["opencode-go", "vercel"], model: "glm-5" }, + ], }, librarian: { fallbackChain: [ + { providers: ["openrouter"], model: "qwen/qwen3.6-flash" }, + { providers: ["openai"], model: "gpt-5.4-mini-fast" }, + { providers: ["opencode-go", "vercel"], model: "minimax-m2.7-highspeed" }, + { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, + { providers: ["anthropic", "opencode", "vercel"], model: "claude-haiku-4-5" }, + { providers: ["openai", "opencode", "vercel"], model: "gpt-5.4-nano" }, + ], + }, + explore: { + fallbackChain: [ + { providers: ["openrouter"], model: "qwen/qwen3.6-flash" }, { providers: ["openai"], model: "gpt-5.4-mini-fast" }, { providers: ["opencode-go", "vercel"], model: "minimax-m2.7-highspeed" }, { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, @@ -86,6 +132,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, explore: { fallbackChain: [ + { providers: ["openrouter"], model: "qwen/qwen3.6-flash" }, { providers: ["openai"], model: "gpt-5.4-mini-fast" }, { providers: ["opencode-go", "vercel"], model: "minimax-m2.7-highspeed" }, { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, @@ -95,6 +142,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, "multimodal-looker": { fallbackChain: [ + { providers: ["openrouter"], model: "~google/gemini-flash-latest" }, { providers: ["openai", "opencode", "vercel"], model: "gpt-5.5", variant: "medium" }, { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, { providers: ["zai-coding-plan", "vercel"], model: "glm-4.6v" }, @@ -103,11 +151,75 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, prometheus: { fallbackChain: [ + { providers: ["openrouter"], model: "deepseek/deepseek-v4-pro", variant: "max" }, + { + providers: ["anthropic", "github-copilot", "opencode", "vercel"], + model: "claude-opus-4-7", + variant: "max", + }, + { + providers: ["openai", "github-copilot", "opencode", "vercel"], + model: "gpt-5.5", + variant: "high", + }, + { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { + providers: ["google", "github-copilot", "opencode", "vercel"], + model: "gemini-3.1-pro", + }, + ], + }, + metis: { + fallbackChain: [ + { providers: ["openrouter"], model: "deepseek/deepseek-v4-pro", variant: "max" }, + { + providers: ["anthropic", "github-copilot", "opencode", "vercel"], + model: "claude-opus-4-7", + variant: "max", + }, + { + providers: ["openai", "github-copilot", "opencode", "vercel"], + model: "gpt-5.5", + variant: "high", + }, + { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["kimi-for-coding"], model: "k2p5" }, + ], + }, + momus: { + fallbackChain: [ + { providers: ["openrouter"], model: "deepseek/deepseek-v4-pro", reasoningEffort: "xhigh" }, + { + providers: ["openai", "github-copilot", "opencode", "vercel"], + model: "gpt-5.5", + variant: "xhigh", + }, { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-opus-4-7", variant: "max", }, + { + providers: ["google", "github-copilot", "opencode", "vercel"], + model: "gemini-3.1-pro", + variant: "high", + }, + { providers: ["opencode-go", "vercel"], model: "glm-5" }, + ], + }, + atlas: { + fallbackChain: [ + { providers: ["openrouter"], model: "xiaomi/mimo-v2.5-pro" }, + { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { + providers: ["openai", "github-copilot", "opencode", "vercel"], + model: "gpt-5.5", + variant: "medium", + }, + { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, + ], + }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5", @@ -122,6 +234,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, metis: { fallbackChain: [ + { providers: ["openrouter"], model: "deepseek/deepseek-v4-pro", variant: "max" }, { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-opus-4-7", @@ -138,6 +251,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, momus: { fallbackChain: [ + { providers: ["openrouter"], model: "deepseek/deepseek-v4-pro", reasoningEffort: "xhigh" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5", @@ -158,6 +272,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, atlas: { fallbackChain: [ + { providers: ["openrouter"], model: "xiaomi/mimo-v2.5-pro" }, { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6" }, { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, { @@ -186,6 +301,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { export const CATEGORY_MODEL_REQUIREMENTS: Record = { "visual-engineering": { fallbackChain: [ + { providers: ["openrouter"], model: "~google/gemini-pro-latest" }, { providers: ["google", "github-copilot", "opencode", "vercel"], model: "gemini-3.1-pro", @@ -203,6 +319,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { }, ultrabrain: { fallbackChain: [ + { providers: ["openrouter"], model: "openai/gpt-5.5", reasoningEffort: "xhigh" }, { providers: ["openai", "opencode", "vercel"], model: "gpt-5.5", @@ -242,6 +359,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { }, artistry: { fallbackChain: [ + { providers: ["openrouter"], model: "google/gemini-3.1-pro-preview" }, { providers: ["google", "github-copilot", "opencode", "vercel"], model: "gemini-3.1-pro", @@ -258,6 +376,101 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { }, quick: { fallbackChain: [ + { providers: ["openrouter"], model: "qwen/qwen3.6-27b" }, + { + providers: ["openai", "github-copilot", "opencode", "vercel"], + model: "gpt-5.4-mini", + }, + { + providers: ["anthropic", "github-copilot", "opencode", "vercel"], + model: "claude-haiku-4-5", + }, + { + providers: ["google", "github-copilot", "opencode", "vercel"], + model: "gemini-3-flash", + }, + { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, + { providers: ["opencode", "vercel"], model: "gpt-5-nano" }, + ], + }, + "unspecified-low": { + fallbackChain: [ + { providers: ["openrouter"], model: "qwen/qwen3.6-27b" }, + { + providers: ["anthropic", "github-copilot", "opencode", "vercel"], + model: "claude-sonnet-4-6", + }, + { + providers: ["openai", "opencode", "vercel"], + model: "gpt-5.3-codex", + variant: "medium", + }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { + providers: ["google", "github-copilot", "opencode", "vercel"], + model: "gemini-3-flash", + }, + { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, + ], + }, + "unspecified-high": { + fallbackChain: [ + { providers: ["openrouter"], model: "qwen/qwen3.6-plus" }, + { + providers: ["anthropic", "github-copilot", "opencode", "vercel"], + model: "claude-opus-4-7", + variant: "max", + }, + { + providers: ["openai", "github-copilot", "opencode", "vercel"], + model: "gpt-5.5", + variant: "high", + }, + { providers: ["zai-coding-plan", "opencode", "vercel"], model: "glm-5" }, + { providers: ["kimi-for-coding"], model: "k2p5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode", "vercel"], model: "kimi-k2.5" }, + { + providers: [ + "opencode", + "moonshotai", + "moonshotai-cn", + "firmware", + "ollama-cloud", + "aihubmix", + "vercel", + ], + model: "kimi-k2.5", + }, + ], + }, + writing: { + fallbackChain: [ + { providers: ["openrouter"], model: "~google/gemini-pro-latest" }, + { + providers: ["google", "github-copilot", "opencode", "vercel"], + model: "gemini-3-flash", + }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { + providers: ["anthropic", "github-copilot", "opencode", "vercel"], + model: "claude-sonnet-4-6", + }, + { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, + ], + }, + { + providers: ["anthropic", "github-copilot", "opencode", "vercel"], + model: "claude-opus-4-7", + variant: "max", + }, + { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5" }, + ], + requiresModel: "gemini-3.1-pro", + }, + quick: { + fallbackChain: [ + { providers: ["openrouter"], model: "qwen/qwen3.6-27b" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.4-mini", @@ -276,6 +489,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { }, "unspecified-low": { fallbackChain: [ + { providers: ["openrouter"], model: "qwen/qwen3.6-27b" }, { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6", @@ -295,6 +509,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { }, "unspecified-high": { fallbackChain: [ + { providers: ["openrouter"], model: "qwen/qwen3.6-plus" }, { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-opus-4-7", @@ -325,6 +540,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { }, writing: { fallbackChain: [ + { providers: ["openrouter"], model: "~google/gemini-pro-latest" }, { providers: ["google", "github-copilot", "opencode", "vercel"], model: "gemini-3-flash",