@makemore/agent-frontend 2.7.2 → 2.8.3

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.
@@ -1,10 +1,10 @@
1
- var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnPropertyDescriptor;var Nt=Object.getOwnPropertyNames;var Lt=Object.prototype.hasOwnProperty;var Ut=(e,t)=>{for(var n in t)Te(e,n,{get:t[n],enumerable:!0})},Kt=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Nt(t))!Lt.call(e,a)&&a!==n&&Te(e,a,{get:()=>t[a],enumerable:!(s=Ht(t,a))||s.enumerable});return e};var Wt=e=>Kt(Te({},"__esModule",{value:!0}),e);var vn={};Ut(vn,{ChatWidget:()=>Se,default:()=>yn});var pe,O,Je,Bt,ee,We,Ve,qe,Ge,Ie,Me,xe,jt,se={},Xe=[],zt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,he=Array.isArray;function Z(e,t){for(var n in t)e[n]=t[n];return e}function Ae(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function fe(e,t,n){var s,a,o,i={};for(o in t)o=="key"?s=t[o]:o=="ref"?a=t[o]:i[o]=t[o];if(arguments.length>2&&(i.children=arguments.length>3?pe.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(o in e.defaultProps)i[o]===void 0&&(i[o]=e.defaultProps[o]);return de(e,i,s,a,null)}function de(e,t,n,s,a){var o={type:e,props:t,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:a??++Je,__i:-1,__u:0};return a==null&&O.vnode!=null&&O.vnode(o),o}function me(e){return e.children}function ne(e,t){this.props=e,this.context=t}function te(e,t){if(t==null)return e.__?te(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?te(e):null}function Qe(e){var t,n;if((e=e.__)!=null&&e.__c!=null){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null){e.__e=e.__c.base=n.__e;break}return Qe(e)}}function Be(e){(!e.__d&&(e.__d=!0)&&ee.push(e)&&!_e.__r++||We!=O.debounceRendering)&&((We=O.debounceRendering)||Ve)(_e)}function _e(){for(var e,t,n,s,a,o,i,c=1;ee.length;)ee.length>c&&ee.sort(qe),e=ee.shift(),c=ee.length,e.__d&&(n=void 0,s=void 0,a=(s=(t=e).__v).__e,o=[],i=[],t.__P&&((n=Z({},s)).__v=s.__v+1,O.vnode&&O.vnode(n),De(t.__P,n,s,t.__n,t.__P.namespaceURI,32&s.__u?[a]:null,o,a??te(s),!!(32&s.__u),i),n.__v=s.__v,n.__.__k[n.__i]=n,et(o,n,i),s.__e=s.__=null,n.__e!=a&&Qe(n)));_e.__r=0}function Ze(e,t,n,s,a,o,i,c,d,l,u){var r,_,p,v,w,y,g,k=s&&s.__k||Xe,I=t.length;for(d=Jt(n,t,k,d,I),r=0;r<I;r++)(p=n.__k[r])!=null&&(_=p.__i==-1?se:k[p.__i]||se,p.__i=r,y=De(e,p,_,a,o,i,c,d,l,u),v=p.__e,p.ref&&_.ref!=p.ref&&(_.ref&&Re(_.ref,null,p),u.push(p.ref,p.__c||v,p)),w==null&&v!=null&&(w=v),(g=!!(4&p.__u))||_.__k===p.__k?d=Ye(p,d,e,g):typeof p.type=="function"&&y!==void 0?d=y:v&&(d=v.nextSibling),p.__u&=-7);return n.__e=w,d}function Jt(e,t,n,s,a){var o,i,c,d,l,u=n.length,r=u,_=0;for(e.__k=new Array(a),o=0;o<a;o++)(i=t[o])!=null&&typeof i!="boolean"&&typeof i!="function"?(typeof i=="string"||typeof i=="number"||typeof i=="bigint"||i.constructor==String?i=e.__k[o]=de(null,i,null,null,null):he(i)?i=e.__k[o]=de(me,{children:i},null,null,null):i.constructor===void 0&&i.__b>0?i=e.__k[o]=de(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):e.__k[o]=i,d=o+_,i.__=e,i.__b=e.__b+1,c=null,(l=i.__i=Vt(i,n,d,r))!=-1&&(r--,(c=n[l])&&(c.__u|=2)),c==null||c.__v==null?(l==-1&&(a>u?_--:a<u&&_++),typeof i.type!="function"&&(i.__u|=4)):l!=d&&(l==d-1?_--:l==d+1?_++:(l>d?_--:_++,i.__u|=4))):e.__k[o]=null;if(r)for(o=0;o<u;o++)(c=n[o])!=null&&!(2&c.__u)&&(c.__e==s&&(s=te(c)),nt(c,c));return s}function Ye(e,t,n,s){var a,o;if(typeof e.type=="function"){for(a=e.__k,o=0;a&&o<a.length;o++)a[o]&&(a[o].__=e,t=Ye(a[o],t,n,s));return t}e.__e!=t&&(s&&(t&&e.type&&!t.parentNode&&(t=te(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function Vt(e,t,n,s){var a,o,i,c=e.key,d=e.type,l=t[n],u=l!=null&&(2&l.__u)==0;if(l===null&&c==null||u&&c==l.key&&d==l.type)return n;if(s>(u?1:0)){for(a=n-1,o=n+1;a>=0||o<t.length;)if((l=t[i=a>=0?a--:o++])!=null&&!(2&l.__u)&&c==l.key&&d==l.type)return i}return-1}function je(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||zt.test(t)?n:n+"px"}function ue(e,t,n,s,a){var o,i;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof s=="string"&&(e.style.cssText=s=""),s)for(t in s)n&&t in n||je(e.style,t,"");if(n)for(t in n)s&&n[t]==s[t]||je(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")o=t!=(t=t.replace(Ge,"$1")),i=t.toLowerCase(),t=i in e||t=="onFocusOut"||t=="onFocusIn"?i.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?s?n.u=s.u:(n.u=Ie,e.addEventListener(t,o?xe:Me,o)):e.removeEventListener(t,o?xe:Me,o);else{if(a=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function ze(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t.t==null)t.t=Ie++;else if(t.t<n.u)return;return n(O.event?O.event(t):t)}}}function De(e,t,n,s,a,o,i,c,d,l){var u,r,_,p,v,w,y,g,k,I,N,J,z,V,W,B,q,H=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(d=!!(32&n.__u),o=[c=t.__e=n.__e]),(u=O.__b)&&u(t);e:if(typeof H=="function")try{if(g=t.props,k="prototype"in H&&H.prototype.render,I=(u=H.contextType)&&s[u.__c],N=u?I?I.props.value:u.__:s,n.__c?y=(r=t.__c=n.__c).__=r.__E:(k?t.__c=r=new H(g,N):(t.__c=r=new ne(g,N),r.constructor=H,r.render=Gt),I&&I.sub(r),r.state||(r.state={}),r.__n=s,_=r.__d=!0,r.__h=[],r._sb=[]),k&&r.__s==null&&(r.__s=r.state),k&&H.getDerivedStateFromProps!=null&&(r.__s==r.state&&(r.__s=Z({},r.__s)),Z(r.__s,H.getDerivedStateFromProps(g,r.__s))),p=r.props,v=r.state,r.__v=t,_)k&&H.getDerivedStateFromProps==null&&r.componentWillMount!=null&&r.componentWillMount(),k&&r.componentDidMount!=null&&r.__h.push(r.componentDidMount);else{if(k&&H.getDerivedStateFromProps==null&&g!==p&&r.componentWillReceiveProps!=null&&r.componentWillReceiveProps(g,N),t.__v==n.__v||!r.__e&&r.shouldComponentUpdate!=null&&r.shouldComponentUpdate(g,r.__s,N)===!1){for(t.__v!=n.__v&&(r.props=g,r.state=r.__s,r.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(h){h&&(h.__=t)}),J=0;J<r._sb.length;J++)r.__h.push(r._sb[J]);r._sb=[],r.__h.length&&i.push(r);break e}r.componentWillUpdate!=null&&r.componentWillUpdate(g,r.__s,N),k&&r.componentDidUpdate!=null&&r.__h.push(function(){r.componentDidUpdate(p,v,w)})}if(r.context=N,r.props=g,r.__P=e,r.__e=!1,z=O.__r,V=0,k){for(r.state=r.__s,r.__d=!1,z&&z(t),u=r.render(r.props,r.state,r.context),W=0;W<r._sb.length;W++)r.__h.push(r._sb[W]);r._sb=[]}else do r.__d=!1,z&&z(t),u=r.render(r.props,r.state,r.context),r.state=r.__s;while(r.__d&&++V<25);r.state=r.__s,r.getChildContext!=null&&(s=Z(Z({},s),r.getChildContext())),k&&!_&&r.getSnapshotBeforeUpdate!=null&&(w=r.getSnapshotBeforeUpdate(p,v)),B=u,u!=null&&u.type===me&&u.key==null&&(B=tt(u.props.children)),c=Ze(e,he(B)?B:[B],t,n,s,a,o,i,c,d,l),r.base=t.__e,t.__u&=-161,r.__h.length&&i.push(r),y&&(r.__E=r.__=null)}catch(h){if(t.__v=null,d||o!=null)if(h.then){for(t.__u|=d?160:128;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;o[o.indexOf(c)]=null,t.__e=c}else{for(q=o.length;q--;)Ae(o[q]);Ee(t)}else t.__e=n.__e,t.__k=n.__k,h.then||Ee(t);O.__e(h,t,n)}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=qt(n.__e,t,n,s,a,o,i,d,l);return(u=O.diffed)&&u(t),128&t.__u?void 0:c}function Ee(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(Ee)}function et(e,t,n){for(var s=0;s<n.length;s++)Re(n[s],n[++s],n[++s]);O.__c&&O.__c(t,e),e.some(function(a){try{e=a.__h,a.__h=[],e.some(function(o){o.call(a)})}catch(o){O.__e(o,a.__v)}})}function tt(e){return typeof e!="object"||e==null||e.__b&&e.__b>0?e:he(e)?e.map(tt):Z({},e)}function qt(e,t,n,s,a,o,i,c,d){var l,u,r,_,p,v,w,y=n.props||se,g=t.props,k=t.type;if(k=="svg"?a="http://www.w3.org/2000/svg":k=="math"?a="http://www.w3.org/1998/Math/MathML":a||(a="http://www.w3.org/1999/xhtml"),o!=null){for(l=0;l<o.length;l++)if((p=o[l])&&"setAttribute"in p==!!k&&(k?p.localName==k:p.nodeType==3)){e=p,o[l]=null;break}}if(e==null){if(k==null)return document.createTextNode(g);e=document.createElementNS(a,k,g.is&&g),c&&(O.__m&&O.__m(t,o),c=!1),o=null}if(k==null)y===g||c&&e.data==g||(e.data=g);else{if(o=o&&pe.call(e.childNodes),!c&&o!=null)for(y={},l=0;l<e.attributes.length;l++)y[(p=e.attributes[l]).name]=p.value;for(l in y)if(p=y[l],l!="children"){if(l=="dangerouslySetInnerHTML")r=p;else if(!(l in g)){if(l=="value"&&"defaultValue"in g||l=="checked"&&"defaultChecked"in g)continue;ue(e,l,null,p,a)}}for(l in g)p=g[l],l=="children"?_=p:l=="dangerouslySetInnerHTML"?u=p:l=="value"?v=p:l=="checked"?w=p:c&&typeof p!="function"||y[l]===p||ue(e,l,p,y[l],a);if(u)c||r&&(u.__html==r.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(r&&(e.innerHTML=""),Ze(t.type=="template"?e.content:e,he(_)?_:[_],t,n,s,k=="foreignObject"?"http://www.w3.org/1999/xhtml":a,o,i,o?o[0]:n.__k&&te(n,0),c,d),o!=null)for(l=o.length;l--;)Ae(o[l]);c||(l="value",k=="progress"&&v==null?e.removeAttribute("value"):v!=null&&(v!==e[l]||k=="progress"&&!v||k=="option"&&v!=y[l])&&ue(e,l,v,y[l],a),l="checked",w!=null&&w!=e[l]&&ue(e,l,w,y[l],a))}return e}function Re(e,t,n){try{if(typeof e=="function"){var s=typeof e.__u=="function";s&&e.__u(),s&&t==null||(e.__u=e(t))}else e.current=t}catch(a){O.__e(a,n)}}function nt(e,t,n){var s,a;if(O.unmount&&O.unmount(e),(s=e.ref)&&(s.current&&s.current!=e.__e||Re(s,null,t)),(s=e.__c)!=null){if(s.componentWillUnmount)try{s.componentWillUnmount()}catch(o){O.__e(o,t)}s.base=s.__P=null}if(s=e.__k)for(a=0;a<s.length;a++)s[a]&&nt(s[a],t,n||typeof e.type!="function");n||Ae(e.__e),e.__c=e.__=e.__e=void 0}function Gt(e,t,n){return this.constructor(e,n)}function ge(e,t,n){var s,a,o,i;t==document&&(t=document.documentElement),O.__&&O.__(e,t),a=(s=typeof n=="function")?null:n&&n.__k||t.__k,o=[],i=[],De(t,e=(!s&&n||t).__k=fe(me,null,[e]),a||se,se,t.namespaceURI,!s&&n?[n]:a?null:t.firstChild?pe.call(t.childNodes):null,o,!s&&n?n:a?a.__e:t.firstChild,s,i),et(o,e,i)}pe=Xe.slice,O={__e:function(e,t,n,s){for(var a,o,i;t=t.__;)if((a=t.__c)&&!a.__)try{if((o=a.constructor)&&o.getDerivedStateFromError!=null&&(a.setState(o.getDerivedStateFromError(e)),i=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(e,s||{}),i=a.__d),i)return a.__E=a}catch(c){e=c}throw e}},Je=0,Bt=function(e){return e!=null&&e.constructor===void 0},ne.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Z({},this.state),typeof e=="function"&&(e=e(Z({},n),this.props)),e&&Z(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Be(this))},ne.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Be(this))},ne.prototype.render=me,ee=[],Ve=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,qe=function(e,t){return e.__v.__b-t.__v.__b},_e.__r=0,Ge=/(PointerCapture)$|Capture$/i,Ie=0,Me=ze(!1),xe=ze(!0),jt=0;var ot=function(e,t,n,s){var a;t[0]=0;for(var o=1;o<t.length;o++){var i=t[o++],c=t[o]?(t[0]|=i?1:2,n[t[o++]]):t[++o];i===3?s[0]=c:i===4?s[1]=Object.assign(s[1]||{},c):i===5?(s[1]=s[1]||{})[t[++o]]=c:i===6?s[1][t[++o]]+=c+"":i?(a=e.apply(c,ot(e,c,n,["",null])),s.push(a),c[0]?t[0]|=2:(t[o-2]=0,t[o]=a)):s.push(c)}return s},st=new Map;function at(e){var t=st.get(this);return t||(t=new Map,st.set(this,t)),(t=ot(this,t.get(e)||(t.set(e,t=function(n){for(var s,a,o=1,i="",c="",d=[0],l=function(_){o===1&&(_||(i=i.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?d.push(0,_,i):o===3&&(_||i)?(d.push(3,_,i),o=2):o===2&&i==="..."&&_?d.push(4,_,0):o===2&&i&&!_?d.push(5,0,!0,i):o>=5&&((i||!_&&o===5)&&(d.push(o,0,i,a),o=6),_&&(d.push(o,_,0,a),o=6)),i=""},u=0;u<n.length;u++){u&&(o===1&&l(),l(u));for(var r=0;r<n[u].length;r++)s=n[u][r],o===1?s==="<"?(l(),d=[d],o=3):i+=s:o===4?i==="--"&&s===">"?(o=1,i=""):i=s+i[0]:c?s===c?c="":i+=s:s==='"'||s==="'"?c=s:s===">"?(l(),o=1):o&&(s==="="?(o=5,a=i,i=""):s==="/"&&(o<5||n[u][r+1]===">")?(l(),o===3&&(d=d[0]),o=d,(d=d[0]).push(2,0,o),o=0):s===" "||s===" "||s===`
2
- `||s==="\r"?(l(),o=2):i+=s),o===3&&i==="!--"&&(o=4,d=d[0])}return l(),d}(e)),t),arguments,[])).length>1?t:t[0]}var f=at.bind(fe);var oe,L,Pe,rt,ae=0,ht=[],U=O,it=U.__b,lt=U.__r,ct=U.diffed,ut=U.__c,dt=U.unmount,_t=U.__;function Oe(e,t){U.__h&&U.__h(L,e,ae||t),ae=0;var n=L.__H||(L.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function C(e){return ae=1,Xt(mt,e)}function Xt(e,t,n){var s=Oe(oe++,2);if(s.t=e,!s.__c&&(s.__=[n?n(t):mt(void 0,t),function(c){var d=s.__N?s.__N[0]:s.__[0],l=s.t(d,c);d!==l&&(s.__N=[l,s.__[1]],s.__c.setState({}))}],s.__c=L,!L.__f)){var a=function(c,d,l){if(!s.__c.__H)return!0;var u=s.__c.__H.__.filter(function(_){return!!_.__c});if(u.every(function(_){return!_.__N}))return!o||o.call(this,c,d,l);var r=s.__c.props!==c;return u.forEach(function(_){if(_.__N){var p=_.__[0];_.__=_.__N,_.__N=void 0,p!==_.__[0]&&(r=!0)}}),o&&o.call(this,c,d,l)||r};L.__f=!0;var o=L.shouldComponentUpdate,i=L.componentWillUpdate;L.componentWillUpdate=function(c,d,l){if(this.__e){var u=o;o=void 0,a(c,d,l),o=u}i&&i.call(this,c,d,l)},L.shouldComponentUpdate=a}return s.__N||s.__}function K(e,t){var n=Oe(oe++,3);!U.__s&&ft(n.__H,t)&&(n.__=e,n.u=t,L.__H.__h.push(n))}function X(e){return ae=5,re(function(){return{current:e}},[])}function re(e,t){var n=Oe(oe++,7);return ft(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function A(e,t){return ae=8,re(function(){return e},t)}function Qt(){for(var e;e=ht.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(ye),e.__H.__h.forEach(Fe),e.__H.__h=[]}catch(t){e.__H.__h=[],U.__e(t,e.__v)}}U.__b=function(e){L=null,it&&it(e)},U.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),_t&&_t(e,t)},U.__r=function(e){lt&&lt(e),oe=0;var t=(L=e.__c).__H;t&&(Pe===L?(t.__h=[],L.__h=[],t.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.forEach(ye),t.__h.forEach(Fe),t.__h=[],oe=0)),Pe=L},U.diffed=function(e){ct&&ct(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(ht.push(t)!==1&&rt===U.requestAnimationFrame||((rt=U.requestAnimationFrame)||Zt)(Qt)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),Pe=L=null},U.__c=function(e,t){t.some(function(n){try{n.__h.forEach(ye),n.__h=n.__h.filter(function(s){return!s.__||Fe(s)})}catch(s){t.some(function(a){a.__h&&(a.__h=[])}),t=[],U.__e(s,n.__v)}}),ut&&ut(e,t)},U.unmount=function(e){dt&&dt(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(s){try{ye(s)}catch(a){t=a}}),n.__H=void 0,t&&U.__e(t,n.__v))};var pt=typeof requestAnimationFrame=="function";function Zt(e){var t,n=function(){clearTimeout(s),pt&&cancelAnimationFrame(t),setTimeout(e)},s=setTimeout(n,35);pt&&(t=requestAnimationFrame(n))}function ye(e){var t=L,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),L=t}function Fe(e){var t=L;e.__c=e.__(),L=t}function ft(e,t){return!e||e.length!==t.length||t.some(function(n,s){return n!==e[s]})}function mt(e,t){return typeof t=="function"?t(e):t}function Yt(e){return e.replace(/_([a-z])/g,(t,n)=>n.toUpperCase())}function He(e){return e.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function ve(e){return Array.isArray(e)?e.map(ve):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[Yt(t),ve(n)])):e}function we(e){return Array.isArray(e)?e.map(we):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[He(t),we(n)])):e}function $e(){return"msg-"+Date.now()+"-"+Math.random().toString(36).substr(2,9)}function j(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}function gt(e){if(!e)return"";try{let t=new Date(e),s=new Date-t,a=Math.floor(s/6e4),o=Math.floor(s/36e5),i=Math.floor(s/864e5);return a<1?"Just now":a<60?`${a}m ago`:o<24?`${o}h ago`:i<7?`${i}d ago`:t.toLocaleDateString()}catch{return""}}function yt(e,t=null){if(t)return t(e);let n=j(e);return n=n.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),n=n.replace(/__(.+?)__/g,"<strong>$1</strong>"),n=n.replace(/\*(.+?)\*/g,"<em>$1</em>"),n=n.replace(/_(.+?)_/g,"<em>$1</em>"),n=n.replace(/`(.+?)`/g,"<code>$1</code>"),n=n.replace(/\[(.+?)\]\((.+?)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>'),n=n.replace(/\n/g,"<br>"),n}function vt(e=""){let t=n=>e?`${n}_${e}`:n;return{get(n){try{return localStorage.getItem(t(n))}catch{return null}},set(n,s){try{let a=t(n);s===null?localStorage.removeItem(a):localStorage.setItem(a,s)}catch{}}}}function wt(e="csrftoken"){let t=document.cookie.split(";");for(let s of t){let[a,o]=s.trim().split("=");if(a===e)return decodeURIComponent(o)}let n=document.querySelector('meta[name="csrf-token"]');return n?n.getAttribute("content"):null}function ke(e){if(e===0)return"0 B";let t=1024,n=["B","KB","MB","GB"],s=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,s)).toFixed(1))+" "+n[s]}function be(e){return e?e.startsWith("image/")?"\u{1F5BC}\uFE0F":e.startsWith("video/")?"\u{1F3AC}":e.startsWith("audio/")?"\u{1F3B5}":e.includes("pdf")?"\u{1F4D5}":e.includes("spreadsheet")||e.includes("excel")?"\u{1F4CA}":e.includes("document")||e.includes("word")?"\u{1F4DD}":e.includes("presentation")||e.includes("powerpoint")?"\u{1F4FD}\uFE0F":e.includes("zip")||e.includes("compressed")?"\u{1F5DC}\uFE0F":(e.includes("text/"),"\u{1F4C4}"):"\u{1F4C4}"}function $t({config:e,debugMode:t,isExpanded:n,isSpeaking:s,messagesCount:a,isLoading:o,currentAgent:i,onClose:c,onToggleExpand:d,onToggleDebug:l,onToggleTTS:u,onClear:r,onToggleSidebar:_}){let{title:p,primaryColor:v,embedded:w,showConversationSidebar:y,showClearButton:g,showDebugButton:k,enableDebugMode:I,showTTSButton:N,showExpandButton:J,enableTTS:z,elevenLabsApiKey:V,ttsProxyUrl:W}=e,B=V||W;return f`
3
- <div class="cw-header" style=${{backgroundColor:v}}>
1
+ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Ut=Object.getOwnPropertyDescriptor;var Kt=Object.getOwnPropertyNames;var Bt=Object.prototype.hasOwnProperty;var jt=(e,t,n)=>t in e?de(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var zt=(e,t)=>{for(var n in t)de(e,n,{get:t[n],enumerable:!0})},Jt=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Kt(t))!Bt.call(e,a)&&a!==n&&de(e,a,{get:()=>t[a],enumerable:!(s=Ut(t,a))||s.enumerable});return e};var Vt=e=>Jt(de({},"__esModule",{value:!0}),e);var Be=(e,t,n)=>(jt(e,typeof t!="symbol"?t+"":t,n),n);var Sn={};zt(Sn,{ChatWidget:()=>Me,default:()=>Cn});var fe,H,qe,qt,te,je,Ge,Xe,Qe,Pe,xe,Ee,Gt,oe={},Ye=[],Xt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,me=Array.isArray;function Y(e,t){for(var n in t)e[n]=t[n];return e}function Ae(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function ge(e,t,n){var s,a,o,i={};for(o in t)o=="key"?s=t[o]:o=="ref"?a=t[o]:i[o]=t[o];if(arguments.length>2&&(i.children=arguments.length>3?fe.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(o in e.defaultProps)i[o]===void 0&&(i[o]=e.defaultProps[o]);return _e(e,i,s,a,null)}function _e(e,t,n,s,a){var o={type:e,props:t,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:a??++qe,__i:-1,__u:0};return a==null&&H.vnode!=null&&H.vnode(o),o}function ye(e){return e.children}function se(e,t){this.props=e,this.context=t}function ne(e,t){if(t==null)return e.__?ne(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?ne(e):null}function Ze(e){var t,n;if((e=e.__)!=null&&e.__c!=null){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null){e.__e=e.__c.base=n.__e;break}return Ze(e)}}function ze(e){(!e.__d&&(e.__d=!0)&&te.push(e)&&!he.__r++||je!=H.debounceRendering)&&((je=H.debounceRendering)||Ge)(he)}function he(){for(var e,t,n,s,a,o,i,c=1;te.length;)te.length>c&&te.sort(Xe),e=te.shift(),c=te.length,e.__d&&(n=void 0,s=void 0,a=(s=(t=e).__v).__e,o=[],i=[],t.__P&&((n=Y({},s)).__v=s.__v+1,H.vnode&&H.vnode(n),Re(t.__P,n,s,t.__n,t.__P.namespaceURI,32&s.__u?[a]:null,o,a??ne(s),!!(32&s.__u),i),n.__v=s.__v,n.__.__k[n.__i]=n,nt(o,n,i),s.__e=s.__=null,n.__e!=a&&Ze(n)));he.__r=0}function et(e,t,n,s,a,o,i,c,u,l,p){var r,d,h,m,w,y,g,k=s&&s.__k||Ye,E=t.length;for(u=Qt(n,t,k,u,E),r=0;r<E;r++)(h=n.__k[r])!=null&&(d=h.__i==-1?oe:k[h.__i]||oe,h.__i=r,y=Re(e,h,d,a,o,i,c,u,l,p),m=h.__e,h.ref&&d.ref!=h.ref&&(d.ref&&De(d.ref,null,h),p.push(h.ref,h.__c||m,h)),w==null&&m!=null&&(w=m),(g=!!(4&h.__u))||d.__k===h.__k?u=tt(h,u,e,g):typeof h.type=="function"&&y!==void 0?u=y:m&&(u=m.nextSibling),h.__u&=-7);return n.__e=w,u}function Qt(e,t,n,s,a){var o,i,c,u,l,p=n.length,r=p,d=0;for(e.__k=new Array(a),o=0;o<a;o++)(i=t[o])!=null&&typeof i!="boolean"&&typeof i!="function"?(typeof i=="string"||typeof i=="number"||typeof i=="bigint"||i.constructor==String?i=e.__k[o]=_e(null,i,null,null,null):me(i)?i=e.__k[o]=_e(ye,{children:i},null,null,null):i.constructor===void 0&&i.__b>0?i=e.__k[o]=_e(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):e.__k[o]=i,u=o+d,i.__=e,i.__b=e.__b+1,c=null,(l=i.__i=Yt(i,n,u,r))!=-1&&(r--,(c=n[l])&&(c.__u|=2)),c==null||c.__v==null?(l==-1&&(a>p?d--:a<p&&d++),typeof i.type!="function"&&(i.__u|=4)):l!=u&&(l==u-1?d--:l==u+1?d++:(l>u?d--:d++,i.__u|=4))):e.__k[o]=null;if(r)for(o=0;o<p;o++)(c=n[o])!=null&&!(2&c.__u)&&(c.__e==s&&(s=ne(c)),ot(c,c));return s}function tt(e,t,n,s){var a,o;if(typeof e.type=="function"){for(a=e.__k,o=0;a&&o<a.length;o++)a[o]&&(a[o].__=e,t=tt(a[o],t,n,s));return t}e.__e!=t&&(s&&(t&&e.type&&!t.parentNode&&(t=ne(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function Yt(e,t,n,s){var a,o,i,c=e.key,u=e.type,l=t[n],p=l!=null&&(2&l.__u)==0;if(l===null&&c==null||p&&c==l.key&&u==l.type)return n;if(s>(p?1:0)){for(a=n-1,o=n+1;a>=0||o<t.length;)if((l=t[i=a>=0?a--:o++])!=null&&!(2&l.__u)&&c==l.key&&u==l.type)return i}return-1}function Je(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||Xt.test(t)?n:n+"px"}function pe(e,t,n,s,a){var o,i;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof s=="string"&&(e.style.cssText=s=""),s)for(t in s)n&&t in n||Je(e.style,t,"");if(n)for(t in n)s&&n[t]==s[t]||Je(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")o=t!=(t=t.replace(Qe,"$1")),i=t.toLowerCase(),t=i in e||t=="onFocusOut"||t=="onFocusIn"?i.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?s?n.u=s.u:(n.u=Pe,e.addEventListener(t,o?Ee:xe,o)):e.removeEventListener(t,o?Ee:xe,o);else{if(a=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function Ve(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t.t==null)t.t=Pe++;else if(t.t<n.u)return;return n(H.event?H.event(t):t)}}}function Re(e,t,n,s,a,o,i,c,u,l){var p,r,d,h,m,w,y,g,k,E,O,B,V,q,j,z,G,N=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(u=!!(32&n.__u),o=[c=t.__e=n.__e]),(p=H.__b)&&p(t);e:if(typeof N=="function")try{if(g=t.props,k="prototype"in N&&N.prototype.render,E=(p=N.contextType)&&s[p.__c],O=p?E?E.props.value:p.__:s,n.__c?y=(r=t.__c=n.__c).__=r.__E:(k?t.__c=r=new N(g,O):(t.__c=r=new se(g,O),r.constructor=N,r.render=en),E&&E.sub(r),r.state||(r.state={}),r.__n=s,d=r.__d=!0,r.__h=[],r._sb=[]),k&&r.__s==null&&(r.__s=r.state),k&&N.getDerivedStateFromProps!=null&&(r.__s==r.state&&(r.__s=Y({},r.__s)),Y(r.__s,N.getDerivedStateFromProps(g,r.__s))),h=r.props,m=r.state,r.__v=t,d)k&&N.getDerivedStateFromProps==null&&r.componentWillMount!=null&&r.componentWillMount(),k&&r.componentDidMount!=null&&r.__h.push(r.componentDidMount);else{if(k&&N.getDerivedStateFromProps==null&&g!==h&&r.componentWillReceiveProps!=null&&r.componentWillReceiveProps(g,O),t.__v==n.__v||!r.__e&&r.shouldComponentUpdate!=null&&r.shouldComponentUpdate(g,r.__s,O)===!1){for(t.__v!=n.__v&&(r.props=g,r.state=r.__s,r.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(_){_&&(_.__=t)}),B=0;B<r._sb.length;B++)r.__h.push(r._sb[B]);r._sb=[],r.__h.length&&i.push(r);break e}r.componentWillUpdate!=null&&r.componentWillUpdate(g,r.__s,O),k&&r.componentDidUpdate!=null&&r.__h.push(function(){r.componentDidUpdate(h,m,w)})}if(r.context=O,r.props=g,r.__P=e,r.__e=!1,V=H.__r,q=0,k){for(r.state=r.__s,r.__d=!1,V&&V(t),p=r.render(r.props,r.state,r.context),j=0;j<r._sb.length;j++)r.__h.push(r._sb[j]);r._sb=[]}else do r.__d=!1,V&&V(t),p=r.render(r.props,r.state,r.context),r.state=r.__s;while(r.__d&&++q<25);r.state=r.__s,r.getChildContext!=null&&(s=Y(Y({},s),r.getChildContext())),k&&!d&&r.getSnapshotBeforeUpdate!=null&&(w=r.getSnapshotBeforeUpdate(h,m)),z=p,p!=null&&p.type===ye&&p.key==null&&(z=st(p.props.children)),c=et(e,me(z)?z:[z],t,n,s,a,o,i,c,u,l),r.base=t.__e,t.__u&=-161,r.__h.length&&i.push(r),y&&(r.__E=r.__=null)}catch(_){if(t.__v=null,u||o!=null)if(_.then){for(t.__u|=u?160:128;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;o[o.indexOf(c)]=null,t.__e=c}else{for(G=o.length;G--;)Ae(o[G]);Ie(t)}else t.__e=n.__e,t.__k=n.__k,_.then||Ie(t);H.__e(_,t,n)}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=Zt(n.__e,t,n,s,a,o,i,u,l);return(p=H.diffed)&&p(t),128&t.__u?void 0:c}function Ie(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(Ie)}function nt(e,t,n){for(var s=0;s<n.length;s++)De(n[s],n[++s],n[++s]);H.__c&&H.__c(t,e),e.some(function(a){try{e=a.__h,a.__h=[],e.some(function(o){o.call(a)})}catch(o){H.__e(o,a.__v)}})}function st(e){return typeof e!="object"||e==null||e.__b&&e.__b>0?e:me(e)?e.map(st):Y({},e)}function Zt(e,t,n,s,a,o,i,c,u){var l,p,r,d,h,m,w,y=n.props||oe,g=t.props,k=t.type;if(k=="svg"?a="http://www.w3.org/2000/svg":k=="math"?a="http://www.w3.org/1998/Math/MathML":a||(a="http://www.w3.org/1999/xhtml"),o!=null){for(l=0;l<o.length;l++)if((h=o[l])&&"setAttribute"in h==!!k&&(k?h.localName==k:h.nodeType==3)){e=h,o[l]=null;break}}if(e==null){if(k==null)return document.createTextNode(g);e=document.createElementNS(a,k,g.is&&g),c&&(H.__m&&H.__m(t,o),c=!1),o=null}if(k==null)y===g||c&&e.data==g||(e.data=g);else{if(o=o&&fe.call(e.childNodes),!c&&o!=null)for(y={},l=0;l<e.attributes.length;l++)y[(h=e.attributes[l]).name]=h.value;for(l in y)if(h=y[l],l!="children"){if(l=="dangerouslySetInnerHTML")r=h;else if(!(l in g)){if(l=="value"&&"defaultValue"in g||l=="checked"&&"defaultChecked"in g)continue;pe(e,l,null,h,a)}}for(l in g)h=g[l],l=="children"?d=h:l=="dangerouslySetInnerHTML"?p=h:l=="value"?m=h:l=="checked"?w=h:c&&typeof h!="function"||y[l]===h||pe(e,l,h,y[l],a);if(p)c||r&&(p.__html==r.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),t.__k=[];else if(r&&(e.innerHTML=""),et(t.type=="template"?e.content:e,me(d)?d:[d],t,n,s,k=="foreignObject"?"http://www.w3.org/1999/xhtml":a,o,i,o?o[0]:n.__k&&ne(n,0),c,u),o!=null)for(l=o.length;l--;)Ae(o[l]);c||(l="value",k=="progress"&&m==null?e.removeAttribute("value"):m!=null&&(m!==e[l]||k=="progress"&&!m||k=="option"&&m!=y[l])&&pe(e,l,m,y[l],a),l="checked",w!=null&&w!=e[l]&&pe(e,l,w,y[l],a))}return e}function De(e,t,n){try{if(typeof e=="function"){var s=typeof e.__u=="function";s&&e.__u(),s&&t==null||(e.__u=e(t))}else e.current=t}catch(a){H.__e(a,n)}}function ot(e,t,n){var s,a;if(H.unmount&&H.unmount(e),(s=e.ref)&&(s.current&&s.current!=e.__e||De(s,null,t)),(s=e.__c)!=null){if(s.componentWillUnmount)try{s.componentWillUnmount()}catch(o){H.__e(o,t)}s.base=s.__P=null}if(s=e.__k)for(a=0;a<s.length;a++)s[a]&&ot(s[a],t,n||typeof e.type!="function");n||Ae(e.__e),e.__c=e.__=e.__e=void 0}function en(e,t,n){return this.constructor(e,n)}function ve(e,t,n){var s,a,o,i;t==document&&(t=document.documentElement),H.__&&H.__(e,t),a=(s=typeof n=="function")?null:n&&n.__k||t.__k,o=[],i=[],Re(t,e=(!s&&n||t).__k=ge(ye,null,[e]),a||oe,oe,t.namespaceURI,!s&&n?[n]:a?null:t.firstChild?fe.call(t.childNodes):null,o,!s&&n?n:a?a.__e:t.firstChild,s,i),nt(o,e,i)}fe=Ye.slice,H={__e:function(e,t,n,s){for(var a,o,i;t=t.__;)if((a=t.__c)&&!a.__)try{if((o=a.constructor)&&o.getDerivedStateFromError!=null&&(a.setState(o.getDerivedStateFromError(e)),i=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(e,s||{}),i=a.__d),i)return a.__E=a}catch(c){e=c}throw e}},qe=0,qt=function(e){return e!=null&&e.constructor===void 0},se.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Y({},this.state),typeof e=="function"&&(e=e(Y({},n),this.props)),e&&Y(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),ze(this))},se.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),ze(this))},se.prototype.render=ye,te=[],Ge=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Xe=function(e,t){return e.__v.__b-t.__v.__b},he.__r=0,Qe=/(PointerCapture)$|Capture$/i,Pe=0,xe=Ve(!1),Ee=Ve(!0),Gt=0;var rt=function(e,t,n,s){var a;t[0]=0;for(var o=1;o<t.length;o++){var i=t[o++],c=t[o]?(t[0]|=i?1:2,n[t[o++]]):t[++o];i===3?s[0]=c:i===4?s[1]=Object.assign(s[1]||{},c):i===5?(s[1]=s[1]||{})[t[++o]]=c:i===6?s[1][t[++o]]+=c+"":i?(a=e.apply(c,rt(e,c,n,["",null])),s.push(a),c[0]?t[0]|=2:(t[o-2]=0,t[o]=a)):s.push(c)}return s},at=new Map;function it(e){var t=at.get(this);return t||(t=new Map,at.set(this,t)),(t=rt(this,t.get(e)||(t.set(e,t=function(n){for(var s,a,o=1,i="",c="",u=[0],l=function(d){o===1&&(d||(i=i.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?u.push(0,d,i):o===3&&(d||i)?(u.push(3,d,i),o=2):o===2&&i==="..."&&d?u.push(4,d,0):o===2&&i&&!d?u.push(5,0,!0,i):o>=5&&((i||!d&&o===5)&&(u.push(o,0,i,a),o=6),d&&(u.push(o,d,0,a),o=6)),i=""},p=0;p<n.length;p++){p&&(o===1&&l(),l(p));for(var r=0;r<n[p].length;r++)s=n[p][r],o===1?s==="<"?(l(),u=[u],o=3):i+=s:o===4?i==="--"&&s===">"?(o=1,i=""):i=s+i[0]:c?s===c?c="":i+=s:s==='"'||s==="'"?c=s:s===">"?(l(),o=1):o&&(s==="="?(o=5,a=i,i=""):s==="/"&&(o<5||n[p][r+1]===">")?(l(),o===3&&(u=u[0]),o=u,(u=u[0]).push(2,0,o),o=0):s===" "||s===" "||s===`
2
+ `||s==="\r"?(l(),o=2):i+=s),o===3&&i==="!--"&&(o=4,u=u[0])}return l(),u}(e)),t),arguments,[])).length>1?t:t[0]}var f=it.bind(ge);var ae,W,Fe,lt,re=0,mt=[],U=H,ct=U.__b,ut=U.__r,dt=U.diffed,pt=U.__c,_t=U.unmount,ht=U.__;function Oe(e,t){U.__h&&U.__h(W,e,re||t),re=0;var n=W.__H||(W.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function C(e){return re=1,tn(yt,e)}function tn(e,t,n){var s=Oe(ae++,2);if(s.t=e,!s.__c&&(s.__=[n?n(t):yt(void 0,t),function(c){var u=s.__N?s.__N[0]:s.__[0],l=s.t(u,c);u!==l&&(s.__N=[l,s.__[1]],s.__c.setState({}))}],s.__c=W,!W.__f)){var a=function(c,u,l){if(!s.__c.__H)return!0;var p=s.__c.__H.__.filter(function(d){return!!d.__c});if(p.every(function(d){return!d.__N}))return!o||o.call(this,c,u,l);var r=s.__c.props!==c;return p.forEach(function(d){if(d.__N){var h=d.__[0];d.__=d.__N,d.__N=void 0,h!==d.__[0]&&(r=!0)}}),o&&o.call(this,c,u,l)||r};W.__f=!0;var o=W.shouldComponentUpdate,i=W.componentWillUpdate;W.componentWillUpdate=function(c,u,l){if(this.__e){var p=o;o=void 0,a(c,u,l),o=p}i&&i.call(this,c,u,l)},W.shouldComponentUpdate=a}return s.__N||s.__}function K(e,t){var n=Oe(ae++,3);!U.__s&&gt(n.__H,t)&&(n.__=e,n.u=t,W.__H.__h.push(n))}function X(e){return re=5,ie(function(){return{current:e}},[])}function ie(e,t){var n=Oe(ae++,7);return gt(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function A(e,t){return re=8,ie(function(){return e},t)}function nn(){for(var e;e=mt.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(we),e.__H.__h.forEach(He),e.__H.__h=[]}catch(t){e.__H.__h=[],U.__e(t,e.__v)}}U.__b=function(e){W=null,ct&&ct(e)},U.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),ht&&ht(e,t)},U.__r=function(e){ut&&ut(e),ae=0;var t=(W=e.__c).__H;t&&(Fe===W?(t.__h=[],W.__h=[],t.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.forEach(we),t.__h.forEach(He),t.__h=[],ae=0)),Fe=W},U.diffed=function(e){dt&&dt(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(mt.push(t)!==1&&lt===U.requestAnimationFrame||((lt=U.requestAnimationFrame)||sn)(nn)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),Fe=W=null},U.__c=function(e,t){t.some(function(n){try{n.__h.forEach(we),n.__h=n.__h.filter(function(s){return!s.__||He(s)})}catch(s){t.some(function(a){a.__h&&(a.__h=[])}),t=[],U.__e(s,n.__v)}}),pt&&pt(e,t)},U.unmount=function(e){_t&&_t(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(s){try{we(s)}catch(a){t=a}}),n.__H=void 0,t&&U.__e(t,n.__v))};var ft=typeof requestAnimationFrame=="function";function sn(e){var t,n=function(){clearTimeout(s),ft&&cancelAnimationFrame(t),setTimeout(e)},s=setTimeout(n,35);ft&&(t=requestAnimationFrame(n))}function we(e){var t=W,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),W=t}function He(e){var t=W;e.__c=e.__(),W=t}function gt(e,t){return!e||e.length!==t.length||t.some(function(n,s){return n!==e[s]})}function yt(e,t){return typeof t=="function"?t(e):t}function on(e){return e.replace(/_([a-z])/g,(t,n)=>n.toUpperCase())}function Ne(e){return e.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function $e(e){return Array.isArray(e)?e.map($e):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[on(t),$e(n)])):e}function ke(e){return Array.isArray(e)?e.map(ke):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[Ne(t),ke(n)])):e}function be(){return"msg-"+Date.now()+"-"+Math.random().toString(36).substr(2,9)}function J(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}function vt(e){if(!e)return"";try{let t=new Date(e),s=new Date-t,a=Math.floor(s/6e4),o=Math.floor(s/36e5),i=Math.floor(s/864e5);return a<1?"Just now":a<60?`${a}m ago`:o<24?`${o}h ago`:i<7?`${i}d ago`:t.toLocaleDateString()}catch{return""}}function wt(e,t=null){if(t)return t(e);let n=J(e);return n=n.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),n=n.replace(/__(.+?)__/g,"<strong>$1</strong>"),n=n.replace(/\*(.+?)\*/g,"<em>$1</em>"),n=n.replace(/_(.+?)_/g,"<em>$1</em>"),n=n.replace(/`(.+?)`/g,"<code>$1</code>"),n=n.replace(/\[(.+?)\]\((.+?)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>'),n=n.replace(/\n/g,"<br>"),n}function $t(e=""){let t=n=>e?`${n}_${e}`:n;return{get(n){try{return localStorage.getItem(t(n))}catch{return null}},set(n,s){try{let a=t(n);s===null?localStorage.removeItem(a):localStorage.setItem(a,s)}catch{}}}}function kt(e="csrftoken"){let t=document.cookie.split(";");for(let s of t){let[a,o]=s.trim().split("=");if(a===e)return decodeURIComponent(o)}let n=document.querySelector('meta[name="csrf-token"]');return n?n.getAttribute("content"):null}function Ce(e){if(e===0)return"0 B";let t=1024,n=["B","KB","MB","GB"],s=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,s)).toFixed(1))+" "+n[s]}function Se(e){return e?e.startsWith("image/")?"\u{1F5BC}\uFE0F":e.startsWith("video/")?"\u{1F3AC}":e.startsWith("audio/")?"\u{1F3B5}":e.includes("pdf")?"\u{1F4D5}":e.includes("spreadsheet")||e.includes("excel")?"\u{1F4CA}":e.includes("document")||e.includes("word")?"\u{1F4DD}":e.includes("presentation")||e.includes("powerpoint")?"\u{1F4FD}\uFE0F":e.includes("zip")||e.includes("compressed")?"\u{1F5DC}\uFE0F":(e.includes("text/"),"\u{1F4C4}"):"\u{1F4C4}"}function an(e){if(!e||typeof e!="string")return 0;let t=e.replace("#","");if(t.length!==6&&t.length!==3)return 0;let n=t.length===3?t.split("").map(c=>c+c).join(""):t,s=parseInt(n.substr(0,2),16)/255,a=parseInt(n.substr(2,2),16)/255,o=parseInt(n.substr(4,2),16)/255,i=c=>c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4);return .2126*i(s)+.7152*i(a)+.0722*i(o)}function bt(e){return an(e)>.179?"#000000":"#ffffff"}function Ct({config:e,debugMode:t,isExpanded:n,isSpeaking:s,messagesCount:a,isLoading:o,currentAgent:i,onClose:c,onToggleExpand:u,onToggleDebug:l,onToggleTTS:p,onClear:r,onToggleSidebar:d}){let{title:h,primaryColor:m,embedded:w,showConversationSidebar:y,showClearButton:g,showDebugButton:k,enableDebugMode:E,showTTSButton:O,showExpandButton:B,enableTTS:V,elevenLabsApiKey:q,ttsProxyUrl:j}=e,z=q||j;return f`
3
+ <div class="cw-header" style=${{backgroundColor:m}}>
4
4
  ${y&&f`
5
5
  <button
6
6
  class="cw-header-btn cw-hamburger"
7
- onClick=${_}
7
+ onClick=${d}
8
8
  title="Conversations"
9
9
  >
10
10
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16">
@@ -16,11 +16,11 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
16
16
  `}
17
17
 
18
18
  <div class="cw-title-container">
19
- <span class="cw-title">${j(p)}</span>
19
+ <span class="cw-title">${J(h)}</span>
20
20
  ${i&&f`
21
21
  <span class="cw-current-agent" title="Currently active agent">
22
22
  <span class="cw-agent-indicator">🤖</span>
23
- <span class="cw-agent-name">${j(i.name||i.key)}</span>
23
+ <span class="cw-agent-name">${J(i.name||i.key)}</span>
24
24
  </span>
25
25
  `}
26
26
  </div>
@@ -35,7 +35,7 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
35
35
  >🗑️</button>
36
36
  `}
37
37
 
38
- ${k&&I&&f`
38
+ ${k&&E&&f`
39
39
  <button
40
40
  class="cw-header-btn ${t?"cw-btn-active":""}"
41
41
  onClick=${l}
@@ -43,18 +43,18 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
43
43
  >🐛</button>
44
44
  `}
45
45
 
46
- ${N&&B&&f`
46
+ ${O&&z&&f`
47
47
  <button
48
- class="cw-header-btn ${z?"cw-btn-active":""}"
49
- onClick=${u}
48
+ class="cw-header-btn ${V?"cw-btn-active":""}"
49
+ onClick=${p}
50
50
  title="TTS"
51
- >${z?"\u{1F50A}":"\u{1F507}"}</button>
51
+ >${V?"\u{1F50A}":"\u{1F507}"}</button>
52
52
  `}
53
53
 
54
- ${J&&!w&&f`
54
+ ${B&&!w&&f`
55
55
  <button
56
56
  class="cw-header-btn"
57
- onClick=${d}
57
+ onClick=${u}
58
58
  title=${n?"Minimize":"Expand"}
59
59
  >${n?"\u2296":"\u2295"}</button>
60
60
  `}
@@ -68,7 +68,7 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
68
68
  `}
69
69
  </div>
70
70
  </div>
71
- `}function Ne({msg:e,show:t,onToggle:n}){return t?f`
71
+ `}function Le({msg:e,show:t,onToggle:n}){return t?f`
72
72
  <div class="cw-debug-payload">
73
73
  <button class="cw-debug-payload-close" onClick=${n}>×</button>
74
74
  <pre class="cw-debug-payload-content">${JSON.stringify(e,null,2)}</pre>
@@ -79,7 +79,7 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
79
79
  onClick=${n}
80
80
  title="Show message payload"
81
81
  >{ }</button>
82
- `}function kt({onEdit:e,onRetry:t,isLoading:n,position:s,showEdit:a=!0}){return n?null:f`
82
+ `}function St({onEdit:e,onRetry:t,isLoading:n,position:s,showEdit:a=!0}){return n?null:f`
83
83
  <div class="cw-message-actions cw-message-actions-${s||"left"}">
84
84
  ${a&&f`
85
85
  <button
@@ -105,14 +105,14 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
105
105
  </svg>
106
106
  </button>
107
107
  </div>
108
- `}function en({initialContent:e,onSave:t,onCancel:n}){let[s,a]=C(e),o=X(null);return K(()=>{o.current&&(o.current.focus(),o.current.setSelectionRange(s.length,s.length),o.current.style.height="auto",o.current.style.height=o.current.scrollHeight+"px")},[]),f`
108
+ `}function rn({initialContent:e,onSave:t,onCancel:n}){let[s,a]=C(e),o=X(null);return K(()=>{o.current&&(o.current.focus(),o.current.setSelectionRange(s.length,s.length),o.current.style.height="auto",o.current.style.height=o.current.scrollHeight+"px")},[]),f`
109
109
  <div class="cw-inline-edit">
110
110
  <textarea
111
111
  ref=${o}
112
112
  class="cw-inline-edit-input"
113
113
  value=${s}
114
- onInput=${d=>{a(d.target.value),d.target.style.height="auto",d.target.style.height=d.target.scrollHeight+"px"}}
115
- onKeyDown=${d=>{d.key==="Enter"&&!d.shiftKey?(d.preventDefault(),s.trim()&&t(s.trim())):d.key==="Escape"&&n()}}
114
+ onInput=${u=>{a(u.target.value),u.target.style.height="auto",u.target.style.height=u.target.scrollHeight+"px"}}
115
+ onKeyDown=${u=>{u.key==="Enter"&&!u.shiftKey?(u.preventDefault(),s.trim()&&t(s.trim())):u.key==="Escape"&&n()}}
116
116
  rows="1"
117
117
  />
118
118
  <div class="cw-inline-edit-actions">
@@ -129,27 +129,27 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
129
129
  >Save & Send</button>
130
130
  </div>
131
131
  </div>
132
- `}function bt({msg:e,debugMode:t,markdownParser:n,onEdit:s,onRetry:a,isLoading:o,messageIndex:i}){let[c,d]=C(!1),[l,u]=C(!1),[r,_]=C(!1),p=e.role==="user",v=e.role==="system",w=e.type==="tool_call",y=e.type==="tool_result",g=e.type==="error",k=e.type==="sub_agent_start",I=e.type==="sub_agent_end",N=e.type==="agent_context";if(v&&!t)return null;if(k||I||N)return f`
133
- <div class="cw-agent-context ${k?"cw-agent-delegating":""} ${I?"cw-agent-returned":""}" style="position: relative;">
134
- <span class="cw-agent-context-icon">${k?"\u{1F517}":I?"\u2713":"\u{1F916}"}</span>
132
+ `}function Tt({msg:e,debugMode:t,markdownParser:n,onEdit:s,onRetry:a,isLoading:o,messageIndex:i}){let[c,u]=C(!1),[l,p]=C(!1),[r,d]=C(!1),h=e.role==="user",m=e.role==="system",w=e.type==="tool_call",y=e.type==="tool_result",g=e.type==="error",k=e.type==="sub_agent_start",E=e.type==="sub_agent_end",O=e.type==="agent_context";if(m&&!t)return null;if(k||E||O)return f`
133
+ <div class="cw-agent-context ${k?"cw-agent-delegating":""} ${E?"cw-agent-returned":""}" style="position: relative;">
134
+ <span class="cw-agent-context-icon">${k?"\u{1F517}":E?"\u2713":"\u{1F916}"}</span>
135
135
  <span class="cw-agent-context-text">${e.content}</span>
136
136
  ${e.metadata?.agentName&&f`
137
137
  <span class="cw-agent-context-name">${e.metadata.agentName}</span>
138
138
  `}
139
- ${t&&f`<${Ne} msg=${e} show=${l} onToggle=${()=>u(!l)} />`}
139
+ ${t&&f`<${Le} msg=${e} show=${l} onToggle=${()=>p(!l)} />`}
140
140
  </div>
141
- `;if(w||y){let S=e.metadata?.arguments||e.metadata?.result,E=$=>{if(typeof $=="string")try{return JSON.stringify(JSON.parse($),null,2)}catch{return $}return JSON.stringify($,null,2)};return f`
141
+ `;if(w||y){let S=e.metadata?.arguments||e.metadata?.result,I=$=>{if(typeof $=="string")try{return JSON.stringify(JSON.parse($),null,2)}catch{return $}return JSON.stringify($,null,2)};return f`
142
142
  <div class="cw-tool-message ${y?"cw-tool-result":"cw-tool-call"}" style="position: relative;">
143
- <span class="cw-tool-label" onClick=${()=>S&&d(!c)}>
143
+ <span class="cw-tool-label" onClick=${()=>S&&u(!c)}>
144
144
  ${e.content}
145
145
  ${S&&f`<span class="cw-tool-expand">${c?"\u25BC":"\u25B6"}</span>`}
146
146
  </span>
147
147
  ${c&&S&&f`
148
- <pre class="cw-tool-details">${j(E(w?e.metadata.arguments:e.metadata.result))}</pre>
148
+ <pre class="cw-tool-details">${J(I(w?e.metadata.arguments:e.metadata.result))}</pre>
149
149
  `}
150
- ${t&&f`<${Ne} msg=${e} show=${l} onToggle=${()=>u(!l)} />`}
150
+ ${t&&f`<${Le} msg=${e} show=${l} onToggle=${()=>p(!l)} />`}
151
151
  </div>
152
- `}let J=["cw-message",p&&"cw-message-user",g&&"cw-message-error"].filter(Boolean).join(" "),z=`cw-message-row ${p?"cw-message-row-user":""}`,V=e.role==="assistant"?yt(e.content,n):j(e.content),W=e.files&&e.files.length>0,B=()=>W?f`
152
+ `}let B=["cw-message",h&&"cw-message-user",g&&"cw-message-error"].filter(Boolean).join(" "),V=`cw-message-row ${h?"cw-message-row-user":""}`,q=e.role==="assistant"?wt(e.content,n):J(e.content),j=e.files&&e.files.length>0,z=()=>j?f`
153
153
  <div class="cw-message-attachments">
154
154
  ${e.files.map(S=>S.type&&S.type.startsWith("image/")?f`
155
155
  <a class="cw-attachment-thumbnail" href=${S.url} target="_blank" title=${S.name}>
@@ -157,76 +157,76 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
157
157
  </a>
158
158
  `:f`
159
159
  <a class="cw-attachment-file" href=${S.url} target="_blank" title=${S.name}>
160
- <span class="cw-attachment-icon">${be(S.type)}</span>
160
+ <span class="cw-attachment-icon">${Se(S.type)}</span>
161
161
  <span class="cw-attachment-info">
162
162
  <span class="cw-attachment-name">${S.name}</span>
163
- <span class="cw-attachment-size">${ke(S.size)}</span>
163
+ <span class="cw-attachment-size">${Ce(S.size)}</span>
164
164
  </span>
165
165
  </a>
166
166
  `)}
167
167
  </div>
168
- `:null,q=S=>{_(!1),s&&s(i,S)},H=()=>{a&&a(i)};if(p&&r)return f`
169
- <div class=${z} style="position: relative;">
170
- ${B()}
171
- <${en}
168
+ `:null,G=S=>{d(!1),s&&s(i,S)},N=()=>{a&&a(i)};if(h&&r)return f`
169
+ <div class=${V} style="position: relative;">
170
+ ${z()}
171
+ <${rn}
172
172
  initialContent=${e.content}
173
- onSave=${q}
174
- onCancel=${()=>_(!1)}
173
+ onSave=${G}
174
+ onCancel=${()=>d(!1)}
175
175
  />
176
176
  </div>
177
- `;let h=p&&s&&a,T=e.role==="assistant"&&a&&!o;return f`
178
- <div class="${z} ${h||T?"cw-message-row-with-actions":""}">
179
- ${B()}
180
- ${h&&f`
177
+ `;let _=h&&s&&a,M=e.role==="assistant"&&a&&!o;return f`
178
+ <div class="${V} ${_||M?"cw-message-row-with-actions":""}">
179
+ ${z()}
180
+ ${_&&f`
181
181
  <div class="cw-user-actions-wrapper">
182
- <${kt}
183
- onEdit=${()=>_(!0)}
184
- onRetry=${H}
182
+ <${St}
183
+ onEdit=${()=>d(!0)}
184
+ onRetry=${N}
185
185
  isLoading=${o}
186
186
  position="left"
187
187
  showEdit=${!0}
188
188
  />
189
- <div class=${J} dangerouslySetInnerHTML=${{__html:V}} />
189
+ <div class=${B} dangerouslySetInnerHTML=${{__html:q}} />
190
190
  </div>
191
191
  `}
192
- ${!h&&f`
193
- <div class=${J} dangerouslySetInnerHTML=${{__html:V}} />
192
+ ${!_&&f`
193
+ <div class=${B} dangerouslySetInnerHTML=${{__html:q}} />
194
194
  `}
195
- ${T&&f`
196
- <${kt}
197
- onRetry=${H}
195
+ ${M&&f`
196
+ <${St}
197
+ onRetry=${N}
198
198
  isLoading=${o}
199
199
  position="right"
200
200
  showEdit=${!1}
201
201
  />
202
202
  `}
203
- ${t&&f`<${Ne} msg=${e} show=${l} onToggle=${()=>u(!l)} />`}
203
+ ${t&&f`<${Le} msg=${e} show=${l} onToggle=${()=>p(!l)} />`}
204
204
  </div>
205
- `}function Ct({messages:e,isLoading:t,hasMoreMessages:n,loadingMoreMessages:s,onLoadMore:a,onEditMessage:o,onRetryMessage:i,debugMode:c,markdownParser:d,emptyStateTitle:l,emptyStateMessage:u}){let r=X(null),_=X(!0),p=w=>{let y=w.target,g=y.scrollHeight-y.scrollTop-y.clientHeight<100;if(_.current=g,y.scrollTop<50&&n&&!s){let k=y.scrollHeight;a().then(()=>{let I=y.scrollHeight;y.scrollTop=I-k+y.scrollTop})}};K(()=>{let w=r.current;w&&_.current&&requestAnimationFrame(()=>{w.scrollTop=w.scrollHeight})},[e,t]),K(()=>{let w=r.current;w&&e.length<=2&&(_.current=!0,requestAnimationFrame(()=>{w.scrollTop=w.scrollHeight}))},[e.length]);let v=e.length===0;return f`
206
- <div class="cw-messages" ref=${r} onScroll=${p}>
207
- ${v&&f`
205
+ `}function Mt({messages:e,isLoading:t,hasMoreMessages:n,loadingMoreMessages:s,onLoadMore:a,onEditMessage:o,onRetryMessage:i,debugMode:c,markdownParser:u,emptyStateTitle:l,emptyStateMessage:p}){let r=X(null),d=X(!0),h=w=>{let y=w.target,g=y.scrollHeight-y.scrollTop-y.clientHeight<100;if(d.current=g,y.scrollTop<50&&n&&!s){let k=y.scrollHeight;a().then(()=>{let E=y.scrollHeight;y.scrollTop=E-k+y.scrollTop})}};K(()=>{let w=r.current;w&&d.current&&requestAnimationFrame(()=>{w.scrollTop=w.scrollHeight})},[e,t]),K(()=>{let w=r.current;w&&e.length<=2&&(d.current=!0,requestAnimationFrame(()=>{w.scrollTop=w.scrollHeight}))},[e.length]);let m=e.length===0;return f`
206
+ <div class="cw-messages" ref=${r} onScroll=${h}>
207
+ ${m&&f`
208
208
  <div class="cw-empty-state">
209
209
  <svg class="cw-empty-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
210
210
  <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
211
211
  </svg>
212
- <h3>${j(l)}</h3>
213
- <p>${j(u)}</p>
212
+ <h3>${J(l)}</h3>
213
+ <p>${J(p)}</p>
214
214
  </div>
215
215
  `}
216
216
 
217
- ${!v&&n&&f`
217
+ ${!m&&n&&f`
218
218
  <div class="cw-load-more" onClick=${a}>
219
219
  ${s?f`<span class="cw-spinner"></span><span>Loading...</span>`:f`<span>↑ Scroll up or click to load older messages</span>`}
220
220
  </div>
221
221
  `}
222
222
 
223
223
  ${e.map((w,y)=>f`
224
- <${bt}
224
+ <${Tt}
225
225
  key=${w.id}
226
226
  msg=${w}
227
227
  messageIndex=${y}
228
228
  debugMode=${c}
229
- markdownParser=${d}
229
+ markdownParser=${u}
230
230
  onEdit=${o}
231
231
  onRetry=${i}
232
232
  isLoading=${t}
@@ -242,41 +242,41 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
242
242
  </div>
243
243
  `}
244
244
  </div>
245
- `}var Le=typeof window<"u"?window.SpeechRecognition||window.webkitSpeechRecognition:null;function St({onSend:e,onCancel:t,isLoading:n,placeholder:s,primaryColor:a,enableVoice:o=!0,enableFiles:i=!0}){let[c,d]=C(""),[l,u]=C([]),[r,_]=C(!1),[p,v]=C(!1),[w]=C(()=>!!Le),y=X(null),g=X(null),k=X(null),I=X(!1);K(()=>{!n&&y.current&&y.current.focus()},[n]),K(()=>{y.current&&(y.current.style.height="auto",y.current.style.height=Math.min(y.current.scrollHeight,150)+"px")},[c]),K(()=>()=>{I.current=!1,k.current&&k.current.abort()},[]);let N=$=>{$.preventDefault(),(c.trim()||l.length>0)&&!n&&(e(c,l),d(""),u([]),y.current&&(y.current.style.height="auto"),g.current&&(g.current.value=""))},J=$=>{let D=Array.from($.target.files||[]);D.length>0&&u(F=>[...F,...D])},z=$=>{u(D=>D.filter((F,m)=>m!==$))},V=$=>{$.preventDefault(),g.current&&!n&&g.current.click()},W=$=>{$.key==="Enter"&&!$.shiftKey&&($.preventDefault(),N($))},B=$=>{n&&t&&($.preventDefault(),t())},q=()=>{if(!Le||n)return;I.current=!0;let $=new Le;$.continuous=!0,$.interimResults=!0,$.lang=navigator.language||"en-US";let D=c,F="";$.onstart=()=>{v(!0)},$.onresult=m=>{F="";for(let b=m.resultIndex;b<m.results.length;b++){let R=m.results[b][0].transcript;m.results[b].isFinal?D+=(D?" ":"")+R:F+=R}d(D+(F?" "+F:""))},$.onerror=m=>{if(m.error==="no-speech"||m.error==="aborted"){console.log("[ChatWidget] Speech recognition:",m.error,"- continuing...");return}console.warn("[ChatWidget] Speech recognition error:",m.error),I.current=!1,v(!1),d(D||c)},$.onend=()=>{if(I.current){console.log("[ChatWidget] Recognition paused, restarting...");try{$.start();return}catch(m){console.warn("[ChatWidget] Could not restart recognition:",m)}}v(!1),D&&d(D),k.current=null},k.current=$,$.start()},H=()=>{I.current=!1,k.current&&k.current.stop()},h=$=>{$.preventDefault(),p?H():q()},x=f`
245
+ `}var We=typeof window<"u"?window.SpeechRecognition||window.webkitSpeechRecognition:null;function xt({onSend:e,onCancel:t,isLoading:n,placeholder:s,primaryColor:a,enableVoice:o=!0,enableFiles:i=!0}){let[c,u]=C(""),[l,p]=C([]),[r,d]=C(!1),[h,m]=C(!1),[w]=C(()=>!!We),y=X(null),g=X(null),k=X(null),E=X(!1);K(()=>{!n&&y.current&&y.current.focus()},[n]),K(()=>{y.current&&(y.current.style.height="auto",y.current.style.height=Math.min(y.current.scrollHeight,150)+"px")},[c]),K(()=>()=>{E.current=!1,k.current&&k.current.abort()},[]);let O=$=>{$.preventDefault(),(c.trim()||l.length>0)&&!n&&(e(c,l),u(""),p([]),y.current&&(y.current.style.height="auto"),g.current&&(g.current.value=""))},B=$=>{let R=Array.from($.target.files||[]);R.length>0&&p(D=>[...D,...R])},V=$=>{p(R=>R.filter((D,v)=>v!==$))},q=$=>{$.preventDefault(),g.current&&!n&&g.current.click()},j=$=>{$.key==="Enter"&&!$.shiftKey&&($.preventDefault(),O($))},z=$=>{n&&t&&($.preventDefault(),t())},G=()=>{if(!We||n)return;E.current=!0;let $=new We;$.continuous=!0,$.interimResults=!0,$.lang=navigator.language||"en-US";let R=c,D="";$.onstart=()=>{m(!0)},$.onresult=v=>{D="";for(let P=v.resultIndex;P<v.results.length;P++){let b=v.results[P][0].transcript;v.results[P].isFinal?R+=(R?" ":"")+b:D+=b}u(R+(D?" "+D:""))},$.onerror=v=>{if(v.error==="no-speech"||v.error==="aborted"){console.log("[ChatWidget] Speech recognition:",v.error,"- continuing...");return}console.warn("[ChatWidget] Speech recognition error:",v.error),E.current=!1,m(!1),u(R||c)},$.onend=()=>{if(E.current){console.log("[ChatWidget] Recognition paused, restarting...");try{$.start();return}catch(v){console.warn("[ChatWidget] Could not restart recognition:",v)}}m(!1),R&&u(R),k.current=null},k.current=$,$.start()},N=()=>{E.current=!1,k.current&&k.current.stop()},_=$=>{$.preventDefault(),h?N():G()},T=f`
246
246
  <svg width="14" height="14" viewBox="0 0 14 14" fill="currentColor">
247
247
  <rect x="2" y="2" width="10" height="10" rx="1" />
248
248
  </svg>
249
- `,T=f`
249
+ `,M=f`
250
250
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
251
251
  <path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"></path>
252
252
  <path d="M19 10v2a7 7 0 0 1-14 0v-2"></path>
253
253
  <line x1="12" y1="19" x2="12" y2="23"></line>
254
254
  <line x1="8" y1="23" x2="16" y2="23"></line>
255
255
  </svg>
256
- `,M=f`
256
+ `,x=f`
257
257
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
258
258
  <path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"></path>
259
259
  </svg>
260
- `,S=o&&w,E=i;return f`
261
- <form class="cw-input-form" onSubmit=${N}>
260
+ `,S=o&&w,I=i;return f`
261
+ <form class="cw-input-form" onSubmit=${O}>
262
262
  <input
263
263
  type="file"
264
264
  ref=${g}
265
265
  style="display: none"
266
266
  multiple
267
- onChange=${J}
267
+ onChange=${B}
268
268
  />
269
269
  ${l.length>0&&f`
270
270
  <div class="cw-file-chips">
271
- ${l.map(($,D)=>f`
272
- <div class="cw-file-chip" key=${D}>
273
- <span class="cw-file-chip-icon">${be($.type)}</span>
271
+ ${l.map(($,R)=>f`
272
+ <div class="cw-file-chip" key=${R}>
273
+ <span class="cw-file-chip-icon">${Se($.type)}</span>
274
274
  <span class="cw-file-chip-name" title=${$.name}>${$.name.length>20?$.name.substring(0,17)+"...":$.name}</span>
275
- <span class="cw-file-chip-size">(${ke($.size)})</span>
275
+ <span class="cw-file-chip-size">(${Ce($.size)})</span>
276
276
  <button
277
277
  type="button"
278
278
  class="cw-file-chip-remove"
279
- onClick=${()=>z(D)}
279
+ onClick=${()=>V(R)}
280
280
  title="Remove file"
281
281
  >×</button>
282
282
  </div>
@@ -286,48 +286,48 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
286
286
  <textarea
287
287
  ref=${y}
288
288
  class="cw-input"
289
- placeholder=${j(s)}
289
+ placeholder=${J(s)}
290
290
  value=${c}
291
- onInput=${$=>d($.target.value)}
292
- onKeyDown=${W}
291
+ onInput=${$=>u($.target.value)}
292
+ onKeyDown=${j}
293
293
  disabled=${n}
294
294
  rows="1"
295
295
  />
296
- ${E&&f`
296
+ ${I&&f`
297
297
  <button
298
298
  type="button"
299
299
  class="cw-attach-btn"
300
- onClick=${V}
300
+ onClick=${q}
301
301
  disabled=${n}
302
302
  title="Attach files"
303
303
  >
304
- ${M}
304
+ ${x}
305
305
  </button>
306
306
  `}
307
307
  ${S&&f`
308
308
  <button
309
309
  type="button"
310
- class=${`cw-voice-btn ${p?"cw-voice-btn-recording":""}`}
311
- onClick=${h}
310
+ class=${`cw-voice-btn ${h?"cw-voice-btn-recording":""}`}
311
+ onClick=${_}
312
312
  disabled=${n}
313
- title=${p?"Stop recording":"Voice input"}
313
+ title=${h?"Stop recording":"Voice input"}
314
314
  >
315
- ${T}
315
+ ${M}
316
316
  </button>
317
317
  `}
318
318
  <button
319
319
  type=${n?"button":"submit"}
320
320
  class=${`cw-send-btn ${n?"cw-send-btn-loading":""} ${n&&r?"cw-send-btn-stop":""}`}
321
321
  style=${{backgroundColor:n&&r?"#dc2626":a}}
322
- onClick=${B}
323
- onMouseEnter=${()=>_(!0)}
324
- onMouseLeave=${()=>_(!1)}
322
+ onClick=${z}
323
+ onMouseEnter=${()=>d(!0)}
324
+ onMouseLeave=${()=>d(!1)}
325
325
  title=${n?"Stop":"Send"}
326
326
  >
327
- ${n?r?x:f`<span class="cw-spinner"></span>`:"\u27A4"}
327
+ ${n?r?T:f`<span class="cw-spinner"></span>`:"\u27A4"}
328
328
  </button>
329
329
  </form>
330
- `}function Tt({isOpen:e,conversations:t,conversationsLoading:n,currentConversationId:s,onClose:a,onNewConversation:o,onSwitchConversation:i}){return f`
330
+ `}function Et({isOpen:e,conversations:t,conversationsLoading:n,currentConversationId:s,onClose:a,onNewConversation:o,onSwitchConversation:i}){return f`
331
331
  <div class="cw-sidebar ${e?"cw-sidebar-open":""}">
332
332
  <div class="cw-sidebar-header">
333
333
  <span>Conversations</span>
@@ -355,8 +355,8 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
355
355
  class="cw-conversation-item ${c.id===s?"cw-conversation-active":""}"
356
356
  onClick=${()=>i(c.id)}
357
357
  >
358
- <div class="cw-conversation-title">${j(c.title||"Untitled")}</div>
359
- <div class="cw-conversation-date">${gt(c.updatedAt||c.createdAt)}</div>
358
+ <div class="cw-conversation-title">${J(c.title||"Untitled")}</div>
359
+ <div class="cw-conversation-date">${vt(c.updatedAt||c.createdAt)}</div>
360
360
  </div>
361
361
  `)}
362
362
  </div>
@@ -366,45 +366,59 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
366
366
  class="cw-sidebar-overlay ${e?"cw-sidebar-overlay-visible":""}"
367
367
  onClick=${a}
368
368
  />
369
- `}function Mt({availableModels:e,selectedModel:t,onSelectModel:n,disabled:s}){let[a,o]=C(!1);if(!e||e.length===0)return null;let c=e.find(u=>u.id===t)?.name||"Select Model",d=()=>{s||o(!a)},l=u=>{n(u),o(!1)};return f`
369
+ `}function It({availableModels:e,selectedModel:t,onSelectModel:n,thinkingEnabled:s,onToggleThinking:a,disabled:o}){let[i,c]=C(!1);if(!e||e.length===0)return null;let u=e.find(m=>m.id===t),l=u?.name||"Select Model",p=u?.supports_thinking||!1,r=()=>{o||c(!i)},d=m=>{n(m),c(!1)},h=m=>{m.stopPropagation(),a&&p&&a(!s)};return f`
370
370
  <div class="cw-model-selector">
371
- <button
372
- class="cw-model-btn"
373
- onClick=${d}
374
- disabled=${s}
371
+ <button
372
+ class="cw-model-btn"
373
+ onClick=${r}
374
+ disabled=${o}
375
375
  title="Select Model"
376
376
  >
377
377
  <span class="cw-model-icon">🤖</span>
378
- <span class="cw-model-name">${j(c)}</span>
379
- <span class="cw-model-chevron">${a?"\u25B2":"\u25BC"}</span>
378
+ <span class="cw-model-name">${J(l)}</span>
379
+ <span class="cw-model-chevron">${i?"\u25B2":"\u25BC"}</span>
380
380
  </button>
381
-
382
- ${a&&f`
381
+
382
+ ${p&&a&&f`
383
+ <button
384
+ class="cw-thinking-toggle ${s?"cw-thinking-enabled":""}"
385
+ onClick=${h}
386
+ disabled=${o}
387
+ title=${s?"Thinking enabled - click to disable":"Enable extended thinking"}
388
+ >
389
+ <span class="cw-thinking-icon">🧠</span>
390
+ </button>
391
+ `}
392
+
393
+ ${i&&f`
383
394
  <div class="cw-model-dropdown">
384
- ${e.map(u=>f`
385
- <button
386
- key=${u.id}
387
- class="cw-model-option ${u.id===t?"cw-model-option-selected":""}"
388
- onClick=${()=>l(u.id)}
395
+ ${e.map(m=>f`
396
+ <button
397
+ key=${m.id}
398
+ class="cw-model-option ${m.id===t?"cw-model-option-selected":""}"
399
+ onClick=${()=>d(m.id)}
389
400
  >
390
- <span class="cw-model-option-name">${j(u.name)}</span>
391
- <span class="cw-model-option-provider">${j(u.provider)}</span>
392
- ${u.description&&f`
393
- <span class="cw-model-option-desc">${j(u.description)}</span>
401
+ <span class="cw-model-option-name">
402
+ ${J(m.name)}
403
+ ${m.supports_thinking&&f`<span class="cw-thinking-badge" title="Supports extended thinking">🧠</span>`}
404
+ </span>
405
+ <span class="cw-model-option-provider">${J(m.provider)}</span>
406
+ ${m.description&&f`
407
+ <span class="cw-model-option-desc">${J(m.description)}</span>
394
408
  `}
395
409
  </button>
396
410
  `)}
397
411
  </div>
398
412
  `}
399
413
  </div>
400
- `}var tn={not_started:"\u25CB",in_progress:"\u25D0",complete:"\u25CF",cancelled:"\u2298"},nn={not_started:"Not Started",in_progress:"In Progress",complete:"Complete",cancelled:"Cancelled"};function sn({task:e,onUpdate:t,onRemove:n,depth:s=0}){let[a,o]=C(!1),[i,c]=C(e.name),d=A(()=>{let _={not_started:"in_progress",in_progress:"complete",complete:"not_started",cancelled:"not_started"};t(e.id,{state:_[e.state]||"not_started"})},[e,t]),l=A(()=>{i.trim()&&i!==e.name&&t(e.id,{name:i.trim()}),o(!1)},[e,i,t]),u=A(_=>{_.key==="Enter"&&l(),_.key==="Escape"&&(c(e.name),o(!1))},[l,e.name]),r=`cw-task-state-${e.state.replace("_","-")}`;return f`
414
+ `}var ln={not_started:"\u25CB",in_progress:"\u25D0",complete:"\u25CF",cancelled:"\u2298"},cn={not_started:"Not Started",in_progress:"In Progress",complete:"Complete",cancelled:"Cancelled"};function un({task:e,onUpdate:t,onRemove:n,depth:s=0}){let[a,o]=C(!1),[i,c]=C(e.name),u=A(()=>{let d={not_started:"in_progress",in_progress:"complete",complete:"not_started",cancelled:"not_started"};t(e.id,{state:d[e.state]||"not_started"})},[e,t]),l=A(()=>{i.trim()&&i!==e.name&&t(e.id,{name:i.trim()}),o(!1)},[e,i,t]),p=A(d=>{d.key==="Enter"&&l(),d.key==="Escape"&&(c(e.name),o(!1))},[l,e.name]),r=`cw-task-state-${e.state.replace("_","-")}`;return f`
401
415
  <div class="cw-task-item ${r}" style=${{paddingLeft:`${s*16+8}px`}}>
402
416
  <button
403
417
  class="cw-task-state-btn"
404
- onClick=${d}
405
- title=${nn[e.state]}
418
+ onClick=${u}
419
+ title=${cn[e.state]}
406
420
  >
407
- ${tn[e.state]}
421
+ ${ln[e.state]}
408
422
  </button>
409
423
 
410
424
  ${a?f`
@@ -412,9 +426,9 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
412
426
  type="text"
413
427
  class="cw-task-edit-input"
414
428
  value=${i}
415
- onInput=${_=>c(_.target.value)}
429
+ onInput=${d=>c(d.target.value)}
416
430
  onBlur=${l}
417
- onKeyDown=${u}
431
+ onKeyDown=${p}
418
432
  autoFocus
419
433
  />
420
434
  `:f`
@@ -435,16 +449,16 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
435
449
  ×
436
450
  </button>
437
451
  </div>
438
- `}function xt({tasks:e,progress:t,isLoading:n,error:s,onUpdate:a,onRemove:o,onClear:i,onRefresh:c}){let d=A(r=>{let _=new Map,p=[];return r.forEach(v=>{_.set(v.id,{...v,children:[]})}),r.forEach(v=>{let w=_.get(v.id);v.parent_id&&_.has(v.parent_id)?_.get(v.parent_id).children.push(w):p.push(w)}),p},[]),l=A((r,_=0)=>f`
439
- <${sn}
452
+ `}function Pt({tasks:e,progress:t,isLoading:n,error:s,onUpdate:a,onRemove:o,onClear:i,onRefresh:c}){let u=A(r=>{let d=new Map,h=[];return r.forEach(m=>{d.set(m.id,{...m,children:[]})}),r.forEach(m=>{let w=d.get(m.id);m.parent_id&&d.has(m.parent_id)?d.get(m.parent_id).children.push(w):h.push(w)}),h},[]),l=A((r,d=0)=>f`
453
+ <${un}
440
454
  key=${r.id}
441
455
  task=${r}
442
- depth=${_}
456
+ depth=${d}
443
457
  onUpdate=${a}
444
458
  onRemove=${o}
445
459
  />
446
- ${r.children?.map(p=>l(p,_+1))}
447
- `,[a,o]),u=d(e);return n&&e.length===0?f`<div class="cw-tasks-loading">Loading tasks...</div>`:f`
460
+ ${r.children?.map(h=>l(h,d+1))}
461
+ `,[a,o]),p=u(e);return n&&e.length===0?f`<div class="cw-tasks-loading">Loading tasks...</div>`:f`
448
462
  <div class="cw-tasks-container">
449
463
  <div class="cw-tasks-header">
450
464
  <div class="cw-tasks-progress">
@@ -469,15 +483,15 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
469
483
  ${s&&f`<div class="cw-tasks-error">${s}</div>`}
470
484
 
471
485
  <div class="cw-tasks-list">
472
- ${u.length===0?f`
486
+ ${p.length===0?f`
473
487
  <div class="cw-tasks-empty">
474
488
  <p>No tasks yet</p>
475
489
  <p class="cw-tasks-empty-hint">Tasks will appear here when the agent creates them</p>
476
490
  </div>
477
- `:u.map(r=>l(r))}
491
+ `:p.map(r=>l(r))}
478
492
  </div>
479
493
  </div>
480
- `}function Et(e,t,n){let[s,a]=C([]),[o,i]=C(!1),[c,d]=C(null),[l,u]=C(()=>n?.get(e.conversationIdKey)||null),[r,_]=C(!1),[p,v]=C(!1),[w,y]=C(0),g=X(null),k=X(null);K(()=>{l&&n?.set(e.conversationIdKey,l)},[l,e.conversationIdKey,n]);let I=A(async(h,x,T)=>{g.current&&g.current.close();let M=e.apiPaths.runEvents.replace("{runId}",h),S=`${e.backendUrl}${M}`;x&&(S+=`?anonymous_token=${encodeURIComponent(x)}`);let E=new EventSource(S);g.current=E;let $="";E.addEventListener("assistant.message",F=>{try{let m=JSON.parse(F.data);e.onEvent&&e.onEvent("assistant.message",m.payload);let b=m.payload.content;b&&($+=b,a(R=>{let G=R[R.length-1];return G?.role==="assistant"&&G.id.startsWith("assistant-stream-")?[...R.slice(0,-1),{...G,content:$}]:[...R,{id:"assistant-stream-"+Date.now(),role:"assistant",content:$,timestamp:new Date,type:"message"}]}))}catch(m){console.error("[ChatWidget] Parse error:",m)}}),E.addEventListener("tool.call",F=>{try{let m=JSON.parse(F.data);e.onEvent&&e.onEvent("tool.call",m.payload),a(b=>[...b,{id:"tool-call-"+Date.now(),role:"assistant",content:`\u{1F527} ${m.payload.name}`,timestamp:new Date,type:"tool_call",metadata:{toolName:m.payload.name,arguments:m.payload.arguments,toolCallId:m.payload.id}}])}catch(m){console.error("[ChatWidget] Parse error:",m)}}),E.addEventListener("tool.result",F=>{try{let m=JSON.parse(F.data);e.onEvent&&e.onEvent("tool.result",m.payload);let b=m.payload.result,R=b?.error;a(G=>[...G,{id:"tool-result-"+Date.now(),role:"system",content:R?`\u274C ${b.error}`:"\u2713 Done",timestamp:new Date,type:"tool_result",metadata:{toolName:m.payload.name,result:b,toolCallId:m.payload.tool_call_id}}])}catch(m){console.error("[ChatWidget] Parse error:",m)}}),E.addEventListener("custom",F=>{try{let m=JSON.parse(F.data);e.onEvent&&e.onEvent("custom",m.payload),m.payload?.type==="ui_control"&&e.onUIControl&&e.onUIControl(m.payload),m.payload?.type==="agent_context"&&a(b=>[...b,{id:"agent-context-"+Date.now(),role:"system",content:`\u{1F517} ${m.payload.agent_name||"Sub-agent"} is now handling this request`,timestamp:new Date,type:"agent_context",metadata:{agentKey:m.payload.agent_key,agentName:m.payload.agent_name,action:m.payload.action}}])}catch(m){console.error("[ChatWidget] Parse error:",m)}}),E.addEventListener("sub_agent.start",F=>{try{let m=JSON.parse(F.data);e.onEvent&&e.onEvent("sub_agent.start",m.payload),a(b=>[...b,{id:"sub-agent-start-"+Date.now(),role:"system",content:`\u{1F517} Delegating to ${m.payload.agent_name||m.payload.sub_agent_key||"sub-agent"}...`,timestamp:new Date,type:"sub_agent_start",metadata:{subAgentKey:m.payload.sub_agent_key,agentName:m.payload.agent_name,invocationMode:m.payload.invocation_mode}}])}catch(m){console.error("[ChatWidget] Parse error:",m)}}),E.addEventListener("sub_agent.end",F=>{try{let m=JSON.parse(F.data);e.onEvent&&e.onEvent("sub_agent.end",m.payload),a(b=>[...b,{id:"sub-agent-end-"+Date.now(),role:"system",content:`\u2713 ${m.payload.agent_name||"Sub-agent"} completed`,timestamp:new Date,type:"sub_agent_end",metadata:{subAgentKey:m.payload.sub_agent_key,agentName:m.payload.agent_name}}])}catch(m){console.error("[ChatWidget] Parse error:",m)}});let D=F=>{try{let m=JSON.parse(F.data);if(e.onEvent&&e.onEvent(m.type,m.payload),m.type==="run.failed"){let b=m.payload.error||"Agent run failed";d(b),a(R=>[...R,{id:"error-"+Date.now(),role:"system",content:`\u274C Error: ${b}`,timestamp:new Date,type:"error"}])}}catch(m){console.error("[ChatWidget] Parse error:",m)}i(!1),E.close(),g.current=null,$&&T&&T($)};E.addEventListener("run.succeeded",D),E.addEventListener("run.failed",D),E.addEventListener("run.cancelled",D),E.addEventListener("run.timed_out",D),E.onerror=()=>{i(!1),E.close(),g.current=null}},[e]),N=A(async(h,x={},T={})=>{if(!h.trim()||o)return;let M=[],S={};typeof x=="function"?S={onAssistantMessage:x}:Array.isArray(x)?(M=x,S=T):S=x||{};let{model:E,onAssistantMessage:$,supersedeFromMessageIndex:D}=S;i(!0),d(null);let F={id:$e(),role:"user",content:h.trim(),timestamp:new Date,type:"message",files:M.length>0?M.map(m=>({name:m.name,size:m.size,type:m.type})):void 0};a(m=>[...m,F]);try{let m=await t.getOrCreateSession(),b;if(M.length>0){let Q=e.apiCaseStyle!=="camel",Ke=ce=>Q?He(ce):ce,Y=new FormData;Y.append(Ke("agentKey"),e.agentKey),l&&Y.append(Ke("conversationId"),l),Y.append("messages",JSON.stringify([{role:"user",content:h.trim()}])),Y.append("metadata",JSON.stringify(Q?{...e.metadata,journey_type:e.defaultJourneyType}:{...e.metadata,journeyType:e.defaultJourneyType})),E&&Y.append("model",E),M.forEach(ce=>{Y.append("files",ce)}),b=t.getFetchOptions({method:"POST",body:Y},m)}else{let Q=t.transformRequest({agentKey:e.agentKey,conversationId:l,messages:[{role:"user",content:h.trim()}],metadata:{...e.metadata,journeyType:e.defaultJourneyType},...E&&{model:E},...D!==void 0&&{supersedeFromMessageIndex:D}});b=t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q)},m)}let R=await fetch(`${e.backendUrl}${e.apiPaths.runs}`,b),G=m;if(R.status===401){t.clearSession();let Q=await t.getOrCreateSession(!0);Q&&(G=Q,M.length>0?b=t.getFetchOptions({method:"POST",body:b.body},Q):b=t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:b.body},Q),R=await fetch(`${e.backendUrl}${e.apiPaths.runs}`,b))}if(!R.ok){let Q=await R.json().catch(()=>({}));throw new Error(Q.error||Q.detail||`HTTP ${R.status}`)}let ie=await R.json(),le=t.transformResponse(ie);k.current=le.id,!l&&le.conversationId&&u(le.conversationId),await I(le.id,G,$)}catch(m){d(m.message||"Failed to send message"),i(!1)}finally{k.current=null}},[e,t,l,o,I]),J=A(async()=>{let h=k.current;if(!(!h||!o))try{let x=e.apiPaths.cancelRun?e.apiPaths.cancelRun.replace("{runId}",h):`${e.apiPaths.runs}${h}/cancel/`;(await fetch(`${e.backendUrl}${x}`,t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"}}))).ok&&(g.current&&(g.current.close(),g.current=null),i(!1),k.current=null,a(M=>[...M,{id:"cancelled-"+Date.now(),role:"system",content:"\u23F9 Run cancelled",timestamp:new Date,type:"cancelled"}]))}catch(x){console.error("[ChatWidget] Failed to cancel run:",x)}},[e,t,o]),z=A(()=>{a([]),u(null),d(null),_(!1),y(0),n?.set(e.conversationIdKey,null)},[e.conversationIdKey,n]),V=h=>{let x={id:$e(),role:h.role,timestamp:h.timestamp?new Date(h.timestamp):new Date};if(h.role==="tool")return{...x,role:"system",content:"\u2713 Done",type:"tool_result",metadata:{result:h.content,toolCallId:h.toolCallId}};if(h.role==="assistant"&&h.toolCalls&&h.toolCalls.length>0)return h.toolCalls.map(M=>({id:$e(),role:"assistant",content:`\u{1F527} ${M.function?.name||M.name||"tool"}`,timestamp:x.timestamp,type:"tool_call",metadata:{toolName:M.function?.name||M.name,arguments:M.function?.arguments||M.arguments,toolCallId:M.id}}));let T=typeof h.content=="string"?h.content:JSON.stringify(h.content);return h.role==="assistant"&&!T?.trim()?null:{...x,content:T,type:"message"}},W=A(async h=>{i(!0),a([]),u(h);try{let x=await t.getOrCreateSession(),M=`${e.backendUrl}${e.apiPaths.conversations}${h}/?limit=10&offset=0`,S=await fetch(M,t.getFetchOptions({method:"GET"},x));if(S.ok){let E=await S.json(),$=t.transformResponse(E);$.messages&&a($.messages.flatMap(V).filter(Boolean)),_($.hasMore||!1),y($.messages?.length||0)}else S.status===404&&(u(null),n?.set(e.conversationIdKey,null))}catch(x){console.error("[ChatWidget] Failed to load conversation:",x)}finally{i(!1)}},[e,t,n]),B=A(async()=>{if(!(!l||p||!r)){v(!0);try{let h=await t.getOrCreateSession(),T=`${e.backendUrl}${e.apiPaths.conversations}${l}/?limit=10&offset=${w}`,M=await fetch(T,t.getFetchOptions({method:"GET"},h));if(M.ok){let S=await M.json(),E=t.transformResponse(S);if(E.messages?.length>0){let $=E.messages.flatMap(V).filter(Boolean);a(D=>[...$,...D]),y(D=>D+E.messages.length),_(E.hasMore||!1)}else _(!1)}}catch(h){console.error("[ChatWidget] Failed to load more messages:",h)}finally{v(!1)}}},[e,t,l,w,p,r]),q=A(async(h,x,T={})=>{if(o)return;let M=s[h];if(!M||M.role!=="user")return;let S=s.slice(0,h);a(S),await N(x,{...T,supersedeFromMessageIndex:h})},[s,o,N]),H=A(async(h,x={})=>{if(o)return;let T=s[h];if(!T)return;let M=h,S=T;if(T.role==="assistant"){for(let $=h-1;$>=0;$--)if(s[$].role==="user"){M=$,S=s[$];break}if(S.role!=="user")return}else if(T.role!=="user")return;let E=s.slice(0,M);a(E),await N(S.content,{...x,supersedeFromMessageIndex:M})},[s,o,N]);return K(()=>()=>{g.current&&g.current.close()},[]),{messages:s,isLoading:o,error:c,conversationId:l,hasMoreMessages:r,loadingMoreMessages:p,sendMessage:N,cancelRun:J,clearMessages:z,loadConversation:W,loadMoreMessages:B,setConversationId:u,editMessage:q,retryMessage:H}}function It(e,t,n){let[s,a]=C([]),[o,i]=C(null),[c,d]=C(null),[l,u]=C(!1);K(()=>{(async()=>{if(e.showModelSelector){u(!0);try{let v=await fetch(`${e.backendUrl}${e.apiPaths.models}`,t.getFetchOptions({method:"GET"}));if(v.ok){let w=await v.json(),y=w.models||[];a(y),d(w.default);let g=n?.get(e.modelKey);g&&y.some(k=>k.id===g)?i(g):i(w.default)}}catch(v){console.warn("[ChatWidget] Failed to load models:",v)}finally{u(!1)}}})()},[e.backendUrl,e.apiPaths.models,e.showModelSelector,e.modelKey,t,n]);let r=A(p=>{i(p),n?.set(e.modelKey,p)},[e.modelKey,n]),_=A(()=>s.find(p=>p.id===o)||null,[s,o]);return{availableModels:s,selectedModel:o,defaultModel:c,isLoading:l,selectModel:r,getSelectedModelInfo:_}}function At(e,t){let[n,s]=C(null),[a,o]=C(!1),[i,c]=C(null),d=e.apiPaths?.tasks||"/api/agent/tasks/",l=A(async()=>{o(!0),c(null);try{let w=`${e.backendUrl}${d}`,y=await fetch(w,t.getFetchOptions({method:"GET"}));if(y.ok){let g=await y.json();s(g)}else{let g=await y.json().catch(()=>({}));c(g.error||"Failed to load tasks")}}catch(w){console.error("[useTasks] Failed to load task list:",w),c("Failed to load tasks")}finally{o(!1)}},[e.backendUrl,d,t]),u=A(async w=>{if(!n)return null;try{let y=`${e.backendUrl}${d}${n.id}/add_task/`,g=await fetch(y,t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(w)}));if(g.ok){let k=await g.json();return await l(),k}else{let k=await g.json().catch(()=>({}));return c(k.error||"Failed to add task"),null}}catch(y){return console.error("[useTasks] Failed to add task:",y),c("Failed to add task"),null}},[e.backendUrl,d,n,t,l]),r=A(async(w,y)=>{if(!n)return null;try{let g=`${e.backendUrl}${d}${n.id}/update_task/${w}/`,k=await fetch(g,t.getFetchOptions({method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)}));if(k.ok){let I=await k.json();return await l(),I}else{let I=await k.json().catch(()=>({}));return c(I.error||"Failed to update task"),null}}catch(g){return console.error("[useTasks] Failed to update task:",g),c("Failed to update task"),null}},[e.backendUrl,d,n,t,l]),_=A(async w=>{if(!n)return!1;try{let y=`${e.backendUrl}${d}${n.id}/remove_task/${w}/`,g=await fetch(y,t.getFetchOptions({method:"DELETE"}));if(g.ok)return await l(),!0;{let k=await g.json().catch(()=>({}));return c(k.error||"Failed to remove task"),!1}}catch(y){return console.error("[useTasks] Failed to remove task:",y),c("Failed to remove task"),!1}},[e.backendUrl,d,n,t,l]),p=A(async()=>{if(!n)return!1;try{let w=`${e.backendUrl}${d}${n.id}/clear/`,y=await fetch(w,t.getFetchOptions({method:"POST"}));if(y.ok)return await l(),!0;{let g=await y.json().catch(()=>({}));return c(g.error||"Failed to clear tasks"),!1}}catch(w){return console.error("[useTasks] Failed to clear tasks:",w),c("Failed to clear tasks"),!1}},[e.backendUrl,d,n,t,l]),v=A(()=>c(null),[]);return{taskList:n,tasks:n?.tasks||[],progress:n?.progress||{total:0,completed:0,percent_complete:0},isLoading:a,error:i,loadTaskList:l,addTask:u,updateTask:r,removeTask:_,clearTasks:p,clearError:v}}function Dt(e,t,n){let s=u=>!u||typeof u!="object"||e.apiCaseStyle==="camel"?u:we(u),a=u=>!u||typeof u!="object"||e.apiCaseStyle==="snake"?u:ve(u),o=()=>e.authStrategy?e.authStrategy:e.authToken?"token":e.apiPaths.anonymousSession||e.anonymousSessionEndpoint?"anonymous":"none",i=(u=null)=>{let r=o(),_={},p=u||e.authToken||t().authToken;if(r==="token"&&p){let v=e.authHeader||"Authorization",w=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Token";_[v]=w?`${w} ${p}`:p}else if(r==="jwt"&&p){let v=e.authHeader||"Authorization",w=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Bearer";_[v]=w?`${w} ${p}`:p}else if(r==="anonymous"&&p){let v=e.authHeader||e.anonymousTokenHeader||"X-Anonymous-Token";_[v]=p}if(r==="session"){let v=wt(e.csrfCookieName);v&&(_["X-CSRFToken"]=v)}return _};return{getAuthStrategy:o,getAuthHeaders:i,getFetchOptions:(u={},r=null)=>{let _=o(),p={...u},v=i(r);return console.log("[ChatWidget] getFetchOptions - strategy:",_,"overrideToken:",r,"authHeaders:",v),p.headers={...p.headers,...v},_==="session"&&(p.credentials="include"),p},getOrCreateSession:async(u=!1)=>{let r=o(),_=t(),p=e.anonymousTokenKey||e.sessionTokenKey;if(r!=="anonymous")return e.authToken||_.authToken;if(!u){if(_.authToken)return _.authToken;let v=_.storage?.get(p);if(v)return n(w=>({...w,authToken:v})),v}try{let v=e.anonymousSessionEndpoint||e.apiPaths.anonymousSession,w=await fetch(`${e.backendUrl}${v}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(w.ok){let y=await w.json();return n(g=>({...g,authToken:y.token})),_.storage?.set(p,y.token),y.token}}catch(v){console.warn("[ChatWidget] Failed to create session:",v)}return null},clearSession:()=>{let u=e.anonymousTokenKey||e.sessionTokenKey,r=t();n(_=>({..._,authToken:null})),r.storage?.set(u,null)},transformRequest:s,transformResponse:a}}function Rt({config:e,onStateChange:t,markdownParser:n,apiRef:s}){let[a,o]=C(e.embedded||e.forceOpen===!0),[i,c]=C(!1),[d,l]=C(!1),[u,r]=C(!1),[_,p]=C([]),[v,w]=C("chat"),[y,g]=C(!1),[k,I]=C(e.enableTTS),[N,J]=C(!1),[z,V]=C(null);K(()=>{e.forceOpen!==void 0&&o(e.forceOpen)},[e.forceOpen]);let W=re(()=>vt(e.containerId),[e.containerId]),[B,q]=C(e.authToken||null),H=re(()=>Dt(e,()=>({authToken:B,storage:W}),G=>{let ie=G({authToken:B,storage:W});ie.authToken!==B&&q(ie.authToken)}),[e,B,W]),h=Et(e,H,W),x=It(e,H,W),T=At(e,H);K(()=>{for(let b=h.messages.length-1;b>=0;b--){let R=h.messages[b];if(R.type==="sub_agent_start"){V({key:R.metadata?.subAgentKey,name:R.metadata?.agentName});return}if(R.type==="sub_agent_end"){V(null);return}}},[h.messages]),K(()=>{let b=W.get(e.conversationIdKey);b&&h.loadConversation(b)},[]),K(()=>{t&&t({isOpen:a,isExpanded:i,debugMode:d,messages:h.messages,conversationId:h.conversationId,isLoading:h.isLoading,error:h.error})},[a,i,d,h.messages,h.conversationId,h.isLoading,h.error]);let M=A(async()=>{if(e.showConversationSidebar){g(!0);try{let b=`${e.backendUrl}${e.apiPaths.conversations}?agent_key=${encodeURIComponent(e.agentKey)}`,R=await fetch(b,H.getFetchOptions({method:"GET"}));if(R.ok){let G=await R.json();p(G.results||G)}}catch(b){console.error("[ChatWidget] Failed to load conversations:",b),p([])}finally{g(!1)}}},[e,H]),S=A(()=>{let b=!u;r(b),b&&M()},[u,M]),E=A(b=>{b!==h.conversationId&&h.loadConversation(b),r(!1)},[h]),$=A(()=>{h.clearMessages(),r(!1)},[h]),D=A(b=>{h.sendMessage(b,{model:x.selectedModel,onAssistantMessage:R=>{}})},[h,k,x.selectedModel]),F=A(b=>{w(b),b==="tasks"&&T.loadTaskList()},[T]);if(K(()=>{s&&(s.current={open:()=>o(!0),close:()=>o(!1),send:b=>D(b),clearMessages:()=>h.clearMessages(),toggleTTS:()=>I(b=>!b),stopSpeech:()=>J(!1),setAuth:b=>{b.token!==void 0&&q(b.token)},clearAuth:()=>q(null)})},[h,s,D]),!e.embedded&&!a)return f`
494
+ `}function At(e,t,n){let[s,a]=C([]),[o,i]=C(!1),[c,u]=C(null),[l,p]=C(()=>n?.get(e.conversationIdKey)||null),[r,d]=C(!1),[h,m]=C(!1),[w,y]=C(0),g=X(null),k=X(null);K(()=>{l&&n?.set(e.conversationIdKey,l)},[l,e.conversationIdKey,n]);let E=A(async(_,T,M)=>{g.current&&g.current.close();let x=e.apiPaths.runEvents.replace("{runId}",_),S=`${e.backendUrl}${x}`;T&&(S+=`?anonymous_token=${encodeURIComponent(T)}`);let I=new EventSource(S);g.current=I;let $="";I.addEventListener("assistant.message",D=>{try{let v=JSON.parse(D.data);e.onEvent&&e.onEvent("assistant.message",v.payload);let P=v.payload.content;P&&($+=P,a(b=>{let L=b[b.length-1];return L?.role==="assistant"&&L.id.startsWith("assistant-stream-")?[...b.slice(0,-1),{...L,content:$}]:[...b,{id:"assistant-stream-"+Date.now(),role:"assistant",content:$,timestamp:new Date,type:"message"}]}))}catch(v){console.error("[ChatWidget] Parse error:",v)}}),I.addEventListener("tool.call",D=>{try{let v=JSON.parse(D.data);e.onEvent&&e.onEvent("tool.call",v.payload),a(P=>[...P,{id:"tool-call-"+Date.now(),role:"assistant",content:`\u{1F527} ${v.payload.name}`,timestamp:new Date,type:"tool_call",metadata:{toolName:v.payload.name,arguments:v.payload.arguments,toolCallId:v.payload.id}}])}catch(v){console.error("[ChatWidget] Parse error:",v)}}),I.addEventListener("tool.result",D=>{try{let v=JSON.parse(D.data);e.onEvent&&e.onEvent("tool.result",v.payload);let P=v.payload.result,b=P?.error;a(L=>[...L,{id:"tool-result-"+Date.now(),role:"system",content:b?`\u274C ${P.error}`:"\u2713 Done",timestamp:new Date,type:"tool_result",metadata:{toolName:v.payload.name,result:P,toolCallId:v.payload.tool_call_id}}])}catch(v){console.error("[ChatWidget] Parse error:",v)}}),I.addEventListener("custom",D=>{try{let v=JSON.parse(D.data);e.onEvent&&e.onEvent("custom",v.payload),v.payload?.type==="ui_control"&&e.onUIControl&&e.onUIControl(v.payload),v.payload?.type==="agent_context"&&a(P=>[...P,{id:"agent-context-"+Date.now(),role:"system",content:`\u{1F517} ${v.payload.agent_name||"Sub-agent"} is now handling this request`,timestamp:new Date,type:"agent_context",metadata:{agentKey:v.payload.agent_key,agentName:v.payload.agent_name,action:v.payload.action}}])}catch(v){console.error("[ChatWidget] Parse error:",v)}}),I.addEventListener("sub_agent.start",D=>{try{let v=JSON.parse(D.data);e.onEvent&&e.onEvent("sub_agent.start",v.payload),a(P=>[...P,{id:"sub-agent-start-"+Date.now(),role:"system",content:`\u{1F517} Delegating to ${v.payload.agent_name||v.payload.sub_agent_key||"sub-agent"}...`,timestamp:new Date,type:"sub_agent_start",metadata:{subAgentKey:v.payload.sub_agent_key,agentName:v.payload.agent_name,invocationMode:v.payload.invocation_mode}}])}catch(v){console.error("[ChatWidget] Parse error:",v)}}),I.addEventListener("sub_agent.end",D=>{try{let v=JSON.parse(D.data);e.onEvent&&e.onEvent("sub_agent.end",v.payload),a(P=>[...P,{id:"sub-agent-end-"+Date.now(),role:"system",content:`\u2713 ${v.payload.agent_name||"Sub-agent"} completed`,timestamp:new Date,type:"sub_agent_end",metadata:{subAgentKey:v.payload.sub_agent_key,agentName:v.payload.agent_name}}])}catch(v){console.error("[ChatWidget] Parse error:",v)}});let R=D=>{try{let v=JSON.parse(D.data);if(e.onEvent&&e.onEvent(v.type,v.payload),v.type==="run.failed"){let P=v.payload.error||"Agent run failed";u(P),a(b=>[...b,{id:"error-"+Date.now(),role:"system",content:`\u274C Error: ${P}`,timestamp:new Date,type:"error"}])}}catch(v){console.error("[ChatWidget] Parse error:",v)}i(!1),I.close(),g.current=null,$&&M&&M($)};I.addEventListener("run.succeeded",R),I.addEventListener("run.failed",R),I.addEventListener("run.cancelled",R),I.addEventListener("run.timed_out",R),I.onerror=()=>{i(!1),I.close(),g.current=null}},[e]),O=A(async(_,T={},M={})=>{if(!_.trim()||o)return;let x=[],S={};typeof T=="function"?S={onAssistantMessage:T}:Array.isArray(T)?(x=T,S=M):S=T||{};let{model:I,thinking:$,onAssistantMessage:R,supersedeFromMessageIndex:D}=S;i(!0),u(null);let v={id:be(),role:"user",content:_.trim(),timestamp:new Date,type:"message",files:x.length>0?x.map(P=>({name:P.name,size:P.size,type:P.type})):void 0};a(P=>[...P,v]);try{let P=await t.getOrCreateSession(),b;if(x.length>0){let Q=e.apiCaseStyle!=="camel",Ke=ue=>Q?Ne(ue):ue,Z=new FormData;Z.append(Ke("agentKey"),e.agentKey),l&&Z.append(Ke("conversationId"),l),Z.append("messages",JSON.stringify([{role:"user",content:_.trim()}])),Z.append("metadata",JSON.stringify(Q?{...e.metadata,journey_type:e.defaultJourneyType}:{...e.metadata,journeyType:e.defaultJourneyType})),I&&Z.append("model",I),$&&Z.append("thinking","true"),x.forEach(ue=>{Z.append("files",ue)}),b=t.getFetchOptions({method:"POST",body:Z},P)}else{let Q=t.transformRequest({agentKey:e.agentKey,conversationId:l,messages:[{role:"user",content:_.trim()}],metadata:{...e.metadata,journeyType:e.defaultJourneyType},...I&&{model:I},...$&&{thinking:!0},...D!==void 0&&{supersedeFromMessageIndex:D}});b=t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q)},P)}let L=await fetch(`${e.backendUrl}${e.apiPaths.runs}`,b),ee=P;if(L.status===401){t.clearSession();let Q=await t.getOrCreateSession(!0);Q&&(ee=Q,x.length>0?b=t.getFetchOptions({method:"POST",body:b.body},Q):b=t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:b.body},Q),L=await fetch(`${e.backendUrl}${e.apiPaths.runs}`,b))}if(!L.ok){let Q=await L.json().catch(()=>({}));throw new Error(Q.error||Q.detail||`HTTP ${L.status}`)}let le=await L.json(),ce=t.transformResponse(le);k.current=ce.id,!l&&ce.conversationId&&p(ce.conversationId),await E(ce.id,ee,R)}catch(P){u(P.message||"Failed to send message"),i(!1)}finally{k.current=null}},[e,t,l,o,E]),B=A(async()=>{let _=k.current;if(!(!_||!o))try{let T=e.apiPaths.cancelRun?e.apiPaths.cancelRun.replace("{runId}",_):`${e.apiPaths.runs}${_}/cancel/`;(await fetch(`${e.backendUrl}${T}`,t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"}}))).ok&&(g.current&&(g.current.close(),g.current=null),i(!1),k.current=null,a(x=>[...x,{id:"cancelled-"+Date.now(),role:"system",content:"\u23F9 Run cancelled",timestamp:new Date,type:"cancelled"}]))}catch(T){console.error("[ChatWidget] Failed to cancel run:",T)}},[e,t,o]),V=A(()=>{a([]),p(null),u(null),d(!1),y(0),n?.set(e.conversationIdKey,null)},[e.conversationIdKey,n]),q=_=>{let T={id:be(),role:_.role,timestamp:_.timestamp?new Date(_.timestamp):new Date};if(_.role==="tool")return{...T,role:"system",content:"\u2713 Done",type:"tool_result",metadata:{result:_.content,toolCallId:_.toolCallId}};if(_.role==="assistant"&&_.toolCalls&&_.toolCalls.length>0)return _.toolCalls.map(x=>({id:be(),role:"assistant",content:`\u{1F527} ${x.function?.name||x.name||"tool"}`,timestamp:T.timestamp,type:"tool_call",metadata:{toolName:x.function?.name||x.name,arguments:x.function?.arguments||x.arguments,toolCallId:x.id}}));let M=typeof _.content=="string"?_.content:JSON.stringify(_.content);return _.role==="assistant"&&!M?.trim()?null:{...T,content:M,type:"message"}},j=A(async _=>{console.log("[ChatWidget] loadConversation called with:",_),i(!0),a([]),p(_);try{let T=await t.getOrCreateSession(),x=`${e.backendUrl}${e.apiPaths.conversations}${_}/?limit=10&offset=0`;console.log("[ChatWidget] Fetching conversation from:",x);let S=await fetch(x,t.getFetchOptions({method:"GET"},T));if(console.log("[ChatWidget] Response status:",S.status),S.ok){let I=await S.json();console.log("[ChatWidget] Raw conversation:",I);let $=t.transformResponse(I);if(console.log("[ChatWidget] Transformed conversation:",$),$.messages){let R=$.messages.flatMap(q).filter(Boolean);console.log("[ChatWidget] Mapped messages:",R),a(R)}d($.hasMore||!1),y($.messages?.length||0)}else S.status===404?(console.log("[ChatWidget] Conversation not found, clearing"),p(null),n?.set(e.conversationIdKey,null)):console.error("[ChatWidget] Unexpected response status:",S.status)}catch(T){console.error("[ChatWidget] Failed to load conversation:",T)}finally{i(!1)}},[e,t,n]),z=A(async()=>{if(!(!l||h||!r)){m(!0);try{let _=await t.getOrCreateSession(),M=`${e.backendUrl}${e.apiPaths.conversations}${l}/?limit=10&offset=${w}`,x=await fetch(M,t.getFetchOptions({method:"GET"},_));if(x.ok){let S=await x.json(),I=t.transformResponse(S);if(I.messages?.length>0){let $=I.messages.flatMap(q).filter(Boolean);a(R=>[...$,...R]),y(R=>R+I.messages.length),d(I.hasMore||!1)}else d(!1)}}catch(_){console.error("[ChatWidget] Failed to load more messages:",_)}finally{m(!1)}}},[e,t,l,w,h,r]),G=A(async(_,T,M={})=>{if(o)return;let x=s[_];if(!x||x.role!=="user")return;let S=s.slice(0,_);a(S),await O(T,{...M,supersedeFromMessageIndex:_})},[s,o,O]),N=A(async(_,T={})=>{if(o)return;let M=s[_];if(!M)return;let x=_,S=M;if(M.role==="assistant"){for(let $=_-1;$>=0;$--)if(s[$].role==="user"){x=$,S=s[$];break}if(S.role!=="user")return}else if(M.role!=="user")return;let I=s.slice(0,x);a(I),await O(S.content,{...T,supersedeFromMessageIndex:x})},[s,o,O]);return K(()=>()=>{g.current&&g.current.close()},[]),{messages:s,isLoading:o,error:c,conversationId:l,hasMoreMessages:r,loadingMoreMessages:h,sendMessage:O,cancelRun:B,clearMessages:V,loadConversation:j,loadMoreMessages:z,setConversationId:p,editMessage:G,retryMessage:N}}var Rt="cw_thinking_enabled";function Dt(e,t,n){let[s,a]=C([]),[o,i]=C(null),[c,u]=C(null),[l,p]=C(!1),[r,d]=C(!1);K(()=>{(async()=>{if(e.showModelSelector){p(!0);try{let k=await fetch(`${e.backendUrl}${e.apiPaths.models}`,t.getFetchOptions({method:"GET"}));if(k.ok){let E=await k.json(),O=E.models||[];a(O),u(E.default);let B=n?.get(e.modelKey);B&&O.some(q=>q.id===B)?i(B):i(E.default),n?.get(Rt)==="true"&&d(!0)}}catch(k){console.warn("[ChatWidget] Failed to load models:",k)}finally{p(!1)}}})()},[e.backendUrl,e.apiPaths.models,e.showModelSelector,e.modelKey,t,n]);let h=A(g=>{i(g),n?.set(e.modelKey,g)},[e.modelKey,n]),m=A(g=>{d(g),n?.set(Rt,g?"true":"false")},[n]),w=A(()=>s.find(g=>g.id===o)||null,[s,o]),y=A(()=>w()?.supports_thinking||!1,[w]);return{availableModels:s,selectedModel:o,defaultModel:c,isLoading:l,selectModel:h,getSelectedModelInfo:w,thinkingEnabled:r,toggleThinking:m,supportsThinking:y}}function Ft(e,t){let[n,s]=C(null),[a,o]=C(!1),[i,c]=C(null),u=e.apiPaths?.tasks||"/api/agent/tasks/",l=A(async()=>{o(!0),c(null);try{let w=`${e.backendUrl}${u}`,y=await fetch(w,t.getFetchOptions({method:"GET"}));if(y.ok){let g=await y.json();s(g)}else{let g=await y.json().catch(()=>({}));c(g.error||"Failed to load tasks")}}catch(w){console.error("[useTasks] Failed to load task list:",w),c("Failed to load tasks")}finally{o(!1)}},[e.backendUrl,u,t]),p=A(async w=>{if(!n)return null;try{let y=`${e.backendUrl}${u}${n.id}/add_task/`,g=await fetch(y,t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(w)}));if(g.ok){let k=await g.json();return await l(),k}else{let k=await g.json().catch(()=>({}));return c(k.error||"Failed to add task"),null}}catch(y){return console.error("[useTasks] Failed to add task:",y),c("Failed to add task"),null}},[e.backendUrl,u,n,t,l]),r=A(async(w,y)=>{if(!n)return null;try{let g=`${e.backendUrl}${u}${n.id}/update_task/${w}/`,k=await fetch(g,t.getFetchOptions({method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)}));if(k.ok){let E=await k.json();return await l(),E}else{let E=await k.json().catch(()=>({}));return c(E.error||"Failed to update task"),null}}catch(g){return console.error("[useTasks] Failed to update task:",g),c("Failed to update task"),null}},[e.backendUrl,u,n,t,l]),d=A(async w=>{if(!n)return!1;try{let y=`${e.backendUrl}${u}${n.id}/remove_task/${w}/`,g=await fetch(y,t.getFetchOptions({method:"DELETE"}));if(g.ok)return await l(),!0;{let k=await g.json().catch(()=>({}));return c(k.error||"Failed to remove task"),!1}}catch(y){return console.error("[useTasks] Failed to remove task:",y),c("Failed to remove task"),!1}},[e.backendUrl,u,n,t,l]),h=A(async()=>{if(!n)return!1;try{let w=`${e.backendUrl}${u}${n.id}/clear/`,y=await fetch(w,t.getFetchOptions({method:"POST"}));if(y.ok)return await l(),!0;{let g=await y.json().catch(()=>({}));return c(g.error||"Failed to clear tasks"),!1}}catch(w){return console.error("[useTasks] Failed to clear tasks:",w),c("Failed to clear tasks"),!1}},[e.backendUrl,u,n,t,l]),m=A(()=>c(null),[]);return{taskList:n,tasks:n?.tasks||[],progress:n?.progress||{total:0,completed:0,percent_complete:0},isLoading:a,error:i,loadTaskList:l,addTask:p,updateTask:r,removeTask:d,clearTasks:h,clearError:m}}function Ht(e,t,n){let s=p=>!p||typeof p!="object"||e.apiCaseStyle==="camel"?p:ke(p),a=p=>!p||typeof p!="object"||e.apiCaseStyle==="snake"?p:$e(p),o=()=>e.authStrategy?e.authStrategy:e.authToken?"token":e.apiPaths.anonymousSession||e.anonymousSessionEndpoint?"anonymous":"none",i=(p=null)=>{let r=o(),d={},h=p||e.authToken||t().authToken;if(r==="token"&&h){let m=e.authHeader||"Authorization",w=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Token";d[m]=w?`${w} ${h}`:h}else if(r==="jwt"&&h){let m=e.authHeader||"Authorization",w=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Bearer";d[m]=w?`${w} ${h}`:h}else if(r==="anonymous"&&h){let m=e.authHeader||e.anonymousTokenHeader||"X-Anonymous-Token";d[m]=h}if(r==="session"){let m=kt(e.csrfCookieName);m&&(d["X-CSRFToken"]=m)}return d};return{getAuthStrategy:o,getAuthHeaders:i,getFetchOptions:(p={},r=null)=>{let d=o(),h={...p},m=i(r);return console.log("[ChatWidget] getFetchOptions - strategy:",d,"overrideToken:",r,"authHeaders:",m),h.headers={...h.headers,...m},d==="session"&&(h.credentials="include"),h},getOrCreateSession:async(p=!1)=>{let r=o(),d=t(),h=e.anonymousTokenKey||e.sessionTokenKey;if(r!=="anonymous")return e.authToken||d.authToken;if(!p){if(d.authToken)return d.authToken;let m=d.storage?.get(h);if(m)return n(w=>({...w,authToken:m})),m}try{let m=e.anonymousSessionEndpoint||e.apiPaths.anonymousSession,w=await fetch(`${e.backendUrl}${m}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(w.ok){let y=await w.json();return n(g=>({...g,authToken:y.token})),d.storage?.set(h,y.token),y.token}}catch(m){console.warn("[ChatWidget] Failed to create session:",m)}return null},clearSession:()=>{let p=e.anonymousTokenKey||e.sessionTokenKey,r=t();n(d=>({...d,authToken:null})),r.storage?.set(p,null)},transformRequest:s,transformResponse:a}}function Ot({config:e,onStateChange:t,markdownParser:n,apiRef:s}){console.log("[ChatWidget] Config:",{showConversationSidebar:e.showConversationSidebar,apiPaths:e.apiPaths});let[a,o]=C(e.embedded||e.forceOpen===!0),[i,c]=C(!1),[u,l]=C(!1),[p,r]=C(!1),[d,h]=C([]),[m,w]=C("chat"),[y,g]=C(!1),[k,E]=C(e.enableTTS),[O,B]=C(!1),[V,q]=C(null);K(()=>{e.forceOpen!==void 0&&o(e.forceOpen)},[e.forceOpen]);let j=ie(()=>$t(e.containerId),[e.containerId]),[z,G]=C(e.authToken||null),N=ie(()=>Ht(e,()=>({authToken:z,storage:j}),ee=>{let le=ee({authToken:z,storage:j});le.authToken!==z&&G(le.authToken)}),[e,z,j]),_=At(e,N,j),T=Dt(e,N,j),M=Ft(e,N);K(()=>{for(let b=_.messages.length-1;b>=0;b--){let L=_.messages[b];if(L.type==="sub_agent_start"){q({key:L.metadata?.subAgentKey,name:L.metadata?.agentName});return}if(L.type==="sub_agent_end"){q(null);return}}},[_.messages]),K(()=>{let b=j.get(e.conversationIdKey);console.log("[ChatWidget] Initial load - storedConvId:",b,"key:",e.conversationIdKey),console.log("[ChatWidget] apiPaths.conversations:",e.apiPaths.conversations),b&&(console.log("[ChatWidget] Loading conversation:",b),_.loadConversation(b))},[]),K(()=>{t&&t({isOpen:a,isExpanded:i,debugMode:u,messages:_.messages,conversationId:_.conversationId,isLoading:_.isLoading,error:_.error})},[a,i,u,_.messages,_.conversationId,_.isLoading,_.error]);let x=A(async()=>{if(e.showConversationSidebar){g(!0);try{let b=`${e.backendUrl}${e.apiPaths.conversations}?agent_key=${encodeURIComponent(e.agentKey)}`,L=await fetch(b,N.getFetchOptions({method:"GET"}));if(L.ok){let ee=await L.json();h(ee.results||ee)}}catch(b){console.error("[ChatWidget] Failed to load conversations:",b),h([])}finally{g(!1)}}},[e,N]),S=A(()=>{let b=!p;r(b),b&&x()},[p,x]),I=A(b=>{b!==_.conversationId&&_.loadConversation(b),r(!1)},[_]),$=A(()=>{_.clearMessages(),r(!1)},[_]),R=A(b=>{_.sendMessage(b,{model:T.selectedModel,thinking:T.thinkingEnabled&&T.supportsThinking(),onAssistantMessage:L=>{}})},[_,k,T.selectedModel,T.thinkingEnabled,T.supportsThinking]),D=A(b=>{w(b),b==="tasks"&&M.loadTaskList()},[M]);if(K(()=>{s&&(s.current={open:()=>o(!0),close:()=>o(!1),send:b=>R(b),clearMessages:()=>_.clearMessages(),toggleTTS:()=>E(b=>!b),stopSpeech:()=>B(!1),setAuth:b=>{b.token!==void 0&&G(b.token)},clearAuth:()=>G(null)})},[_,s,R]),!e.embedded&&!a)return f`
481
495
  <button
482
496
  class="cw-fab"
483
497
  style=${{backgroundColor:e.primaryColor}}
@@ -487,105 +501,107 @@ var ChatWidgetModule=(()=>{var Te=Object.defineProperty;var Ht=Object.getOwnProp
487
501
  <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
488
502
  </svg>
489
503
  </button>
490
- `;let m=["cw-widget",i&&"cw-widget-expanded",e.embedded&&"cw-widget-embedded"].filter(Boolean).join(" ");return f`
491
- <div class=${m} style=${{"--cw-primary":e.primaryColor}}>
504
+ `;let v=["cw-widget",i&&"cw-widget-expanded",e.embedded&&"cw-widget-embedded"].filter(Boolean).join(" "),P=e.headerTextColor||bt(e.primaryColor);return f`
505
+ <div class=${v} style=${{"--cw-primary":e.primaryColor,"--cw-header-text":P}}>
492
506
  ${e.showConversationSidebar&&f`
493
- <${Tt}
494
- isOpen=${u}
495
- conversations=${_}
507
+ <${Et}
508
+ isOpen=${p}
509
+ conversations=${d}
496
510
  conversationsLoading=${y}
497
- currentConversationId=${h.conversationId}
511
+ currentConversationId=${_.conversationId}
498
512
  onClose=${()=>r(!1)}
499
513
  onNewConversation=${$}
500
- onSwitchConversation=${E}
514
+ onSwitchConversation=${I}
501
515
  />
502
516
  `}
503
517
 
504
- <${$t}
518
+ <${Ct}
505
519
  config=${e}
506
- debugMode=${d}
520
+ debugMode=${u}
507
521
  isExpanded=${i}
508
- isSpeaking=${N}
509
- messagesCount=${h.messages.length}
510
- isLoading=${h.isLoading}
511
- currentAgent=${z}
522
+ isSpeaking=${O}
523
+ messagesCount=${_.messages.length}
524
+ isLoading=${_.isLoading}
525
+ currentAgent=${V}
512
526
  onClose=${()=>o(!1)}
513
527
  onToggleExpand=${()=>c(!i)}
514
- onToggleDebug=${()=>l(!d)}
515
- onToggleTTS=${()=>I(!k)}
516
- onClear=${h.clearMessages}
528
+ onToggleDebug=${()=>l(!u)}
529
+ onToggleTTS=${()=>E(!k)}
530
+ onClear=${_.clearMessages}
517
531
  onToggleSidebar=${S}
518
532
  />
519
533
 
520
534
  ${e.showTasksTab!==!1&&f`
521
535
  <div class="cw-tabs">
522
536
  <button
523
- class=${`cw-tab ${v==="chat"?"cw-tab-active":""}`}
524
- onClick=${()=>F("chat")}
537
+ class=${`cw-tab ${m==="chat"?"cw-tab-active":""}`}
538
+ onClick=${()=>D("chat")}
525
539
  >
526
540
  Chat
527
541
  </button>
528
542
  <button
529
- class=${`cw-tab ${v==="tasks"?"cw-tab-active":""}`}
530
- onClick=${()=>F("tasks")}
543
+ class=${`cw-tab ${m==="tasks"?"cw-tab-active":""}`}
544
+ onClick=${()=>D("tasks")}
531
545
  >
532
- Tasks ${T.progress.total>0?f`<span class="cw-tab-badge">${T.progress.completed}/${T.progress.total}</span>`:""}
546
+ Tasks ${M.progress.total>0?f`<span class="cw-tab-badge">${M.progress.completed}/${M.progress.total}</span>`:""}
533
547
  </button>
534
548
  </div>
535
549
  `}
536
550
 
537
- ${d&&f`<div class="cw-status-bar"><span>🐛 Debug</span></div>`}
551
+ ${u&&f`<div class="cw-status-bar"><span>🐛 Debug</span></div>`}
538
552
 
539
- ${v==="chat"?f`
540
- <${Ct}
541
- messages=${h.messages}
542
- isLoading=${h.isLoading}
543
- hasMoreMessages=${h.hasMoreMessages}
544
- loadingMoreMessages=${h.loadingMoreMessages}
545
- onLoadMore=${h.loadMoreMessages}
546
- onEditMessage=${h.editMessage}
547
- onRetryMessage=${h.retryMessage}
548
- debugMode=${d}
553
+ ${m==="chat"?f`
554
+ <${Mt}
555
+ messages=${_.messages}
556
+ isLoading=${_.isLoading}
557
+ hasMoreMessages=${_.hasMoreMessages}
558
+ loadingMoreMessages=${_.loadingMoreMessages}
559
+ onLoadMore=${_.loadMoreMessages}
560
+ onEditMessage=${_.editMessage}
561
+ onRetryMessage=${_.retryMessage}
562
+ debugMode=${u}
549
563
  markdownParser=${n}
550
564
  emptyStateTitle=${e.emptyStateTitle}
551
565
  emptyStateMessage=${e.emptyStateMessage}
552
566
  />
553
567
 
554
- ${h.error&&f`<div class="cw-error-bar">${h.error}</div>`}
568
+ ${_.error&&f`<div class="cw-error-bar">${_.error}</div>`}
555
569
 
556
- ${e.showModelSelector&&x.availableModels.length>0&&f`
557
- <${Mt}
558
- availableModels=${x.availableModels}
559
- selectedModel=${x.selectedModel}
560
- onSelectModel=${x.selectModel}
561
- disabled=${h.isLoading}
570
+ ${e.showModelSelector&&T.availableModels.length>0&&f`
571
+ <${It}
572
+ availableModels=${T.availableModels}
573
+ selectedModel=${T.selectedModel}
574
+ onSelectModel=${T.selectModel}
575
+ thinkingEnabled=${T.thinkingEnabled}
576
+ onToggleThinking=${T.toggleThinking}
577
+ disabled=${_.isLoading}
562
578
  />
563
579
  `}
564
580
 
565
- <${St}
566
- onSend=${D}
567
- onCancel=${h.cancelRun}
568
- isLoading=${h.isLoading}
581
+ <${xt}
582
+ onSend=${R}
583
+ onCancel=${_.cancelRun}
584
+ isLoading=${_.isLoading}
569
585
  placeholder=${e.placeholder}
570
586
  primaryColor=${e.primaryColor}
571
587
  enableVoice=${e.enableVoice}
572
588
  />
573
589
  `:f`
574
- <${xt}
575
- tasks=${T.tasks}
576
- progress=${T.progress}
577
- isLoading=${T.isLoading}
578
- error=${T.error}
579
- onUpdate=${T.updateTask}
580
- onRemove=${T.removeTask}
581
- onClear=${T.clearTasks}
582
- onRefresh=${T.loadTaskList}
590
+ <${Pt}
591
+ tasks=${M.tasks}
592
+ progress=${M.progress}
593
+ isLoading=${M.isLoading}
594
+ error=${M.error}
595
+ onUpdate=${M.updateTask}
596
+ onRemove=${M.removeTask}
597
+ onClear=${M.clearTasks}
598
+ onRefresh=${M.loadTaskList}
583
599
  />
584
600
  `}
585
601
  </div>
586
- `}var Pt={backendUrl:"http://localhost:8000",agentKey:"default-agent",title:"Chat Assistant",subtitle:"How can we help you today?",primaryColor:"#0066cc",position:"bottom-right",defaultJourneyType:"general",enableDebugMode:!0,enableAutoRun:!0,journeyTypes:{},customerPrompts:{},placeholder:"Type your message...",emptyStateTitle:"Start a Conversation",emptyStateMessage:"Send a message to get started.",authStrategy:null,authToken:null,authHeader:null,authTokenPrefix:null,anonymousSessionEndpoint:null,anonymousTokenKey:"chat_widget_anonymous_token",onAuthError:null,anonymousTokenHeader:"X-Anonymous-Token",conversationIdKey:"chat_widget_conversation_id",sessionTokenKey:"chat_widget_session_token",apiPaths:{anonymousSession:"/api/accounts/anonymous-session/",conversations:"/api/agent-runtime/conversations/",runs:"/api/agent-runtime/runs/",runEvents:"/api/agent-runtime/runs/{runId}/events/",simulateCustomer:"/api/agent-runtime/simulate-customer/",ttsVoices:"/api/tts/voices/",ttsSetVoice:"/api/tts/set-voice/",models:"/api/agent-runtime/models/"},apiCaseStyle:"auto",showConversationSidebar:!0,showClearButton:!0,showDebugButton:!0,showTTSButton:!0,showVoiceSettings:!0,showExpandButton:!0,showModelSelector:!1,enableVoice:!0,modelKey:"chat_widget_selected_model",autoRunDelay:1e3,autoRunMode:"automatic",enableTTS:!1,ttsProxyUrl:null,elevenLabsApiKey:null,ttsVoices:{assistant:null,user:null},ttsModel:"eleven_turbo_v2_5",ttsSettings:{stability:.5,similarity_boost:.75,style:0,use_speaker_boost:!0},availableVoices:[],onEvent:null,containerId:null,embedded:!1,metadata:{}};function Ft(e){let t={...Pt.apiPaths,...e.apiPaths||{}};return{...Pt,...e,apiPaths:t}}var Ce=new Map,on=0,P=null,Ue=class{constructor(t={}){this.instanceId=`cw-${++on}`,this.config=Ft(t),this.container=null,this._state={},this._apiRef={current:null},Ce.set(this.instanceId,this)}_handleStateChange=t=>{this._state=t};init(){if(this.config.containerId){if(this.container=document.getElementById(this.config.containerId),!this.container)return console.error(`[ChatWidget] Container not found: ${this.config.containerId}`),this;this.container.classList.add("cw-container-embedded")}else this.container=document.createElement("div"),this.container.id=this.instanceId,this.container.className=`cw-container cw-position-${this.config.position}`,document.body.appendChild(this.container);return this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} initialized`),this}_render(t={}){this.container&&ge(f`<${Rt}
602
+ `}var Nt={backendUrl:"http://localhost:8000",agentKey:"default-agent",title:"Chat Assistant",subtitle:"How can we help you today?",primaryColor:"#0066cc",headerTextColor:null,position:"bottom-right",defaultJourneyType:"general",enableDebugMode:!0,enableAutoRun:!0,journeyTypes:{},customerPrompts:{},placeholder:"Type your message...",emptyStateTitle:"Start a Conversation",emptyStateMessage:"Send a message to get started.",authStrategy:null,authToken:null,authHeader:null,authTokenPrefix:null,anonymousSessionEndpoint:null,anonymousTokenKey:"chat_widget_anonymous_token",onAuthError:null,anonymousTokenHeader:"X-Anonymous-Token",conversationIdKey:"chat_widget_conversation_id",sessionTokenKey:"chat_widget_session_token",apiPaths:{anonymousSession:"/api/accounts/anonymous-session/",conversations:"/api/agent-runtime/conversations/",runs:"/api/agent-runtime/runs/",runEvents:"/api/agent-runtime/runs/{runId}/events/",simulateCustomer:"/api/agent-runtime/simulate-customer/",ttsVoices:"/api/tts/voices/",ttsSetVoice:"/api/tts/set-voice/",models:"/api/agent-runtime/models/"},apiCaseStyle:"auto",showConversationSidebar:!0,showClearButton:!0,showDebugButton:!0,showTTSButton:!0,showVoiceSettings:!0,showExpandButton:!0,showModelSelector:!1,enableVoice:!0,modelKey:"chat_widget_selected_model",autoRunDelay:1e3,autoRunMode:"automatic",enableTTS:!1,ttsProxyUrl:null,elevenLabsApiKey:null,ttsVoices:{assistant:null,user:null},ttsModel:"eleven_turbo_v2_5",ttsSettings:{stability:.5,similarity_boost:.75,style:0,use_speaker_boost:!0},availableVoices:[],onEvent:null,containerId:null,embedded:!1,metadata:{}};function Lt(e){let t={...Nt.apiPaths,...e.apiPaths||{}};return{...Nt,...e,apiPaths:t}}var Te=new Map,dn=0,F=null,Ue=class{constructor(t={}){Be(this,"_handleStateChange",t=>{this._state=t});this.instanceId=`cw-${++dn}`,this.config=Lt(t),this.container=null,this._state={},this._apiRef={current:null},Te.set(this.instanceId,this)}init(){if(this.config.containerId){if(this.container=document.getElementById(this.config.containerId),!this.container)return console.error(`[ChatWidget] Container not found: ${this.config.containerId}`),this;this.container.classList.add("cw-container-embedded")}else this.container=document.createElement("div"),this.container.id=this.instanceId,this.container.className=`cw-container cw-position-${this.config.position}`,document.body.appendChild(this.container);return this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} initialized`),this}_render(t={}){this.container&&ve(f`<${Ot}
587
603
  config=${{...this.config,...t}}
588
604
  onStateChange=${this._handleStateChange}
589
- markdownParser=${Se._enhancedMarkdownParser}
605
+ markdownParser=${Me._enhancedMarkdownParser}
590
606
  apiRef=${this._apiRef}
591
- />`,this.container)}destroy(){this.container&&(ge(null,this.container),this.config.containerId?this.container.classList.remove("cw-container-embedded"):this.container.remove(),this.container=null),Ce.delete(this.instanceId),console.log(`[ChatWidget] Instance ${this.instanceId} destroyed`)}open(){this._apiRef.current?this._apiRef.current.open():this._render({forceOpen:!0})}close(){this._apiRef.current?this._apiRef.current.close():this._render({forceOpen:!1})}send(t){this._apiRef.current&&this._apiRef.current.send(t)}clearMessages(){this._apiRef.current&&this._apiRef.current.clearMessages()}toggleTTS(){this._apiRef.current&&this._apiRef.current.toggleTTS()}stopSpeech(){this._apiRef.current&&this._apiRef.current.stopSpeech()}setAuth(t){this._apiRef.current&&this._apiRef.current.setAuth(t)}clearAuth(){this._apiRef.current&&this._apiRef.current.clearAuth()}getState(){return{...this._state}}getConfig(){return{...this.config}}updateMetadata(t){this.config.metadata={...this.config.metadata,...t},this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} metadata updated:`,t)}updateConfig(t){this.config={...this.config,...t},this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} config updated`)}};function Ot(e={}){return new Ue(e).init()}function an(e={}){return P&&P.destroy(),P=Ot(e),P}function rn(){P&&(P.destroy(),P=null)}function ln(){P&&P.open()}function cn(){P&&P.close()}function un(e){P&&P.send(e)}function dn(){P&&P.clearMessages()}function _n(){P&&P.toggleTTS()}function pn(){P&&P.stopSpeech()}function hn(e){P&&P.setAuth(e)}function fn(){P&&P.clearAuth()}function mn(){return P?P.getState():null}function gn(){return P?P.getConfig():null}var Se={createInstance:Ot,getInstance:e=>Ce.get(e),getAllInstances:()=>Array.from(Ce.values()),init:an,destroy:rn,open:ln,close:cn,send:un,clearMessages:dn,toggleTTS:_n,stopSpeech:pn,setAuth:hn,clearAuth:fn,getState:mn,getConfig:gn,_enhancedMarkdownParser:null};var yn=Se;typeof window<"u"&&(window.ChatWidget=Se);return Wt(vn);})();
607
+ />`,this.container)}destroy(){this.container&&(ve(null,this.container),this.config.containerId?this.container.classList.remove("cw-container-embedded"):this.container.remove(),this.container=null),Te.delete(this.instanceId),console.log(`[ChatWidget] Instance ${this.instanceId} destroyed`)}open(){this._apiRef.current?this._apiRef.current.open():this._render({forceOpen:!0})}close(){this._apiRef.current?this._apiRef.current.close():this._render({forceOpen:!1})}send(t){this._apiRef.current&&this._apiRef.current.send(t)}clearMessages(){this._apiRef.current&&this._apiRef.current.clearMessages()}toggleTTS(){this._apiRef.current&&this._apiRef.current.toggleTTS()}stopSpeech(){this._apiRef.current&&this._apiRef.current.stopSpeech()}setAuth(t){this._apiRef.current&&this._apiRef.current.setAuth(t)}clearAuth(){this._apiRef.current&&this._apiRef.current.clearAuth()}getState(){return{...this._state}}getConfig(){return{...this.config}}updateMetadata(t){this.config.metadata={...this.config.metadata,...t},this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} metadata updated:`,t)}updateConfig(t){this.config={...this.config,...t},this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} config updated`)}};function Wt(e={}){return new Ue(e).init()}function pn(e={}){return F&&F.destroy(),F=Wt(e),F}function _n(){F&&(F.destroy(),F=null)}function hn(){F&&F.open()}function fn(){F&&F.close()}function mn(e){F&&F.send(e)}function gn(){F&&F.clearMessages()}function yn(){F&&F.toggleTTS()}function vn(){F&&F.stopSpeech()}function wn(e){F&&F.setAuth(e)}function $n(){F&&F.clearAuth()}function kn(){return F?F.getState():null}function bn(){return F?F.getConfig():null}var Me={createInstance:Wt,getInstance:e=>Te.get(e),getAllInstances:()=>Array.from(Te.values()),init:pn,destroy:_n,open:hn,close:fn,send:mn,clearMessages:gn,toggleTTS:yn,stopSpeech:vn,setAuth:wn,clearAuth:$n,getState:kn,getConfig:bn,_enhancedMarkdownParser:null};var Cn=Me;typeof window<"u"&&(window.ChatWidget=Me);return Vt(Sn);})();