import { createDecorator } from '#/_base/di/instantiation'; import type { ApprovalResponse, PermissionPolicyResolution, PermissionPolicyResult, } from '#/agent/permissionPolicy/types'; import type { BeforeExecuteDecision, ResolvedToolExecutionHookContext, } from '#/agent/toolExecutor/toolHooks'; export interface IAgentToolApprovalService { readonly _serviceBrand: undefined; resolvePermissionResolution( result: PermissionPolicyResolution, context: ResolvedToolExecutionHookContext, origin: string, ): Promise; requestToolApproval( context: ResolvedToolExecutionHookContext, result: Extract, origin: string, ): Promise; formatDenyMessage(message: string): string; formatApprovalRejectionMessage( toolName: string, result: Pick, ): string; } export const IAgentToolApprovalService = createDecorator( 'agentToolApprovalService', );