@runtypelabs/persona 2.3.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{Marked as Ac}from"marked";var Ec=e=>{if(e)return e},Ao=e=>{var s,o;let n=e==null?void 0:e.markedOptions,t=new Ac({gfm:(s=n==null?void 0:n.gfm)!=null?s:!0,breaks:(o=n==null?void 0:n.breaks)!=null?o:!0,pedantic:n==null?void 0:n.pedantic,silent:n==null?void 0:n.silent}),r=Ec(e==null?void 0:e.renderer);return r&&t.use({renderer:r}),a=>t.parse(a)},lr=e=>e?Ao({markedOptions:e.options,renderer:e.renderer}):Ao(),Tc=Ao(),Ki=e=>Tc(e),_r=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),Yi=e=>e.replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),Ji=e=>`%%FORM_PLACEHOLDER_${e}%%`,Gi=(e,n)=>{let t=e;return t=t.replace(/<Directive>([\s\S]*?)<\/Directive>/gi,(r,s)=>{try{let o=JSON.parse(s.trim());if(o&&typeof o=="object"&&o.component==="form"&&o.type){let a=Ji(n.length);return n.push({token:a,type:String(o.type)}),a}}catch{return r}return r}),t=t.replace(/<Form\s+type="([^"]+)"\s*\/>/gi,(r,s)=>{let o=Ji(n.length);return n.push({token:o,type:s}),o}),t},Mc=e=>{let n=lr(e);return t=>{let r=[],s=Gi(t,r),o=n(s);return r.forEach(({token:a,type:i})=>{let d=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),g=`<div class="persona-form-directive" data-tv-form="${Yi(i)}"></div>`;o=o.replace(d,g)}),o}},kc=e=>{let n=[],t=Gi(e,n),r=Ki(t);return n.forEach(({token:s,type:o})=>{let a=new RegExp(s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),d=`<div class="persona-form-directive" data-tv-form="${Yi(o)}"></div>`;r=r.replace(a,d)}),r};import Lc from"dompurify";var Pc={ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","p","br","hr","div","span","ul","ol","li","dl","dt","dd","strong","em","b","i","u","s","del","ins","mark","small","sub","sup","abbr","kbd","var","samp","code","a","img","blockquote","pre","details","summary","table","thead","tbody","tfoot","tr","th","td","caption","colgroup","col","input","label","select","option","textarea","button"],ALLOWED_ATTR:["href","src","alt","title","target","rel","loading","width","height","colspan","rowspan","scope","class","id","type","name","value","placeholder","disabled","checked","for","aria-label","aria-hidden","aria-expanded","role","tabindex","data-tv-form","data-message-id","data-persona-component-directive","data-preserve-animation","data-persona-instance"]},Ic=/^data:image\/(?:png|jpe?g|gif|webp|bmp|x-icon|avif)/i,Xi=()=>{let e=Lc(typeof window!="undefined"?window:void 0);return e.addHook("uponSanitizeAttribute",(n,t)=>{if(t.attrName==="src"||t.attrName==="href"){let r=t.attrValue;r.toLowerCase().startsWith("data:")&&!Ic.test(r)&&(t.attrValue="",t.forceKeepAttr=!1)}}),n=>e.sanitize(n,Pc)},jr=e=>e===!1?null:typeof e=="function"?e:Xi();import{parse as Zi,STR as Qi,OBJ as el}from"partial-json";var Eo=e=>e.replace(/\\n/g,`
1
+ import{Marked as Ac}from"marked";var Ec=e=>{if(e)return e},Ao=e=>{var s,o;let n=e==null?void 0:e.markedOptions,t=new Ac({gfm:(s=n==null?void 0:n.gfm)!=null?s:!0,breaks:(o=n==null?void 0:n.breaks)!=null?o:!0,pedantic:n==null?void 0:n.pedantic,silent:n==null?void 0:n.silent}),r=Ec(e==null?void 0:e.renderer);return r&&t.use({renderer:r}),a=>t.parse(a)},lr=e=>e?Ao({markedOptions:e.options,renderer:e.renderer}):Ao(),Tc=Ao(),Ki=e=>Tc(e),_r=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),Yi=e=>e.replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),Ji=e=>`%%FORM_PLACEHOLDER_${e}%%`,Gi=(e,n)=>{let t=e;return t=t.replace(/<Directive>([\s\S]*?)<\/Directive>/gi,(r,s)=>{try{let o=JSON.parse(s.trim());if(o&&typeof o=="object"&&o.component==="form"&&o.type){let a=Ji(n.length);return n.push({token:a,type:String(o.type)}),a}}catch{return r}return r}),t=t.replace(/<Form\s+type="([^"]+)"\s*\/>/gi,(r,s)=>{let o=Ji(n.length);return n.push({token:o,type:s}),o}),t},Mc=e=>{let n=lr(e);return t=>{let r=[],s=Gi(t,r),o=n(s);return r.forEach(({token:a,type:i})=>{let d=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),g=`<div class="persona-form-directive" data-tv-form="${Yi(i)}"></div>`;o=o.replace(d,g)}),o}},kc=e=>{let n=[],t=Gi(e,n),r=Ki(t);return n.forEach(({token:s,type:o})=>{let a=new RegExp(s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),d=`<div class="persona-form-directive" data-tv-form="${Yi(o)}"></div>`;r=r.replace(a,d)}),r};import Lc from"dompurify";var Pc={ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","p","br","hr","div","span","ul","ol","li","dl","dt","dd","strong","em","b","i","u","s","del","ins","mark","small","sub","sup","abbr","kbd","var","samp","code","a","img","blockquote","pre","details","summary","table","thead","tbody","tfoot","tr","th","td","caption","colgroup","col","input","label","select","option","textarea","button"],ALLOWED_ATTR:["href","src","alt","title","target","rel","loading","width","height","colspan","rowspan","scope","class","id","type","name","value","placeholder","disabled","checked","for","aria-label","aria-hidden","aria-expanded","role","tabindex","data-tv-form","data-message-id","data-persona-component-directive","data-preserve-animation","data-persona-instance"]},Ic=/^data:image\/(?:png|jpe?g|gif|webp|bmp|x-icon|avif)/i,Xi=()=>{let e=Lc(typeof window!="undefined"?window:void 0);return e.addHook("uponSanitizeAttribute",(n,t)=>{if(t.attrName==="src"||t.attrName==="href"){let r=t.attrValue;r.toLowerCase().startsWith("data:")&&!Ic.test(r)&&(t.attrValue="",t.keepAttr=!1)}}),n=>e.sanitize(n,Pc)},jr=e=>e===!1?null:typeof e=="function"?e:Xi();import{parse as Zi,STR as Qi,OBJ as el}from"partial-json";var Eo=e=>e.replace(/\\n/g,`
2
2
  `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\"),Vr=e=>{if(e===null)return"null";if(e===void 0)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e,null,2)}catch{return String(e)}},Wc=e=>{var a,i;let n=(a=e.completedAt)!=null?a:Date.now(),t=(i=e.startedAt)!=null?i:n,s=(e.durationMs!==void 0?e.durationMs:Math.max(0,n-t))/1e3;return s<.1?"Thought for <0.1 seconds":`Thought for ${s>=10?Math.round(s).toString():s.toFixed(1).replace(/\.0$/,"")} seconds`},tl=e=>e.status==="complete"?Wc(e):e.status==="pending"?"Waiting":"",Rc=e=>{var s,o,a;let t=(typeof e.duration=="number"?e.duration:typeof e.durationMs=="number"?e.durationMs:Math.max(0,((s=e.completedAt)!=null?s:Date.now())-((a=(o=e.startedAt)!=null?o:e.completedAt)!=null?a:Date.now())))/1e3;return t<.1?"Used tool for <0.1 seconds":`Used tool for ${t>=10?Math.round(t).toString():t.toFixed(1).replace(/\.0$/,"")} seconds`};var nl=e=>e.status==="complete"?Rc(e):"Using tool...",Hc=()=>{let e=null,n=0,t=r=>{let s=/"text"\s*:\s*"((?:[^"\\]|\\.|")*?)"/,o=r.match(s);if(o&&o[1])try{return o[1].replace(/\\n/g,`
3
3
  `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return o[1]}let a=/"text"\s*:\s*"((?:[^"\\]|\\.)*)/,i=r.match(a);if(i&&i[1])try{return i[1].replace(/\\n/g,`
4
4
  `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return i[1]}return null};return{getExtractedText:()=>e,processChunk:async r=>{if(r.length<=n)return e!==null?{text:e,raw:r}:null;let s=r.trim();if(!s.startsWith("{")&&!s.startsWith("["))return null;let o=t(r);return o!==null&&(e=o),n=r.length,e!==null?{text:e,raw:r}:null},close:async()=>{}}},To=e=>{try{let n=JSON.parse(e);if(n&&typeof n=="object"&&typeof n.text=="string")return n.text}catch{return null}return null},Go=()=>{let e={processChunk:n=>null,getExtractedText:()=>null};return e.__isPlainTextParser=!0,e},Xo=()=>{var n;let e=Hc();return{processChunk:async t=>{let r=t.trim();return!r.startsWith("{")&&!r.startsWith("[")?null:e.processChunk(t)},getExtractedText:e.getExtractedText.bind(e),close:(n=e.close)==null?void 0:n.bind(e)}},Zo=()=>{let e=null,n=0;return{getExtractedText:()=>e,processChunk:t=>{let r=t.trim();if(!r.startsWith("{")&&!r.startsWith("["))return null;if(t.length<=n)return e!==null||e===""?{text:e||"",raw:t}:null;try{let s=Zi(t,Qi|el);s&&typeof s=="object"&&(s.component&&typeof s.component=="string"?e=typeof s.text=="string"?Eo(s.text):"":s.type==="init"&&s.form?e="":typeof s.text=="string"&&(e=Eo(s.text)))}catch{}return n=t.length,e!==null?{text:e,raw:t}:null},close:()=>{}}},Bc=e=>{let n=null,t=0,s=e||(o=>{if(!o||typeof o!="object")return null;let a=i=>typeof i=="string"?Eo(i):null;if(o.component&&typeof o.component=="string")return typeof o.text=="string"?Eo(o.text):"";if(o.type==="init"&&o.form)return"";if(o.action)switch(o.action){case"nav_then_click":return a(o.on_load_text)||a(o.text)||null;case"message":case"message_and_click":case"checkout":return a(o.text)||null;default:return a(o.text)||a(o.display_text)||a(o.message)||null}return a(o.text)||a(o.display_text)||a(o.message)||a(o.content)||null});return{getExtractedText:()=>n,processChunk:o=>{let a=o.trim();if(!a.startsWith("{")&&!a.startsWith("["))return null;if(o.length<=t)return n!==null?{text:n,raw:o}:null;try{let i=Zi(o,Qi|el),d=s(i);d!==null&&(n=d)}catch{}return t=o.length,{text:n||"",raw:o}},close:()=>{}}},Qo=()=>{let e=null;return{processChunk:n=>{if(!n.trim().startsWith("<"))return null;let r=n.match(/<text[^>]*>([\s\S]*?)<\/text>/);return r&&r[1]?(e=r[1],{text:e,raw:n}):null},getExtractedText:()=>e}};var Fc="https://api.runtype.com/v1/dispatch",es="https://api.runtype.com",ts=e=>!!(e.contentParts&&e.contentParts.length>0||e.llmContent&&e.llmContent.trim().length>0||e.rawContent&&e.rawContent.trim().length>0||e.content&&e.content.trim().length>0);function $c(e){switch(e){case"json":return Zo;case"regex-json":return Xo;case"xml":return Qo;default:return Go}}var cr=class{constructor(n={}){this.config=n;this.clientSession=null;this.sessionInitPromise=null;var t,r,s;this.apiUrl=(t=n.apiUrl)!=null?t:Fc,this.headers={"Content-Type":"application/json",...n.headers},this.debug=!!n.debug,this.createStreamParser=(r=n.streamParser)!=null?r:$c(n.parserType),this.contextProviders=(s=n.contextProviders)!=null?s:[],this.requestMiddleware=n.requestMiddleware,this.customFetch=n.customFetch,this.parseSSEEvent=n.parseSSEEvent,this.getHeaders=n.getHeaders}setSSEEventCallback(n){this.onSSEEvent=n}getSSEEventCallback(){return this.onSSEEvent}isClientTokenMode(){return!!this.config.clientToken}isAgentMode(){return!!this.config.agent}getClientApiUrl(n){var r;let t=((r=this.config.apiUrl)==null?void 0:r.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||es;return n==="init"?`${t}/v1/client/init`:`${t}/v1/client/chat`}getClientSession(){return this.clientSession}async initSession(){var n,t;if(!this.isClientTokenMode())throw new Error("initSession() only available in client token mode");if(this.clientSession&&new Date<this.clientSession.expiresAt)return this.clientSession;if(this.sessionInitPromise)return this.sessionInitPromise;this.sessionInitPromise=this._doInitSession();try{let r=await this.sessionInitPromise;return this.clientSession=r,(t=(n=this.config).onSessionInit)==null||t.call(n,r),r}finally{this.sessionInitPromise=null}}async _doInitSession(){var o,a;let n=((a=(o=this.config).getStoredSessionId)==null?void 0:a.call(o))||null,t={token:this.config.clientToken,...this.config.flowId&&{flowId:this.config.flowId},...n&&{sessionId:n}},r=await fetch(this.getClientApiUrl("init"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){let i=await r.json().catch(()=>({error:"Session initialization failed"}));throw r.status===401?new Error(`Invalid client token: ${i.hint||i.error}`):r.status===403?new Error(`Origin not allowed: ${i.hint||i.error}`):new Error(i.error||"Failed to initialize session")}let s=await r.json();return this.config.setStoredSessionId&&this.config.setStoredSessionId(s.sessionId),{sessionId:s.sessionId,expiresAt:new Date(s.expiresAt),flow:s.flow,config:{welcomeMessage:s.config.welcomeMessage,placeholder:s.config.placeholder,theme:s.config.theme}}}clearClientSession(){this.clientSession=null,this.sessionInitPromise=null}getFeedbackApiUrl(){var t;return`${((t=this.config.apiUrl)==null?void 0:t.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||es}/v1/client/feedback`}async sendFeedback(n){var o,a;if(!this.isClientTokenMode())throw new Error("sendFeedback() only available in client token mode");if(!this.getClientSession())throw new Error("No active session. Please initialize session first.");if(["upvote","downvote","copy"].includes(n.type)&&!n.messageId)throw new Error(`messageId is required for ${n.type} feedback type`);if(n.type==="csat"&&(n.rating===void 0||n.rating<1||n.rating>5))throw new Error("CSAT rating must be between 1 and 5");if(n.type==="nps"&&(n.rating===void 0||n.rating<0||n.rating>10))throw new Error("NPS rating must be between 0 and 10");this.debug&&console.debug("[AgentWidgetClient] sending feedback",n);let s=await fetch(this.getFeedbackApiUrl(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!s.ok){let i=await s.json().catch(()=>({error:"Feedback submission failed"}));throw s.status===401?(this.clientSession=null,(a=(o=this.config).onSessionExpired)==null||a.call(o),new Error("Session expired. Please refresh to continue.")):new Error(i.error||"Failed to submit feedback")}}async submitMessageFeedback(n,t){let r=this.getClientSession();if(!r)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:r.sessionId,messageId:n,type:t})}async submitCSATFeedback(n,t){let r=this.getClientSession();if(!r)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:r.sessionId,type:"csat",rating:n,comment:t})}async submitNPSFeedback(n,t){let r=this.getClientSession();if(!r)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:r.sessionId,type:"nps",rating:n,comment:t})}async dispatch(n,t){return this.isAgentMode()?this.dispatchAgent(n,t):this.isClientTokenMode()?this.dispatchClientToken(n,t):this.dispatchProxy(n,t)}async dispatchClientToken(n,t){var s,o,a,i;let r=new AbortController;n.signal&&n.signal.addEventListener("abort",()=>r.abort()),t({type:"status",status:"connecting"});try{let d=await this.initSession();if(new Date>=new Date(d.expiresAt.getTime()-6e4)){this.clientSession=null,(o=(s=this.config).onSessionExpired)==null||o.call(s);let m=new Error("Session expired. Please refresh to continue.");throw t({type:"error",error:m}),m}let c=await this.buildPayload(n.messages),g=c.metadata?Object.fromEntries(Object.entries(c.metadata).filter(([m])=>m!=="sessionId"&&m!=="session_id")):void 0,p={sessionId:d.sessionId,messages:n.messages.filter(ts).map(m=>{var C,v,E;return{id:m.id,role:m.role,content:(E=(v=(C=m.contentParts)!=null?C:m.llmContent)!=null?v:m.rawContent)!=null?E:m.content}}),...n.assistantMessageId&&{assistantMessageId:n.assistantMessageId},...g&&Object.keys(g).length>0&&{metadata:g},...c.inputs&&Object.keys(c.inputs).length>0&&{inputs:c.inputs},...c.context&&{context:c.context}};this.debug&&console.debug("[AgentWidgetClient] client token dispatch",p);let f=await fetch(this.getClientApiUrl("chat"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p),signal:r.signal});if(!f.ok){let m=await f.json().catch(()=>({error:"Chat request failed"}));if(f.status===401){this.clientSession=null,(i=(a=this.config).onSessionExpired)==null||i.call(a);let v=new Error("Session expired. Please refresh to continue.");throw t({type:"error",error:v}),v}if(f.status===429){let v=new Error(m.hint||"Message limit reached for this session.");throw t({type:"error",error:v}),v}let C=new Error(m.error||"Failed to send message");throw t({type:"error",error:C}),C}if(!f.body){let m=new Error("No response body received");throw t({type:"error",error:m}),m}t({type:"status",status:"connected"});try{await this.streamResponse(f.body,t,n.assistantMessageId)}finally{t({type:"status",status:"idle"})}}catch(d){let c=d instanceof Error?d:new Error(String(d));throw!c.message.includes("Session expired")&&!c.message.includes("Message limit")&&t({type:"error",error:c}),c}}async dispatchProxy(n,t){let r=new AbortController;n.signal&&n.signal.addEventListener("abort",()=>r.abort()),t({type:"status",status:"connecting"});let s=await this.buildPayload(n.messages);this.debug&&console.debug("[AgentWidgetClient] dispatch payload",s);let o={...this.headers};if(this.getHeaders)try{let i=await this.getHeaders();o={...o,...i}}catch(i){typeof console!="undefined"&&console.error("[AgentWidget] getHeaders error:",i)}let a;if(this.customFetch)try{a=await this.customFetch(this.apiUrl,{method:"POST",headers:o,body:JSON.stringify(s),signal:r.signal},s)}catch(i){let d=i instanceof Error?i:new Error(String(i));throw t({type:"error",error:d}),d}else a=await fetch(this.apiUrl,{method:"POST",headers:o,body:JSON.stringify(s),signal:r.signal});if(!a.ok||!a.body){let i=new Error(`Chat backend request failed: ${a.status} ${a.statusText}`);throw t({type:"error",error:i}),i}t({type:"status",status:"connected"});try{await this.streamResponse(a.body,t)}finally{t({type:"status",status:"idle"})}}async dispatchAgent(n,t){let r=new AbortController;n.signal&&n.signal.addEventListener("abort",()=>r.abort()),t({type:"status",status:"connecting"});let s=await this.buildAgentPayload(n.messages);this.debug&&console.debug("[AgentWidgetClient] agent dispatch payload",s);let o={...this.headers};if(this.getHeaders)try{let i=await this.getHeaders();o={...o,...i}}catch(i){typeof console!="undefined"&&console.error("[AgentWidget] getHeaders error:",i)}let a;if(this.customFetch)try{a=await this.customFetch(this.apiUrl,{method:"POST",headers:o,body:JSON.stringify(s),signal:r.signal},s)}catch(i){let d=i instanceof Error?i:new Error(String(i));throw t({type:"error",error:d}),d}else a=await fetch(this.apiUrl,{method:"POST",headers:o,body:JSON.stringify(s),signal:r.signal});if(!a.ok||!a.body){let i=new Error(`Agent execution request failed: ${a.status} ${a.statusText}`);throw t({type:"error",error:i}),i}t({type:"status",status:"connected"});try{await this.streamResponse(a.body,t,n.assistantMessageId)}finally{t({type:"status",status:"idle"})}}async processStream(n,t,r){t({type:"status",status:"connected"});try{await this.streamResponse(n,t,r)}finally{t({type:"status",status:"idle"})}}async resolveApproval(n,t){var a;let s=`${((a=this.config.apiUrl)==null?void 0:a.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||es}/v1/agents/${n.agentId}/approve`,o={"Content-Type":"application/json",...this.headers};return this.getHeaders&&Object.assign(o,await this.getHeaders()),fetch(s,{method:"POST",headers:o,body:JSON.stringify({executionId:n.executionId,approvalId:n.approvalId,decision:t,streamResponse:!0})})}async buildAgentPayload(n){if(!this.config.agent)throw new Error("Agent configuration required for agent mode");let t=n.slice().filter(ts).filter(s=>s.role==="user"||s.role==="assistant"||s.role==="system").filter(s=>!s.variant||s.variant==="assistant").sort((s,o)=>{let a=new Date(s.createdAt).getTime(),i=new Date(o.createdAt).getTime();return a-i}).map(s=>{var o,a,i;return{role:s.role,content:(i=(a=(o=s.contentParts)!=null?o:s.llmContent)!=null?a:s.rawContent)!=null?i:s.content,createdAt:s.createdAt}}),r={agent:this.config.agent,messages:t,options:{streamResponse:!0,recordMode:"virtual",...this.config.agentOptions}};if(this.contextProviders.length){let s={};await Promise.all(this.contextProviders.map(async o=>{try{let a=await o({messages:n,config:this.config});a&&typeof a=="object"&&Object.assign(s,a)}catch(a){typeof console!="undefined"&&console.warn("[AgentWidget] Context provider failed:",a)}})),Object.keys(s).length&&(r.context=s)}return r}async buildPayload(n){let r={messages:n.slice().filter(ts).sort((s,o)=>{let a=new Date(s.createdAt).getTime(),i=new Date(o.createdAt).getTime();return a-i}).map(s=>{var o,a,i;return{role:s.role,content:(i=(a=(o=s.contentParts)!=null?o:s.llmContent)!=null?a:s.rawContent)!=null?i:s.content,createdAt:s.createdAt}}),...this.config.flowId&&{flowId:this.config.flowId}};if(this.contextProviders.length){let s={};await Promise.all(this.contextProviders.map(async o=>{try{let a=await o({messages:n,config:this.config});a&&typeof a=="object"&&Object.assign(s,a)}catch(a){typeof console!="undefined"&&console.warn("[AgentWidget] Context provider failed:",a)}})),Object.keys(s).length&&(r.context=s)}if(this.requestMiddleware)try{let s=await this.requestMiddleware({payload:{...r},config:this.config});if(s&&typeof s=="object")return s}catch(s){typeof console!="undefined"&&console.error("[AgentWidget] Request middleware error:",s)}return r}async handleCustomSSEEvent(n,t,r,s,o){if(!this.parseSSEEvent)return!1;try{let a=await this.parseSSEEvent(n);if(a===null)return!1;let i=()=>{if(r.current)return r.current;let d={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"assistant",sequence:o()};return r.current=d,s(d),d};if(a.text!==void 0){let d=i();d.content+=a.text,s(d)}return a.done&&(r.current&&(r.current.streaming=!1,s(r.current)),t({type:"status",status:"idle"})),a.error&&t({type:"error",error:new Error(a.error)}),!0}catch(a){return typeof console!="undefined"&&console.error("[AgentWidget] parseSSEEvent error:",a),!1}}async streamResponse(n,t,r){var ut,Wt,de,ie,qe,j,G,be,ze,X,K,tt,We,Ve,Tt,_t,ce,Je,Me,nt,je,Ze,Rt,Ht,Mt,B,Z,J,_,xe,Le,He,pt,ve,Ce,Be,ue,bt,Zt,un,gn,ro,Pn,Zn,Qe,mn,In,ln,Cr,fn,dt,nn,wn,wr,Qn,Sr,Nn,hn,On,xt,yn,Ar,Wn,bn,H,Rn,Hn,Er,Sn,Dn,Tr,An,En,er,tr,oo,so,ao,Mr,nr,Ue,kr,rn,Kt,io,lo,Lr,_n,Tn,co,po,uo,Jo,jn,rr,gt,or,sr,Pr,Ir,Wr,Rr,Ut,Qt,Mn,Re,Hr,Vn,cn,go,ar,ir,Un,Bn,mo,fo,dn,qn,ho;let s=n.getReader(),o=new TextDecoder,a="",i=Date.now(),d=0,c=()=>i+d++,g=Q=>{let Fe=Q.reasoning?{...Q.reasoning,chunks:[...Q.reasoning.chunks]}:void 0,we=Q.toolCall?{...Q.toolCall,chunks:Q.toolCall.chunks?[...Q.toolCall.chunks]:void 0}:void 0,$e=Q.tools?Q.tools.map(vt=>({...vt,chunks:vt.chunks?[...vt.chunks]:void 0})):void 0;return{...Q,reasoning:Fe,toolCall:we,tools:$e}},p=Q=>{t({type:"message",message:g(Q)})},f=null,m={current:null},C=new Map,v=new Map,E={lastId:null,byStep:new Map},x={lastId:null,byCall:new Map},k=Q=>{if(Q==null)return null;try{return String(Q)}catch{return null}},q=Q=>{var Fe,we,$e,vt,Ot;return k((Ot=(vt=($e=(we=(Fe=Q.stepId)!=null?Fe:Q.step_id)!=null?we:Q.step)!=null?$e:Q.parentId)!=null?vt:Q.flowStepId)!=null?Ot:Q.flow_step_id)},M=Q=>{var Fe,we,$e,vt,Ot,Ct,b;return k((b=(Ct=(Ot=(vt=($e=(we=(Fe=Q.callId)!=null?Fe:Q.call_id)!=null?we:Q.requestId)!=null?$e:Q.request_id)!=null?vt:Q.toolCallId)!=null?Ot:Q.tool_call_id)!=null?Ct:Q.stepId)!=null?b:Q.step_id)},N=()=>f||(f={id:r!=null?r:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:c()},p(f),f),w=(Q,Fe)=>{E.lastId=Fe,Q&&E.byStep.set(Q,Fe)},F=(Q,Fe)=>{var Ot;let we=(Ot=Q.reasoningId)!=null?Ot:Q.id,$e=q(Q);if(we){let Ct=String(we);return w($e,Ct),Ct}if($e){let Ct=E.byStep.get($e);if(Ct)return E.lastId=Ct,Ct}if(E.lastId&&!Fe)return E.lastId;if(!Fe)return null;let vt=`reason-${c()}`;return w($e,vt),vt},re=Q=>{let Fe=C.get(Q);if(Fe)return Fe;let we={id:`reason-${Q}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"reasoning",sequence:c(),reasoning:{id:Q,status:"streaming",chunks:[]}};return C.set(Q,we),p(we),we},Y=(Q,Fe)=>{x.lastId=Fe,Q&&x.byCall.set(Q,Fe)},ae=new Set,z=new Map,ge=new Set,Ie=new Map,Xe=Q=>{if(!Q)return!1;let Fe=Q.replace(/_+/g,"_").replace(/^_|_$/g,"");return Fe==="emit_artifact_markdown"||Fe==="emit_artifact_component"},ye=(Q,Fe)=>{var Ot;let we=(Ot=Q.toolId)!=null?Ot:Q.id,$e=M(Q);if(we){let Ct=String(we);return Y($e,Ct),Ct}if($e){let Ct=x.byCall.get($e);if(Ct)return x.lastId=Ct,Ct}if(x.lastId&&!Fe)return x.lastId;if(!Fe)return null;let vt=`tool-${c()}`;return Y($e,vt),vt},ee=Q=>{let Fe=v.get(Q);if(Fe)return Fe;let we={id:`tool-${Q}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"tool",sequence:c(),toolCall:{id:Q,status:"pending"}};return v.set(Q,we),p(we),we},te=Q=>{if(typeof Q=="number"&&Number.isFinite(Q))return Q;if(typeof Q=="string"){let Fe=Number(Q);if(!Number.isNaN(Fe)&&Number.isFinite(Fe))return Fe;let we=Date.parse(Q);if(!Number.isNaN(we))return we}return Date.now()},D=Q=>{if(typeof Q=="string")return Q;if(Q==null)return"";try{return JSON.stringify(Q)}catch{return String(Q)}},U=new Map,oe=new Map,he=null,ht=new Map,at=(ut=this.config.iterationDisplay)!=null?ut:"separate";for(;;){let{done:Q,value:Fe}=await s.read();if(Q)break;a+=o.decode(Fe,{stream:!0});let we=a.split(`
@@ -17,7 +17,7 @@ import{Marked as Ac}from"marked";var Ec=e=>{if(e)return e},Ao=e=>{var s,o;let n=
17
17
  <svg class="persona-feedback-star" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
18
18
  <polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon>
19
19
  </svg>
20
- `,F.addEventListener("click",()=>{p=w,x.forEach((re,Y)=>{let ae=Y<w;re.classList.toggle("selected",ae),re.setAttribute("aria-checked",Y===w-1?"true":"false")})}),x.push(F),E.appendChild(F)}f.appendChild(E);let k=null;if(d){let w=document.createElement("div");w.className="persona-feedback-comment-container",k=document.createElement("textarea"),k.className="persona-feedback-comment",k.placeholder=o,k.rows=3,k.setAttribute("aria-label","Additional comments"),w.appendChild(k),f.appendChild(w)}let q=document.createElement("div");q.className="persona-feedback-actions";let M=document.createElement("button");M.type="button",M.className="persona-feedback-btn persona-feedback-btn-skip",M.textContent=i,M.addEventListener("click",()=>{t==null||t(),g.remove()});let N=document.createElement("button");return N.type="button",N.className="persona-feedback-btn persona-feedback-btn-submit",N.textContent=a,N.addEventListener("click",async()=>{if(p===null){E.classList.add("persona-feedback-shake"),setTimeout(()=>E.classList.remove("persona-feedback-shake"),500);return}N.disabled=!0,N.textContent="Submitting...";try{let w=(k==null?void 0:k.value.trim())||void 0;await n(p,w),g.remove()}catch(w){N.disabled=!1,N.textContent=a,console.error("[CSAT Feedback] Failed to submit:",w)}}),q.appendChild(M),q.appendChild(N),f.appendChild(q),g.appendChild(f),g}function Ms(e){let{onSubmit:n,onDismiss:t,title:r="How likely are you to recommend us?",subtitle:s="On a scale of 0 to 10",commentPlaceholder:o="What could we do better? (optional)...",submitText:a="Submit",skipText:i="Skip",showComment:d=!0,lowLabel:c="Not likely",highLabel:g="Very likely"}=e,p=document.createElement("div");p.className="persona-feedback-container persona-feedback-nps",p.setAttribute("role","dialog"),p.setAttribute("aria-label","Net Promoter Score feedback");let f=null,m=document.createElement("div");m.className="persona-feedback-content";let C=document.createElement("div");C.className="persona-feedback-header";let v=document.createElement("h3");v.className="persona-feedback-title",v.textContent=r,C.appendChild(v);let E=document.createElement("p");E.className="persona-feedback-subtitle",E.textContent=s,C.appendChild(E),m.appendChild(C);let x=document.createElement("div");x.className="persona-feedback-rating persona-feedback-rating-nps",x.setAttribute("role","radiogroup"),x.setAttribute("aria-label","Likelihood rating from 0 to 10");let k=document.createElement("div");k.className="persona-feedback-labels";let q=document.createElement("span");q.className="persona-feedback-label-low",q.textContent=c;let M=document.createElement("span");M.className="persona-feedback-label-high",M.textContent=g,k.appendChild(q),k.appendChild(M);let N=document.createElement("div");N.className="persona-feedback-numbers";let w=[];for(let z=0;z<=10;z++){let ge=document.createElement("button");ge.type="button",ge.className="persona-feedback-rating-btn persona-feedback-number-btn",ge.setAttribute("role","radio"),ge.setAttribute("aria-checked","false"),ge.setAttribute("aria-label",`Rating ${z} out of 10`),ge.textContent=String(z),ge.dataset.rating=String(z),z<=6?ge.classList.add("persona-feedback-detractor"):z<=8?ge.classList.add("persona-feedback-passive"):ge.classList.add("persona-feedback-promoter"),ge.addEventListener("click",()=>{f=z,w.forEach((Ie,Xe)=>{Ie.classList.toggle("selected",Xe===z),Ie.setAttribute("aria-checked",Xe===z?"true":"false")})}),w.push(ge),N.appendChild(ge)}x.appendChild(k),x.appendChild(N),m.appendChild(x);let F=null;if(d){let z=document.createElement("div");z.className="persona-feedback-comment-container",F=document.createElement("textarea"),F.className="persona-feedback-comment",F.placeholder=o,F.rows=3,F.setAttribute("aria-label","Additional comments"),z.appendChild(F),m.appendChild(z)}let re=document.createElement("div");re.className="persona-feedback-actions";let Y=document.createElement("button");Y.type="button",Y.className="persona-feedback-btn persona-feedback-btn-skip",Y.textContent=i,Y.addEventListener("click",()=>{t==null||t(),p.remove()});let ae=document.createElement("button");return ae.type="button",ae.className="persona-feedback-btn persona-feedback-btn-submit",ae.textContent=a,ae.addEventListener("click",async()=>{if(f===null){N.classList.add("persona-feedback-shake"),setTimeout(()=>N.classList.remove("persona-feedback-shake"),500);return}ae.disabled=!0,ae.textContent="Submitting...";try{let z=(F==null?void 0:F.value.trim())||void 0;await n(f,z),p.remove()}catch(z){ae.disabled=!1,ae.textContent=a,console.error("[NPS Feedback] Failed to submit:",z)}}),re.appendChild(Y),re.appendChild(ae),m.appendChild(re),p.appendChild(m),p}var xr="persona-chat-history",Gd=30*1e3,Xd={"image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","image/bmp":"bmp","image/tiff":"tiff"};function Zd(e){var r,s,o;if(!e)return[];let n=[],t=Array.from((r=e.items)!=null?r:[]);for(let a of t){if(a.kind!=="file"||!a.type.startsWith("image/"))continue;let i=a.getAsFile();if(!i)continue;if(i.name){n.push(i);continue}let d=(s=Xd[i.type])!=null?s:"png";n.push(new File([i],`clipboard-image-${Date.now()}.${d}`,{type:i.type,lastModified:Date.now()}))}if(n.length>0)return n;for(let a of Array.from((o=e.files)!=null?o:[]))a.type.startsWith("image/")&&n.push(a);return n}function Qd(e){var n,t,r,s,o,a,i,d,c;return e?e===!0?{storage:"session",keyPrefix:"persona-",persist:{openState:!0,voiceState:!0,focusInput:!0},clearOnChatClear:!0}:{storage:(n=e.storage)!=null?n:"session",keyPrefix:(t=e.keyPrefix)!=null?t:"persona-",persist:{openState:(s=(r=e.persist)==null?void 0:r.openState)!=null?s:!0,voiceState:(a=(o=e.persist)==null?void 0:o.voiceState)!=null?a:!0,focusInput:(d=(i=e.persist)==null?void 0:i.focusInput)!=null?d:!0},clearOnChatClear:(c=e.clearOnChatClear)!=null?c:!0}:null}function ep(e){try{let n=e==="local"?localStorage:sessionStorage,t="__persist_test__";return n.setItem(t,"1"),n.removeItem(t),n}catch{return null}}var ks=e=>!e||typeof e!="object"?{}:{...e},Kl=e=>e.map(n=>({...n,streaming:!1})),Yl=(e,n,t)=>{let r=e!=null&&e.markdown?lr(e.markdown):null,s=jr(e==null?void 0:e.sanitize);return o=>{var c,g,p;let a=(c=o.text)!=null?c:"",i=(g=o.message.rawContent)!=null?g:null;if(n){let f=n.process({text:a,raw:i!=null?i:a,message:o.message,streaming:o.streaming});f!==null&&(a=f.text,f.persist||(o.message.__skipPersist=!0),f.resubmit&&!o.streaming&&t&&t())}let d;return e!=null&&e.postprocessMessage?d=e.postprocessMessage({...o,text:a,raw:(p=i!=null?i:o.text)!=null?p:""}):r?d=r(a):d=_r(a),s?s(d):d}},Ls=(e,n,t)=>{var le,Se,ot,kt,wt,Bt,Lt,st,lt,At,ct,Ft,Yt,on,Fs,$s,Ns,Os,Ds,_s,js,Vs,Us,qs,zs,Js,Ks,Ys,Gs,Xs,Zs,Qs,ea,ta,na,ra,oa,sa;e.id&&e.id!=="persona-root"&&!e.getAttribute("data-persona-instance")&&e.setAttribute("data-persona-instance",e.id),e.id="persona-root";let r=xs(n),s=Fo.getForInstance(r.plugins);r.components&&$n.registerAll(r.components);let o=zl(),a=(le=r.storageAdapter)!=null?le:Cs(),i={},d=null,c=l=>{if(r.onStateLoaded)try{return r.onStateLoaded(l)}catch(u){typeof console!="undefined"&&console.error("[AgentWidget] onStateLoaded hook failed:",u)}return l};if(a!=null&&a.load)try{let l=a.load();if(l&&typeof l.then=="function")d=l.then(u=>{let y=u!=null?u:{messages:[],metadata:{}};return c(y)});else{let u=l!=null?l:{messages:[],metadata:{}},y=c(u);y.metadata&&(i=ks(y.metadata)),(Se=y.messages)!=null&&Se.length&&(r={...r,initialMessages:y.messages})}}catch(l){typeof console!="undefined"&&console.error("[AgentWidget] Failed to load stored state:",l)}else if(r.onStateLoaded)try{let l=c({messages:[],metadata:{}});(ot=l.messages)!=null&&ot.length&&(r={...r,initialMessages:l.messages})}catch(l){typeof console!="undefined"&&console.error("[AgentWidget] onStateLoaded hook failed:",l)}let g=()=>i,p=l=>{var y;i=(y=l({...i}))!=null?y:{},Lr()},f=r.actionParsers&&r.actionParsers.length?r.actionParsers:[$o],m=r.actionHandlers&&r.actionHandlers.length?r.actionHandlers:[br.message,br.messageAndClick],C=No({parsers:f,handlers:m,getSessionMetadata:g,updateSessionMetadata:p,emit:o.emit,documentRef:typeof document!="undefined"?document:null});C.syncFromMetadata();let v=(wt=(kt=r.launcher)==null?void 0:kt.enabled)!=null?wt:!0,E=(Lt=(Bt=r.launcher)==null?void 0:Bt.autoExpand)!=null?Lt:!1,x=(st=r.autoFocusInput)!=null?st:!1,k=E,q=v,M=(At=(lt=r.layout)==null?void 0:lt.header)==null?void 0:At.layout,N=!1,w=v?E:!0,F=!1,re=null,Y=()=>{F=!0,re&&clearTimeout(re),re=setTimeout(()=>{F&&(typeof console!="undefined"&&console.warn("[AgentWidget] Resubmit requested but no injection occurred within 10s"),F=!1)},1e4)},ae=Yl(r,C,Y),z=(Ft=(ct=r.features)==null?void 0:ct.showReasoning)!=null?Ft:!0,ge=(on=(Yt=r.features)==null?void 0:Yt.showToolCalls)!=null?on:!0,Ie=($s=(Fs=r.features)==null?void 0:Fs.showEventStreamToggle)!=null?$s:!1,ye=`${(Os=typeof r.persistState=="object"?(Ns=r.persistState)==null?void 0:Ns.keyPrefix:void 0)!=null?Os:"persona-"}event-stream`,ee=Ie?new eo(ye):null,te=(js=(_s=(Ds=r.features)==null?void 0:Ds.eventStream)==null?void 0:_s.maxEvents)!=null?js:2e3,D=Ie?new Qr(te,ee):null,U=null,oe=!1,he=null,ht=0;ee==null||ee.open().then(()=>D==null?void 0:D.restore()).catch(l=>{r.debug&&console.warn("[AgentWidget] IndexedDB not available for event stream:",l)});let at={onCopy:l=>{var u,y;o.emit("message:copy",l),H!=null&&H.isClientTokenMode()&&H.submitMessageFeedback(l.id,"copy").catch(S=>{r.debug&&console.error("[AgentWidget] Failed to submit copy feedback:",S)}),(y=(u=r.messageActions)==null?void 0:u.onCopy)==null||y.call(u,l)},onFeedback:l=>{var u,y;o.emit("message:feedback",l),H!=null&&H.isClientTokenMode()&&H.submitMessageFeedback(l.messageId,l.type).catch(S=>{r.debug&&console.error("[AgentWidget] Failed to submit feedback:",S)}),(y=(u=r.messageActions)==null?void 0:u.onFeedback)==null||y.call(u,l)}},ut=(Vs=r.statusIndicator)!=null?Vs:{},Wt=l=>{var u,y,S,R;return l==="idle"?(u=ut.idleText)!=null?u:Vt.idle:l==="connecting"?(y=ut.connectingText)!=null?y:Vt.connecting:l==="connected"?(S=ut.connectedText)!=null?S:Vt.connected:l==="error"?(R=ut.errorText)!=null?R:Vt.error:Vt[l]},{wrapper:de,panel:ie}=Tl(r),qe=Ml(r,v),{container:j,body:G,messagesWrapper:be,suggestions:ze,textarea:X,sendButton:K,sendButtonWrapper:tt,composerForm:We,statusText:Ve,introTitle:Tt,introSubtitle:_t,closeButton:ce,iconHolder:Je,headerTitle:Me,headerSubtitle:nt,header:je,footer:Ze,actionsRow:Rt,leftActions:Ht,rightActions:Mt}=qe,B=qe.micButton,Z=qe.micButtonWrapper,J=qe.attachmentButton,_=qe.attachmentButtonWrapper,xe=qe.attachmentInput,Le=qe.attachmentPreviewsContainer,He=null,pt=null,ve=s.find(l=>l.renderHeader);if(ve!=null&&ve.renderHeader){let l=ve.renderHeader({config:r,defaultRenderer:()=>{let u=Fn({config:r,showClose:v});return gr(j,u,r),u.header},onClose:()=>gt(!1,"user")});if(l){let u=j.querySelector(".persona-border-b-persona-divider");u&&(u.replaceWith(l),je=l)}}let Ce=()=>{var u,y,S,R;if(!D)return;if(oe=!0,!U&&D&&(U=Hl({buffer:D,getFullHistory:()=>D.getAllFromStore(),onClose:()=>Be(),config:r,plugins:s})),U&&(G.style.display="none",(u=Ze.parentNode)==null||u.insertBefore(U.element,Ze),U.update()),ue){ue.classList.remove("persona-text-persona-muted"),ue.classList.add("persona-text-persona-accent"),ue.style.boxShadow="inset 0 0 0 1.5px var(--persona-accent, #3b82f6)";let L=(R=(S=(y=r.features)==null?void 0:y.eventStream)==null?void 0:S.classNames)==null?void 0:R.toggleButtonActive;L&&L.split(/\s+/).forEach(P=>P&&ue.classList.add(P))}let l=()=>{if(!oe)return;let L=Date.now();L-ht>=200&&(U==null||U.update(),ht=L),he=requestAnimationFrame(l)};ht=0,he=requestAnimationFrame(l),o.emit("eventStream:opened",{timestamp:Date.now()})},Be=()=>{var l,u,y;if(oe){if(oe=!1,U&&U.element.remove(),G.style.display="",ue){ue.classList.remove("persona-text-persona-accent"),ue.classList.add("persona-text-persona-muted"),ue.style.boxShadow="";let S=(y=(u=(l=r.features)==null?void 0:l.eventStream)==null?void 0:u.classNames)==null?void 0:y.toggleButtonActive;S&&S.split(/\s+/).forEach(R=>R&&ue.classList.remove(R))}he!==null&&(cancelAnimationFrame(he),he=null),o.emit("eventStream:closed",{timestamp:Date.now()})}},ue=null;if(Ie){let l=(qs=(Us=r.features)==null?void 0:Us.eventStream)==null?void 0:qs.classNames,u="persona-inline-flex persona-items-center persona-justify-center persona-rounded-full persona-text-persona-muted hover:persona-bg-gray-100 persona-cursor-pointer persona-border-none persona-bg-transparent persona-p-1"+(l!=null&&l.toggleButton?" "+l.toggleButton:"");ue=h("button",u),ue.style.width="28px",ue.style.height="28px",ue.type="button",ue.setAttribute("aria-label","Event Stream"),ue.title="Event Stream";let y=me("activity","18px","currentColor",1.5);y&&ue.appendChild(y);let S=qe.clearChatButtonWrapper,R=qe.closeButtonWrapper,L=S||R;L&&L.parentNode===je?je.insertBefore(ue,L):je.appendChild(ue),ue.addEventListener("click",()=>{oe?Be():Ce()})}let bt=l=>{var S,R,L;let u=r.attachments;if(!(u!=null&&u.enabled))return;let y=l.querySelector(".persona-attachment-previews");if(!y){y=h("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2"),y.style.display="none";let P=l.querySelector("[data-persona-composer-form]");P!=null&&P.parentNode?P.parentNode.insertBefore(y,P):l.insertBefore(y,l.firstChild)}if(!l.querySelector('input[type="file"]')){let P=h("input");P.type="file",P.accept=((S=u.allowedTypes)!=null?S:kn).join(","),P.multiple=((R=u.maxFiles)!=null?R:4)>1,P.style.display="none",P.setAttribute("aria-label",(L=u.buttonTooltipText)!=null?L:"Attach files"),l.appendChild(P)}},Zt=s.find(l=>l.renderComposer);if(Zt!=null&&Zt.renderComposer){let l=r.composer,u=Zt.renderComposer({config:r,defaultRenderer:()=>Xr({config:r}).footer,onSubmit:y=>{H&&!H.isStreaming()&&H.sendMessage(y)},streaming:!1,disabled:!1,openAttachmentPicker:()=>{xe==null||xe.click()},models:l==null?void 0:l.models,selectedModelId:l==null?void 0:l.selectedModelId,onModelChange:y=>{r.composer={...r.composer,selectedModelId:y}},onVoiceToggle:((zs=r.voiceRecognition)==null?void 0:zs.enabled)===!0?()=>{pt==null||pt()}:void 0});u&&(Ze.replaceWith(u),Ze=u)}let un=l=>{let u=l.querySelector("[data-persona-composer-form]"),y=l.querySelector("[data-persona-composer-input]"),S=l.querySelector("[data-persona-composer-submit]"),R=l.querySelector("[data-persona-composer-mic]"),L=l.querySelector("[data-persona-composer-status]");u&&(We=u),y&&(X=y),S&&(K=S),R&&(B=R,Z=R.parentElement),L&&(Ve=L);let P=l.querySelector(".persona-mb-3.persona-flex.persona-flex-wrap.persona-gap-2");P&&(ze=P);let V=l.querySelector(".persona-attachment-button");V&&(J=V,_=V.parentElement),xe=l.querySelector('input[type="file"]'),Le=l.querySelector(".persona-attachment-previews");let $=l.querySelector(".persona-widget-composer .persona-flex.persona-items-center.persona-justify-between");$&&(Rt=$)};bt(Ze),un(Ze);let gn=(Js=r.layout)==null?void 0:Js.contentMaxWidth;gn&&We&&(We.style.maxWidth=gn,We.style.marginLeft="auto",We.style.marginRight="auto"),(Ks=r.attachments)!=null&&Ks.enabled&&xe&&Le&&(He=ur.fromConfig(r.attachments),He.setPreviewsContainer(Le),xe.addEventListener("change",l=>{let u=l.target;He==null||He.handleFileSelect(u.files),u.value=""})),(()=>{var S,R;let l=(R=(S=r.layout)==null?void 0:S.slots)!=null?R:{},u=L=>{switch(L){case"body-top":return j.querySelector(".persona-rounded-2xl.persona-bg-persona-surface.persona-p-6")||null;case"messages":return be;case"footer-top":return ze;case"composer":return We;case"footer-bottom":return Ve;default:return null}},y=(L,P)=>{var V;switch(L){case"header-left":case"header-center":case"header-right":if(L==="header-left")je.insertBefore(P,je.firstChild);else if(L==="header-right")je.appendChild(P);else{let $=je.querySelector(".persona-flex-col");$?(V=$.parentNode)==null||V.insertBefore(P,$.nextSibling):je.appendChild(P)}break;case"body-top":{let $=G.querySelector(".persona-rounded-2xl.persona-bg-persona-surface.persona-p-6");$?$.replaceWith(P):G.insertBefore(P,G.firstChild);break}case"body-bottom":G.appendChild(P);break;case"footer-top":ze.replaceWith(P);break;case"footer-bottom":Ve.replaceWith(P);break;default:break}};for(let[L,P]of Object.entries(l))if(P)try{let V=P({config:r,defaultContent:()=>u(L)});V&&y(L,V)}catch(V){typeof console!="undefined"&&console.error(`[AgentWidget] Error rendering slot "${L}":`,V)}})();let Pn=l=>{let y=l.target.closest('button[data-expand-header="true"]');if(!y)return;let S=y.closest(".vanilla-reasoning-bubble, .vanilla-tool-bubble");if(!S)return;let R=S.getAttribute("data-message-id");if(!R)return;let L=y.getAttribute("data-bubble-type");L==="reasoning"?(fr.has(R)?fr.delete(R):fr.add(R),Il(R,S)):L==="tool"&&(hr.has(R)?hr.delete(R):hr.add(R),Wl(R,S,r))};be.addEventListener("pointerdown",l=>{l.target.closest('button[data-expand-header="true"]')&&(l.preventDefault(),Pn(l))}),be.addEventListener("keydown",l=>{let u=l.target;(l.key==="Enter"||l.key===" ")&&u.closest('button[data-expand-header="true"]')&&(l.preventDefault(),Pn(l))});let Zn=new Map;be.addEventListener("click",l=>{var P;let y=l.target.closest(".persona-message-action-btn[data-action]");if(!y)return;l.preventDefault(),l.stopPropagation();let S=y.closest("[data-actions-for]");if(!S)return;let R=S.getAttribute("data-actions-for");if(!R)return;let L=y.getAttribute("data-action");if(L==="copy"){let $=H.getMessages().find(se=>se.id===R);if($&&at.onCopy){let se=$.content||"";navigator.clipboard.writeText(se).then(()=>{y.classList.add("persona-message-action-success");let fe=me("check",14,"currentColor",2);fe&&(y.innerHTML="",y.appendChild(fe)),setTimeout(()=>{y.classList.remove("persona-message-action-success");let ke=me("copy",14,"currentColor",2);ke&&(y.innerHTML="",y.appendChild(ke))},2e3)}).catch(fe=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to copy message:",fe)}),at.onCopy($)}}else if(L==="upvote"||L==="downvote")if(((P=Zn.get(R))!=null?P:null)===L)Zn.delete(R),y.classList.remove("persona-message-action-active");else{let se=L==="upvote"?"downvote":"upvote",fe=S.querySelector(`[data-action="${se}"]`);fe&&fe.classList.remove("persona-message-action-active"),Zn.set(R,L),y.classList.add("persona-message-action-active");let Ne=H.getMessages().find(Ae=>Ae.id===R);Ne&&at.onFeedback&&at.onFeedback({type:L,messageId:Ne.id,message:Ne})}}),be.addEventListener("click",l=>{let y=l.target.closest("button[data-approval-action]");if(!y)return;l.preventDefault(),l.stopPropagation();let S=y.closest(".vanilla-approval-bubble");if(!S)return;let R=S.getAttribute("data-message-id");if(!R)return;let L=y.getAttribute("data-approval-action");if(!L)return;let P=L==="approve"?"approved":"denied",$=H.getMessages().find(fe=>fe.id===R);if(!($!=null&&$.approval))return;let se=S.querySelector("[data-approval-buttons]");se&&se.querySelectorAll("button").forEach(ke=>{ke.disabled=!0,ke.style.opacity="0.5",ke.style.cursor="not-allowed"}),H.resolveApproval($.approval,P)});let Qe=null,mn=null,In={artifacts:[],selectedId:null},ln=!1,Cr={current:null};be.addEventListener("click",l=>{var ke,Ne,Ae,I,Te;let y=l.target.closest("[data-download-artifact]");if(!y)return;l.preventDefault(),l.stopPropagation();let S=y.getAttribute("data-download-artifact");if(!S||((Ae=(Ne=(ke=r.features)==null?void 0:ke.artifacts)==null?void 0:Ne.onArtifactAction)==null?void 0:Ae.call(Ne,{type:"download",artifactId:S}))===!0)return;let L=H.getArtifactById(S),P=L==null?void 0:L.markdown,V=(L==null?void 0:L.title)||"artifact";if(!P){let Ee=y.closest("[data-open-artifact]"),ne=Ee==null?void 0:Ee.closest("[data-message-id]"),Pe=ne==null?void 0:ne.getAttribute("data-message-id");if(Pe){let Ke=H.getMessages().find(pe=>pe.id===Pe);if(Ke!=null&&Ke.rawContent)try{let pe=JSON.parse(Ke.rawContent);P=(I=pe==null?void 0:pe.props)==null?void 0:I.markdown,V=((Te=pe==null?void 0:pe.props)==null?void 0:Te.title)||V}catch{}}}if(!P)return;let $=new Blob([P],{type:"text/markdown"}),se=URL.createObjectURL($),fe=document.createElement("a");fe.href=se,fe.download=`${V}.md`,fe.click(),URL.revokeObjectURL(se)}),be.addEventListener("click",l=>{var L,P,V;let y=l.target.closest("[data-open-artifact]");if(!y)return;let S=y.getAttribute("data-open-artifact");!S||((V=(P=(L=r.features)==null?void 0:L.artifacts)==null?void 0:P.onArtifactAction)==null?void 0:V.call(P,{type:"open",artifactId:S}))===!0||(l.preventDefault(),l.stopPropagation(),H.selectArtifact(S),hn())}),be.addEventListener("keydown",l=>{if(l.key!=="Enter"&&l.key!==" ")return;let u=l.target;u.hasAttribute("data-open-artifact")&&(l.preventDefault(),u.click())});let fn=null,dt=null,nn=null,wn=null,wr=()=>{};function Qn(){wn==null||wn(),wn=null}let Sr=()=>{var P;if(!fn||!dt)return;let l=e.classList.contains("persona-artifact-appearance-seamless"),y=((P=e.ownerDocument.defaultView)!=null?P:window).innerWidth<=640;if(!l||e.classList.contains("persona-artifact-narrow-host")||y){dt.style.removeProperty("position"),dt.style.removeProperty("left"),dt.style.removeProperty("top"),dt.style.removeProperty("bottom"),dt.style.removeProperty("width"),dt.style.removeProperty("z-index");return}let S=fn.firstElementChild;if(!S||S===dt)return;let R=10;dt.style.position="absolute",dt.style.top="0",dt.style.bottom="0",dt.style.width=`${R}px`,dt.style.zIndex="5";let L=S.offsetWidth-R/2;dt.style.left=`${Math.max(0,L)}px`},Nn=()=>{},hn=()=>{var y,S,R,L,P;if(!Qe||!an(r))return;Ho(e,r),Bo(e,r),Nn();let l=(L=(R=(S=(y=r.features)==null?void 0:y.artifacts)==null?void 0:S.layout)==null?void 0:R.narrowHostMaxWidth)!=null?L:520,u=ie.getBoundingClientRect().width||0;e.classList.toggle("persona-artifact-narrow-host",u>0&&u<=l),Qe.update(In),ln?(Qe.setMobileOpen(!1),Qe.element.classList.add("persona-hidden"),(P=Qe.backdrop)==null||P.classList.add("persona-hidden")):In.artifacts.length>0&&(Qe.element.classList.remove("persona-hidden"),Qe.setMobileOpen(!0)),wr()};if(an(r)){ie.style.position="relative";let l=h("div","persona-flex persona-flex-1 persona-flex-col persona-min-w-0 persona-min-h-0"),u=h("div","persona-flex persona-h-full persona-w-full persona-min-h-0 persona-artifact-split-root");l.appendChild(j),Qe=$l(r,{onSelect:y=>{var S;return(S=Cr.current)==null?void 0:S.selectArtifact(y)},onDismiss:()=>{ln=!0,hn()}}),Qe.element.classList.add("persona-hidden"),fn=u,u.appendChild(l),u.appendChild(Qe.element),Qe.backdrop&&ie.appendChild(Qe.backdrop),ie.appendChild(u),wr=()=>{var S,R,L,P;if(!fn||!Qe)return;if(!(((L=(R=(S=r.features)==null?void 0:S.artifacts)==null?void 0:R.layout)==null?void 0:L.resizable)===!0)){nn==null||nn(),nn=null,Qn(),dt&&(dt.remove(),dt=null),Qe.element.style.removeProperty("width"),Qe.element.style.removeProperty("maxWidth");return}if(!dt){let V=h("div","persona-artifact-split-handle persona-shrink-0 persona-h-full");V.setAttribute("role","separator"),V.setAttribute("aria-orientation","vertical"),V.setAttribute("aria-label","Resize artifacts panel"),V.tabIndex=0;let $=e.ownerDocument,se=(P=$.defaultView)!=null?P:window,fe=ke=>{var ne,Pe;if(!Qe||ke.button!==0||e.classList.contains("persona-artifact-narrow-host")||se.innerWidth<=640)return;ke.preventDefault(),Qn();let Ne=ke.clientX,Ae=Qe.element.getBoundingClientRect().width,I=(Pe=(ne=r.features)==null?void 0:ne.artifacts)==null?void 0:Pe.layout,Te=rt=>{let Ke=fn.getBoundingClientRect().width,pe=e.classList.contains("persona-artifact-appearance-seamless"),Pt=pe?0:_l(fn,se),it=pe?0:V.getBoundingClientRect().width||6,Gt=Ae-(rt.clientX-Ne),jt=jl(Gt,Ke,Pt,it,I==null?void 0:I.resizableMinWidth,I==null?void 0:I.resizableMaxWidth);Qe.element.style.width=`${jt}px`,Qe.element.style.maxWidth="none",Sr()},Ee=()=>{$.removeEventListener("pointermove",Te),$.removeEventListener("pointerup",Ee),$.removeEventListener("pointercancel",Ee),wn=null;try{V.releasePointerCapture(ke.pointerId)}catch{}};wn=Ee,$.addEventListener("pointermove",Te),$.addEventListener("pointerup",Ee),$.addEventListener("pointercancel",Ee);try{V.setPointerCapture(ke.pointerId)}catch{}};V.addEventListener("pointerdown",fe),dt=V,fn.insertBefore(V,Qe.element),nn=()=>{V.removeEventListener("pointerdown",fe)}}if(dt){let V=In.artifacts.length>0&&!ln;dt.classList.toggle("persona-hidden",!V),Sr()}},Nn=()=>{var se,fe,ke,Ne,Ae,I,Te,Ee,ne,Pe,rt,Ke,pe,Pt;if(!v||!Qe||((fe=(se=r.launcher)==null?void 0:se.sidebarMode)!=null?fe:!1))return;let S=(ke=e.ownerDocument.defaultView)!=null?ke:window,R=(Ae=(Ne=r.launcher)==null?void 0:Ne.mobileFullscreen)!=null?Ae:!0,L=(Te=(I=r.launcher)==null?void 0:I.mobileBreakpoint)!=null?Te:640;if(R&&S.innerWidth<=L||!Dl(r,v))return;let P=(Pe=(ne=(Ee=r.launcher)==null?void 0:Ee.width)!=null?ne:r.launcherWidth)!=null?Pe:"min(400px, calc(100vw - 24px))",V=(Pt=(pe=(Ke=(rt=r.features)==null?void 0:rt.artifacts)==null?void 0:Ke.layout)==null?void 0:pe.expandedPanelWidth)!=null?Pt:"min(720px, calc(100vw - 24px))";In.artifacts.length>0&&!ln?(ie.style.width=V,ie.style.maxWidth=V):(ie.style.width=P,ie.style.maxWidth=P)},typeof ResizeObserver!="undefined"&&(mn=new ResizeObserver(()=>{hn()}),mn.observe(ie))}else ie.appendChild(j);e.appendChild(de);let On=()=>{var Ke,pe,Pt,it,Gt,jt,qt,$t,sn,_e,yt,yo,bo,xo,vo,Co,Ko,Yo,Et,wo,Br;let l=Jt(r),u=(pe=(Ke=r.launcher)==null?void 0:Ke.sidebarMode)!=null?pe:!1,y=l||u||((it=(Pt=r.launcher)==null?void 0:Pt.fullHeight)!=null?it:!1),S=((Gt=r.launcher)==null?void 0:Gt.enabled)===!1,R=(jt=r.theme)!=null?jt:{},L=(qt=e.ownerDocument.defaultView)!=null?qt:window,P=(sn=($t=r.launcher)==null?void 0:$t.mobileFullscreen)!=null?sn:!0,V=(yt=(_e=r.launcher)==null?void 0:_e.mobileBreakpoint)!=null?yt:640,$=L.innerWidth<=V,se=P&&$&&v,fe=(bo=(yo=r.launcher)==null?void 0:yo.position)!=null?bo:"bottom-left",ke=fe==="bottom-left"||fe==="top-left",Ne=u||se?"none":"1px solid var(--persona-persona-border)",Ae=se?"none":u?ke?"var(--persona-palette-shadows-sidebar-left, 2px 0 12px rgba(0, 0, 0, 0.08))":"var(--persona-palette-shadows-sidebar-right, -2px 0 12px rgba(0, 0, 0, 0.08))":"var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25))",I=u||se?"0":"var(--persona-panel-radius, var(--persona-radius-xl, 0.75rem))",Te=(xo=R.panelBorder)!=null?xo:Ne,Ee=(vo=R.panelShadow)!=null?vo:Ae,ne=(Co=R.panelBorderRadius)!=null?Co:I;if(e.style.cssText="",de.style.cssText="",ie.style.cssText="",j.style.cssText="",G.style.cssText="",Ze.style.cssText="",se){de.classList.remove("persona-bottom-6","persona-right-6","persona-left-6","persona-top-6","persona-bottom-4","persona-right-4","persona-left-4","persona-top-4"),de.style.cssText=`
20
+ `,F.addEventListener("click",()=>{p=w,x.forEach((re,Y)=>{let ae=Y<w;re.classList.toggle("selected",ae),re.setAttribute("aria-checked",Y===w-1?"true":"false")})}),x.push(F),E.appendChild(F)}f.appendChild(E);let k=null;if(d){let w=document.createElement("div");w.className="persona-feedback-comment-container",k=document.createElement("textarea"),k.className="persona-feedback-comment",k.placeholder=o,k.rows=3,k.setAttribute("aria-label","Additional comments"),w.appendChild(k),f.appendChild(w)}let q=document.createElement("div");q.className="persona-feedback-actions";let M=document.createElement("button");M.type="button",M.className="persona-feedback-btn persona-feedback-btn-skip",M.textContent=i,M.addEventListener("click",()=>{t==null||t(),g.remove()});let N=document.createElement("button");return N.type="button",N.className="persona-feedback-btn persona-feedback-btn-submit",N.textContent=a,N.addEventListener("click",async()=>{if(p===null){E.classList.add("persona-feedback-shake"),setTimeout(()=>E.classList.remove("persona-feedback-shake"),500);return}N.disabled=!0,N.textContent="Submitting...";try{let w=(k==null?void 0:k.value.trim())||void 0;await n(p,w),g.remove()}catch(w){N.disabled=!1,N.textContent=a,console.error("[CSAT Feedback] Failed to submit:",w)}}),q.appendChild(M),q.appendChild(N),f.appendChild(q),g.appendChild(f),g}function Ms(e){let{onSubmit:n,onDismiss:t,title:r="How likely are you to recommend us?",subtitle:s="On a scale of 0 to 10",commentPlaceholder:o="What could we do better? (optional)...",submitText:a="Submit",skipText:i="Skip",showComment:d=!0,lowLabel:c="Not likely",highLabel:g="Very likely"}=e,p=document.createElement("div");p.className="persona-feedback-container persona-feedback-nps",p.setAttribute("role","dialog"),p.setAttribute("aria-label","Net Promoter Score feedback");let f=null,m=document.createElement("div");m.className="persona-feedback-content";let C=document.createElement("div");C.className="persona-feedback-header";let v=document.createElement("h3");v.className="persona-feedback-title",v.textContent=r,C.appendChild(v);let E=document.createElement("p");E.className="persona-feedback-subtitle",E.textContent=s,C.appendChild(E),m.appendChild(C);let x=document.createElement("div");x.className="persona-feedback-rating persona-feedback-rating-nps",x.setAttribute("role","radiogroup"),x.setAttribute("aria-label","Likelihood rating from 0 to 10");let k=document.createElement("div");k.className="persona-feedback-labels";let q=document.createElement("span");q.className="persona-feedback-label-low",q.textContent=c;let M=document.createElement("span");M.className="persona-feedback-label-high",M.textContent=g,k.appendChild(q),k.appendChild(M);let N=document.createElement("div");N.className="persona-feedback-numbers";let w=[];for(let z=0;z<=10;z++){let ge=document.createElement("button");ge.type="button",ge.className="persona-feedback-rating-btn persona-feedback-number-btn",ge.setAttribute("role","radio"),ge.setAttribute("aria-checked","false"),ge.setAttribute("aria-label",`Rating ${z} out of 10`),ge.textContent=String(z),ge.dataset.rating=String(z),z<=6?ge.classList.add("persona-feedback-detractor"):z<=8?ge.classList.add("persona-feedback-passive"):ge.classList.add("persona-feedback-promoter"),ge.addEventListener("click",()=>{f=z,w.forEach((Ie,Xe)=>{Ie.classList.toggle("selected",Xe===z),Ie.setAttribute("aria-checked",Xe===z?"true":"false")})}),w.push(ge),N.appendChild(ge)}x.appendChild(k),x.appendChild(N),m.appendChild(x);let F=null;if(d){let z=document.createElement("div");z.className="persona-feedback-comment-container",F=document.createElement("textarea"),F.className="persona-feedback-comment",F.placeholder=o,F.rows=3,F.setAttribute("aria-label","Additional comments"),z.appendChild(F),m.appendChild(z)}let re=document.createElement("div");re.className="persona-feedback-actions";let Y=document.createElement("button");Y.type="button",Y.className="persona-feedback-btn persona-feedback-btn-skip",Y.textContent=i,Y.addEventListener("click",()=>{t==null||t(),p.remove()});let ae=document.createElement("button");return ae.type="button",ae.className="persona-feedback-btn persona-feedback-btn-submit",ae.textContent=a,ae.addEventListener("click",async()=>{if(f===null){N.classList.add("persona-feedback-shake"),setTimeout(()=>N.classList.remove("persona-feedback-shake"),500);return}ae.disabled=!0,ae.textContent="Submitting...";try{let z=(F==null?void 0:F.value.trim())||void 0;await n(f,z),p.remove()}catch(z){ae.disabled=!1,ae.textContent=a,console.error("[NPS Feedback] Failed to submit:",z)}}),re.appendChild(Y),re.appendChild(ae),m.appendChild(re),p.appendChild(m),p}var xr="persona-chat-history",Gd=30*1e3,Xd={"image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","image/bmp":"bmp","image/tiff":"tiff"};function Zd(e){var r,s,o;if(!e)return[];let n=[],t=Array.from((r=e.items)!=null?r:[]);for(let a of t){if(a.kind!=="file"||!a.type.startsWith("image/"))continue;let i=a.getAsFile();if(!i)continue;if(i.name){n.push(i);continue}let d=(s=Xd[i.type])!=null?s:"png";n.push(new File([i],`clipboard-image-${Date.now()}.${d}`,{type:i.type,lastModified:Date.now()}))}if(n.length>0)return n;for(let a of Array.from((o=e.files)!=null?o:[]))a.type.startsWith("image/")&&n.push(a);return n}function Qd(e){var n,t,r,s,o,a,i,d,c;return e?e===!0?{storage:"session",keyPrefix:"persona-",persist:{openState:!0,voiceState:!0,focusInput:!0},clearOnChatClear:!0}:{storage:(n=e.storage)!=null?n:"session",keyPrefix:(t=e.keyPrefix)!=null?t:"persona-",persist:{openState:(s=(r=e.persist)==null?void 0:r.openState)!=null?s:!0,voiceState:(a=(o=e.persist)==null?void 0:o.voiceState)!=null?a:!0,focusInput:(d=(i=e.persist)==null?void 0:i.focusInput)!=null?d:!0},clearOnChatClear:(c=e.clearOnChatClear)!=null?c:!0}:null}function ep(e){try{let n=e==="local"?localStorage:sessionStorage,t="__persist_test__";return n.setItem(t,"1"),n.removeItem(t),n}catch{return null}}var ks=e=>!e||typeof e!="object"?{}:{...e},Kl=e=>e.map(n=>({...n,streaming:!1})),Yl=(e,n,t)=>{let r=e!=null&&e.markdown?lr(e.markdown):null,s=jr(e==null?void 0:e.sanitize);return e!=null&&e.postprocessMessage&&s&&(e==null?void 0:e.sanitize)===void 0&&console.warn("[Persona] A custom postprocessMessage is active with the default HTML sanitizer. Tags or attributes not in the built-in allowlist will be stripped. To keep custom HTML, set `sanitize: false` or provide a custom sanitize function."),o=>{var c,g,p;let a=(c=o.text)!=null?c:"",i=(g=o.message.rawContent)!=null?g:null;if(n){let f=n.process({text:a,raw:i!=null?i:a,message:o.message,streaming:o.streaming});f!==null&&(a=f.text,f.persist||(o.message.__skipPersist=!0),f.resubmit&&!o.streaming&&t&&t())}let d;return e!=null&&e.postprocessMessage?d=e.postprocessMessage({...o,text:a,raw:(p=i!=null?i:o.text)!=null?p:""}):r?d=r(a):d=_r(a),s?s(d):d}},Ls=(e,n,t)=>{var le,Se,ot,kt,wt,Bt,Lt,st,lt,At,ct,Ft,Yt,on,Fs,$s,Ns,Os,Ds,_s,js,Vs,Us,qs,zs,Js,Ks,Ys,Gs,Xs,Zs,Qs,ea,ta,na,ra,oa,sa;e.id&&e.id!=="persona-root"&&!e.getAttribute("data-persona-instance")&&e.setAttribute("data-persona-instance",e.id),e.id="persona-root";let r=xs(n),s=Fo.getForInstance(r.plugins);r.components&&$n.registerAll(r.components);let o=zl(),a=(le=r.storageAdapter)!=null?le:Cs(),i={},d=null,c=l=>{if(r.onStateLoaded)try{return r.onStateLoaded(l)}catch(u){typeof console!="undefined"&&console.error("[AgentWidget] onStateLoaded hook failed:",u)}return l};if(a!=null&&a.load)try{let l=a.load();if(l&&typeof l.then=="function")d=l.then(u=>{let y=u!=null?u:{messages:[],metadata:{}};return c(y)});else{let u=l!=null?l:{messages:[],metadata:{}},y=c(u);y.metadata&&(i=ks(y.metadata)),(Se=y.messages)!=null&&Se.length&&(r={...r,initialMessages:y.messages})}}catch(l){typeof console!="undefined"&&console.error("[AgentWidget] Failed to load stored state:",l)}else if(r.onStateLoaded)try{let l=c({messages:[],metadata:{}});(ot=l.messages)!=null&&ot.length&&(r={...r,initialMessages:l.messages})}catch(l){typeof console!="undefined"&&console.error("[AgentWidget] onStateLoaded hook failed:",l)}let g=()=>i,p=l=>{var y;i=(y=l({...i}))!=null?y:{},Lr()},f=r.actionParsers&&r.actionParsers.length?r.actionParsers:[$o],m=r.actionHandlers&&r.actionHandlers.length?r.actionHandlers:[br.message,br.messageAndClick],C=No({parsers:f,handlers:m,getSessionMetadata:g,updateSessionMetadata:p,emit:o.emit,documentRef:typeof document!="undefined"?document:null});C.syncFromMetadata();let v=(wt=(kt=r.launcher)==null?void 0:kt.enabled)!=null?wt:!0,E=(Lt=(Bt=r.launcher)==null?void 0:Bt.autoExpand)!=null?Lt:!1,x=(st=r.autoFocusInput)!=null?st:!1,k=E,q=v,M=(At=(lt=r.layout)==null?void 0:lt.header)==null?void 0:At.layout,N=!1,w=v?E:!0,F=!1,re=null,Y=()=>{F=!0,re&&clearTimeout(re),re=setTimeout(()=>{F&&(typeof console!="undefined"&&console.warn("[AgentWidget] Resubmit requested but no injection occurred within 10s"),F=!1)},1e4)},ae=Yl(r,C,Y),z=(Ft=(ct=r.features)==null?void 0:ct.showReasoning)!=null?Ft:!0,ge=(on=(Yt=r.features)==null?void 0:Yt.showToolCalls)!=null?on:!0,Ie=($s=(Fs=r.features)==null?void 0:Fs.showEventStreamToggle)!=null?$s:!1,ye=`${(Os=typeof r.persistState=="object"?(Ns=r.persistState)==null?void 0:Ns.keyPrefix:void 0)!=null?Os:"persona-"}event-stream`,ee=Ie?new eo(ye):null,te=(js=(_s=(Ds=r.features)==null?void 0:Ds.eventStream)==null?void 0:_s.maxEvents)!=null?js:2e3,D=Ie?new Qr(te,ee):null,U=null,oe=!1,he=null,ht=0;ee==null||ee.open().then(()=>D==null?void 0:D.restore()).catch(l=>{r.debug&&console.warn("[AgentWidget] IndexedDB not available for event stream:",l)});let at={onCopy:l=>{var u,y;o.emit("message:copy",l),H!=null&&H.isClientTokenMode()&&H.submitMessageFeedback(l.id,"copy").catch(S=>{r.debug&&console.error("[AgentWidget] Failed to submit copy feedback:",S)}),(y=(u=r.messageActions)==null?void 0:u.onCopy)==null||y.call(u,l)},onFeedback:l=>{var u,y;o.emit("message:feedback",l),H!=null&&H.isClientTokenMode()&&H.submitMessageFeedback(l.messageId,l.type).catch(S=>{r.debug&&console.error("[AgentWidget] Failed to submit feedback:",S)}),(y=(u=r.messageActions)==null?void 0:u.onFeedback)==null||y.call(u,l)}},ut=(Vs=r.statusIndicator)!=null?Vs:{},Wt=l=>{var u,y,S,R;return l==="idle"?(u=ut.idleText)!=null?u:Vt.idle:l==="connecting"?(y=ut.connectingText)!=null?y:Vt.connecting:l==="connected"?(S=ut.connectedText)!=null?S:Vt.connected:l==="error"?(R=ut.errorText)!=null?R:Vt.error:Vt[l]},{wrapper:de,panel:ie}=Tl(r),qe=Ml(r,v),{container:j,body:G,messagesWrapper:be,suggestions:ze,textarea:X,sendButton:K,sendButtonWrapper:tt,composerForm:We,statusText:Ve,introTitle:Tt,introSubtitle:_t,closeButton:ce,iconHolder:Je,headerTitle:Me,headerSubtitle:nt,header:je,footer:Ze,actionsRow:Rt,leftActions:Ht,rightActions:Mt}=qe,B=qe.micButton,Z=qe.micButtonWrapper,J=qe.attachmentButton,_=qe.attachmentButtonWrapper,xe=qe.attachmentInput,Le=qe.attachmentPreviewsContainer,He=null,pt=null,ve=s.find(l=>l.renderHeader);if(ve!=null&&ve.renderHeader){let l=ve.renderHeader({config:r,defaultRenderer:()=>{let u=Fn({config:r,showClose:v});return gr(j,u,r),u.header},onClose:()=>gt(!1,"user")});if(l){let u=j.querySelector(".persona-border-b-persona-divider");u&&(u.replaceWith(l),je=l)}}let Ce=()=>{var u,y,S,R;if(!D)return;if(oe=!0,!U&&D&&(U=Hl({buffer:D,getFullHistory:()=>D.getAllFromStore(),onClose:()=>Be(),config:r,plugins:s})),U&&(G.style.display="none",(u=Ze.parentNode)==null||u.insertBefore(U.element,Ze),U.update()),ue){ue.classList.remove("persona-text-persona-muted"),ue.classList.add("persona-text-persona-accent"),ue.style.boxShadow="inset 0 0 0 1.5px var(--persona-accent, #3b82f6)";let L=(R=(S=(y=r.features)==null?void 0:y.eventStream)==null?void 0:S.classNames)==null?void 0:R.toggleButtonActive;L&&L.split(/\s+/).forEach(P=>P&&ue.classList.add(P))}let l=()=>{if(!oe)return;let L=Date.now();L-ht>=200&&(U==null||U.update(),ht=L),he=requestAnimationFrame(l)};ht=0,he=requestAnimationFrame(l),o.emit("eventStream:opened",{timestamp:Date.now()})},Be=()=>{var l,u,y;if(oe){if(oe=!1,U&&U.element.remove(),G.style.display="",ue){ue.classList.remove("persona-text-persona-accent"),ue.classList.add("persona-text-persona-muted"),ue.style.boxShadow="";let S=(y=(u=(l=r.features)==null?void 0:l.eventStream)==null?void 0:u.classNames)==null?void 0:y.toggleButtonActive;S&&S.split(/\s+/).forEach(R=>R&&ue.classList.remove(R))}he!==null&&(cancelAnimationFrame(he),he=null),o.emit("eventStream:closed",{timestamp:Date.now()})}},ue=null;if(Ie){let l=(qs=(Us=r.features)==null?void 0:Us.eventStream)==null?void 0:qs.classNames,u="persona-inline-flex persona-items-center persona-justify-center persona-rounded-full persona-text-persona-muted hover:persona-bg-gray-100 persona-cursor-pointer persona-border-none persona-bg-transparent persona-p-1"+(l!=null&&l.toggleButton?" "+l.toggleButton:"");ue=h("button",u),ue.style.width="28px",ue.style.height="28px",ue.type="button",ue.setAttribute("aria-label","Event Stream"),ue.title="Event Stream";let y=me("activity","18px","currentColor",1.5);y&&ue.appendChild(y);let S=qe.clearChatButtonWrapper,R=qe.closeButtonWrapper,L=S||R;L&&L.parentNode===je?je.insertBefore(ue,L):je.appendChild(ue),ue.addEventListener("click",()=>{oe?Be():Ce()})}let bt=l=>{var S,R,L;let u=r.attachments;if(!(u!=null&&u.enabled))return;let y=l.querySelector(".persona-attachment-previews");if(!y){y=h("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2"),y.style.display="none";let P=l.querySelector("[data-persona-composer-form]");P!=null&&P.parentNode?P.parentNode.insertBefore(y,P):l.insertBefore(y,l.firstChild)}if(!l.querySelector('input[type="file"]')){let P=h("input");P.type="file",P.accept=((S=u.allowedTypes)!=null?S:kn).join(","),P.multiple=((R=u.maxFiles)!=null?R:4)>1,P.style.display="none",P.setAttribute("aria-label",(L=u.buttonTooltipText)!=null?L:"Attach files"),l.appendChild(P)}},Zt=s.find(l=>l.renderComposer);if(Zt!=null&&Zt.renderComposer){let l=r.composer,u=Zt.renderComposer({config:r,defaultRenderer:()=>Xr({config:r}).footer,onSubmit:y=>{H&&!H.isStreaming()&&H.sendMessage(y)},streaming:!1,disabled:!1,openAttachmentPicker:()=>{xe==null||xe.click()},models:l==null?void 0:l.models,selectedModelId:l==null?void 0:l.selectedModelId,onModelChange:y=>{r.composer={...r.composer,selectedModelId:y}},onVoiceToggle:((zs=r.voiceRecognition)==null?void 0:zs.enabled)===!0?()=>{pt==null||pt()}:void 0});u&&(Ze.replaceWith(u),Ze=u)}let un=l=>{let u=l.querySelector("[data-persona-composer-form]"),y=l.querySelector("[data-persona-composer-input]"),S=l.querySelector("[data-persona-composer-submit]"),R=l.querySelector("[data-persona-composer-mic]"),L=l.querySelector("[data-persona-composer-status]");u&&(We=u),y&&(X=y),S&&(K=S),R&&(B=R,Z=R.parentElement),L&&(Ve=L);let P=l.querySelector(".persona-mb-3.persona-flex.persona-flex-wrap.persona-gap-2");P&&(ze=P);let V=l.querySelector(".persona-attachment-button");V&&(J=V,_=V.parentElement),xe=l.querySelector('input[type="file"]'),Le=l.querySelector(".persona-attachment-previews");let $=l.querySelector(".persona-widget-composer .persona-flex.persona-items-center.persona-justify-between");$&&(Rt=$)};bt(Ze),un(Ze);let gn=(Js=r.layout)==null?void 0:Js.contentMaxWidth;gn&&We&&(We.style.maxWidth=gn,We.style.marginLeft="auto",We.style.marginRight="auto"),(Ks=r.attachments)!=null&&Ks.enabled&&xe&&Le&&(He=ur.fromConfig(r.attachments),He.setPreviewsContainer(Le),xe.addEventListener("change",l=>{let u=l.target;He==null||He.handleFileSelect(u.files),u.value=""})),(()=>{var S,R;let l=(R=(S=r.layout)==null?void 0:S.slots)!=null?R:{},u=L=>{switch(L){case"body-top":return j.querySelector(".persona-rounded-2xl.persona-bg-persona-surface.persona-p-6")||null;case"messages":return be;case"footer-top":return ze;case"composer":return We;case"footer-bottom":return Ve;default:return null}},y=(L,P)=>{var V;switch(L){case"header-left":case"header-center":case"header-right":if(L==="header-left")je.insertBefore(P,je.firstChild);else if(L==="header-right")je.appendChild(P);else{let $=je.querySelector(".persona-flex-col");$?(V=$.parentNode)==null||V.insertBefore(P,$.nextSibling):je.appendChild(P)}break;case"body-top":{let $=G.querySelector(".persona-rounded-2xl.persona-bg-persona-surface.persona-p-6");$?$.replaceWith(P):G.insertBefore(P,G.firstChild);break}case"body-bottom":G.appendChild(P);break;case"footer-top":ze.replaceWith(P);break;case"footer-bottom":Ve.replaceWith(P);break;default:break}};for(let[L,P]of Object.entries(l))if(P)try{let V=P({config:r,defaultContent:()=>u(L)});V&&y(L,V)}catch(V){typeof console!="undefined"&&console.error(`[AgentWidget] Error rendering slot "${L}":`,V)}})();let Pn=l=>{let y=l.target.closest('button[data-expand-header="true"]');if(!y)return;let S=y.closest(".vanilla-reasoning-bubble, .vanilla-tool-bubble");if(!S)return;let R=S.getAttribute("data-message-id");if(!R)return;let L=y.getAttribute("data-bubble-type");L==="reasoning"?(fr.has(R)?fr.delete(R):fr.add(R),Il(R,S)):L==="tool"&&(hr.has(R)?hr.delete(R):hr.add(R),Wl(R,S,r))};be.addEventListener("pointerdown",l=>{l.target.closest('button[data-expand-header="true"]')&&(l.preventDefault(),Pn(l))}),be.addEventListener("keydown",l=>{let u=l.target;(l.key==="Enter"||l.key===" ")&&u.closest('button[data-expand-header="true"]')&&(l.preventDefault(),Pn(l))});let Zn=new Map;be.addEventListener("click",l=>{var P;let y=l.target.closest(".persona-message-action-btn[data-action]");if(!y)return;l.preventDefault(),l.stopPropagation();let S=y.closest("[data-actions-for]");if(!S)return;let R=S.getAttribute("data-actions-for");if(!R)return;let L=y.getAttribute("data-action");if(L==="copy"){let $=H.getMessages().find(se=>se.id===R);if($&&at.onCopy){let se=$.content||"";navigator.clipboard.writeText(se).then(()=>{y.classList.add("persona-message-action-success");let fe=me("check",14,"currentColor",2);fe&&(y.innerHTML="",y.appendChild(fe)),setTimeout(()=>{y.classList.remove("persona-message-action-success");let ke=me("copy",14,"currentColor",2);ke&&(y.innerHTML="",y.appendChild(ke))},2e3)}).catch(fe=>{typeof console!="undefined"&&console.error("[AgentWidget] Failed to copy message:",fe)}),at.onCopy($)}}else if(L==="upvote"||L==="downvote")if(((P=Zn.get(R))!=null?P:null)===L)Zn.delete(R),y.classList.remove("persona-message-action-active");else{let se=L==="upvote"?"downvote":"upvote",fe=S.querySelector(`[data-action="${se}"]`);fe&&fe.classList.remove("persona-message-action-active"),Zn.set(R,L),y.classList.add("persona-message-action-active");let Ne=H.getMessages().find(Ae=>Ae.id===R);Ne&&at.onFeedback&&at.onFeedback({type:L,messageId:Ne.id,message:Ne})}}),be.addEventListener("click",l=>{let y=l.target.closest("button[data-approval-action]");if(!y)return;l.preventDefault(),l.stopPropagation();let S=y.closest(".vanilla-approval-bubble");if(!S)return;let R=S.getAttribute("data-message-id");if(!R)return;let L=y.getAttribute("data-approval-action");if(!L)return;let P=L==="approve"?"approved":"denied",$=H.getMessages().find(fe=>fe.id===R);if(!($!=null&&$.approval))return;let se=S.querySelector("[data-approval-buttons]");se&&se.querySelectorAll("button").forEach(ke=>{ke.disabled=!0,ke.style.opacity="0.5",ke.style.cursor="not-allowed"}),H.resolveApproval($.approval,P)});let Qe=null,mn=null,In={artifacts:[],selectedId:null},ln=!1,Cr={current:null};be.addEventListener("click",l=>{var ke,Ne,Ae,I,Te;let y=l.target.closest("[data-download-artifact]");if(!y)return;l.preventDefault(),l.stopPropagation();let S=y.getAttribute("data-download-artifact");if(!S||((Ae=(Ne=(ke=r.features)==null?void 0:ke.artifacts)==null?void 0:Ne.onArtifactAction)==null?void 0:Ae.call(Ne,{type:"download",artifactId:S}))===!0)return;let L=H.getArtifactById(S),P=L==null?void 0:L.markdown,V=(L==null?void 0:L.title)||"artifact";if(!P){let Ee=y.closest("[data-open-artifact]"),ne=Ee==null?void 0:Ee.closest("[data-message-id]"),Pe=ne==null?void 0:ne.getAttribute("data-message-id");if(Pe){let Ke=H.getMessages().find(pe=>pe.id===Pe);if(Ke!=null&&Ke.rawContent)try{let pe=JSON.parse(Ke.rawContent);P=(I=pe==null?void 0:pe.props)==null?void 0:I.markdown,V=((Te=pe==null?void 0:pe.props)==null?void 0:Te.title)||V}catch{}}}if(!P)return;let $=new Blob([P],{type:"text/markdown"}),se=URL.createObjectURL($),fe=document.createElement("a");fe.href=se,fe.download=`${V}.md`,fe.click(),URL.revokeObjectURL(se)}),be.addEventListener("click",l=>{var L,P,V;let y=l.target.closest("[data-open-artifact]");if(!y)return;let S=y.getAttribute("data-open-artifact");!S||((V=(P=(L=r.features)==null?void 0:L.artifacts)==null?void 0:P.onArtifactAction)==null?void 0:V.call(P,{type:"open",artifactId:S}))===!0||(l.preventDefault(),l.stopPropagation(),H.selectArtifact(S),hn())}),be.addEventListener("keydown",l=>{if(l.key!=="Enter"&&l.key!==" ")return;let u=l.target;u.hasAttribute("data-open-artifact")&&(l.preventDefault(),u.click())});let fn=null,dt=null,nn=null,wn=null,wr=()=>{};function Qn(){wn==null||wn(),wn=null}let Sr=()=>{var P;if(!fn||!dt)return;let l=e.classList.contains("persona-artifact-appearance-seamless"),y=((P=e.ownerDocument.defaultView)!=null?P:window).innerWidth<=640;if(!l||e.classList.contains("persona-artifact-narrow-host")||y){dt.style.removeProperty("position"),dt.style.removeProperty("left"),dt.style.removeProperty("top"),dt.style.removeProperty("bottom"),dt.style.removeProperty("width"),dt.style.removeProperty("z-index");return}let S=fn.firstElementChild;if(!S||S===dt)return;let R=10;dt.style.position="absolute",dt.style.top="0",dt.style.bottom="0",dt.style.width=`${R}px`,dt.style.zIndex="5";let L=S.offsetWidth-R/2;dt.style.left=`${Math.max(0,L)}px`},Nn=()=>{},hn=()=>{var y,S,R,L,P;if(!Qe||!an(r))return;Ho(e,r),Bo(e,r),Nn();let l=(L=(R=(S=(y=r.features)==null?void 0:y.artifacts)==null?void 0:S.layout)==null?void 0:R.narrowHostMaxWidth)!=null?L:520,u=ie.getBoundingClientRect().width||0;e.classList.toggle("persona-artifact-narrow-host",u>0&&u<=l),Qe.update(In),ln?(Qe.setMobileOpen(!1),Qe.element.classList.add("persona-hidden"),(P=Qe.backdrop)==null||P.classList.add("persona-hidden")):In.artifacts.length>0&&(Qe.element.classList.remove("persona-hidden"),Qe.setMobileOpen(!0)),wr()};if(an(r)){ie.style.position="relative";let l=h("div","persona-flex persona-flex-1 persona-flex-col persona-min-w-0 persona-min-h-0"),u=h("div","persona-flex persona-h-full persona-w-full persona-min-h-0 persona-artifact-split-root");l.appendChild(j),Qe=$l(r,{onSelect:y=>{var S;return(S=Cr.current)==null?void 0:S.selectArtifact(y)},onDismiss:()=>{ln=!0,hn()}}),Qe.element.classList.add("persona-hidden"),fn=u,u.appendChild(l),u.appendChild(Qe.element),Qe.backdrop&&ie.appendChild(Qe.backdrop),ie.appendChild(u),wr=()=>{var S,R,L,P;if(!fn||!Qe)return;if(!(((L=(R=(S=r.features)==null?void 0:S.artifacts)==null?void 0:R.layout)==null?void 0:L.resizable)===!0)){nn==null||nn(),nn=null,Qn(),dt&&(dt.remove(),dt=null),Qe.element.style.removeProperty("width"),Qe.element.style.removeProperty("maxWidth");return}if(!dt){let V=h("div","persona-artifact-split-handle persona-shrink-0 persona-h-full");V.setAttribute("role","separator"),V.setAttribute("aria-orientation","vertical"),V.setAttribute("aria-label","Resize artifacts panel"),V.tabIndex=0;let $=e.ownerDocument,se=(P=$.defaultView)!=null?P:window,fe=ke=>{var ne,Pe;if(!Qe||ke.button!==0||e.classList.contains("persona-artifact-narrow-host")||se.innerWidth<=640)return;ke.preventDefault(),Qn();let Ne=ke.clientX,Ae=Qe.element.getBoundingClientRect().width,I=(Pe=(ne=r.features)==null?void 0:ne.artifacts)==null?void 0:Pe.layout,Te=rt=>{let Ke=fn.getBoundingClientRect().width,pe=e.classList.contains("persona-artifact-appearance-seamless"),Pt=pe?0:_l(fn,se),it=pe?0:V.getBoundingClientRect().width||6,Gt=Ae-(rt.clientX-Ne),jt=jl(Gt,Ke,Pt,it,I==null?void 0:I.resizableMinWidth,I==null?void 0:I.resizableMaxWidth);Qe.element.style.width=`${jt}px`,Qe.element.style.maxWidth="none",Sr()},Ee=()=>{$.removeEventListener("pointermove",Te),$.removeEventListener("pointerup",Ee),$.removeEventListener("pointercancel",Ee),wn=null;try{V.releasePointerCapture(ke.pointerId)}catch{}};wn=Ee,$.addEventListener("pointermove",Te),$.addEventListener("pointerup",Ee),$.addEventListener("pointercancel",Ee);try{V.setPointerCapture(ke.pointerId)}catch{}};V.addEventListener("pointerdown",fe),dt=V,fn.insertBefore(V,Qe.element),nn=()=>{V.removeEventListener("pointerdown",fe)}}if(dt){let V=In.artifacts.length>0&&!ln;dt.classList.toggle("persona-hidden",!V),Sr()}},Nn=()=>{var se,fe,ke,Ne,Ae,I,Te,Ee,ne,Pe,rt,Ke,pe,Pt;if(!v||!Qe||((fe=(se=r.launcher)==null?void 0:se.sidebarMode)!=null?fe:!1))return;let S=(ke=e.ownerDocument.defaultView)!=null?ke:window,R=(Ae=(Ne=r.launcher)==null?void 0:Ne.mobileFullscreen)!=null?Ae:!0,L=(Te=(I=r.launcher)==null?void 0:I.mobileBreakpoint)!=null?Te:640;if(R&&S.innerWidth<=L||!Dl(r,v))return;let P=(Pe=(ne=(Ee=r.launcher)==null?void 0:Ee.width)!=null?ne:r.launcherWidth)!=null?Pe:"min(400px, calc(100vw - 24px))",V=(Pt=(pe=(Ke=(rt=r.features)==null?void 0:rt.artifacts)==null?void 0:Ke.layout)==null?void 0:pe.expandedPanelWidth)!=null?Pt:"min(720px, calc(100vw - 24px))";In.artifacts.length>0&&!ln?(ie.style.width=V,ie.style.maxWidth=V):(ie.style.width=P,ie.style.maxWidth=P)},typeof ResizeObserver!="undefined"&&(mn=new ResizeObserver(()=>{hn()}),mn.observe(ie))}else ie.appendChild(j);e.appendChild(de);let On=()=>{var Ke,pe,Pt,it,Gt,jt,qt,$t,sn,_e,yt,yo,bo,xo,vo,Co,Ko,Yo,Et,wo,Br;let l=Jt(r),u=(pe=(Ke=r.launcher)==null?void 0:Ke.sidebarMode)!=null?pe:!1,y=l||u||((it=(Pt=r.launcher)==null?void 0:Pt.fullHeight)!=null?it:!1),S=((Gt=r.launcher)==null?void 0:Gt.enabled)===!1,R=(jt=r.theme)!=null?jt:{},L=(qt=e.ownerDocument.defaultView)!=null?qt:window,P=(sn=($t=r.launcher)==null?void 0:$t.mobileFullscreen)!=null?sn:!0,V=(yt=(_e=r.launcher)==null?void 0:_e.mobileBreakpoint)!=null?yt:640,$=L.innerWidth<=V,se=P&&$&&v,fe=(bo=(yo=r.launcher)==null?void 0:yo.position)!=null?bo:"bottom-left",ke=fe==="bottom-left"||fe==="top-left",Ne=u||se?"none":"1px solid var(--persona-persona-border)",Ae=se?"none":u?ke?"var(--persona-palette-shadows-sidebar-left, 2px 0 12px rgba(0, 0, 0, 0.08))":"var(--persona-palette-shadows-sidebar-right, -2px 0 12px rgba(0, 0, 0, 0.08))":"var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25))",I=u||se?"0":"var(--persona-panel-radius, var(--persona-radius-xl, 0.75rem))",Te=(xo=R.panelBorder)!=null?xo:Ne,Ee=(vo=R.panelShadow)!=null?vo:Ae,ne=(Co=R.panelBorderRadius)!=null?Co:I;if(e.style.cssText="",de.style.cssText="",ie.style.cssText="",j.style.cssText="",G.style.cssText="",Ze.style.cssText="",se){de.classList.remove("persona-bottom-6","persona-right-6","persona-left-6","persona-top-6","persona-bottom-4","persona-right-4","persona-left-4","persona-top-4"),de.style.cssText=`
21
21
  position: fixed !important;
22
22
  inset: 0 !important;
23
23
  width: 100% !important;
@@ -108,7 +108,7 @@ ${a.join(`
108
108
  ${a.join(`
109
109
  `)}`)}return r.join(`
110
110
 
111
- `)}var pc={name:"@runtypelabs/persona",version:"2.3.0",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:{dompurify:"^3.3.3",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"},author:"Runtype",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 vr=pc.version;function Ln(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(n=>n.toString()).join(", ")}]`:e.toString()}function Tp(e){if(e)return{getHeaders:Ln(e.getHeaders),onFeedback:Ln(e.onFeedback),onCopy:Ln(e.onCopy),requestMiddleware:Ln(e.requestMiddleware),actionHandlers:Ln(e.actionHandlers),actionParsers:Ln(e.actionParsers),postprocessMessage:Ln(e.postprocessMessage),contextProviders:Ln(e.contextProviders),streamParser:Ln(e.streamParser)}}var uc=`({ text, message }: any) => {
111
+ `)}var pc={name:"@runtypelabs/persona",version:"2.3.1",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:{dompurify:"^3.3.3",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"},author:"Runtype",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 vr=pc.version;function Ln(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(n=>n.toString()).join(", ")}]`:e.toString()}function Tp(e){if(e)return{getHeaders:Ln(e.getHeaders),onFeedback:Ln(e.onFeedback),onCopy:Ln(e.onCopy),requestMiddleware:Ln(e.requestMiddleware),actionHandlers:Ln(e.actionHandlers),actionParsers:Ln(e.actionParsers),postprocessMessage:Ln(e.postprocessMessage),contextProviders:Ln(e.contextProviders),streamParser:Ln(e.streamParser)}}var uc=`({ text, message }: any) => {
112
112
  const jsonSource = (message as any).rawContent || text || message.content;
113
113
  if (!jsonSource || typeof jsonSource !== 'string') return null;
114
114
  let cleanJson = jsonSource