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": {
"members": [
{
"model": "anthropic/claude-sonnet-4-5",
"name": "Claude",
"model": "anthropic/claude-opus-4-6",
"name": "Claude Opus 4.6",
},
{
"model": "openai/gpt-5.2",
"name": "GPT",
"model": "openai/gpt-5.3-codex",
"name": "GPT 5.3 Codex",
},
{
"model": "google/gemini-3-flash",
"name": "Gemini",
"model": "google/gemini-3-pro-preview",
"name": "Gemini Pro 3",
},
],
},
@ -571,16 +571,16 @@ exports[`generateModelConfig all native providers uses preferred models with isM
"council": {
"members": [
{
"model": "anthropic/claude-sonnet-4-5",
"name": "Claude",
"model": "anthropic/claude-opus-4-6",
"name": "Claude Opus 4.6",
},
{
"model": "openai/gpt-5.2",
"name": "GPT",
"model": "openai/gpt-5.3-codex",
"name": "GPT 5.3 Codex",
},
{
"model": "google/gemini-3-flash",
"name": "Gemini",
"model": "google/gemini-3-pro-preview",
"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",
"agents": {
"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",
"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",
"agents": {
"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",
"variant": "max",
},
@ -1341,12 +1317,12 @@ exports[`generateModelConfig mixed provider scenarios uses Gemini + Claude combi
"council": {
"members": [
{
"model": "anthropic/claude-sonnet-4-5",
"name": "Claude",
"model": "anthropic/claude-opus-4-6",
"name": "Claude Opus 4.6",
},
{
"model": "google/gemini-3-flash",
"name": "Gemini",
"model": "google/gemini-3-pro-preview",
"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",
"agents": {
"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",
"variant": "max",
},
@ -1513,24 +1477,16 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe
"council": {
"members": [
{
"model": "anthropic/claude-sonnet-4-5",
"name": "Claude",
"model": "anthropic/claude-opus-4-6",
"name": "Claude Opus 4.6",
},
{
"model": "openai/gpt-5.2",
"name": "GPT",
"model": "openai/gpt-5.3-codex",
"name": "GPT 5.3 Codex",
},
{
"model": "google/gemini-3-flash",
"name": "Gemini",
},
{
"model": "github-copilot/gpt-5.2",
"name": "Copilot GPT",
},
{
"model": "opencode/claude-sonnet-4-5",
"name": "OpenCode Claude",
"model": "google/gemini-3-pro-preview",
"name": "Gemini Pro 3",
},
],
},
@ -1615,24 +1571,16 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
"council": {
"members": [
{
"model": "anthropic/claude-sonnet-4-5",
"name": "Claude",
"model": "anthropic/claude-opus-4-6",
"name": "Claude Opus 4.6",
},
{
"model": "openai/gpt-5.2",
"name": "GPT",
"model": "openai/gpt-5.3-codex",
"name": "GPT 5.3 Codex",
},
{
"model": "google/gemini-3-flash",
"name": "Gemini",
},
{
"model": "github-copilot/gpt-5.2",
"name": "Copilot GPT",
},
{
"model": "opencode/claude-sonnet-4-5",
"name": "OpenCode Claude",
"model": "google/gemini-3-pro-preview",
"name": "Gemini Pro 3",
},
],
},

View File

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

View File

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