@astermind/cybernetic-chatbot-client 1.0.6 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -1
- package/dist/config.d.ts +38 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/cybernetic-chatbot-client-full.esm.js +145 -13
- package/dist/cybernetic-chatbot-client-full.esm.js.map +1 -1
- package/dist/cybernetic-chatbot-client-full.min.js +1 -1
- package/dist/cybernetic-chatbot-client-full.min.js.map +1 -1
- package/dist/cybernetic-chatbot-client-full.umd.js +145 -13
- package/dist/cybernetic-chatbot-client-full.umd.js.map +1 -1
- package/dist/cybernetic-chatbot-client.esm.js +155 -14
- package/dist/cybernetic-chatbot-client.esm.js.map +1 -1
- package/dist/cybernetic-chatbot-client.min.js +1 -1
- package/dist/cybernetic-chatbot-client.min.js.map +1 -1
- package/dist/cybernetic-chatbot-client.umd.js +155 -13
- package/dist/cybernetic-chatbot-client.umd.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).AsterMindCybernetic={})}(this,function(e){"use strict";class t{constructor(e,t){this.baseUrl=e.replace(/\/$/,""),this.apiKey=t}async chat(e,t){const n=await fetch(`${this.baseUrl}/api/external/chat`,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":this.apiKey},body:JSON.stringify({message:e,sessionId:t?.sessionId,context:t?.context})});if(!n.ok){const e=await n.json().catch(()=>({}));throw new Error(e.message||`HTTP ${n.status}: ${n.statusText}`)}return n.json()}async chatStream(e,t){const n=await fetch(`${this.baseUrl}/api/external/chat/stream`,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":this.apiKey},body:JSON.stringify({message:e,sessionId:t?.sessionId,context:t?.context})});if(!n.ok){const e=await n.json().catch(()=>({}));throw new Error(e.message||`HTTP ${n.status}`)}const s=n.body?.getReader();if(!s)throw new Error("Streaming not supported");const i=new TextDecoder;let o,a="",r="",c=[];try{for(;;){const{done:e,value:n}=await s.read();if(e)break;a+=i.decode(n,{stream:!0});const l=a.split("\n");a=l.pop()||"";for(const e of l)if(e.startsWith("event: "));else if(e.startsWith("data: "))try{const n=JSON.parse(e.slice(6));void 0!==n.text?(r+=n.text,t.onToken?.(n.text)):void 0!==n.sources?(c=n.sources,t.onSources?.(c)):void 0!==n.sessionId&&(o=n.sessionId)}catch{}}t.onComplete?.({fullText:r,sessionId:o,sources:c})}catch(e){t.onError?.(e)}}async getGeneralDocs(e){const t=new URLSearchParams;e&&t.set("since",e);const n=`${this.baseUrl}/api/external/docs${t.toString()?"?"+t:""}`,s=await fetch(n,{headers:{"X-API-Key":this.apiKey}});if(!s.ok)throw new Error(`HTTP ${s.status}`);return(await s.json()).documents}async getStatus(){const e=await fetch(`${this.baseUrl}/api/external/status`,{headers:{"X-API-Key":this.apiKey}});if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}async health(){const e=await fetch(`${this.baseUrl}/api/external/health`);if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}}let n,s;const i=new WeakMap,o=new WeakMap,a=new WeakMap,r=new WeakMap,c=new WeakMap;let l={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return o.get(e);if("objectStoreNames"===t)return e.objectStoreNames||a.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return h(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function u(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(s||(s=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(f(this),t),h(i.get(this))}:function(...t){return h(e.apply(f(this),t))}:function(t,...n){const s=e.call(f(this),t,...n);return a.set(s,t.sort?t.sort():[t]),h(s)}}function d(e){return"function"==typeof e?u(e):(e instanceof IDBTransaction&&function(e){if(o.has(e))return;const t=new Promise((t,n)=>{const s=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",o),e.removeEventListener("abort",o)},i=()=>{t(),s()},o=()=>{n(e.error||new DOMException("AbortError","AbortError")),s()};e.addEventListener("complete",i),e.addEventListener("error",o),e.addEventListener("abort",o)});o.set(e,t)}(e),t=e,(n||(n=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(e=>t instanceof e)?new Proxy(e,l):e);var t}function h(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,n)=>{const s=()=>{e.removeEventListener("success",i),e.removeEventListener("error",o)},i=()=>{t(h(e.result)),s()},o=()=>{n(e.error),s()};e.addEventListener("success",i),e.addEventListener("error",o)});return t.then(t=>{t instanceof IDBCursor&&i.set(t,e)}).catch(()=>{}),c.set(t,e),t}(e);if(r.has(e))return r.get(e);const t=d(e);return t!==e&&(r.set(e,t),c.set(t,e)),t}const f=e=>c.get(e);const g=["get","getKey","getAll","getAllKeys","count"],m=["put","add","delete","clear"],p=new Map;function y(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(p.get(t))return p.get(t);const n=t.replace(/FromIndex$/,""),s=t!==n,i=m.includes(n);if(!(n in(s?IDBIndex:IDBObjectStore).prototype)||!i&&!g.includes(n))return;const o=async function(e,...t){const o=this.transaction(e,i?"readwrite":"readonly");let a=o.store;return s&&(a=a.index(t.shift())),(await Promise.all([a[n](...t),i&&o.done]))[0]};return p.set(t,o),o}l=(e=>({...e,get:(t,n,s)=>y(t,n)||e.get(t,n,s),has:(t,n)=>!!y(t,n)||e.has(t,n)}))(l);class w{constructor(e){this.db=null,this.dbPromise=null,this.documentCount=0,this.lastSyncAt=null,this.config=e,"indexeddb"===e.storage&&"undefined"!=typeof indexedDB?this.dbPromise=this.initDB():"localstorage"===e.storage&&this.loadLocalStorageMetadata()}loadLocalStorageMetadata(){try{const e=localStorage.getItem("cybernetic-cache-meta");if(e){const t=JSON.parse(e);this.documentCount=t.documentCount||0,this.lastSyncAt=t.lastSyncAt||null}}catch{}}async initDB(){return this.db=await function(e,t,{blocked:n,upgrade:s,blocking:i,terminated:o}={}){const a=indexedDB.open(e,t),r=h(a);return s&&a.addEventListener("upgradeneeded",e=>{s(h(a.result),e.oldVersion,e.newVersion,h(a.transaction),e)}),n&&a.addEventListener("blocked",e=>n(e.oldVersion,e.newVersion,e)),r.then(e=>{o&&e.addEventListener("close",()=>o()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),r}("cybernetic-cache",1,{upgrade(e){if(!e.objectStoreNames.contains("documents")){e.createObjectStore("documents",{keyPath:"id"}).createIndex("by-updated","updatedAt")}e.objectStoreNames.contains("metadata")||e.createObjectStore("metadata",{keyPath:"key"})}}),await this.loadMetadata(),this.db}async getDB(){if(this.db)return this.db;if(this.dbPromise)return this.dbPromise;throw new Error("Database not available")}async loadMetadata(){if(!this.db)return;const e=await this.db.get("metadata","documentCount");this.documentCount=e?.value||0;const t=await this.db.get("metadata","lastSyncAt");this.lastSyncAt=t?.value||null}async store(e){if("localstorage"===this.config.storage)return this.storeLocalStorage(e);const t=(await this.getDB()).transaction(["documents","metadata"],"readwrite");for(const n of e)await t.objectStore("documents").put(n);this.documentCount=await t.objectStore("documents").count(),this.lastSyncAt=(new Date).toISOString(),await t.objectStore("metadata").put({key:"documentCount",value:this.documentCount}),await t.objectStore("metadata").put({key:"lastSyncAt",value:this.lastSyncAt}),await t.done}async retrieve(){if("localstorage"===this.config.storage)return this.retrieveLocalStorage();return(await this.getDB()).getAll("documents")}async getLastSync(){return this.lastSyncAt}getStatus(){const e=Date.now()-(this.lastSyncAt?new Date(this.lastSyncAt).getTime():0)>this.config.maxAge;return{documentCount:this.documentCount,lastSyncAt:this.lastSyncAt,cacheSize:5e3*this.documentCount,isStale:e}}async clear(){if("localstorage"===this.config.storage)return localStorage.removeItem("cybernetic-cache-docs"),localStorage.removeItem("cybernetic-cache-meta"),this.documentCount=0,void(this.lastSyncAt=null);const e=(await this.getDB()).transaction(["documents","metadata"],"readwrite");await e.objectStore("documents").clear(),await e.objectStore("metadata").clear(),await e.done,this.documentCount=0,this.lastSyncAt=null}storeLocalStorage(e){try{localStorage.setItem("cybernetic-cache-docs",JSON.stringify(e)),this.documentCount=e.length,this.lastSyncAt=(new Date).toISOString(),localStorage.setItem("cybernetic-cache-meta",JSON.stringify({documentCount:this.documentCount,lastSyncAt:this.lastSyncAt}))}catch{localStorage.removeItem("cybernetic-cache-docs");const t=e.slice(0,50);localStorage.setItem("cybernetic-cache-docs",JSON.stringify(t)),this.documentCount=t.length}}retrieveLocalStorage(){try{const e=localStorage.getItem("cybernetic-cache-docs");return e?JSON.parse(e):[]}catch{return[]}}}class b{constructor(){this.documents=[],this.idf=new Map,this.indexed=!1}isIndexed(){return this.indexed&&this.documents.length>0}async index(e){this.documents=[],this.idf=new Map;const t=new Map;for(const n of e){const e=this.tokenize(n.content),s=new Set(e);for(const e of s)t.set(e,(t.get(e)||0)+1);this.documents.push({id:n.id,title:n.title,content:n.content,tokens:e,tfidf:new Map})}const n=e.length;for(const[e,s]of t)this.idf.set(e,Math.log((n+1)/(s+1))+1);for(const e of this.documents){const t=this.computeTermFrequency(e.tokens);for(const[n,s]of t){const t=this.idf.get(n)||1;e.tfidf.set(n,s*t)}}this.indexed=!0}async ask(e){if(!this.indexed||0===this.documents.length)return{answer:"I don't have any information available offline.",sources:[],topScore:0};const t=this.tokenize(e),n=this.computeTermFrequency(t),s=new Map;for(const[e,t]of n){const n=this.idf.get(e)||1;s.set(e,t*n)}const i=this.documents.map(e=>({doc:e,score:this.cosineSimilarity(s,e.tfidf)}));i.sort((e,t)=>t.score-e.score);const o=i.slice(0,3).filter(e=>e.score>.1);if(0===o.length)return{answer:"I couldn't find relevant information for your question in my offline data.",sources:[],topScore:i[0]?.score||0};const a=o[0].doc;return{answer:this.extractRelevantSnippet(a.content,t),sources:o.map(e=>({title:e.doc.title,snippet:e.doc.content.substring(0,200)+"...",score:e.score})),topScore:o[0].score}}reset(){this.documents=[],this.idf=new Map,this.indexed=!1}tokenize(e){return e.toLowerCase().replace(/[^\w\s]/g," ").split(/\s+/).filter(e=>e.length>2&&!this.isStopWord(e))}computeTermFrequency(e){const t=new Map;for(const n of e)t.set(n,(t.get(n)||0)+1);const n=Math.max(...t.values());if(n>0)for(const[e,s]of t)t.set(e,s/n);return t}cosineSimilarity(e,t){let n=0,s=0,i=0;for(const[i,o]of e){n+=o*(t.get(i)||0),s+=o*o}for(const e of t.values())i+=e*e;return 0===s||0===i?0:n/(Math.sqrt(s)*Math.sqrt(i))}extractRelevantSnippet(e,t){const n=e.split(/[.!?]+/).filter(e=>e.trim().length>0).map(e=>{const n=new Set(this.tokenize(e));let s=0;for(const e of t)n.has(e)&&s++;return{sentence:e.trim(),score:s}});n.sort((e,t)=>t.score-e.score);const s=n.slice(0,3).filter(e=>e.score>0);return 0===s.length?e.substring(0,300)+"...":s.map(e=>e.sentence).join(". ")+"."}isStopWord(e){return new Set(["the","a","an","and","or","but","in","on","at","to","for","of","with","by","from","up","about","into","through","during","is","are","was","were","be","been","being","have","has","had","do","does","did","will","would","could","should","may","might","this","that","these","those","it","its","they","them","their","what","which","who","whom","when","where","why","how","all","each","every","both","few","more","most","other","some","such","no","not","only","same","so","than","too","very"]).has(e)}}function v(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");const n=t.length%4;n&&(t+="=".repeat(4-n));const s=atob(t),i=new Uint8Array(s.length);for(let e=0;e<s.length;e++)i[e]=s.charCodeAt(e);return i}function S(e){const t=v(e);return(new TextDecoder).decode(t)}function C(e){try{const t=e.split(".");if(3!==t.length)return null;const[n,s,i]=t;return{header:JSON.parse(S(n)),payload:JSON.parse(S(s)),signature:v(i),signedContent:`${n}.${s}`}}catch{return null}}async function E(e,t,n){try{const s=await async function(e){const t=e.replace(/-----BEGIN PUBLIC KEY-----/,"").replace(/-----END PUBLIC KEY-----/,"").replace(/\s/g,""),n=atob(t),s=new Uint8Array(n.length);for(let e=0;e<n.length;e++)s[e]=n.charCodeAt(e);return crypto.subtle.importKey("spki",s.buffer,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"])}(n),i=(new TextEncoder).encode(e),o=new Uint8Array(t).buffer;return await crypto.subtle.verify({name:"ECDSA",hash:"SHA-256"},s,o,i)}catch(e){return console.warn("[License] Signature verification failed:",e),!1}}async function k(e,t){if(!e||""===e.trim())return{status:"missing",payload:null,error:"No license key provided",inGracePeriod:!1,daysRemaining:null};const n=C(e);if(!n)return{status:"invalid",payload:null,error:"Invalid license key format",inGracePeriod:!1,daysRemaining:null};const s=function(e){return"string"!=typeof e.iss||"string"!=typeof e.sub||"string"!=typeof e.aud||"number"!=typeof e.iat||"number"!=typeof e.exp||"string"!=typeof e.plan||"number"!=typeof e.seats?null:Array.isArray(e.features)?"number"!=typeof e.licenseVersion?null:{iss:e.iss,sub:e.sub,aud:e.aud,iat:e.iat,exp:e.exp,plan:e.plan,org:"string"==typeof e.org?e.org:void 0,seats:e.seats,features:e.features,graceUntil:"number"==typeof e.graceUntil?e.graceUntil:void 0,licenseVersion:e.licenseVersion}:null}(n.payload);if(!s)return{status:"invalid",payload:null,error:"Invalid license payload structure",inGracePeriod:!1,daysRemaining:null};if("astermind"!==s.iss)return{status:"invalid",payload:null,error:"Invalid license issuer",inGracePeriod:!1,daysRemaining:null};if("cybernetic-chatbot"!==s.aud&&"*"!==s.aud)return{status:"invalid",payload:null,error:"License not valid for this product",inGracePeriod:!1,daysRemaining:null};if("undefined"!=typeof crypto&&crypto.subtle){const e=t||"-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhLW7MXHQ0Fuk1OKt9D5CbRw7fUMN\nLJ5AZXvOhHaXdHzMuYKX5BpK4w7TqbPvJ6QPvKmLKvHh1VKcUJ6mJQgJJw==\n-----END PUBLIC KEY-----";if(!await E(n.signedContent,n.signature,e))return{status:"invalid",payload:null,error:"License signature verification failed",inGracePeriod:!1,daysRemaining:null}}const i=Math.floor(Date.now()/1e3),o=function(e){const t=e-Math.floor(Date.now()/1e3);return Math.floor(t/86400)}(s.exp);return s.exp<i?s.graceUntil&&s.graceUntil>i?{status:"valid",payload:s,inGracePeriod:!0,daysRemaining:o}:{status:"expired",payload:s,error:"License has expired",inGracePeriod:!1,daysRemaining:o}:"eval"===s.plan?{status:"eval",payload:s,inGracePeriod:!1,daysRemaining:o}:{status:"valid",payload:s,inGracePeriod:!1,daysRemaining:o}}const x={CLIENT:"cybernetic-chatbot-client",AGENTIC:"agentic"};function A(){if("undefined"==typeof window)return"production"===process?.env?.NODE_ENV?"production":"development";const e=window.location?.hostname||"",t=["localhost","127.0.0.1","0.0.0.0",".local",".dev",".test",":3000",":5173",":8080",":4200"];for(const n of t)if(e.includes(n)||window.location?.port===n.replace(":",""))return"development";if("file:"===window.location?.protocol)return"development";const n=["staging.","preview.","-preview.",".vercel.app",".netlify.app",".pages.dev"];for(const t of n)if(e.includes(t))return"production";return"production"}function M(e){return"development"===e?"soft":"hard"}class I{constructor(e={}){this.state=null,this.verificationPromise=null,this.hasLoggedWarning=!1,this.loggedMissingFeatures=new Set,this.config=e,this.environment=e.environment||A(),this.enforcementMode=M(this.environment)}async verify(){if(this.state)return this.state;if(this.verificationPromise)return this.verificationPromise;this.verificationPromise=k(this.config.licenseKey,this.config.publicKey);try{return this.state=await this.verificationPromise,this.config.onStatusChange?.(this.state),this.logLicenseStatus(),this.state}finally{this.verificationPromise=null}}getState(){return this.state}isValid(){return!!this.state&&("valid"===this.state.status||"eval"===this.state.status)}requiresAction(){return!this.state||("expired"===this.state.status||"missing"===this.state.status||"invalid"===this.state.status)}getEnvironment(){return this.environment}getEnforcementMode(){return this.enforcementMode}processResponse(e){return this.state?this.isValid()&&!this.state.inGracePeriod?e:"soft"===this.enforcementMode?(this.hasLoggedWarning||(this.logDevelopmentWarning(),this.hasLoggedWarning=!0),e):e+"\n\n---\n⚠️ License Notice: Your AsterMind license key needs to be updated. Please contact support@astermind.ai or visit https://astermind.ai/license to renew your license.":e}getStatusMessage(){if(!this.state)return"License not verified";switch(this.state.status){case"valid":return this.state.inGracePeriod?`License expired but in grace period (${Math.abs(this.state.daysRemaining||0)} days overdue)`:`License valid (${this.state.daysRemaining} days remaining)`;case"eval":return`Evaluation license (${this.state.daysRemaining} days remaining)`;case"expired":return`License expired ${Math.abs(this.state.daysRemaining||0)} days ago`;case"missing":return"No license key provided";case"invalid":return`Invalid license: ${this.state.error}`;default:return"Unknown license status"}}async reVerify(){return this.state=null,this.hasLoggedWarning=!1,this.loggedMissingFeatures.clear(),this.verify()}hasFeature(e){return!!this.state?.payload&&this.state.payload.features.includes(e)}getFeatures(){return this.state?.payload?.features||[]}checkClientFeature(){return this.checkFeatureWithLog(x.CLIENT,"CyberneticClient")}checkAgenticFeature(){return this.checkFeatureWithLog(x.AGENTIC,"Agentic capabilities")}checkFeatureWithLog(e,t){if(!this.state?.payload)return!0;const n=this.state.payload.features.includes(e);return n||this.loggedMissingFeatures.has(e)||(this.loggedMissingFeatures.add(e),this.logMissingFeature(e,t)),n}logMissingFeature(e,t){const n=this.getFeatures(),s=this.state?.payload?.plan||"unknown";console.warn(`[Cybernetic License] ${t} requires the '${e}' feature, which is not included in your license.`),console.info(`[Cybernetic License] Current license plan: ${s}`),console.info(`[Cybernetic License] Licensed features: ${n.length>0?n.join(", "):"(none)"}`),console.info("[Cybernetic License] To add this feature, upgrade your license at https://astermind.ai/license")}logLicenseStatus(){if(!this.state)return;const e="[Cybernetic License]";switch(this.state.status){case"valid":this.state.inGracePeriod?console.warn(`${e} License expired but in grace period. Please renew at https://astermind.ai/license`):null!==this.state.daysRemaining&&this.state.daysRemaining<=30&&console.info(`${e} License expires in ${this.state.daysRemaining} days`);break;case"eval":console.info(`${e} Evaluation license - ${this.state.daysRemaining} days remaining`);break;case"expired":console.error(`${e} License expired. Enforcement mode: ${this.enforcementMode}. Renew at https://astermind.ai/license`);break;case"missing":console.warn(`${e} No license key provided. Enforcement mode: ${this.enforcementMode}. Get a license at https://astermind.ai/license`);break;case"invalid":console.error(`${e} Invalid license: ${this.state.error}. Enforcement mode: ${this.enforcementMode}`)}}logDevelopmentWarning(){console.warn(`[Cybernetic License] Running in development mode with ${this.state?.status||"unknown"} license. In production, a warning will be appended to chatbot responses. Get a license at https://astermind.ai/license`)}}class L{constructor(e){this.status="connecting",this.lastError=null,this.systemSettings=null,this.settingsLastChecked=0,this.SETTINGS_CHECK_INTERVAL=3e5,this.agenticCapabilities=null,this.config={apiUrl:e.apiUrl,apiKey:e.apiKey,fallback:{enabled:e.fallback?.enabled??!0,cacheMaxAge:e.fallback?.cacheMaxAge??864e5,cacheOnConnect:e.fallback?.cacheOnConnect??!0,cacheStorage:e.fallback?.cacheStorage??"indexeddb"},retry:{maxRetries:e.retry?.maxRetries??2,initialDelay:e.retry?.initialDelay??1e3,exponentialBackoff:e.retry?.exponentialBackoff??!0},agentic:e.agentic??null,onStatusChange:e.onStatusChange||(()=>{}),onError:e.onError||(()=>{})},this.apiClient=new t(this.config.apiUrl,this.config.apiKey),this.cache=new w({storage:this.config.fallback.cacheStorage,maxAge:this.config.fallback.cacheMaxAge}),this.localRAG=new b,this.licenseManager=new I({licenseKey:e.licenseKey}),this.licenseManager.verify().then(()=>{this.licenseManager.checkClientFeature()}).catch(()=>{}),this.monitorConnection(),this.config.fallback.enabled&&this.config.fallback.cacheOnConnect&&this.syncCache().catch(()=>{})}registerAgentic(e){this.agenticCapabilities=e,console.log("[Cybernetic] Agentic capabilities registered")}isAgenticEnabled(){return null!==this.agenticCapabilities&&!0===this.config.agentic?.enabled&&(this.licenseManager.checkAgenticFeature(),!0)}getAgenticCapabilities(){return this.agenticCapabilities}getAgenticConfig(){return this.config.agentic}classifyIntent(e){if(!this.isAgenticEnabled()||!this.agenticCapabilities)return null;const t=this.config.agentic;return new(0,this.agenticCapabilities.agent)(t).interpretIntent(e)}async executeAction(e){if(!this.isAgenticEnabled()||!this.agenticCapabilities)return{success:!1,message:"Agentic capabilities not enabled"};const t=this.config.agentic;return new(0,this.agenticCapabilities.agent)(t).executeAction(e)}async smartAsk(e,t){const n=this.classifyIntent(e);if(n&&n.action&&!n.shouldEscalate){if(!1!==this.config.agentic?.requireConfirmation)return{action:n.action};const e=await this.executeAction(n.action);return{action:n.action,actionResult:e}}return{response:await this.ask(e,t)}}async ask(e,t){if(!e||"string"!=typeof e)return this.createErrorResponse("Message is required","none");const n=await this.checkSystemStatus();if(n.maintenanceMode||n.forceOfflineClients)return console.log("[Cybernetic] Maintenance mode active, using cached data"),this.isCacheValid()?await this.fallbackAsk(e):{reply:n.maintenanceMessage||"The service is currently under maintenance. Please try again later.",confidence:"none",sources:[],offline:!0,degradedReason:"Maintenance mode active, no valid cache available"};try{const n=await this.apiWithRetry(e,t);this.setStatus("online");return{reply:this.licenseManager.processResponse(n.reply),confidence:"high",sources:n.sources||[],offline:!1,sessionId:n.sessionId}}catch(n){const s=this.normalizeError(n);return this.lastError=s,this.config.onError(s),"RATE_LIMIT"===s.code?{reply:"I'm receiving too many requests right now. Please try again in a moment.",confidence:"none",sources:[],offline:!1,retryAfter:s.retryAfter}:this.config.fallback.enabled&&!t?.skipFallback?await this.fallbackAsk(e):this.createErrorResponse("Unable to connect to the chatbot service. Please try again later.","none",s.retryAfter)}}async askStream(e,t,n){if(!e||"string"!=typeof e)return void t.onError?.({code:"LOCAL_RAG_ERROR",message:"Message is required"});const s=await this.checkSystemStatus();if(s.maintenanceMode||s.forceOfflineClients){console.log("[Cybernetic] Maintenance mode active, falling back to offline");const n=await this.fallbackAsk(e);return void t.onComplete?.(n)}try{await this.apiClient.chatStream(e,{sessionId:n?.sessionId,context:n?.context,onToken:t.onToken,onSources:t.onSources,onComplete:e=>{this.setStatus("online");const n=this.licenseManager.processResponse(e.fullText);t.onComplete?.({reply:n,confidence:"high",sources:e.sources||[],offline:!1,sessionId:e.sessionId})},onError:e=>{const n=this.normalizeError(e);this.config.onError(n),t.onError?.(n)}})}catch(s){const i=this.normalizeError(s);if(this.lastError=i,this.config.onError(i),this.config.fallback.enabled&&!n?.skipFallback){const n=await this.fallbackAsk(e);t.onComplete?.(n)}else t.onError?.(i)}}async syncCache(){try{const e=await this.cache.getLastSync(),t=await this.apiClient.getGeneralDocs(e);t.length>0&&(await this.cache.store(t),await this.localRAG.index(t),console.log(`[Cybernetic] Cache synced: ${t.length} documents`)),this.setStatus("online")}catch(e){console.warn("[Cybernetic] Cache sync failed:",e)}}getStatus(){return{connection:this.status,cache:this.cache.getStatus(),lastError:this.lastError,systemSettings:this.systemSettings,license:this.licenseManager.getState()}}getLicenseManager(){return this.licenseManager}async clearCache(){await this.cache.clear(),this.localRAG.reset()}async checkConnection(){try{return await this.apiClient.getStatus(),this.setStatus("online"),!0}catch{return this.setStatus("offline"),!1}}async checkSystemStatus(){if(this.systemSettings&&Date.now()-this.settingsLastChecked<this.SETTINGS_CHECK_INTERVAL)return this.systemSettings;try{const e=await this.apiClient.getStatus();return this.systemSettings={cacheRetentionHours:e.systemSettings?.cacheRetentionHours??168,maintenanceMode:e.systemSettings?.maintenanceMode??!1,maintenanceMessage:e.systemSettings?.maintenanceMessage,forceOfflineClients:e.systemSettings?.forceOfflineClients??!1},this.settingsLastChecked=Date.now(),this.systemSettings}catch{return this.systemSettings||{cacheRetentionHours:168,maintenanceMode:!1,forceOfflineClients:!1}}}isMaintenanceMode(){return this.systemSettings?.maintenanceMode??!1}getMaintenanceMessage(){return this.systemSettings?.maintenanceMessage}isCacheValid(){const e=this.cache.getStatus();if(!e.lastSyncAt)return!1;const t=60*(this.systemSettings?.cacheRetentionHours||168)*60*1e3,n=new Date(e.lastSyncAt).getTime();return Date.now()-n<t}async apiWithRetry(e,t){const{maxRetries:n,initialDelay:s,exponentialBackoff:i}=this.config.retry;let o=null;for(let a=0;a<=n;a++)try{return await this.apiClient.chat(e,{sessionId:t?.sessionId,context:t?.context})}catch(e){o=e;const t=this.normalizeError(e);if("AUTH_ERROR"===t.code||"RATE_LIMIT"===t.code)throw e;if(a<n){const e=i?s*Math.pow(2,a):s;await this.sleep(e)}}throw o}async fallbackAsk(e){this.setStatus("offline");const t=this.cache.getStatus();if(0===t.documentCount)return{reply:"I'm currently offline and don't have any cached information. Please check your connection and try again.",confidence:"none",sources:[],offline:!0,degradedReason:"No cached documents available"};try{const n=await this.cache.retrieve();this.localRAG.isIndexed()||await this.localRAG.index(n);const s=await this.localRAG.ask(e);let i="medium";s.topScore<.3?i="low":s.topScore>.7&&(i="medium");return{reply:this.licenseManager.processResponse(s.answer),confidence:i,sources:s.sources.map(e=>({title:e.title,snippet:e.snippet,relevance:e.score})),offline:!0,degradedReason:t.isStale?"Using stale cached data":"Processed locally without server"}}catch(e){return console.error("[Cybernetic] Local RAG error:",e),{reply:"I'm having trouble processing your request offline. Please try again when you're back online.",confidence:"none",sources:[],offline:!0,degradedReason:"Local RAG processing failed"}}}monitorConnection(){"undefined"!=typeof window&&(window.addEventListener("online",()=>{this.syncCache().catch(()=>{})}),window.addEventListener("offline",()=>{this.setStatus("offline")}),navigator.onLine||this.setStatus("offline"))}setStatus(e){this.status!==e&&(this.status=e,this.config.onStatusChange(e))}normalizeError(e){if(e instanceof Error){if(e.message.includes("401")||e.message.includes("Unauthorized"))return{code:"AUTH_ERROR",message:"Invalid or expired API key",originalError:e};if(e.message.includes("429")||e.message.includes("Rate limit")){const t=e.message.match(/retry after (\d+)/i);return{code:"RATE_LIMIT",message:"Rate limit exceeded",retryAfter:t?parseInt(t[1],10):60,originalError:e}}return e.message.includes("5")||e.message.includes("Server")?{code:"SERVER_ERROR",message:"Server error occurred",originalError:e}:{code:"NETWORK_ERROR",message:e.message||"Network error",originalError:e}}return{code:"NETWORK_ERROR",message:"Unknown error occurred"}}createErrorResponse(e,t,n){return{reply:e,confidence:t,sources:[],offline:!1,retryAfter:n}}sleep(e){return new Promise(t=>setTimeout(t,e))}}function $(e){if(!e||"object"!=typeof e)throw new Error("Config must be an object");const t=e;if(!t.apiUrl||"string"!=typeof t.apiUrl)throw new Error("apiUrl is required and must be a string");if(!t.apiKey||"string"!=typeof t.apiKey)throw new Error("apiKey is required and must be a string");if(!t.apiKey.startsWith("am_"))throw new Error('apiKey must start with "am_"');return!0}const R={navigate:[{pattern:/^(go to|navigate to|take me to|open|show me|bring up)\s+(.+)/i,type:"navigate",weight:.9},{pattern:/^(i want to see|i need to go to|let me see)\s+(.+)/i,type:"navigate",weight:.85},{pattern:/^(where is|how do i get to)\s+(.+)/i,type:"navigate",weight:.6}],fillForm:[{pattern:/^(search for|find|look up|search)\s+(.+)/i,type:"fillForm",weight:.88},{pattern:/^(filter by|set .+ to|change .+ to)\s+(.+)/i,type:"fillForm",weight:.85},{pattern:/^(enter|type|put)\s+(.+)\s+(in|into)\s+(.+)/i,type:"fillForm",weight:.9}],clickElement:[{pattern:/^(click|press|hit|tap)\s+(the\s+)?(.+)\s+(button|link)/i,type:"clickElement",weight:.9},{pattern:/^(submit|send|confirm|save|cancel|delete)/i,type:"clickElement",weight:.85}],triggerModal:[{pattern:/^(open|show|display)\s+(the\s+)?(.+)\s+(modal|dialog|popup|window)/i,type:"triggerModal",weight:.9},{pattern:/^(open|show)\s+(help|settings|preferences|options)/i,type:"triggerModal",weight:.85}],scroll:[{pattern:/^(scroll to|jump to|go to)\s+(the\s+)?(.+)\s+(section|area|part)/i,type:"scroll",weight:.85},{pattern:/^(show me|take me to)\s+(the\s+)?(bottom|top|end|beginning)/i,type:"scroll",weight:.8}],highlight:[{pattern:/^(highlight|show me|point to|where is)\s+(the\s+)?(.+)/i,type:"highlight",weight:.7}],custom:[{pattern:/^(export|download|refresh|reload|sync)/i,type:"custom",weight:.85}]};class T{constructor(e){this.config=e,this.siteMapIndex=new Map,this.formIndex=new Map,this.modalIndex=new Map,this.buildIndexes()}buildIndexes(){if(this.config.siteMap)for(const e of this.config.siteMap){const t=[e.name.toLowerCase(),e.path.toLowerCase(),...(e.aliases||[]).map(e=>e.toLowerCase())];for(const n of t)this.siteMapIndex.set(n,e)}if(this.config.forms)for(const[e,t]of Object.entries(this.config.forms)){const n=[e.toLowerCase(),t.name.toLowerCase(),...(t.aliases||[]).map(e=>e.toLowerCase())];for(const e of n)this.formIndex.set(e,t)}if(this.config.modals)for(const[e,t]of Object.entries(this.config.modals)){const n=[e.toLowerCase(),t.id.toLowerCase(),...(t.aliases||[]).map(e=>e.toLowerCase())];for(const e of n)this.modalIndex.set(e,t)}}classify(e){if(!this.config.enabled)return{action:null,shouldEscalate:!0,rawConfidence:0};const t=e.trim().toLowerCase();for(const[t,n]of Object.entries(R))for(const{pattern:s,weight:i}of n){const n=e.match(s);if(n){const e=this.buildAction(t,n,i);if(e)return e}}const n=this.fuzzyMatchSiteMap(t);if(n)return n;const s=this.matchCustomAction(t);return s||{action:null,shouldEscalate:!0,rawConfidence:0,matchedPatterns:[]}}buildAction(e,t,n){const s=this.config.confidenceThreshold??.8;switch(e){case"navigate":{const e=this.extractTarget(t),i=this.findSiteMapMatch(e);if(i){const e=n*i.similarity;return{action:{id:`action-${Date.now()}`,type:"navigate",target:i.entry.path,confidence:e,explanation:`Navigate to ${i.entry.name}`},shouldEscalate:e<s,rawConfidence:e,matchedPatterns:["navigate",i.entry.name]}}break}case"fillForm":{const e=this.extractTarget(t),{field:i,value:o}=this.parseFormIntent(t);if(i){const e=.95*n;return{action:{id:`action-${Date.now()}`,type:"fillForm",target:i.selector,params:{value:o},confidence:e,explanation:`Fill "${i.name}" with "${o}"`},shouldEscalate:e<s,rawConfidence:e,matchedPatterns:["fillForm",i.name]}}if(this.config.forms?.search){const t=.9*n;return{action:{id:`action-${Date.now()}`,type:"fillForm",target:this.config.forms.search.selector,params:{value:e},confidence:t,explanation:`Search for "${e}"`},shouldEscalate:t<s,rawConfidence:t,matchedPatterns:["fillForm","search"]}}break}case"clickElement":{const e=this.extractTarget(t),i=this.findButtonSelector(e);if(i){const t=.95*n;return{action:{id:`action-${Date.now()}`,type:"clickElement",target:i,confidence:t,explanation:`Click "${e}" button`},shouldEscalate:t<s,rawConfidence:t,matchedPatterns:["clickElement",e]}}break}case"triggerModal":{const e=this.extractTarget(t),i=this.findModalConfig(e);if(i){const e=.95*n;return{action:{id:`action-${Date.now()}`,type:"triggerModal",target:i.trigger,confidence:e,explanation:`Open ${i.id} modal`},shouldEscalate:e<s,rawConfidence:e,matchedPatterns:["triggerModal",i.id]}}break}case"scroll":{const e=this.extractTarget(t),i=this.findScrollTarget(e);if(i){const t=.9*n;return{action:{id:`action-${Date.now()}`,type:"scroll",target:i,confidence:t,explanation:`Scroll to ${e}`},shouldEscalate:t<s,rawConfidence:t,matchedPatterns:["scroll",e]}}break}case"highlight":{const e=this.extractTarget(t),i=this.findElementByDescription(e);if(i){const t=.85*n;return{action:{id:`action-${Date.now()}`,type:"highlight",target:i,confidence:t,explanation:`Highlight ${e}`},shouldEscalate:t<s,rawConfidence:t,matchedPatterns:["highlight",e]}}break}case"custom":{const e=t[1]?.toLowerCase();if(this.config.customActions?.[e]){const t=.95*n;return{action:{id:`action-${Date.now()}`,type:"custom",target:e,confidence:t,explanation:`Execute ${e} action`},shouldEscalate:t<s,rawConfidence:t,matchedPatterns:["custom",e]}}break}}return null}extractTarget(e){for(let t=e.length-1;t>=1;t--)if(e[t])return e[t].trim();return""}findSiteMapMatch(e){const t=e.toLowerCase().replace(/[^a-z0-9\s]/g,""),n=this.siteMapIndex.get(t);if(n)return{entry:n,similarity:1};let s=null,i=0;for(const[e,n]of this.siteMapIndex){const o=this.calculateSimilarity(t,e);o>i&&o>.6&&(i=o,s=n)}return s?{entry:s,similarity:i}:null}fuzzyMatchSiteMap(e){const t=this.config.confidenceThreshold??.8;for(const[n,s]of this.siteMapIndex)if(e.includes(n)){const e=.75;return{action:{id:`action-${Date.now()}`,type:"navigate",target:s.path,confidence:e,explanation:`Navigate to ${s.name}`},shouldEscalate:e<t,rawConfidence:e,matchedPatterns:["fuzzy-sitemap",n]}}return null}matchCustomAction(e){if(!this.config.customActions)return null;const t=this.config.confidenceThreshold??.8;for(const n of Object.keys(this.config.customActions))if(e.includes(n.toLowerCase())){const e=.85;return{action:{id:`action-${Date.now()}`,type:"custom",target:n,confidence:e,explanation:`Execute ${n}`},shouldEscalate:e<t,rawConfidence:e,matchedPatterns:["custom",n]}}return null}parseFormIntent(e){const t=e[0];for(const[,e]of this.formIndex)if(t.toLowerCase().includes(e.name.toLowerCase())){const n=t.match(new RegExp(`${e.name}[^a-z]*(.+)`,"i"));return{field:e,value:n?.[1]?.trim()||""}}return{field:null,value:this.extractTarget(e)}}findButtonSelector(e){const t=e.toLowerCase();if("undefined"==typeof document)return`button:contains("${e}")`;const n=[`[data-action="${t}"]`,`[aria-label*="${t}" i]`,`.btn-${t}`,`#${t}-button`,`button.${t}`];for(const e of n)try{if(document.querySelector(e))return e}catch{}const s=document.querySelectorAll('button, [role="button"], a.btn');for(const e of s)if(e.textContent?.toLowerCase().includes(t))return this.generateUniqueSelector(e);return null}findModalConfig(e){return this.modalIndex.get(e.toLowerCase())||null}findScrollTarget(e){const t=e.toLowerCase();if("top"===t||"beginning"===t)return"body";if("bottom"===t||"end"===t)return"body:last-child";if("undefined"==typeof document)return`#${t.replace(/\s+/g,"-")}`;const n=[`#${t.replace(/\s+/g,"-")}`,`[data-section="${t}"]`,`.${t.replace(/\s+/g,"-")}-section`,`section[aria-label*="${t}" i]`];for(const e of n)try{if(document.querySelector(e))return e}catch{continue}return null}findElementByDescription(e){const t=e.toLowerCase();if("undefined"==typeof document)return`[aria-label*="${t}" i]`;const n=[`[aria-label*="${t}" i]`,`[data-testid*="${t}" i]`,`[title*="${t}" i]`];for(const e of n)try{if(document.querySelector(e))return e}catch{continue}return null}generateUniqueSelector(e){if(e.id)return`#${e.id}`;if(e.getAttribute("data-testid"))return`[data-testid="${e.getAttribute("data-testid")}"]`;const t=[];let n=e;for(;n&&n!==document.body;){let e=n.tagName.toLowerCase();if(n.className&&"string"==typeof n.className){const t=n.className.split(" ").filter(e=>e&&!e.includes(" "));t.length>0&&(e+=`.${t.slice(0,2).join(".")}`)}t.unshift(e),n=n.parentElement}return t.join(" > ")}calculateSimilarity(e,t){const n=new Set(e.split(/\s+/)),s=new Set(t.split(/\s+/)),i=new Set([...n].filter(e=>s.has(e))),o=new Set([...n,...s]);return i.size/o.size}getConfig(){return this.config}}class D{constructor(e){this.highlightOverlay=null,this.actionCount=0,this.lastActionReset=Date.now(),this.config=e,this.classifier=new T(e),"undefined"!=typeof document&&this.injectStyles()}interpretIntent(e){return this.classifier.classify(e)}async executeAction(e){const t=Date.now();t-this.lastActionReset>6e4&&(this.actionCount=0,this.lastActionReset=t);const n=this.config.maxActionsPerTurn??5;if(this.actionCount>=n)return{success:!1,message:`Rate limit exceeded. Maximum ${n} actions per minute.`};if(!this.isActionAllowed(e))return{success:!1,message:`Action type "${e.type}" is not allowed`};switch(this.actionCount++,e.type){case"navigate":return this.navigate(e.target,e.params);case"fillForm":return this.fillForm(e.target,e.params?.value);case"clickElement":return this.clickElement(e.target);case"triggerModal":return this.triggerModal(e.target);case"scroll":return this.scrollToElement(e.target);case"highlight":return this.highlightElement(e.target);case"custom":return this.executeCustomAction(e.target,e.params);default:return{success:!1,message:`Unknown action type: ${e.type}`}}}isActionAllowed(e){const t=this.config.allowedActions;if(!t)return!0;const n={navigate:"navigate",fillForm:"fill",clickElement:"click",scroll:"scroll",highlight:"click",triggerModal:"click",custom:"click"}[e.type];return t.includes(n)}isSelectorAllowed(e){if(this.config.blockedSelectors)for(const t of this.config.blockedSelectors)if(e.includes(t))return!1;return!(this.config.allowedSelectors&&this.config.allowedSelectors.length>0)||this.config.allowedSelectors.some(t=>e.includes(t))}async navigate(e,t){try{if(!this.validateNavigationUrl(e))return{success:!1,message:"Invalid or blocked URL"};let n=e;if(t){const e=new URLSearchParams;for(const[n,s]of Object.entries(t))null!=s&&e.set(n,String(s));const s=e.toString();s&&(n+=(n.includes("?")?"&":"?")+s)}return"undefined"==typeof window?{success:!0,message:`Navigation to ${e} would be executed (server-side)`}:this.isInternalUrl(n)?this.tryClientSideNavigation(n)?{success:!0,message:`Navigated to ${e}`}:(window.location.href=n,{success:!0,message:`Navigating to ${e}...`}):(window.open(n,"_blank","noopener,noreferrer"),{success:!0,message:`Opened ${n} in new tab`})}catch(e){return{success:!1,message:"Navigation failed",error:String(e)}}}async fillForm(e,t){if(!this.isSelectorAllowed(e))return{success:!1,message:`Selector "${e}" is not allowed`};const n=this.sanitizeSelector(e);if("undefined"==typeof document)return{success:!0,message:`Form fill would set "${n}" to "${t}" (server-side)`};try{const e=document.querySelector(n);if(!e)return{success:!1,message:`Element not found: ${n}`};if(!(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement))return{success:!1,message:"Element is not a form field"};if(e.focus(),e instanceof HTMLSelectElement){const n=Array.from(e.options).find(e=>e.value.toLowerCase()===t.toLowerCase()||e.text.toLowerCase()===t.toLowerCase());if(!n)return{success:!1,message:`Option "${t}" not found`};e.value=n.value}else e.value=t;e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}));const s=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value")?.set;return s&&e instanceof HTMLInputElement&&(s.call(e,t),e.dispatchEvent(new Event("input",{bubbles:!0}))),{success:!0,message:`Filled field with "${t}"`}}catch(e){return{success:!1,message:"Failed to fill form field",error:String(e)}}}async clickElement(e){if(!this.isSelectorAllowed(e))return{success:!1,message:`Selector "${e}" is not allowed`};const t=this.sanitizeSelector(e);if("undefined"==typeof document)return{success:!0,message:`Click on "${t}" would be executed (server-side)`};try{const e=document.querySelector(t);return e?e instanceof HTMLElement?(e.scrollIntoView({behavior:"smooth",block:"center"}),await this.sleep(300),e.click(),{success:!0,message:"Element clicked"}):{success:!1,message:"Element is not clickable"}:{success:!1,message:`Element not found: ${t}`}}catch(e){return{success:!1,message:"Failed to click element",error:String(e)}}}async triggerModal(e){return this.clickElement(e)}async scrollToElement(e){if("undefined"==typeof window)return{success:!0,message:`Scroll to "${e}" would be executed (server-side)`};try{if("body"===e)return window.scrollTo({top:0,behavior:"smooth"}),{success:!0,message:"Scrolled to top"};if("body:last-child"===e)return window.scrollTo({top:document.body.scrollHeight,behavior:"smooth"}),{success:!0,message:"Scrolled to bottom"};const t=document.querySelector(e);return t?(t.scrollIntoView({behavior:"smooth",block:"start"}),{success:!0,message:"Scrolled to element"}):{success:!1,message:`Element not found: ${e}`}}catch(e){return{success:!1,message:"Failed to scroll",error:String(e)}}}async highlightElement(e){if(!this.isSelectorAllowed(e))return{success:!1,message:`Selector "${e}" is not allowed`};if("undefined"==typeof document)return{success:!0,message:`Highlight on "${e}" would be shown (server-side)`};try{const t=document.querySelector(e);if(!t)return{success:!1,message:`Element not found: ${e}`};this.removeHighlight(),t.scrollIntoView({behavior:"smooth",block:"center"}),await this.sleep(300);const n=t.getBoundingClientRect(),s=document.createElement("div");return s.className="astermind-highlight-overlay",s.style.cssText=`\n position: fixed;\n top: ${n.top-4}px;\n left: ${n.left-4}px;\n width: ${n.width+8}px;\n height: ${n.height+8}px;\n border: 3px solid #4F46E5;\n border-radius: 4px;\n pointer-events: none;\n z-index: 999999;\n animation: astermind-highlight-pulse 1s ease-in-out 3;\n `,document.body.appendChild(s),this.highlightOverlay=s,setTimeout(()=>this.removeHighlight(),3e3),{success:!0,message:"Element highlighted"}}catch(e){return{success:!1,message:"Failed to highlight element",error:String(e)}}}async executeCustomAction(e,t){if(!this.isAllowedCustomAction(e))return{success:!1,message:`Custom action "${e}" not found`};const n=this.config.customActions[e];try{return await n(t)}catch(t){return{success:!1,message:`Custom action "${e}" failed`,error:String(t)}}}isInternalUrl(e){if(e.startsWith("/")||e.startsWith("./")||e.startsWith("../"))return!0;if("undefined"==typeof window)return!0;try{return new URL(e,window.location.href).origin===window.location.origin}catch{return!0}}tryClientSideNavigation(e){if("undefined"==typeof window)return!1;try{return window.history.pushState({},"",e),window.dispatchEvent(new PopStateEvent("popstate")),e.includes("#")&&window.dispatchEvent(new HashChangeEvent("hashchange")),!0}catch{return!1}}validateNavigationUrl(e){if(/^(javascript|data):/i.test(e))return!1;if("undefined"==typeof window)return!0;try{return new URL(e,window.location.href).origin===window.location.origin||e.startsWith("/")}catch{return e.startsWith("/")}}sanitizeSelector(e){return e.replace(/[<>'"]/g,"").replace(/javascript:/gi,"").replace(/data:/gi,"").trim()}isAllowedCustomAction(e){return void 0!==this.config.customActions&&Object.prototype.hasOwnProperty.call(this.config.customActions,e)}removeHighlight(){this.highlightOverlay&&(this.highlightOverlay.remove(),this.highlightOverlay=null)}injectStyles(){if("undefined"==typeof document)return;if(document.getElementById("astermind-agent-styles"))return;const e=document.createElement("style");e.id="astermind-agent-styles",e.textContent="\n @keyframes astermind-highlight-pulse {\n 0%, 100% {\n box-shadow: 0 0 0 0 rgba(79, 70, 229, 0.4);\n }\n 50% {\n box-shadow: 0 0 0 10px rgba(79, 70, 229, 0);\n }\n }\n\n .astermind-highlight-overlay {\n transition: all 0.2s ease-out;\n }\n ",document.head.appendChild(e)}sleep(e){return new Promise(t=>setTimeout(t,e))}getConfig(){return this.config}getClassifier(){return this.classifier}resetActionCount(){this.actionCount=0,this.lastActionReset=Date.now()}}e.ApiClient=t,e.CyberneticAgent=D,e.CyberneticCache=w,e.CyberneticClient=L,e.CyberneticIntentClassifier=T,e.CyberneticLocalRAG=b,e.LicenseManager=I,e.REQUIRED_FEATURES=x,e.createClient=function(e){return new L(e)},e.createLicenseManager=async function(e){const t=new I(e);return await t.verify(),t},e.detectEnvironment=A,e.getEnforcementMode=M,e.getTokenExpiration=function(e){const t=C(e);return t&&"number"==typeof t.payload.exp?new Date(1e3*t.payload.exp):null},e.isValidJWTFormat=function(e){return null!==C(e)},e.loadConfig=function(){if("undefined"==typeof window)return null;if(window.astermindConfig){const e=window.astermindConfig;return $(e),e}const e=document.querySelector("script[data-astermind-key]");return e?{apiUrl:e.getAttribute("data-astermind-url")||"https://api.astermind.ai",apiKey:e.getAttribute("data-astermind-key")||""}:null},e.registerAgenticCapabilities=function(e){const t={agent:D,intentClassifier:T};e.registerAgentic(t)},e.validateConfig=$,e.verifyLicenseToken=k});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).AsterMindCybernetic={})}(this,function(e){"use strict";class t{constructor(e,t){this.baseUrl=e.replace(/\/$/,""),this.apiKey=t}async chat(e,t){const n=await fetch(`${this.baseUrl}/api/external/chat`,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":this.apiKey},body:JSON.stringify({message:e,sessionId:t?.sessionId,context:t?.context})});if(!n.ok){const e=await n.json().catch(()=>({}));throw new Error(e.message||`HTTP ${n.status}: ${n.statusText}`)}return n.json()}async chatStream(e,t){const n=await fetch(`${this.baseUrl}/api/external/chat/stream`,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":this.apiKey},body:JSON.stringify({message:e,sessionId:t?.sessionId,context:t?.context})});if(!n.ok){const e=await n.json().catch(()=>({}));throw new Error(e.message||`HTTP ${n.status}`)}const i=n.body?.getReader();if(!i)throw new Error("Streaming not supported");const s=new TextDecoder;let o,a="",r="",c=[];try{for(;;){const{done:e,value:n}=await i.read();if(e)break;a+=s.decode(n,{stream:!0});const l=a.split("\n");a=l.pop()||"";for(const e of l)if(e.startsWith("event: "));else if(e.startsWith("data: "))try{const n=JSON.parse(e.slice(6));void 0!==n.text?(r+=n.text,t.onToken?.(n.text)):void 0!==n.sources?(c=n.sources,t.onSources?.(c)):void 0!==n.sessionId&&(o=n.sessionId)}catch{}}t.onComplete?.({fullText:r,sessionId:o,sources:c})}catch(e){t.onError?.(e)}}async getGeneralDocs(e){const t=new URLSearchParams;e&&t.set("since",e);const n=`${this.baseUrl}/api/external/docs${t.toString()?"?"+t:""}`,i=await fetch(n,{headers:{"X-API-Key":this.apiKey}});if(!i.ok)throw new Error(`HTTP ${i.status}`);return(await i.json()).documents}async getStatus(){const e=await fetch(`${this.baseUrl}/api/external/status`,{headers:{"X-API-Key":this.apiKey}});if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}async health(){const e=await fetch(`${this.baseUrl}/api/external/health`);if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}}let n,i;const s=new WeakMap,o=new WeakMap,a=new WeakMap,r=new WeakMap,c=new WeakMap;let l={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return o.get(e);if("objectStoreNames"===t)return e.objectStoreNames||a.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return h(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function u(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(i||(i=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(f(this),t),h(s.get(this))}:function(...t){return h(e.apply(f(this),t))}:function(t,...n){const i=e.call(f(this),t,...n);return a.set(i,t.sort?t.sort():[t]),h(i)}}function d(e){return"function"==typeof e?u(e):(e instanceof IDBTransaction&&function(e){if(o.has(e))return;const t=new Promise((t,n)=>{const i=()=>{e.removeEventListener("complete",s),e.removeEventListener("error",o),e.removeEventListener("abort",o)},s=()=>{t(),i()},o=()=>{n(e.error||new DOMException("AbortError","AbortError")),i()};e.addEventListener("complete",s),e.addEventListener("error",o),e.addEventListener("abort",o)});o.set(e,t)}(e),t=e,(n||(n=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(e=>t instanceof e)?new Proxy(e,l):e);var t}function h(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,n)=>{const i=()=>{e.removeEventListener("success",s),e.removeEventListener("error",o)},s=()=>{t(h(e.result)),i()},o=()=>{n(e.error),i()};e.addEventListener("success",s),e.addEventListener("error",o)});return t.then(t=>{t instanceof IDBCursor&&s.set(t,e)}).catch(()=>{}),c.set(t,e),t}(e);if(r.has(e))return r.get(e);const t=d(e);return t!==e&&(r.set(e,t),c.set(t,e)),t}const f=e=>c.get(e);const g=["get","getKey","getAll","getAllKeys","count"],m=["put","add","delete","clear"],p=new Map;function y(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(p.get(t))return p.get(t);const n=t.replace(/FromIndex$/,""),i=t!==n,s=m.includes(n);if(!(n in(i?IDBIndex:IDBObjectStore).prototype)||!s&&!g.includes(n))return;const o=async function(e,...t){const o=this.transaction(e,s?"readwrite":"readonly");let a=o.store;return i&&(a=a.index(t.shift())),(await Promise.all([a[n](...t),s&&o.done]))[0]};return p.set(t,o),o}l=(e=>({...e,get:(t,n,i)=>y(t,n)||e.get(t,n,i),has:(t,n)=>!!y(t,n)||e.has(t,n)}))(l);class w{constructor(e){this.db=null,this.dbPromise=null,this.documentCount=0,this.lastSyncAt=null,this.config=e,"indexeddb"===e.storage&&"undefined"!=typeof indexedDB?this.dbPromise=this.initDB():"localstorage"===e.storage&&this.loadLocalStorageMetadata()}loadLocalStorageMetadata(){try{const e=localStorage.getItem("cybernetic-cache-meta");if(e){const t=JSON.parse(e);this.documentCount=t.documentCount||0,this.lastSyncAt=t.lastSyncAt||null}}catch{}}async initDB(){return this.db=await function(e,t,{blocked:n,upgrade:i,blocking:s,terminated:o}={}){const a=indexedDB.open(e,t),r=h(a);return i&&a.addEventListener("upgradeneeded",e=>{i(h(a.result),e.oldVersion,e.newVersion,h(a.transaction),e)}),n&&a.addEventListener("blocked",e=>n(e.oldVersion,e.newVersion,e)),r.then(e=>{o&&e.addEventListener("close",()=>o()),s&&e.addEventListener("versionchange",e=>s(e.oldVersion,e.newVersion,e))}).catch(()=>{}),r}("cybernetic-cache",1,{upgrade(e){if(!e.objectStoreNames.contains("documents")){e.createObjectStore("documents",{keyPath:"id"}).createIndex("by-updated","updatedAt")}e.objectStoreNames.contains("metadata")||e.createObjectStore("metadata",{keyPath:"key"})}}),await this.loadMetadata(),this.db}async getDB(){if(this.db)return this.db;if(this.dbPromise)return this.dbPromise;throw new Error("Database not available")}async loadMetadata(){if(!this.db)return;const e=await this.db.get("metadata","documentCount");this.documentCount=e?.value||0;const t=await this.db.get("metadata","lastSyncAt");this.lastSyncAt=t?.value||null}async store(e){if("localstorage"===this.config.storage)return this.storeLocalStorage(e);const t=(await this.getDB()).transaction(["documents","metadata"],"readwrite");for(const n of e)await t.objectStore("documents").put(n);this.documentCount=await t.objectStore("documents").count(),this.lastSyncAt=(new Date).toISOString(),await t.objectStore("metadata").put({key:"documentCount",value:this.documentCount}),await t.objectStore("metadata").put({key:"lastSyncAt",value:this.lastSyncAt}),await t.done}async retrieve(){if("localstorage"===this.config.storage)return this.retrieveLocalStorage();return(await this.getDB()).getAll("documents")}async getLastSync(){return this.lastSyncAt}getStatus(){const e=Date.now()-(this.lastSyncAt?new Date(this.lastSyncAt).getTime():0)>this.config.maxAge;return{documentCount:this.documentCount,lastSyncAt:this.lastSyncAt,cacheSize:5e3*this.documentCount,isStale:e}}async clear(){if("localstorage"===this.config.storage)return localStorage.removeItem("cybernetic-cache-docs"),localStorage.removeItem("cybernetic-cache-meta"),this.documentCount=0,void(this.lastSyncAt=null);const e=(await this.getDB()).transaction(["documents","metadata"],"readwrite");await e.objectStore("documents").clear(),await e.objectStore("metadata").clear(),await e.done,this.documentCount=0,this.lastSyncAt=null}storeLocalStorage(e){try{localStorage.setItem("cybernetic-cache-docs",JSON.stringify(e)),this.documentCount=e.length,this.lastSyncAt=(new Date).toISOString(),localStorage.setItem("cybernetic-cache-meta",JSON.stringify({documentCount:this.documentCount,lastSyncAt:this.lastSyncAt}))}catch{localStorage.removeItem("cybernetic-cache-docs");const t=e.slice(0,50);localStorage.setItem("cybernetic-cache-docs",JSON.stringify(t)),this.documentCount=t.length}}retrieveLocalStorage(){try{const e=localStorage.getItem("cybernetic-cache-docs");return e?JSON.parse(e):[]}catch{return[]}}}class b{constructor(){this.documents=[],this.idf=new Map,this.indexed=!1}isIndexed(){return this.indexed&&this.documents.length>0}async index(e){this.documents=[],this.idf=new Map;const t=new Map;for(const n of e){const e=this.tokenize(n.content),i=new Set(e);for(const e of i)t.set(e,(t.get(e)||0)+1);this.documents.push({id:n.id,title:n.title,content:n.content,tokens:e,tfidf:new Map})}const n=e.length;for(const[e,i]of t)this.idf.set(e,Math.log((n+1)/(i+1))+1);for(const e of this.documents){const t=this.computeTermFrequency(e.tokens);for(const[n,i]of t){const t=this.idf.get(n)||1;e.tfidf.set(n,i*t)}}this.indexed=!0}async ask(e){if(!this.indexed||0===this.documents.length)return{answer:"I don't have any information available offline.",sources:[],topScore:0};const t=this.tokenize(e),n=this.computeTermFrequency(t),i=new Map;for(const[e,t]of n){const n=this.idf.get(e)||1;i.set(e,t*n)}const s=this.documents.map(e=>({doc:e,score:this.cosineSimilarity(i,e.tfidf)}));s.sort((e,t)=>t.score-e.score);const o=s.slice(0,3).filter(e=>e.score>.1);if(0===o.length)return{answer:"I couldn't find relevant information for your question in my offline data.",sources:[],topScore:s[0]?.score||0};const a=o[0].doc;return{answer:this.extractRelevantSnippet(a.content,t),sources:o.map(e=>({title:e.doc.title,snippet:e.doc.content.substring(0,200)+"...",score:e.score})),topScore:o[0].score}}reset(){this.documents=[],this.idf=new Map,this.indexed=!1}tokenize(e){return e.toLowerCase().replace(/[^\w\s]/g," ").split(/\s+/).filter(e=>e.length>2&&!this.isStopWord(e))}computeTermFrequency(e){const t=new Map;for(const n of e)t.set(n,(t.get(n)||0)+1);const n=Math.max(...t.values());if(n>0)for(const[e,i]of t)t.set(e,i/n);return t}cosineSimilarity(e,t){let n=0,i=0,s=0;for(const[s,o]of e){n+=o*(t.get(s)||0),i+=o*o}for(const e of t.values())s+=e*e;return 0===i||0===s?0:n/(Math.sqrt(i)*Math.sqrt(s))}extractRelevantSnippet(e,t){const n=e.split(/[.!?]+/).filter(e=>e.trim().length>0).map(e=>{const n=new Set(this.tokenize(e));let i=0;for(const e of t)n.has(e)&&i++;return{sentence:e.trim(),score:i}});n.sort((e,t)=>t.score-e.score);const i=n.slice(0,3).filter(e=>e.score>0);return 0===i.length?e.substring(0,300)+"...":i.map(e=>e.sentence).join(". ")+"."}isStopWord(e){return new Set(["the","a","an","and","or","but","in","on","at","to","for","of","with","by","from","up","about","into","through","during","is","are","was","were","be","been","being","have","has","had","do","does","did","will","would","could","should","may","might","this","that","these","those","it","its","they","them","their","what","which","who","whom","when","where","why","how","all","each","every","both","few","more","most","other","some","such","no","not","only","same","so","than","too","very"]).has(e)}}function v(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");const n=t.length%4;n&&(t+="=".repeat(4-n));const i=atob(t),s=new Uint8Array(i.length);for(let e=0;e<i.length;e++)s[e]=i.charCodeAt(e);return s}function S(e){const t=v(e);return(new TextDecoder).decode(t)}function C(e){try{const t=e.split(".");if(3!==t.length)return null;const[n,i,s]=t;return{header:JSON.parse(S(n)),payload:JSON.parse(S(i)),signature:v(s),signedContent:`${n}.${i}`}}catch{return null}}async function E(e,t,n){try{const i=await async function(e){const t=e.replace(/-----BEGIN PUBLIC KEY-----/,"").replace(/-----END PUBLIC KEY-----/,"").replace(/\s/g,""),n=atob(t),i=new Uint8Array(n.length);for(let e=0;e<n.length;e++)i[e]=n.charCodeAt(e);return crypto.subtle.importKey("spki",i.buffer,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"])}(n),s=(new TextEncoder).encode(e),o=new Uint8Array(t).buffer;return await crypto.subtle.verify({name:"ECDSA",hash:"SHA-256"},i,o,s)}catch(e){return console.warn("[License] Signature verification failed:",e),!1}}async function A(e,t){if(!e||""===e.trim())return{status:"missing",payload:null,error:"No license key provided",inGracePeriod:!1,daysRemaining:null};const n=C(e);if(!n)return{status:"invalid",payload:null,error:"Invalid license key format",inGracePeriod:!1,daysRemaining:null};const i=function(e){return"string"!=typeof e.iss||"string"!=typeof e.sub||"string"!=typeof e.aud||"number"!=typeof e.iat||"number"!=typeof e.exp||"string"!=typeof e.plan||"number"!=typeof e.seats?null:Array.isArray(e.features)?"number"!=typeof e.licenseVersion?null:{iss:e.iss,sub:e.sub,aud:e.aud,iat:e.iat,exp:e.exp,plan:e.plan,org:"string"==typeof e.org?e.org:void 0,seats:e.seats,features:e.features,graceUntil:"number"==typeof e.graceUntil?e.graceUntil:void 0,licenseVersion:e.licenseVersion}:null}(n.payload);if(!i)return{status:"invalid",payload:null,error:"Invalid license payload structure",inGracePeriod:!1,daysRemaining:null};if("astermind"!==i.iss)return{status:"invalid",payload:null,error:"Invalid license issuer",inGracePeriod:!1,daysRemaining:null};if("cybernetic-chatbot"!==i.aud&&"*"!==i.aud)return{status:"invalid",payload:null,error:"License not valid for this product",inGracePeriod:!1,daysRemaining:null};if("undefined"!=typeof crypto&&crypto.subtle){const e=t||"-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhLW7MXHQ0Fuk1OKt9D5CbRw7fUMN\nLJ5AZXvOhHaXdHzMuYKX5BpK4w7TqbPvJ6QPvKmLKvHh1VKcUJ6mJQgJJw==\n-----END PUBLIC KEY-----";if(!await E(n.signedContent,n.signature,e))return{status:"invalid",payload:null,error:"License signature verification failed",inGracePeriod:!1,daysRemaining:null}}const s=Math.floor(Date.now()/1e3),o=function(e){const t=e-Math.floor(Date.now()/1e3);return Math.floor(t/86400)}(i.exp);return i.exp<s?i.graceUntil&&i.graceUntil>s?{status:"valid",payload:i,inGracePeriod:!0,daysRemaining:o}:{status:"expired",payload:i,error:"License has expired",inGracePeriod:!1,daysRemaining:o}:"eval"===i.plan?{status:"eval",payload:i,inGracePeriod:!1,daysRemaining:o}:{status:"valid",payload:i,inGracePeriod:!1,daysRemaining:o}}const k={CLIENT:"cybernetic-chatbot-client",AGENTIC:"agentic"};function I(){if("undefined"==typeof window)return"production"===process?.env?.NODE_ENV?"production":"development";const e=window.location?.hostname||"",t=["localhost","127.0.0.1","0.0.0.0",".local",".dev",".test",":3000",":5173",":8080",":4200"];for(const n of t)if(e.includes(n)||window.location?.port===n.replace(":",""))return"development";if("file:"===window.location?.protocol)return"development";const n=["staging.","preview.","-preview.",".vercel.app",".netlify.app",".pages.dev"];for(const t of n)if(e.includes(t))return"production";return"production"}function x(e){return"development"===e?"soft":"hard"}class M{constructor(e={}){this.state=null,this.verificationPromise=null,this.hasLoggedWarning=!1,this.loggedMissingFeatures=new Set,this.config=e,this.environment=e.environment||I(),this.enforcementMode=x(this.environment)}async verify(){if(this.state)return this.state;if(this.verificationPromise)return this.verificationPromise;this.verificationPromise=A(this.config.licenseKey,this.config.publicKey);try{return this.state=await this.verificationPromise,this.config.onStatusChange?.(this.state),this.logLicenseStatus(),this.state}finally{this.verificationPromise=null}}getState(){return this.state}isValid(){return!!this.state&&("valid"===this.state.status||"eval"===this.state.status)}requiresAction(){return!this.state||("expired"===this.state.status||"missing"===this.state.status||"invalid"===this.state.status)}getEnvironment(){return this.environment}getEnforcementMode(){return this.enforcementMode}processResponse(e){return this.state?this.isValid()&&!this.state.inGracePeriod?e:"soft"===this.enforcementMode?(this.hasLoggedWarning||(this.logDevelopmentWarning(),this.hasLoggedWarning=!0),e):e+"\n\n---\n⚠️ License Notice: Your AsterMind license key needs to be updated. Please contact support@astermind.ai or visit https://astermind.ai/license to renew your license.":e}getStatusMessage(){if(!this.state)return"License not verified";switch(this.state.status){case"valid":return this.state.inGracePeriod?`License expired but in grace period (${Math.abs(this.state.daysRemaining||0)} days overdue)`:`License valid (${this.state.daysRemaining} days remaining)`;case"eval":return`Evaluation license (${this.state.daysRemaining} days remaining)`;case"expired":return`License expired ${Math.abs(this.state.daysRemaining||0)} days ago`;case"missing":return"No license key provided";case"invalid":return`Invalid license: ${this.state.error}`;default:return"Unknown license status"}}async reVerify(){return this.state=null,this.hasLoggedWarning=!1,this.loggedMissingFeatures.clear(),this.verify()}hasFeature(e){return!!this.state?.payload&&this.state.payload.features.includes(e)}getFeatures(){return this.state?.payload?.features||[]}checkClientFeature(){return this.checkFeatureWithLog(k.CLIENT,"CyberneticClient")}checkAgenticFeature(){return this.checkFeatureWithLog(k.AGENTIC,"Agentic capabilities")}checkFeatureWithLog(e,t){if(!this.state?.payload)return!0;const n=this.state.payload.features.includes(e);return n||this.loggedMissingFeatures.has(e)||(this.loggedMissingFeatures.add(e),this.logMissingFeature(e,t)),n}logMissingFeature(e,t){const n=this.getFeatures(),i=this.state?.payload?.plan||"unknown";console.warn(`[Cybernetic License] ${t} requires the '${e}' feature, which is not included in your license.`),console.info(`[Cybernetic License] Current license plan: ${i}`),console.info(`[Cybernetic License] Licensed features: ${n.length>0?n.join(", "):"(none)"}`),console.info("[Cybernetic License] To add this feature, upgrade your license at https://astermind.ai/license")}logLicenseStatus(){if(!this.state)return;const e="[Cybernetic License]";switch(this.state.status){case"valid":this.state.inGracePeriod?console.warn(`${e} License expired but in grace period. Please renew at https://astermind.ai/license`):null!==this.state.daysRemaining&&this.state.daysRemaining<=30&&console.info(`${e} License expires in ${this.state.daysRemaining} days`);break;case"eval":console.info(`${e} Evaluation license - ${this.state.daysRemaining} days remaining`);break;case"expired":console.error(`${e} License expired. Enforcement mode: ${this.enforcementMode}. Renew at https://astermind.ai/license`);break;case"missing":console.warn(`${e} No license key provided. Enforcement mode: ${this.enforcementMode}. Get a license at https://astermind.ai/license`);break;case"invalid":console.error(`${e} Invalid license: ${this.state.error}. Enforcement mode: ${this.enforcementMode}`)}}logDevelopmentWarning(){console.warn(`[Cybernetic License] Running in development mode with ${this.state?.status||"unknown"} license. In production, a warning will be appended to chatbot responses. Get a license at https://astermind.ai/license`)}}class R{constructor(e){this.status="connecting",this.lastError=null,this.systemSettings=null,this.settingsLastChecked=0,this.SETTINGS_CHECK_INTERVAL=3e5,this.agenticCapabilities=null,this.config={apiUrl:e.apiUrl,apiKey:e.apiKey,fallback:{enabled:e.fallback?.enabled??!0,cacheMaxAge:e.fallback?.cacheMaxAge??864e5,cacheOnConnect:e.fallback?.cacheOnConnect??!0,cacheStorage:e.fallback?.cacheStorage??"indexeddb"},retry:{maxRetries:e.retry?.maxRetries??2,initialDelay:e.retry?.initialDelay??1e3,exponentialBackoff:e.retry?.exponentialBackoff??!0},agentic:e.agentic??null,onStatusChange:e.onStatusChange||(()=>{}),onError:e.onError||(()=>{})},this.apiClient=new t(this.config.apiUrl,this.config.apiKey),this.cache=new w({storage:this.config.fallback.cacheStorage,maxAge:this.config.fallback.cacheMaxAge}),this.localRAG=new b,this.licenseManager=new M({licenseKey:e.licenseKey}),this.licenseManager.verify().then(()=>{this.licenseManager.checkClientFeature()}).catch(()=>{}),this.monitorConnection(),this.config.fallback.enabled&&this.config.fallback.cacheOnConnect&&this.syncCache().catch(()=>{})}registerAgentic(e){this.agenticCapabilities=e,console.log("[Cybernetic] Agentic capabilities registered")}isAgenticEnabled(){return null!==this.agenticCapabilities&&!0===this.config.agentic?.enabled&&(this.licenseManager.checkAgenticFeature(),!0)}getAgenticCapabilities(){return this.agenticCapabilities}getAgenticConfig(){return this.config.agentic}classifyIntent(e){if(!this.isAgenticEnabled()||!this.agenticCapabilities)return null;const t=this.config.agentic;return new(0,this.agenticCapabilities.agent)(t).interpretIntent(e)}async executeAction(e){if(!this.isAgenticEnabled()||!this.agenticCapabilities)return{success:!1,message:"Agentic capabilities not enabled"};const t=this.config.agentic;return new(0,this.agenticCapabilities.agent)(t).executeAction(e)}async smartAsk(e,t){const n=this.classifyIntent(e);if(n&&n.action&&!n.shouldEscalate){if(!1!==this.config.agentic?.requireConfirmation)return{action:n.action};const e=await this.executeAction(n.action);return{action:n.action,actionResult:e}}return{response:await this.ask(e,t)}}async ask(e,t){if(!e||"string"!=typeof e)return this.createErrorResponse("Message is required","none");const n=await this.checkSystemStatus();if(n.maintenanceMode||n.forceOfflineClients)return console.log("[Cybernetic] Maintenance mode active, using cached data"),this.isCacheValid()?await this.fallbackAsk(e):{reply:n.maintenanceMessage||"The service is currently under maintenance. Please try again later.",confidence:"none",sources:[],offline:!0,degradedReason:"Maintenance mode active, no valid cache available"};try{const n=await this.apiWithRetry(e,t);this.setStatus("online");return{reply:this.licenseManager.processResponse(n.reply),confidence:"high",sources:n.sources||[],offline:!1,sessionId:n.sessionId}}catch(n){const i=this.normalizeError(n);return this.lastError=i,this.config.onError(i),"RATE_LIMIT"===i.code?{reply:"I'm receiving too many requests right now. Please try again in a moment.",confidence:"none",sources:[],offline:!1,retryAfter:i.retryAfter}:this.config.fallback.enabled&&!t?.skipFallback?await this.fallbackAsk(e):this.createErrorResponse("Unable to connect to the chatbot service. Please try again later.","none",i.retryAfter)}}async askStream(e,t,n){if(!e||"string"!=typeof e)return void t.onError?.({code:"LOCAL_RAG_ERROR",message:"Message is required"});const i=await this.checkSystemStatus();if(i.maintenanceMode||i.forceOfflineClients){console.log("[Cybernetic] Maintenance mode active, falling back to offline");const n=await this.fallbackAsk(e);return void t.onComplete?.(n)}try{await this.apiClient.chatStream(e,{sessionId:n?.sessionId,context:n?.context,onToken:t.onToken,onSources:t.onSources,onComplete:e=>{this.setStatus("online");const n=this.licenseManager.processResponse(e.fullText);t.onComplete?.({reply:n,confidence:"high",sources:e.sources||[],offline:!1,sessionId:e.sessionId})},onError:e=>{const n=this.normalizeError(e);this.config.onError(n),t.onError?.(n)}})}catch(i){const s=this.normalizeError(i);if(this.lastError=s,this.config.onError(s),this.config.fallback.enabled&&!n?.skipFallback){const n=await this.fallbackAsk(e);t.onComplete?.(n)}else t.onError?.(s)}}async syncCache(){try{const e=await this.cache.getLastSync(),t=await this.apiClient.getGeneralDocs(e);t.length>0&&(await this.cache.store(t),await this.localRAG.index(t),console.log(`[Cybernetic] Cache synced: ${t.length} documents`)),this.setStatus("online")}catch(e){console.warn("[Cybernetic] Cache sync failed:",e)}}getStatus(){return{connection:this.status,cache:this.cache.getStatus(),lastError:this.lastError,systemSettings:this.systemSettings,license:this.licenseManager.getState()}}getLicenseManager(){return this.licenseManager}async clearCache(){await this.cache.clear(),this.localRAG.reset()}async checkConnection(){try{return await this.apiClient.getStatus(),this.setStatus("online"),!0}catch{return this.setStatus("offline"),!1}}async checkSystemStatus(){if(this.systemSettings&&Date.now()-this.settingsLastChecked<this.SETTINGS_CHECK_INTERVAL)return this.systemSettings;try{const e=await this.apiClient.getStatus();return this.systemSettings={cacheRetentionHours:e.systemSettings?.cacheRetentionHours??168,maintenanceMode:e.systemSettings?.maintenanceMode??!1,maintenanceMessage:e.systemSettings?.maintenanceMessage,forceOfflineClients:e.systemSettings?.forceOfflineClients??!1},this.settingsLastChecked=Date.now(),this.systemSettings}catch{return this.systemSettings||{cacheRetentionHours:168,maintenanceMode:!1,forceOfflineClients:!1}}}isMaintenanceMode(){return this.systemSettings?.maintenanceMode??!1}getMaintenanceMessage(){return this.systemSettings?.maintenanceMessage}isCacheValid(){const e=this.cache.getStatus();if(!e.lastSyncAt)return!1;const t=60*(this.systemSettings?.cacheRetentionHours||168)*60*1e3,n=new Date(e.lastSyncAt).getTime();return Date.now()-n<t}async apiWithRetry(e,t){const{maxRetries:n,initialDelay:i,exponentialBackoff:s}=this.config.retry;let o=null;for(let a=0;a<=n;a++)try{return await this.apiClient.chat(e,{sessionId:t?.sessionId,context:t?.context})}catch(e){o=e;const t=this.normalizeError(e);if("AUTH_ERROR"===t.code||"RATE_LIMIT"===t.code)throw e;if(a<n){const e=s?i*Math.pow(2,a):i;await this.sleep(e)}}throw o}async fallbackAsk(e){this.setStatus("offline");const t=this.cache.getStatus();if(0===t.documentCount)return{reply:"I'm currently offline and don't have any cached information. Please check your connection and try again.",confidence:"none",sources:[],offline:!0,degradedReason:"No cached documents available"};try{const n=await this.cache.retrieve();this.localRAG.isIndexed()||await this.localRAG.index(n);const i=await this.localRAG.ask(e);let s="medium";i.topScore<.3?s="low":i.topScore>.7&&(s="medium");return{reply:this.licenseManager.processResponse(i.answer),confidence:s,sources:i.sources.map(e=>({title:e.title,snippet:e.snippet,relevance:e.score})),offline:!0,degradedReason:t.isStale?"Using stale cached data":"Processed locally without server"}}catch(e){return console.error("[Cybernetic] Local RAG error:",e),{reply:"I'm having trouble processing your request offline. Please try again when you're back online.",confidence:"none",sources:[],offline:!0,degradedReason:"Local RAG processing failed"}}}monitorConnection(){"undefined"!=typeof window&&(window.addEventListener("online",()=>{this.syncCache().catch(()=>{})}),window.addEventListener("offline",()=>{this.setStatus("offline")}),navigator.onLine||this.setStatus("offline"))}setStatus(e){this.status!==e&&(this.status=e,this.config.onStatusChange(e))}normalizeError(e){if(e instanceof Error){if(e.message.includes("401")||e.message.includes("Unauthorized"))return{code:"AUTH_ERROR",message:"Invalid or expired API key",originalError:e};if(e.message.includes("429")||e.message.includes("Rate limit")){const t=e.message.match(/retry after (\d+)/i);return{code:"RATE_LIMIT",message:"Rate limit exceeded",retryAfter:t?parseInt(t[1],10):60,originalError:e}}return e.message.includes("5")||e.message.includes("Server")?{code:"SERVER_ERROR",message:"Server error occurred",originalError:e}:{code:"NETWORK_ERROR",message:e.message||"Network error",originalError:e}}return{code:"NETWORK_ERROR",message:"Unknown error occurred"}}createErrorResponse(e,t,n){return{reply:e,confidence:t,sources:[],offline:!1,retryAfter:n}}sleep(e){return new Promise(t=>setTimeout(t,e))}}const L="https://api.astermind.ai";function T(e){if(!e||"object"!=typeof e)throw new Error("Config must be an object");const t=e;if(!t.apiUrl||"string"!=typeof t.apiUrl)throw new Error("apiUrl is required and must be a string");if(!t.apiKey||"string"!=typeof t.apiKey)throw new Error("apiKey is required and must be a string");if(!t.apiKey.startsWith("am_"))throw new Error('apiKey must start with "am_"');return!0}function $(){if("undefined"==typeof process||!process.env)return null;const e=process.env.ASTERMIND_RAG_API_KEY,t=process.env.ASTERMIND_RAG_API_SERVER_URL;if(e)return{apiKey:e,apiUrl:t||L,_source:"env"};const n=process.env.REACT_APP_ASTERMIND_RAG_API_KEY,i=process.env.REACT_APP_ASTERMIND_RAG_API_SERVER_URL;return n?{apiKey:n,apiUrl:i||L,_source:"env"}:null}function P(){if("undefined"!=typeof window){const e=window.__ASTERMIND_CONFIG__;if(e&&"object"==typeof e&&e.apiKey)return{...e,apiUrl:e.apiUrl||L,_source:"vite"}}try{const e=globalThis.import?.meta?.env;if(e){const t=e.VITE_ASTERMIND_RAG_API_KEY,n=e.VITE_ASTERMIND_RAG_API_SERVER_URL;if(t)return{apiKey:t,apiUrl:n||L,_source:"vite"}}}catch{}return null}function D(){if("undefined"==typeof window)return null;const e=window.astermindConfig;return e&&"object"==typeof e&&e.apiKey?{...e,apiUrl:e.apiUrl||L,_source:"window"}:null}function _(){if("undefined"==typeof window||"undefined"==typeof document)return null;const e=document.querySelector("script[data-astermind-key]");if(e){const t=e.getAttribute("data-astermind-key");if(t)return{apiKey:t,apiUrl:e.getAttribute("data-astermind-url")||L,_source:"data-attr"}}return null}const N={loadFromProcessEnv:$,loadFromViteEnv:P,loadFromGlobalObject:D,loadFromScriptAttributes:_},O={navigate:[{pattern:/^(go to|navigate to|take me to|open|show me|bring up)\s+(.+)/i,type:"navigate",weight:.9},{pattern:/^(i want to see|i need to go to|let me see)\s+(.+)/i,type:"navigate",weight:.85},{pattern:/^(where is|how do i get to)\s+(.+)/i,type:"navigate",weight:.6}],fillForm:[{pattern:/^(search for|find|look up|search)\s+(.+)/i,type:"fillForm",weight:.88},{pattern:/^(filter by|set .+ to|change .+ to)\s+(.+)/i,type:"fillForm",weight:.85},{pattern:/^(enter|type|put)\s+(.+)\s+(in|into)\s+(.+)/i,type:"fillForm",weight:.9}],clickElement:[{pattern:/^(click|press|hit|tap)\s+(the\s+)?(.+)\s+(button|link)/i,type:"clickElement",weight:.9},{pattern:/^(submit|send|confirm|save|cancel|delete)/i,type:"clickElement",weight:.85}],triggerModal:[{pattern:/^(open|show|display)\s+(the\s+)?(.+)\s+(modal|dialog|popup|window)/i,type:"triggerModal",weight:.9},{pattern:/^(open|show)\s+(help|settings|preferences|options)/i,type:"triggerModal",weight:.85}],scroll:[{pattern:/^(scroll to|jump to|go to)\s+(the\s+)?(.+)\s+(section|area|part)/i,type:"scroll",weight:.85},{pattern:/^(show me|take me to)\s+(the\s+)?(bottom|top|end|beginning)/i,type:"scroll",weight:.8}],highlight:[{pattern:/^(highlight|show me|point to|where is)\s+(the\s+)?(.+)/i,type:"highlight",weight:.7}],custom:[{pattern:/^(export|download|refresh|reload|sync)/i,type:"custom",weight:.85}]};class U{constructor(e){this.config=e,this.siteMapIndex=new Map,this.formIndex=new Map,this.modalIndex=new Map,this.buildIndexes()}buildIndexes(){if(this.config.siteMap)for(const e of this.config.siteMap){const t=[e.name.toLowerCase(),e.path.toLowerCase(),...(e.aliases||[]).map(e=>e.toLowerCase())];for(const n of t)this.siteMapIndex.set(n,e)}if(this.config.forms)for(const[e,t]of Object.entries(this.config.forms)){const n=[e.toLowerCase(),t.name.toLowerCase(),...(t.aliases||[]).map(e=>e.toLowerCase())];for(const e of n)this.formIndex.set(e,t)}if(this.config.modals)for(const[e,t]of Object.entries(this.config.modals)){const n=[e.toLowerCase(),t.id.toLowerCase(),...(t.aliases||[]).map(e=>e.toLowerCase())];for(const e of n)this.modalIndex.set(e,t)}}classify(e){if(!this.config.enabled)return{action:null,shouldEscalate:!0,rawConfidence:0};const t=e.trim().toLowerCase();for(const[t,n]of Object.entries(O))for(const{pattern:i,weight:s}of n){const n=e.match(i);if(n){const e=this.buildAction(t,n,s);if(e)return e}}const n=this.fuzzyMatchSiteMap(t);if(n)return n;const i=this.matchCustomAction(t);return i||{action:null,shouldEscalate:!0,rawConfidence:0,matchedPatterns:[]}}buildAction(e,t,n){const i=this.config.confidenceThreshold??.8;switch(e){case"navigate":{const e=this.extractTarget(t),s=this.findSiteMapMatch(e);if(s){const e=n*s.similarity;return{action:{id:`action-${Date.now()}`,type:"navigate",target:s.entry.path,confidence:e,explanation:`Navigate to ${s.entry.name}`},shouldEscalate:e<i,rawConfidence:e,matchedPatterns:["navigate",s.entry.name]}}break}case"fillForm":{const e=this.extractTarget(t),{field:s,value:o}=this.parseFormIntent(t);if(s){const e=.95*n;return{action:{id:`action-${Date.now()}`,type:"fillForm",target:s.selector,params:{value:o},confidence:e,explanation:`Fill "${s.name}" with "${o}"`},shouldEscalate:e<i,rawConfidence:e,matchedPatterns:["fillForm",s.name]}}if(this.config.forms?.search){const t=.9*n;return{action:{id:`action-${Date.now()}`,type:"fillForm",target:this.config.forms.search.selector,params:{value:e},confidence:t,explanation:`Search for "${e}"`},shouldEscalate:t<i,rawConfidence:t,matchedPatterns:["fillForm","search"]}}break}case"clickElement":{const e=this.extractTarget(t),s=this.findButtonSelector(e);if(s){const t=.95*n;return{action:{id:`action-${Date.now()}`,type:"clickElement",target:s,confidence:t,explanation:`Click "${e}" button`},shouldEscalate:t<i,rawConfidence:t,matchedPatterns:["clickElement",e]}}break}case"triggerModal":{const e=this.extractTarget(t),s=this.findModalConfig(e);if(s){const e=.95*n;return{action:{id:`action-${Date.now()}`,type:"triggerModal",target:s.trigger,confidence:e,explanation:`Open ${s.id} modal`},shouldEscalate:e<i,rawConfidence:e,matchedPatterns:["triggerModal",s.id]}}break}case"scroll":{const e=this.extractTarget(t),s=this.findScrollTarget(e);if(s){const t=.9*n;return{action:{id:`action-${Date.now()}`,type:"scroll",target:s,confidence:t,explanation:`Scroll to ${e}`},shouldEscalate:t<i,rawConfidence:t,matchedPatterns:["scroll",e]}}break}case"highlight":{const e=this.extractTarget(t),s=this.findElementByDescription(e);if(s){const t=.85*n;return{action:{id:`action-${Date.now()}`,type:"highlight",target:s,confidence:t,explanation:`Highlight ${e}`},shouldEscalate:t<i,rawConfidence:t,matchedPatterns:["highlight",e]}}break}case"custom":{const e=t[1]?.toLowerCase();if(this.config.customActions?.[e]){const t=.95*n;return{action:{id:`action-${Date.now()}`,type:"custom",target:e,confidence:t,explanation:`Execute ${e} action`},shouldEscalate:t<i,rawConfidence:t,matchedPatterns:["custom",e]}}break}}return null}extractTarget(e){for(let t=e.length-1;t>=1;t--)if(e[t])return e[t].trim();return""}findSiteMapMatch(e){const t=e.toLowerCase().replace(/[^a-z0-9\s]/g,""),n=this.siteMapIndex.get(t);if(n)return{entry:n,similarity:1};let i=null,s=0;for(const[e,n]of this.siteMapIndex){const o=this.calculateSimilarity(t,e);o>s&&o>.6&&(s=o,i=n)}return i?{entry:i,similarity:s}:null}fuzzyMatchSiteMap(e){const t=this.config.confidenceThreshold??.8;for(const[n,i]of this.siteMapIndex)if(e.includes(n)){const e=.75;return{action:{id:`action-${Date.now()}`,type:"navigate",target:i.path,confidence:e,explanation:`Navigate to ${i.name}`},shouldEscalate:e<t,rawConfidence:e,matchedPatterns:["fuzzy-sitemap",n]}}return null}matchCustomAction(e){if(!this.config.customActions)return null;const t=this.config.confidenceThreshold??.8;for(const n of Object.keys(this.config.customActions))if(e.includes(n.toLowerCase())){const e=.85;return{action:{id:`action-${Date.now()}`,type:"custom",target:n,confidence:e,explanation:`Execute ${n}`},shouldEscalate:e<t,rawConfidence:e,matchedPatterns:["custom",n]}}return null}parseFormIntent(e){const t=e[0];for(const[,e]of this.formIndex)if(t.toLowerCase().includes(e.name.toLowerCase())){const n=t.match(new RegExp(`${e.name}[^a-z]*(.+)`,"i"));return{field:e,value:n?.[1]?.trim()||""}}return{field:null,value:this.extractTarget(e)}}findButtonSelector(e){const t=e.toLowerCase();if("undefined"==typeof document)return`button:contains("${e}")`;const n=[`[data-action="${t}"]`,`[aria-label*="${t}" i]`,`.btn-${t}`,`#${t}-button`,`button.${t}`];for(const e of n)try{if(document.querySelector(e))return e}catch{}const i=document.querySelectorAll('button, [role="button"], a.btn');for(const e of i)if(e.textContent?.toLowerCase().includes(t))return this.generateUniqueSelector(e);return null}findModalConfig(e){return this.modalIndex.get(e.toLowerCase())||null}findScrollTarget(e){const t=e.toLowerCase();if("top"===t||"beginning"===t)return"body";if("bottom"===t||"end"===t)return"body:last-child";if("undefined"==typeof document)return`#${t.replace(/\s+/g,"-")}`;const n=[`#${t.replace(/\s+/g,"-")}`,`[data-section="${t}"]`,`.${t.replace(/\s+/g,"-")}-section`,`section[aria-label*="${t}" i]`];for(const e of n)try{if(document.querySelector(e))return e}catch{continue}return null}findElementByDescription(e){const t=e.toLowerCase();if("undefined"==typeof document)return`[aria-label*="${t}" i]`;const n=[`[aria-label*="${t}" i]`,`[data-testid*="${t}" i]`,`[title*="${t}" i]`];for(const e of n)try{if(document.querySelector(e))return e}catch{continue}return null}generateUniqueSelector(e){if(e.id)return`#${e.id}`;if(e.getAttribute("data-testid"))return`[data-testid="${e.getAttribute("data-testid")}"]`;const t=[];let n=e;for(;n&&n!==document.body;){let e=n.tagName.toLowerCase();if(n.className&&"string"==typeof n.className){const t=n.className.split(" ").filter(e=>e&&!e.includes(" "));t.length>0&&(e+=`.${t.slice(0,2).join(".")}`)}t.unshift(e),n=n.parentElement}return t.join(" > ")}calculateSimilarity(e,t){const n=new Set(e.split(/\s+/)),i=new Set(t.split(/\s+/)),s=new Set([...n].filter(e=>i.has(e))),o=new Set([...n,...i]);return s.size/o.size}getConfig(){return this.config}}class K{constructor(e){this.highlightOverlay=null,this.actionCount=0,this.lastActionReset=Date.now(),this.config=e,this.classifier=new U(e),"undefined"!=typeof document&&this.injectStyles()}interpretIntent(e){return this.classifier.classify(e)}async executeAction(e){const t=Date.now();t-this.lastActionReset>6e4&&(this.actionCount=0,this.lastActionReset=t);const n=this.config.maxActionsPerTurn??5;if(this.actionCount>=n)return{success:!1,message:`Rate limit exceeded. Maximum ${n} actions per minute.`};if(!this.isActionAllowed(e))return{success:!1,message:`Action type "${e.type}" is not allowed`};switch(this.actionCount++,e.type){case"navigate":return this.navigate(e.target,e.params);case"fillForm":return this.fillForm(e.target,e.params?.value);case"clickElement":return this.clickElement(e.target);case"triggerModal":return this.triggerModal(e.target);case"scroll":return this.scrollToElement(e.target);case"highlight":return this.highlightElement(e.target);case"custom":return this.executeCustomAction(e.target,e.params);default:return{success:!1,message:`Unknown action type: ${e.type}`}}}isActionAllowed(e){const t=this.config.allowedActions;if(!t)return!0;const n={navigate:"navigate",fillForm:"fill",clickElement:"click",scroll:"scroll",highlight:"click",triggerModal:"click",custom:"click"}[e.type];return t.includes(n)}isSelectorAllowed(e){if(this.config.blockedSelectors)for(const t of this.config.blockedSelectors)if(e.includes(t))return!1;return!(this.config.allowedSelectors&&this.config.allowedSelectors.length>0)||this.config.allowedSelectors.some(t=>e.includes(t))}async navigate(e,t){try{if(!this.validateNavigationUrl(e))return{success:!1,message:"Invalid or blocked URL"};let n=e;if(t){const e=new URLSearchParams;for(const[n,i]of Object.entries(t))null!=i&&e.set(n,String(i));const i=e.toString();i&&(n+=(n.includes("?")?"&":"?")+i)}return"undefined"==typeof window?{success:!0,message:`Navigation to ${e} would be executed (server-side)`}:this.isInternalUrl(n)?this.tryClientSideNavigation(n)?{success:!0,message:`Navigated to ${e}`}:(window.location.href=n,{success:!0,message:`Navigating to ${e}...`}):(window.open(n,"_blank","noopener,noreferrer"),{success:!0,message:`Opened ${n} in new tab`})}catch(e){return{success:!1,message:"Navigation failed",error:String(e)}}}async fillForm(e,t){if(!this.isSelectorAllowed(e))return{success:!1,message:`Selector "${e}" is not allowed`};const n=this.sanitizeSelector(e);if("undefined"==typeof document)return{success:!0,message:`Form fill would set "${n}" to "${t}" (server-side)`};try{const e=document.querySelector(n);if(!e)return{success:!1,message:`Element not found: ${n}`};if(!(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement))return{success:!1,message:"Element is not a form field"};if(e.focus(),e instanceof HTMLSelectElement){const n=Array.from(e.options).find(e=>e.value.toLowerCase()===t.toLowerCase()||e.text.toLowerCase()===t.toLowerCase());if(!n)return{success:!1,message:`Option "${t}" not found`};e.value=n.value}else e.value=t;e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}));const i=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value")?.set;return i&&e instanceof HTMLInputElement&&(i.call(e,t),e.dispatchEvent(new Event("input",{bubbles:!0}))),{success:!0,message:`Filled field with "${t}"`}}catch(e){return{success:!1,message:"Failed to fill form field",error:String(e)}}}async clickElement(e){if(!this.isSelectorAllowed(e))return{success:!1,message:`Selector "${e}" is not allowed`};const t=this.sanitizeSelector(e);if("undefined"==typeof document)return{success:!0,message:`Click on "${t}" would be executed (server-side)`};try{const e=document.querySelector(t);return e?e instanceof HTMLElement?(e.scrollIntoView({behavior:"smooth",block:"center"}),await this.sleep(300),e.click(),{success:!0,message:"Element clicked"}):{success:!1,message:"Element is not clickable"}:{success:!1,message:`Element not found: ${t}`}}catch(e){return{success:!1,message:"Failed to click element",error:String(e)}}}async triggerModal(e){return this.clickElement(e)}async scrollToElement(e){if("undefined"==typeof window)return{success:!0,message:`Scroll to "${e}" would be executed (server-side)`};try{if("body"===e)return window.scrollTo({top:0,behavior:"smooth"}),{success:!0,message:"Scrolled to top"};if("body:last-child"===e)return window.scrollTo({top:document.body.scrollHeight,behavior:"smooth"}),{success:!0,message:"Scrolled to bottom"};const t=document.querySelector(e);return t?(t.scrollIntoView({behavior:"smooth",block:"start"}),{success:!0,message:"Scrolled to element"}):{success:!1,message:`Element not found: ${e}`}}catch(e){return{success:!1,message:"Failed to scroll",error:String(e)}}}async highlightElement(e){if(!this.isSelectorAllowed(e))return{success:!1,message:`Selector "${e}" is not allowed`};if("undefined"==typeof document)return{success:!0,message:`Highlight on "${e}" would be shown (server-side)`};try{const t=document.querySelector(e);if(!t)return{success:!1,message:`Element not found: ${e}`};this.removeHighlight(),t.scrollIntoView({behavior:"smooth",block:"center"}),await this.sleep(300);const n=t.getBoundingClientRect(),i=document.createElement("div");return i.className="astermind-highlight-overlay",i.style.cssText=`\n position: fixed;\n top: ${n.top-4}px;\n left: ${n.left-4}px;\n width: ${n.width+8}px;\n height: ${n.height+8}px;\n border: 3px solid #4F46E5;\n border-radius: 4px;\n pointer-events: none;\n z-index: 999999;\n animation: astermind-highlight-pulse 1s ease-in-out 3;\n `,document.body.appendChild(i),this.highlightOverlay=i,setTimeout(()=>this.removeHighlight(),3e3),{success:!0,message:"Element highlighted"}}catch(e){return{success:!1,message:"Failed to highlight element",error:String(e)}}}async executeCustomAction(e,t){if(!this.isAllowedCustomAction(e))return{success:!1,message:`Custom action "${e}" not found`};const n=this.config.customActions[e];try{return await n(t)}catch(t){return{success:!1,message:`Custom action "${e}" failed`,error:String(t)}}}isInternalUrl(e){if(e.startsWith("/")||e.startsWith("./")||e.startsWith("../"))return!0;if("undefined"==typeof window)return!0;try{return new URL(e,window.location.href).origin===window.location.origin}catch{return!0}}tryClientSideNavigation(e){if("undefined"==typeof window)return!1;try{return window.history.pushState({},"",e),window.dispatchEvent(new PopStateEvent("popstate")),e.includes("#")&&window.dispatchEvent(new HashChangeEvent("hashchange")),!0}catch{return!1}}validateNavigationUrl(e){if(/^(javascript|data):/i.test(e))return!1;if("undefined"==typeof window)return!0;try{return new URL(e,window.location.href).origin===window.location.origin||e.startsWith("/")}catch{return e.startsWith("/")}}sanitizeSelector(e){return e.replace(/[<>'"]/g,"").replace(/javascript:/gi,"").replace(/data:/gi,"").trim()}isAllowedCustomAction(e){return void 0!==this.config.customActions&&Object.prototype.hasOwnProperty.call(this.config.customActions,e)}removeHighlight(){this.highlightOverlay&&(this.highlightOverlay.remove(),this.highlightOverlay=null)}injectStyles(){if("undefined"==typeof document)return;if(document.getElementById("astermind-agent-styles"))return;const e=document.createElement("style");e.id="astermind-agent-styles",e.textContent="\n @keyframes astermind-highlight-pulse {\n 0%, 100% {\n box-shadow: 0 0 0 0 rgba(79, 70, 229, 0.4);\n }\n 50% {\n box-shadow: 0 0 0 10px rgba(79, 70, 229, 0);\n }\n }\n\n .astermind-highlight-overlay {\n transition: all 0.2s ease-out;\n }\n ",document.head.appendChild(e)}sleep(e){return new Promise(t=>setTimeout(t,e))}getConfig(){return this.config}getClassifier(){return this.classifier}resetActionCount(){this.actionCount=0,this.lastActionReset=Date.now()}}e.ApiClient=t,e.CyberneticAgent=K,e.CyberneticCache=w,e.CyberneticClient=R,e.CyberneticIntentClassifier=U,e.CyberneticLocalRAG=b,e.LicenseManager=M,e.REQUIRED_FEATURES=k,e.configLoaders=N,e.createClient=function(e){return new R(e)},e.createLicenseManager=async function(e){const t=new M(e);return await t.verify(),t},e.detectEnvironment=I,e.getEnforcementMode=x,e.getTokenExpiration=function(e){const t=C(e);return t&&"number"==typeof t.payload.exp?new Date(1e3*t.payload.exp):null},e.isValidJWTFormat=function(e){return null!==C(e)},e.loadConfig=function(e={}){const{throwOnMissingKey:t=!0}=e,n=$();if(n)return n;const i=P();if(i)return i;const s=D();if(s)return T(s),s;const o=_();if(o)return o;if(t)throw new Error('AsterMind API key is required. Configure using one of these methods:\n 1. Set VITE_ASTERMIND_RAG_API_KEY environment variable (Vite)\n 2. Set REACT_APP_ASTERMIND_RAG_API_KEY environment variable (CRA)\n 3. Set window.astermindConfig = { apiKey: "am_...", apiUrl: "..." }\n 4. Add data-astermind-key attribute to your script tag\n 5. Pass apiKey directly to createClient() or CyberneticClient constructor');return console.warn("[AsterMind] No API key found. Chatbot will not function until configured."),null},e.registerAgenticCapabilities=function(e){const t={agent:K,intentClassifier:U};e.registerAgentic(t)},e.validateConfig=T,e.verifyLicenseToken=A});
|
|
2
2
|
//# sourceMappingURL=cybernetic-chatbot-client.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cybernetic-chatbot-client.min.js","sources":["../src/ApiClient.ts","../node_modules/idb/build/wrap-idb-value.js","../node_modules/idb/build/index.js","../src/CyberneticCache.ts","../src/CyberneticLocalRAG.ts","../src/license/base64url.ts","../src/license/verifier.ts","../src/license/licenseManager.ts","../src/CyberneticClient.ts","../src/config.ts","../src/agentic/CyberneticIntentClassifier.ts","../src/agentic/CyberneticAgent.ts","../src/index.ts","../src/agentic/register.ts"],"sourcesContent":[null,"const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n",null,null,null,null,null,null,null,null,null,null,null],"names":["ApiClient","constructor","baseUrl","apiKey","this","replace","chat","message","options","response","fetch","method","headers","body","JSON","stringify","sessionId","context","ok","error","json","catch","Error","status","statusText","chatStream","reader","getReader","decoder","TextDecoder","buffer","fullText","sources","done","value","read","decode","stream","lines","split","pop","line","startsWith","data","parse","slice","undefined","text","onToken","onSources","onComplete","onError","getGeneralDocs","since","params","URLSearchParams","set","url","toString","documents","getStatus","health","idbProxyableTypes","cursorAdvanceMethods","cursorRequestMap","WeakMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","idbProxyTraps","get","target","prop","receiver","IDBTransaction","objectStoreNames","objectStore","wrap","has","wrapFunction","func","IDBDatabase","prototype","transaction","IDBCursor","advance","continue","continuePrimaryKey","includes","args","apply","unwrap","storeNames","tx","call","sort","transformCachableValue","Promise","resolve","reject","unlisten","removeEventListener","complete","DOMException","addEventListener","cacheDonePromiseForTransaction","object","IDBObjectStore","IDBIndex","some","c","Proxy","IDBRequest","request","promise","success","result","then","promisifyRequest","newValue","readMethods","writeMethods","cachedMethods","Map","getMethod","targetFuncName","useIndex","isWrite","async","storeName","store","index","shift","all","oldTraps","callback","CyberneticCache","config","db","dbPromise","documentCount","lastSyncAt","storage","indexedDB","initDB","loadLocalStorageMetadata","meta","localStorage","getItem","parsed","name","version","blocked","upgrade","blocking","terminated","open","openPromise","event","oldVersion","newVersion","openDB","contains","createObjectStore","keyPath","createIndex","loadMetadata","getDB","countMeta","syncMeta","storeLocalStorage","doc","put","count","Date","toISOString","key","retrieve","retrieveLocalStorage","getAll","getLastSync","isStale","now","getTime","maxAge","cacheSize","clear","removeItem","setItem","length","limited","CyberneticLocalRAG","idf","indexed","isIndexed","docFreq","tokens","tokenize","content","uniqueTokens","Set","token","push","id","title","tfidf","N","term","df","Math","log","termFreq","computeTermFrequency","tf","ask","query","answer","topScore","queryTokens","queryTf","queryTfidf","scores","map","score","cosineSimilarity","a","b","topResults","filter","r","topDoc","extractRelevantSnippet","snippet","substring","reset","toLowerCase","isStopWord","freq","maxFreq","max","values","f","vec1","vec2","dotProduct","norm1","norm2","val1","val","sqrt","scored","s","trim","sentence","sentenceTokens","qt","topSentences","join","word","base64urlDecode","input","base64","padding","repeat","binaryString","atob","bytes","Uint8Array","i","charCodeAt","base64urlDecodeString","parseJWT","parts","headerB64","payloadB64","signatureB64","header","payload","signature","signedContent","verifySignature","publicKey","pemKey","pemContents","crypto","subtle","importKey","namedCurve","importPublicKey","TextEncoder","encode","sigBuffer","verify","hash","console","warn","verifyLicenseToken","inGracePeriod","daysRemaining","iss","sub","aud","iat","exp","plan","seats","Array","isArray","features","licenseVersion","org","graceUntil","validatePayload","keyToUse","floor","expTimestamp","secondsRemaining","calculateDaysRemaining","REQUIRED_FEATURES","CLIENT","AGENTIC","detectEnvironment","window","process","env","NODE_ENV","hostname","location","devPatterns","pattern","port","protocol","stagingPatterns","getEnforcementMode","environment","LicenseManager","state","verificationPromise","hasLoggedWarning","loggedMissingFeatures","enforcementMode","licenseKey","onStatusChange","logLicenseStatus","getState","isValid","requiresAction","getEnvironment","processResponse","logDevelopmentWarning","getStatusMessage","abs","reVerify","hasFeature","feature","getFeatures","checkClientFeature","checkFeatureWithLog","checkAgenticFeature","displayName","add","logMissingFeature","missingFeature","availableFeatures","info","prefix","CyberneticClient","lastError","systemSettings","settingsLastChecked","SETTINGS_CHECK_INTERVAL","agenticCapabilities","apiUrl","fallback","enabled","cacheMaxAge","cacheOnConnect","cacheStorage","retry","maxRetries","initialDelay","exponentialBackoff","agentic","apiClient","cache","localRAG","licenseManager","monitorConnection","syncCache","registerAgentic","capabilities","isAgenticEnabled","getAgenticCapabilities","getAgenticConfig","classifyIntent","agentConfig","AgentClass","agent","interpretIntent","executeAction","action","smartAsk","classification","shouldEscalate","requireConfirmation","actionResult","createErrorResponse","settings","checkSystemStatus","maintenanceMode","forceOfflineClients","isCacheValid","fallbackAsk","reply","maintenanceMessage","confidence","offline","degradedReason","apiWithRetry","setStatus","omegaError","normalizeError","code","retryAfter","skipFallback","askStream","callbacks","processedReply","lastSync","docs","connection","license","getLicenseManager","clearCache","checkConnection","cacheRetentionHours","isMaintenanceMode","getMaintenanceMessage","cacheStatus","retentionMs","lastSyncTime","attempt","delay","pow","sleep","relevance","navigator","onLine","originalError","match","parseInt","ms","setTimeout","validateConfig","ACTION_PATTERNS","navigate","type","weight","fillForm","clickElement","triggerModal","scroll","highlight","custom","CyberneticIntentClassifier","siteMapIndex","formIndex","modalIndex","buildIndexes","siteMap","entry","keys","path","aliases","forms","field","Object","entries","k","modals","modal","classify","rawConfidence","normalizedMessage","actionType","patterns","buildAction","siteMapResult","fuzzyMatchSiteMap","customResult","matchCustomAction","matchedPatterns","baseWeight","threshold","confidenceThreshold","extractTarget","siteMatch","findSiteMapMatch","similarity","explanation","parseFormIntent","selector","search","buttonName","findButtonSelector","modalName","findModalConfig","trigger","findScrollTarget","findElementByDescription","actionName","customActions","normalizedTarget","exact","bestMatch","bestScore","calculateSimilarity","valueMatch","RegExp","normalizedName","document","selectors","querySelector","buttons","querySelectorAll","btn","textContent","generateUniqueSelector","description","normalizedDesc","element","getAttribute","current","tagName","className","classes","unshift","parentElement","setA","setB","intersection","x","union","size","getConfig","CyberneticAgent","highlightOverlay","actionCount","lastActionReset","classifier","injectStyles","maxActions","maxActionsPerTurn","isActionAllowed","scrollToElement","highlightElement","executeCustomAction","allowedActions","mappedType","isSelectorAllowed","blockedSelectors","allowedSelectors","allowed","validateNavigationUrl","searchParams","String","queryString","isInternalUrl","tryClientSideNavigation","href","sanitizedSelector","sanitizeSelector","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","focus","option","from","find","opt","dispatchEvent","Event","bubbles","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLElement","scrollIntoView","behavior","block","click","triggerSelector","scrollTo","top","scrollHeight","removeHighlight","rect","getBoundingClientRect","overlay","createElement","style","cssText","left","width","height","appendChild","isAllowedCustomAction","URL","origin","history","pushState","PopStateEvent","HashChangeEvent","test","hasOwnProperty","remove","getElementById","head","getClassifier","resetActionCount","manager","astermindConfig","script","client","intentClassifier"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
1
|
+
{"version":3,"file":"cybernetic-chatbot-client.min.js","sources":["../src/ApiClient.ts","../node_modules/idb/build/wrap-idb-value.js","../node_modules/idb/build/index.js","../src/CyberneticCache.ts","../src/CyberneticLocalRAG.ts","../src/license/base64url.ts","../src/license/verifier.ts","../src/license/licenseManager.ts","../src/CyberneticClient.ts","../src/config.ts","../src/agentic/CyberneticIntentClassifier.ts","../src/agentic/CyberneticAgent.ts","../src/index.ts","../src/agentic/register.ts"],"sourcesContent":[null,"const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n",null,null,null,null,null,null,null,null,null,null,null],"names":["ApiClient","constructor","baseUrl","apiKey","this","replace","chat","message","options","response","fetch","method","headers","body","JSON","stringify","sessionId","context","ok","error","json","catch","Error","status","statusText","chatStream","reader","getReader","decoder","TextDecoder","buffer","fullText","sources","done","value","read","decode","stream","lines","split","pop","line","startsWith","data","parse","slice","undefined","text","onToken","onSources","onComplete","onError","getGeneralDocs","since","params","URLSearchParams","set","url","toString","documents","getStatus","health","idbProxyableTypes","cursorAdvanceMethods","cursorRequestMap","WeakMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","idbProxyTraps","get","target","prop","receiver","IDBTransaction","objectStoreNames","objectStore","wrap","has","wrapFunction","func","IDBDatabase","prototype","transaction","IDBCursor","advance","continue","continuePrimaryKey","includes","args","apply","unwrap","storeNames","tx","call","sort","transformCachableValue","Promise","resolve","reject","unlisten","removeEventListener","complete","DOMException","addEventListener","cacheDonePromiseForTransaction","object","IDBObjectStore","IDBIndex","some","c","Proxy","IDBRequest","request","promise","success","result","then","promisifyRequest","newValue","readMethods","writeMethods","cachedMethods","Map","getMethod","targetFuncName","useIndex","isWrite","async","storeName","store","index","shift","all","oldTraps","callback","CyberneticCache","config","db","dbPromise","documentCount","lastSyncAt","storage","indexedDB","initDB","loadLocalStorageMetadata","meta","localStorage","getItem","parsed","name","version","blocked","upgrade","blocking","terminated","open","openPromise","event","oldVersion","newVersion","openDB","contains","createObjectStore","keyPath","createIndex","loadMetadata","getDB","countMeta","syncMeta","storeLocalStorage","doc","put","count","Date","toISOString","key","retrieve","retrieveLocalStorage","getAll","getLastSync","isStale","now","getTime","maxAge","cacheSize","clear","removeItem","setItem","length","limited","CyberneticLocalRAG","idf","indexed","isIndexed","docFreq","tokens","tokenize","content","uniqueTokens","Set","token","push","id","title","tfidf","N","term","df","Math","log","termFreq","computeTermFrequency","tf","ask","query","answer","topScore","queryTokens","queryTf","queryTfidf","scores","map","score","cosineSimilarity","a","b","topResults","filter","r","topDoc","extractRelevantSnippet","snippet","substring","reset","toLowerCase","isStopWord","freq","maxFreq","max","values","f","vec1","vec2","dotProduct","norm1","norm2","val1","val","sqrt","scored","s","trim","sentence","sentenceTokens","qt","topSentences","join","word","base64urlDecode","input","base64","padding","repeat","binaryString","atob","bytes","Uint8Array","i","charCodeAt","base64urlDecodeString","parseJWT","parts","headerB64","payloadB64","signatureB64","header","payload","signature","signedContent","verifySignature","publicKey","pemKey","pemContents","crypto","subtle","importKey","namedCurve","importPublicKey","TextEncoder","encode","sigBuffer","verify","hash","console","warn","verifyLicenseToken","inGracePeriod","daysRemaining","iss","sub","aud","iat","exp","plan","seats","Array","isArray","features","licenseVersion","org","graceUntil","validatePayload","keyToUse","floor","expTimestamp","secondsRemaining","calculateDaysRemaining","REQUIRED_FEATURES","CLIENT","AGENTIC","detectEnvironment","window","process","env","NODE_ENV","hostname","location","devPatterns","pattern","port","protocol","stagingPatterns","getEnforcementMode","environment","LicenseManager","state","verificationPromise","hasLoggedWarning","loggedMissingFeatures","enforcementMode","licenseKey","onStatusChange","logLicenseStatus","getState","isValid","requiresAction","getEnvironment","processResponse","logDevelopmentWarning","getStatusMessage","abs","reVerify","hasFeature","feature","getFeatures","checkClientFeature","checkFeatureWithLog","checkAgenticFeature","displayName","add","logMissingFeature","missingFeature","availableFeatures","info","prefix","CyberneticClient","lastError","systemSettings","settingsLastChecked","SETTINGS_CHECK_INTERVAL","agenticCapabilities","apiUrl","fallback","enabled","cacheMaxAge","cacheOnConnect","cacheStorage","retry","maxRetries","initialDelay","exponentialBackoff","agentic","apiClient","cache","localRAG","licenseManager","monitorConnection","syncCache","registerAgentic","capabilities","isAgenticEnabled","getAgenticCapabilities","getAgenticConfig","classifyIntent","agentConfig","AgentClass","agent","interpretIntent","executeAction","action","smartAsk","classification","shouldEscalate","requireConfirmation","actionResult","createErrorResponse","settings","checkSystemStatus","maintenanceMode","forceOfflineClients","isCacheValid","fallbackAsk","reply","maintenanceMessage","confidence","offline","degradedReason","apiWithRetry","setStatus","omegaError","normalizeError","code","retryAfter","skipFallback","askStream","callbacks","processedReply","lastSync","docs","connection","license","getLicenseManager","clearCache","checkConnection","cacheRetentionHours","isMaintenanceMode","getMaintenanceMessage","cacheStatus","retentionMs","lastSyncTime","attempt","delay","pow","sleep","relevance","navigator","onLine","originalError","match","parseInt","ms","setTimeout","DEFAULT_API_URL","validateConfig","loadFromProcessEnv","ASTERMIND_RAG_API_KEY","ASTERMIND_RAG_API_SERVER_URL","_source","craApiKey","REACT_APP_ASTERMIND_RAG_API_KEY","craApiUrl","REACT_APP_ASTERMIND_RAG_API_SERVER_URL","loadFromViteEnv","injected","__ASTERMIND_CONFIG__","importMeta","globalThis","import","VITE_ASTERMIND_RAG_API_KEY","VITE_ASTERMIND_RAG_API_SERVER_URL","loadFromGlobalObject","globalConfig","astermindConfig","loadFromScriptAttributes","document","script","querySelector","getAttribute","configLoaders","ACTION_PATTERNS","navigate","type","weight","fillForm","clickElement","triggerModal","scroll","highlight","custom","CyberneticIntentClassifier","siteMapIndex","formIndex","modalIndex","buildIndexes","siteMap","entry","keys","path","aliases","forms","field","Object","entries","k","modals","modal","classify","rawConfidence","normalizedMessage","actionType","patterns","buildAction","siteMapResult","fuzzyMatchSiteMap","customResult","matchCustomAction","matchedPatterns","baseWeight","threshold","confidenceThreshold","extractTarget","siteMatch","findSiteMapMatch","similarity","explanation","parseFormIntent","selector","search","buttonName","findButtonSelector","modalName","findModalConfig","trigger","findScrollTarget","findElementByDescription","actionName","customActions","normalizedTarget","exact","bestMatch","bestScore","calculateSimilarity","valueMatch","RegExp","normalizedName","selectors","buttons","querySelectorAll","btn","textContent","generateUniqueSelector","description","normalizedDesc","element","current","tagName","className","classes","unshift","parentElement","setA","setB","intersection","x","union","size","getConfig","CyberneticAgent","highlightOverlay","actionCount","lastActionReset","classifier","injectStyles","maxActions","maxActionsPerTurn","isActionAllowed","scrollToElement","highlightElement","executeCustomAction","allowedActions","mappedType","isSelectorAllowed","blockedSelectors","allowedSelectors","allowed","validateNavigationUrl","searchParams","String","queryString","isInternalUrl","tryClientSideNavigation","href","sanitizedSelector","sanitizeSelector","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","focus","option","from","find","opt","dispatchEvent","Event","bubbles","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLElement","scrollIntoView","behavior","block","click","triggerSelector","scrollTo","top","scrollHeight","removeHighlight","rect","getBoundingClientRect","overlay","createElement","style","cssText","left","width","height","appendChild","isAllowedCustomAction","URL","origin","history","pushState","PopStateEvent","HashChangeEvent","test","hasOwnProperty","remove","getElementById","head","getClassifier","resetActionCount","manager","throwOnMissingKey","envConfig","viteConfig","scriptConfig","client","intentClassifier"],"mappings":"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","x_google_ignoreList":[1,2]}
|