Browse Source

Restore denied tool coverage

Berserk Agent 1 month ago
parent
commit
f864bb3a06
3 changed files with 21 additions and 1 deletions
  1. 18 0
      src/agents/index.test.ts
  2. 1 0
      src/council/council-manager.test.ts
  3. 2 1
      src/council/council-manager.ts

+ 18 - 0
src/agents/index.test.ts

@@ -312,6 +312,24 @@ describe('tool permissions', () => {
     expect((councillor?.config.permission as any).council_session).toBe('deny');
   });
 
+  test('oracle is denied access to cancel_task', () => {
+    const agents = createAgents();
+    const oracle = agents.find((a) => a.name === 'oracle');
+    expect((oracle?.config.permission as any).cancel_task).toBe('deny');
+  });
+
+  test('explorer is denied access to cancel_task', () => {
+    const agents = createAgents();
+    const explorer = agents.find((a) => a.name === 'explorer');
+    expect((explorer?.config.permission as any).cancel_task).toBe('deny');
+  });
+
+  test('fixer is denied access to cancel_task', () => {
+    const agents = createAgents();
+    const fixer = agents.find((a) => a.name === 'fixer');
+    expect((fixer?.config.permission as any).cancel_task).toBe('deny');
+  });
+
   test('council agent is read-only except council_session', () => {
     const agents = createAgents({
       council: councilConfig(),

+ 1 - 0
src/council/council-manager.test.ts

@@ -601,6 +601,7 @@ describe('CouncilManager', () => {
       );
       expect(councillorCall?.[0].body?.tools).toEqual({
         task: false,
+        question: false,
         edit: false,
         write: false,
         apply_patch: false,

+ 2 - 1
src/council/council-manager.ts

@@ -268,13 +268,14 @@ export class CouncilManager {
         await new Promise((r) => setTimeout(r, TMUX_SPAWN_DELAY_MS));
       }
 
-      // Councillors are advisory only: disable delegation and known mutating
+      // Councillors are advisory only: disable delegation, questions, and known mutating
       // tools even if host defaults would otherwise expose them.
       const body: PromptBody = {
         agent: options.agent,
         model: modelRef,
         tools: {
           task: false,
+          question: false,
           edit: false,
           write: false,
           apply_patch: false,