@runtypelabs/persona 1.41.0 → 1.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
- "use strict";var Ri=Object.create;var qn=Object.defineProperty;var Fi=Object.getOwnPropertyDescriptor;var $i=Object.getOwnPropertyNames;var Oi=Object.getPrototypeOf,Ni=Object.prototype.hasOwnProperty;var ji=(e,n)=>{for(var r in n)qn(e,r,{get:n[r],enumerable:!0})},Oo=(e,n,r,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of $i(n))!Ni.call(e,o)&&o!==r&&qn(e,o,{get:()=>n[o],enumerable:!(t=Fi(n,o))||t.enumerable});return e};var Di=(e,n,r)=>(r=e!=null?Ri(Oi(e)):{},Oo(n||!e||!e.__esModule?qn(r,"default",{value:e,enumerable:!0}):r,e)),_i=e=>Oo(qn({},"__esModule",{value:!0}),e);var Ia={};ji(Ia,{AgentWidgetClient:()=>nn,AgentWidgetSession:()=>pn,AttachmentManager:()=>sn,DEFAULT_DARK_THEME:()=>Is,DEFAULT_LIGHT_THEME:()=>Ws,DEFAULT_WIDGET_CONFIG:()=>Oe,VERSION:()=>ln,attachHeaderToContainer:()=>rn,buildComposer:()=>mn,buildDefaultHeader:()=>bs,buildExpandedHeader:()=>xs,buildHeader:()=>Kt,buildHeaderWithLayout:()=>gn,buildMinimalHeader:()=>Cs,componentRegistry:()=>yn,createActionManager:()=>On,createAgentExperience:()=>cs,createBubbleWithLayout:()=>mi,createCSATFeedback:()=>ls,createComponentMiddleware:()=>xi,createComponentStreamParser:()=>rs,createDirectivePostprocessor:()=>qo,createFlexibleJsonStreamParser:()=>Yo,createImagePart:()=>ti,createJsonStreamParser:()=>Vn,createLocalStorageAdapter:()=>ss,createMarkdownProcessor:()=>Pn,createMarkdownProcessorFromConfig:()=>Hn,createMessageActions:()=>Ts,createNPSFeedback:()=>ds,createPlainTextParser:()=>Yn,createRegexJsonParser:()=>Kn,createStandardBubble:()=>hn,createTextPart:()=>Gn,createTypingIndicator:()=>on,createXmlParser:()=>Xn,default:()=>Wa,defaultActionHandlers:()=>an,defaultJsonActionParser:()=>$n,directivePostprocessor:()=>Uo,escapeHtml:()=>Un,extractComponentDirectiveFromMessage:()=>as,fileToImagePart:()=>ni,generateAssistantMessageId:()=>un,generateCodeSnippet:()=>Ii,generateMessageId:()=>Xo,generateUserMessageId:()=>Bn,getDisplayText:()=>Qo,getHeaderLayout:()=>Ss,getImageParts:()=>ei,hasComponentDirective:()=>is,hasImages:()=>Zo,headerLayouts:()=>ts,initAgentWidget:()=>Fs,isComponentDirectiveType:()=>Ci,markdownPostprocessor:()=>ws,mergeWithDefaults:()=>ns,normalizeContent:()=>Go,pluginRegistry:()=>Fn,renderComponentDirective:()=>os,renderLoadingIndicatorWithFallback:()=>As,validateImageFile:()=>si});module.exports=_i(Ia);var jo=require("marked"),qi=e=>{if(e)return e},Pn=e=>{var o,s;let n=e==null?void 0:e.markedOptions,r=new jo.Marked({gfm:(o=n==null?void 0:n.gfm)!=null?o:!0,breaks:(s=n==null?void 0:n.breaks)!=null?s:!0,pedantic:n==null?void 0:n.pedantic,silent:n==null?void 0:n.silent}),t=qi(e==null?void 0:e.renderer);return t&&r.use({renderer:t}),i=>r.parse(i)},Hn=e=>e?Pn({markedOptions:e.options,renderer:e.renderer}):Pn(),Ui=Pn(),ws=e=>Ui(e),Un=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),Do=e=>e.replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),No=e=>`%%FORM_PLACEHOLDER_${e}%%`,_o=(e,n)=>{let r=e;return r=r.replace(/<Directive>([\s\S]*?)<\/Directive>/gi,(t,o)=>{try{let s=JSON.parse(o.trim());if(s&&typeof s=="object"&&s.component==="form"&&s.type){let i=No(n.length);return n.push({token:i,type:String(s.type)}),i}}catch{return t}return t}),r=r.replace(/<Form\s+type="([^"]+)"\s*\/>/gi,(t,o)=>{let s=No(n.length);return n.push({token:s,type:o}),s}),r},qo=e=>{let n=Hn(e);return r=>{let t=[],o=_o(r,t),s=n(o);return t.forEach(({token:i,type:a})=>{let d=new RegExp(i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),f=`<div class="tvw-form-directive" data-tv-form="${Do(a)}"></div>`;s=s.replace(d,f)}),s}},Uo=e=>{let n=[],r=_o(e,n),t=ws(r);return n.forEach(({token:o,type:s})=>{let i=new RegExp(o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),d=`<div class="tvw-form-directive" data-tv-form="${Do(s)}"></div>`;t=t.replace(i,d)}),t};var Yt=require("partial-json"),zn=e=>e.replace(/\\n/g,`
2
- `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\"),ys=e=>{if(e===null)return"null";if(e===void 0)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e,null,2)}catch{return String(e)}},zi=e=>{var i,a;let n=(i=e.completedAt)!=null?i:Date.now(),r=(a=e.startedAt)!=null?a:n,o=(e.durationMs!==void 0?e.durationMs:Math.max(0,n-r))/1e3;return o<.1?"Thought for <0.1 seconds":`Thought for ${o>=10?Math.round(o).toString():o.toFixed(1).replace(/\.0$/,"")} seconds`},zo=e=>e.status==="complete"?zi(e):e.status==="pending"?"Waiting":"",Ji=e=>{var o,s,i;let r=(typeof e.duration=="number"?e.duration:typeof e.durationMs=="number"?e.durationMs:Math.max(0,((o=e.completedAt)!=null?o:Date.now())-((i=(s=e.startedAt)!=null?s:e.completedAt)!=null?i:Date.now())))/1e3;return r<.1?"Used tool for <0.1 seconds":`Used tool for ${r>=10?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")} seconds`};var Jo=e=>e.status==="complete"?Ji(e):"Using tool...",Yi=()=>{let e=null,n=0,r=t=>{let o=/"text"\s*:\s*"((?:[^"\\]|\\.|")*?)"/,s=t.match(o);if(s&&s[1])try{return s[1].replace(/\\n/g,`
1
+ "use strict";var ha=Object.create;var ws=Object.defineProperty;var fa=Object.getOwnPropertyDescriptor;var wa=Object.getOwnPropertyNames;var va=Object.getPrototypeOf,ya=Object.prototype.hasOwnProperty;var ba=(e,n)=>{for(var r in n)ws(e,r,{get:n[r],enumerable:!0})},vi=(e,n,r,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of wa(n))!ya.call(e,o)&&o!==r&&ws(e,o,{get:()=>n[o],enumerable:!(t=fa(n,o))||t.enumerable});return e};var Ca=(e,n,r)=>(r=e!=null?ha(va(e)):{},vi(n||!e||!e.__esModule?ws(r,"default",{value:e,enumerable:!0}):r,e)),xa=e=>vi(ws({},"__esModule",{value:!0}),e);var xl={};ba(xl,{AgentWidgetClient:()=>fn,AgentWidgetSession:()=>Ln,AttachmentManager:()=>vn,DEFAULT_DARK_THEME:()=>lr,DEFAULT_LIGHT_THEME:()=>ar,DEFAULT_WIDGET_CONFIG:()=>et,VERSION:()=>xn,attachHeaderToContainer:()=>yn,buildComposer:()=>Wn,buildDefaultHeader:()=>Xs,buildExpandedHeader:()=>Qs,buildHeader:()=>nn,buildHeaderWithLayout:()=>kn,buildMinimalHeader:()=>Gs,componentRegistry:()=>Rn,createActionManager:()=>os,createAgentExperience:()=>Os,createBubbleWithLayout:()=>Ki,createCSATFeedback:()=>Fs,createComponentMiddleware:()=>na,createComponentStreamParser:()=>Ps,createDirectivePostprocessor:()=>Si,createFlexibleJsonStreamParser:()=>Mi,createImagePart:()=>Bi,createJsonStreamParser:()=>Ss,createLocalStorageAdapter:()=>Is,createMarkdownProcessor:()=>Qn,createMarkdownProcessorFromConfig:()=>Zn,createMessageActions:()=>tr,createNPSFeedback:()=>$s,createPlainTextParser:()=>Cs,createRegexJsonParser:()=>xs,createStandardBubble:()=>In,createTextPart:()=>Es,createTypingIndicator:()=>bn,createXmlParser:()=>As,default:()=>Cl,defaultActionHandlers:()=>Cn,defaultJsonActionParser:()=>rs,directivePostprocessor:()=>Ai,escapeHtml:()=>vs,extractComponentDirectiveFromMessage:()=>Rs,fileToImagePart:()=>Ri,generateAssistantMessageId:()=>wn,generateCodeSnippet:()=>ua,generateMessageId:()=>ki,generateUserMessageId:()=>Mn,getDisplayText:()=>Ii,getHeaderLayout:()=>Zs,getImageParts:()=>Hi,hasComponentDirective:()=>Bs,hasImages:()=>Pi,headerLayouts:()=>ks,initAgentWidget:()=>gr,isComponentDirectiveType:()=>ta,markdownPostprocessor:()=>Js,mergeWithDefaults:()=>Ws,normalizeContent:()=>Wi,pluginRegistry:()=>ss,renderComponentDirective:()=>Hs,renderLoadingIndicatorWithFallback:()=>er,validateImageFile:()=>Fi});module.exports=xa(xl);var bi=require("marked"),Sa=e=>{if(e)return e},Qn=e=>{var o,s;let n=e==null?void 0:e.markedOptions,r=new bi.Marked({gfm:(o=n==null?void 0:n.gfm)!=null?o:!0,breaks:(s=n==null?void 0:n.breaks)!=null?s:!0,pedantic:n==null?void 0:n.pedantic,silent:n==null?void 0:n.silent}),t=Sa(e==null?void 0:e.renderer);return t&&r.use({renderer:t}),i=>r.parse(i)},Zn=e=>e?Qn({markedOptions:e.options,renderer:e.renderer}):Qn(),Aa=Qn(),Js=e=>Aa(e),vs=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),Ci=e=>e.replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),yi=e=>`%%FORM_PLACEHOLDER_${e}%%`,xi=(e,n)=>{let r=e;return r=r.replace(/<Directive>([\s\S]*?)<\/Directive>/gi,(t,o)=>{try{let s=JSON.parse(o.trim());if(s&&typeof s=="object"&&s.component==="form"&&s.type){let i=yi(n.length);return n.push({token:i,type:String(s.type)}),i}}catch{return t}return t}),r=r.replace(/<Form\s+type="([^"]+)"\s*\/>/gi,(t,o)=>{let s=yi(n.length);return n.push({token:s,type:o}),s}),r},Si=e=>{let n=Zn(e);return r=>{let t=[],o=xi(r,t),s=n(o);return t.forEach(({token:i,type:a})=>{let d=new RegExp(i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),v=`<div class="tvw-form-directive" data-tv-form="${Ci(a)}"></div>`;s=s.replace(d,v)}),s}},Ai=e=>{let n=[],r=xi(e,n),t=Js(r);return n.forEach(({token:o,type:s})=>{let i=new RegExp(o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),d=`<div class="tvw-form-directive" data-tv-form="${Ci(s)}"></div>`;t=t.replace(i,d)}),t};var tn=require("partial-json"),ys=e=>e.replace(/\\n/g,`
2
+ `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\"),Ks=e=>{if(e===null)return"null";if(e===void 0)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e,null,2)}catch{return String(e)}},Ea=e=>{var i,a;let n=(i=e.completedAt)!=null?i:Date.now(),r=(a=e.startedAt)!=null?a:n,o=(e.durationMs!==void 0?e.durationMs:Math.max(0,n-r))/1e3;return o<.1?"Thought for <0.1 seconds":`Thought for ${o>=10?Math.round(o).toString():o.toFixed(1).replace(/\.0$/,"")} seconds`},Ei=e=>e.status==="complete"?Ea(e):e.status==="pending"?"Waiting":"",Ta=e=>{var o,s,i;let r=(typeof e.duration=="number"?e.duration:typeof e.durationMs=="number"?e.durationMs:Math.max(0,((o=e.completedAt)!=null?o:Date.now())-((i=(s=e.startedAt)!=null?s:e.completedAt)!=null?i:Date.now())))/1e3;return r<.1?"Used tool for <0.1 seconds":`Used tool for ${r>=10?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")} seconds`};var Ti=e=>e.status==="complete"?Ta(e):"Using tool...",Ma=()=>{let e=null,n=0,r=t=>{let o=/"text"\s*:\s*"((?:[^"\\]|\\.|")*?)"/,s=t.match(o);if(s&&s[1])try{return s[1].replace(/\\n/g,`
3
3
  `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return s[1]}let i=/"text"\s*:\s*"((?:[^"\\]|\\.)*)/,a=t.match(i);if(a&&a[1])try{return a[1].replace(/\\n/g,`
4
- `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return a[1]}return null};return{getExtractedText:()=>e,processChunk:async t=>{if(t.length<=n)return e!==null?{text:e,raw:t}:null;let o=t.trim();if(!o.startsWith("{")&&!o.startsWith("["))return null;let s=r(t);return s!==null&&(e=s),n=t.length,e!==null?{text:e,raw:t}:null},close:async()=>{}}},Jn=e=>{try{let n=JSON.parse(e);if(n&&typeof n=="object"&&typeof n.text=="string")return n.text}catch{return null}return null},Yn=()=>{let e={processChunk:n=>null,getExtractedText:()=>null};return e.__isPlainTextParser=!0,e},Kn=()=>{var n;let e=Yi();return{processChunk:async r=>{let t=r.trim();return!t.startsWith("{")&&!t.startsWith("[")?null:e.processChunk(r)},getExtractedText:e.getExtractedText.bind(e),close:(n=e.close)==null?void 0:n.bind(e)}},Vn=()=>{let e=null,n=0;return{getExtractedText:()=>e,processChunk:r=>{let t=r.trim();if(!t.startsWith("{")&&!t.startsWith("["))return null;if(r.length<=n)return e!==null||e===""?{text:e||"",raw:r}:null;try{let o=(0,Yt.parse)(r,Yt.STR|Yt.OBJ);o&&typeof o=="object"&&(o.component&&typeof o.component=="string"?e=typeof o.text=="string"?zn(o.text):"":o.type==="init"&&o.form?e="":typeof o.text=="string"&&(e=zn(o.text)))}catch{}return n=r.length,e!==null?{text:e,raw:r}:null},close:()=>{}}},Yo=e=>{let n=null,r=0,o=e||(s=>{if(!s||typeof s!="object")return null;let i=a=>typeof a=="string"?zn(a):null;if(s.component&&typeof s.component=="string")return typeof s.text=="string"?zn(s.text):"";if(s.type==="init"&&s.form)return"";if(s.action)switch(s.action){case"nav_then_click":return i(s.on_load_text)||i(s.text)||null;case"message":case"message_and_click":case"checkout":return i(s.text)||null;default:return i(s.text)||i(s.display_text)||i(s.message)||null}return i(s.text)||i(s.display_text)||i(s.message)||i(s.content)||null});return{getExtractedText:()=>n,processChunk:s=>{let i=s.trim();if(!i.startsWith("{")&&!i.startsWith("["))return null;if(s.length<=r)return n!==null?{text:n,raw:s}:null;try{let a=(0,Yt.parse)(s,Yt.STR|Yt.OBJ),d=o(a);d!==null&&(n=d)}catch{}return r=s.length,{text:n||"",raw:s}},close:()=>{}}},Xn=()=>{let e=null;return{processChunk:n=>{if(!n.trim().startsWith("<"))return null;let t=n.match(/<text[^>]*>([\s\S]*?)<\/text>/);return t&&t[1]?(e=t[1],{text:e,raw:n}):null},getExtractedText:()=>e}};var Ki="https://api.runtype.com/v1/dispatch",Ko="https://api.runtype.com",Vo=e=>!!(e.contentParts&&e.contentParts.length>0||e.llmContent&&e.llmContent.trim().length>0||e.rawContent&&e.rawContent.trim().length>0||e.content&&e.content.trim().length>0);function Vi(e){switch(e){case"json":return Vn;case"regex-json":return Kn;case"xml":return Xn;case"plain":default:return Yn}}var nn=class{constructor(n={}){this.config=n;this.clientSession=null;this.sessionInitPromise=null;var r,t,o;this.apiUrl=(r=n.apiUrl)!=null?r:Ki,this.headers={"Content-Type":"application/json",...n.headers},this.debug=!!n.debug,this.createStreamParser=(t=n.streamParser)!=null?t:Vi(n.parserType),this.contextProviders=(o=n.contextProviders)!=null?o:[],this.requestMiddleware=n.requestMiddleware,this.customFetch=n.customFetch,this.parseSSEEvent=n.parseSSEEvent,this.getHeaders=n.getHeaders}isClientTokenMode(){return!!this.config.clientToken}getClientApiUrl(n){var t;let r=((t=this.config.apiUrl)==null?void 0:t.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||Ko;return n==="init"?`${r}/v1/client/init`:`${r}/v1/client/chat`}getClientSession(){return this.clientSession}async initSession(){var n,r;if(!this.isClientTokenMode())throw new Error("initSession() only available in client token mode");if(this.clientSession&&new Date<this.clientSession.expiresAt)return this.clientSession;if(this.sessionInitPromise)return this.sessionInitPromise;this.sessionInitPromise=this._doInitSession();try{let t=await this.sessionInitPromise;return this.clientSession=t,(r=(n=this.config).onSessionInit)==null||r.call(n,t),t}finally{this.sessionInitPromise=null}}async _doInitSession(){var s,i;let n=((i=(s=this.config).getStoredSessionId)==null?void 0:i.call(s))||null,r={token:this.config.clientToken,...this.config.flowId&&{flowId:this.config.flowId},...n&&{sessionId:n}},t=await fetch(this.getClientApiUrl("init"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!t.ok){let a=await t.json().catch(()=>({error:"Session initialization failed"}));throw t.status===401?new Error(`Invalid client token: ${a.hint||a.error}`):t.status===403?new Error(`Origin not allowed: ${a.hint||a.error}`):new Error(a.error||"Failed to initialize session")}let o=await t.json();return this.config.setStoredSessionId&&this.config.setStoredSessionId(o.sessionId),{sessionId:o.sessionId,expiresAt:new Date(o.expiresAt),flow:o.flow,config:{welcomeMessage:o.config.welcomeMessage,placeholder:o.config.placeholder,theme:o.config.theme}}}clearClientSession(){this.clientSession=null,this.sessionInitPromise=null}getFeedbackApiUrl(){var r;return`${((r=this.config.apiUrl)==null?void 0:r.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||Ko}/v1/client/feedback`}async sendFeedback(n){var s,i;if(!this.isClientTokenMode())throw new Error("sendFeedback() only available in client token mode");if(!this.getClientSession())throw new Error("No active session. Please initialize session first.");if(["upvote","downvote","copy"].includes(n.type)&&!n.messageId)throw new Error(`messageId is required for ${n.type} feedback type`);if(n.type==="csat"&&(n.rating===void 0||n.rating<1||n.rating>5))throw new Error("CSAT rating must be between 1 and 5");if(n.type==="nps"&&(n.rating===void 0||n.rating<0||n.rating>10))throw new Error("NPS rating must be between 0 and 10");this.debug&&console.debug("[AgentWidgetClient] sending feedback",n);let o=await fetch(this.getFeedbackApiUrl(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!o.ok){let a=await o.json().catch(()=>({error:"Feedback submission failed"}));throw o.status===401?(this.clientSession=null,(i=(s=this.config).onSessionExpired)==null||i.call(s),new Error("Session expired. Please refresh to continue.")):new Error(a.error||"Failed to submit feedback")}}async submitMessageFeedback(n,r){let t=this.getClientSession();if(!t)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:t.sessionId,messageId:n,type:r})}async submitCSATFeedback(n,r){let t=this.getClientSession();if(!t)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:t.sessionId,type:"csat",rating:n,comment:r})}async submitNPSFeedback(n,r){let t=this.getClientSession();if(!t)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:t.sessionId,type:"nps",rating:n,comment:r})}async dispatch(n,r){return this.isClientTokenMode()?this.dispatchClientToken(n,r):this.dispatchProxy(n,r)}async dispatchClientToken(n,r){var o,s,i,a;let t=new AbortController;n.signal&&n.signal.addEventListener("abort",()=>t.abort()),r({type:"status",status:"connecting"});try{let d=await this.initSession();if(new Date>=new Date(d.expiresAt.getTime()-6e4)){this.clientSession=null,(s=(o=this.config).onSessionExpired)==null||s.call(o);let w=new Error("Session expired. Please refresh to continue.");throw r({type:"error",error:w}),w}let u=await this.buildPayload(n.messages),f=u.metadata?Object.fromEntries(Object.entries(u.metadata).filter(([w])=>w!=="sessionId"&&w!=="session_id")):void 0,p={sessionId:d.sessionId,messages:n.messages.filter(Vo).map(w=>{var A,b,T;return{id:w.id,role:w.role,content:(T=(b=(A=w.contentParts)!=null?A:w.llmContent)!=null?b:w.rawContent)!=null?T:w.content}}),...n.assistantMessageId&&{assistantMessageId:n.assistantMessageId},...f&&Object.keys(f).length>0&&{metadata:f},...u.context&&{context:u.context}};this.debug&&console.debug("[AgentWidgetClient] client token dispatch",p);let m=await fetch(this.getClientApiUrl("chat"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p),signal:t.signal});if(!m.ok){let w=await m.json().catch(()=>({error:"Chat request failed"}));if(m.status===401){this.clientSession=null,(a=(i=this.config).onSessionExpired)==null||a.call(i);let b=new Error("Session expired. Please refresh to continue.");throw r({type:"error",error:b}),b}if(m.status===429){let b=new Error(w.hint||"Message limit reached for this session.");throw r({type:"error",error:b}),b}let A=new Error(w.error||"Failed to send message");throw r({type:"error",error:A}),A}if(!m.body){let w=new Error("No response body received");throw r({type:"error",error:w}),w}r({type:"status",status:"connected"});try{await this.streamResponse(m.body,r,n.assistantMessageId)}finally{r({type:"status",status:"idle"})}}catch(d){let u=d instanceof Error?d:new Error(String(d));throw!u.message.includes("Session expired")&&!u.message.includes("Message limit")&&r({type:"error",error:u}),u}}async dispatchProxy(n,r){let t=new AbortController;n.signal&&n.signal.addEventListener("abort",()=>t.abort()),r({type:"status",status:"connecting"});let o=await this.buildPayload(n.messages);this.debug&&console.debug("[AgentWidgetClient] dispatch payload",o);let s={...this.headers};if(this.getHeaders)try{let a=await this.getHeaders();s={...s,...a}}catch(a){typeof console!="undefined"&&console.error("[AgentWidget] getHeaders error:",a)}let i;if(this.customFetch)try{i=await this.customFetch(this.apiUrl,{method:"POST",headers:s,body:JSON.stringify(o),signal:t.signal},o)}catch(a){let d=a instanceof Error?a:new Error(String(a));throw r({type:"error",error:d}),d}else i=await fetch(this.apiUrl,{method:"POST",headers:s,body:JSON.stringify(o),signal:t.signal});if(!i.ok||!i.body){let a=new Error(`Chat backend request failed: ${i.status} ${i.statusText}`);throw r({type:"error",error:a}),a}r({type:"status",status:"connected"});try{await this.streamResponse(i.body,r)}finally{r({type:"status",status:"idle"})}}async buildPayload(n){let t={messages:n.slice().filter(Vo).sort((o,s)=>{let i=new Date(o.createdAt).getTime(),a=new Date(s.createdAt).getTime();return i-a}).map(o=>{var s,i,a;return{role:o.role,content:(a=(i=(s=o.contentParts)!=null?s:o.llmContent)!=null?i:o.rawContent)!=null?a:o.content,createdAt:o.createdAt}}),...this.config.flowId&&{flowId:this.config.flowId}};if(this.contextProviders.length){let o={};await Promise.all(this.contextProviders.map(async s=>{try{let i=await s({messages:n,config:this.config});i&&typeof i=="object"&&Object.assign(o,i)}catch(i){typeof console!="undefined"&&console.warn("[AgentWidget] Context provider failed:",i)}})),Object.keys(o).length&&(t.context=o)}if(this.requestMiddleware)try{let o=await this.requestMiddleware({payload:{...t},config:this.config});if(o&&typeof o=="object")return o}catch(o){typeof console!="undefined"&&console.error("[AgentWidget] Request middleware error:",o)}return t}async handleCustomSSEEvent(n,r,t,o,s){if(!this.parseSSEEvent)return!1;try{let i=await this.parseSSEEvent(n);if(i===null)return!1;let a=()=>{if(t.current)return t.current;let d={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"assistant",sequence:s()};return t.current=d,o(d),d};if(i.text!==void 0){let d=a();d.content+=i.text,o(d)}return i.done&&(t.current&&(t.current.streaming=!1,o(t.current)),r({type:"status",status:"idle"})),i.error&&r({type:"error",error:new Error(i.error)}),!0}catch(i){return typeof console!="undefined"&&console.error("[AgentWidget] parseSSEEvent error:",i),!1}}async streamResponse(n,r,t){var oe,ie,Le,Ye,bt,Q,D,gt,Ct,xt,Ot,Nt,_,Se,it,at,Xe,lt,zt,jt,Dt,R,Ke,ye,tt,ve,G,ae,Ge,dt,At,Wt,It,Pe,nt,Lt,Tt,ct,v,Te,je,mt,st,ht,ft,Pt,Zt,en,Nn,jn,Cn,dn,ke,xn,Sn,Jt;let o=n.getReader(),s=new TextDecoder,i="",a=Date.now(),d=0,u=()=>a+d++,f=H=>{let ge=H.reasoning?{...H.reasoning,chunks:[...H.reasoning.chunks]}:void 0,Me=H.toolCall?{...H.toolCall,chunks:H.toolCall.chunks?[...H.toolCall.chunks]:void 0}:void 0,He=H.tools?H.tools.map(Be=>({...Be,chunks:Be.chunks?[...Be.chunks]:void 0})):void 0;return{...H,reasoning:ge,toolCall:Me,tools:He}},p=H=>{r({type:"message",message:f(H)})},m=null,w={current:null},A=new Map,b=new Map,T={lastId:null,byStep:new Map},y={lastId:null,byCall:new Map},L=H=>{if(H==null)return null;try{return String(H)}catch{return null}},U=H=>{var ge,Me,He,Be,rt;return L((rt=(Be=(He=(Me=(ge=H.stepId)!=null?ge:H.step_id)!=null?Me:H.step)!=null?He:H.parentId)!=null?Be:H.flowStepId)!=null?rt:H.flow_step_id)},h=H=>{var ge,Me,He,Be,rt,De,F;return L((F=(De=(rt=(Be=(He=(Me=(ge=H.callId)!=null?ge:H.call_id)!=null?Me:H.requestId)!=null?He:H.request_id)!=null?Be:H.toolCallId)!=null?rt:H.tool_call_id)!=null?De:H.stepId)!=null?F:H.step_id)},O=()=>m||(m={id:t!=null?t:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:u()},p(m),m),M=(H,ge)=>{T.lastId=ge,H&&T.byStep.set(H,ge)},W=(H,ge)=>{var rt;let Me=(rt=H.reasoningId)!=null?rt:H.id,He=U(H);if(Me){let De=String(Me);return M(He,De),De}if(He){let De=T.byStep.get(He);if(De)return T.lastId=De,De}if(T.lastId&&!ge)return T.lastId;if(!ge)return null;let Be=`reason-${u()}`;return M(He,Be),Be},V=H=>{let ge=A.get(H);if(ge)return ge;let Me={id:`reason-${H}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"reasoning",sequence:u(),reasoning:{id:H,status:"streaming",chunks:[]}};return A.set(H,Me),p(Me),Me},$=(H,ge)=>{y.lastId=ge,H&&y.byCall.set(H,ge)},Z=(H,ge)=>{var rt;let Me=(rt=H.toolId)!=null?rt:H.id,He=h(H);if(Me){let De=String(Me);return $(He,De),De}if(He){let De=y.byCall.get(He);if(De)return y.lastId=De,De}if(y.lastId&&!ge)return y.lastId;if(!ge)return null;let Be=`tool-${u()}`;return $(He,Be),Be},le=H=>{let ge=b.get(H);if(ge)return ge;let Me={id:`tool-${H}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"tool",sequence:u(),toolCall:{id:H,status:"pending"}};return b.set(H,Me),p(Me),Me},z=H=>{if(typeof H=="number"&&Number.isFinite(H))return H;if(typeof H=="string"){let ge=Number(H);if(!Number.isNaN(ge)&&Number.isFinite(ge))return ge;let Me=Date.parse(H);if(!Number.isNaN(Me))return Me}return Date.now()},xe=H=>{if(typeof H=="string")return H;if(H==null)return"";try{return JSON.stringify(H)}catch{return String(H)}},B=new Map,N=new Map;for(;;){let{done:H,value:ge}=await o.read();if(H)break;i+=s.decode(ge,{stream:!0});let Me=i.split(`
4
+ `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return a[1]}return null};return{getExtractedText:()=>e,processChunk:async t=>{if(t.length<=n)return e!==null?{text:e,raw:t}:null;let o=t.trim();if(!o.startsWith("{")&&!o.startsWith("["))return null;let s=r(t);return s!==null&&(e=s),n=t.length,e!==null?{text:e,raw:t}:null},close:async()=>{}}},bs=e=>{try{let n=JSON.parse(e);if(n&&typeof n=="object"&&typeof n.text=="string")return n.text}catch{return null}return null},Cs=()=>{let e={processChunk:n=>null,getExtractedText:()=>null};return e.__isPlainTextParser=!0,e},xs=()=>{var n;let e=Ma();return{processChunk:async r=>{let t=r.trim();return!t.startsWith("{")&&!t.startsWith("[")?null:e.processChunk(r)},getExtractedText:e.getExtractedText.bind(e),close:(n=e.close)==null?void 0:n.bind(e)}},Ss=()=>{let e=null,n=0;return{getExtractedText:()=>e,processChunk:r=>{let t=r.trim();if(!t.startsWith("{")&&!t.startsWith("["))return null;if(r.length<=n)return e!==null||e===""?{text:e||"",raw:r}:null;try{let o=(0,tn.parse)(r,tn.STR|tn.OBJ);o&&typeof o=="object"&&(o.component&&typeof o.component=="string"?e=typeof o.text=="string"?ys(o.text):"":o.type==="init"&&o.form?e="":typeof o.text=="string"&&(e=ys(o.text)))}catch{}return n=r.length,e!==null?{text:e,raw:r}:null},close:()=>{}}},Mi=e=>{let n=null,r=0,o=e||(s=>{if(!s||typeof s!="object")return null;let i=a=>typeof a=="string"?ys(a):null;if(s.component&&typeof s.component=="string")return typeof s.text=="string"?ys(s.text):"";if(s.type==="init"&&s.form)return"";if(s.action)switch(s.action){case"nav_then_click":return i(s.on_load_text)||i(s.text)||null;case"message":case"message_and_click":case"checkout":return i(s.text)||null;default:return i(s.text)||i(s.display_text)||i(s.message)||null}return i(s.text)||i(s.display_text)||i(s.message)||i(s.content)||null});return{getExtractedText:()=>n,processChunk:s=>{let i=s.trim();if(!i.startsWith("{")&&!i.startsWith("["))return null;if(s.length<=r)return n!==null?{text:n,raw:s}:null;try{let a=(0,tn.parse)(s,tn.STR|tn.OBJ),d=o(a);d!==null&&(n=d)}catch{}return r=s.length,{text:n||"",raw:s}},close:()=>{}}},As=()=>{let e=null;return{processChunk:n=>{if(!n.trim().startsWith("<"))return null;let t=n.match(/<text[^>]*>([\s\S]*?)<\/text>/);return t&&t[1]?(e=t[1],{text:e,raw:n}):null},getExtractedText:()=>e}};var La="https://api.runtype.com/v1/dispatch",Li="https://api.runtype.com",Ys=e=>!!(e.contentParts&&e.contentParts.length>0||e.llmContent&&e.llmContent.trim().length>0||e.rawContent&&e.rawContent.trim().length>0||e.content&&e.content.trim().length>0);function ka(e){switch(e){case"json":return Ss;case"regex-json":return xs;case"xml":return As;case"plain":default:return Cs}}var fn=class{constructor(n={}){this.config=n;this.clientSession=null;this.sessionInitPromise=null;var r,t,o;this.apiUrl=(r=n.apiUrl)!=null?r:La,this.headers={"Content-Type":"application/json",...n.headers},this.debug=!!n.debug,this.createStreamParser=(t=n.streamParser)!=null?t:ka(n.parserType),this.contextProviders=(o=n.contextProviders)!=null?o:[],this.requestMiddleware=n.requestMiddleware,this.customFetch=n.customFetch,this.parseSSEEvent=n.parseSSEEvent,this.getHeaders=n.getHeaders}setSSEEventCallback(n){this.onSSEEvent=n}isClientTokenMode(){return!!this.config.clientToken}isAgentMode(){return!!this.config.agent}getClientApiUrl(n){var t;let r=((t=this.config.apiUrl)==null?void 0:t.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||Li;return n==="init"?`${r}/v1/client/init`:`${r}/v1/client/chat`}getClientSession(){return this.clientSession}async initSession(){var n,r;if(!this.isClientTokenMode())throw new Error("initSession() only available in client token mode");if(this.clientSession&&new Date<this.clientSession.expiresAt)return this.clientSession;if(this.sessionInitPromise)return this.sessionInitPromise;this.sessionInitPromise=this._doInitSession();try{let t=await this.sessionInitPromise;return this.clientSession=t,(r=(n=this.config).onSessionInit)==null||r.call(n,t),t}finally{this.sessionInitPromise=null}}async _doInitSession(){var s,i;let n=((i=(s=this.config).getStoredSessionId)==null?void 0:i.call(s))||null,r={token:this.config.clientToken,...this.config.flowId&&{flowId:this.config.flowId},...n&&{sessionId:n}},t=await fetch(this.getClientApiUrl("init"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!t.ok){let a=await t.json().catch(()=>({error:"Session initialization failed"}));throw t.status===401?new Error(`Invalid client token: ${a.hint||a.error}`):t.status===403?new Error(`Origin not allowed: ${a.hint||a.error}`):new Error(a.error||"Failed to initialize session")}let o=await t.json();return this.config.setStoredSessionId&&this.config.setStoredSessionId(o.sessionId),{sessionId:o.sessionId,expiresAt:new Date(o.expiresAt),flow:o.flow,config:{welcomeMessage:o.config.welcomeMessage,placeholder:o.config.placeholder,theme:o.config.theme}}}clearClientSession(){this.clientSession=null,this.sessionInitPromise=null}getFeedbackApiUrl(){var r;return`${((r=this.config.apiUrl)==null?void 0:r.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||Li}/v1/client/feedback`}async sendFeedback(n){var s,i;if(!this.isClientTokenMode())throw new Error("sendFeedback() only available in client token mode");if(!this.getClientSession())throw new Error("No active session. Please initialize session first.");if(["upvote","downvote","copy"].includes(n.type)&&!n.messageId)throw new Error(`messageId is required for ${n.type} feedback type`);if(n.type==="csat"&&(n.rating===void 0||n.rating<1||n.rating>5))throw new Error("CSAT rating must be between 1 and 5");if(n.type==="nps"&&(n.rating===void 0||n.rating<0||n.rating>10))throw new Error("NPS rating must be between 0 and 10");this.debug&&console.debug("[AgentWidgetClient] sending feedback",n);let o=await fetch(this.getFeedbackApiUrl(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!o.ok){let a=await o.json().catch(()=>({error:"Feedback submission failed"}));throw o.status===401?(this.clientSession=null,(i=(s=this.config).onSessionExpired)==null||i.call(s),new Error("Session expired. Please refresh to continue.")):new Error(a.error||"Failed to submit feedback")}}async submitMessageFeedback(n,r){let t=this.getClientSession();if(!t)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:t.sessionId,messageId:n,type:r})}async submitCSATFeedback(n,r){let t=this.getClientSession();if(!t)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:t.sessionId,type:"csat",rating:n,comment:r})}async submitNPSFeedback(n,r){let t=this.getClientSession();if(!t)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:t.sessionId,type:"nps",rating:n,comment:r})}async dispatch(n,r){return this.isAgentMode()?this.dispatchAgent(n,r):this.isClientTokenMode()?this.dispatchClientToken(n,r):this.dispatchProxy(n,r)}async dispatchClientToken(n,r){var o,s,i,a;let t=new AbortController;n.signal&&n.signal.addEventListener("abort",()=>t.abort()),r({type:"status",status:"connecting"});try{let d=await this.initSession();if(new Date>=new Date(d.expiresAt.getTime()-6e4)){this.clientSession=null,(s=(o=this.config).onSessionExpired)==null||s.call(o);let w=new Error("Session expired. Please refresh to continue.");throw r({type:"error",error:w}),w}let g=await this.buildPayload(n.messages),v=g.metadata?Object.fromEntries(Object.entries(g.metadata).filter(([w])=>w!=="sessionId"&&w!=="session_id")):void 0,c={sessionId:d.sessionId,messages:n.messages.filter(Ys).map(w=>{var C,b,A;return{id:w.id,role:w.role,content:(A=(b=(C=w.contentParts)!=null?C:w.llmContent)!=null?b:w.rawContent)!=null?A:w.content}}),...n.assistantMessageId&&{assistantMessageId:n.assistantMessageId},...v&&Object.keys(v).length>0&&{metadata:v},...g.context&&{context:g.context}};this.debug&&console.debug("[AgentWidgetClient] client token dispatch",c);let m=await fetch(this.getClientApiUrl("chat"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c),signal:t.signal});if(!m.ok){let w=await m.json().catch(()=>({error:"Chat request failed"}));if(m.status===401){this.clientSession=null,(a=(i=this.config).onSessionExpired)==null||a.call(i);let b=new Error("Session expired. Please refresh to continue.");throw r({type:"error",error:b}),b}if(m.status===429){let b=new Error(w.hint||"Message limit reached for this session.");throw r({type:"error",error:b}),b}let C=new Error(w.error||"Failed to send message");throw r({type:"error",error:C}),C}if(!m.body){let w=new Error("No response body received");throw r({type:"error",error:w}),w}r({type:"status",status:"connected"});try{await this.streamResponse(m.body,r,n.assistantMessageId)}finally{r({type:"status",status:"idle"})}}catch(d){let g=d instanceof Error?d:new Error(String(d));throw!g.message.includes("Session expired")&&!g.message.includes("Message limit")&&r({type:"error",error:g}),g}}async dispatchProxy(n,r){let t=new AbortController;n.signal&&n.signal.addEventListener("abort",()=>t.abort()),r({type:"status",status:"connecting"});let o=await this.buildPayload(n.messages);this.debug&&console.debug("[AgentWidgetClient] dispatch payload",o);let s={...this.headers};if(this.getHeaders)try{let a=await this.getHeaders();s={...s,...a}}catch(a){typeof console!="undefined"&&console.error("[AgentWidget] getHeaders error:",a)}let i;if(this.customFetch)try{i=await this.customFetch(this.apiUrl,{method:"POST",headers:s,body:JSON.stringify(o),signal:t.signal},o)}catch(a){let d=a instanceof Error?a:new Error(String(a));throw r({type:"error",error:d}),d}else i=await fetch(this.apiUrl,{method:"POST",headers:s,body:JSON.stringify(o),signal:t.signal});if(!i.ok||!i.body){let a=new Error(`Chat backend request failed: ${i.status} ${i.statusText}`);throw r({type:"error",error:a}),a}r({type:"status",status:"connected"});try{await this.streamResponse(i.body,r)}finally{r({type:"status",status:"idle"})}}async dispatchAgent(n,r){let t=new AbortController;n.signal&&n.signal.addEventListener("abort",()=>t.abort()),r({type:"status",status:"connecting"});let o=await this.buildAgentPayload(n.messages);this.debug&&console.debug("[AgentWidgetClient] agent dispatch payload",o);let s={...this.headers};if(this.getHeaders)try{let a=await this.getHeaders();s={...s,...a}}catch(a){typeof console!="undefined"&&console.error("[AgentWidget] getHeaders error:",a)}let i;if(this.customFetch)try{i=await this.customFetch(this.apiUrl,{method:"POST",headers:s,body:JSON.stringify(o),signal:t.signal},o)}catch(a){let d=a instanceof Error?a:new Error(String(a));throw r({type:"error",error:d}),d}else i=await fetch(this.apiUrl,{method:"POST",headers:s,body:JSON.stringify(o),signal:t.signal});if(!i.ok||!i.body){let a=new Error(`Agent execution request failed: ${i.status} ${i.statusText}`);throw r({type:"error",error:a}),a}r({type:"status",status:"connected"});try{await this.streamResponse(i.body,r,n.assistantMessageId)}finally{r({type:"status",status:"idle"})}}async buildAgentPayload(n){if(!this.config.agent)throw new Error("Agent configuration required for agent mode");let r=n.slice().filter(Ys).filter(o=>o.role==="user"||o.role==="assistant"||o.role==="system").filter(o=>!o.variant||o.variant==="assistant").sort((o,s)=>{let i=new Date(o.createdAt).getTime(),a=new Date(s.createdAt).getTime();return i-a}).map(o=>{var s,i,a;return{role:o.role,content:(a=(i=(s=o.contentParts)!=null?s:o.llmContent)!=null?i:o.rawContent)!=null?a:o.content,createdAt:o.createdAt}}),t={agent:this.config.agent,messages:r,options:{streamResponse:!0,recordMode:"virtual",...this.config.agentOptions}};if(this.contextProviders.length){let o={};await Promise.all(this.contextProviders.map(async s=>{try{let i=await s({messages:n,config:this.config});i&&typeof i=="object"&&Object.assign(o,i)}catch(i){typeof console!="undefined"&&console.warn("[AgentWidget] Context provider failed:",i)}})),Object.keys(o).length&&(t.context=o)}return t}async buildPayload(n){let t={messages:n.slice().filter(Ys).sort((o,s)=>{let i=new Date(o.createdAt).getTime(),a=new Date(s.createdAt).getTime();return i-a}).map(o=>{var s,i,a;return{role:o.role,content:(a=(i=(s=o.contentParts)!=null?s:o.llmContent)!=null?i:o.rawContent)!=null?a:o.content,createdAt:o.createdAt}}),...this.config.flowId&&{flowId:this.config.flowId}};if(this.contextProviders.length){let o={};await Promise.all(this.contextProviders.map(async s=>{try{let i=await s({messages:n,config:this.config});i&&typeof i=="object"&&Object.assign(o,i)}catch(i){typeof console!="undefined"&&console.warn("[AgentWidget] Context provider failed:",i)}})),Object.keys(o).length&&(t.context=o)}if(this.requestMiddleware)try{let o=await this.requestMiddleware({payload:{...t},config:this.config});if(o&&typeof o=="object")return o}catch(o){typeof console!="undefined"&&console.error("[AgentWidget] Request middleware error:",o)}return t}async handleCustomSSEEvent(n,r,t,o,s){if(!this.parseSSEEvent)return!1;try{let i=await this.parseSSEEvent(n);if(i===null)return!1;let a=()=>{if(t.current)return t.current;let d={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"assistant",sequence:s()};return t.current=d,o(d),d};if(i.text!==void 0){let d=a();d.content+=i.text,o(d)}return i.done&&(t.current&&(t.current.streaming=!1,o(t.current)),r({type:"status",status:"idle"})),i.error&&r({type:"error",error:new Error(i.error)}),!0}catch(i){return typeof console!="undefined"&&console.error("[AgentWidget] parseSSEEvent error:",i),!1}}async streamResponse(n,r,t){var ce,Ue,Tt,Mt,$t,Ie,ye,ee,ue,Pe,tt,Et,pe,J,ct,ut,ft,Ot,wt,V,Me,vt,yt,Q,Fe,bt,Wt,Lt,j,Qe,Ae,z,F,ge,de,te,xe,$e,_,ie,ke,Ke,it,pt,Nt,On,rn,Jt,$,on,Vt,dn,Nn,Xt,Gt,Sn,An,is,as,ls,Dn,En,Ye,jn,_n,Qt,ds,cs,qn,cn,Zt,us,ps,gs,zs,un,pn,nt,Tn,zn,Un,Jn,Ht,Dt,en;let o=n.getReader(),s=new TextDecoder,i="",a=Date.now(),d=0,g=()=>a+d++,v=B=>{let Ee=B.reasoning?{...B.reasoning,chunks:[...B.reasoning.chunks]}:void 0,He=B.toolCall?{...B.toolCall,chunks:B.toolCall.chunks?[...B.toolCall.chunks]:void 0}:void 0,Je=B.tools?B.tools.map(Ct=>({...Ct,chunks:Ct.chunks?[...Ct.chunks]:void 0})):void 0;return{...B,reasoning:Ee,toolCall:He,tools:Je}},c=B=>{r({type:"message",message:v(B)})},m=null,w={current:null},C=new Map,b=new Map,A={lastId:null,byStep:new Map},x={lastId:null,byCall:new Map},W=B=>{if(B==null)return null;try{return String(B)}catch{return null}},Y=B=>{var Ee,He,Je,Ct,xt;return W((xt=(Ct=(Je=(He=(Ee=B.stepId)!=null?Ee:B.step_id)!=null?He:B.step)!=null?Je:B.parentId)!=null?Ct:B.flowStepId)!=null?xt:B.flow_step_id)},f=B=>{var Ee,He,Je,Ct,xt,st,y;return W((y=(st=(xt=(Ct=(Je=(He=(Ee=B.callId)!=null?Ee:B.call_id)!=null?He:B.requestId)!=null?Je:B.request_id)!=null?Ct:B.toolCallId)!=null?xt:B.tool_call_id)!=null?st:B.stepId)!=null?y:B.step_id)},R=()=>m||(m={id:t!=null?t:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:g()},c(m),m),T=(B,Ee)=>{A.lastId=Ee,B&&A.byStep.set(B,Ee)},P=(B,Ee)=>{var xt;let He=(xt=B.reasoningId)!=null?xt:B.id,Je=Y(B);if(He){let st=String(He);return T(Je,st),st}if(Je){let st=A.byStep.get(Je);if(st)return A.lastId=st,st}if(A.lastId&&!Ee)return A.lastId;if(!Ee)return null;let Ct=`reason-${g()}`;return T(Je,Ct),Ct},X=B=>{let Ee=C.get(B);if(Ee)return Ee;let He={id:`reason-${B}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"reasoning",sequence:g(),reasoning:{id:B,status:"streaming",chunks:[]}};return C.set(B,He),c(He),He},O=(B,Ee)=>{x.lastId=Ee,B&&x.byCall.set(B,Ee)},se=(B,Ee)=>{var xt;let He=(xt=B.toolId)!=null?xt:B.id,Je=f(B);if(He){let st=String(He);return O(Je,st),st}if(Je){let st=x.byCall.get(Je);if(st)return x.lastId=st,st}if(x.lastId&&!Ee)return x.lastId;if(!Ee)return null;let Ct=`tool-${g()}`;return O(Je,Ct),Ct},G=B=>{let Ee=b.get(B);if(Ee)return Ee;let He={id:`tool-${B}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"tool",sequence:g(),toolCall:{id:B,status:"pending"}};return b.set(B,He),c(He),He},U=B=>{if(typeof B=="number"&&Number.isFinite(B))return B;if(typeof B=="string"){let Ee=Number(B);if(!Number.isNaN(Ee)&&Number.isFinite(Ee))return Ee;let He=Date.parse(B);if(!Number.isNaN(He))return He}return Date.now()},ve=B=>{if(typeof B=="string")return B;if(B==null)return"";try{return JSON.stringify(B)}catch{return String(B)}},N=new Map,re=new Map,D=null,Z=new Map,fe=(ce=this.config.iterationDisplay)!=null?ce:"separate";for(;;){let{done:B,value:Ee}=await o.read();if(B)break;i+=s.decode(Ee,{stream:!0});let He=i.split(`
5
5
 
6
- `);i=(oe=Me.pop())!=null?oe:"";for(let He of Me){let Be=He.split(`
7
- `),rt="message",De="";for(let ne of Be)ne.startsWith("event:")?rt=ne.replace("event:","").trim():ne.startsWith("data:")&&(De+=ne.replace("data:","").trim());if(!De)continue;let F;try{F=JSON.parse(De)}catch(ne){r({type:"error",error:ne instanceof Error?ne:new Error("Failed to parse chat stream payload")});continue}let Ht=rt!=="message"?rt:(ie=F.type)!=null?ie:"message";if(this.parseSSEEvent){w.current=m;let ne=await this.handleCustomSSEEvent(F,r,w,p,u);if(w.current&&!m&&(m=w.current),ne)continue}if(Ht==="reason_start"){let ne=(Le=W(F,!0))!=null?Le:`reason-${u()}`,P=V(ne);P.reasoning=(Ye=P.reasoning)!=null?Ye:{id:ne,status:"streaming",chunks:[]},P.reasoning.startedAt=(Q=P.reasoning.startedAt)!=null?Q:z((bt=F.startedAt)!=null?bt:F.timestamp),P.reasoning.completedAt=void 0,P.reasoning.durationMs=void 0,P.streaming=!0,P.reasoning.status="streaming",p(P)}else if(Ht==="reason_chunk"){let ne=(gt=(D=W(F,!1))!=null?D:W(F,!0))!=null?gt:`reason-${u()}`,P=V(ne);P.reasoning=(Ct=P.reasoning)!=null?Ct:{id:ne,status:"streaming",chunks:[]},P.reasoning.startedAt=(Ot=P.reasoning.startedAt)!=null?Ot:z((xt=F.startedAt)!=null?xt:F.timestamp);let C=(Se=(_=(Nt=F.reasoningText)!=null?Nt:F.text)!=null?_:F.delta)!=null?Se:"";if(C&&F.hidden!==!0&&P.reasoning.chunks.push(String(C)),P.reasoning.status=F.done?"complete":"streaming",F.done){P.reasoning.completedAt=z((it=F.completedAt)!=null?it:F.timestamp);let J=(at=P.reasoning.startedAt)!=null?at:Date.now();P.reasoning.durationMs=Math.max(0,((Xe=P.reasoning.completedAt)!=null?Xe:Date.now())-J)}P.streaming=P.reasoning.status!=="complete",p(P)}else if(Ht==="reason_complete"){let ne=(zt=(lt=W(F,!1))!=null?lt:W(F,!0))!=null?zt:`reason-${u()}`,P=A.get(ne);if(P!=null&&P.reasoning){P.reasoning.status="complete",P.reasoning.completedAt=z((jt=F.completedAt)!=null?jt:F.timestamp);let J=(Dt=P.reasoning.startedAt)!=null?Dt:Date.now();P.reasoning.durationMs=Math.max(0,((R=P.reasoning.completedAt)!=null?R:Date.now())-J),P.streaming=!1,p(P)}let C=U(F);C&&T.byStep.delete(C)}else if(Ht==="tool_start"){let ne=(Ke=Z(F,!0))!=null?Ke:`tool-${u()}`,P=le(ne),C=(ye=P.toolCall)!=null?ye:{id:ne,status:"pending"};C.name=(tt=F.toolName)!=null?tt:C.name,C.status="running",F.args!==void 0&&(C.args=F.args),C.startedAt=(G=C.startedAt)!=null?G:z((ve=F.startedAt)!=null?ve:F.timestamp),C.completedAt=void 0,C.durationMs=void 0,P.toolCall=C,P.streaming=!0,p(P)}else if(Ht==="tool_chunk"){let ne=(Ge=(ae=Z(F,!1))!=null?ae:Z(F,!0))!=null?Ge:`tool-${u()}`,P=le(ne),C=(dt=P.toolCall)!=null?dt:{id:ne,status:"running"};C.startedAt=(Wt=C.startedAt)!=null?Wt:z((At=F.startedAt)!=null?At:F.timestamp);let J=(nt=(Pe=(It=F.text)!=null?It:F.delta)!=null?Pe:F.message)!=null?nt:"";J&&(C.chunks=(Lt=C.chunks)!=null?Lt:[],C.chunks.push(String(J))),C.status="running",P.toolCall=C,P.streaming=!0,p(P)}else if(Ht==="tool_complete"){let ne=(ct=(Tt=Z(F,!1))!=null?Tt:Z(F,!0))!=null?ct:`tool-${u()}`,P=le(ne),C=(v=P.toolCall)!=null?v:{id:ne,status:"running"};if(C.status="complete",F.result!==void 0&&(C.result=F.result),typeof F.duration=="number"&&(C.duration=F.duration),C.completedAt=z((Te=F.completedAt)!=null?Te:F.timestamp),typeof F.duration=="number")C.durationMs=F.duration;else{let Re=(je=C.startedAt)!=null?je:Date.now();C.durationMs=Math.max(0,((mt=C.completedAt)!=null?mt:Date.now())-Re)}P.toolCall=C,P.streaming=!1,p(P);let J=h(F);J&&y.byCall.delete(J)}else if(Ht==="step_chunk"){let ne=F.stepType,P=F.executionType;if(ne==="tool"||P==="context")continue;let C=O(),J=(Pt=(ft=(ht=(st=F.text)!=null?st:F.delta)!=null?ht:F.content)!=null?ft:F.chunk)!=null?Pt:"";if(J){let Fe=((Zt=N.get(C.id))!=null?Zt:"")+J;C.rawContent=Fe,B.has(C.id)||B.set(C.id,this.createStreamParser());let wt=B.get(C.id),he=Fe.trim().startsWith("{")||Fe.trim().startsWith("[");if(he&&N.set(C.id,Fe),wt.__isPlainTextParser===!0){C.content+=J,N.delete(C.id),B.delete(C.id),C.rawContent=void 0,p(C);continue}let $e=wt.processChunk(Fe);if($e instanceof Promise)$e.then(de=>{var Ne;let Ee=typeof de=="string"?de:(Ne=de==null?void 0:de.text)!=null?Ne:null;if(Ee!==null&&Ee.trim()!==""){let ue=m;ue&&ue.id===C.id&&(ue.content=Ee,p(ue))}else if(!he&&!Fe.trim().startsWith("<")){let ue=m;ue&&ue.id===C.id&&(ue.content+=J,N.delete(ue.id),B.delete(ue.id),ue.rawContent=void 0,p(ue))}}).catch(()=>{C.content+=J,N.delete(C.id),B.delete(C.id),C.rawContent=void 0,p(C)});else{let de=typeof $e=="string"?$e:(en=$e==null?void 0:$e.text)!=null?en:null;de!==null&&de.trim()!==""?(C.content=de,p(C)):!he&&!Fe.trim().startsWith("<")&&(C.content+=J,N.delete(C.id),B.delete(C.id),C.rawContent=void 0,p(C))}}if(F.isComplete){let Re=(jn=(Nn=F.result)==null?void 0:Nn.response)!=null?jn:C.content;if(Re){let Fe=N.get(C.id),wt=Fe!=null?Fe:xe(Re);C.rawContent=wt;let he=B.get(C.id),We=null,$e=!1;if(he&&(We=he.getExtractedText(),We===null&&(We=Jn(wt)),We===null)){let de=he.processChunk(wt);de instanceof Promise?($e=!0,de.then(Ee=>{var ue;let Ne=typeof Ee=="string"?Ee:(ue=Ee==null?void 0:Ee.text)!=null?ue:null;if(Ne!==null){let et=m;et&&et.id===C.id&&(et.content=Ne,et.streaming=!1,B.delete(et.id),N.delete(et.id),p(et))}})):We=typeof de=="string"?de:(Cn=de==null?void 0:de.text)!=null?Cn:null}if(!$e){We!==null&&We.trim()!==""?C.content=We:N.has(C.id)||(C.content=xe(Re));let de=B.get(C.id);if(de){let Ee=(dn=de.close)==null?void 0:dn.call(de);Ee instanceof Promise&&Ee.catch(()=>{}),B.delete(C.id)}N.delete(C.id),C.streaming=!1,p(C)}}}}else if(Ht==="step_complete"){let ne=F.stepType,P=F.executionType;if(ne==="tool"||P==="context")continue;let C=(ke=F.result)==null?void 0:ke.response,J=O();if(C!=null){let Re=B.get(J.id),Fe=!1,wt=!1;if(Re){let he=Re.getExtractedText(),We=N.get(J.id),$e=We!=null?We:xe(C);if(J.rawContent=$e,he!==null&&he.trim()!=="")J.content=he,Fe=!0;else{let de=Jn($e);if(de!==null)J.content=de,Fe=!0;else{let Ee=Re.processChunk($e);if(Ee instanceof Promise)wt=!0,Ee.then(Ne=>{var et;let ue=typeof Ne=="string"?Ne:(et=Ne==null?void 0:Ne.text)!=null?et:null;if(ue!==null&&ue.trim()!==""){let yt=m;yt&&yt.id===J.id&&(yt.content=ue,yt.streaming=!1,B.delete(yt.id),N.delete(yt.id),p(yt))}else{let yt=Re.getExtractedText(),Bt=m;Bt&&Bt.id===J.id&&(yt!==null&&yt.trim()!==""?Bt.content=yt:N.has(Bt.id)||(Bt.content=xe(C)),Bt.streaming=!1,B.delete(Bt.id),N.delete(Bt.id),p(Bt))}});else{let Ne=typeof Ee=="string"?Ee:(xn=Ee==null?void 0:Ee.text)!=null?xn:null;if(Ne!==null&&Ne.trim()!=="")J.content=Ne,Fe=!0;else{let ue=Re.getExtractedText();ue!==null&&ue.trim()!==""&&(J.content=ue,Fe=!0)}}}}}if(!wt){if(!J.rawContent){let he=N.get(J.id);J.rawContent=he!=null?he:xe(C)}if(!Fe&&!N.has(J.id)&&(J.content=xe(C)),Re){let he=(Sn=Re.close)==null?void 0:Sn.call(Re);he instanceof Promise&&he.catch(()=>{})}B.delete(J.id),N.delete(J.id),J.streaming=!1,p(J)}}else B.delete(J.id),N.delete(J.id),J.streaming=!1,p(J)}else if(Ht==="flow_complete"){let ne=(Jt=F.result)==null?void 0:Jt.response;if(ne!=null){let P=O(),C=N.get(P.id),J=C!=null?C:xe(ne);P.rawContent=J;let Re=xe(ne),Fe=B.get(P.id);if(Fe){let We=Jn(J);if(We!==null)Re=We;else{let $e=Fe.processChunk(J);$e instanceof Promise&&$e.then(Ee=>{var ue;let Ne=typeof Ee=="string"?Ee:(ue=Ee==null?void 0:Ee.text)!=null?ue:null;if(Ne!==null){let et=m;et&&et.id===P.id&&(et.content=Ne,et.streaming=!1,p(et))}});let de=Fe.getExtractedText();de!==null&&(Re=de)}}B.delete(P.id),N.delete(P.id);let wt=Re!==P.content,he=P.streaming!==!1;wt&&(P.content=Re),P.streaming=!1,(wt||he)&&p(P)}else if(m!==null){let P=m;B.delete(P.id),N.delete(P.id),P.streaming!==!1&&(P.streaming=!1,p(P))}r({type:"status",status:"idle"})}else Ht==="error"&&F.error&&r({type:"error",error:F.error instanceof Error?F.error:new Error(String(F.error))})}}}};function Xo(){let e=Date.now().toString(36),n=Math.random().toString(36).substring(2,10);return`msg_${e}_${n}`}function Bn(){let e=Date.now().toString(36),n=Math.random().toString(36).substring(2,10);return`usr_${e}_${n}`}function un(){let e=Date.now().toString(36),n=Math.random().toString(36).substring(2,10);return`ast_${e}_${n}`}var pn=class{constructor(n={},r){this.config=n;this.callbacks=r;this.status="idle";this.streaming=!1;this.abortController=null;this.sequenceCounter=Date.now();this.clientSession=null;this.handleEvent=n=>{var r,t;n.type==="message"?this.upsertMessage(n.message):n.type==="status"?(this.setStatus(n.status),n.status==="connecting"?this.setStreaming(!0):(n.status==="idle"||n.status==="error")&&(this.setStreaming(!1),this.abortController=null)):n.type==="error"&&(this.setStatus("error"),this.setStreaming(!1),this.abortController=null,(t=(r=this.callbacks).onError)==null||t.call(r,n.error))};var t;this.messages=[...(t=n.initialMessages)!=null?t:[]].map(o=>{var s;return{...o,sequence:(s=o.sequence)!=null?s:this.nextSequence()}}),this.messages=this.sortMessages(this.messages),this.client=new nn(n),this.messages.length&&this.callbacks.onMessagesChanged([...this.messages]),this.callbacks.onStatusChanged(this.status)}isClientTokenMode(){return this.client.isClientTokenMode()}async initClientSession(){var n,r;if(!this.isClientTokenMode())return null;try{let t=await this.client.initSession();return this.setClientSession(t),t}catch(t){return(r=(n=this.callbacks).onError)==null||r.call(n,t instanceof Error?t:new Error(String(t))),null}}setClientSession(n){if(this.clientSession=n,n.config.welcomeMessage&&this.messages.length===0){let r={id:`welcome-${Date.now()}`,role:"assistant",content:n.config.welcomeMessage,createdAt:new Date().toISOString(),sequence:this.nextSequence()};this.appendMessage(r)}}getClientSession(){var n;return(n=this.clientSession)!=null?n:this.client.getClientSession()}isSessionValid(){let n=this.getClientSession();return n?new Date<n.expiresAt:!1}clearClientSession(){this.clientSession=null,this.client.clearClientSession()}getClient(){return this.client}async submitMessageFeedback(n,r){return this.client.submitMessageFeedback(n,r)}async submitCSATFeedback(n,r){return this.client.submitCSATFeedback(n,r)}async submitNPSFeedback(n,r){return this.client.submitNPSFeedback(n,r)}updateConfig(n){this.config={...this.config,...n},this.client=new nn(this.config)}getMessages(){return[...this.messages]}getStatus(){return this.status}isStreaming(){return this.streaming}injectTestEvent(n){this.handleEvent(n)}injectMessage(n){let{role:r,content:t,llmContent:o,contentParts:s,id:i,createdAt:a,sequence:d,streaming:u=!1}=n,p={id:i!=null?i:r==="user"?Bn():r==="assistant"?un():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:r,content:t,createdAt:a!=null?a:new Date().toISOString(),sequence:d!=null?d:this.nextSequence(),streaming:u,...o!==void 0&&{llmContent:o},...s!==void 0&&{contentParts:s}};return this.upsertMessage(p),p}injectAssistantMessage(n){return this.injectMessage({...n,role:"assistant"})}injectUserMessage(n){return this.injectMessage({...n,role:"user"})}injectSystemMessage(n){return this.injectMessage({...n,role:"system"})}async sendMessage(n,r){var u,f,p,m,w;let t=n.trim();if(!t&&(!(r!=null&&r.contentParts)||r.contentParts.length===0))return;(u=this.abortController)==null||u.abort();let o=Bn(),s=un(),i={id:o,role:"user",content:t||"[Image]",createdAt:new Date().toISOString(),sequence:this.nextSequence(),viaVoice:(r==null?void 0:r.viaVoice)||!1,...(r==null?void 0:r.contentParts)&&r.contentParts.length>0&&{contentParts:r.contentParts}};this.appendMessage(i),this.setStreaming(!0);let a=new AbortController;this.abortController=a;let d=[...this.messages];try{await this.client.dispatch({messages:d,signal:a.signal,assistantMessageId:s},this.handleEvent)}catch(A){let b=A instanceof Error&&(A.name==="AbortError"||A.message.includes("aborted")||A.message.includes("abort"));if(!b){let T={id:s,role:"assistant",createdAt:new Date().toISOString(),content:"It looks like the proxy isn't returning a real response yet. Here's a sample message so you can continue testing locally.",sequence:this.nextSequence()};this.appendMessage(T)}this.setStatus("idle"),this.setStreaming(!1),this.abortController=null,b||(A instanceof Error?(p=(f=this.callbacks).onError)==null||p.call(f,A):(w=(m=this.callbacks).onError)==null||w.call(m,new Error(String(A))))}}async continueConversation(){var o,s,i,a,d;if(this.streaming)return;(o=this.abortController)==null||o.abort();let n=un();this.setStreaming(!0);let r=new AbortController;this.abortController=r;let t=[...this.messages];try{await this.client.dispatch({messages:t,signal:r.signal,assistantMessageId:n},this.handleEvent)}catch(u){let f={id:n,role:"assistant",createdAt:new Date().toISOString(),content:"It looks like the proxy isn't returning a real response yet. Here's a sample message so you can continue testing locally.",sequence:this.nextSequence()};this.appendMessage(f),this.setStatus("idle"),this.setStreaming(!1),this.abortController=null,u instanceof Error?(i=(s=this.callbacks).onError)==null||i.call(s,u):(d=(a=this.callbacks).onError)==null||d.call(a,new Error(String(u)))}}cancel(){var n;(n=this.abortController)==null||n.abort(),this.abortController=null,this.setStreaming(!1),this.setStatus("idle")}clearMessages(){var n;(n=this.abortController)==null||n.abort(),this.abortController=null,this.messages=[],this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}hydrateMessages(n){var r;(r=this.abortController)==null||r.abort(),this.abortController=null,this.messages=this.sortMessages(n.map(t=>{var o;return{...t,streaming:!1,sequence:(o=t.sequence)!=null?o:this.nextSequence()}})),this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}setStatus(n){this.status!==n&&(this.status=n,this.callbacks.onStatusChanged(n))}setStreaming(n){this.streaming!==n&&(this.streaming=n,this.callbacks.onStreamingChanged(n))}appendMessage(n){let r=this.ensureSequence(n);this.messages=this.sortMessages([...this.messages,r]),this.callbacks.onMessagesChanged([...this.messages])}upsertMessage(n){let r=this.ensureSequence(n),t=this.messages.findIndex(o=>o.id===r.id);if(t===-1){this.appendMessage(r);return}this.messages=this.messages.map((o,s)=>s===t?{...o,...r}:o),this.messages=this.sortMessages(this.messages),this.callbacks.onMessagesChanged([...this.messages])}ensureSequence(n){return n.sequence!==void 0?{...n}:{...n,sequence:this.nextSequence()}}nextSequence(){return this.sequenceCounter++}sortMessages(n){return[...n].sort((r,t)=>{var d,u;let o=new Date(r.createdAt).getTime(),s=new Date(t.createdAt).getTime();if(!Number.isNaN(o)&&!Number.isNaN(s)&&o!==s)return o-s;let i=(d=r.sequence)!=null?d:0,a=(u=t.sequence)!=null?u:0;return i!==a?i-a:r.id.localeCompare(t.id)})}};var g=(e,n)=>{let r=document.createElement(e);return n&&(r.className=n),r};var Xi=Di(require("lucide"),1),re=(e,n=24,r="currentColor",t=2)=>{try{let o=e.split("-").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(""),s=Xi[o];return s?Gi(s,n,r,t):(console.warn(`Lucide icon "${e}" not found (tried "${o}"). Available icons: https://lucide.dev/icons`),null)}catch(o){return console.warn(`Failed to render Lucide icon "${e}":`,o),null}};function Gi(e,n,r,t){if(!e||!Array.isArray(e))return null;let o=document.createElementNS("http://www.w3.org/2000/svg","svg");return o.setAttribute("width",String(n)),o.setAttribute("height",String(n)),o.setAttribute("viewBox","0 0 24 24"),o.setAttribute("fill","none"),o.setAttribute("stroke",r),o.setAttribute("stroke-width",String(t)),o.setAttribute("stroke-linecap","round"),o.setAttribute("stroke-linejoin","round"),o.setAttribute("aria-hidden","true"),e.forEach(s=>{if(Array.isArray(s)&&s.length>=2){let i=s[0],a=s[1];if(a){let d=document.createElementNS("http://www.w3.org/2000/svg",i);Object.entries(a).forEach(([u,f])=>{u!=="stroke"&&d.setAttribute(u,String(f))}),o.appendChild(d)}}}),o}function Go(e){return typeof e=="string"?[{type:"text",text:e}]:e}function Qo(e){return typeof e=="string"?e:e.filter(n=>n.type==="text").map(n=>n.text).join("")}function Zo(e){return typeof e=="string"?!1:e.some(n=>n.type==="image")}function ei(e){return typeof e=="string"?[]:e.filter(n=>n.type==="image")}function Gn(e){return{type:"text",text:e}}function ti(e,n){return{type:"image",image:e,...(n==null?void 0:n.mimeType)&&{mimeType:n.mimeType},...(n==null?void 0:n.alt)&&{alt:n.alt}}}async function ni(e){return new Promise((n,r)=>{let t=new FileReader;t.onload=()=>{let o=t.result;n({type:"image",image:o,mimeType:e.type,alt:e.name})},t.onerror=()=>r(new Error("Failed to read file")),t.readAsDataURL(e)})}function si(e,n=["image/png","image/jpeg","image/gif","image/webp"],r=10*1024*1024){return n.includes(e.type)?e.size>r?{valid:!1,error:`File too large. Maximum size: ${Math.round(r/1048576)}MB`}:{valid:!0}:{valid:!1,error:`Invalid file type. Accepted types: ${n.join(", ")}`}}var ri=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml","image/bmp"],Qi=["application/pdf","text/plain","text/markdown","text/csv","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/json"],Qt=[...ri,...Qi];function Zi(e){return ri.includes(e)||e.startsWith("image/")}function Qn(e){return Zi(e.type)}async function oi(e){return new Promise((n,r)=>{let t=new FileReader;t.onload=()=>{let o=t.result;Qn(e)?n({type:"image",image:o,mimeType:e.type,alt:e.name}):n({type:"file",data:o,mimeType:e.type,filename:e.name})},t.onerror=()=>r(new Error("Failed to read file")),t.readAsDataURL(e)})}function ii(e,n=Qt,r=10*1024*1024){return n.includes(e.type)?e.size>r?{valid:!1,error:`File too large. Maximum size: ${Math.round(r/1048576)}MB`}:{valid:!0}:{valid:!1,error:`Invalid file type "${e.type}". Accepted types: ${n.join(", ")}`}}function ea(e){let n=e.split(".");return n.length>1?n.pop().toLowerCase():""}function ai(e,n){let r=ea(n).toUpperCase();return{"application/pdf":"PDF","text/plain":"TXT","text/markdown":"MD","text/csv":"CSV","application/msword":"DOC","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"DOCX","application/vnd.ms-excel":"XLS","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"XLSX","application/json":"JSON"}[e]||r||"FILE"}var Zn={allowedTypes:Qt,maxFileSize:10*1024*1024,maxFiles:4};function ta(){return`attach_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function na(e){return e==="application/pdf"||e.startsWith("text/")||e.includes("word")?"file-text":e.includes("excel")||e.includes("spreadsheet")?"file-spreadsheet":e==="application/json"?"file-json":"file"}var sn=class e{constructor(n={}){this.attachments=[];this.previewsContainer=null;var r,t,o;this.config={allowedTypes:(r=n.allowedTypes)!=null?r:Zn.allowedTypes,maxFileSize:(t=n.maxFileSize)!=null?t:Zn.maxFileSize,maxFiles:(o=n.maxFiles)!=null?o:Zn.maxFiles,onFileRejected:n.onFileRejected,onAttachmentsChange:n.onAttachmentsChange}}setPreviewsContainer(n){this.previewsContainer=n}updateConfig(n){n.allowedTypes!==void 0&&(this.config.allowedTypes=n.allowedTypes.length>0?n.allowedTypes:Zn.allowedTypes),n.maxFileSize!==void 0&&(this.config.maxFileSize=n.maxFileSize),n.maxFiles!==void 0&&(this.config.maxFiles=n.maxFiles),n.onFileRejected!==void 0&&(this.config.onFileRejected=n.onFileRejected),n.onAttachmentsChange!==void 0&&(this.config.onAttachmentsChange=n.onAttachmentsChange)}getAttachments(){return[...this.attachments]}getContentParts(){return this.attachments.map(n=>n.contentPart)}hasAttachments(){return this.attachments.length>0}count(){return this.attachments.length}async handleFileSelect(n){var t,o,s,i,a,d,u;if(!n||n.length===0)return;let r=Array.from(n);for(let f of r){if(this.attachments.length>=this.config.maxFiles){(o=(t=this.config).onFileRejected)==null||o.call(t,f,"count");continue}let p=ii(f,this.config.allowedTypes,this.config.maxFileSize);if(!p.valid){let m=(s=p.error)!=null&&s.includes("type")?"type":"size";(a=(i=this.config).onFileRejected)==null||a.call(i,f,m);continue}try{let m=await oi(f),w=Qn(f)?URL.createObjectURL(f):null,A={id:ta(),file:f,previewUrl:w,contentPart:m};this.attachments.push(A),this.renderPreview(A)}catch(m){console.error("[AttachmentManager] Failed to process file:",m)}}this.updatePreviewsVisibility(),(u=(d=this.config).onAttachmentsChange)==null||u.call(d,this.getAttachments())}removeAttachment(n){var s,i,a;let r=this.attachments.findIndex(d=>d.id===n);if(r===-1)return;let t=this.attachments[r];t.previewUrl&&URL.revokeObjectURL(t.previewUrl),this.attachments.splice(r,1);let o=(s=this.previewsContainer)==null?void 0:s.querySelector(`[data-attachment-id="${n}"]`);o&&o.remove(),this.updatePreviewsVisibility(),(a=(i=this.config).onAttachmentsChange)==null||a.call(i,this.getAttachments())}clearAttachments(){var n,r;for(let t of this.attachments)t.previewUrl&&URL.revokeObjectURL(t.previewUrl);this.attachments=[],this.previewsContainer&&(this.previewsContainer.innerHTML=""),this.updatePreviewsVisibility(),(r=(n=this.config).onAttachmentsChange)==null||r.call(n,this.getAttachments())}renderPreview(n){if(!this.previewsContainer)return;let r=Qn(n.file),t=g("div","tvw-attachment-preview tvw-relative tvw-inline-block");if(t.setAttribute("data-attachment-id",n.id),t.style.width="48px",t.style.height="48px",r&&n.previewUrl){let i=g("img");i.src=n.previewUrl,i.alt=n.file.name,i.className="tvw-w-full tvw-h-full tvw-object-cover tvw-rounded-lg tvw-border tvw-border-gray-200",i.style.width="48px",i.style.height="48px",i.style.objectFit="cover",i.style.borderRadius="8px",t.appendChild(i)}else{let i=g("div");i.style.width="48px",i.style.height="48px",i.style.borderRadius="8px",i.style.backgroundColor="var(--cw-container, #f3f4f6)",i.style.border="1px solid var(--cw-border, #e5e7eb)",i.style.display="flex",i.style.flexDirection="column",i.style.alignItems="center",i.style.justifyContent="center",i.style.gap="2px",i.style.overflow="hidden";let a=na(n.file.type),d=re(a,20,"var(--cw-muted, #6b7280)",1.5);d&&i.appendChild(d);let u=g("span");u.textContent=ai(n.file.type,n.file.name),u.style.fontSize="8px",u.style.fontWeight="600",u.style.color="var(--cw-muted, #6b7280)",u.style.textTransform="uppercase",u.style.lineHeight="1",i.appendChild(u),t.appendChild(i)}let o=g("button","tvw-attachment-remove tvw-absolute tvw-flex tvw-items-center tvw-justify-center");o.type="button",o.setAttribute("aria-label","Remove attachment"),o.style.position="absolute",o.style.top="-4px",o.style.right="-4px",o.style.width="18px",o.style.height="18px",o.style.borderRadius="50%",o.style.backgroundColor="rgba(0, 0, 0, 0.6)",o.style.border="none",o.style.cursor="pointer",o.style.display="flex",o.style.alignItems="center",o.style.justifyContent="center",o.style.padding="0";let s=re("x",10,"#ffffff",2);s?o.appendChild(s):(o.textContent="\xD7",o.style.color="#ffffff",o.style.fontSize="14px",o.style.lineHeight="1"),o.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),this.removeAttachment(n.id)}),t.appendChild(o),this.previewsContainer.appendChild(t)}updatePreviewsVisibility(){this.previewsContainer&&(this.previewsContainer.style.display=this.attachments.length>0?"flex":"none")}static fromConfig(n,r){return new e({allowedTypes:n==null?void 0:n.allowedTypes,maxFileSize:n==null?void 0:n.maxFileSize,maxFiles:n==null?void 0:n.maxFiles,onFileRejected:n==null?void 0:n.onFileRejected,onAttachmentsChange:r})}};var vs=()=>{var e;return typeof document!="undefined"&&document.documentElement.classList.contains("dark")||typeof window!="undefined"&&((e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches)?"dark":"light"},sa=e=>{var s,i,a;let n=(s=e==null?void 0:e.colorScheme)!=null?s:"light",r=(i=e==null?void 0:e.theme)!=null?i:{},t=(a=e==null?void 0:e.darkTheme)!=null?a:r;return n==="light"?r:n==="dark"||vs()==="dark"?t:r},li=e=>{let n=[];if(typeof document!="undefined"&&typeof MutationObserver!="undefined"){let r=new MutationObserver(()=>{e(vs())});r.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),n.push(()=>r.disconnect())}if(typeof window!="undefined"&&window.matchMedia){let r=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>e(vs());r.addEventListener?(r.addEventListener("change",t),n.push(()=>r.removeEventListener("change",t))):r.addListener&&(r.addListener(t),n.push(()=>r.removeListener(t)))}return()=>{n.forEach(r=>r())}},es=(e,n)=>{let r=sa(n);Object.entries(r).forEach(([t,o])=>{if(o==null||o==="")return;let s=t.replace(/[A-Z]/g,i=>`-${i.toLowerCase()}`);e.style.setProperty(`--cw-${s}`,String(o))})};var di=require("idiomorph"),ci=(e,n,r={})=>{let{preserveTypingAnimation:t=!0}=r;di.Idiomorph.morph(e,n.innerHTML,{morphStyle:"innerHTML",callbacks:{beforeNodeMorphed(o,s){if(o instanceof HTMLElement&&t&&(o.classList.contains("tvw-animate-typing")||o.hasAttribute("data-preserve-animation")))return!1}}})};var pt={idle:"Online",connecting:"Connecting\u2026",connected:"Streaming\u2026",error:"Offline"};var $t={"bottom-right":"tvw-bottom-6 tvw-right-6","bottom-left":"tvw-bottom-6 tvw-left-6","top-right":"tvw-top-6 tvw-right-6","top-left":"tvw-top-6 tvw-left-6"};var Rn=(e,n)=>{let r=g("button");r.type="button",r.innerHTML=`
6
+ `);i=(Ue=He.pop())!=null?Ue:"";for(let Je of He){let Ct=Je.split(`
7
+ `),xt="message",st="";for(let k of Ct)k.startsWith("event:")?xt=k.replace("event:","").trim():k.startsWith("data:")&&(st+=k.replace("data:","").trim());if(!st)continue;let y;try{y=JSON.parse(st)}catch(k){r({type:"error",error:k instanceof Error?k:new Error("Failed to parse chat stream payload")});continue}let Oe=xt!=="message"?xt:(Tt=y.type)!=null?Tt:"message";if((Mt=this.onSSEEvent)==null||Mt.call(this,Oe,y),this.parseSSEEvent){w.current=m;let k=await this.handleCustomSSEEvent(y,r,w,c,g);if(w.current&&!m&&(m=w.current),k)continue}if(Oe==="reason_start"){let k=($t=P(y,!0))!=null?$t:`reason-${g()}`,h=X(k);h.reasoning=(Ie=h.reasoning)!=null?Ie:{id:k,status:"streaming",chunks:[]},h.reasoning.startedAt=(ee=h.reasoning.startedAt)!=null?ee:U((ye=y.startedAt)!=null?ye:y.timestamp),h.reasoning.completedAt=void 0,h.reasoning.durationMs=void 0,h.streaming=!0,h.reasoning.status="streaming",c(h)}else if(Oe==="reason_chunk"){let k=(Pe=(ue=P(y,!1))!=null?ue:P(y,!0))!=null?Pe:`reason-${g()}`,h=X(k);h.reasoning=(tt=h.reasoning)!=null?tt:{id:k,status:"streaming",chunks:[]},h.reasoning.startedAt=(pe=h.reasoning.startedAt)!=null?pe:U((Et=y.startedAt)!=null?Et:y.timestamp);let M=(ut=(ct=(J=y.reasoningText)!=null?J:y.text)!=null?ct:y.delta)!=null?ut:"";if(M&&y.hidden!==!0&&h.reasoning.chunks.push(String(M)),h.reasoning.status=y.done?"complete":"streaming",y.done){h.reasoning.completedAt=U((ft=y.completedAt)!=null?ft:y.timestamp);let ae=(Ot=h.reasoning.startedAt)!=null?Ot:Date.now();h.reasoning.durationMs=Math.max(0,((wt=h.reasoning.completedAt)!=null?wt:Date.now())-ae)}h.streaming=h.reasoning.status!=="complete",c(h)}else if(Oe==="reason_complete"){let k=(Me=(V=P(y,!1))!=null?V:P(y,!0))!=null?Me:`reason-${g()}`,h=C.get(k);if(h!=null&&h.reasoning){h.reasoning.status="complete",h.reasoning.completedAt=U((vt=y.completedAt)!=null?vt:y.timestamp);let ae=(yt=h.reasoning.startedAt)!=null?yt:Date.now();h.reasoning.durationMs=Math.max(0,((Q=h.reasoning.completedAt)!=null?Q:Date.now())-ae),h.streaming=!1,c(h)}let M=Y(y);M&&A.byStep.delete(M)}else if(Oe==="tool_start"){let k=(Fe=se(y,!0))!=null?Fe:`tool-${g()}`,h=G(k),M=(bt=h.toolCall)!=null?bt:{id:k,status:"pending"};M.name=(Wt=y.toolName)!=null?Wt:M.name,M.status="running",y.args!==void 0&&(M.args=y.args),M.startedAt=(j=M.startedAt)!=null?j:U((Lt=y.startedAt)!=null?Lt:y.timestamp),M.completedAt=void 0,M.durationMs=void 0,h.toolCall=M,h.streaming=!0,c(h)}else if(Oe==="tool_chunk"){let k=(Ae=(Qe=se(y,!1))!=null?Qe:se(y,!0))!=null?Ae:`tool-${g()}`,h=G(k),M=(z=h.toolCall)!=null?z:{id:k,status:"running"};M.startedAt=(ge=M.startedAt)!=null?ge:U((F=y.startedAt)!=null?F:y.timestamp);let ae=(xe=(te=(de=y.text)!=null?de:y.delta)!=null?te:y.message)!=null?xe:"";ae&&(M.chunks=($e=M.chunks)!=null?$e:[],M.chunks.push(String(ae))),M.status="running",h.toolCall=M,h.streaming=!0,c(h)}else if(Oe==="tool_complete"){let k=(ie=(_=se(y,!1))!=null?_:se(y,!0))!=null?ie:`tool-${g()}`,h=G(k),M=(ke=h.toolCall)!=null?ke:{id:k,status:"running"};if(M.status="complete",y.result!==void 0&&(M.result=y.result),typeof y.duration=="number"&&(M.duration=y.duration),M.completedAt=U((Ke=y.completedAt)!=null?Ke:y.timestamp),typeof y.duration=="number")M.durationMs=y.duration;else{let Ze=(it=M.startedAt)!=null?it:Date.now();M.durationMs=Math.max(0,((pt=M.completedAt)!=null?pt:Date.now())-Ze)}h.toolCall=M,h.streaming=!1,c(h);let ae=f(y);ae&&x.byCall.delete(ae)}else if(Oe==="step_chunk"){let k=y.stepType,h=y.executionType;if(k==="tool"||h==="context")continue;let M=R(),ae=(Jt=(rn=(On=(Nt=y.text)!=null?Nt:y.delta)!=null?On:y.content)!=null?rn:y.chunk)!=null?Jt:"";if(ae){let rt=(($=re.get(M.id))!=null?$:"")+ae;M.rawContent=rt,N.has(M.id)||N.set(M.id,this.createStreamParser());let Ve=N.get(M.id),at=rt.trim().startsWith("{")||rt.trim().startsWith("[");if(at&&re.set(M.id,rt),Ve.__isPlainTextParser===!0){M.content+=ae,re.delete(M.id),N.delete(M.id),M.rawContent=void 0,c(M);continue}let gt=Ve.processChunk(rt);if(gt instanceof Promise)gt.then(Ne=>{var lt;let qe=typeof Ne=="string"?Ne:(lt=Ne==null?void 0:Ne.text)!=null?lt:null;if(qe!==null&&qe.trim()!==""){let ze=m;ze&&ze.id===M.id&&(ze.content=qe,c(ze))}else if(!at&&!rt.trim().startsWith("<")){let ze=m;ze&&ze.id===M.id&&(ze.content+=ae,re.delete(ze.id),N.delete(ze.id),ze.rawContent=void 0,c(ze))}}).catch(()=>{M.content+=ae,re.delete(M.id),N.delete(M.id),M.rawContent=void 0,c(M)});else{let Ne=typeof gt=="string"?gt:(on=gt==null?void 0:gt.text)!=null?on:null;Ne!==null&&Ne.trim()!==""?(M.content=Ne,c(M)):!at&&!rt.trim().startsWith("<")&&(M.content+=ae,re.delete(M.id),N.delete(M.id),M.rawContent=void 0,c(M))}}if(y.isComplete){let Ze=(dn=(Vt=y.result)==null?void 0:Vt.response)!=null?dn:M.content;if(Ze){let rt=re.get(M.id),Ve=rt!=null?rt:ve(Ze);M.rawContent=Ve;let at=N.get(M.id),_e=null,gt=!1;if(at&&(_e=at.getExtractedText(),_e===null&&(_e=bs(Ve)),_e===null)){let Ne=at.processChunk(Ve);Ne instanceof Promise?(gt=!0,Ne.then(qe=>{var ze;let lt=typeof qe=="string"?qe:(ze=qe==null?void 0:qe.text)!=null?ze:null;if(lt!==null){let St=m;St&&St.id===M.id&&(St.content=lt,St.streaming=!1,N.delete(St.id),re.delete(St.id),c(St))}})):_e=typeof Ne=="string"?Ne:(Nn=Ne==null?void 0:Ne.text)!=null?Nn:null}if(!gt){_e!==null&&_e.trim()!==""?M.content=_e:re.has(M.id)||(M.content=ve(Ze));let Ne=N.get(M.id);if(Ne){let qe=(Xt=Ne.close)==null?void 0:Xt.call(Ne);qe instanceof Promise&&qe.catch(()=>{}),N.delete(M.id)}re.delete(M.id),M.streaming=!1,c(M)}}}}else if(Oe==="step_complete"){let k=y.stepType,h=y.executionType;if(k==="tool"||h==="context")continue;let M=(Gt=y.result)==null?void 0:Gt.response,ae=R();if(M!=null){let Ze=N.get(ae.id),rt=!1,Ve=!1;if(Ze){let at=Ze.getExtractedText(),_e=re.get(ae.id),gt=_e!=null?_e:ve(M);if(ae.rawContent=gt,at!==null&&at.trim()!=="")ae.content=at,rt=!0;else{let Ne=bs(gt);if(Ne!==null)ae.content=Ne,rt=!0;else{let qe=Ze.processChunk(gt);if(qe instanceof Promise)Ve=!0,qe.then(lt=>{var St;let ze=typeof lt=="string"?lt:(St=lt==null?void 0:lt.text)!=null?St:null;if(ze!==null&&ze.trim()!==""){let Rt=m;Rt&&Rt.id===ae.id&&(Rt.content=ze,Rt.streaming=!1,N.delete(Rt.id),re.delete(Rt.id),c(Rt))}else{let Rt=Ze.getExtractedText(),qt=m;qt&&qt.id===ae.id&&(Rt!==null&&Rt.trim()!==""?qt.content=Rt:re.has(qt.id)||(qt.content=ve(M)),qt.streaming=!1,N.delete(qt.id),re.delete(qt.id),c(qt))}});else{let lt=typeof qe=="string"?qe:(Sn=qe==null?void 0:qe.text)!=null?Sn:null;if(lt!==null&&lt.trim()!=="")ae.content=lt,rt=!0;else{let ze=Ze.getExtractedText();ze!==null&&ze.trim()!==""&&(ae.content=ze,rt=!0)}}}}}if(!Ve){if(!ae.rawContent){let at=re.get(ae.id);ae.rawContent=at!=null?at:ve(M)}if(!rt&&!re.has(ae.id)&&(ae.content=ve(M)),Ze){let at=(An=Ze.close)==null?void 0:An.call(Ze);at instanceof Promise&&at.catch(()=>{})}N.delete(ae.id),re.delete(ae.id),ae.streaming=!1,c(ae)}}else N.delete(ae.id),re.delete(ae.id),ae.streaming=!1,c(ae)}else if(Oe==="flow_complete"){let k=(is=y.result)==null?void 0:is.response;if(k!=null){let h=R(),M=re.get(h.id),ae=M!=null?M:ve(k);h.rawContent=ae;let Ze=ve(k),rt=N.get(h.id);if(rt){let _e=bs(ae);if(_e!==null)Ze=_e;else{let gt=rt.processChunk(ae);gt instanceof Promise&&gt.then(qe=>{var ze;let lt=typeof qe=="string"?qe:(ze=qe==null?void 0:qe.text)!=null?ze:null;if(lt!==null){let St=m;St&&St.id===h.id&&(St.content=lt,St.streaming=!1,c(St))}});let Ne=rt.getExtractedText();Ne!==null&&(Ze=Ne)}}N.delete(h.id),re.delete(h.id);let Ve=Ze!==h.content,at=h.streaming!==!1;Ve&&(h.content=Ze),h.streaming=!1,(Ve||at)&&c(h)}else if(m!==null){let h=m;N.delete(h.id),re.delete(h.id),h.streaming!==!1&&(h.streaming=!1,c(h))}r({type:"status",status:"idle"})}else if(Oe==="agent_start")D={executionId:y.executionId,agentId:(as=y.agentId)!=null?as:"virtual",agentName:(ls=y.agentName)!=null?ls:"",status:"running",currentIteration:0,maxIterations:(Dn=y.maxIterations)!=null?Dn:1,startedAt:U(y.startedAt)};else if(Oe==="agent_iteration_start"){if(D&&(D.currentIteration=y.iteration),fe==="separate"&&y.iteration>1){let k=m;k&&(k.streaming=!1,c(k),Z.set(y.iteration-1,k),m=null)}}else if(Oe!=="agent_turn_start"){if(Oe==="agent_turn_delta"){if(y.contentType==="text"){let k=R();k.content+=(En=y.delta)!=null?En:"",k.agentMetadata={executionId:y.executionId,iteration:y.iteration,turnId:y.turnId,agentName:D==null?void 0:D.agentName},c(k)}else if(y.contentType==="thinking"){let k=(Ye=y.turnId)!=null?Ye:`agent-think-${y.iteration}`,h=X(k);h.reasoning=(jn=h.reasoning)!=null?jn:{id:k,status:"streaming",chunks:[]},h.reasoning.chunks.push((_n=y.delta)!=null?_n:""),h.agentMetadata={executionId:y.executionId,iteration:y.iteration,turnId:y.turnId},c(h)}else if(y.contentType==="tool_input"){let k=(Qt=y.toolCallId)!=null?Qt:x.lastId;if(k){let h=b.get(k);h!=null&&h.toolCall&&(h.toolCall.chunks=(ds=h.toolCall.chunks)!=null?ds:[],h.toolCall.chunks.push((cs=y.delta)!=null?cs:""),c(h))}}}else if(Oe==="agent_turn_complete"){let k=y.turnId;if(k){let h=C.get(k);if(h!=null&&h.reasoning){h.reasoning.status="complete",h.reasoning.completedAt=U(y.completedAt);let M=(qn=h.reasoning.startedAt)!=null?qn:Date.now();h.reasoning.durationMs=Math.max(0,((cn=h.reasoning.completedAt)!=null?cn:Date.now())-M),h.streaming=!1,c(h)}}}else if(Oe==="agent_tool_start"){let k=(Zt=y.toolCallId)!=null?Zt:`agent-tool-${g()}`;O(f(y),k);let h=G(k),M=(us=h.toolCall)!=null?us:{id:k,status:"pending",name:void 0,args:void 0,chunks:void 0,result:void 0,duration:void 0,startedAt:void 0,completedAt:void 0,durationMs:void 0};M.name=(ps=y.toolName)!=null?ps:M.name,M.status="running",y.parameters!==void 0&&(M.args=y.parameters),M.startedAt=U((gs=y.startedAt)!=null?gs:y.timestamp),h.toolCall=M,h.streaming=!0,h.agentMetadata={executionId:y.executionId,iteration:y.iteration},c(h)}else if(Oe==="agent_tool_delta"){let k=(zs=y.toolCallId)!=null?zs:x.lastId;if(k){let h=(un=b.get(k))!=null?un:G(k);h.toolCall&&(h.toolCall.chunks=(pn=h.toolCall.chunks)!=null?pn:[],h.toolCall.chunks.push((nt=y.delta)!=null?nt:""),h.toolCall.status="running",h.streaming=!0,c(h))}}else if(Oe==="agent_tool_complete"){let k=(Tn=y.toolCallId)!=null?Tn:x.lastId;if(k){let h=(zn=b.get(k))!=null?zn:G(k);if(h.toolCall){h.toolCall.status="complete",y.result!==void 0&&(h.toolCall.result=y.result),typeof y.executionTime=="number"&&(h.toolCall.durationMs=y.executionTime),h.toolCall.completedAt=U((Un=y.completedAt)!=null?Un:y.timestamp),h.streaming=!1,c(h);let M=f(y);M&&x.byCall.delete(M)}}}else if(Oe!=="agent_iteration_complete")if(Oe==="agent_reflection"){let k=`agent-reflection-${y.executionId}-${y.iteration}`,h={id:k,role:"assistant",content:(Jn=y.reflection)!=null?Jn:"",createdAt:new Date().toISOString(),streaming:!1,variant:"reasoning",sequence:g(),reasoning:{id:k,status:"complete",chunks:[(Ht=y.reflection)!=null?Ht:""]},agentMetadata:{executionId:y.executionId,iteration:y.iteration}};c(h)}else if(Oe==="agent_complete"){D&&(D.status=y.success?"complete":"error",D.completedAt=U(y.completedAt),D.stopReason=y.stopReason);let k=m;k&&(k.streaming=!1,c(k)),r({type:"status",status:"idle"})}else if(Oe==="agent_error"){let k=typeof y.error=="string"?y.error:(en=(Dt=y.error)==null?void 0:Dt.message)!=null?en:"Agent execution error";y.recoverable?typeof console!="undefined"&&console.warn("[AgentWidget] Recoverable agent error:",k):r({type:"error",error:new Error(k)})}else Oe==="agent_ping"||Oe==="error"&&y.error&&r({type:"error",error:y.error instanceof Error?y.error:new Error(String(y.error))})}}}}};function ki(){let e=Date.now().toString(36),n=Math.random().toString(36).substring(2,10);return`msg_${e}_${n}`}function Mn(){let e=Date.now().toString(36),n=Math.random().toString(36).substring(2,10);return`usr_${e}_${n}`}function wn(){let e=Date.now().toString(36),n=Math.random().toString(36).substring(2,10);return`ast_${e}_${n}`}var Ln=class{constructor(n={},r){this.config=n;this.callbacks=r;this.status="idle";this.streaming=!1;this.abortController=null;this.sequenceCounter=Date.now();this.clientSession=null;this.agentExecution=null;this.handleEvent=n=>{var r,t,o,s,i,a,d;n.type==="message"?(this.upsertMessage(n.message),(r=n.message.agentMetadata)!=null&&r.executionId&&(this.agentExecution?n.message.agentMetadata.iteration!==void 0&&(this.agentExecution.currentIteration=n.message.agentMetadata.iteration):this.agentExecution={executionId:n.message.agentMetadata.executionId,agentId:"",agentName:(t=n.message.agentMetadata.agentName)!=null?t:"",status:"running",currentIteration:(o=n.message.agentMetadata.iteration)!=null?o:0,maxIterations:0})):n.type==="status"?(this.setStatus(n.status),n.status==="connecting"?this.setStreaming(!0):(n.status==="idle"||n.status==="error")&&(this.setStreaming(!1),this.abortController=null,((s=this.agentExecution)==null?void 0:s.status)==="running"&&(this.agentExecution.status=n.status==="error"?"error":"complete"))):n.type==="error"&&(this.setStatus("error"),this.setStreaming(!1),this.abortController=null,((i=this.agentExecution)==null?void 0:i.status)==="running"&&(this.agentExecution.status="error"),(d=(a=this.callbacks).onError)==null||d.call(a,n.error))};var t;this.messages=[...(t=n.initialMessages)!=null?t:[]].map(o=>{var s;return{...o,sequence:(s=o.sequence)!=null?s:this.nextSequence()}}),this.messages=this.sortMessages(this.messages),this.client=new fn(n),this.messages.length&&this.callbacks.onMessagesChanged([...this.messages]),this.callbacks.onStatusChanged(this.status)}setSSEEventCallback(n){this.client.setSSEEventCallback(n)}isClientTokenMode(){return this.client.isClientTokenMode()}isAgentMode(){return this.client.isAgentMode()}getAgentExecution(){return this.agentExecution}isAgentExecuting(){var n;return((n=this.agentExecution)==null?void 0:n.status)==="running"}async initClientSession(){var n,r;if(!this.isClientTokenMode())return null;try{let t=await this.client.initSession();return this.setClientSession(t),t}catch(t){return(r=(n=this.callbacks).onError)==null||r.call(n,t instanceof Error?t:new Error(String(t))),null}}setClientSession(n){if(this.clientSession=n,n.config.welcomeMessage&&this.messages.length===0){let r={id:`welcome-${Date.now()}`,role:"assistant",content:n.config.welcomeMessage,createdAt:new Date().toISOString(),sequence:this.nextSequence()};this.appendMessage(r)}}getClientSession(){var n;return(n=this.clientSession)!=null?n:this.client.getClientSession()}isSessionValid(){let n=this.getClientSession();return n?new Date<n.expiresAt:!1}clearClientSession(){this.clientSession=null,this.client.clearClientSession()}getClient(){return this.client}async submitMessageFeedback(n,r){return this.client.submitMessageFeedback(n,r)}async submitCSATFeedback(n,r){return this.client.submitCSATFeedback(n,r)}async submitNPSFeedback(n,r){return this.client.submitNPSFeedback(n,r)}updateConfig(n){this.config={...this.config,...n},this.client=new fn(this.config)}getMessages(){return[...this.messages]}getStatus(){return this.status}isStreaming(){return this.streaming}injectTestEvent(n){this.handleEvent(n)}injectMessage(n){let{role:r,content:t,llmContent:o,contentParts:s,id:i,createdAt:a,sequence:d,streaming:g=!1}=n,c={id:i!=null?i:r==="user"?Mn():r==="assistant"?wn():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:r,content:t,createdAt:a!=null?a:new Date().toISOString(),sequence:d!=null?d:this.nextSequence(),streaming:g,...o!==void 0&&{llmContent:o},...s!==void 0&&{contentParts:s}};return this.upsertMessage(c),c}injectAssistantMessage(n){return this.injectMessage({...n,role:"assistant"})}injectUserMessage(n){return this.injectMessage({...n,role:"user"})}injectSystemMessage(n){return this.injectMessage({...n,role:"system"})}injectMessageBatch(n){let r=[];for(let t of n){let{role:o,content:s,llmContent:i,contentParts:a,id:d,createdAt:g,sequence:v,streaming:c=!1}=t,w={id:d!=null?d:o==="user"?Mn():o==="assistant"?wn():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:o,content:s,createdAt:g!=null?g:new Date().toISOString(),sequence:v!=null?v:this.nextSequence(),streaming:c,...i!==void 0&&{llmContent:i},...a!==void 0&&{contentParts:a}};r.push(w)}return this.messages=this.sortMessages([...this.messages,...r]),this.callbacks.onMessagesChanged([...this.messages]),r}async sendMessage(n,r){var g,v,c,m,w;let t=n.trim();if(!t&&(!(r!=null&&r.contentParts)||r.contentParts.length===0))return;(g=this.abortController)==null||g.abort();let o=Mn(),s=wn(),i={id:o,role:"user",content:t||"[Image]",createdAt:new Date().toISOString(),sequence:this.nextSequence(),viaVoice:(r==null?void 0:r.viaVoice)||!1,...(r==null?void 0:r.contentParts)&&r.contentParts.length>0&&{contentParts:r.contentParts}};this.appendMessage(i),this.setStreaming(!0);let a=new AbortController;this.abortController=a;let d=[...this.messages];try{await this.client.dispatch({messages:d,signal:a.signal,assistantMessageId:s},this.handleEvent)}catch(C){let b=C instanceof Error&&(C.name==="AbortError"||C.message.includes("aborted")||C.message.includes("abort"));if(!b){let A={id:s,role:"assistant",createdAt:new Date().toISOString(),content:"It looks like the proxy isn't returning a real response yet. Here's a sample message so you can continue testing locally.",sequence:this.nextSequence()};this.appendMessage(A)}this.setStatus("idle"),this.setStreaming(!1),this.abortController=null,b||(C instanceof Error?(c=(v=this.callbacks).onError)==null||c.call(v,C):(w=(m=this.callbacks).onError)==null||w.call(m,new Error(String(C))))}}async continueConversation(){var o,s,i,a,d;if(this.streaming)return;(o=this.abortController)==null||o.abort();let n=wn();this.setStreaming(!0);let r=new AbortController;this.abortController=r;let t=[...this.messages];try{await this.client.dispatch({messages:t,signal:r.signal,assistantMessageId:n},this.handleEvent)}catch(g){let v={id:n,role:"assistant",createdAt:new Date().toISOString(),content:"It looks like the proxy isn't returning a real response yet. Here's a sample message so you can continue testing locally.",sequence:this.nextSequence()};this.appendMessage(v),this.setStatus("idle"),this.setStreaming(!1),this.abortController=null,g instanceof Error?(i=(s=this.callbacks).onError)==null||i.call(s,g):(d=(a=this.callbacks).onError)==null||d.call(a,new Error(String(g)))}}cancel(){var n;(n=this.abortController)==null||n.abort(),this.abortController=null,this.setStreaming(!1),this.setStatus("idle")}clearMessages(){var n;(n=this.abortController)==null||n.abort(),this.abortController=null,this.messages=[],this.agentExecution=null,this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}hydrateMessages(n){var r;(r=this.abortController)==null||r.abort(),this.abortController=null,this.messages=this.sortMessages(n.map(t=>{var o;return{...t,streaming:!1,sequence:(o=t.sequence)!=null?o:this.nextSequence()}})),this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}setStatus(n){this.status!==n&&(this.status=n,this.callbacks.onStatusChanged(n))}setStreaming(n){this.streaming!==n&&(this.streaming=n,this.callbacks.onStreamingChanged(n))}appendMessage(n){let r=this.ensureSequence(n);this.messages=this.sortMessages([...this.messages,r]),this.callbacks.onMessagesChanged([...this.messages])}upsertMessage(n){let r=this.ensureSequence(n),t=this.messages.findIndex(o=>o.id===r.id);if(t===-1){this.appendMessage(r);return}this.messages=this.messages.map((o,s)=>s===t?{...o,...r}:o),this.messages=this.sortMessages(this.messages),this.callbacks.onMessagesChanged([...this.messages])}ensureSequence(n){return n.sequence!==void 0?{...n}:{...n,sequence:this.nextSequence()}}nextSequence(){return this.sequenceCounter++}sortMessages(n){return[...n].sort((r,t)=>{var d,g;let o=new Date(r.createdAt).getTime(),s=new Date(t.createdAt).getTime();if(!Number.isNaN(o)&&!Number.isNaN(s)&&o!==s)return o-s;let i=(d=r.sequence)!=null?d:0,a=(g=t.sequence)!=null?g:0;return i!==a?i-a:r.id.localeCompare(t.id)})}};var p=(e,n)=>{let r=document.createElement(e);return n&&(r.className=n),r};var Wa=Ca(require("lucide"),1),oe=(e,n=24,r="currentColor",t=2)=>{try{let o=e.split("-").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(""),s=Wa[o];return s?Ia(s,n,r,t):(console.warn(`Lucide icon "${e}" not found (tried "${o}"). Available icons: https://lucide.dev/icons`),null)}catch(o){return console.warn(`Failed to render Lucide icon "${e}":`,o),null}};function Ia(e,n,r,t){if(!e||!Array.isArray(e))return null;let o=document.createElementNS("http://www.w3.org/2000/svg","svg");return o.setAttribute("width",String(n)),o.setAttribute("height",String(n)),o.setAttribute("viewBox","0 0 24 24"),o.setAttribute("fill","none"),o.setAttribute("stroke",r),o.setAttribute("stroke-width",String(t)),o.setAttribute("stroke-linecap","round"),o.setAttribute("stroke-linejoin","round"),o.setAttribute("aria-hidden","true"),e.forEach(s=>{if(Array.isArray(s)&&s.length>=2){let i=s[0],a=s[1];if(a){let d=document.createElementNS("http://www.w3.org/2000/svg",i);Object.entries(a).forEach(([g,v])=>{g!=="stroke"&&d.setAttribute(g,String(v))}),o.appendChild(d)}}}),o}function Wi(e){return typeof e=="string"?[{type:"text",text:e}]:e}function Ii(e){return typeof e=="string"?e:e.filter(n=>n.type==="text").map(n=>n.text).join("")}function Pi(e){return typeof e=="string"?!1:e.some(n=>n.type==="image")}function Hi(e){return typeof e=="string"?[]:e.filter(n=>n.type==="image")}function Es(e){return{type:"text",text:e}}function Bi(e,n){return{type:"image",image:e,...(n==null?void 0:n.mimeType)&&{mimeType:n.mimeType},...(n==null?void 0:n.alt)&&{alt:n.alt}}}async function Ri(e){return new Promise((n,r)=>{let t=new FileReader;t.onload=()=>{let o=t.result;n({type:"image",image:o,mimeType:e.type,alt:e.name})},t.onerror=()=>r(new Error("Failed to read file")),t.readAsDataURL(e)})}function Fi(e,n=["image/png","image/jpeg","image/gif","image/webp"],r=10*1024*1024){return n.includes(e.type)?e.size>r?{valid:!1,error:`File too large. Maximum size: ${Math.round(r/1048576)}MB`}:{valid:!0}:{valid:!1,error:`Invalid file type. Accepted types: ${n.join(", ")}`}}var $i=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml","image/bmp"],Pa=["application/pdf","text/plain","text/markdown","text/csv","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/json"],ln=[...$i,...Pa];function Ha(e){return $i.includes(e)||e.startsWith("image/")}function Ts(e){return Ha(e.type)}async function Oi(e){return new Promise((n,r)=>{let t=new FileReader;t.onload=()=>{let o=t.result;Ts(e)?n({type:"image",image:o,mimeType:e.type,alt:e.name}):n({type:"file",data:o,mimeType:e.type,filename:e.name})},t.onerror=()=>r(new Error("Failed to read file")),t.readAsDataURL(e)})}function Ni(e,n=ln,r=10*1024*1024){return n.includes(e.type)?e.size>r?{valid:!1,error:`File too large. Maximum size: ${Math.round(r/1048576)}MB`}:{valid:!0}:{valid:!1,error:`Invalid file type "${e.type}". Accepted types: ${n.join(", ")}`}}function Ba(e){let n=e.split(".");return n.length>1?n.pop().toLowerCase():""}function Di(e,n){let r=Ba(n).toUpperCase();return{"application/pdf":"PDF","text/plain":"TXT","text/markdown":"MD","text/csv":"CSV","application/msword":"DOC","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"DOCX","application/vnd.ms-excel":"XLS","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"XLSX","application/json":"JSON"}[e]||r||"FILE"}var Ms={allowedTypes:ln,maxFileSize:10*1024*1024,maxFiles:4};function Ra(){return`attach_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function Fa(e){return e==="application/pdf"||e.startsWith("text/")||e.includes("word")?"file-text":e.includes("excel")||e.includes("spreadsheet")?"file-spreadsheet":e==="application/json"?"file-json":"file"}var vn=class e{constructor(n={}){this.attachments=[];this.previewsContainer=null;var r,t,o;this.config={allowedTypes:(r=n.allowedTypes)!=null?r:Ms.allowedTypes,maxFileSize:(t=n.maxFileSize)!=null?t:Ms.maxFileSize,maxFiles:(o=n.maxFiles)!=null?o:Ms.maxFiles,onFileRejected:n.onFileRejected,onAttachmentsChange:n.onAttachmentsChange}}setPreviewsContainer(n){this.previewsContainer=n}updateConfig(n){n.allowedTypes!==void 0&&(this.config.allowedTypes=n.allowedTypes.length>0?n.allowedTypes:Ms.allowedTypes),n.maxFileSize!==void 0&&(this.config.maxFileSize=n.maxFileSize),n.maxFiles!==void 0&&(this.config.maxFiles=n.maxFiles),n.onFileRejected!==void 0&&(this.config.onFileRejected=n.onFileRejected),n.onAttachmentsChange!==void 0&&(this.config.onAttachmentsChange=n.onAttachmentsChange)}getAttachments(){return[...this.attachments]}getContentParts(){return this.attachments.map(n=>n.contentPart)}hasAttachments(){return this.attachments.length>0}count(){return this.attachments.length}async handleFileSelect(n){var t,o,s,i,a,d,g;if(!n||n.length===0)return;let r=Array.from(n);for(let v of r){if(this.attachments.length>=this.config.maxFiles){(o=(t=this.config).onFileRejected)==null||o.call(t,v,"count");continue}let c=Ni(v,this.config.allowedTypes,this.config.maxFileSize);if(!c.valid){let m=(s=c.error)!=null&&s.includes("type")?"type":"size";(a=(i=this.config).onFileRejected)==null||a.call(i,v,m);continue}try{let m=await Oi(v),w=Ts(v)?URL.createObjectURL(v):null,C={id:Ra(),file:v,previewUrl:w,contentPart:m};this.attachments.push(C),this.renderPreview(C)}catch(m){console.error("[AttachmentManager] Failed to process file:",m)}}this.updatePreviewsVisibility(),(g=(d=this.config).onAttachmentsChange)==null||g.call(d,this.getAttachments())}removeAttachment(n){var s,i,a;let r=this.attachments.findIndex(d=>d.id===n);if(r===-1)return;let t=this.attachments[r];t.previewUrl&&URL.revokeObjectURL(t.previewUrl),this.attachments.splice(r,1);let o=(s=this.previewsContainer)==null?void 0:s.querySelector(`[data-attachment-id="${n}"]`);o&&o.remove(),this.updatePreviewsVisibility(),(a=(i=this.config).onAttachmentsChange)==null||a.call(i,this.getAttachments())}clearAttachments(){var n,r;for(let t of this.attachments)t.previewUrl&&URL.revokeObjectURL(t.previewUrl);this.attachments=[],this.previewsContainer&&(this.previewsContainer.innerHTML=""),this.updatePreviewsVisibility(),(r=(n=this.config).onAttachmentsChange)==null||r.call(n,this.getAttachments())}renderPreview(n){if(!this.previewsContainer)return;let r=Ts(n.file),t=p("div","tvw-attachment-preview tvw-relative tvw-inline-block");if(t.setAttribute("data-attachment-id",n.id),t.style.width="48px",t.style.height="48px",r&&n.previewUrl){let i=p("img");i.src=n.previewUrl,i.alt=n.file.name,i.className="tvw-w-full tvw-h-full tvw-object-cover tvw-rounded-lg tvw-border tvw-border-gray-200",i.style.width="48px",i.style.height="48px",i.style.objectFit="cover",i.style.borderRadius="8px",t.appendChild(i)}else{let i=p("div");i.style.width="48px",i.style.height="48px",i.style.borderRadius="8px",i.style.backgroundColor="var(--cw-container, #f3f4f6)",i.style.border="1px solid var(--cw-border, #e5e7eb)",i.style.display="flex",i.style.flexDirection="column",i.style.alignItems="center",i.style.justifyContent="center",i.style.gap="2px",i.style.overflow="hidden";let a=Fa(n.file.type),d=oe(a,20,"var(--cw-muted, #6b7280)",1.5);d&&i.appendChild(d);let g=p("span");g.textContent=Di(n.file.type,n.file.name),g.style.fontSize="8px",g.style.fontWeight="600",g.style.color="var(--cw-muted, #6b7280)",g.style.textTransform="uppercase",g.style.lineHeight="1",i.appendChild(g),t.appendChild(i)}let o=p("button","tvw-attachment-remove tvw-absolute tvw-flex tvw-items-center tvw-justify-center");o.type="button",o.setAttribute("aria-label","Remove attachment"),o.style.position="absolute",o.style.top="-4px",o.style.right="-4px",o.style.width="18px",o.style.height="18px",o.style.borderRadius="50%",o.style.backgroundColor="rgba(0, 0, 0, 0.6)",o.style.border="none",o.style.cursor="pointer",o.style.display="flex",o.style.alignItems="center",o.style.justifyContent="center",o.style.padding="0";let s=oe("x",10,"#ffffff",2);s?o.appendChild(s):(o.textContent="\xD7",o.style.color="#ffffff",o.style.fontSize="14px",o.style.lineHeight="1"),o.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),this.removeAttachment(n.id)}),t.appendChild(o),this.previewsContainer.appendChild(t)}updatePreviewsVisibility(){this.previewsContainer&&(this.previewsContainer.style.display=this.attachments.length>0?"flex":"none")}static fromConfig(n,r){return new e({allowedTypes:n==null?void 0:n.allowedTypes,maxFileSize:n==null?void 0:n.maxFileSize,maxFiles:n==null?void 0:n.maxFiles,onFileRejected:n==null?void 0:n.onFileRejected,onAttachmentsChange:r})}};var Vs=()=>{var e;return typeof document!="undefined"&&document.documentElement.classList.contains("dark")||typeof window!="undefined"&&((e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches)?"dark":"light"},$a=e=>{var s,i,a;let n=(s=e==null?void 0:e.colorScheme)!=null?s:"light",r=(i=e==null?void 0:e.theme)!=null?i:{},t=(a=e==null?void 0:e.darkTheme)!=null?a:r;return n==="light"?r:n==="dark"||Vs()==="dark"?t:r},ji=e=>{let n=[];if(typeof document!="undefined"&&typeof MutationObserver!="undefined"){let r=new MutationObserver(()=>{e(Vs())});r.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),n.push(()=>r.disconnect())}if(typeof window!="undefined"&&window.matchMedia){let r=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>e(Vs());r.addEventListener?(r.addEventListener("change",t),n.push(()=>r.removeEventListener("change",t))):r.addListener&&(r.addListener(t),n.push(()=>r.removeListener(t)))}return()=>{n.forEach(r=>r())}},Ls=(e,n)=>{let r=$a(n);Object.entries(r).forEach(([t,o])=>{if(o==null||o==="")return;let s=t.replace(/[A-Z]/g,i=>`-${i.toLowerCase()}`);e.style.setProperty(`--cw-${s}`,String(o))})};var _i=require("idiomorph"),qi=(e,n,r={})=>{let{preserveTypingAnimation:t=!0}=r;_i.Idiomorph.morph(e,n.innerHTML,{morphStyle:"innerHTML",callbacks:{beforeNodeMorphed(o,s){if(o instanceof HTMLElement&&t&&(o.classList.contains("tvw-animate-typing")||o.hasAttribute("data-preserve-animation")))return!1}}})};var Pt={idle:"Online",connecting:"Connecting\u2026",connected:"Streaming\u2026",error:"Offline"};var Ut={"bottom-right":"tvw-bottom-6 tvw-right-6","bottom-left":"tvw-bottom-6 tvw-left-6","top-right":"tvw-top-6 tvw-right-6","top-left":"tvw-top-6 tvw-left-6"};var es=(e,n)=>{let r=p("button");r.type="button",r.innerHTML=`
8
8
  <span class="tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-bg-cw-primary tvw-text-white" data-role="launcher-icon">\u{1F4AC}</span>
9
9
  <img data-role="launcher-image" class="tvw-rounded-full tvw-object-cover" alt="" style="display:none" />
10
10
  <span class="tvw-flex tvw-flex-col tvw-items-start tvw-text-left">
@@ -12,24 +12,24 @@
12
12
  <span class="tvw-text-xs tvw-text-cw-muted" data-role="launcher-subtitle"></span>
13
13
  </span>
14
14
  <span class="tvw-ml-2 tvw-grid tvw-place-items-center tvw-rounded-full tvw-bg-cw-primary tvw-text-cw-call-to-action" data-role="launcher-call-to-action-icon">\u2197</span>
15
- `,r.addEventListener("click",n);let t=s=>{var y,L,U,h,O,M,W,V,$,Z,le,z;let i=(y=s.launcher)!=null?y:{},a=r.querySelector("[data-role='launcher-title']");a&&(a.textContent=(L=i.title)!=null?L:"Chat Assistant");let d=r.querySelector("[data-role='launcher-subtitle']");d&&(d.textContent=(U=i.subtitle)!=null?U:"Get answers fast");let u=r.querySelector(".tvw-flex-col");u&&(i.textHidden?u.style.display="none":u.style.display="");let f=r.querySelector("[data-role='launcher-icon']");if(f)if(i.agentIconHidden)f.style.display="none";else{let xe=(h=i.agentIconSize)!=null?h:"40px";if(f.style.height=xe,f.style.width=xe,f.innerHTML="",i.agentIconName){let B=parseFloat(xe)||24,N=re(i.agentIconName,B*.6,"#ffffff",2);N?(f.appendChild(N),f.style.display=""):(f.textContent=(O=i.agentIconText)!=null?O:"\u{1F4AC}",f.style.display="")}else i.iconUrl?f.style.display="none":(f.textContent=(M=i.agentIconText)!=null?M:"\u{1F4AC}",f.style.display="")}let p=r.querySelector("[data-role='launcher-image']");if(p){let xe=(W=i.agentIconSize)!=null?W:"40px";p.style.height=xe,p.style.width=xe,i.iconUrl&&!i.agentIconName&&!i.agentIconHidden?(p.src=i.iconUrl,p.style.display="block"):p.style.display="none"}let m=r.querySelector("[data-role='launcher-call-to-action-icon']");if(m){let xe=(V=i.callToActionIconSize)!=null?V:"32px";m.style.height=xe,m.style.width=xe,i.callToActionIconBackgroundColor?(m.style.backgroundColor=i.callToActionIconBackgroundColor,m.classList.remove("tvw-bg-cw-primary")):(m.style.backgroundColor="",m.classList.add("tvw-bg-cw-primary"));let B=0;if(i.callToActionIconPadding?(m.style.boxSizing="border-box",m.style.padding=i.callToActionIconPadding,B=(parseFloat(i.callToActionIconPadding)||0)*2):(m.style.boxSizing="",m.style.padding=""),i.callToActionIconHidden)m.style.display="none";else if(m.style.display="",m.innerHTML="",i.callToActionIconName){let N=parseFloat(xe)||24,oe=Math.max(N-B,8),ie=re(i.callToActionIconName,oe,"currentColor",2);ie?m.appendChild(ie):m.textContent=($=i.callToActionIconText)!=null?$:"\u2197"}else m.textContent=(Z=i.callToActionIconText)!=null?Z:"\u2197"}let w=i.position&&$t[i.position]?$t[i.position]:$t["bottom-right"],A="tvw-fixed tvw-flex tvw-items-center tvw-gap-3 tvw-rounded-launcher tvw-bg-cw-surface tvw-py-2.5 tvw-pl-3 tvw-pr-3 tvw-transition hover:tvw-translate-y-[-2px] tvw-cursor-pointer tvw-z-50";r.className=`${A} ${w}`;let b="1px solid #e5e7eb",T="0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)";r.style.border=(le=i.border)!=null?le:b,r.style.boxShadow=(z=i.shadow)!=null?z:T},o=()=>{r.removeEventListener("click",n),r.remove()};return e&&t(e),{element:r,update:t,destroy:o}};var Kt=e=>{var Z,le,z,xe,B,N,oe,ie,Le,Ye,bt,Q,D,gt,Ct,xt,Ot,Nt,_,Se,it,at,Xe,lt,zt,jt,Dt,R,Ke,ye,tt,ve;let{config:n,showClose:r=!0}=e,t=g("div","tvw-widget-header tvw-flex tvw-items-center tvw-gap-3 tvw-bg-cw-surface tvw-px-6 tvw-py-5 tvw-border-b-cw-divider"),o=(Z=n==null?void 0:n.launcher)!=null?Z:{},s=(le=o.headerIconSize)!=null?le:"48px",i=(z=o.closeButtonSize)!=null?z:"32px",a=(xe=o.closeButtonPlacement)!=null?xe:"inline",d=(B=o.headerIconHidden)!=null?B:!1,u=o.headerIconName,f=g("div","tvw-flex tvw-items-center tvw-justify-center tvw-rounded-xl tvw-bg-cw-primary tvw-text-white tvw-text-xl");if(f.style.height=s,f.style.width=s,!d)if(u){let G=parseFloat(s)||24,ae=re(u,G*.6,"#ffffff",1);ae?f.replaceChildren(ae):f.textContent=(oe=(N=n==null?void 0:n.launcher)==null?void 0:N.agentIconText)!=null?oe:"\u{1F4AC}"}else if((ie=n==null?void 0:n.launcher)!=null&&ie.iconUrl){let G=g("img");G.src=n.launcher.iconUrl,G.alt="",G.className="tvw-rounded-xl tvw-object-cover",G.style.height=s,G.style.width=s,f.replaceChildren(G)}else f.textContent=(Ye=(Le=n==null?void 0:n.launcher)==null?void 0:Le.agentIconText)!=null?Ye:"\u{1F4AC}";let p=g("div","tvw-flex tvw-flex-col"),m=g("span","tvw-text-base tvw-font-semibold");m.textContent=(Q=(bt=n==null?void 0:n.launcher)==null?void 0:bt.title)!=null?Q:"Chat Assistant";let w=g("span","tvw-text-xs tvw-text-cw-muted");w.textContent=(gt=(D=n==null?void 0:n.launcher)==null?void 0:D.subtitle)!=null?gt:"Here to help you get answers fast",p.append(m,w),d?t.append(p):t.append(f,p);let A=(Ct=o.clearChat)!=null?Ct:{},b=(xt=A.enabled)!=null?xt:!0,T=(Ot=A.placement)!=null?Ot:"inline",y=null,L=null;if(b){let G=(Nt=A.size)!=null?Nt:"32px",ae=(_=A.iconName)!=null?_:"refresh-cw",Ge=(Se=A.iconColor)!=null?Se:"",dt=(it=A.backgroundColor)!=null?it:"",At=(at=A.borderWidth)!=null?at:"",Wt=(Xe=A.borderColor)!=null?Xe:"",It=(lt=A.borderRadius)!=null?lt:"",Pe=(zt=A.paddingX)!=null?zt:"",nt=(jt=A.paddingY)!=null?jt:"",Lt=(Dt=A.tooltipText)!=null?Dt:"Clear chat",Tt=(R=A.showTooltip)!=null?R:!0;L=g("div",T==="top-right"?"tvw-absolute tvw-top-4 tvw-z-50":"tvw-relative tvw-ml-auto tvw-clear-chat-button-wrapper"),T==="top-right"&&(L.style.right="48px"),y=g("button","tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-text-cw-muted hover:tvw-bg-gray-100 tvw-cursor-pointer tvw-border-none"),y.style.height=G,y.style.width=G,y.type="button",y.setAttribute("aria-label",Lt);let ct=re(ae,"20px",Ge||"",1);if(ct&&y.appendChild(ct),Ge&&(y.style.color=Ge,y.classList.remove("tvw-text-cw-muted")),dt&&(y.style.backgroundColor=dt,y.classList.remove("hover:tvw-bg-gray-100")),At||Wt){let v=At||"0px",Te=Wt||"transparent";y.style.border=`${v} solid ${Te}`,y.classList.remove("tvw-border-none")}if(It&&(y.style.borderRadius=It,y.classList.remove("tvw-rounded-full")),Pe?(y.style.paddingLeft=Pe,y.style.paddingRight=Pe):(y.style.paddingLeft="",y.style.paddingRight=""),nt?(y.style.paddingTop=nt,y.style.paddingBottom=nt):(y.style.paddingTop="",y.style.paddingBottom=""),L.appendChild(y),Tt&&Lt&&y&&L){let v=null,Te=()=>{if(v||!y)return;v=g("div","tvw-clear-chat-tooltip"),v.textContent=Lt;let mt=g("div");mt.className="tvw-clear-chat-tooltip-arrow",v.appendChild(mt);let st=y.getBoundingClientRect();v.style.position="fixed",v.style.left=`${st.left+st.width/2}px`,v.style.top=`${st.top-8}px`,v.style.transform="translate(-50%, -100%)",document.body.appendChild(v)},je=()=>{v&&v.parentNode&&(v.parentNode.removeChild(v),v=null)};L.addEventListener("mouseenter",Te),L.addEventListener("mouseleave",je),y.addEventListener("focus",Te),y.addEventListener("blur",je),L._cleanupTooltip=()=>{je(),L&&(L.removeEventListener("mouseenter",Te),L.removeEventListener("mouseleave",je)),y&&(y.removeEventListener("focus",Te),y.removeEventListener("blur",je))}}T==="inline"&&t.appendChild(L)}let U=g("div",a==="top-right"?"tvw-absolute tvw-top-4 tvw-right-4 tvw-z-50":b&&T==="inline"?"":"tvw-ml-auto"),h=g("button","tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-text-cw-muted hover:tvw-bg-gray-100 tvw-cursor-pointer tvw-border-none");h.style.height=i,h.style.width=i,h.type="button";let O=(Ke=o.closeButtonTooltipText)!=null?Ke:"Close chat",M=(ye=o.closeButtonShowTooltip)!=null?ye:!0;h.setAttribute("aria-label",O),h.style.display=r?"":"none";let W=(tt=o.closeButtonIconName)!=null?tt:"x",V=(ve=o.closeButtonIconText)!=null?ve:"\xD7",$=re(W,"20px",o.closeButtonColor||"",1);if($?h.appendChild($):h.textContent=V,o.closeButtonColor?(h.style.color=o.closeButtonColor,h.classList.remove("tvw-text-cw-muted")):(h.style.color="",h.classList.add("tvw-text-cw-muted")),o.closeButtonBackgroundColor?(h.style.backgroundColor=o.closeButtonBackgroundColor,h.classList.remove("hover:tvw-bg-gray-100")):(h.style.backgroundColor="",h.classList.add("hover:tvw-bg-gray-100")),o.closeButtonBorderWidth||o.closeButtonBorderColor){let G=o.closeButtonBorderWidth||"0px",ae=o.closeButtonBorderColor||"transparent";h.style.border=`${G} solid ${ae}`,h.classList.remove("tvw-border-none")}else h.style.border="",h.classList.add("tvw-border-none");if(o.closeButtonBorderRadius?(h.style.borderRadius=o.closeButtonBorderRadius,h.classList.remove("tvw-rounded-full")):(h.style.borderRadius="",h.classList.add("tvw-rounded-full")),o.closeButtonPaddingX?(h.style.paddingLeft=o.closeButtonPaddingX,h.style.paddingRight=o.closeButtonPaddingX):(h.style.paddingLeft="",h.style.paddingRight=""),o.closeButtonPaddingY?(h.style.paddingTop=o.closeButtonPaddingY,h.style.paddingBottom=o.closeButtonPaddingY):(h.style.paddingTop="",h.style.paddingBottom=""),U.appendChild(h),M&&O){let G=null,ae=()=>{if(G)return;G=g("div","tvw-clear-chat-tooltip"),G.textContent=O;let dt=g("div");dt.className="tvw-clear-chat-tooltip-arrow",G.appendChild(dt);let At=h.getBoundingClientRect();G.style.position="fixed",G.style.left=`${At.left+At.width/2}px`,G.style.top=`${At.top-8}px`,G.style.transform="translate(-50%, -100%)",document.body.appendChild(G)},Ge=()=>{G&&G.parentNode&&(G.parentNode.removeChild(G),G=null)};U.addEventListener("mouseenter",ae),U.addEventListener("mouseleave",Ge),h.addEventListener("focus",ae),h.addEventListener("blur",Ge),U._cleanupTooltip=()=>{Ge(),U.removeEventListener("mouseenter",ae),U.removeEventListener("mouseleave",Ge),h.removeEventListener("focus",ae),h.removeEventListener("blur",Ge)}}return a!=="top-right"&&t.appendChild(U),{header:t,iconHolder:f,headerTitle:m,headerSubtitle:w,closeButton:h,closeButtonWrapper:U,clearChatButton:y,clearChatButtonWrapper:L}},rn=(e,n,r)=>{var i,a,d,u;let t=(i=r==null?void 0:r.launcher)!=null?i:{},o=(a=t.closeButtonPlacement)!=null?a:"inline",s=(u=(d=t.clearChat)==null?void 0:d.placement)!=null?u:"inline";e.appendChild(n.header),o==="top-right"&&(e.style.position="relative",e.appendChild(n.closeButtonWrapper)),n.clearChatButtonWrapper&&s==="top-right"&&(e.style.position="relative",e.appendChild(n.clearChatButtonWrapper))};var bs=e=>Kt({config:e.config,showClose:e.showClose,onClose:e.onClose,onClearChat:e.onClearChat}),Cs=e=>{var A,b,T,y;let{config:n,showClose:r=!0,onClose:t}=e,o=(A=n==null?void 0:n.launcher)!=null?A:{},s=g("div","tvw-flex tvw-items-center tvw-justify-between tvw-bg-cw-surface tvw-px-6 tvw-py-4 tvw-border-b-cw-divider"),i=g("span","tvw-text-base tvw-font-semibold");i.textContent=(b=o.title)!=null?b:"Chat Assistant",s.appendChild(i);let a=(T=o.closeButtonSize)!=null?T:"32px",d=g("div",""),u=g("button","tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-text-cw-muted hover:tvw-bg-gray-100 tvw-cursor-pointer tvw-border-none");u.style.height=a,u.style.width=a,u.type="button",u.setAttribute("aria-label","Close chat"),u.style.display=r?"":"none";let f=(y=o.closeButtonIconName)!=null?y:"x",p=re(f,"20px",o.closeButtonColor||"",2);p?u.appendChild(p):u.textContent="\xD7",t&&u.addEventListener("click",t),d.appendChild(u),s.appendChild(d);let m=g("div");m.style.display="none";let w=g("span");return w.style.display="none",{header:s,iconHolder:m,headerTitle:i,headerSubtitle:w,closeButton:u,closeButtonWrapper:d,clearChatButton:null,clearChatButtonWrapper:null}},xs=e=>{var h,O,M,W,V,$,Z,le;let{config:n,showClose:r=!0,onClose:t,onClearChat:o}=e,s=(h=n==null?void 0:n.launcher)!=null?h:{},i=g("div","tvw-flex tvw-flex-col tvw-bg-cw-surface tvw-px-6 tvw-py-5 tvw-border-b-cw-divider"),a=g("div","tvw-flex tvw-items-center tvw-gap-3"),d=(O=s.headerIconSize)!=null?O:"56px",u=g("div","tvw-flex tvw-items-center tvw-justify-center tvw-rounded-xl tvw-bg-cw-primary tvw-text-white tvw-text-2xl");u.style.height=d,u.style.width=d;let f=s.headerIconName;if(f){let z=parseFloat(d)||24,xe=re(f,z*.5,"#ffffff",2);xe?u.replaceChildren(xe):u.textContent=(M=s.agentIconText)!=null?M:"\u{1F4AC}"}else if(s.iconUrl){let z=g("img");z.src=s.iconUrl,z.alt="",z.className="tvw-rounded-xl tvw-object-cover",z.style.height=d,z.style.width=d,u.replaceChildren(z)}else u.textContent=(W=s.agentIconText)!=null?W:"\u{1F4AC}";let p=g("div","tvw-flex tvw-flex-col tvw-flex-1"),m=g("span","tvw-text-lg tvw-font-semibold");m.textContent=(V=s.title)!=null?V:"Chat Assistant";let w=g("span","tvw-text-sm tvw-text-cw-muted");w.textContent=($=s.subtitle)!=null?$:"Here to help you get answers fast",p.append(m,w),a.append(u,p);let A=(Z=s.closeButtonSize)!=null?Z:"32px",b=g("div",""),T=g("button","tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-text-cw-muted hover:tvw-bg-gray-100 tvw-cursor-pointer tvw-border-none");T.style.height=A,T.style.width=A,T.type="button",T.setAttribute("aria-label","Close chat"),T.style.display=r?"":"none";let y=(le=s.closeButtonIconName)!=null?le:"x",L=re(y,"20px",s.closeButtonColor||"",2);L?T.appendChild(L):T.textContent="\xD7",t&&T.addEventListener("click",t),b.appendChild(T),a.appendChild(b),i.appendChild(a);let U=g("div","tvw-mt-3 tvw-pt-3 tvw-border-t tvw-border-gray-100 tvw-text-xs tvw-text-cw-muted");return U.textContent="Online and ready to help",i.appendChild(U),{header:i,iconHolder:u,headerTitle:m,headerSubtitle:w,closeButton:T,closeButtonWrapper:b,clearChatButton:null,clearChatButtonWrapper:null}},ts={default:bs,minimal:Cs,expanded:xs},Ss=e=>{var n;return(n=ts[e])!=null?n:ts.default},gn=(e,n,r)=>{var i,a,d;if(n!=null&&n.render){let u=n.render({config:e,onClose:r==null?void 0:r.onClose,onClearChat:r==null?void 0:r.onClearChat}),f=g("div");f.style.display="none";let p=g("span"),m=g("span"),w=g("button");w.style.display="none";let A=g("div");return A.style.display="none",{header:u,iconHolder:f,headerTitle:p,headerSubtitle:m,closeButton:w,closeButtonWrapper:A,clearChatButton:null,clearChatButtonWrapper:null}}let t=(i=n==null?void 0:n.layout)!=null?i:"default",s=Ss(t)({config:e,showClose:(d=(a=n==null?void 0:n.showCloseButton)!=null?a:r==null?void 0:r.showClose)!=null?d:!0,onClose:r==null?void 0:r.onClose,onClearChat:r==null?void 0:r.onClearChat});return n&&(n.showIcon===!1&&(s.iconHolder.style.display="none"),n.showTitle===!1&&(s.headerTitle.style.display="none"),n.showSubtitle===!1&&(s.headerSubtitle.style.display="none"),n.showCloseButton===!1&&(s.closeButton.style.display="none"),n.showClearChat===!1&&s.clearChatButtonWrapper&&(s.clearChatButtonWrapper.style.display="none")),s};var ra=e=>{switch(e){case"serif":return'Georgia, "Times New Roman", Times, serif';case"mono":return'"Courier New", Courier, "Lucida Console", Monaco, monospace';case"sans-serif":default:return'-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif'}},mn=e=>{var Ct,xt,Ot,Nt,_,Se,it,at,Xe,lt,zt,jt,Dt,R,Ke,ye,tt,ve,G,ae,Ge,dt,At,Wt,It,Pe,nt,Lt,Tt,ct;let{config:n}=e,r=g("div","tvw-widget-footer tvw-border-t-cw-divider tvw-bg-cw-surface tvw-px-6 tvw-py-4"),t=g("div","tvw-mb-3 tvw-flex tvw-flex-wrap tvw-gap-2"),o=g("form","tvw-widget-composer tvw-flex tvw-flex-col tvw-gap-2 tvw-rounded-2xl tvw-border tvw-border-gray-200 tvw-bg-cw-input-background tvw-px-4 tvw-py-3");o.style.outline="none";let s=g("textarea");s.placeholder=(xt=(Ct=n==null?void 0:n.copy)==null?void 0:Ct.inputPlaceholder)!=null?xt:"Type your message\u2026",s.className="tvw-w-full tvw-min-h-[24px] tvw-resize-none tvw-border-none tvw-bg-transparent tvw-text-sm tvw-text-cw-primary focus:tvw-outline-none focus:tvw-border-none tvw-composer-textarea",s.rows=1;let i=(Nt=(Ot=n==null?void 0:n.theme)==null?void 0:Ot.inputFontFamily)!=null?Nt:"sans-serif",a=(Se=(_=n==null?void 0:n.theme)==null?void 0:_.inputFontWeight)!=null?Se:"400";s.style.fontFamily=ra(i),s.style.fontWeight=a;let f=3*20;s.style.maxHeight=`${f}px`,s.style.overflowY="auto";let p=()=>{s.style.height="auto";let v=Math.min(s.scrollHeight,f);s.style.height=`${v}px`};s.addEventListener("input",p),s.style.border="none",s.style.outline="none",s.style.borderWidth="0",s.style.borderStyle="none",s.style.borderColor="transparent",s.addEventListener("focus",()=>{s.style.border="none",s.style.outline="none",s.style.borderWidth="0",s.style.borderStyle="none",s.style.borderColor="transparent",s.style.boxShadow="none"}),s.addEventListener("blur",()=>{s.style.border="none",s.style.outline="none"});let m=(it=n==null?void 0:n.sendButton)!=null?it:{},w=(at=m.useIcon)!=null?at:!1,A=(Xe=m.iconText)!=null?Xe:"\u2191",b=m.iconName,T=(lt=m.tooltipText)!=null?lt:"Send message",y=(zt=m.showTooltip)!=null?zt:!1,L=(jt=m.size)!=null?jt:"40px",U=m.backgroundColor,h=m.textColor,O=g("div","tvw-send-button-wrapper"),M=g("button",w?"tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer":"tvw-rounded-button tvw-bg-cw-accent tvw-px-4 tvw-py-2 tvw-text-sm tvw-font-semibold disabled:tvw-opacity-50 tvw-cursor-pointer");if(M.type="submit",w){if(M.style.width=L,M.style.height=L,M.style.minWidth=L,M.style.minHeight=L,M.style.fontSize="18px",M.style.lineHeight="1",M.innerHTML="",b){let v=parseFloat(L)||24,Te=h&&typeof h=="string"&&h.trim()?h.trim():"currentColor",je=re(b,v,Te,2);je?(M.appendChild(je),M.style.color=Te):(M.textContent=A,h?M.style.color=h:M.classList.add("tvw-text-white"))}else M.textContent=A,h?M.style.color=h:M.classList.add("tvw-text-white");U?M.style.backgroundColor=U:M.classList.add("tvw-bg-cw-primary")}else M.textContent=(R=(Dt=n==null?void 0:n.copy)==null?void 0:Dt.sendButtonLabel)!=null?R:"Send",h?M.style.color=h:M.classList.add("tvw-text-white");if(m.borderWidth&&(M.style.borderWidth=m.borderWidth,M.style.borderStyle="solid"),m.borderColor&&(M.style.borderColor=m.borderColor),m.paddingX?(M.style.paddingLeft=m.paddingX,M.style.paddingRight=m.paddingX):(M.style.paddingLeft="",M.style.paddingRight=""),m.paddingY?(M.style.paddingTop=m.paddingY,M.style.paddingBottom=m.paddingY):(M.style.paddingTop="",M.style.paddingBottom=""),y&&T){let v=g("div","tvw-send-button-tooltip");v.textContent=T,O.appendChild(v)}O.appendChild(M);let W=(Ke=n==null?void 0:n.voiceRecognition)!=null?Ke:{},V=W.enabled===!0,$=null,Z=null,le=typeof window!="undefined"&&(typeof window.webkitSpeechRecognition!="undefined"||typeof window.SpeechRecognition!="undefined");if(V&&le){Z=g("div","tvw-send-button-wrapper"),$=g("button","tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer"),$.type="button",$.setAttribute("aria-label","Start voice recognition");let v=(ye=W.iconName)!=null?ye:"mic",Te=(tt=W.iconSize)!=null?tt:L,je=parseFloat(Te)||24,mt=(ve=W.backgroundColor)!=null?ve:U,st=(G=W.iconColor)!=null?G:h;$.style.width=Te,$.style.height=Te,$.style.minWidth=Te,$.style.minHeight=Te,$.style.fontSize="18px",$.style.lineHeight="1";let ht=st||"currentColor",ft=re(v,je,ht,1.5);ft?($.appendChild(ft),$.style.color=ht):($.textContent="\u{1F3A4}",$.style.color=ht),mt?$.style.backgroundColor=mt:$.classList.add("tvw-bg-cw-primary"),st?$.style.color=st:!st&&!h&&$.classList.add("tvw-text-white"),W.borderWidth&&($.style.borderWidth=W.borderWidth,$.style.borderStyle="solid"),W.borderColor&&($.style.borderColor=W.borderColor),W.paddingX&&($.style.paddingLeft=W.paddingX,$.style.paddingRight=W.paddingX),W.paddingY&&($.style.paddingTop=W.paddingY,$.style.paddingBottom=W.paddingY),Z.appendChild($);let Pt=(ae=W.tooltipText)!=null?ae:"Start voice recognition";if(((Ge=W.showTooltip)!=null?Ge:!1)&&Pt){let en=g("div","tvw-send-button-tooltip");en.textContent=Pt,Z.appendChild(en)}}let z=(dt=n==null?void 0:n.attachments)!=null?dt:{},xe=z.enabled===!0,B=null,N=null,oe=null,ie=null;if(xe){ie=g("div","tvw-attachment-previews tvw-flex tvw-flex-wrap tvw-gap-2 tvw-mb-2"),ie.style.display="none",oe=g("input"),oe.type="file",oe.accept=((At=z.allowedTypes)!=null?At:Qt).join(","),oe.multiple=((Wt=z.maxFiles)!=null?Wt:4)>1,oe.style.display="none",oe.setAttribute("aria-label","Attach files"),N=g("div","tvw-send-button-wrapper"),B=g("button","tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer tvw-attachment-button"),B.type="button",B.setAttribute("aria-label",(It=z.buttonTooltipText)!=null?It:"Attach file");let v=(Pe=z.buttonIconName)!=null?Pe:"paperclip",Te=L,je=parseFloat(Te)||40,mt=Math.round(je*.6);B.style.width=Te,B.style.height=Te,B.style.minWidth=Te,B.style.minHeight=Te,B.style.fontSize="18px",B.style.lineHeight="1",B.style.backgroundColor="transparent",B.style.color="var(--cw-primary, #111827)",B.style.border="none",B.style.borderRadius="6px",B.style.transition="background-color 0.15s ease",B.addEventListener("mouseenter",()=>{B.style.backgroundColor="rgba(0, 0, 0, 0.05)"}),B.addEventListener("mouseleave",()=>{B.style.backgroundColor="transparent"});let st=re(v,mt,"currentColor",1.5);st?B.appendChild(st):B.textContent="\u{1F4CE}",B.addEventListener("click",Pt=>{Pt.preventDefault(),oe==null||oe.click()}),N.appendChild(B);let ht=(nt=z.buttonTooltipText)!=null?nt:"Attach file",ft=g("div","tvw-send-button-tooltip");ft.textContent=ht,N.appendChild(ft)}o.addEventListener("click",v=>{v.target!==M&&v.target!==O&&v.target!==$&&v.target!==Z&&v.target!==B&&v.target!==N&&s.focus()}),ie&&(ie.style.gap="8px",o.append(ie)),oe&&o.append(oe),o.append(s);let Le=g("div","tvw-flex tvw-items-center tvw-justify-between tvw-w-full"),Ye=g("div","tvw-flex tvw-items-center tvw-gap-2");N&&Ye.append(N);let bt=g("div","tvw-flex tvw-items-center tvw-gap-1");Z&&bt.append(Z),bt.append(O),Le.append(Ye,bt),o.append(Le);let Q=g("div","tvw-mt-2 tvw-text-right tvw-text-xs tvw-text-cw-muted"),D=(Lt=n==null?void 0:n.statusIndicator)!=null?Lt:{},gt=(Tt=D.visible)!=null?Tt:!0;return Q.style.display=gt?"":"none",Q.textContent=(ct=D.idleText)!=null?ct:"Online",r.append(t,o,Q),{footer:r,suggestions:t,composerForm:o,textarea:s,sendButton:M,sendButtonWrapper:O,micButton:$,micButtonWrapper:Z,statusText:Q,attachmentButton:B,attachmentButtonWrapper:N,attachmentInput:oe,attachmentPreviewsContainer:ie,actionsRow:Le,leftActions:Ye,rightActions:bt}};var ui=e=>{var d,u,f,p,m,w,A;if(!((u=(d=e==null?void 0:e.launcher)==null?void 0:d.enabled)!=null?u:!0)){let b=g("div","tvw-relative tvw-h-full tvw-flex tvw-flex-col tvw-flex-1 tvw-min-h-0"),T=g("div","tvw-relative tvw-flex-1 tvw-flex tvw-flex-col tvw-min-h-0"),y=(p=(f=e==null?void 0:e.launcher)==null?void 0:f.width)!=null?p:"100%";return b.style.width=y,T.style.width="100%",b.appendChild(T),{wrapper:b,panel:T}}let r=(m=e==null?void 0:e.launcher)!=null?m:{},t=r.position&&$t[r.position]?$t[r.position]:$t["bottom-right"],o=g("div",`tvw-widget-wrapper tvw-fixed ${t} tvw-z-50 tvw-transition`),s=g("div","tvw-widget-panel tvw-relative tvw-min-h-[320px]"),i=(A=(w=e==null?void 0:e.launcher)==null?void 0:w.width)!=null?A:e==null?void 0:e.launcherWidth,a=i!=null?i:"min(400px, calc(100vw - 24px))";return s.style.width=a,s.style.maxWidth=a,o.appendChild(s),{wrapper:o,panel:s}},pi=(e,n=!0)=>{var w,A,b,T,y,L,U;let r=g("div","tvw-widget-container tvw-flex tvw-h-full tvw-w-full tvw-flex-1 tvw-min-h-0 tvw-flex-col tvw-bg-cw-surface tvw-text-cw-primary tvw-rounded-2xl tvw-overflow-hidden tvw-border tvw-border-cw-border"),t=(w=e==null?void 0:e.layout)==null?void 0:w.header,o=((A=e==null?void 0:e.layout)==null?void 0:A.showHeader)!==!1,s=t?gn(e,t,{showClose:n}):Kt({config:e,showClose:n}),i=g("div","tvw-widget-body tvw-flex tvw-flex-1 tvw-min-h-0 tvw-flex-col tvw-gap-6 tvw-overflow-y-auto tvw-bg-cw-container tvw-px-6 tvw-py-6");i.id="persona-scroll-container";let a=g("div","tvw-rounded-2xl tvw-bg-cw-surface tvw-p-6 tvw-shadow-sm"),d=g("h2","tvw-text-lg tvw-font-semibold tvw-text-cw-primary");d.textContent=(T=(b=e==null?void 0:e.copy)==null?void 0:b.welcomeTitle)!=null?T:"Hello \u{1F44B}";let u=g("p","tvw-mt-2 tvw-text-sm tvw-text-cw-muted");u.textContent=(L=(y=e==null?void 0:e.copy)==null?void 0:y.welcomeSubtitle)!=null?L:"Ask anything about your account or products.",a.append(d,u);let f=g("div","tvw-flex tvw-flex-col tvw-gap-3");i.append(a,f);let p=mn({config:e}),m=((U=e==null?void 0:e.layout)==null?void 0:U.showFooter)!==!1;return o?rn(r,s,e):(s.header.style.display="none",rn(r,s,e)),r.append(i),m||(p.footer.style.display="none"),r.append(p.footer),{container:r,body:i,messagesWrapper:f,suggestions:p.suggestions,textarea:p.textarea,sendButton:p.sendButton,sendButtonWrapper:p.sendButtonWrapper,micButton:p.micButton,micButtonWrapper:p.micButtonWrapper,composerForm:p.composerForm,statusText:p.statusText,introTitle:d,introSubtitle:u,closeButton:s.closeButton,closeButtonWrapper:s.closeButtonWrapper,clearChatButton:s.clearChatButton,clearChatButtonWrapper:s.clearChatButtonWrapper,iconHolder:s.iconHolder,headerTitle:s.headerTitle,headerSubtitle:s.headerSubtitle,header:s.header,footer:p.footer,attachmentButton:p.attachmentButton,attachmentButtonWrapper:p.attachmentButtonWrapper,attachmentInput:p.attachmentInput,attachmentPreviewsContainer:p.attachmentPreviewsContainer,actionsRow:p.actionsRow,leftActions:p.leftActions,rightActions:p.rightActions}};var on=()=>{let e=document.createElement("div");e.className="tvw-flex tvw-items-center tvw-space-x-1 tvw-h-5 tvw-mt-2";let n=document.createElement("div");n.className="tvw-bg-cw-primary tvw-animate-typing tvw-rounded-full tvw-h-1.5 tvw-w-1.5",n.style.animationDelay="0ms";let r=document.createElement("div");r.className="tvw-bg-cw-primary tvw-animate-typing tvw-rounded-full tvw-h-1.5 tvw-w-1.5",r.style.animationDelay="250ms";let t=document.createElement("div");t.className="tvw-bg-cw-primary tvw-animate-typing tvw-rounded-full tvw-h-1.5 tvw-w-1.5",t.style.animationDelay="500ms";let o=document.createElement("span");return o.className="tvw-sr-only",o.textContent="Loading",e.appendChild(n),e.appendChild(r),e.appendChild(t),e.appendChild(o),e},As=(e,n,r)=>{let t={config:r!=null?r:{},streaming:!0,location:e,defaultRenderer:on};if(n){let o=n(t);if(o!==null)return o}return on()},oa=(e,n)=>{let r=g("div","tvw-flex-shrink-0 tvw-w-8 tvw-h-8 tvw-rounded-full tvw-flex tvw-items-center tvw-justify-center tvw-text-sm"),t=n==="user"?e.userAvatar:e.assistantAvatar;if(t)if(t.startsWith("http")||t.startsWith("/")||t.startsWith("data:")){let o=g("img");o.src=t,o.alt=n==="user"?"User":"Assistant",o.className="tvw-w-full tvw-h-full tvw-rounded-full tvw-object-cover",r.appendChild(o)}else r.textContent=t,r.classList.add(n==="user"?"tvw-bg-cw-accent":"tvw-bg-cw-primary","tvw-text-white");else r.textContent=n==="user"?"U":"A",r.classList.add(n==="user"?"tvw-bg-cw-accent":"tvw-bg-cw-primary","tvw-text-white");return r},gi=(e,n)=>{let r=g("div","tvw-text-xs tvw-text-cw-muted"),t=new Date(e.createdAt);return n.format?r.textContent=n.format(t):r.textContent=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),r},ia=(e,n="bubble")=>{let r=["vanilla-message-bubble","tvw-max-w-[85%]"];switch(n){case"flat":e==="user"?r.push("vanilla-message-user-bubble","tvw-ml-auto","tvw-text-cw-primary","tvw-py-2"):r.push("vanilla-message-assistant-bubble","tvw-text-cw-primary","tvw-py-2");break;case"minimal":r.push("tvw-text-sm","tvw-leading-relaxed"),e==="user"?r.push("vanilla-message-user-bubble","tvw-ml-auto","tvw-bg-cw-accent","tvw-text-white","tvw-px-3","tvw-py-2","tvw-rounded-lg"):r.push("vanilla-message-assistant-bubble","tvw-bg-cw-surface","tvw-text-cw-primary","tvw-px-3","tvw-py-2","tvw-rounded-lg");break;case"bubble":default:r.push("tvw-rounded-2xl","tvw-text-sm","tvw-leading-relaxed","tvw-shadow-sm"),e==="user"?r.push("vanilla-message-user-bubble","tvw-ml-auto","tvw-bg-cw-accent","tvw-text-white","tvw-px-5","tvw-py-3"):r.push("vanilla-message-assistant-bubble","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-text-cw-primary","tvw-px-5","tvw-py-3");break}return r},Ts=(e,n,r)=>{var A,b,T,y,L,U;let t=(A=n.showCopy)!=null?A:!0,o=(b=n.showUpvote)!=null?b:!0,s=(T=n.showDownvote)!=null?T:!0,i=(y=n.visibility)!=null?y:"hover",a=(L=n.align)!=null?L:"right",d=(U=n.layout)!=null?U:"pill-inside",u={left:"tvw-message-actions-left",center:"tvw-message-actions-center",right:"tvw-message-actions-right"}[a],f={"pill-inside":"tvw-message-actions-pill","row-inside":"tvw-message-actions-row"}[d],p=g("div",`tvw-message-actions tvw-flex tvw-items-center tvw-gap-1 tvw-mt-2 ${u} ${f} ${i==="hover"?"tvw-message-actions-hover":""}`);p.id=`actions-${e.id}`,p.setAttribute("data-actions-for",e.id);let m=null,w=(h,O,M,W)=>{let V=document.createElement("button");V.className="tvw-message-action-btn",V.setAttribute("aria-label",O),V.setAttribute("title",O),W&&V.setAttribute("data-action",W);let $=re(h,14,"currentColor",2);return $&&V.appendChild($),V.addEventListener("click",Z=>{Z.preventDefault(),Z.stopPropagation(),M()}),V};if(t){let h=w("copy","Copy message",()=>{let O=e.content||"";navigator.clipboard.writeText(O).then(()=>{h.classList.add("tvw-message-action-success");let M=re("check",14,"currentColor",2);M&&(h.innerHTML="",h.appendChild(M)),setTimeout(()=>{h.classList.remove("tvw-message-action-success");let W=re("copy",14,"currentColor",2);W&&(h.innerHTML="",h.appendChild(W))},2e3)}).catch(M=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to copy message:",M)}),r!=null&&r.onCopy&&r.onCopy(e),n.onCopy&&n.onCopy(e)},"copy");p.appendChild(h)}if(o){let h=w("thumbs-up","Upvote",()=>{if(m==="upvote")m=null,h.classList.remove("tvw-message-action-active");else{let M=p.querySelector('[data-action="downvote"]');M&&M.classList.remove("tvw-message-action-active"),m="upvote",h.classList.add("tvw-message-action-active");let W={type:"upvote",messageId:e.id,message:e};r!=null&&r.onFeedback&&r.onFeedback(W),n.onFeedback&&n.onFeedback(W)}},"upvote");p.appendChild(h)}if(s){let h=w("thumbs-down","Downvote",()=>{if(m==="downvote")m=null,h.classList.remove("tvw-message-action-active");else{let M=p.querySelector('[data-action="upvote"]');M&&M.classList.remove("tvw-message-action-active"),m="downvote",h.classList.add("tvw-message-action-active");let W={type:"downvote",messageId:e.id,message:e};r!=null&&r.onFeedback&&r.onFeedback(W),n.onFeedback&&n.onFeedback(W)}},"downvote");p.appendChild(h)}return p},hn=(e,n,r,t,o,s)=>{var h,O,M,W,V;let i=r!=null?r:{},a=(h=i.layout)!=null?h:"bubble",d=i.avatar,u=i.timestamp,f=(O=d==null?void 0:d.show)!=null?O:!1,p=(M=u==null?void 0:u.show)!=null?M:!1,m=(W=d==null?void 0:d.position)!=null?W:"left",w=(V=u==null?void 0:u.position)!=null?V:"below",A=ia(e.role,a),b=g("div",A.join(" "));b.id=`bubble-${e.id}`,b.setAttribute("data-message-id",e.id);let T=document.createElement("div");if(T.innerHTML=n({text:e.content,message:e,streaming:!!e.streaming,raw:e.rawContent}),p&&w==="inline"&&e.createdAt){let $=gi(e,u);$.classList.add("tvw-ml-2","tvw-inline"),T.appendChild($)}if(b.appendChild(T),p&&w==="below"&&e.createdAt){let $=gi(e,u);$.classList.add("tvw-mt-1"),b.appendChild($)}if(e.streaming&&e.role==="assistant"&&(!e.content||!e.content.trim())){let $=As("inline",s==null?void 0:s.loadingIndicatorRenderer,s==null?void 0:s.widgetConfig);$&&b.appendChild($)}if(e.role==="assistant"&&!e.streaming&&e.content&&e.content.trim()&&(t==null?void 0:t.enabled)!==!1&&t){let $=Ts(e,t,o);b.appendChild($)}if(!f||e.role==="system")return b;let L=g("div",`tvw-flex tvw-gap-2 ${e.role==="user"?"tvw-flex-row-reverse":""}`),U=oa(d,e.role);return m==="right"||m==="left"&&e.role==="user"?L.append(b,U):L.append(U,b),b.classList.remove("tvw-max-w-[85%]"),b.classList.add("tvw-max-w-[calc(85%-2.5rem)]"),L},mi=(e,n,r,t,o,s)=>{let i=r!=null?r:{};return e.role==="user"&&i.renderUserMessage?i.renderUserMessage({message:e,config:{},streaming:!!e.streaming}):e.role==="assistant"&&i.renderAssistantMessage?i.renderAssistantMessage({message:e,config:{},streaming:!!e.streaming}):hn(e,n,r,t,o,s)};var fn=new Set,hi=(e,n)=>{let r=fn.has(e),t=n.querySelector('button[data-expand-header="true"]'),o=n.querySelector(".tvw-border-t");if(!t||!o)return;t.setAttribute("aria-expanded",r?"true":"false");let s=t.querySelector(".tvw-ml-auto"),i=s==null?void 0:s.querySelector(":scope > .tvw-flex.tvw-items-center");if(i){i.innerHTML="";let d=re(r?"chevron-up":"chevron-down",16,"currentColor",2);d?i.appendChild(d):i.textContent=r?"Hide":"Show"}o.style.display=r?"":"none"},Ms=e=>{let n=e.reasoning,r=g("div",["vanilla-message-bubble","vanilla-reasoning-bubble","tvw-w-full","tvw-max-w-[85%]","tvw-rounded-2xl","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-text-cw-primary","tvw-shadow-sm","tvw-overflow-hidden","tvw-px-0","tvw-py-0"].join(" "));if(r.id=`bubble-${e.id}`,r.setAttribute("data-message-id",e.id),!n)return r;let t=fn.has(e.id),o=g("button","tvw-flex tvw-w-full tvw-items-center tvw-justify-between tvw-gap-3 tvw-bg-transparent tvw-px-4 tvw-py-3 tvw-text-left tvw-cursor-pointer tvw-border-none");o.type="button",o.setAttribute("aria-expanded",t?"true":"false"),o.setAttribute("data-expand-header","true"),o.setAttribute("data-bubble-type","reasoning");let s=g("div","tvw-flex tvw-flex-col tvw-text-left"),i=g("span","tvw-text-xs tvw-text-cw-primary");i.textContent="Thinking...",s.appendChild(i);let a=g("span","tvw-text-xs tvw-text-cw-primary");a.textContent=zo(n),s.appendChild(a),n.status==="complete"?i.style.display="none":i.style.display="";let d=g("div","tvw-flex tvw-items-center"),f=re(t?"chevron-up":"chevron-down",16,"currentColor",2);f?d.appendChild(f):d.textContent=t?"Hide":"Show";let p=g("div","tvw-flex tvw-items-center tvw-ml-auto");p.append(d),o.append(s,p);let m=g("div","tvw-border-t tvw-border-gray-200 tvw-bg-gray-50 tvw-px-4 tvw-py-3");m.style.display=t?"":"none";let w=n.chunks.join(""),A=g("div","tvw-whitespace-pre-wrap tvw-text-xs tvw-leading-snug tvw-text-cw-muted");return A.textContent=w||(n.status==="complete"?"No additional context was shared.":"Waiting for details\u2026"),m.appendChild(A),(()=>{o.setAttribute("aria-expanded",t?"true":"false"),d.innerHTML="";let y=re(t?"chevron-up":"chevron-down",16,"currentColor",2);y?d.appendChild(y):d.textContent=t?"Hide":"Show",m.style.display=t?"":"none"})(),r.append(o,m),r};var wn=new Set,fi=(e,n,r)=>{var u;let t=wn.has(e),o=(u=r==null?void 0:r.toolCall)!=null?u:{},s=n.querySelector('button[data-expand-header="true"]'),i=n.querySelector(".tvw-border-t");if(!s||!i)return;s.setAttribute("aria-expanded",t?"true":"false");let a=s.querySelector(".tvw-ml-auto"),d=a==null?void 0:a.querySelector(":scope > .tvw-flex.tvw-items-center");if(d){d.innerHTML="";let f=o.toggleTextColor||o.headerTextColor||"currentColor",p=re(t?"chevron-up":"chevron-down",16,f,2);p?d.appendChild(p):d.textContent=t?"Hide":"Show"}i.style.display=t?"":"none"},Es=(e,n)=>{var b;let r=e.toolCall,t=(b=n==null?void 0:n.toolCall)!=null?b:{},o=g("div",["vanilla-message-bubble","vanilla-tool-bubble","tvw-w-full","tvw-max-w-[85%]","tvw-rounded-2xl","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-text-cw-primary","tvw-shadow-sm","tvw-overflow-hidden","tvw-px-0","tvw-py-0"].join(" "));if(o.id=`bubble-${e.id}`,o.setAttribute("data-message-id",e.id),t.backgroundColor&&(o.style.backgroundColor=t.backgroundColor),t.borderColor&&(o.style.borderColor=t.borderColor),t.borderWidth&&(o.style.borderWidth=t.borderWidth),t.borderRadius&&(o.style.borderRadius=t.borderRadius),!r)return o;let s=wn.has(e.id),i=g("button","tvw-flex tvw-w-full tvw-items-center tvw-justify-between tvw-gap-3 tvw-bg-transparent tvw-px-4 tvw-py-3 tvw-text-left tvw-cursor-pointer tvw-border-none");i.type="button",i.setAttribute("aria-expanded",s?"true":"false"),i.setAttribute("data-expand-header","true"),i.setAttribute("data-bubble-type","tool"),t.headerBackgroundColor&&(i.style.backgroundColor=t.headerBackgroundColor),t.headerPaddingX&&(i.style.paddingLeft=t.headerPaddingX,i.style.paddingRight=t.headerPaddingX),t.headerPaddingY&&(i.style.paddingTop=t.headerPaddingY,i.style.paddingBottom=t.headerPaddingY);let a=g("div","tvw-flex tvw-flex-col tvw-text-left"),d=g("span","tvw-text-xs tvw-text-cw-primary");t.headerTextColor&&(d.style.color=t.headerTextColor),d.textContent=Jo(r),a.appendChild(d);let u=g("div","tvw-flex tvw-items-center"),f=t.toggleTextColor||t.headerTextColor||"currentColor",p=re(s?"chevron-up":"chevron-down",16,f,2);p?u.appendChild(p):u.textContent=s?"Hide":"Show";let m=g("div","tvw-flex tvw-items-center tvw-gap-2 tvw-ml-auto");m.append(u),i.append(a,m);let w=g("div","tvw-border-t tvw-border-gray-200 tvw-bg-gray-50 tvw-space-y-3 tvw-px-4 tvw-py-3");if(w.style.display=s?"":"none",t.contentBackgroundColor&&(w.style.backgroundColor=t.contentBackgroundColor),t.contentTextColor&&(w.style.color=t.contentTextColor),t.contentPaddingX&&(w.style.paddingLeft=t.contentPaddingX,w.style.paddingRight=t.contentPaddingX),t.contentPaddingY&&(w.style.paddingTop=t.contentPaddingY,w.style.paddingBottom=t.contentPaddingY),r.name){let T=g("div","tvw-text-xs tvw-text-cw-muted tvw-italic");t.contentTextColor?T.style.color=t.contentTextColor:t.headerTextColor&&(T.style.color=t.headerTextColor),T.textContent=r.name,w.appendChild(T)}if(r.args!==void 0){let T=g("div","tvw-space-y-1"),y=g("div","tvw-text-xs tvw-text-cw-muted");t.labelTextColor&&(y.style.color=t.labelTextColor),y.textContent="Arguments";let L=g("pre","tvw-max-h-48 tvw-overflow-auto tvw-whitespace-pre-wrap tvw-rounded-lg tvw-border tvw-border-gray-100 tvw-bg-white tvw-px-3 tvw-py-2 tvw-text-xs tvw-text-cw-primary");L.style.fontSize="0.75rem",L.style.lineHeight="1rem",t.codeBlockBackgroundColor&&(L.style.backgroundColor=t.codeBlockBackgroundColor),t.codeBlockBorderColor&&(L.style.borderColor=t.codeBlockBorderColor),t.codeBlockTextColor&&(L.style.color=t.codeBlockTextColor),L.textContent=ys(r.args),T.append(y,L),w.appendChild(T)}if(r.chunks&&r.chunks.length){let T=g("div","tvw-space-y-1"),y=g("div","tvw-text-xs tvw-text-cw-muted");t.labelTextColor&&(y.style.color=t.labelTextColor),y.textContent="Activity";let L=g("pre","tvw-max-h-48 tvw-overflow-auto tvw-whitespace-pre-wrap tvw-rounded-lg tvw-border tvw-border-gray-100 tvw-bg-white tvw-px-3 tvw-py-2 tvw-text-xs tvw-text-cw-primary");L.style.fontSize="0.75rem",L.style.lineHeight="1rem",t.codeBlockBackgroundColor&&(L.style.backgroundColor=t.codeBlockBackgroundColor),t.codeBlockBorderColor&&(L.style.borderColor=t.codeBlockBorderColor),t.codeBlockTextColor&&(L.style.color=t.codeBlockTextColor),L.textContent=r.chunks.join(`
16
- `),T.append(y,L),w.appendChild(T)}if(r.status==="complete"&&r.result!==void 0){let T=g("div","tvw-space-y-1"),y=g("div","tvw-text-xs tvw-text-cw-muted");t.labelTextColor&&(y.style.color=t.labelTextColor),y.textContent="Result";let L=g("pre","tvw-max-h-48 tvw-overflow-auto tvw-whitespace-pre-wrap tvw-rounded-lg tvw-border tvw-border-gray-100 tvw-bg-white tvw-px-3 tvw-py-2 tvw-text-xs tvw-text-cw-primary");L.style.fontSize="0.75rem",L.style.lineHeight="1rem",t.codeBlockBackgroundColor&&(L.style.backgroundColor=t.codeBlockBackgroundColor),t.codeBlockBorderColor&&(L.style.borderColor=t.codeBlockBorderColor),t.codeBlockTextColor&&(L.style.color=t.codeBlockTextColor),L.textContent=ys(r.result),T.append(y,L),w.appendChild(T)}if(r.status==="complete"&&typeof r.duration=="number"){let T=g("div","tvw-text-xs tvw-text-cw-muted");t.contentTextColor&&(T.style.color=t.contentTextColor),T.textContent=`Duration: ${r.duration}ms`,w.appendChild(T)}return(()=>{i.setAttribute("aria-expanded",s?"true":"false"),u.innerHTML="";let T=t.toggleTextColor||t.headerTextColor||"currentColor",y=re(s?"chevron-up":"chevron-down",16,T,2);y?u.appendChild(y):u.textContent=s?"Hide":"Show",w.style.display=s?"":"none"})(),o.append(i,w),o};var wi=e=>{let n=[];return{buttons:n,render:(t,o,s,i,a)=>{if(e.innerHTML="",n.length=0,!t||!t.length||(i!=null?i:o?o.getMessages():[]).some(w=>w.role==="user"))return;let f=document.createDocumentFragment(),p=o?o.isStreaming():!1,m=w=>{switch(w){case"serif":return'Georgia, "Times New Roman", Times, serif';case"mono":return'"Courier New", Courier, "Lucida Console", Monaco, monospace';case"sans-serif":default:return'-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif'}};t.forEach(w=>{let A=g("button","tvw-rounded-button tvw-bg-cw-surface tvw-px-3 tvw-py-1.5 tvw-text-xs tvw-font-medium tvw-text-cw-muted hover:tvw-opacity-90 tvw-cursor-pointer tvw-border tvw-border-gray-200");A.type="button",A.textContent=w,A.disabled=p,a!=null&&a.fontFamily&&(A.style.fontFamily=m(a.fontFamily)),a!=null&&a.fontWeight&&(A.style.fontWeight=a.fontWeight),a!=null&&a.paddingX&&(A.style.paddingLeft=a.paddingX,A.style.paddingRight=a.paddingX),a!=null&&a.paddingY&&(A.style.paddingTop=a.paddingY,A.style.paddingBottom=a.paddingY),A.addEventListener("click",()=>{!o||o.isStreaming()||(s.value="",o.sendMessage(w))}),f.appendChild(A),n.push(A)}),e.appendChild(f)}}};var yi={init:{title:"Schedule a Demo",description:"Share the basics and we'll follow up with a confirmation.",fields:[{name:"name",label:"Full name",placeholder:"Jane Doe",required:!0},{name:"email",label:"Work email",placeholder:"jane@example.com",type:"email",required:!0},{name:"notes",label:"What would you like to cover?",type:"textarea"}],submitLabel:"Submit details"},followup:{title:"Additional Information",description:"Provide any extra details to tailor the next steps.",fields:[{name:"company",label:"Company",placeholder:"Acme Inc."},{name:"context",label:"Context",type:"textarea",placeholder:"Share more about your use case"}],submitLabel:"Send"}},Ls=(e,n,r,t)=>{let o=e.querySelectorAll("[data-tv-form]");o.length&&o.forEach(s=>{var A,b,T;if(s.dataset.enhanced==="true")return;let i=(A=s.dataset.tvForm)!=null?A:"init";s.dataset.enhanced="true";let a=(b=yi[i])!=null?b:yi.init;s.classList.add("tvw-form-card","tvw-space-y-4");let d=g("div","tvw-space-y-1"),u=g("h3","tvw-text-base tvw-font-semibold tvw-text-cw-primary");if(u.textContent=a.title,d.appendChild(u),a.description){let y=g("p","tvw-text-sm tvw-text-cw-muted");y.textContent=a.description,d.appendChild(y)}let f=document.createElement("form");f.className="tvw-form-grid tvw-space-y-3",a.fields.forEach(y=>{var M,W;let L=g("label","tvw-form-field tvw-flex tvw-flex-col tvw-gap-1");L.htmlFor=`${n.id}-${i}-${y.name}`;let U=g("span","tvw-text-xs tvw-font-medium tvw-text-cw-muted");U.textContent=y.label,L.appendChild(U);let h=(M=y.type)!=null?M:"text",O;h==="textarea"?(O=document.createElement("textarea"),O.rows=3):(O=document.createElement("input"),O.type=h),O.className="tvw-rounded-xl tvw-border tvw-border-gray-200 tvw-bg-white tvw-px-3 tvw-py-2 tvw-text-sm tvw-text-cw-primary focus:tvw-outline-none focus:tvw-border-cw-primary",O.id=`${n.id}-${i}-${y.name}`,O.name=y.name,O.placeholder=(W=y.placeholder)!=null?W:"",y.required&&(O.required=!0),L.appendChild(O),f.appendChild(L)});let p=g("div","tvw-flex tvw-items-center tvw-justify-between tvw-gap-2"),m=g("div","tvw-text-xs tvw-text-cw-muted tvw-min-h-[1.5rem]"),w=g("button","tvw-inline-flex tvw-items-center tvw-rounded-full tvw-bg-cw-primary tvw-px-4 tvw-py-2 tvw-text-sm tvw-font-semibold tvw-text-white disabled:tvw-opacity-60 tvw-cursor-pointer");w.type="submit",w.textContent=(T=a.submitLabel)!=null?T:"Submit",p.appendChild(m),p.appendChild(w),f.appendChild(p),s.replaceChildren(d,f),f.addEventListener("submit",async y=>{var O,M;y.preventDefault();let L=(O=r.formEndpoint)!=null?O:"/form",U=new FormData(f),h={};U.forEach((W,V)=>{h[V]=W}),h.type=i,w.disabled=!0,m.textContent="Submitting\u2026";try{let W=await fetch(L,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)});if(!W.ok)throw new Error(`Form submission failed (${W.status})`);let V=await W.json();m.textContent=(M=V.message)!=null?M:"Thanks! We'll be in touch soon.",V.success&&V.nextPrompt&&await t.sendMessage(String(V.nextPrompt))}catch(W){m.textContent=W instanceof Error?W.message:"Something went wrong. Please try again."}finally{w.disabled=!1}})})};var ks=class{constructor(){this.plugins=new Map}register(n){var r;this.plugins.has(n.id)&&console.warn(`Plugin "${n.id}" is already registered. Overwriting.`),this.plugins.set(n.id,n),(r=n.onRegister)==null||r.call(n)}unregister(n){var t;let r=this.plugins.get(n);r&&((t=r.onUnregister)==null||t.call(r),this.plugins.delete(n))}getAll(){return Array.from(this.plugins.values()).sort((n,r)=>{var t,o;return((t=r.priority)!=null?t:0)-((o=n.priority)!=null?o:0)})}getForInstance(n){let r=this.getAll();if(!n||n.length===0)return r;let t=new Set(n.map(s=>s.id));return[...r.filter(s=>!t.has(s.id)),...n].sort((s,i)=>{var a,d;return((a=i.priority)!=null?a:0)-((d=s.priority)!=null?d:0)})}clear(){this.plugins.forEach(n=>{var r;return(r=n.onUnregister)==null?void 0:r.call(n)}),this.plugins.clear()}},Fn=new ks;var Ws={primary:"#111827",accent:"#1d4ed8",surface:"#ffffff",muted:"#6b7280",container:"#f8fafc",border:"#f1f5f9",divider:"#f1f5f9",messageBorder:"#f1f5f9",inputBackground:"#ffffff",callToAction:"#000000",callToActionBackground:"#ffffff",sendButtonBackgroundColor:"#111827",sendButtonTextColor:"#ffffff",sendButtonBorderColor:"#60a5fa",closeButtonColor:"#6b7280",closeButtonBackgroundColor:"transparent",closeButtonBorderColor:"",clearChatIconColor:"#6b7280",clearChatBackgroundColor:"transparent",clearChatBorderColor:"transparent",micIconColor:"#111827",micBackgroundColor:"transparent",micBorderColor:"transparent",recordingIconColor:"#ffffff",recordingBackgroundColor:"#ef4444",recordingBorderColor:"transparent",inputFontFamily:"sans-serif",inputFontWeight:"400",radiusSm:"0.75rem",radiusMd:"1rem",radiusLg:"1.5rem",launcherRadius:"9999px",buttonRadius:"9999px"},Is={primary:"#f9fafb",accent:"#3b82f6",surface:"#1f2937",muted:"#9ca3af",container:"#111827",border:"#374151",divider:"#374151",messageBorder:"#374151",inputBackground:"#111827",callToAction:"#ffffff",callToActionBackground:"#374151",sendButtonBackgroundColor:"#3b82f6",sendButtonTextColor:"#ffffff",sendButtonBorderColor:"#60a5fa",closeButtonColor:"#9ca3af",closeButtonBackgroundColor:"transparent",closeButtonBorderColor:"",clearChatIconColor:"#9ca3af",clearChatBackgroundColor:"transparent",clearChatBorderColor:"transparent",micIconColor:"#f9fafb",micBackgroundColor:"transparent",micBorderColor:"transparent",recordingIconColor:"#ffffff",recordingBackgroundColor:"#ef4444",recordingBorderColor:"transparent",inputFontFamily:"sans-serif",inputFontWeight:"400",radiusSm:"0.75rem",radiusMd:"1rem",radiusLg:"1.5rem",launcherRadius:"9999px",buttonRadius:"9999px"},Oe={apiUrl:"http://localhost:43111/api/chat/dispatch",clientToken:void 0,theme:Ws,darkTheme:Is,colorScheme:"light",launcher:{enabled:!0,title:"Chat Assistant",subtitle:"Here to help you get answers fast",agentIconText:"\u{1F4AC}",position:"bottom-right",width:"min(400px, calc(100vw - 24px))",heightOffset:0,autoExpand:!1,callToActionIconHidden:!1,agentIconSize:"40px",headerIconSize:"40px",closeButtonSize:"32px",callToActionIconName:"arrow-up-right",callToActionIconText:"",callToActionIconSize:"32px",callToActionIconPadding:"5px",callToActionIconColor:"#000000",callToActionIconBackgroundColor:"#ffffff",closeButtonColor:"#6b7280",closeButtonBackgroundColor:"transparent",clearChat:{iconColor:"#6b7280",backgroundColor:"transparent",borderColor:"transparent",enabled:!0,placement:"inline",iconName:"refresh-cw",size:"32px",showTooltip:!0,tooltipText:"Clear chat",paddingX:"0px",paddingY:"0px"},headerIconHidden:!1,border:"1px solid #e5e7eb",shadow:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)"},copy:{welcomeTitle:"Hello \u{1F44B}",welcomeSubtitle:"Ask anything about your account or products.",inputPlaceholder:"How can I help...",sendButtonLabel:"Send"},sendButton:{borderWidth:"0px",paddingX:"12px",paddingY:"10px",backgroundColor:"#111827",textColor:"#ffffff",borderColor:"#60a5fa",useIcon:!0,iconText:"\u2191",size:"40px",showTooltip:!0,tooltipText:"Send message",iconName:"send"},statusIndicator:{visible:!0,idleText:"Online",connectingText:"Connecting\u2026",connectedText:"Streaming\u2026",errorText:"Offline"},voiceRecognition:{enabled:!0,pauseDuration:2e3,iconName:"mic",iconSize:"39px",borderWidth:"0px",paddingX:"9px",paddingY:"14px",iconColor:"#111827",backgroundColor:"transparent",borderColor:"transparent",recordingIconColor:"#ffffff",recordingBackgroundColor:"#ef4444",recordingBorderColor:"transparent",showTooltip:!0,tooltipText:"Start voice recognition"},features:{showReasoning:!0,showToolCalls:!0},suggestionChips:["What can you help me with?","Tell me about your features","How does this work?"],suggestionChipsConfig:{fontFamily:"sans-serif",fontWeight:"500",paddingX:"12px",paddingY:"6px"},layout:{header:{layout:"default",showIcon:!0,showTitle:!0,showSubtitle:!0,showCloseButton:!0,showClearChat:!0},messages:{layout:"bubble",avatar:{show:!1,position:"left"},timestamp:{show:!1,position:"below"},groupConsecutive:!1},slots:{}},markdown:{options:{gfm:!0,breaks:!0},disableDefaultStyles:!1},messageActions:{enabled:!0,showCopy:!0,showUpvote:!1,showDownvote:!1,visibility:"hover",align:"right",layout:"pill-inside"},debug:!1};function ns(e){var n,r,t,o,s,i,a,d,u,f,p,m,w,A,b,T,y,L,U;return e?{...Oe,...e,theme:{...Oe.theme,...e.theme},darkTheme:{...Oe.darkTheme,...e.darkTheme},launcher:{...Oe.launcher,...e.launcher,clearChat:{...(n=Oe.launcher)==null?void 0:n.clearChat,...(r=e.launcher)==null?void 0:r.clearChat}},copy:{...Oe.copy,...e.copy},sendButton:{...Oe.sendButton,...e.sendButton},statusIndicator:{...Oe.statusIndicator,...e.statusIndicator},voiceRecognition:{...Oe.voiceRecognition,...e.voiceRecognition},features:{...Oe.features,...e.features},suggestionChips:(t=e.suggestionChips)!=null?t:Oe.suggestionChips,suggestionChipsConfig:{...Oe.suggestionChipsConfig,...e.suggestionChipsConfig},layout:{...Oe.layout,...e.layout,header:{...(o=Oe.layout)==null?void 0:o.header,...(s=e.layout)==null?void 0:s.header},messages:{...(i=Oe.layout)==null?void 0:i.messages,...(a=e.layout)==null?void 0:a.messages,avatar:{...(u=(d=Oe.layout)==null?void 0:d.messages)==null?void 0:u.avatar,...(p=(f=e.layout)==null?void 0:f.messages)==null?void 0:p.avatar},timestamp:{...(w=(m=Oe.layout)==null?void 0:m.messages)==null?void 0:w.timestamp,...(b=(A=e.layout)==null?void 0:A.messages)==null?void 0:b.timestamp}},slots:{...(T=Oe.layout)==null?void 0:T.slots,...(y=e.layout)==null?void 0:y.slots}},markdown:{...Oe.markdown,...e.markdown,options:{...(L=Oe.markdown)==null?void 0:L.options,...(U=e.markdown)==null?void 0:U.options}},messageActions:{...Oe.messageActions,...e.messageActions}}:Oe}var vi=()=>{let e=new Map,n=(o,s)=>(e.has(o)||e.set(o,new Set),e.get(o).add(s),()=>r(o,s)),r=(o,s)=>{var i;(i=e.get(o))==null||i.delete(s)};return{on:n,off:r,emit:(o,s)=>{var i;(i=e.get(o))==null||i.forEach(a=>{try{a(s)}catch(d){typeof console!="undefined"&&console.error("[AgentWidget] Event handler error:",d)}})}}};var aa=e=>{let n=e.match(/```(?:json)?\s*([\s\S]*?)```/i);return n?n[1]:e},la=e=>{let n=e.trim(),r=n.indexOf("{");if(r===-1)return null;let t=0;for(let o=r;o<n.length;o+=1){let s=n[o];if(s==="{"&&(t+=1),s==="}"&&(t-=1,t===0))return n.slice(r,o+1)}return null},$n=({text:e})=>{if(!e||!e.includes("{"))return null;try{let n=aa(e),r=la(n);if(!r)return null;let t=JSON.parse(r);if(!t||typeof t!="object"||!t.action)return null;let{action:o,...s}=t;return{type:String(o),payload:s,raw:t}}catch{return null}},Ps=e=>typeof e=="string"?e:e==null?"":String(e),an={message:e=>e.type!=="message"?void 0:{handled:!0,displayText:Ps(e.payload.text)},messageAndClick:(e,n)=>{var o;if(e.type!=="message_and_click")return;let r=e.payload,t=Ps(r.element);if(t&&((o=n.document)!=null&&o.querySelector)){let s=n.document.querySelector(t);s?setTimeout(()=>{s.click()},400):typeof console!="undefined"&&console.warn("[AgentWidget] Element not found for selector:",t)}return{handled:!0,displayText:Ps(r.text)}}},bi=e=>Array.isArray(e)?e.map(n=>String(n)):[],On=e=>{let n=new Set(bi(e.getSessionMetadata().processedActionMessageIds)),r=()=>{n=new Set(bi(e.getSessionMetadata().processedActionMessageIds))},t=()=>{let s=Array.from(n);e.updateSessionMetadata(i=>({...i,processedActionMessageIds:s}))};return{process:s=>{if(s.streaming||s.message.role!=="assistant"||!s.text||n.has(s.message.id))return null;let i=typeof s.raw=="string"&&s.raw||typeof s.message.rawContent=="string"&&s.message.rawContent||typeof s.text=="string"&&s.text||null;!i&&typeof s.text=="string"&&s.text.trim().startsWith("{")&&typeof console!="undefined"&&console.warn("[AgentWidget] Structured response detected but no raw payload was provided. Ensure your stream parser returns { text, raw }.");let a=i?e.parsers.reduce((u,f)=>u||(f==null?void 0:f({text:i,message:s.message}))||null,null):null;if(!a)return null;n.add(s.message.id),t();let d={action:a,message:s.message};e.emit("action:detected",d);for(let u of e.handlers)if(u)try{let f=()=>{e.emit("action:resubmit",d)},p=u(a,{message:s.message,metadata:e.getSessionMetadata(),updateMetadata:e.updateSessionMetadata,document:e.documentRef,triggerResubmit:f});if(!p)continue;if(p.handled){let m=p.persistMessage!==!1;return{text:p.displayText!==void 0?p.displayText:"",persist:m,resubmit:p.resubmit}}}catch(f){typeof console!="undefined"&&console.error("[AgentWidget] Action handler error:",f)}return{text:"",persist:!0}},syncFromMetadata:r}};var da=e=>{if(!e)return null;try{return JSON.parse(e)}catch(n){return typeof console!="undefined"&&console.error("[AgentWidget] Failed to parse stored state:",n),null}},ca=e=>e.map(n=>({...n,streaming:!1})),ss=(e="persona-state")=>{let n=()=>typeof window=="undefined"||!window.localStorage?null:window.localStorage;return{load:()=>{let r=n();return r?da(r.getItem(e)):null},save:r=>{let t=n();if(t)try{let o={...r,messages:r.messages?ca(r.messages):void 0};t.setItem(e,JSON.stringify(o))}catch(o){typeof console!="undefined"&&console.error("[AgentWidget] Failed to persist state:",o)}},clear:()=>{let r=n();if(r)try{r.removeItem(e)}catch(t){typeof console!="undefined"&&console.error("[AgentWidget] Failed to clear stored state:",t)}}}};var Hs=class{constructor(){this.components=new Map}register(n,r){this.components.has(n)&&console.warn(`[ComponentRegistry] Component "${n}" is already registered. Overwriting.`),this.components.set(n,r)}unregister(n){this.components.delete(n)}get(n){return this.components.get(n)}has(n){return this.components.has(n)}getAllNames(){return Array.from(this.components.keys())}clear(){this.components.clear()}registerAll(n){Object.entries(n).forEach(([r,t])=>{this.register(r,t)})}},yn=new Hs;var vn=require("partial-json");function ua(e){if(!e||typeof e!="object"||!("component"in e))return!1;let n=e.component;return typeof n=="string"&&n.length>0}function pa(e,n){if(!ua(e))return null;let r=e.props&&typeof e.props=="object"&&e.props!==null?e.props:{};return{component:e.component,props:r,raw:n}}function rs(){let e=null,n=0;return{getExtractedDirective:()=>e,processChunk:r=>{let t=r.trim();if(!t.startsWith("{")&&!t.startsWith("["))return null;if(r.length<=n)return e;try{let o=(0,vn.parse)(r,vn.STR|vn.OBJ),s=pa(o,r);s&&(e=s)}catch{}return n=r.length,e},reset:()=>{e=null,n=0}}}function Ci(e){return typeof e=="object"&&e!==null&&"component"in e&&typeof e.component=="string"&&"props"in e&&typeof e.props=="object"}function os(e,n){let{config:r,message:t,onPropsUpdate:o}=n,s=yn.get(e.component);if(!s)return console.warn(`[ComponentMiddleware] Component "${e.component}" not found in registry. Falling back to default rendering.`),null;let i={message:t,config:r,updateProps:a=>{o&&o(a)}};try{return s(e.props,i)}catch(a){return console.error(`[ComponentMiddleware] Error rendering component "${e.component}":`,a),null}}function xi(){let e=rs();return{processChunk:n=>e.processChunk(n),getDirective:()=>e.getExtractedDirective(),reset:()=>{e.reset()}}}function is(e){if(!e.rawContent)return!1;try{let n=JSON.parse(e.rawContent);return typeof n=="object"&&n!==null&&"component"in n&&typeof n.component=="string"}catch{return!1}}function as(e){if(!e.rawContent)return null;try{let n=JSON.parse(e.rawContent);if(typeof n=="object"&&n!==null&&"component"in n&&typeof n.component=="string")return{component:n.component,props:n.props&&typeof n.props=="object"&&n.props!==null?n.props:{},raw:e.rawContent}}catch{}return null}var ga=["Very dissatisfied","Dissatisfied","Neutral","Satisfied","Very satisfied"];function ls(e){let{onSubmit:n,onDismiss:r,title:t="How satisfied are you?",subtitle:o="Please rate your experience",commentPlaceholder:s="Share your thoughts (optional)...",submitText:i="Submit",skipText:a="Skip",showComment:d=!0,ratingLabels:u=ga}=e,f=document.createElement("div");f.className="tvw-feedback-container tvw-feedback-csat",f.setAttribute("role","dialog"),f.setAttribute("aria-label","Customer satisfaction feedback");let p=null,m=document.createElement("div");m.className="tvw-feedback-content";let w=document.createElement("div");w.className="tvw-feedback-header";let A=document.createElement("h3");A.className="tvw-feedback-title",A.textContent=t,w.appendChild(A);let b=document.createElement("p");b.className="tvw-feedback-subtitle",b.textContent=o,w.appendChild(b),m.appendChild(w);let T=document.createElement("div");T.className="tvw-feedback-rating tvw-feedback-rating-csat",T.setAttribute("role","radiogroup"),T.setAttribute("aria-label","Satisfaction rating from 1 to 5");let y=[];for(let M=1;M<=5;M++){let W=document.createElement("button");W.type="button",W.className="tvw-feedback-rating-btn tvw-feedback-star-btn",W.setAttribute("role","radio"),W.setAttribute("aria-checked","false"),W.setAttribute("aria-label",`${M} star${M>1?"s":""}: ${u[M-1]}`),W.title=u[M-1],W.dataset.rating=String(M),W.innerHTML=`
15
+ `,r.addEventListener("click",n);let t=s=>{var x,W,Y,f,R,T,P,X,O,se,G,U;let i=(x=s.launcher)!=null?x:{},a=r.querySelector("[data-role='launcher-title']");a&&(a.textContent=(W=i.title)!=null?W:"Chat Assistant");let d=r.querySelector("[data-role='launcher-subtitle']");d&&(d.textContent=(Y=i.subtitle)!=null?Y:"Get answers fast");let g=r.querySelector(".tvw-flex-col");g&&(i.textHidden?g.style.display="none":g.style.display="");let v=r.querySelector("[data-role='launcher-icon']");if(v)if(i.agentIconHidden)v.style.display="none";else{let ve=(f=i.agentIconSize)!=null?f:"40px";if(v.style.height=ve,v.style.width=ve,v.innerHTML="",i.agentIconName){let N=parseFloat(ve)||24,re=oe(i.agentIconName,N*.6,"#ffffff",2);re?(v.appendChild(re),v.style.display=""):(v.textContent=(R=i.agentIconText)!=null?R:"\u{1F4AC}",v.style.display="")}else i.iconUrl?v.style.display="none":(v.textContent=(T=i.agentIconText)!=null?T:"\u{1F4AC}",v.style.display="")}let c=r.querySelector("[data-role='launcher-image']");if(c){let ve=(P=i.agentIconSize)!=null?P:"40px";c.style.height=ve,c.style.width=ve,i.iconUrl&&!i.agentIconName&&!i.agentIconHidden?(c.src=i.iconUrl,c.style.display="block"):c.style.display="none"}let m=r.querySelector("[data-role='launcher-call-to-action-icon']");if(m){let ve=(X=i.callToActionIconSize)!=null?X:"32px";m.style.height=ve,m.style.width=ve,i.callToActionIconBackgroundColor?(m.style.backgroundColor=i.callToActionIconBackgroundColor,m.classList.remove("tvw-bg-cw-primary")):(m.style.backgroundColor="",m.classList.add("tvw-bg-cw-primary"));let N=0;if(i.callToActionIconPadding?(m.style.boxSizing="border-box",m.style.padding=i.callToActionIconPadding,N=(parseFloat(i.callToActionIconPadding)||0)*2):(m.style.boxSizing="",m.style.padding=""),i.callToActionIconHidden)m.style.display="none";else if(m.style.display="",m.innerHTML="",i.callToActionIconName){let re=parseFloat(ve)||24,D=Math.max(re-N,8),Z=oe(i.callToActionIconName,D,"currentColor",2);Z?m.appendChild(Z):m.textContent=(O=i.callToActionIconText)!=null?O:"\u2197"}else m.textContent=(se=i.callToActionIconText)!=null?se:"\u2197"}let w=i.position&&Ut[i.position]?Ut[i.position]:Ut["bottom-right"],C="tvw-fixed tvw-flex tvw-items-center tvw-gap-3 tvw-rounded-launcher tvw-bg-cw-surface tvw-py-2.5 tvw-pl-3 tvw-pr-3 tvw-transition hover:tvw-translate-y-[-2px] tvw-cursor-pointer tvw-z-50";r.className=`${C} ${w}`;let b="1px solid #e5e7eb",A="0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)";r.style.border=(G=i.border)!=null?G:b,r.style.boxShadow=(U=i.shadow)!=null?U:A},o=()=>{r.removeEventListener("click",n),r.remove()};return e&&t(e),{element:r,update:t,destroy:o}};var nn=e=>{var se,G,U,ve,N,re,D,Z,fe,ce,Ue,Tt,Mt,$t,Ie,ye,ee,ue,Pe,tt,Et,pe,J,ct,ut,ft,Ot,wt,V,Me,vt,yt;let{config:n,showClose:r=!0}=e,t=p("div","tvw-widget-header tvw-flex tvw-items-center tvw-gap-3 tvw-bg-cw-surface tvw-px-6 tvw-py-5 tvw-border-b-cw-divider"),o=(se=n==null?void 0:n.launcher)!=null?se:{},s=(G=o.headerIconSize)!=null?G:"48px",i=(U=o.closeButtonSize)!=null?U:"32px",a=(ve=o.closeButtonPlacement)!=null?ve:"inline",d=(N=o.headerIconHidden)!=null?N:!1,g=o.headerIconName,v=p("div","tvw-flex tvw-items-center tvw-justify-center tvw-rounded-xl tvw-bg-cw-primary tvw-text-white tvw-text-xl");if(v.style.height=s,v.style.width=s,!d)if(g){let Q=parseFloat(s)||24,Fe=oe(g,Q*.6,"#ffffff",1);Fe?v.replaceChildren(Fe):v.textContent=(D=(re=n==null?void 0:n.launcher)==null?void 0:re.agentIconText)!=null?D:"\u{1F4AC}"}else if((Z=n==null?void 0:n.launcher)!=null&&Z.iconUrl){let Q=p("img");Q.src=n.launcher.iconUrl,Q.alt="",Q.className="tvw-rounded-xl tvw-object-cover",Q.style.height=s,Q.style.width=s,v.replaceChildren(Q)}else v.textContent=(ce=(fe=n==null?void 0:n.launcher)==null?void 0:fe.agentIconText)!=null?ce:"\u{1F4AC}";let c=p("div","tvw-flex tvw-flex-col"),m=p("span","tvw-text-base tvw-font-semibold");m.textContent=(Tt=(Ue=n==null?void 0:n.launcher)==null?void 0:Ue.title)!=null?Tt:"Chat Assistant";let w=p("span","tvw-text-xs tvw-text-cw-muted");w.textContent=($t=(Mt=n==null?void 0:n.launcher)==null?void 0:Mt.subtitle)!=null?$t:"Here to help you get answers fast",c.append(m,w),d?t.append(c):t.append(v,c);let C=(Ie=o.clearChat)!=null?Ie:{},b=(ye=C.enabled)!=null?ye:!0,A=(ee=C.placement)!=null?ee:"inline",x=null,W=null;if(b){let Q=(ue=C.size)!=null?ue:"32px",Fe=(Pe=C.iconName)!=null?Pe:"refresh-cw",bt=(tt=C.iconColor)!=null?tt:"",Wt=(Et=C.backgroundColor)!=null?Et:"",Lt=(pe=C.borderWidth)!=null?pe:"",j=(J=C.borderColor)!=null?J:"",Qe=(ct=C.borderRadius)!=null?ct:"",Ae=(ut=C.paddingX)!=null?ut:"",z=(ft=C.paddingY)!=null?ft:"",F=(Ot=C.tooltipText)!=null?Ot:"Clear chat",ge=(wt=C.showTooltip)!=null?wt:!0;W=p("div",A==="top-right"?"tvw-absolute tvw-top-4 tvw-z-50":"tvw-relative tvw-ml-auto tvw-clear-chat-button-wrapper"),A==="top-right"&&(W.style.right="48px"),x=p("button","tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-text-cw-muted hover:tvw-bg-gray-100 tvw-cursor-pointer tvw-border-none"),x.style.height=Q,x.style.width=Q,x.type="button",x.setAttribute("aria-label",F);let de=oe(Fe,"20px",bt||"",1);if(de&&x.appendChild(de),bt&&(x.style.color=bt,x.classList.remove("tvw-text-cw-muted")),Wt&&(x.style.backgroundColor=Wt,x.classList.remove("hover:tvw-bg-gray-100")),Lt||j){let te=Lt||"0px",xe=j||"transparent";x.style.border=`${te} solid ${xe}`,x.classList.remove("tvw-border-none")}if(Qe&&(x.style.borderRadius=Qe,x.classList.remove("tvw-rounded-full")),Ae?(x.style.paddingLeft=Ae,x.style.paddingRight=Ae):(x.style.paddingLeft="",x.style.paddingRight=""),z?(x.style.paddingTop=z,x.style.paddingBottom=z):(x.style.paddingTop="",x.style.paddingBottom=""),W.appendChild(x),ge&&F&&x&&W){let te=null,xe=()=>{if(te||!x)return;te=p("div","tvw-clear-chat-tooltip"),te.textContent=F;let _=p("div");_.className="tvw-clear-chat-tooltip-arrow",te.appendChild(_);let ie=x.getBoundingClientRect();te.style.position="fixed",te.style.left=`${ie.left+ie.width/2}px`,te.style.top=`${ie.top-8}px`,te.style.transform="translate(-50%, -100%)",document.body.appendChild(te)},$e=()=>{te&&te.parentNode&&(te.parentNode.removeChild(te),te=null)};W.addEventListener("mouseenter",xe),W.addEventListener("mouseleave",$e),x.addEventListener("focus",xe),x.addEventListener("blur",$e),W._cleanupTooltip=()=>{$e(),W&&(W.removeEventListener("mouseenter",xe),W.removeEventListener("mouseleave",$e)),x&&(x.removeEventListener("focus",xe),x.removeEventListener("blur",$e))}}A==="inline"&&t.appendChild(W)}let Y=p("div",a==="top-right"?"tvw-absolute tvw-top-4 tvw-right-4 tvw-z-50":b&&A==="inline"?"":"tvw-ml-auto"),f=p("button","tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-text-cw-muted hover:tvw-bg-gray-100 tvw-cursor-pointer tvw-border-none");f.style.height=i,f.style.width=i,f.type="button";let R=(V=o.closeButtonTooltipText)!=null?V:"Close chat",T=(Me=o.closeButtonShowTooltip)!=null?Me:!0;f.setAttribute("aria-label",R),f.style.display=r?"":"none";let P=(vt=o.closeButtonIconName)!=null?vt:"x",X=(yt=o.closeButtonIconText)!=null?yt:"\xD7",O=oe(P,"20px",o.closeButtonColor||"",1);if(O?f.appendChild(O):f.textContent=X,o.closeButtonColor?(f.style.color=o.closeButtonColor,f.classList.remove("tvw-text-cw-muted")):(f.style.color="",f.classList.add("tvw-text-cw-muted")),o.closeButtonBackgroundColor?(f.style.backgroundColor=o.closeButtonBackgroundColor,f.classList.remove("hover:tvw-bg-gray-100")):(f.style.backgroundColor="",f.classList.add("hover:tvw-bg-gray-100")),o.closeButtonBorderWidth||o.closeButtonBorderColor){let Q=o.closeButtonBorderWidth||"0px",Fe=o.closeButtonBorderColor||"transparent";f.style.border=`${Q} solid ${Fe}`,f.classList.remove("tvw-border-none")}else f.style.border="",f.classList.add("tvw-border-none");if(o.closeButtonBorderRadius?(f.style.borderRadius=o.closeButtonBorderRadius,f.classList.remove("tvw-rounded-full")):(f.style.borderRadius="",f.classList.add("tvw-rounded-full")),o.closeButtonPaddingX?(f.style.paddingLeft=o.closeButtonPaddingX,f.style.paddingRight=o.closeButtonPaddingX):(f.style.paddingLeft="",f.style.paddingRight=""),o.closeButtonPaddingY?(f.style.paddingTop=o.closeButtonPaddingY,f.style.paddingBottom=o.closeButtonPaddingY):(f.style.paddingTop="",f.style.paddingBottom=""),Y.appendChild(f),T&&R){let Q=null,Fe=()=>{if(Q)return;Q=p("div","tvw-clear-chat-tooltip"),Q.textContent=R;let Wt=p("div");Wt.className="tvw-clear-chat-tooltip-arrow",Q.appendChild(Wt);let Lt=f.getBoundingClientRect();Q.style.position="fixed",Q.style.left=`${Lt.left+Lt.width/2}px`,Q.style.top=`${Lt.top-8}px`,Q.style.transform="translate(-50%, -100%)",document.body.appendChild(Q)},bt=()=>{Q&&Q.parentNode&&(Q.parentNode.removeChild(Q),Q=null)};Y.addEventListener("mouseenter",Fe),Y.addEventListener("mouseleave",bt),f.addEventListener("focus",Fe),f.addEventListener("blur",bt),Y._cleanupTooltip=()=>{bt(),Y.removeEventListener("mouseenter",Fe),Y.removeEventListener("mouseleave",bt),f.removeEventListener("focus",Fe),f.removeEventListener("blur",bt)}}return a!=="top-right"&&t.appendChild(Y),{header:t,iconHolder:v,headerTitle:m,headerSubtitle:w,closeButton:f,closeButtonWrapper:Y,clearChatButton:x,clearChatButtonWrapper:W}},yn=(e,n,r)=>{var i,a,d,g;let t=(i=r==null?void 0:r.launcher)!=null?i:{},o=(a=t.closeButtonPlacement)!=null?a:"inline",s=(g=(d=t.clearChat)==null?void 0:d.placement)!=null?g:"inline";e.appendChild(n.header),o==="top-right"&&(e.style.position="relative",e.appendChild(n.closeButtonWrapper)),n.clearChatButtonWrapper&&s==="top-right"&&(e.style.position="relative",e.appendChild(n.clearChatButtonWrapper))};var Xs=e=>nn({config:e.config,showClose:e.showClose,onClose:e.onClose,onClearChat:e.onClearChat}),Gs=e=>{var C,b,A,x;let{config:n,showClose:r=!0,onClose:t}=e,o=(C=n==null?void 0:n.launcher)!=null?C:{},s=p("div","tvw-flex tvw-items-center tvw-justify-between tvw-bg-cw-surface tvw-px-6 tvw-py-4 tvw-border-b-cw-divider"),i=p("span","tvw-text-base tvw-font-semibold");i.textContent=(b=o.title)!=null?b:"Chat Assistant",s.appendChild(i);let a=(A=o.closeButtonSize)!=null?A:"32px",d=p("div",""),g=p("button","tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-text-cw-muted hover:tvw-bg-gray-100 tvw-cursor-pointer tvw-border-none");g.style.height=a,g.style.width=a,g.type="button",g.setAttribute("aria-label","Close chat"),g.style.display=r?"":"none";let v=(x=o.closeButtonIconName)!=null?x:"x",c=oe(v,"20px",o.closeButtonColor||"",2);c?g.appendChild(c):g.textContent="\xD7",t&&g.addEventListener("click",t),d.appendChild(g),s.appendChild(d);let m=p("div");m.style.display="none";let w=p("span");return w.style.display="none",{header:s,iconHolder:m,headerTitle:i,headerSubtitle:w,closeButton:g,closeButtonWrapper:d,clearChatButton:null,clearChatButtonWrapper:null}},Qs=e=>{var f,R,T,P,X,O,se,G;let{config:n,showClose:r=!0,onClose:t,onClearChat:o}=e,s=(f=n==null?void 0:n.launcher)!=null?f:{},i=p("div","tvw-flex tvw-flex-col tvw-bg-cw-surface tvw-px-6 tvw-py-5 tvw-border-b-cw-divider"),a=p("div","tvw-flex tvw-items-center tvw-gap-3"),d=(R=s.headerIconSize)!=null?R:"56px",g=p("div","tvw-flex tvw-items-center tvw-justify-center tvw-rounded-xl tvw-bg-cw-primary tvw-text-white tvw-text-2xl");g.style.height=d,g.style.width=d;let v=s.headerIconName;if(v){let U=parseFloat(d)||24,ve=oe(v,U*.5,"#ffffff",2);ve?g.replaceChildren(ve):g.textContent=(T=s.agentIconText)!=null?T:"\u{1F4AC}"}else if(s.iconUrl){let U=p("img");U.src=s.iconUrl,U.alt="",U.className="tvw-rounded-xl tvw-object-cover",U.style.height=d,U.style.width=d,g.replaceChildren(U)}else g.textContent=(P=s.agentIconText)!=null?P:"\u{1F4AC}";let c=p("div","tvw-flex tvw-flex-col tvw-flex-1"),m=p("span","tvw-text-lg tvw-font-semibold");m.textContent=(X=s.title)!=null?X:"Chat Assistant";let w=p("span","tvw-text-sm tvw-text-cw-muted");w.textContent=(O=s.subtitle)!=null?O:"Here to help you get answers fast",c.append(m,w),a.append(g,c);let C=(se=s.closeButtonSize)!=null?se:"32px",b=p("div",""),A=p("button","tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-text-cw-muted hover:tvw-bg-gray-100 tvw-cursor-pointer tvw-border-none");A.style.height=C,A.style.width=C,A.type="button",A.setAttribute("aria-label","Close chat"),A.style.display=r?"":"none";let x=(G=s.closeButtonIconName)!=null?G:"x",W=oe(x,"20px",s.closeButtonColor||"",2);W?A.appendChild(W):A.textContent="\xD7",t&&A.addEventListener("click",t),b.appendChild(A),a.appendChild(b),i.appendChild(a);let Y=p("div","tvw-mt-3 tvw-pt-3 tvw-border-t tvw-border-gray-100 tvw-text-xs tvw-text-cw-muted");return Y.textContent="Online and ready to help",i.appendChild(Y),{header:i,iconHolder:g,headerTitle:m,headerSubtitle:w,closeButton:A,closeButtonWrapper:b,clearChatButton:null,clearChatButtonWrapper:null}},ks={default:Xs,minimal:Gs,expanded:Qs},Zs=e=>{var n;return(n=ks[e])!=null?n:ks.default},kn=(e,n,r)=>{var i,a,d;if(n!=null&&n.render){let g=n.render({config:e,onClose:r==null?void 0:r.onClose,onClearChat:r==null?void 0:r.onClearChat}),v=p("div");v.style.display="none";let c=p("span"),m=p("span"),w=p("button");w.style.display="none";let C=p("div");return C.style.display="none",{header:g,iconHolder:v,headerTitle:c,headerSubtitle:m,closeButton:w,closeButtonWrapper:C,clearChatButton:null,clearChatButtonWrapper:null}}let t=(i=n==null?void 0:n.layout)!=null?i:"default",s=Zs(t)({config:e,showClose:(d=(a=n==null?void 0:n.showCloseButton)!=null?a:r==null?void 0:r.showClose)!=null?d:!0,onClose:r==null?void 0:r.onClose,onClearChat:r==null?void 0:r.onClearChat});return n&&(n.showIcon===!1&&(s.iconHolder.style.display="none"),n.showTitle===!1&&(s.headerTitle.style.display="none"),n.showSubtitle===!1&&(s.headerSubtitle.style.display="none"),n.showCloseButton===!1&&(s.closeButton.style.display="none"),n.showClearChat===!1&&s.clearChatButtonWrapper&&(s.clearChatButtonWrapper.style.display="none")),s};var Oa=e=>{switch(e){case"serif":return'Georgia, "Times New Roman", Times, serif';case"mono":return'"Courier New", Courier, "Lucida Console", Monaco, monospace';case"sans-serif":default:return'-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif'}},Wn=e=>{var Ie,ye,ee,ue,Pe,tt,Et,pe,J,ct,ut,ft,Ot,wt,V,Me,vt,yt,Q,Fe,bt,Wt,Lt,j,Qe,Ae,z,F,ge,de;let{config:n}=e,r=p("div","tvw-widget-footer tvw-border-t-cw-divider tvw-bg-cw-surface tvw-px-6 tvw-py-4"),t=p("div","tvw-mb-3 tvw-flex tvw-flex-wrap tvw-gap-2"),o=p("form","tvw-widget-composer tvw-flex tvw-flex-col tvw-gap-2 tvw-rounded-2xl tvw-border tvw-border-gray-200 tvw-bg-cw-input-background tvw-px-4 tvw-py-3");o.style.outline="none";let s=p("textarea");s.placeholder=(ye=(Ie=n==null?void 0:n.copy)==null?void 0:Ie.inputPlaceholder)!=null?ye:"Type your message\u2026",s.className="tvw-w-full tvw-min-h-[24px] tvw-resize-none tvw-border-none tvw-bg-transparent tvw-text-sm tvw-text-cw-primary focus:tvw-outline-none focus:tvw-border-none tvw-composer-textarea",s.rows=1;let i=(ue=(ee=n==null?void 0:n.theme)==null?void 0:ee.inputFontFamily)!=null?ue:"sans-serif",a=(tt=(Pe=n==null?void 0:n.theme)==null?void 0:Pe.inputFontWeight)!=null?tt:"400";s.style.fontFamily=Oa(i),s.style.fontWeight=a;let v=3*20;s.style.maxHeight=`${v}px`,s.style.overflowY="auto";let c=()=>{s.style.height="auto";let te=Math.min(s.scrollHeight,v);s.style.height=`${te}px`};s.addEventListener("input",c),s.style.border="none",s.style.outline="none",s.style.borderWidth="0",s.style.borderStyle="none",s.style.borderColor="transparent",s.addEventListener("focus",()=>{s.style.border="none",s.style.outline="none",s.style.borderWidth="0",s.style.borderStyle="none",s.style.borderColor="transparent",s.style.boxShadow="none"}),s.addEventListener("blur",()=>{s.style.border="none",s.style.outline="none"});let m=(Et=n==null?void 0:n.sendButton)!=null?Et:{},w=(pe=m.useIcon)!=null?pe:!1,C=(J=m.iconText)!=null?J:"\u2191",b=m.iconName,A=(ct=m.tooltipText)!=null?ct:"Send message",x=(ut=m.showTooltip)!=null?ut:!1,W=(ft=m.size)!=null?ft:"40px",Y=m.backgroundColor,f=m.textColor,R=p("div","tvw-send-button-wrapper"),T=p("button",w?"tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer":"tvw-rounded-button tvw-bg-cw-accent tvw-px-4 tvw-py-2 tvw-text-sm tvw-font-semibold disabled:tvw-opacity-50 tvw-cursor-pointer");if(T.type="submit",w){if(T.style.width=W,T.style.height=W,T.style.minWidth=W,T.style.minHeight=W,T.style.fontSize="18px",T.style.lineHeight="1",T.innerHTML="",b){let te=parseFloat(W)||24,xe=f&&typeof f=="string"&&f.trim()?f.trim():"currentColor",$e=oe(b,te,xe,2);$e?(T.appendChild($e),T.style.color=xe):(T.textContent=C,f?T.style.color=f:T.classList.add("tvw-text-white"))}else T.textContent=C,f?T.style.color=f:T.classList.add("tvw-text-white");Y?T.style.backgroundColor=Y:T.classList.add("tvw-bg-cw-primary")}else T.textContent=(wt=(Ot=n==null?void 0:n.copy)==null?void 0:Ot.sendButtonLabel)!=null?wt:"Send",f?T.style.color=f:T.classList.add("tvw-text-white");if(m.borderWidth&&(T.style.borderWidth=m.borderWidth,T.style.borderStyle="solid"),m.borderColor&&(T.style.borderColor=m.borderColor),m.paddingX?(T.style.paddingLeft=m.paddingX,T.style.paddingRight=m.paddingX):(T.style.paddingLeft="",T.style.paddingRight=""),m.paddingY?(T.style.paddingTop=m.paddingY,T.style.paddingBottom=m.paddingY):(T.style.paddingTop="",T.style.paddingBottom=""),x&&A){let te=p("div","tvw-send-button-tooltip");te.textContent=A,R.appendChild(te)}R.appendChild(T);let P=(V=n==null?void 0:n.voiceRecognition)!=null?V:{},X=P.enabled===!0,O=null,se=null,G=typeof window!="undefined"&&(typeof window.webkitSpeechRecognition!="undefined"||typeof window.SpeechRecognition!="undefined");if(X&&G){se=p("div","tvw-send-button-wrapper"),O=p("button","tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer"),O.type="button",O.setAttribute("aria-label","Start voice recognition");let te=(Me=P.iconName)!=null?Me:"mic",xe=(vt=P.iconSize)!=null?vt:W,$e=parseFloat(xe)||24,_=(yt=P.backgroundColor)!=null?yt:Y,ie=(Q=P.iconColor)!=null?Q:f;O.style.width=xe,O.style.height=xe,O.style.minWidth=xe,O.style.minHeight=xe,O.style.fontSize="18px",O.style.lineHeight="1";let ke=ie||"currentColor",Ke=oe(te,$e,ke,1.5);Ke?(O.appendChild(Ke),O.style.color=ke):(O.textContent="\u{1F3A4}",O.style.color=ke),_?O.style.backgroundColor=_:O.classList.add("tvw-bg-cw-primary"),ie?O.style.color=ie:!ie&&!f&&O.classList.add("tvw-text-white"),P.borderWidth&&(O.style.borderWidth=P.borderWidth,O.style.borderStyle="solid"),P.borderColor&&(O.style.borderColor=P.borderColor),P.paddingX&&(O.style.paddingLeft=P.paddingX,O.style.paddingRight=P.paddingX),P.paddingY&&(O.style.paddingTop=P.paddingY,O.style.paddingBottom=P.paddingY),se.appendChild(O);let it=(Fe=P.tooltipText)!=null?Fe:"Start voice recognition";if(((bt=P.showTooltip)!=null?bt:!1)&&it){let Nt=p("div","tvw-send-button-tooltip");Nt.textContent=it,se.appendChild(Nt)}}let U=(Wt=n==null?void 0:n.attachments)!=null?Wt:{},ve=U.enabled===!0,N=null,re=null,D=null,Z=null;if(ve){Z=p("div","tvw-attachment-previews tvw-flex tvw-flex-wrap tvw-gap-2 tvw-mb-2"),Z.style.display="none",D=p("input"),D.type="file",D.accept=((Lt=U.allowedTypes)!=null?Lt:ln).join(","),D.multiple=((j=U.maxFiles)!=null?j:4)>1,D.style.display="none",D.setAttribute("aria-label","Attach files"),re=p("div","tvw-send-button-wrapper"),N=p("button","tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer tvw-attachment-button"),N.type="button",N.setAttribute("aria-label",(Qe=U.buttonTooltipText)!=null?Qe:"Attach file");let te=(Ae=U.buttonIconName)!=null?Ae:"paperclip",xe=W,$e=parseFloat(xe)||40,_=Math.round($e*.6);N.style.width=xe,N.style.height=xe,N.style.minWidth=xe,N.style.minHeight=xe,N.style.fontSize="18px",N.style.lineHeight="1",N.style.backgroundColor="transparent",N.style.color="var(--cw-primary, #111827)",N.style.border="none",N.style.borderRadius="6px",N.style.transition="background-color 0.15s ease",N.addEventListener("mouseenter",()=>{N.style.backgroundColor="rgba(0, 0, 0, 0.05)"}),N.addEventListener("mouseleave",()=>{N.style.backgroundColor="transparent"});let ie=oe(te,_,"currentColor",1.5);ie?N.appendChild(ie):N.textContent="\u{1F4CE}",N.addEventListener("click",it=>{it.preventDefault(),D==null||D.click()}),re.appendChild(N);let ke=(z=U.buttonTooltipText)!=null?z:"Attach file",Ke=p("div","tvw-send-button-tooltip");Ke.textContent=ke,re.appendChild(Ke)}o.addEventListener("click",te=>{te.target!==T&&te.target!==R&&te.target!==O&&te.target!==se&&te.target!==N&&te.target!==re&&s.focus()}),Z&&(Z.style.gap="8px",o.append(Z)),D&&o.append(D),o.append(s);let fe=p("div","tvw-flex tvw-items-center tvw-justify-between tvw-w-full"),ce=p("div","tvw-flex tvw-items-center tvw-gap-2");re&&ce.append(re);let Ue=p("div","tvw-flex tvw-items-center tvw-gap-1");se&&Ue.append(se),Ue.append(R),fe.append(ce,Ue),o.append(fe);let Tt=p("div","tvw-mt-2 tvw-text-right tvw-text-xs tvw-text-cw-muted"),Mt=(F=n==null?void 0:n.statusIndicator)!=null?F:{},$t=(ge=Mt.visible)!=null?ge:!0;return Tt.style.display=$t?"":"none",Tt.textContent=(de=Mt.idleText)!=null?de:"Online",r.append(t,o,Tt),{footer:r,suggestions:t,composerForm:o,textarea:s,sendButton:T,sendButtonWrapper:R,micButton:O,micButtonWrapper:se,statusText:Tt,attachmentButton:N,attachmentButtonWrapper:re,attachmentInput:D,attachmentPreviewsContainer:Z,actionsRow:fe,leftActions:ce,rightActions:Ue}};var zi=e=>{var d,g,v,c,m,w,C;if(!((g=(d=e==null?void 0:e.launcher)==null?void 0:d.enabled)!=null?g:!0)){let b=p("div","tvw-relative tvw-h-full tvw-flex tvw-flex-col tvw-flex-1 tvw-min-h-0"),A=p("div","tvw-relative tvw-flex-1 tvw-flex tvw-flex-col tvw-min-h-0"),x=(c=(v=e==null?void 0:e.launcher)==null?void 0:v.width)!=null?c:"100%";return b.style.width=x,A.style.width="100%",b.appendChild(A),{wrapper:b,panel:A}}let r=(m=e==null?void 0:e.launcher)!=null?m:{},t=r.position&&Ut[r.position]?Ut[r.position]:Ut["bottom-right"],o=p("div",`tvw-widget-wrapper tvw-fixed ${t} tvw-z-50 tvw-transition`),s=p("div","tvw-widget-panel tvw-relative tvw-min-h-[320px]"),i=(C=(w=e==null?void 0:e.launcher)==null?void 0:w.width)!=null?C:e==null?void 0:e.launcherWidth,a=i!=null?i:"min(400px, calc(100vw - 24px))";return s.style.width=a,s.style.maxWidth=a,o.appendChild(s),{wrapper:o,panel:s}},Ui=(e,n=!0)=>{var w,C,b,A,x,W,Y;let r=p("div","tvw-widget-container tvw-flex tvw-h-full tvw-w-full tvw-flex-1 tvw-min-h-0 tvw-flex-col tvw-bg-cw-surface tvw-text-cw-primary tvw-rounded-2xl tvw-overflow-hidden tvw-border tvw-border-cw-border"),t=(w=e==null?void 0:e.layout)==null?void 0:w.header,o=((C=e==null?void 0:e.layout)==null?void 0:C.showHeader)!==!1,s=t?kn(e,t,{showClose:n}):nn({config:e,showClose:n}),i=p("div","tvw-widget-body tvw-flex tvw-flex-1 tvw-min-h-0 tvw-flex-col tvw-gap-6 tvw-overflow-y-auto tvw-bg-cw-container tvw-px-6 tvw-py-6");i.id="persona-scroll-container";let a=p("div","tvw-rounded-2xl tvw-bg-cw-surface tvw-p-6 tvw-shadow-sm"),d=p("h2","tvw-text-lg tvw-font-semibold tvw-text-cw-primary");d.textContent=(A=(b=e==null?void 0:e.copy)==null?void 0:b.welcomeTitle)!=null?A:"Hello \u{1F44B}";let g=p("p","tvw-mt-2 tvw-text-sm tvw-text-cw-muted");g.textContent=(W=(x=e==null?void 0:e.copy)==null?void 0:x.welcomeSubtitle)!=null?W:"Ask anything about your account or products.",a.append(d,g);let v=p("div","tvw-flex tvw-flex-col tvw-gap-3");i.append(a,v);let c=Wn({config:e}),m=((Y=e==null?void 0:e.layout)==null?void 0:Y.showFooter)!==!1;return o?yn(r,s,e):(s.header.style.display="none",yn(r,s,e)),r.append(i),m||(c.footer.style.display="none"),r.append(c.footer),{container:r,body:i,messagesWrapper:v,suggestions:c.suggestions,textarea:c.textarea,sendButton:c.sendButton,sendButtonWrapper:c.sendButtonWrapper,micButton:c.micButton,micButtonWrapper:c.micButtonWrapper,composerForm:c.composerForm,statusText:c.statusText,introTitle:d,introSubtitle:g,closeButton:s.closeButton,closeButtonWrapper:s.closeButtonWrapper,clearChatButton:s.clearChatButton,clearChatButtonWrapper:s.clearChatButtonWrapper,iconHolder:s.iconHolder,headerTitle:s.headerTitle,headerSubtitle:s.headerSubtitle,header:s.header,footer:c.footer,attachmentButton:c.attachmentButton,attachmentButtonWrapper:c.attachmentButtonWrapper,attachmentInput:c.attachmentInput,attachmentPreviewsContainer:c.attachmentPreviewsContainer,actionsRow:c.actionsRow,leftActions:c.leftActions,rightActions:c.rightActions}};var bn=()=>{let e=document.createElement("div");e.className="tvw-flex tvw-items-center tvw-space-x-1 tvw-h-5 tvw-mt-2";let n=document.createElement("div");n.className="tvw-bg-cw-primary tvw-animate-typing tvw-rounded-full tvw-h-1.5 tvw-w-1.5",n.style.animationDelay="0ms";let r=document.createElement("div");r.className="tvw-bg-cw-primary tvw-animate-typing tvw-rounded-full tvw-h-1.5 tvw-w-1.5",r.style.animationDelay="250ms";let t=document.createElement("div");t.className="tvw-bg-cw-primary tvw-animate-typing tvw-rounded-full tvw-h-1.5 tvw-w-1.5",t.style.animationDelay="500ms";let o=document.createElement("span");return o.className="tvw-sr-only",o.textContent="Loading",e.appendChild(n),e.appendChild(r),e.appendChild(t),e.appendChild(o),e},er=(e,n,r)=>{let t={config:r!=null?r:{},streaming:!0,location:e,defaultRenderer:bn};if(n){let o=n(t);if(o!==null)return o}return bn()},Na=(e,n)=>{let r=p("div","tvw-flex-shrink-0 tvw-w-8 tvw-h-8 tvw-rounded-full tvw-flex tvw-items-center tvw-justify-center tvw-text-sm"),t=n==="user"?e.userAvatar:e.assistantAvatar;if(t)if(t.startsWith("http")||t.startsWith("/")||t.startsWith("data:")){let o=p("img");o.src=t,o.alt=n==="user"?"User":"Assistant",o.className="tvw-w-full tvw-h-full tvw-rounded-full tvw-object-cover",r.appendChild(o)}else r.textContent=t,r.classList.add(n==="user"?"tvw-bg-cw-accent":"tvw-bg-cw-primary","tvw-text-white");else r.textContent=n==="user"?"U":"A",r.classList.add(n==="user"?"tvw-bg-cw-accent":"tvw-bg-cw-primary","tvw-text-white");return r},Ji=(e,n)=>{let r=p("div","tvw-text-xs tvw-text-cw-muted"),t=new Date(e.createdAt);return n.format?r.textContent=n.format(t):r.textContent=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),r},Da=(e,n="bubble")=>{let r=["vanilla-message-bubble","tvw-max-w-[85%]"];switch(n){case"flat":e==="user"?r.push("vanilla-message-user-bubble","tvw-ml-auto","tvw-text-cw-primary","tvw-py-2"):r.push("vanilla-message-assistant-bubble","tvw-text-cw-primary","tvw-py-2");break;case"minimal":r.push("tvw-text-sm","tvw-leading-relaxed"),e==="user"?r.push("vanilla-message-user-bubble","tvw-ml-auto","tvw-bg-cw-accent","tvw-text-white","tvw-px-3","tvw-py-2","tvw-rounded-lg"):r.push("vanilla-message-assistant-bubble","tvw-bg-cw-surface","tvw-text-cw-primary","tvw-px-3","tvw-py-2","tvw-rounded-lg");break;case"bubble":default:r.push("tvw-rounded-2xl","tvw-text-sm","tvw-leading-relaxed","tvw-shadow-sm"),e==="user"?r.push("vanilla-message-user-bubble","tvw-ml-auto","tvw-bg-cw-accent","tvw-text-white","tvw-px-5","tvw-py-3"):r.push("vanilla-message-assistant-bubble","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-text-cw-primary","tvw-px-5","tvw-py-3");break}return r},tr=(e,n,r)=>{var C,b,A,x,W,Y;let t=(C=n.showCopy)!=null?C:!0,o=(b=n.showUpvote)!=null?b:!0,s=(A=n.showDownvote)!=null?A:!0,i=(x=n.visibility)!=null?x:"hover",a=(W=n.align)!=null?W:"right",d=(Y=n.layout)!=null?Y:"pill-inside",g={left:"tvw-message-actions-left",center:"tvw-message-actions-center",right:"tvw-message-actions-right"}[a],v={"pill-inside":"tvw-message-actions-pill","row-inside":"tvw-message-actions-row"}[d],c=p("div",`tvw-message-actions tvw-flex tvw-items-center tvw-gap-1 tvw-mt-2 ${g} ${v} ${i==="hover"?"tvw-message-actions-hover":""}`);c.id=`actions-${e.id}`,c.setAttribute("data-actions-for",e.id);let m=null,w=(f,R,T,P)=>{let X=document.createElement("button");X.className="tvw-message-action-btn",X.setAttribute("aria-label",R),X.setAttribute("title",R),P&&X.setAttribute("data-action",P);let O=oe(f,14,"currentColor",2);return O&&X.appendChild(O),X.addEventListener("click",se=>{se.preventDefault(),se.stopPropagation(),T()}),X};if(t){let f=w("copy","Copy message",()=>{let R=e.content||"";navigator.clipboard.writeText(R).then(()=>{f.classList.add("tvw-message-action-success");let T=oe("check",14,"currentColor",2);T&&(f.innerHTML="",f.appendChild(T)),setTimeout(()=>{f.classList.remove("tvw-message-action-success");let P=oe("copy",14,"currentColor",2);P&&(f.innerHTML="",f.appendChild(P))},2e3)}).catch(T=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to copy message:",T)}),r!=null&&r.onCopy&&r.onCopy(e),n.onCopy&&n.onCopy(e)},"copy");c.appendChild(f)}if(o){let f=w("thumbs-up","Upvote",()=>{if(m==="upvote")m=null,f.classList.remove("tvw-message-action-active");else{let T=c.querySelector('[data-action="downvote"]');T&&T.classList.remove("tvw-message-action-active"),m="upvote",f.classList.add("tvw-message-action-active");let P={type:"upvote",messageId:e.id,message:e};r!=null&&r.onFeedback&&r.onFeedback(P),n.onFeedback&&n.onFeedback(P)}},"upvote");c.appendChild(f)}if(s){let f=w("thumbs-down","Downvote",()=>{if(m==="downvote")m=null,f.classList.remove("tvw-message-action-active");else{let T=c.querySelector('[data-action="upvote"]');T&&T.classList.remove("tvw-message-action-active"),m="downvote",f.classList.add("tvw-message-action-active");let P={type:"downvote",messageId:e.id,message:e};r!=null&&r.onFeedback&&r.onFeedback(P),n.onFeedback&&n.onFeedback(P)}},"downvote");c.appendChild(f)}return c},In=(e,n,r,t,o,s)=>{var f,R,T,P,X;let i=r!=null?r:{},a=(f=i.layout)!=null?f:"bubble",d=i.avatar,g=i.timestamp,v=(R=d==null?void 0:d.show)!=null?R:!1,c=(T=g==null?void 0:g.show)!=null?T:!1,m=(P=d==null?void 0:d.position)!=null?P:"left",w=(X=g==null?void 0:g.position)!=null?X:"below",C=Da(e.role,a),b=p("div",C.join(" "));b.id=`bubble-${e.id}`,b.setAttribute("data-message-id",e.id);let A=document.createElement("div");if(A.innerHTML=n({text:e.content,message:e,streaming:!!e.streaming,raw:e.rawContent}),c&&w==="inline"&&e.createdAt){let O=Ji(e,g);O.classList.add("tvw-ml-2","tvw-inline"),A.appendChild(O)}if(b.appendChild(A),c&&w==="below"&&e.createdAt){let O=Ji(e,g);O.classList.add("tvw-mt-1"),b.appendChild(O)}if(e.streaming&&e.role==="assistant"&&(!e.content||!e.content.trim())){let O=er("inline",s==null?void 0:s.loadingIndicatorRenderer,s==null?void 0:s.widgetConfig);O&&b.appendChild(O)}if(e.role==="assistant"&&!e.streaming&&e.content&&e.content.trim()&&(t==null?void 0:t.enabled)!==!1&&t){let O=tr(e,t,o);b.appendChild(O)}if(!v||e.role==="system")return b;let W=p("div",`tvw-flex tvw-gap-2 ${e.role==="user"?"tvw-flex-row-reverse":""}`),Y=Na(d,e.role);return m==="right"||m==="left"&&e.role==="user"?W.append(b,Y):W.append(Y,b),b.classList.remove("tvw-max-w-[85%]"),b.classList.add("tvw-max-w-[calc(85%-2.5rem)]"),W},Ki=(e,n,r,t,o,s)=>{let i=r!=null?r:{};return e.role==="user"&&i.renderUserMessage?i.renderUserMessage({message:e,config:{},streaming:!!e.streaming}):e.role==="assistant"&&i.renderAssistantMessage?i.renderAssistantMessage({message:e,config:{},streaming:!!e.streaming}):In(e,n,r,t,o,s)};var Pn=new Set,Yi=(e,n)=>{let r=Pn.has(e),t=n.querySelector('button[data-expand-header="true"]'),o=n.querySelector(".tvw-border-t");if(!t||!o)return;t.setAttribute("aria-expanded",r?"true":"false");let s=t.querySelector(".tvw-ml-auto"),i=s==null?void 0:s.querySelector(":scope > .tvw-flex.tvw-items-center");if(i){i.innerHTML="";let d=oe(r?"chevron-up":"chevron-down",16,"currentColor",2);d?i.appendChild(d):i.textContent=r?"Hide":"Show"}o.style.display=r?"":"none"},nr=e=>{let n=e.reasoning,r=p("div",["vanilla-message-bubble","vanilla-reasoning-bubble","tvw-w-full","tvw-max-w-[85%]","tvw-rounded-2xl","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-text-cw-primary","tvw-shadow-sm","tvw-overflow-hidden","tvw-px-0","tvw-py-0"].join(" "));if(r.id=`bubble-${e.id}`,r.setAttribute("data-message-id",e.id),!n)return r;let t=Pn.has(e.id),o=p("button","tvw-flex tvw-w-full tvw-items-center tvw-justify-between tvw-gap-3 tvw-bg-transparent tvw-px-4 tvw-py-3 tvw-text-left tvw-cursor-pointer tvw-border-none");o.type="button",o.setAttribute("aria-expanded",t?"true":"false"),o.setAttribute("data-expand-header","true"),o.setAttribute("data-bubble-type","reasoning");let s=p("div","tvw-flex tvw-flex-col tvw-text-left"),i=p("span","tvw-text-xs tvw-text-cw-primary");i.textContent="Thinking...",s.appendChild(i);let a=p("span","tvw-text-xs tvw-text-cw-primary");a.textContent=Ei(n),s.appendChild(a),n.status==="complete"?i.style.display="none":i.style.display="";let d=p("div","tvw-flex tvw-items-center"),v=oe(t?"chevron-up":"chevron-down",16,"currentColor",2);v?d.appendChild(v):d.textContent=t?"Hide":"Show";let c=p("div","tvw-flex tvw-items-center tvw-ml-auto");c.append(d),o.append(s,c);let m=p("div","tvw-border-t tvw-border-gray-200 tvw-bg-gray-50 tvw-px-4 tvw-py-3");m.style.display=t?"":"none";let w=n.chunks.join(""),C=p("div","tvw-whitespace-pre-wrap tvw-text-xs tvw-leading-snug tvw-text-cw-muted");return C.textContent=w||(n.status==="complete"?"No additional context was shared.":"Waiting for details\u2026"),m.appendChild(C),(()=>{o.setAttribute("aria-expanded",t?"true":"false"),d.innerHTML="";let x=oe(t?"chevron-up":"chevron-down",16,"currentColor",2);x?d.appendChild(x):d.textContent=t?"Hide":"Show",m.style.display=t?"":"none"})(),r.append(o,m),r};var Hn=new Set,Vi=(e,n,r)=>{var g;let t=Hn.has(e),o=(g=r==null?void 0:r.toolCall)!=null?g:{},s=n.querySelector('button[data-expand-header="true"]'),i=n.querySelector(".tvw-border-t");if(!s||!i)return;s.setAttribute("aria-expanded",t?"true":"false");let a=s.querySelector(".tvw-ml-auto"),d=a==null?void 0:a.querySelector(":scope > .tvw-flex.tvw-items-center");if(d){d.innerHTML="";let v=o.toggleTextColor||o.headerTextColor||"currentColor",c=oe(t?"chevron-up":"chevron-down",16,v,2);c?d.appendChild(c):d.textContent=t?"Hide":"Show"}i.style.display=t?"":"none"},sr=(e,n)=>{var b;let r=e.toolCall,t=(b=n==null?void 0:n.toolCall)!=null?b:{},o=p("div",["vanilla-message-bubble","vanilla-tool-bubble","tvw-w-full","tvw-max-w-[85%]","tvw-rounded-2xl","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-text-cw-primary","tvw-shadow-sm","tvw-overflow-hidden","tvw-px-0","tvw-py-0"].join(" "));if(o.id=`bubble-${e.id}`,o.setAttribute("data-message-id",e.id),t.backgroundColor&&(o.style.backgroundColor=t.backgroundColor),t.borderColor&&(o.style.borderColor=t.borderColor),t.borderWidth&&(o.style.borderWidth=t.borderWidth),t.borderRadius&&(o.style.borderRadius=t.borderRadius),!r)return o;let s=Hn.has(e.id),i=p("button","tvw-flex tvw-w-full tvw-items-center tvw-justify-between tvw-gap-3 tvw-bg-transparent tvw-px-4 tvw-py-3 tvw-text-left tvw-cursor-pointer tvw-border-none");i.type="button",i.setAttribute("aria-expanded",s?"true":"false"),i.setAttribute("data-expand-header","true"),i.setAttribute("data-bubble-type","tool"),t.headerBackgroundColor&&(i.style.backgroundColor=t.headerBackgroundColor),t.headerPaddingX&&(i.style.paddingLeft=t.headerPaddingX,i.style.paddingRight=t.headerPaddingX),t.headerPaddingY&&(i.style.paddingTop=t.headerPaddingY,i.style.paddingBottom=t.headerPaddingY);let a=p("div","tvw-flex tvw-flex-col tvw-text-left"),d=p("span","tvw-text-xs tvw-text-cw-primary");t.headerTextColor&&(d.style.color=t.headerTextColor),d.textContent=Ti(r),a.appendChild(d);let g=p("div","tvw-flex tvw-items-center"),v=t.toggleTextColor||t.headerTextColor||"currentColor",c=oe(s?"chevron-up":"chevron-down",16,v,2);c?g.appendChild(c):g.textContent=s?"Hide":"Show";let m=p("div","tvw-flex tvw-items-center tvw-gap-2 tvw-ml-auto");m.append(g),i.append(a,m);let w=p("div","tvw-border-t tvw-border-gray-200 tvw-bg-gray-50 tvw-space-y-3 tvw-px-4 tvw-py-3");if(w.style.display=s?"":"none",t.contentBackgroundColor&&(w.style.backgroundColor=t.contentBackgroundColor),t.contentTextColor&&(w.style.color=t.contentTextColor),t.contentPaddingX&&(w.style.paddingLeft=t.contentPaddingX,w.style.paddingRight=t.contentPaddingX),t.contentPaddingY&&(w.style.paddingTop=t.contentPaddingY,w.style.paddingBottom=t.contentPaddingY),r.name){let A=p("div","tvw-text-xs tvw-text-cw-muted tvw-italic");t.contentTextColor?A.style.color=t.contentTextColor:t.headerTextColor&&(A.style.color=t.headerTextColor),A.textContent=r.name,w.appendChild(A)}if(r.args!==void 0){let A=p("div","tvw-space-y-1"),x=p("div","tvw-text-xs tvw-text-cw-muted");t.labelTextColor&&(x.style.color=t.labelTextColor),x.textContent="Arguments";let W=p("pre","tvw-max-h-48 tvw-overflow-auto tvw-whitespace-pre-wrap tvw-rounded-lg tvw-border tvw-border-gray-100 tvw-bg-white tvw-px-3 tvw-py-2 tvw-text-xs tvw-text-cw-primary");W.style.fontSize="0.75rem",W.style.lineHeight="1rem",t.codeBlockBackgroundColor&&(W.style.backgroundColor=t.codeBlockBackgroundColor),t.codeBlockBorderColor&&(W.style.borderColor=t.codeBlockBorderColor),t.codeBlockTextColor&&(W.style.color=t.codeBlockTextColor),W.textContent=Ks(r.args),A.append(x,W),w.appendChild(A)}if(r.chunks&&r.chunks.length){let A=p("div","tvw-space-y-1"),x=p("div","tvw-text-xs tvw-text-cw-muted");t.labelTextColor&&(x.style.color=t.labelTextColor),x.textContent="Activity";let W=p("pre","tvw-max-h-48 tvw-overflow-auto tvw-whitespace-pre-wrap tvw-rounded-lg tvw-border tvw-border-gray-100 tvw-bg-white tvw-px-3 tvw-py-2 tvw-text-xs tvw-text-cw-primary");W.style.fontSize="0.75rem",W.style.lineHeight="1rem",t.codeBlockBackgroundColor&&(W.style.backgroundColor=t.codeBlockBackgroundColor),t.codeBlockBorderColor&&(W.style.borderColor=t.codeBlockBorderColor),t.codeBlockTextColor&&(W.style.color=t.codeBlockTextColor),W.textContent=r.chunks.join(`
16
+ `),A.append(x,W),w.appendChild(A)}if(r.status==="complete"&&r.result!==void 0){let A=p("div","tvw-space-y-1"),x=p("div","tvw-text-xs tvw-text-cw-muted");t.labelTextColor&&(x.style.color=t.labelTextColor),x.textContent="Result";let W=p("pre","tvw-max-h-48 tvw-overflow-auto tvw-whitespace-pre-wrap tvw-rounded-lg tvw-border tvw-border-gray-100 tvw-bg-white tvw-px-3 tvw-py-2 tvw-text-xs tvw-text-cw-primary");W.style.fontSize="0.75rem",W.style.lineHeight="1rem",t.codeBlockBackgroundColor&&(W.style.backgroundColor=t.codeBlockBackgroundColor),t.codeBlockBorderColor&&(W.style.borderColor=t.codeBlockBorderColor),t.codeBlockTextColor&&(W.style.color=t.codeBlockTextColor),W.textContent=Ks(r.result),A.append(x,W),w.appendChild(A)}if(r.status==="complete"&&typeof r.duration=="number"){let A=p("div","tvw-text-xs tvw-text-cw-muted");t.contentTextColor&&(A.style.color=t.contentTextColor),A.textContent=`Duration: ${r.duration}ms`,w.appendChild(A)}return(()=>{i.setAttribute("aria-expanded",s?"true":"false"),g.innerHTML="";let A=t.toggleTextColor||t.headerTextColor||"currentColor",x=oe(s?"chevron-up":"chevron-down",16,A,2);x?g.appendChild(x):g.textContent=s?"Hide":"Show",w.style.display=s?"":"none"})(),o.append(i,w),o};var Xi=e=>{let n=[];return{buttons:n,render:(t,o,s,i,a)=>{if(e.innerHTML="",n.length=0,!t||!t.length||(i!=null?i:o?o.getMessages():[]).some(w=>w.role==="user"))return;let v=document.createDocumentFragment(),c=o?o.isStreaming():!1,m=w=>{switch(w){case"serif":return'Georgia, "Times New Roman", Times, serif';case"mono":return'"Courier New", Courier, "Lucida Console", Monaco, monospace';case"sans-serif":default:return'-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif'}};t.forEach(w=>{let C=p("button","tvw-rounded-button tvw-bg-cw-surface tvw-px-3 tvw-py-1.5 tvw-text-xs tvw-font-medium tvw-text-cw-muted hover:tvw-opacity-90 tvw-cursor-pointer tvw-border tvw-border-gray-200");C.type="button",C.textContent=w,C.disabled=c,a!=null&&a.fontFamily&&(C.style.fontFamily=m(a.fontFamily)),a!=null&&a.fontWeight&&(C.style.fontWeight=a.fontWeight),a!=null&&a.paddingX&&(C.style.paddingLeft=a.paddingX,C.style.paddingRight=a.paddingX),a!=null&&a.paddingY&&(C.style.paddingTop=a.paddingY,C.style.paddingBottom=a.paddingY),C.addEventListener("click",()=>{!o||o.isStreaming()||(s.value="",o.sendMessage(w))}),v.appendChild(C),n.push(C)}),e.appendChild(v)}}};var ts=class{constructor(n=2e3,r=null){this.head=0;this.count=0;this.totalCaptured=0;this.eventTypesSet=new Set;this.maxSize=n,this.buffer=new Array(n),this.store=r}push(n){var r;this.buffer[this.head]=n,this.head=(this.head+1)%this.maxSize,this.count<this.maxSize&&this.count++,this.totalCaptured++,this.eventTypesSet.add(n.type),(r=this.store)==null||r.put(n)}getAll(){return this.count===0?[]:this.count<this.maxSize?this.buffer.slice(0,this.count):[...this.buffer.slice(this.head,this.maxSize),...this.buffer.slice(0,this.head)]}async restore(){if(!this.store)return 0;let n=await this.store.getAll();if(n.length===0)return 0;let r=n.length>this.maxSize?n.slice(n.length-this.maxSize):n;for(let t of r)this.buffer[this.head]=t,this.head=(this.head+1)%this.maxSize,this.count<this.maxSize&&this.count++,this.eventTypesSet.add(t.type);return this.totalCaptured=n.length,r.length}getAllFromStore(){return this.store?this.store.getAll():Promise.resolve(this.getAll())}getRecent(n){let r=this.getAll();return n>=r.length?r:r.slice(r.length-n)}getSize(){return this.count}getTotalCaptured(){return this.totalCaptured}getEvictedCount(){return this.totalCaptured-this.count}clear(){var n;this.buffer=new Array(this.maxSize),this.head=0,this.count=0,this.totalCaptured=0,this.eventTypesSet.clear(),(n=this.store)==null||n.clear()}destroy(){var n;this.buffer=[],this.head=0,this.count=0,this.totalCaptured=0,this.eventTypesSet.clear(),(n=this.store)==null||n.destroy()}getEventTypes(){return Array.from(this.eventTypesSet)}};var ns=class{constructor(n="persona-event-stream",r="events"){this.db=null;this.pendingWrites=[];this.flushScheduled=!1;this.isDestroyed=!1;this.dbName=n,this.storeName=r}open(){return new Promise((n,r)=>{try{let t=indexedDB.open(this.dbName,1);t.onupgradeneeded=()=>{let o=t.result;o.objectStoreNames.contains(this.storeName)||o.createObjectStore(this.storeName,{keyPath:"id"}).createIndex("timestamp","timestamp",{unique:!1})},t.onsuccess=()=>{this.db=t.result,n()},t.onerror=()=>{r(t.error)}}catch(t){r(t)}})}put(n){!this.db||this.isDestroyed||(this.pendingWrites.push(n),this.flushScheduled||(this.flushScheduled=!0,queueMicrotask(()=>this.flushWrites())))}putBatch(n){if(!(!this.db||this.isDestroyed||n.length===0))try{let t=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName);for(let o of n)t.put(o)}catch{}}getAll(){return new Promise((n,r)=>{if(!this.db){n([]);return}try{let i=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).index("timestamp").getAll();i.onsuccess=()=>{n(i.result)},i.onerror=()=>{r(i.error)}}catch(t){r(t)}})}getCount(){return new Promise((n,r)=>{if(!this.db){n(0);return}try{let s=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).count();s.onsuccess=()=>{n(s.result)},s.onerror=()=>{r(s.error)}}catch(t){r(t)}})}clear(){return new Promise((n,r)=>{if(!this.db){n();return}this.pendingWrites=[];try{let s=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).clear();s.onsuccess=()=>{n()},s.onerror=()=>{r(s.error)}}catch(t){r(t)}})}close(){this.db&&(this.db.close(),this.db=null)}destroy(){return this.isDestroyed=!0,this.pendingWrites=[],this.close(),new Promise((n,r)=>{try{let t=indexedDB.deleteDatabase(this.dbName);t.onsuccess=()=>{n()},t.onerror=()=>{r(t.error)}}catch(t){r(t)}})}flushWrites(){if(this.flushScheduled=!1,!this.db||this.isDestroyed||this.pendingWrites.length===0)return;let n=this.pendingWrites;this.pendingWrites=[];try{let t=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName);for(let o of n)t.put(o)}catch{}}};function Bn(e,n){n&&n.split(/\s+/).forEach(r=>r&&e.classList.add(r))}var ja={flow_:{bg:"#dcfce7",text:"#166534"},step_:{bg:"#dbeafe",text:"#1e40af"},reason_:{bg:"#ffedd5",text:"#9a3412"},tool_:{bg:"#f3e8ff",text:"#6b21a8"},agent_:{bg:"#ccfbf1",text:"#115e59"},error:{bg:"#fecaca",text:"#991b1b"}},_a={bg:"#f3f4f6",text:"#4b5563"},qa=["flowName","stepName","reasoningText","text","name","tool","toolName"],za=100;function Ua(e,n){let r={...ja,...n};if(r[e])return r[e];for(let t of Object.keys(r))if(t.endsWith("_")&&e.startsWith(t))return r[t];return _a}function Ja(e,n){return`+${((e-n)/1e3).toFixed(3)}s`}function Ka(e){let n=new Date(e),r=String(n.getHours()).padStart(2,"0"),t=String(n.getMinutes()).padStart(2,"0"),o=String(n.getSeconds()).padStart(2,"0"),s=String(n.getMilliseconds()).padStart(3,"0");return`${r}:${t}:${o}.${s}`}function Ya(e,n){try{let r=JSON.parse(e);if(typeof r!="object"||r===null)return null;for(let t of n){let o=t.split("."),s=r;for(let i of o)if(s&&typeof s=="object"&&s!==null)s=s[i];else{s=void 0;break}if(typeof s=="string"&&s.trim())return s.trim()}}catch{}return null}function Va(e){var n;return(n=navigator.clipboard)!=null&&n.writeText?navigator.clipboard.writeText(e):new Promise(r=>{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),r()})}function Xa(e){let n;try{n=JSON.parse(e.payload)}catch{n=e.payload}return JSON.stringify({type:e.type,timestamp:new Date(e.timestamp).toISOString(),payload:n},null,2)}function Ga(e,n,r){let t,o;try{o=JSON.parse(e.payload),t=JSON.stringify(o,null,2)}catch{o=e.payload,t=e.payload}let s=n.find(a=>a.renderEventStreamPayload);if(s!=null&&s.renderEventStreamPayload&&r){let a=s.renderEventStreamPayload({event:e,config:r,defaultRenderer:()=>i(),parsedPayload:o});if(a)return a}return i();function i(){let a=p("div","tvw-bg-cw-container tvw-border-t tvw-border-cw-divider tvw-px-3 tvw-py-2 tvw-ml-4 tvw-mr-3 tvw-mb-1 tvw-rounded-b tvw-overflow-auto tvw-max-h-[300px]"),d=p("pre","tvw-m-0 tvw-whitespace-pre-wrap tvw-break-all tvw-text-[11px] tvw-text-cw-secondary tvw-font-mono");return d.textContent=t,a.appendChild(d),a}}function rr(e,n,r,t,o,s,i,a){var m;let d=o.has(e.id),g=p("div","tvw-border-b tvw-border-cw-divider tvw-text-xs");Bn(g,(m=t.classNames)==null?void 0:m.eventRow);let v=i.find(w=>w.renderEventStreamRow);if(v!=null&&v.renderEventStreamRow&&a){let w=v.renderEventStreamRow({event:e,index:n,config:a,defaultRenderer:()=>c(),isExpanded:d,onToggleExpand:()=>s(e.id)});if(w)return g.appendChild(w),g}return g.appendChild(c()),g;function c(){var U,ve;let w=p("div",""),C=p("div","tvw-flex tvw-items-center tvw-gap-2 tvw-px-3 tvw-py-3 hover:tvw-bg-cw-container tvw-cursor-pointer tvw-group");C.setAttribute("data-event-id",e.id);let b=p("span","tvw-flex-shrink-0 tvw-text-cw-muted tvw-w-4 tvw-text-center tvw-flex tvw-items-center tvw-justify-center"),A=oe(d?"chevron-down":"chevron-right","14px","currentColor",2);A&&b.appendChild(A);let x=p("span","tvw-text-[11px] tvw-text-cw-muted tvw-whitespace-nowrap tvw-flex-shrink-0 tvw-font-mono tvw-w-[70px]"),W=(U=t.timestampFormat)!=null?U:"relative";x.textContent=W==="relative"?Ja(e.timestamp,r):Ka(e.timestamp);let Y=null;t.showSequenceNumbers!==!1&&(Y=p("span","tvw-text-[11px] tvw-text-cw-muted tvw-font-mono tvw-flex-shrink-0 tvw-w-[28px] tvw-text-right"),Y.textContent=String(n+1));let f=Ua(e.type,t.badgeColors),R=p("span","tvw-inline-flex tvw-items-center tvw-px-2 tvw-py-0.5 tvw-rounded tvw-text-[11px] tvw-font-mono tvw-font-medium tvw-whitespace-nowrap tvw-flex-shrink-0 tvw-border");R.style.backgroundColor=f.bg,R.style.color=f.text,R.style.borderColor=f.text+"50",R.textContent=e.type;let T=(ve=t.descriptionFields)!=null?ve:qa,P=Ya(e.payload,T),X=null;P&&(X=p("span","tvw-text-[11px] tvw-text-cw-secondary tvw-truncate tvw-min-w-0"),X.textContent=P);let O=p("div","tvw-flex-1 tvw-min-w-0"),se=p("button","tvw-text-cw-muted hover:tvw-text-cw-primary tvw-cursor-pointer tvw-flex-shrink-0 tvw-border-none tvw-bg-transparent tvw-p-0"),G=oe("clipboard","12px","currentColor",1.5);return G&&se.appendChild(G),se.addEventListener("click",async N=>{N.stopPropagation(),await Va(Xa(e)),se.innerHTML="";let re=oe("check","12px","currentColor",1.5);re&&se.appendChild(re),setTimeout(()=>{se.innerHTML="";let D=oe("clipboard","12px","currentColor",1.5);D&&se.appendChild(D)},1500)}),C.appendChild(b),C.appendChild(x),Y&&C.appendChild(Y),C.appendChild(R),X&&C.appendChild(X),C.appendChild(O),C.appendChild(se),w.appendChild(C),d&&w.appendChild(Ga(e,i,a)),w}}function Gi(e){var g,v;let{buffer:n,getFullHistory:r,onClose:t,config:o,plugins:s=[]}=e,i=(v=(g=o==null?void 0:o.features)==null?void 0:g.eventStream)!=null?v:{},a=s.find(c=>c.renderEventStreamView);if(a!=null&&a.renderEventStreamView&&o){let c=a.renderEventStreamView({config:o,events:n.getAll(),defaultRenderer:()=>d().element,onClose:t});if(c)return{element:c,update:()=>{},destroy:()=>{}}}return d();function d(){let c=i.classNames,m=p("div","tvw-event-stream-view tvw-flex tvw-flex-col tvw-flex-1 tvw-min-h-0");Bn(m,c==null?void 0:c.panel);let w=[],C="",b="",A=null,x=[],W={},Y=0,f=!1,R=0,T=0,P=!1,X=null,O=!1,se=0,G=new Set,U=new Map,ve="",N="",re=null,D,Z,fe,ce,Ue;function Tt(){let z=p("div","tvw-flex tvw-flex-col tvw-flex-shrink-0"),F=p("div","tvw-flex tvw-items-center tvw-gap-2 tvw-px-4 tvw-py-3 tvw-pb-0 tvw-border-cw-divider tvw-bg-cw-surface tvw-overflow-hidden");Bn(F,c==null?void 0:c.headerBar);let ge=p("span","tvw-text-sm tvw-font-medium tvw-text-cw-primary tvw-whitespace-nowrap");ge.textContent="Events",D=p("span","tvw-text-[11px] tvw-font-mono tvw-bg-cw-container tvw-text-cw-muted tvw-px-2 tvw-py-0.5 tvw-rounded tvw-border tvw-border-cw-border"),D.textContent="0";let de=p("div","tvw-flex-1");Z=p("select","tvw-text-xs tvw-bg-cw-surface tvw-border tvw-border-cw-border tvw-rounded tvw-px-2.5 tvw-py-1 tvw-text-cw-primary tvw-cursor-pointer");let te=p("option","");te.value="",te.textContent="All events",Z.appendChild(te),fe=p("button","tvw-inline-flex tvw-items-center tvw-gap-1.5 tvw-rounded tvw-text-xs tvw-text-cw-muted hover:tvw-bg-cw-container hover:tvw-text-cw-primary tvw-cursor-pointer tvw-border tvw-border-cw-border tvw-bg-cw-surface tvw-flex-shrink-0 tvw-px-2.5 tvw-py-1"),fe.type="button",fe.title="Copy All";let $e=oe("clipboard-copy","12px","currentColor",1.5);$e&&fe.appendChild($e);let _=p("span","tvw-text-xs");_.textContent="Copy All",fe.appendChild(_),F.appendChild(ge),F.appendChild(D),F.appendChild(de),F.appendChild(Z),F.appendChild(fe);let ie=p("div","tvw-relative tvw-px-4 tvw-py-2.5 tvw-border-b tvw-border-cw-divider tvw-bg-cw-surface");Bn(ie,c==null?void 0:c.searchBar);let ke=oe("search","14px","var(--cw-muted, #9ca3af)",1.5),Ke=p("span","tvw-absolute tvw-left-6 tvw-top-1/2 tvw--translate-y-1/2 tvw-pointer-events-none tvw-flex tvw-items-center");ke&&Ke.appendChild(ke),ce=p("input","tvw-text-sm tvw-bg-cw-surface tvw-border tvw-border-cw-border tvw-rounded-md tvw-pl-8 tvw-pr-3 tvw-py-1 tvw-w-full tvw-text-cw-primary"),Bn(ce,c==null?void 0:c.searchInput),ce.type="text",ce.placeholder="Search event payloads...",Ue=p("button","tvw-absolute tvw-right-5 tvw-top-1/2 tvw--translate-y-1/2 tvw-text-cw-muted hover:tvw-text-cw-primary tvw-cursor-pointer tvw-border-none tvw-bg-transparent tvw-p-0 tvw-leading-none"),Ue.type="button",Ue.style.display="none";let it=oe("x","12px","currentColor",2);return it&&Ue.appendChild(it),ie.appendChild(Ke),ie.appendChild(ce),ie.appendChild(Ue),z.appendChild(F),z.appendChild(ie),z}let Mt,$t=s.find(z=>z.renderEventStreamToolbar);if($t!=null&&$t.renderEventStreamToolbar&&o){let z=$t.renderEventStreamToolbar({config:o,defaultRenderer:()=>Tt(),eventCount:n.getSize(),filteredCount:0,onFilterChange:F=>{C=F,ut(),wt()},onSearchChange:F=>{b=F,ut(),wt()}});Mt=z!=null?z:Tt()}else Mt=Tt();let Ie=p("div","tvw-text-xs tvw-text-cw-muted tvw-text-center tvw-py-0.5 tvw-px-4 tvw-bg-cw-container tvw-border-b tvw-border-cw-divider tvw-italic tvw-flex-shrink-0");Ie.style.display="none";let ye=p("div","tvw-flex-1 tvw-min-h-0 tvw-relative"),ee=p("div","tvw-event-stream-list tvw-overflow-y-auto tvw-min-h-0");ee.style.height="100%";let ue=p("div","tvw-absolute tvw-bottom-3 tvw-left-1/2 tvw-transform tvw--translate-x-1/2 tvw-bg-cw-accent tvw-text-white tvw-text-xs tvw-px-3 tvw-py-1.5 tvw-rounded-full tvw-cursor-pointer tvw-shadow-md tvw-z-10 tvw-flex tvw-items-center tvw-gap-1");Bn(ue,c==null?void 0:c.scrollIndicator),ue.style.display="none";let Pe=oe("arrow-down","12px","currentColor",2);Pe&&ue.appendChild(Pe);let tt=p("span","");ue.appendChild(tt);let Et=p("div","tvw-flex tvw-items-center tvw-justify-center tvw-h-full tvw-text-sm tvw-text-cw-muted");Et.style.display="none",ye.appendChild(ee),ye.appendChild(Et),ye.appendChild(ue),m.setAttribute("tabindex","0"),m.appendChild(Mt),m.appendChild(Ie),m.appendChild(ye);function pe(){let z=n.getAll(),F={};for(let _ of z)F[_.type]=(F[_.type]||0)+1;let ge=Object.keys(F).sort(),de=ge.length!==x.length||!ge.every((_,ie)=>_===x[ie]),te=!de&&ge.some(_=>F[_]!==W[_]),xe=z.length!==Object.values(W).reduce((_,ie)=>_+ie,0);if(!de&&!te&&!xe||(x=ge,W=F,!Z))return;let $e=Z.value;if(Z.options[0].textContent="All events",de){for(;Z.options.length>1;)Z.remove(1);for(let _ of ge){let ie=p("option","");ie.value=_,ie.textContent=`${_} (${F[_]||0})`,Z.appendChild(ie)}$e&&ge.includes($e)?Z.value=$e:$e&&(Z.value="",C="")}else for(let _=1;_<Z.options.length;_++){let ie=Z.options[_];ie.textContent=`${ie.value} (${F[ie.value]||0})`}}function J(){let z=n.getAll();if(C&&(z=z.filter(F=>F.type===C)),b){let F=b.toLowerCase();z=z.filter(ge=>ge.type.toLowerCase().includes(F)||ge.payload.toLowerCase().includes(F))}return z}function ct(){return C!==""||b!==""}function ut(){Y=0,R=0,f=!1,ue.style.display="none"}function ft(z){G.has(z)?G.delete(z):G.add(z),re=z;let F=ee.scrollTop,ge=f;O=!0,f=!0,wt(),ee.scrollTop=F,f=ge,O=!1}function Ot(){return ee.scrollHeight-ee.scrollTop-ee.clientHeight<=50}function wt(){T=Date.now(),P=!1,pe();let z=n.getEvictedCount();z>0?(Ie.textContent=`${z.toLocaleString()} older events truncated`,Ie.style.display=""):Ie.style.display="none",w=J();let F=w.length,ge=n.getSize()>0;D&&(D.textContent=String(n.getSize())),F===0&&ge&&ct()?(Et.textContent=b?`No events matching '${b}'`:"No events matching filter",Et.style.display="",ee.style.display="none"):(Et.style.display="none",ee.style.display=""),fe&&(fe.title=ct()?`Copy Filtered (${F})`:"Copy All"),f&&F>Y&&(R+=F-Y,tt.textContent=`${R} new event${R===1?"":"s"}`,ue.style.display=""),Y=F;let de=n.getAll(),te=de.length>0?de[0].timestamp:0,xe=new Set(w.map(ie=>ie.id));for(let ie of G)xe.has(ie)||G.delete(ie);let $e=C!==ve||b!==N,_=U.size===0&&w.length>0;if($e||_||w.length===0){ee.innerHTML="",U.clear();let ie=document.createDocumentFragment();for(let ke=0;ke<w.length;ke++){let Ke=rr(w[ke],ke,te,i,G,ft,s,o);U.set(w[ke].id,Ke),ie.appendChild(Ke)}ee.appendChild(ie),ve=C,N=b,re=null}else{if(re!==null){let ke=U.get(re);if(ke&&ke.parentNode===ee){let Ke=w.findIndex(it=>it.id===re);if(Ke>=0){let it=rr(w[Ke],Ke,te,i,G,ft,s,o);ee.insertBefore(it,ke),ke.remove(),U.set(re,it)}}re=null}let ie=new Set(w.map(ke=>ke.id));for(let[ke,Ke]of U)ie.has(ke)||(Ke.remove(),U.delete(ke));for(let ke=0;ke<w.length;ke++){let Ke=w[ke];if(!U.has(Ke.id)){let it=rr(Ke,ke,te,i,G,ft,s,o);U.set(Ke.id,it),ee.appendChild(it)}}}f||(ee.scrollTop=ee.scrollHeight)}function V(){if(Date.now()-T>=za){X!==null&&(cancelAnimationFrame(X),X=null),wt();return}P||(P=!0,X=requestAnimationFrame(()=>{X=null,wt()}))}let Me=(z,F)=>{if(!fe)return;fe.innerHTML="";let ge=oe(z,"12px","currentColor",1.5);ge&&fe.appendChild(ge);let de=p("span","tvw-text-xs");de.textContent="Copy All",fe.appendChild(de),setTimeout(()=>{fe.innerHTML="";let te=oe("clipboard-copy","12px","currentColor",1.5);te&&fe.appendChild(te);let xe=p("span","tvw-text-xs");xe.textContent="Copy All",fe.appendChild(xe),fe.disabled=!1},F)},vt=async()=>{if(fe){fe.disabled=!0;try{let z;ct()?z=w:z=r?await r():n.getAll();let F=z.map(ge=>{try{return JSON.parse(ge.payload)}catch{return ge.payload}});await navigator.clipboard.writeText(JSON.stringify(F,null,2)),Me("check",1500)}catch{Me("x",1500)}}},yt=()=>{Z&&(C=Z.value,ut(),wt())},Q=()=>{!ce||!Ue||(Ue.style.display=ce.value?"":"none",A&&clearTimeout(A),A=setTimeout(()=>{b=ce.value,ut(),wt()},150))},Fe=()=>{!ce||!Ue||(ce.value="",b="",Ue.style.display="none",A&&clearTimeout(A),ut(),wt())},bt=()=>{if(O)return;let z=ee.scrollTop,F=z>se;se=z,Ot()&&F?(f=!1,R=0,ue.style.display="none"):Ot()||(f=!0)},Wt=z=>{z.deltaY<0&&(f=!0)},Lt=()=>{ee.scrollTop=ee.scrollHeight,f=!1,R=0,ue.style.display="none"},j=z=>{let F=z.target;if(!F||F.closest("button"))return;let ge=F.closest("[data-event-id]");if(!ge)return;let de=ge.getAttribute("data-event-id");de&&ft(de)},Qe=z=>{if((z.metaKey||z.ctrlKey)&&z.key==="f"){z.preventDefault(),ce==null||ce.focus(),ce==null||ce.select();return}z.key==="Escape"&&(ce&&document.activeElement===ce?(Fe(),ce.blur(),m.focus()):t&&t())};fe&&fe.addEventListener("click",vt),Z&&Z.addEventListener("change",yt),ce&&ce.addEventListener("input",Q),Ue&&Ue.addEventListener("click",Fe),ee.addEventListener("scroll",bt),ee.addEventListener("wheel",Wt,{passive:!0}),ee.addEventListener("click",j),ue.addEventListener("click",Lt),m.addEventListener("keydown",Qe);function Ae(){A&&clearTimeout(A),X!==null&&(cancelAnimationFrame(X),X=null),P=!1,U.clear(),fe&&fe.removeEventListener("click",vt),Z&&Z.removeEventListener("change",yt),ce&&ce.removeEventListener("input",Q),Ue&&Ue.removeEventListener("click",Fe),ee.removeEventListener("scroll",bt),ee.removeEventListener("wheel",Wt),ee.removeEventListener("click",j),ue.removeEventListener("click",Lt),m.removeEventListener("keydown",Qe)}return{element:m,update:V,destroy:Ae}}}var Qi={init:{title:"Schedule a Demo",description:"Share the basics and we'll follow up with a confirmation.",fields:[{name:"name",label:"Full name",placeholder:"Jane Doe",required:!0},{name:"email",label:"Work email",placeholder:"jane@example.com",type:"email",required:!0},{name:"notes",label:"What would you like to cover?",type:"textarea"}],submitLabel:"Submit details"},followup:{title:"Additional Information",description:"Provide any extra details to tailor the next steps.",fields:[{name:"company",label:"Company",placeholder:"Acme Inc."},{name:"context",label:"Context",type:"textarea",placeholder:"Share more about your use case"}],submitLabel:"Send"}},or=(e,n,r,t)=>{let o=e.querySelectorAll("[data-tv-form]");o.length&&o.forEach(s=>{var C,b,A;if(s.dataset.enhanced==="true")return;let i=(C=s.dataset.tvForm)!=null?C:"init";s.dataset.enhanced="true";let a=(b=Qi[i])!=null?b:Qi.init;s.classList.add("tvw-form-card","tvw-space-y-4");let d=p("div","tvw-space-y-1"),g=p("h3","tvw-text-base tvw-font-semibold tvw-text-cw-primary");if(g.textContent=a.title,d.appendChild(g),a.description){let x=p("p","tvw-text-sm tvw-text-cw-muted");x.textContent=a.description,d.appendChild(x)}let v=document.createElement("form");v.className="tvw-form-grid tvw-space-y-3",a.fields.forEach(x=>{var T,P;let W=p("label","tvw-form-field tvw-flex tvw-flex-col tvw-gap-1");W.htmlFor=`${n.id}-${i}-${x.name}`;let Y=p("span","tvw-text-xs tvw-font-medium tvw-text-cw-muted");Y.textContent=x.label,W.appendChild(Y);let f=(T=x.type)!=null?T:"text",R;f==="textarea"?(R=document.createElement("textarea"),R.rows=3):(R=document.createElement("input"),R.type=f),R.className="tvw-rounded-xl tvw-border tvw-border-gray-200 tvw-bg-white tvw-px-3 tvw-py-2 tvw-text-sm tvw-text-cw-primary focus:tvw-outline-none focus:tvw-border-cw-primary",R.id=`${n.id}-${i}-${x.name}`,R.name=x.name,R.placeholder=(P=x.placeholder)!=null?P:"",x.required&&(R.required=!0),W.appendChild(R),v.appendChild(W)});let c=p("div","tvw-flex tvw-items-center tvw-justify-between tvw-gap-2"),m=p("div","tvw-text-xs tvw-text-cw-muted tvw-min-h-[1.5rem]"),w=p("button","tvw-inline-flex tvw-items-center tvw-rounded-full tvw-bg-cw-primary tvw-px-4 tvw-py-2 tvw-text-sm tvw-font-semibold tvw-text-white disabled:tvw-opacity-60 tvw-cursor-pointer");w.type="submit",w.textContent=(A=a.submitLabel)!=null?A:"Submit",c.appendChild(m),c.appendChild(w),v.appendChild(c),s.replaceChildren(d,v),v.addEventListener("submit",async x=>{var R,T;x.preventDefault();let W=(R=r.formEndpoint)!=null?R:"/form",Y=new FormData(v),f={};Y.forEach((P,X)=>{f[X]=P}),f.type=i,w.disabled=!0,m.textContent="Submitting\u2026";try{let P=await fetch(W,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)});if(!P.ok)throw new Error(`Form submission failed (${P.status})`);let X=await P.json();m.textContent=(T=X.message)!=null?T:"Thanks! We'll be in touch soon.",X.success&&X.nextPrompt&&await t.sendMessage(String(X.nextPrompt))}catch(P){m.textContent=P instanceof Error?P.message:"Something went wrong. Please try again."}finally{w.disabled=!1}})})};var ir=class{constructor(){this.plugins=new Map}register(n){var r;this.plugins.has(n.id)&&console.warn(`Plugin "${n.id}" is already registered. Overwriting.`),this.plugins.set(n.id,n),(r=n.onRegister)==null||r.call(n)}unregister(n){var t;let r=this.plugins.get(n);r&&((t=r.onUnregister)==null||t.call(r),this.plugins.delete(n))}getAll(){return Array.from(this.plugins.values()).sort((n,r)=>{var t,o;return((t=r.priority)!=null?t:0)-((o=n.priority)!=null?o:0)})}getForInstance(n){let r=this.getAll();if(!n||n.length===0)return r;let t=new Set(n.map(s=>s.id));return[...r.filter(s=>!t.has(s.id)),...n].sort((s,i)=>{var a,d;return((a=i.priority)!=null?a:0)-((d=s.priority)!=null?d:0)})}clear(){this.plugins.forEach(n=>{var r;return(r=n.onUnregister)==null?void 0:r.call(n)}),this.plugins.clear()}},ss=new ir;var ar={primary:"#111827",accent:"#1d4ed8",surface:"#ffffff",muted:"#6b7280",container:"#f8fafc",border:"#f1f5f9",divider:"#f1f5f9",messageBorder:"#f1f5f9",inputBackground:"#ffffff",callToAction:"#000000",callToActionBackground:"#ffffff",sendButtonBackgroundColor:"#111827",sendButtonTextColor:"#ffffff",sendButtonBorderColor:"#60a5fa",closeButtonColor:"#6b7280",closeButtonBackgroundColor:"transparent",closeButtonBorderColor:"",clearChatIconColor:"#6b7280",clearChatBackgroundColor:"transparent",clearChatBorderColor:"transparent",micIconColor:"#111827",micBackgroundColor:"transparent",micBorderColor:"transparent",recordingIconColor:"#ffffff",recordingBackgroundColor:"#ef4444",recordingBorderColor:"transparent",inputFontFamily:"sans-serif",inputFontWeight:"400",radiusSm:"0.75rem",radiusMd:"1rem",radiusLg:"1.5rem",launcherRadius:"9999px",buttonRadius:"9999px"},lr={primary:"#f9fafb",accent:"#3b82f6",surface:"#1f2937",muted:"#9ca3af",container:"#111827",border:"#374151",divider:"#374151",messageBorder:"#374151",inputBackground:"#111827",callToAction:"#ffffff",callToActionBackground:"#374151",sendButtonBackgroundColor:"#3b82f6",sendButtonTextColor:"#ffffff",sendButtonBorderColor:"#60a5fa",closeButtonColor:"#9ca3af",closeButtonBackgroundColor:"transparent",closeButtonBorderColor:"",clearChatIconColor:"#9ca3af",clearChatBackgroundColor:"transparent",clearChatBorderColor:"transparent",micIconColor:"#f9fafb",micBackgroundColor:"transparent",micBorderColor:"transparent",recordingIconColor:"#ffffff",recordingBackgroundColor:"#ef4444",recordingBorderColor:"transparent",inputFontFamily:"sans-serif",inputFontWeight:"400",radiusSm:"0.75rem",radiusMd:"1rem",radiusLg:"1.5rem",launcherRadius:"9999px",buttonRadius:"9999px"},et={apiUrl:"http://localhost:43111/api/chat/dispatch",clientToken:void 0,theme:ar,darkTheme:lr,colorScheme:"light",launcher:{enabled:!0,title:"Chat Assistant",subtitle:"Here to help you get answers fast",agentIconText:"\u{1F4AC}",position:"bottom-right",width:"min(400px, calc(100vw - 24px))",heightOffset:0,autoExpand:!1,callToActionIconHidden:!1,agentIconSize:"40px",headerIconSize:"40px",closeButtonSize:"32px",callToActionIconName:"arrow-up-right",callToActionIconText:"",callToActionIconSize:"32px",callToActionIconPadding:"5px",callToActionIconColor:"#000000",callToActionIconBackgroundColor:"#ffffff",closeButtonColor:"#6b7280",closeButtonBackgroundColor:"transparent",clearChat:{iconColor:"#6b7280",backgroundColor:"transparent",borderColor:"transparent",enabled:!0,placement:"inline",iconName:"refresh-cw",size:"32px",showTooltip:!0,tooltipText:"Clear chat",paddingX:"0px",paddingY:"0px"},headerIconHidden:!1,border:"1px solid #e5e7eb",shadow:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)"},copy:{welcomeTitle:"Hello \u{1F44B}",welcomeSubtitle:"Ask anything about your account or products.",inputPlaceholder:"How can I help...",sendButtonLabel:"Send"},sendButton:{borderWidth:"0px",paddingX:"12px",paddingY:"10px",backgroundColor:"#111827",textColor:"#ffffff",borderColor:"#60a5fa",useIcon:!0,iconText:"\u2191",size:"40px",showTooltip:!0,tooltipText:"Send message",iconName:"send"},statusIndicator:{visible:!0,idleText:"Online",connectingText:"Connecting\u2026",connectedText:"Streaming\u2026",errorText:"Offline"},voiceRecognition:{enabled:!0,pauseDuration:2e3,iconName:"mic",iconSize:"39px",borderWidth:"0px",paddingX:"9px",paddingY:"14px",iconColor:"#111827",backgroundColor:"transparent",borderColor:"transparent",recordingIconColor:"#ffffff",recordingBackgroundColor:"#ef4444",recordingBorderColor:"transparent",showTooltip:!0,tooltipText:"Start voice recognition"},features:{showReasoning:!0,showToolCalls:!0},suggestionChips:["What can you help me with?","Tell me about your features","How does this work?"],suggestionChipsConfig:{fontFamily:"sans-serif",fontWeight:"500",paddingX:"12px",paddingY:"6px"},layout:{header:{layout:"default",showIcon:!0,showTitle:!0,showSubtitle:!0,showCloseButton:!0,showClearChat:!0},messages:{layout:"bubble",avatar:{show:!1,position:"left"},timestamp:{show:!1,position:"below"},groupConsecutive:!1},slots:{}},markdown:{options:{gfm:!0,breaks:!0},disableDefaultStyles:!1},messageActions:{enabled:!0,showCopy:!0,showUpvote:!1,showDownvote:!1,visibility:"hover",align:"right",layout:"pill-inside"},debug:!1};function Ws(e){var n,r,t,o,s,i,a,d,g,v,c,m,w,C,b,A,x,W,Y;return e?{...et,...e,theme:{...et.theme,...e.theme},darkTheme:{...et.darkTheme,...e.darkTheme},launcher:{...et.launcher,...e.launcher,clearChat:{...(n=et.launcher)==null?void 0:n.clearChat,...(r=e.launcher)==null?void 0:r.clearChat}},copy:{...et.copy,...e.copy},sendButton:{...et.sendButton,...e.sendButton},statusIndicator:{...et.statusIndicator,...e.statusIndicator},voiceRecognition:{...et.voiceRecognition,...e.voiceRecognition},features:{...et.features,...e.features},suggestionChips:(t=e.suggestionChips)!=null?t:et.suggestionChips,suggestionChipsConfig:{...et.suggestionChipsConfig,...e.suggestionChipsConfig},layout:{...et.layout,...e.layout,header:{...(o=et.layout)==null?void 0:o.header,...(s=e.layout)==null?void 0:s.header},messages:{...(i=et.layout)==null?void 0:i.messages,...(a=e.layout)==null?void 0:a.messages,avatar:{...(g=(d=et.layout)==null?void 0:d.messages)==null?void 0:g.avatar,...(c=(v=e.layout)==null?void 0:v.messages)==null?void 0:c.avatar},timestamp:{...(w=(m=et.layout)==null?void 0:m.messages)==null?void 0:w.timestamp,...(b=(C=e.layout)==null?void 0:C.messages)==null?void 0:b.timestamp}},slots:{...(A=et.layout)==null?void 0:A.slots,...(x=e.layout)==null?void 0:x.slots}},markdown:{...et.markdown,...e.markdown,options:{...(W=et.markdown)==null?void 0:W.options,...(Y=e.markdown)==null?void 0:Y.options}},messageActions:{...et.messageActions,...e.messageActions}}:et}var Zi=()=>{let e=new Map,n=(o,s)=>(e.has(o)||e.set(o,new Set),e.get(o).add(s),()=>r(o,s)),r=(o,s)=>{var i;(i=e.get(o))==null||i.delete(s)};return{on:n,off:r,emit:(o,s)=>{var i;(i=e.get(o))==null||i.forEach(a=>{try{a(s)}catch(d){typeof console!="undefined"&&console.error("[AgentWidget] Event handler error:",d)}})}}};var Qa=e=>{let n=e.match(/```(?:json)?\s*([\s\S]*?)```/i);return n?n[1]:e},Za=e=>{let n=e.trim(),r=n.indexOf("{");if(r===-1)return null;let t=0;for(let o=r;o<n.length;o+=1){let s=n[o];if(s==="{"&&(t+=1),s==="}"&&(t-=1,t===0))return n.slice(r,o+1)}return null},rs=({text:e})=>{if(!e||!e.includes("{"))return null;try{let n=Qa(e),r=Za(n);if(!r)return null;let t=JSON.parse(r);if(!t||typeof t!="object"||!t.action)return null;let{action:o,...s}=t;return{type:String(o),payload:s,raw:t}}catch{return null}},dr=e=>typeof e=="string"?e:e==null?"":String(e),Cn={message:e=>e.type!=="message"?void 0:{handled:!0,displayText:dr(e.payload.text)},messageAndClick:(e,n)=>{var o;if(e.type!=="message_and_click")return;let r=e.payload,t=dr(r.element);if(t&&((o=n.document)!=null&&o.querySelector)){let s=n.document.querySelector(t);s?setTimeout(()=>{s.click()},400):typeof console!="undefined"&&console.warn("[AgentWidget] Element not found for selector:",t)}return{handled:!0,displayText:dr(r.text)}}},ea=e=>Array.isArray(e)?e.map(n=>String(n)):[],os=e=>{let n=new Set(ea(e.getSessionMetadata().processedActionMessageIds)),r=()=>{n=new Set(ea(e.getSessionMetadata().processedActionMessageIds))},t=()=>{let s=Array.from(n);e.updateSessionMetadata(i=>({...i,processedActionMessageIds:s}))};return{process:s=>{if(s.streaming||s.message.role!=="assistant"||!s.text||n.has(s.message.id))return null;let i=typeof s.raw=="string"&&s.raw||typeof s.message.rawContent=="string"&&s.message.rawContent||typeof s.text=="string"&&s.text||null;!i&&typeof s.text=="string"&&s.text.trim().startsWith("{")&&typeof console!="undefined"&&console.warn("[AgentWidget] Structured response detected but no raw payload was provided. Ensure your stream parser returns { text, raw }.");let a=i?e.parsers.reduce((g,v)=>g||(v==null?void 0:v({text:i,message:s.message}))||null,null):null;if(!a)return null;n.add(s.message.id),t();let d={action:a,message:s.message};e.emit("action:detected",d);for(let g of e.handlers)if(g)try{let v=()=>{e.emit("action:resubmit",d)},c=g(a,{message:s.message,metadata:e.getSessionMetadata(),updateMetadata:e.updateSessionMetadata,document:e.documentRef,triggerResubmit:v});if(!c)continue;if(c.handled){let m=c.persistMessage!==!1;return{text:c.displayText!==void 0?c.displayText:"",persist:m,resubmit:c.resubmit}}}catch(v){typeof console!="undefined"&&console.error("[AgentWidget] Action handler error:",v)}return{text:"",persist:!0}},syncFromMetadata:r}};var el=e=>{if(!e)return null;try{return JSON.parse(e)}catch(n){return typeof console!="undefined"&&console.error("[AgentWidget] Failed to parse stored state:",n),null}},tl=e=>e.map(n=>({...n,streaming:!1})),Is=(e="persona-state")=>{let n=()=>typeof window=="undefined"||!window.localStorage?null:window.localStorage;return{load:()=>{let r=n();return r?el(r.getItem(e)):null},save:r=>{let t=n();if(t)try{let o={...r,messages:r.messages?tl(r.messages):void 0};t.setItem(e,JSON.stringify(o))}catch(o){typeof console!="undefined"&&console.error("[AgentWidget] Failed to persist state:",o)}},clear:()=>{let r=n();if(r)try{r.removeItem(e)}catch(t){typeof console!="undefined"&&console.error("[AgentWidget] Failed to clear stored state:",t)}}}};var cr=class{constructor(){this.components=new Map}register(n,r){this.components.has(n)&&console.warn(`[ComponentRegistry] Component "${n}" is already registered. Overwriting.`),this.components.set(n,r)}unregister(n){this.components.delete(n)}get(n){return this.components.get(n)}has(n){return this.components.has(n)}getAllNames(){return Array.from(this.components.keys())}clear(){this.components.clear()}registerAll(n){Object.entries(n).forEach(([r,t])=>{this.register(r,t)})}},Rn=new cr;var Fn=require("partial-json");function nl(e){if(!e||typeof e!="object"||!("component"in e))return!1;let n=e.component;return typeof n=="string"&&n.length>0}function sl(e,n){if(!nl(e))return null;let r=e.props&&typeof e.props=="object"&&e.props!==null?e.props:{};return{component:e.component,props:r,raw:n}}function Ps(){let e=null,n=0;return{getExtractedDirective:()=>e,processChunk:r=>{let t=r.trim();if(!t.startsWith("{")&&!t.startsWith("["))return null;if(r.length<=n)return e;try{let o=(0,Fn.parse)(r,Fn.STR|Fn.OBJ),s=sl(o,r);s&&(e=s)}catch{}return n=r.length,e},reset:()=>{e=null,n=0}}}function ta(e){return typeof e=="object"&&e!==null&&"component"in e&&typeof e.component=="string"&&"props"in e&&typeof e.props=="object"}function Hs(e,n){let{config:r,message:t,onPropsUpdate:o}=n,s=Rn.get(e.component);if(!s)return console.warn(`[ComponentMiddleware] Component "${e.component}" not found in registry. Falling back to default rendering.`),null;let i={message:t,config:r,updateProps:a=>{o&&o(a)}};try{return s(e.props,i)}catch(a){return console.error(`[ComponentMiddleware] Error rendering component "${e.component}":`,a),null}}function na(){let e=Ps();return{processChunk:n=>e.processChunk(n),getDirective:()=>e.getExtractedDirective(),reset:()=>{e.reset()}}}function Bs(e){if(!e.rawContent)return!1;try{let n=JSON.parse(e.rawContent);return typeof n=="object"&&n!==null&&"component"in n&&typeof n.component=="string"}catch{return!1}}function Rs(e){if(!e.rawContent)return null;try{let n=JSON.parse(e.rawContent);if(typeof n=="object"&&n!==null&&"component"in n&&typeof n.component=="string")return{component:n.component,props:n.props&&typeof n.props=="object"&&n.props!==null?n.props:{},raw:e.rawContent}}catch{}return null}var rl=["Very dissatisfied","Dissatisfied","Neutral","Satisfied","Very satisfied"];function Fs(e){let{onSubmit:n,onDismiss:r,title:t="How satisfied are you?",subtitle:o="Please rate your experience",commentPlaceholder:s="Share your thoughts (optional)...",submitText:i="Submit",skipText:a="Skip",showComment:d=!0,ratingLabels:g=rl}=e,v=document.createElement("div");v.className="tvw-feedback-container tvw-feedback-csat",v.setAttribute("role","dialog"),v.setAttribute("aria-label","Customer satisfaction feedback");let c=null,m=document.createElement("div");m.className="tvw-feedback-content";let w=document.createElement("div");w.className="tvw-feedback-header";let C=document.createElement("h3");C.className="tvw-feedback-title",C.textContent=t,w.appendChild(C);let b=document.createElement("p");b.className="tvw-feedback-subtitle",b.textContent=o,w.appendChild(b),m.appendChild(w);let A=document.createElement("div");A.className="tvw-feedback-rating tvw-feedback-rating-csat",A.setAttribute("role","radiogroup"),A.setAttribute("aria-label","Satisfaction rating from 1 to 5");let x=[];for(let T=1;T<=5;T++){let P=document.createElement("button");P.type="button",P.className="tvw-feedback-rating-btn tvw-feedback-star-btn",P.setAttribute("role","radio"),P.setAttribute("aria-checked","false"),P.setAttribute("aria-label",`${T} star${T>1?"s":""}: ${g[T-1]}`),P.title=g[T-1],P.dataset.rating=String(T),P.innerHTML=`
17
17
  <svg class="tvw-feedback-star" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
18
18
  <polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon>
19
19
  </svg>
20
- `,W.addEventListener("click",()=>{p=M,y.forEach((V,$)=>{let Z=$<M;V.classList.toggle("selected",Z),V.setAttribute("aria-checked",$===M-1?"true":"false")})}),y.push(W),T.appendChild(W)}m.appendChild(T);let L=null;if(d){let M=document.createElement("div");M.className="tvw-feedback-comment-container",L=document.createElement("textarea"),L.className="tvw-feedback-comment",L.placeholder=s,L.rows=3,L.setAttribute("aria-label","Additional comments"),M.appendChild(L),m.appendChild(M)}let U=document.createElement("div");U.className="tvw-feedback-actions";let h=document.createElement("button");h.type="button",h.className="tvw-feedback-btn tvw-feedback-btn-skip",h.textContent=a,h.addEventListener("click",()=>{r==null||r(),f.remove()});let O=document.createElement("button");return O.type="button",O.className="tvw-feedback-btn tvw-feedback-btn-submit",O.textContent=i,O.addEventListener("click",async()=>{if(p===null){T.classList.add("tvw-feedback-shake"),setTimeout(()=>T.classList.remove("tvw-feedback-shake"),500);return}O.disabled=!0,O.textContent="Submitting...";try{let M=(L==null?void 0:L.value.trim())||void 0;await n(p,M),f.remove()}catch(M){O.disabled=!1,O.textContent=i,console.error("[CSAT Feedback] Failed to submit:",M)}}),U.appendChild(h),U.appendChild(O),m.appendChild(U),f.appendChild(m),f}function ds(e){let{onSubmit:n,onDismiss:r,title:t="How likely are you to recommend us?",subtitle:o="On a scale of 0 to 10",commentPlaceholder:s="What could we do better? (optional)...",submitText:i="Submit",skipText:a="Skip",showComment:d=!0,lowLabel:u="Not likely",highLabel:f="Very likely"}=e,p=document.createElement("div");p.className="tvw-feedback-container tvw-feedback-nps",p.setAttribute("role","dialog"),p.setAttribute("aria-label","Net Promoter Score feedback");let m=null,w=document.createElement("div");w.className="tvw-feedback-content";let A=document.createElement("div");A.className="tvw-feedback-header";let b=document.createElement("h3");b.className="tvw-feedback-title",b.textContent=t,A.appendChild(b);let T=document.createElement("p");T.className="tvw-feedback-subtitle",T.textContent=o,A.appendChild(T),w.appendChild(A);let y=document.createElement("div");y.className="tvw-feedback-rating tvw-feedback-rating-nps",y.setAttribute("role","radiogroup"),y.setAttribute("aria-label","Likelihood rating from 0 to 10");let L=document.createElement("div");L.className="tvw-feedback-labels";let U=document.createElement("span");U.className="tvw-feedback-label-low",U.textContent=u;let h=document.createElement("span");h.className="tvw-feedback-label-high",h.textContent=f,L.appendChild(U),L.appendChild(h);let O=document.createElement("div");O.className="tvw-feedback-numbers";let M=[];for(let le=0;le<=10;le++){let z=document.createElement("button");z.type="button",z.className="tvw-feedback-rating-btn tvw-feedback-number-btn",z.setAttribute("role","radio"),z.setAttribute("aria-checked","false"),z.setAttribute("aria-label",`Rating ${le} out of 10`),z.textContent=String(le),z.dataset.rating=String(le),le<=6?z.classList.add("tvw-feedback-detractor"):le<=8?z.classList.add("tvw-feedback-passive"):z.classList.add("tvw-feedback-promoter"),z.addEventListener("click",()=>{m=le,M.forEach((xe,B)=>{xe.classList.toggle("selected",B===le),xe.setAttribute("aria-checked",B===le?"true":"false")})}),M.push(z),O.appendChild(z)}y.appendChild(L),y.appendChild(O),w.appendChild(y);let W=null;if(d){let le=document.createElement("div");le.className="tvw-feedback-comment-container",W=document.createElement("textarea"),W.className="tvw-feedback-comment",W.placeholder=s,W.rows=3,W.setAttribute("aria-label","Additional comments"),le.appendChild(W),w.appendChild(le)}let V=document.createElement("div");V.className="tvw-feedback-actions";let $=document.createElement("button");$.type="button",$.className="tvw-feedback-btn tvw-feedback-btn-skip",$.textContent=a,$.addEventListener("click",()=>{r==null||r(),p.remove()});let Z=document.createElement("button");return Z.type="button",Z.className="tvw-feedback-btn tvw-feedback-btn-submit",Z.textContent=i,Z.addEventListener("click",async()=>{if(m===null){O.classList.add("tvw-feedback-shake"),setTimeout(()=>O.classList.remove("tvw-feedback-shake"),500);return}Z.disabled=!0,Z.textContent="Submitting...";try{let le=(W==null?void 0:W.value.trim())||void 0;await n(m,le),p.remove()}catch(le){Z.disabled=!1,Z.textContent=i,console.error("[NPS Feedback] Failed to submit:",le)}}),V.appendChild($),V.appendChild(Z),w.appendChild(V),p.appendChild(w),p}var bn="persona-chat-history",ma=30*1e3;function ha(e){var n,r,t,o,s,i,a,d,u;return e?e===!0?{storage:"session",keyPrefix:"persona-",persist:{openState:!0,voiceState:!0,focusInput:!0},clearOnChatClear:!0}:{storage:(n=e.storage)!=null?n:"session",keyPrefix:(r=e.keyPrefix)!=null?r:"persona-",persist:{openState:(o=(t=e.persist)==null?void 0:t.openState)!=null?o:!0,voiceState:(i=(s=e.persist)==null?void 0:s.voiceState)!=null?i:!0,focusInput:(d=(a=e.persist)==null?void 0:a.focusInput)!=null?d:!0},clearOnChatClear:(u=e.clearOnChatClear)!=null?u:!0}:null}function fa(e){try{let n=e==="local"?localStorage:sessionStorage,r="__persist_test__";return n.setItem(r,"1"),n.removeItem(r),n}catch{return null}}var Bs=e=>!e||typeof e!="object"?{}:{...e},Si=e=>e.map(n=>({...n,streaming:!1})),Ai=(e,n,r)=>{let t=e!=null&&e.markdown?Hn(e.markdown):null;return o=>{var a,d,u;let s=(a=o.text)!=null?a:"",i=(d=o.message.rawContent)!=null?d:null;if(n){let f=n.process({text:s,raw:i!=null?i:s,message:o.message,streaming:o.streaming});f!==null&&(s=f.text,f.persist||(o.message.__skipPersist=!0),f.resubmit&&!o.streaming&&r&&r())}return e!=null&&e.postprocessMessage?e.postprocessMessage({...o,text:s,raw:(u=i!=null?i:o.text)!=null?u:""}):t?t(s):Un(s)}},cs=(e,n,r)=>{var js,Ds,_s,qs,Us,zs,Js,Ys,Ks,Vs,Xs,Gs,Qs,Zs,er,tr,nr,sr,rr,or,ir,ar,lr;(!e.id||e.id!=="persona-root")&&(e.id="persona-root");let t=ns(n),o=Fn.getForInstance(t.plugins);t.components&&yn.registerAll(t.components);let s=vi(),i=(js=t.storageAdapter)!=null?js:ss(),a={},d=null,u=l=>{if(t.onStateLoaded)try{return t.onStateLoaded(l)}catch(c){typeof console!="undefined"&&console.error("[AgentWidget] onStateLoaded hook failed:",c)}return l};if(i!=null&&i.load)try{let l=i.load();if(l&&typeof l.then=="function")d=l.then(c=>{let S=c!=null?c:{messages:[],metadata:{}};return u(S)});else{let c=l!=null?l:{messages:[],metadata:{}},S=u(c);S.metadata&&(a=Bs(S.metadata)),(Ds=S.messages)!=null&&Ds.length&&(t={...t,initialMessages:S.messages})}}catch(l){typeof console!="undefined"&&console.error("[AgentWidget] Failed to load stored state:",l)}else if(t.onStateLoaded)try{let l=u({messages:[],metadata:{}});(_s=l.messages)!=null&&_s.length&&(t={...t,initialMessages:l.messages})}catch(l){typeof console!="undefined"&&console.error("[AgentWidget] onStateLoaded hook failed:",l)}let f=()=>a,p=l=>{var S;a=(S=l({...a}))!=null?S:{},Me()},m=t.actionParsers&&t.actionParsers.length?t.actionParsers:[$n],w=t.actionHandlers&&t.actionHandlers.length?t.actionHandlers:[an.message,an.messageAndClick],A=On({parsers:m,handlers:w,getSessionMetadata:f,updateSessionMetadata:p,emit:s.emit,documentRef:typeof document!="undefined"?document:null});A.syncFromMetadata();let b=(Us=(qs=t.launcher)==null?void 0:qs.enabled)!=null?Us:!0,T=(Js=(zs=t.launcher)==null?void 0:zs.autoExpand)!=null?Js:!1,y=T,L=b,U=(Ks=(Ys=t.layout)==null?void 0:Ys.header)==null?void 0:Ks.layout,h=b?T:!0,O=!1,M=null,W=()=>{O=!0,M&&clearTimeout(M),M=setTimeout(()=>{O&&(typeof console!="undefined"&&console.warn("[AgentWidget] Resubmit requested but no injection occurred within 10s"),O=!1)},1e4)},V=Ai(t,A,W),$=(Xs=(Vs=t.features)==null?void 0:Vs.showReasoning)!=null?Xs:!0,Z=(Qs=(Gs=t.features)==null?void 0:Gs.showToolCalls)!=null?Qs:!0,le={onCopy:l=>{var c,S;s.emit("message:copy",l),v!=null&&v.isClientTokenMode()&&v.submitMessageFeedback(l.id,"copy").catch(I=>{t.debug&&console.error("[AgentWidget] Failed to submit copy feedback:",I)}),(S=(c=t.messageActions)==null?void 0:c.onCopy)==null||S.call(c,l)},onFeedback:l=>{var c,S;s.emit("message:feedback",l),v!=null&&v.isClientTokenMode()&&v.submitMessageFeedback(l.messageId,l.type).catch(I=>{t.debug&&console.error("[AgentWidget] Failed to submit feedback:",I)}),(S=(c=t.messageActions)==null?void 0:c.onFeedback)==null||S.call(c,l)}},z=(Zs=t.statusIndicator)!=null?Zs:{},xe=l=>{var c,S,I,x;return l==="idle"?(c=z.idleText)!=null?c:pt.idle:l==="connecting"?(S=z.connectingText)!=null?S:pt.connecting:l==="connected"?(I=z.connectedText)!=null?I:pt.connected:l==="error"?(x=z.errorText)!=null?x:pt.error:pt[l]},{wrapper:B,panel:N}=ui(t),oe=pi(t,b),{container:ie,body:Le,messagesWrapper:Ye,suggestions:bt,textarea:Q,sendButton:D,sendButtonWrapper:gt,composerForm:Ct,statusText:xt,introTitle:Ot,introSubtitle:Nt,closeButton:_,iconHolder:Se,headerTitle:it,headerSubtitle:at,header:Xe,footer:lt,actionsRow:zt,leftActions:jt,rightActions:Dt}=oe,R=oe.micButton,Ke=oe.micButtonWrapper,ye=oe.attachmentButton,tt=oe.attachmentButtonWrapper,ve=oe.attachmentInput,G=oe.attachmentPreviewsContainer,ae=null;(er=t.attachments)!=null&&er.enabled&&ve&&G&&(ae=sn.fromConfig(t.attachments),ae.setPreviewsContainer(G),ve.addEventListener("change",l=>{let c=l.target;ae==null||ae.handleFileSelect(c.files),c.value=""}));let Ge=o.find(l=>l.renderHeader);if(Ge!=null&&Ge.renderHeader){let l=Ge.renderHeader({config:t,defaultRenderer:()=>{let c=Kt({config:t,showClose:b});return rn(ie,c,t),c.header},onClose:()=>C(!1,"user")});if(l){let c=ie.querySelector(".tvw-border-b-cw-divider");c&&(c.replaceWith(l),Xe=l)}}let dt=o.find(l=>l.renderComposer);if(dt!=null&&dt.renderComposer){let l=dt.renderComposer({config:t,defaultRenderer:()=>mn({config:t}).footer,onSubmit:c=>{v&&!v.isStreaming()&&v.sendMessage(c)},disabled:!1});l&&(lt.replaceWith(l),lt=l)}(()=>{var I,x;let l=(x=(I=t.layout)==null?void 0:I.slots)!=null?x:{},c=X=>{switch(X){case"body-top":return ie.querySelector(".tvw-rounded-2xl.tvw-bg-cw-surface.tvw-p-6")||null;case"messages":return Ye;case"footer-top":return bt;case"composer":return Ct;case"footer-bottom":return xt;default:return null}},S=(X,pe)=>{var Y;switch(X){case"header-left":case"header-center":case"header-right":if(X==="header-left")Xe.insertBefore(pe,Xe.firstChild);else if(X==="header-right")Xe.appendChild(pe);else{let me=Xe.querySelector(".tvw-flex-col");me?(Y=me.parentNode)==null||Y.insertBefore(pe,me.nextSibling):Xe.appendChild(pe)}break;case"body-top":{let me=Le.querySelector(".tvw-rounded-2xl.tvw-bg-cw-surface.tvw-p-6");me?me.replaceWith(pe):Le.insertBefore(pe,Le.firstChild);break}case"body-bottom":Le.appendChild(pe);break;case"footer-top":bt.replaceWith(pe);break;case"footer-bottom":xt.replaceWith(pe);break;default:break}};for(let[X,pe]of Object.entries(l))if(pe)try{let Y=pe({config:t,defaultContent:()=>c(X)});Y&&S(X,Y)}catch(Y){typeof console!="undefined"&&console.error(`[AgentWidget] Error rendering slot "${X}":`,Y)}})();let Wt=l=>{let S=l.target.closest('button[data-expand-header="true"]');if(!S)return;let I=S.closest(".vanilla-reasoning-bubble, .vanilla-tool-bubble");if(!I)return;let x=I.getAttribute("data-message-id");if(!x)return;let X=S.getAttribute("data-bubble-type");X==="reasoning"?(fn.has(x)?fn.delete(x):fn.add(x),hi(x,I)):X==="tool"&&(wn.has(x)?wn.delete(x):wn.add(x),fi(x,I,t))};Ye.addEventListener("pointerdown",l=>{l.target.closest('button[data-expand-header="true"]')&&(l.preventDefault(),Wt(l))}),Ye.addEventListener("keydown",l=>{let c=l.target;(l.key==="Enter"||l.key===" ")&&c.closest('button[data-expand-header="true"]')&&(l.preventDefault(),Wt(l))}),N.appendChild(ie),e.appendChild(B);let It=()=>{var ee,te,fe,Ie,Qe,q,K,_t,qt,Ft,Xt,fs,Ve,Dn,Tn,Mn;let l=(te=(ee=t.launcher)==null?void 0:ee.sidebarMode)!=null?te:!1,c=l||((Ie=(fe=t.launcher)==null?void 0:fe.fullHeight)!=null?Ie:!1),S=(Qe=t.theme)!=null?Qe:{},I=(K=(q=t.launcher)==null?void 0:q.position)!=null?K:"bottom-left",x=I==="bottom-left"||I==="top-left",X=l?"none":"1px solid var(--tvw-cw-border)",pe=l?x?"2px 0 12px rgba(0, 0, 0, 0.08)":"-2px 0 12px rgba(0, 0, 0, 0.08)":"0 25px 50px -12px rgba(0, 0, 0, 0.25)",Y=l?"0":"16px",me=(_t=S.panelBorder)!=null?_t:X,be=(qt=S.panelShadow)!=null?qt:pe,Ce=(Ft=S.panelBorderRadius)!=null?Ft:Y;e.style.cssText="",B.style.cssText="",N.style.cssText="",ie.style.cssText="",Le.style.cssText="",lt.style.cssText="";let j=(fs=(Xt=t==null?void 0:t.launcher)==null?void 0:Xt.width)!=null?fs:t==null?void 0:t.launcherWidth,Ue=j!=null?j:"min(400px, calc(100vw - 24px))";l||(N.style.width=Ue,N.style.maxWidth=Ue),N.style.boxShadow=be,N.style.borderRadius=Ce,ie.style.border=me,ie.style.borderRadius=Ce;let k=((Ve=t.launcher)==null?void 0:Ve.enabled)===!1;if(c&&(e.style.display="flex",e.style.flexDirection="column",e.style.height="100%",e.style.minHeight="0",B.style.display="flex",B.style.flexDirection="column",B.style.flex="1 1 0%",B.style.minHeight="0",B.style.maxHeight="100%",B.style.height="100%",k&&(B.style.overflow="hidden"),N.style.display="flex",N.style.flexDirection="column",N.style.flex="1 1 0%",N.style.minHeight="0",N.style.maxHeight="100%",N.style.height="100%",N.style.overflow="hidden",ie.style.display="flex",ie.style.flexDirection="column",ie.style.flex="1 1 0%",ie.style.minHeight="0",ie.style.maxHeight="100%",ie.style.overflow="hidden",Le.style.flex="1 1 0%",Le.style.minHeight="0",Le.style.overflowY="auto",lt.style.flexShrink="0"),B.classList.remove("tvw-bottom-6","tvw-right-6","tvw-left-6","tvw-top-6","tvw-bottom-4","tvw-right-4","tvw-left-4","tvw-top-4"),!l&&!k&&((Dn=$t[I])!=null?Dn:$t["bottom-right"]).split(" ").forEach(En=>B.classList.add(En)),l){let Gt=(Mn=(Tn=t.launcher)==null?void 0:Tn.sidebarWidth)!=null?Mn:"420px";B.style.cssText=`
20
+ `,P.addEventListener("click",()=>{c=T,x.forEach((X,O)=>{let se=O<T;X.classList.toggle("selected",se),X.setAttribute("aria-checked",O===T-1?"true":"false")})}),x.push(P),A.appendChild(P)}m.appendChild(A);let W=null;if(d){let T=document.createElement("div");T.className="tvw-feedback-comment-container",W=document.createElement("textarea"),W.className="tvw-feedback-comment",W.placeholder=s,W.rows=3,W.setAttribute("aria-label","Additional comments"),T.appendChild(W),m.appendChild(T)}let Y=document.createElement("div");Y.className="tvw-feedback-actions";let f=document.createElement("button");f.type="button",f.className="tvw-feedback-btn tvw-feedback-btn-skip",f.textContent=a,f.addEventListener("click",()=>{r==null||r(),v.remove()});let R=document.createElement("button");return R.type="button",R.className="tvw-feedback-btn tvw-feedback-btn-submit",R.textContent=i,R.addEventListener("click",async()=>{if(c===null){A.classList.add("tvw-feedback-shake"),setTimeout(()=>A.classList.remove("tvw-feedback-shake"),500);return}R.disabled=!0,R.textContent="Submitting...";try{let T=(W==null?void 0:W.value.trim())||void 0;await n(c,T),v.remove()}catch(T){R.disabled=!1,R.textContent=i,console.error("[CSAT Feedback] Failed to submit:",T)}}),Y.appendChild(f),Y.appendChild(R),m.appendChild(Y),v.appendChild(m),v}function $s(e){let{onSubmit:n,onDismiss:r,title:t="How likely are you to recommend us?",subtitle:o="On a scale of 0 to 10",commentPlaceholder:s="What could we do better? (optional)...",submitText:i="Submit",skipText:a="Skip",showComment:d=!0,lowLabel:g="Not likely",highLabel:v="Very likely"}=e,c=document.createElement("div");c.className="tvw-feedback-container tvw-feedback-nps",c.setAttribute("role","dialog"),c.setAttribute("aria-label","Net Promoter Score feedback");let m=null,w=document.createElement("div");w.className="tvw-feedback-content";let C=document.createElement("div");C.className="tvw-feedback-header";let b=document.createElement("h3");b.className="tvw-feedback-title",b.textContent=t,C.appendChild(b);let A=document.createElement("p");A.className="tvw-feedback-subtitle",A.textContent=o,C.appendChild(A),w.appendChild(C);let x=document.createElement("div");x.className="tvw-feedback-rating tvw-feedback-rating-nps",x.setAttribute("role","radiogroup"),x.setAttribute("aria-label","Likelihood rating from 0 to 10");let W=document.createElement("div");W.className="tvw-feedback-labels";let Y=document.createElement("span");Y.className="tvw-feedback-label-low",Y.textContent=g;let f=document.createElement("span");f.className="tvw-feedback-label-high",f.textContent=v,W.appendChild(Y),W.appendChild(f);let R=document.createElement("div");R.className="tvw-feedback-numbers";let T=[];for(let G=0;G<=10;G++){let U=document.createElement("button");U.type="button",U.className="tvw-feedback-rating-btn tvw-feedback-number-btn",U.setAttribute("role","radio"),U.setAttribute("aria-checked","false"),U.setAttribute("aria-label",`Rating ${G} out of 10`),U.textContent=String(G),U.dataset.rating=String(G),G<=6?U.classList.add("tvw-feedback-detractor"):G<=8?U.classList.add("tvw-feedback-passive"):U.classList.add("tvw-feedback-promoter"),U.addEventListener("click",()=>{m=G,T.forEach((ve,N)=>{ve.classList.toggle("selected",N===G),ve.setAttribute("aria-checked",N===G?"true":"false")})}),T.push(U),R.appendChild(U)}x.appendChild(W),x.appendChild(R),w.appendChild(x);let P=null;if(d){let G=document.createElement("div");G.className="tvw-feedback-comment-container",P=document.createElement("textarea"),P.className="tvw-feedback-comment",P.placeholder=s,P.rows=3,P.setAttribute("aria-label","Additional comments"),G.appendChild(P),w.appendChild(G)}let X=document.createElement("div");X.className="tvw-feedback-actions";let O=document.createElement("button");O.type="button",O.className="tvw-feedback-btn tvw-feedback-btn-skip",O.textContent=a,O.addEventListener("click",()=>{r==null||r(),c.remove()});let se=document.createElement("button");return se.type="button",se.className="tvw-feedback-btn tvw-feedback-btn-submit",se.textContent=i,se.addEventListener("click",async()=>{if(m===null){R.classList.add("tvw-feedback-shake"),setTimeout(()=>R.classList.remove("tvw-feedback-shake"),500);return}se.disabled=!0,se.textContent="Submitting...";try{let G=(P==null?void 0:P.value.trim())||void 0;await n(m,G),c.remove()}catch(G){se.disabled=!1,se.textContent=i,console.error("[NPS Feedback] Failed to submit:",G)}}),X.appendChild(O),X.appendChild(se),w.appendChild(X),c.appendChild(w),c}var $n="persona-chat-history",ol=30*1e3;function il(e){var n,r,t,o,s,i,a,d,g;return e?e===!0?{storage:"session",keyPrefix:"persona-",persist:{openState:!0,voiceState:!0,focusInput:!0},clearOnChatClear:!0}:{storage:(n=e.storage)!=null?n:"session",keyPrefix:(r=e.keyPrefix)!=null?r:"persona-",persist:{openState:(o=(t=e.persist)==null?void 0:t.openState)!=null?o:!0,voiceState:(i=(s=e.persist)==null?void 0:s.voiceState)!=null?i:!0,focusInput:(d=(a=e.persist)==null?void 0:a.focusInput)!=null?d:!0},clearOnChatClear:(g=e.clearOnChatClear)!=null?g:!0}:null}function al(e){try{let n=e==="local"?localStorage:sessionStorage,r="__persist_test__";return n.setItem(r,"1"),n.removeItem(r),n}catch{return null}}var ur=e=>!e||typeof e!="object"?{}:{...e},sa=e=>e.map(n=>({...n,streaming:!1})),ra=(e,n,r)=>{let t=e!=null&&e.markdown?Zn(e.markdown):null;return o=>{var a,d,g;let s=(a=o.text)!=null?a:"",i=(d=o.message.rawContent)!=null?d:null;if(n){let v=n.process({text:s,raw:i!=null?i:s,message:o.message,streaming:o.streaming});v!==null&&(s=v.text,v.persist||(o.message.__skipPersist=!0),v.resubmit&&!o.streaming&&r&&r())}return e!=null&&e.postprocessMessage?e.postprocessMessage({...o,text:s,raw:(g=i!=null?i:o.text)!=null?g:""}):t?t(s):vs(s)}},Os=(e,n,r)=>{var gt,Ne,qe,lt,ze,St,Rt,qt,hr,fr,wr,vr,yr,br,Cr,xr,Sr,Ar,Er,Tr,Mr,Lr,kr,Wr,Ir,Pr,Hr,Br,Rr,Fr,$r,Or;e.id&&e.id!=="persona-root"&&!e.getAttribute("data-persona-instance")&&e.setAttribute("data-persona-instance",e.id),e.id="persona-root";let t=Ws(n),o=ss.getForInstance(t.plugins);t.components&&Rn.registerAll(t.components);let s=Zi(),i=(gt=t.storageAdapter)!=null?gt:Is(),a={},d=null,g=l=>{if(t.onStateLoaded)try{return t.onStateLoaded(l)}catch(u){typeof console!="undefined"&&console.error("[AgentWidget] onStateLoaded hook failed:",u)}return l};if(i!=null&&i.load)try{let l=i.load();if(l&&typeof l.then=="function")d=l.then(u=>{let S=u!=null?u:{messages:[],metadata:{}};return g(S)});else{let u=l!=null?l:{messages:[],metadata:{}},S=g(u);S.metadata&&(a=ur(S.metadata)),(Ne=S.messages)!=null&&Ne.length&&(t={...t,initialMessages:S.messages})}}catch(l){typeof console!="undefined"&&console.error("[AgentWidget] Failed to load stored state:",l)}else if(t.onStateLoaded)try{let l=g({messages:[],metadata:{}});(qe=l.messages)!=null&&qe.length&&(t={...t,initialMessages:l.messages})}catch(l){typeof console!="undefined"&&console.error("[AgentWidget] onStateLoaded hook failed:",l)}let v=()=>a,c=l=>{var S;a=(S=l({...a}))!=null?S:{},qn()},m=t.actionParsers&&t.actionParsers.length?t.actionParsers:[rs],w=t.actionHandlers&&t.actionHandlers.length?t.actionHandlers:[Cn.message,Cn.messageAndClick],C=os({parsers:m,handlers:w,getSessionMetadata:v,updateSessionMetadata:c,emit:s.emit,documentRef:typeof document!="undefined"?document:null});C.syncFromMetadata();let b=(ze=(lt=t.launcher)==null?void 0:lt.enabled)!=null?ze:!0,A=(Rt=(St=t.launcher)==null?void 0:St.autoExpand)!=null?Rt:!1,x=A,W=b,Y=(hr=(qt=t.layout)==null?void 0:qt.header)==null?void 0:hr.layout,f=b?A:!0,R=!1,T=null,P=()=>{R=!0,T&&clearTimeout(T),T=setTimeout(()=>{R&&(typeof console!="undefined"&&console.warn("[AgentWidget] Resubmit requested but no injection occurred within 10s"),R=!1)},1e4)},X=ra(t,C,P),O=(wr=(fr=t.features)==null?void 0:fr.showReasoning)!=null?wr:!0,se=(yr=(vr=t.features)==null?void 0:vr.showToolCalls)!=null?yr:!0,G=(Cr=(br=t.features)==null?void 0:br.showEventStreamToggle)!=null?Cr:!1,ve=`${(Sr=typeof t.persistState=="object"?(xr=t.persistState)==null?void 0:xr.keyPrefix:void 0)!=null?Sr:"persona-"}event-stream`,N=G?new ns(ve):null,re=(Tr=(Er=(Ar=t.features)==null?void 0:Ar.eventStream)==null?void 0:Er.maxEvents)!=null?Tr:2e3,D=G?new ts(re,N):null,Z=null,fe=!1,ce=null,Ue=0;N==null||N.open().then(()=>D==null?void 0:D.restore()).catch(l=>{t.debug&&console.warn("[AgentWidget] IndexedDB not available for event stream:",l)});let Tt={onCopy:l=>{var u,S;s.emit("message:copy",l),$!=null&&$.isClientTokenMode()&&$.submitMessageFeedback(l.id,"copy").catch(I=>{t.debug&&console.error("[AgentWidget] Failed to submit copy feedback:",I)}),(S=(u=t.messageActions)==null?void 0:u.onCopy)==null||S.call(u,l)},onFeedback:l=>{var u,S;s.emit("message:feedback",l),$!=null&&$.isClientTokenMode()&&$.submitMessageFeedback(l.messageId,l.type).catch(I=>{t.debug&&console.error("[AgentWidget] Failed to submit feedback:",I)}),(S=(u=t.messageActions)==null?void 0:u.onFeedback)==null||S.call(u,l)}},Mt=(Mr=t.statusIndicator)!=null?Mr:{},$t=l=>{var u,S,I,E;return l==="idle"?(u=Mt.idleText)!=null?u:Pt.idle:l==="connecting"?(S=Mt.connectingText)!=null?S:Pt.connecting:l==="connected"?(I=Mt.connectedText)!=null?I:Pt.connected:l==="error"?(E=Mt.errorText)!=null?E:Pt.error:Pt[l]},{wrapper:Ie,panel:ye}=zi(t),ee=Ui(t,b),{container:ue,body:Pe,messagesWrapper:tt,suggestions:Et,textarea:pe,sendButton:J,sendButtonWrapper:ct,composerForm:ut,statusText:ft,introTitle:Ot,introSubtitle:wt,closeButton:V,iconHolder:Me,headerTitle:vt,headerSubtitle:yt,header:Q,footer:Fe,actionsRow:bt,leftActions:Wt,rightActions:Lt}=ee,j=ee.micButton,Qe=ee.micButtonWrapper,Ae=ee.attachmentButton,z=ee.attachmentButtonWrapper,F=ee.attachmentInput,ge=ee.attachmentPreviewsContainer,de=null;(Lr=t.attachments)!=null&&Lr.enabled&&F&&ge&&(de=vn.fromConfig(t.attachments),de.setPreviewsContainer(ge),F.addEventListener("change",l=>{let u=l.target;de==null||de.handleFileSelect(u.files),u.value=""}));let te=o.find(l=>l.renderHeader);if(te!=null&&te.renderHeader){let l=te.renderHeader({config:t,defaultRenderer:()=>{let u=nn({config:t,showClose:b});return yn(ue,u,t),u.header},onClose:()=>nt(!1,"user")});if(l){let u=ue.querySelector(".tvw-border-b-cw-divider");u&&(u.replaceWith(l),Q=l)}}let xe=()=>{var u,S,I,E;if(!D)return;if(fe=!0,!Z&&D&&(Z=Gi({buffer:D,getFullHistory:()=>D.getAllFromStore(),onClose:()=>$e(),config:t,plugins:o})),Z&&(Pe.style.display="none",(u=Fe.parentNode)==null||u.insertBefore(Z.element,Fe),Z.update()),_){_.classList.remove("tvw-text-cw-muted"),_.classList.add("tvw-text-cw-accent"),_.style.boxShadow="inset 0 0 0 1.5px var(--cw-accent, #3b82f6)";let q=(E=(I=(S=t.features)==null?void 0:S.eventStream)==null?void 0:I.classNames)==null?void 0:E.toggleButtonActive;q&&q.split(/\s+/).forEach(be=>be&&_.classList.add(be))}let l=()=>{if(!fe)return;let q=Date.now();q-Ue>=200&&(Z==null||Z.update(),Ue=q),ce=requestAnimationFrame(l)};Ue=0,ce=requestAnimationFrame(l),s.emit("eventStream:opened",{timestamp:Date.now()})},$e=()=>{var l,u,S;if(fe){if(fe=!1,Z&&Z.element.remove(),Pe.style.display="",_){_.classList.remove("tvw-text-cw-accent"),_.classList.add("tvw-text-cw-muted"),_.style.boxShadow="";let I=(S=(u=(l=t.features)==null?void 0:l.eventStream)==null?void 0:u.classNames)==null?void 0:S.toggleButtonActive;I&&I.split(/\s+/).forEach(E=>E&&_.classList.remove(E))}ce!==null&&(cancelAnimationFrame(ce),ce=null),s.emit("eventStream:closed",{timestamp:Date.now()})}},_=null;if(G){let l=(Wr=(kr=t.features)==null?void 0:kr.eventStream)==null?void 0:Wr.classNames,u="tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-text-cw-muted hover:tvw-bg-gray-100 tvw-cursor-pointer tvw-border-none tvw-bg-transparent tvw-p-1"+(l!=null&&l.toggleButton?" "+l.toggleButton:"");_=p("button",u),_.style.width="28px",_.style.height="28px",_.type="button",_.setAttribute("aria-label","Event Stream"),_.title="Event Stream";let S=oe("activity","18px","currentColor",1.5);S&&_.appendChild(S);let I=ee.clearChatButtonWrapper,E=ee.closeButtonWrapper,q=I||E;q&&q.parentNode===Q?Q.insertBefore(_,q):Q.appendChild(_),_.addEventListener("click",()=>{fe?$e():xe()})}let ie=o.find(l=>l.renderComposer);if(ie!=null&&ie.renderComposer){let l=ie.renderComposer({config:t,defaultRenderer:()=>Wn({config:t}).footer,onSubmit:u=>{$&&!$.isStreaming()&&$.sendMessage(u)},disabled:!1});l&&(Fe.replaceWith(l),Fe=l)}(()=>{var I,E;let l=(E=(I=t.layout)==null?void 0:I.slots)!=null?E:{},u=q=>{switch(q){case"body-top":return ue.querySelector(".tvw-rounded-2xl.tvw-bg-cw-surface.tvw-p-6")||null;case"messages":return tt;case"footer-top":return Et;case"composer":return ut;case"footer-bottom":return ft;default:return null}},S=(q,be)=>{var le;switch(q){case"header-left":case"header-center":case"header-right":if(q==="header-left")Q.insertBefore(be,Q.firstChild);else if(q==="header-right")Q.appendChild(be);else{let Te=Q.querySelector(".tvw-flex-col");Te?(le=Te.parentNode)==null||le.insertBefore(be,Te.nextSibling):Q.appendChild(be)}break;case"body-top":{let Te=Pe.querySelector(".tvw-rounded-2xl.tvw-bg-cw-surface.tvw-p-6");Te?Te.replaceWith(be):Pe.insertBefore(be,Pe.firstChild);break}case"body-bottom":Pe.appendChild(be);break;case"footer-top":Et.replaceWith(be);break;case"footer-bottom":ft.replaceWith(be);break;default:break}};for(let[q,be]of Object.entries(l))if(be)try{let le=be({config:t,defaultContent:()=>u(q)});le&&S(q,le)}catch(le){typeof console!="undefined"&&console.error(`[AgentWidget] Error rendering slot "${q}":`,le)}})();let Ke=l=>{let S=l.target.closest('button[data-expand-header="true"]');if(!S)return;let I=S.closest(".vanilla-reasoning-bubble, .vanilla-tool-bubble");if(!I)return;let E=I.getAttribute("data-message-id");if(!E)return;let q=S.getAttribute("data-bubble-type");q==="reasoning"?(Pn.has(E)?Pn.delete(E):Pn.add(E),Yi(E,I)):q==="tool"&&(Hn.has(E)?Hn.delete(E):Hn.add(E),Vi(E,I,t))};tt.addEventListener("pointerdown",l=>{l.target.closest('button[data-expand-header="true"]')&&(l.preventDefault(),Ke(l))}),tt.addEventListener("keydown",l=>{let u=l.target;(l.key==="Enter"||l.key===" ")&&u.closest('button[data-expand-header="true"]')&&(l.preventDefault(),Ke(l))}),ye.appendChild(ue),e.appendChild(Ie);let it=()=>{var he,we,Xe,Le,mt,It,K,je,Kt,zt,an,ms,Us,dt,hs,Kn;let l=(we=(he=t.launcher)==null?void 0:he.sidebarMode)!=null?we:!1,u=l||((Le=(Xe=t.launcher)==null?void 0:Xe.fullHeight)!=null?Le:!1),S=(mt=t.theme)!=null?mt:{},I=(K=(It=t.launcher)==null?void 0:It.position)!=null?K:"bottom-left",E=I==="bottom-left"||I==="top-left",q=l?"none":"1px solid var(--tvw-cw-border)",be=l?E?"2px 0 12px rgba(0, 0, 0, 0.08)":"-2px 0 12px rgba(0, 0, 0, 0.08)":"0 25px 50px -12px rgba(0, 0, 0, 0.25)",le=l?"0":"16px",Te=(je=S.panelBorder)!=null?je:q,Be=(Kt=S.panelShadow)!=null?Kt:be,Re=(zt=S.panelBorderRadius)!=null?zt:le;e.style.cssText="",Ie.style.cssText="",ye.style.cssText="",ue.style.cssText="",Pe.style.cssText="",Fe.style.cssText="";let De=(ms=(an=t==null?void 0:t.launcher)==null?void 0:an.width)!=null?ms:t==null?void 0:t.launcherWidth,ne=De!=null?De:"min(400px, calc(100vw - 24px))";l||(ye.style.width=ne,ye.style.maxWidth=ne),ye.style.boxShadow=Be,ye.style.borderRadius=Re,ue.style.border=Te,ue.style.borderRadius=Re;let H=((Us=t.launcher)==null?void 0:Us.enabled)===!1;if(u&&(e.style.display="flex",e.style.flexDirection="column",e.style.height="100%",e.style.minHeight="0",Ie.style.display="flex",Ie.style.flexDirection="column",Ie.style.flex="1 1 0%",Ie.style.minHeight="0",Ie.style.maxHeight="100%",Ie.style.height="100%",H&&(Ie.style.overflow="hidden"),ye.style.display="flex",ye.style.flexDirection="column",ye.style.flex="1 1 0%",ye.style.minHeight="0",ye.style.maxHeight="100%",ye.style.height="100%",ye.style.overflow="hidden",ue.style.display="flex",ue.style.flexDirection="column",ue.style.flex="1 1 0%",ue.style.minHeight="0",ue.style.maxHeight="100%",ue.style.overflow="hidden",Pe.style.flex="1 1 0%",Pe.style.minHeight="0",Pe.style.overflowY="auto",Fe.style.flexShrink="0"),Ie.classList.remove("tvw-bottom-6","tvw-right-6","tvw-left-6","tvw-top-6","tvw-bottom-4","tvw-right-4","tvw-left-4","tvw-top-4"),!l&&!H&&((dt=Ut[I])!=null?dt:Ut["bottom-right"]).split(" ").forEach(mn=>Ie.classList.add(mn)),l){let gn=(Kn=(hs=t.launcher)==null?void 0:hs.sidebarWidth)!=null?Kn:"420px";Ie.style.cssText=`
21
21
  position: fixed !important;
22
22
  top: 0 !important;
23
23
  bottom: 0 !important;
24
- width: ${Gt} !important;
24
+ width: ${gn} !important;
25
25
  height: 100vh !important;
26
26
  max-height: 100vh !important;
27
27
  margin: 0 !important;
28
28
  padding: 0 !important;
29
29
  display: flex !important;
30
30
  flex-direction: column !important;
31
- ${x?"left: 0 !important; right: auto !important;":"left: auto !important; right: 0 !important;"}
32
- `,N.style.cssText=`
31
+ ${E?"left: 0 !important; right: auto !important;":"left: auto !important; right: 0 !important;"}
32
+ `,ye.style.cssText=`
33
33
  position: relative !important;
34
34
  display: flex !important;
35
35
  flex-direction: column !important;
@@ -40,9 +40,9 @@
40
40
  min-height: 0 !important;
41
41
  margin: 0 !important;
42
42
  padding: 0 !important;
43
- box-shadow: ${be} !important;
44
- border-radius: ${Ce} !important;
45
- `,N.style.setProperty("width","100%","important"),N.style.setProperty("max-width","100%","important"),ie.style.cssText=`
43
+ box-shadow: ${Be} !important;
44
+ border-radius: ${Re} !important;
45
+ `,ye.style.setProperty("width","100%","important"),ye.style.setProperty("max-width","100%","important"),ue.style.cssText=`
46
46
  display: flex !important;
47
47
  flex-direction: column !important;
48
48
  flex: 1 1 0% !important;
@@ -51,13 +51,13 @@
51
51
  min-height: 0 !important;
52
52
  max-height: 100% !important;
53
53
  overflow: hidden !important;
54
- border-radius: ${Ce} !important;
55
- border: ${me} !important;
56
- `,lt.style.cssText=`
54
+ border-radius: ${Re} !important;
55
+ border: ${Te} !important;
56
+ `,Fe.style.cssText=`
57
57
  flex-shrink: 0 !important;
58
58
  border-top: none !important;
59
59
  padding: 8px 16px 12px 16px !important;
60
- `}if(!k){let Gt="max-height: -moz-available !important; max-height: stretch !important;",En=l?"":"padding-top: 1.25em !important;";B.style.cssText+=Gt+En}};It(),es(e,t);let Pe=[],nt=null,Lt=()=>{nt&&(nt(),nt=null),t.colorScheme==="auto"&&(nt=li(()=>{es(e,t)}))};Lt(),Pe.push(()=>{nt&&(nt(),nt=null)});let Tt=wi(bt),ct=null,v,Te=!1,je=!0,mt=0,st=0,ht=null,ft=!1,Pt=0,Zt=!1,en=125,Nn=2e3,jn=5,Cn=50,dn=new Map,ke={active:!1,manuallyDeactivated:!1,lastUserMessageWasVoice:!1,lastUserMessageId:null},xn=(nr=(tr=t.voiceRecognition)==null?void 0:tr.autoResume)!=null?nr:!1,Sn=l=>{s.emit("voice:state",{active:ke.active,source:l,timestamp:Date.now()})},Jt=()=>{p(l=>({...l,voiceState:{active:ke.active,timestamp:Date.now(),manuallyDeactivated:ke.manuallyDeactivated}}))},H=()=>{var I,x;if(((I=t.voiceRecognition)==null?void 0:I.enabled)===!1)return;let l=Bs(a.voiceState),c=!!l.active,S=Number((x=l.timestamp)!=null?x:0);ke.manuallyDeactivated=!!l.manuallyDeactivated,c&&Date.now()-S<ma&&setTimeout(()=>{ke.active||(ke.manuallyDeactivated=!1,Ne("restore"))},1e3)},ge=()=>v?Si(v.getMessages()).filter(l=>!l.__skipPersist):[];function Me(l){if(!(i!=null&&i.save))return;let S={messages:l?Si(l):v?ge():[],metadata:a};try{let I=i.save(S);I instanceof Promise&&I.catch(x=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to persist state:",x)})}catch(I){typeof console!="undefined"&&console.error("[AgentWidget] Failed to persist state:",I)}}let He=(l=!1)=>{if(!je)return;let c=Date.now();ft&&c<Pt&&!l||(ft&&c>=Pt&&(ft=!1),!(!l&&!Te)&&(c-st<en||(st=c,ht&&cancelAnimationFrame(ht),ht=requestAnimationFrame(()=>{ft||!je||(Zt=!0,Le.scrollTop=Le.scrollHeight,mt=Le.scrollTop,requestAnimationFrame(()=>{Zt=!1}),ht=null)}))))},Be=null,rt=()=>B.querySelector("#persona-scroll-container")||Le,De=(l,c=500)=>{let S=l.scrollTop,I=l.clientHeight,x=l.scrollHeight,X=x-S;if(S+I>=x-2||Math.abs(X)<5)return;Be!==null&&(cancelAnimationFrame(Be),Be=null);let Y=performance.now(),me=Ce=>1-Math.pow(1-Ce,3),be=Ce=>{let j=l.scrollHeight;j!==x&&(x=j,X=x-S);let Ue=Ce-Y,k=Math.min(Ue/c,1),ee=me(k),te=S+X*ee;l.scrollTop=te,k<1?Be=requestAnimationFrame(be):(l.scrollTop=l.scrollHeight,Be=null)};Be=requestAnimationFrame(be)},F=l=>{let c=new Map;l.forEach(S=>{let I=dn.get(S.id);c.set(S.id,{streaming:S.streaming,role:S.role}),!I&&S.role==="assistant"&&s.emit("assistant:message",S),S.role==="assistant"&&(I!=null&&I.streaming)&&S.streaming===!1&&s.emit("assistant:complete",S)}),dn.clear(),c.forEach((S,I)=>{dn.set(I,S)})},ne=(l,c,S)=>{var be,Ce,j,Ue;let I=document.createElement("div"),X=(()=>{var ee;let k=o.find(te=>te.renderLoadingIndicator);if(k!=null&&k.renderLoadingIndicator)return k.renderLoadingIndicator;if((ee=t.loadingIndicator)!=null&&ee.render)return t.loadingIndicator.render})();c.forEach(k=>{var Qe,q;let ee=null,te=o.find(K=>!!(k.variant==="reasoning"&&K.renderReasoning||k.variant==="tool"&&K.renderToolCall||!k.variant&&K.renderMessage)),fe=(Qe=t.layout)==null?void 0:Qe.messages;if(te)if(k.variant==="reasoning"&&k.reasoning&&te.renderReasoning){if(!$)return;ee=te.renderReasoning({message:k,defaultRenderer:()=>Ms(k),config:t})}else if(k.variant==="tool"&&k.toolCall&&te.renderToolCall){if(!Z)return;ee=te.renderToolCall({message:k,defaultRenderer:()=>Es(k,t),config:t})}else te.renderMessage&&(ee=te.renderMessage({message:k,defaultRenderer:()=>{let K=hn(k,S,fe,t.messageActions,le,{loadingIndicatorRenderer:X,widgetConfig:t});return k.role!=="user"&&Ls(K,k,t,v),K},config:t}));if(!ee&&k.role==="assistant"&&!k.variant&&t.enableComponentStreaming!==!1&&is(k)){let _t=as(k);if(_t){let qt=os(_t,{config:t,message:k,transform:S});if(qt){let Ft=document.createElement("div");if(Ft.className=["vanilla-message-bubble","tvw-max-w-[85%]","tvw-rounded-2xl","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-p-4"].join(" "),Ft.id=`bubble-${k.id}`,Ft.setAttribute("data-message-id",k.id),k.content&&k.content.trim()){let Xt=document.createElement("div");Xt.className="tvw-mb-3 tvw-text-sm tvw-leading-relaxed",Xt.innerHTML=S({text:k.content,message:k,streaming:!!k.streaming,raw:k.rawContent}),Ft.appendChild(Xt)}Ft.appendChild(qt),ee=Ft}}}if(!ee)if(k.variant==="reasoning"&&k.reasoning){if(!$)return;ee=Ms(k)}else if(k.variant==="tool"&&k.toolCall){if(!Z)return;ee=Es(k,t)}else{let K=(q=t.layout)==null?void 0:q.messages;K!=null&&K.renderUserMessage&&k.role==="user"?ee=K.renderUserMessage({message:k,config:t,streaming:!!k.streaming}):K!=null&&K.renderAssistantMessage&&k.role==="assistant"?ee=K.renderAssistantMessage({message:k,config:t,streaming:!!k.streaming}):ee=hn(k,S,K,t.messageActions,le,{loadingIndicatorRenderer:X,widgetConfig:t}),k.role!=="user"&&ee&&Ls(ee,k,t,v)}let Ie=document.createElement("div");Ie.className="tvw-flex",Ie.id=`wrapper-${k.id}`,Ie.setAttribute("data-wrapper-id",k.id),k.role==="user"&&Ie.classList.add("tvw-justify-end"),Ie.appendChild(ee),I.appendChild(Ie)});let pe=c.some(k=>k.role==="assistant"&&k.streaming),Y=c[c.length-1],me=(Y==null?void 0:Y.role)==="assistant"&&!Y.streaming;if(Te&&c.some(k=>k.role==="user")&&!pe&&!me){let k={config:t,streaming:!0,location:"standalone",defaultRenderer:on},ee=o.find(fe=>fe.renderLoadingIndicator),te=null;if(ee!=null&&ee.renderLoadingIndicator&&(te=ee.renderLoadingIndicator(k)),te===null&&((be=t.loadingIndicator)!=null&&be.render)&&(te=t.loadingIndicator.render(k)),te===null&&(te=on()),te){let fe=document.createElement("div"),Ie=((Ce=t.loadingIndicator)==null?void 0:Ce.showBubble)!==!1;fe.className=Ie?["tvw-max-w-[85%]","tvw-rounded-2xl","tvw-text-sm","tvw-leading-relaxed","tvw-shadow-sm","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-text-cw-primary","tvw-px-5","tvw-py-3"].join(" "):["tvw-max-w-[85%]","tvw-text-sm","tvw-leading-relaxed","tvw-text-cw-primary"].join(" "),fe.setAttribute("data-typing-indicator","true"),fe.appendChild(te);let Qe=document.createElement("div");Qe.className="tvw-flex",Qe.id="wrapper-typing-indicator",Qe.setAttribute("data-wrapper-id","typing-indicator"),Qe.appendChild(fe),I.appendChild(Qe)}}if(!Te&&c.length>0){let k=c[c.length-1],ee={config:t,lastMessage:k,messageCount:c.length},te=o.find(Ie=>Ie.renderIdleIndicator),fe=null;if(te!=null&&te.renderIdleIndicator&&(fe=te.renderIdleIndicator(ee)),fe===null&&((j=t.loadingIndicator)!=null&&j.renderIdle)&&(fe=t.loadingIndicator.renderIdle(ee)),fe){let Ie=document.createElement("div"),Qe=((Ue=t.loadingIndicator)==null?void 0:Ue.showBubble)!==!1;Ie.className=Qe?["tvw-max-w-[85%]","tvw-rounded-2xl","tvw-text-sm","tvw-leading-relaxed","tvw-shadow-sm","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-text-cw-primary","tvw-px-5","tvw-py-3"].join(" "):["tvw-max-w-[85%]","tvw-text-sm","tvw-leading-relaxed","tvw-text-cw-primary"].join(" "),Ie.setAttribute("data-idle-indicator","true"),Ie.appendChild(fe);let q=document.createElement("div");q.className="tvw-flex",q.id="wrapper-idle-indicator",q.setAttribute("data-wrapper-id","idle-indicator"),q.appendChild(Ie),I.appendChild(q)}}ci(l,I),requestAnimationFrame(()=>{requestAnimationFrame(()=>{let k=rt();De(k)})})},P=()=>{b&&(h?(B.classList.remove("tvw-pointer-events-none","tvw-opacity-0"),N.classList.remove("tvw-scale-95","tvw-opacity-0"),N.classList.add("tvw-scale-100","tvw-opacity-100"),_e?_e.element.style.display="none":qe&&(qe.style.display="none")):(B.classList.add("tvw-pointer-events-none","tvw-opacity-0"),N.classList.remove("tvw-scale-100","tvw-opacity-100"),N.classList.add("tvw-scale-95","tvw-opacity-0"),_e?_e.element.style.display="":qe&&(qe.style.display="")))},C=(l,c="user")=>{if(!b||h===l)return;let S=h;h=l,P(),h&&(An(),He(!0));let I={open:h,source:c,timestamp:Date.now()};h&&!S?s.emit("widget:opened",I):!h&&S&&s.emit("widget:closed",I),s.emit("widget:state",{open:h,launcherEnabled:b,voiceActive:ke.active,streaming:v.isStreaming()})},J=l=>{D.disabled=l,R&&(R.disabled=l),Tt.buttons.forEach(c=>{c.disabled=l})},Re=()=>{var x,X,pe,Y,me,be,Ce,j,Ue,k,ee,te,fe,Ie;Ot.textContent=(X=(x=t.copy)==null?void 0:x.welcomeTitle)!=null?X:"Hello \u{1F44B}",Nt.textContent=(Y=(pe=t.copy)==null?void 0:pe.welcomeSubtitle)!=null?Y:"Ask anything about your account or products.",Q.placeholder=(be=(me=t.copy)==null?void 0:me.inputPlaceholder)!=null?be:"How can I help...",((j=(Ce=t.sendButton)==null?void 0:Ce.useIcon)!=null?j:!1)||(D.textContent=(k=(Ue=t.copy)==null?void 0:Ue.sendButtonLabel)!=null?k:"Send");let c=(te=(ee=t.theme)==null?void 0:ee.inputFontFamily)!=null?te:"sans-serif",S=(Ie=(fe=t.theme)==null?void 0:fe.inputFontWeight)!=null?Ie:"400",I=Qe=>{switch(Qe){case"serif":return'Georgia, "Times New Roman", Times, serif';case"mono":return'"Courier New", Courier, "Lucida Console", Monaco, monospace';case"sans-serif":default:return'-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif'}};Q.style.fontFamily=I(c),Q.style.fontWeight=S};t.clientToken&&(t={...t,getStoredSessionId:()=>{let l=a.sessionId;return typeof l=="string"?l:null},setStoredSessionId:l=>{p(c=>({...c,sessionId:l}))}}),v=new pn(t,{onMessagesChanged(l){ne(Ye,l,V),v&&(l.some(x=>x.role==="user")?Tt.render([],v,Q,l):Tt.render(t.suggestionChips,v,Q,l,t.suggestionChipsConfig)),He(!Te),F(l);let c=[...l].reverse().find(I=>I.role==="user"),S=ke.lastUserMessageId;c&&c.id!==S&&(ke.lastUserMessageId=c.id,s.emit("user:message",c)),ke.lastUserMessageWasVoice=!!(c!=null&&c.viaVoice),Me(l)},onStatusChanged(l){var I;let c=(I=t.statusIndicator)!=null?I:{},S=x=>{var X,pe,Y,me;return x==="idle"?(X=c.idleText)!=null?X:pt.idle:x==="connecting"?(pe=c.connectingText)!=null?pe:pt.connecting:x==="connected"?(Y=c.connectedText)!=null?Y:pt.connected:x==="error"?(me=c.errorText)!=null?me:pt.error:pt[x]};xt.textContent=S(l)},onStreamingChanged(l){Te=l,J(l),v&&ne(Ye,v.getMessages(),V),l||He(!0)}}),d&&d.then(l=>{var c;l&&(l.metadata&&(a=Bs(l.metadata),A.syncFromMetadata()),(c=l.messages)!=null&&c.length&&v.hydrateMessages(l.messages))}).catch(l=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to hydrate stored state:",l)});let Fe=l=>{var x;l.preventDefault();let c=Q.value.trim(),S=(x=ae==null?void 0:ae.hasAttachments())!=null?x:!1;if(!c&&!S)return;let I;S&&(I=[],I.push(...ae.getContentParts()),c&&I.push(Gn(c))),Q.value="",Q.style.height="auto",v.sendMessage(c,{contentParts:I}),S&&ae.clearAttachments()},wt=l=>{l.key==="Enter"&&!l.shiftKey&&(l.preventDefault(),D.click())},he=null,We=!1,$e=null,de=null,Ee=()=>typeof window=="undefined"?null:window.webkitSpeechRecognition||window.SpeechRecognition||null,Ne=(l="user")=>{var X,pe,Y,me;if(We||v.isStreaming())return;let c=Ee();if(!c)return;he=new c;let I=(pe=((X=t.voiceRecognition)!=null?X:{}).pauseDuration)!=null?pe:2e3;he.continuous=!0,he.interimResults=!0,he.lang="en-US";let x=Q.value;he.onresult=be=>{let Ce="",j="";for(let k=0;k<be.results.length;k++){let ee=be.results[k],te=ee[0].transcript;ee.isFinal?Ce+=te+" ":j=te}let Ue=x+Ce+j;Q.value=Ue,$e&&clearTimeout($e),(Ce||j)&&($e=window.setTimeout(()=>{let k=Q.value.trim();k&&he&&We&&(ue(),Q.value="",Q.style.height="auto",v.sendMessage(k,{viaVoice:!0}))},I))},he.onerror=be=>{be.error!=="no-speech"&&ue()},he.onend=()=>{if(We){let be=Q.value.trim();be&&be!==x.trim()&&(Q.value="",Q.style.height="auto",v.sendMessage(be,{viaVoice:!0})),ue()}};try{if(he.start(),We=!0,ke.active=!0,l!=="system"&&(ke.manuallyDeactivated=!1),Sn(l),Jt(),R){de={backgroundColor:R.style.backgroundColor,color:R.style.color,borderColor:R.style.borderColor};let be=(Y=t.voiceRecognition)!=null?Y:{},Ce=(me=be.recordingBackgroundColor)!=null?me:"#ef4444",j=be.recordingIconColor,Ue=be.recordingBorderColor;if(R.classList.add("tvw-voice-recording"),R.style.backgroundColor=Ce,j){R.style.color=j;let k=R.querySelector("svg");k&&k.setAttribute("stroke",j)}Ue&&(R.style.borderColor=Ue),R.setAttribute("aria-label","Stop voice recognition")}}catch{ue("system")}},ue=(l="user")=>{if(We){if(We=!1,$e&&(clearTimeout($e),$e=null),he){try{he.stop()}catch{}he=null}if(ke.active=!1,Sn(l),Jt(),R){if(R.classList.remove("tvw-voice-recording"),de){R.style.backgroundColor=de.backgroundColor,R.style.color=de.color,R.style.borderColor=de.borderColor;let c=R.querySelector("svg");c&&c.setAttribute("stroke",de.color||"currentColor"),de=null}R.setAttribute("aria-label","Start voice recognition")}}},et=(l,c)=>{var te,fe,Ie,Qe,q,K,_t;if(!(typeof window!="undefined"&&(typeof window.webkitSpeechRecognition!="undefined"||typeof window.SpeechRecognition!="undefined")))return null;let I=g("div","tvw-send-button-wrapper"),x=g("button","tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer");x.type="button",x.setAttribute("aria-label","Start voice recognition");let X=(te=l==null?void 0:l.iconName)!=null?te:"mic",pe=(fe=c==null?void 0:c.size)!=null?fe:"40px",Y=(Ie=l==null?void 0:l.iconSize)!=null?Ie:pe,me=parseFloat(Y)||24,be=(Qe=l==null?void 0:l.backgroundColor)!=null?Qe:c==null?void 0:c.backgroundColor,Ce=(q=l==null?void 0:l.iconColor)!=null?q:c==null?void 0:c.textColor;x.style.width=Y,x.style.height=Y,x.style.minWidth=Y,x.style.minHeight=Y,x.style.fontSize="18px",x.style.lineHeight="1";let j=Ce||"currentColor",Ue=re(X,me,j,1.5);Ue?(x.appendChild(Ue),x.style.color=j):(x.textContent="\u{1F3A4}",x.style.color=j),be?x.style.backgroundColor=be:x.classList.add("tvw-bg-cw-primary"),Ce?x.style.color=Ce:!Ce&&!(c!=null&&c.textColor)&&x.classList.add("tvw-text-white"),l!=null&&l.borderWidth&&(x.style.borderWidth=l.borderWidth,x.style.borderStyle="solid"),l!=null&&l.borderColor&&(x.style.borderColor=l.borderColor),l!=null&&l.paddingX&&(x.style.paddingLeft=l.paddingX,x.style.paddingRight=l.paddingX),l!=null&&l.paddingY&&(x.style.paddingTop=l.paddingY,x.style.paddingBottom=l.paddingY),I.appendChild(x);let k=(K=l==null?void 0:l.tooltipText)!=null?K:"Start voice recognition";if(((_t=l==null?void 0:l.showTooltip)!=null?_t:!1)&&k){let qt=g("div","tvw-send-button-tooltip");qt.textContent=k,I.appendChild(qt)}return{micButton:x,micButtonWrapper:I}},yt=()=>{if(We){let l=Q.value.trim();ke.manuallyDeactivated=!0,Jt(),ue("user"),l&&(Q.value="",Q.style.height="auto",v.sendMessage(l))}else ke.manuallyDeactivated=!1,Jt(),Ne("user")};R&&(R.addEventListener("click",yt),Pe.push(()=>{ue("system"),R&&R.removeEventListener("click",yt)}));let Bt=s.on("assistant:complete",()=>{xn&&(ke.active||ke.manuallyDeactivated||xn==="assistant"&&!ke.lastUserMessageWasVoice||setTimeout(()=>{!ke.active&&!ke.manuallyDeactivated&&Ne("auto")},600))});Pe.push(Bt);let Hi=s.on("action:resubmit",()=>{setTimeout(()=>{v&&!v.isStreaming()&&v.continueConversation()},100)});Pe.push(Hi);let cn=()=>{C(!h,"user")},_e=null,qe=null;if(b){let l=o.find(c=>c.renderLauncher);if(l!=null&&l.renderLauncher){let c=l.renderLauncher({config:t,defaultRenderer:()=>Rn(t,cn).element,onToggle:cn});c&&(qe=c)}qe||(_e=Rn(t,cn))}_e?e.appendChild(_e.element):qe&&e.appendChild(qe),P(),Tt.render(t.suggestionChips,v,Q,void 0,t.suggestionChipsConfig),Re(),J(v.isStreaming()),He(!0),H();let An=()=>{var S,I,x,X,pe,Y,me,be;let l=(I=(S=t.launcher)==null?void 0:S.sidebarMode)!=null?I:!1,c=l||((X=(x=t.launcher)==null?void 0:x.fullHeight)!=null?X:!1);if(!b){N.style.height="",N.style.width="";return}if(!l){let Ce=(Y=(pe=t==null?void 0:t.launcher)==null?void 0:pe.width)!=null?Y:t==null?void 0:t.launcherWidth,j=Ce!=null?Ce:"min(400px, calc(100vw - 24px))";N.style.width=j,N.style.maxWidth=j}if(!c){let Ce=window.innerHeight,j=64,Ue=(be=(me=t.launcher)==null?void 0:me.heightOffset)!=null?be:0,k=Math.max(200,Ce-j),ee=Math.min(640,k),te=Math.max(200,ee-Ue);N.style.height=`${te}px`}};An(),window.addEventListener("resize",An),Pe.push(()=>window.removeEventListener("resize",An)),mt=Le.scrollTop;let Os=()=>{let l=Le.scrollTop,c=Le.scrollHeight,S=Le.clientHeight,I=c-l-S,x=Math.abs(l-mt);if(mt=l,!Zt&&!(x<=jn)){if(!je&&I<Cn){ft=!1,je=!0;return}je&&I>Cn&&(ft=!0,Pt=Date.now()+Nn,je=!1)}};Le.addEventListener("scroll",Os,{passive:!0}),Pe.push(()=>Le.removeEventListener("scroll",Os)),Pe.push(()=>{ht&&cancelAnimationFrame(ht)});let Ns=()=>{_&&(ct&&(_.removeEventListener("click",ct),ct=null),b?(_.style.display="",ct=()=>{h=!1,P()},_.addEventListener("click",ct)):_.style.display="none")};Ns(),(()=>{let{clearChatButton:l}=oe;l&&l.addEventListener("click",()=>{v.clearMessages();try{localStorage.removeItem(bn),t.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${bn}`)}catch(S){console.error("[AgentWidget] Failed to clear default localStorage:",S)}if(t.clearChatHistoryStorageKey&&t.clearChatHistoryStorageKey!==bn)try{localStorage.removeItem(t.clearChatHistoryStorageKey),t.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${t.clearChatHistoryStorageKey}`)}catch(S){console.error("[AgentWidget] Failed to clear custom localStorage:",S)}let c=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});if(window.dispatchEvent(c),i!=null&&i.clear)try{let S=i.clear();S instanceof Promise&&S.catch(I=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to clear storage adapter:",I)})}catch(S){typeof console!="undefined"&&console.error("[AgentWidget] Failed to clear storage adapter:",S)}a={},A.syncFromMetadata()})})(),Ct.addEventListener("submit",Fe),Q.addEventListener("keydown",wt),Pe.push(()=>{Ct.removeEventListener("submit",Fe),Q.removeEventListener("keydown",wt)}),Pe.push(()=>{v.cancel()}),_e?Pe.push(()=>{_e==null||_e.destroy()}):qe&&Pe.push(()=>{qe==null||qe.remove()});let Rt={update(l){var dr,cr,ur,pr,gr,mr,hr,fr,wr,yr,vr,br,Cr,xr,Sr,Ar,Tr,Mr,Er,Lr,kr,Wr,Ir,Pr,Hr,Br,Rr,Fr,$r,Or,Nr,jr,Dr,_r,qr,Ur,zr,Jr,Yr,Kr,Vr,Xr,Gr,Qr,Zr,eo,to,no,so,ro,oo,io,ao,lo,co,uo,po,go,mo,ho,fo,wo,yo,vo,bo,Co,xo,So,Ao,To,Mo,Eo,Lo,ko,Wo,Io,Po,Ho,Bo,Ro,Fo,$o;let c=t.toolCall,S=t.colorScheme;t={...t,...l},It(),es(e,t),t.colorScheme!==S&&Lt();let I=Fn.getForInstance(t.plugins);if(o.length=0,o.push(...I),b=(cr=(dr=t.launcher)==null?void 0:dr.enabled)!=null?cr:!0,T=(pr=(ur=t.launcher)==null?void 0:ur.autoExpand)!=null?pr:!1,$=(mr=(gr=t.features)==null?void 0:gr.showReasoning)!=null?mr:!0,Z=(fr=(hr=t.features)==null?void 0:hr.showToolCalls)!=null?fr:!0,((wr=t.launcher)==null?void 0:wr.enabled)===!1&&_e&&(_e.destroy(),_e=null),((yr=t.launcher)==null?void 0:yr.enabled)===!1&&qe&&(qe.remove(),qe=null),((vr=t.launcher)==null?void 0:vr.enabled)!==!1&&!_e&&!qe){let E=o.find(we=>we.renderLauncher);if(E!=null&&E.renderLauncher){let we=E.renderLauncher({config:t,defaultRenderer:()=>Rn(t,cn).element,onToggle:cn});we&&(qe=we,e.appendChild(qe))}qe||(_e=Rn(t,cn),e.appendChild(_e.element))}_e&&_e.update(t),it&&((br=t.launcher)==null?void 0:br.title)!==void 0&&(it.textContent=t.launcher.title),at&&((Cr=t.launcher)==null?void 0:Cr.subtitle)!==void 0&&(at.textContent=t.launcher.subtitle);let x=(xr=t.layout)==null?void 0:xr.header;if((x==null?void 0:x.layout)!==U&&Xe){let E=x?gn(t,x,{showClose:b,onClose:()=>C(!1,"user")}):Kt({config:t,showClose:b,onClose:()=>C(!1,"user")});Xe.replaceWith(E.header),Xe=E.header,Se=E.iconHolder,it=E.headerTitle,at=E.headerSubtitle,_=E.closeButton,U=x==null?void 0:x.layout}else if(x&&(Se&&(Se.style.display=x.showIcon===!1?"none":""),it&&(it.style.display=x.showTitle===!1?"none":""),at&&(at.style.display=x.showSubtitle===!1?"none":""),_&&(_.style.display=x.showCloseButton===!1?"none":""),oe.clearChatButtonWrapper)){let E=x.showClearChat;if(E!==void 0){oe.clearChatButtonWrapper.style.display=E?"":"none";let{closeButtonWrapper:we}=oe;we&&!we.classList.contains("tvw-absolute")&&(E?we.classList.remove("tvw-ml-auto"):we.classList.add("tvw-ml-auto"))}}let pe=((Sr=t.layout)==null?void 0:Sr.showHeader)!==!1;Xe&&(Xe.style.display=pe?"":"none");let Y=((Ar=t.layout)==null?void 0:Ar.showFooter)!==!1;lt&&(lt.style.display=Y?"":"none"),b!==L?b?C(T,"auto"):(h=!0,P()):T!==y&&C(T,"auto"),y=T,L=b,An(),Ns(),JSON.stringify(l.toolCall)!==JSON.stringify(c)&&v&&ne(Ye,v.getMessages(),V);let j=(Tr=t.launcher)!=null?Tr:{},Ue=(Mr=j.headerIconHidden)!=null?Mr:!1,k=(Lr=(Er=t.layout)==null?void 0:Er.header)==null?void 0:Lr.showIcon,ee=Ue||k===!1,te=j.headerIconName,fe=(kr=j.headerIconSize)!=null?kr:"48px";if(Se){let E=ie.querySelector(".tvw-border-b-cw-divider"),we=E==null?void 0:E.querySelector(".tvw-flex-col");if(ee)Se.style.display="none",E&&we&&!E.contains(we)&&E.insertBefore(we,E.firstChild);else{if(Se.style.display="",Se.style.height=fe,Se.style.width=fe,E&&we&&(E.contains(Se)?Se.nextSibling!==we&&(Se.remove(),E.insertBefore(Se,we)):E.insertBefore(Se,we)),te){let se=parseFloat(fe)||24,Ae=re(te,se*.6,"#ffffff",2);Ae?Se.replaceChildren(Ae):Se.textContent=(Wr=j.agentIconText)!=null?Wr:"\u{1F4AC}"}else if(j.iconUrl){let se=Se.querySelector("img");if(se)se.src=j.iconUrl,se.style.height=fe,se.style.width=fe;else{let Ae=document.createElement("img");Ae.src=j.iconUrl,Ae.alt="",Ae.className="tvw-rounded-xl tvw-object-cover",Ae.style.height=fe,Ae.style.width=fe,Se.replaceChildren(Ae)}}else{let se=Se.querySelector("svg"),Ae=Se.querySelector("img");(se||Ae)&&Se.replaceChildren(),Se.textContent=(Ir=j.agentIconText)!=null?Ir:"\u{1F4AC}"}let ze=Se.querySelector("img");ze&&(ze.style.height=fe,ze.style.width=fe)}}let Ie=(Hr=(Pr=t.layout)==null?void 0:Pr.header)==null?void 0:Hr.showTitle,Qe=(Rr=(Br=t.layout)==null?void 0:Br.header)==null?void 0:Rr.showSubtitle;if(it&&(it.style.display=Ie===!1?"none":""),at&&(at.style.display=Qe===!1?"none":""),_){(($r=(Fr=t.layout)==null?void 0:Fr.header)==null?void 0:$r.showCloseButton)===!1?_.style.display="none":_.style.display="";let we=(Or=j.closeButtonSize)!=null?Or:"32px",ze=(Nr=j.closeButtonPlacement)!=null?Nr:"inline";_.style.height=we,_.style.width=we;let{closeButtonWrapper:se}=oe,Ae=ze==="top-right",ut=se==null?void 0:se.classList.contains("tvw-absolute");if(se&&Ae!==ut)if(se.remove(),Ae)se.className="tvw-absolute tvw-top-4 tvw-right-4 tvw-z-50",ie.style.position="relative",ie.appendChild(se);else{let ce=(Dr=(jr=j.clearChat)==null?void 0:jr.placement)!=null?Dr:"inline",Ze=(qr=(_r=j.clearChat)==null?void 0:_r.enabled)!=null?qr:!0;se.className=Ze&&ce==="inline"?"":"tvw-ml-auto";let St=ie.querySelector(".tvw-border-b-cw-divider");St&&St.appendChild(se)}if(j.closeButtonColor?(_.style.color=j.closeButtonColor,_.classList.remove("tvw-text-cw-muted")):(_.style.color="",_.classList.add("tvw-text-cw-muted")),j.closeButtonBackgroundColor?(_.style.backgroundColor=j.closeButtonBackgroundColor,_.classList.remove("hover:tvw-bg-gray-100")):(_.style.backgroundColor="",_.classList.add("hover:tvw-bg-gray-100")),j.closeButtonBorderWidth||j.closeButtonBorderColor){let ce=j.closeButtonBorderWidth||"0px",Ze=j.closeButtonBorderColor||"transparent";_.style.border=`${ce} solid ${Ze}`,_.classList.remove("tvw-border-none")}else _.style.border="",_.classList.add("tvw-border-none");j.closeButtonBorderRadius?(_.style.borderRadius=j.closeButtonBorderRadius,_.classList.remove("tvw-rounded-full")):(_.style.borderRadius="",_.classList.add("tvw-rounded-full")),j.closeButtonPaddingX?(_.style.paddingLeft=j.closeButtonPaddingX,_.style.paddingRight=j.closeButtonPaddingX):(_.style.paddingLeft="",_.style.paddingRight=""),j.closeButtonPaddingY?(_.style.paddingTop=j.closeButtonPaddingY,_.style.paddingBottom=j.closeButtonPaddingY):(_.style.paddingTop="",_.style.paddingBottom="");let ot=(Ur=j.closeButtonIconName)!=null?Ur:"x",Mt=(zr=j.closeButtonIconText)!=null?zr:"\xD7";_.innerHTML="";let vt=re(ot,"20px",j.closeButtonColor||"",2);vt?_.appendChild(vt):_.textContent=Mt;let Je=(Jr=j.closeButtonTooltipText)!=null?Jr:"Close chat",Et=(Yr=j.closeButtonShowTooltip)!=null?Yr:!0;if(_.setAttribute("aria-label",Je),se&&(se._cleanupTooltip&&(se._cleanupTooltip(),delete se._cleanupTooltip),Et&&Je)){let ce=null,Ze=()=>{if(ce||!_)return;ce=g("div","tvw-clear-chat-tooltip"),ce.textContent=Je;let In=g("div");In.className="tvw-clear-chat-tooltip-arrow",ce.appendChild(In);let tn=_.getBoundingClientRect();ce.style.position="fixed",ce.style.left=`${tn.left+tn.width/2}px`,ce.style.top=`${tn.top-8}px`,ce.style.transform="translate(-50%, -100%)",document.body.appendChild(ce)},St=()=>{ce&&ce.parentNode&&(ce.parentNode.removeChild(ce),ce=null)};se.addEventListener("mouseenter",Ze),se.addEventListener("mouseleave",St),_.addEventListener("focus",Ze),_.addEventListener("blur",St),se._cleanupTooltip=()=>{St(),se&&(se.removeEventListener("mouseenter",Ze),se.removeEventListener("mouseleave",St)),_&&(_.removeEventListener("focus",Ze),_.removeEventListener("blur",St))}}}let{clearChatButton:q,clearChatButtonWrapper:K}=oe;if(q){let E=(Kr=j.clearChat)!=null?Kr:{},we=(Vr=E.enabled)!=null?Vr:!0,ze=(Gr=(Xr=t.layout)==null?void 0:Xr.header)==null?void 0:Gr.showClearChat,se=ze!==void 0?ze:we,Ae=(Qr=E.placement)!=null?Qr:"inline";if(K){K.style.display=se?"":"none";let{closeButtonWrapper:ut}=oe;ut&&!ut.classList.contains("tvw-absolute")&&(se?ut.classList.remove("tvw-ml-auto"):ut.classList.add("tvw-ml-auto"));let ot=Ae==="top-right",Mt=K.classList.contains("tvw-absolute");if(ot!==Mt&&se){if(K.remove(),ot)K.className="tvw-absolute tvw-top-4 tvw-z-50",K.style.right="48px",ie.style.position="relative",ie.appendChild(K);else{K.className="tvw-relative tvw-ml-auto tvw-clear-chat-button-wrapper",K.style.right="";let Je=ie.querySelector(".tvw-border-b-cw-divider"),Et=oe.closeButtonWrapper;Je&&Et&&Et.parentElement===Je?Je.insertBefore(K,Et):Je&&Je.appendChild(K)}let vt=oe.closeButtonWrapper;vt&&!vt.classList.contains("tvw-absolute")&&(ot?vt.classList.add("tvw-ml-auto"):vt.classList.remove("tvw-ml-auto"))}}if(se){let ut=(Zr=E.size)!=null?Zr:"32px";q.style.height=ut,q.style.width=ut;let ot=(eo=E.iconName)!=null?eo:"refresh-cw",Mt=(to=E.iconColor)!=null?to:"";q.innerHTML="";let vt=re(ot,"20px",Mt||"",2);if(vt&&q.appendChild(vt),Mt?(q.style.color=Mt,q.classList.remove("tvw-text-cw-muted")):(q.style.color="",q.classList.add("tvw-text-cw-muted")),E.backgroundColor?(q.style.backgroundColor=E.backgroundColor,q.classList.remove("hover:tvw-bg-gray-100")):(q.style.backgroundColor="",q.classList.add("hover:tvw-bg-gray-100")),E.borderWidth||E.borderColor){let ce=E.borderWidth||"0px",Ze=E.borderColor||"transparent";q.style.border=`${ce} solid ${Ze}`,q.classList.remove("tvw-border-none")}else q.style.border="",q.classList.add("tvw-border-none");E.borderRadius?(q.style.borderRadius=E.borderRadius,q.classList.remove("tvw-rounded-full")):(q.style.borderRadius="",q.classList.add("tvw-rounded-full")),E.paddingX?(q.style.paddingLeft=E.paddingX,q.style.paddingRight=E.paddingX):(q.style.paddingLeft="",q.style.paddingRight=""),E.paddingY?(q.style.paddingTop=E.paddingY,q.style.paddingBottom=E.paddingY):(q.style.paddingTop="",q.style.paddingBottom="");let Je=(no=E.tooltipText)!=null?no:"Clear chat",Et=(so=E.showTooltip)!=null?so:!0;if(q.setAttribute("aria-label",Je),K&&(K._cleanupTooltip&&(K._cleanupTooltip(),delete K._cleanupTooltip),Et&&Je)){let ce=null,Ze=()=>{if(ce||!q)return;ce=g("div","tvw-clear-chat-tooltip"),ce.textContent=Je;let In=g("div");In.className="tvw-clear-chat-tooltip-arrow",ce.appendChild(In);let tn=q.getBoundingClientRect();ce.style.position="fixed",ce.style.left=`${tn.left+tn.width/2}px`,ce.style.top=`${tn.top-8}px`,ce.style.transform="translate(-50%, -100%)",document.body.appendChild(ce)},St=()=>{ce&&ce.parentNode&&(ce.parentNode.removeChild(ce),ce=null)};K.addEventListener("mouseenter",Ze),K.addEventListener("mouseleave",St),q.addEventListener("focus",Ze),q.addEventListener("blur",St),K._cleanupTooltip=()=>{St(),K&&(K.removeEventListener("mouseenter",Ze),K.removeEventListener("mouseleave",St)),q&&(q.removeEventListener("focus",Ze),q.removeEventListener("blur",St))}}}}let _t=t.actionParsers&&t.actionParsers.length?t.actionParsers:[$n],qt=t.actionHandlers&&t.actionHandlers.length?t.actionHandlers:[an.message,an.messageAndClick];A=On({parsers:_t,handlers:qt,getSessionMetadata:f,updateSessionMetadata:p,emit:s.emit,documentRef:typeof document!="undefined"?document:null}),V=Ai(t,A,W),v.updateConfig(t),ne(Ye,v.getMessages(),V),Tt.render(t.suggestionChips,v,Q,void 0,t.suggestionChipsConfig),Re(),J(v.isStreaming());let Ft=((ro=t.voiceRecognition)==null?void 0:ro.enabled)===!0,Xt=typeof window!="undefined"&&(typeof window.webkitSpeechRecognition!="undefined"||typeof window.SpeechRecognition!="undefined");if(Ft&&Xt)if(!R||!Ke){let E=et(t.voiceRecognition,t.sendButton);E&&(R=E.micButton,Ke=E.micButtonWrapper,Dt.insertBefore(Ke,gt),R.addEventListener("click",yt),R.disabled=v.isStreaming())}else{let E=(oo=t.voiceRecognition)!=null?oo:{},we=(io=t.sendButton)!=null?io:{},ze=(ao=E.iconName)!=null?ao:"mic",se=(lo=we.size)!=null?lo:"40px",Ae=(co=E.iconSize)!=null?co:se,ut=parseFloat(Ae)||24;R.style.width=Ae,R.style.height=Ae,R.style.minWidth=Ae,R.style.minHeight=Ae;let ot=(po=(uo=E.iconColor)!=null?uo:we.textColor)!=null?po:"currentColor";R.innerHTML="";let Mt=re(ze,ut,ot,2);Mt?R.appendChild(Mt):R.textContent="\u{1F3A4}";let vt=(go=E.backgroundColor)!=null?go:we.backgroundColor;vt?(R.style.backgroundColor=vt,R.classList.remove("tvw-bg-cw-primary")):(R.style.backgroundColor="",R.classList.add("tvw-bg-cw-primary")),ot?(R.style.color=ot,R.classList.remove("tvw-text-white")):!ot&&!we.textColor&&(R.style.color="",R.classList.add("tvw-text-white")),E.borderWidth?(R.style.borderWidth=E.borderWidth,R.style.borderStyle="solid"):(R.style.borderWidth="",R.style.borderStyle=""),E.borderColor?R.style.borderColor=E.borderColor:R.style.borderColor="",E.paddingX?(R.style.paddingLeft=E.paddingX,R.style.paddingRight=E.paddingX):(R.style.paddingLeft="",R.style.paddingRight=""),E.paddingY?(R.style.paddingTop=E.paddingY,R.style.paddingBottom=E.paddingY):(R.style.paddingTop="",R.style.paddingBottom="");let Je=Ke==null?void 0:Ke.querySelector(".tvw-send-button-tooltip"),Et=(mo=E.tooltipText)!=null?mo:"Start voice recognition";if(((ho=E.showTooltip)!=null?ho:!1)&&Et)if(Je)Je.textContent=Et,Je.style.display="";else{let Ze=document.createElement("div");Ze.className="tvw-send-button-tooltip",Ze.textContent=Et,Ke==null||Ke.insertBefore(Ze,R)}else Je&&(Je.style.display="none");Ke.style.display="",R.disabled=v.isStreaming()}else R&&Ke&&(Ke.style.display="none",We&&ue());if(((fo=t.attachments)==null?void 0:fo.enabled)===!0)if(!tt||!ye){let E=(wo=t.attachments)!=null?wo:{},ze=(vo=((yo=t.sendButton)!=null?yo:{}).size)!=null?vo:"40px";G||(G=g("div","tvw-attachment-previews tvw-flex tvw-flex-wrap tvw-gap-2 tvw-mb-2"),G.style.display="none",Ct.insertBefore(G,Q)),ve||(ve=document.createElement("input"),ve.type="file",ve.accept=((bo=E.allowedTypes)!=null?bo:Qt).join(","),ve.multiple=((Co=E.maxFiles)!=null?Co:4)>1,ve.style.display="none",ve.setAttribute("aria-label","Attach files"),Ct.insertBefore(ve,Q)),tt=g("div","tvw-send-button-wrapper"),ye=g("button","tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer tvw-attachment-button"),ye.type="button",ye.setAttribute("aria-label",(xo=E.buttonTooltipText)!=null?xo:"Attach file");let se=(So=E.buttonIconName)!=null?So:"paperclip",Ae=ze,ut=parseFloat(Ae)||40,ot=Math.round(ut*.6);ye.style.width=Ae,ye.style.height=Ae,ye.style.minWidth=Ae,ye.style.minHeight=Ae,ye.style.fontSize="18px",ye.style.lineHeight="1",ye.style.backgroundColor="transparent",ye.style.color="var(--cw-primary, #111827)",ye.style.border="none",ye.style.borderRadius="6px",ye.style.transition="background-color 0.15s ease",ye.addEventListener("mouseenter",()=>{ye.style.backgroundColor="rgba(0, 0, 0, 0.05)"}),ye.addEventListener("mouseleave",()=>{ye.style.backgroundColor="transparent"});let Mt=re(se,ot,"currentColor",1.5);Mt?ye.appendChild(Mt):ye.textContent="\u{1F4CE}",ye.addEventListener("click",Et=>{Et.preventDefault(),ve==null||ve.click()}),tt.appendChild(ye);let vt=(Ao=E.buttonTooltipText)!=null?Ao:"Attach file",Je=g("div","tvw-send-button-tooltip");Je.textContent=vt,tt.appendChild(Je),jt.append(tt),!ae&&ve&&G&&(ae=sn.fromConfig(E),ae.setPreviewsContainer(G),ve.addEventListener("change",async()=>{ae&&(ve!=null&&ve.files)&&(await ae.handleFileSelect(ve.files),ve.value="")}))}else{tt.style.display="";let E=(To=t.attachments)!=null?To:{};ve&&(ve.accept=((Mo=E.allowedTypes)!=null?Mo:Qt).join(","),ve.multiple=((Eo=E.maxFiles)!=null?Eo:4)>1),ae&&ae.updateConfig({allowedTypes:E.allowedTypes,maxFileSize:E.maxFileSize,maxFiles:E.maxFiles})}else tt&&(tt.style.display="none"),ae&&ae.clearAttachments();let Ve=(Lo=t.sendButton)!=null?Lo:{},Dn=(ko=Ve.useIcon)!=null?ko:!1,Tn=(Wo=Ve.iconText)!=null?Wo:"\u2191",Mn=Ve.iconName,Gt=(Io=Ve.tooltipText)!=null?Io:"Send message",En=(Po=Ve.showTooltip)!=null?Po:!1,Ln=(Ho=Ve.size)!=null?Ho:"40px",_n=Ve.backgroundColor,Ut=Ve.textColor;if(Dn){if(D.style.width=Ln,D.style.height=Ln,D.style.minWidth=Ln,D.style.minHeight=Ln,D.style.fontSize="18px",D.style.lineHeight="1",D.innerHTML="",Mn){let E=parseFloat(Ln)||24,we=Ut&&typeof Ut=="string"&&Ut.trim()?Ut.trim():"currentColor",ze=re(Mn,E,we,2);ze?(D.appendChild(ze),D.style.color=we):(D.textContent=Tn,Ut?D.style.color=Ut:D.classList.add("tvw-text-white"))}else D.textContent=Tn,Ut?D.style.color=Ut:D.classList.add("tvw-text-white");D.className="tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer",_n?(D.style.backgroundColor=_n,D.classList.remove("tvw-bg-cw-primary")):D.classList.add("tvw-bg-cw-primary")}else D.textContent=(Ro=(Bo=t.copy)==null?void 0:Bo.sendButtonLabel)!=null?Ro:"Send",D.style.width="",D.style.height="",D.style.minWidth="",D.style.minHeight="",D.style.fontSize="",D.style.lineHeight="",D.className="tvw-rounded-button tvw-bg-cw-accent tvw-px-4 tvw-py-2 tvw-text-sm tvw-font-semibold tvw-text-white disabled:tvw-opacity-50 tvw-cursor-pointer",_n?(D.style.backgroundColor=_n,D.classList.remove("tvw-bg-cw-accent")):D.classList.add("tvw-bg-cw-accent"),Ut?D.style.color=Ut:D.classList.add("tvw-text-white");Ve.borderWidth?(D.style.borderWidth=Ve.borderWidth,D.style.borderStyle="solid"):(D.style.borderWidth="",D.style.borderStyle=""),Ve.borderColor?D.style.borderColor=Ve.borderColor:D.style.borderColor="",Ve.paddingX?(D.style.paddingLeft=Ve.paddingX,D.style.paddingRight=Ve.paddingX):(D.style.paddingLeft="",D.style.paddingRight=""),Ve.paddingY?(D.style.paddingTop=Ve.paddingY,D.style.paddingBottom=Ve.paddingY):(D.style.paddingTop="",D.style.paddingBottom="");let kn=gt==null?void 0:gt.querySelector(".tvw-send-button-tooltip");if(En&&Gt)if(kn)kn.textContent=Gt,kn.style.display="";else{let E=document.createElement("div");E.className="tvw-send-button-tooltip",E.textContent=Gt,gt==null||gt.insertBefore(E,D)}else kn&&(kn.style.display="none");let Wn=(Fo=t.statusIndicator)!=null?Fo:{},Bi=($o=Wn.visible)!=null?$o:!0;if(xt.style.display=Bi?"":"none",v){let E=v.getStatus(),we=ze=>{var se,Ae,ut,ot;return ze==="idle"?(se=Wn.idleText)!=null?se:pt.idle:ze==="connecting"?(Ae=Wn.connectingText)!=null?Ae:pt.connecting:ze==="connected"?(ut=Wn.connectedText)!=null?ut:pt.connected:ze==="error"?(ot=Wn.errorText)!=null?ot:pt.error:pt[ze]};xt.textContent=we(E)}},open(){b&&C(!0,"api")},close(){b&&C(!1,"api")},toggle(){b&&C(!h,"api")},clearChat(){v.clearMessages();try{localStorage.removeItem(bn),t.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${bn}`)}catch(c){console.error("[AgentWidget] Failed to clear default localStorage:",c)}if(t.clearChatHistoryStorageKey&&t.clearChatHistoryStorageKey!==bn)try{localStorage.removeItem(t.clearChatHistoryStorageKey),t.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${t.clearChatHistoryStorageKey}`)}catch(c){console.error("[AgentWidget] Failed to clear custom localStorage:",c)}let l=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});if(window.dispatchEvent(l),i!=null&&i.clear)try{let c=i.clear();c instanceof Promise&&c.catch(S=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to clear storage adapter:",S)})}catch(c){typeof console!="undefined"&&console.error("[AgentWidget] Failed to clear storage adapter:",c)}a={},A.syncFromMetadata()},setMessage(l){return!Q||v.isStreaming()?!1:(!h&&b&&C(!0,"system"),Q.value=l,Q.dispatchEvent(new Event("input",{bubbles:!0})),!0)},submitMessage(l){if(v.isStreaming())return!1;let c=(l==null?void 0:l.trim())||Q.value.trim();return c?(!h&&b&&C(!0,"system"),Q.value="",Q.style.height="auto",v.sendMessage(c),!0):!1},startVoiceRecognition(){return We||v.isStreaming()||!Ee()?!1:(!h&&b&&C(!0,"system"),ke.manuallyDeactivated=!1,Jt(),Ne("user"),!0)},stopVoiceRecognition(){return We?(ke.manuallyDeactivated=!0,Jt(),ue("user"),!0):!1},injectMessage(l){return!h&&b&&C(!0,"system"),v.injectMessage(l)},injectAssistantMessage(l){!h&&b&&C(!0,"system");let c=v.injectAssistantMessage(l);return O&&(O=!1,M&&(clearTimeout(M),M=null),setTimeout(()=>{v&&!v.isStreaming()&&v.continueConversation()},100)),c},injectUserMessage(l){return!h&&b&&C(!0,"system"),v.injectUserMessage(l)},injectSystemMessage(l){return!h&&b&&C(!0,"system"),v.injectSystemMessage(l)},injectTestMessage(l){!h&&b&&C(!0,"system"),v.injectTestEvent(l)},getMessages(){return v.getMessages()},getStatus(){return v.getStatus()},getPersistentMetadata(){return{...a}},updatePersistentMetadata(l){p(l)},on(l,c){return s.on(l,c)},off(l,c){s.off(l,c)},isOpen(){return b&&h},isVoiceActive(){return ke.active},getState(){return{open:b&&h,launcherEnabled:b,voiceActive:ke.active,streaming:v.isStreaming()}},showCSATFeedback(l){!h&&b&&C(!0,"system");let c=Ye.querySelector(".tvw-feedback-container");c&&c.remove();let S=ls({onSubmit:async(I,x)=>{var X;v.isClientTokenMode()&&await v.submitCSATFeedback(I,x),(X=l==null?void 0:l.onSubmit)==null||X.call(l,I,x)},onDismiss:l==null?void 0:l.onDismiss,...l});Ye.appendChild(S),S.scrollIntoView({behavior:"smooth",block:"end"})},showNPSFeedback(l){!h&&b&&C(!0,"system");let c=Ye.querySelector(".tvw-feedback-container");c&&c.remove();let S=ds({onSubmit:async(I,x)=>{var X;v.isClientTokenMode()&&await v.submitNPSFeedback(I,x),(X=l==null?void 0:l.onSubmit)==null||X.call(l,I,x)},onDismiss:l==null?void 0:l.onDismiss,...l});Ye.appendChild(S),S.scrollIntoView({behavior:"smooth",block:"end"})},async submitCSATFeedback(l,c){return v.submitCSATFeedback(l,c)},async submitNPSFeedback(l,c){return v.submitNPSFeedback(l,c)},destroy(){Pe.forEach(l=>l()),B.remove(),_e==null||_e.destroy(),qe==null||qe.remove(),ct&&_.removeEventListener("click",ct)}};if((((sr=r==null?void 0:r.debugTools)!=null?sr:!1)||!!t.debug)&&typeof window!="undefined"){let l=window.AgentWidgetBrowser,c={controller:Rt,getMessages:Rt.getMessages,getStatus:Rt.getStatus,getMetadata:Rt.getPersistentMetadata,updateMetadata:Rt.updatePersistentMetadata,clearHistory:()=>Rt.clearChat(),setVoiceActive:S=>S?Rt.startVoiceRecognition():Rt.stopVoiceRecognition()};window.AgentWidgetBrowser=c,Pe.push(()=>{window.AgentWidgetBrowser===c&&(window.AgentWidgetBrowser=l)})}let kt=ha(t.persistState);if(kt&&b){let l=fa(kt.storage),c=`${kt.keyPrefix}widget-open`,S=`${kt.keyPrefix}widget-voice`,I=`${kt.keyPrefix}widget-voice-mode`;if(l){let x=((rr=kt.persist)==null?void 0:rr.openState)&&l.getItem(c)==="true",X=((or=kt.persist)==null?void 0:or.voiceState)&&l.getItem(S)==="true",pe=((ir=kt.persist)==null?void 0:ir.voiceState)&&l.getItem(I)==="true";if(x&&setTimeout(()=>{Rt.open(),setTimeout(()=>{var Y;if(X||pe)Rt.startVoiceRecognition();else if((Y=kt.persist)!=null&&Y.focusInput){let me=e.querySelector("textarea");me&&me.focus()}},100)},0),(ar=kt.persist)!=null&&ar.openState&&(s.on("widget:opened",()=>{l.setItem(c,"true")}),s.on("widget:closed",()=>{l.setItem(c,"false")})),(lr=kt.persist)!=null&&lr.voiceState&&(s.on("voice:state",Y=>{l.setItem(S,Y.active?"true":"false")}),s.on("user:message",Y=>{l.setItem(I,Y.viaVoice?"true":"false")})),kt.clearOnChatClear){let Y=()=>{l.removeItem(c),l.removeItem(S),l.removeItem(I)},me=()=>Y();window.addEventListener("persona:clear-chat",me),Pe.push(()=>{window.removeEventListener("persona:clear-chat",me)})}}}return Rt};var Rs={},wa=e=>{if(typeof window=="undefined"||typeof document=="undefined")throw new Error("Chat widget can only be mounted in a browser environment");if(typeof e=="string"){let n=document.querySelector(e);if(!n)throw new Error(`Chat widget target "${e}" was not found`);return n}return e},ya=()=>{try{if(typeof Rs!="undefined"&&Rs.url)return new URL("../widget.css",Rs.url).href}catch{}return null},Ti=e=>{let n=ya(),r=()=>{if(!(e instanceof ShadowRoot)||e.querySelector("link[data-persona]"))return;let t=document.head.querySelector("link[data-persona]");if(!t)return;let o=t.cloneNode(!0);e.insertBefore(o,e.firstChild)};if(e instanceof ShadowRoot)if(n){let t=document.createElement("link");t.rel="stylesheet",t.href=n,t.setAttribute("data-persona","true"),e.insertBefore(t,e.firstChild)}else r();else if(!document.head.querySelector("link[data-persona]")&&n){let o=document.createElement("link");o.rel="stylesheet",o.href=n,o.setAttribute("data-persona","true"),document.head.appendChild(o)}},Fs=e=>{var u,f,p,m;let n=wa(e.target),r=document.createElement("div");r.className="persona-host";let t=(p=(f=(u=e.config)==null?void 0:u.launcher)==null?void 0:f.enabled)!=null?p:!0;t||(r.style.height="100%"),n.appendChild(r);let o=e.useShadowDom===!0,s,i;if(o){let w=r.attachShadow({mode:"open"});i=w,s=document.createElement("div"),s.id="persona-root",t||(s.style.height="100%",s.style.display="flex",s.style.flexDirection="column",s.style.flex="1",s.style.minHeight="0"),w.appendChild(s),Ti(w)}else i=r,s=document.createElement("div"),s.id="persona-root",t||(s.style.height="100%",s.style.display="flex",s.style.flexDirection="column",s.style.flex="1",s.style.minHeight="0"),r.appendChild(s),Ti(r);let a=cs(s,e.config,{debugTools:e.debugTools});(m=e.onReady)==null||m.call(e);let d={...a,host:r,destroy(){a.destroy(),r.remove(),e.windowKey&&typeof window!="undefined"&&delete window[e.windowKey]}};return e.windowKey&&typeof window!="undefined"&&(window[e.windowKey]=d),d};var Mi={name:"@runtypelabs/persona",version:"1.41.0",description:"Themeable, plugable streaming agent widget for websites, in plain JS with support for voice input and reasoning / tool output.",type:"module",main:"dist/index.cjs",module:"dist/index.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js",require:"./dist/index.cjs"},"./widget.css":{import:"./widget.css",default:"./dist/widget.css"}},files:["dist","widget.css","src"],scripts:{build:"rimraf dist && npm run build:styles && npm run build:client && npm run build:installer","build:styles":`node -e "const fs=require('fs');fs.mkdirSync('dist',{recursive:true});fs.copyFileSync('src/styles/widget.css','dist/widget.css');"`,"build:client":'tsup src/index.ts --format esm,cjs,iife --global-name AgentWidget --minify --sourcemap --splitting false --dts --loader ".css=text"',"build:installer":"tsup src/install.ts --format iife --global-name SiteAgentInstaller --out-dir dist --minify --sourcemap --no-splitting",lint:"eslint . --ext .ts",typecheck:"tsc --noEmit",test:"vitest","test:ui":"vitest --ui","test:run":"vitest run"},dependencies:{idiomorph:"^0.7.4",lucide:"^0.552.0",marked:"^12.0.2","partial-json":"^0.1.7",zod:"^3.22.4"},devDependencies:{"@types/node":"^20.12.7","@typescript-eslint/eslint-plugin":"^7.0.0","@typescript-eslint/parser":"^7.0.0","@vitest/ui":"^4.0.9",eslint:"^8.57.0","eslint-config-prettier":"^9.1.0",postcss:"^8.4.38",rimraf:"^5.0.5",tailwindcss:"^3.4.10",tsup:"^8.0.1",typescript:"^5.4.5",vitest:"^4.0.9"},engines:{node:">=18.17.0"},license:"MIT",keywords:["chat","widget","streaming","typescript","persona","agent"],repository:{type:"git",url:"git+https://github.com/runtypelabs/persona.git",directory:"packages/widget"},bugs:{url:"https://github.com/runtypelabs/persona/issues"},homepage:"https://github.com/runtypelabs/persona/tree/main/packages/widget#readme",publishConfig:{access:"public"}};var ln=Mi.version;function Vt(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(n=>n.toString()).join(", ")}]`:e.toString()}function ba(e){if(e)return{getHeaders:Vt(e.getHeaders),onFeedback:Vt(e.onFeedback),onCopy:Vt(e.onCopy),requestMiddleware:Vt(e.requestMiddleware),actionHandlers:Vt(e.actionHandlers),actionParsers:Vt(e.actionParsers),postprocessMessage:Vt(e.postprocessMessage),contextProviders:Vt(e.contextProviders),streamParser:Vt(e.streamParser)}}var Ei=`({ text, message }: any) => {
60
+ `}if(!H){let gn="max-height: -moz-available !important; max-height: stretch !important;",mn=l?"":"padding-top: 1.25em !important;";Ie.style.cssText+=gn+mn}};it(),Ls(e,t);let pt=[];G&&pt.push(()=>{ce!==null&&(cancelAnimationFrame(ce),ce=null),Z==null||Z.destroy(),Z=null,D==null||D.destroy(),D=null,N=null});let Nt=null,On=()=>{Nt&&(Nt(),Nt=null),t.colorScheme==="auto"&&(Nt=ji(()=>{Ls(e,t)}))};On(),pt.push(()=>{Nt&&(Nt(),Nt=null)});let rn=Xi(Et),Jt=null,$,on=!1,Vt=!0,dn=0,Nn=0,Xt=null,Gt=!1,Sn=0,An=!1,is=125,as=2e3,ls=5,Dn=50,En=new Map,Ye={active:!1,manuallyDeactivated:!1,lastUserMessageWasVoice:!1,lastUserMessageId:null},jn=(Pr=(Ir=t.voiceRecognition)==null?void 0:Ir.autoResume)!=null?Pr:!1,_n=l=>{s.emit("voice:state",{active:Ye.active,source:l,timestamp:Date.now()})},Qt=()=>{c(l=>({...l,voiceState:{active:Ye.active,timestamp:Date.now(),manuallyDeactivated:Ye.manuallyDeactivated}}))},ds=()=>{var I,E;if(((I=t.voiceRecognition)==null?void 0:I.enabled)===!1)return;let l=ur(a.voiceState),u=!!l.active,S=Number((E=l.timestamp)!=null?E:0);Ye.manuallyDeactivated=!!l.manuallyDeactivated,u&&Date.now()-S<ol&&setTimeout(()=>{Ye.active||(Ye.manuallyDeactivated=!1,He("restore"))},1e3)},cs=()=>$?sa($.getMessages()).filter(l=>!l.__skipPersist):[];function qn(l){if(!(i!=null&&i.save))return;let S={messages:l?sa(l):$?cs():[],metadata:a};try{let I=i.save(S);I instanceof Promise&&I.catch(E=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to persist state:",E)})}catch(I){typeof console!="undefined"&&console.error("[AgentWidget] Failed to persist state:",I)}}let cn=(l=!1)=>{if(!Vt)return;let u=Date.now();Gt&&u<Sn&&!l||(Gt&&u>=Sn&&(Gt=!1),!(!l&&!on)&&(u-Nn<is||(Nn=u,Xt&&cancelAnimationFrame(Xt),Xt=requestAnimationFrame(()=>{Gt||!Vt||(An=!0,Pe.scrollTop=Pe.scrollHeight,dn=Pe.scrollTop,requestAnimationFrame(()=>{An=!1}),Xt=null)}))))},Zt=null,us=()=>Ie.querySelector("#persona-scroll-container")||Pe,ps=(l,u=500)=>{let S=l.scrollTop,I=l.clientHeight,E=l.scrollHeight,q=E-S;if(S+I>=E-2||Math.abs(q)<5)return;Zt!==null&&(cancelAnimationFrame(Zt),Zt=null);let le=performance.now(),Te=Re=>1-Math.pow(1-Re,3),Be=Re=>{let De=l.scrollHeight;De!==E&&(E=De,q=E-S);let ne=Re-le,H=Math.min(ne/u,1),he=Te(H),we=S+q*he;l.scrollTop=we,H<1?Zt=requestAnimationFrame(Be):(l.scrollTop=l.scrollHeight,Zt=null)};Zt=requestAnimationFrame(Be)},gs=l=>{let u=new Map;l.forEach(S=>{let I=En.get(S.id);u.set(S.id,{streaming:S.streaming,role:S.role}),!I&&S.role==="assistant"&&s.emit("assistant:message",S),S.role==="assistant"&&(I!=null&&I.streaming)&&S.streaming===!1&&s.emit("assistant:complete",S)}),En.clear(),u.forEach((S,I)=>{En.set(I,S)})},un=(l,u,S)=>{var Be,Re,De,ne;let I=document.createElement("div"),q=(()=>{var he;let H=o.find(we=>we.renderLoadingIndicator);if(H!=null&&H.renderLoadingIndicator)return H.renderLoadingIndicator;if((he=t.loadingIndicator)!=null&&he.render)return t.loadingIndicator.render})();u.forEach(H=>{var mt,It;let he=null,we=o.find(K=>!!(H.variant==="reasoning"&&K.renderReasoning||H.variant==="tool"&&K.renderToolCall||!H.variant&&K.renderMessage)),Xe=(mt=t.layout)==null?void 0:mt.messages;if(we)if(H.variant==="reasoning"&&H.reasoning&&we.renderReasoning){if(!O)return;he=we.renderReasoning({message:H,defaultRenderer:()=>nr(H),config:t})}else if(H.variant==="tool"&&H.toolCall&&we.renderToolCall){if(!se)return;he=we.renderToolCall({message:H,defaultRenderer:()=>sr(H,t),config:t})}else we.renderMessage&&(he=we.renderMessage({message:H,defaultRenderer:()=>{let K=In(H,S,Xe,t.messageActions,Tt,{loadingIndicatorRenderer:q,widgetConfig:t});return H.role!=="user"&&or(K,H,t,$),K},config:t}));if(!he&&H.role==="assistant"&&!H.variant&&t.enableComponentStreaming!==!1&&Bs(H)){let je=Rs(H);if(je){let Kt=Hs(je,{config:t,message:H,transform:S});if(Kt){let zt=document.createElement("div");if(zt.className=["vanilla-message-bubble","tvw-max-w-[85%]","tvw-rounded-2xl","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-p-4"].join(" "),zt.id=`bubble-${H.id}`,zt.setAttribute("data-message-id",H.id),H.content&&H.content.trim()){let an=document.createElement("div");an.className="tvw-mb-3 tvw-text-sm tvw-leading-relaxed",an.innerHTML=S({text:H.content,message:H,streaming:!!H.streaming,raw:H.rawContent}),zt.appendChild(an)}zt.appendChild(Kt),he=zt}}}if(!he)if(H.variant==="reasoning"&&H.reasoning){if(!O)return;he=nr(H)}else if(H.variant==="tool"&&H.toolCall){if(!se)return;he=sr(H,t)}else{let K=(It=t.layout)==null?void 0:It.messages;K!=null&&K.renderUserMessage&&H.role==="user"?he=K.renderUserMessage({message:H,config:t,streaming:!!H.streaming}):K!=null&&K.renderAssistantMessage&&H.role==="assistant"?he=K.renderAssistantMessage({message:H,config:t,streaming:!!H.streaming}):he=In(H,S,K,t.messageActions,Tt,{loadingIndicatorRenderer:q,widgetConfig:t}),H.role!=="user"&&he&&or(he,H,t,$)}let Le=document.createElement("div");Le.className="tvw-flex",Le.id=`wrapper-${H.id}`,Le.setAttribute("data-wrapper-id",H.id),H.role==="user"&&Le.classList.add("tvw-justify-end"),Le.appendChild(he),I.appendChild(Le)});let be=u.some(H=>H.role==="assistant"&&H.streaming),le=u[u.length-1],Te=(le==null?void 0:le.role)==="assistant"&&!le.streaming;if(on&&u.some(H=>H.role==="user")&&!be&&!Te){let H={config:t,streaming:!0,location:"standalone",defaultRenderer:bn},he=o.find(Xe=>Xe.renderLoadingIndicator),we=null;if(he!=null&&he.renderLoadingIndicator&&(we=he.renderLoadingIndicator(H)),we===null&&((Be=t.loadingIndicator)!=null&&Be.render)&&(we=t.loadingIndicator.render(H)),we===null&&(we=bn()),we){let Xe=document.createElement("div"),Le=((Re=t.loadingIndicator)==null?void 0:Re.showBubble)!==!1;Xe.className=Le?["tvw-max-w-[85%]","tvw-rounded-2xl","tvw-text-sm","tvw-leading-relaxed","tvw-shadow-sm","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-text-cw-primary","tvw-px-5","tvw-py-3"].join(" "):["tvw-max-w-[85%]","tvw-text-sm","tvw-leading-relaxed","tvw-text-cw-primary"].join(" "),Xe.setAttribute("data-typing-indicator","true"),Xe.appendChild(we);let mt=document.createElement("div");mt.className="tvw-flex",mt.id="wrapper-typing-indicator",mt.setAttribute("data-wrapper-id","typing-indicator"),mt.appendChild(Xe),I.appendChild(mt)}}if(!on&&u.length>0){let H=u[u.length-1],he={config:t,lastMessage:H,messageCount:u.length},we=o.find(Le=>Le.renderIdleIndicator),Xe=null;if(we!=null&&we.renderIdleIndicator&&(Xe=we.renderIdleIndicator(he)),Xe===null&&((De=t.loadingIndicator)!=null&&De.renderIdle)&&(Xe=t.loadingIndicator.renderIdle(he)),Xe){let Le=document.createElement("div"),mt=((ne=t.loadingIndicator)==null?void 0:ne.showBubble)!==!1;Le.className=mt?["tvw-max-w-[85%]","tvw-rounded-2xl","tvw-text-sm","tvw-leading-relaxed","tvw-shadow-sm","tvw-bg-cw-surface","tvw-border","tvw-border-cw-message-border","tvw-text-cw-primary","tvw-px-5","tvw-py-3"].join(" "):["tvw-max-w-[85%]","tvw-text-sm","tvw-leading-relaxed","tvw-text-cw-primary"].join(" "),Le.setAttribute("data-idle-indicator","true"),Le.appendChild(Xe);let It=document.createElement("div");It.className="tvw-flex",It.id="wrapper-idle-indicator",It.setAttribute("data-wrapper-id","idle-indicator"),It.appendChild(Le),I.appendChild(It)}}qi(l,I),requestAnimationFrame(()=>{requestAnimationFrame(()=>{let H=us();ps(H)})})},pn=()=>{b&&(f?(Ie.classList.remove("tvw-pointer-events-none","tvw-opacity-0"),ye.classList.remove("tvw-scale-95","tvw-opacity-0"),ye.classList.add("tvw-scale-100","tvw-opacity-100"),k?k.element.style.display="none":h&&(h.style.display="none")):(Ie.classList.add("tvw-pointer-events-none","tvw-opacity-0"),ye.classList.remove("tvw-scale-100","tvw-opacity-100"),ye.classList.add("tvw-scale-95","tvw-opacity-0"),k?k.element.style.display="":h&&(h.style.display="")))},nt=(l,u="user")=>{if(!b||f===l)return;let S=f;f=l,pn(),f&&(M(),cn(!0));let I={open:f,source:u,timestamp:Date.now()};f&&!S?s.emit("widget:opened",I):!f&&S&&s.emit("widget:closed",I),s.emit("widget:state",{open:f,launcherEnabled:b,voiceActive:Ye.active,streaming:$.isStreaming()})},Tn=l=>{J.disabled=l,j&&(j.disabled=l),rn.buttons.forEach(u=>{u.disabled=l})},zn=()=>{var E,q,be,le,Te,Be,Re,De,ne,H,he,we,Xe,Le;Ot.textContent=(q=(E=t.copy)==null?void 0:E.welcomeTitle)!=null?q:"Hello \u{1F44B}",wt.textContent=(le=(be=t.copy)==null?void 0:be.welcomeSubtitle)!=null?le:"Ask anything about your account or products.",pe.placeholder=(Be=(Te=t.copy)==null?void 0:Te.inputPlaceholder)!=null?Be:"How can I help...",((De=(Re=t.sendButton)==null?void 0:Re.useIcon)!=null?De:!1)||(J.textContent=(H=(ne=t.copy)==null?void 0:ne.sendButtonLabel)!=null?H:"Send");let u=(we=(he=t.theme)==null?void 0:he.inputFontFamily)!=null?we:"sans-serif",S=(Le=(Xe=t.theme)==null?void 0:Xe.inputFontWeight)!=null?Le:"400",I=mt=>{switch(mt){case"serif":return'Georgia, "Times New Roman", Times, serif';case"mono":return'"Courier New", Courier, "Lucida Console", Monaco, monospace';case"sans-serif":default:return'-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif'}};pe.style.fontFamily=I(u),pe.style.fontWeight=S};t.clientToken&&(t={...t,getStoredSessionId:()=>{let l=a.sessionId;return typeof l=="string"?l:null},setStoredSessionId:l=>{c(u=>({...u,sessionId:l}))}}),$=new Ln(t,{onMessagesChanged(l){un(tt,l,X),$&&(l.some(E=>E.role==="user")?rn.render([],$,pe,l):rn.render(t.suggestionChips,$,pe,l,t.suggestionChipsConfig)),cn(!on),gs(l);let u=[...l].reverse().find(I=>I.role==="user"),S=Ye.lastUserMessageId;u&&u.id!==S&&(Ye.lastUserMessageId=u.id,s.emit("user:message",u)),Ye.lastUserMessageWasVoice=!!(u!=null&&u.viaVoice),qn(l)},onStatusChanged(l){var I;let u=(I=t.statusIndicator)!=null?I:{},S=E=>{var q,be,le,Te;return E==="idle"?(q=u.idleText)!=null?q:Pt.idle:E==="connecting"?(be=u.connectingText)!=null?be:Pt.connecting:E==="connected"?(le=u.connectedText)!=null?le:Pt.connected:E==="error"?(Te=u.errorText)!=null?Te:Pt.error:Pt[E]};ft.textContent=S(l)},onStreamingChanged(l){on=l,Tn(l),$&&un(tt,$.getMessages(),X),l||cn(!0)}}),D&&$.setSSEEventCallback((l,u)=>{D==null||D.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:l,timestamp:Date.now(),payload:JSON.stringify(u)})}),d&&d.then(l=>{var u;l&&(l.metadata&&(a=ur(l.metadata),C.syncFromMetadata()),(u=l.messages)!=null&&u.length&&$.hydrateMessages(l.messages))}).catch(l=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to hydrate stored state:",l)});let Un=l=>{var E;l.preventDefault();let u=pe.value.trim(),S=(E=de==null?void 0:de.hasAttachments())!=null?E:!1;if(!u&&!S)return;let I;S&&(I=[],I.push(...de.getContentParts()),u&&I.push(Es(u))),pe.value="",pe.style.height="auto",$.sendMessage(u,{contentParts:I}),S&&de.clearAttachments()},Jn=l=>{l.key==="Enter"&&!l.shiftKey&&(l.preventDefault(),J.click())},Ht=null,Dt=!1,en=null,B=null,Ee=()=>typeof window=="undefined"?null:window.webkitSpeechRecognition||window.SpeechRecognition||null,He=(l="user")=>{var q,be,le,Te;if(Dt||$.isStreaming())return;let u=Ee();if(!u)return;Ht=new u;let I=(be=((q=t.voiceRecognition)!=null?q:{}).pauseDuration)!=null?be:2e3;Ht.continuous=!0,Ht.interimResults=!0,Ht.lang="en-US";let E=pe.value;Ht.onresult=Be=>{let Re="",De="";for(let H=0;H<Be.results.length;H++){let he=Be.results[H],we=he[0].transcript;he.isFinal?Re+=we+" ":De=we}let ne=E+Re+De;pe.value=ne,en&&clearTimeout(en),(Re||De)&&(en=window.setTimeout(()=>{let H=pe.value.trim();H&&Ht&&Dt&&(Je(),pe.value="",pe.style.height="auto",$.sendMessage(H,{viaVoice:!0}))},I))},Ht.onerror=Be=>{Be.error!=="no-speech"&&Je()},Ht.onend=()=>{if(Dt){let Be=pe.value.trim();Be&&Be!==E.trim()&&(pe.value="",pe.style.height="auto",$.sendMessage(Be,{viaVoice:!0})),Je()}};try{if(Ht.start(),Dt=!0,Ye.active=!0,l!=="system"&&(Ye.manuallyDeactivated=!1),_n(l),Qt(),j){B={backgroundColor:j.style.backgroundColor,color:j.style.color,borderColor:j.style.borderColor};let Be=(le=t.voiceRecognition)!=null?le:{},Re=(Te=Be.recordingBackgroundColor)!=null?Te:"#ef4444",De=Be.recordingIconColor,ne=Be.recordingBorderColor;if(j.classList.add("tvw-voice-recording"),j.style.backgroundColor=Re,De){j.style.color=De;let H=j.querySelector("svg");H&&H.setAttribute("stroke",De)}ne&&(j.style.borderColor=ne),j.setAttribute("aria-label","Stop voice recognition")}}catch{Je("system")}},Je=(l="user")=>{if(Dt){if(Dt=!1,en&&(clearTimeout(en),en=null),Ht){try{Ht.stop()}catch{}Ht=null}if(Ye.active=!1,_n(l),Qt(),j){if(j.classList.remove("tvw-voice-recording"),B){j.style.backgroundColor=B.backgroundColor,j.style.color=B.color,j.style.borderColor=B.borderColor;let u=j.querySelector("svg");u&&u.setAttribute("stroke",B.color||"currentColor"),B=null}j.setAttribute("aria-label","Start voice recognition")}}},Ct=(l,u)=>{var we,Xe,Le,mt,It,K,je;if(!(typeof window!="undefined"&&(typeof window.webkitSpeechRecognition!="undefined"||typeof window.SpeechRecognition!="undefined")))return null;let I=p("div","tvw-send-button-wrapper"),E=p("button","tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer");E.type="button",E.setAttribute("aria-label","Start voice recognition");let q=(we=l==null?void 0:l.iconName)!=null?we:"mic",be=(Xe=u==null?void 0:u.size)!=null?Xe:"40px",le=(Le=l==null?void 0:l.iconSize)!=null?Le:be,Te=parseFloat(le)||24,Be=(mt=l==null?void 0:l.backgroundColor)!=null?mt:u==null?void 0:u.backgroundColor,Re=(It=l==null?void 0:l.iconColor)!=null?It:u==null?void 0:u.textColor;E.style.width=le,E.style.height=le,E.style.minWidth=le,E.style.minHeight=le,E.style.fontSize="18px",E.style.lineHeight="1";let De=Re||"currentColor",ne=oe(q,Te,De,1.5);ne?(E.appendChild(ne),E.style.color=De):(E.textContent="\u{1F3A4}",E.style.color=De),Be?E.style.backgroundColor=Be:E.classList.add("tvw-bg-cw-primary"),Re?E.style.color=Re:!Re&&!(u!=null&&u.textColor)&&E.classList.add("tvw-text-white"),l!=null&&l.borderWidth&&(E.style.borderWidth=l.borderWidth,E.style.borderStyle="solid"),l!=null&&l.borderColor&&(E.style.borderColor=l.borderColor),l!=null&&l.paddingX&&(E.style.paddingLeft=l.paddingX,E.style.paddingRight=l.paddingX),l!=null&&l.paddingY&&(E.style.paddingTop=l.paddingY,E.style.paddingBottom=l.paddingY),I.appendChild(E);let H=(K=l==null?void 0:l.tooltipText)!=null?K:"Start voice recognition";if(((je=l==null?void 0:l.showTooltip)!=null?je:!1)&&H){let Kt=p("div","tvw-send-button-tooltip");Kt.textContent=H,I.appendChild(Kt)}return{micButton:E,micButtonWrapper:I}},xt=()=>{if(Dt){let l=pe.value.trim();Ye.manuallyDeactivated=!0,Qt(),Je("user"),l&&(pe.value="",pe.style.height="auto",$.sendMessage(l))}else Ye.manuallyDeactivated=!1,Qt(),He("user")};j&&(j.addEventListener("click",xt),pt.push(()=>{Je("system"),j&&j.removeEventListener("click",xt)}));let st=s.on("assistant:complete",()=>{jn&&(Ye.active||Ye.manuallyDeactivated||jn==="assistant"&&!Ye.lastUserMessageWasVoice||setTimeout(()=>{!Ye.active&&!Ye.manuallyDeactivated&&He("auto")},600))});pt.push(st);let y=s.on("action:resubmit",()=>{setTimeout(()=>{$&&!$.isStreaming()&&$.continueConversation()},100)});pt.push(y);let Oe=()=>{nt(!f,"user")},k=null,h=null;if(b){let l=o.find(u=>u.renderLauncher);if(l!=null&&l.renderLauncher){let u=l.renderLauncher({config:t,defaultRenderer:()=>es(t,Oe).element,onToggle:Oe});u&&(h=u)}h||(k=es(t,Oe))}k?e.appendChild(k.element):h&&e.appendChild(h),pn(),rn.render(t.suggestionChips,$,pe,void 0,t.suggestionChipsConfig),zn(),Tn($.isStreaming()),cn(!0),ds();let M=()=>{var S,I,E,q,be,le,Te,Be;let l=(I=(S=t.launcher)==null?void 0:S.sidebarMode)!=null?I:!1,u=l||((q=(E=t.launcher)==null?void 0:E.fullHeight)!=null?q:!1);if(!b){ye.style.height="",ye.style.width="";return}if(!l){let Re=(le=(be=t==null?void 0:t.launcher)==null?void 0:be.width)!=null?le:t==null?void 0:t.launcherWidth,De=Re!=null?Re:"min(400px, calc(100vw - 24px))";ye.style.width=De,ye.style.maxWidth=De}if(!u){let Re=window.innerHeight,De=64,ne=(Be=(Te=t.launcher)==null?void 0:Te.heightOffset)!=null?Be:0,H=Math.max(200,Re-De),he=Math.min(640,H),we=Math.max(200,he-ne);ye.style.height=`${we}px`}};M(),window.addEventListener("resize",M),pt.push(()=>window.removeEventListener("resize",M)),dn=Pe.scrollTop;let ae=()=>{let l=Pe.scrollTop,u=Pe.scrollHeight,S=Pe.clientHeight,I=u-l-S,E=Math.abs(l-dn);if(dn=l,!An&&!(E<=ls)){if(!Vt&&I<Dn){Gt=!1,Vt=!0;return}Vt&&I>Dn&&(Gt=!0,Sn=Date.now()+as,Vt=!1)}};Pe.addEventListener("scroll",ae,{passive:!0}),pt.push(()=>Pe.removeEventListener("scroll",ae)),pt.push(()=>{Xt&&cancelAnimationFrame(Xt)});let Ze=()=>{V&&(Jt&&(V.removeEventListener("click",Jt),Jt=null),b?(V.style.display="",Jt=()=>{f=!1,pn()},V.addEventListener("click",Jt)):V.style.display="none")};Ze(),(()=>{let{clearChatButton:l}=ee;l&&l.addEventListener("click",()=>{$.clearMessages();try{localStorage.removeItem($n),t.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${$n}`)}catch(S){console.error("[AgentWidget] Failed to clear default localStorage:",S)}if(t.clearChatHistoryStorageKey&&t.clearChatHistoryStorageKey!==$n)try{localStorage.removeItem(t.clearChatHistoryStorageKey),t.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${t.clearChatHistoryStorageKey}`)}catch(S){console.error("[AgentWidget] Failed to clear custom localStorage:",S)}let u=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});if(window.dispatchEvent(u),i!=null&&i.clear)try{let S=i.clear();S instanceof Promise&&S.catch(I=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to clear storage adapter:",I)})}catch(S){typeof console!="undefined"&&console.error("[AgentWidget] Failed to clear storage adapter:",S)}a={},C.syncFromMetadata(),D==null||D.clear(),Z==null||Z.update()})})(),ut.addEventListener("submit",Un),pe.addEventListener("keydown",Jn),pt.push(()=>{ut.removeEventListener("submit",Un),pe.removeEventListener("keydown",Jn)}),pt.push(()=>{$.cancel()}),k?pt.push(()=>{k==null||k.destroy()}):h&&pt.push(()=>{h==null||h.remove()});let Ve={update(l){var Nr,Dr,jr,_r,qr,zr,Ur,Jr,Kr,Yr,Vr,Xr,Gr,Qr,Zr,eo,to,no,so,ro,oo,io,ao,lo,co,uo,po,go,mo,ho,fo,wo,vo,yo,bo,Co,xo,So,Ao,Eo,To,Mo,Lo,ko,Wo,Io,Po,Ho,Bo,Ro,Fo,$o,Oo,No,Do,jo,_o,qo,zo,Uo,Jo,Ko,Yo,Vo,Xo,Go,Qo,Zo,ei,ti,ni,si,ri,oi,ii,ai,li,di,ci,ui,pi,gi,mi,hi,fi,wi;let u=t.toolCall,S=t.colorScheme;t={...t,...l},it(),Ls(e,t),t.colorScheme!==S&&On();let I=ss.getForInstance(t.plugins);o.length=0,o.push(...I),b=(Dr=(Nr=t.launcher)==null?void 0:Nr.enabled)!=null?Dr:!0,A=(_r=(jr=t.launcher)==null?void 0:jr.autoExpand)!=null?_r:!1,O=(zr=(qr=t.features)==null?void 0:qr.showReasoning)!=null?zr:!0,se=(Jr=(Ur=t.features)==null?void 0:Ur.showToolCalls)!=null?Jr:!0;let E=G;if(G=(Yr=(Kr=t.features)==null?void 0:Kr.showEventStreamToggle)!=null?Yr:!1,G&&!E){if(D||(N=new ns(ve),D=new ts(re,N),N.open().then(()=>D==null?void 0:D.restore()).catch(()=>{}),$.setSSEEventCallback((L,Ce)=>{D.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:L,timestamp:Date.now(),payload:JSON.stringify(Ce)})})),!_&&Q){let L=(Xr=(Vr=t.features)==null?void 0:Vr.eventStream)==null?void 0:Xr.classNames,Ce="tvw-inline-flex tvw-items-center tvw-justify-center tvw-rounded-full tvw-text-cw-muted hover:tvw-bg-gray-100 tvw-cursor-pointer tvw-border-none tvw-bg-transparent tvw-p-1"+(L!=null&&L.toggleButton?" "+L.toggleButton:"");_=p("button",Ce),_.style.width="28px",_.style.height="28px",_.type="button",_.setAttribute("aria-label","Event Stream"),_.title="Event Stream";let Ge=oe("activity","18px","currentColor",1.5);Ge&&_.appendChild(Ge);let me=ee.clearChatButtonWrapper,We=ee.closeButtonWrapper,ht=me||We;ht&&ht.parentNode===Q?Q.insertBefore(_,ht):Q.appendChild(_),_.addEventListener("click",()=>{fe?$e():xe()})}}else!G&&E&&($e(),_&&(_.remove(),_=null),D==null||D.clear(),N==null||N.destroy(),D=null,N=null);if(((Gr=t.launcher)==null?void 0:Gr.enabled)===!1&&k&&(k.destroy(),k=null),((Qr=t.launcher)==null?void 0:Qr.enabled)===!1&&h&&(h.remove(),h=null),((Zr=t.launcher)==null?void 0:Zr.enabled)!==!1&&!k&&!h){let L=o.find(Ce=>Ce.renderLauncher);if(L!=null&&L.renderLauncher){let Ce=L.renderLauncher({config:t,defaultRenderer:()=>es(t,Oe).element,onToggle:Oe});Ce&&(h=Ce,e.appendChild(h))}h||(k=es(t,Oe),e.appendChild(k.element))}k&&k.update(t),vt&&((eo=t.launcher)==null?void 0:eo.title)!==void 0&&(vt.textContent=t.launcher.title),yt&&((to=t.launcher)==null?void 0:to.subtitle)!==void 0&&(yt.textContent=t.launcher.subtitle);let q=(no=t.layout)==null?void 0:no.header;if((q==null?void 0:q.layout)!==Y&&Q){let L=q?kn(t,q,{showClose:b,onClose:()=>nt(!1,"user")}):nn({config:t,showClose:b,onClose:()=>nt(!1,"user")});Q.replaceWith(L.header),Q=L.header,Me=L.iconHolder,vt=L.headerTitle,yt=L.headerSubtitle,V=L.closeButton,Y=q==null?void 0:q.layout}else if(q&&(Me&&(Me.style.display=q.showIcon===!1?"none":""),vt&&(vt.style.display=q.showTitle===!1?"none":""),yt&&(yt.style.display=q.showSubtitle===!1?"none":""),V&&(V.style.display=q.showCloseButton===!1?"none":""),ee.clearChatButtonWrapper)){let L=q.showClearChat;if(L!==void 0){ee.clearChatButtonWrapper.style.display=L?"":"none";let{closeButtonWrapper:Ce}=ee;Ce&&!Ce.classList.contains("tvw-absolute")&&(L?Ce.classList.remove("tvw-ml-auto"):Ce.classList.add("tvw-ml-auto"))}}let le=((so=t.layout)==null?void 0:so.showHeader)!==!1;Q&&(Q.style.display=le?"":"none");let Te=((ro=t.layout)==null?void 0:ro.showFooter)!==!1;Fe&&(Fe.style.display=Te?"":"none"),b!==W?b?nt(A,"auto"):(f=!0,pn()):A!==x&&nt(A,"auto"),x=A,W=b,M(),Ze(),JSON.stringify(l.toolCall)!==JSON.stringify(u)&&$&&un(tt,$.getMessages(),X);let ne=(oo=t.launcher)!=null?oo:{},H=(io=ne.headerIconHidden)!=null?io:!1,he=(lo=(ao=t.layout)==null?void 0:ao.header)==null?void 0:lo.showIcon,we=H||he===!1,Xe=ne.headerIconName,Le=(co=ne.headerIconSize)!=null?co:"48px";if(Me){let L=ue.querySelector(".tvw-border-b-cw-divider"),Ce=L==null?void 0:L.querySelector(".tvw-flex-col");if(we)Me.style.display="none",L&&Ce&&!L.contains(Ce)&&L.insertBefore(Ce,L.firstChild);else{if(Me.style.display="",Me.style.height=Le,Me.style.width=Le,L&&Ce&&(L.contains(Me)?Me.nextSibling!==Ce&&(Me.remove(),L.insertBefore(Me,Ce)):L.insertBefore(Me,Ce)),Xe){let me=parseFloat(Le)||24,We=oe(Xe,me*.6,"#ffffff",2);We?Me.replaceChildren(We):Me.textContent=(uo=ne.agentIconText)!=null?uo:"\u{1F4AC}"}else if(ne.iconUrl){let me=Me.querySelector("img");if(me)me.src=ne.iconUrl,me.style.height=Le,me.style.width=Le;else{let We=document.createElement("img");We.src=ne.iconUrl,We.alt="",We.className="tvw-rounded-xl tvw-object-cover",We.style.height=Le,We.style.width=Le,Me.replaceChildren(We)}}else{let me=Me.querySelector("svg"),We=Me.querySelector("img");(me||We)&&Me.replaceChildren(),Me.textContent=(po=ne.agentIconText)!=null?po:"\u{1F4AC}"}let Ge=Me.querySelector("img");Ge&&(Ge.style.height=Le,Ge.style.width=Le)}}let mt=(mo=(go=t.layout)==null?void 0:go.header)==null?void 0:mo.showTitle,It=(fo=(ho=t.layout)==null?void 0:ho.header)==null?void 0:fo.showSubtitle;if(vt&&(vt.style.display=mt===!1?"none":""),yt&&(yt.style.display=It===!1?"none":""),V){((vo=(wo=t.layout)==null?void 0:wo.header)==null?void 0:vo.showCloseButton)===!1?V.style.display="none":V.style.display="";let Ce=(yo=ne.closeButtonSize)!=null?yo:"32px",Ge=(bo=ne.closeButtonPlacement)!=null?bo:"inline";V.style.height=Ce,V.style.width=Ce;let{closeButtonWrapper:me}=ee,We=Ge==="top-right",ht=me==null?void 0:me.classList.contains("tvw-absolute");if(me&&We!==ht)if(me.remove(),We)me.className="tvw-absolute tvw-top-4 tvw-right-4 tvw-z-50",ue.style.position="relative",ue.appendChild(me);else{let Se=(xo=(Co=ne.clearChat)==null?void 0:Co.placement)!=null?xo:"inline",At=(Ao=(So=ne.clearChat)==null?void 0:So.enabled)!=null?Ao:!0;me.className=At&&Se==="inline"?"":"tvw-ml-auto";let Ft=ue.querySelector(".tvw-border-b-cw-divider");Ft&&Ft.appendChild(me)}if(ne.closeButtonColor?(V.style.color=ne.closeButtonColor,V.classList.remove("tvw-text-cw-muted")):(V.style.color="",V.classList.add("tvw-text-cw-muted")),ne.closeButtonBackgroundColor?(V.style.backgroundColor=ne.closeButtonBackgroundColor,V.classList.remove("hover:tvw-bg-gray-100")):(V.style.backgroundColor="",V.classList.add("hover:tvw-bg-gray-100")),ne.closeButtonBorderWidth||ne.closeButtonBorderColor){let Se=ne.closeButtonBorderWidth||"0px",At=ne.closeButtonBorderColor||"transparent";V.style.border=`${Se} solid ${At}`,V.classList.remove("tvw-border-none")}else V.style.border="",V.classList.add("tvw-border-none");ne.closeButtonBorderRadius?(V.style.borderRadius=ne.closeButtonBorderRadius,V.classList.remove("tvw-rounded-full")):(V.style.borderRadius="",V.classList.add("tvw-rounded-full")),ne.closeButtonPaddingX?(V.style.paddingLeft=ne.closeButtonPaddingX,V.style.paddingRight=ne.closeButtonPaddingX):(V.style.paddingLeft="",V.style.paddingRight=""),ne.closeButtonPaddingY?(V.style.paddingTop=ne.closeButtonPaddingY,V.style.paddingBottom=ne.closeButtonPaddingY):(V.style.paddingTop="",V.style.paddingBottom="");let kt=(Eo=ne.closeButtonIconName)!=null?Eo:"x",jt=(To=ne.closeButtonIconText)!=null?To:"\xD7";V.innerHTML="";let Bt=oe(kt,"20px",ne.closeButtonColor||"",2);Bt?V.appendChild(Bt):V.textContent=jt;let ot=(Mo=ne.closeButtonTooltipText)!=null?Mo:"Close chat",_t=(Lo=ne.closeButtonShowTooltip)!=null?Lo:!0;if(V.setAttribute("aria-label",ot),me&&(me._cleanupTooltip&&(me._cleanupTooltip(),delete me._cleanupTooltip),_t&&ot)){let Se=null,At=()=>{if(Se||!V)return;Se=p("div","tvw-clear-chat-tooltip"),Se.textContent=ot;let Gn=p("div");Gn.className="tvw-clear-chat-tooltip-arrow",Se.appendChild(Gn);let hn=V.getBoundingClientRect();Se.style.position="fixed",Se.style.left=`${hn.left+hn.width/2}px`,Se.style.top=`${hn.top-8}px`,Se.style.transform="translate(-50%, -100%)",document.body.appendChild(Se)},Ft=()=>{Se&&Se.parentNode&&(Se.parentNode.removeChild(Se),Se=null)};me.addEventListener("mouseenter",At),me.addEventListener("mouseleave",Ft),V.addEventListener("focus",At),V.addEventListener("blur",Ft),me._cleanupTooltip=()=>{Ft(),me&&(me.removeEventListener("mouseenter",At),me.removeEventListener("mouseleave",Ft)),V&&(V.removeEventListener("focus",At),V.removeEventListener("blur",Ft))}}}let{clearChatButton:K,clearChatButtonWrapper:je}=ee;if(K){let L=(ko=ne.clearChat)!=null?ko:{},Ce=(Wo=L.enabled)!=null?Wo:!0,Ge=(Po=(Io=t.layout)==null?void 0:Io.header)==null?void 0:Po.showClearChat,me=Ge!==void 0?Ge:Ce,We=(Ho=L.placement)!=null?Ho:"inline";if(je){je.style.display=me?"":"none";let{closeButtonWrapper:ht}=ee;ht&&!ht.classList.contains("tvw-absolute")&&(me?ht.classList.remove("tvw-ml-auto"):ht.classList.add("tvw-ml-auto"));let kt=We==="top-right",jt=je.classList.contains("tvw-absolute");if(kt!==jt&&me){if(je.remove(),kt)je.className="tvw-absolute tvw-top-4 tvw-z-50",je.style.right="48px",ue.style.position="relative",ue.appendChild(je);else{je.className="tvw-relative tvw-ml-auto tvw-clear-chat-button-wrapper",je.style.right="";let ot=ue.querySelector(".tvw-border-b-cw-divider"),_t=ee.closeButtonWrapper;ot&&_t&&_t.parentElement===ot?ot.insertBefore(je,_t):ot&&ot.appendChild(je)}let Bt=ee.closeButtonWrapper;Bt&&!Bt.classList.contains("tvw-absolute")&&(kt?Bt.classList.add("tvw-ml-auto"):Bt.classList.remove("tvw-ml-auto"))}}if(me){let ht=(Bo=L.size)!=null?Bo:"32px";K.style.height=ht,K.style.width=ht;let kt=(Ro=L.iconName)!=null?Ro:"refresh-cw",jt=(Fo=L.iconColor)!=null?Fo:"";K.innerHTML="";let Bt=oe(kt,"20px",jt||"",2);if(Bt&&K.appendChild(Bt),jt?(K.style.color=jt,K.classList.remove("tvw-text-cw-muted")):(K.style.color="",K.classList.add("tvw-text-cw-muted")),L.backgroundColor?(K.style.backgroundColor=L.backgroundColor,K.classList.remove("hover:tvw-bg-gray-100")):(K.style.backgroundColor="",K.classList.add("hover:tvw-bg-gray-100")),L.borderWidth||L.borderColor){let Se=L.borderWidth||"0px",At=L.borderColor||"transparent";K.style.border=`${Se} solid ${At}`,K.classList.remove("tvw-border-none")}else K.style.border="",K.classList.add("tvw-border-none");L.borderRadius?(K.style.borderRadius=L.borderRadius,K.classList.remove("tvw-rounded-full")):(K.style.borderRadius="",K.classList.add("tvw-rounded-full")),L.paddingX?(K.style.paddingLeft=L.paddingX,K.style.paddingRight=L.paddingX):(K.style.paddingLeft="",K.style.paddingRight=""),L.paddingY?(K.style.paddingTop=L.paddingY,K.style.paddingBottom=L.paddingY):(K.style.paddingTop="",K.style.paddingBottom="");let ot=($o=L.tooltipText)!=null?$o:"Clear chat",_t=(Oo=L.showTooltip)!=null?Oo:!0;if(K.setAttribute("aria-label",ot),je&&(je._cleanupTooltip&&(je._cleanupTooltip(),delete je._cleanupTooltip),_t&&ot)){let Se=null,At=()=>{if(Se||!K)return;Se=p("div","tvw-clear-chat-tooltip"),Se.textContent=ot;let Gn=p("div");Gn.className="tvw-clear-chat-tooltip-arrow",Se.appendChild(Gn);let hn=K.getBoundingClientRect();Se.style.position="fixed",Se.style.left=`${hn.left+hn.width/2}px`,Se.style.top=`${hn.top-8}px`,Se.style.transform="translate(-50%, -100%)",document.body.appendChild(Se)},Ft=()=>{Se&&Se.parentNode&&(Se.parentNode.removeChild(Se),Se=null)};je.addEventListener("mouseenter",At),je.addEventListener("mouseleave",Ft),K.addEventListener("focus",At),K.addEventListener("blur",Ft),je._cleanupTooltip=()=>{Ft(),je&&(je.removeEventListener("mouseenter",At),je.removeEventListener("mouseleave",Ft)),K&&(K.removeEventListener("focus",At),K.removeEventListener("blur",Ft))}}}}let Kt=t.actionParsers&&t.actionParsers.length?t.actionParsers:[rs],zt=t.actionHandlers&&t.actionHandlers.length?t.actionHandlers:[Cn.message,Cn.messageAndClick];C=os({parsers:Kt,handlers:zt,getSessionMetadata:v,updateSessionMetadata:c,emit:s.emit,documentRef:typeof document!="undefined"?document:null}),X=ra(t,C,P),$.updateConfig(t),un(tt,$.getMessages(),X),rn.render(t.suggestionChips,$,pe,void 0,t.suggestionChipsConfig),zn(),Tn($.isStreaming());let an=((No=t.voiceRecognition)==null?void 0:No.enabled)===!0,ms=typeof window!="undefined"&&(typeof window.webkitSpeechRecognition!="undefined"||typeof window.SpeechRecognition!="undefined");if(an&&ms)if(!j||!Qe){let L=Ct(t.voiceRecognition,t.sendButton);L&&(j=L.micButton,Qe=L.micButtonWrapper,Lt.insertBefore(Qe,ct),j.addEventListener("click",xt),j.disabled=$.isStreaming())}else{let L=(Do=t.voiceRecognition)!=null?Do:{},Ce=(jo=t.sendButton)!=null?jo:{},Ge=(_o=L.iconName)!=null?_o:"mic",me=(qo=Ce.size)!=null?qo:"40px",We=(zo=L.iconSize)!=null?zo:me,ht=parseFloat(We)||24;j.style.width=We,j.style.height=We,j.style.minWidth=We,j.style.minHeight=We;let kt=(Jo=(Uo=L.iconColor)!=null?Uo:Ce.textColor)!=null?Jo:"currentColor";j.innerHTML="";let jt=oe(Ge,ht,kt,2);jt?j.appendChild(jt):j.textContent="\u{1F3A4}";let Bt=(Ko=L.backgroundColor)!=null?Ko:Ce.backgroundColor;Bt?(j.style.backgroundColor=Bt,j.classList.remove("tvw-bg-cw-primary")):(j.style.backgroundColor="",j.classList.add("tvw-bg-cw-primary")),kt?(j.style.color=kt,j.classList.remove("tvw-text-white")):!kt&&!Ce.textColor&&(j.style.color="",j.classList.add("tvw-text-white")),L.borderWidth?(j.style.borderWidth=L.borderWidth,j.style.borderStyle="solid"):(j.style.borderWidth="",j.style.borderStyle=""),L.borderColor?j.style.borderColor=L.borderColor:j.style.borderColor="",L.paddingX?(j.style.paddingLeft=L.paddingX,j.style.paddingRight=L.paddingX):(j.style.paddingLeft="",j.style.paddingRight=""),L.paddingY?(j.style.paddingTop=L.paddingY,j.style.paddingBottom=L.paddingY):(j.style.paddingTop="",j.style.paddingBottom="");let ot=Qe==null?void 0:Qe.querySelector(".tvw-send-button-tooltip"),_t=(Yo=L.tooltipText)!=null?Yo:"Start voice recognition";if(((Vo=L.showTooltip)!=null?Vo:!1)&&_t)if(ot)ot.textContent=_t,ot.style.display="";else{let At=document.createElement("div");At.className="tvw-send-button-tooltip",At.textContent=_t,Qe==null||Qe.insertBefore(At,j)}else ot&&(ot.style.display="none");Qe.style.display="",j.disabled=$.isStreaming()}else j&&Qe&&(Qe.style.display="none",Dt&&Je());if(((Xo=t.attachments)==null?void 0:Xo.enabled)===!0)if(!z||!Ae){let L=(Go=t.attachments)!=null?Go:{},Ge=(Zo=((Qo=t.sendButton)!=null?Qo:{}).size)!=null?Zo:"40px";ge||(ge=p("div","tvw-attachment-previews tvw-flex tvw-flex-wrap tvw-gap-2 tvw-mb-2"),ge.style.display="none",ut.insertBefore(ge,pe)),F||(F=document.createElement("input"),F.type="file",F.accept=((ei=L.allowedTypes)!=null?ei:ln).join(","),F.multiple=((ti=L.maxFiles)!=null?ti:4)>1,F.style.display="none",F.setAttribute("aria-label","Attach files"),ut.insertBefore(F,pe)),z=p("div","tvw-send-button-wrapper"),Ae=p("button","tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer tvw-attachment-button"),Ae.type="button",Ae.setAttribute("aria-label",(ni=L.buttonTooltipText)!=null?ni:"Attach file");let me=(si=L.buttonIconName)!=null?si:"paperclip",We=Ge,ht=parseFloat(We)||40,kt=Math.round(ht*.6);Ae.style.width=We,Ae.style.height=We,Ae.style.minWidth=We,Ae.style.minHeight=We,Ae.style.fontSize="18px",Ae.style.lineHeight="1",Ae.style.backgroundColor="transparent",Ae.style.color="var(--cw-primary, #111827)",Ae.style.border="none",Ae.style.borderRadius="6px",Ae.style.transition="background-color 0.15s ease",Ae.addEventListener("mouseenter",()=>{Ae.style.backgroundColor="rgba(0, 0, 0, 0.05)"}),Ae.addEventListener("mouseleave",()=>{Ae.style.backgroundColor="transparent"});let jt=oe(me,kt,"currentColor",1.5);jt?Ae.appendChild(jt):Ae.textContent="\u{1F4CE}",Ae.addEventListener("click",_t=>{_t.preventDefault(),F==null||F.click()}),z.appendChild(Ae);let Bt=(ri=L.buttonTooltipText)!=null?ri:"Attach file",ot=p("div","tvw-send-button-tooltip");ot.textContent=Bt,z.appendChild(ot),Wt.append(z),!de&&F&&ge&&(de=vn.fromConfig(L),de.setPreviewsContainer(ge),F.addEventListener("change",async()=>{de&&(F!=null&&F.files)&&(await de.handleFileSelect(F.files),F.value="")}))}else{z.style.display="";let L=(oi=t.attachments)!=null?oi:{};F&&(F.accept=((ii=L.allowedTypes)!=null?ii:ln).join(","),F.multiple=((ai=L.maxFiles)!=null?ai:4)>1),de&&de.updateConfig({allowedTypes:L.allowedTypes,maxFileSize:L.maxFileSize,maxFiles:L.maxFiles})}else z&&(z.style.display="none"),de&&de.clearAttachments();let dt=(li=t.sendButton)!=null?li:{},hs=(di=dt.useIcon)!=null?di:!1,Kn=(ci=dt.iconText)!=null?ci:"\u2191",gn=dt.iconName,mn=(ui=dt.tooltipText)!=null?ui:"Send message",ga=(pi=dt.showTooltip)!=null?pi:!1,Yn=(gi=dt.size)!=null?gi:"40px",fs=dt.backgroundColor,Yt=dt.textColor;if(hs){if(J.style.width=Yn,J.style.height=Yn,J.style.minWidth=Yn,J.style.minHeight=Yn,J.style.fontSize="18px",J.style.lineHeight="1",J.innerHTML="",gn){let L=parseFloat(Yn)||24,Ce=Yt&&typeof Yt=="string"&&Yt.trim()?Yt.trim():"currentColor",Ge=oe(gn,L,Ce,2);Ge?(J.appendChild(Ge),J.style.color=Ce):(J.textContent=Kn,Yt?J.style.color=Yt:J.classList.add("tvw-text-white"))}else J.textContent=Kn,Yt?J.style.color=Yt:J.classList.add("tvw-text-white");J.className="tvw-rounded-button tvw-flex tvw-items-center tvw-justify-center disabled:tvw-opacity-50 tvw-cursor-pointer",fs?(J.style.backgroundColor=fs,J.classList.remove("tvw-bg-cw-primary")):J.classList.add("tvw-bg-cw-primary")}else J.textContent=(hi=(mi=t.copy)==null?void 0:mi.sendButtonLabel)!=null?hi:"Send",J.style.width="",J.style.height="",J.style.minWidth="",J.style.minHeight="",J.style.fontSize="",J.style.lineHeight="",J.className="tvw-rounded-button tvw-bg-cw-accent tvw-px-4 tvw-py-2 tvw-text-sm tvw-font-semibold tvw-text-white disabled:tvw-opacity-50 tvw-cursor-pointer",fs?(J.style.backgroundColor=fs,J.classList.remove("tvw-bg-cw-accent")):J.classList.add("tvw-bg-cw-accent"),Yt?J.style.color=Yt:J.classList.add("tvw-text-white");dt.borderWidth?(J.style.borderWidth=dt.borderWidth,J.style.borderStyle="solid"):(J.style.borderWidth="",J.style.borderStyle=""),dt.borderColor?J.style.borderColor=dt.borderColor:J.style.borderColor="",dt.paddingX?(J.style.paddingLeft=dt.paddingX,J.style.paddingRight=dt.paddingX):(J.style.paddingLeft="",J.style.paddingRight=""),dt.paddingY?(J.style.paddingTop=dt.paddingY,J.style.paddingBottom=dt.paddingY):(J.style.paddingTop="",J.style.paddingBottom="");let Vn=ct==null?void 0:ct.querySelector(".tvw-send-button-tooltip");if(ga&&mn)if(Vn)Vn.textContent=mn,Vn.style.display="";else{let L=document.createElement("div");L.className="tvw-send-button-tooltip",L.textContent=mn,ct==null||ct.insertBefore(L,J)}else Vn&&(Vn.style.display="none");let Xn=(fi=t.statusIndicator)!=null?fi:{},ma=(wi=Xn.visible)!=null?wi:!0;if(ft.style.display=ma?"":"none",$){let L=$.getStatus(),Ce=Ge=>{var me,We,ht,kt;return Ge==="idle"?(me=Xn.idleText)!=null?me:Pt.idle:Ge==="connecting"?(We=Xn.connectingText)!=null?We:Pt.connecting:Ge==="connected"?(ht=Xn.connectedText)!=null?ht:Pt.connected:Ge==="error"?(kt=Xn.errorText)!=null?kt:Pt.error:Pt[Ge]};ft.textContent=Ce(L)}},open(){b&&nt(!0,"api")},close(){b&&nt(!1,"api")},toggle(){b&&nt(!f,"api")},clearChat(){$.clearMessages();try{localStorage.removeItem($n),t.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${$n}`)}catch(u){console.error("[AgentWidget] Failed to clear default localStorage:",u)}if(t.clearChatHistoryStorageKey&&t.clearChatHistoryStorageKey!==$n)try{localStorage.removeItem(t.clearChatHistoryStorageKey),t.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${t.clearChatHistoryStorageKey}`)}catch(u){console.error("[AgentWidget] Failed to clear custom localStorage:",u)}let l=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});if(window.dispatchEvent(l),i!=null&&i.clear)try{let u=i.clear();u instanceof Promise&&u.catch(S=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to clear storage adapter:",S)})}catch(u){typeof console!="undefined"&&console.error("[AgentWidget] Failed to clear storage adapter:",u)}a={},C.syncFromMetadata(),D==null||D.clear(),Z==null||Z.update()},setMessage(l){return!pe||$.isStreaming()?!1:(!f&&b&&nt(!0,"system"),pe.value=l,pe.dispatchEvent(new Event("input",{bubbles:!0})),!0)},submitMessage(l){if($.isStreaming())return!1;let u=(l==null?void 0:l.trim())||pe.value.trim();return u?(!f&&b&&nt(!0,"system"),pe.value="",pe.style.height="auto",$.sendMessage(u),!0):!1},startVoiceRecognition(){return Dt||$.isStreaming()||!Ee()?!1:(!f&&b&&nt(!0,"system"),Ye.manuallyDeactivated=!1,Qt(),He("user"),!0)},stopVoiceRecognition(){return Dt?(Ye.manuallyDeactivated=!0,Qt(),Je("user"),!0):!1},injectMessage(l){return!f&&b&&nt(!0,"system"),$.injectMessage(l)},injectAssistantMessage(l){!f&&b&&nt(!0,"system");let u=$.injectAssistantMessage(l);return R&&(R=!1,T&&(clearTimeout(T),T=null),setTimeout(()=>{$&&!$.isStreaming()&&$.continueConversation()},100)),u},injectUserMessage(l){return!f&&b&&nt(!0,"system"),$.injectUserMessage(l)},injectSystemMessage(l){return!f&&b&&nt(!0,"system"),$.injectSystemMessage(l)},injectMessageBatch(l){return!f&&b&&nt(!0,"system"),$.injectMessageBatch(l)},injectTestMessage(l){!f&&b&&nt(!0,"system"),$.injectTestEvent(l)},__pushEventStreamEvent(l){D&&D.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:l.type,timestamp:Date.now(),payload:JSON.stringify(l.payload)})},showEventStream(){!G||!D||xe()},hideEventStream(){fe&&$e()},isEventStreamVisible(){return fe},getMessages(){return $.getMessages()},getStatus(){return $.getStatus()},getPersistentMetadata(){return{...a}},updatePersistentMetadata(l){c(l)},on(l,u){return s.on(l,u)},off(l,u){s.off(l,u)},isOpen(){return b&&f},isVoiceActive(){return Ye.active},getState(){return{open:b&&f,launcherEnabled:b,voiceActive:Ye.active,streaming:$.isStreaming()}},showCSATFeedback(l){!f&&b&&nt(!0,"system");let u=tt.querySelector(".tvw-feedback-container");u&&u.remove();let S=Fs({onSubmit:async(I,E)=>{var q;$.isClientTokenMode()&&await $.submitCSATFeedback(I,E),(q=l==null?void 0:l.onSubmit)==null||q.call(l,I,E)},onDismiss:l==null?void 0:l.onDismiss,...l});tt.appendChild(S),S.scrollIntoView({behavior:"smooth",block:"end"})},showNPSFeedback(l){!f&&b&&nt(!0,"system");let u=tt.querySelector(".tvw-feedback-container");u&&u.remove();let S=$s({onSubmit:async(I,E)=>{var q;$.isClientTokenMode()&&await $.submitNPSFeedback(I,E),(q=l==null?void 0:l.onSubmit)==null||q.call(l,I,E)},onDismiss:l==null?void 0:l.onDismiss,...l});tt.appendChild(S),S.scrollIntoView({behavior:"smooth",block:"end"})},async submitCSATFeedback(l,u){return $.submitCSATFeedback(l,u)},async submitNPSFeedback(l,u){return $.submitNPSFeedback(l,u)},destroy(){pt.forEach(l=>l()),Ie.remove(),k==null||k.destroy(),h==null||h.remove(),Jt&&V.removeEventListener("click",Jt)}};if((((Hr=r==null?void 0:r.debugTools)!=null?Hr:!1)||!!t.debug)&&typeof window!="undefined"){let l=window.AgentWidgetBrowser,u={controller:Ve,getMessages:Ve.getMessages,getStatus:Ve.getStatus,getMetadata:Ve.getPersistentMetadata,updateMetadata:Ve.updatePersistentMetadata,clearHistory:()=>Ve.clearChat(),setVoiceActive:S=>S?Ve.startVoiceRecognition():Ve.stopVoiceRecognition()};window.AgentWidgetBrowser=u,pt.push(()=>{window.AgentWidgetBrowser===u&&(window.AgentWidgetBrowser=l)})}if(G&&typeof window!="undefined"){let l=e.getAttribute("data-persona-instance")||e.id||"persona-"+Math.random().toString(36).slice(2,8),u=I=>{let E=I.detail;(!(E!=null&&E.instanceId)||E.instanceId===l)&&Ve.showEventStream()},S=I=>{let E=I.detail;(!(E!=null&&E.instanceId)||E.instanceId===l)&&Ve.hideEventStream()};window.addEventListener("persona:showEventStream",u),window.addEventListener("persona:hideEventStream",S),pt.push(()=>{window.removeEventListener("persona:showEventStream",u),window.removeEventListener("persona:hideEventStream",S)})}let _e=il(t.persistState);if(_e&&b){let l=al(_e.storage),u=`${_e.keyPrefix}widget-open`,S=`${_e.keyPrefix}widget-voice`,I=`${_e.keyPrefix}widget-voice-mode`;if(l){let E=((Br=_e.persist)==null?void 0:Br.openState)&&l.getItem(u)==="true",q=((Rr=_e.persist)==null?void 0:Rr.voiceState)&&l.getItem(S)==="true",be=((Fr=_e.persist)==null?void 0:Fr.voiceState)&&l.getItem(I)==="true";if(E&&setTimeout(()=>{Ve.open(),setTimeout(()=>{var le;if(q||be)Ve.startVoiceRecognition();else if((le=_e.persist)!=null&&le.focusInput){let Te=e.querySelector("textarea");Te&&Te.focus()}},100)},0),($r=_e.persist)!=null&&$r.openState&&(s.on("widget:opened",()=>{l.setItem(u,"true")}),s.on("widget:closed",()=>{l.setItem(u,"false")})),(Or=_e.persist)!=null&&Or.voiceState&&(s.on("voice:state",le=>{l.setItem(S,le.active?"true":"false")}),s.on("user:message",le=>{l.setItem(I,le.viaVoice?"true":"false")})),_e.clearOnChatClear){let le=()=>{l.removeItem(u),l.removeItem(S),l.removeItem(I)},Te=()=>le();window.addEventListener("persona:clear-chat",Te),pt.push(()=>{window.removeEventListener("persona:clear-chat",Te)})}}}return Ve};var pr={},ll=e=>{if(typeof window=="undefined"||typeof document=="undefined")throw new Error("Chat widget can only be mounted in a browser environment");if(typeof e=="string"){let n=document.querySelector(e);if(!n)throw new Error(`Chat widget target "${e}" was not found`);return n}return e},dl=()=>{try{if(typeof pr!="undefined"&&pr.url)return new URL("../widget.css",pr.url).href}catch{}return null},oa=e=>{let n=dl(),r=()=>{if(!(e instanceof ShadowRoot)||e.querySelector("link[data-persona]"))return;let t=document.head.querySelector("link[data-persona]");if(!t)return;let o=t.cloneNode(!0);e.insertBefore(o,e.firstChild)};if(e instanceof ShadowRoot)if(n){let t=document.createElement("link");t.rel="stylesheet",t.href=n,t.setAttribute("data-persona","true"),e.insertBefore(t,e.firstChild)}else r();else if(!document.head.querySelector("link[data-persona]")&&n){let o=document.createElement("link");o.rel="stylesheet",o.href=n,o.setAttribute("data-persona","true"),document.head.appendChild(o)}},gr=e=>{var g,v,c,m;let n=ll(e.target),r=document.createElement("div");r.className="persona-host";let t=(c=(v=(g=e.config)==null?void 0:g.launcher)==null?void 0:v.enabled)!=null?c:!0;t||(r.style.height="100%"),n.appendChild(r);let o=e.useShadowDom===!0,s,i;if(o){let w=r.attachShadow({mode:"open"});i=w,s=document.createElement("div"),s.id="persona-root",t||(s.style.height="100%",s.style.display="flex",s.style.flexDirection="column",s.style.flex="1",s.style.minHeight="0"),w.appendChild(s),oa(w)}else i=r,s=document.createElement("div"),s.id="persona-root",t||(s.style.height="100%",s.style.display="flex",s.style.flexDirection="column",s.style.flex="1",s.style.minHeight="0"),r.appendChild(s),oa(r);n.id&&s.setAttribute("data-persona-instance",n.id);let a=Os(s,e.config,{debugTools:e.debugTools});(m=e.onReady)==null||m.call(e);let d={...a,host:r,destroy(){a.destroy(),r.remove(),e.windowKey&&typeof window!="undefined"&&delete window[e.windowKey]}};return e.windowKey&&typeof window!="undefined"&&(window[e.windowKey]=d),d};var ia={name:"@runtypelabs/persona",version:"1.43.0",description:"Themeable, plugable streaming agent widget for websites, in plain JS with support for voice input and reasoning / tool output.",type:"module",main:"dist/index.cjs",module:"dist/index.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js",require:"./dist/index.cjs"},"./widget.css":{import:"./widget.css",default:"./dist/widget.css"}},files:["dist","widget.css","src"],scripts:{build:"rimraf dist && npm run build:styles && npm run build:client && npm run build:installer","build:styles":`node -e "const fs=require('fs');fs.mkdirSync('dist',{recursive:true});fs.copyFileSync('src/styles/widget.css','dist/widget.css');"`,"build:client":'tsup src/index.ts --format esm,cjs,iife --global-name AgentWidget --minify --sourcemap --splitting false --dts --loader ".css=text"',"build:installer":"tsup src/install.ts --format iife --global-name SiteAgentInstaller --out-dir dist --minify --sourcemap --no-splitting",lint:"eslint . --ext .ts",typecheck:"tsc --noEmit",test:"vitest","test:ui":"vitest --ui","test:run":"vitest run"},dependencies:{idiomorph:"^0.7.4",lucide:"^0.552.0",marked:"^12.0.2","partial-json":"^0.1.7",zod:"^3.22.4"},devDependencies:{"@types/node":"^20.12.7","@typescript-eslint/eslint-plugin":"^7.0.0","@typescript-eslint/parser":"^7.0.0","@vitest/ui":"^4.0.9",eslint:"^8.57.0","eslint-config-prettier":"^9.1.0","fake-indexeddb":"^6.2.5",postcss:"^8.4.38",rimraf:"^5.0.5",tailwindcss:"^3.4.10",tsup:"^8.0.1",typescript:"^5.4.5",vitest:"^4.0.9"},engines:{node:">=18.17.0"},license:"MIT",keywords:["chat","widget","streaming","typescript","persona","agent"],repository:{type:"git",url:"git+https://github.com/runtypelabs/persona.git",directory:"packages/widget"},bugs:{url:"https://github.com/runtypelabs/persona/issues"},homepage:"https://github.com/runtypelabs/persona/tree/main/packages/widget#readme",publishConfig:{access:"public"}};var xn=ia.version;function sn(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(n=>n.toString()).join(", ")}]`:e.toString()}function ul(e){if(e)return{getHeaders:sn(e.getHeaders),onFeedback:sn(e.onFeedback),onCopy:sn(e.onCopy),requestMiddleware:sn(e.requestMiddleware),actionHandlers:sn(e.actionHandlers),actionParsers:sn(e.actionParsers),postprocessMessage:sn(e.postprocessMessage),contextProviders:sn(e.contextProviders),streamParser:sn(e.streamParser)}}var aa=`({ text, message }: any) => {
61
61
  const jsonSource = (message as any).rawContent || text || message.content;
62
62
  if (!jsonSource || typeof jsonSource !== 'string') return null;
63
63
  let cleanJson = jsonSource
@@ -70,7 +70,7 @@
70
70
  if (parsed.action) return { type: parsed.action, payload: parsed };
71
71
  } catch (e) { return null; }
72
72
  return null;
73
- }`,Li=`function(ctx) {
73
+ }`,la=`function(ctx) {
74
74
  var jsonSource = ctx.message.rawContent || ctx.text || ctx.message.content;
75
75
  if (!jsonSource || typeof jsonSource !== 'string') return null;
76
76
  var cleanJson = jsonSource
@@ -83,7 +83,7 @@
83
83
  if (parsed.action) return { type: parsed.action, payload: parsed };
84
84
  } catch (e) { return null; }
85
85
  return null;
86
- }`,ki=`(action: any, context: any) => {
86
+ }`,da=`(action: any, context: any) => {
87
87
  if (action.type !== 'nav_then_click') return;
88
88
  const payload = action.payload || action.raw || {};
89
89
  const url = payload?.page;
@@ -100,7 +100,7 @@
100
100
  const targetUrl = url.startsWith('http') ? url : new URL(url, window.location.origin).toString();
101
101
  window.location.href = targetUrl;
102
102
  return { handled: true, displayText: text };
103
- }`,Wi=`function(action, context) {
103
+ }`,ca=`function(action, context) {
104
104
  if (action.type !== 'nav_then_click') return;
105
105
  var payload = action.payload || action.raw || {};
106
106
  var url = payload.page;
@@ -117,24 +117,24 @@
117
117
  var targetUrl = url.startsWith('http') ? url : new URL(url, window.location.origin).toString();
118
118
  window.location.href = targetUrl;
119
119
  return { handled: true, displayText: text };
120
- }`,Ca=`(parsed: any) => {
120
+ }`,pl=`(parsed: any) => {
121
121
  if (!parsed || typeof parsed !== 'object') return null;
122
122
  if (parsed.action === 'nav_then_click') return 'Navigating...';
123
123
  if (parsed.action === 'message') return parsed.text || '';
124
124
  if (parsed.action === 'message_and_click') return parsed.text || 'Processing...';
125
125
  return parsed.text || null;
126
- }`,xa=`function(parsed) {
126
+ }`,gl=`function(parsed) {
127
127
  if (!parsed || typeof parsed !== 'object') return null;
128
128
  if (parsed.action === 'nav_then_click') return 'Navigating...';
129
129
  if (parsed.action === 'message') return parsed.text || '';
130
130
  if (parsed.action === 'message_and_click') return parsed.text || 'Processing...';
131
131
  return parsed.text || null;
132
- }`;function Sa(e){if(!e)return null;let n=e.toString();return n.includes("createJsonStreamParser")||n.includes("partial-json")?"json":n.includes("createRegexJsonParser")||n.includes("regex")?"regex-json":n.includes("createXmlParser")||n.includes("<text>")?"xml":null}function us(e){var n,r;return(r=(n=e.parserType)!=null?n:Sa(e.streamParser))!=null?r:"plain"}function ps(e,n){let r=[];return e.toolCall&&(r.push(`${n}toolCall: {`),Object.entries(e.toolCall).forEach(([t,o])=>{typeof o=="string"&&r.push(`${n} ${t}: "${o}",`)}),r.push(`${n}},`)),r}function gs(e,n,r){let t=[],o=e.messageActions&&Object.entries(e.messageActions).some(([i,a])=>i!=="onFeedback"&&i!=="onCopy"&&a!==void 0),s=(r==null?void 0:r.onFeedback)||(r==null?void 0:r.onCopy);return(o||s)&&(t.push(`${n}messageActions: {`),e.messageActions&&Object.entries(e.messageActions).forEach(([i,a])=>{i==="onFeedback"||i==="onCopy"||(typeof a=="string"?t.push(`${n} ${i}: "${a}",`):typeof a=="boolean"&&t.push(`${n} ${i}: ${a},`))}),r!=null&&r.onFeedback&&t.push(`${n} onFeedback: ${r.onFeedback},`),r!=null&&r.onCopy&&t.push(`${n} onCopy: ${r.onCopy},`),t.push(`${n}},`)),t}function ms(e,n){let r=[];if(e.markdown){let t=e.markdown.options&&Object.keys(e.markdown.options).length>0,o=e.markdown.disableDefaultStyles!==void 0;(t||o)&&(r.push(`${n}markdown: {`),t&&(r.push(`${n} options: {`),Object.entries(e.markdown.options).forEach(([s,i])=>{typeof i=="string"?r.push(`${n} ${s}: "${i}",`):typeof i=="boolean"&&r.push(`${n} ${s}: ${i},`)}),r.push(`${n} },`)),o&&r.push(`${n} disableDefaultStyles: ${e.markdown.disableDefaultStyles},`),r.push(`${n}},`))}return r}function hs(e,n){let r=[];if(e.layout){let t=e.layout.header&&Object.keys(e.layout.header).some(s=>s!=="render"),o=e.layout.messages&&Object.keys(e.layout.messages).some(s=>s!=="renderUserMessage"&&s!=="renderAssistantMessage");(t||o)&&(r.push(`${n}layout: {`),t&&(r.push(`${n} header: {`),Object.entries(e.layout.header).forEach(([s,i])=>{s!=="render"&&(typeof i=="string"?r.push(`${n} ${s}: "${i}",`):typeof i=="boolean"&&r.push(`${n} ${s}: ${i},`))}),r.push(`${n} },`)),o&&(r.push(`${n} messages: {`),Object.entries(e.layout.messages).forEach(([s,i])=>{s==="renderUserMessage"||s==="renderAssistantMessage"||(s==="avatar"&&typeof i=="object"&&i!==null?(r.push(`${n} avatar: {`),Object.entries(i).forEach(([a,d])=>{typeof d=="string"?r.push(`${n} ${a}: "${d}",`):typeof d=="boolean"&&r.push(`${n} ${a}: ${d},`)}),r.push(`${n} },`)):s==="timestamp"&&typeof i=="object"&&i!==null?Object.entries(i).some(([d])=>d!=="format")&&(r.push(`${n} timestamp: {`),Object.entries(i).forEach(([d,u])=>{d!=="format"&&(typeof u=="string"?r.push(`${n} ${d}: "${u}",`):typeof u=="boolean"&&r.push(`${n} ${d}: ${u},`))}),r.push(`${n} },`)):typeof i=="string"?r.push(`${n} ${s}: "${i}",`):typeof i=="boolean"&&r.push(`${n} ${s}: ${i},`))}),r.push(`${n} },`)),r.push(`${n}},`))}return r}function $s(e,n){let r=[];return e&&(e.getHeaders&&r.push(`${n}getHeaders: ${e.getHeaders},`),e.requestMiddleware&&r.push(`${n}requestMiddleware: ${e.requestMiddleware},`),e.actionParsers&&r.push(`${n}actionParsers: ${e.actionParsers},`),e.actionHandlers&&r.push(`${n}actionHandlers: ${e.actionHandlers},`),e.contextProviders&&r.push(`${n}contextProviders: ${e.contextProviders},`),e.streamParser&&r.push(`${n}streamParser: ${e.streamParser},`)),r}function Ii(e,n="esm",r){let t={...e};delete t.postprocessMessage,delete t.initialMessages;let o=r?{...r,hooks:ba(r.hooks)}:void 0;return n==="esm"?Aa(t,o):n==="script-installer"?Ea(t):n==="script-advanced"?ka(t,o):n==="react-component"?Ta(t,o):n==="react-advanced"?Ma(t,o):La(t,o)}function Aa(e,n){let r=n==null?void 0:n.hooks,t=us(e),o=t!=="plain",s=["import '@runtypelabs/persona/widget.css';","import { initAgentWidget, markdownPostprocessor } from '@runtypelabs/persona';","","initAgentWidget({"," target: 'body',"," config: {"];return e.apiUrl&&s.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&s.push(` clientToken: "${e.clientToken}",`),e.flowId&&s.push(` flowId: "${e.flowId}",`),o&&s.push(` parserType: "${t}",`),e.theme&&(s.push(" theme: {"),Object.entries(e.theme).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.launcher&&(s.push(" launcher: {"),Object.entries(e.launcher).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.copy&&(s.push(" copy: {"),Object.entries(e.copy).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.sendButton&&(s.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.voiceRecognition&&(s.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"?s.push(` ${i}: ${a},`):typeof a=="number"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.statusIndicator&&(s.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.features&&(s.push(" features: {"),Object.entries(e.features).forEach(([i,a])=>{s.push(` ${i}: ${a},`)}),s.push(" },")),e.suggestionChips&&e.suggestionChips.length>0&&(s.push(" suggestionChips: ["),e.suggestionChips.forEach(i=>{s.push(` "${i}",`)}),s.push(" ],")),e.suggestionChipsConfig&&(s.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),s.push(" },")),s.push(...ps(e," ")),s.push(...gs(e," ",r)),s.push(...ms(e," ")),s.push(...hs(e," ")),s.push(...$s(r," ")),e.debug&&s.push(` debug: ${e.debug},`),r!=null&&r.postprocessMessage?s.push(` postprocessMessage: ${r.postprocessMessage}`):s.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text)"),s.push(" }"),s.push("});"),s.join(`
133
- `)}function Ta(e,n){let r=n==null?void 0:n.hooks,t=us(e),o=t!=="plain",s=["// ChatWidget.tsx","'use client'; // Required for Next.js - remove for Vite/CRA","","import { useEffect } from 'react';","import '@runtypelabs/persona/widget.css';","import { initAgentWidget, markdownPostprocessor } from '@runtypelabs/persona';","import type { AgentWidgetInitHandle } from '@runtypelabs/persona';","","export function ChatWidget() {"," useEffect(() => {"," let handle: AgentWidgetInitHandle | null = null;",""," handle = initAgentWidget({"," target: 'body',"," config: {"];return e.apiUrl&&s.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&s.push(` clientToken: "${e.clientToken}",`),e.flowId&&s.push(` flowId: "${e.flowId}",`),o&&s.push(` parserType: "${t}",`),e.theme&&(s.push(" theme: {"),Object.entries(e.theme).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.launcher&&(s.push(" launcher: {"),Object.entries(e.launcher).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.copy&&(s.push(" copy: {"),Object.entries(e.copy).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.sendButton&&(s.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.voiceRecognition&&(s.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"?s.push(` ${i}: ${a},`):typeof a=="number"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.statusIndicator&&(s.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.features&&(s.push(" features: {"),Object.entries(e.features).forEach(([i,a])=>{s.push(` ${i}: ${a},`)}),s.push(" },")),e.suggestionChips&&e.suggestionChips.length>0&&(s.push(" suggestionChips: ["),e.suggestionChips.forEach(i=>{s.push(` "${i}",`)}),s.push(" ],")),e.suggestionChipsConfig&&(s.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),s.push(" },")),s.push(...ps(e," ")),s.push(...gs(e," ",r)),s.push(...ms(e," ")),s.push(...hs(e," ")),s.push(...$s(r," ")),e.debug&&s.push(` debug: ${e.debug},`),r!=null&&r.postprocessMessage?s.push(` postprocessMessage: ${r.postprocessMessage}`):s.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text)"),s.push(" }"),s.push(" });"),s.push(""),s.push(" // Cleanup on unmount"),s.push(" return () => {"),s.push(" if (handle) {"),s.push(" handle.destroy();"),s.push(" }"),s.push(" };"),s.push(" }, []);"),s.push(""),s.push(" return null; // Widget injects itself into the DOM"),s.push("}"),s.push(""),s.push("// Usage in your app:"),s.push("// import { ChatWidget } from './components/ChatWidget';"),s.push("//"),s.push("// export default function App() {"),s.push("// return ("),s.push("// <div>"),s.push("// {/* Your app content */}"),s.push("// <ChatWidget />"),s.push("// </div>"),s.push("// );"),s.push("// }"),s.join(`
134
- `)}function Ma(e,n){let r=n==null?void 0:n.hooks,t=["// ChatWidgetAdvanced.tsx","'use client'; // Required for Next.js - remove for Vite/CRA","","import { useEffect } from 'react';","import '@runtypelabs/persona/widget.css';","import {"," initAgentWidget,"," createFlexibleJsonStreamParser,"," defaultJsonActionParser,"," defaultActionHandlers,"," markdownPostprocessor","} from '@runtypelabs/persona';","import type { AgentWidgetInitHandle } from '@runtypelabs/persona';","","const STORAGE_KEY = 'chat-widget-state';","const PROCESSED_ACTIONS_KEY = 'chat-widget-processed-actions';","","// Types for DOM elements","interface PageElement {"," type: string;"," tagName: string;"," selector: string;"," innerText: string;"," href?: string;","}","","interface DOMContext {"," page_elements: PageElement[];"," page_element_count: number;"," element_types: Record<string, number>;"," page_url: string;"," page_title: string;"," timestamp: string;","}","","// DOM context provider - extracts page elements for AI context","const collectDOMContext = (): DOMContext => {"," const selectors = {",` products: '[data-product-id], .product-card, .product-item, [role="article"]',`,` buttons: 'button, [role="button"], .btn',`," links: 'a[href]',"," inputs: 'input, textarea, select'"," };",""," const elements: PageElement[] = [];"," Object.entries(selectors).forEach(([type, selector]) => {"," document.querySelectorAll(selector).forEach((element) => {"," if (!(element instanceof HTMLElement)) return;"," "," // Exclude elements within the widget"," const widgetHost = element.closest('.persona-host');"," if (widgetHost) return;"," "," const text = element.innerText?.trim();"," if (!text) return;",""," const selectorString ="," element.id ? `#${element.id}` :"," element.getAttribute('data-testid') ? `[data-testid=\"${element.getAttribute('data-testid')}\"]` :"," element.getAttribute('data-product-id') ? `[data-product-id=\"${element.getAttribute('data-product-id')}\"]` :"," element.tagName.toLowerCase();",""," const elementData: PageElement = {"," type,"," tagName: element.tagName.toLowerCase(),"," selector: selectorString,"," innerText: text.substring(0, 200)"," };",""," if (type === 'links' && element instanceof HTMLAnchorElement && element.href) {"," elementData.href = element.href;"," }",""," elements.push(elementData);"," });"," });",""," const counts = elements.reduce((acc, el) => {"," acc[el.type] = (acc[el.type] || 0) + 1;"," return acc;"," }, {} as Record<string, number>);",""," return {"," page_elements: elements.slice(0, 50),"," page_element_count: elements.length,"," element_types: counts,"," page_url: window.location.href,"," page_title: document.title,"," timestamp: new Date().toISOString()"," };","};","","export function ChatWidgetAdvanced() {"," useEffect(() => {"," let handle: AgentWidgetInitHandle | null = null;",""," // Load saved state"," const loadSavedMessages = () => {"," const savedState = localStorage.getItem(STORAGE_KEY);"," if (savedState) {"," try {"," const { messages } = JSON.parse(savedState);"," return messages || [];"," } catch (e) {"," console.error('Failed to load saved state:', e);"," }"," }"," return [];"," };",""," handle = initAgentWidget({"," target: 'body',"," config: {"];return e.apiUrl&&t.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&t.push(` clientToken: "${e.clientToken}",`),e.flowId&&t.push(` flowId: "${e.flowId}",`),e.theme&&(t.push(" theme: {"),Object.entries(e.theme).forEach(([o,s])=>{t.push(` ${o}: "${s}",`)}),t.push(" },")),e.launcher&&(t.push(" launcher: {"),Object.entries(e.launcher).forEach(([o,s])=>{typeof s=="string"?t.push(` ${o}: "${s}",`):typeof s=="boolean"&&t.push(` ${o}: ${s},`)}),t.push(" },")),e.copy&&(t.push(" copy: {"),Object.entries(e.copy).forEach(([o,s])=>{t.push(` ${o}: "${s}",`)}),t.push(" },")),e.sendButton&&(t.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([o,s])=>{typeof s=="string"?t.push(` ${o}: "${s}",`):typeof s=="boolean"&&t.push(` ${o}: ${s},`)}),t.push(" },")),e.voiceRecognition&&(t.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([o,s])=>{typeof s=="string"?t.push(` ${o}: "${s}",`):typeof s=="boolean"?t.push(` ${o}: ${s},`):typeof s=="number"&&t.push(` ${o}: ${s},`)}),t.push(" },")),e.statusIndicator&&(t.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([o,s])=>{typeof s=="string"?t.push(` ${o}: "${s}",`):typeof s=="boolean"&&t.push(` ${o}: ${s},`)}),t.push(" },")),e.features&&(t.push(" features: {"),Object.entries(e.features).forEach(([o,s])=>{t.push(` ${o}: ${s},`)}),t.push(" },")),e.suggestionChips&&e.suggestionChips.length>0&&(t.push(" suggestionChips: ["),e.suggestionChips.forEach(o=>{t.push(` "${o}",`)}),t.push(" ],")),e.suggestionChipsConfig&&(t.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&t.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&t.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&t.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&t.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),t.push(" },")),t.push(...ps(e," ")),t.push(...gs(e," ",r)),t.push(...ms(e," ")),t.push(...hs(e," ")),r!=null&&r.getHeaders&&t.push(` getHeaders: ${r.getHeaders},`),r!=null&&r.contextProviders&&t.push(` contextProviders: ${r.contextProviders},`),e.debug&&t.push(` debug: ${e.debug},`),t.push(" initialMessages: loadSavedMessages(),"),r!=null&&r.streamParser?t.push(` streamParser: ${r.streamParser},`):(t.push(" // Flexible JSON stream parser for handling structured actions"),t.push(` streamParser: () => createFlexibleJsonStreamParser(${Ca}),`)),r!=null&&r.actionParsers?(t.push(" // Action parsers (custom merged with defaults)"),t.push(` actionParsers: [...(${r.actionParsers}), defaultJsonActionParser,`),t.push(" // Built-in parser for markdown-wrapped JSON"),t.push(` ${Ei}`),t.push(" ],")):(t.push(" // Action parsers to detect JSON actions in responses"),t.push(" actionParsers: ["),t.push(" defaultJsonActionParser,"),t.push(" // Parser for markdown-wrapped JSON"),t.push(` ${Ei}`),t.push(" ],")),r!=null&&r.actionHandlers?(t.push(" // Action handlers (custom merged with defaults)"),t.push(` actionHandlers: [...(${r.actionHandlers}),`),t.push(" defaultActionHandlers.message,"),t.push(" defaultActionHandlers.messageAndClick,"),t.push(" // Built-in handler for nav_then_click action"),t.push(` ${ki}`),t.push(" ],")):(t.push(" // Action handlers for navigation and other actions"),t.push(" actionHandlers: ["),t.push(" defaultActionHandlers.message,"),t.push(" defaultActionHandlers.messageAndClick,"),t.push(" // Handler for nav_then_click action"),t.push(` ${ki}`),t.push(" ],")),r!=null&&r.postprocessMessage?t.push(` postprocessMessage: ${r.postprocessMessage},`):t.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text),"),r!=null&&r.requestMiddleware?(t.push(" // Request middleware (custom merged with DOM context)"),t.push(" requestMiddleware: ({ payload, config }) => {"),t.push(` const customResult = (${r.requestMiddleware})({ payload, config });`),t.push(" const merged = customResult || payload;"),t.push(" return {"),t.push(" ...merged,"),t.push(" metadata: { ...merged.metadata, ...collectDOMContext() }"),t.push(" };"),t.push(" }")):(t.push(" requestMiddleware: ({ payload }) => {"),t.push(" return {"),t.push(" ...payload,"),t.push(" metadata: collectDOMContext()"),t.push(" };"),t.push(" }")),t.push(" }"),t.push(" });"),t.push(""),t.push(" // Save state on message events"),t.push(" const handleMessage = () => {"),t.push(" const session = handle?.getSession?.();"),t.push(" if (session) {"),t.push(" localStorage.setItem(STORAGE_KEY, JSON.stringify({"),t.push(" messages: session.messages,"),t.push(" timestamp: new Date().toISOString()"),t.push(" }));"),t.push(" }"),t.push(" };"),t.push(""),t.push(" // Clear state on clear chat"),t.push(" const handleClearChat = () => {"),t.push(" localStorage.removeItem(STORAGE_KEY);"),t.push(" localStorage.removeItem(PROCESSED_ACTIONS_KEY);"),t.push(" };"),t.push(""),t.push(" window.addEventListener('persona:message', handleMessage);"),t.push(" window.addEventListener('persona:clear-chat', handleClearChat);"),t.push(""),t.push(" // Cleanup on unmount"),t.push(" return () => {"),t.push(" window.removeEventListener('persona:message', handleMessage);"),t.push(" window.removeEventListener('persona:clear-chat', handleClearChat);"),t.push(" if (handle) {"),t.push(" handle.destroy();"),t.push(" }"),t.push(" };"),t.push(" }, []);"),t.push(""),t.push(" return null; // Widget injects itself into the DOM"),t.push("}"),t.push(""),t.push("// Usage: Collects DOM context for AI-powered navigation"),t.push("// Features:"),t.push("// - Extracts page elements (products, buttons, links)"),t.push("// - Persists chat history across page loads"),t.push("// - Handles navigation actions (nav_then_click)"),t.push("// - Processes structured JSON actions from AI"),t.push("//"),t.push("// Example usage in Next.js:"),t.push("// import { ChatWidgetAdvanced } from './components/ChatWidgetAdvanced';"),t.push("//"),t.push("// export default function RootLayout({ children }) {"),t.push("// return ("),t.push('// <html lang="en">'),t.push("// <body>"),t.push("// {children}"),t.push("// <ChatWidgetAdvanced />"),t.push("// </body>"),t.push("// </html>"),t.push("// );"),t.push("// }"),t.join(`
135
- `)}function Pi(e){var o;let n=us(e),r=n!=="plain",t={};if(e.apiUrl&&(t.apiUrl=e.apiUrl),e.clientToken&&(t.clientToken=e.clientToken),e.flowId&&(t.flowId=e.flowId),r&&(t.parserType=n),e.theme&&(t.theme=e.theme),e.launcher&&(t.launcher=e.launcher),e.copy&&(t.copy=e.copy),e.sendButton&&(t.sendButton=e.sendButton),e.voiceRecognition&&(t.voiceRecognition=e.voiceRecognition),e.statusIndicator&&(t.statusIndicator=e.statusIndicator),e.features&&(t.features=e.features),((o=e.suggestionChips)==null?void 0:o.length)>0&&(t.suggestionChips=e.suggestionChips),e.suggestionChipsConfig&&(t.suggestionChipsConfig=e.suggestionChipsConfig),e.debug&&(t.debug=e.debug),e.toolCall){let s={};Object.entries(e.toolCall).forEach(([i,a])=>{typeof a=="string"&&(s[i]=a)}),Object.keys(s).length>0&&(t.toolCall=s)}if(e.messageActions){let s={};Object.entries(e.messageActions).forEach(([i,a])=>{i!=="onFeedback"&&i!=="onCopy"&&a!==void 0&&(typeof a=="string"||typeof a=="boolean")&&(s[i]=a)}),Object.keys(s).length>0&&(t.messageActions=s)}if(e.markdown){let s={};e.markdown.options&&(s.options=e.markdown.options),e.markdown.disableDefaultStyles!==void 0&&(s.disableDefaultStyles=e.markdown.disableDefaultStyles),Object.keys(s).length>0&&(t.markdown=s)}if(e.layout){let s={};if(e.layout.header){let i={};Object.entries(e.layout.header).forEach(([a,d])=>{a!=="render"&&(typeof d=="string"||typeof d=="boolean")&&(i[a]=d)}),Object.keys(i).length>0&&(s.header=i)}if(e.layout.messages){let i={};Object.entries(e.layout.messages).forEach(([a,d])=>{if(a!=="renderUserMessage"&&a!=="renderAssistantMessage")if(a==="avatar"&&typeof d=="object"&&d!==null)i.avatar=d;else if(a==="timestamp"&&typeof d=="object"&&d!==null){let u={};Object.entries(d).forEach(([f,p])=>{f!=="format"&&(typeof p=="string"||typeof p=="boolean")&&(u[f]=p)}),Object.keys(u).length>0&&(i.timestamp=u)}else(typeof d=="string"||typeof d=="boolean")&&(i[a]=d)}),Object.keys(i).length>0&&(s.messages=i)}Object.keys(s).length>0&&(t.layout=s)}return t}function Ea(e){let n=Pi(e),r=JSON.stringify(n,null,0).replace(/'/g,"&#39;");return`<script src="https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${ln}/dist/install.global.js" data-config='${r}'></script>`}function La(e,n){let r=n==null?void 0:n.hooks,t=us(e),o=t!=="plain",s=["<!-- Load CSS -->",`<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${ln}/dist/widget.css" />`,"","<!-- Load JavaScript -->",`<script src="https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${ln}/dist/index.global.js"></script>`,"","<!-- Initialize widget -->","<script>"," window.AgentWidget.initAgentWidget({"," target: 'body',"," config: {"];return e.apiUrl&&s.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&s.push(` clientToken: "${e.clientToken}",`),e.flowId&&s.push(` flowId: "${e.flowId}",`),o&&s.push(` parserType: "${t}",`),e.theme&&(s.push(" theme: {"),Object.entries(e.theme).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.launcher&&(s.push(" launcher: {"),Object.entries(e.launcher).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.copy&&(s.push(" copy: {"),Object.entries(e.copy).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.sendButton&&(s.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.voiceRecognition&&(s.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"?s.push(` ${i}: ${a},`):typeof a=="number"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.statusIndicator&&(s.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.features&&(s.push(" features: {"),Object.entries(e.features).forEach(([i,a])=>{s.push(` ${i}: ${a},`)}),s.push(" },")),e.suggestionChips&&e.suggestionChips.length>0&&(s.push(" suggestionChips: ["),e.suggestionChips.forEach(i=>{s.push(` "${i}",`)}),s.push(" ],")),e.suggestionChipsConfig&&(s.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),s.push(" },")),s.push(...ps(e," ")),s.push(...gs(e," ",r)),s.push(...ms(e," ")),s.push(...hs(e," ")),s.push(...$s(r," ")),e.debug&&s.push(` debug: ${e.debug},`),r!=null&&r.postprocessMessage?s.push(` postprocessMessage: ${r.postprocessMessage}`):s.push(" postprocessMessage: ({ text }) => window.AgentWidget.markdownPostprocessor(text)"),s.push(" }"),s.push(" });"),s.push("</script>"),s.join(`
136
- `)}function ka(e,n){let r=n==null?void 0:n.hooks,t=Pi(e),s=["<script>","(function() {"," 'use strict';",""," // Configuration",` var CONFIG = ${JSON.stringify(t,null,2).split(`
132
+ }`;function ml(e){if(!e)return null;let n=e.toString();return n.includes("createJsonStreamParser")||n.includes("partial-json")?"json":n.includes("createRegexJsonParser")||n.includes("regex")?"regex-json":n.includes("createXmlParser")||n.includes("<text>")?"xml":null}function Ns(e){var n,r;return(r=(n=e.parserType)!=null?n:ml(e.streamParser))!=null?r:"plain"}function Ds(e,n){let r=[];return e.toolCall&&(r.push(`${n}toolCall: {`),Object.entries(e.toolCall).forEach(([t,o])=>{typeof o=="string"&&r.push(`${n} ${t}: "${o}",`)}),r.push(`${n}},`)),r}function js(e,n,r){let t=[],o=e.messageActions&&Object.entries(e.messageActions).some(([i,a])=>i!=="onFeedback"&&i!=="onCopy"&&a!==void 0),s=(r==null?void 0:r.onFeedback)||(r==null?void 0:r.onCopy);return(o||s)&&(t.push(`${n}messageActions: {`),e.messageActions&&Object.entries(e.messageActions).forEach(([i,a])=>{i==="onFeedback"||i==="onCopy"||(typeof a=="string"?t.push(`${n} ${i}: "${a}",`):typeof a=="boolean"&&t.push(`${n} ${i}: ${a},`))}),r!=null&&r.onFeedback&&t.push(`${n} onFeedback: ${r.onFeedback},`),r!=null&&r.onCopy&&t.push(`${n} onCopy: ${r.onCopy},`),t.push(`${n}},`)),t}function _s(e,n){let r=[];if(e.markdown){let t=e.markdown.options&&Object.keys(e.markdown.options).length>0,o=e.markdown.disableDefaultStyles!==void 0;(t||o)&&(r.push(`${n}markdown: {`),t&&(r.push(`${n} options: {`),Object.entries(e.markdown.options).forEach(([s,i])=>{typeof i=="string"?r.push(`${n} ${s}: "${i}",`):typeof i=="boolean"&&r.push(`${n} ${s}: ${i},`)}),r.push(`${n} },`)),o&&r.push(`${n} disableDefaultStyles: ${e.markdown.disableDefaultStyles},`),r.push(`${n}},`))}return r}function qs(e,n){let r=[];if(e.layout){let t=e.layout.header&&Object.keys(e.layout.header).some(s=>s!=="render"),o=e.layout.messages&&Object.keys(e.layout.messages).some(s=>s!=="renderUserMessage"&&s!=="renderAssistantMessage");(t||o)&&(r.push(`${n}layout: {`),t&&(r.push(`${n} header: {`),Object.entries(e.layout.header).forEach(([s,i])=>{s!=="render"&&(typeof i=="string"?r.push(`${n} ${s}: "${i}",`):typeof i=="boolean"&&r.push(`${n} ${s}: ${i},`))}),r.push(`${n} },`)),o&&(r.push(`${n} messages: {`),Object.entries(e.layout.messages).forEach(([s,i])=>{s==="renderUserMessage"||s==="renderAssistantMessage"||(s==="avatar"&&typeof i=="object"&&i!==null?(r.push(`${n} avatar: {`),Object.entries(i).forEach(([a,d])=>{typeof d=="string"?r.push(`${n} ${a}: "${d}",`):typeof d=="boolean"&&r.push(`${n} ${a}: ${d},`)}),r.push(`${n} },`)):s==="timestamp"&&typeof i=="object"&&i!==null?Object.entries(i).some(([d])=>d!=="format")&&(r.push(`${n} timestamp: {`),Object.entries(i).forEach(([d,g])=>{d!=="format"&&(typeof g=="string"?r.push(`${n} ${d}: "${g}",`):typeof g=="boolean"&&r.push(`${n} ${d}: ${g},`))}),r.push(`${n} },`)):typeof i=="string"?r.push(`${n} ${s}: "${i}",`):typeof i=="boolean"&&r.push(`${n} ${s}: ${i},`))}),r.push(`${n} },`)),r.push(`${n}},`))}return r}function mr(e,n){let r=[];return e&&(e.getHeaders&&r.push(`${n}getHeaders: ${e.getHeaders},`),e.requestMiddleware&&r.push(`${n}requestMiddleware: ${e.requestMiddleware},`),e.actionParsers&&r.push(`${n}actionParsers: ${e.actionParsers},`),e.actionHandlers&&r.push(`${n}actionHandlers: ${e.actionHandlers},`),e.contextProviders&&r.push(`${n}contextProviders: ${e.contextProviders},`),e.streamParser&&r.push(`${n}streamParser: ${e.streamParser},`)),r}function ua(e,n="esm",r){let t={...e};delete t.postprocessMessage,delete t.initialMessages;let o=r?{...r,hooks:ul(r.hooks)}:void 0;return n==="esm"?hl(t,o):n==="script-installer"?vl(t):n==="script-advanced"?bl(t,o):n==="react-component"?fl(t,o):n==="react-advanced"?wl(t,o):yl(t,o)}function hl(e,n){let r=n==null?void 0:n.hooks,t=Ns(e),o=t!=="plain",s=["import '@runtypelabs/persona/widget.css';","import { initAgentWidget, markdownPostprocessor } from '@runtypelabs/persona';","","initAgentWidget({"," target: 'body',"," config: {"];return e.apiUrl&&s.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&s.push(` clientToken: "${e.clientToken}",`),e.flowId&&s.push(` flowId: "${e.flowId}",`),o&&s.push(` parserType: "${t}",`),e.theme&&(s.push(" theme: {"),Object.entries(e.theme).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.launcher&&(s.push(" launcher: {"),Object.entries(e.launcher).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.copy&&(s.push(" copy: {"),Object.entries(e.copy).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.sendButton&&(s.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.voiceRecognition&&(s.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"?s.push(` ${i}: ${a},`):typeof a=="number"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.statusIndicator&&(s.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.features&&(s.push(" features: {"),Object.entries(e.features).forEach(([i,a])=>{s.push(` ${i}: ${a},`)}),s.push(" },")),e.suggestionChips&&e.suggestionChips.length>0&&(s.push(" suggestionChips: ["),e.suggestionChips.forEach(i=>{s.push(` "${i}",`)}),s.push(" ],")),e.suggestionChipsConfig&&(s.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),s.push(" },")),s.push(...Ds(e," ")),s.push(...js(e," ",r)),s.push(..._s(e," ")),s.push(...qs(e," ")),s.push(...mr(r," ")),e.debug&&s.push(` debug: ${e.debug},`),r!=null&&r.postprocessMessage?s.push(` postprocessMessage: ${r.postprocessMessage}`):s.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text)"),s.push(" }"),s.push("});"),s.join(`
133
+ `)}function fl(e,n){let r=n==null?void 0:n.hooks,t=Ns(e),o=t!=="plain",s=["// ChatWidget.tsx","'use client'; // Required for Next.js - remove for Vite/CRA","","import { useEffect } from 'react';","import '@runtypelabs/persona/widget.css';","import { initAgentWidget, markdownPostprocessor } from '@runtypelabs/persona';","import type { AgentWidgetInitHandle } from '@runtypelabs/persona';","","export function ChatWidget() {"," useEffect(() => {"," let handle: AgentWidgetInitHandle | null = null;",""," handle = initAgentWidget({"," target: 'body',"," config: {"];return e.apiUrl&&s.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&s.push(` clientToken: "${e.clientToken}",`),e.flowId&&s.push(` flowId: "${e.flowId}",`),o&&s.push(` parserType: "${t}",`),e.theme&&(s.push(" theme: {"),Object.entries(e.theme).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.launcher&&(s.push(" launcher: {"),Object.entries(e.launcher).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.copy&&(s.push(" copy: {"),Object.entries(e.copy).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.sendButton&&(s.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.voiceRecognition&&(s.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"?s.push(` ${i}: ${a},`):typeof a=="number"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.statusIndicator&&(s.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.features&&(s.push(" features: {"),Object.entries(e.features).forEach(([i,a])=>{s.push(` ${i}: ${a},`)}),s.push(" },")),e.suggestionChips&&e.suggestionChips.length>0&&(s.push(" suggestionChips: ["),e.suggestionChips.forEach(i=>{s.push(` "${i}",`)}),s.push(" ],")),e.suggestionChipsConfig&&(s.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),s.push(" },")),s.push(...Ds(e," ")),s.push(...js(e," ",r)),s.push(..._s(e," ")),s.push(...qs(e," ")),s.push(...mr(r," ")),e.debug&&s.push(` debug: ${e.debug},`),r!=null&&r.postprocessMessage?s.push(` postprocessMessage: ${r.postprocessMessage}`):s.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text)"),s.push(" }"),s.push(" });"),s.push(""),s.push(" // Cleanup on unmount"),s.push(" return () => {"),s.push(" if (handle) {"),s.push(" handle.destroy();"),s.push(" }"),s.push(" };"),s.push(" }, []);"),s.push(""),s.push(" return null; // Widget injects itself into the DOM"),s.push("}"),s.push(""),s.push("// Usage in your app:"),s.push("// import { ChatWidget } from './components/ChatWidget';"),s.push("//"),s.push("// export default function App() {"),s.push("// return ("),s.push("// <div>"),s.push("// {/* Your app content */}"),s.push("// <ChatWidget />"),s.push("// </div>"),s.push("// );"),s.push("// }"),s.join(`
134
+ `)}function wl(e,n){let r=n==null?void 0:n.hooks,t=["// ChatWidgetAdvanced.tsx","'use client'; // Required for Next.js - remove for Vite/CRA","","import { useEffect } from 'react';","import '@runtypelabs/persona/widget.css';","import {"," initAgentWidget,"," createFlexibleJsonStreamParser,"," defaultJsonActionParser,"," defaultActionHandlers,"," markdownPostprocessor","} from '@runtypelabs/persona';","import type { AgentWidgetInitHandle } from '@runtypelabs/persona';","","const STORAGE_KEY = 'chat-widget-state';","const PROCESSED_ACTIONS_KEY = 'chat-widget-processed-actions';","","// Types for DOM elements","interface PageElement {"," type: string;"," tagName: string;"," selector: string;"," innerText: string;"," href?: string;","}","","interface DOMContext {"," page_elements: PageElement[];"," page_element_count: number;"," element_types: Record<string, number>;"," page_url: string;"," page_title: string;"," timestamp: string;","}","","// DOM context provider - extracts page elements for AI context","const collectDOMContext = (): DOMContext => {"," const selectors = {",` products: '[data-product-id], .product-card, .product-item, [role="article"]',`,` buttons: 'button, [role="button"], .btn',`," links: 'a[href]',"," inputs: 'input, textarea, select'"," };",""," const elements: PageElement[] = [];"," Object.entries(selectors).forEach(([type, selector]) => {"," document.querySelectorAll(selector).forEach((element) => {"," if (!(element instanceof HTMLElement)) return;"," "," // Exclude elements within the widget"," const widgetHost = element.closest('.persona-host');"," if (widgetHost) return;"," "," const text = element.innerText?.trim();"," if (!text) return;",""," const selectorString ="," element.id ? `#${element.id}` :"," element.getAttribute('data-testid') ? `[data-testid=\"${element.getAttribute('data-testid')}\"]` :"," element.getAttribute('data-product-id') ? `[data-product-id=\"${element.getAttribute('data-product-id')}\"]` :"," element.tagName.toLowerCase();",""," const elementData: PageElement = {"," type,"," tagName: element.tagName.toLowerCase(),"," selector: selectorString,"," innerText: text.substring(0, 200)"," };",""," if (type === 'links' && element instanceof HTMLAnchorElement && element.href) {"," elementData.href = element.href;"," }",""," elements.push(elementData);"," });"," });",""," const counts = elements.reduce((acc, el) => {"," acc[el.type] = (acc[el.type] || 0) + 1;"," return acc;"," }, {} as Record<string, number>);",""," return {"," page_elements: elements.slice(0, 50),"," page_element_count: elements.length,"," element_types: counts,"," page_url: window.location.href,"," page_title: document.title,"," timestamp: new Date().toISOString()"," };","};","","export function ChatWidgetAdvanced() {"," useEffect(() => {"," let handle: AgentWidgetInitHandle | null = null;",""," // Load saved state"," const loadSavedMessages = () => {"," const savedState = localStorage.getItem(STORAGE_KEY);"," if (savedState) {"," try {"," const { messages } = JSON.parse(savedState);"," return messages || [];"," } catch (e) {"," console.error('Failed to load saved state:', e);"," }"," }"," return [];"," };",""," handle = initAgentWidget({"," target: 'body',"," config: {"];return e.apiUrl&&t.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&t.push(` clientToken: "${e.clientToken}",`),e.flowId&&t.push(` flowId: "${e.flowId}",`),e.theme&&(t.push(" theme: {"),Object.entries(e.theme).forEach(([o,s])=>{t.push(` ${o}: "${s}",`)}),t.push(" },")),e.launcher&&(t.push(" launcher: {"),Object.entries(e.launcher).forEach(([o,s])=>{typeof s=="string"?t.push(` ${o}: "${s}",`):typeof s=="boolean"&&t.push(` ${o}: ${s},`)}),t.push(" },")),e.copy&&(t.push(" copy: {"),Object.entries(e.copy).forEach(([o,s])=>{t.push(` ${o}: "${s}",`)}),t.push(" },")),e.sendButton&&(t.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([o,s])=>{typeof s=="string"?t.push(` ${o}: "${s}",`):typeof s=="boolean"&&t.push(` ${o}: ${s},`)}),t.push(" },")),e.voiceRecognition&&(t.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([o,s])=>{typeof s=="string"?t.push(` ${o}: "${s}",`):typeof s=="boolean"?t.push(` ${o}: ${s},`):typeof s=="number"&&t.push(` ${o}: ${s},`)}),t.push(" },")),e.statusIndicator&&(t.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([o,s])=>{typeof s=="string"?t.push(` ${o}: "${s}",`):typeof s=="boolean"&&t.push(` ${o}: ${s},`)}),t.push(" },")),e.features&&(t.push(" features: {"),Object.entries(e.features).forEach(([o,s])=>{t.push(` ${o}: ${s},`)}),t.push(" },")),e.suggestionChips&&e.suggestionChips.length>0&&(t.push(" suggestionChips: ["),e.suggestionChips.forEach(o=>{t.push(` "${o}",`)}),t.push(" ],")),e.suggestionChipsConfig&&(t.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&t.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&t.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&t.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&t.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),t.push(" },")),t.push(...Ds(e," ")),t.push(...js(e," ",r)),t.push(..._s(e," ")),t.push(...qs(e," ")),r!=null&&r.getHeaders&&t.push(` getHeaders: ${r.getHeaders},`),r!=null&&r.contextProviders&&t.push(` contextProviders: ${r.contextProviders},`),e.debug&&t.push(` debug: ${e.debug},`),t.push(" initialMessages: loadSavedMessages(),"),r!=null&&r.streamParser?t.push(` streamParser: ${r.streamParser},`):(t.push(" // Flexible JSON stream parser for handling structured actions"),t.push(` streamParser: () => createFlexibleJsonStreamParser(${pl}),`)),r!=null&&r.actionParsers?(t.push(" // Action parsers (custom merged with defaults)"),t.push(` actionParsers: [...(${r.actionParsers}), defaultJsonActionParser,`),t.push(" // Built-in parser for markdown-wrapped JSON"),t.push(` ${aa}`),t.push(" ],")):(t.push(" // Action parsers to detect JSON actions in responses"),t.push(" actionParsers: ["),t.push(" defaultJsonActionParser,"),t.push(" // Parser for markdown-wrapped JSON"),t.push(` ${aa}`),t.push(" ],")),r!=null&&r.actionHandlers?(t.push(" // Action handlers (custom merged with defaults)"),t.push(` actionHandlers: [...(${r.actionHandlers}),`),t.push(" defaultActionHandlers.message,"),t.push(" defaultActionHandlers.messageAndClick,"),t.push(" // Built-in handler for nav_then_click action"),t.push(` ${da}`),t.push(" ],")):(t.push(" // Action handlers for navigation and other actions"),t.push(" actionHandlers: ["),t.push(" defaultActionHandlers.message,"),t.push(" defaultActionHandlers.messageAndClick,"),t.push(" // Handler for nav_then_click action"),t.push(` ${da}`),t.push(" ],")),r!=null&&r.postprocessMessage?t.push(` postprocessMessage: ${r.postprocessMessage},`):t.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text),"),r!=null&&r.requestMiddleware?(t.push(" // Request middleware (custom merged with DOM context)"),t.push(" requestMiddleware: ({ payload, config }) => {"),t.push(` const customResult = (${r.requestMiddleware})({ payload, config });`),t.push(" const merged = customResult || payload;"),t.push(" return {"),t.push(" ...merged,"),t.push(" metadata: { ...merged.metadata, ...collectDOMContext() }"),t.push(" };"),t.push(" }")):(t.push(" requestMiddleware: ({ payload }) => {"),t.push(" return {"),t.push(" ...payload,"),t.push(" metadata: collectDOMContext()"),t.push(" };"),t.push(" }")),t.push(" }"),t.push(" });"),t.push(""),t.push(" // Save state on message events"),t.push(" const handleMessage = () => {"),t.push(" const session = handle?.getSession?.();"),t.push(" if (session) {"),t.push(" localStorage.setItem(STORAGE_KEY, JSON.stringify({"),t.push(" messages: session.messages,"),t.push(" timestamp: new Date().toISOString()"),t.push(" }));"),t.push(" }"),t.push(" };"),t.push(""),t.push(" // Clear state on clear chat"),t.push(" const handleClearChat = () => {"),t.push(" localStorage.removeItem(STORAGE_KEY);"),t.push(" localStorage.removeItem(PROCESSED_ACTIONS_KEY);"),t.push(" };"),t.push(""),t.push(" window.addEventListener('persona:message', handleMessage);"),t.push(" window.addEventListener('persona:clear-chat', handleClearChat);"),t.push(""),t.push(" // Cleanup on unmount"),t.push(" return () => {"),t.push(" window.removeEventListener('persona:message', handleMessage);"),t.push(" window.removeEventListener('persona:clear-chat', handleClearChat);"),t.push(" if (handle) {"),t.push(" handle.destroy();"),t.push(" }"),t.push(" };"),t.push(" }, []);"),t.push(""),t.push(" return null; // Widget injects itself into the DOM"),t.push("}"),t.push(""),t.push("// Usage: Collects DOM context for AI-powered navigation"),t.push("// Features:"),t.push("// - Extracts page elements (products, buttons, links)"),t.push("// - Persists chat history across page loads"),t.push("// - Handles navigation actions (nav_then_click)"),t.push("// - Processes structured JSON actions from AI"),t.push("//"),t.push("// Example usage in Next.js:"),t.push("// import { ChatWidgetAdvanced } from './components/ChatWidgetAdvanced';"),t.push("//"),t.push("// export default function RootLayout({ children }) {"),t.push("// return ("),t.push('// <html lang="en">'),t.push("// <body>"),t.push("// {children}"),t.push("// <ChatWidgetAdvanced />"),t.push("// </body>"),t.push("// </html>"),t.push("// );"),t.push("// }"),t.join(`
135
+ `)}function pa(e){var o;let n=Ns(e),r=n!=="plain",t={};if(e.apiUrl&&(t.apiUrl=e.apiUrl),e.clientToken&&(t.clientToken=e.clientToken),e.flowId&&(t.flowId=e.flowId),r&&(t.parserType=n),e.theme&&(t.theme=e.theme),e.launcher&&(t.launcher=e.launcher),e.copy&&(t.copy=e.copy),e.sendButton&&(t.sendButton=e.sendButton),e.voiceRecognition&&(t.voiceRecognition=e.voiceRecognition),e.statusIndicator&&(t.statusIndicator=e.statusIndicator),e.features&&(t.features=e.features),((o=e.suggestionChips)==null?void 0:o.length)>0&&(t.suggestionChips=e.suggestionChips),e.suggestionChipsConfig&&(t.suggestionChipsConfig=e.suggestionChipsConfig),e.debug&&(t.debug=e.debug),e.toolCall){let s={};Object.entries(e.toolCall).forEach(([i,a])=>{typeof a=="string"&&(s[i]=a)}),Object.keys(s).length>0&&(t.toolCall=s)}if(e.messageActions){let s={};Object.entries(e.messageActions).forEach(([i,a])=>{i!=="onFeedback"&&i!=="onCopy"&&a!==void 0&&(typeof a=="string"||typeof a=="boolean")&&(s[i]=a)}),Object.keys(s).length>0&&(t.messageActions=s)}if(e.markdown){let s={};e.markdown.options&&(s.options=e.markdown.options),e.markdown.disableDefaultStyles!==void 0&&(s.disableDefaultStyles=e.markdown.disableDefaultStyles),Object.keys(s).length>0&&(t.markdown=s)}if(e.layout){let s={};if(e.layout.header){let i={};Object.entries(e.layout.header).forEach(([a,d])=>{a!=="render"&&(typeof d=="string"||typeof d=="boolean")&&(i[a]=d)}),Object.keys(i).length>0&&(s.header=i)}if(e.layout.messages){let i={};Object.entries(e.layout.messages).forEach(([a,d])=>{if(a!=="renderUserMessage"&&a!=="renderAssistantMessage")if(a==="avatar"&&typeof d=="object"&&d!==null)i.avatar=d;else if(a==="timestamp"&&typeof d=="object"&&d!==null){let g={};Object.entries(d).forEach(([v,c])=>{v!=="format"&&(typeof c=="string"||typeof c=="boolean")&&(g[v]=c)}),Object.keys(g).length>0&&(i.timestamp=g)}else(typeof d=="string"||typeof d=="boolean")&&(i[a]=d)}),Object.keys(i).length>0&&(s.messages=i)}Object.keys(s).length>0&&(t.layout=s)}return t}function vl(e){let n=pa(e),r=JSON.stringify(n,null,0).replace(/'/g,"&#39;");return`<script src="https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${xn}/dist/install.global.js" data-config='${r}'></script>`}function yl(e,n){let r=n==null?void 0:n.hooks,t=Ns(e),o=t!=="plain",s=["<!-- Load CSS -->",`<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${xn}/dist/widget.css" />`,"","<!-- Load JavaScript -->",`<script src="https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${xn}/dist/index.global.js"></script>`,"","<!-- Initialize widget -->","<script>"," window.AgentWidget.initAgentWidget({"," target: 'body',"," config: {"];return e.apiUrl&&s.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&s.push(` clientToken: "${e.clientToken}",`),e.flowId&&s.push(` flowId: "${e.flowId}",`),o&&s.push(` parserType: "${t}",`),e.theme&&(s.push(" theme: {"),Object.entries(e.theme).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.launcher&&(s.push(" launcher: {"),Object.entries(e.launcher).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.copy&&(s.push(" copy: {"),Object.entries(e.copy).forEach(([i,a])=>{s.push(` ${i}: "${a}",`)}),s.push(" },")),e.sendButton&&(s.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.voiceRecognition&&(s.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"?s.push(` ${i}: ${a},`):typeof a=="number"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.statusIndicator&&(s.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([i,a])=>{typeof a=="string"?s.push(` ${i}: "${a}",`):typeof a=="boolean"&&s.push(` ${i}: ${a},`)}),s.push(" },")),e.features&&(s.push(" features: {"),Object.entries(e.features).forEach(([i,a])=>{s.push(` ${i}: ${a},`)}),s.push(" },")),e.suggestionChips&&e.suggestionChips.length>0&&(s.push(" suggestionChips: ["),e.suggestionChips.forEach(i=>{s.push(` "${i}",`)}),s.push(" ],")),e.suggestionChipsConfig&&(s.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),s.push(" },")),s.push(...Ds(e," ")),s.push(...js(e," ",r)),s.push(..._s(e," ")),s.push(...qs(e," ")),s.push(...mr(r," ")),e.debug&&s.push(` debug: ${e.debug},`),r!=null&&r.postprocessMessage?s.push(` postprocessMessage: ${r.postprocessMessage}`):s.push(" postprocessMessage: ({ text }) => window.AgentWidget.markdownPostprocessor(text)"),s.push(" }"),s.push(" });"),s.push("</script>"),s.join(`
136
+ `)}function bl(e,n){let r=n==null?void 0:n.hooks,t=pa(e),s=["<script>","(function() {"," 'use strict';",""," // Configuration",` var CONFIG = ${JSON.stringify(t,null,2).split(`
137
137
  `).map((i,a)=>a===0?i:" "+i).join(`
138
- `)};`,""," // Constants",` var CDN_BASE = 'https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${ln}/dist';`," var STORAGE_KEY = 'chat-widget-state';"," var PROCESSED_ACTIONS_KEY = 'chat-widget-processed-actions';",""," // DOM context provider - extracts page elements for AI context"," var domContextProvider = function() {"," var selectors = {",` products: '[data-product-id], .product-card, .product-item, [role="article"]',`,` buttons: 'button, [role="button"], .btn',`," links: 'a[href]',"," inputs: 'input, textarea, select'"," };",""," var elements = [];"," Object.entries(selectors).forEach(function(entry) {"," var type = entry[0], selector = entry[1];"," document.querySelectorAll(selector).forEach(function(element) {"," if (!(element instanceof HTMLElement)) return;"," var widgetHost = element.closest('.persona-host');"," if (widgetHost) return;"," var text = element.innerText ? element.innerText.trim() : '';"," if (!text) return;",""," var selectorString = element.id ? '#' + element.id :",` element.getAttribute('data-testid') ? '[data-testid="' + element.getAttribute('data-testid') + '"]' :`,` element.getAttribute('data-product-id') ? '[data-product-id="' + element.getAttribute('data-product-id') + '"]' :`," element.tagName.toLowerCase();",""," var elementData = {"," type: type,"," tagName: element.tagName.toLowerCase(),"," selector: selectorString,"," innerText: text.substring(0, 200)"," };",""," if (type === 'links' && element instanceof HTMLAnchorElement && element.href) {"," elementData.href = element.href;"," }"," elements.push(elementData);"," });"," });",""," var counts = elements.reduce(function(acc, el) {"," acc[el.type] = (acc[el.type] || 0) + 1;"," return acc;"," }, {});",""," return {"," page_elements: elements.slice(0, 50),"," page_element_count: elements.length,"," element_types: counts,"," page_url: window.location.href,"," page_title: document.title,"," timestamp: new Date().toISOString()"," };"," };",""," // Load CSS dynamically"," var loadCSS = function() {"," if (document.querySelector('link[data-persona]')) return;"," var link = document.createElement('link');"," link.rel = 'stylesheet';"," link.href = CDN_BASE + '/widget.css';"," link.setAttribute('data-persona', 'true');"," document.head.appendChild(link);"," };",""," // Load JS dynamically"," var loadJS = function(callback) {"," if (window.AgentWidget) { callback(); return; }"," var script = document.createElement('script');"," script.src = CDN_BASE + '/index.global.js';"," script.onload = callback;"," script.onerror = function() { console.error('Failed to load AgentWidget'); };"," document.head.appendChild(script);"," };",""," // Create widget config with advanced features"," var createWidgetConfig = function(agentWidget) {"," var widgetConfig = Object.assign({}, CONFIG);",""];return r!=null&&r.getHeaders&&(s.push(` widgetConfig.getHeaders = ${r.getHeaders};`),s.push("")),r!=null&&r.contextProviders&&(s.push(` widgetConfig.contextProviders = ${r.contextProviders};`),s.push("")),r!=null&&r.streamParser?s.push(` widgetConfig.streamParser = ${r.streamParser};`):(s.push(" // Flexible JSON stream parser for handling structured actions"),s.push(" widgetConfig.streamParser = function() {"),s.push(` return agentWidget.createFlexibleJsonStreamParser(${xa});`),s.push(" };")),s.push(""),r!=null&&r.actionParsers?(s.push(" // Action parsers (custom merged with defaults)"),s.push(` var customParsers = ${r.actionParsers};`),s.push(" widgetConfig.actionParsers = customParsers.concat(["),s.push(" agentWidget.defaultJsonActionParser,"),s.push(` ${Li}`),s.push(" ]);")):(s.push(" // Action parsers to detect JSON actions in responses"),s.push(" widgetConfig.actionParsers = ["),s.push(" agentWidget.defaultJsonActionParser,"),s.push(` ${Li}`),s.push(" ];")),s.push(""),r!=null&&r.actionHandlers?(s.push(" // Action handlers (custom merged with defaults)"),s.push(` var customHandlers = ${r.actionHandlers};`),s.push(" widgetConfig.actionHandlers = customHandlers.concat(["),s.push(" agentWidget.defaultActionHandlers.message,"),s.push(" agentWidget.defaultActionHandlers.messageAndClick,"),s.push(` ${Wi}`),s.push(" ]);")):(s.push(" // Action handlers for navigation and other actions"),s.push(" widgetConfig.actionHandlers = ["),s.push(" agentWidget.defaultActionHandlers.message,"),s.push(" agentWidget.defaultActionHandlers.messageAndClick,"),s.push(` ${Wi}`),s.push(" ];")),s.push(""),r!=null&&r.requestMiddleware?(s.push(" // Request middleware (custom merged with DOM context)"),s.push(" widgetConfig.requestMiddleware = function(ctx) {"),s.push(` var customResult = (${r.requestMiddleware})(ctx);`),s.push(" var merged = customResult || ctx.payload;"),s.push(" return Object.assign({}, merged, { metadata: Object.assign({}, merged.metadata, domContextProvider()) });"),s.push(" };")):(s.push(" // Send DOM context with each request"),s.push(" widgetConfig.requestMiddleware = function(ctx) {"),s.push(" return Object.assign({}, ctx.payload, { metadata: domContextProvider() });"),s.push(" };")),s.push(""),r!=null&&r.postprocessMessage?s.push(` widgetConfig.postprocessMessage = ${r.postprocessMessage};`):(s.push(" // Markdown postprocessor"),s.push(" widgetConfig.postprocessMessage = function(ctx) {"),s.push(" return agentWidget.markdownPostprocessor(ctx.text);"),s.push(" };")),s.push(""),(r!=null&&r.onFeedback||r!=null&&r.onCopy)&&(s.push(" // Message action callbacks"),s.push(" widgetConfig.messageActions = widgetConfig.messageActions || {};"),r!=null&&r.onFeedback&&s.push(` widgetConfig.messageActions.onFeedback = ${r.onFeedback};`),r!=null&&r.onCopy&&s.push(` widgetConfig.messageActions.onCopy = ${r.onCopy};`),s.push("")),s.push(" return widgetConfig;"," };",""," // Initialize widget"," var init = function() {"," var agentWidget = window.AgentWidget;"," if (!agentWidget) {"," console.error('AgentWidget not loaded');"," return;"," }",""," var widgetConfig = createWidgetConfig(agentWidget);",""," // Load saved state"," var savedState = localStorage.getItem(STORAGE_KEY);"," if (savedState) {"," try {"," var parsed = JSON.parse(savedState);"," widgetConfig.initialMessages = parsed.messages || [];"," } catch (e) {"," console.error('Failed to load saved state:', e);"," }"," }",""," // Initialize widget"," var handle = agentWidget.initAgentWidget({"," target: 'body',"," useShadowDom: false,"," config: widgetConfig"," });",""," // Save state on message events"," window.addEventListener('persona:message', function() {"," var session = handle.getSession ? handle.getSession() : null;"," if (session) {"," localStorage.setItem(STORAGE_KEY, JSON.stringify({"," messages: session.messages,"," timestamp: new Date().toISOString()"," }));"," }"," });",""," // Clear state on clear chat"," window.addEventListener('persona:clear-chat', function() {"," localStorage.removeItem(STORAGE_KEY);"," localStorage.removeItem(PROCESSED_ACTIONS_KEY);"," });"," };",""," // Wait for framework hydration to complete (Next.js, Nuxt, etc.)"," // This prevents the framework from removing dynamically added CSS during reconciliation"," var waitForHydration = function(callback) {"," var executed = false;"," "," var execute = function() {"," if (executed) return;"," executed = true;"," callback();"," };",""," var afterDom = function() {"," // Strategy 1: Use requestIdleCallback if available (best for detecting idle after hydration)"," if (typeof requestIdleCallback !== 'undefined') {"," requestIdleCallback(function() {"," // Double requestAnimationFrame ensures at least one full paint cycle completed"," requestAnimationFrame(function() {"," requestAnimationFrame(execute);"," });"," }, { timeout: 3000 }); // Max wait 3 seconds, then proceed anyway"," } else {"," // Strategy 2: Fallback for Safari (no requestIdleCallback)"," // 300ms is typically enough for hydration on most pages"," setTimeout(execute, 300);"," }"," };",""," if (document.readyState === 'loading') {"," document.addEventListener('DOMContentLoaded', afterDom);"," } else {"," // DOM already ready, but still wait for potential hydration"," afterDom();"," }"," };",""," // Boot sequence: wait for hydration, then load CSS and JS, then initialize"," // This prevents Next.js/Nuxt/etc. from removing dynamically added CSS during reconciliation"," waitForHydration(function() {"," loadCSS();"," loadJS(function() {"," init();"," });"," });","})();","</script>"),s.join(`
139
- `)}var Wa=Fs;0&&(module.exports={AgentWidgetClient,AgentWidgetSession,AttachmentManager,DEFAULT_DARK_THEME,DEFAULT_LIGHT_THEME,DEFAULT_WIDGET_CONFIG,VERSION,attachHeaderToContainer,buildComposer,buildDefaultHeader,buildExpandedHeader,buildHeader,buildHeaderWithLayout,buildMinimalHeader,componentRegistry,createActionManager,createAgentExperience,createBubbleWithLayout,createCSATFeedback,createComponentMiddleware,createComponentStreamParser,createDirectivePostprocessor,createFlexibleJsonStreamParser,createImagePart,createJsonStreamParser,createLocalStorageAdapter,createMarkdownProcessor,createMarkdownProcessorFromConfig,createMessageActions,createNPSFeedback,createPlainTextParser,createRegexJsonParser,createStandardBubble,createTextPart,createTypingIndicator,createXmlParser,defaultActionHandlers,defaultJsonActionParser,directivePostprocessor,escapeHtml,extractComponentDirectiveFromMessage,fileToImagePart,generateAssistantMessageId,generateCodeSnippet,generateMessageId,generateUserMessageId,getDisplayText,getHeaderLayout,getImageParts,hasComponentDirective,hasImages,headerLayouts,initAgentWidget,isComponentDirectiveType,markdownPostprocessor,mergeWithDefaults,normalizeContent,pluginRegistry,renderComponentDirective,renderLoadingIndicatorWithFallback,validateImageFile});
138
+ `)};`,""," // Constants",` var CDN_BASE = 'https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${xn}/dist';`," var STORAGE_KEY = 'chat-widget-state';"," var PROCESSED_ACTIONS_KEY = 'chat-widget-processed-actions';",""," // DOM context provider - extracts page elements for AI context"," var domContextProvider = function() {"," var selectors = {",` products: '[data-product-id], .product-card, .product-item, [role="article"]',`,` buttons: 'button, [role="button"], .btn',`," links: 'a[href]',"," inputs: 'input, textarea, select'"," };",""," var elements = [];"," Object.entries(selectors).forEach(function(entry) {"," var type = entry[0], selector = entry[1];"," document.querySelectorAll(selector).forEach(function(element) {"," if (!(element instanceof HTMLElement)) return;"," var widgetHost = element.closest('.persona-host');"," if (widgetHost) return;"," var text = element.innerText ? element.innerText.trim() : '';"," if (!text) return;",""," var selectorString = element.id ? '#' + element.id :",` element.getAttribute('data-testid') ? '[data-testid="' + element.getAttribute('data-testid') + '"]' :`,` element.getAttribute('data-product-id') ? '[data-product-id="' + element.getAttribute('data-product-id') + '"]' :`," element.tagName.toLowerCase();",""," var elementData = {"," type: type,"," tagName: element.tagName.toLowerCase(),"," selector: selectorString,"," innerText: text.substring(0, 200)"," };",""," if (type === 'links' && element instanceof HTMLAnchorElement && element.href) {"," elementData.href = element.href;"," }"," elements.push(elementData);"," });"," });",""," var counts = elements.reduce(function(acc, el) {"," acc[el.type] = (acc[el.type] || 0) + 1;"," return acc;"," }, {});",""," return {"," page_elements: elements.slice(0, 50),"," page_element_count: elements.length,"," element_types: counts,"," page_url: window.location.href,"," page_title: document.title,"," timestamp: new Date().toISOString()"," };"," };",""," // Load CSS dynamically"," var loadCSS = function() {"," if (document.querySelector('link[data-persona]')) return;"," var link = document.createElement('link');"," link.rel = 'stylesheet';"," link.href = CDN_BASE + '/widget.css';"," link.setAttribute('data-persona', 'true');"," document.head.appendChild(link);"," };",""," // Load JS dynamically"," var loadJS = function(callback) {"," if (window.AgentWidget) { callback(); return; }"," var script = document.createElement('script');"," script.src = CDN_BASE + '/index.global.js';"," script.onload = callback;"," script.onerror = function() { console.error('Failed to load AgentWidget'); };"," document.head.appendChild(script);"," };",""," // Create widget config with advanced features"," var createWidgetConfig = function(agentWidget) {"," var widgetConfig = Object.assign({}, CONFIG);",""];return r!=null&&r.getHeaders&&(s.push(` widgetConfig.getHeaders = ${r.getHeaders};`),s.push("")),r!=null&&r.contextProviders&&(s.push(` widgetConfig.contextProviders = ${r.contextProviders};`),s.push("")),r!=null&&r.streamParser?s.push(` widgetConfig.streamParser = ${r.streamParser};`):(s.push(" // Flexible JSON stream parser for handling structured actions"),s.push(" widgetConfig.streamParser = function() {"),s.push(` return agentWidget.createFlexibleJsonStreamParser(${gl});`),s.push(" };")),s.push(""),r!=null&&r.actionParsers?(s.push(" // Action parsers (custom merged with defaults)"),s.push(` var customParsers = ${r.actionParsers};`),s.push(" widgetConfig.actionParsers = customParsers.concat(["),s.push(" agentWidget.defaultJsonActionParser,"),s.push(` ${la}`),s.push(" ]);")):(s.push(" // Action parsers to detect JSON actions in responses"),s.push(" widgetConfig.actionParsers = ["),s.push(" agentWidget.defaultJsonActionParser,"),s.push(` ${la}`),s.push(" ];")),s.push(""),r!=null&&r.actionHandlers?(s.push(" // Action handlers (custom merged with defaults)"),s.push(` var customHandlers = ${r.actionHandlers};`),s.push(" widgetConfig.actionHandlers = customHandlers.concat(["),s.push(" agentWidget.defaultActionHandlers.message,"),s.push(" agentWidget.defaultActionHandlers.messageAndClick,"),s.push(` ${ca}`),s.push(" ]);")):(s.push(" // Action handlers for navigation and other actions"),s.push(" widgetConfig.actionHandlers = ["),s.push(" agentWidget.defaultActionHandlers.message,"),s.push(" agentWidget.defaultActionHandlers.messageAndClick,"),s.push(` ${ca}`),s.push(" ];")),s.push(""),r!=null&&r.requestMiddleware?(s.push(" // Request middleware (custom merged with DOM context)"),s.push(" widgetConfig.requestMiddleware = function(ctx) {"),s.push(` var customResult = (${r.requestMiddleware})(ctx);`),s.push(" var merged = customResult || ctx.payload;"),s.push(" return Object.assign({}, merged, { metadata: Object.assign({}, merged.metadata, domContextProvider()) });"),s.push(" };")):(s.push(" // Send DOM context with each request"),s.push(" widgetConfig.requestMiddleware = function(ctx) {"),s.push(" return Object.assign({}, ctx.payload, { metadata: domContextProvider() });"),s.push(" };")),s.push(""),r!=null&&r.postprocessMessage?s.push(` widgetConfig.postprocessMessage = ${r.postprocessMessage};`):(s.push(" // Markdown postprocessor"),s.push(" widgetConfig.postprocessMessage = function(ctx) {"),s.push(" return agentWidget.markdownPostprocessor(ctx.text);"),s.push(" };")),s.push(""),(r!=null&&r.onFeedback||r!=null&&r.onCopy)&&(s.push(" // Message action callbacks"),s.push(" widgetConfig.messageActions = widgetConfig.messageActions || {};"),r!=null&&r.onFeedback&&s.push(` widgetConfig.messageActions.onFeedback = ${r.onFeedback};`),r!=null&&r.onCopy&&s.push(` widgetConfig.messageActions.onCopy = ${r.onCopy};`),s.push("")),s.push(" return widgetConfig;"," };",""," // Initialize widget"," var init = function() {"," var agentWidget = window.AgentWidget;"," if (!agentWidget) {"," console.error('AgentWidget not loaded');"," return;"," }",""," var widgetConfig = createWidgetConfig(agentWidget);",""," // Load saved state"," var savedState = localStorage.getItem(STORAGE_KEY);"," if (savedState) {"," try {"," var parsed = JSON.parse(savedState);"," widgetConfig.initialMessages = parsed.messages || [];"," } catch (e) {"," console.error('Failed to load saved state:', e);"," }"," }",""," // Initialize widget"," var handle = agentWidget.initAgentWidget({"," target: 'body',"," useShadowDom: false,"," config: widgetConfig"," });",""," // Save state on message events"," window.addEventListener('persona:message', function() {"," var session = handle.getSession ? handle.getSession() : null;"," if (session) {"," localStorage.setItem(STORAGE_KEY, JSON.stringify({"," messages: session.messages,"," timestamp: new Date().toISOString()"," }));"," }"," });",""," // Clear state on clear chat"," window.addEventListener('persona:clear-chat', function() {"," localStorage.removeItem(STORAGE_KEY);"," localStorage.removeItem(PROCESSED_ACTIONS_KEY);"," });"," };",""," // Wait for framework hydration to complete (Next.js, Nuxt, etc.)"," // This prevents the framework from removing dynamically added CSS during reconciliation"," var waitForHydration = function(callback) {"," var executed = false;"," "," var execute = function() {"," if (executed) return;"," executed = true;"," callback();"," };",""," var afterDom = function() {"," // Strategy 1: Use requestIdleCallback if available (best for detecting idle after hydration)"," if (typeof requestIdleCallback !== 'undefined') {"," requestIdleCallback(function() {"," // Double requestAnimationFrame ensures at least one full paint cycle completed"," requestAnimationFrame(function() {"," requestAnimationFrame(execute);"," });"," }, { timeout: 3000 }); // Max wait 3 seconds, then proceed anyway"," } else {"," // Strategy 2: Fallback for Safari (no requestIdleCallback)"," // 300ms is typically enough for hydration on most pages"," setTimeout(execute, 300);"," }"," };",""," if (document.readyState === 'loading') {"," document.addEventListener('DOMContentLoaded', afterDom);"," } else {"," // DOM already ready, but still wait for potential hydration"," afterDom();"," }"," };",""," // Boot sequence: wait for hydration, then load CSS and JS, then initialize"," // This prevents Next.js/Nuxt/etc. from removing dynamically added CSS during reconciliation"," waitForHydration(function() {"," loadCSS();"," loadJS(function() {"," init();"," });"," });","})();","</script>"),s.join(`
139
+ `)}var Cl=gr;0&&(module.exports={AgentWidgetClient,AgentWidgetSession,AttachmentManager,DEFAULT_DARK_THEME,DEFAULT_LIGHT_THEME,DEFAULT_WIDGET_CONFIG,VERSION,attachHeaderToContainer,buildComposer,buildDefaultHeader,buildExpandedHeader,buildHeader,buildHeaderWithLayout,buildMinimalHeader,componentRegistry,createActionManager,createAgentExperience,createBubbleWithLayout,createCSATFeedback,createComponentMiddleware,createComponentStreamParser,createDirectivePostprocessor,createFlexibleJsonStreamParser,createImagePart,createJsonStreamParser,createLocalStorageAdapter,createMarkdownProcessor,createMarkdownProcessorFromConfig,createMessageActions,createNPSFeedback,createPlainTextParser,createRegexJsonParser,createStandardBubble,createTextPart,createTypingIndicator,createXmlParser,defaultActionHandlers,defaultJsonActionParser,directivePostprocessor,escapeHtml,extractComponentDirectiveFromMessage,fileToImagePart,generateAssistantMessageId,generateCodeSnippet,generateMessageId,generateUserMessageId,getDisplayText,getHeaderLayout,getImageParts,hasComponentDirective,hasImages,headerLayouts,initAgentWidget,isComponentDirectiveType,markdownPostprocessor,mergeWithDefaults,normalizeContent,pluginRegistry,renderComponentDirective,renderLoadingIndicatorWithFallback,validateImageFile});
140
140
  //# sourceMappingURL=index.cjs.map