From 4cc21a5658ea8e8a48596d584dbc278a43f7ba2b Mon Sep 17 00:00:00 2001 From: Lukas Boehler Date: Thu, 23 Jul 2026 20:42:14 +0200 Subject: [PATCH] fix(141664): re-evaluate banner page rules on SPA navigations Banners evaluated page rules only once, at outbound arrival. In SPAs a banner delivered on an allowed page (e.g. a homepage-only 'is' rule) followed the user onto every other page, and a banner arriving on an excluded page was silently consumed without ever being shown. Banners now join notification bubbles in render-time gating: GleapBannerManager keeps the outbound's page rules, shows/hides the banner as the URL changes (checked ~1x/s by the existing page listener), keeps banners pending when they arrive on excluded pages, and treats user dismissal as final. Co-Authored-By: Claude Fable 5 --- build/browser/index.js | 2 +- build/browser/index.js.map | 2 +- build/cjs/index.js | 2 +- build/cjs/index.js.map | 2 +- build/esm/index.mjs | 2 +- build/esm/index.mjs.map | 2 +- published/16.3.1/index.js | 2 +- published/16.3.1/index.js.map | 2 +- published/latest/index.js | 2 +- published/latest/index.js.map | 2 +- src/Gleap.js | 16 +++-- src/GleapBannerManager.js | 59 +++++++++++++++++- src/GleapBannerManager.test.js | 105 +++++++++++++++++++++++++++++++++ src/GleapStreamedEvent.js | 12 ++-- 14 files changed, 191 insertions(+), 21 deletions(-) create mode 100644 src/GleapBannerManager.test.js diff --git a/build/browser/index.js b/build/browser/index.js index 16133fec..b1b5fb62 100644 --- a/build/browser/index.js +++ b/build/browser/index.js @@ -1,2 +1,2 @@ -(()=>{var t={d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};(()=>{"use strict";function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function r(){r=function(){return e};var t,e={},o=Object.prototype,i=o.hasOwnProperty,a=Object.defineProperty||function(t,e,n){t[e]=n.value},s="function"==typeof Symbol?Symbol:{},c=s.iterator||"@@iterator",l=s.asyncIterator||"@@asyncIterator",u=s.toStringTag||"@@toStringTag";function d(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{d({},"")}catch(t){d=function(t,e,n){return t[e]=n}}function p(t,e,n,r){var o=e&&e.prototype instanceof b?e:b,i=Object.create(o.prototype),s=new P(r||[]);return a(i,"_invoke",{value:L(t,n,s)}),i}function h(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=p;var f="suspendedStart",g="suspendedYield",m="executing",v="completed",y={};function b(){}function w(){}function k(){}var x={};d(x,c,(function(){return this}));var S=Object.getPrototypeOf,C=S&&S(S(_([])));C&&C!==o&&i.call(C,c)&&(x=C);var I=k.prototype=b.prototype=Object.create(x);function T(t){["next","throw","return"].forEach((function(e){d(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(o,a,s,c){var l=h(t[o],t,a);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==n(d)&&i.call(d,"__await")?e.resolve(d.__await).then((function(t){r("next",t,s,c)}),(function(t){r("throw",t,s,c)})):e.resolve(d).then((function(t){u.value=t,s(u)}),(function(t){return r("throw",t,s,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}})}function L(e,n,r){var o=f;return function(i,a){if(o===m)throw new Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:t,done:!0}}for(r.method=i,r.arg=a;;){var s=r.delegate;if(s){var c=O(s,r);if(c){if(c===y)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===f)throw o=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=m;var l=h(e,n,r);if("normal"===l.type){if(o=r.done?v:g,l.arg===y)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(o=v,r.method="throw",r.arg=l.arg)}}}function O(e,n){var r=n.method,o=e.iterator[r];if(o===t)return n.delegate=null,"throw"===r&&e.iterator.return&&(n.method="return",n.arg=t,O(e,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var i=h(o,e.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,y;var a=i.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,y):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function M(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(M,this),this.reset(!0)}function _(e){if(e||""===e){var r=e[c];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function n(){for(;++o=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),l=i.call(a,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;A(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:_(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function o(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,c=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){c=!0,a=t},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw a}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nqu});var c=function(t,e,n){var r,o,i,a,s,c,l;switch(t){case"meta":null===(r=n.onMeta)||void 0===r||r.call(n,e);break;case"token":null===(o=n.onToken)||void 0===o||o.call(n,e);break;case"tool_start":null===(i=n.onToolStart)||void 0===i||i.call(n,e);break;case"tool_end":null===(a=n.onToolEnd)||void 0===a||a.call(n,e);break;case"done":null===(s=n.onDone)||void 0===s||s.call(n,e);break;case"error":null===(c=n.onError)||void 0===c||c.call(n,e);break;case"handoff":null===(l=n.onHandoff)||void 0===l||l.call(n,e)}},l=function(){var t,e=(t=r().mark((function t(e,n){var i,a,s,l,u,d,p,h,f,g,m,v,y,b,w,k,x,S;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e.body){t.next=3;break}return null===(i=n.onError)||void 0===i||i.call(n,{message:"No response body."}),t.abrupt("return");case 3:a=e.body.getReader(),s=new TextDecoder,l="",u="",d="",t.prev=8;case 9:return t.next=12,a.read();case 12:if(h=t.sent,f=h.done,g=h.value,!f){t.next=17;break}return t.abrupt("break",24);case 17:l+=s.decode(g,{stream:!0}),m=l.split("\n"),l=null!==(p=m.pop())&&void 0!==p?p:"",v=o(m);try{for(v.s();!(y=v.n()).done;)if(b=y.value,(w=b.replace(/\r$/,"")).startsWith("event: "))u=w.slice(7).trim();else if(w.startsWith("data: "))d+=(d?"\n":"")+w.slice(6);else if(""===w){if(u&&d)try{k=JSON.parse(d),c(u,k,n)}catch(r){}u="",d=""}}catch(C){v.e(C)}finally{v.f()}t.next=9;break;case 24:if(u&&d)try{x=JSON.parse(d),c(u,x,n)}catch(I){}t.next=30;break;case 27:t.prev=27,t.t0=t.catch(8),"AbortError"!==(null===t.t0||void 0===t.t0?void 0:t.t0.name)&&(null===(S=n.onError)||void 0===S||S.call(n,{message:"Stream interrupted."}));case 30:case"end":return t.stop()}}),t,null,[[8,27]])})),function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function s(t){a(i,r,o,s,c,"next",t)}function c(t){a(i,r,o,s,c,"throw",t)}s(void 0)}))});return function(t,n){return e.apply(this,arguments)}}();function u(t){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}function d(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return p(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function p(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(c&&l){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;A(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:_(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function g(t){for(var e=1;e=200&&i.status<300)try{r(i.responseText?JSON.parse(i.responseText):null)}catch(t){o({status:i.status,statusText:"JSON Parse Error",error:t})}else o({status:i.status,statusText:i.statusText,responseText:i.responseText})},i.onerror=function(){return o({status:0,statusText:"Network Error"})},i.send(n?JSON.stringify(n):null)}))}},{key:"streamAgent",value:(o=h().mark((function t(e,n,r,o){var i,a,s,c,u,d,p;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.executeInFlight.get(e)){t.next=2;break}return t.abrupt("return");case 2:if(this.executeInFlight.set(e,!0),i=this._getApiUrl()){t.next=8;break}return this.executeInFlight.delete(e),null===(a=r.onError)||void 0===a||a.call(r,{message:"Gleap API URL not configured."}),t.abrupt("return");case 8:return s="".concat(i,"/v3/shared/agents/").concat(e,"/stream"),c=g(g({},this._getHeaders()),{},{Accept:"text/event-stream"}),t.prev=10,t.next=13,fetch(s,{method:"POST",headers:c,body:JSON.stringify(n),signal:o});case 13:u=t.sent,t.next=23;break;case 16:if(t.prev=16,t.t0=t.catch(10),this.executeInFlight.delete(e),"AbortError"!==(null===t.t0||void 0===t.t0?void 0:t.t0.name)){t.next=21;break}return t.abrupt("return");case 21:return null===(d=r.onError)||void 0===d||d.call(r,{message:"Failed to connect to agent."}),t.abrupt("return");case 23:if(u.ok){t.next=27;break}return this.executeInFlight.delete(e),null===(p=r.onError)||void 0===p||p.call(r,{message:"Server error: ".concat(u.status)}),t.abrupt("return");case 27:return t.next=29,l(u,r);case 29:n.conversationId&&this._invalidateMessagesCache(n.conversationId),this.executeInFlight.delete(e);case 31:case"end":return t.stop()}}),t,this,[[10,16]])})),i=function(){var t=this,e=arguments;return new Promise((function(n,r){var i=o.apply(t,e);function a(t){m(i,n,r,a,s,"next",t)}function s(t){m(i,n,r,a,s,"throw",t)}a(void 0)}))},function(t,e,n,r){return i.apply(this,arguments)})},{key:"executeAgent",value:function(t,e){var n=this;if(this.executeInFlight.get(t))return Promise.reject(new Error("Agent execution already in progress."));var r=this._getApiUrl();if(!r)return Promise.reject(new Error("AgentNetworkManager: Gleap API URL not configured."));this.executeInFlight.set(t,!0);var o="".concat(r,"/v3/shared/agents/").concat(t,"/execute");return this._makeRequest("POST",o,e).then((function(t){return e.conversationId&&n._invalidateMessagesCache(e.conversationId),null!=t&&t.conversationId&&n._invalidateMessagesCache(t.conversationId),t})).finally((function(){n.executeInFlight.delete(t)}))}},{key:"getConversationMessages",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:50,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if("kai"===t)return Promise.resolve({messages:[]});var i="".concat(e,":").concat(r,":").concat(o),a=this.messagesCache.get(i);if(a)return a.status===w?Promise.resolve(JSON.parse(JSON.stringify(a.data))):Promise.reject(a.error);if(this.messagesRequests.has(i))return this.messagesRequests.get(i).then((function(t){return JSON.parse(JSON.stringify(t))}));var s=this._getApiUrl();if(!s)return Promise.reject(new Error("AgentNetworkManager: Gleap API URL not configured."));var c="".concat(s,"/v3/shared/agents/").concat(t,"/conversations/").concat(e,"/messages?limit=").concat(r,"&skip=").concat(o),l=this._makeRequest("GET",c,null).then((function(t){return n.messagesCache.set(i,{status:w,data:t}),JSON.parse(JSON.stringify(t))})).catch((function(t){throw n.messagesCache.set(i,{status:k,error:t}),t})).finally((function(){n.messagesRequests.delete(i)}));return this.messagesRequests.set(i,l),l.then((function(t){return JSON.parse(JSON.stringify(t))}))}},{key:"getConversations",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if("kai"===t)return Promise.resolve({conversations:[]});var r=this._getApiUrl();return r?this._makeRequest("GET","".concat(r,"/v3/shared/agents/").concat(t,"/conversations?limit=").concat(e,"&skip=").concat(n),null):Promise.reject(new Error("AgentNetworkManager: Gleap API URL not configured."))}},{key:"_invalidateMessagesCache",value:function(t){var e,n=d(this.messagesCache.keys());try{for(n.s();!(e=n.n()).done;){var r=e.value;r.startsWith(t+":")&&this.messagesCache.delete(r)}}catch(s){n.e(s)}finally{n.f()}var o,i=d(this.messagesRequests.keys());try{for(i.s();!(o=i.n()).done;){var a=o.value;a.startsWith(t+":")&&this.messagesRequests.delete(a)}}catch(s){i.e(s)}finally{i.f()}}}],r=[{key:"getInstance",value:function(){return t.instance||(t.instance=new t),t.instance}}],n&&v(e.prototype,n),r&&v(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();y(x,"instance",null);const S=x;function C(t){return C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},C(t)}function I(t,e){for(var n=0;n=200&&i.status<300)try{var t=i.responseText?JSON.parse(i.responseText):null;r(t)}catch(e){o({status:i.status,statusText:"JSON Parse Error",responseText:i.responseText,error:e})}else o({status:i.status,statusText:i.statusText,responseText:i.responseText})},i.onerror=function(){o({status:0,statusText:"Network Error",responseText:null})},i.send(n?JSON.stringify(n):null)}))}},{key:"_createCacheKey",value:function(t,e){return e?"".concat(t,"::").concat(e):t}},{key:"validateChecklist",value:function(t,e){var n=this,r=this._createCacheKey(t,e),o=this.validationCache.get(r);if(o)return o.status===L?Promise.resolve(o.internalId):Promise.reject(o.error);if(this.validationRequests.has(r))return this.validationRequests.get(r);var i=this._getApiUrl();if(!i){var a=new Error("ChecklistNetworkManager: Gleap API URL not configured.");return this.validationCache.set(r,{status:O,error:a}),Promise.reject(a)}var s="".concat(i,"/outbound/checklists?").concat(this._getQueryParams()),c=this._makeRequest("POST",s,{outboundId:t,sharedKey:e}).then((function(t){if(t&&t.id)return n.validationCache.set(r,{status:L,internalId:t.id}),t.id;var e=new Error("Validation response missing checklist ID.");throw n.validationCache.set(r,{status:O,error:t||e}),e})).catch((function(t){throw n.validationCache.set(r,{status:O,error:t}),t})).finally((function(){n.validationRequests.delete(r)}));return this.validationRequests.set(r,c),c}},{key:"fetchChecklist",value:function(t){var e=this,n=this.fetchCache.get(t);if(n)return n.status===L?Promise.resolve(JSON.parse(JSON.stringify(n.data))):Promise.reject(n.error);if(this.fetchRequests.has(t))return this.fetchRequests.get(t).then((function(t){return JSON.parse(JSON.stringify(t))}));var r=this._getApiUrl();if(!r){var o=new Error("ChecklistNetworkManager: Gleap API URL not configured.");return this.fetchCache.set(t,{status:O,error:o}),Promise.reject(o)}var i="".concat(r,"/outbound/checklists/").concat(t,"?convertTipTap=true&").concat(this._getQueryParams()),a=this._makeRequest("GET",i,null).then((function(n){if(n)return e.fetchCache.set(t,{status:L,data:n}),JSON.parse(JSON.stringify(n));var r=new Error("Empty response received for checklist fetch.");throw e.fetchCache.set(t,{status:O,error:n||r}),r})).catch((function(n){throw e.fetchCache.set(t,{status:O,error:n}),n})).finally((function(){e.fetchRequests.delete(t)}));return this.fetchRequests.set(t,a),a.then((function(t){return JSON.parse(JSON.stringify(t))}))}}])&&I(e.prototype,n),r&&I(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();T(M,"instance",null);const A=M;function P(t){return P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},P(t)}function _(t,e){for(var n=0;n0&&!Si.getInstance().isOpened()?(e.classList.remove(n),e.innerText=t):e.classList.add(n)}}},{key:"refresh",value:function(){document.querySelector(".bb-feedback-button")?(this.updateFeedbackButtonText(),this.updateFeedbackButtonState()):(this.injectedFeedbackButton=!1,this.feedbackButton=null,this.buttonHidden=null,this.lastButtonIcon=null,this.injectFeedbackButton())}},{key:"updateFeedbackButtonText",value:function(){var e=Ln.getInstance().getFlowConfig();if(e.feedbackButtonPosition===t.FEEDBACK_BUTTON_CLASSIC||e.feedbackButtonPosition===t.FEEDBACK_BUTTON_CLASSIC_BOTTOM||e.feedbackButtonPosition===t.FEEDBACK_BUTTON_CLASSIC_LEFT){var n=document.querySelector(".bb-feedback-button-classic");n&&(n.innerText=e.widgetButtonText)}}},{key:"updateFeedbackButtonState",value:function(){if(We.getInstance().updateUIVisibility(),null!==this.feedbackButton){var e=Ln.getInstance().getFlowConfig(),n="";n=e.buttonLogo?''):H("button","#fff"),this.feedbackButton.className="bb-feedback-button gleap-font rr-block",this.feedbackButton.setAttribute("dir",Ou.getInstance().isRTLLayout?"rtl":"ltr"),e.feedbackButtonPosition===t.FEEDBACK_BUTTON_CLASSIC||e.feedbackButtonPosition===t.FEEDBACK_BUTTON_CLASSIC_BOTTOM||e.feedbackButtonPosition===t.FEEDBACK_BUTTON_CLASSIC_LEFT?(this.feedbackButton.classList.add("bb-feedback-button--classic-button-style"),this.feedbackButton.innerHTML='
').concat(e.widgetButtonText,"
")):n!==this.lastButtonIcon&&(this.feedbackButton.innerHTML='
'.concat(n).concat(H("arrowdown","#fff"),'
')),this.lastButtonIcon=n;var r=!1;null===t.getInstance().buttonHidden?e.feedbackButtonPosition===t.FEEDBACK_BUTTON_NONE&&(r=!0):t.getInstance().buttonHidden&&(r=!0),r&&this.feedbackButton.classList.add("bb-feedback-button--disabled"),e.feedbackButtonPosition===t.FEEDBACK_BUTTON_BOTTOM_LEFT&&this.feedbackButton.classList.add("bb-feedback-button--bottomleft"),Si.getInstance().isOpened()&&this.feedbackButton.classList.add("bb-feedback-button--open");var o=Si.getInstance().appMode;"survey"!==o&&"survey_full"!==o&&"survey_web"!==o||this.feedbackButton.classList.add("bb-feedback-button--survey"),!0!==e.hideForGuests||Qo.getInstance().isUser()||this.feedbackButton.classList.add("bb-feedback-button--hidden")}}}])&&_(e.prototype,n),r&&_(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();function D(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,s=[],c=!0,l=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(s.push(r.value),s.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return F(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return F(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function F(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=160?"#000000":"#ffffff"},H=function(t,e){return"button"===t?'':"drag"===t?'\x3c!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc.--\x3e':"unmute"===t?'':"mute"===t?'':"replay"===t?'\n \n ':"dismiss"===t?'':"blur"===t?'\n \n':"pen"===t?'\n \n \n \n \n \n \n \n \n \n \n \n \n':"rect"===t?'\n \n \n \n \n \n \n \n \n \n \n':"pointer"===t?'\n \n ':"clip"===t?'\n \n \n \n \n \n':"mic"===t?'\n \n \n \n \n ':"camera"===t?'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n':"recorderon"===t?'\n \n \n \n \n \n \n \n \n \n \n \n':"recorderoff"===t?'\n \n \n \n \n \n \n \n \n ':"arrowdown"===t?'\n \n '):"arrowleft"===t?'\n \n '):"close"===t?'\n \n '):"undo"===t?'\n \n \n \n \n \n \n \n \n \n ':"circle-dot"===t?''):"circle-question"===t?''):"circle-info"===t?''):"circle-exclamation"===t?''):"circle-up"===t?''):"circle-right"===t?''):""};function q(t){return q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},q(t)}function z(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function W(t,e){for(var n=0;n=a-i;++s)n[i]=e[s],Z(t,e,n,s+1,o,i+1,a);else t.push(n.slice(0,i).join(""))}function Q(t){return function(t){if(Array.isArray(t))return tt(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return tt(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tt(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function tt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function st(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:["id","class","length"];return Q(t.attributes).reduce((function(t,n){return e.indexOf(n.nodeName)>-1||t.push("[".concat(n.nodeName,'="').concat(n.value,'"]')),t}),[])}(t,n)},Class:$,ID:Y};return e.reduce((function(e,n){return e[n]=r[n](t),e}),{})}function lt(t,e){try{var n=t.parentNode.querySelectorAll(e);return 1===n.length&&n[0]===t}catch(r){return!1}}function ut(t,e){return e.find(lt.bind(null,t))}function dt(t,e,n){var r=function(t,e){for(var n=[],r=t.length,o=[],i=1;i<=e;++i)Z(n,t,o,0,r-1,0,i);return n}(e,3),o=ut(t,r);return Boolean(o)||Boolean(n)&&(o=ut(t,r=r.map((function(t){return n+t}))),Boolean(o))?o:null}function pt(t,e,n,r){var o,i=ct(t,e,n);r&&r instanceof RegExp&&(i.ID=r.test(i.ID)?null:i.ID,i.Class=i.Class.filter((function(t){return!r.test(t)})));var a,s=at(e);try{for(s.s();!(a=s.n()).done;){var c=a.value,l=i.ID,u=i.Tag,d=i.Class,p=i.Attributes,h=i.NthChild;switch(c){case"ID":if(Boolean(l)&<(t,l))return l;break;case"Tag":if(Boolean(u)&<(t,u))return u;break;case"Class":if(Boolean(d)&&d.length&&(o=dt(t,d,u)))return o;break;case"Attributes":if(Boolean(p)&&p.length&&(o=dt(t,p,u)))return o;break;case"NthChild":if(Boolean(h))return h}}}catch(f){s.e(f)}finally{s.f()}return"*"}function ht(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.selectorTypes,o=void 0===r?["ID","Class","Tag","NthChild"]:r,i=n.attributesToIgnore,a=void 0===i?["id","class","length"]:i,s=n.excludeRegex,c=void 0===s?null:s,l=[],u=function(t){for(var e=[],n=t;nt(n);)e.push(n),n=n.parentNode;return e}(t),d=at(u);try{for(d.s();!(e=d.n()).done;){var p=pt(e.value,o,a,c);Boolean(p)&&l.push(p)}}catch(y){d.e(y)}finally{d.f()}for(var h=[],f=0,g=l;f ");if(it(t,v))return v}return null}var ft=function(t){return'(?:[^"]*[^a-zA-Z0-9])?(?:'.concat(t.join("|"),")")},gt=new RegExp(['^(?:#|\\[id=")'.concat(ft(["v-\\d+",":r[0-9a-z]+:","(?:radix|headlessui|reach|floating-ui)-","mui-\\d+","(?:mat|cdk)-[a-z-]+-?\\d+","(?:downshift|react-select|tippy|uid|uuid)-\\d+","ember\\d+","BVID__\\d+","ext-gen\\d+","yui_\\d","[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"])),"^\\.".concat(ft(["css-[a-z0-9]*\\d[a-z0-9]*","sc-(?=[a-zA-Z0-9]*[A-Z])[a-zA-Z0-9]{5,}","jsx-\\d+"])),"^\\.[^.]*".concat("__(?=[A-Za-z0-9]{4,}$)(?=[A-Za-z0-9]*[0-9])(?=[A-Za-z0-9]*[A-Z])[A-Za-z0-9]+$")].join("|")),mt=function(t,e){if(!t||"*"===t)return!1;try{var n=document.querySelectorAll(t);return 1===n.length&&n[0]===e}catch(r){return!1}},vt=/\d{2,}/,yt=function(t){return t.replace(/\d+/g,"#")},bt=function(t){return t.match(/(?:^\d|:)/)?'[id="'.concat(t,'"]'):"#".concat(t)},wt=["data-testid","data-test-id","data-test","data-cy","data-qa","name"],kt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ht,n=e(t),r=[];try{var o=function(){for(var t={},e=document.querySelectorAll("[id]"),n=0;n1?e.concat(t[n]):e}),[])}(),i="function"==typeof t.getAttribute?t.getAttribute("id"):null;i&&o.indexOf(i)<0&&!gt.test(bt(i))&&r.push(bt(i)),r.push.apply(r,function(t){var e=(t.tagName||"").toLowerCase();return wt.reduce((function(n,r){var o="function"==typeof t.getAttribute?t.getAttribute(r):null;if(!o||gt.test("#".concat(o)))return n;var i=o.replace(/["\\]/g,"\\$&");return n.concat(["".concat(e,"[").concat(r,'="').concat(i,'"]'),"[".concat(r,'="').concat(i,'"]')])}),[])}(t));var a=o.map((function(t){return bt(t).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})),s=a.length?new RegExp("".concat(gt.source,"|^(?:").concat(a.join("|"),")$")):gt;r.push(e(t,{excludeRegex:s}))}catch(l){}for(var c=0;c0&&void 0!==arguments[0]&&arguments[0])||r(e.gleapCollapseUI,t)&&r(e.gleapFrameContainer,n))&&(e.gleapCollapseUI&&e.gleapCollapseUI.classList.toggle(t),e.gleapFrameContainer&&e.gleapFrameContainer.classList.toggle(n))})),_t(this,"injectCollapseUI",(function(){if(!e.injectedCollapseUI){e.injectedCollapseUI=!0;var t=document.createElement("div");t.className="gleap-admin-collapse-ui",t.innerHTML='
\n '.concat(H("arrowdown"),"\n
"),document.body.appendChild(t),e.gleapCollapseUI=t,t.addEventListener("click",(function(t){t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault(),e.toggleCollapseUI()}))}})),_t(this,"injectFrame",(function(){var t;if(!e.injectedFrame){e.injectedFrame=!0;var n=document.createElement("div");n.className="gleap-admin-frame-container",n.innerHTML=''),document.body.appendChild(n),e.gleapFrameContainer=n,e.gleapFrame=document.querySelector(".gleap-admin-frame")}}))}var e,n,r;return e=t,r=[{key:"getInstance",value:function(){return this.instance||(this.instance=new t),this.instance}}],(n=[{key:"logCurrentPage",value:function(){var t=window.location.href;t&&t!==this.lastUrl&&(this.lastUrl=t,this.sendMessageToTourBuilder({name:"page-changed",data:{page:t}}))}},{key:"startPageListener",value:function(){var t=this;setInterval((function(){t.logCurrentPage()}),1e3)}},{key:"initAdminHelper",value:function(){var t=this;this.initialized=!0,Va.getInstance().disable(),nn.getInstance().disable(),Yi.getInstance().disable(),Hu.close(),Hu.showFeedbackButton(!1),t.adminHelper=new Lt;try{t.adminHelper.onElementPicked=function(e){t.toggleCollapseUI(!0),t.sendMessageToTourBuilder({name:"element-picked",data:{selector:e}})}}catch(e){console.log(e)}t.injectFrame(),t.injectCollapseUI(),t.setFrameHeight("loading")}},{key:"setFrameHeight",value:function(t){if(this.gleapFrameContainer){var e="";e="picker"===t||"navigate"===t?"65px":"editor"===t?"100vh":"0px",this.gleapFrameContainer.style.height=e}}},{key:"start",value:function(){var t=this;if("undefined"!=typeof window&&!window.gleapAdminDisabled){var e=this;window.addEventListener("message",(function(n){if("https://app.gleap.io"===n.origin)try{var r=JSON.parse(n.data);if("admin"===r.type&&("load"===r.name&&(e.configData=r.data,e.initAdminHelper()),"smartlink-search-result"===r.name&&t.sendMessageToTourBuilder({name:"smartlink-search-result",data:r.data}),"translate-complete"===r.name&&t.sendMessageToTourBuilder({name:"translate-complete",data:r.data})),"tourbuilder"===r.type){var o;if("loaddata"===r.name&&t.sendMessageToTourBuilder({name:"data",data:At(At({},e.configData),{},{currentPage:window.location.href})}),"highlight-element"===r.name&&(document.querySelectorAll(".gleap-admin-highlight").forEach((function(t){t.classList.remove("gleap-admin-highlight")})),null!=r&&null!==(o=r.data)&&void 0!==o&&o.selector)){var i,a=document.querySelector(null==r||null===(i=r.data)||void 0===i?void 0:i.selector);a&&a.classList.add("gleap-admin-highlight")}if("smartlink-search"===r.name&&t.sendMessage({name:"smartlink-search",data:r.data}),"product-tour-started"===r.name&&t.sendMessage({name:"product-tour-started",data:r.data}),"translate"===r.name&&t.sendMessage({name:"translate",data:r.data}),"save"===r.name&&t.sendMessage({name:"save",data:r.data}),"update-steps"===r.name&&t.sendMessage({name:"update-steps",data:r.data}),"click"===r.name)try{document.querySelector(r.data.selector).click()}catch(s){console.log(s)}"status-changed"===r.name&&(e.status=r.data,t.setFrameHeight(e.status),e.adminHelper.stopPicker(),"picker"===e.status&&e.adminHelper.startPicker())}}catch(c){}})),this.sendMessage({name:"init"}),this.startPageListener()}}},{key:"sendMessage",value:function(t){try{window&&window.opener&&window.opener.postMessage(JSON.stringify(At(At({},t),{},{type:"admin"})),"*")}catch(e){}}},{key:"sendMessageToTourBuilder",value:function(t){try{this.gleapFrame&&this.gleapFrame.contentWindow&&this.gleapFrame.contentWindow.postMessage(JSON.stringify(At(At({},t),{},{type:"tourbuilder"})),"*")}catch(e){}}}])&&Pt(e.prototype,n),r&&Pt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();function jt(t){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jt(t)}function Dt(){Dt=function(){return e};var t,e={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function l(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,n){return t[e]=n}}function u(t,e,n,r){var i=e&&e.prototype instanceof v?e:v,a=Object.create(i.prototype),s=new M(r||[]);return o(a,"_invoke",{value:T(t,n,s)}),a}function d(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=u;var p="suspendedStart",h="suspendedYield",f="executing",g="completed",m={};function v(){}function y(){}function b(){}var w={};l(w,a,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(A([])));x&&x!==n&&r.call(x,a)&&(w=x);var S=b.prototype=v.prototype=Object.create(w);function C(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function I(t,e){function n(o,i,a,s){var c=d(t[o],t,i);if("throw"!==c.type){var l=c.arg,u=l.value;return u&&"object"==jt(u)&&r.call(u,"__await")?e.resolve(u.__await).then((function(t){n("next",t,a,s)}),(function(t){n("throw",t,a,s)})):e.resolve(u).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,s)}))}s(c.arg)}var i;o(this,"_invoke",{value:function(t,r){function o(){return new e((function(e,o){n(t,r,e,o)}))}return i=i?i.then(o,o):o()}})}function T(e,n,r){var o=p;return function(i,a){if(o===f)throw new Error("Generator is already running");if(o===g){if("throw"===i)throw a;return{value:t,done:!0}}for(r.method=i,r.arg=a;;){var s=r.delegate;if(s){var c=E(s,r);if(c){if(c===m)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===p)throw o=g,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=f;var l=d(e,n,r);if("normal"===l.type){if(o=r.done?g:h,l.arg===m)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(o=g,r.method="throw",r.arg=l.arg)}}}function E(e,n){var r=n.method,o=e.iterator[r];if(o===t)return n.delegate=null,"throw"===r&&e.iterator.return&&(n.method="return",n.arg=t,E(e,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var i=d(o,e.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var a=i.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function M(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function A(e){if(e||""===e){var n=e[a];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function n(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(c&&l){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),O(n),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;O(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:A(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}function Ft(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Bt(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._agentId=e.agentId||"kai",this._context=e.context||null,this._onChange=e.onChange||null,this._onError=e.onError||null,this._onReplyReceived=e.onReplyReceived||null,this._onConversationCreated=e.onConversationCreated||null,this._onToken=e.onToken||null,this._messages=[],this._conversationId=e.conversationId||null,this._isExecuting=!1,this._error=null,this._destroyed=!1,this._abortController=null;try{this._networkManager=S.getInstance()}catch(n){this._networkManager=null}}var e,n,r,o,i;return e=t,n=[{key:"sendMessage",value:(o=Dt().mark((function t(e){var n,r,o,i,a,s,c,l=this;return Dt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((n=(e||"").trim())&&!this._isExecuting&&!this._destroyed){t.next=3;break}return t.abrupt("return");case 3:return this._messages=[].concat(Ht(this._messages),[{id:"user-".concat(Date.now()),role:"user",content:n,createdAt:(new Date).toISOString()}]),r="stream-".concat(Date.now()),this._messages=[].concat(Ht(this._messages),[{id:r,role:"assistant",content:"",createdAt:(new Date).toISOString(),isStreaming:!0}]),this._isExecuting=!0,this._error=null,this._notify(),o="kai"===this._agentId,i=o?this._messages.filter((function(t){return!t.isStreaming&&t.content})).map((function(t){return{role:t.role,content:t.content}})):[{role:"user",content:n}],a={messages:i},this._conversationId&&(a.conversationId=this._conversationId),this._context&&(a.additionalContext=this._context),this._abortController=new AbortController,s=!this._conversationId,c=this._messages.length-1,t.next=19,this._networkManager.streamAgent(this._agentId,a,{onMeta:function(t){l._destroyed||(t.conversationId&&(l._conversationId=t.conversationId,l._networkManager._invalidateMessagesCache(t.conversationId),s&&l._onConversationCreated&&l._onConversationCreated(t.conversationId)),t.runId&&l._messages[c]&&(l._messages[c]=Bt(Bt({},l._messages[c]),{},{id:t.runId})))},onToken:function(t){if(!l._destroyed){var e=l._messages[c];e&&(e.content+=t.content||""),l._notify(),l._onToken&&l._onToken(t)}},onDone:function(t){if(!l._destroyed){var e=l._messages[c];e&&(e.isStreaming=!1,t.response&&!e.content&&(e.content=t.response)),l._isExecuting=!1,l._abortController=null,l._notify(),l._onReplyReceived&&l._onReplyReceived(t)}},onError:function(t){if(!l._destroyed){var e=l._messages[c];e&&!e.content?l._messages.splice(c,1):e&&(e.isStreaming=!1),l._isExecuting=!1,l._error=t,l._abortController=null,l._notify(),l._onError&&l._onError(t)}},onToolStart:function(){},onToolEnd:function(){}},this._abortController.signal);case 19:case"end":return t.stop()}}),t,this)})),i=function(){var t=this,e=arguments;return new Promise((function(n,r){var i=o.apply(t,e);function a(t){zt(i,n,r,a,s,"next",t)}function s(t){zt(i,n,r,a,s,"throw",t)}a(void 0)}))},function(t){return i.apply(this,arguments)})},{key:"cancelStream",value:function(){this._abortController&&(this._abortController.abort(),this._abortController=null),this._messages=this._messages.map((function(t){return t.isStreaming?Bt(Bt({},t),{},{isStreaming:!1}):t})),this._messages=this._messages.filter((function(t){return t.content||"user"===t.role})),this._isExecuting=!1,this._notify()}},{key:"clearMessages",value:function(){this._messages=[],this._conversationId=null,this._isExecuting=!1,this._error=null,this.cancelStream(),S.getInstance().clearCache(),this._notify()}},{key:"setContext",value:function(t){this._context=t}},{key:"getState",value:function(){return{messages:this._messages,isExecuting:this._isExecuting,error:this._error,conversationId:this._conversationId}}},{key:"destroy",value:function(){this.cancelStream(),this._destroyed=!0,this._onChange=null,this._onError=null,this._onReplyReceived=null,this._onConversationCreated=null,this._onToken=null}},{key:"_notify",value:function(){this._onChange&&!this._destroyed&&this._onChange(this.getState())}}],n&&Wt(e.prototype,n),r&&Wt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();const Kt=Vt;function Jt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Xt(t,e,n){return e=function(t){var e=function(t,e){if("object"!=Yt(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=Yt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==Yt(e)?e:String(e)}(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Yt(t){return Yt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yt(t)}var $t=function(t,e){if(t&&e){var n,r=function(){try{t.src=e}catch(n){}};try{if(!t.contentDocument)return r()}catch(i){return r()}try{var o=new URL(e);n=o.origin+"/"}catch(i){return r()}fetch(e,{mode:"cors",credentials:"omit"}).then((function(t){if(!t.ok)throw new Error("Bootstrap fetch failed: "+t.status);return t.text()})).then((function(o){var a=o.replace(/(\s(?:href|src)\s*=\s*["'])\/([^"'/][^"']*)/g,"$1"+n+"$2"),s="/";try{var c=new URL(e);s=c.pathname+c.search+c.hash}catch(i){}var l,u,d='';\n\n // Inject the route-setter script BEFORE the first existing ';\n\n // Inject the route-setter script BEFORE the first existing ';\n\n // Inject the route-setter script BEFORE the first existing ';\n\n // Inject the route-setter script BEFORE the first existing ';\n\n // Inject the route-setter script BEFORE the first existing ';\n\n // Inject the route-setter script BEFORE the first existing ';\n\n // Inject the route-setter script BEFORE the first existing ';\n\n // Inject the route-setter script BEFORE the first existing ';\n\n // Inject the route-setter script BEFORE the first existing ';\n\n // Inject the route-setter script BEFORE the first existing