UNPKG

jodit-pro

Version:

PRO Version of Jodit Editor

2 lines (1 loc) 2.64 kB
var d=Object.defineProperty;var m=(c,s)=>d(c,"name",{value:s,configurable:!0});const o=class o{constructor(s,t){this.jodit=s,this.toolRegistry=t,this.permanentPermissions=new Map,this.PERMANENT_PERMISSIONS_KEY="jodit-permissions.ai-assistant-pro",this.loadPermanentPermissions()}requiresPermission(s){const{autoApproveTools:t,alwaysDenyTools:e}=this.jodit.o.aiAssistantPro;if(e.includes(s))return!0;if(t.includes(s))return!1;const n=this.toolRegistry.getTool(s);return n?n.requiresPermission:!0}isAutoDenied(s){const{alwaysDenyTools:t}=this.jodit.o.aiAssistantPro;return t.includes(s)}isAutoApproved(s){const{autoApproveTools:t}=this.jodit.o.aiAssistantPro;return t.includes(s)}checkPermission(s,t){if(this.isAutoApproved(s))return{toolName:s,granted:!0,grantedAt:Date.now(),scope:"once"};if(this.isAutoDenied(s))return null;const e=this.permanentPermissions.get(s);if(e&&e.granted)return e;const n=t.find(i=>i.toolName===s&&i.granted);return n||null}grantPermission(s,t){const e={toolName:s,granted:!0,grantedAt:Date.now(),scope:t};return t==="forever"&&(this.permanentPermissions.set(s,e),this.savePermanentPermissions()),e}denyPermission(s){return{toolName:s,granted:!1,grantedAt:Date.now(),scope:"once"}}filterToolCalls(s,t){const e=[],n=[],i=[];for(const r of s){if(this.isAutoDenied(r.name)){i.push({...r,status:"denied"});continue}if(this.isAutoApproved(r.name)){e.push({...r,status:"approved"});continue}const a=this.checkPermission(r.name,t);a&&a.granted?e.push({...r,status:"approved"}):this.requiresPermission(r.name)?(this.jodit.e.fire("permissionRequested.ai-assistant-pro",r.name),n.push({...r,status:"pending"})):e.push({...r,status:"approved"})}return{approved:e,needsPermission:n,denied:i}}clearConversationPermissions(s){}loadPermanentPermissions(){try{const s=localStorage.getItem(this.PERMANENT_PERMISSIONS_KEY);s&&JSON.parse(s).forEach(e=>{e.scope==="forever"&&e.granted&&this.permanentPermissions.set(e.toolName,e)})}catch(s){console.error("Failed to load permanent permissions:",s)}}savePermanentPermissions(){try{const s=Array.from(this.permanentPermissions.values());localStorage.setItem(this.PERMANENT_PERMISSIONS_KEY,JSON.stringify(s))}catch(s){console.error("Failed to save permanent permissions:",s)}}clearPermanentPermissions(){this.permanentPermissions.clear(),localStorage.removeItem(this.PERMANENT_PERMISSIONS_KEY)}getPermanentPermissions(){return Array.from(this.permanentPermissions.values())}revokePermanentPermission(s){this.permanentPermissions.delete(s),this.savePermanentPermissions()}destruct(){this.permanentPermissions.clear()}};m(o,"PermissionManager");let u=o;export{u as PermissionManager};