feat(agents): add Athena council foundation

This commit is contained in:
YeonGyu-Kim
2026-03-26 12:59:22 +09:00
parent a391f44420
commit 647f691fe2
39 changed files with 1710 additions and 12 deletions
@@ -67,6 +67,7 @@ describe("applyToolConfig", () => {
it.each([
"atlas",
"athena",
"sisyphus",
"hephaestus",
"prometheus",
@@ -195,6 +196,7 @@ describe("applyToolConfig", () => {
describe("#when applying tool config", () => {
it.each([
"atlas",
"athena",
"sisyphus",
"hephaestus",
"prometheus",
@@ -216,6 +218,50 @@ describe("applyToolConfig", () => {
})
})
describe("#given council-member agent exists", () => {
describe("#when applying tool config", () => {
it("#then should enforce read-only and non-delegating permissions", () => {
const params = createParams({ agents: ["council-member"] })
applyToolConfig(params)
const agent = params.agentResult["council-member"] as {
permission: Record<string, unknown>
}
expect(agent.permission.write).toBe("deny")
expect(agent.permission.edit).toBe("deny")
expect(agent.permission.apply_patch).toBe("deny")
expect(agent.permission.task).toBe("deny")
expect(agent.permission["task_*"]).toBe("deny")
expect(agent.permission.call_omo_agent).toBe("deny")
expect(agent.permission.switch_agent).toBe("deny")
expect(agent.permission.teammate).toBe("deny")
})
})
})
describe("#given dynamic council-member agent exists", () => {
describe("#when applying tool config", () => {
it("#then should enforce read-only and non-delegating permissions", () => {
const params = createParams({ agents: ["council-member-architect"] })
applyToolConfig(params)
const agent = params.agentResult["council-member-architect"] as {
permission: Record<string, unknown>
}
expect(agent.permission.write).toBe("deny")
expect(agent.permission.edit).toBe("deny")
expect(agent.permission.apply_patch).toBe("deny")
expect(agent.permission.task).toBe("deny")
expect(agent.permission["task_*"]).toBe("deny")
expect(agent.permission.call_omo_agent).toBe("deny")
expect(agent.permission.switch_agent).toBe("deny")
expect(agent.permission.teammate).toBe("deny")
})
})
})
describe("#given disabled_tools includes 'question'", () => {
let originalConfigContent: string | undefined
let originalCliRunMode: string | undefined