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
View File
@@ -42,6 +42,7 @@ export const OverridableAgentNameSchema = z.enum([
"multimodal-looker",
"atlas",
"athena",
"athena-junior",
"council-member",
])
+5 -4
View File
@@ -58,10 +58,10 @@ export const AgentOverrideConfigSchema = z.object({
export const AthenaOverrideConfigSchema = AgentOverrideConfigSchema.extend({
council: AthenaConfigSchema.shape.council.optional(),
bulk_launch: AthenaConfigSchema.shape.bulk_launch,
non_interactive_mode: AthenaConfigSchema.shape.non_interactive_mode,
non_interactive_members: AthenaConfigSchema.shape.non_interactive_members,
non_interactive_member_list: AthenaConfigSchema.shape.non_interactive_member_list,
bulk_launch: AthenaConfigSchema.shape.bulk_launch.optional(),
non_interactive_mode: AthenaConfigSchema.shape.non_interactive_mode.optional(),
non_interactive_members: AthenaConfigSchema.shape.non_interactive_members.optional(),
non_interactive_member_list: AthenaConfigSchema.shape.non_interactive_member_list.optional(),
})
export const AgentOverridesSchema = z.object({
@@ -83,6 +83,7 @@ export const AgentOverridesSchema = z.object({
atlas: AgentOverrideConfigSchema.optional(),
"council-member": AgentOverrideConfigSchema.optional(),
athena: AthenaOverrideConfigSchema.optional(),
"athena-junior": AthenaOverrideConfigSchema.optional(),
})
export type AgentOverrideConfig = z.infer<typeof AgentOverrideConfigSchema>