feat(02-02): add council orchestrator and result collector

- Implement executeCouncil with parallel member launch and partial-failure tolerance

- Add result collection mapping and wire Athena exports with read-only athena tool restrictions
This commit is contained in:
ismeth
2026-02-12 12:38:54 +01:00
committed by YeonGyu-Kim
parent 8ae738d897
commit afe90db7b7
4 changed files with 168 additions and 0 deletions
+16
View File
@@ -6,6 +6,8 @@ import { stripInvisibleAgentCharacters } from "./agent-display-names"
* true = tool allowed, false = tool denied.
*/
import { createAgentToolRestrictions } from "./permission-compat"
const EXPLORATION_AGENT_DENYLIST: Record<string, boolean> = {
write: false,
edit: false,
@@ -13,6 +15,10 @@ const EXPLORATION_AGENT_DENYLIST: Record<string, boolean> = {
call_omo_agent: false,
}
const ATHENA_RESTRICTIONS = permissionToToolBooleans(
createAgentToolRestrictions(["write", "edit", "task"]).permission
)
const AGENT_RESTRICTIONS: Record<string, Record<string, boolean>> = {
explore: EXPLORATION_AGENT_DENYLIST,
@@ -44,6 +50,16 @@ const AGENT_RESTRICTIONS: Record<string, Record<string, boolean>> = {
"sisyphus-junior": {
task: false,
},
athena: ATHENA_RESTRICTIONS,
}
function permissionToToolBooleans(
permission: Record<string, "ask" | "allow" | "deny">
): Record<string, boolean> {
return Object.fromEntries(
Object.entries(permission).map(([tool, value]) => [tool, value === "allow"])
)
}
export function getAgentToolRestrictions(agentName: string): Record<string, boolean> {