fix: sync council-member tool restrictions across all layers, optimize athena guards
- Add switch_agent/background_wait to agent-tool-restrictions.ts (boolean format) - Add dynamic council member name matching via COUNCIL_MEMBER_KEY_PREFIX - Move athena question permission from hardcoded to tool-config-handler (CLI-mode aware) - Rename appendMissingCouncilPrompt -> applyMissingCouncilGuard - Optimize tool-execute-before: check hasPendingCouncilMembers before resolving session agent - Add fallback_models to council-member/athena in schema.json - Remove unused createAthenaAgent export from agents/index.ts - Add cross-reference comments for restriction sync points
This commit is contained in:
@@ -80,13 +80,15 @@ export function createToolExecuteBeforeHandler(args: {
|
||||
const toolNameLower = input.tool?.toLowerCase()
|
||||
|
||||
if (toolNameLower === "question" || toolNameLower === "askuserquestion" || toolNameLower === "ask_user_question" || toolNameLower === "switch_agent") {
|
||||
const sessionAgent = await resolveSessionAgent(ctx.client, input.sessionID)
|
||||
const sessionAgentKey = sessionAgent ? getAgentConfigKey(sessionAgent) : undefined
|
||||
if (hasPendingCouncilMembers(input.sessionID)) {
|
||||
const sessionAgent = await resolveSessionAgent(ctx.client, input.sessionID)
|
||||
const sessionAgentKey = sessionAgent ? getAgentConfigKey(sessionAgent) : undefined
|
||||
|
||||
if (sessionAgentKey === "athena" && hasPendingCouncilMembers(input.sessionID)) {
|
||||
throw new Error(
|
||||
"Council members are still running. Wait for all launched members to finish and collect their outputs before asking next-step questions or switching agents."
|
||||
)
|
||||
if (sessionAgentKey === "athena") {
|
||||
throw new Error(
|
||||
"Council members are still running. Wait for all launched members to finish and collect their outputs before asking next-step questions or switching agents."
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user