feat(athena-junior): add athena_council bulk launch tool

- Create src/tools/athena-council/ with council-launcher, tool factory, types
- Launch all council members in parallel via BackgroundManager with writeOutputToFile: true
- Wire tool into registry with backgroundManager + councilConfig dependencies
- Grant athena-junior athena_council permission, remove task permission
- Update non-interactive prompt to use athena_council instead of task tool
- Add explicit stop-after-result instruction to prevent post-output text
- 23 tests (14 tool + 9 launcher) using real temp files, no mock.module
This commit is contained in:
ismeth
2026-03-03 11:47:37 +01:00
committed by YeonGyu-Kim
parent ffde7a6853
commit 7ffdd15b52
9 changed files with 653 additions and 12 deletions
+5
View File
@@ -30,6 +30,7 @@ import {
createTaskUpdateTool,
createHashlineEditTool,
createPrepareCouncilPromptTool,
createAthenaCouncilTool,
} from "../tools"
import { createCouncilFinalize } from "../tools/council-archive"
import { getMainSessionID } from "../features/claude-code-session-state"
@@ -282,6 +283,10 @@ export function createToolRegistry(args: {
...hashlineToolsRecord,
prepare_council_prompt: createPrepareCouncilPromptTool(ctx.directory),
council_finalize: createCouncilFinalize(ctx.directory),
athena_council: createAthenaCouncilTool({
backgroundManager: managers.backgroundManager,
councilConfig: pluginConfig.agents?.athena?.council,
}),
}
for (const toolDefinition of Object.values(allTools)) {