feat(athena): update council member candidates with upgraded models

- Claude sonnet → opus 4.6, GPT 5.2 → 5.3 codex, Gemini flash → pro preview
- Replace copilot/opencode-zen candidates with kimi-for-coding/k2p5
- Update test cases and regenerate model-fallback snapshots
- All 2688 tests pass, typecheck clean
This commit is contained in:
ismeth 2026-02-13 15:13:05 +01:00 committed by YeonGyu-Kim
parent 628c9a8958
commit 7cfdc68100
3 changed files with 52 additions and 107 deletions

View File

@ -477,16 +477,16 @@ exports[`generateModelConfig all native providers uses preferred models from fal
"council": { "council": {
"members": [ "members": [
{ {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-opus-4-6",
"name": "Claude", "name": "Claude Opus 4.6",
}, },
{ {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.3-codex",
"name": "GPT", "name": "GPT 5.3 Codex",
}, },
{ {
"model": "google/gemini-3-flash", "model": "google/gemini-3-pro-preview",
"name": "Gemini", "name": "Gemini Pro 3",
}, },
], ],
}, },
@ -571,16 +571,16 @@ exports[`generateModelConfig all native providers uses preferred models with isM
"council": { "council": {
"members": [ "members": [
{ {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-opus-4-6",
"name": "Claude", "name": "Claude Opus 4.6",
}, },
{ {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.3-codex",
"name": "GPT", "name": "GPT 5.3 Codex",
}, },
{ {
"model": "google/gemini-3-flash", "model": "google/gemini-3-pro-preview",
"name": "Gemini", "name": "Gemini Pro 3",
}, },
], ],
}, },
@ -1093,18 +1093,6 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"athena": { "athena": {
"council": {
"members": [
{
"model": "anthropic/claude-sonnet-4-5",
"name": "Claude",
},
{
"model": "opencode/claude-sonnet-4-5",
"name": "OpenCode Claude",
},
],
},
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
"variant": "max", "variant": "max",
}, },
@ -1183,18 +1171,6 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"athena": { "athena": {
"council": {
"members": [
{
"model": "openai/gpt-5.2",
"name": "GPT",
},
{
"model": "github-copilot/gpt-5.2",
"name": "Copilot GPT",
},
],
},
"model": "github-copilot/claude-opus-4.6", "model": "github-copilot/claude-opus-4.6",
"variant": "max", "variant": "max",
}, },
@ -1341,12 +1317,12 @@ exports[`generateModelConfig mixed provider scenarios uses Gemini + Claude combi
"council": { "council": {
"members": [ "members": [
{ {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-opus-4-6",
"name": "Claude", "name": "Claude Opus 4.6",
}, },
{ {
"model": "google/gemini-3-flash", "model": "google/gemini-3-pro-preview",
"name": "Gemini", "name": "Gemini Pro 3",
}, },
], ],
}, },
@ -1420,18 +1396,6 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"athena": { "athena": {
"council": {
"members": [
{
"model": "github-copilot/gpt-5.2",
"name": "Copilot GPT",
},
{
"model": "opencode/claude-sonnet-4-5",
"name": "OpenCode Claude",
},
],
},
"model": "github-copilot/claude-opus-4.6", "model": "github-copilot/claude-opus-4.6",
"variant": "max", "variant": "max",
}, },
@ -1513,24 +1477,16 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe
"council": { "council": {
"members": [ "members": [
{ {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-opus-4-6",
"name": "Claude", "name": "Claude Opus 4.6",
}, },
{ {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.3-codex",
"name": "GPT", "name": "GPT 5.3 Codex",
}, },
{ {
"model": "google/gemini-3-flash", "model": "google/gemini-3-pro-preview",
"name": "Gemini", "name": "Gemini Pro 3",
},
{
"model": "github-copilot/gpt-5.2",
"name": "Copilot GPT",
},
{
"model": "opencode/claude-sonnet-4-5",
"name": "OpenCode Claude",
}, },
], ],
}, },
@ -1615,24 +1571,16 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
"council": { "council": {
"members": [ "members": [
{ {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-opus-4-6",
"name": "Claude", "name": "Claude Opus 4.6",
}, },
{ {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.3-codex",
"name": "GPT", "name": "GPT 5.3 Codex",
}, },
{ {
"model": "google/gemini-3-flash", "model": "google/gemini-3-pro-preview",
"name": "Gemini", "name": "Gemini Pro 3",
},
{
"model": "github-copilot/gpt-5.2",
"name": "Copilot GPT",
},
{
"model": "opencode/claude-sonnet-4-5",
"name": "OpenCode Claude",
}, },
], ],
}, },

View File

@ -77,27 +77,29 @@ describe("generateCouncilMembers", () => {
}) })
//#given only one native provider //#given only one native provider
//#when copilot is also available //#when kimi is also available
//#then returns 2 members (native + copilot) //#then returns 2 members (native + kimi)
test("uses copilot as second member when only one native provider", () => { test("uses kimi as second member when only one native provider", () => {
const members = generateCouncilMembers(makeAvail({ const members = generateCouncilMembers(makeAvail({
native: { claude: true }, native: { claude: true },
copilot: true, kimiForCoding: true,
})) }))
expect(members.length).toBeGreaterThanOrEqual(2) expect(members).toHaveLength(2)
expect(members.some(m => m.model.startsWith("anthropic/"))).toBe(true)
expect(members.some(m => m.model.startsWith("kimi-for-coding/"))).toBe(true)
}) })
//#given only one native provider //#given all 4 candidates available
//#when opencode zen is also available //#when generating council members
//#then returns 2 members //#then returns 4 members
test("uses opencode zen as second member when only one native provider", () => { test("returns 4 members when all candidates available", () => {
const members = generateCouncilMembers(makeAvail({ const members = generateCouncilMembers(makeAvail({
native: { gemini: true }, native: { claude: true, openai: true, gemini: true },
opencodeZen: true, kimiForCoding: true,
})) }))
expect(members.length).toBeGreaterThanOrEqual(2) expect(members).toHaveLength(4)
}) })
//#given no providers at all //#given no providers at all

View File

@ -12,29 +12,24 @@ const COUNCIL_CANDIDATES: Array<{
}> = [ }> = [
{ {
provider: (a) => a.native.claude, provider: (a) => a.native.claude,
model: "anthropic/claude-sonnet-4-5", model: "anthropic/claude-opus-4-6",
name: "Claude", name: "Claude Opus 4.6",
}, },
{ {
provider: (a) => a.native.openai, provider: (a) => a.native.openai,
model: "openai/gpt-5.2", model: "openai/gpt-5.3-codex",
name: "GPT", name: "GPT 5.3 Codex",
}, },
{ {
provider: (a) => a.native.gemini, provider: (a) => a.native.gemini,
model: "google/gemini-3-flash", model: "google/gemini-3-pro-preview",
name: "Gemini", name: "Gemini Pro 3",
}, },
{ {
provider: (a) => a.copilot, provider: (a) => a.kimiForCoding,
model: "github-copilot/gpt-5.2", model: "kimi-for-coding/k2p5",
name: "Copilot GPT", name: "Kimi 2.5",
}, }
{
provider: (a) => a.opencodeZen,
model: "opencode/claude-sonnet-4-5",
name: "OpenCode Claude",
},
] ]
export function generateCouncilMembers(avail: ProviderAvailability): CouncilMember[] { export function generateCouncilMembers(avail: ProviderAvailability): CouncilMember[] {