test(athena): update tests and snapshots for council-member agent

- Add council-member to display names expected mappings

- Update model-requirements test: 11 → 12 builtin agents

- Regenerate model-fallback snapshots and JSON schema

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
ismeth 2026-02-17 12:33:55 +01:00 committed by YeonGyu-Kim
parent 597a9069bb
commit 00051d6f19
4 changed files with 73 additions and 4 deletions

View File

@ -36,7 +36,8 @@
"metis", "metis",
"momus", "momus",
"atlas", "atlas",
"athena" "athena",
"council-member"
] ]
} }
}, },

View File

@ -10,6 +10,9 @@ exports[`generateModelConfig no providers available returns ULTIMATE_FALLBACK fo
"atlas": { "atlas": {
"model": "opencode/glm-4.7-free", "model": "opencode/glm-4.7-free",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "opencode/glm-4.7-free", "model": "opencode/glm-4.7-free",
}, },
@ -75,6 +78,9 @@ exports[`generateModelConfig single native provider uses Claude models when only
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-sonnet-4-5",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
@ -141,6 +147,9 @@ exports[`generateModelConfig single native provider uses Claude models with isMa
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-sonnet-4-5",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
@ -208,6 +217,9 @@ exports[`generateModelConfig single native provider uses OpenAI models when only
"atlas": { "atlas": {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.2",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "opencode/gpt-5-nano", "model": "opencode/gpt-5-nano",
}, },
@ -279,6 +291,9 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa
"atlas": { "atlas": {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.2",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "opencode/gpt-5-nano", "model": "opencode/gpt-5-nano",
}, },
@ -350,6 +365,9 @@ exports[`generateModelConfig single native provider uses Gemini models when only
"atlas": { "atlas": {
"model": "google/gemini-3-pro-preview", "model": "google/gemini-3-pro-preview",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "opencode/gpt-5-nano", "model": "opencode/gpt-5-nano",
}, },
@ -415,6 +433,9 @@ exports[`generateModelConfig single native provider uses Gemini models with isMa
"atlas": { "atlas": {
"model": "google/gemini-3-pro-preview", "model": "google/gemini-3-pro-preview",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "opencode/gpt-5-nano", "model": "opencode/gpt-5-nano",
}, },
@ -496,6 +517,9 @@ exports[`generateModelConfig all native providers uses preferred models from fal
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-sonnet-4-5",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
@ -590,6 +614,9 @@ exports[`generateModelConfig all native providers uses preferred models with isM
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-sonnet-4-5",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
@ -669,6 +696,9 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on
"atlas": { "atlas": {
"model": "opencode/kimi-k2.5-free", "model": "opencode/kimi-k2.5-free",
}, },
"council-member": {
"model": "opencode/gpt-5-nano",
},
"explore": { "explore": {
"model": "opencode/claude-haiku-4-5", "model": "opencode/claude-haiku-4-5",
}, },
@ -747,6 +777,9 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is
"atlas": { "atlas": {
"model": "opencode/kimi-k2.5-free", "model": "opencode/kimi-k2.5-free",
}, },
"council-member": {
"model": "opencode/gpt-5-nano",
},
"explore": { "explore": {
"model": "opencode/claude-haiku-4-5", "model": "opencode/claude-haiku-4-5",
}, },
@ -826,6 +859,9 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when
"atlas": { "atlas": {
"model": "github-copilot/claude-sonnet-4.5", "model": "github-copilot/claude-sonnet-4.5",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "github-copilot/gpt-5-mini", "model": "github-copilot/gpt-5-mini",
}, },
@ -904,6 +940,9 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with
"atlas": { "atlas": {
"model": "github-copilot/claude-sonnet-4.5", "model": "github-copilot/claude-sonnet-4.5",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "github-copilot/gpt-5-mini", "model": "github-copilot/gpt-5-mini",
}, },
@ -982,6 +1021,9 @@ exports[`generateModelConfig fallback providers uses ZAI model for librarian whe
"atlas": { "atlas": {
"model": "opencode/glm-4.7-free", "model": "opencode/glm-4.7-free",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "opencode/gpt-5-nano", "model": "opencode/gpt-5-nano",
}, },
@ -1040,6 +1082,9 @@ exports[`generateModelConfig fallback providers uses ZAI model for librarian wit
"atlas": { "atlas": {
"model": "opencode/glm-4.7-free", "model": "opencode/glm-4.7-free",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "opencode/gpt-5-nano", "model": "opencode/gpt-5-nano",
}, },
@ -1099,6 +1144,9 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen
"atlas": { "atlas": {
"model": "opencode/kimi-k2.5-free", "model": "opencode/kimi-k2.5-free",
}, },
"council-member": {
"model": "opencode/gpt-5-nano",
},
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
@ -1177,6 +1225,9 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb
"atlas": { "atlas": {
"model": "github-copilot/claude-sonnet-4.5", "model": "github-copilot/claude-sonnet-4.5",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "github-copilot/gpt-5-mini", "model": "github-copilot/gpt-5-mini",
}, },
@ -1255,6 +1306,9 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + ZAI combinat
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-sonnet-4-5",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
@ -1332,6 +1386,9 @@ exports[`generateModelConfig mixed provider scenarios uses Gemini + Claude combi
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-5", "model": "anthropic/claude-sonnet-4-5",
}, },
"council-member": {
"model": "opencode/glm-4.7-free",
},
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
@ -1402,6 +1459,9 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider
"atlas": { "atlas": {
"model": "opencode/kimi-k2.5-free", "model": "opencode/kimi-k2.5-free",
}, },
"council-member": {
"model": "opencode/gpt-5-nano",
},
"explore": { "explore": {
"model": "opencode/claude-haiku-4-5", "model": "opencode/claude-haiku-4-5",
}, },
@ -1496,6 +1556,9 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe
"atlas": { "atlas": {
"model": "opencode/kimi-k2.5-free", "model": "opencode/kimi-k2.5-free",
}, },
"council-member": {
"model": "opencode/gpt-5-nano",
},
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
@ -1590,6 +1653,9 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
"atlas": { "atlas": {
"model": "opencode/kimi-k2.5-free", "model": "opencode/kimi-k2.5-free",
}, },
"council-member": {
"model": "opencode/gpt-5-nano",
},
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },

View File

@ -192,6 +192,7 @@ describe("AGENT_DISPLAY_NAMES", () => {
librarian: "librarian", librarian: "librarian",
explore: "explore", explore: "explore",
"multimodal-looker": "multimodal-looker", "multimodal-looker": "multimodal-looker",
"council-member": "council-member",
} }
// when checking the constant // when checking the constant

View File

@ -179,8 +179,8 @@ describe("AGENT_MODEL_REQUIREMENTS", () => {
expect(hephaestus.requiresModel).toBeUndefined() expect(hephaestus.requiresModel).toBeUndefined()
}) })
test("all 11 builtin agents have valid fallbackChain arrays", () => { test("all 12 builtin agents have valid fallbackChain arrays", () => {
// #given - list of 11 agent names // #given - list of 12 agent names
const expectedAgents = [ const expectedAgents = [
"sisyphus", "sisyphus",
"hephaestus", "hephaestus",
@ -193,13 +193,14 @@ describe("AGENT_MODEL_REQUIREMENTS", () => {
"momus", "momus",
"atlas", "atlas",
"athena", "athena",
"council-member",
] ]
// when - checking AGENT_MODEL_REQUIREMENTS // when - checking AGENT_MODEL_REQUIREMENTS
const definedAgents = Object.keys(AGENT_MODEL_REQUIREMENTS) const definedAgents = Object.keys(AGENT_MODEL_REQUIREMENTS)
// #then - all agents present with valid fallbackChain // #then - all agents present with valid fallbackChain
expect(definedAgents).toHaveLength(11) expect(definedAgents).toHaveLength(12)
for (const agent of expectedAgents) { for (const agent of expectedAgents) {
const requirement = AGENT_MODEL_REQUIREMENTS[agent] const requirement = AGENT_MODEL_REQUIREMENTS[agent]
expect(requirement).toBeDefined() expect(requirement).toBeDefined()