@makemore/agent-frontend 2.11.0 → 2.11.1

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