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