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:
@@ -50,12 +50,25 @@ export function resolveCouncilIntent(intent?: string): CouncilIntent | null {
|
||||
: null
|
||||
}
|
||||
|
||||
export function buildAthenaRuntimeGuidance(intent: CouncilIntent): string {
|
||||
export type CouncilGuidanceMode = "interactive" | "non-interactive"
|
||||
|
||||
export function buildAthenaRuntimeGuidance(intent: CouncilIntent, mode: CouncilGuidanceMode = "interactive"): string {
|
||||
let guidanceContent = RUNTIME_GUIDANCE_BY_INTENT[intent].trim()
|
||||
|
||||
if (mode === "non-interactive") {
|
||||
guidanceContent = stripActionPaths(guidanceContent)
|
||||
}
|
||||
|
||||
return [
|
||||
"<athena_runtime_guidance>",
|
||||
"source: council_finalize",
|
||||
`intent: ${intent}`,
|
||||
RUNTIME_GUIDANCE_BY_INTENT[intent].trim(),
|
||||
`mode: ${mode}`,
|
||||
guidanceContent,
|
||||
"</athena_runtime_guidance>",
|
||||
].join("\n\n")
|
||||
}
|
||||
|
||||
function stripActionPaths(guidance: string): string {
|
||||
return guidance.replace(/<runtime_action_paths>[\s\S]*?<\/runtime_action_paths>/g, "").trim()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user