@makemore/agent-frontend 2.10.0 → 2.11.0

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,i,_){var r,p,h,f,y,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&&(p=h.__i==-1?le:k[h.__i]||le,h.__i=r,v=Fe(e,h,p,a,o,l,c,d,i,_),f=h.__e,h.ref&&p.ref!=h.ref&&(p.ref&&Oe(p.ref,null,h),_.push(h.ref,h.__c||f,h)),y==null&&f!=null&&(y=f),(m=!!(4&h.__u))||p.__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=y,d}function rn(e,t,n,s,a){var o,l,c,d,i,_=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+p,l.__=e,l.__b=e.__b+1,c=null,(i=l.__i=ln(l,n,d,r))!=-1&&(r--,(c=n[i])&&(c.__u|=2)),c==null||c.__v==null?(i==-1&&(a>_?p--:a<_&&p++),typeof l.type!="function"&&(l.__u|=4)):i!=d&&(i==d-1?p--:i==d+1?p++:(i>d?p--:p++,l.__u|=4))):e.__k[o]=null;if(r)for(o=0;o<_;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,i=t[n],_=i!=null&&(2&i.__u)==0;if(i===null&&c==null||_&&c==i.key&&d==i.type)return n;if(s>(_?1:0)){for(a=n-1,o=n+1;a>=0||o<t.length;)if((i=t[l=a>=0?a--:o++])!=null&&!(2&i.__u)&&c==i.key&&d==i.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,i){var _,r,p,h,f,y,v,m,k,$,K,j,D,O,R,F,q,H=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(d=!!(32&n.__u),o=[c=t.__e=n.__e]),(_=U.__b)&&_(t);e:if(typeof H=="function")try{if(m=t.props,k="prototype"in H&&H.prototype.render,$=(_=H.contextType)&&s[_.__c],K=_?$?$.props.value:_.__:s,n.__c?v=(r=t.__c=n.__c).__=r.__E:(k?t.__c=r=new H(m,K):(t.__c=r=new re(m,K),r.constructor=H,r.render=un),$&&$.sub(r),r.state||(r.state={}),r.__n=s,p=r.__d=!0,r.__h=[],r._sb=[]),k&&r.__s==null&&(r.__s=r.state),k&&H.getDerivedStateFromProps!=null&&(r.__s==r.state&&(r.__s=te({},r.__s)),te(r.__s,H.getDerivedStateFromProps(m,r.__s))),h=r.props,f=r.state,r.__v=t,p)k&&H.getDerivedStateFromProps==null&&r.componentWillMount!=null&&r.componentWillMount(),k&&r.componentDidMount!=null&&r.__h.push(r.componentDidMount);else{if(k&&H.getDerivedStateFromProps==null&&m!==h&&r.componentWillReceiveProps!=null&&r.componentWillReceiveProps(m,K),t.__v==n.__v||!r.__e&&r.shouldComponentUpdate!=null&&r.shouldComponentUpdate(m,r.__s,K)===!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,K),k&&r.componentDidUpdate!=null&&r.__h.push(function(){r.componentDidUpdate(h,f,y)})}if(r.context=K,r.props=m,r.__P=e,r.__e=!1,D=U.__r,O=0,k){for(r.state=r.__s,r.__d=!1,D&&D(t),_=r.render(r.props,r.state,r.context),R=0;R<r._sb.length;R++)r.__h.push(r._sb[R]);r._sb=[]}else do r.__d=!1,D&&D(t),_=r.render(r.props,r.state,r.context),r.state=r.__s;while(r.__d&&++O<25);r.state=r.__s,r.getChildContext!=null&&(s=te(te({},s),r.getChildContext())),k&&!p&&r.getSnapshotBeforeUpdate!=null&&(y=r.getSnapshotBeforeUpdate(h,f)),F=_,_!=null&&_.type===ve&&_.key==null&&(F=at(_.props.children)),c=nt(e,me(F)?F:[F],t,n,s,a,o,l,c,d,i),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(q=o.length;q--;)Re(o[q]);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,i);return(_=U.diffed)&&_(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 i,_,r,p,h,f,y,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(i=0;i<o.length;i++)if((h=o[i])&&"setAttribute"in h==!!k&&(k?h.localName==k:h.nodeType==3)){e=h,o[i]=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={},i=0;i<e.attributes.length;i++)v[(h=e.attributes[i]).name]=h.value;for(i in v)if(h=v[i],i!="children"){if(i=="dangerouslySetInnerHTML")r=h;else if(!(i in m)){if(i=="value"&&"defaultValue"in m||i=="checked"&&"defaultChecked"in m)continue;pe(e,i,null,h,a)}}for(i in m)h=m[i],i=="children"?p=h:i=="dangerouslySetInnerHTML"?_=h:i=="value"?f=h:i=="checked"?y=h:c&&typeof h!="function"||v[i]===h||pe(e,i,h,v[i],a);if(_)c||r&&(_.__html==r.__html||_.__html==e.innerHTML)||(e.innerHTML=_.__html),t.__k=[];else if(r&&(e.innerHTML=""),nt(t.type=="template"?e.content:e,me(p)?p:[p],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(i=o.length;i--;)Re(o[i]);c||(i="value",k=="progress"&&f==null?e.removeAttribute("value"):f!=null&&(f!==e[i]||k=="progress"&&!f||k=="option"&&f!=v[i])&&pe(e,i,f,v[i],a),i="checked",y!=null&&y!=e[i]&&pe(e,i,y,v[i],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],i=function(p){o===1&&(p||(l=l.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?d.push(0,p,l):o===3&&(p||l)?(d.push(3,p,l),o=2):o===2&&l==="..."&&p?d.push(4,p,0):o===2&&l&&!p?d.push(5,0,!0,l):o>=5&&((l||!p&&o===5)&&(d.push(o,0,l,a),o=6),p&&(d.push(o,p,0,a),o=6)),l=""},_=0;_<n.length;_++){_&&(o===1&&i(),i(_));for(var r=0;r<n[_].length;r++)s=n[_][r],o===1?s==="<"?(i(),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===">"?(i(),o=1):o&&(s==="="?(o=5,a=l,l=""):s==="/"&&(o<5||n[_][r+1]===">")?(i(),o===3&&(d=d[0]),o=d,(d=d[0]).push(2,0,o),o=0):s===" "||s===" "||s===`
2
+ `||s==="\r"?(i(),o=2):l+=s),o===3&&l==="!--"&&(o=4,d=d[0])}return i(),d}(e)),t),arguments,[])).length>1?t:t[0]}var u=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 T(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],i=s.t(d,c);d!==i&&(s.__N=[i,s.__[1]],s.__c.setState({}))}],s.__c=J,!J.__f)){var a=function(c,d,i){if(!s.__c.__H)return!0;var _=s.__c.__H.__.filter(function(p){return!!p.__c});if(_.every(function(p){return!p.__N}))return!o||o.call(this,c,d,i);var r=s.__c.props!==c;return _.forEach(function(p){if(p.__N){var h=p.__[0];p.__=p.__N,p.__N=void 0,h!==p.__[0]&&(r=!0)}}),o&&o.call(this,c,d,i)||r};J.__f=!0;var o=J.shouldComponentUpdate,l=J.componentWillUpdate;J.componentWillUpdate=function(c,d,i){if(this.__e){var _=o;o=void 0,a(c,d,i),o=_}l&&l.call(this,c,d,i)},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:i,onToggleTTS:_,onClear:r,onToggleSidebar:p}){let{title:h,primaryColor:f,embedded:y,showConversationSidebar:v,showClearButton:m,showDebugButton:k,enableDebugMode:$,showTTSButton:K,showExpandButton:j,enableTTS:D,elevenLabsApiKey:O,ttsProxyUrl:R}=e,F=O||R;return u`
3
3
  <div class="cw-header" style=${{backgroundColor:f}}>
4
- ${g&&_`
4
+ ${v&&u`
5
5
  <button
6
6
  class="cw-header-btn cw-hamburger"
7
- onClick=${d}
7
+ onClick=${p}
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&&u`
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&&u`
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&&$&&u`
39
39
  <button
40
40
  class="cw-header-btn ${t?"cw-btn-active":""}"
41
- onClick=${c}
41
+ onClick=${i}
42
42
  title="Debug"
43
43
  >🐛</button>
44
44
  `}
45
45
 
46
- ${N&&R&&_`
46
+ ${K&&F&&u`
47
47
  <button
48
- class="cw-header-btn ${I?"cw-btn-active":""}"
49
- onClick=${p}
48
+ class="cw-header-btn ${D?"cw-btn-active":""}"
49
+ onClick=${_}
50
50
  title="TTS"
51
- >${I?"\u{1F50A}":"\u{1F507}"}</button>
51
+ >${D?"\u{1F50A}":"\u{1F507}"}</button>
52
52
  `}
53
53
 
54
- ${j&&!y&&_`
54
+ ${j&&!y&&u`
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
+ ${!y&&u`
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 u`
72
+ <div class="cw-block-card">
73
+ ${e.image&&u`<img class="cw-block-card-image" src=${e.image} alt=${e.title||""} />`}
74
+ <div class="cw-block-card-body">
75
+ ${e.badge&&u`<span class="cw-block-card-badge">${e.badge}</span>`}
76
+ ${e.title&&u`<div class="cw-block-card-title">${e.title}</div>`}
77
+ ${e.subtitle&&u`<div class="cw-block-card-subtitle">${e.subtitle}</div>`}
78
+ ${e.metadata&&e.metadata.length>0&&u`
79
+ <div class="cw-block-card-meta">
80
+ ${e.metadata.map(s=>u`
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&&u`
88
+ <div class="cw-block-card-actions">
89
+ ${e.actions.map(s=>u`<${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 u`
95
+ <div class="cw-block-card-list cw-block-card-list-${s}">
96
+ ${(e.items||[]).map(a=>u`
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"?u`<a class="cw-block-btn cw-block-btn-${n}" href=${e.url} target="_blank" rel="noopener">${e.label}</a>`:u`<button class="cw-block-btn cw-block-btn-${n}" onClick=${s}>${e.label}</button>`}function gn({block:e,onAction:t}){return u`
101
+ <div class="cw-block-action-buttons">
102
+ ${(e.buttons||[]).map(n=>u`<${Et} action=${n} onAction=${t} />`)}
103
+ </div>
104
+ `}function vn({block:e}){let t=e.style||"info";return u`
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&&u`<strong>${e.title}</strong>`}
109
+ ${e.body&&u`<span>${e.body}</span>`}
110
+ </div>
111
+ </div>
112
+ `}function yn({block:e}){return u`
113
+ <figure class="cw-block-image">
114
+ <img src=${e.url} alt=${e.alt||""} />
115
+ ${e.caption&&u`<figcaption>${e.caption}</figcaption>`}
116
+ </figure>
117
+ `}function $n(){return u`<hr class="cw-block-divider" />`}function wn({block:e}){return u`
118
+ <div class="cw-block-table-wrapper">
119
+ <table class="cw-block-table">
120
+ ${e.headers&&e.headers.length>0&&u`
121
+ <thead><tr>${e.headers.map(t=>u`<th>${t}</th>`)}</tr></thead>
122
+ `}
123
+ <tbody>
124
+ ${(e.rows||[]).map(t=>u`
125
+ <tr>${t.map(n=>u`<td>${n}</td>`)}</tr>
126
+ `)}
127
+ </tbody>
128
+ </table>
129
+ </div>
130
+ `}function kn({block:e}){let[t,n]=T(!1),s=()=>{navigator.clipboard.writeText(e.code).then(()=>{n(!0),setTimeout(()=>n(!1),1500)})};return u`
131
+ <div class="cw-block-code">
132
+ ${e.filename&&u`<div class="cw-block-code-filename">${e.filename}</div>`}
133
+ <pre><code>${z(e.code)}</code></pre>
134
+ ${e.copyable!==!1&&u`
135
+ <button class="cw-block-code-copy" onClick=${s}>${t?"\u2713":"\u2398"}</button>
136
+ `}
137
+ </div>
138
+ `}function bn({block:e}){let[t,n]=T(e.defaultOpen||!1);return u`
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 u`
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&&u`<div>${e.body}</div>`}
149
+ ${e.progress!=null&&u`
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:u`
155
+ <div class="cw-content-blocks">
156
+ ${e.map((s,a)=>{let o=Sn[s.type];return o?u`<${o} key=${a} block=${s} onAction=${t} markdownParser=${n} />`:null})}
157
+ </div>
158
+ `}function Te({msg:e,show:t,onToggle:n}){return t?u`
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
+ `:u`
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:u`
83
170
  <div class="cw-message-actions cw-message-actions-${s||"left"}">
84
- ${a&&_`
171
+ ${a&&u`
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]=T(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")},[]),u`
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,33 +216,42 @@ 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 _`
219
+ `}function It({msg:e,debugMode:t,markdownParser:n,onEdit:s,onRetry:a,isLoading:o,messageIndex:l}){let[c,d]=T(!1),[i,_]=T(!1),[r,p]=T(!1),h=e.role==="user",f=e.role==="system",y=e.type==="tool_call",v=e.type==="tool_result",m=e.type==="error",k=e.type==="sub_agent_start",$=e.type==="sub_agent_end",K=e.type==="agent_context";if(f&&!t)return null;if(k||$||K)return u`
133
220
  <div class="cw-agent-context ${k?"cw-agent-delegating":""} ${$?"cw-agent-returned":""}" style="position: relative;">
134
221
  <span class="cw-agent-context-icon">${k?"\u{1F517}":$?"\u2713":"\u{1F916}"}</span>
135
222
  <span class="cw-agent-context-text">${e.content}</span>
136
- ${e.metadata?.agentName&&_`
223
+ ${e.metadata?.agentName&&u`
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&&u`<${Te} msg=${e} show=${i} onToggle=${()=>_(!i)} />`}
227
+ </div>
228
+ `;if(e.type==="content_blocks"&&e.metadata?.blocks){let S=E=>{E.type==="message"&&e._onSendMessage&&e._onSendMessage(E.message),E.type==="callback"&&e._onCallback&&e._onCallback(E.callbackId)};return u`
229
+ <div class="cw-message-row" style="position: relative;">
230
+ <${xt}
231
+ blocks=${e.metadata.blocks}
232
+ onAction=${S}
233
+ markdownParser=${n}
234
+ />
235
+ ${t&&u`<${Te} msg=${e} show=${i} onToggle=${()=>_(!i)} />`}
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(y||v){let S=e.metadata?.arguments||e.metadata?.result,E=b=>{if(typeof b=="string")try{return JSON.stringify(JSON.parse(b),null,2)}catch{return b}return JSON.stringify(b,null,2)};return u`
238
+ <div class="cw-tool-message ${v?"cw-tool-result":"cw-tool-call"}" style="position: relative;">
239
+ <span class="cw-tool-label" onClick=${()=>S&&d(!c)}>
144
240
  ${e.content}
145
- ${S&&_`<span class="cw-tool-expand">${i?"\u25BC":"\u25B6"}</span>`}
241
+ ${S&&u`<span class="cw-tool-expand">${c?"\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
+ ${c&&S&&u`
244
+ <pre class="cw-tool-details">${z(E(y?e.metadata.arguments:e.metadata.result))}</pre>
149
245
  `}
150
- ${t&&_`<${Ke} msg=${e} show=${c} onToggle=${()=>p(!c)} />`}
246
+ ${t&&u`<${Te} msg=${e} show=${i} onToggle=${()=>_(!i)} />`}
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 j=["cw-message",h&&"cw-message-user",m&&"cw-message-error"].filter(Boolean).join(" "),D=`cw-message-row ${h?"cw-message-row-user":""}`,O=e.role==="assistant"?kt(e.content,n):z(e.content),R=e.files&&e.files.length>0,F=()=>R?u`
153
249
  <div class="cw-message-attachments">
154
- ${e.files.map(S=>S.type&&S.type.startsWith("image/")?_`
250
+ ${e.files.map(S=>S.type&&S.type.startsWith("image/")?u`
155
251
  <a class="cw-attachment-thumbnail" href=${S.url} target="_blank" title=${S.name}>
156
252
  <img src=${S.url} alt=${S.name} />
157
253
  </a>
158
- `:_`
254
+ `:u`
159
255
  <a class="cw-attachment-file" href=${S.url} target="_blank" title=${S.name}>
160
256
  <span class="cw-attachment-icon">${Se(S.type)}</span>
161
257
  <span class="cw-attachment-info">
@@ -165,75 +261,75 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
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,q=S=>{p(!1),s&&s(l,S)},H=()=>{a&&a(l)};if(h&&r)return u`
265
+ <div class=${D} style="position: relative;">
266
+ ${F()}
267
+ <${Tn}
172
268
  initialContent=${e.content}
173
- onSave=${J}
174
- onCancel=${()=>d(!1)}
269
+ onSave=${q}
270
+ onCancel=${()=>p(!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 w=h&&s&&a,C=e.role==="assistant"&&a&&!o;return u`
274
+ <div class="${D} ${w||C?"cw-message-row-with-actions":""}">
275
+ ${F()}
276
+ ${w&&u`
181
277
  <div class="cw-user-actions-wrapper">
182
- <${Mt}
183
- onEdit=${()=>d(!0)}
184
- onRetry=${O}
278
+ <${At}
279
+ onEdit=${()=>p(!0)}
280
+ onRetry=${H}
185
281
  isLoading=${o}
186
282
  position="left"
187
283
  showEdit=${!0}
188
284
  />
189
- <div class=${j} dangerouslySetInnerHTML=${{__html:H}} />
285
+ <div class=${j} dangerouslySetInnerHTML=${{__html:O}} />
190
286
  </div>
191
287
  `}
192
- ${!w&&_`
193
- <div class=${j} dangerouslySetInnerHTML=${{__html:H}} />
288
+ ${!w&&u`
289
+ <div class=${j} dangerouslySetInnerHTML=${{__html:O}} />
194
290
  `}
195
- ${C&&_`
196
- <${Mt}
197
- onRetry=${O}
291
+ ${C&&u`
292
+ <${At}
293
+ onRetry=${H}
198
294
  isLoading=${o}
199
295
  position="right"
200
296
  showEdit=${!1}
201
297
  />
202
298
  `}
203
- ${t&&_`<${Ke} msg=${e} show=${c} onToggle=${()=>p(!c)} />`}
299
+ ${t&&u`<${Te} msg=${e} show=${i} onToggle=${()=>_(!i)} />`}
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 _`
301
+ `}function Dt({messages:e,isLoading:t,hasMoreMessages:n,loadingMoreMessages:s,onLoadMore:a,onEditMessage:o,onRetryMessage:l,debugMode:c,markdownParser:d,emptyStateTitle:i,emptyStateMessage:_}){let r=Q(null),p=Q(!0),h=y=>{let v=y.target,m=v.scrollHeight-v.scrollTop-v.clientHeight<100;if(p.current=m,v.scrollTop<50&&n&&!s){let k=v.scrollHeight;a().then(()=>{let $=v.scrollHeight;v.scrollTop=$-k+v.scrollTop})}};B(()=>{let y=r.current;y&&p.current&&requestAnimationFrame(()=>{y.scrollTop=y.scrollHeight})},[e,t]),B(()=>{let y=r.current;y&&e.length<=2&&(p.current=!0,requestAnimationFrame(()=>{y.scrollTop=y.scrollHeight}))},[e.length]);let f=e.length===0;return u`
206
302
  <div class="cw-messages" ref=${r} onScroll=${h}>
207
- ${f&&_`
303
+ ${f&&u`
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(i)}</h3>
309
+ <p>${z(_)}</p>
214
310
  </div>
215
311
  `}
216
312
 
217
- ${!f&&n&&_`
313
+ ${!f&&n&&u`
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?u`<span class="cw-spinner"></span><span>Loading...</span>`:u`<span>↑ Scroll up or click to load older messages</span>`}
220
316
  </div>
221
317
  `}
222
318
 
223
- ${e.map((y,g)=>_`
224
- <${Et}
319
+ ${e.map((y,v)=>u`
320
+ <${It}
225
321
  key=${y.id}
226
322
  msg=${y}
227
- messageIndex=${g}
228
- debugMode=${i}
229
- markdownParser=${u}
323
+ messageIndex=${v}
324
+ debugMode=${c}
325
+ markdownParser=${d}
230
326
  onEdit=${o}
231
327
  onRetry=${l}
232
328
  isLoading=${t}
233
329
  />
234
330
  `)}
235
331
 
236
- ${t&&_`
332
+ ${t&&u`
237
333
  <div class="cw-message-row">
238
334
  <div class="cw-typing">
239
335
  <span class="cw-spinner"></span>
@@ -242,23 +338,23 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
242
338
  </div>
243
339
  `}
244
340
  </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=_`
341
+ `}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]=T(""),[i,_]=T([]),[r,p]=T(!1),[h,f]=T(!1),[y]=T(()=>!!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 K=b=>{b.preventDefault(),(c.trim()||i.length>0)&&!n&&(e(c,i),d(""),_([]),v.current&&(v.current.style.height="auto"),m.current&&(m.current.value=""))},j=b=>{let L=Array.from(b.target.files||[]);L.length>0&&_(N=>[...N,...L])},D=b=>{_(L=>L.filter((N,g)=>g!==b))},O=b=>{b.preventDefault(),m.current&&!n&&m.current.click()},R=b=>{b.key==="Enter"&&!b.shiftKey&&(b.preventDefault(),K(b))},F=b=>{n&&t&&(b.preventDefault(),t())},q=()=>{if(!We||n)return;$.current=!0;let b=new We;b.continuous=!0,b.interimResults=!0,b.lang=navigator.language||"en-US";let L=c,N="";b.onstart=()=>{f(!0)},b.onresult=g=>{N="";for(let A=g.resultIndex;A<g.results.length;A++){let V=g.results[A][0].transcript;g.results[A].isFinal?L+=(L?" ":"")+V:N+=V}d(L+(N?" "+N:""))},b.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(L||c)},b.onend=()=>{if($.current){console.log("[ChatWidget] Recognition paused, restarting...");try{b.start();return}catch(g){console.warn("[ChatWidget] Could not restart recognition:",g)}}f(!1),L&&d(L),k.current=null},k.current=b,b.start()},H=()=>{$.current=!1,k.current&&k.current.stop()},w=b=>{b.preventDefault(),h?H():q()},P=u`
246
342
  <svg width="14" height="14" viewBox="0 0 14 14" fill="currentColor">
247
343
  <rect x="2" y="2" width="10" height="10" rx="1" />
248
344
  </svg>
249
- `,C=_`
345
+ `,C=u`
250
346
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
251
347
  <path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"></path>
252
348
  <path d="M19 10v2a7 7 0 0 1-14 0v-2"></path>
253
349
  <line x1="12" y1="19" x2="12" y2="23"></line>
254
350
  <line x1="8" y1="23" x2="16" y2="23"></line>
255
351
  </svg>
256
- `,M=_`
352
+ `,M=u`
257
353
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
258
354
  <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
355
  </svg>
260
- `,S=o&&y,D=l;return _`
261
- <form class="cw-input-form" onSubmit=${N}>
356
+ `,S=o&&y,E=l;return u`
357
+ <form class="cw-input-form" onSubmit=${K}>
262
358
  <input
263
359
  type="file"
264
360
  ref=${m}
@@ -266,9 +362,9 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
266
362
  multiple
267
363
  onChange=${j}
268
364
  />
269
- ${c.length>0&&_`
365
+ ${i.length>0&&u`
270
366
  <div class="cw-file-chips">
271
- ${c.map((b,L)=>_`
367
+ ${i.map((b,L)=>u`
272
368
  <div class="cw-file-chip" key=${L}>
273
369
  <span class="cw-file-chip-icon">${Se(b.type)}</span>
274
370
  <span class="cw-file-chip-name" title=${b.name}>${b.name.length>20?b.name.substring(0,17)+"...":b.name}</span>
@@ -276,7 +372,7 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
276
372
  <button
277
373
  type="button"
278
374
  class="cw-file-chip-remove"
279
- onClick=${()=>I(L)}
375
+ onClick=${()=>D(L)}
280
376
  title="Remove file"
281
377
  >×</button>
282
378
  </div>
@@ -284,27 +380,27 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
284
380
  </div>
285
381
  `}
286
382
  <textarea
287
- ref=${g}
383
+ ref=${v}
288
384
  class="cw-input"
289
- placeholder=${G(s)}
290
- value=${i}
291
- onInput=${b=>u(b.target.value)}
292
- onKeyDown=${F}
385
+ placeholder=${z(s)}
386
+ value=${c}
387
+ onInput=${b=>d(b.target.value)}
388
+ onKeyDown=${R}
293
389
  disabled=${n}
294
390
  rows="1"
295
391
  />
296
- ${D&&_`
392
+ ${E&&u`
297
393
  <button
298
394
  type="button"
299
395
  class="cw-attach-btn"
300
- onClick=${H}
396
+ onClick=${O}
301
397
  disabled=${n}
302
398
  title="Attach files"
303
399
  >
304
400
  ${M}
305
401
  </button>
306
402
  `}
307
- ${S&&_`
403
+ ${S&&u`
308
404
  <button
309
405
  type="button"
310
406
  class=${`cw-voice-btn ${h?"cw-voice-btn-recording":""}`}
@@ -319,15 +415,15 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
319
415
  type=${n?"button":"submit"}
320
416
  class=${`cw-send-btn ${n?"cw-send-btn-loading":""} ${n&&r?"cw-send-btn-stop":""}`}
321
417
  style=${{backgroundColor:n&&r?"#dc2626":a}}
322
- onClick=${R}
323
- onMouseEnter=${()=>d(!0)}
324
- onMouseLeave=${()=>d(!1)}
418
+ onClick=${F}
419
+ onMouseEnter=${()=>p(!0)}
420
+ onMouseLeave=${()=>p(!1)}
325
421
  title=${n?"Stop":"Send"}
326
422
  >
327
- ${n?r?A:_`<span class="cw-spinner"></span>`:"\u27A4"}
423
+ ${n?r?P:u`<span class="cw-spinner"></span>`:"\u27A4"}
328
424
  </button>
329
425
  </form>
330
- `}function At({isOpen:e,conversations:t,conversationsLoading:n,currentConversationId:s,onClose:a,onNewConversation:o,onSwitchConversation:l}){return _`
426
+ `}function Rt({isOpen:e,conversations:t,conversationsLoading:n,currentConversationId:s,onClose:a,onNewConversation:o,onSwitchConversation:l}){return u`
331
427
  <div class="cw-sidebar ${e?"cw-sidebar-open":""}">
332
428
  <div class="cw-sidebar-header">
333
429
  <span>Conversations</span>
@@ -339,24 +435,24 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
339
435
  </button>
340
436
 
341
437
  <div class="cw-conversation-list">
342
- ${n&&_`
438
+ ${n&&u`
343
439
  <div class="cw-sidebar-loading">
344
440
  <span class="cw-spinner"></span>
345
441
  </div>
346
442
  `}
347
443
 
348
- ${!n&&t.length===0&&_`
444
+ ${!n&&t.length===0&&u`
349
445
  <div class="cw-sidebar-empty">No conversations yet</div>
350
446
  `}
351
447
 
352
- ${t.map(i=>_`
448
+ ${t.map(c=>u`
353
449
  <div
354
- key=${i.id}
355
- class="cw-conversation-item ${i.id===s?"cw-conversation-active":""}"
356
- onClick=${()=>l(i.id)}
450
+ key=${c.id}
451
+ class="cw-conversation-item ${c.id===s?"cw-conversation-active":""}"
452
+ onClick=${()=>l(c.id)}
357
453
  >
358
- <div class="cw-conversation-title">${G(i.title||"Untitled")}</div>
359
- <div class="cw-conversation-date">${wt(i.updatedAt||i.createdAt)}</div>
454
+ <div class="cw-conversation-title">${z(c.title||"Untitled")}</div>
455
+ <div class="cw-conversation-date">${wt(c.updatedAt||c.createdAt)}</div>
360
456
  </div>
361
457
  `)}
362
458
  </div>
@@ -366,7 +462,7 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
366
462
  class="cw-sidebar-overlay ${e?"cw-sidebar-overlay-visible":""}"
367
463
  onClick=${a}
368
464
  />
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 _`
465
+ `}function Ft({availableModels:e,selectedModel:t,onSelectModel:n,thinkingEnabled:s,onToggleThinking:a,disabled:o}){let[l,c]=T(!1);if(!e||e.length===0)return null;let d=e.find(f=>f.id===t),i=d?.name||"Select Model",_=d?.supports_thinking||!1,r=()=>{o||c(!l)},p=f=>{n(f),c(!1)},h=f=>{f.stopPropagation(),a&&_&&a(!s)};return u`
370
466
  <div class="cw-model-selector">
371
467
  <button
372
468
  class="cw-model-btn"
@@ -375,11 +471,11 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
375
471
  title="Select Model"
376
472
  >
377
473
  <span class="cw-model-icon">🤖</span>
378
- <span class="cw-model-name">${G(c)}</span>
474
+ <span class="cw-model-name">${z(i)}</span>
379
475
  <span class="cw-model-chevron">${l?"\u25B2":"\u25BC"}</span>
380
476
  </button>
381
477
 
382
- ${p&&a&&_`
478
+ ${_&&a&&u`
383
479
  <button
384
480
  class="cw-thinking-toggle ${s?"cw-thinking-enabled":""}"
385
481
  onClick=${h}
@@ -390,48 +486,48 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
390
486
  </button>
391
487
  `}
392
488
 
393
- ${l&&_`
489
+ ${l&&u`
394
490
  <div class="cw-model-dropdown">
395
- ${e.map(f=>_`
491
+ ${e.map(f=>u`
396
492
  <button
397
493
  key=${f.id}
398
494
  class="cw-model-option ${f.id===t?"cw-model-option-selected":""}"
399
- onClick=${()=>d(f.id)}
495
+ onClick=${()=>p(f.id)}
400
496
  >
401
497
  <span class="cw-model-option-name">
402
- ${G(f.name)}
403
- ${f.supports_thinking&&_`<span class="cw-thinking-badge" title="Supports extended thinking">🧠</span>`}
498
+ ${z(f.name)}
499
+ ${f.supports_thinking&&u`<span class="cw-thinking-badge" title="Supports extended thinking">🧠</span>`}
404
500
  </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>
501
+ <span class="cw-model-option-provider">${z(f.provider)}</span>
502
+ ${f.description&&u`
503
+ <span class="cw-model-option-desc">${z(f.description)}</span>
408
504
  `}
409
505
  </button>
410
506
  `)}
411
507
  </div>
412
508
  `}
413
509
  </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 _`
510
+ `}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]=T(!1),[l,c]=T(e.name),d=x(()=>{let p={not_started:"in_progress",in_progress:"complete",complete:"not_started",cancelled:"not_started"};t(e.id,{state:p[e.state]||"not_started"})},[e,t]),i=x(()=>{l.trim()&&l!==e.name&&t(e.id,{name:l.trim()}),o(!1)},[e,l,t]),_=x(p=>{p.key==="Enter"&&i(),p.key==="Escape"&&(c(e.name),o(!1))},[i,e.name]),r=`cw-task-state-${e.state.replace("_","-")}`;return u`
415
511
  <div class="cw-task-item ${r}" style=${{paddingLeft:`${s*16+8}px`}}>
416
512
  <button
417
513
  class="cw-task-state-btn"
418
- onClick=${u}
419
- title=${fn[e.state]}
514
+ onClick=${d}
515
+ title=${En[e.state]}
420
516
  >
421
- ${hn[e.state]}
517
+ ${Mn[e.state]}
422
518
  </button>
423
519
 
424
- ${a?_`
520
+ ${a?u`
425
521
  <input
426
522
  type="text"
427
523
  class="cw-task-edit-input"
428
524
  value=${l}
429
- onInput=${d=>i(d.target.value)}
430
- onBlur=${c}
431
- onKeyDown=${p}
525
+ onInput=${p=>c(p.target.value)}
526
+ onBlur=${i}
527
+ onKeyDown=${_}
432
528
  autoFocus
433
529
  />
434
- `:_`
530
+ `:u`
435
531
  <span
436
532
  class="cw-task-name"
437
533
  onClick=${()=>o(!0)}
@@ -449,16 +545,16 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
449
545
  ×
450
546
  </button>
451
547
  </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}
548
+ `}function Ot({tasks:e,progress:t,isLoading:n,error:s,onUpdate:a,onRemove:o,onClear:l,onRefresh:c}){let d=x(r=>{let p=new Map,h=[];return r.forEach(f=>{p.set(f.id,{...f,children:[]})}),r.forEach(f=>{let y=p.get(f.id);f.parent_id&&p.has(f.parent_id)?p.get(f.parent_id).children.push(y):h.push(y)}),h},[]),i=x((r,p=0)=>u`
549
+ <${xn}
454
550
  key=${r.id}
455
551
  task=${r}
456
- depth=${d}
552
+ depth=${p}
457
553
  onUpdate=${a}
458
554
  onRemove=${o}
459
555
  />
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>`:_`
556
+ ${r.children?.map(h=>i(h,p+1))}
557
+ `,[a,o]),_=d(e);return n&&e.length===0?u`<div class="cw-tasks-loading">Loading tasks...</div>`:u`
462
558
  <div class="cw-tasks-container">
463
559
  <div class="cw-tasks-header">
464
560
  <div class="cw-tasks-progress">
@@ -473,25 +569,25 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
473
569
  </div>
474
570
  </div>
475
571
  <div class="cw-tasks-actions">
476
- <button class="cw-tasks-action-btn" onClick=${i} title="Refresh">↻</button>
477
- ${e.length>0&&_`
572
+ <button class="cw-tasks-action-btn" onClick=${c} title="Refresh">↻</button>
573
+ ${e.length>0&&u`
478
574
  <button class="cw-tasks-action-btn" onClick=${l} title="Clear all">🗑</button>
479
575
  `}
480
576
  </div>
481
577
  </div>
482
578
 
483
- ${s&&_`<div class="cw-tasks-error">${s}</div>`}
579
+ ${s&&u`<div class="cw-tasks-error">${s}</div>`}
484
580
 
485
581
  <div class="cw-tasks-list">
486
- ${p.length===0?_`
582
+ ${_.length===0?u`
487
583
  <div class="cw-tasks-empty">
488
584
  <p>No tasks yet</p>
489
585
  <p class="cw-tasks-empty-hint">Tasks will appear here when the agent creates them</p>
490
586
  </div>
491
- `:p.map(r=>c(r))}
587
+ `:_.map(r=>i(r))}
492
588
  </div>
493
589
  </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 _`
590
+ `}function Ht({systems:e,agents:t,selectedSystem:n,selectedAgent:s,selectedSystemVersion:a,selectedAgentVersion:o,onSelectSystem:l,onSelectAgent:c,onSelectSystemVersion:d,onSelectAgentVersion:i,disabled:_}){let r=e.find($=>$.slug===n),p=t.find($=>$.slug===s),h=r?.versions||[],f=p?.versions||[];if(e.length===0&&t.length===0)return null;let y=e.length>1,v=t.length>1,m=h.length>1,k=f.length>1;return u`
495
591
  <div class="cw-dev-toolbar">
496
592
  <div class="cw-dev-toolbar-label">
497
593
  <span class="cw-dev-toolbar-icon">🛠️</span>
@@ -502,20 +598,20 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
502
598
  <!-- System -->
503
599
  <div class="cw-dev-select-group">
504
600
  <label class="cw-dev-label">System</label>
505
- ${y?_`
601
+ ${y?u`
506
602
  <select
507
603
  class="cw-dev-select"
508
604
  value=${n||""}
509
605
  onChange=${$=>l($.target.value)}
510
- disabled=${p}
606
+ disabled=${_}
511
607
  >
512
- ${e.map($=>_`
608
+ ${e.map($=>u`
513
609
  <option key=${$.slug} value=${$.slug}>
514
610
  ${$.name}
515
611
  </option>
516
612
  `)}
517
613
  </select>
518
- `:_`
614
+ `:u`
519
615
  <span class="cw-dev-badge">${r?.name||"\u2014"}</span>
520
616
  `}
521
617
  </div>
@@ -523,20 +619,20 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
523
619
  <!-- System Version -->
524
620
  <div class="cw-dev-select-group">
525
621
  <label class="cw-dev-label">Sys Ver</label>
526
- ${m?_`
622
+ ${m?u`
527
623
  <select
528
624
  class="cw-dev-select"
529
625
  value=${a||""}
530
- onChange=${$=>u($.target.value||null)}
531
- disabled=${p}
626
+ onChange=${$=>d($.target.value||null)}
627
+ disabled=${_}
532
628
  >
533
- ${h.map($=>_`
629
+ ${h.map($=>u`
534
630
  <option key=${$.version} value=${$.version}>
535
631
  ${$.version}${$.is_active?" \u2713":""}${$.is_draft?" (draft)":""}
536
632
  </option>
537
633
  `)}
538
634
  </select>
539
- `:_`
635
+ `:u`
540
636
  <span class="cw-dev-badge">${h.length===1?h[0].version:"none"}</span>
541
637
  `}
542
638
  </div>
@@ -544,47 +640,47 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
544
640
  <!-- Agent -->
545
641
  <div class="cw-dev-select-group">
546
642
  <label class="cw-dev-label">Agent</label>
547
- ${g?_`
643
+ ${v?u`
548
644
  <select
549
645
  class="cw-dev-select"
550
646
  value=${s||""}
551
- onChange=${$=>i($.target.value)}
552
- disabled=${p}
647
+ onChange=${$=>c($.target.value)}
648
+ disabled=${_}
553
649
  >
554
- ${t.map($=>_`
650
+ ${t.map($=>u`
555
651
  <option key=${$.slug} value=${$.slug}>
556
652
  ${$.name}${r?.entry_agent?.slug===$.slug?" \u2605":""}
557
653
  </option>
558
654
  `)}
559
655
  </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>
656
+ `:u`
657
+ <span class="cw-dev-badge">${p?.name||t[0]?.name||"\u2014"}${r?.entry_agent?.slug===(p?.slug||t[0]?.slug)?" \u2605":""}</span>
562
658
  `}
563
659
  </div>
564
660
 
565
661
  <!-- Agent Version -->
566
662
  <div class="cw-dev-select-group">
567
663
  <label class="cw-dev-label">Agent Ver</label>
568
- ${k?_`
664
+ ${k?u`
569
665
  <select
570
666
  class="cw-dev-select"
571
667
  value=${o||""}
572
- onChange=${$=>c($.target.value||null)}
573
- disabled=${p}
668
+ onChange=${$=>i($.target.value||null)}
669
+ disabled=${_}
574
670
  >
575
- ${f.map($=>_`
671
+ ${f.map($=>u`
576
672
  <option key=${$.version} value=${$.version}>
577
673
  ${$.version}${$.is_active?" \u2713":""}${$.is_draft?" (draft)":""}
578
674
  </option>
579
675
  `)}
580
676
  </select>
581
- `:_`
582
- <span class="cw-dev-badge">${f.length===1?f[0].version:d?.active_version||"\u2014"}</span>
677
+ `:u`
678
+ <span class="cw-dev-badge">${f.length===1?f[0].version:p?.active_version||"\u2014"}</span>
583
679
  `}
584
680
  </div>
585
681
  </div>
586
682
  </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 _`
683
+ `}function Lt(e,t,n){let[s,a]=T([]),[o,l]=T(!1),[c,d]=T(null),[i,_]=T(()=>n?.get(e.conversationIdKey)||null),[r,p]=T(!1),[h,f]=T(!1),[y,v]=T(0),m=Q(null),k=Q(null);B(()=>{i&&n?.set(e.conversationIdKey,i)},[i,e.conversationIdKey,n]);let $=x(async(w,P,C)=>{m.current&&m.current.close();let M=e.apiPaths.runEvents.replace("{runId}",w),S=`${e.backendUrl}${M}`;P&&(S+=`?anonymous_token=${encodeURIComponent(P)}`);let E=new EventSource(S);m.current=E;let b="";E.addEventListener("assistant.message",N=>{try{let g=JSON.parse(N.data);e.onEvent&&e.onEvent("assistant.message",g.payload);let A=g.payload.content;A&&(b+=A,a(V=>{let X=V[V.length-1];return X?.role==="assistant"&&X.id.startsWith("assistant-stream-")?[...V.slice(0,-1),{...X,content:b}]:[...V,{id:"assistant-stream-"+Date.now(),role:"assistant",content:b,timestamp:new Date,type:"message"}]}))}catch(g){console.error("[ChatWidget] Parse error:",g)}}),E.addEventListener("tool.call",N=>{try{let g=JSON.parse(N.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)}}),E.addEventListener("tool.result",N=>{try{let g=JSON.parse(N.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)}}),E.addEventListener("custom",N=>{try{let g=JSON.parse(N.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)}}),E.addEventListener("sub_agent.start",N=>{try{let g=JSON.parse(N.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)}}),E.addEventListener("sub_agent.end",N=>{try{let g=JSON.parse(N.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)}}),E.addEventListener("content.blocks",N=>{try{let g=JSON.parse(N.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 L=N=>{try{let g=JSON.parse(N.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),E.close(),m.current=null,b&&C&&C(b)};E.addEventListener("run.succeeded",L),E.addEventListener("run.failed",L),E.addEventListener("run.cancelled",L),E.addEventListener("run.timed_out",L),E.onerror=()=>{l(!1),E.close(),m.current=null}},[e]),K=x(async(w,P={},C={})=>{if(!w.trim()||o)return;let M=[],S={};typeof P=="function"?S={onAssistantMessage:P}:Array.isArray(P)?(M=P,S=C):S=P||{};let{model:E,thinking:b,onAssistantMessage:L,supersedeFromMessageIndex:N}=S;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),i&&ne.append(Ve("conversationId"),i),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})),E&&ne.append("model",E),b&&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:i,messages:[{role:"user",content:w.trim()}],metadata:{...e.metadata,journeyType:e.defaultJourneyType},...E&&{model:E},...b&&{thinking:!0},...N!==void 0&&{supersedeFromMessageIndex:N}});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),I=A;if(X.status===401){t.clearSession();let Y=await t.getOrCreateSession(!0);Y&&(I=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,!i&&ee.conversationId&&_(ee.conversationId),await $(ee.id,I,L)}catch(A){d(A.message||"Failed to send message"),l(!1)}finally{k.current=null}},[e,t,i,o,$]),j=x(async()=>{let w=k.current;if(!(!w||!o))try{let P=e.apiPaths.cancelRun?e.apiPaths.cancelRun.replace("{runId}",w):`${e.apiPaths.runs}${w}/cancel/`;(await fetch(`${e.backendUrl}${P}`,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(P){console.error("[ChatWidget] Failed to cancel run:",P)}},[e,t,o]),D=x(()=>{a([]),_(null),d(null),p(!1),v(0),n?.set(e.conversationIdKey,null)},[e.conversationIdKey,n]),O=w=>{let P={id:be(),role:w.role,timestamp:w.timestamp?new Date(w.timestamp):new Date};if(w.role==="tool")return{...P,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:P.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:{...P,content:C,type:"message"}},R=x(async w=>{console.log("[ChatWidget] loadConversation called with:",w),l(!0),a([]),_(w);try{let P=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"},P));if(console.log("[ChatWidget] Response status:",S.status),S.ok){let E=await S.json();console.log("[ChatWidget] Raw conversation:",E);let b=t.transformResponse(E);if(console.log("[ChatWidget] Transformed conversation:",b),b.messages){let L=b.messages.flatMap(O).filter(Boolean);console.log("[ChatWidget] Mapped messages:",L),a(L)}p(b.hasMore||!1),v(b.messages?.length||0)}else S.status===404?(console.log("[ChatWidget] Conversation not found, clearing"),_(null),n?.set(e.conversationIdKey,null)):console.error("[ChatWidget] Unexpected response status:",S.status)}catch(P){console.error("[ChatWidget] Failed to load conversation:",P)}finally{l(!1)}},[e,t,n]),F=x(async()=>{if(!(!i||h||!r)){f(!0);try{let w=await t.getOrCreateSession(),C=`${e.backendUrl}${e.apiPaths.conversations}${i}/?limit=10&offset=${y}`,M=await fetch(C,t.getFetchOptions({method:"GET"},w));if(M.ok){let S=await M.json(),E=t.transformResponse(S);if(E.messages?.length>0){let b=E.messages.flatMap(O).filter(Boolean);a(L=>[...b,...L]),v(L=>L+E.messages.length),p(E.hasMore||!1)}else p(!1)}}catch(w){console.error("[ChatWidget] Failed to load more messages:",w)}finally{f(!1)}}},[e,t,i,y,h,r]),q=x(async(w,P,C={})=>{if(o)return;let M=s[w];if(!M||M.role!=="user")return;let S=s.slice(0,w);a(S),await K(P,{...C,supersedeFromMessageIndex:w})},[s,o,K]),H=x(async(w,P={})=>{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 E=s.slice(0,M);a(E),await K(S.content,{...P,supersedeFromMessageIndex:M})},[s,o,K]);return B(()=>()=>{m.current&&m.current.close()},[]),{messages:s,isLoading:o,error:c,conversationId:i,hasMoreMessages:r,loadingMoreMessages:h,sendMessage:K,cancelRun:j,clearMessages:D,loadConversation:R,loadMoreMessages:F,setConversationId:_,editMessage:q,retryMessage:H}}var Nt="cw_thinking_enabled";function Kt(e,t,n){let[s,a]=T([]),[o,l]=T(null),[c,d]=T(null),[i,_]=T(!1),[r,p]=T(!1);B(()=>{(async()=>{if(e.showModelSelector){_(!0);try{let k=await fetch(`${e.backendUrl}${e.apiPaths.models}`,t.getFetchOptions({method:"GET"}));if(k.ok){let $=await k.json(),K=$.models||[];a(K),d($.default);let j=n?.get(e.modelKey);j&&K.some(O=>O.id===j)?l(j):l($.default),n?.get(Nt)==="true"&&p(!0)}}catch(k){console.warn("[ChatWidget] Failed to load models:",k)}finally{_(!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=>{p(m),n?.set(Nt,m?"true":"false")},[n]),y=x(()=>s.find(m=>m.id===o)||null,[s,o]),v=x(()=>y()?.supports_thinking||!1,[y]);return{availableModels:s,selectedModel:o,defaultModel:c,isLoading:i,selectModel:h,getSelectedModelInfo:y,thinkingEnabled:r,toggleThinking:f,supportsThinking:v}}function Wt(e,t){let[n,s]=T(null),[a,o]=T(!1),[l,c]=T(null),d=e.apiPaths?.tasks||"/api/agent/tasks/",i=x(async()=>{o(!0),c(null);try{let y=`${e.backendUrl}${d}`,v=await fetch(y,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(y){console.error("[useTasks] Failed to load task list:",y),c("Failed to load tasks")}finally{o(!1)}},[e.backendUrl,d,t]),_=x(async y=>{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(y)}));if(m.ok){let k=await m.json();return await i(),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,i]),r=x(async(y,v)=>{if(!n)return null;try{let m=`${e.backendUrl}${d}${n.id}/update_task/${y}/`,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 i(),$}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,i]),p=x(async y=>{if(!n)return!1;try{let v=`${e.backendUrl}${d}${n.id}/remove_task/${y}/`,m=await fetch(v,t.getFetchOptions({method:"DELETE"}));if(m.ok)return await i(),!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,i]),h=x(async()=>{if(!n)return!1;try{let y=`${e.backendUrl}${d}${n.id}/clear/`,v=await fetch(y,t.getFetchOptions({method:"POST"}));if(v.ok)return await i(),!0;{let m=await v.json().catch(()=>({}));return c(m.error||"Failed to clear tasks"),!1}}catch(y){return console.error("[useTasks] Failed to clear tasks:",y),c("Failed to clear tasks"),!1}},[e.backendUrl,d,n,t,i]),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:i,addTask:_,updateTask:r,removeTask:p,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]=T([]),[o,l]=T([]),[c,d]=T(null),[i,_]=T(null),[r,p]=T(null),[h,f]=T(null),[y,v]=T(!1),m=x(()=>{if(i)return i;if(c){let D=s.find(O=>O.slug===c);if(D?.entry_agent)return D.entry_agent.slug}return e.agentKey},[i,c,s,e.agentKey]);B(()=>{if(!e.showDevTools)return;(async()=>{v(!0);try{let O=await fetch(`${e.backendUrl}${e.apiPaths.systems}`,t.getFetchOptions({method:"GET"}));if(O.ok){let R=await O.json(),F=R.results||R;a(F);let q=n?.get(Ut);q&&F.some(H=>H.slug===q)?d(q):F.length===1&&d(F[0].slug)}}catch(O){console.warn("[ChatWidget] Failed to load systems:",O)}finally{v(!1)}})()},[e.backendUrl,e.apiPaths.systems,e.showDevTools,t,n]),B(()=>{if(!e.showDevTools)return;(async()=>{try{let O=c?`?system=${encodeURIComponent(c)}`:"",R=await fetch(`${e.backendUrl}${e.apiPaths.agents}${O}`,t.getFetchOptions({method:"GET"}));if(R.ok){let F=await R.json(),q=F.results||F;l(q);let H=n?.get(Ue);if(H&&q.some(P=>P.slug===H))_(H);else if(c){let P=s.find(C=>C.slug===c);P?.entry_agent&&_(P.entry_agent.slug)}let w=n?.get(Me);w&&f(w)}}catch(O){console.warn("[ChatWidget] Failed to load agents:",O)}})()},[e.backendUrl,e.apiPaths.agents,e.showDevTools,c,t,n,s]);let k=x(D=>{d(D),n?.set(Ut,D),_(null),f(null),n?.set(Ue,null),n?.set(Me,null);let R=s.find(F=>F.slug===D)?.active_version||null;p(R),n?.set(Bt,R)},[n,s]),$=x(D=>{_(D),n?.set(Ue,D);let R=o.find(F=>F.slug===D)?.active_version||null;f(R),n?.set(Me,R)},[n,o]),K=x(D=>{p(D),n?.set(Bt,D)},[n]),j=x(D=>{f(D),n?.set(Me,D)},[n]);return{systems:s,agents:o,selectedSystem:c,selectedAgent:i,selectedSystemVersion:r,selectedAgentVersion:h,isLoading:y,selectSystem:k,selectAgent:$,selectSystemVersion:K,selectAgentVersion:j,getEffectiveAgentKey:m}}function jt(e,t,n){let s=_=>!_||typeof _!="object"||e.apiCaseStyle==="camel"?_:ke(_),a=_=>!_||typeof _!="object"||e.apiCaseStyle==="snake"?_:we(_),o=()=>e.authStrategy?e.authStrategy:e.authToken?"token":e.apiPaths.anonymousSession||e.anonymousSessionEndpoint?"anonymous":"none",l=(_=null)=>{let r=o(),p={},h=_||e.authToken||t().authToken;if(r==="token"&&h){let f=e.authHeader||"Authorization",y=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Token";p[f]=y?`${y} ${h}`:h}else if(r==="jwt"&&h){let f=e.authHeader||"Authorization",y=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Bearer";p[f]=y?`${y} ${h}`:h}else if(r==="anonymous"&&h){let f=e.authHeader||e.anonymousTokenHeader||"X-Anonymous-Token";p[f]=h}if(r==="session"){let f=Ct(e.csrfCookieName);f&&(p["X-CSRFToken"]=f)}return p};return{getAuthStrategy:o,getAuthHeaders:l,getFetchOptions:(_={},r=null)=>{let p=o(),h={..._},f=l(r);return console.log("[ChatWidget] getFetchOptions - strategy:",p,"overrideToken:",r,"authHeaders:",f),h.headers={...h.headers,...f},p==="session"&&(h.credentials="include"),h},getOrCreateSession:async(_=!1)=>{let r=o(),p=t(),h=e.anonymousTokenKey||e.sessionTokenKey;if(r!=="anonymous")return e.authToken||p.authToken;if(!_){if(p.authToken)return p.authToken;let f=p.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 v=await y.json();return n(m=>({...m,authToken:v.token})),p.storage?.set(h,v.token),v.token}}catch(f){console.warn("[ChatWidget] Failed to create session:",f)}return null},clearSession:()=>{let _=e.anonymousTokenKey||e.sessionTokenKey,r=t();n(p=>({...p,authToken:null})),r.storage?.set(_,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]=T(e.embedded||e.forceOpen===!0),[l,c]=T(!1),[d,i]=T(!1),[_,r]=T(!1),[p,h]=T([]),[f,y]=T("chat"),[v,m]=T(!1),[k,$]=T(e.enableTTS),[K,j]=T(!1),[D,O]=T(null);B(()=>{e.forceOpen!==void 0&&o(e.forceOpen)},[e.forceOpen]);let R=ae(()=>bt(e.containerId),[e.containerId]),[F,q]=T(e.authToken||null),H=ae(()=>jt(e,()=>({authToken:F,storage:R}),ee=>{let Y=ee({authToken:F,storage:R});Y.authToken!==F&&q(Y.authToken)}),[e,F,R]),w=Vt(e,H,R),P=ae(()=>{if(!e.showDevTools)return e;let I=w.getEffectiveAgentKey();return I&&I!==e.agentKey?{...e,agentKey:I}:e},[e,w.getEffectiveAgentKey]),C=Lt(P,H,R),M=Kt(e,H,R),S=Wt(e,H);B(()=>{for(let I=C.messages.length-1;I>=0;I--){let Z=C.messages[I];if(Z.type==="sub_agent_start"){O({key:Z.metadata?.subAgentKey,name:Z.metadata?.agentName});return}if(Z.type==="sub_agent_end"){O(null);return}}},[C.messages]),B(()=>{let I=R.get(e.conversationIdKey);console.log("[ChatWidget] Initial load - storedConvId:",I,"key:",e.conversationIdKey),console.log("[ChatWidget] apiPaths.conversations:",e.apiPaths.conversations),I&&(console.log("[ChatWidget] Loading conversation:",I),C.loadConversation(I))},[]),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 E=x(async()=>{if(e.showConversationSidebar){m(!0);try{let I=P.agentKey,Z=`${e.backendUrl}${e.apiPaths.conversations}?agent_key=${encodeURIComponent(I)}`,ee=await fetch(Z,H.getFetchOptions({method:"GET"}));if(ee.ok){let Y=await ee.json();h(Y.results||Y)}}catch(I){console.error("[ChatWidget] Failed to load conversations:",I),h([])}finally{m(!1)}}},[e,P,H]),b=x(()=>{let I=!_;r(I),I&&E()},[_,E]),L=x(I=>{I!==C.conversationId&&C.loadConversation(I),r(!1)},[C]),N=x(()=>{C.clearMessages(),r(!1)},[C]),g=x(I=>{C.sendMessage(I,{model:M.selectedModel,thinking:M.thinkingEnabled&&M.supportsThinking(),onAssistantMessage:Z=>{}})},[C,k,M.selectedModel,M.thinkingEnabled,M.supportsThinking]),A=x(I=>{y(I),I==="tasks"&&S.loadTaskList()},[S]);if(B(()=>{s&&(s.current={open:()=>o(!0),close:()=>o(!1),send:I=>g(I),clearMessages:()=>C.clearMessages(),toggleTTS:()=>$(I=>!I),stopSpeech:()=>j(!1),setAuth:I=>{I.token!==void 0&&q(I.token)},clearAuth:()=>q(null)})},[C,s,g]),!e.embedded&&!a)return u`
588
684
  <button
589
685
  class="cw-fab"
590
686
  style=${{backgroundColor:e.primaryColor}}
@@ -594,40 +690,40 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
594
690
  <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
691
  </svg>
596
692
  </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}
601
- isOpen=${p}
602
- conversations=${d}
603
- conversationsLoading=${g}
693
+ `;let V=["cw-widget",l&&"cw-widget-expanded",e.embedded&&"cw-widget-embedded"].filter(Boolean).join(" "),X=e.headerTextColor||St(e.primaryColor);return u`
694
+ <div class=${V} style=${{"--cw-primary":e.primaryColor,"--cw-header-text":X}}>
695
+ ${e.showConversationSidebar&&u`
696
+ <${Rt}
697
+ isOpen=${_}
698
+ conversations=${p}
699
+ conversationsLoading=${v}
604
700
  currentConversationId=${C.conversationId}
605
701
  onClose=${()=>r(!1)}
606
- onNewConversation=${U}
702
+ onNewConversation=${N}
607
703
  onSwitchConversation=${L}
608
704
  />
609
705
  `}
610
706
 
611
- ${e.showHeader!==!1&&_`
707
+ ${e.showHeader!==!1&&u`
612
708
  <${Tt}
613
709
  config=${e}
614
- debugMode=${u}
710
+ debugMode=${d}
615
711
  isExpanded=${l}
616
- isSpeaking=${N}
712
+ isSpeaking=${K}
617
713
  messagesCount=${C.messages.length}
618
714
  isLoading=${C.isLoading}
619
- currentAgent=${I}
715
+ currentAgent=${D}
620
716
  onClose=${()=>o(!1)}
621
- onToggleExpand=${()=>i(!l)}
622
- onToggleDebug=${()=>c(!u)}
717
+ onToggleExpand=${()=>c(!l)}
718
+ onToggleDebug=${()=>i(!d)}
623
719
  onToggleTTS=${()=>$(!k)}
624
720
  onClear=${C.clearMessages}
625
721
  onToggleSidebar=${b}
626
722
  />
627
723
  `}
628
724
 
629
- ${e.showDevTools&&_`
630
- <${Ft}
725
+ ${e.showDevTools&&u`
726
+ <${Ht}
631
727
  systems=${w.systems}
632
728
  agents=${w.agents}
633
729
  selectedSystem=${w.selectedSystem}
@@ -642,27 +738,27 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
642
738
  />
643
739
  `}
644
740
 
645
- ${e.showTasksTab!==!1&&_`
741
+ ${e.showTasksTab!==!1&&u`
646
742
  <div class="cw-tabs">
647
743
  <button
648
744
  class=${`cw-tab ${f==="chat"?"cw-tab-active":""}`}
649
- onClick=${()=>P("chat")}
745
+ onClick=${()=>A("chat")}
650
746
  >
651
747
  Chat
652
748
  </button>
653
749
  <button
654
750
  class=${`cw-tab ${f==="tasks"?"cw-tab-active":""}`}
655
- onClick=${()=>P("tasks")}
751
+ onClick=${()=>A("tasks")}
656
752
  >
657
- Tasks ${S.progress.total>0?_`<span class="cw-tab-badge">${S.progress.completed}/${S.progress.total}</span>`:""}
753
+ Tasks ${S.progress.total>0?u`<span class="cw-tab-badge">${S.progress.completed}/${S.progress.total}</span>`:""}
658
754
  </button>
659
755
  </div>
660
756
  `}
661
757
 
662
- ${u&&_`<div class="cw-status-bar"><span>🐛 Debug</span></div>`}
758
+ ${d&&u`<div class="cw-status-bar"><span>🐛 Debug</span></div>`}
663
759
 
664
- ${f==="chat"?_`
665
- <${xt}
760
+ ${f==="chat"?u`
761
+ <${Dt}
666
762
  messages=${C.messages}
667
763
  isLoading=${C.isLoading}
668
764
  hasMoreMessages=${C.hasMoreMessages}
@@ -670,16 +766,16 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
670
766
  onLoadMore=${C.loadMoreMessages}
671
767
  onEditMessage=${C.editMessage}
672
768
  onRetryMessage=${C.retryMessage}
673
- debugMode=${u}
769
+ debugMode=${d}
674
770
  markdownParser=${n}
675
771
  emptyStateTitle=${e.emptyStateTitle}
676
772
  emptyStateMessage=${e.emptyStateMessage}
677
773
  />
678
774
 
679
- ${C.error&&_`<div class="cw-error-bar">${C.error}</div>`}
775
+ ${C.error&&u`<div class="cw-error-bar">${C.error}</div>`}
680
776
 
681
- ${e.showModelSelector&&M.availableModels.length>0&&_`
682
- <${Dt}
777
+ ${e.showModelSelector&&M.availableModels.length>0&&u`
778
+ <${Ft}
683
779
  availableModels=${M.availableModels}
684
780
  selectedModel=${M.selectedModel}
685
781
  onSelectModel=${M.selectModel}
@@ -689,8 +785,8 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
689
785
  />
690
786
  `}
691
787
 
692
- <${It}
693
- onSend=${v}
788
+ <${Pt}
789
+ onSend=${g}
694
790
  onCancel=${C.cancelRun}
695
791
  isLoading=${C.isLoading}
696
792
  placeholder=${e.placeholder}
@@ -698,8 +794,8 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
698
794
  enableVoice=${e.enableVoice}
699
795
  enableFiles=${e.showFileAttachment!==!1}
700
796
  />
701
- `:_`
702
- <${Pt}
797
+ `:u`
798
+ <${Ot}
703
799
  tasks=${S.tasks}
704
800
  progress=${S.progress}
705
801
  isLoading=${S.isLoading}
@@ -711,9 +807,9 @@ var ChatWidgetModule=(()=>{var de=Object.defineProperty;var Jt=Object.getOwnProp
711
807
  />
712
808
  `}
713
809
  </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}
810
+ `}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(u`<${Jt}
715
811
  config=${{...this.config,...t}}
716
812
  onStateChange=${this._handleStateChange}
717
- markdownParser=${Ee._enhancedMarkdownParser}
813
+ markdownParser=${xe._enhancedMarkdownParser}
718
814
  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);})();
815
+ />`,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);})();