django-agent-studio 0.2.7__tar.gz → 0.2.8__tar.gz

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.
Files changed (41) hide show
  1. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/PKG-INFO +1 -1
  2. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/django_agent_studio.egg-info/PKG-INFO +1 -1
  3. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/pyproject.toml +1 -1
  4. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/static/agent-frontend/chat-widget.js +63 -63
  5. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/LICENSE +0 -0
  6. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/README.md +0 -0
  7. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/__init__.py +0 -0
  8. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/agents/__init__.py +0 -0
  9. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/agents/builder.py +0 -0
  10. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/agents/dynamic.py +0 -0
  11. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/api/__init__.py +0 -0
  12. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/api/permissions.py +0 -0
  13. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/api/serializers.py +0 -0
  14. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/api/urls.py +0 -0
  15. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/api/views.py +0 -0
  16. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/apps.py +0 -0
  17. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/django_agent_studio.egg-info/SOURCES.txt +0 -0
  18. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/django_agent_studio.egg-info/dependency_links.txt +0 -0
  19. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/django_agent_studio.egg-info/requires.txt +0 -0
  20. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/django_agent_studio.egg-info/top_level.txt +0 -0
  21. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/management/__init__.py +0 -0
  22. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/management/commands/__init__.py +0 -0
  23. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/migrations/0001_initial.py +0 -0
  24. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/migrations/__init__.py +0 -0
  25. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/models/__init__.py +0 -0
  26. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/models/permissions.py +0 -0
  27. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/services/__init__.py +0 -0
  28. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/services/permissions.py +0 -0
  29. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/setup.cfg +0 -0
  30. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/static/agent-frontend/chat-widget-markdown.js +0 -0
  31. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/static/agent-frontend/chat-widget.css +0 -0
  32. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/static/django_agent_studio/js/builder.js +0 -0
  33. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/static/django_agent_studio/js/builder.js.map +0 -0
  34. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/static/django_agent_studio/js/style.css +0 -0
  35. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/templates/django_agent_studio/agent_list.html +0 -0
  36. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/templates/django_agent_studio/base.html +0 -0
  37. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/templates/django_agent_studio/builder.html +0 -0
  38. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/templates/django_agent_studio/home.html +0 -0
  39. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/templates/django_agent_studio/test.html +0 -0
  40. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/urls.py +0 -0
  41. {django_agent_studio-0.2.7 → django_agent_studio-0.2.8}/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-agent-studio
3
- Version: 0.2.7
3
+ Version: 0.2.8
4
4
  Summary: Visual agent builder and management studio for Django - build custom GPTs with a two-pane interface
5
5
  Author: Chris Barry
6
6
  License: Business Source License 1.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-agent-studio
3
- Version: 0.2.7
3
+ Version: 0.2.8
4
4
  Summary: Visual agent builder and management studio for Django - build custom GPTs with a two-pane interface
5
5
  Author: Chris Barry
6
6
  License: Business Source License 1.1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "django-agent-studio"
7
- version = "0.2.7"
7
+ version = "0.2.8"
8
8
  description = "Visual agent builder and management studio for Django - build custom GPTs with a two-pane interface"
9
9
  readme = "README.md"
10
10
  license = {file = "LICENSE"}
@@ -1,5 +1,5 @@
1
- var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnPropertyDescriptor;var Pt=Object.getOwnPropertyNames;var Ht=Object.prototype.hasOwnProperty;var Nt=(e,t)=>{for(var n in t)Ce(e,n,{get:t[n],enumerable:!0})},Ot=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Pt(t))!Ht.call(e,r)&&r!==n&&Ce(e,r,{get:()=>t[r],enumerable:!(o=Dt(t,r))||o.enumerable});return e};var Ft=e=>Ot(Ce({},"__esModule",{value:!0}),e);var _n={};Nt(_n,{ChatWidget:()=>ke,default:()=>dn});var de,P,ze,Ut,Y,We,je,Je,Ve,xe,Se,Me,Wt,oe={},qe=[],Lt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,_e=Array.isArray;function Q(e,t){for(var n in t)e[n]=t[n];return e}function Ee(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function pe(e,t,n){var o,r,s,i={};for(s in t)s=="key"?o=t[s]:s=="ref"?r=t[s]:i[s]=t[s];if(arguments.length>2&&(i.children=arguments.length>3?de.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(s in e.defaultProps)i[s]===void 0&&(i[s]=e.defaultProps[s]);return ce(e,i,o,r,null)}function ce(e,t,n,o,r){var s={type:e,props:t,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:r??++ze,__i:-1,__u:0};return r==null&&P.vnode!=null&&P.vnode(s),s}function fe(e){return e.children}function ne(e,t){this.props=e,this.context=t}function te(e,t){if(t==null)return e.__?te(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?te(e):null}function Ge(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 Ge(e)}}function Le(e){(!e.__d&&(e.__d=!0)&&Y.push(e)&&!ue.__r++||We!=P.debounceRendering)&&((We=P.debounceRendering)||je)(ue)}function ue(){for(var e,t,n,o,r,s,i,c=1;Y.length;)Y.length>c&&Y.sort(Je),e=Y.shift(),c=Y.length,e.__d&&(n=void 0,o=void 0,r=(o=(t=e).__v).__e,s=[],i=[],t.__P&&((n=Q({},o)).__v=o.__v+1,P.vnode&&P.vnode(n),Ie(t.__P,n,o,t.__n,t.__P.namespaceURI,32&o.__u?[r]:null,s,r??te(o),!!(32&o.__u),i),n.__v=o.__v,n.__.__k[n.__i]=n,Ze(s,n,i),o.__e=o.__=null,n.__e!=r&&Ge(n)));ue.__r=0}function Xe(e,t,n,o,r,s,i,c,d,l,u){var a,p,f,$,k,g,y,w=o&&o.__k||qe,A=t.length;for(d=Kt(n,t,w,d,A),a=0;a<A;a++)(f=n.__k[a])!=null&&(p=f.__i==-1?oe:w[f.__i]||oe,f.__i=a,g=Ie(e,f,p,r,s,i,c,d,l,u),$=f.__e,f.ref&&p.ref!=f.ref&&(p.ref&&Ae(p.ref,null,f),u.push(f.ref,f.__c||$,f)),k==null&&$!=null&&(k=$),(y=!!(4&f.__u))||p.__k===f.__k?d=Qe(f,d,e,y):typeof f.type=="function"&&g!==void 0?d=g:$&&(d=$.nextSibling),f.__u&=-7);return n.__e=k,d}function Kt(e,t,n,o,r){var s,i,c,d,l,u=n.length,a=u,p=0;for(e.__k=new Array(r),s=0;s<r;s++)(i=t[s])!=null&&typeof i!="boolean"&&typeof i!="function"?(typeof i=="string"||typeof i=="number"||typeof i=="bigint"||i.constructor==String?i=e.__k[s]=ce(null,i,null,null,null):_e(i)?i=e.__k[s]=ce(fe,{children:i},null,null,null):i.constructor===void 0&&i.__b>0?i=e.__k[s]=ce(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):e.__k[s]=i,d=s+p,i.__=e,i.__b=e.__b+1,c=null,(l=i.__i=Bt(i,n,d,a))!=-1&&(a--,(c=n[l])&&(c.__u|=2)),c==null||c.__v==null?(l==-1&&(r>u?p--:r<u&&p++),typeof i.type!="function"&&(i.__u|=4)):l!=d&&(l==d-1?p--:l==d+1?p++:(l>d?p--:p++,i.__u|=4))):e.__k[s]=null;if(a)for(s=0;s<u;s++)(c=n[s])!=null&&!(2&c.__u)&&(c.__e==o&&(o=te(c)),et(c,c));return o}function Qe(e,t,n,o){var r,s;if(typeof e.type=="function"){for(r=e.__k,s=0;r&&s<r.length;s++)r[s]&&(r[s].__=e,t=Qe(r[s],t,n,o));return t}e.__e!=t&&(o&&(t&&e.type&&!t.parentNode&&(t=te(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function Bt(e,t,n,o){var r,s,i,c=e.key,d=e.type,l=t[n],u=l!=null&&(2&l.__u)==0;if(l===null&&c==null||u&&c==l.key&&d==l.type)return n;if(o>(u?1:0)){for(r=n-1,s=n+1;r>=0||s<t.length;)if((l=t[i=r>=0?r--:s++])!=null&&!(2&l.__u)&&c==l.key&&d==l.type)return i}return-1}function Ke(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||Lt.test(t)?n:n+"px"}function le(e,t,n,o,r){var s,i;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(t in o)n&&t in n||Ke(e.style,t,"");if(n)for(t in n)o&&n[t]==o[t]||Ke(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")s=t!=(t=t.replace(Ve,"$1")),i=t.toLowerCase(),t=i in e||t=="onFocusOut"||t=="onFocusIn"?i.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=n,n?o?n.u=o.u:(n.u=xe,e.addEventListener(t,s?Me:Se,s)):e.removeEventListener(t,s?Me:Se,s);else{if(r=="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 Be(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t.t==null)t.t=xe++;else if(t.t<n.u)return;return n(P.event?P.event(t):t)}}}function Ie(e,t,n,o,r,s,i,c,d,l){var u,a,p,f,$,k,g,y,w,A,O,J,F,j,V,K,b,N=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(d=!!(32&n.__u),s=[c=t.__e=n.__e]),(u=P.__b)&&u(t);e:if(typeof N=="function")try{if(y=t.props,w="prototype"in N&&N.prototype.render,A=(u=N.contextType)&&o[u.__c],O=u?A?A.props.value:u.__:o,n.__c?g=(a=t.__c=n.__c).__=a.__E:(w?t.__c=a=new N(y,O):(t.__c=a=new ne(y,O),a.constructor=N,a.render=jt),A&&A.sub(a),a.state||(a.state={}),a.__n=o,p=a.__d=!0,a.__h=[],a._sb=[]),w&&a.__s==null&&(a.__s=a.state),w&&N.getDerivedStateFromProps!=null&&(a.__s==a.state&&(a.__s=Q({},a.__s)),Q(a.__s,N.getDerivedStateFromProps(y,a.__s))),f=a.props,$=a.state,a.__v=t,p)w&&N.getDerivedStateFromProps==null&&a.componentWillMount!=null&&a.componentWillMount(),w&&a.componentDidMount!=null&&a.__h.push(a.componentDidMount);else{if(w&&N.getDerivedStateFromProps==null&&y!==f&&a.componentWillReceiveProps!=null&&a.componentWillReceiveProps(y,O),t.__v==n.__v||!a.__e&&a.shouldComponentUpdate!=null&&a.shouldComponentUpdate(y,a.__s,O)===!1){for(t.__v!=n.__v&&(a.props=y,a.state=a.__s,a.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(v){v&&(v.__=t)}),J=0;J<a._sb.length;J++)a.__h.push(a._sb[J]);a._sb=[],a.__h.length&&i.push(a);break e}a.componentWillUpdate!=null&&a.componentWillUpdate(y,a.__s,O),w&&a.componentDidUpdate!=null&&a.__h.push(function(){a.componentDidUpdate(f,$,k)})}if(a.context=O,a.props=y,a.__P=e,a.__e=!1,F=P.__r,j=0,w){for(a.state=a.__s,a.__d=!1,F&&F(t),u=a.render(a.props,a.state,a.context),V=0;V<a._sb.length;V++)a.__h.push(a._sb[V]);a._sb=[]}else do a.__d=!1,F&&F(t),u=a.render(a.props,a.state,a.context),a.state=a.__s;while(a.__d&&++j<25);a.state=a.__s,a.getChildContext!=null&&(o=Q(Q({},o),a.getChildContext())),w&&!p&&a.getSnapshotBeforeUpdate!=null&&(k=a.getSnapshotBeforeUpdate(f,$)),K=u,u!=null&&u.type===fe&&u.key==null&&(K=Ye(u.props.children)),c=Xe(e,_e(K)?K:[K],t,n,o,r,s,i,c,d,l),a.base=t.__e,t.__u&=-161,a.__h.length&&i.push(a),g&&(a.__E=a.__=null)}catch(v){if(t.__v=null,d||s!=null)if(v.then){for(t.__u|=d?160:128;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;s[s.indexOf(c)]=null,t.__e=c}else{for(b=s.length;b--;)Ee(s[b]);Te(t)}else t.__e=n.__e,t.__k=n.__k,v.then||Te(t);P.__e(v,t,n)}else s==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=zt(n.__e,t,n,o,r,s,i,d,l);return(u=P.diffed)&&u(t),128&t.__u?void 0:c}function Te(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(Te)}function Ze(e,t,n){for(var o=0;o<n.length;o++)Ae(n[o],n[++o],n[++o]);P.__c&&P.__c(t,e),e.some(function(r){try{e=r.__h,r.__h=[],e.some(function(s){s.call(r)})}catch(s){P.__e(s,r.__v)}})}function Ye(e){return typeof e!="object"||e==null||e.__b&&e.__b>0?e:_e(e)?e.map(Ye):Q({},e)}function zt(e,t,n,o,r,s,i,c,d){var l,u,a,p,f,$,k,g=n.props||oe,y=t.props,w=t.type;if(w=="svg"?r="http://www.w3.org/2000/svg":w=="math"?r="http://www.w3.org/1998/Math/MathML":r||(r="http://www.w3.org/1999/xhtml"),s!=null){for(l=0;l<s.length;l++)if((f=s[l])&&"setAttribute"in f==!!w&&(w?f.localName==w:f.nodeType==3)){e=f,s[l]=null;break}}if(e==null){if(w==null)return document.createTextNode(y);e=document.createElementNS(r,w,y.is&&y),c&&(P.__m&&P.__m(t,s),c=!1),s=null}if(w==null)g===y||c&&e.data==y||(e.data=y);else{if(s=s&&de.call(e.childNodes),!c&&s!=null)for(g={},l=0;l<e.attributes.length;l++)g[(f=e.attributes[l]).name]=f.value;for(l in g)if(f=g[l],l!="children"){if(l=="dangerouslySetInnerHTML")a=f;else if(!(l in y)){if(l=="value"&&"defaultValue"in y||l=="checked"&&"defaultChecked"in y)continue;le(e,l,null,f,r)}}for(l in y)f=y[l],l=="children"?p=f:l=="dangerouslySetInnerHTML"?u=f:l=="value"?$=f:l=="checked"?k=f:c&&typeof f!="function"||g[l]===f||le(e,l,f,g[l],r);if(u)c||a&&(u.__html==a.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(a&&(e.innerHTML=""),Xe(t.type=="template"?e.content:e,_e(p)?p:[p],t,n,o,w=="foreignObject"?"http://www.w3.org/1999/xhtml":r,s,i,s?s[0]:n.__k&&te(n,0),c,d),s!=null)for(l=s.length;l--;)Ee(s[l]);c||(l="value",w=="progress"&&$==null?e.removeAttribute("value"):$!=null&&($!==e[l]||w=="progress"&&!$||w=="option"&&$!=g[l])&&le(e,l,$,g[l],r),l="checked",k!=null&&k!=e[l]&&le(e,l,k,g[l],r))}return e}function Ae(e,t,n){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&t==null||(e.__u=e(t))}else e.current=t}catch(r){P.__e(r,n)}}function et(e,t,n){var o,r;if(P.unmount&&P.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||Ae(o,null,t)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(s){P.__e(s,t)}o.base=o.__P=null}if(o=e.__k)for(r=0;r<o.length;r++)o[r]&&et(o[r],t,n||typeof e.type!="function");n||Ee(e.__e),e.__c=e.__=e.__e=void 0}function jt(e,t,n){return this.constructor(e,n)}function he(e,t,n){var o,r,s,i;t==document&&(t=document.documentElement),P.__&&P.__(e,t),r=(o=typeof n=="function")?null:n&&n.__k||t.__k,s=[],i=[],Ie(t,e=(!o&&n||t).__k=pe(fe,null,[e]),r||oe,oe,t.namespaceURI,!o&&n?[n]:r?null:t.firstChild?de.call(t.childNodes):null,s,!o&&n?n:r?r.__e:t.firstChild,o,i),Ze(s,e,i)}de=qe.slice,P={__e:function(e,t,n,o){for(var r,s,i;t=t.__;)if((r=t.__c)&&!r.__)try{if((s=r.constructor)&&s.getDerivedStateFromError!=null&&(r.setState(s.getDerivedStateFromError(e)),i=r.__d),r.componentDidCatch!=null&&(r.componentDidCatch(e,o||{}),i=r.__d),i)return r.__E=r}catch(c){e=c}throw e}},ze=0,Ut=function(e){return e!=null&&e.constructor===void 0},ne.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Q({},this.state),typeof e=="function"&&(e=e(Q({},n),this.props)),e&&Q(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Le(this))},ne.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Le(this))},ne.prototype.render=fe,Y=[],je=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Je=function(e,t){return e.__v.__b-t.__v.__b},ue.__r=0,Ve=/(PointerCapture)$|Capture$/i,xe=0,Se=Be(!1),Me=Be(!0),Wt=0;var nt=function(e,t,n,o){var r;t[0]=0;for(var s=1;s<t.length;s++){var i=t[s++],c=t[s]?(t[0]|=i?1:2,n[t[s++]]):t[++s];i===3?o[0]=c:i===4?o[1]=Object.assign(o[1]||{},c):i===5?(o[1]=o[1]||{})[t[++s]]=c:i===6?o[1][t[++s]]+=c+"":i?(r=e.apply(c,nt(e,c,n,["",null])),o.push(r),c[0]?t[0]|=2:(t[s-2]=0,t[s]=r)):o.push(c)}return o},tt=new Map;function ot(e){var t=tt.get(this);return t||(t=new Map,tt.set(this,t)),(t=nt(this,t.get(e)||(t.set(e,t=function(n){for(var o,r,s=1,i="",c="",d=[0],l=function(p){s===1&&(p||(i=i.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?d.push(0,p,i):s===3&&(p||i)?(d.push(3,p,i),s=2):s===2&&i==="..."&&p?d.push(4,p,0):s===2&&i&&!p?d.push(5,0,!0,i):s>=5&&((i||!p&&s===5)&&(d.push(s,0,i,r),s=6),p&&(d.push(s,p,0,r),s=6)),i=""},u=0;u<n.length;u++){u&&(s===1&&l(),l(u));for(var a=0;a<n[u].length;a++)o=n[u][a],s===1?o==="<"?(l(),d=[d],s=3):i+=o:s===4?i==="--"&&o===">"?(s=1,i=""):i=o+i[0]:c?o===c?c="":i+=o:o==='"'||o==="'"?c=o:o===">"?(l(),s=1):s&&(o==="="?(s=5,r=i,i=""):o==="/"&&(s<5||n[u][a+1]===">")?(l(),s===3&&(d=d[0]),s=d,(d=d[0]).push(2,0,s),s=0):o===" "||o===" "||o===`
2
- `||o==="\r"?(l(),s=2):i+=o),s===3&&i==="!--"&&(s=4,d=d[0])}return l(),d}(e)),t),arguments,[])).length>1?t:t[0]}var m=ot.bind(pe);var se,U,Re,st,re=0,_t=[],W=P,rt=W.__b,at=W.__r,it=W.diffed,lt=W.__c,ct=W.unmount,ut=W.__;function Pe(e,t){W.__h&&W.__h(U,e,re||t),re=0;var n=U.__H||(U.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function M(e){return re=1,Jt(ft,e)}function Jt(e,t,n){var o=Pe(se++,2);if(o.t=e,!o.__c&&(o.__=[n?n(t):ft(void 0,t),function(c){var d=o.__N?o.__N[0]:o.__[0],l=o.t(d,c);d!==l&&(o.__N=[l,o.__[1]],o.__c.setState({}))}],o.__c=U,!U.__f)){var r=function(c,d,l){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(p){return!!p.__c});if(u.every(function(p){return!p.__N}))return!s||s.call(this,c,d,l);var a=o.__c.props!==c;return u.forEach(function(p){if(p.__N){var f=p.__[0];p.__=p.__N,p.__N=void 0,f!==p.__[0]&&(a=!0)}}),s&&s.call(this,c,d,l)||a};U.__f=!0;var s=U.shouldComponentUpdate,i=U.componentWillUpdate;U.componentWillUpdate=function(c,d,l){if(this.__e){var u=s;s=void 0,r(c,d,l),s=u}i&&i.call(this,c,d,l)},U.shouldComponentUpdate=r}return o.__N||o.__}function L(e,t){var n=Pe(se++,3);!W.__s&&pt(n.__H,t)&&(n.__=e,n.u=t,U.__H.__h.push(n))}function G(e){return re=5,ae(function(){return{current:e}},[])}function ae(e,t){var n=Pe(se++,7);return pt(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function z(e,t){return re=8,ae(function(){return e},t)}function Vt(){for(var e;e=_t.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(me),e.__H.__h.forEach(De),e.__H.__h=[]}catch(t){e.__H.__h=[],W.__e(t,e.__v)}}W.__b=function(e){U=null,rt&&rt(e)},W.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),ut&&ut(e,t)},W.__r=function(e){at&&at(e),se=0;var t=(U=e.__c).__H;t&&(Re===U?(t.__h=[],U.__h=[],t.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.forEach(me),t.__h.forEach(De),t.__h=[],se=0)),Re=U},W.diffed=function(e){it&&it(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(_t.push(t)!==1&&st===W.requestAnimationFrame||((st=W.requestAnimationFrame)||qt)(Vt)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),Re=U=null},W.__c=function(e,t){t.some(function(n){try{n.__h.forEach(me),n.__h=n.__h.filter(function(o){return!o.__||De(o)})}catch(o){t.some(function(r){r.__h&&(r.__h=[])}),t=[],W.__e(o,n.__v)}}),lt&&lt(e,t)},W.unmount=function(e){ct&&ct(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(o){try{me(o)}catch(r){t=r}}),n.__H=void 0,t&&W.__e(t,n.__v))};var dt=typeof requestAnimationFrame=="function";function qt(e){var t,n=function(){clearTimeout(o),dt&&cancelAnimationFrame(t),setTimeout(e)},o=setTimeout(n,35);dt&&(t=requestAnimationFrame(n))}function me(e){var t=U,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),U=t}function De(e){var t=U;e.__c=e.__(),U=t}function pt(e,t){return!e||e.length!==t.length||t.some(function(n,o){return n!==e[o]})}function ft(e,t){return typeof t=="function"?t(e):t}function Gt(e){return e.replace(/_([a-z])/g,(t,n)=>n.toUpperCase())}function He(e){return e.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function ge(e){return Array.isArray(e)?e.map(ge):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[Gt(t),ge(n)])):e}function ye(e){return Array.isArray(e)?e.map(ye):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[He(t),ye(n)])):e}function ve(){return"msg-"+Date.now()+"-"+Math.random().toString(36).substr(2,9)}function B(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}function ht(e){if(!e)return"";try{let t=new Date(e),o=new Date-t,r=Math.floor(o/6e4),s=Math.floor(o/36e5),i=Math.floor(o/864e5);return r<1?"Just now":r<60?`${r}m ago`:s<24?`${s}h ago`:i<7?`${i}d ago`:t.toLocaleDateString()}catch{return""}}function mt(e,t=null){if(t)return t(e);let n=B(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 gt(e=""){let t=n=>e?`${n}_${e}`:n;return{get(n){try{return localStorage.getItem(t(n))}catch{return null}},set(n,o){try{let r=t(n);o===null?localStorage.removeItem(r):localStorage.setItem(r,o)}catch{}}}}function yt(e="csrftoken"){let t=document.cookie.split(";");for(let o of t){let[r,s]=o.trim().split("=");if(r===e)return decodeURIComponent(s)}let n=document.querySelector('meta[name="csrf-token"]');return n?n.getAttribute("content"):null}function we(e){if(e===0)return"0 B";let t=1024,n=["B","KB","MB","GB"],o=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,o)).toFixed(1))+" "+n[o]}function $e(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 vt({config:e,debugMode:t,isExpanded:n,isSpeaking:o,messagesCount:r,isLoading:s,currentAgent:i,onClose:c,onToggleExpand:d,onToggleDebug:l,onToggleTTS:u,onClear:a,onToggleSidebar:p}){let{title:f,primaryColor:$,embedded:k,showConversationSidebar:g,showClearButton:y,showDebugButton:w,enableDebugMode:A,showTTSButton:O,showExpandButton:J,enableTTS:F,elevenLabsApiKey:j,ttsProxyUrl:V}=e,K=j||V;return m`
1
+ var ChatWidgetModule=(()=>{var Se=Object.defineProperty;var Pt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Ft=Object.prototype.hasOwnProperty;var Nt=(e,t)=>{for(var n in t)Se(e,n,{get:t[n],enumerable:!0})},Ot=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ht(t))!Ft.call(e,r)&&r!==n&&Se(e,r,{get:()=>t[r],enumerable:!(o=Pt(t,r))||o.enumerable});return e};var Ut=e=>Ot(Se({},"__esModule",{value:!0}),e);var pn={};Nt(pn,{ChatWidget:()=>Ce,default:()=>_n});var _e,P,je,Wt,Y,Le,Je,Ve,qe,Ee,Me,Te,Lt,oe={},Ge=[],Kt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,pe=Array.isArray;function X(e,t){for(var n in t)e[n]=t[n];return e}function Ie(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function fe(e,t,n){var o,r,s,i={};for(s in t)s=="key"?o=t[s]:s=="ref"?r=t[s]:i[s]=t[s];if(arguments.length>2&&(i.children=arguments.length>3?_e.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(s in e.defaultProps)i[s]===void 0&&(i[s]=e.defaultProps[s]);return ue(e,i,o,r,null)}function ue(e,t,n,o,r){var s={type:e,props:t,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:r??++je,__i:-1,__u:0};return r==null&&P.vnode!=null&&P.vnode(s),s}function he(e){return e.children}function ne(e,t){this.props=e,this.context=t}function te(e,t){if(t==null)return e.__?te(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?te(e):null}function Xe(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 Xe(e)}}function Ke(e){(!e.__d&&(e.__d=!0)&&Y.push(e)&&!de.__r++||Le!=P.debounceRendering)&&((Le=P.debounceRendering)||Je)(de)}function de(){for(var e,t,n,o,r,s,i,c=1;Y.length;)Y.length>c&&Y.sort(Ve),e=Y.shift(),c=Y.length,e.__d&&(n=void 0,o=void 0,r=(o=(t=e).__v).__e,s=[],i=[],t.__P&&((n=X({},o)).__v=o.__v+1,P.vnode&&P.vnode(n),Ae(t.__P,n,o,t.__n,t.__P.namespaceURI,32&o.__u?[r]:null,s,r??te(o),!!(32&o.__u),i),n.__v=o.__v,n.__.__k[n.__i]=n,Ye(s,n,i),o.__e=o.__=null,n.__e!=r&&Xe(n)));de.__r=0}function Qe(e,t,n,o,r,s,i,c,d,l,u){var a,p,f,$,k,g,v,w=o&&o.__k||Ge,A=t.length;for(d=Bt(n,t,w,d,A),a=0;a<A;a++)(f=n.__k[a])!=null&&(p=f.__i==-1?oe:w[f.__i]||oe,f.__i=a,g=Ae(e,f,p,r,s,i,c,d,l,u),$=f.__e,f.ref&&p.ref!=f.ref&&(p.ref&&Re(p.ref,null,f),u.push(f.ref,f.__c||$,f)),k==null&&$!=null&&(k=$),(v=!!(4&f.__u))||p.__k===f.__k?d=Ze(f,d,e,v):typeof f.type=="function"&&g!==void 0?d=g:$&&(d=$.nextSibling),f.__u&=-7);return n.__e=k,d}function Bt(e,t,n,o,r){var s,i,c,d,l,u=n.length,a=u,p=0;for(e.__k=new Array(r),s=0;s<r;s++)(i=t[s])!=null&&typeof i!="boolean"&&typeof i!="function"?(typeof i=="string"||typeof i=="number"||typeof i=="bigint"||i.constructor==String?i=e.__k[s]=ue(null,i,null,null,null):pe(i)?i=e.__k[s]=ue(he,{children:i},null,null,null):i.constructor===void 0&&i.__b>0?i=e.__k[s]=ue(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):e.__k[s]=i,d=s+p,i.__=e,i.__b=e.__b+1,c=null,(l=i.__i=zt(i,n,d,a))!=-1&&(a--,(c=n[l])&&(c.__u|=2)),c==null||c.__v==null?(l==-1&&(r>u?p--:r<u&&p++),typeof i.type!="function"&&(i.__u|=4)):l!=d&&(l==d-1?p--:l==d+1?p++:(l>d?p--:p++,i.__u|=4))):e.__k[s]=null;if(a)for(s=0;s<u;s++)(c=n[s])!=null&&!(2&c.__u)&&(c.__e==o&&(o=te(c)),tt(c,c));return o}function Ze(e,t,n,o){var r,s;if(typeof e.type=="function"){for(r=e.__k,s=0;r&&s<r.length;s++)r[s]&&(r[s].__=e,t=Ze(r[s],t,n,o));return t}e.__e!=t&&(o&&(t&&e.type&&!t.parentNode&&(t=te(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function zt(e,t,n,o){var r,s,i,c=e.key,d=e.type,l=t[n],u=l!=null&&(2&l.__u)==0;if(l===null&&c==null||u&&c==l.key&&d==l.type)return n;if(o>(u?1:0)){for(r=n-1,s=n+1;r>=0||s<t.length;)if((l=t[i=r>=0?r--:s++])!=null&&!(2&l.__u)&&c==l.key&&d==l.type)return i}return-1}function Be(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||Kt.test(t)?n:n+"px"}function ce(e,t,n,o,r){var s,i;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(t in o)n&&t in n||Be(e.style,t,"");if(n)for(t in n)o&&n[t]==o[t]||Be(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")s=t!=(t=t.replace(qe,"$1")),i=t.toLowerCase(),t=i in e||t=="onFocusOut"||t=="onFocusIn"?i.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=n,n?o?n.u=o.u:(n.u=Ee,e.addEventListener(t,s?Te:Me,s)):e.removeEventListener(t,s?Te:Me,s);else{if(r=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function ze(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t.t==null)t.t=Ee++;else if(t.t<n.u)return;return n(P.event?P.event(t):t)}}}function Ae(e,t,n,o,r,s,i,c,d,l){var u,a,p,f,$,k,g,v,w,A,N,J,O,j,V,K,b,F=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(d=!!(32&n.__u),s=[c=t.__e=n.__e]),(u=P.__b)&&u(t);e:if(typeof F=="function")try{if(v=t.props,w="prototype"in F&&F.prototype.render,A=(u=F.contextType)&&o[u.__c],N=u?A?A.props.value:u.__:o,n.__c?g=(a=t.__c=n.__c).__=a.__E:(w?t.__c=a=new F(v,N):(t.__c=a=new ne(v,N),a.constructor=F,a.render=Jt),A&&A.sub(a),a.state||(a.state={}),a.__n=o,p=a.__d=!0,a.__h=[],a._sb=[]),w&&a.__s==null&&(a.__s=a.state),w&&F.getDerivedStateFromProps!=null&&(a.__s==a.state&&(a.__s=X({},a.__s)),X(a.__s,F.getDerivedStateFromProps(v,a.__s))),f=a.props,$=a.state,a.__v=t,p)w&&F.getDerivedStateFromProps==null&&a.componentWillMount!=null&&a.componentWillMount(),w&&a.componentDidMount!=null&&a.__h.push(a.componentDidMount);else{if(w&&F.getDerivedStateFromProps==null&&v!==f&&a.componentWillReceiveProps!=null&&a.componentWillReceiveProps(v,N),t.__v==n.__v||!a.__e&&a.shouldComponentUpdate!=null&&a.shouldComponentUpdate(v,a.__s,N)===!1){for(t.__v!=n.__v&&(a.props=v,a.state=a.__s,a.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(y){y&&(y.__=t)}),J=0;J<a._sb.length;J++)a.__h.push(a._sb[J]);a._sb=[],a.__h.length&&i.push(a);break e}a.componentWillUpdate!=null&&a.componentWillUpdate(v,a.__s,N),w&&a.componentDidUpdate!=null&&a.__h.push(function(){a.componentDidUpdate(f,$,k)})}if(a.context=N,a.props=v,a.__P=e,a.__e=!1,O=P.__r,j=0,w){for(a.state=a.__s,a.__d=!1,O&&O(t),u=a.render(a.props,a.state,a.context),V=0;V<a._sb.length;V++)a.__h.push(a._sb[V]);a._sb=[]}else do a.__d=!1,O&&O(t),u=a.render(a.props,a.state,a.context),a.state=a.__s;while(a.__d&&++j<25);a.state=a.__s,a.getChildContext!=null&&(o=X(X({},o),a.getChildContext())),w&&!p&&a.getSnapshotBeforeUpdate!=null&&(k=a.getSnapshotBeforeUpdate(f,$)),K=u,u!=null&&u.type===he&&u.key==null&&(K=et(u.props.children)),c=Qe(e,pe(K)?K:[K],t,n,o,r,s,i,c,d,l),a.base=t.__e,t.__u&=-161,a.__h.length&&i.push(a),g&&(a.__E=a.__=null)}catch(y){if(t.__v=null,d||s!=null)if(y.then){for(t.__u|=d?160:128;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;s[s.indexOf(c)]=null,t.__e=c}else{for(b=s.length;b--;)Ie(s[b]);xe(t)}else t.__e=n.__e,t.__k=n.__k,y.then||xe(t);P.__e(y,t,n)}else s==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=jt(n.__e,t,n,o,r,s,i,d,l);return(u=P.diffed)&&u(t),128&t.__u?void 0:c}function xe(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(xe)}function Ye(e,t,n){for(var o=0;o<n.length;o++)Re(n[o],n[++o],n[++o]);P.__c&&P.__c(t,e),e.some(function(r){try{e=r.__h,r.__h=[],e.some(function(s){s.call(r)})}catch(s){P.__e(s,r.__v)}})}function et(e){return typeof e!="object"||e==null||e.__b&&e.__b>0?e:pe(e)?e.map(et):X({},e)}function jt(e,t,n,o,r,s,i,c,d){var l,u,a,p,f,$,k,g=n.props||oe,v=t.props,w=t.type;if(w=="svg"?r="http://www.w3.org/2000/svg":w=="math"?r="http://www.w3.org/1998/Math/MathML":r||(r="http://www.w3.org/1999/xhtml"),s!=null){for(l=0;l<s.length;l++)if((f=s[l])&&"setAttribute"in f==!!w&&(w?f.localName==w:f.nodeType==3)){e=f,s[l]=null;break}}if(e==null){if(w==null)return document.createTextNode(v);e=document.createElementNS(r,w,v.is&&v),c&&(P.__m&&P.__m(t,s),c=!1),s=null}if(w==null)g===v||c&&e.data==v||(e.data=v);else{if(s=s&&_e.call(e.childNodes),!c&&s!=null)for(g={},l=0;l<e.attributes.length;l++)g[(f=e.attributes[l]).name]=f.value;for(l in g)if(f=g[l],l!="children"){if(l=="dangerouslySetInnerHTML")a=f;else if(!(l in v)){if(l=="value"&&"defaultValue"in v||l=="checked"&&"defaultChecked"in v)continue;ce(e,l,null,f,r)}}for(l in v)f=v[l],l=="children"?p=f:l=="dangerouslySetInnerHTML"?u=f:l=="value"?$=f:l=="checked"?k=f:c&&typeof f!="function"||g[l]===f||ce(e,l,f,g[l],r);if(u)c||a&&(u.__html==a.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(a&&(e.innerHTML=""),Qe(t.type=="template"?e.content:e,pe(p)?p:[p],t,n,o,w=="foreignObject"?"http://www.w3.org/1999/xhtml":r,s,i,s?s[0]:n.__k&&te(n,0),c,d),s!=null)for(l=s.length;l--;)Ie(s[l]);c||(l="value",w=="progress"&&$==null?e.removeAttribute("value"):$!=null&&($!==e[l]||w=="progress"&&!$||w=="option"&&$!=g[l])&&ce(e,l,$,g[l],r),l="checked",k!=null&&k!=e[l]&&ce(e,l,k,g[l],r))}return e}function Re(e,t,n){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&t==null||(e.__u=e(t))}else e.current=t}catch(r){P.__e(r,n)}}function tt(e,t,n){var o,r;if(P.unmount&&P.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||Re(o,null,t)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(s){P.__e(s,t)}o.base=o.__P=null}if(o=e.__k)for(r=0;r<o.length;r++)o[r]&&tt(o[r],t,n||typeof e.type!="function");n||Ie(e.__e),e.__c=e.__=e.__e=void 0}function Jt(e,t,n){return this.constructor(e,n)}function me(e,t,n){var o,r,s,i;t==document&&(t=document.documentElement),P.__&&P.__(e,t),r=(o=typeof n=="function")?null:n&&n.__k||t.__k,s=[],i=[],Ae(t,e=(!o&&n||t).__k=fe(he,null,[e]),r||oe,oe,t.namespaceURI,!o&&n?[n]:r?null:t.firstChild?_e.call(t.childNodes):null,s,!o&&n?n:r?r.__e:t.firstChild,o,i),Ye(s,e,i)}_e=Ge.slice,P={__e:function(e,t,n,o){for(var r,s,i;t=t.__;)if((r=t.__c)&&!r.__)try{if((s=r.constructor)&&s.getDerivedStateFromError!=null&&(r.setState(s.getDerivedStateFromError(e)),i=r.__d),r.componentDidCatch!=null&&(r.componentDidCatch(e,o||{}),i=r.__d),i)return r.__E=r}catch(c){e=c}throw e}},je=0,Wt=function(e){return e!=null&&e.constructor===void 0},ne.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=X({},this.state),typeof e=="function"&&(e=e(X({},n),this.props)),e&&X(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ke(this))},ne.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ke(this))},ne.prototype.render=he,Y=[],Je=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ve=function(e,t){return e.__v.__b-t.__v.__b},de.__r=0,qe=/(PointerCapture)$|Capture$/i,Ee=0,Me=ze(!1),Te=ze(!0),Lt=0;var ot=function(e,t,n,o){var r;t[0]=0;for(var s=1;s<t.length;s++){var i=t[s++],c=t[s]?(t[0]|=i?1:2,n[t[s++]]):t[++s];i===3?o[0]=c:i===4?o[1]=Object.assign(o[1]||{},c):i===5?(o[1]=o[1]||{})[t[++s]]=c:i===6?o[1][t[++s]]+=c+"":i?(r=e.apply(c,ot(e,c,n,["",null])),o.push(r),c[0]?t[0]|=2:(t[s-2]=0,t[s]=r)):o.push(c)}return o},nt=new Map;function st(e){var t=nt.get(this);return t||(t=new Map,nt.set(this,t)),(t=ot(this,t.get(e)||(t.set(e,t=function(n){for(var o,r,s=1,i="",c="",d=[0],l=function(p){s===1&&(p||(i=i.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?d.push(0,p,i):s===3&&(p||i)?(d.push(3,p,i),s=2):s===2&&i==="..."&&p?d.push(4,p,0):s===2&&i&&!p?d.push(5,0,!0,i):s>=5&&((i||!p&&s===5)&&(d.push(s,0,i,r),s=6),p&&(d.push(s,p,0,r),s=6)),i=""},u=0;u<n.length;u++){u&&(s===1&&l(),l(u));for(var a=0;a<n[u].length;a++)o=n[u][a],s===1?o==="<"?(l(),d=[d],s=3):i+=o:s===4?i==="--"&&o===">"?(s=1,i=""):i=o+i[0]:c?o===c?c="":i+=o:o==='"'||o==="'"?c=o:o===">"?(l(),s=1):s&&(o==="="?(s=5,r=i,i=""):o==="/"&&(s<5||n[u][a+1]===">")?(l(),s===3&&(d=d[0]),s=d,(d=d[0]).push(2,0,s),s=0):o===" "||o===" "||o===`
2
+ `||o==="\r"?(l(),s=2):i+=o),s===3&&i==="!--"&&(s=4,d=d[0])}return l(),d}(e)),t),arguments,[])).length>1?t:t[0]}var m=st.bind(fe);var se,U,De,rt,re=0,pt=[],W=P,at=W.__b,it=W.__r,lt=W.diffed,ct=W.__c,ut=W.unmount,dt=W.__;function He(e,t){W.__h&&W.__h(U,e,re||t),re=0;var n=U.__H||(U.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function M(e){return re=1,Vt(ht,e)}function Vt(e,t,n){var o=He(se++,2);if(o.t=e,!o.__c&&(o.__=[n?n(t):ht(void 0,t),function(c){var d=o.__N?o.__N[0]:o.__[0],l=o.t(d,c);d!==l&&(o.__N=[l,o.__[1]],o.__c.setState({}))}],o.__c=U,!U.__f)){var r=function(c,d,l){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(p){return!!p.__c});if(u.every(function(p){return!p.__N}))return!s||s.call(this,c,d,l);var a=o.__c.props!==c;return u.forEach(function(p){if(p.__N){var f=p.__[0];p.__=p.__N,p.__N=void 0,f!==p.__[0]&&(a=!0)}}),s&&s.call(this,c,d,l)||a};U.__f=!0;var s=U.shouldComponentUpdate,i=U.componentWillUpdate;U.componentWillUpdate=function(c,d,l){if(this.__e){var u=s;s=void 0,r(c,d,l),s=u}i&&i.call(this,c,d,l)},U.shouldComponentUpdate=r}return o.__N||o.__}function L(e,t){var n=He(se++,3);!W.__s&&ft(n.__H,t)&&(n.__=e,n.u=t,U.__H.__h.push(n))}function G(e){return re=5,ae(function(){return{current:e}},[])}function ae(e,t){var n=He(se++,7);return ft(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function z(e,t){return re=8,ae(function(){return e},t)}function qt(){for(var e;e=pt.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(ge),e.__H.__h.forEach(Pe),e.__H.__h=[]}catch(t){e.__H.__h=[],W.__e(t,e.__v)}}W.__b=function(e){U=null,at&&at(e)},W.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),dt&&dt(e,t)},W.__r=function(e){it&&it(e),se=0;var t=(U=e.__c).__H;t&&(De===U?(t.__h=[],U.__h=[],t.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.forEach(ge),t.__h.forEach(Pe),t.__h=[],se=0)),De=U},W.diffed=function(e){lt&&lt(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(pt.push(t)!==1&&rt===W.requestAnimationFrame||((rt=W.requestAnimationFrame)||Gt)(qt)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),De=U=null},W.__c=function(e,t){t.some(function(n){try{n.__h.forEach(ge),n.__h=n.__h.filter(function(o){return!o.__||Pe(o)})}catch(o){t.some(function(r){r.__h&&(r.__h=[])}),t=[],W.__e(o,n.__v)}}),ct&&ct(e,t)},W.unmount=function(e){ut&&ut(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(o){try{ge(o)}catch(r){t=r}}),n.__H=void 0,t&&W.__e(t,n.__v))};var _t=typeof requestAnimationFrame=="function";function Gt(e){var t,n=function(){clearTimeout(o),_t&&cancelAnimationFrame(t),setTimeout(e)},o=setTimeout(n,35);_t&&(t=requestAnimationFrame(n))}function ge(e){var t=U,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),U=t}function Pe(e){var t=U;e.__c=e.__(),U=t}function ft(e,t){return!e||e.length!==t.length||t.some(function(n,o){return n!==e[o]})}function ht(e,t){return typeof t=="function"?t(e):t}function Xt(e){return e.replace(/_([a-z])/g,(t,n)=>n.toUpperCase())}function Fe(e){return e.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function ye(e){return Array.isArray(e)?e.map(ye):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[Xt(t),ye(n)])):e}function ve(e){return Array.isArray(e)?e.map(ve):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[Fe(t),ve(n)])):e}function we(){return"msg-"+Date.now()+"-"+Math.random().toString(36).substr(2,9)}function B(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}function mt(e){if(!e)return"";try{let t=new Date(e),o=new Date-t,r=Math.floor(o/6e4),s=Math.floor(o/36e5),i=Math.floor(o/864e5);return r<1?"Just now":r<60?`${r}m ago`:s<24?`${s}h ago`:i<7?`${i}d ago`:t.toLocaleDateString()}catch{return""}}function gt(e,t=null){if(t)return t(e);let n=B(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 yt(e=""){let t=n=>e?`${n}_${e}`:n;return{get(n){try{return localStorage.getItem(t(n))}catch{return null}},set(n,o){try{let r=t(n);o===null?localStorage.removeItem(r):localStorage.setItem(r,o)}catch{}}}}function vt(e="csrftoken"){let t=document.cookie.split(";");for(let o of t){let[r,s]=o.trim().split("=");if(r===e)return decodeURIComponent(s)}let n=document.querySelector('meta[name="csrf-token"]');return n?n.getAttribute("content"):null}function $e(e){if(e===0)return"0 B";let t=1024,n=["B","KB","MB","GB"],o=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,o)).toFixed(1))+" "+n[o]}function be(e){return e?e.startsWith("image/")?"\u{1F5BC}\uFE0F":e.startsWith("video/")?"\u{1F3AC}":e.startsWith("audio/")?"\u{1F3B5}":e.includes("pdf")?"\u{1F4D5}":e.includes("spreadsheet")||e.includes("excel")?"\u{1F4CA}":e.includes("document")||e.includes("word")?"\u{1F4DD}":e.includes("presentation")||e.includes("powerpoint")?"\u{1F4FD}\uFE0F":e.includes("zip")||e.includes("compressed")?"\u{1F5DC}\uFE0F":(e.includes("text/"),"\u{1F4C4}"):"\u{1F4C4}"}function wt({config:e,debugMode:t,isExpanded:n,isSpeaking:o,messagesCount:r,isLoading:s,currentAgent:i,onClose:c,onToggleExpand:d,onToggleDebug:l,onToggleTTS:u,onClear:a,onToggleSidebar:p}){let{title:f,primaryColor:$,embedded:k,showConversationSidebar:g,showClearButton:v,showDebugButton:w,enableDebugMode:A,showTTSButton:N,showExpandButton:J,enableTTS:O,elevenLabsApiKey:j,ttsProxyUrl:V}=e,K=j||V;return m`
3
3
  <div class="cw-header" style=${{backgroundColor:$}}>
4
4
  ${g&&m`
5
5
  <button
@@ -26,7 +26,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
26
26
  </div>
27
27
 
28
28
  <div class="cw-header-actions">
29
- ${y&&m`
29
+ ${v&&m`
30
30
  <button
31
31
  class="cw-header-btn"
32
32
  onClick=${a}
@@ -43,12 +43,12 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
43
43
  >🐛</button>
44
44
  `}
45
45
 
46
- ${O&&K&&m`
46
+ ${N&&K&&m`
47
47
  <button
48
- class="cw-header-btn ${F?"cw-btn-active":""}"
48
+ class="cw-header-btn ${O?"cw-btn-active":""}"
49
49
  onClick=${u}
50
50
  title="TTS"
51
- >${F?"\u{1F50A}":"\u{1F507}"}</button>
51
+ >${O?"\u{1F50A}":"\u{1F507}"}</button>
52
52
  `}
53
53
 
54
54
  ${J&&!k&&m`
@@ -79,7 +79,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
79
79
  onClick=${n}
80
80
  title="Show message payload"
81
81
  >{ }</button>
82
- `}function wt({onEdit:e,onRetry:t,isLoading:n,position:o,showEdit:r=!0}){return n?null:m`
82
+ `}function $t({onEdit:e,onRetry:t,isLoading:n,position:o,showEdit:r=!0}){return n?null:m`
83
83
  <div class="cw-message-actions cw-message-actions-${o||"left"}">
84
84
  ${r&&m`
85
85
  <button
@@ -105,7 +105,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
105
105
  </svg>
106
106
  </button>
107
107
  </div>
108
- `}function Xt({initialContent:e,onSave:t,onCancel:n}){let[o,r]=M(e),s=G(null);return L(()=>{s.current&&(s.current.focus(),s.current.setSelectionRange(o.length,o.length),s.current.style.height="auto",s.current.style.height=s.current.scrollHeight+"px")},[]),m`
108
+ `}function Qt({initialContent:e,onSave:t,onCancel:n}){let[o,r]=M(e),s=G(null);return L(()=>{s.current&&(s.current.focus(),s.current.setSelectionRange(o.length,o.length),s.current.style.height="auto",s.current.style.height=s.current.scrollHeight+"px")},[]),m`
109
109
  <div class="cw-inline-edit">
110
110
  <textarea
111
111
  ref=${s}
@@ -129,7 +129,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
129
129
  >Save & Send</button>
130
130
  </div>
131
131
  </div>
132
- `}function $t({msg:e,debugMode:t,markdownParser:n,onEdit:o,onRetry:r,isLoading:s,messageIndex:i}){let[c,d]=M(!1),[l,u]=M(!1),[a,p]=M(!1),f=e.role==="user",$=e.role==="system",k=e.type==="tool_call",g=e.type==="tool_result",y=e.type==="error",w=e.type==="sub_agent_start",A=e.type==="sub_agent_end",O=e.type==="agent_context";if($&&!t)return null;if(w||A||O)return m`
132
+ `}function bt({msg:e,debugMode:t,markdownParser:n,onEdit:o,onRetry:r,isLoading:s,messageIndex:i}){let[c,d]=M(!1),[l,u]=M(!1),[a,p]=M(!1),f=e.role==="user",$=e.role==="system",k=e.type==="tool_call",g=e.type==="tool_result",v=e.type==="error",w=e.type==="sub_agent_start",A=e.type==="sub_agent_end",N=e.type==="agent_context";if($&&!t)return null;if(w||A||N)return m`
133
133
  <div class="cw-agent-context ${w?"cw-agent-delegating":""} ${A?"cw-agent-returned":""}" style="position: relative;">
134
134
  <span class="cw-agent-context-icon">${w?"\u{1F517}":A?"\u2713":"\u{1F916}"}</span>
135
135
  <span class="cw-agent-context-text">${e.content}</span>
@@ -138,18 +138,18 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
138
138
  `}
139
139
  ${t&&m`<${Ne} msg=${e} show=${l} onToggle=${()=>u(!l)} />`}
140
140
  </div>
141
- `;if(k||g){let C=e.metadata?.arguments||e.metadata?.result,x=_=>{if(typeof _=="string")try{return JSON.stringify(JSON.parse(_),null,2)}catch{return _}return JSON.stringify(_,null,2)};return m`
141
+ `;if(k||g){let C=e.metadata?.arguments||e.metadata?.result,T=_=>{if(typeof _=="string")try{return JSON.stringify(JSON.parse(_),null,2)}catch{return _}return JSON.stringify(_,null,2)};return m`
142
142
  <div class="cw-tool-message ${g?"cw-tool-result":"cw-tool-call"}" style="position: relative;">
143
143
  <span class="cw-tool-label" onClick=${()=>C&&d(!c)}>
144
144
  ${e.content}
145
145
  ${C&&m`<span class="cw-tool-expand">${c?"\u25BC":"\u25B6"}</span>`}
146
146
  </span>
147
147
  ${c&&C&&m`
148
- <pre class="cw-tool-details">${B(x(k?e.metadata.arguments:e.metadata.result))}</pre>
148
+ <pre class="cw-tool-details">${B(T(k?e.metadata.arguments:e.metadata.result))}</pre>
149
149
  `}
150
150
  ${t&&m`<${Ne} msg=${e} show=${l} onToggle=${()=>u(!l)} />`}
151
151
  </div>
152
- `}let J=["cw-message",f&&"cw-message-user",y&&"cw-message-error"].filter(Boolean).join(" "),F=`cw-message-row ${f?"cw-message-row-user":""}`,j=e.role==="assistant"?mt(e.content,n):B(e.content),V=e.files&&e.files.length>0,K=()=>V?m`
152
+ `}let J=["cw-message",f&&"cw-message-user",v&&"cw-message-error"].filter(Boolean).join(" "),O=`cw-message-row ${f?"cw-message-row-user":""}`,j=e.role==="assistant"?gt(e.content,n):B(e.content),V=e.files&&e.files.length>0,K=()=>V?m`
153
153
  <div class="cw-message-attachments">
154
154
  ${e.files.map(C=>C.type&&C.type.startsWith("image/")?m`
155
155
  <a class="cw-attachment-thumbnail" href=${C.url} target="_blank" title=${C.name}>
@@ -157,31 +157,31 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
157
157
  </a>
158
158
  `:m`
159
159
  <a class="cw-attachment-file" href=${C.url} target="_blank" title=${C.name}>
160
- <span class="cw-attachment-icon">${$e(C.type)}</span>
160
+ <span class="cw-attachment-icon">${be(C.type)}</span>
161
161
  <span class="cw-attachment-info">
162
162
  <span class="cw-attachment-name">${C.name}</span>
163
- <span class="cw-attachment-size">${we(C.size)}</span>
163
+ <span class="cw-attachment-size">${$e(C.size)}</span>
164
164
  </span>
165
165
  </a>
166
166
  `)}
167
167
  </div>
168
- `:null,b=C=>{p(!1),o&&o(i,C)},N=()=>{r&&r(i)};if(f&&a)return m`
169
- <div class=${F} style="position: relative;">
168
+ `:null,b=C=>{p(!1),o&&o(i,C)},F=()=>{r&&r(i)};if(f&&a)return m`
169
+ <div class=${O} style="position: relative;">
170
170
  ${K()}
171
- <${Xt}
171
+ <${Qt}
172
172
  initialContent=${e.content}
173
173
  onSave=${b}
174
174
  onCancel=${()=>p(!1)}
175
175
  />
176
176
  </div>
177
- `;let v=f&&o&&r,H=e.role==="assistant"&&r&&!s;return m`
178
- <div class="${F} ${v||H?"cw-message-row-with-actions":""}">
177
+ `;let y=f&&o&&r,H=e.role==="assistant"&&r&&!s;return m`
178
+ <div class="${O} ${y||H?"cw-message-row-with-actions":""}">
179
179
  ${K()}
180
- ${v&&m`
180
+ ${y&&m`
181
181
  <div class="cw-user-actions-wrapper">
182
- <${wt}
182
+ <${$t}
183
183
  onEdit=${()=>p(!0)}
184
- onRetry=${N}
184
+ onRetry=${F}
185
185
  isLoading=${s}
186
186
  position="left"
187
187
  showEdit=${!0}
@@ -189,12 +189,12 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
189
189
  <div class=${J} dangerouslySetInnerHTML=${{__html:j}} />
190
190
  </div>
191
191
  `}
192
- ${!v&&m`
192
+ ${!y&&m`
193
193
  <div class=${J} dangerouslySetInnerHTML=${{__html:j}} />
194
194
  `}
195
195
  ${H&&m`
196
- <${wt}
197
- onRetry=${N}
196
+ <${$t}
197
+ onRetry=${F}
198
198
  isLoading=${s}
199
199
  position="right"
200
200
  showEdit=${!1}
@@ -202,7 +202,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
202
202
  `}
203
203
  ${t&&m`<${Ne} msg=${e} show=${l} onToggle=${()=>u(!l)} />`}
204
204
  </div>
205
- `}function bt({messages:e,isLoading:t,hasMoreMessages:n,loadingMoreMessages:o,onLoadMore:r,onEditMessage:s,onRetryMessage:i,debugMode:c,markdownParser:d,emptyStateTitle:l,emptyStateMessage:u}){let a=G(null),p=G(!0),f=k=>{let g=k.target,y=g.scrollHeight-g.scrollTop-g.clientHeight<100;if(p.current=y,g.scrollTop<50&&n&&!o){let w=g.scrollHeight;r().then(()=>{let A=g.scrollHeight;g.scrollTop=A-w+g.scrollTop})}};L(()=>{let k=a.current;k&&p.current&&requestAnimationFrame(()=>{k.scrollTop=k.scrollHeight})},[e,t]),L(()=>{let k=a.current;k&&e.length<=2&&(p.current=!0,requestAnimationFrame(()=>{k.scrollTop=k.scrollHeight}))},[e.length]);let $=e.length===0;return m`
205
+ `}function kt({messages:e,isLoading:t,hasMoreMessages:n,loadingMoreMessages:o,onLoadMore:r,onEditMessage:s,onRetryMessage:i,debugMode:c,markdownParser:d,emptyStateTitle:l,emptyStateMessage:u}){let a=G(null),p=G(!0),f=k=>{let g=k.target,v=g.scrollHeight-g.scrollTop-g.clientHeight<100;if(p.current=v,g.scrollTop<50&&n&&!o){let w=g.scrollHeight;r().then(()=>{let A=g.scrollHeight;g.scrollTop=A-w+g.scrollTop})}};L(()=>{let k=a.current;k&&p.current&&requestAnimationFrame(()=>{k.scrollTop=k.scrollHeight})},[e,t]),L(()=>{let k=a.current;k&&e.length<=2&&(p.current=!0,requestAnimationFrame(()=>{k.scrollTop=k.scrollHeight}))},[e.length]);let $=e.length===0;return m`
206
206
  <div class="cw-messages" ref=${a} onScroll=${f}>
207
207
  ${$&&m`
208
208
  <div class="cw-empty-state">
@@ -221,7 +221,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
221
221
  `}
222
222
 
223
223
  ${e.map((k,g)=>m`
224
- <${$t}
224
+ <${bt}
225
225
  key=${k.id}
226
226
  msg=${k}
227
227
  messageIndex=${g}
@@ -242,7 +242,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
242
242
  </div>
243
243
  `}
244
244
  </div>
245
- `}var Oe=typeof window<"u"?window.SpeechRecognition||window.webkitSpeechRecognition:null;function kt({onSend:e,onCancel:t,isLoading:n,placeholder:o,primaryColor:r,enableVoice:s=!0,enableFiles:i=!0}){let[c,d]=M(""),[l,u]=M([]),[a,p]=M(!1),[f,$]=M(!1),[k]=M(()=>!!Oe),g=G(null),y=G(null),w=G(null),A=G(!1);L(()=>{!n&&g.current&&g.current.focus()},[n]),L(()=>{g.current&&(g.current.style.height="auto",g.current.style.height=Math.min(g.current.scrollHeight,150)+"px")},[c]),L(()=>()=>{A.current=!1,w.current&&w.current.abort()},[]);let O=_=>{_.preventDefault(),(c.trim()||l.length>0)&&!n&&(e(c,l),d(""),u([]),g.current&&(g.current.style.height="auto"),y.current&&(y.current.value=""))},J=_=>{let T=Array.from(_.target.files||[]);T.length>0&&u(S=>[...S,...T])},F=_=>{u(T=>T.filter((S,h)=>h!==_))},j=_=>{_.preventDefault(),y.current&&!n&&y.current.click()},V=_=>{_.key==="Enter"&&!_.shiftKey&&(_.preventDefault(),O(_))},K=_=>{n&&t&&(_.preventDefault(),t())},b=()=>{if(!Oe||n)return;A.current=!0;let _=new Oe;_.continuous=!0,_.interimResults=!0,_.lang=navigator.language||"en-US";let T=c,S="";_.onstart=()=>{$(!0)},_.onresult=h=>{S="";for(let R=h.resultIndex;R<h.results.length;R++){let q=h.results[R][0].transcript;h.results[R].isFinal?T+=(T?" ":"")+q:S+=q}d(T+(S?" "+S:""))},_.onerror=h=>{if(h.error==="no-speech"||h.error==="aborted"){console.log("[ChatWidget] Speech recognition:",h.error,"- continuing...");return}console.warn("[ChatWidget] Speech recognition error:",h.error),A.current=!1,$(!1),d(T||c)},_.onend=()=>{if(A.current){console.log("[ChatWidget] Recognition paused, restarting...");try{_.start();return}catch(h){console.warn("[ChatWidget] Could not restart recognition:",h)}}$(!1),T&&d(T),w.current=null},w.current=_,_.start()},N=()=>{A.current=!1,w.current&&w.current.stop()},v=_=>{_.preventDefault(),f?N():b()},I=m`
245
+ `}var Oe=typeof window<"u"?window.SpeechRecognition||window.webkitSpeechRecognition:null;function Ct({onSend:e,onCancel:t,isLoading:n,placeholder:o,primaryColor:r,enableVoice:s=!0,enableFiles:i=!0}){let[c,d]=M(""),[l,u]=M([]),[a,p]=M(!1),[f,$]=M(!1),[k]=M(()=>!!Oe),g=G(null),v=G(null),w=G(null),A=G(!1);L(()=>{!n&&g.current&&g.current.focus()},[n]),L(()=>{g.current&&(g.current.style.height="auto",g.current.style.height=Math.min(g.current.scrollHeight,150)+"px")},[c]),L(()=>()=>{A.current=!1,w.current&&w.current.abort()},[]);let N=_=>{_.preventDefault(),(c.trim()||l.length>0)&&!n&&(e(c,l),d(""),u([]),g.current&&(g.current.style.height="auto"),v.current&&(v.current.value=""))},J=_=>{let S=Array.from(_.target.files||[]);S.length>0&&u(I=>[...I,...S])},O=_=>{u(S=>S.filter((I,h)=>h!==_))},j=_=>{_.preventDefault(),v.current&&!n&&v.current.click()},V=_=>{_.key==="Enter"&&!_.shiftKey&&(_.preventDefault(),N(_))},K=_=>{n&&t&&(_.preventDefault(),t())},b=()=>{if(!Oe||n)return;A.current=!0;let _=new Oe;_.continuous=!0,_.interimResults=!0,_.lang=navigator.language||"en-US";let S=c,I="";_.onstart=()=>{$(!0)},_.onresult=h=>{I="";for(let D=h.resultIndex;D<h.results.length;D++){let q=h.results[D][0].transcript;h.results[D].isFinal?S+=(S?" ":"")+q:I+=q}d(S+(I?" "+I:""))},_.onerror=h=>{if(h.error==="no-speech"||h.error==="aborted"){console.log("[ChatWidget] Speech recognition:",h.error,"- continuing...");return}console.warn("[ChatWidget] Speech recognition error:",h.error),A.current=!1,$(!1),d(S||c)},_.onend=()=>{if(A.current){console.log("[ChatWidget] Recognition paused, restarting...");try{_.start();return}catch(h){console.warn("[ChatWidget] Could not restart recognition:",h)}}$(!1),S&&d(S),w.current=null},w.current=_,_.start()},F=()=>{A.current=!1,w.current&&w.current.stop()},y=_=>{_.preventDefault(),f?F():b()},E=m`
246
246
  <svg width="14" height="14" viewBox="0 0 14 14" fill="currentColor">
247
247
  <rect x="2" y="2" width="10" height="10" rx="1" />
248
248
  </svg>
@@ -253,30 +253,30 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
253
253
  <line x1="12" y1="19" x2="12" y2="23"></line>
254
254
  <line x1="8" y1="23" x2="16" y2="23"></line>
255
255
  </svg>
256
- `,E=m`
256
+ `,x=m`
257
257
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
258
258
  <path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"></path>
259
259
  </svg>
260
- `,C=s&&k,x=i;return m`
261
- <form class="cw-input-form" onSubmit=${O}>
260
+ `,C=s&&k,T=i;return m`
261
+ <form class="cw-input-form" onSubmit=${N}>
262
262
  <input
263
263
  type="file"
264
- ref=${y}
264
+ ref=${v}
265
265
  style="display: none"
266
266
  multiple
267
267
  onChange=${J}
268
268
  />
269
269
  ${l.length>0&&m`
270
270
  <div class="cw-file-chips">
271
- ${l.map((_,T)=>m`
272
- <div class="cw-file-chip" key=${T}>
273
- <span class="cw-file-chip-icon">${$e(_.type)}</span>
271
+ ${l.map((_,S)=>m`
272
+ <div class="cw-file-chip" key=${S}>
273
+ <span class="cw-file-chip-icon">${be(_.type)}</span>
274
274
  <span class="cw-file-chip-name" title=${_.name}>${_.name.length>20?_.name.substring(0,17)+"...":_.name}</span>
275
- <span class="cw-file-chip-size">(${we(_.size)})</span>
275
+ <span class="cw-file-chip-size">(${$e(_.size)})</span>
276
276
  <button
277
277
  type="button"
278
278
  class="cw-file-chip-remove"
279
- onClick=${()=>F(T)}
279
+ onClick=${()=>O(S)}
280
280
  title="Remove file"
281
281
  >×</button>
282
282
  </div>
@@ -293,7 +293,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
293
293
  disabled=${n}
294
294
  rows="1"
295
295
  />
296
- ${x&&m`
296
+ ${T&&m`
297
297
  <button
298
298
  type="button"
299
299
  class="cw-attach-btn"
@@ -301,14 +301,14 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
301
301
  disabled=${n}
302
302
  title="Attach files"
303
303
  >
304
- ${E}
304
+ ${x}
305
305
  </button>
306
306
  `}
307
307
  ${C&&m`
308
308
  <button
309
309
  type="button"
310
310
  class=${`cw-voice-btn ${f?"cw-voice-btn-recording":""}`}
311
- onClick=${v}
311
+ onClick=${y}
312
312
  disabled=${n}
313
313
  title=${f?"Stop recording":"Voice input"}
314
314
  >
@@ -324,10 +324,10 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
324
324
  onMouseLeave=${()=>p(!1)}
325
325
  title=${n?"Stop":"Send"}
326
326
  >
327
- ${n?a?I:m`<span class="cw-spinner"></span>`:"\u27A4"}
327
+ ${n?a?E:m`<span class="cw-spinner"></span>`:"\u27A4"}
328
328
  </button>
329
329
  </form>
330
- `}function Ct({isOpen:e,conversations:t,conversationsLoading:n,currentConversationId:o,onClose:r,onNewConversation:s,onSwitchConversation:i}){return m`
330
+ `}function St({isOpen:e,conversations:t,conversationsLoading:n,currentConversationId:o,onClose:r,onNewConversation:s,onSwitchConversation:i}){return m`
331
331
  <div class="cw-sidebar ${e?"cw-sidebar-open":""}">
332
332
  <div class="cw-sidebar-header">
333
333
  <span>Conversations</span>
@@ -356,7 +356,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
356
356
  onClick=${()=>i(c.id)}
357
357
  >
358
358
  <div class="cw-conversation-title">${B(c.title||"Untitled")}</div>
359
- <div class="cw-conversation-date">${ht(c.updatedAt||c.createdAt)}</div>
359
+ <div class="cw-conversation-date">${mt(c.updatedAt||c.createdAt)}</div>
360
360
  </div>
361
361
  `)}
362
362
  </div>
@@ -366,7 +366,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
366
366
  class="cw-sidebar-overlay ${e?"cw-sidebar-overlay-visible":""}"
367
367
  onClick=${r}
368
368
  />
369
- `}function St({availableModels:e,selectedModel:t,onSelectModel:n,disabled:o}){let[r,s]=M(!1);if(!e||e.length===0)return null;let c=e.find(u=>u.id===t)?.name||"Select Model",d=()=>{o||s(!r)},l=u=>{n(u),s(!1)};return m`
369
+ `}function Mt({availableModels:e,selectedModel:t,onSelectModel:n,disabled:o}){let[r,s]=M(!1);if(!e||e.length===0)return null;let c=e.find(u=>u.id===t)?.name||"Select Model",d=()=>{o||s(!r)},l=u=>{n(u),s(!1)};return m`
370
370
  <div class="cw-model-selector">
371
371
  <button
372
372
  class="cw-model-btn"
@@ -397,7 +397,7 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
397
397
  </div>
398
398
  `}
399
399
  </div>
400
- `}function Mt(e,t,n){let[o,r]=M([]),[s,i]=M(!1),[c,d]=M(null),[l,u]=M(()=>n?.get(e.conversationIdKey)||null),[a,p]=M(!1),[f,$]=M(!1),[k,g]=M(0),y=G(null),w=G(null);L(()=>{l&&n?.set(e.conversationIdKey,l)},[l,e.conversationIdKey,n]);let A=z(async(v,I,H)=>{y.current&&y.current.close();let E=e.apiPaths.runEvents.replace("{runId}",v),C=`${e.backendUrl}${E}`;I&&(C+=`?anonymous_token=${encodeURIComponent(I)}`);let x=new EventSource(C);y.current=x;let _="";x.addEventListener("assistant.message",S=>{try{let h=JSON.parse(S.data);e.onEvent&&e.onEvent("assistant.message",h.payload);let R=h.payload.content;R&&(_+=R,r(q=>{let X=q[q.length-1];return X?.role==="assistant"&&X.id.startsWith("assistant-stream-")?[...q.slice(0,-1),{...X,content:_}]:[...q,{id:"assistant-stream-"+Date.now(),role:"assistant",content:_,timestamp:new Date,type:"message"}]}))}catch(h){console.error("[ChatWidget] Parse error:",h)}}),x.addEventListener("tool.call",S=>{try{let h=JSON.parse(S.data);e.onEvent&&e.onEvent("tool.call",h.payload),r(R=>[...R,{id:"tool-call-"+Date.now(),role:"assistant",content:`\u{1F527} ${h.payload.name}`,timestamp:new Date,type:"tool_call",metadata:{toolName:h.payload.name,arguments:h.payload.arguments,toolCallId:h.payload.id}}])}catch(h){console.error("[ChatWidget] Parse error:",h)}}),x.addEventListener("tool.result",S=>{try{let h=JSON.parse(S.data);e.onEvent&&e.onEvent("tool.result",h.payload);let R=h.payload.result,q=R?.error;r(X=>[...X,{id:"tool-result-"+Date.now(),role:"system",content:q?`\u274C ${R.error}`:"\u2713 Done",timestamp:new Date,type:"tool_result",metadata:{toolName:h.payload.name,result:R,toolCallId:h.payload.tool_call_id}}])}catch(h){console.error("[ChatWidget] Parse error:",h)}}),x.addEventListener("custom",S=>{try{let h=JSON.parse(S.data);e.onEvent&&e.onEvent("custom",h.payload),h.payload?.type==="ui_control"&&e.onUIControl&&e.onUIControl(h.payload),h.payload?.type==="agent_context"&&r(R=>[...R,{id:"agent-context-"+Date.now(),role:"system",content:`\u{1F517} ${h.payload.agent_name||"Sub-agent"} is now handling this request`,timestamp:new Date,type:"agent_context",metadata:{agentKey:h.payload.agent_key,agentName:h.payload.agent_name,action:h.payload.action}}])}catch(h){console.error("[ChatWidget] Parse error:",h)}}),x.addEventListener("sub_agent.start",S=>{try{let h=JSON.parse(S.data);e.onEvent&&e.onEvent("sub_agent.start",h.payload),r(R=>[...R,{id:"sub-agent-start-"+Date.now(),role:"system",content:`\u{1F517} Delegating to ${h.payload.agent_name||h.payload.sub_agent_key||"sub-agent"}...`,timestamp:new Date,type:"sub_agent_start",metadata:{subAgentKey:h.payload.sub_agent_key,agentName:h.payload.agent_name,invocationMode:h.payload.invocation_mode}}])}catch(h){console.error("[ChatWidget] Parse error:",h)}}),x.addEventListener("sub_agent.end",S=>{try{let h=JSON.parse(S.data);e.onEvent&&e.onEvent("sub_agent.end",h.payload),r(R=>[...R,{id:"sub-agent-end-"+Date.now(),role:"system",content:`\u2713 ${h.payload.agent_name||"Sub-agent"} completed`,timestamp:new Date,type:"sub_agent_end",metadata:{subAgentKey:h.payload.sub_agent_key,agentName:h.payload.agent_name}}])}catch(h){console.error("[ChatWidget] Parse error:",h)}});let T=S=>{try{let h=JSON.parse(S.data);if(e.onEvent&&e.onEvent(h.type,h.payload),h.type==="run.failed"){let R=h.payload.error||"Agent run failed";d(R),r(q=>[...q,{id:"error-"+Date.now(),role:"system",content:`\u274C Error: ${R}`,timestamp:new Date,type:"error"}])}}catch(h){console.error("[ChatWidget] Parse error:",h)}i(!1),x.close(),y.current=null,_&&H&&H(_)};x.addEventListener("run.succeeded",T),x.addEventListener("run.failed",T),x.addEventListener("run.cancelled",T),x.addEventListener("run.timed_out",T),x.onerror=()=>{i(!1),x.close(),y.current=null}},[e]),O=z(async(v,I={},H={})=>{if(!v.trim()||s)return;let E=[],C={};typeof I=="function"?C={onAssistantMessage:I}:Array.isArray(I)?(E=I,C=H):C=I||{};let{model:x,onAssistantMessage:_}=C;i(!0),d(null);let T={id:ve(),role:"user",content:v.trim(),timestamp:new Date,type:"message",files:E.length>0?E.map(S=>({name:S.name,size:S.size,type:S.type})):void 0};r(S=>[...S,T]);try{let S=await t.getOrCreateSession(),h;if(E.length>0){let ee=e.apiCaseStyle!=="camel",Ue=ie=>ee?He(ie):ie,Z=new FormData;Z.append(Ue("agentKey"),e.agentKey),l&&Z.append(Ue("conversationId"),l),Z.append("messages",JSON.stringify([{role:"user",content:v.trim()}])),Z.append("metadata",JSON.stringify(ee?{...e.metadata,journey_type:e.defaultJourneyType}:{...e.metadata,journeyType:e.defaultJourneyType})),x&&Z.append("model",x),E.forEach(ie=>{Z.append("files",ie)}),h=t.getFetchOptions({method:"POST",body:Z},S)}else{let ee=t.transformRequest({agentKey:e.agentKey,conversationId:l,messages:[{role:"user",content:v.trim()}],metadata:{...e.metadata,journeyType:e.defaultJourneyType},...x&&{model:x}});h=t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ee)},S)}let R=await fetch(`${e.backendUrl}${e.apiPaths.runs}`,h);if(!R.ok){let ee=await R.json().catch(()=>({}));throw new Error(ee.error||`HTTP ${R.status}`)}let q=await R.json(),X=t.transformResponse(q);w.current=X.id,!l&&X.conversationId&&u(X.conversationId),await A(X.id,S,_)}catch(S){d(S.message||"Failed to send message"),i(!1)}finally{w.current=null}},[e,t,l,s,A]),J=z(async()=>{let v=w.current;if(!(!v||!s))try{let I=e.apiPaths.cancelRun?e.apiPaths.cancelRun.replace("{runId}",v):`${e.apiPaths.runs}${v}/cancel/`;(await fetch(`${e.backendUrl}${I}`,t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"}}))).ok&&(y.current&&(y.current.close(),y.current=null),i(!1),w.current=null,r(E=>[...E,{id:"cancelled-"+Date.now(),role:"system",content:"\u23F9 Run cancelled",timestamp:new Date,type:"cancelled"}]))}catch(I){console.error("[ChatWidget] Failed to cancel run:",I)}},[e,t,s]),F=z(()=>{r([]),u(null),d(null),p(!1),g(0),n?.set(e.conversationIdKey,null)},[e.conversationIdKey,n]),j=v=>{let I={id:ve(),role:v.role,timestamp:v.timestamp?new Date(v.timestamp):new Date};if(v.role==="tool")return{...I,role:"system",content:"\u2713 Done",type:"tool_result",metadata:{result:v.content,toolCallId:v.toolCallId}};if(v.role==="assistant"&&v.toolCalls&&v.toolCalls.length>0)return v.toolCalls.map(E=>({id:ve(),role:"assistant",content:`\u{1F527} ${E.function?.name||E.name||"tool"}`,timestamp:I.timestamp,type:"tool_call",metadata:{toolName:E.function?.name||E.name,arguments:E.function?.arguments||E.arguments,toolCallId:E.id}}));let H=typeof v.content=="string"?v.content:JSON.stringify(v.content);return v.role==="assistant"&&!H?.trim()?null:{...I,content:H,type:"message"}},V=z(async v=>{i(!0),r([]),u(v);try{let I=await t.getOrCreateSession(),E=`${e.backendUrl}${e.apiPaths.conversations}${v}/?limit=10&offset=0`,C=await fetch(E,t.getFetchOptions({method:"GET"},I));if(C.ok){let x=await C.json(),_=t.transformResponse(x);_.messages&&r(_.messages.flatMap(j).filter(Boolean)),p(_.hasMore||!1),g(_.messages?.length||0)}else C.status===404&&(u(null),n?.set(e.conversationIdKey,null))}catch(I){console.error("[ChatWidget] Failed to load conversation:",I)}finally{i(!1)}},[e,t,n]),K=z(async()=>{if(!(!l||f||!a)){$(!0);try{let v=await t.getOrCreateSession(),H=`${e.backendUrl}${e.apiPaths.conversations}${l}/?limit=10&offset=${k}`,E=await fetch(H,t.getFetchOptions({method:"GET"},v));if(E.ok){let C=await E.json(),x=t.transformResponse(C);if(x.messages?.length>0){let _=x.messages.flatMap(j).filter(Boolean);r(T=>[..._,...T]),g(T=>T+x.messages.length),p(x.hasMore||!1)}else p(!1)}}catch(v){console.error("[ChatWidget] Failed to load more messages:",v)}finally{$(!1)}}},[e,t,l,k,f,a]),b=z(async(v,I,H={})=>{if(s)return;let E=o[v];if(!E||E.role!=="user")return;let C=o.slice(0,v);r(C),await O(I,H)},[o,s,O]),N=z(async(v,I={})=>{if(s)return;let H=o[v];if(!H)return;let E=v,C=H;if(H.role==="assistant"){for(let _=v-1;_>=0;_--)if(o[_].role==="user"){E=_,C=o[_];break}if(C.role!=="user")return}else if(H.role!=="user")return;let x=o.slice(0,E);r(x),await O(C.content,I)},[o,s,O]);return L(()=>()=>{y.current&&y.current.close()},[]),{messages:o,isLoading:s,error:c,conversationId:l,hasMoreMessages:a,loadingMoreMessages:f,sendMessage:O,cancelRun:J,clearMessages:F,loadConversation:V,loadMoreMessages:K,setConversationId:u,editMessage:b,retryMessage:N}}function Tt(e,t,n){let[o,r]=M([]),[s,i]=M(null),[c,d]=M(null),[l,u]=M(!1);L(()=>{(async()=>{if(e.showModelSelector){u(!0);try{let $=await fetch(`${e.backendUrl}${e.apiPaths.models}`,t.getFetchOptions({method:"GET"}));if($.ok){let k=await $.json(),g=k.models||[];r(g),d(k.default);let y=n?.get(e.modelKey);y&&g.some(w=>w.id===y)?i(y):i(k.default)}}catch($){console.warn("[ChatWidget] Failed to load models:",$)}finally{u(!1)}}})()},[e.backendUrl,e.apiPaths.models,e.showModelSelector,e.modelKey,t,n]);let a=z(f=>{i(f),n?.set(e.modelKey,f)},[e.modelKey,n]),p=z(()=>o.find(f=>f.id===s)||null,[o,s]);return{availableModels:o,selectedModel:s,defaultModel:c,isLoading:l,selectModel:a,getSelectedModelInfo:p}}function xt(e,t,n){let o=l=>!l||typeof l!="object"||e.apiCaseStyle==="camel"?l:ye(l),r=l=>!l||typeof l!="object"||e.apiCaseStyle==="snake"?l:ge(l),s=()=>e.authStrategy?e.authStrategy:e.authToken?"token":e.apiPaths.anonymousSession||e.anonymousSessionEndpoint?"anonymous":"none",i=(l=null)=>{let u=s(),a={},p=l||e.authToken||t().authToken;if(u==="token"&&p){let f=e.authHeader||"Authorization",$=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Token";a[f]=$?`${$} ${p}`:p}else if(u==="jwt"&&p){let f=e.authHeader||"Authorization",$=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Bearer";a[f]=$?`${$} ${p}`:p}else if(u==="anonymous"&&p){let f=e.authHeader||e.anonymousTokenHeader||"X-Anonymous-Token";a[f]=p}if(u==="session"){let f=yt(e.csrfCookieName);f&&(a["X-CSRFToken"]=f)}return a};return{getAuthStrategy:s,getAuthHeaders:i,getFetchOptions:(l={},u=null)=>{let a=s(),p={...l};return p.headers={...p.headers,...i(u)},a==="session"&&(p.credentials="include"),p},getOrCreateSession:async()=>{let l=s(),u=t();if(l!=="anonymous")return e.authToken||u.authToken;if(u.authToken)return u.authToken;let a=e.anonymousTokenKey||e.sessionTokenKey,p=u.storage?.get(a);if(p)return n(f=>({...f,authToken:p})),p;try{let f=e.anonymousSessionEndpoint||e.apiPaths.anonymousSession,$=await fetch(`${e.backendUrl}${f}`,{method:"POST",headers:{"Content-Type":"application/json"}});if($.ok){let k=await $.json();return n(g=>({...g,authToken:k.token})),u.storage?.set(a,k.token),k.token}}catch(f){console.warn("[ChatWidget] Failed to create session:",f)}return null},transformRequest:o,transformResponse:r}}function Et({config:e,onStateChange:t,markdownParser:n,apiRef:o}){let[r,s]=M(e.embedded||e.forceOpen===!0),[i,c]=M(!1),[d,l]=M(!1),[u,a]=M(!1),[p,f]=M([]),[$,k]=M(!1),[g,y]=M(e.enableTTS),[w,A]=M(!1),[O,J]=M(null);L(()=>{e.forceOpen!==void 0&&s(e.forceOpen)},[e.forceOpen]);let F=ae(()=>gt(e.containerId),[e.containerId]),[j,V]=M(e.authToken||null),K=ae(()=>xt(e,()=>({authToken:j,storage:F}),S=>{let h=S({authToken:j,storage:F});h.authToken!==j&&V(h.authToken)}),[e,j,F]),b=Mt(e,K,F),N=Tt(e,K,F);L(()=>{for(let _=b.messages.length-1;_>=0;_--){let T=b.messages[_];if(T.type==="sub_agent_start"){J({key:T.metadata?.subAgentKey,name:T.metadata?.agentName});return}if(T.type==="sub_agent_end"){J(null);return}}},[b.messages]),L(()=>{let _=F.get(e.conversationIdKey);_&&b.loadConversation(_)},[]),L(()=>{t&&t({isOpen:r,isExpanded:i,debugMode:d,messages:b.messages,conversationId:b.conversationId,isLoading:b.isLoading,error:b.error})},[r,i,d,b.messages,b.conversationId,b.isLoading,b.error]);let v=z(async()=>{if(e.showConversationSidebar){k(!0);try{let _=`${e.backendUrl}${e.apiPaths.conversations}?agent_key=${encodeURIComponent(e.agentKey)}`,T=await fetch(_,K.getFetchOptions({method:"GET"}));if(T.ok){let S=await T.json();f(S.results||S)}}catch(_){console.error("[ChatWidget] Failed to load conversations:",_),f([])}finally{k(!1)}}},[e,K]),I=z(()=>{let _=!u;a(_),_&&v()},[u,v]),H=z(_=>{_!==b.conversationId&&b.loadConversation(_),a(!1)},[b]),E=z(()=>{b.clearMessages(),a(!1)},[b]),C=z(_=>{b.sendMessage(_,{model:N.selectedModel,onAssistantMessage:T=>{}})},[b,g,N.selectedModel]);if(L(()=>{o&&(o.current={open:()=>s(!0),close:()=>s(!1),send:_=>C(_),clearMessages:()=>b.clearMessages(),toggleTTS:()=>y(_=>!_),stopSpeech:()=>A(!1),setAuth:_=>{_.token!==void 0&&V(_.token)},clearAuth:()=>V(null)})},[b,o,C]),!e.embedded&&!r)return m`
400
+ `}function Tt(e,t,n){let[o,r]=M([]),[s,i]=M(!1),[c,d]=M(null),[l,u]=M(()=>n?.get(e.conversationIdKey)||null),[a,p]=M(!1),[f,$]=M(!1),[k,g]=M(0),v=G(null),w=G(null);L(()=>{l&&n?.set(e.conversationIdKey,l)},[l,e.conversationIdKey,n]);let A=z(async(y,E,H)=>{v.current&&v.current.close();let x=e.apiPaths.runEvents.replace("{runId}",y),C=`${e.backendUrl}${x}`;E&&(C+=`?anonymous_token=${encodeURIComponent(E)}`);let T=new EventSource(C);v.current=T;let _="";T.addEventListener("assistant.message",I=>{try{let h=JSON.parse(I.data);e.onEvent&&e.onEvent("assistant.message",h.payload);let D=h.payload.content;D&&(_+=D,r(q=>{let Q=q[q.length-1];return Q?.role==="assistant"&&Q.id.startsWith("assistant-stream-")?[...q.slice(0,-1),{...Q,content:_}]:[...q,{id:"assistant-stream-"+Date.now(),role:"assistant",content:_,timestamp:new Date,type:"message"}]}))}catch(h){console.error("[ChatWidget] Parse error:",h)}}),T.addEventListener("tool.call",I=>{try{let h=JSON.parse(I.data);e.onEvent&&e.onEvent("tool.call",h.payload),r(D=>[...D,{id:"tool-call-"+Date.now(),role:"assistant",content:`\u{1F527} ${h.payload.name}`,timestamp:new Date,type:"tool_call",metadata:{toolName:h.payload.name,arguments:h.payload.arguments,toolCallId:h.payload.id}}])}catch(h){console.error("[ChatWidget] Parse error:",h)}}),T.addEventListener("tool.result",I=>{try{let h=JSON.parse(I.data);e.onEvent&&e.onEvent("tool.result",h.payload);let D=h.payload.result,q=D?.error;r(Q=>[...Q,{id:"tool-result-"+Date.now(),role:"system",content:q?`\u274C ${D.error}`:"\u2713 Done",timestamp:new Date,type:"tool_result",metadata:{toolName:h.payload.name,result:D,toolCallId:h.payload.tool_call_id}}])}catch(h){console.error("[ChatWidget] Parse error:",h)}}),T.addEventListener("custom",I=>{try{let h=JSON.parse(I.data);e.onEvent&&e.onEvent("custom",h.payload),h.payload?.type==="ui_control"&&e.onUIControl&&e.onUIControl(h.payload),h.payload?.type==="agent_context"&&r(D=>[...D,{id:"agent-context-"+Date.now(),role:"system",content:`\u{1F517} ${h.payload.agent_name||"Sub-agent"} is now handling this request`,timestamp:new Date,type:"agent_context",metadata:{agentKey:h.payload.agent_key,agentName:h.payload.agent_name,action:h.payload.action}}])}catch(h){console.error("[ChatWidget] Parse error:",h)}}),T.addEventListener("sub_agent.start",I=>{try{let h=JSON.parse(I.data);e.onEvent&&e.onEvent("sub_agent.start",h.payload),r(D=>[...D,{id:"sub-agent-start-"+Date.now(),role:"system",content:`\u{1F517} Delegating to ${h.payload.agent_name||h.payload.sub_agent_key||"sub-agent"}...`,timestamp:new Date,type:"sub_agent_start",metadata:{subAgentKey:h.payload.sub_agent_key,agentName:h.payload.agent_name,invocationMode:h.payload.invocation_mode}}])}catch(h){console.error("[ChatWidget] Parse error:",h)}}),T.addEventListener("sub_agent.end",I=>{try{let h=JSON.parse(I.data);e.onEvent&&e.onEvent("sub_agent.end",h.payload),r(D=>[...D,{id:"sub-agent-end-"+Date.now(),role:"system",content:`\u2713 ${h.payload.agent_name||"Sub-agent"} completed`,timestamp:new Date,type:"sub_agent_end",metadata:{subAgentKey:h.payload.sub_agent_key,agentName:h.payload.agent_name}}])}catch(h){console.error("[ChatWidget] Parse error:",h)}});let S=I=>{try{let h=JSON.parse(I.data);if(e.onEvent&&e.onEvent(h.type,h.payload),h.type==="run.failed"){let D=h.payload.error||"Agent run failed";d(D),r(q=>[...q,{id:"error-"+Date.now(),role:"system",content:`\u274C Error: ${D}`,timestamp:new Date,type:"error"}])}}catch(h){console.error("[ChatWidget] Parse error:",h)}i(!1),T.close(),v.current=null,_&&H&&H(_)};T.addEventListener("run.succeeded",S),T.addEventListener("run.failed",S),T.addEventListener("run.cancelled",S),T.addEventListener("run.timed_out",S),T.onerror=()=>{i(!1),T.close(),v.current=null}},[e]),N=z(async(y,E={},H={})=>{if(!y.trim()||s)return;let x=[],C={};typeof E=="function"?C={onAssistantMessage:E}:Array.isArray(E)?(x=E,C=H):C=E||{};let{model:T,onAssistantMessage:_,supersedeFromMessageIndex:S}=C;i(!0),d(null);let I={id:we(),role:"user",content:y.trim(),timestamp:new Date,type:"message",files:x.length>0?x.map(h=>({name:h.name,size:h.size,type:h.type})):void 0};r(h=>[...h,I]);try{let h=await t.getOrCreateSession(),D;if(x.length>0){let ee=e.apiCaseStyle!=="camel",We=le=>ee?Fe(le):le,Z=new FormData;Z.append(We("agentKey"),e.agentKey),l&&Z.append(We("conversationId"),l),Z.append("messages",JSON.stringify([{role:"user",content:y.trim()}])),Z.append("metadata",JSON.stringify(ee?{...e.metadata,journey_type:e.defaultJourneyType}:{...e.metadata,journeyType:e.defaultJourneyType})),T&&Z.append("model",T),x.forEach(le=>{Z.append("files",le)}),D=t.getFetchOptions({method:"POST",body:Z},h)}else{let ee=t.transformRequest({agentKey:e.agentKey,conversationId:l,messages:[{role:"user",content:y.trim()}],metadata:{...e.metadata,journeyType:e.defaultJourneyType},...T&&{model:T},...S!==void 0&&{supersedeFromMessageIndex:S}});D=t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ee)},h)}let q=await fetch(`${e.backendUrl}${e.apiPaths.runs}`,D);if(!q.ok){let ee=await q.json().catch(()=>({}));throw new Error(ee.error||`HTTP ${q.status}`)}let Q=await q.json(),ie=t.transformResponse(Q);w.current=ie.id,!l&&ie.conversationId&&u(ie.conversationId),await A(ie.id,h,_)}catch(h){d(h.message||"Failed to send message"),i(!1)}finally{w.current=null}},[e,t,l,s,A]),J=z(async()=>{let y=w.current;if(!(!y||!s))try{let E=e.apiPaths.cancelRun?e.apiPaths.cancelRun.replace("{runId}",y):`${e.apiPaths.runs}${y}/cancel/`;(await fetch(`${e.backendUrl}${E}`,t.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"}}))).ok&&(v.current&&(v.current.close(),v.current=null),i(!1),w.current=null,r(x=>[...x,{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,s]),O=z(()=>{r([]),u(null),d(null),p(!1),g(0),n?.set(e.conversationIdKey,null)},[e.conversationIdKey,n]),j=y=>{let E={id:we(),role:y.role,timestamp:y.timestamp?new Date(y.timestamp):new Date};if(y.role==="tool")return{...E,role:"system",content:"\u2713 Done",type:"tool_result",metadata:{result:y.content,toolCallId:y.toolCallId}};if(y.role==="assistant"&&y.toolCalls&&y.toolCalls.length>0)return y.toolCalls.map(x=>({id:we(),role:"assistant",content:`\u{1F527} ${x.function?.name||x.name||"tool"}`,timestamp:E.timestamp,type:"tool_call",metadata:{toolName:x.function?.name||x.name,arguments:x.function?.arguments||x.arguments,toolCallId:x.id}}));let H=typeof y.content=="string"?y.content:JSON.stringify(y.content);return y.role==="assistant"&&!H?.trim()?null:{...E,content:H,type:"message"}},V=z(async y=>{i(!0),r([]),u(y);try{let E=await t.getOrCreateSession(),x=`${e.backendUrl}${e.apiPaths.conversations}${y}/?limit=10&offset=0`,C=await fetch(x,t.getFetchOptions({method:"GET"},E));if(C.ok){let T=await C.json(),_=t.transformResponse(T);_.messages&&r(_.messages.flatMap(j).filter(Boolean)),p(_.hasMore||!1),g(_.messages?.length||0)}else C.status===404&&(u(null),n?.set(e.conversationIdKey,null))}catch(E){console.error("[ChatWidget] Failed to load conversation:",E)}finally{i(!1)}},[e,t,n]),K=z(async()=>{if(!(!l||f||!a)){$(!0);try{let y=await t.getOrCreateSession(),H=`${e.backendUrl}${e.apiPaths.conversations}${l}/?limit=10&offset=${k}`,x=await fetch(H,t.getFetchOptions({method:"GET"},y));if(x.ok){let C=await x.json(),T=t.transformResponse(C);if(T.messages?.length>0){let _=T.messages.flatMap(j).filter(Boolean);r(S=>[..._,...S]),g(S=>S+T.messages.length),p(T.hasMore||!1)}else p(!1)}}catch(y){console.error("[ChatWidget] Failed to load more messages:",y)}finally{$(!1)}}},[e,t,l,k,f,a]),b=z(async(y,E,H={})=>{if(s)return;let x=o[y];if(!x||x.role!=="user")return;let C=o.slice(0,y);r(C),await N(E,{...H,supersedeFromMessageIndex:y})},[o,s,N]),F=z(async(y,E={})=>{if(s)return;let H=o[y];if(!H)return;let x=y,C=H;if(H.role==="assistant"){for(let _=y-1;_>=0;_--)if(o[_].role==="user"){x=_,C=o[_];break}if(C.role!=="user")return}else if(H.role!=="user")return;let T=o.slice(0,x);r(T),await N(C.content,{...E,supersedeFromMessageIndex:x})},[o,s,N]);return L(()=>()=>{v.current&&v.current.close()},[]),{messages:o,isLoading:s,error:c,conversationId:l,hasMoreMessages:a,loadingMoreMessages:f,sendMessage:N,cancelRun:J,clearMessages:O,loadConversation:V,loadMoreMessages:K,setConversationId:u,editMessage:b,retryMessage:F}}function xt(e,t,n){let[o,r]=M([]),[s,i]=M(null),[c,d]=M(null),[l,u]=M(!1);L(()=>{(async()=>{if(e.showModelSelector){u(!0);try{let $=await fetch(`${e.backendUrl}${e.apiPaths.models}`,t.getFetchOptions({method:"GET"}));if($.ok){let k=await $.json(),g=k.models||[];r(g),d(k.default);let v=n?.get(e.modelKey);v&&g.some(w=>w.id===v)?i(v):i(k.default)}}catch($){console.warn("[ChatWidget] Failed to load models:",$)}finally{u(!1)}}})()},[e.backendUrl,e.apiPaths.models,e.showModelSelector,e.modelKey,t,n]);let a=z(f=>{i(f),n?.set(e.modelKey,f)},[e.modelKey,n]),p=z(()=>o.find(f=>f.id===s)||null,[o,s]);return{availableModels:o,selectedModel:s,defaultModel:c,isLoading:l,selectModel:a,getSelectedModelInfo:p}}function Et(e,t,n){let o=l=>!l||typeof l!="object"||e.apiCaseStyle==="camel"?l:ve(l),r=l=>!l||typeof l!="object"||e.apiCaseStyle==="snake"?l:ye(l),s=()=>e.authStrategy?e.authStrategy:e.authToken?"token":e.apiPaths.anonymousSession||e.anonymousSessionEndpoint?"anonymous":"none",i=(l=null)=>{let u=s(),a={},p=l||e.authToken||t().authToken;if(u==="token"&&p){let f=e.authHeader||"Authorization",$=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Token";a[f]=$?`${$} ${p}`:p}else if(u==="jwt"&&p){let f=e.authHeader||"Authorization",$=e.authTokenPrefix!==void 0?e.authTokenPrefix:"Bearer";a[f]=$?`${$} ${p}`:p}else if(u==="anonymous"&&p){let f=e.authHeader||e.anonymousTokenHeader||"X-Anonymous-Token";a[f]=p}if(u==="session"){let f=vt(e.csrfCookieName);f&&(a["X-CSRFToken"]=f)}return a};return{getAuthStrategy:s,getAuthHeaders:i,getFetchOptions:(l={},u=null)=>{let a=s(),p={...l};return p.headers={...p.headers,...i(u)},a==="session"&&(p.credentials="include"),p},getOrCreateSession:async()=>{let l=s(),u=t();if(l!=="anonymous")return e.authToken||u.authToken;if(u.authToken)return u.authToken;let a=e.anonymousTokenKey||e.sessionTokenKey,p=u.storage?.get(a);if(p)return n(f=>({...f,authToken:p})),p;try{let f=e.anonymousSessionEndpoint||e.apiPaths.anonymousSession,$=await fetch(`${e.backendUrl}${f}`,{method:"POST",headers:{"Content-Type":"application/json"}});if($.ok){let k=await $.json();return n(g=>({...g,authToken:k.token})),u.storage?.set(a,k.token),k.token}}catch(f){console.warn("[ChatWidget] Failed to create session:",f)}return null},transformRequest:o,transformResponse:r}}function It({config:e,onStateChange:t,markdownParser:n,apiRef:o}){let[r,s]=M(e.embedded||e.forceOpen===!0),[i,c]=M(!1),[d,l]=M(!1),[u,a]=M(!1),[p,f]=M([]),[$,k]=M(!1),[g,v]=M(e.enableTTS),[w,A]=M(!1),[N,J]=M(null);L(()=>{e.forceOpen!==void 0&&s(e.forceOpen)},[e.forceOpen]);let O=ae(()=>yt(e.containerId),[e.containerId]),[j,V]=M(e.authToken||null),K=ae(()=>Et(e,()=>({authToken:j,storage:O}),I=>{let h=I({authToken:j,storage:O});h.authToken!==j&&V(h.authToken)}),[e,j,O]),b=Tt(e,K,O),F=xt(e,K,O);L(()=>{for(let _=b.messages.length-1;_>=0;_--){let S=b.messages[_];if(S.type==="sub_agent_start"){J({key:S.metadata?.subAgentKey,name:S.metadata?.agentName});return}if(S.type==="sub_agent_end"){J(null);return}}},[b.messages]),L(()=>{let _=O.get(e.conversationIdKey);_&&b.loadConversation(_)},[]),L(()=>{t&&t({isOpen:r,isExpanded:i,debugMode:d,messages:b.messages,conversationId:b.conversationId,isLoading:b.isLoading,error:b.error})},[r,i,d,b.messages,b.conversationId,b.isLoading,b.error]);let y=z(async()=>{if(e.showConversationSidebar){k(!0);try{let _=`${e.backendUrl}${e.apiPaths.conversations}?agent_key=${encodeURIComponent(e.agentKey)}`,S=await fetch(_,K.getFetchOptions({method:"GET"}));if(S.ok){let I=await S.json();f(I.results||I)}}catch(_){console.error("[ChatWidget] Failed to load conversations:",_),f([])}finally{k(!1)}}},[e,K]),E=z(()=>{let _=!u;a(_),_&&y()},[u,y]),H=z(_=>{_!==b.conversationId&&b.loadConversation(_),a(!1)},[b]),x=z(()=>{b.clearMessages(),a(!1)},[b]),C=z(_=>{b.sendMessage(_,{model:F.selectedModel,onAssistantMessage:S=>{}})},[b,g,F.selectedModel]);if(L(()=>{o&&(o.current={open:()=>s(!0),close:()=>s(!1),send:_=>C(_),clearMessages:()=>b.clearMessages(),toggleTTS:()=>v(_=>!_),stopSpeech:()=>A(!1),setAuth:_=>{_.token!==void 0&&V(_.token)},clearAuth:()=>V(null)})},[b,o,C]),!e.embedded&&!r)return m`
401
401
  <button
402
402
  class="cw-fab"
403
403
  style=${{backgroundColor:e.primaryColor}}
@@ -407,39 +407,39 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
407
407
  <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>
408
408
  </svg>
409
409
  </button>
410
- `;let x=["cw-widget",i&&"cw-widget-expanded",e.embedded&&"cw-widget-embedded"].filter(Boolean).join(" ");return m`
411
- <div class=${x} style=${{"--cw-primary":e.primaryColor}}>
410
+ `;let T=["cw-widget",i&&"cw-widget-expanded",e.embedded&&"cw-widget-embedded"].filter(Boolean).join(" ");return m`
411
+ <div class=${T} style=${{"--cw-primary":e.primaryColor}}>
412
412
  ${e.showConversationSidebar&&m`
413
- <${Ct}
413
+ <${St}
414
414
  isOpen=${u}
415
415
  conversations=${p}
416
416
  conversationsLoading=${$}
417
417
  currentConversationId=${b.conversationId}
418
418
  onClose=${()=>a(!1)}
419
- onNewConversation=${E}
419
+ onNewConversation=${x}
420
420
  onSwitchConversation=${H}
421
421
  />
422
422
  `}
423
423
 
424
- <${vt}
424
+ <${wt}
425
425
  config=${e}
426
426
  debugMode=${d}
427
427
  isExpanded=${i}
428
428
  isSpeaking=${w}
429
429
  messagesCount=${b.messages.length}
430
430
  isLoading=${b.isLoading}
431
- currentAgent=${O}
431
+ currentAgent=${N}
432
432
  onClose=${()=>s(!1)}
433
433
  onToggleExpand=${()=>c(!i)}
434
434
  onToggleDebug=${()=>l(!d)}
435
- onToggleTTS=${()=>y(!g)}
435
+ onToggleTTS=${()=>v(!g)}
436
436
  onClear=${b.clearMessages}
437
- onToggleSidebar=${I}
437
+ onToggleSidebar=${E}
438
438
  />
439
439
 
440
440
  ${d&&m`<div class="cw-status-bar"><span>🐛 Debug</span></div>`}
441
441
 
442
- <${bt}
442
+ <${kt}
443
443
  messages=${b.messages}
444
444
  isLoading=${b.isLoading}
445
445
  hasMoreMessages=${b.hasMoreMessages}
@@ -455,16 +455,16 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
455
455
 
456
456
  ${b.error&&m`<div class="cw-error-bar">${b.error}</div>`}
457
457
 
458
- ${e.showModelSelector&&N.availableModels.length>0&&m`
459
- <${St}
460
- availableModels=${N.availableModels}
461
- selectedModel=${N.selectedModel}
462
- onSelectModel=${N.selectModel}
458
+ ${e.showModelSelector&&F.availableModels.length>0&&m`
459
+ <${Mt}
460
+ availableModels=${F.availableModels}
461
+ selectedModel=${F.selectedModel}
462
+ onSelectModel=${F.selectModel}
463
463
  disabled=${b.isLoading}
464
464
  />
465
465
  `}
466
466
 
467
- <${kt}
467
+ <${Ct}
468
468
  onSend=${C}
469
469
  onCancel=${b.cancelRun}
470
470
  isLoading=${b.isLoading}
@@ -473,9 +473,9 @@ var ChatWidgetModule=(()=>{var Ce=Object.defineProperty;var Dt=Object.getOwnProp
473
473
  enableVoice=${e.enableVoice}
474
474
  />
475
475
  </div>
476
- `}var It={backendUrl:"http://localhost:8000",agentKey:"default-agent",title:"Chat Assistant",subtitle:"How can we help you today?",primaryColor:"#0066cc",position:"bottom-right",defaultJourneyType:"general",enableDebugMode:!0,enableAutoRun:!0,journeyTypes:{},customerPrompts:{},placeholder:"Type your message...",emptyStateTitle:"Start a Conversation",emptyStateMessage:"Send a message to get started.",authStrategy:null,authToken:null,authHeader:null,authTokenPrefix:null,anonymousSessionEndpoint:null,anonymousTokenKey:"chat_widget_anonymous_token",onAuthError:null,anonymousTokenHeader:"X-Anonymous-Token",conversationIdKey:"chat_widget_conversation_id",sessionTokenKey:"chat_widget_session_token",apiPaths:{anonymousSession:"/api/accounts/anonymous-session/",conversations:"/api/agent-runtime/conversations/",runs:"/api/agent-runtime/runs/",runEvents:"/api/agent-runtime/runs/{runId}/events/",simulateCustomer:"/api/agent-runtime/simulate-customer/",ttsVoices:"/api/tts/voices/",ttsSetVoice:"/api/tts/set-voice/",models:"/api/agent-runtime/models/"},apiCaseStyle:"auto",showConversationSidebar:!0,showClearButton:!0,showDebugButton:!0,showTTSButton:!0,showVoiceSettings:!0,showExpandButton:!0,showModelSelector:!1,enableVoice:!0,modelKey:"chat_widget_selected_model",autoRunDelay:1e3,autoRunMode:"automatic",enableTTS:!1,ttsProxyUrl:null,elevenLabsApiKey:null,ttsVoices:{assistant:null,user:null},ttsModel:"eleven_turbo_v2_5",ttsSettings:{stability:.5,similarity_boost:.75,style:0,use_speaker_boost:!0},availableVoices:[],onEvent:null,containerId:null,embedded:!1,metadata:{}};function At(e){let t={...It.apiPaths,...e.apiPaths||{}};return{...It,...e,apiPaths:t}}var be=new Map,Qt=0,D=null,Fe=class{constructor(t={}){this.instanceId=`cw-${++Qt}`,this.config=At(t),this.container=null,this._state={},this._apiRef={current:null},be.set(this.instanceId,this)}_handleStateChange=t=>{this._state=t};init(){if(this.config.containerId){if(this.container=document.getElementById(this.config.containerId),!this.container)return console.error(`[ChatWidget] Container not found: ${this.config.containerId}`),this;this.container.classList.add("cw-container-embedded")}else this.container=document.createElement("div"),this.container.id=this.instanceId,this.container.className=`cw-container cw-position-${this.config.position}`,document.body.appendChild(this.container);return this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} initialized`),this}_render(t={}){this.container&&he(m`<${Et}
476
+ `}var At={backendUrl:"http://localhost:8000",agentKey:"default-agent",title:"Chat Assistant",subtitle:"How can we help you today?",primaryColor:"#0066cc",position:"bottom-right",defaultJourneyType:"general",enableDebugMode:!0,enableAutoRun:!0,journeyTypes:{},customerPrompts:{},placeholder:"Type your message...",emptyStateTitle:"Start a Conversation",emptyStateMessage:"Send a message to get started.",authStrategy:null,authToken:null,authHeader:null,authTokenPrefix:null,anonymousSessionEndpoint:null,anonymousTokenKey:"chat_widget_anonymous_token",onAuthError:null,anonymousTokenHeader:"X-Anonymous-Token",conversationIdKey:"chat_widget_conversation_id",sessionTokenKey:"chat_widget_session_token",apiPaths:{anonymousSession:"/api/accounts/anonymous-session/",conversations:"/api/agent-runtime/conversations/",runs:"/api/agent-runtime/runs/",runEvents:"/api/agent-runtime/runs/{runId}/events/",simulateCustomer:"/api/agent-runtime/simulate-customer/",ttsVoices:"/api/tts/voices/",ttsSetVoice:"/api/tts/set-voice/",models:"/api/agent-runtime/models/"},apiCaseStyle:"auto",showConversationSidebar:!0,showClearButton:!0,showDebugButton:!0,showTTSButton:!0,showVoiceSettings:!0,showExpandButton:!0,showModelSelector:!1,enableVoice:!0,modelKey:"chat_widget_selected_model",autoRunDelay:1e3,autoRunMode:"automatic",enableTTS:!1,ttsProxyUrl:null,elevenLabsApiKey:null,ttsVoices:{assistant:null,user:null},ttsModel:"eleven_turbo_v2_5",ttsSettings:{stability:.5,similarity_boost:.75,style:0,use_speaker_boost:!0},availableVoices:[],onEvent:null,containerId:null,embedded:!1,metadata:{}};function Rt(e){let t={...At.apiPaths,...e.apiPaths||{}};return{...At,...e,apiPaths:t}}var ke=new Map,Zt=0,R=null,Ue=class{constructor(t={}){this.instanceId=`cw-${++Zt}`,this.config=Rt(t),this.container=null,this._state={},this._apiRef={current:null},ke.set(this.instanceId,this)}_handleStateChange=t=>{this._state=t};init(){if(this.config.containerId){if(this.container=document.getElementById(this.config.containerId),!this.container)return console.error(`[ChatWidget] Container not found: ${this.config.containerId}`),this;this.container.classList.add("cw-container-embedded")}else this.container=document.createElement("div"),this.container.id=this.instanceId,this.container.className=`cw-container cw-position-${this.config.position}`,document.body.appendChild(this.container);return this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} initialized`),this}_render(t={}){this.container&&me(m`<${It}
477
477
  config=${{...this.config,...t}}
478
478
  onStateChange=${this._handleStateChange}
479
- markdownParser=${ke._enhancedMarkdownParser}
479
+ markdownParser=${Ce._enhancedMarkdownParser}
480
480
  apiRef=${this._apiRef}
481
- />`,this.container)}destroy(){this.container&&(he(null,this.container),this.config.containerId?this.container.classList.remove("cw-container-embedded"):this.container.remove(),this.container=null),be.delete(this.instanceId),console.log(`[ChatWidget] Instance ${this.instanceId} destroyed`)}open(){this._apiRef.current?this._apiRef.current.open():this._render({forceOpen:!0})}close(){this._apiRef.current?this._apiRef.current.close():this._render({forceOpen:!1})}send(t){this._apiRef.current&&this._apiRef.current.send(t)}clearMessages(){this._apiRef.current&&this._apiRef.current.clearMessages()}toggleTTS(){this._apiRef.current&&this._apiRef.current.toggleTTS()}stopSpeech(){this._apiRef.current&&this._apiRef.current.stopSpeech()}setAuth(t){this._apiRef.current&&this._apiRef.current.setAuth(t)}clearAuth(){this._apiRef.current&&this._apiRef.current.clearAuth()}getState(){return{...this._state}}getConfig(){return{...this.config}}updateMetadata(t){this.config.metadata={...this.config.metadata,...t},this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} metadata updated:`,t)}updateConfig(t){this.config={...this.config,...t},this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} config updated`)}};function Rt(e={}){return new Fe(e).init()}function Zt(e={}){return D&&D.destroy(),D=Rt(e),D}function Yt(){D&&(D.destroy(),D=null)}function en(){D&&D.open()}function tn(){D&&D.close()}function nn(e){D&&D.send(e)}function on(){D&&D.clearMessages()}function sn(){D&&D.toggleTTS()}function rn(){D&&D.stopSpeech()}function an(e){D&&D.setAuth(e)}function ln(){D&&D.clearAuth()}function cn(){return D?D.getState():null}function un(){return D?D.getConfig():null}var ke={createInstance:Rt,getInstance:e=>be.get(e),getAllInstances:()=>Array.from(be.values()),init:Zt,destroy:Yt,open:en,close:tn,send:nn,clearMessages:on,toggleTTS:sn,stopSpeech:rn,setAuth:an,clearAuth:ln,getState:cn,getConfig:un,_enhancedMarkdownParser:null};var dn=ke;typeof window<"u"&&(window.ChatWidget=ke);return Ft(_n);})();
481
+ />`,this.container)}destroy(){this.container&&(me(null,this.container),this.config.containerId?this.container.classList.remove("cw-container-embedded"):this.container.remove(),this.container=null),ke.delete(this.instanceId),console.log(`[ChatWidget] Instance ${this.instanceId} destroyed`)}open(){this._apiRef.current?this._apiRef.current.open():this._render({forceOpen:!0})}close(){this._apiRef.current?this._apiRef.current.close():this._render({forceOpen:!1})}send(t){this._apiRef.current&&this._apiRef.current.send(t)}clearMessages(){this._apiRef.current&&this._apiRef.current.clearMessages()}toggleTTS(){this._apiRef.current&&this._apiRef.current.toggleTTS()}stopSpeech(){this._apiRef.current&&this._apiRef.current.stopSpeech()}setAuth(t){this._apiRef.current&&this._apiRef.current.setAuth(t)}clearAuth(){this._apiRef.current&&this._apiRef.current.clearAuth()}getState(){return{...this._state}}getConfig(){return{...this.config}}updateMetadata(t){this.config.metadata={...this.config.metadata,...t},this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} metadata updated:`,t)}updateConfig(t){this.config={...this.config,...t},this._render(),console.log(`[ChatWidget] Instance ${this.instanceId} config updated`)}};function Dt(e={}){return new Ue(e).init()}function Yt(e={}){return R&&R.destroy(),R=Dt(e),R}function en(){R&&(R.destroy(),R=null)}function tn(){R&&R.open()}function nn(){R&&R.close()}function on(e){R&&R.send(e)}function sn(){R&&R.clearMessages()}function rn(){R&&R.toggleTTS()}function an(){R&&R.stopSpeech()}function ln(e){R&&R.setAuth(e)}function cn(){R&&R.clearAuth()}function un(){return R?R.getState():null}function dn(){return R?R.getConfig():null}var Ce={createInstance:Dt,getInstance:e=>ke.get(e),getAllInstances:()=>Array.from(ke.values()),init:Yt,destroy:en,open:tn,close:nn,send:on,clearMessages:sn,toggleTTS:rn,stopSpeech:an,setAuth:ln,clearAuth:cn,getState:un,getConfig:dn,_enhancedMarkdownParser:null};var _n=Ce;typeof window<"u"&&(window.ChatWidget=Ce);return Ut(pn);})();