feat(athena): split into athena (interactive) and athena-junior (subagent)

Split the Athena council orchestrator into two distinct agents:
- athena: primary mode, interactive prompt with Question tool and switch_agent
- athena-junior: subagent mode, non-interactive prompt with structured JSON output

Key changes:
- Create athena-junior-agent.ts factory (mode=subagent, denies question+call_omo_agent)
- Revert athena agent.ts to primary mode (no env var switching)
- Make buildAthenaRuntimeGuidance mode-aware (strips action_paths for non-interactive)
- Add mode parameter to council_finalize tool
- Register athena-junior in builtin-agents, tool-config, model-requirements
- Replace "athena" with "athena-junior" in call_omo_agent ALLOWED_AGENTS
- Update all tests for new architecture

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-03-03 00:04:31 +01:00
committed by YeonGyu-Kim
parent deb2a2754e
commit 149d065d68
14 changed files with 270 additions and 70 deletions
+1 -1
View File
@@ -72,7 +72,7 @@ Launch ALL members before collecting results. Track every task_id.
- Repeat until ALL members reach terminal state.
### Step 6: Collect results with council_finalize.
- Call: council_finalize(task_ids=[...], name="{topic-slug}", intent="{intent}", question="{original question}", prompt_file="{path from Step 4.1}")
- Call: council_finalize(task_ids=[...], name="{topic-slug}", intent="{intent}", question="{original question}", prompt_file="{path from Step 4.1}", mode="non-interactive")
- council_finalize extracts responses, writes archives, returns structured JSON with archive_dir and members array.
- Read each member's archive_file using Read tool for synthesis input.