feat(athena): add dedicated council-member agent for multi-model council

Replace oracle as the agent for council background tasks with a purpose-built

council-member agent. This avoids coupling to oracle's config/prompt and provides

proper read-only tool restrictions (deny write, edit, task, athena_council).

- New council-member-agent.ts with analysis-oriented system prompt

- Registered in agentSources (hidden from Sisyphus delegation table)

- Added to type system, Zod schemas, display names, tool restrictions

- Minimal model fallback (always overridden per council member at launch)

- Council orchestrator now launches members as council-member agent

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:49 +01:00
committed by YeonGyu-Kim
parent 4a418fc324
commit 10e28417a3
9 changed files with 46 additions and 3 deletions
+8
View File
@@ -52,6 +52,14 @@ const AGENT_RESTRICTIONS: Record<string, Record<string, boolean>> = {
},
athena: ATHENA_RESTRICTIONS,
"council-member": {
write: false,
edit: false,
task: false,
call_omo_agent: false,
athena_council: false,
},
}
function permissionToToolBooleans(
+5
View File
@@ -191,6 +191,11 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
{ providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro", variant: "high" },
],
},
"council-member": {
fallbackChain: [
{ providers: ["opencode"], model: "gpt-5-nano" },
],
},
};
export const CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {