@makemore/agent-frontend 2.10.0 → 2.11.1

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 de=Object.defineProperty;var Jt=Object.getOwnPropertyDescriptor;var qt=Object.getOwnPropertyNames;var Gt=Object.prototype.hasOwnProperty;var Yt=(e,t,n)=>t in e?de(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Xt=(e,t)=>{for(var n in t)de(e,n,{get:t[n],enumerable:!0})},Qt=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of qt(t))!Gt.call(e,a)&&a!==n&&de(e,a,{get:()=>t[a],enumerable:!(s=Jt(t,a))||s.enumerable});return e};var Zt=e=>Qt(de({},"__esModule",{value:!0}),e);var je=(e,t,n)=>(Yt(e,typeof t!="symbol"?t+"":t,n),n);var An={};Xt(An,{ChatWidget:()=>Ee,default:()=>In});var fe,W,Ye,en,se,ze,Xe,Qe,Ze,De,xe,Ie,tn,le={},et=[],nn=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,me=Array.isArray;function te(e,t){for(var n in t)e[n]=t[n];return e}function Pe(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function ge(e,t,n){var s,a,o,l={};for(o in t)o=="key"?s=t[o]:o=="ref"?a=t[o]:l[o]=t[o];if(arguments.length>2&&(l.children=arguments.length>3?fe.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(o in e.defaultProps)l[o]===void 0&&(l[o]=e.defaultProps[o]);return _e(e,l,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??++Ye,__i:-1,__u:0};return a==null&&W.vnode!=null&&W.vnode(o),o}function ye(e){return e.children}function re(e,t){this.props=e,this.context=t}function oe(e,t){if(t==null)return e.__?oe(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"?oe(e):null}function tt(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 tt(e)}}function Je(e){(!e.__d&&(e.__d=!0)&&se.push(e)&&!he.__r++||ze!=W.debounceRendering)&&((ze=W.debounceRendering)||Xe)(he)}function he(){for(var e,t,n,s,a,o,l,i=1;se.length;)se.length>i&&se.sort(Qe),e=se.shift(),i=se.length,e.__d&&(n=void 0,s=void 0,a=(s=(t=e).__v).__e,o=[],l=[],t.__P&&((n=te({},s)).__v=s.__v+1,W.vnode&&W.vnode(n),Fe(t.__P,n,s,t.__n,t.__P.namespaceURI,32&s.__u?[a]:null,o,a??oe(s),!!(32&s.__u),l),n.__v=s.__v,n.__.__k[n.__i]=n,ot(o,n,l),s.__e=s.__=null,n.__e!=a&&tt(n)));he.__r=0}function nt(e,t,n,s,a,o,l,i,u,c,p){var r,d,h,f,y,g,m,k=s&&s.__k||et,$=t.length;for(u=sn(n,t,k,u,$),r=0;r<$;r++)(h=n.__k[r])!=null&&(d=h.__i==-1?le:k[h.__i]||le,h.__i=r,g=Fe(e,h,d,a,o,l,i,u,c,p),f=h.__e,h.ref&&d.ref!=h.ref&&(d.ref&&Re(d.ref,null,h),p.push(h.ref,h.__c||f,h)),y==null&&f!=null&&(y=f),(m=!!(4&h.__u))||d.__k===h.__k?u=st(h,u,e,m):typeof h.type=="function"&&g!==void 0?u=g:f&&(u=f.nextSibling),h.__u&=-7);return n.__e=y,u}function sn(e,t,n,s,a){var o,l,i,u,c,p=n.length,r=p,d=0;for(e.__k=new Array(a),o=0;o<a;o++)(l=t[o])!=null&&typeof l!="boolean"&&typeof l!="function"?(typeof l=="string"||typeof l=="number"||typeof l=="bigint"||l.constructor==String?l=e.__k[o]=_e(null,l,null,null,null):me(l)?l=e.__k[o]=_e(ye,{children:l},null,null,null):l.constructor===void 0&&l.__b>0?l=e.__k[o]=_e(l.type,l.props,l.key,l.ref?l.ref:null,l.__v):e.__k[o]=l,u=o+d,l.__=e,l.__b=e.__b+1,i=null,(c=l.__i=on(l,n,u,r))!=-1&&(r--,(i=n[c])&&(i.__u|=2)),i==null||i.__v==null?(c==-1&&(a>p?d--:a<p&&d++),typeof l.type!="function"&&(l.__u|=4)):c!=u&&(c==u-1?d--:c==u+1?d++:(c>u?d--:d++,l.__u|=4))):e.__k[o]=null;if(r)for(o=0;o<p;o++)(i=n[o])!=null&&!(2&i.__u)&&(i.__e==s&&(s=oe(i)),rt(i,i));return s}function st(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=st(a[o],t,n,s));return t}e.__e!=t&&(s&&(t&&e.type&&!t.parentNode&&(t=oe(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function on(e,t,n,s){var a,o,l,i=e.key,u=e.type,c=t[n],p=c!=null&&(2&c.__u)==0;if(c===null&&i==null||p&&i==c.key&&u==c.type)return n;if(s>(p?1:0)){for(a=n-1,o=n+1;a>=0||o<t.length;)if((c=t[l=a>=0?a--:o++])!=null&&!(2&c.__u)&&i==c.key&&u==c.type)return l}return-1}function qe(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||nn.test(t)?n:n+"px"}function pe(e,t,n,s,a){var o,l;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||qe(e.style,t,"");if(n)for(t in n)s&&n[t]==s[t]||qe(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")o=t!=(t=t.replace(Ze,"$1")),l=t.toLowerCase(),t=l in e||t=="onFocusOut"||t=="onFocusIn"?l.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?s?n.u=s.u:(n.u=De,e.addEventListener(t,o?Ie:xe,o)):e.removeEventListener(t,o?Ie: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 Ge(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t.t==null)t.t=De++;else if(t.t<n.u)return;return n(W.event?W.event(t):t)}}}function Fe(e,t,n,s,a,o,l,i,u,c){var p,r,d,h,f,y,g,m,k,$,N,j,I,H,F,R,J,O=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(u=!!(32&n.__u),o=[i=t.__e=n.__e]),(p=W.__b)&&p(t);e:if(typeof O=="function")try{if(m=t.props,k="prototype"in O&&O.prototype.render,$=(p=O.contextType)&&s[p.__c],N=p?$?$.props.value:p.__:s,n.__c?g=(r=t.__c=n.__c).__=r.__E:(k?t.__c=r=new O(m,N):(t.__c=r=new re(m,N),r.constructor=O,r.render=rn),$&&$.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&&O.getDerivedStateFromProps!=null&&(r.__s==r.state&&(r.__s=te({},r.__s)),te(r.__s,O.getDerivedStateFromProps(m,r.__s))),h=r.props,f=r.state,r.__v=t,d)k&&O.getDerivedStateFromProps==null&&r.componentWillMount!=null&&r.componentWillMount(),k&&r.componentDidMount!=null&&r.__h.push(r.componentDidMount);else{if(k&&O.getDerivedStateFromProps==null&&m!==h&&r.componentWillReceiveProps!=null&&r.componentWillReceiveProps(m,N),t.__v==n.__v||!r.__e&&r.shouldComponentUpdate!=null&&r.shouldComponentUpdate(m,r.__s,N)===!1){for(t.__v!=n.__v&&(r.props=m,r.state=r.__s,r.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(w){w&&(w.__=t)}),j=0;j<r._sb.length;j++)r.__h.push(r._sb[j]);r._sb=[],r.__h.length&&l.push(r);break e}r.componentWillUpdate!=null&&r.componentWillUpdate(m,r.__s,N),k&&r.componentDidUpdate!=null&&r.__h.push(function(){r.componentDidUpdate(h,f,y)})}if(r.context=N,r.props=m,r.__P=e,r.__e=!1,I=W.__r,H=0,k){for(r.state=r.__s,r.__d=!1,I&&I(t),p=r.render(r.props,r.state,r.context),F=0;F<r._sb.length;F++)r.__h.push(r._sb[F]);r._sb=[]}else do r.__d=!1,I&&I(t),p=r.render(r.props,r.state,r.context),r.state=r.__s;while(r.__d&&++H<25);r.state=r.__s,r.getChildContext!=null&&(s=te(te({},s),r.getChildContext())),k&&!d&&r.getSnapshotBeforeUpdate!=null&&(y=r.getSnapshotBeforeUpdate(h,f)),R=p,p!=null&&p.type===ye&&p.key==null&&(R=at(p.props.children)),i=nt(e,me(R)?R:[R],t,n,s,a,o,l,i,u,c),r.base=t.__e,t.__u&=-161,r.__h.length&&l.push(r),g&&(r.__E=r.__=null)}catch(w){if(t.__v=null,u||o!=null)if(w.then){for(t.__u|=u?160:128;i&&i.nodeType==8&&i.nextSibling;)i=i.nextSibling;o[o.indexOf(i)]=null,t.__e=i}else{for(J=o.length;J--;)Pe(o[J]);Ae(t)}else t.__e=n.__e,t.__k=n.__k,w.then||Ae(t);W.__e(w,t,n)}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):i=t.__e=an(n.__e,t,n,s,a,o,l,u,c);return(p=W.diffed)&&p(t),128&t.__u?void 0:i}function Ae(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(Ae)}function ot(e,t,n){for(var s=0;s<n.length;s++)Re(n[s],n[++s],n[++s]);W.__c&&W.__c(t,e),e.some(function(a){try{e=a.__h,a.__h=[],e.some(function(o){o.call(a)})}catch(o){W.__e(o,a.__v)}})}function at(e){return typeof e!="object"||e==null||e.__b&&e.__b>0?e:me(e)?e.map(at):te({},e)}function an(e,t,n,s,a,o,l,i,u){var c,p,r,d,h,f,y,g=n.props||le,m=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(c=0;c<o.length;c++)if((h=o[c])&&"setAttribute"in h==!!k&&(k?h.localName==k:h.nodeType==3)){e=h,o[c]=null;break}}if(e==null){if(k==null)return document.createTextNode(m);e=document.createElementNS(a,k,m.is&&m),i&&(W.__m&&W.__m(t,o),i=!1),o=null}if(k==null)g===m||i&&e.data==m||(e.data=m);else{if(o=o&&fe.call(e.childNodes),!i&&o!=null)for(g={},c=0;c<e.attributes.length;c++)g[(h=e.attributes[c]).name]=h.value;for(c in g)if(h=g[c],c!="children"){if(c=="dangerouslySetInnerHTML")r=h;else if(!(c in m)){if(c=="value"&&"defaultValue"in m||c=="checked"&&"defaultChecked"in m)continue;pe(e,c,null,h,a)}}for(c in m)h=m[c],c=="children"?d=h:c=="dangerouslySetInnerHTML"?p=h:c=="value"?f=h:c=="checked"?y=h:i&&typeof h!="function"||g[c]===h||pe(e,c,h,g[c],a);if(p)i||r&&(p.__html==r.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),t.__k=[];else if(r&&(e.innerHTML=""),nt(t.type=="template"?e.content:e,me(d)?d:[d],t,n,s,k=="foreignObject"?"http://www.w3.org/1999/xhtml":a,o,l,o?o[0]:n.__k&&oe(n,0),i,u),o!=null)for(c=o.length;c--;)Pe(o[c]);i||(c="value",k=="progress"&&f==null?e.removeAttribute("value"):f!=null&&(f!==e[c]||k=="progress"&&!f||k=="option"&&f!=g[c])&&pe(e,c,f,g[c],a),c="checked",y!=null&&y!=e[c]&&pe(e,c,y,g[c],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){W.__e(a,n)}}function rt(e,t,n){var s,a;if(W.unmount&&W.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){W.__e(o,t)}s.base=s.__P=null}if(s=e.__k)for(a=0;a<s.length;a++)s[a]&&rt(s[a],t,n||typeof e.type!="function");n||Pe(e.__e),e.__c=e.__=e.__e=void 0}function rn(e,t,n){return this.constructor(e,n)}function ve(e,t,n){var s,a,o,l;t==document&&(t=document.documentElement),W.__&&W.__(e,t),a=(s=typeof n=="function")?null:n&&n.__k||t.__k,o=[],l=[],Fe(t,e=(!s&&n||t).__k=ge(ye,null,[e]),a||le,le,t.namespaceURI,!s&&n?[n]:a?null:t.firstChild?fe.call(t.childNodes):null,o,!s&&n?n:a?a.__e:t.firstChild,s,l),ot(o,e,l)}fe=et.slice,W={__e:function(e,t,n,s){for(var a,o,l;t=t.__;)if((a=t.__c)&&!a.__)try{if((o=a.constructor)&&o.getDerivedStateFromError!=null&&(a.setState(o.getDerivedStateFromError(e)),l=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(e,s||{}),l=a.__d),l)return a.__E=a}catch(i){e=i}throw e}},Ye=0,en=function(e){return e!=null&&e.constructor===void 0},re.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=te({},this.state),typeof e=="function"&&(e=e(te({},n),this.props)),e&&te(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Je(this))},re.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Je(this))},re.prototype.render=ye,se=[],Xe=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Qe=function(e,t){return e.__v.__b-t.__v.__b},he.__r=0,Ze=/(PointerCapture)$|Capture$/i,De=0,xe=Ge(!1),Ie=Ge(!0),tn=0;var it=function(e,t,n,s){var a;t[0]=0;for(var o=1;o<t.length;o++){var l=t[o++],i=t[o]?(t[0]|=l?1:2,n[t[o++]]):t[++o];l===3?s[0]=i:l===4?s[1]=Object.assign(s[1]||{},i):l===5?(s[1]=s[1]||{})[t[++o]]=i:l===6?s[1][t[++o]]+=i+"":l?(a=e.apply(i,it(e,i,n,["",null])),s.push(a),i[0]?t[0]|=2:(t[o-2]=0,t[o]=a)):s.push(i)}return s},lt=new Map;function ct(e){var t=lt.get(this);return t||(t=new Map,lt.set(this,t)),(t=it(this,t.get(e)||(t.set(e,t=function(n){for(var s,a,o=1,l="",i="",u=[0],c=function(d){o===1&&(d||(l=l.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?u.push(0,d,l):o===3&&(d||l)?(u.push(3,d,l),o=2):o===2&&l==="..."&&d?u.push(4,d,0):o===2&&l&&!d?u.push(5,0,!0,l):o>=5&&((l||!d&&o===5)&&(u.push(o,0,l,a),o=6),d&&(u.push(o,d,0,a),o=6)),l=""},p=0;p<n.length;p++){p&&(o===1&&c(),c(p));for(var r=0;r<n[p].length;r++)s=n[p][r],o===1?s==="<"?(c(),u=[u],o=3):l+=s:o===4?l==="--"&&s===">"?(o=1,l=""):l=s+l[0]:i?s===i?i="":l+=s:s==='"'||s==="'"?i=s:s===">"?(c(),o=1):o&&(s==="="?(o=5,a=l,l=""):s==="/"&&(o<5||n[p][r+1]===">")?(c(),o===3&&(u=u[0]),o=u,(u=u[0]).push(2,0,o),o=0):s===" "||s===" "||s===`
2
- `||s==="\r"?(c(),o=2):l+=s),o===3&&l==="!--"&&(o=4,u=u[0])}return c(),u}(e)),t),arguments,[])).length>1?t:t[0]}var _=ct.bind(ge);var ie,z,He,ut,ce=0,yt=[],q=W,dt=q.__b,pt=q.__r,_t=q.diffed,ht=q.__c,ft=q.unmount,mt=q.__;function Le(e,t){q.__h&&q.__h(z,e,ce||t),ce=0;var n=z.__H||(z.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function T(e){return ce=1,ln($t,e)}function ln(e,t,n){var s=Le(ie++,2);if(s.t=e,!s.__c&&(s.__=[n?n(t):$t(void 0,t),function(i){var u=s.__N?s.__N[0]:s.__[0],c=s.t(u,i);u!==c&&(s.__N=[c,s.__[1]],s.__c.setState({}))}],s.__c=z,!z.__f)){var a=function(i,u,c){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,i,u,c);var r=s.__c.props!==i;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,i,u,c)||r};z.__f=!0;var o=z.shouldComponentUpdate,l=z.componentWillUpdate;z.componentWillUpdate=function(i,u,c){if(this.__e){var p=o;o=void 0,a(i,u,c),o=p}l&&l.call(this,i,u,c)},z.shouldComponentUpdate=a}return s.__N||s.__}function V(e,t){var n=Le(ie++,3);!q.__s&&vt(n.__H,t)&&(n.__=e,n.u=t,z.__H.__h.push(n))}function Q(e){return ce=5,ae(function(){return{current:e}},[])}function ae(e,t){var n=Le(ie++,7);return vt(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function E(e,t){return ce=8,ae(function(){return e},t)}function cn(){for(var e;e=yt.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach($e),e.__H.__h.forEach(Oe),e.__H.__h=[]}catch(t){e.__H.__h=[],q.__e(t,e.__v)}}q.__b=function(e){z=null,dt&&dt(e)},q.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),mt&&mt(e,t)},q.__r=function(e){pt&&pt(e),ie=0;var t=(z=e.__c).__H;t&&(He===z?(t.__h=[],z.__h=[],t.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.forEach($e),t.__h.forEach(Oe),t.__h=[],ie=0)),He=z},q.diffed=function(e){_t&&_t(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(yt.push(t)!==1&&ut===q.requestAnimationFrame||((ut=q.requestAnimationFrame)||un)(cn)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),He=z=null},q.__c=function(e,t){t.some(function(n){try{n.__h.forEach($e),n.__h=n.__h.filter(function(s){return!s.__||Oe(s)})}catch(s){t.some(function(a){a.__h&&(a.__h=[])}),t=[],q.__e(s,n.__v)}}),ht&&ht(e,t)},q.unmount=function(e){ft&&ft(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(s){try{$e(s)}catch(a){t=a}}),n.__H=void 0,t&&q.__e(t,n.__v))};var gt=typeof requestAnimationFrame=="function";function un(e){var t,n=function(){clearTimeout(s),gt&&cancelAnimationFrame(t),setTimeout(e)},s=setTimeout(n,35);gt&&(t=requestAnimationFrame(n))}function $e(e){var t=z,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),z=t}function Oe(e){var t=z;e.__c=e.__(),z=t}function vt(e,t){return!e||e.length!==t.length||t.some(function(n,s){return n!==e[s]})}function $t(e,t){return typeof t=="function"?t(e):t}function dn(e){return e.replace(/_([a-z])/g,(t,n)=>n.toUpperCase())}function Ne(e){return e.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function we(e){return Array.isArray(e)?e.map(we):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[dn(t),we(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 G(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}function wt(e){if(!e)return"";try{let t=new Date(e),s=new Date-t,a=Math.floor(s/6e4),o=Math.floor(s/36e5),l=Math.floor(s/864e5);return a<1?"Just now":a<60?`${a}m ago`:o<24?`${o}h ago`:l<7?`${l}d ago`:t.toLocaleDateString()}catch{return""}}function kt(e,t=null){if(t)return t(e);let n=G(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 bt(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 Ct(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 pn(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(i=>i+i).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,l=i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4);return .2126*l(s)+.7152*l(a)+.0722*l(o)}function St(e){return pn(e)>.179?"#000000":"#ffffff"}function Tt({config:e,debugMode:t,isExpanded:n,isSpeaking:s,messagesCount:a,isLoading:o,currentAgent:l,onClose:i,onToggleExpand:u,onToggleDebug:c,onToggleTTS:p,onClear:r,onToggleSidebar:d}){let{title:h,primaryColor:f,embedded:y,showConversationSidebar:g,showClearButton:m,showDebugButton:k,enableDebugMode:$,showTTSButton:N,showExpandButton:j,enableTTS:I,elevenLabsApiKey:H,ttsProxyUrl:F}=e,R=H||F;return _`
1
+ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Yt=Object.getOwnPropertyDescriptor;var Xt=Object.getOwnPropertyNames;var Qt=Object.prototype.hasOwnProperty;var Zt=(e,t,n)=>t in e?de(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var en=(e,t)=>{for(var n in t)de(e,n,{get:t[n],enumerable:!0})},tn=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Xt(t))!Qt.call(e,a)&&a!==n&&de(e,a,{get:()=>t[a],enumerable:!(s=Yt(t,a))||s.enumerable});return e};var nn=e=>tn(de({},"__esModule",{value:!0}),e);var je=(e,t,n)=>(Zt(e,typeof t!="symbol"?t+"":t,n),n);var Vn={};en(Vn,{ChatWidget:()=>xe,default:()=>Bn});var fe,U,Ye,sn,se,Je,Xe,Qe,Ze,Pe,Ae,Ie,on,le={},et=[],an=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,me=Array.isArray;function te(e,t){for(var n in t)e[n]=t[n];return e}function Re(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function ge(e,t,n){var s,a,o,l={};for(o in t)o=="key"?s=t[o]:o=="ref"?a=t[o]:l[o]=t[o];if(arguments.length>2&&(l.children=arguments.length>3?fe.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(o in e.defaultProps)l[o]===void 0&&(l[o]=e.defaultProps[o]);return _e(e,l,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??++Ye,__i:-1,__u:0};return a==null&&U.vnode!=null&&U.vnode(o),o}function ve(e){return e.children}function re(e,t){this.props=e,this.context=t}function oe(e,t){if(t==null)return e.__?oe(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"?oe(e):null}function tt(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 tt(e)}}function ze(e){(!e.__d&&(e.__d=!0)&&se.push(e)&&!he.__r++||Je!=U.debounceRendering)&&((Je=U.debounceRendering)||Xe)(he)}function he(){for(var e,t,n,s,a,o,l,c=1;se.length;)se.length>c&&se.sort(Qe),e=se.shift(),c=se.length,e.__d&&(n=void 0,s=void 0,a=(s=(t=e).__v).__e,o=[],l=[],t.__P&&((n=te({},s)).__v=s.__v+1,U.vnode&&U.vnode(n),Fe(t.__P,n,s,t.__n,t.__P.namespaceURI,32&s.__u?[a]:null,o,a??oe(s),!!(32&s.__u),l),n.__v=s.__v,n.__.__k[n.__i]=n,ot(o,n,l),s.__e=s.__=null,n.__e!=a&&tt(n)));he.__r=0}function nt(e,t,n,s,a,o,l,c,d,u,p){var r,_,h,f,b,v,m,k=s&&s.__k||et,$=t.length;for(d=rn(n,t,k,d,$),r=0;r<$;r++)(h=n.__k[r])!=null&&(_=h.__i==-1?le:k[h.__i]||le,h.__i=r,v=Fe(e,h,_,a,o,l,c,d,u,p),f=h.__e,h.ref&&_.ref!=h.ref&&(_.ref&&Oe(_.ref,null,h),p.push(h.ref,h.__c||f,h)),b==null&&f!=null&&(b=f),(m=!!(4&h.__u))||_.__k===h.__k?d=st(h,d,e,m):typeof h.type=="function"&&v!==void 0?d=v:f&&(d=f.nextSibling),h.__u&=-7);return n.__e=b,d}function rn(e,t,n,s,a){var o,l,c,d,u,p=n.length,r=p,_=0;for(e.__k=new Array(a),o=0;o<a;o++)(l=t[o])!=null&&typeof l!="boolean"&&typeof l!="function"?(typeof l=="string"||typeof l=="number"||typeof l=="bigint"||l.constructor==String?l=e.__k[o]=_e(null,l,null,null,null):me(l)?l=e.__k[o]=_e(ve,{children:l},null,null,null):l.constructor===void 0&&l.__b>0?l=e.__k[o]=_e(l.type,l.props,l.key,l.ref?l.ref:null,l.__v):e.__k[o]=l,d=o+_,l.__=e,l.__b=e.__b+1,c=null,(u=l.__i=ln(l,n,d,r))!=-1&&(r--,(c=n[u])&&(c.__u|=2)),c==null||c.__v==null?(u==-1&&(a>p?_--:a<p&&_++),typeof l.type!="function"&&(l.__u|=4)):u!=d&&(u==d-1?_--:u==d+1?_++:(u>d?_--:_++,l.__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=oe(c)),rt(c,c));return s}function st(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=st(a[o],t,n,s));return t}e.__e!=t&&(s&&(t&&e.type&&!t.parentNode&&(t=oe(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function ln(e,t,n,s){var a,o,l,c=e.key,d=e.type,u=t[n],p=u!=null&&(2&u.__u)==0;if(u===null&&c==null||p&&c==u.key&&d==u.type)return n;if(s>(p?1:0)){for(a=n-1,o=n+1;a>=0||o<t.length;)if((u=t[l=a>=0?a--:o++])!=null&&!(2&u.__u)&&c==u.key&&d==u.type)return l}return-1}function qe(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||an.test(t)?n:n+"px"}function pe(e,t,n,s,a){var o,l;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||qe(e.style,t,"");if(n)for(t in n)s&&n[t]==s[t]||qe(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")o=t!=(t=t.replace(Ze,"$1")),l=t.toLowerCase(),t=l in e||t=="onFocusOut"||t=="onFocusIn"?l.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?Ie:Ae,o)):e.removeEventListener(t,o?Ie:Ae,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 Ge(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(U.event?U.event(t):t)}}}function Fe(e,t,n,s,a,o,l,c,d,u){var p,r,_,h,f,b,v,m,k,$,O,q,P,H,F,L,j,N=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(d=!!(32&n.__u),o=[c=t.__e=n.__e]),(p=U.__b)&&p(t);e:if(typeof N=="function")try{if(m=t.props,k="prototype"in N&&N.prototype.render,$=(p=N.contextType)&&s[p.__c],O=p?$?$.props.value:p.__:s,n.__c?v=(r=t.__c=n.__c).__=r.__E:(k?t.__c=r=new N(m,O):(t.__c=r=new re(m,O),r.constructor=N,r.render=un),$&&$.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&&N.getDerivedStateFromProps!=null&&(r.__s==r.state&&(r.__s=te({},r.__s)),te(r.__s,N.getDerivedStateFromProps(m,r.__s))),h=r.props,f=r.state,r.__v=t,_)k&&N.getDerivedStateFromProps==null&&r.componentWillMount!=null&&r.componentWillMount(),k&&r.componentDidMount!=null&&r.__h.push(r.componentDidMount);else{if(k&&N.getDerivedStateFromProps==null&&m!==h&&r.componentWillReceiveProps!=null&&r.componentWillReceiveProps(m,O),t.__v==n.__v||!r.__e&&r.shouldComponentUpdate!=null&&r.shouldComponentUpdate(m,r.__s,O)===!1){for(t.__v!=n.__v&&(r.props=m,r.state=r.__s,r.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(w){w&&(w.__=t)}),q=0;q<r._sb.length;q++)r.__h.push(r._sb[q]);r._sb=[],r.__h.length&&l.push(r);break e}r.componentWillUpdate!=null&&r.componentWillUpdate(m,r.__s,O),k&&r.componentDidUpdate!=null&&r.__h.push(function(){r.componentDidUpdate(h,f,b)})}if(r.context=O,r.props=m,r.__P=e,r.__e=!1,P=U.__r,H=0,k){for(r.state=r.__s,r.__d=!1,P&&P(t),p=r.render(r.props,r.state,r.context),F=0;F<r._sb.length;F++)r.__h.push(r._sb[F]);r._sb=[]}else do r.__d=!1,P&&P(t),p=r.render(r.props,r.state,r.context),r.state=r.__s;while(r.__d&&++H<25);r.state=r.__s,r.getChildContext!=null&&(s=te(te({},s),r.getChildContext())),k&&!_&&r.getSnapshotBeforeUpdate!=null&&(b=r.getSnapshotBeforeUpdate(h,f)),L=p,p!=null&&p.type===ve&&p.key==null&&(L=at(p.props.children)),c=nt(e,me(L)?L:[L],t,n,s,a,o,l,c,d,u),r.base=t.__e,t.__u&=-161,r.__h.length&&l.push(r),v&&(r.__E=r.__=null)}catch(w){if(t.__v=null,d||o!=null)if(w.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(j=o.length;j--;)Re(o[j]);De(t)}else t.__e=n.__e,t.__k=n.__k,w.then||De(t);U.__e(w,t,n)}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=cn(n.__e,t,n,s,a,o,l,d,u);return(p=U.diffed)&&p(t),128&t.__u?void 0:c}function De(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(De)}function ot(e,t,n){for(var s=0;s<n.length;s++)Oe(n[s],n[++s],n[++s]);U.__c&&U.__c(t,e),e.some(function(a){try{e=a.__h,a.__h=[],e.some(function(o){o.call(a)})}catch(o){U.__e(o,a.__v)}})}function at(e){return typeof e!="object"||e==null||e.__b&&e.__b>0?e:me(e)?e.map(at):te({},e)}function cn(e,t,n,s,a,o,l,c,d){var u,p,r,_,h,f,b,v=n.props||le,m=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(u=0;u<o.length;u++)if((h=o[u])&&"setAttribute"in h==!!k&&(k?h.localName==k:h.nodeType==3)){e=h,o[u]=null;break}}if(e==null){if(k==null)return document.createTextNode(m);e=document.createElementNS(a,k,m.is&&m),c&&(U.__m&&U.__m(t,o),c=!1),o=null}if(k==null)v===m||c&&e.data==m||(e.data=m);else{if(o=o&&fe.call(e.childNodes),!c&&o!=null)for(v={},u=0;u<e.attributes.length;u++)v[(h=e.attributes[u]).name]=h.value;for(u in v)if(h=v[u],u!="children"){if(u=="dangerouslySetInnerHTML")r=h;else if(!(u in m)){if(u=="value"&&"defaultValue"in m||u=="checked"&&"defaultChecked"in m)continue;pe(e,u,null,h,a)}}for(u in m)h=m[u],u=="children"?_=h:u=="dangerouslySetInnerHTML"?p=h:u=="value"?f=h:u=="checked"?b=h:c&&typeof h!="function"||v[u]===h||pe(e,u,h,v[u],a);if(p)c||r&&(p.__html==r.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),t.__k=[];else if(r&&(e.innerHTML=""),nt(t.type=="template"?e.content:e,me(_)?_:[_],t,n,s,k=="foreignObject"?"http://www.w3.org/1999/xhtml":a,o,l,o?o[0]:n.__k&&oe(n,0),c,d),o!=null)for(u=o.length;u--;)Re(o[u]);c||(u="value",k=="progress"&&f==null?e.removeAttribute("value"):f!=null&&(f!==e[u]||k=="progress"&&!f||k=="option"&&f!=v[u])&&pe(e,u,f,v[u],a),u="checked",b!=null&&b!=e[u]&&pe(e,u,b,v[u],a))}return e}function Oe(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){U.__e(a,n)}}function rt(e,t,n){var s,a;if(U.unmount&&U.unmount(e),(s=e.ref)&&(s.current&&s.current!=e.__e||Oe(s,null,t)),(s=e.__c)!=null){if(s.componentWillUnmount)try{s.componentWillUnmount()}catch(o){U.__e(o,t)}s.base=s.__P=null}if(s=e.__k)for(a=0;a<s.length;a++)s[a]&&rt(s[a],t,n||typeof e.type!="function");n||Re(e.__e),e.__c=e.__=e.__e=void 0}function un(e,t,n){return this.constructor(e,n)}function ye(e,t,n){var s,a,o,l;t==document&&(t=document.documentElement),U.__&&U.__(e,t),a=(s=typeof n=="function")?null:n&&n.__k||t.__k,o=[],l=[],Fe(t,e=(!s&&n||t).__k=ge(ve,null,[e]),a||le,le,t.namespaceURI,!s&&n?[n]:a?null:t.firstChild?fe.call(t.childNodes):null,o,!s&&n?n:a?a.__e:t.firstChild,s,l),ot(o,e,l)}fe=et.slice,U={__e:function(e,t,n,s){for(var a,o,l;t=t.__;)if((a=t.__c)&&!a.__)try{if((o=a.constructor)&&o.getDerivedStateFromError!=null&&(a.setState(o.getDerivedStateFromError(e)),l=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(e,s||{}),l=a.__d),l)return a.__E=a}catch(c){e=c}throw e}},Ye=0,sn=function(e){return e!=null&&e.constructor===void 0},re.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=te({},this.state),typeof e=="function"&&(e=e(te({},n),this.props)),e&&te(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),ze(this))},re.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),ze(this))},re.prototype.render=ve,se=[],Xe=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Qe=function(e,t){return e.__v.__b-t.__v.__b},he.__r=0,Ze=/(PointerCapture)$|Capture$/i,Pe=0,Ae=Ge(!1),Ie=Ge(!0),on=0;var it=function(e,t,n,s){var a;t[0]=0;for(var o=1;o<t.length;o++){var l=t[o++],c=t[o]?(t[0]|=l?1:2,n[t[o++]]):t[++o];l===3?s[0]=c:l===4?s[1]=Object.assign(s[1]||{},c):l===5?(s[1]=s[1]||{})[t[++o]]=c:l===6?s[1][t[++o]]+=c+"":l?(a=e.apply(c,it(e,c,n,["",null])),s.push(a),c[0]?t[0]|=2:(t[o-2]=0,t[o]=a)):s.push(c)}return s},lt=new Map;function ct(e){var t=lt.get(this);return t||(t=new Map,lt.set(this,t)),(t=it(this,t.get(e)||(t.set(e,t=function(n){for(var s,a,o=1,l="",c="",d=[0],u=function(_){o===1&&(_||(l=l.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?d.push(0,_,l):o===3&&(_||l)?(d.push(3,_,l),o=2):o===2&&l==="..."&&_?d.push(4,_,0):o===2&&l&&!_?d.push(5,0,!0,l):o>=5&&((l||!_&&o===5)&&(d.push(o,0,l,a),o=6),_&&(d.push(o,_,0,a),o=6)),l=""},p=0;p<n.length;p++){p&&(o===1&&u(),u(p));for(var r=0;r<n[p].length;r++)s=n[p][r],o===1?s==="<"?(u(),d=[d],o=3):l+=s:o===4?l==="--"&&s===">"?(o=1,l=""):l=s+l[0]:c?s===c?c="":l+=s:s==='"'||s==="'"?c=s:s===">"?(u(),o=1):o&&(s==="="?(o=5,a=l,l=""):s==="/"&&(o<5||n[p][r+1]===">")?(u(),o===3&&(d=d[0]),o=d,(d=d[0]).push(2,0,o),o=0):s===" "||s===" "||s===`
2
+ `||s==="\r"?(u(),o=2):l+=s),o===3&&l==="!--"&&(o=4,d=d[0])}return u(),d}(e)),t),arguments,[])).length>1?t:t[0]}var i=ct.bind(ge);var ie,J,He,ut,ce=0,vt=[],G=U,dt=G.__b,pt=G.__r,_t=G.diffed,ht=G.__c,ft=G.unmount,mt=G.__;function Ne(e,t){G.__h&&G.__h(J,e,ce||t),ce=0;var n=J.__H||(J.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function S(e){return ce=1,dn($t,e)}function dn(e,t,n){var s=Ne(ie++,2);if(s.t=e,!s.__c&&(s.__=[n?n(t):$t(void 0,t),function(c){var d=s.__N?s.__N[0]:s.__[0],u=s.t(d,c);d!==u&&(s.__N=[u,s.__[1]],s.__c.setState({}))}],s.__c=J,!J.__f)){var a=function(c,d,u){if(!s.__c.__H)return!0;var p=s.__c.__H.__.filter(function(_){return!!_.__c});if(p.every(function(_){return!_.__N}))return!o||o.call(this,c,d,u);var r=s.__c.props!==c;return p.forEach(function(_){if(_.__N){var h=_.__[0];_.__=_.__N,_.__N=void 0,h!==_.__[0]&&(r=!0)}}),o&&o.call(this,c,d,u)||r};J.__f=!0;var o=J.shouldComponentUpdate,l=J.componentWillUpdate;J.componentWillUpdate=function(c,d,u){if(this.__e){var p=o;o=void 0,a(c,d,u),o=p}l&&l.call(this,c,d,u)},J.shouldComponentUpdate=a}return s.__N||s.__}function B(e,t){var n=Ne(ie++,3);!G.__s&&yt(n.__H,t)&&(n.__=e,n.u=t,J.__H.__h.push(n))}function Q(e){return ce=5,ae(function(){return{current:e}},[])}function ae(e,t){var n=Ne(ie++,7);return yt(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function x(e,t){return ce=8,ae(function(){return e},t)}function pn(){for(var e;e=vt.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach($e),e.__H.__h.forEach(Le),e.__H.__h=[]}catch(t){e.__H.__h=[],G.__e(t,e.__v)}}G.__b=function(e){J=null,dt&&dt(e)},G.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),mt&&mt(e,t)},G.__r=function(e){pt&&pt(e),ie=0;var t=(J=e.__c).__H;t&&(He===J?(t.__h=[],J.__h=[],t.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.forEach($e),t.__h.forEach(Le),t.__h=[],ie=0)),He=J},G.diffed=function(e){_t&&_t(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(vt.push(t)!==1&&ut===G.requestAnimationFrame||((ut=G.requestAnimationFrame)||_n)(pn)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),He=J=null},G.__c=function(e,t){t.some(function(n){try{n.__h.forEach($e),n.__h=n.__h.filter(function(s){return!s.__||Le(s)})}catch(s){t.some(function(a){a.__h&&(a.__h=[])}),t=[],G.__e(s,n.__v)}}),ht&&ht(e,t)},G.unmount=function(e){ft&&ft(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(s){try{$e(s)}catch(a){t=a}}),n.__H=void 0,t&&G.__e(t,n.__v))};var gt=typeof requestAnimationFrame=="function";function _n(e){var t,n=function(){clearTimeout(s),gt&&cancelAnimationFrame(t),setTimeout(e)},s=setTimeout(n,35);gt&&(t=requestAnimationFrame(n))}function $e(e){var t=J,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),J=t}function Le(e){var t=J;e.__c=e.__(),J=t}function yt(e,t){return!e||e.length!==t.length||t.some(function(n,s){return n!==e[s]})}function $t(e,t){return typeof t=="function"?t(e):t}function hn(e){return e.replace(/_([a-z])/g,(t,n)=>n.toUpperCase())}function Ke(e){return e.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function we(e){return Array.isArray(e)?e.map(we):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[hn(t),we(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])=>[Ke(t),ke(n)])):e}function be(){return"msg-"+Date.now()+"-"+Math.random().toString(36).substr(2,9)}function z(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}function wt(e){if(!e)return"";try{let t=new Date(e),s=new Date-t,a=Math.floor(s/6e4),o=Math.floor(s/36e5),l=Math.floor(s/864e5);return a<1?"Just now":a<60?`${a}m ago`:o<24?`${o}h ago`:l<7?`${l}d ago`:t.toLocaleDateString()}catch{return""}}function kt(e,t=null){if(t)return t(e);let n=z(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 bt(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 Ct(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 fn(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,l=c=>c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4);return .2126*l(s)+.7152*l(a)+.0722*l(o)}function St(e){return fn(e)>.179?"#000000":"#ffffff"}function Tt({config:e,debugMode:t,isExpanded:n,isSpeaking:s,messagesCount:a,isLoading:o,currentAgent:l,onClose:c,onToggleExpand:d,onToggleDebug:u,onToggleTTS:p,onClear:r,onToggleSidebar:_}){let{title:h,primaryColor:f,embedded:b,showConversationSidebar:v,showClearButton:m,showDebugButton:k,enableDebugMode:$,showTTSButton:O,showExpandButton:q,enableTTS:P,elevenLabsApiKey:H,ttsProxyUrl:F}=e,L=H||F;return i`
3
3
  <div class="cw-header" style=${{backgroundColor:f}}>
4
- ${g&&_`
4
+ ${v&&i`
5
5
  <button
6
6
  class="cw-header-btn cw-hamburger"
7
- onClick=${d}
7
+ onClick=${_}
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,17 +16,17 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
16
16
  `}
17
17
 
18
18
  <div class="cw-title-container">
19
- <span class="cw-title">${G(h)}</span>
20
- ${l&&_`
19
+ <span class="cw-title">${z(h)}</span>
20
+ ${l&&i`
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">${G(l.name||l.key)}</span>
23
+ <span class="cw-agent-name">${z(l.name||l.key)}</span>
24
24
  </span>
25
25
  `}
26
26
  </div>
27
27
 
28
28
  <div class="cw-header-actions">
29
- ${m&&_`
29
+ ${m&&i`
30
30
  <button
31
31
  class="cw-header-btn"
32
32
  onClick=${r}
@@ -35,53 +35,140 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
35
35
  >🗑️</button>
36
36
  `}
37
37
 
38
- ${k&&$&&_`
38
+ ${k&&$&&i`
39
39
  <button
40
40
  class="cw-header-btn ${t?"cw-btn-active":""}"
41
- onClick=${c}
41
+ onClick=${u}
42
42
  title="Debug"
43
43
  >🐛</button>
44
44
  `}
45
45
 
46
- ${N&&R&&_`
46
+ ${O&&L&&i`
47
47
  <button
48
- class="cw-header-btn ${I?"cw-btn-active":""}"
48
+ class="cw-header-btn ${P?"cw-btn-active":""}"
49
49
  onClick=${p}
50
50
  title="TTS"
51
- >${I?"\u{1F50A}":"\u{1F507}"}</button>
51
+ >${P?"\u{1F50A}":"\u{1F507}"}</button>
52
52
  `}
53
53
 
54
- ${j&&!y&&_`
54
+ ${q&&!b&&i`
55
55
  <button
56
56
  class="cw-header-btn"
57
- onClick=${u}
57
+ onClick=${d}
58
58
  title=${n?"Minimize":"Expand"}
59
59
  >${n?"\u2296":"\u2295"}</button>
60
60
  `}
61
61
 
62
- ${!y&&_`
62
+ ${!b&&i`
63
63
  <button
64
64
  class="cw-header-btn"
65
- onClick=${i}
65
+ onClick=${c}
66
66
  title="Close"
67
67
  >✕</button>
68
68
  `}
69
69
  </div>
70
70
  </div>
71
- `}function Ke({msg:e,show:t,onToggle:n}){return t?_`
71
+ `}function Mt({block:e,onAction:t,markdownParser:n}){return i`
72
+ <div class="cw-block-card">
73
+ ${e.image&&i`<img class="cw-block-card-image" src=${e.image} alt=${e.title||""} />`}
74
+ <div class="cw-block-card-body">
75
+ ${e.badge&&i`<span class="cw-block-card-badge">${e.badge}</span>`}
76
+ ${e.title&&i`<div class="cw-block-card-title">${e.title}</div>`}
77
+ ${e.subtitle&&i`<div class="cw-block-card-subtitle">${e.subtitle}</div>`}
78
+ ${e.metadata&&e.metadata.length>0&&i`
79
+ <div class="cw-block-card-meta">
80
+ ${e.metadata.map(s=>i`
81
+ <span class="cw-block-meta-pair">
82
+ <span class="cw-block-meta-label">${s.label}:</span> ${s.value}
83
+ </span>
84
+ `)}
85
+ </div>
86
+ `}
87
+ ${e.actions&&e.actions.length>0&&i`
88
+ <div class="cw-block-card-actions">
89
+ ${e.actions.map(s=>i`<${Et} action=${s} onAction=${t} />`)}
90
+ </div>
91
+ `}
92
+ </div>
93
+ </div>
94
+ `}function mn({block:e,onAction:t,markdownParser:n}){let s=e.layout||"vertical";return i`
95
+ <div class="cw-block-card-list cw-block-card-list-${s}">
96
+ ${(e.items||[]).map(a=>i`
97
+ <${Mt} block=${{type:"card",...a}} onAction=${t} markdownParser=${n} />
98
+ `)}
99
+ </div>
100
+ `}function Et({action:e,onAction:t}){let n=e.style||"primary",s=()=>{t&&t(e)};return e.type==="link"?i`<a class="cw-block-btn cw-block-btn-${n}" href=${e.url} target="_blank" rel="noopener">${e.label}</a>`:i`<button class="cw-block-btn cw-block-btn-${n}" onClick=${s}>${e.label}</button>`}function gn({block:e,onAction:t}){return i`
101
+ <div class="cw-block-action-buttons">
102
+ ${(e.buttons||[]).map(n=>i`<${Et} action=${n} onAction=${t} />`)}
103
+ </div>
104
+ `}function vn({block:e}){let t=e.style||"info";return i`
105
+ <div class="cw-block-callout cw-block-callout-${t}">
106
+ <span class="cw-block-callout-icon">${{info:"\u2139\uFE0F",success:"\u2705",warning:"\u26A0\uFE0F"}[t]||"\u2139\uFE0F"}</span>
107
+ <div class="cw-block-callout-content">
108
+ ${e.title&&i`<strong>${e.title}</strong>`}
109
+ ${e.body&&i`<span>${e.body}</span>`}
110
+ </div>
111
+ </div>
112
+ `}function yn({block:e}){return i`
113
+ <figure class="cw-block-image">
114
+ <img src=${e.url} alt=${e.alt||""} />
115
+ ${e.caption&&i`<figcaption>${e.caption}</figcaption>`}
116
+ </figure>
117
+ `}function $n(){return i`<hr class="cw-block-divider" />`}function wn({block:e}){return i`
118
+ <div class="cw-block-table-wrapper">
119
+ <table class="cw-block-table">
120
+ ${e.headers&&e.headers.length>0&&i`
121
+ <thead><tr>${e.headers.map(t=>i`<th>${t}</th>`)}</tr></thead>
122
+ `}
123
+ <tbody>
124
+ ${(e.rows||[]).map(t=>i`
125
+ <tr>${t.map(n=>i`<td>${n}</td>`)}</tr>
126
+ `)}
127
+ </tbody>
128
+ </table>
129
+ </div>
130
+ `}function kn({block:e}){let[t,n]=S(!1),s=()=>{navigator.clipboard.writeText(e.code).then(()=>{n(!0),setTimeout(()=>n(!1),1500)})};return i`
131
+ <div class="cw-block-code">
132
+ ${e.filename&&i`<div class="cw-block-code-filename">${e.filename}</div>`}
133
+ <pre><code>${z(e.code)}</code></pre>
134
+ ${e.copyable!==!1&&i`
135
+ <button class="cw-block-code-copy" onClick=${s}>${t?"\u2713":"\u2398"}</button>
136
+ `}
137
+ </div>
138
+ `}function bn({block:e}){let[t,n]=S(e.defaultOpen||!1);return i`
139
+ <details class="cw-block-collapsible" open=${t} onClick=${s=>{s.preventDefault(),n(!t)}}>
140
+ <summary>${e.title}</summary>
141
+ <div class="cw-block-collapsible-body">${e.body}</div>
142
+ </details>
143
+ `}function Cn({block:e}){let t={loading:"\u23F3",success:"\u2705",error:"\u274C",warning:"\u26A0\uFE0F",info:"\u2139\uFE0F"};return i`
144
+ <div class="cw-block-status cw-block-status-${e.state||"info"}">
145
+ <span class="cw-block-status-icon">${t[e.state]||"\u2139\uFE0F"}</span>
146
+ <div>
147
+ <strong>${e.title}</strong>
148
+ ${e.body&&i`<div>${e.body}</div>`}
149
+ ${e.progress!=null&&i`
150
+ <div class="cw-block-progress"><div class="cw-block-progress-bar" style=${{width:`${e.progress*100}%`}}></div></div>
151
+ `}
152
+ </div>
153
+ </div>
154
+ `}var Sn={card:Mt,cardList:mn,actionButtons:gn,callout:vn,image:yn,divider:$n,table:wn,code:kn,collapsible:bn,status:Cn};function xt({blocks:e,onAction:t,markdownParser:n}){return!e||e.length===0?null:i`
155
+ <div class="cw-content-blocks">
156
+ ${e.map((s,a)=>{let o=Sn[s.type];return o?i`<${o} key=${a} block=${s} onAction=${t} markdownParser=${n} />`:null})}
157
+ </div>
158
+ `}function Te({msg:e,show:t,onToggle:n}){return t?i`
72
159
  <div class="cw-debug-payload">
73
160
  <button class="cw-debug-payload-close" onClick=${n}>×</button>
74
161
  <pre class="cw-debug-payload-content">${JSON.stringify(e,null,2)}</pre>
75
162
  </div>
76
- `:_`
163
+ `:i`
77
164
  <button
78
165
  class="cw-debug-payload-btn"
79
166
  onClick=${n}
80
167
  title="Show message payload"
81
168
  >{ }</button>
82
- `}function Mt({onEdit:e,onRetry:t,isLoading:n,position:s,showEdit:a=!0}){return n?null:_`
169
+ `}function At({onEdit:e,onRetry:t,isLoading:n,position:s,showEdit:a=!0}){return n?null:i`
83
170
  <div class="cw-message-actions cw-message-actions-${s||"left"}">
84
- ${a&&_`
171
+ ${a&&i`
85
172
  <button
86
173
  class="cw-message-action-btn"
87
174
  onClick=${e}
@@ -105,14 +192,14 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
105
192
  </svg>
106
193
  </button>
107
194
  </div>
108
- `}function _n({initialContent:e,onSave:t,onCancel:n}){let[s,a]=T(e),o=Q(null);return V(()=>{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")},[]),_`
195
+ `}function Tn({initialContent:e,onSave:t,onCancel:n}){let[s,a]=S(e),o=Q(null);return B(()=>{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")},[]),i`
109
196
  <div class="cw-inline-edit">
110
197
  <textarea
111
198
  ref=${o}
112
199
  class="cw-inline-edit-input"
113
200
  value=${s}
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()}}
201
+ onInput=${d=>{a(d.target.value),d.target.style.height="auto",d.target.style.height=d.target.scrollHeight+"px"}}
202
+ onKeyDown=${d=>{d.key==="Enter"&&!d.shiftKey?(d.preventDefault(),s.trim()&&t(s.trim())):d.key==="Escape"&&n()}}
116
203
  rows="1"
117
204
  />
118
205
  <div class="cw-inline-edit-actions">
@@ -129,111 +216,121 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
129
216
  >Save & Send</button>
130
217
  </div>
131
218
  </div>
132
- `}function Et({msg:e,debugMode:t,markdownParser:n,onEdit:s,onRetry:a,isLoading:o,messageIndex:l}){let[i,u]=T(!1),[c,p]=T(!1),[r,d]=T(!1),h=e.role==="user",f=e.role==="system",y=e.type==="tool_call",g=e.type==="tool_result",m=e.type==="error",k=e.type==="sub_agent_start",$=e.type==="sub_agent_end",N=e.type==="agent_context";if(f&&!t)return null;if(k||$||N)return _`
133
- <div class="cw-agent-context ${k?"cw-agent-delegating":""} ${$?"cw-agent-returned":""}" style="position: relative;">
134
- <span class="cw-agent-context-icon">${k?"\u{1F517}":$?"\u2713":"\u{1F916}"}</span>
219
+ `}function It({msg:e,debugMode:t,markdownParser:n,onEdit:s,onRetry:a,onSendMessage:o,isLoading:l,messageIndex:c}){let[d,u]=S(!1),[p,r]=S(!1),[_,h]=S(!1),f=e.role==="user",b=e.role==="system",v=e.type==="tool_call",m=e.type==="tool_result",k=e.type==="error",$=e.type==="sub_agent_start",O=e.type==="sub_agent_end",q=e.type==="agent_context";if(b&&!t)return null;if($||O||q)return i`
220
+ <div class="cw-agent-context ${$?"cw-agent-delegating":""} ${O?"cw-agent-returned":""}" style="position: relative;">
221
+ <span class="cw-agent-context-icon">${$?"\u{1F517}":O?"\u2713":"\u{1F916}"}</span>
135
222
  <span class="cw-agent-context-text">${e.content}</span>
136
- ${e.metadata?.agentName&&_`
223
+ ${e.metadata?.agentName&&i`
137
224
  <span class="cw-agent-context-name">${e.metadata.agentName}</span>
138
225
  `}
139
- ${t&&_`<${Ke} msg=${e} show=${c} onToggle=${()=>p(!c)} />`}
226
+ ${t&&i`<${Te} msg=${e} show=${p} onToggle=${()=>r(!p)} />`}
227
+ </div>
228
+ `;if(e.type==="content_blocks"&&e.metadata?.blocks){let T=y=>{y.type==="message"&&o&&o(y.message),y.type==="callback"&&e._onCallback&&e._onCallback(y.callbackId),y.type==="link"&&y.url&&window.open(y.url,"_blank","noopener")};return i`
229
+ <div class="cw-message-row" style="position: relative;">
230
+ <${xt}
231
+ blocks=${e.metadata.blocks}
232
+ onAction=${T}
233
+ markdownParser=${n}
234
+ />
235
+ ${t&&i`<${Te} msg=${e} show=${p} onToggle=${()=>r(!p)} />`}
140
236
  </div>
141
- `;if(y||g){let S=e.metadata?.arguments||e.metadata?.result,D=b=>{if(typeof b=="string")try{return JSON.stringify(JSON.parse(b),null,2)}catch{return b}return JSON.stringify(b,null,2)};return _`
142
- <div class="cw-tool-message ${g?"cw-tool-result":"cw-tool-call"}" style="position: relative;">
143
- <span class="cw-tool-label" onClick=${()=>S&&u(!i)}>
237
+ `}if(v||m){let T=e.metadata?.arguments||e.metadata?.result,y=R=>{if(typeof R=="string")try{return JSON.stringify(JSON.parse(R),null,2)}catch{return R}return JSON.stringify(R,null,2)};return i`
238
+ <div class="cw-tool-message ${m?"cw-tool-result":"cw-tool-call"}" style="position: relative;">
239
+ <span class="cw-tool-label" onClick=${()=>T&&u(!d)}>
144
240
  ${e.content}
145
- ${S&&_`<span class="cw-tool-expand">${i?"\u25BC":"\u25B6"}</span>`}
241
+ ${T&&i`<span class="cw-tool-expand">${d?"\u25BC":"\u25B6"}</span>`}
146
242
  </span>
147
- ${i&&S&&_`
148
- <pre class="cw-tool-details">${G(D(y?e.metadata.arguments:e.metadata.result))}</pre>
243
+ ${d&&T&&i`
244
+ <pre class="cw-tool-details">${z(y(v?e.metadata.arguments:e.metadata.result))}</pre>
149
245
  `}
150
- ${t&&_`<${Ke} msg=${e} show=${c} onToggle=${()=>p(!c)} />`}
246
+ ${t&&i`<${Te} msg=${e} show=${p} onToggle=${()=>r(!p)} />`}
151
247
  </div>
152
- `}let j=["cw-message",h&&"cw-message-user",m&&"cw-message-error"].filter(Boolean).join(" "),I=`cw-message-row ${h?"cw-message-row-user":""}`,H=e.role==="assistant"?kt(e.content,n):G(e.content),F=e.files&&e.files.length>0,R=()=>F?_`
248
+ `}let P=["cw-message",f&&"cw-message-user",k&&"cw-message-error"].filter(Boolean).join(" "),H=`cw-message-row ${f?"cw-message-row-user":""}`,F=e.role==="assistant"?kt(e.content,n):z(e.content),L=e.files&&e.files.length>0,j=()=>L?i`
153
249
  <div class="cw-message-attachments">
154
- ${e.files.map(S=>S.type&&S.type.startsWith("image/")?_`
155
- <a class="cw-attachment-thumbnail" href=${S.url} target="_blank" title=${S.name}>
156
- <img src=${S.url} alt=${S.name} />
250
+ ${e.files.map(T=>T.type&&T.type.startsWith("image/")?i`
251
+ <a class="cw-attachment-thumbnail" href=${T.url} target="_blank" title=${T.name}>
252
+ <img src=${T.url} alt=${T.name} />
157
253
  </a>
158
- `:_`
159
- <a class="cw-attachment-file" href=${S.url} target="_blank" title=${S.name}>
160
- <span class="cw-attachment-icon">${Se(S.type)}</span>
254
+ `:i`
255
+ <a class="cw-attachment-file" href=${T.url} target="_blank" title=${T.name}>
256
+ <span class="cw-attachment-icon">${Se(T.type)}</span>
161
257
  <span class="cw-attachment-info">
162
- <span class="cw-attachment-name">${S.name}</span>
163
- <span class="cw-attachment-size">${Ce(S.size)}</span>
258
+ <span class="cw-attachment-name">${T.name}</span>
259
+ <span class="cw-attachment-size">${Ce(T.size)}</span>
164
260
  </span>
165
261
  </a>
166
262
  `)}
167
263
  </div>
168
- `:null,J=S=>{d(!1),s&&s(l,S)},O=()=>{a&&a(l)};if(h&&r)return _`
169
- <div class=${I} style="position: relative;">
170
- ${R()}
171
- <${_n}
264
+ `:null,N=T=>{h(!1),s&&s(c,T)},w=()=>{a&&a(c)};if(f&&_)return i`
265
+ <div class=${H} style="position: relative;">
266
+ ${j()}
267
+ <${Tn}
172
268
  initialContent=${e.content}
173
- onSave=${J}
174
- onCancel=${()=>d(!1)}
269
+ onSave=${N}
270
+ onCancel=${()=>h(!1)}
175
271
  />
176
272
  </div>
177
- `;let w=h&&s&&a,C=e.role==="assistant"&&a&&!o;return _`
178
- <div class="${I} ${w||C?"cw-message-row-with-actions":""}">
179
- ${R()}
180
- ${w&&_`
273
+ `;let E=f&&s&&a,M=e.role==="assistant"&&a&&!l;return i`
274
+ <div class="${H} ${E||M?"cw-message-row-with-actions":""}">
275
+ ${j()}
276
+ ${E&&i`
181
277
  <div class="cw-user-actions-wrapper">
182
- <${Mt}
183
- onEdit=${()=>d(!0)}
184
- onRetry=${O}
185
- isLoading=${o}
278
+ <${At}
279
+ onEdit=${()=>h(!0)}
280
+ onRetry=${w}
281
+ isLoading=${l}
186
282
  position="left"
187
283
  showEdit=${!0}
188
284
  />
189
- <div class=${j} dangerouslySetInnerHTML=${{__html:H}} />
285
+ <div class=${P} dangerouslySetInnerHTML=${{__html:F}} />
190
286
  </div>
191
287
  `}
192
- ${!w&&_`
193
- <div class=${j} dangerouslySetInnerHTML=${{__html:H}} />
288
+ ${!E&&i`
289
+ <div class=${P} dangerouslySetInnerHTML=${{__html:F}} />
194
290
  `}
195
- ${C&&_`
196
- <${Mt}
197
- onRetry=${O}
198
- isLoading=${o}
291
+ ${M&&i`
292
+ <${At}
293
+ onRetry=${w}
294
+ isLoading=${l}
199
295
  position="right"
200
296
  showEdit=${!1}
201
297
  />
202
298
  `}
203
- ${t&&_`<${Ke} msg=${e} show=${c} onToggle=${()=>p(!c)} />`}
299
+ ${t&&i`<${Te} msg=${e} show=${p} onToggle=${()=>r(!p)} />`}
204
300
  </div>
205
- `}function xt({messages:e,isLoading:t,hasMoreMessages:n,loadingMoreMessages:s,onLoadMore:a,onEditMessage:o,onRetryMessage:l,debugMode:i,markdownParser:u,emptyStateTitle:c,emptyStateMessage:p}){let r=Q(null),d=Q(!0),h=y=>{let g=y.target,m=g.scrollHeight-g.scrollTop-g.clientHeight<100;if(d.current=m,g.scrollTop<50&&n&&!s){let k=g.scrollHeight;a().then(()=>{let $=g.scrollHeight;g.scrollTop=$-k+g.scrollTop})}};V(()=>{let y=r.current;y&&d.current&&requestAnimationFrame(()=>{y.scrollTop=y.scrollHeight})},[e,t]),V(()=>{let y=r.current;y&&e.length<=2&&(d.current=!0,requestAnimationFrame(()=>{y.scrollTop=y.scrollHeight}))},[e.length]);let f=e.length===0;return _`
206
- <div class="cw-messages" ref=${r} onScroll=${h}>
207
- ${f&&_`
301
+ `}function Dt({messages:e,isLoading:t,hasMoreMessages:n,loadingMoreMessages:s,onLoadMore:a,onEditMessage:o,onRetryMessage:l,onSendMessage:c,debugMode:d,markdownParser:u,emptyStateTitle:p,emptyStateMessage:r}){let _=Q(null),h=Q(!0),f=v=>{let m=v.target,k=m.scrollHeight-m.scrollTop-m.clientHeight<100;if(h.current=k,m.scrollTop<50&&n&&!s){let $=m.scrollHeight;a().then(()=>{let O=m.scrollHeight;m.scrollTop=O-$+m.scrollTop})}};B(()=>{let v=_.current;v&&h.current&&requestAnimationFrame(()=>{v.scrollTop=v.scrollHeight})},[e,t]),B(()=>{let v=_.current;v&&e.length<=2&&(h.current=!0,requestAnimationFrame(()=>{v.scrollTop=v.scrollHeight}))},[e.length]);let b=e.length===0;return i`
302
+ <div class="cw-messages" ref=${_} onScroll=${f}>
303
+ ${b&&i`
208
304
  <div class="cw-empty-state">
209
305
  <svg class="cw-empty-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
210
306
  <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
307
  </svg>
212
- <h3>${G(c)}</h3>
213
- <p>${G(p)}</p>
308
+ <h3>${z(p)}</h3>
309
+ <p>${z(r)}</p>
214
310
  </div>
215
311
  `}
216
312
 
217
- ${!f&&n&&_`
313
+ ${!b&&n&&i`
218
314
  <div class="cw-load-more" onClick=${a}>
219
- ${s?_`<span class="cw-spinner"></span><span>Loading...</span>`:_`<span>↑ Scroll up or click to load older messages</span>`}
315
+ ${s?i`<span class="cw-spinner"></span><span>Loading...</span>`:i`<span>↑ Scroll up or click to load older messages</span>`}
220
316
  </div>
221
317
  `}
222
318
 
223
- ${e.map((y,g)=>_`
224
- <${Et}
225
- key=${y.id}
226
- msg=${y}
227
- messageIndex=${g}
228
- debugMode=${i}
319
+ ${e.map((v,m)=>i`
320
+ <${It}
321
+ key=${v.id}
322
+ msg=${v}
323
+ messageIndex=${m}
324
+ debugMode=${d}
229
325
  markdownParser=${u}
230
326
  onEdit=${o}
231
327
  onRetry=${l}
328
+ onSendMessage=${c}
232
329
  isLoading=${t}
233
330
  />
234
331
  `)}
235
332
 
236
- ${t&&_`
333
+ ${t&&i`
237
334
  <div class="cw-message-row">
238
335
  <div class="cw-typing">
239
336
  <span class="cw-spinner"></span>
@@ -242,41 +339,41 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
242
339
  </div>
243
340
  `}
244
341
  </div>
245
- `}var Ue=typeof window<"u"?window.SpeechRecognition||window.webkitSpeechRecognition:null;function It({onSend:e,onCancel:t,isLoading:n,placeholder:s,primaryColor:a,enableVoice:o=!0,enableFiles:l=!0}){let[i,u]=T(""),[c,p]=T([]),[r,d]=T(!1),[h,f]=T(!1),[y]=T(()=>!!Ue),g=Q(null),m=Q(null),k=Q(null),$=Q(!1);V(()=>{!n&&g.current&&g.current.focus()},[n]),V(()=>{g.current&&(g.current.style.height="auto",g.current.style.height=Math.min(g.current.scrollHeight,150)+"px")},[i]),V(()=>()=>{$.current=!1,k.current&&k.current.abort()},[]);let N=b=>{b.preventDefault(),(i.trim()||c.length>0)&&!n&&(e(i,c),u(""),p([]),g.current&&(g.current.style.height="auto"),m.current&&(m.current.value=""))},j=b=>{let L=Array.from(b.target.files||[]);L.length>0&&p(U=>[...U,...L])},I=b=>{p(L=>L.filter((U,v)=>v!==b))},H=b=>{b.preventDefault(),m.current&&!n&&m.current.click()},F=b=>{b.key==="Enter"&&!b.shiftKey&&(b.preventDefault(),N(b))},R=b=>{n&&t&&(b.preventDefault(),t())},J=()=>{if(!Ue||n)return;$.current=!0;let b=new Ue;b.continuous=!0,b.interimResults=!0,b.lang=navigator.language||"en-US";let L=i,U="";b.onstart=()=>{f(!0)},b.onresult=v=>{U="";for(let P=v.resultIndex;P<v.results.length;P++){let B=v.results[P][0].transcript;v.results[P].isFinal?L+=(L?" ":"")+B:U+=B}u(L+(U?" "+U:""))},b.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),$.current=!1,f(!1),u(L||i)},b.onend=()=>{if($.current){console.log("[ChatWidget] Recognition paused, restarting...");try{b.start();return}catch(v){console.warn("[ChatWidget] Could not restart recognition:",v)}}f(!1),L&&u(L),k.current=null},k.current=b,b.start()},O=()=>{$.current=!1,k.current&&k.current.stop()},w=b=>{b.preventDefault(),h?O():J()},A=_`
342
+ `}var We=typeof window<"u"?window.SpeechRecognition||window.webkitSpeechRecognition:null;function Pt({onSend:e,onCancel:t,isLoading:n,placeholder:s,primaryColor:a,enableVoice:o=!0,enableFiles:l=!0}){let[c,d]=S(""),[u,p]=S([]),[r,_]=S(!1),[h,f]=S(!1),[b]=S(()=>!!We),v=Q(null),m=Q(null),k=Q(null),$=Q(!1);B(()=>{!n&&v.current&&v.current.focus()},[n]),B(()=>{v.current&&(v.current.style.height="auto",v.current.style.height=Math.min(v.current.scrollHeight,150)+"px")},[c]),B(()=>()=>{$.current=!1,k.current&&k.current.abort()},[]);let O=y=>{y.preventDefault(),(c.trim()||u.length>0)&&!n&&(e(c,u),d(""),p([]),v.current&&(v.current.style.height="auto"),m.current&&(m.current.value=""))},q=y=>{let R=Array.from(y.target.files||[]);R.length>0&&p(K=>[...K,...R])},P=y=>{p(R=>R.filter((K,g)=>g!==y))},H=y=>{y.preventDefault(),m.current&&!n&&m.current.click()},F=y=>{y.key==="Enter"&&!y.shiftKey&&(y.preventDefault(),O(y))},L=y=>{n&&t&&(y.preventDefault(),t())},j=()=>{if(!We||n)return;$.current=!0;let y=new We;y.continuous=!0,y.interimResults=!0,y.lang=navigator.language||"en-US";let R=c,K="";y.onstart=()=>{f(!0)},y.onresult=g=>{K="";for(let A=g.resultIndex;A<g.results.length;A++){let V=g.results[A][0].transcript;g.results[A].isFinal?R+=(R?" ":"")+V:K+=V}d(R+(K?" "+K:""))},y.onerror=g=>{if(g.error==="no-speech"||g.error==="aborted"){console.log("[ChatWidget] Speech recognition:",g.error,"- continuing...");return}console.warn("[ChatWidget] Speech recognition error:",g.error),$.current=!1,f(!1),d(R||c)},y.onend=()=>{if($.current){console.log("[ChatWidget] Recognition paused, restarting...");try{y.start();return}catch(g){console.warn("[ChatWidget] Could not restart recognition:",g)}}f(!1),R&&d(R),k.current=null},k.current=y,y.start()},N=()=>{$.current=!1,k.current&&k.current.stop()},w=y=>{y.preventDefault(),h?N():j()},E=i`
246
343
  <svg width="14" height="14" viewBox="0 0 14 14" fill="currentColor">
247
344
  <rect x="2" y="2" width="10" height="10" rx="1" />
248
345
  </svg>
249
- `,C=_`
346
+ `,C=i`
250
347
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
251
348
  <path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"></path>
252
349
  <path d="M19 10v2a7 7 0 0 1-14 0v-2"></path>
253
350
  <line x1="12" y1="19" x2="12" y2="23"></line>
254
351
  <line x1="8" y1="23" x2="16" y2="23"></line>
255
352
  </svg>
256
- `,M=_`
353
+ `,M=i`
257
354
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
258
355
  <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
356
  </svg>
260
- `,S=o&&y,D=l;return _`
261
- <form class="cw-input-form" onSubmit=${N}>
357
+ `,I=o&&b,T=l;return i`
358
+ <form class="cw-input-form" onSubmit=${O}>
262
359
  <input
263
360
  type="file"
264
361
  ref=${m}
265
362
  style="display: none"
266
363
  multiple
267
- onChange=${j}
364
+ onChange=${q}
268
365
  />
269
- ${c.length>0&&_`
366
+ ${u.length>0&&i`
270
367
  <div class="cw-file-chips">
271
- ${c.map((b,L)=>_`
272
- <div class="cw-file-chip" key=${L}>
273
- <span class="cw-file-chip-icon">${Se(b.type)}</span>
274
- <span class="cw-file-chip-name" title=${b.name}>${b.name.length>20?b.name.substring(0,17)+"...":b.name}</span>
275
- <span class="cw-file-chip-size">(${Ce(b.size)})</span>
368
+ ${u.map((y,R)=>i`
369
+ <div class="cw-file-chip" key=${R}>
370
+ <span class="cw-file-chip-icon">${Se(y.type)}</span>
371
+ <span class="cw-file-chip-name" title=${y.name}>${y.name.length>20?y.name.substring(0,17)+"...":y.name}</span>
372
+ <span class="cw-file-chip-size">(${Ce(y.size)})</span>
276
373
  <button
277
374
  type="button"
278
375
  class="cw-file-chip-remove"
279
- onClick=${()=>I(L)}
376
+ onClick=${()=>P(R)}
280
377
  title="Remove file"
281
378
  >×</button>
282
379
  </div>
@@ -284,16 +381,16 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
284
381
  </div>
285
382
  `}
286
383
  <textarea
287
- ref=${g}
384
+ ref=${v}
288
385
  class="cw-input"
289
- placeholder=${G(s)}
290
- value=${i}
291
- onInput=${b=>u(b.target.value)}
386
+ placeholder=${z(s)}
387
+ value=${c}
388
+ onInput=${y=>d(y.target.value)}
292
389
  onKeyDown=${F}
293
390
  disabled=${n}
294
391
  rows="1"
295
392
  />
296
- ${D&&_`
393
+ ${T&&i`
297
394
  <button
298
395
  type="button"
299
396
  class="cw-attach-btn"
@@ -304,7 +401,7 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
304
401
  ${M}
305
402
  </button>
306
403
  `}
307
- ${S&&_`
404
+ ${I&&i`
308
405
  <button
309
406
  type="button"
310
407
  class=${`cw-voice-btn ${h?"cw-voice-btn-recording":""}`}
@@ -319,15 +416,15 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
319
416
  type=${n?"button":"submit"}
320
417
  class=${`cw-send-btn ${n?"cw-send-btn-loading":""} ${n&&r?"cw-send-btn-stop":""}`}
321
418
  style=${{backgroundColor:n&&r?"#dc2626":a}}
322
- onClick=${R}
323
- onMouseEnter=${()=>d(!0)}
324
- onMouseLeave=${()=>d(!1)}
419
+ onClick=${L}
420
+ onMouseEnter=${()=>_(!0)}
421
+ onMouseLeave=${()=>_(!1)}
325
422
  title=${n?"Stop":"Send"}
326
423
  >
327
- ${n?r?A:_`<span class="cw-spinner"></span>`:"\u27A4"}
424
+ ${n?r?E:i`<span class="cw-spinner"></span>`:"\u27A4"}
328
425
  </button>
329
426
  </form>
330
- `}function At({isOpen:e,conversations:t,conversationsLoading:n,currentConversationId:s,onClose:a,onNewConversation:o,onSwitchConversation:l}){return _`
427
+ `}function Rt({isOpen:e,conversations:t,conversationsLoading:n,currentConversationId:s,onClose:a,onNewConversation:o,onSwitchConversation:l}){return i`
331
428
  <div class="cw-sidebar ${e?"cw-sidebar-open":""}">
332
429
  <div class="cw-sidebar-header">
333
430
  <span>Conversations</span>
@@ -339,24 +436,24 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
339
436
  </button>
340
437
 
341
438
  <div class="cw-conversation-list">
342
- ${n&&_`
439
+ ${n&&i`
343
440
  <div class="cw-sidebar-loading">
344
441
  <span class="cw-spinner"></span>
345
442
  </div>
346
443
  `}
347
444
 
348
- ${!n&&t.length===0&&_`
445
+ ${!n&&t.length===0&&i`
349
446
  <div class="cw-sidebar-empty">No conversations yet</div>
350
447
  `}
351
448
 
352
- ${t.map(i=>_`
449
+ ${t.map(c=>i`
353
450
  <div
354
- key=${i.id}
355
- class="cw-conversation-item ${i.id===s?"cw-conversation-active":""}"
356
- onClick=${()=>l(i.id)}
451
+ key=${c.id}
452
+ class="cw-conversation-item ${c.id===s?"cw-conversation-active":""}"
453
+ onClick=${()=>l(c.id)}
357
454
  >
358
- <div class="cw-conversation-title">${G(i.title||"Untitled")}</div>
359
- <div class="cw-conversation-date">${wt(i.updatedAt||i.createdAt)}</div>
455
+ <div class="cw-conversation-title">${z(c.title||"Untitled")}</div>
456
+ <div class="cw-conversation-date">${wt(c.updatedAt||c.createdAt)}</div>
360
457
  </div>
361
458
  `)}
362
459
  </div>
@@ -366,7 +463,7 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
366
463
  class="cw-sidebar-overlay ${e?"cw-sidebar-overlay-visible":""}"
367
464
  onClick=${a}
368
465
  />
369
- `}function Dt({availableModels:e,selectedModel:t,onSelectModel:n,thinkingEnabled:s,onToggleThinking:a,disabled:o}){let[l,i]=T(!1);if(!e||e.length===0)return null;let u=e.find(f=>f.id===t),c=u?.name||"Select Model",p=u?.supports_thinking||!1,r=()=>{o||i(!l)},d=f=>{n(f),i(!1)},h=f=>{f.stopPropagation(),a&&p&&a(!s)};return _`
466
+ `}function Ft({availableModels:e,selectedModel:t,onSelectModel:n,thinkingEnabled:s,onToggleThinking:a,disabled:o}){let[l,c]=S(!1);if(!e||e.length===0)return null;let d=e.find(f=>f.id===t),u=d?.name||"Select Model",p=d?.supports_thinking||!1,r=()=>{o||c(!l)},_=f=>{n(f),c(!1)},h=f=>{f.stopPropagation(),a&&p&&a(!s)};return i`
370
467
  <div class="cw-model-selector">
371
468
  <button
372
469
  class="cw-model-btn"
@@ -375,11 +472,11 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
375
472
  title="Select Model"
376
473
  >
377
474
  <span class="cw-model-icon">🤖</span>
378
- <span class="cw-model-name">${G(c)}</span>
475
+ <span class="cw-model-name">${z(u)}</span>
379
476
  <span class="cw-model-chevron">${l?"\u25B2":"\u25BC"}</span>
380
477
  </button>
381
478
 
382
- ${p&&a&&_`
479
+ ${p&&a&&i`
383
480
  <button
384
481
  class="cw-thinking-toggle ${s?"cw-thinking-enabled":""}"
385
482
  onClick=${h}
@@ -390,48 +487,48 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
390
487
  </button>
391
488
  `}
392
489
 
393
- ${l&&_`
490
+ ${l&&i`
394
491
  <div class="cw-model-dropdown">
395
- ${e.map(f=>_`
492
+ ${e.map(f=>i`
396
493
  <button
397
494
  key=${f.id}
398
495
  class="cw-model-option ${f.id===t?"cw-model-option-selected":""}"
399
- onClick=${()=>d(f.id)}
496
+ onClick=${()=>_(f.id)}
400
497
  >
401
498
  <span class="cw-model-option-name">
402
- ${G(f.name)}
403
- ${f.supports_thinking&&_`<span class="cw-thinking-badge" title="Supports extended thinking">🧠</span>`}
499
+ ${z(f.name)}
500
+ ${f.supports_thinking&&i`<span class="cw-thinking-badge" title="Supports extended thinking">🧠</span>`}
404
501
  </span>
405
- <span class="cw-model-option-provider">${G(f.provider)}</span>
406
- ${f.description&&_`
407
- <span class="cw-model-option-desc">${G(f.description)}</span>
502
+ <span class="cw-model-option-provider">${z(f.provider)}</span>
503
+ ${f.description&&i`
504
+ <span class="cw-model-option-desc">${z(f.description)}</span>
408
505
  `}
409
506
  </button>
410
507
  `)}
411
508
  </div>
412
509
  `}
413
510
  </div>
414
- `}var hn={not_started:"\u25CB",in_progress:"\u25D0",complete:"\u25CF",cancelled:"\u2298"},fn={not_started:"Not Started",in_progress:"In Progress",complete:"Complete",cancelled:"Cancelled"};function mn({task:e,onUpdate:t,onRemove:n,depth:s=0}){let[a,o]=T(!1),[l,i]=T(e.name),u=E(()=>{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]),c=E(()=>{l.trim()&&l!==e.name&&t(e.id,{name:l.trim()}),o(!1)},[e,l,t]),p=E(d=>{d.key==="Enter"&&c(),d.key==="Escape"&&(i(e.name),o(!1))},[c,e.name]),r=`cw-task-state-${e.state.replace("_","-")}`;return _`
511
+ `}var Mn={not_started:"\u25CB",in_progress:"\u25D0",complete:"\u25CF",cancelled:"\u2298"},En={not_started:"Not Started",in_progress:"In Progress",complete:"Complete",cancelled:"Cancelled"};function xn({task:e,onUpdate:t,onRemove:n,depth:s=0}){let[a,o]=S(!1),[l,c]=S(e.name),d=x(()=>{let _={not_started:"in_progress",in_progress:"complete",complete:"not_started",cancelled:"not_started"};t(e.id,{state:_[e.state]||"not_started"})},[e,t]),u=x(()=>{l.trim()&&l!==e.name&&t(e.id,{name:l.trim()}),o(!1)},[e,l,t]),p=x(_=>{_.key==="Enter"&&u(),_.key==="Escape"&&(c(e.name),o(!1))},[u,e.name]),r=`cw-task-state-${e.state.replace("_","-")}`;return i`
415
512
  <div class="cw-task-item ${r}" style=${{paddingLeft:`${s*16+8}px`}}>
416
513
  <button
417
514
  class="cw-task-state-btn"
418
- onClick=${u}
419
- title=${fn[e.state]}
515
+ onClick=${d}
516
+ title=${En[e.state]}
420
517
  >
421
- ${hn[e.state]}
518
+ ${Mn[e.state]}
422
519
  </button>
423
520
 
424
- ${a?_`
521
+ ${a?i`
425
522
  <input
426
523
  type="text"
427
524
  class="cw-task-edit-input"
428
525
  value=${l}
429
- onInput=${d=>i(d.target.value)}
430
- onBlur=${c}
526
+ onInput=${_=>c(_.target.value)}
527
+ onBlur=${u}
431
528
  onKeyDown=${p}
432
529
  autoFocus
433
530
  />
434
- `:_`
531
+ `:i`
435
532
  <span
436
533
  class="cw-task-name"
437
534
  onClick=${()=>o(!0)}
@@ -449,16 +546,16 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
449
546
  ×
450
547
  </button>
451
548
  </div>
452
- `}function Pt({tasks:e,progress:t,isLoading:n,error:s,onUpdate:a,onRemove:o,onClear:l,onRefresh:i}){let u=E(r=>{let d=new Map,h=[];return r.forEach(f=>{d.set(f.id,{...f,children:[]})}),r.forEach(f=>{let y=d.get(f.id);f.parent_id&&d.has(f.parent_id)?d.get(f.parent_id).children.push(y):h.push(y)}),h},[]),c=E((r,d=0)=>_`
453
- <${mn}
549
+ `}function Ot({tasks:e,progress:t,isLoading:n,error:s,onUpdate:a,onRemove:o,onClear:l,onRefresh:c}){let d=x(r=>{let _=new Map,h=[];return r.forEach(f=>{_.set(f.id,{...f,children:[]})}),r.forEach(f=>{let b=_.get(f.id);f.parent_id&&_.has(f.parent_id)?_.get(f.parent_id).children.push(b):h.push(b)}),h},[]),u=x((r,_=0)=>i`
550
+ <${xn}
454
551
  key=${r.id}
455
552
  task=${r}
456
- depth=${d}
553
+ depth=${_}
457
554
  onUpdate=${a}
458
555
  onRemove=${o}
459
556
  />
460
- ${r.children?.map(h=>c(h,d+1))}
461
- `,[a,o]),p=u(e);return n&&e.length===0?_`<div class="cw-tasks-loading">Loading tasks...</div>`:_`
557
+ ${r.children?.map(h=>u(h,_+1))}
558
+ `,[a,o]),p=d(e);return n&&e.length===0?i`<div class="cw-tasks-loading">Loading tasks...</div>`:i`
462
559
  <div class="cw-tasks-container">
463
560
  <div class="cw-tasks-header">
464
561
  <div class="cw-tasks-progress">
@@ -473,25 +570,25 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
473
570
  </div>
474
571
  </div>
475
572
  <div class="cw-tasks-actions">
476
- <button class="cw-tasks-action-btn" onClick=${i} title="Refresh">↻</button>
477
- ${e.length>0&&_`
573
+ <button class="cw-tasks-action-btn" onClick=${c} title="Refresh">↻</button>
574
+ ${e.length>0&&i`
478
575
  <button class="cw-tasks-action-btn" onClick=${l} title="Clear all">🗑</button>
479
576
  `}
480
577
  </div>
481
578
  </div>
482
579
 
483
- ${s&&_`<div class="cw-tasks-error">${s}</div>`}
580
+ ${s&&i`<div class="cw-tasks-error">${s}</div>`}
484
581
 
485
582
  <div class="cw-tasks-list">
486
- ${p.length===0?_`
583
+ ${p.length===0?i`
487
584
  <div class="cw-tasks-empty">
488
585
  <p>No tasks yet</p>
489
586
  <p class="cw-tasks-empty-hint">Tasks will appear here when the agent creates them</p>
490
587
  </div>
491
- `:p.map(r=>c(r))}
588
+ `:p.map(r=>u(r))}
492
589
  </div>
493
590
  </div>
494
- `}function Ft({systems:e,agents:t,selectedSystem:n,selectedAgent:s,selectedSystemVersion:a,selectedAgentVersion:o,onSelectSystem:l,onSelectAgent:i,onSelectSystemVersion:u,onSelectAgentVersion:c,disabled:p}){let r=e.find($=>$.slug===n),d=t.find($=>$.slug===s),h=r?.versions||[],f=d?.versions||[];if(e.length===0&&t.length===0)return null;let y=e.length>1,g=t.length>1,m=h.length>1,k=f.length>1;return _`
591
+ `}function Ht({systems:e,agents:t,selectedSystem:n,selectedAgent:s,selectedSystemVersion:a,selectedAgentVersion:o,onSelectSystem:l,onSelectAgent:c,onSelectSystemVersion:d,onSelectAgentVersion:u,disabled:p}){let r=e.find($=>$.slug===n),_=t.find($=>$.slug===s),h=r?.versions||[],f=_?.versions||[];if(e.length===0&&t.length===0)return null;let b=e.length>1,v=t.length>1,m=h.length>1,k=f.length>1;return i`
495
592
  <div class="cw-dev-toolbar">
496
593
  <div class="cw-dev-toolbar-label">
497
594
  <span class="cw-dev-toolbar-icon">🛠️</span>
@@ -502,20 +599,20 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
502
599
  <!-- System -->
503
600
  <div class="cw-dev-select-group">
504
601
  <label class="cw-dev-label">System</label>
505
- ${y?_`
602
+ ${b?i`
506
603
  <select
507
604
  class="cw-dev-select"
508
605
  value=${n||""}
509
606
  onChange=${$=>l($.target.value)}
510
607
  disabled=${p}
511
608
  >
512
- ${e.map($=>_`
609
+ ${e.map($=>i`
513
610
  <option key=${$.slug} value=${$.slug}>
514
611
  ${$.name}
515
612
  </option>
516
613
  `)}
517
614
  </select>
518
- `:_`
615
+ `:i`
519
616
  <span class="cw-dev-badge">${r?.name||"\u2014"}</span>
520
617
  `}
521
618
  </div>
@@ -523,20 +620,20 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
523
620
  <!-- System Version -->
524
621
  <div class="cw-dev-select-group">
525
622
  <label class="cw-dev-label">Sys Ver</label>
526
- ${m?_`
623
+ ${m?i`
527
624
  <select
528
625
  class="cw-dev-select"
529
626
  value=${a||""}
530
- onChange=${$=>u($.target.value||null)}
627
+ onChange=${$=>d($.target.value||null)}
531
628
  disabled=${p}
532
629
  >
533
- ${h.map($=>_`
630
+ ${h.map($=>i`
534
631
  <option key=${$.version} value=${$.version}>
535
632
  ${$.version}${$.is_active?" \u2713":""}${$.is_draft?" (draft)":""}
536
633
  </option>
537
634
  `)}
538
635
  </select>
539
- `:_`
636
+ `:i`
540
637
  <span class="cw-dev-badge">${h.length===1?h[0].version:"none"}</span>
541
638
  `}
542
639
  </div>
@@ -544,47 +641,47 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
544
641
  <!-- Agent -->
545
642
  <div class="cw-dev-select-group">
546
643
  <label class="cw-dev-label">Agent</label>
547
- ${g?_`
644
+ ${v?i`
548
645
  <select
549
646
  class="cw-dev-select"
550
647
  value=${s||""}
551
- onChange=${$=>i($.target.value)}
648
+ onChange=${$=>c($.target.value)}
552
649
  disabled=${p}
553
650
  >
554
- ${t.map($=>_`
651
+ ${t.map($=>i`
555
652
  <option key=${$.slug} value=${$.slug}>
556
653
  ${$.name}${r?.entry_agent?.slug===$.slug?" \u2605":""}
557
654
  </option>
558
655
  `)}
559
656
  </select>
560
- `:_`
561
- <span class="cw-dev-badge">${d?.name||t[0]?.name||"\u2014"}${r?.entry_agent?.slug===(d?.slug||t[0]?.slug)?" \u2605":""}</span>
657
+ `:i`
658
+ <span class="cw-dev-badge">${_?.name||t[0]?.name||"\u2014"}${r?.entry_agent?.slug===(_?.slug||t[0]?.slug)?" \u2605":""}</span>
562
659
  `}
563
660
  </div>
564
661
 
565
662
  <!-- Agent Version -->
566
663
  <div class="cw-dev-select-group">
567
664
  <label class="cw-dev-label">Agent Ver</label>
568
- ${k?_`
665
+ ${k?i`
569
666
  <select
570
667
  class="cw-dev-select"
571
668
  value=${o||""}
572
- onChange=${$=>c($.target.value||null)}
669
+ onChange=${$=>u($.target.value||null)}
573
670
  disabled=${p}
574
671
  >
575
- ${f.map($=>_`
672
+ ${f.map($=>i`
576
673
  <option key=${$.version} value=${$.version}>
577
674
  ${$.version}${$.is_active?" \u2713":""}${$.is_draft?" (draft)":""}
578
675
  </option>
579
676
  `)}
580
677
  </select>
581
- `:_`
582
- <span class="cw-dev-badge">${f.length===1?f[0].version:d?.active_version||"\u2014"}</span>
678
+ `:i`
679
+ <span class="cw-dev-badge">${f.length===1?f[0].version:_?.active_version||"\u2014"}</span>
583
680
  `}
584
681
  </div>
585
682
  </div>
586
683
  </div>
587
- `}function Rt(e,t,n){let[s,a]=T([]),[o,l]=T(!1),[i,u]=T(null),[c,p]=T(()=>n?.get(e.conversationIdKey)||null),[r,d]=T(!1),[h,f]=T(!1),[y,g]=T(0),m=Q(null),k=Q(null);V(()=>{c&&n?.set(e.conversationIdKey,c)},[c,e.conversationIdKey,n]);let $=E(async(w,A,C)=>{m.current&&m.current.close();let M=e.apiPaths.runEvents.replace("{runId}",w),S=`${e.backendUrl}${M}`;A&&(S+=`?anonymous_token=${encodeURIComponent(A)}`);let D=new EventSource(S);m.current=D;let b="";D.addEventListener("assistant.message",U=>{try{let v=JSON.parse(U.data);e.onEvent&&e.onEvent("assistant.message",v.payload);let P=v.payload.content;P&&(b+=P,a(B=>{let X=B[B.length-1];return X?.role==="assistant"&&X.id.startsWith("assistant-stream-")?[...B.slice(0,-1),{...X,content:b}]:[...B,{id:"assistant-stream-"+Date.now(),role:"assistant",content:b,timestamp:new Date,type:"message"}]}))}catch(v){console.error("[ChatWidget] Parse error:",v)}}),D.addEventListener("tool.call",U=>{try{let v=JSON.parse(U.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)}}),D.addEventListener("tool.result",U=>{try{let v=JSON.parse(U.data);e.onEvent&&e.onEvent("tool.result",v.payload);let P=v.payload.result,B=P?.error;a(X=>[...X,{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)}}),D.addEventListener("custom",U=>{try{let v=JSON.parse(U.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)}}),D.addEventListener("sub_agent.start",U=>{try{let v=JSON.parse(U.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)}}),D.addEventListener("sub_agent.end",U=>{try{let v=JSON.parse(U.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 L=U=>{try{let v=JSON.parse(U.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)}l(!1),D.close(),m.current=null,b&&C&&C(b)};D.addEventListener("run.succeeded",L),D.addEventListener("run.failed",L),D.addEventListener("run.cancelled",L),D.addEventListener("run.timed_out",L),D.onerror=()=>{l(!1),D.close(),m.current=null}},[e]),N=E(async(w,A={},C={})=>{if(!w.trim()||o)return;let M=[],S={};typeof A=="function"?S={onAssistantMessage:A}:Array.isArray(A)?(M=A,S=C):S=A||{};let{model:D,thinking:b,onAssistantMessage:L,supersedeFromMessageIndex:U}=S;l(!0),u(null);let v={id:be(),role:"user",content:w.trim(),timestamp:new Date,type:"message",files:M.length>0?M.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(M.length>0){let Y=e.apiCaseStyle!=="camel",Be=ue=>Y?Ne(ue):ue,ne=new FormData;ne.append(Be("agentKey"),e.agentKey),c&&ne.append(Be("conversationId"),c),ne.append("messages",JSON.stringify([{role:"user",content:w.trim()}])),ne.append("metadata",JSON.stringify(Y?{...e.metadata,journey_type:e.defaultJourneyType}:{...e.metadata,journeyType:e.defaultJourneyType})),D&&ne.append("model",D),b&&ne.append("thinking","true"),M.forEach(ue=>{ne.append("files",ue)}),B=t.getFetchOptions({method:"POST",body:ne},P)}else{let Y=t.transformRequest({agentKey:e.agentKey,conversationId:c,messages:[{role:"user",content:w.trim()}],metadata:{...e.metadata,journeyType:e.defaultJourneyType},...D&&{model:D},...b&&{thinking:!0},...U!==void 0&&{supersedeFromMessageIndex:U}});B=t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Y)},P)}let X=await fetch(`${e.backendUrl}${e.apiPaths.runs}`,B),x=P;if(X.status===401){t.clearSession();let Y=await t.getOrCreateSession(!0);Y&&(x=Y,M.length>0?B=t.getFetchOptions({method:"POST",body:B.body},Y):B=t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:B.body},Y),X=await fetch(`${e.backendUrl}${e.apiPaths.runs}`,B))}if(!X.ok){let Y=await X.json().catch(()=>({}));throw new Error(Y.error||Y.detail||`HTTP ${X.status}`)}let Z=await X.json(),ee=t.transformResponse(Z);k.current=ee.id,!c&&ee.conversationId&&p(ee.conversationId),await $(ee.id,x,L)}catch(P){u(P.message||"Failed to send message"),l(!1)}finally{k.current=null}},[e,t,c,o,$]),j=E(async()=>{let w=k.current;if(!(!w||!o))try{let A=e.apiPaths.cancelRun?e.apiPaths.cancelRun.replace("{runId}",w):`${e.apiPaths.runs}${w}/cancel/`;(await fetch(`${e.backendUrl}${A}`,t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"}}))).ok&&(m.current&&(m.current.close(),m.current=null),l(!1),k.current=null,a(M=>[...M,{id:"cancelled-"+Date.now(),role:"system",content:"\u23F9 Run cancelled",timestamp:new Date,type:"cancelled"}]))}catch(A){console.error("[ChatWidget] Failed to cancel run:",A)}},[e,t,o]),I=E(()=>{a([]),p(null),u(null),d(!1),g(0),n?.set(e.conversationIdKey,null)},[e.conversationIdKey,n]),H=w=>{let A={id:be(),role:w.role,timestamp:w.timestamp?new Date(w.timestamp):new Date};if(w.role==="tool")return{...A,role:"system",content:"\u2713 Done",type:"tool_result",metadata:{result:w.content,toolCallId:w.toolCallId}};if(w.role==="assistant"&&w.toolCalls&&w.toolCalls.length>0)return w.toolCalls.map(M=>({id:be(),role:"assistant",content:`\u{1F527} ${M.function?.name||M.name||"tool"}`,timestamp:A.timestamp,type:"tool_call",metadata:{toolName:M.function?.name||M.name,arguments:M.function?.arguments||M.arguments,toolCallId:M.id}}));let C=typeof w.content=="string"?w.content:JSON.stringify(w.content);return w.role==="assistant"&&!C?.trim()?null:{...A,content:C,type:"message"}},F=E(async w=>{console.log("[ChatWidget] loadConversation called with:",w),l(!0),a([]),p(w);try{let A=await t.getOrCreateSession(),M=`${e.backendUrl}${e.apiPaths.conversations}${w}/?limit=10&offset=0`;console.log("[ChatWidget] Fetching conversation from:",M);let S=await fetch(M,t.getFetchOptions({method:"GET"},A));if(console.log("[ChatWidget] Response status:",S.status),S.ok){let D=await S.json();console.log("[ChatWidget] Raw conversation:",D);let b=t.transformResponse(D);if(console.log("[ChatWidget] Transformed conversation:",b),b.messages){let L=b.messages.flatMap(H).filter(Boolean);console.log("[ChatWidget] Mapped messages:",L),a(L)}d(b.hasMore||!1),g(b.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(A){console.error("[ChatWidget] Failed to load conversation:",A)}finally{l(!1)}},[e,t,n]),R=E(async()=>{if(!(!c||h||!r)){f(!0);try{let w=await t.getOrCreateSession(),C=`${e.backendUrl}${e.apiPaths.conversations}${c}/?limit=10&offset=${y}`,M=await fetch(C,t.getFetchOptions({method:"GET"},w));if(M.ok){let S=await M.json(),D=t.transformResponse(S);if(D.messages?.length>0){let b=D.messages.flatMap(H).filter(Boolean);a(L=>[...b,...L]),g(L=>L+D.messages.length),d(D.hasMore||!1)}else d(!1)}}catch(w){console.error("[ChatWidget] Failed to load more messages:",w)}finally{f(!1)}}},[e,t,c,y,h,r]),J=E(async(w,A,C={})=>{if(o)return;let M=s[w];if(!M||M.role!=="user")return;let S=s.slice(0,w);a(S),await N(A,{...C,supersedeFromMessageIndex:w})},[s,o,N]),O=E(async(w,A={})=>{if(o)return;let C=s[w];if(!C)return;let M=w,S=C;if(C.role==="assistant"){for(let b=w-1;b>=0;b--)if(s[b].role==="user"){M=b,S=s[b];break}if(S.role!=="user")return}else if(C.role!=="user")return;let D=s.slice(0,M);a(D),await N(S.content,{...A,supersedeFromMessageIndex:M})},[s,o,N]);return V(()=>()=>{m.current&&m.current.close()},[]),{messages:s,isLoading:o,error:i,conversationId:c,hasMoreMessages:r,loadingMoreMessages:h,sendMessage:N,cancelRun:j,clearMessages:I,loadConversation:F,loadMoreMessages:R,setConversationId:p,editMessage:J,retryMessage:O}}var Ht="cw_thinking_enabled";function Ot(e,t,n){let[s,a]=T([]),[o,l]=T(null),[i,u]=T(null),[c,p]=T(!1),[r,d]=T(!1);V(()=>{(async()=>{if(e.showModelSelector){p(!0);try{let k=await fetch(`${e.backendUrl}${e.apiPaths.models}`,t.getFetchOptions({method:"GET"}));if(k.ok){let $=await k.json(),N=$.models||[];a(N),u($.default);let j=n?.get(e.modelKey);j&&N.some(H=>H.id===j)?l(j):l($.default),n?.get(Ht)==="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=E(m=>{l(m),n?.set(e.modelKey,m)},[e.modelKey,n]),f=E(m=>{d(m),n?.set(Ht,m?"true":"false")},[n]),y=E(()=>s.find(m=>m.id===o)||null,[s,o]),g=E(()=>y()?.supports_thinking||!1,[y]);return{availableModels:s,selectedModel:o,defaultModel:i,isLoading:c,selectModel:h,getSelectedModelInfo:y,thinkingEnabled:r,toggleThinking:f,supportsThinking:g}}function Lt(e,t){let[n,s]=T(null),[a,o]=T(!1),[l,i]=T(null),u=e.apiPaths?.tasks||"/api/agent/tasks/",c=E(async()=>{o(!0),i(null);try{let y=`${e.backendUrl}${u}`,g=await fetch(y,t.getFetchOptions({method:"GET"}));if(g.ok){let m=await g.json();s(m)}else{let m=await g.json().catch(()=>({}));i(m.error||"Failed to load tasks")}}catch(y){console.error("[useTasks] Failed to load task list:",y),i("Failed to load tasks")}finally{o(!1)}},[e.backendUrl,u,t]),p=E(async y=>{if(!n)return null;try{let g=`${e.backendUrl}${u}${n.id}/add_task/`,m=await fetch(g,t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)}));if(m.ok){let k=await m.json();return await c(),k}else{let k=await m.json().catch(()=>({}));return i(k.error||"Failed to add task"),null}}catch(g){return console.error("[useTasks] Failed to add task:",g),i("Failed to add task"),null}},[e.backendUrl,u,n,t,c]),r=E(async(y,g)=>{if(!n)return null;try{let m=`${e.backendUrl}${u}${n.id}/update_task/${y}/`,k=await fetch(m,t.getFetchOptions({method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)}));if(k.ok){let $=await k.json();return await c(),$}else{let $=await k.json().catch(()=>({}));return i($.error||"Failed to update task"),null}}catch(m){return console.error("[useTasks] Failed to update task:",m),i("Failed to update task"),null}},[e.backendUrl,u,n,t,c]),d=E(async y=>{if(!n)return!1;try{let g=`${e.backendUrl}${u}${n.id}/remove_task/${y}/`,m=await fetch(g,t.getFetchOptions({method:"DELETE"}));if(m.ok)return await c(),!0;{let k=await m.json().catch(()=>({}));return i(k.error||"Failed to remove task"),!1}}catch(g){return console.error("[useTasks] Failed to remove task:",g),i("Failed to remove task"),!1}},[e.backendUrl,u,n,t,c]),h=E(async()=>{if(!n)return!1;try{let y=`${e.backendUrl}${u}${n.id}/clear/`,g=await fetch(y,t.getFetchOptions({method:"POST"}));if(g.ok)return await c(),!0;{let m=await g.json().catch(()=>({}));return i(m.error||"Failed to clear tasks"),!1}}catch(y){return console.error("[useTasks] Failed to clear tasks:",y),i("Failed to clear tasks"),!1}},[e.backendUrl,u,n,t,c]),f=E(()=>i(null),[]);return{taskList:n,tasks:n?.tasks||[],progress:n?.progress||{total:0,completed:0,percent_complete:0},isLoading:a,error:l,loadTaskList:c,addTask:p,updateTask:r,removeTask:d,clearTasks:h,clearError:f}}var Nt="cw_selected_system",We="cw_selected_agent",Kt="cw_selected_system_version",Te="cw_selected_agent_version";function Ut(e,t,n){let[s,a]=T([]),[o,l]=T([]),[i,u]=T(null),[c,p]=T(null),[r,d]=T(null),[h,f]=T(null),[y,g]=T(!1),m=E(()=>{if(c)return c;if(i){let I=s.find(H=>H.slug===i);if(I?.entry_agent)return I.entry_agent.slug}return e.agentKey},[c,i,s,e.agentKey]);V(()=>{if(!e.showDevTools)return;(async()=>{g(!0);try{let H=await fetch(`${e.backendUrl}${e.apiPaths.systems}`,t.getFetchOptions({method:"GET"}));if(H.ok){let F=await H.json(),R=F.results||F;a(R);let J=n?.get(Nt);J&&R.some(O=>O.slug===J)?u(J):R.length===1&&u(R[0].slug)}}catch(H){console.warn("[ChatWidget] Failed to load systems:",H)}finally{g(!1)}})()},[e.backendUrl,e.apiPaths.systems,e.showDevTools,t,n]),V(()=>{if(!e.showDevTools)return;(async()=>{try{let H=i?`?system=${encodeURIComponent(i)}`:"",F=await fetch(`${e.backendUrl}${e.apiPaths.agents}${H}`,t.getFetchOptions({method:"GET"}));if(F.ok){let R=await F.json(),J=R.results||R;l(J);let O=n?.get(We);if(O&&J.some(A=>A.slug===O))p(O);else if(i){let A=s.find(C=>C.slug===i);A?.entry_agent&&p(A.entry_agent.slug)}let w=n?.get(Te);w&&f(w)}}catch(H){console.warn("[ChatWidget] Failed to load agents:",H)}})()},[e.backendUrl,e.apiPaths.agents,e.showDevTools,i,t,n,s]);let k=E(I=>{u(I),n?.set(Nt,I),p(null),f(null),n?.set(We,null),n?.set(Te,null);let F=s.find(R=>R.slug===I)?.active_version||null;d(F),n?.set(Kt,F)},[n,s]),$=E(I=>{p(I),n?.set(We,I);let F=o.find(R=>R.slug===I)?.active_version||null;f(F),n?.set(Te,F)},[n,o]),N=E(I=>{d(I),n?.set(Kt,I)},[n]),j=E(I=>{f(I),n?.set(Te,I)},[n]);return{systems:s,agents:o,selectedSystem:i,selectedAgent:c,selectedSystemVersion:r,selectedAgentVersion:h,isLoading:y,selectSystem:k,selectAgent:$,selectSystemVersion:N,selectAgentVersion:j,getEffectiveAgentKey:m}}function Wt(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:we(p),o=()=>e.authStrategy?e.authStrategy:e.authToken?"token":e.apiPaths.anonymousSession||e.anonymousSessionEndpoint?"anonymous":"none",l=(p=null)=>{let r=o(),d={},h=p||e.authToken||t().authToken;if(r==="token"&&h){let f=e.authHeader||"Authorization",y=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Token";d[f]=y?`${y} ${h}`:h}else if(r==="jwt"&&h){let f=e.authHeader||"Authorization",y=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Bearer";d[f]=y?`${y} ${h}`:h}else if(r==="anonymous"&&h){let f=e.authHeader||e.anonymousTokenHeader||"X-Anonymous-Token";d[f]=h}if(r==="session"){let f=Ct(e.csrfCookieName);f&&(d["X-CSRFToken"]=f)}return d};return{getAuthStrategy:o,getAuthHeaders:l,getFetchOptions:(p={},r=null)=>{let d=o(),h={...p},f=l(r);return console.log("[ChatWidget] getFetchOptions - strategy:",d,"overrideToken:",r,"authHeaders:",f),h.headers={...h.headers,...f},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 f=d.storage?.get(h);if(f)return n(y=>({...y,authToken:f})),f}try{let f=e.anonymousSessionEndpoint||e.apiPaths.anonymousSession,y=await fetch(`${e.backendUrl}${f}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(y.ok){let g=await y.json();return n(m=>({...m,authToken:g.token})),d.storage?.set(h,g.token),g.token}}catch(f){console.warn("[ChatWidget] Failed to create session:",f)}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 Vt({config:e,onStateChange:t,markdownParser:n,apiRef:s}){console.log("[ChatWidget] Config:",{showConversationSidebar:e.showConversationSidebar,apiPaths:e.apiPaths});let[a,o]=T(e.embedded||e.forceOpen===!0),[l,i]=T(!1),[u,c]=T(!1),[p,r]=T(!1),[d,h]=T([]),[f,y]=T("chat"),[g,m]=T(!1),[k,$]=T(e.enableTTS),[N,j]=T(!1),[I,H]=T(null);V(()=>{e.forceOpen!==void 0&&o(e.forceOpen)},[e.forceOpen]);let F=ae(()=>bt(e.containerId),[e.containerId]),[R,J]=T(e.authToken||null),O=ae(()=>Wt(e,()=>({authToken:R,storage:F}),ee=>{let Y=ee({authToken:R,storage:F});Y.authToken!==R&&J(Y.authToken)}),[e,R,F]),w=Ut(e,O,F),A=ae(()=>{if(!e.showDevTools)return e;let x=w.getEffectiveAgentKey();return x&&x!==e.agentKey?{...e,agentKey:x}:e},[e,w.getEffectiveAgentKey]),C=Rt(A,O,F),M=Ot(e,O,F),S=Lt(e,O);V(()=>{for(let x=C.messages.length-1;x>=0;x--){let Z=C.messages[x];if(Z.type==="sub_agent_start"){H({key:Z.metadata?.subAgentKey,name:Z.metadata?.agentName});return}if(Z.type==="sub_agent_end"){H(null);return}}},[C.messages]),V(()=>{let x=F.get(e.conversationIdKey);console.log("[ChatWidget] Initial load - storedConvId:",x,"key:",e.conversationIdKey),console.log("[ChatWidget] apiPaths.conversations:",e.apiPaths.conversations),x&&(console.log("[ChatWidget] Loading conversation:",x),C.loadConversation(x))},[]),V(()=>{t&&t({isOpen:a,isExpanded:l,debugMode:u,messages:C.messages,conversationId:C.conversationId,isLoading:C.isLoading,error:C.error})},[a,l,u,C.messages,C.conversationId,C.isLoading,C.error]);let D=E(async()=>{if(e.showConversationSidebar){m(!0);try{let x=A.agentKey,Z=`${e.backendUrl}${e.apiPaths.conversations}?agent_key=${encodeURIComponent(x)}`,ee=await fetch(Z,O.getFetchOptions({method:"GET"}));if(ee.ok){let Y=await ee.json();h(Y.results||Y)}}catch(x){console.error("[ChatWidget] Failed to load conversations:",x),h([])}finally{m(!1)}}},[e,A,O]),b=E(()=>{let x=!p;r(x),x&&D()},[p,D]),L=E(x=>{x!==C.conversationId&&C.loadConversation(x),r(!1)},[C]),U=E(()=>{C.clearMessages(),r(!1)},[C]),v=E(x=>{C.sendMessage(x,{model:M.selectedModel,thinking:M.thinkingEnabled&&M.supportsThinking(),onAssistantMessage:Z=>{}})},[C,k,M.selectedModel,M.thinkingEnabled,M.supportsThinking]),P=E(x=>{y(x),x==="tasks"&&S.loadTaskList()},[S]);if(V(()=>{s&&(s.current={open:()=>o(!0),close:()=>o(!1),send:x=>v(x),clearMessages:()=>C.clearMessages(),toggleTTS:()=>$(x=>!x),stopSpeech:()=>j(!1),setAuth:x=>{x.token!==void 0&&J(x.token)},clearAuth:()=>J(null)})},[C,s,v]),!e.embedded&&!a)return _`
684
+ `}function Lt(e,t,n){let[s,a]=S([]),[o,l]=S(!1),[c,d]=S(null),[u,p]=S(()=>n?.get(e.conversationIdKey)||null),[r,_]=S(!1),[h,f]=S(!1),[b,v]=S(0),m=Q(null),k=Q(null);B(()=>{u&&n?.set(e.conversationIdKey,u)},[u,e.conversationIdKey,n]);let $=x(async(w,E,C)=>{m.current&&m.current.close();let M=e.apiPaths.runEvents.replace("{runId}",w),I=`${e.backendUrl}${M}`;E&&(I+=`?anonymous_token=${encodeURIComponent(E)}`);let T=new EventSource(I);m.current=T;let y="";T.addEventListener("assistant.message",K=>{try{let g=JSON.parse(K.data);e.onEvent&&e.onEvent("assistant.message",g.payload);let A=g.payload.content;A&&(y+=A,a(V=>{let X=V[V.length-1];return X?.role==="assistant"&&X.id.startsWith("assistant-stream-")?[...V.slice(0,-1),{...X,content:y}]:[...V,{id:"assistant-stream-"+Date.now(),role:"assistant",content:y,timestamp:new Date,type:"message"}]}))}catch(g){console.error("[ChatWidget] Parse error:",g)}}),T.addEventListener("tool.call",K=>{try{let g=JSON.parse(K.data);e.onEvent&&e.onEvent("tool.call",g.payload),a(A=>[...A,{id:"tool-call-"+Date.now(),role:"assistant",content:`\u{1F527} ${g.payload.name}`,timestamp:new Date,type:"tool_call",metadata:{toolName:g.payload.name,arguments:g.payload.arguments,toolCallId:g.payload.id}}])}catch(g){console.error("[ChatWidget] Parse error:",g)}}),T.addEventListener("tool.result",K=>{try{let g=JSON.parse(K.data);e.onEvent&&e.onEvent("tool.result",g.payload);let A=g.payload.result,V=A?.error;a(X=>[...X,{id:"tool-result-"+Date.now(),role:"system",content:V?`\u274C ${A.error}`:"\u2713 Done",timestamp:new Date,type:"tool_result",metadata:{toolName:g.payload.name,result:A,toolCallId:g.payload.tool_call_id}}])}catch(g){console.error("[ChatWidget] Parse error:",g)}}),T.addEventListener("custom",K=>{try{let g=JSON.parse(K.data);e.onEvent&&e.onEvent("custom",g.payload),g.payload?.type==="ui_control"&&e.onUIControl&&e.onUIControl(g.payload),g.payload?.type==="agent_context"&&a(A=>[...A,{id:"agent-context-"+Date.now(),role:"system",content:`\u{1F517} ${g.payload.agent_name||"Sub-agent"} is now handling this request`,timestamp:new Date,type:"agent_context",metadata:{agentKey:g.payload.agent_key,agentName:g.payload.agent_name,action:g.payload.action}}])}catch(g){console.error("[ChatWidget] Parse error:",g)}}),T.addEventListener("sub_agent.start",K=>{try{let g=JSON.parse(K.data);e.onEvent&&e.onEvent("sub_agent.start",g.payload),a(A=>[...A,{id:"sub-agent-start-"+Date.now(),role:"system",content:`\u{1F517} Delegating to ${g.payload.agent_name||g.payload.sub_agent_key||"sub-agent"}...`,timestamp:new Date,type:"sub_agent_start",metadata:{subAgentKey:g.payload.sub_agent_key,agentName:g.payload.agent_name,invocationMode:g.payload.invocation_mode}}])}catch(g){console.error("[ChatWidget] Parse error:",g)}}),T.addEventListener("sub_agent.end",K=>{try{let g=JSON.parse(K.data);e.onEvent&&e.onEvent("sub_agent.end",g.payload),a(A=>[...A,{id:"sub-agent-end-"+Date.now(),role:"system",content:`\u2713 ${g.payload.agent_name||"Sub-agent"} completed`,timestamp:new Date,type:"sub_agent_end",metadata:{subAgentKey:g.payload.sub_agent_key,agentName:g.payload.agent_name}}])}catch(g){console.error("[ChatWidget] Parse error:",g)}}),T.addEventListener("content.blocks",K=>{try{let g=JSON.parse(K.data);e.onEvent&&e.onEvent("content.blocks",g.payload),a(A=>[...A,{id:"content-blocks-"+Date.now(),role:"assistant",content:"",timestamp:new Date,type:"content_blocks",metadata:{toolName:g.payload.tool_name,toolCallId:g.payload.tool_call_id,blocks:g.payload.blocks}}])}catch(g){console.error("[ChatWidget] Parse error:",g)}});let R=K=>{try{let g=JSON.parse(K.data);if(e.onEvent&&e.onEvent(g.type,g.payload),g.type==="run.failed"){let A=g.payload.error||"Agent run failed";d(A),a(V=>[...V,{id:"error-"+Date.now(),role:"system",content:`\u274C Error: ${A}`,timestamp:new Date,type:"error"}])}}catch(g){console.error("[ChatWidget] Parse error:",g)}l(!1),T.close(),m.current=null,y&&C&&C(y)};T.addEventListener("run.succeeded",R),T.addEventListener("run.failed",R),T.addEventListener("run.cancelled",R),T.addEventListener("run.timed_out",R),T.onerror=()=>{l(!1),T.close(),m.current=null}},[e]),O=x(async(w,E={},C={})=>{if(!w.trim()||o)return;let M=[],I={};typeof E=="function"?I={onAssistantMessage:E}:Array.isArray(E)?(M=E,I=C):I=E||{};let{model:T,thinking:y,onAssistantMessage:R,supersedeFromMessageIndex:K}=I;l(!0),d(null);let g={id:be(),role:"user",content:w.trim(),timestamp:new Date,type:"message",files:M.length>0?M.map(A=>({name:A.name,size:A.size,type:A.type})):void 0};a(A=>[...A,g]);try{let A=await t.getOrCreateSession(),V;if(M.length>0){let Y=e.apiCaseStyle!=="camel",Ve=ue=>Y?Ke(ue):ue,ne=new FormData;ne.append(Ve("agentKey"),e.agentKey),u&&ne.append(Ve("conversationId"),u),ne.append("messages",JSON.stringify([{role:"user",content:w.trim()}])),ne.append("metadata",JSON.stringify(Y?{...e.metadata,journey_type:e.defaultJourneyType}:{...e.metadata,journeyType:e.defaultJourneyType})),T&&ne.append("model",T),y&&ne.append("thinking","true"),M.forEach(ue=>{ne.append("files",ue)}),V=t.getFetchOptions({method:"POST",body:ne},A)}else{let Y=t.transformRequest({agentKey:e.agentKey,conversationId:u,messages:[{role:"user",content:w.trim()}],metadata:{...e.metadata,journeyType:e.defaultJourneyType},...T&&{model:T},...y&&{thinking:!0},...K!==void 0&&{supersedeFromMessageIndex:K}});V=t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Y)},A)}let X=await fetch(`${e.backendUrl}${e.apiPaths.runs}`,V),D=A;if(X.status===401){t.clearSession();let Y=await t.getOrCreateSession(!0);Y&&(D=Y,M.length>0?V=t.getFetchOptions({method:"POST",body:V.body},Y):V=t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:V.body},Y),X=await fetch(`${e.backendUrl}${e.apiPaths.runs}`,V))}if(!X.ok){let Y=await X.json().catch(()=>({}));throw new Error(Y.error||Y.detail||`HTTP ${X.status}`)}let Z=await X.json(),ee=t.transformResponse(Z);k.current=ee.id,!u&&ee.conversationId&&p(ee.conversationId),await $(ee.id,D,R)}catch(A){d(A.message||"Failed to send message"),l(!1)}finally{k.current=null}},[e,t,u,o,$]),q=x(async()=>{let w=k.current;if(!(!w||!o))try{let E=e.apiPaths.cancelRun?e.apiPaths.cancelRun.replace("{runId}",w):`${e.apiPaths.runs}${w}/cancel/`;(await fetch(`${e.backendUrl}${E}`,t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"}}))).ok&&(m.current&&(m.current.close(),m.current=null),l(!1),k.current=null,a(M=>[...M,{id:"cancelled-"+Date.now(),role:"system",content:"\u23F9 Run cancelled",timestamp:new Date,type:"cancelled"}]))}catch(E){console.error("[ChatWidget] Failed to cancel run:",E)}},[e,t,o]),P=x(()=>{a([]),p(null),d(null),_(!1),v(0),n?.set(e.conversationIdKey,null)},[e.conversationIdKey,n]),H=w=>{let E={id:be(),role:w.role,timestamp:w.timestamp?new Date(w.timestamp):new Date};if(w.role==="tool")return{...E,role:"system",content:"\u2713 Done",type:"tool_result",metadata:{result:w.content,toolCallId:w.toolCallId}};if(w.role==="assistant"&&w.toolCalls&&w.toolCalls.length>0)return w.toolCalls.map(M=>({id:be(),role:"assistant",content:`\u{1F527} ${M.function?.name||M.name||"tool"}`,timestamp:E.timestamp,type:"tool_call",metadata:{toolName:M.function?.name||M.name,arguments:M.function?.arguments||M.arguments,toolCallId:M.id}}));let C=typeof w.content=="string"?w.content:JSON.stringify(w.content);return w.role==="assistant"&&!C?.trim()?null:{...E,content:C,type:"message"}},F=x(async w=>{console.log("[ChatWidget] loadConversation called with:",w),l(!0),a([]),p(w);try{let E=await t.getOrCreateSession(),M=`${e.backendUrl}${e.apiPaths.conversations}${w}/?limit=10&offset=0`;console.log("[ChatWidget] Fetching conversation from:",M);let I=await fetch(M,t.getFetchOptions({method:"GET"},E));if(console.log("[ChatWidget] Response status:",I.status),I.ok){let T=await I.json();console.log("[ChatWidget] Raw conversation:",T);let y=t.transformResponse(T);if(console.log("[ChatWidget] Transformed conversation:",y),y.messages){let R=y.messages.flatMap(H).filter(Boolean);console.log("[ChatWidget] Mapped messages:",R),a(R)}_(y.hasMore||!1),v(y.messages?.length||0)}else I.status===404?(console.log("[ChatWidget] Conversation not found, clearing"),p(null),n?.set(e.conversationIdKey,null)):console.error("[ChatWidget] Unexpected response status:",I.status)}catch(E){console.error("[ChatWidget] Failed to load conversation:",E)}finally{l(!1)}},[e,t,n]),L=x(async()=>{if(!(!u||h||!r)){f(!0);try{let w=await t.getOrCreateSession(),C=`${e.backendUrl}${e.apiPaths.conversations}${u}/?limit=10&offset=${b}`,M=await fetch(C,t.getFetchOptions({method:"GET"},w));if(M.ok){let I=await M.json(),T=t.transformResponse(I);if(T.messages?.length>0){let y=T.messages.flatMap(H).filter(Boolean);a(R=>[...y,...R]),v(R=>R+T.messages.length),_(T.hasMore||!1)}else _(!1)}}catch(w){console.error("[ChatWidget] Failed to load more messages:",w)}finally{f(!1)}}},[e,t,u,b,h,r]),j=x(async(w,E,C={})=>{if(o)return;let M=s[w];if(!M||M.role!=="user")return;let I=s.slice(0,w);a(I),await O(E,{...C,supersedeFromMessageIndex:w})},[s,o,O]),N=x(async(w,E={})=>{if(o)return;let C=s[w];if(!C)return;let M=w,I=C;if(C.role==="assistant"){for(let y=w-1;y>=0;y--)if(s[y].role==="user"){M=y,I=s[y];break}if(I.role!=="user")return}else if(C.role!=="user")return;let T=s.slice(0,M);a(T),await O(I.content,{...E,supersedeFromMessageIndex:M})},[s,o,O]);return B(()=>()=>{m.current&&m.current.close()},[]),{messages:s,isLoading:o,error:c,conversationId:u,hasMoreMessages:r,loadingMoreMessages:h,sendMessage:O,cancelRun:q,clearMessages:P,loadConversation:F,loadMoreMessages:L,setConversationId:p,editMessage:j,retryMessage:N}}var Nt="cw_thinking_enabled";function Kt(e,t,n){let[s,a]=S([]),[o,l]=S(null),[c,d]=S(null),[u,p]=S(!1),[r,_]=S(!1);B(()=>{(async()=>{if(e.showModelSelector){p(!0);try{let k=await fetch(`${e.backendUrl}${e.apiPaths.models}`,t.getFetchOptions({method:"GET"}));if(k.ok){let $=await k.json(),O=$.models||[];a(O),d($.default);let q=n?.get(e.modelKey);q&&O.some(H=>H.id===q)?l(q):l($.default),n?.get(Nt)==="true"&&_(!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=x(m=>{l(m),n?.set(e.modelKey,m)},[e.modelKey,n]),f=x(m=>{_(m),n?.set(Nt,m?"true":"false")},[n]),b=x(()=>s.find(m=>m.id===o)||null,[s,o]),v=x(()=>b()?.supports_thinking||!1,[b]);return{availableModels:s,selectedModel:o,defaultModel:c,isLoading:u,selectModel:h,getSelectedModelInfo:b,thinkingEnabled:r,toggleThinking:f,supportsThinking:v}}function Wt(e,t){let[n,s]=S(null),[a,o]=S(!1),[l,c]=S(null),d=e.apiPaths?.tasks||"/api/agent/tasks/",u=x(async()=>{o(!0),c(null);try{let b=`${e.backendUrl}${d}`,v=await fetch(b,t.getFetchOptions({method:"GET"}));if(v.ok){let m=await v.json();s(m)}else{let m=await v.json().catch(()=>({}));c(m.error||"Failed to load tasks")}}catch(b){console.error("[useTasks] Failed to load task list:",b),c("Failed to load tasks")}finally{o(!1)}},[e.backendUrl,d,t]),p=x(async b=>{if(!n)return null;try{let v=`${e.backendUrl}${d}${n.id}/add_task/`,m=await fetch(v,t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}));if(m.ok){let k=await m.json();return await u(),k}else{let k=await m.json().catch(()=>({}));return c(k.error||"Failed to add task"),null}}catch(v){return console.error("[useTasks] Failed to add task:",v),c("Failed to add task"),null}},[e.backendUrl,d,n,t,u]),r=x(async(b,v)=>{if(!n)return null;try{let m=`${e.backendUrl}${d}${n.id}/update_task/${b}/`,k=await fetch(m,t.getFetchOptions({method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(v)}));if(k.ok){let $=await k.json();return await u(),$}else{let $=await k.json().catch(()=>({}));return c($.error||"Failed to update task"),null}}catch(m){return console.error("[useTasks] Failed to update task:",m),c("Failed to update task"),null}},[e.backendUrl,d,n,t,u]),_=x(async b=>{if(!n)return!1;try{let v=`${e.backendUrl}${d}${n.id}/remove_task/${b}/`,m=await fetch(v,t.getFetchOptions({method:"DELETE"}));if(m.ok)return await u(),!0;{let k=await m.json().catch(()=>({}));return c(k.error||"Failed to remove task"),!1}}catch(v){return console.error("[useTasks] Failed to remove task:",v),c("Failed to remove task"),!1}},[e.backendUrl,d,n,t,u]),h=x(async()=>{if(!n)return!1;try{let b=`${e.backendUrl}${d}${n.id}/clear/`,v=await fetch(b,t.getFetchOptions({method:"POST"}));if(v.ok)return await u(),!0;{let m=await v.json().catch(()=>({}));return c(m.error||"Failed to clear tasks"),!1}}catch(b){return console.error("[useTasks] Failed to clear tasks:",b),c("Failed to clear tasks"),!1}},[e.backendUrl,d,n,t,u]),f=x(()=>c(null),[]);return{taskList:n,tasks:n?.tasks||[],progress:n?.progress||{total:0,completed:0,percent_complete:0},isLoading:a,error:l,loadTaskList:u,addTask:p,updateTask:r,removeTask:_,clearTasks:h,clearError:f}}var Ut="cw_selected_system",Ue="cw_selected_agent",Bt="cw_selected_system_version",Me="cw_selected_agent_version";function Vt(e,t,n){let[s,a]=S([]),[o,l]=S([]),[c,d]=S(null),[u,p]=S(null),[r,_]=S(null),[h,f]=S(null),[b,v]=S(!1),m=x(()=>{if(u)return u;if(c){let P=s.find(H=>H.slug===c);if(P?.entry_agent)return P.entry_agent.slug}return e.agentKey},[u,c,s,e.agentKey]);B(()=>{if(!e.showDevTools)return;(async()=>{v(!0);try{let H=await fetch(`${e.backendUrl}${e.apiPaths.systems}`,t.getFetchOptions({method:"GET"}));if(H.ok){let F=await H.json(),L=F.results||F;a(L);let j=n?.get(Ut);j&&L.some(N=>N.slug===j)?d(j):L.length===1&&d(L[0].slug)}}catch(H){console.warn("[ChatWidget] Failed to load systems:",H)}finally{v(!1)}})()},[e.backendUrl,e.apiPaths.systems,e.showDevTools,t,n]),B(()=>{if(!e.showDevTools)return;(async()=>{try{let H=c?`?system=${encodeURIComponent(c)}`:"",F=await fetch(`${e.backendUrl}${e.apiPaths.agents}${H}`,t.getFetchOptions({method:"GET"}));if(F.ok){let L=await F.json(),j=L.results||L;l(j);let N=n?.get(Ue);if(N&&j.some(E=>E.slug===N))p(N);else if(c){let E=s.find(C=>C.slug===c);E?.entry_agent&&p(E.entry_agent.slug)}let w=n?.get(Me);w&&f(w)}}catch(H){console.warn("[ChatWidget] Failed to load agents:",H)}})()},[e.backendUrl,e.apiPaths.agents,e.showDevTools,c,t,n,s]);let k=x(P=>{d(P),n?.set(Ut,P),p(null),f(null),n?.set(Ue,null),n?.set(Me,null);let F=s.find(L=>L.slug===P)?.active_version||null;_(F),n?.set(Bt,F)},[n,s]),$=x(P=>{p(P),n?.set(Ue,P);let F=o.find(L=>L.slug===P)?.active_version||null;f(F),n?.set(Me,F)},[n,o]),O=x(P=>{_(P),n?.set(Bt,P)},[n]),q=x(P=>{f(P),n?.set(Me,P)},[n]);return{systems:s,agents:o,selectedSystem:c,selectedAgent:u,selectedSystemVersion:r,selectedAgentVersion:h,isLoading:b,selectSystem:k,selectAgent:$,selectSystemVersion:O,selectAgentVersion:q,getEffectiveAgentKey:m}}function jt(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:we(p),o=()=>e.authStrategy?e.authStrategy:e.authToken?"token":e.apiPaths.anonymousSession||e.anonymousSessionEndpoint?"anonymous":"none",l=(p=null)=>{let r=o(),_={},h=p||e.authToken||t().authToken;if(r==="token"&&h){let f=e.authHeader||"Authorization",b=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Token";_[f]=b?`${b} ${h}`:h}else if(r==="jwt"&&h){let f=e.authHeader||"Authorization",b=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Bearer";_[f]=b?`${b} ${h}`:h}else if(r==="anonymous"&&h){let f=e.authHeader||e.anonymousTokenHeader||"X-Anonymous-Token";_[f]=h}if(r==="session"){let f=Ct(e.csrfCookieName);f&&(_["X-CSRFToken"]=f)}return _};return{getAuthStrategy:o,getAuthHeaders:l,getFetchOptions:(p={},r=null)=>{let _=o(),h={...p},f=l(r);return console.log("[ChatWidget] getFetchOptions - strategy:",_,"overrideToken:",r,"authHeaders:",f),h.headers={...h.headers,...f},_==="session"&&(h.credentials="include"),h},getOrCreateSession:async(p=!1)=>{let r=o(),_=t(),h=e.anonymousTokenKey||e.sessionTokenKey;if(r!=="anonymous")return e.authToken||_.authToken;if(!p){if(_.authToken)return _.authToken;let f=_.storage?.get(h);if(f)return n(b=>({...b,authToken:f})),f}try{let f=e.anonymousSessionEndpoint||e.apiPaths.anonymousSession,b=await fetch(`${e.backendUrl}${f}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(b.ok){let v=await b.json();return n(m=>({...m,authToken:v.token})),_.storage?.set(h,v.token),v.token}}catch(f){console.warn("[ChatWidget] Failed to create session:",f)}return null},clearSession:()=>{let p=e.anonymousTokenKey||e.sessionTokenKey,r=t();n(_=>({..._,authToken:null})),r.storage?.set(p,null)},transformRequest:s,transformResponse:a}}function Jt({config:e,onStateChange:t,markdownParser:n,apiRef:s}){console.log("[ChatWidget] Config:",{showConversationSidebar:e.showConversationSidebar,apiPaths:e.apiPaths});let[a,o]=S(e.embedded||e.forceOpen===!0),[l,c]=S(!1),[d,u]=S(!1),[p,r]=S(!1),[_,h]=S([]),[f,b]=S("chat"),[v,m]=S(!1),[k,$]=S(e.enableTTS),[O,q]=S(!1),[P,H]=S(null);B(()=>{e.forceOpen!==void 0&&o(e.forceOpen)},[e.forceOpen]);let F=ae(()=>bt(e.containerId),[e.containerId]),[L,j]=S(e.authToken||null),N=ae(()=>jt(e,()=>({authToken:L,storage:F}),ee=>{let Y=ee({authToken:L,storage:F});Y.authToken!==L&&j(Y.authToken)}),[e,L,F]),w=Vt(e,N,F),E=ae(()=>{if(!e.showDevTools)return e;let D=w.getEffectiveAgentKey();return D&&D!==e.agentKey?{...e,agentKey:D}:e},[e,w.getEffectiveAgentKey]),C=Lt(E,N,F),M=Kt(e,N,F),I=Wt(e,N);B(()=>{for(let D=C.messages.length-1;D>=0;D--){let Z=C.messages[D];if(Z.type==="sub_agent_start"){H({key:Z.metadata?.subAgentKey,name:Z.metadata?.agentName});return}if(Z.type==="sub_agent_end"){H(null);return}}},[C.messages]),B(()=>{let D=F.get(e.conversationIdKey);console.log("[ChatWidget] Initial load - storedConvId:",D,"key:",e.conversationIdKey),console.log("[ChatWidget] apiPaths.conversations:",e.apiPaths.conversations),D&&(console.log("[ChatWidget] Loading conversation:",D),C.loadConversation(D))},[]),B(()=>{t&&t({isOpen:a,isExpanded:l,debugMode:d,messages:C.messages,conversationId:C.conversationId,isLoading:C.isLoading,error:C.error})},[a,l,d,C.messages,C.conversationId,C.isLoading,C.error]);let T=x(async()=>{if(e.showConversationSidebar){m(!0);try{let D=E.agentKey,Z=`${e.backendUrl}${e.apiPaths.conversations}?agent_key=${encodeURIComponent(D)}`,ee=await fetch(Z,N.getFetchOptions({method:"GET"}));if(ee.ok){let Y=await ee.json();h(Y.results||Y)}}catch(D){console.error("[ChatWidget] Failed to load conversations:",D),h([])}finally{m(!1)}}},[e,E,N]),y=x(()=>{let D=!p;r(D),D&&T()},[p,T]),R=x(D=>{D!==C.conversationId&&C.loadConversation(D),r(!1)},[C]),K=x(()=>{C.clearMessages(),r(!1)},[C]),g=x(D=>{C.sendMessage(D,{model:M.selectedModel,thinking:M.thinkingEnabled&&M.supportsThinking(),onAssistantMessage:Z=>{}})},[C,k,M.selectedModel,M.thinkingEnabled,M.supportsThinking]),A=x(D=>{b(D),D==="tasks"&&I.loadTaskList()},[I]);if(B(()=>{s&&(s.current={open:()=>o(!0),close:()=>o(!1),send:D=>g(D),clearMessages:()=>C.clearMessages(),toggleTTS:()=>$(D=>!D),stopSpeech:()=>q(!1),setAuth:D=>{D.token!==void 0&&j(D.token)},clearAuth:()=>j(null)})},[C,s,g]),!e.embedded&&!a)return i`
588
685
  <button
589
686
  class="cw-fab"
590
687
  style=${{backgroundColor:e.primaryColor}}
@@ -594,40 +691,40 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
594
691
  <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>
595
692
  </svg>
596
693
  </button>
597
- `;let B=["cw-widget",l&&"cw-widget-expanded",e.embedded&&"cw-widget-embedded"].filter(Boolean).join(" "),X=e.headerTextColor||St(e.primaryColor);return _`
598
- <div class=${B} style=${{"--cw-primary":e.primaryColor,"--cw-header-text":X}}>
599
- ${e.showConversationSidebar&&_`
600
- <${At}
694
+ `;let V=["cw-widget",l&&"cw-widget-expanded",e.embedded&&"cw-widget-embedded"].filter(Boolean).join(" "),X=e.headerTextColor||St(e.primaryColor);return i`
695
+ <div class=${V} style=${{"--cw-primary":e.primaryColor,"--cw-header-text":X}}>
696
+ ${e.showConversationSidebar&&i`
697
+ <${Rt}
601
698
  isOpen=${p}
602
- conversations=${d}
603
- conversationsLoading=${g}
699
+ conversations=${_}
700
+ conversationsLoading=${v}
604
701
  currentConversationId=${C.conversationId}
605
702
  onClose=${()=>r(!1)}
606
- onNewConversation=${U}
607
- onSwitchConversation=${L}
703
+ onNewConversation=${K}
704
+ onSwitchConversation=${R}
608
705
  />
609
706
  `}
610
707
 
611
- ${e.showHeader!==!1&&_`
708
+ ${e.showHeader!==!1&&i`
612
709
  <${Tt}
613
710
  config=${e}
614
- debugMode=${u}
711
+ debugMode=${d}
615
712
  isExpanded=${l}
616
- isSpeaking=${N}
713
+ isSpeaking=${O}
617
714
  messagesCount=${C.messages.length}
618
715
  isLoading=${C.isLoading}
619
- currentAgent=${I}
716
+ currentAgent=${P}
620
717
  onClose=${()=>o(!1)}
621
- onToggleExpand=${()=>i(!l)}
622
- onToggleDebug=${()=>c(!u)}
718
+ onToggleExpand=${()=>c(!l)}
719
+ onToggleDebug=${()=>u(!d)}
623
720
  onToggleTTS=${()=>$(!k)}
624
721
  onClear=${C.clearMessages}
625
- onToggleSidebar=${b}
722
+ onToggleSidebar=${y}
626
723
  />
627
724
  `}
628
725
 
629
- ${e.showDevTools&&_`
630
- <${Ft}
726
+ ${e.showDevTools&&i`
727
+ <${Ht}
631
728
  systems=${w.systems}
632
729
  agents=${w.agents}
633
730
  selectedSystem=${w.selectedSystem}
@@ -642,27 +739,27 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
642
739
  />
643
740
  `}
644
741
 
645
- ${e.showTasksTab!==!1&&_`
742
+ ${e.showTasksTab!==!1&&i`
646
743
  <div class="cw-tabs">
647
744
  <button
648
745
  class=${`cw-tab ${f==="chat"?"cw-tab-active":""}`}
649
- onClick=${()=>P("chat")}
746
+ onClick=${()=>A("chat")}
650
747
  >
651
748
  Chat
652
749
  </button>
653
750
  <button
654
751
  class=${`cw-tab ${f==="tasks"?"cw-tab-active":""}`}
655
- onClick=${()=>P("tasks")}
752
+ onClick=${()=>A("tasks")}
656
753
  >
657
- Tasks ${S.progress.total>0?_`<span class="cw-tab-badge">${S.progress.completed}/${S.progress.total}</span>`:""}
754
+ Tasks ${I.progress.total>0?i`<span class="cw-tab-badge">${I.progress.completed}/${I.progress.total}</span>`:""}
658
755
  </button>
659
756
  </div>
660
757
  `}
661
758
 
662
- ${u&&_`<div class="cw-status-bar"><span>🐛 Debug</span></div>`}
759
+ ${d&&i`<div class="cw-status-bar"><span>🐛 Debug</span></div>`}
663
760
 
664
- ${f==="chat"?_`
665
- <${xt}
761
+ ${f==="chat"?i`
762
+ <${Dt}
666
763
  messages=${C.messages}
667
764
  isLoading=${C.isLoading}
668
765
  hasMoreMessages=${C.hasMoreMessages}
@@ -670,16 +767,17 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
670
767
  onLoadMore=${C.loadMoreMessages}
671
768
  onEditMessage=${C.editMessage}
672
769
  onRetryMessage=${C.retryMessage}
673
- debugMode=${u}
770
+ onSendMessage=${g}
771
+ debugMode=${d}
674
772
  markdownParser=${n}
675
773
  emptyStateTitle=${e.emptyStateTitle}
676
774
  emptyStateMessage=${e.emptyStateMessage}
677
775
  />
678
776
 
679
- ${C.error&&_`<div class="cw-error-bar">${C.error}</div>`}
777
+ ${C.error&&i`<div class="cw-error-bar">${C.error}</div>`}
680
778
 
681
- ${e.showModelSelector&&M.availableModels.length>0&&_`
682
- <${Dt}
779
+ ${e.showModelSelector&&M.availableModels.length>0&&i`
780
+ <${Ft}
683
781
  availableModels=${M.availableModels}
684
782
  selectedModel=${M.selectedModel}
685
783
  onSelectModel=${M.selectModel}
@@ -689,8 +787,8 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
689
787
  />
690
788
  `}
691
789
 
692
- <${It}
693
- onSend=${v}
790
+ <${Pt}
791
+ onSend=${g}
694
792
  onCancel=${C.cancelRun}
695
793
  isLoading=${C.isLoading}
696
794
  placeholder=${e.placeholder}
@@ -698,22 +796,22 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
698
796
  enableVoice=${e.enableVoice}
699
797
  enableFiles=${e.showFileAttachment!==!1}
700
798
  />
701
- `:_`
702
- <${Pt}
703
- tasks=${S.tasks}
704
- progress=${S.progress}
705
- isLoading=${S.isLoading}
706
- error=${S.error}
707
- onUpdate=${S.updateTask}
708
- onRemove=${S.removeTask}
709
- onClear=${S.clearTasks}
710
- onRefresh=${S.loadTaskList}
799
+ `:i`
800
+ <${Ot}
801
+ tasks=${I.tasks}
802
+ progress=${I.progress}
803
+ isLoading=${I.isLoading}
804
+ error=${I.error}
805
+ onUpdate=${I.updateTask}
806
+ onRemove=${I.removeTask}
807
+ onClear=${I.clearTasks}
808
+ onRefresh=${I.loadTaskList}
711
809
  />
712
810
  `}
713
811
  </div>
714
- `}var Bt={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/",systems:"/api/agent-runtime/systems/",agents:"/api/agent-runtime/agents/"},apiCaseStyle:"auto",theme:"light",showHeader:!0,showFileAttachment:!0,showTasksTab:!0,showConversationSidebar:!0,showClearButton:!0,showDebugButton:!0,showTTSButton:!0,showVoiceSettings:!0,showExpandButton:!0,showModelSelector:!1,showDevTools:!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 jt(e){let t={...Bt.apiPaths,...e.apiPaths||{}};return{...Bt,...e,apiPaths:t}}var Me=new Map,gn=0,K=null,Ve=class{constructor(t={}){je(this,"_handleStateChange",t=>{this._state=t});this.instanceId=`cw-${++gn}`,this.config=jt(t),this.container=null,this._state={},this._apiRef={current:null},Me.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._applyTheme(),this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} initialized`),this}_applyTheme(){this.container&&(this.container.classList.remove("cw-dark","cw-auto"),this.config.theme==="dark"?this.container.classList.add("cw-dark"):this.config.theme==="auto"&&this.container.classList.add("cw-auto"))}_render(t={}){this.container&&ve(_`<${Vt}
812
+ `}var zt={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/",systems:"/api/agent-runtime/systems/",agents:"/api/agent-runtime/agents/"},apiCaseStyle:"auto",theme:"light",showHeader:!0,showFileAttachment:!0,showTasksTab:!0,showConversationSidebar:!0,showClearButton:!0,showDebugButton:!0,showTTSButton:!0,showVoiceSettings:!0,showExpandButton:!0,showModelSelector:!1,showDevTools:!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 qt(e){let t={...zt.apiPaths,...e.apiPaths||{}};return{...zt,...e,apiPaths:t}}var Ee=new Map,An=0,W=null,Be=class{constructor(t={}){je(this,"_handleStateChange",t=>{this._state=t});this.instanceId=`cw-${++An}`,this.config=qt(t),this.container=null,this._state={},this._apiRef={current:null},Ee.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._applyTheme(),this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} initialized`),this}_applyTheme(){this.container&&(this.container.classList.remove("cw-dark","cw-auto"),this.config.theme==="dark"?this.container.classList.add("cw-dark"):this.config.theme==="auto"&&this.container.classList.add("cw-auto"))}_render(t={}){this.container&&ye(i`<${Jt}
715
813
  config=${{...this.config,...t}}
716
814
  onStateChange=${this._handleStateChange}
717
- markdownParser=${Ee._enhancedMarkdownParser}
815
+ markdownParser=${xe._enhancedMarkdownParser}
718
816
  apiRef=${this._apiRef}
719
- />`,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),Me.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},"theme"in t&&this._applyTheme(),this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} config updated`)}};function zt(e={}){return new Ve(e).init()}function yn(e={}){return K&&K.destroy(),K=zt(e),K}function vn(){K&&(K.destroy(),K=null)}function $n(){K&&K.open()}function wn(){K&&K.close()}function kn(e){K&&K.send(e)}function bn(){K&&K.clearMessages()}function Cn(){K&&K.toggleTTS()}function Sn(){K&&K.stopSpeech()}function Tn(e){K&&K.setAuth(e)}function Mn(){K&&K.clearAuth()}function En(){return K?K.getState():null}function xn(){return K?K.getConfig():null}var Ee={createInstance:zt,getInstance:e=>Me.get(e),getAllInstances:()=>Array.from(Me.values()),init:yn,destroy:vn,open:$n,close:wn,send:kn,clearMessages:bn,toggleTTS:Cn,stopSpeech:Sn,setAuth:Tn,clearAuth:Mn,getState:En,getConfig:xn,_enhancedMarkdownParser:null};var In=Ee;typeof window<"u"&&(window.ChatWidget=Ee);return Zt(An);})();
817
+ />`,this.container)}destroy(){this.container&&(ye(null,this.container),this.config.containerId?this.container.classList.remove("cw-container-embedded"):this.container.remove(),this.container=null),Ee.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},"theme"in t&&this._applyTheme(),this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} config updated`)}};function Gt(e={}){return new Be(e).init()}function In(e={}){return W&&W.destroy(),W=Gt(e),W}function Dn(){W&&(W.destroy(),W=null)}function Pn(){W&&W.open()}function Rn(){W&&W.close()}function Fn(e){W&&W.send(e)}function On(){W&&W.clearMessages()}function Hn(){W&&W.toggleTTS()}function Ln(){W&&W.stopSpeech()}function Nn(e){W&&W.setAuth(e)}function Kn(){W&&W.clearAuth()}function Wn(){return W?W.getState():null}function Un(){return W?W.getConfig():null}var xe={createInstance:Gt,getInstance:e=>Ee.get(e),getAllInstances:()=>Array.from(Ee.values()),init:In,destroy:Dn,open:Pn,close:Rn,send:Fn,clearMessages:On,toggleTTS:Hn,stopSpeech:Ln,setAuth:Nn,clearAuth:Kn,getState:Wn,getConfig:Un,_enhancedMarkdownParser:null};var Bn=xe;typeof window<"u"&&(window.ChatWidget=xe);return nn(Vn);})();