jodit-pro
Version:
PRO Version of Jodit Editor
78 lines (77 loc) • 2.4 kB
TypeScript
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;
}