@runtypelabs/persona 1.43.2 → 1.43.3
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 +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.global.js +1 -1
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
flex-shrink: 0 !important;
|
|
58
58
|
border-top: none !important;
|
|
59
59
|
padding: 8px 16px 12px 16px !important;
|
|
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.2",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:["ai","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) => {
|
|
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.3",description:"Themeable, pluggable 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:["ai","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
|