diff --git a/packages/core/src/hooks/types.test.ts b/packages/core/src/hooks/types.test.ts index 8853b5a103..d8fbb79488 100644 --- a/packages/core/src/hooks/types.test.ts +++ b/packages/core/src/hooks/types.test.ts @@ -8,7 +8,6 @@ import { describe, it, expect, vi } from 'vitest'; import { createHookOutput, DefaultHookOutput, - BeforeToolHookOutput, BeforeModelHookOutput, BeforeToolSelectionHookOutput, AfterModelHookOutput, @@ -208,33 +207,6 @@ describe('Hook Output Classes', () => { }); }); - describe('BeforeToolHookOutput', () => { - it('isBlockingDecision should use permissionDecision from hookSpecificOutput', () => { - const output1 = new BeforeToolHookOutput({ - hookSpecificOutput: { permissionDecision: 'block' }, - }); - expect(output1.isBlockingDecision()).toBe(true); - - const output2 = new BeforeToolHookOutput({ - hookSpecificOutput: { permissionDecision: 'approve' }, - }); - expect(output2.isBlockingDecision()).toBe(false); - }); - - it('getEffectiveReason should use permissionDecisionReason from hookSpecificOutput', () => { - const output1 = new BeforeToolHookOutput({ - hookSpecificOutput: { permissionDecisionReason: 'compat reason' }, - }); - expect(output1.getEffectiveReason()).toBe('compat reason'); - - const output2 = new BeforeToolHookOutput({ - reason: 'default reason', - hookSpecificOutput: { other: 'value' }, - }); - expect(output2.getEffectiveReason()).toBe('default reason'); - }); - }); - describe('BeforeModelHookOutput', () => { it('getSyntheticResponse should return synthetic response if llm_response is present', () => { const mockResponse: LLMResponse = { candidates: [] }; diff --git a/packages/core/src/hooks/types.ts b/packages/core/src/hooks/types.ts index 8e9f8cd047..610019ff8f 100644 --- a/packages/core/src/hooks/types.ts +++ b/packages/core/src/hooks/types.ts @@ -225,45 +225,9 @@ export class DefaultHookOutput implements HookOutput { } /** - * Specific hook output class for BeforeTool events with compatibility support + * Specific hook output class for BeforeTool events. */ -export class BeforeToolHookOutput extends DefaultHookOutput { - /** - * Get the effective blocking reason, considering compatibility fields - */ - override getEffectiveReason(): string { - // Check for compatibility fields first - if (this.hookSpecificOutput) { - if ('permissionDecisionReason' in this.hookSpecificOutput) { - const compatReason = - this.hookSpecificOutput['permissionDecisionReason']; - if (typeof compatReason === 'string') { - return compatReason; - } - } - } - - return super.getEffectiveReason(); - } - - /** - * Check if this output represents a blocking decision, considering compatibility fields - */ - override isBlockingDecision(): boolean { - // Check compatibility field first - if ( - this.hookSpecificOutput && - 'permissionDecision' in this.hookSpecificOutput - ) { - const compatDecision = this.hookSpecificOutput['permissionDecision']; - if (compatDecision === 'block' || compatDecision === 'deny') { - return true; - } - } - - return super.isBlockingDecision(); - } -} +export class BeforeToolHookOutput extends DefaultHookOutput {} /** * Specific hook output class for BeforeModel events @@ -395,8 +359,6 @@ export interface BeforeToolInput extends HookInput { export interface BeforeToolOutput extends HookOutput { hookSpecificOutput?: { hookEventName: 'BeforeTool'; - permissionDecision?: HookDecision; - permissionDecisionReason?: string; }; }