feat(agents): enable call_omo_agent for Sisyphus-Junior subagents
Allow Sisyphus-Junior (category-based tasks) to spawn explore/librarian agents via call_omo_agent for research capabilities. Changes: - Remove call_omo_agent from BLOCKED_TOOLS in sisyphus-junior.ts - Update prompt to show ALLOWED status for call_omo_agent - Remove global call_omo_agent blocking in config-handler.ts - Keep blocking for orchestrator-sisyphus (use sisyphus_task instead) - Keep runtime recursion prevention in index.ts for explore/librarian Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -138,8 +138,8 @@ describe("createSisyphusJuniorAgentWithOverrides", () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe("tool safety (blocked tools enforcement)", () => {
|
||||
test("blocked tools remain blocked even if override tries to enable them via tools format", () => {
|
||||
describe("tool safety (task/sisyphus_task blocked, call_omo_agent allowed)", () => {
|
||||
test("task and sisyphus_task remain blocked, call_omo_agent is allowed via tools format", () => {
|
||||
// #given
|
||||
const override = {
|
||||
tools: {
|
||||
@@ -159,17 +159,19 @@ describe("createSisyphusJuniorAgentWithOverrides", () => {
|
||||
if (tools) {
|
||||
expect(tools.task).toBe(false)
|
||||
expect(tools.sisyphus_task).toBe(false)
|
||||
expect(tools.call_omo_agent).toBe(false)
|
||||
// call_omo_agent is NOW ALLOWED for subagents to spawn explore/librarian
|
||||
expect(tools.call_omo_agent).toBe(true)
|
||||
expect(tools.read).toBe(true)
|
||||
}
|
||||
if (permission) {
|
||||
expect(permission.task).toBe("deny")
|
||||
expect(permission.sisyphus_task).toBe("deny")
|
||||
expect(permission.call_omo_agent).toBe("deny")
|
||||
// call_omo_agent is NOW ALLOWED for subagents to spawn explore/librarian
|
||||
expect(permission.call_omo_agent).toBe("allow")
|
||||
}
|
||||
})
|
||||
|
||||
test("blocked tools remain blocked when using permission format override", () => {
|
||||
test("task and sisyphus_task remain blocked when using permission format override", () => {
|
||||
// #given
|
||||
const override = {
|
||||
permission: {
|
||||
@@ -183,18 +185,18 @@ describe("createSisyphusJuniorAgentWithOverrides", () => {
|
||||
// #when
|
||||
const result = createSisyphusJuniorAgentWithOverrides(override as Parameters<typeof createSisyphusJuniorAgentWithOverrides>[0])
|
||||
|
||||
// #then - blocked tools should be denied regardless
|
||||
// #then - task/sisyphus_task blocked, but call_omo_agent allowed for explore/librarian spawning
|
||||
const tools = result.tools as Record<string, boolean> | undefined
|
||||
const permission = result.permission as Record<string, string> | undefined
|
||||
if (tools) {
|
||||
expect(tools.task).toBe(false)
|
||||
expect(tools.sisyphus_task).toBe(false)
|
||||
expect(tools.call_omo_agent).toBe(false)
|
||||
expect(tools.call_omo_agent).toBe(true)
|
||||
}
|
||||
if (permission) {
|
||||
expect(permission.task).toBe("deny")
|
||||
expect(permission.sisyphus_task).toBe("deny")
|
||||
expect(permission.call_omo_agent).toBe("deny")
|
||||
expect(permission.call_omo_agent).toBe("allow")
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user