UNPKG

jodit-pro

Version:

PRO Version of Jodit Editor

78 lines (77 loc) 2.4 kB
import type { IJodit } from "jodit/esm/types/index"; import type { IToolCall, IToolPermission, ToolPermissionScope } from "../interface/index"; import type { ToolRegistry } from "./tool-registry"; /** * Permission Manager - handles tool execution permissions */ export declare class PermissionManager { private jodit; private toolRegistry; private permanentPermissions; private readonly PERMANENT_PERMISSIONS_KEY; constructor(jodit: IJodit, toolRegistry: ToolRegistry); /** * Check if tool requires permission */ requiresPermission(toolName: string): boolean; /** * Check if tool is auto-denied */ isAutoDenied(toolName: string): boolean; /** * Check if tool is auto-approved */ isAutoApproved(toolName: string): boolean; /** * Check if permission is already granted * @param toolName - Tool name * @param conversationPermissions - Permissions from current conversation * @returns Permission if granted, null otherwise */ checkPermission(toolName: string, conversationPermissions: IToolPermission[]): IToolPermission | null; /** * Grant permission for a tool */ grantPermission(toolName: string, scope: ToolPermissionScope): IToolPermission; /** * Deny permission for a tool */ denyPermission(toolName: string): IToolPermission; /** * Filter tool calls based on permissions * Returns array of [approved, needsPermission] */ filterToolCalls(toolCalls: Readonly<IToolCall[]>, conversationPermissions: IToolPermission[]): { approved: IToolCall[]; needsPermission: IToolCall[]; denied: IToolCall[]; }; /** * Clear conversation-specific permissions */ clearConversationPermissions(conversationId: string): void; /** * Load permanent permissions from localStorage */ private loadPermanentPermissions; /** * Save permanent permissions to localStorage */ private savePermanentPermissions; /** * Clear all permanent permissions */ clearPermanentPermissions(): void; /** * Get all permanent permissions */ getPermanentPermissions(): IToolPermission[]; /** * Revoke permanent permission */ revokePermanentPermission(toolName: string): void; /** * Destroy manager */ destruct(): void; }