feat(model-requirements): update unspecified-high to gpt-5.4, add glm-5/k2p5/kimi-k2.5 fallbacks

🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim
2026-03-06 14:25:47 +09:00
parent ae05e76ddf
commit 2e4fd5843c
5 changed files with 456 additions and 156 deletions
@@ -305,7 +305,7 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.4",
"variant": "high", "variant": "high",
}, },
"unspecified-low": { "unspecified-low": {
@@ -428,7 +428,7 @@ exports[`generateModelConfig single native provider uses Gemini models with isMa
"variant": "high", "variant": "high",
}, },
"unspecified-high": { "unspecified-high": {
"model": "google/gemini-3.1-pro-preview", "model": "opencode/glm-4.7-free",
}, },
"unspecified-low": { "unspecified-low": {
"model": "google/gemini-3-flash-preview", "model": "google/gemini-3-flash-preview",
@@ -578,8 +578,8 @@ exports[`generateModelConfig all native providers uses preferred models with isM
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "anthropic/claude-opus-4-6", "model": "openai/gpt-5.4",
"variant": "max", "variant": "high",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-sonnet-4-5",
@@ -729,8 +729,8 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "opencode/claude-opus-4-6", "model": "opencode/gpt-5.4",
"variant": "max", "variant": "high",
}, },
"unspecified-low": { "unspecified-low": {
"model": "opencode/claude-sonnet-4-5", "model": "opencode/claude-sonnet-4-5",
@@ -862,8 +862,8 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with
"variant": "high", "variant": "high",
}, },
"unspecified-high": { "unspecified-high": {
"model": "github-copilot/claude-opus-4.6", "model": "github-copilot/gpt-5.4",
"variant": "max", "variant": "high",
}, },
"unspecified-low": { "unspecified-low": {
"model": "github-copilot/claude-sonnet-4.5", "model": "github-copilot/claude-sonnet-4.5",
@@ -974,7 +974,7 @@ exports[`generateModelConfig fallback providers uses ZAI model for librarian wit
"model": "opencode/glm-4.7-free", "model": "opencode/glm-4.7-free",
}, },
"unspecified-high": { "unspecified-high": {
"model": "opencode/glm-4.7-free", "model": "zai-coding-plan/glm-5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "opencode/glm-4.7-free", "model": "opencode/glm-4.7-free",
@@ -1475,8 +1475,8 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "anthropic/claude-opus-4-6", "model": "openai/gpt-5.4",
"variant": "max", "variant": "high",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-sonnet-4-5",
+229 -82
View File
@@ -1,4 +1,4 @@
import type { ModelRequirement } from "../shared/model-requirements" import type { ModelRequirement } from "../shared/model-requirements";
// NOTE: These requirements are used by the CLI config generator (`generateModelConfig`). // NOTE: These requirements are used by the CLI config generator (`generateModelConfig`).
// They intentionally use "install-time" provider IDs (anthropic/openai/google/opencode/etc), // They intentionally use "install-time" provider IDs (anthropic/openai/google/opencode/etc),
@@ -7,7 +7,11 @@ import type { ModelRequirement } from "../shared/model-requirements"
export const CLI_AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = { export const CLI_AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
sisyphus: { sisyphus: {
fallbackChain: [ fallbackChain: [
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, {
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{ providers: ["kimi-for-coding"], model: "k2p5" }, { providers: ["kimi-for-coding"], model: "k2p5" },
{ providers: ["zai-coding-plan"], model: "glm-4.7" }, { providers: ["zai-coding-plan"], model: "glm-4.7" },
{ providers: ["opencode"], model: "glm-4.7-free" }, { providers: ["opencode"], model: "glm-4.7-free" },
@@ -16,22 +20,41 @@ export const CLI_AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
}, },
hephaestus: { hephaestus: {
fallbackChain: [ fallbackChain: [
{ providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "medium" }, {
providers: ["openai", "opencode"],
model: "gpt-5.3-codex",
variant: "medium",
},
], ],
requiresProvider: ["openai", "opencode"], requiresProvider: ["openai", "opencode"],
}, },
oracle: { oracle: {
fallbackChain: [ fallbackChain: [
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" }, {
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, providers: ["openai", "github-copilot", "opencode"],
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, model: "gpt-5.2",
variant: "high",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
], ],
}, },
librarian: { librarian: {
fallbackChain: [ fallbackChain: [
{ providers: ["zai-coding-plan"], model: "glm-4.7" }, { providers: ["zai-coding-plan"], model: "glm-4.7" },
{ providers: ["opencode"], model: "glm-4.7-free" }, { providers: ["opencode"], model: "glm-4.7-free" },
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-5" }, {
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-sonnet-4-5",
},
], ],
}, },
explore: { explore: {
@@ -43,104 +66,228 @@ export const CLI_AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
}, },
"multimodal-looker": { "multimodal-looker": {
fallbackChain: [ fallbackChain: [
{ providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "medium" }, {
providers: ["openai", "opencode"],
model: "gpt-5.3-codex",
variant: "medium",
},
{ providers: ["kimi-for-coding"], model: "k2p5" }, { providers: ["kimi-for-coding"], model: "k2p5" },
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" }, {
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3-flash",
},
{ providers: ["zai-coding-plan"], model: "glm-4.6v" }, { providers: ["zai-coding-plan"], model: "glm-4.6v" },
{ providers: ["opencode"], model: "gpt-5-nano" }, { providers: ["opencode"], model: "gpt-5-nano" },
], ],
}, },
prometheus: { prometheus: {
fallbackChain: [ fallbackChain: [
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, {
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{ providers: ["kimi-for-coding"], model: "k2p5" }, { providers: ["kimi-for-coding"], model: "k2p5" },
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" }, {
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro" }, providers: ["openai", "github-copilot", "opencode"],
model: "gpt-5.2",
variant: "high",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
},
], ],
}, },
metis: { metis: {
fallbackChain: [ fallbackChain: [
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, {
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{ providers: ["kimi-for-coding"], model: "k2p5" }, { providers: ["kimi-for-coding"], model: "k2p5" },
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" }, {
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, providers: ["openai", "github-copilot", "opencode"],
model: "gpt-5.2",
variant: "high",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
], ],
}, },
momus: { momus: {
fallbackChain: [ fallbackChain: [
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "medium" }, {
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, providers: ["openai", "github-copilot", "opencode"],
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, model: "gpt-5.2",
variant: "medium",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
], ],
}, },
atlas: { atlas: {
fallbackChain: [ fallbackChain: [
{ providers: ["kimi-for-coding"], model: "k2p5" }, { providers: ["kimi-for-coding"], model: "k2p5" },
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-5" }, {
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-sonnet-4-5",
},
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" }, { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" },
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro" }, {
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
},
], ],
}, },
} };
export const CLI_CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = { export const CLI_CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> =
"visual-engineering": { {
fallbackChain: [ "visual-engineering": {
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, fallbackChain: [
{ providers: ["zai-coding-plan"], model: "glm-5" }, {
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, providers: ["google", "github-copilot", "opencode"],
{ providers: ["kimi-for-coding"], model: "k2p5" }, model: "gemini-3.1-pro",
], variant: "high",
}, },
ultrabrain: { { providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
fallbackChain: [ {
{ providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "xhigh" }, providers: ["anthropic", "github-copilot", "opencode"],
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, model: "claude-opus-4-6",
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, variant: "max",
], },
}, { providers: ["kimi-for-coding"], model: "k2p5" },
deep: { ],
fallbackChain: [ },
{ providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "medium" }, ultrabrain: {
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, fallbackChain: [
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, {
], providers: ["openai", "opencode"],
requiresModel: "gpt-5.3-codex", model: "gpt-5.3-codex",
}, variant: "xhigh",
artistry: { },
fallbackChain: [ {
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, providers: ["google", "github-copilot", "opencode"],
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, model: "gemini-3.1-pro",
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" }, variant: "high",
], },
requiresModel: "gemini-3.1-pro", {
}, providers: ["anthropic", "github-copilot", "opencode"],
quick: { model: "claude-opus-4-6",
fallbackChain: [ variant: "max",
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-haiku-4-5" }, },
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" }, ],
{ providers: ["opencode"], model: "gpt-5-nano" }, },
], deep: {
}, fallbackChain: [
"unspecified-low": { {
fallbackChain: [ providers: ["openai", "opencode"],
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-5" }, model: "gpt-5.3-codex",
{ providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "medium" }, variant: "medium",
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" }, },
], {
}, providers: ["anthropic", "github-copilot", "opencode"],
"unspecified-high": { model: "claude-opus-4-6",
fallbackChain: [ variant: "max",
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, },
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" }, {
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro" }, providers: ["google", "github-copilot", "opencode"],
], model: "gemini-3.1-pro",
}, variant: "high",
writing: { },
fallbackChain: [ ],
{ providers: ["kimi-for-coding"], model: "k2p5" }, requiresModel: "gpt-5.3-codex",
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" }, },
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-5" }, artistry: {
], fallbackChain: [
}, {
} providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{
providers: ["openai", "github-copilot", "opencode"],
model: "gpt-5.2",
},
],
requiresModel: "gemini-3.1-pro",
},
quick: {
fallbackChain: [
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-haiku-4-5",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3-flash",
},
{ providers: ["opencode"], model: "gpt-5-nano" },
],
},
"unspecified-low": {
fallbackChain: [
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-sonnet-4-5",
},
{
providers: ["openai", "opencode"],
model: "gpt-5.3-codex",
variant: "medium",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3-flash",
},
],
},
"unspecified-high": {
fallbackChain: [
{
providers: ["openai", "github-copilot", "opencode"],
model: "gpt-5.4",
variant: "high",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{ providers: ["zai-coding-plan"], model: "glm-5" },
{ providers: ["kimi-for-coding"], model: "k2p5" },
{ providers: ["opencode"], model: "kimi-k2.5" },
],
},
writing: {
fallbackChain: [
{ providers: ["kimi-for-coding"], model: "k2p5" },
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3-flash",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-sonnet-4-5",
},
],
},
};
+5 -5
View File
@@ -311,20 +311,20 @@ describe("CATEGORY_MODEL_REQUIREMENTS", () => {
expect(primary.providers[0]).toBe("anthropic") expect(primary.providers[0]).toBe("anthropic")
}) })
test("unspecified-high has claude-opus-4-6 as primary", () => { test("unspecified-high has gpt-5.4 as primary", () => {
// #given - unspecified-high category requirement // #given - unspecified-high category requirement
const unspecifiedHigh = CATEGORY_MODEL_REQUIREMENTS["unspecified-high"] const unspecifiedHigh = CATEGORY_MODEL_REQUIREMENTS["unspecified-high"]
// #when - accessing unspecified-high requirement // #when - accessing unspecified-high requirement
// #then - claude-opus-4-6 is first // #then - gpt-5.4 is first
expect(unspecifiedHigh).toBeDefined() expect(unspecifiedHigh).toBeDefined()
expect(unspecifiedHigh.fallbackChain).toBeArray() expect(unspecifiedHigh.fallbackChain).toBeArray()
expect(unspecifiedHigh.fallbackChain.length).toBeGreaterThan(1) expect(unspecifiedHigh.fallbackChain.length).toBeGreaterThan(1)
const primary = unspecifiedHigh.fallbackChain[0] const primary = unspecifiedHigh.fallbackChain[0]
expect(primary.model).toBe("claude-opus-4-6") expect(primary.model).toBe("gpt-5.4")
expect(primary.variant).toBe("max") expect(primary.variant).toBe("high")
expect(primary.providers).toEqual(["anthropic", "github-copilot", "opencode"]) expect(primary.providers).toEqual(["openai", "github-copilot", "opencode"])
}) })
test("artistry has valid fallbackChain with gemini-3.1-pro as primary", () => { test("artistry has valid fallbackChain with gemini-3.1-pro as primary", () => {
+210 -57
View File
@@ -1,21 +1,25 @@
export type FallbackEntry = { export type FallbackEntry = {
providers: string[] providers: string[];
model: string model: string;
variant?: string // Entry-specific variant (e.g., GPT→high, Opus→max) variant?: string; // Entry-specific variant (e.g., GPT→high, Opus→max)
} };
export type ModelRequirement = { export type ModelRequirement = {
fallbackChain: FallbackEntry[] fallbackChain: FallbackEntry[];
variant?: string // Default variant (used when entry doesn't specify one) variant?: string; // Default variant (used when entry doesn't specify one)
requiresModel?: string // If set, only activates when this model is available (fuzzy match) requiresModel?: string; // If set, only activates when this model is available (fuzzy match)
requiresAnyModel?: boolean // If true, requires at least ONE model in fallbackChain to be available (or empty availability treated as unavailable) requiresAnyModel?: boolean; // If true, requires at least ONE model in fallbackChain to be available (or empty availability treated as unavailable)
requiresProvider?: string[] // If set, only activates when any of these providers is connected requiresProvider?: string[]; // If set, only activates when any of these providers is connected
} };
export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = { export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
sisyphus: { sisyphus: {
fallbackChain: [ fallbackChain: [
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, {
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" }, { providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
{ providers: ["opencode"], model: "big-pickle" }, { providers: ["opencode"], model: "big-pickle" },
], ],
@@ -23,25 +27,44 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
}, },
hephaestus: { hephaestus: {
fallbackChain: [ fallbackChain: [
{ providers: ["openai", "venice", "opencode"], model: "gpt-5.3-codex", variant: "medium" }, {
providers: ["openai", "venice", "opencode"],
model: "gpt-5.3-codex",
variant: "medium",
},
{ providers: ["github-copilot"], model: "gpt-5.2", variant: "medium" }, { providers: ["github-copilot"], model: "gpt-5.2", variant: "medium" },
], ],
requiresProvider: ["openai", "github-copilot", "venice", "opencode"], requiresProvider: ["openai", "github-copilot", "venice", "opencode"],
}, },
oracle: { oracle: {
fallbackChain: [ fallbackChain: [
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" }, {
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, providers: ["openai", "github-copilot", "opencode"],
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, model: "gpt-5.2",
variant: "high",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
],
},
librarian: {
fallbackChain: [
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3-flash",
},
{ providers: ["opencode"], model: "minimax-m2.5-free" },
{ providers: ["opencode"], model: "big-pickle" },
], ],
}, },
librarian: {
fallbackChain: [
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" },
{ providers: ["opencode"], model: "minimax-m2.5-free" },
{ providers: ["opencode"], model: "big-pickle" },
],
},
explore: { explore: {
fallbackChain: [ fallbackChain: [
{ providers: ["github-copilot"], model: "grok-code-fast-1" }, { providers: ["github-copilot"], model: "grok-code-fast-1" },
@@ -52,98 +75,228 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
}, },
"multimodal-looker": { "multimodal-looker": {
fallbackChain: [ fallbackChain: [
{ providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "medium" }, {
providers: ["openai", "opencode"],
model: "gpt-5.3-codex",
variant: "medium",
},
{ providers: ["kimi-for-coding"], model: "k2p5" }, { providers: ["kimi-for-coding"], model: "k2p5" },
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" }, {
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3-flash",
},
{ providers: ["zai-coding-plan"], model: "glm-4.6v" }, { providers: ["zai-coding-plan"], model: "glm-4.6v" },
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5-nano" }, {
providers: ["openai", "github-copilot", "opencode"],
model: "gpt-5-nano",
},
], ],
}, },
prometheus: { prometheus: {
fallbackChain: [ fallbackChain: [
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, {
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" }, providers: ["anthropic", "github-copilot", "opencode"],
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro" }, model: "claude-opus-4-6",
variant: "max",
},
{
providers: ["openai", "github-copilot", "opencode"],
model: "gpt-5.2",
variant: "high",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
},
], ],
}, },
metis: { metis: {
fallbackChain: [ fallbackChain: [
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, {
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" }, providers: ["anthropic", "github-copilot", "opencode"],
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, model: "claude-opus-4-6",
variant: "max",
},
{
providers: ["openai", "github-copilot", "opencode"],
model: "gpt-5.2",
variant: "high",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
], ],
}, },
momus: { momus: {
fallbackChain: [ fallbackChain: [
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "medium" }, {
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, providers: ["openai", "github-copilot", "opencode"],
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, model: "gpt-5.2",
variant: "medium",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
], ],
}, },
atlas: { atlas: {
fallbackChain: [ fallbackChain: [
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-6" }, {
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-sonnet-4-6",
},
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" }, { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" },
], ],
}, },
} };
export const CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = { export const CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
"visual-engineering": { "visual-engineering": {
fallbackChain: [ fallbackChain: [
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, {
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" }, { providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, {
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
], ],
}, },
ultrabrain: { ultrabrain: {
fallbackChain: [ fallbackChain: [
{ providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "xhigh" }, {
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, providers: ["openai", "opencode"],
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, model: "gpt-5.3-codex",
variant: "xhigh",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
], ],
}, },
deep: { deep: {
fallbackChain: [ fallbackChain: [
{ providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "medium" }, {
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, providers: ["openai", "opencode"],
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, model: "gpt-5.3-codex",
variant: "medium",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
], ],
requiresModel: "gpt-5.3-codex", requiresModel: "gpt-5.3-codex",
}, },
artistry: { artistry: {
fallbackChain: [ fallbackChain: [
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro", variant: "high" }, {
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, providers: ["google", "github-copilot", "opencode"],
model: "gemini-3.1-pro",
variant: "high",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" }, { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" },
], ],
requiresModel: "gemini-3.1-pro", requiresModel: "gemini-3.1-pro",
}, },
quick: { quick: {
fallbackChain: [ fallbackChain: [
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-haiku-4-5" }, {
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" }, providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-haiku-4-5",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3-flash",
},
{ providers: ["opencode"], model: "gpt-5-nano" }, { providers: ["opencode"], model: "gpt-5-nano" },
], ],
}, },
"unspecified-low": { "unspecified-low": {
fallbackChain: [ fallbackChain: [
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-6" }, {
{ providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "medium" }, providers: ["anthropic", "github-copilot", "opencode"],
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" }, model: "claude-sonnet-4-6",
},
{
providers: ["openai", "opencode"],
model: "gpt-5.3-codex",
variant: "medium",
},
{
providers: ["google", "github-copilot", "opencode"],
model: "gemini-3-flash",
},
], ],
}, },
"unspecified-high": { "unspecified-high": {
fallbackChain: [ fallbackChain: [
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, {
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" }, providers: ["openai", "github-copilot", "opencode"],
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3.1-pro" }, model: "gpt-5.4",
variant: "high",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-opus-4-6",
variant: "max",
},
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
{ providers: ["kimi-for-coding"], model: "k2p5" },
{
providers: [
"opencode",
"moonshotai",
"moonshotai-cn",
"firmware",
"ollama-cloud",
"aihubmix",
],
model: "kimi-k2.5",
},
], ],
}, },
writing: { writing: {
fallbackChain: [ fallbackChain: [
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" }, {
{ providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-4-6" }, providers: ["google", "github-copilot", "opencode"],
model: "gemini-3-flash",
},
{
providers: ["anthropic", "github-copilot", "opencode"],
model: "claude-sonnet-4-6",
},
], ],
}, },
} };
+1 -1
View File
@@ -214,7 +214,7 @@ export const DEFAULT_CATEGORIES: Record<string, CategoryConfig> = {
artistry: { model: "google/gemini-3.1-pro", variant: "high" }, artistry: { model: "google/gemini-3.1-pro", variant: "high" },
quick: { model: "anthropic/claude-haiku-4-5" }, quick: { model: "anthropic/claude-haiku-4-5" },
"unspecified-low": { model: "anthropic/claude-sonnet-4-6" }, "unspecified-low": { model: "anthropic/claude-sonnet-4-6" },
"unspecified-high": { model: "anthropic/claude-opus-4-6", variant: "max" }, "unspecified-high": { model: "openai/gpt-5.4", variant: "high" },
writing: { model: "kimi-for-coding/k2p5" }, writing: { model: "kimi-for-coding/k2p5" },
} }