fix: resolve 11 council-audited violations across athena subsystem

- Add switch_agent to athena-junior deny list (P1 defense-in-depth)
- Add terminal status check to waitForSessionIds polling loop
- Add athena-junior to OverridableAgentNameSchema and AgentOverridesSchema
- Add explicit retry workflow instructions to non-interactive prompt Step 9
- Fix JSON schema generation to exclude defaulted fields from required arrays
- Fix docs example for non_interactive_member_list (remove Council: prefix)
- Use segment-aware regex in path-policy.ts to block fake.sisyphus/ paths
- Add defensive path resolution and contract validation for prompt_file
- Add explicit .optional() to AthenaOverrideConfigSchema fields for clarity
- Fix traversal check precision for .. prefixed directory names
This commit is contained in:
ismeth
2026-03-03 22:37:26 +01:00
committed by YeonGyu-Kim
parent 6db83b937f
commit 62cf707502
9 changed files with 97 additions and 20 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ export const ATHENA_JUNIOR_PROMPT_METADATA: AgentPromptMetadata = {
}
export function createAthenaJuniorAgent(model: string): AgentConfig {
const restrictions = createAgentToolRestrictions(["call_omo_agent", "question"])
const restrictions = createAgentToolRestrictions(["call_omo_agent", "question", "switch_agent"])
return {
description:
"Non-interactive council orchestrator for programmatic multi-model synthesis. Returns structured <athena_council_result> JSON without user interaction. (Athena-Junior - OhMyOpenCode)",
@@ -90,6 +90,14 @@ Track every task_id from the response for use in Step 5.
- cancel_retrying_on_quorum = {CANCEL_RETRYING_ON_QUORUM}
- Quorum enforcement: minimum 2 successful members required before synthesis.
If retry_on_fail > 0 and failed members exist:
1. Re-launch failed members via athena_council with the same prompt_file and members parameter set to the failed member names.
2. Return to Step 5 to wait for their completion via background_wait.
3. Call council_finalize again to collect retried results.
4. Continue retrying until retry count exhausted or quorum met.
- If retry_failed_if_others_finished is true, only retry after all non-failed members have completed.
- If cancel_retrying_on_quorum is true, stop retrying once quorum (2+ successful) is met.
### Step 10: Synthesize using council_finalize runtime guidance.
- Read every member's archive_file with Read tool.
- Apply the injected <athena_runtime_guidance> from council_finalize.