@runtypelabs/persona 3.34.0 → 3.34.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/codegen.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var $=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var I=(e,r)=>{for(var n in r)$(e,n,{get:r[n],enumerable:!0})},W=(e,r,n,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of R(r))!v.call(e,o)&&o!==n&&$(e,o,{get:()=>r[o],enumerable:!(s=M(r,o))||s.enumerable});return e};var H=e=>W($({},"__esModule",{value:!0}),e);var B={};I(B,{generateCodeSnippet:()=>_});module.exports=H(B);var x="3.34.0";var c=x;function u(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(r=>r.toString()).join(", ")}]`:e.toString()}function D(e){if(e)return{getHeaders:u(e.getHeaders),onFeedback:u(e.onFeedback),onCopy:u(e.onCopy),requestMiddleware:u(e.requestMiddleware),actionHandlers:u(e.actionHandlers),actionParsers:u(e.actionParsers),postprocessMessage:u(e.postprocessMessage),contextProviders:u(e.contextProviders),streamParser:u(e.streamParser)}}var A=`({ text, message }: any) => {
1
+ "use strict";var $=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var I=(e,r)=>{for(var n in r)$(e,n,{get:r[n],enumerable:!0})},W=(e,r,n,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of R(r))!v.call(e,o)&&o!==n&&$(e,o,{get:()=>r[o],enumerable:!(s=M(r,o))||s.enumerable});return e};var H=e=>W($({},"__esModule",{value:!0}),e);var B={};I(B,{generateCodeSnippet:()=>_});module.exports=H(B);var x="3.34.1";var c=x;function u(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(r=>r.toString()).join(", ")}]`:e.toString()}function D(e){if(e)return{getHeaders:u(e.getHeaders),onFeedback:u(e.onFeedback),onCopy:u(e.onCopy),requestMiddleware:u(e.requestMiddleware),actionHandlers:u(e.actionHandlers),actionParsers:u(e.actionParsers),postprocessMessage:u(e.postprocessMessage),contextProviders:u(e.contextProviders),streamParser:u(e.streamParser)}}var A=`({ text, message }: any) => {
2
2
  const jsonSource = (message as any).rawContent || text || message.content;
3
3
  if (!jsonSource || typeof jsonSource !== 'string') return null;
4
4
  let cleanJson = jsonSource
package/dist/codegen.js CHANGED
@@ -1,4 +1,4 @@
1
- var S="3.34.0";var c=S;function u(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(r=>r.toString()).join(", ")}]`:e.toString()}function T(e){if(e)return{getHeaders:u(e.getHeaders),onFeedback:u(e.onFeedback),onCopy:u(e.onCopy),requestMiddleware:u(e.requestMiddleware),actionHandlers:u(e.actionHandlers),actionParsers:u(e.actionParsers),postprocessMessage:u(e.postprocessMessage),contextProviders:u(e.contextProviders),streamParser:u(e.streamParser)}}var x=`({ text, message }: any) => {
1
+ var S="3.34.1";var c=S;function u(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(r=>r.toString()).join(", ")}]`:e.toString()}function T(e){if(e)return{getHeaders:u(e.getHeaders),onFeedback:u(e.onFeedback),onCopy:u(e.onCopy),requestMiddleware:u(e.requestMiddleware),actionHandlers:u(e.actionHandlers),actionParsers:u(e.actionParsers),postprocessMessage:u(e.postprocessMessage),contextProviders:u(e.contextProviders),streamParser:u(e.streamParser)}}var x=`({ text, message }: any) => {
2
2
  const jsonSource = (message as any).rawContent || text || message.content;
3
3
  if (!jsonSource || typeof jsonSource !== 'string') return null;
4
4
  let cleanJson = jsonSource
package/dist/index.cjs CHANGED
@@ -6,7 +6,7 @@ ${t}`:"")+(e.description?`
6
6
  ${e.description}`:"");return window.confirm(n)},Hf=e=>{if(e==null)return"";try{let t=JSON.stringify(e,null,2);return t.length>500?t.slice(0,500)+"\u2026":t}catch{return String(e)}},Bf=e=>{if(e===void 0)return"{}";try{let t=JSON.stringify(e);return t===void 0?"{}":t}catch{return"{}"}},Df=e=>{if(e===void 0)return"";try{return JSON.stringify(e)}catch{return String(e)}};var xo=require("partial-json");var h=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n},Dr=(e,t,n)=>{let r=e.createElement(t);return n&&(r.className=n),r};var sa="ask_user_question",oa=8,ws="data-persona-ask-sheet-for",Of="Other",Nf="Other\u2026",zu="Type your own answer here",Vu="Send",Ff="Next",_f="Back",$f="Submit all",Uf="Skip",jf=3,vl="data-ask-current-index",wl="data-ask-question-count",Ku="data-ask-answers",Cl="data-ask-grouped",Gu="data-ask-layout",qf=e=>e.layout==="pills"?"pills":"rows",zf=e=>e.getAttribute(Gu)==="pills"?"pills":"rows",qu=!1,Ju=e=>e.replace(/["\\]/g,"\\$&"),Jr=e=>e.variant==="tool"&&!!e.toolCall&&e.toolCall.name===sa,ei=e=>{var t,n;return(n=(t=e==null?void 0:e.features)==null?void 0:t.askUserQuestion)!=null?n:{}},Qr=e=>{let t=e.toolCall;if(!t)return{payload:null,complete:!1};let n=t.status==="complete";if(t.args&&typeof t.args=="object")return{payload:t.args,complete:n};let r=t.chunks;if(!r||r.length===0)return{payload:null,complete:n};try{let o=r.join(""),s=(0,xo.parse)(o,xo.STR|xo.OBJ|xo.ARR);if(s&&typeof s=="object")return{payload:s,complete:n}}catch{}return{payload:null,complete:n}},aa=e=>{let t=Array.isArray(e==null?void 0:e.questions)?e.questions:[];return t.length>oa&&!qu&&(qu=!0,typeof console!="undefined"&&console.warn(`[AgentWidget] ask_user_question received ${t.length} questions; truncating to ${oa}.`)),t.slice(0,oa)},Vf=e=>{var t;return(t=aa(e)[0])!=null?t:null},Kf=(e,t)=>{var n;return(n=aa(e)[t])!=null?n:null},Qu=(e,t)=>{let n=t.styles;n&&(n.sheetBackground&&e.style.setProperty("--persona-ask-sheet-bg",n.sheetBackground),n.sheetBorder&&e.style.setProperty("--persona-ask-sheet-border",n.sheetBorder),n.sheetShadow&&e.style.setProperty("--persona-ask-sheet-shadow",n.sheetShadow),n.pillBackground&&e.style.setProperty("--persona-ask-pill-bg",n.pillBackground),n.pillBackgroundSelected&&e.style.setProperty("--persona-ask-pill-bg-selected",n.pillBackgroundSelected),n.pillTextColor&&e.style.setProperty("--persona-ask-pill-fg",n.pillTextColor),n.pillTextColorSelected&&e.style.setProperty("--persona-ask-pill-fg-selected",n.pillTextColorSelected),n.pillBorderRadius&&e.style.setProperty("--persona-ask-pill-radius",n.pillBorderRadius),n.customInputBackground&&e.style.setProperty("--persona-ask-input-bg",n.customInputBackground))},Xu=(e,t,n)=>{if(e!=="rows")return null;let r=h("span","persona-ask-row-affordance");if(r.setAttribute("aria-hidden","true"),t){let o=h("span","persona-ask-row-check");r.appendChild(o)}else{let o=h("span","persona-ask-row-badge");o.textContent=String(n+1),r.appendChild(o)}return r},Gf=(e,t,n,r)=>{let s=h("button",n==="rows"?"persona-ask-pill persona-ask-row persona-pointer-events-auto":"persona-ask-pill persona-pointer-events-auto");if(s.type="button",s.setAttribute("role",r?"checkbox":"button"),s.setAttribute("aria-pressed","false"),s.setAttribute("data-ask-user-action","pick"),s.setAttribute("data-option-index",String(t)),s.setAttribute("data-option-label",e.label),n==="rows"){let a=h("span","persona-ask-row-content"),i=h("span","persona-ask-row-label");if(i.textContent=e.label,a.appendChild(i),e.description){let l=h("span","persona-ask-row-description");l.textContent=e.description,a.appendChild(l)}s.appendChild(a);let d=Xu(n,r,t);d&&s.appendChild(d)}else s.textContent=e.label,e.description&&(s.title=e.description);return s},Jf=e=>{let n=h("span",e==="rows"?"persona-ask-pill persona-ask-row persona-ask-pill-skeleton persona-pointer-events-none":"persona-ask-pill persona-ask-pill-skeleton persona-pointer-events-none");return n.setAttribute("aria-hidden","true"),n},Qf=(e,t,n,r)=>{var p,u,f;let s=h("div",r==="rows"?"persona-ask-pills persona-ask-pills--rows persona-flex persona-flex-col persona-gap-2":"persona-ask-pills persona-flex persona-flex-wrap persona-gap-2");s.setAttribute("role","group"),s.setAttribute("data-ask-pill-list","true");let a=!!(e!=null&&e.multiSelect),d=(Array.isArray(e==null?void 0:e.options)?e.options:[]).filter(g=>g&&typeof g.label=="string"&&g.label.length>0);if(d.length===0&&!n){for(let g=0;g<jf;g++)s.appendChild(Jf(r));return s}if(d.forEach((g,v)=>{s.appendChild(Gf(g,v,r,a))}),(e==null?void 0:e.allowFreeText)!==!1){let g=r==="rows"?Of:Nf;if(r==="rows"){let v=h("div","persona-ask-pill persona-ask-row persona-ask-row--other persona-ask-pill-custom persona-pointer-events-auto");v.setAttribute("data-ask-user-action","focus-free-text"),v.setAttribute("data-option-index",String(d.length)),v.setAttribute("data-ask-other-row","true");let y=h("span","persona-ask-row-content"),w=document.createElement("input");w.type="text",w.className="persona-ask-row-input persona-flex-1 persona-pointer-events-auto",w.placeholder=(p=t.freeTextPlaceholder)!=null?p:zu,w.setAttribute("data-ask-free-text-input","true"),w.setAttribute("aria-label",(u=t.freeTextLabel)!=null?u:g),y.appendChild(w),v.appendChild(y);let S=Xu(r,a,d.length);S&&v.appendChild(S),s.appendChild(v)}else{let v=h("button","persona-ask-pill persona-ask-pill-custom persona-pointer-events-auto");v.type="button",v.setAttribute("data-ask-user-action","open-free-text"),v.textContent=(f=t.freeTextLabel)!=null?f:g,s.appendChild(v)}}return s},Yu=(e,t)=>{var s,a;let r=h("div",t==="rows"?"persona-ask-free-text persona-ask-free-text--rows persona-flex persona-gap-2 persona-mt-2":"persona-ask-free-text persona-hidden persona-flex persona-gap-2 persona-mt-2");r.setAttribute("data-ask-free-text-row","true");let o=document.createElement("input");if(o.type="text",o.className="persona-ask-free-text-input persona-flex-1 persona-pointer-events-auto",o.placeholder=(s=e.freeTextPlaceholder)!=null?s:zu,o.setAttribute("data-ask-free-text-input","true"),r.appendChild(o),t!=="rows"){let i=h("button","persona-ask-free-text-submit persona-pointer-events-auto");i.type="button",i.textContent=(a=e.submitLabel)!=null?a:Vu,i.setAttribute("data-ask-user-action","submit-free-text"),r.appendChild(i)}return r},Xf=e=>{var r;let t=h("div","persona-ask-multi-actions persona-flex persona-justify-end persona-mt-2");t.setAttribute("data-ask-multi-actions","true");let n=h("button","persona-ask-multi-submit persona-pointer-events-auto");return n.type="button",n.textContent=(r=e.submitLabel)!=null?r:Vu,n.setAttribute("data-ask-user-action","submit-multi"),n.disabled=!0,t.appendChild(n),t},Yf=(e,t,n)=>{var l,p,u,f;let r=h("div","persona-ask-nav persona-flex persona-justify-between persona-items-center persona-gap-2 persona-mt-2");r.setAttribute("data-ask-nav-row","true");let o=h("button","persona-ask-nav-back persona-pointer-events-auto");o.type="button",o.textContent=(l=n.backLabel)!=null?l:_f,o.setAttribute("data-ask-user-action","back"),o.disabled=e===0,r.appendChild(o);let s=h("div","persona-ask-nav-right persona-flex persona-items-center persona-gap-2"),a=h("button","persona-ask-nav-skip persona-pointer-events-auto");a.type="button",a.textContent=(p=n.skipLabel)!=null?p:Uf,a.setAttribute("data-ask-user-action","skip"),s.appendChild(a);let i=h("button","persona-ask-nav-next persona-pointer-events-auto");i.type="button";let d=e===t-1;return i.textContent=d?(u=n.submitAllLabel)!=null?u:$f:(f=n.nextLabel)!=null?f:Ff,i.setAttribute("data-ask-user-action",d?"submit-all":"next"),i.disabled=!0,s.appendChild(i),r.appendChild(s),r},Vo=e=>{let t=e.getAttribute(Ku);if(!t)return{};try{let n=JSON.parse(t);return n&&typeof n=="object"?n:{}}catch{return{}}},Zu=(e,t)=>{e.setAttribute(Ku,JSON.stringify(t))},mr=e=>{var n;let t=Number((n=e.getAttribute(vl))!=null?n:"0");return Number.isFinite(t)?Math.max(0,Math.floor(t)):0},Zf=(e,t)=>{e.setAttribute(vl,String(Math.max(0,Math.floor(t))))},Cs=e=>{var n;let t=Number((n=e.getAttribute(wl))!=null?n:"1");return Number.isFinite(t)?Math.max(1,Math.floor(t)):1},vo=e=>e.getAttribute(Cl)==="true",eh=(e,t)=>{var o;let n=(o=e.agentMetadata)==null?void 0:o.askUserQuestionAnswers;if(!n||typeof n!="object")return{};let r={};return t.forEach((s,a)=>{let i=typeof(s==null?void 0:s.question)=="string"?s.question:"";if(i&&Object.prototype.hasOwnProperty.call(n,i)){let d=n[i];(typeof d=="string"||Array.isArray(d))&&(r[a]=d)}}),r},th=(e,t)=>{var r;let n=(r=e.agentMetadata)==null?void 0:r.askUserQuestionIndex;return typeof n!="number"||!Number.isFinite(n)?0:Math.max(0,Math.min(t-1,Math.floor(n)))},ti=(e,t)=>{let{payload:n}=Qr(t),r=aa(n),o=Vo(e),s={},a=new Set;return r.forEach((i,d)=>{let l=typeof(i==null?void 0:i.question)=="string"?i.question:"";l&&(a.has(l)&&typeof console!="undefined"&&console.warn(`[AgentWidget] ask_user_question has duplicate question text "${l}"; later answer wins.`),a.add(l),Object.prototype.hasOwnProperty.call(o,d)&&(s[l]=o[d]))}),s},em=e=>{let t=Vo(e),n=mr(e),r=t[n],o=new Set;typeof r=="string"?o.add(r):Array.isArray(r)&&r.forEach(d=>o.add(d));let s=e.querySelectorAll('[data-ask-user-action="pick"][data-option-label]');s.forEach(d=>{var u;let l=(u=d.getAttribute("data-option-label"))!=null?u:"",p=o.has(l);d.setAttribute("aria-pressed",p?"true":"false"),d.classList.toggle("persona-ask-pill-selected",p)});let a=new Set(Array.from(s).map(d=>{var l;return(l=d.getAttribute("data-option-label"))!=null?l:""})),i=e.querySelector('[data-ask-free-text-input="true"]');if(i)if(typeof r=="string"&&r.length>0&&!a.has(r)){i.value=r;let d=i.closest('[data-ask-free-text-row="true"]');d==null||d.classList.remove("persona-hidden")}else i.value=""},tm=e=>{if(!vo(e))return;let t=Vo(e),n=mr(e),r=t[n],o=typeof r=="string"&&r.length>0||Array.isArray(r)&&r.length>0,s=e.querySelector('[data-ask-user-action="next"], [data-ask-user-action="submit-all"]');s&&(s.disabled=!o);let a=e.querySelector('[data-ask-user-action="submit-multi"]');if(a){let i=Array.from(e.querySelectorAll('[aria-pressed="true"][data-option-label]'));a.disabled=i.length===0}},Al=(e,t,n)=>{let r=ei(n),o=zf(e),{payload:s,complete:a}=Qr(t),i=vo(e),d=mr(e),l=Cs(e),p=i?Kf(s,d):Vf(s),u=!!(p!=null&&p.multiSelect),f=e.querySelector('[data-ask-step-inline="true"]');f&&(f.textContent=i?`${d+1}/${l}`:"");let g=e.querySelector('[data-ask-stepper="true"]');g&&g.remove();let v=e.querySelector('[data-ask-question="true"]');if(v){let O=typeof(p==null?void 0:p.question)=="string"?p.question:"";v.textContent=O,v.classList.toggle("persona-ask-question-skeleton",!O&&!a)}let y=e.querySelector('[data-ask-pill-list="true"]');if(y){let O=Qf(p,r,a,o);y.replaceWith(O)}if(o!=="rows"){let O=e.querySelector('[data-ask-free-text-row="true"]');O&&O.replaceWith(Yu(r,o))}let w=e.querySelector('[data-ask-multi-actions="true"]');!i&&u&&!w?e.appendChild(Xf(r)):(!u||i)&&w&&w.remove(),e.setAttribute("data-multi-select",u?"true":"false");let S=e.querySelector('[data-ask-nav-row="true"]');if(i){let O=Yf(d,l,r);S?S.replaceWith(O):e.appendChild(O)}else S&&S.remove();em(e),tm(e)},nh=(e,t,n)=>{let r=ei(t),o=qf(r),s=e.toolCall.id,a=aa(n),i=Math.max(1,a.length),d=i>1,l=eh(e,a),p=d?th(e,i):0,u=h("div",["persona-ask-sheet",`persona-ask-sheet--${o}`,"persona-pointer-events-auto","persona-ask-sheet-enter"].join(" "));u.setAttribute(ws,s),u.setAttribute("data-tool-call-id",s),u.setAttribute("data-message-id",e.id),u.setAttribute(wl,String(i)),u.setAttribute(vl,String(p)),u.setAttribute(Cl,d?"true":"false"),u.setAttribute(Gu,o),Zu(u,l),u.setAttribute("role","group"),u.setAttribute("aria-label","Suggested answers"),r.slideInMs!==void 0&&u.style.setProperty("--persona-ask-sheet-duration",`${r.slideInMs}ms`),Qu(u,r);let f=h("div","persona-ask-sheet-header persona-flex persona-items-center persona-gap-3"),g=h("div","persona-ask-sheet-question persona-flex-1");g.setAttribute("data-ask-question","true"),g.textContent="",f.appendChild(g);let v=h("span","persona-ask-sheet-step-inline");v.setAttribute("data-ask-step-inline","true"),v.textContent="",f.appendChild(v),u.appendChild(f);let w=h("div",o==="rows"?"persona-ask-pills persona-ask-pills--rows persona-flex persona-flex-col persona-gap-2":"persona-ask-pills persona-flex persona-flex-wrap persona-gap-2");return w.setAttribute("data-ask-pill-list","true"),w.setAttribute("role","group"),u.appendChild(w),o!=="rows"&&u.appendChild(Yu(r,o)),Al(u,e,t),requestAnimationFrame(()=>{requestAnimationFrame(()=>u.classList.remove("persona-ask-sheet-enter"))}),u},rh=(e,t,n)=>{let{payload:r}=Qr(t),o=Math.max(1,aa(r).length);o>Cs(e)&&(e.setAttribute(wl,String(o)),o>1&&!vo(e)&&e.setAttribute(Cl,"true")),Al(e,t,n)},nm=(e,t)=>{let n=h("div","persona-ask-stub persona-inline-flex persona-items-center persona-gap-2");n.id=`bubble-${e.id}`,n.setAttribute("data-message-id",e.id),n.setAttribute("data-bubble-type","ask-user-question");let r=ei(t);Qu(n,r);let o=h("span","persona-ask-stub-label"),{complete:s}=Qr(e);return o.textContent=s?"Awaiting your response\u2026":"Preparing options\u2026",n.appendChild(o),n},As=(e,t,n)=>{if(!n||!Jr(e)||ei(t).enabled===!1)return;let o=e.toolCall.id;n.querySelectorAll(`[${ws}]`).forEach(l=>{l.getAttribute(ws)!==o&&l.remove()});let a=n.querySelector(`[${ws}="${Ju(o)}"]`);if(a){rh(a,e,t);return}let{payload:i}=Qr(e),d=nh(e,t,i);n.appendChild(d)},wo=(e,t)=>{if(!e)return;let n=t?`[${ws}="${Ju(t)}"]`:`[${ws}]`;e.querySelectorAll(n).forEach(o=>{o.classList.add("persona-ask-sheet-leave");let s=Number.parseInt(getComputedStyle(o).getPropertyValue("--persona-ask-sheet-duration")||"180",10);setTimeout(()=>o.remove(),Number.isFinite(s)?s:180)})},Sl=e=>Array.from(e.querySelectorAll('[aria-pressed="true"][data-option-label]')).map(t=>t.getAttribute("data-option-label")).filter(t=>typeof t=="string"&&t.length>0),Co=(e,t)=>{let n=Vo(e),r=mr(e);typeof t=="string"&&t.length===0||Array.isArray(t)&&t.length===0?delete n[r]:n[r]=t,Zu(e,n),em(e),tm(e)},ni=(e,t,n,r)=>{let o=Cs(e),s=Math.max(0,Math.min(o-1,r));Zf(e,s),Al(e,t,n)};var Sr="suggest_replies";var Tl={type:"object",properties:{suggestions:{type:"array",minItems:1,maxItems:4,description:"1-4 short, distinct follow-up replies, phrased in the user's voice.",items:{type:"string",minLength:1,maxLength:60}}},required:["suggestions"],additionalProperties:!1},ri={name:Sr,description:`Offer the user tappable quick-reply suggestions for their next message. Call at most once per turn, as the LAST action after your reply text is complete. Each suggestion is sent verbatim as the user's next message, so phrase suggestions in the user's voice (e.g. "Tell me more about pricing"). Keep them short and distinct. The result only confirms the suggestions were shown \u2014 do not add further commentary after calling this tool; end your turn.`,parametersSchema:Tl,origin:"sdk",annotations:{readOnlyHint:!0}},El=()=>({content:[{type:"text",text:"Suggestions shown to the user."}]}),ia=e=>{var t;return e.variant==="tool"&&((t=e.toolCall)==null?void 0:t.name)===Sr},Ml=e=>{let t=e;if(typeof t=="string")try{t=JSON.parse(t)}catch{return[]}let n=t==null?void 0:t.suggestions;if(!Array.isArray(n))return[];let r=n.filter(o=>typeof o=="string").map(o=>o.trim()).filter(o=>o.length>0);return r.length>4?(console.warn(`[persona] suggest_replies: ${r.length} suggestions exceeds the cap of 4; extra suggestions dropped.`),r.slice(0,4)):r},oi=e=>{var t;for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.role==="user")return null;if(!ia(r))continue;let o=Ml((t=r.toolCall)==null?void 0:t.args);return o.length>0?o:null}return null},rm=e=>{var n;let t=(n=e==null?void 0:e.features)==null?void 0:n.suggestReplies;return(t==null?void 0:t.expose)===!0&&t.enabled!==!1};var kl={type:"object",properties:{questions:{type:"array",minItems:1,maxItems:oa,description:"Questions to ask the user. Prefer a single question.",items:{type:"object",properties:{question:{type:"string",description:"The complete question, ending with a question mark."},header:{type:"string",maxLength:12,description:'Short topic label, e.g. "Auth method".'},options:{type:"array",minItems:2,maxItems:4,description:'2-4 distinct choices. Do NOT add an "Other" option \u2014 free text is automatic.',items:{type:"object",properties:{label:{type:"string",description:"Concise choice text (1-5 words)."},description:{type:"string",description:"What the option means or implies."}},required:["label"],additionalProperties:!1}},multiSelect:{type:"boolean",description:"Allow selecting multiple options. Default false."},allowFreeText:{type:"boolean",description:"Show a free-text input. Default true."}},required:["question","options"],additionalProperties:!1}}},required:["questions"],additionalProperties:!1},Ll={name:sa,description:"Ask the user multiple-choice questions and wait for their answers. Use only when blocked on a decision that is the user's to make \u2014 a preference, a choice between valid approaches, or information you cannot infer. Each question offers 2-4 options plus an automatic free-text input. The result maps each question to its answer (an array when multiSelect); a question absent from the result was skipped.",parametersSchema:kl,origin:"sdk",annotations:{readOnlyHint:!0}},la=e=>{var r;let t=[],n=(r=e==null?void 0:e.features)==null?void 0:r.askUserQuestion;return(n==null?void 0:n.expose)===!0&&n.enabled!==!1&&t.push(Ll),rm(e)&&t.push(ri),t};var Xr=require("partial-json"),si=e=>e.replace(/\\n/g,`
7
7
  `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\"),Ss=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)}},oh=e=>{var a,i;let t=(a=e.completedAt)!=null?a:Date.now(),n=(i=e.startedAt)!=null?i:t,o=(e.durationMs!==void 0?e.durationMs:Math.max(0,t-n))/1e3;return o<.1?"Thought for <0.1 seconds":`Thought for ${o>=10?Math.round(o).toString():o.toFixed(1).replace(/\.0$/,"")} seconds`},om=e=>e.status==="complete"?oh(e):e.status==="pending"?"Waiting":"",sh=e=>{var o,s,a;let n=(typeof e.duration=="number"?e.duration:typeof e.durationMs=="number"?e.durationMs:Math.max(0,((o=e.completedAt)!=null?o:Date.now())-((a=(s=e.startedAt)!=null?s:e.completedAt)!=null?a:Date.now())))/1e3;return n<.1?"Used tool for <0.1 seconds":`Used tool for ${n>=10?Math.round(n).toString():n.toFixed(1).replace(/\.0$/,"")} seconds`};var sm=e=>e.status==="complete"?sh(e):"Using tool...",ai=e=>{let t=e/1e3;return t<.1?"<0.1s":t>=10?`${Math.round(t)}s`:`${t.toFixed(1).replace(/\.0$/,"")}s`},da=e=>{var n,r,o;let t=typeof e.duration=="number"?e.duration:typeof e.durationMs=="number"?e.durationMs:Math.max(0,((n=e.completedAt)!=null?n:Date.now())-((o=(r=e.startedAt)!=null?r:e.completedAt)!=null?o:Date.now()));return ai(t)},ii=e=>{var n,r,o;let t=e.durationMs!==void 0?e.durationMs:Math.max(0,((n=e.completedAt)!=null?n:Date.now())-((o=(r=e.startedAt)!=null?r:e.completedAt)!=null?o:Date.now()));return ai(t)},Pl=(e,t,n)=>{var s;if(!t)return n;let r=((s=e.name)==null?void 0:s.trim())||"tool",o=da(e);return t.replace(/\{toolName\}/g,r).replace(/\{duration\}/g,o)},li=(e,t)=>{let n=e.replace(/\{toolName\}/g,t),r=[],o=/\*\*(.+?)\*\*|\*(.+?)\*|~(.+?)~/g,s=0,a;for(;(a=o.exec(n))!==null;)a.index>s&&ca(r,n.slice(s,a.index),[]),a[1]!==void 0?ca(r,a[1],["bold"]):a[2]!==void 0?ca(r,a[2],["italic"]):a[3]!==void 0&&ca(r,a[3],["dim"]),s=a.index+a[0].length;return s<n.length&&ca(r,n.slice(s),[]),r},ca=(e,t,n)=>{let r=t.split("{duration}");for(let o=0;o<r.length;o++)r[o]&&e.push({text:r[o],styles:n}),o<r.length-1&&e.push({text:"{duration}",styles:n,isDuration:!0})},ah=()=>{let e=null,t=0,n=r=>{let o=/"text"\s*:\s*"((?:[^"\\]|\\.|")*?)"/,s=r.match(o);if(s&&s[1])try{return s[1].replace(/\\n/g,`
8
8
  `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return s[1]}let a=/"text"\s*:\s*"((?:[^"\\]|\\.)*)/,i=r.match(a);if(i&&i[1])try{return i[1].replace(/\\n/g,`
9
- `).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<=t)return e!==null?{text:e,raw:r}:null;let o=r.trim();if(!o.startsWith("{")&&!o.startsWith("["))return null;let s=n(r);return s!==null&&(e=s),t=r.length,e!==null?{text:e,raw:r}:null},close:async()=>{}}},Ko=e=>{try{let t=JSON.parse(e);if(t&&typeof t=="object"&&typeof t.text=="string")return t.text}catch{return null}return null},ci=()=>{let e={processChunk:t=>null,getExtractedText:()=>null};return e.__isPlainTextParser=!0,e},di=()=>{var t;let e=ah();return{processChunk:async n=>{let r=n.trim();return!r.startsWith("{")&&!r.startsWith("[")?null:e.processChunk(n)},getExtractedText:e.getExtractedText.bind(e),close:(t=e.close)==null?void 0:t.bind(e)}},pi=()=>{let e=null,t=0;return{getExtractedText:()=>e,processChunk:n=>{let r=n.trim();if(!r.startsWith("{")&&!r.startsWith("["))return null;if(n.length<=t)return e!==null||e===""?{text:e||"",raw:n}:null;try{let o=(0,Xr.parse)(n,Xr.STR|Xr.OBJ);o&&typeof o=="object"&&(o.component&&typeof o.component=="string"?e=typeof o.text=="string"?si(o.text):"":o.type==="init"&&o.form?e="":typeof o.text=="string"&&(e=si(o.text)))}catch{}return t=n.length,e!==null?{text:e,raw:n}:null},close:()=>{}}},am=e=>{let t=null,n=0,o=e||(s=>{if(!s||typeof s!="object")return null;let a=i=>typeof i=="string"?si(i):null;if(s.component&&typeof s.component=="string")return typeof s.text=="string"?si(s.text):"";if(s.type==="init"&&s.form)return"";if(s.action)switch(s.action){case"nav_then_click":return a(s.on_load_text)||a(s.text)||null;case"message":case"message_and_click":case"checkout":return a(s.text)||null;default:return a(s.text)||a(s.display_text)||a(s.message)||null}return a(s.text)||a(s.display_text)||a(s.message)||a(s.content)||null});return{getExtractedText:()=>t,processChunk:s=>{let a=s.trim();if(!a.startsWith("{")&&!a.startsWith("["))return null;if(s.length<=n)return t!==null?{text:t,raw:s}:null;try{let i=(0,Xr.parse)(s,Xr.STR|Xr.OBJ),d=o(i);d!==null&&(t=d)}catch{}return n=s.length,{text:t||"",raw:s}},close:()=>{}}},ui=()=>{let e=null;return{processChunk:t=>{if(!t.trim().startsWith("<"))return null;let r=t.match(/<text[^>]*>([\s\S]*?)<\/text>/);return r&&r[1]?(e=r[1],{text:e,raw:t}):null},getExtractedText:()=>e}};var mi=class{constructor(t,n=50){this.nextExpectedSeq=null;this.buffer=new Map;this.flushTimer=null;this.emitter=t,this.gapTimeoutMs=n}push(t,n){var s,a,i;let r=(i=(s=n==null?void 0:n.seq)!=null?s:n==null?void 0:n.sequenceIndex)!=null?i:(a=n==null?void 0:n.agentContext)==null?void 0:a.seq;if(r==null){this.buffer.size>0&&this.flushAll(),this.emitter(t,n);return}if(this.nextExpectedSeq===null&&(this.nextExpectedSeq=1),r===this.nextExpectedSeq){this.emitter(t,n),this.nextExpectedSeq=r+1,this.drainConsecutive();return}if(r<this.nextExpectedSeq){this.emitter(t,n);return}let o=this.buffer.get(r);o!==void 0&&(typeof console!="undefined"&&typeof console.warn=="function"&&console.warn(`[persona] SequenceReorderBuffer: duplicate seq=${r} (${o.payloadType} vs ${t}); emitting earlier event out-of-order to avoid loss`),this.emitter(o.payloadType,o.payload)),this.buffer.set(r,{payloadType:t,payload:n,seq:r}),this.startGapTimer()}drainConsecutive(){for(;this.buffer.has(this.nextExpectedSeq);){let t=this.buffer.get(this.nextExpectedSeq);this.buffer.delete(this.nextExpectedSeq),this.emitter(t.payloadType,t.payload),this.nextExpectedSeq++}this.buffer.size===0&&this.clearGapTimer()}startGapTimer(){this.flushTimer===null&&(this.flushTimer=setTimeout(()=>{this.flushAll()},this.gapTimeoutMs))}clearGapTimer(){this.flushTimer!==null&&(clearTimeout(this.flushTimer),this.flushTimer=null)}flushAll(){if(this.clearGapTimer(),this.buffer.size===0)return;let t=[...this.buffer.entries()].sort((n,r)=>n[0]-r[0]);for(let[n,r]of t)this.buffer.delete(n),this.emitter(r.payloadType,r.payload);t.length>0&&(this.nextExpectedSeq=t[t.length-1][0]+1)}destroy(){this.clearGapTimer(),this.buffer.clear()}flushPending(){this.flushAll()}};var ih="https://api.runtype.com/v1/dispatch",gi="https://api.runtype.com";function lh(e){var s,a;let t=e.toLowerCase(),r={"application/pdf":"pdf","application/json":"json","application/zip":"zip","text/plain":"txt","text/csv":"csv","text/markdown":"md"}[t];if(r)return`attachment.${r}`;let o=t.indexOf("/");if(o>0){let i=(a=(s=t.slice(o+1).split(";")[0])==null?void 0:s.trim())!=null?a:"";if(i&&i!=="octet-stream"&&/^[a-z0-9.+-]+$/i.test(i))return`attachment.${i}`}return"attachment"}var Il=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 ch(e){switch(e){case"json":return pi;case"regex-json":return di;case"xml":return ui;default:return ci}}var im=e=>e.startsWith("{")||e.startsWith("[")||e.startsWith("<");function dh(e,t){if(!e)return t;let n=e.trim(),r=t.trim();if(n.length===0)return t;if(r.length===0)return e;let o=im(n);if(!im(r))return e;if(!o||r===n||r.startsWith(n))return t;let a=Ko(e);return Ko(t)!==null&&a===null?t:e}var Go=class{constructor(t={}){this.config=t;this.clientSession=null;this.sessionInitPromise=null;this.lastSentClientToolsFingerprint=null;this.clientToolsFingerprintSessionId=null;var n,r,o,s;this.apiUrl=(n=t.apiUrl)!=null?n:ih,this.headers={"Content-Type":"application/json",...t.headers},this.debug=!!t.debug,this.createStreamParser=(r=t.streamParser)!=null?r:ch(t.parserType),this.contextProviders=(o=t.contextProviders)!=null?o:[],this.requestMiddleware=t.requestMiddleware,this.customFetch=t.customFetch,this.parseSSEEvent=t.parseSSEEvent,this.getHeaders=t.getHeaders,this.webMcpBridge=((s=t.webmcp)==null?void 0:s.enabled)===!0?new vs(t.webmcp):null}updateConfig(t){this.config=t}setSSEEventCallback(t){this.onSSEEvent=t}setWebMcpConfirmHandler(t){var n;(n=this.webMcpBridge)==null||n.setConfirmHandler(t)}isWebMcpOperational(){var t;return((t=this.webMcpBridge)==null?void 0:t.isOperational())===!0}executeWebMcpToolCall(t,n,r){return this.webMcpBridge?this.webMcpBridge.executeToolCall(t,n,r):null}getSSEEventCallback(){return this.onSSEEvent}isClientTokenMode(){return!!this.config.clientToken}isAgentMode(){return!!this.config.agent}getClientApiUrl(t){var r;return`${((r=this.config.apiUrl)==null?void 0:r.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||gi}/v1/client/${t}`}getClientSession(){return this.clientSession}async initSession(){var t,n;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,this.resetClientToolsFingerprint(),(n=(t=this.config).onSessionInit)==null||n.call(t,r),r}finally{this.sessionInitPromise=null}}async _doInitSession(){var s,a;let t=((a=(s=this.config).getStoredSessionId)==null?void 0:a.call(s))||null,n={token:this.config.clientToken,...this.config.flowId&&{flowId:this.config.flowId},...t&&{sessionId:t}},r=await fetch(this.getClientApiUrl("init"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});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 o=await r.json();return this.config.setStoredSessionId&&this.config.setStoredSessionId(o.sessionId),{sessionId:o.sessionId,expiresAt:new Date(o.expiresAt),flow:o.flow,config:{welcomeMessage:o.config.welcomeMessage,placeholder:o.config.placeholder,theme:o.config.theme}}}clearClientSession(){this.clientSession=null,this.sessionInitPromise=null,this.resetClientToolsFingerprint()}resetClientToolsFingerprint(){this.lastSentClientToolsFingerprint=null,this.clientToolsFingerprintSessionId=null}getFeedbackApiUrl(){var n;return`${((n=this.config.apiUrl)==null?void 0:n.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||gi}/v1/client/feedback`}async sendFeedback(t){var s,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(t.type)&&!t.messageId)throw new Error(`messageId is required for ${t.type} feedback type`);if(t.type==="csat"&&(t.rating===void 0||t.rating<1||t.rating>5))throw new Error("CSAT rating must be between 1 and 5");if(t.type==="nps"&&(t.rating===void 0||t.rating<0||t.rating>10))throw new Error("NPS rating must be between 0 and 10");this.debug&&console.debug("[AgentWidgetClient] sending feedback",t);let o=await fetch(this.getFeedbackApiUrl(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let i=await o.json().catch(()=>({error:"Feedback submission failed"}));throw o.status===401?(this.clientSession=null,(a=(s=this.config).onSessionExpired)==null||a.call(s),new Error("Session expired. Please refresh to continue.")):new Error(i.error||"Failed to submit feedback")}}async submitMessageFeedback(t,n){let r=this.getClientSession();if(!r)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:r.sessionId,messageId:t,type:n})}async submitCSATFeedback(t,n){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:t,comment:n})}async submitNPSFeedback(t,n){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:t,comment:n})}async dispatch(t,n){return this.isAgentMode()?this.dispatchAgent(t,n):this.isClientTokenMode()?this.dispatchClientToken(t,n):this.dispatchProxy(t,n)}async dispatchClientToken(t,n){var o,s,a,i;let r=new AbortController;t.signal&&t.signal.addEventListener("abort",()=>r.abort()),n({type:"status",status:"connecting"});try{let d=await this.initSession();if(new Date>=new Date(d.expiresAt.getTime()-6e4)){this.clearClientSession(),(s=(o=this.config).onSessionExpired)==null||s.call(o);let I=new Error("Session expired. Please refresh to continue.");throw n({type:"error",error:I}),I}let l=await this.buildPayload(t.messages),p=l.metadata?Object.fromEntries(Object.entries(l.metadata).filter(([I])=>I!=="sessionId"&&I!=="session_id")):void 0,u={sessionId:d.sessionId,messages:t.messages.filter(Il).map(I=>{var R,T,W;return{id:I.id,role:I.role,content:(W=(T=(R=I.contentParts)!=null?R:I.llmContent)!=null?T:I.rawContent)!=null?W:I.content}}),...t.assistantMessageId&&{assistantMessageId:t.assistantMessageId},...p&&Object.keys(p).length>0&&{metadata:p},...l.inputs&&Object.keys(l.inputs).length>0&&{inputs:l.inputs},...l.context&&{context:l.context}},f=l.clientTools,g=!!(f&&f.length>0),v=g?ju(f):void 0,y=this.clientToolsFingerprintSessionId===d.sessionId,w=g&&y&&this.lastSentClientToolsFingerprint===v,S=!1,O=null,k;for(let I=0;;I++){let T={...u,...g&&(S||!w)&&f?{clientTools:f}:{},...v?{clientToolsFingerprint:v}:{}};if(this.debug&&console.debug("[AgentWidgetClient] client token dispatch",T),k=await fetch(this.getClientApiUrl("chat"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T),signal:r.signal}),k.status===409&&I===0&&g){let W=await k.json().catch(()=>null);if((W==null?void 0:W.error)==="client_tools_resend_required"){S=!0,this.lastSentClientToolsFingerprint=null;continue}O=W!=null?W:{error:"Chat request failed"}}break}if(!k.ok){let I=O!=null?O:await k.json().catch(()=>({error:"Chat request failed"}));if(k.status===401){this.clearClientSession(),(i=(a=this.config).onSessionExpired)==null||i.call(a);let T=new Error("Session expired. Please refresh to continue.");throw n({type:"error",error:T}),T}if(k.status===429){let T=new Error(I.hint||"Message limit reached for this session.");throw n({type:"error",error:T}),T}let R=new Error(I.error||"Failed to send message");throw n({type:"error",error:R}),R}if(!k.body){let I=new Error("No response body received");throw n({type:"error",error:I}),I}this.lastSentClientToolsFingerprint=v!=null?v:null,this.clientToolsFingerprintSessionId=d.sessionId,n({type:"status",status:"connected"});try{await this.streamResponse(k.body,n,t.assistantMessageId)}finally{n({type:"status",status:"idle"})}}catch(d){let l=d instanceof Error?d:new Error(String(d));throw!l.message.includes("Session expired")&&!l.message.includes("Message limit")&&n({type:"error",error:l}),l}}async dispatchProxy(t,n){let r=new AbortController;t.signal&&t.signal.addEventListener("abort",()=>r.abort()),n({type:"status",status:"connecting"});let o=await this.buildPayload(t.messages);this.debug&&console.debug("[AgentWidgetClient] dispatch payload",o);let s={...this.headers};if(this.getHeaders)try{let i=await this.getHeaders();s={...s,...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:s,body:JSON.stringify(o),signal:r.signal},o)}catch(i){let d=i instanceof Error?i:new Error(String(i));throw n({type:"error",error:d}),d}else a=await fetch(this.apiUrl,{method:"POST",headers:s,body:JSON.stringify(o),signal:r.signal});if(!a.ok||!a.body){let i=new Error(`Chat backend request failed: ${a.status} ${a.statusText}`);throw n({type:"error",error:i}),i}n({type:"status",status:"connected"});try{await this.streamResponse(a.body,n)}finally{n({type:"status",status:"idle"})}}async dispatchAgent(t,n){let r=new AbortController;t.signal&&t.signal.addEventListener("abort",()=>r.abort()),n({type:"status",status:"connecting"});let o=await this.buildAgentPayload(t.messages);this.debug&&console.debug("[AgentWidgetClient] agent dispatch payload",o);let s={...this.headers};if(this.getHeaders)try{let i=await this.getHeaders();s={...s,...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:s,body:JSON.stringify(o),signal:r.signal},o)}catch(i){let d=i instanceof Error?i:new Error(String(i));throw n({type:"error",error:d}),d}else a=await fetch(this.apiUrl,{method:"POST",headers:s,body:JSON.stringify(o),signal:r.signal});if(!a.ok||!a.body){let i=new Error(`Agent execution request failed: ${a.status} ${a.statusText}`);throw n({type:"error",error:i}),i}n({type:"status",status:"connected"});try{await this.streamResponse(a.body,n,t.assistantMessageId)}finally{n({type:"status",status:"idle"})}}async processStream(t,n,r){n({type:"status",status:"connected"});try{await this.streamResponse(t,n,r)}finally{n({type:"status",status:"idle"})}}async resolveApproval(t,n){var a;let o=`${((a=this.config.apiUrl)==null?void 0:a.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||gi}/v1/agents/${t.agentId}/approve`,s={"Content-Type":"application/json",...this.headers};return this.getHeaders&&Object.assign(s,await this.getHeaders()),fetch(o,{method:"POST",headers:s,body:JSON.stringify({executionId:t.executionId,approvalId:t.approvalId,decision:n,streamResponse:!0})})}async resumeFlow(t,n,r){var l,p;let o=this.isClientTokenMode(),s=o?this.getClientApiUrl("resume"):`${((l=this.config.apiUrl)==null?void 0:l.replace(/\/+$/,""))||gi}/resume`,a;o&&(a=(await this.initSession()).sessionId);let i={"Content-Type":"application/json",...this.headers};this.getHeaders&&Object.assign(i,await this.getHeaders());let d={executionId:t,toolOutputs:n,streamResponse:(p=r==null?void 0:r.streamResponse)!=null?p:!0};return a&&(d.sessionId=a),fetch(s,{method:"POST",headers:i,body:JSON.stringify(d),signal:r==null?void 0:r.signal})}async buildAgentPayload(t){var s,a;if(!this.config.agent)throw new Error("Agent configuration required for agent mode");let n=t.slice().filter(Il).filter(i=>i.role==="user"||i.role==="assistant"||i.role==="system").filter(i=>!i.variant||i.variant==="assistant").sort((i,d)=>{let l=new Date(i.createdAt).getTime(),p=new Date(d.createdAt).getTime();return l-p}).map(i=>{var d,l,p;return{role:i.role,content:(p=(l=(d=i.contentParts)!=null?d:i.llmContent)!=null?l:i.rawContent)!=null?p:i.content,createdAt:i.createdAt}}),r={agent:this.config.agent,messages:n,options:{streamResponse:!0,recordMode:"virtual",...this.config.agentOptions}},o=[...la(this.config),...(a=await((s=this.webMcpBridge)==null?void 0:s.snapshotForDispatch()))!=null?a:[]];if(o.length>0&&(r.clientTools=o),this.contextProviders.length){let i={};await Promise.all(this.contextProviders.map(async d=>{try{let l=await d({messages:t,config:this.config});l&&typeof l=="object"&&Object.assign(i,l)}catch(l){typeof console!="undefined"&&console.warn("[AgentWidget] Context provider failed:",l)}})),Object.keys(i).length&&(r.context=i)}return r}async buildPayload(t){var s,a;let r={messages:t.slice().filter(Il).sort((i,d)=>{let l=new Date(i.createdAt).getTime(),p=new Date(d.createdAt).getTime();return l-p}).map(i=>{var d,l,p;return{role:i.role,content:(p=(l=(d=i.contentParts)!=null?d:i.llmContent)!=null?l:i.rawContent)!=null?p:i.content,createdAt:i.createdAt}}),...this.config.flowId&&{flowId:this.config.flowId}},o=[...la(this.config),...(a=await((s=this.webMcpBridge)==null?void 0:s.snapshotForDispatch()))!=null?a:[]];if(o.length>0&&(r.clientTools=o),this.contextProviders.length){let i={};await Promise.all(this.contextProviders.map(async d=>{try{let l=await d({messages:t,config:this.config});l&&typeof l=="object"&&Object.assign(i,l)}catch(l){typeof console!="undefined"&&console.warn("[AgentWidget] Context provider failed:",l)}})),Object.keys(i).length&&(r.context=i)}if(this.requestMiddleware)try{let i=await this.requestMiddleware({payload:{...r},config:this.config});if(i&&typeof i=="object"){let d=i;return r.clientTools!==void 0&&!("clientTools"in d)&&(d.clientTools=r.clientTools),d}}catch(i){typeof console!="undefined"&&console.error("[AgentWidget] Request middleware error:",i)}return r}async handleCustomSSEEvent(t,n,r,o,s,a){if(!this.parseSSEEvent)return!1;try{let i=await this.parseSSEEvent(t);if(i===null)return!1;let d=p=>{let u={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"assistant",sequence:s(),...p!==void 0&&{partId:p}};return r.current=u,o(u),u},l=p=>r.current?r.current:d(p);if(i.text!==void 0){i.partId!==void 0&&a.current!==null&&i.partId!==a.current&&(r.current&&(r.current.streaming=!1,o(r.current)),d(i.partId)),i.partId!==void 0&&(a.current=i.partId);let p=l(i.partId);i.partId!==void 0&&!p.partId&&(p.partId=i.partId),p.content+=i.text,o(p)}return i.done&&(r.current&&(r.current.streaming=!1,o(r.current)),a.current=null,n({type:"status",status:"idle"})),i.error&&(a.current=null,n({type:"error",error:new Error(i.error)})),!0}catch(i){return typeof console!="undefined"&&console.error("[AgentWidget] parseSSEEvent error:",i),!1}}async streamResponse(t,n,r){var Ht,cn,sr,Er;let o=t.getReader(),s=new TextDecoder,a="",i=Date.now(),d=0,l=()=>i+d++,p=H=>{let pe=H.reasoning?{...H.reasoning,chunks:[...H.reasoning.chunks]}:void 0,Oe=H.toolCall?{...H.toolCall,chunks:H.toolCall.chunks?[...H.toolCall.chunks]:void 0}:void 0,Qe=H.tools?H.tools.map(_e=>({..._e,chunks:_e.chunks?[..._e.chunks]:void 0})):void 0;return{...H,reasoning:pe,toolCall:Oe,tools:Qe}},u=H=>{if(H.role!=="assistant"||H.variant)return!0;let pe=Array.isArray(H.contentParts)&&H.contentParts.length>0,Oe=typeof H.rawContent=="string"&&H.rawContent.trim()!=="";return typeof H.content=="string"&&H.content.trim()!==""||pe||Oe||!!H.stopReason},f=H=>{u(H)&&n({type:"message",message:p(H)})},g=null,v=null,y={current:null},w={current:null},S=!1,O=new Map,k=new Map,I=new Map,R=new Map,T={lastId:null,byStep:new Map},W={lastId:null,byCall:new Map},_=(H,pe,Oe="")=>`${H}::${pe}::${Oe}`,F=(H,pe)=>`${H}::${pe}::`,M=(H,pe,Oe,Qe)=>{let _e=_(H,pe,Oe),Ue=I.get(_e);if(Ue)return Ue;let at=Oe?`-${Oe}`:"",Pt={id:`nested-${H}-${pe}${at}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:l(),...Oe?{partId:Oe}:{},agentMetadata:{executionId:Qe,parentToolId:H,parentStepId:pe}};return I.set(_e,Pt),f(Pt),Pt},j=H=>{if(H==null)return null;try{return String(H)}catch{return null}},z=H=>{var pe,Oe,Qe,_e,Ue;return j((Ue=(_e=(Qe=(Oe=(pe=H.stepId)!=null?pe:H.step_id)!=null?Oe:H.step)!=null?Qe:H.parentId)!=null?_e:H.flowStepId)!=null?Ue:H.flow_step_id)},oe=H=>{var pe,Oe,Qe,_e,Ue,at,Pt;return j((Pt=(at=(Ue=(_e=(Qe=(Oe=(pe=H.callId)!=null?pe:H.call_id)!=null?Oe:H.requestId)!=null?Qe:H.request_id)!=null?_e:H.toolCallId)!=null?Ue:H.tool_call_id)!=null?at:H.stepId)!=null?Pt:H.step_id)},ke=r,ze=!1,Ae=()=>{if(g)return g;let H;return!ze&&ke?(H=ke,ze=!0):ke&&w.current?H=`${ke}_${w.current}`:H=`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,g={id:H,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:l()},f(g),g},Re=(H,pe)=>{T.lastId=pe,H&&T.byStep.set(H,pe)},be=(H,pe)=>{var Ue;let Oe=(Ue=H.reasoningId)!=null?Ue:H.id,Qe=z(H);if(Oe){let at=String(Oe);return Re(Qe,at),at}if(Qe){let at=T.byStep.get(Qe);if(at)return T.lastId=at,at}if(T.lastId&&!pe)return T.lastId;if(!pe)return null;let _e=`reason-${l()}`;return Re(Qe,_e),_e},Le=H=>{let pe=O.get(H);if(pe)return pe;let Oe={id:`reason-${H}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"reasoning",sequence:l(),reasoning:{id:H,status:"streaming",chunks:[]}};return O.set(H,Oe),f(Oe),Oe},We=(H,pe)=>{W.lastId=pe,H&&W.byCall.set(H,pe)},de=new Set,X=new Map,re=new Set,ce=new Map,ge=H=>{if(!H)return!1;let pe=H.replace(/_+/g,"_").replace(/^_|_$/g,"");return pe==="emit_artifact_markdown"||pe==="emit_artifact_component"},K=(H,pe)=>{var Ue;let Oe=(Ue=H.toolId)!=null?Ue:H.id,Qe=oe(H);if(Oe){let at=String(Oe);return We(Qe,at),at}if(Qe){let at=W.byCall.get(Qe);if(at)return W.lastId=at,at}if(W.lastId&&!pe)return W.lastId;if(!pe)return null;let _e=`tool-${l()}`;return We(Qe,_e),_e},ae=H=>{let pe=k.get(H);if(pe)return pe;let Oe={id:`tool-${H}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"tool",sequence:l(),toolCall:{id:H,status:"pending"}};return k.set(H,Oe),f(Oe),Oe},He=H=>{if(typeof H=="number"&&Number.isFinite(H))return H;if(typeof H=="string"){let pe=Number(H);if(!Number.isNaN(pe)&&Number.isFinite(pe))return pe;let Oe=Date.parse(H);if(!Number.isNaN(Oe))return Oe}return Date.now()},Y=H=>{if(typeof H=="string")return H;if(H==null)return"";try{return JSON.stringify(H)}catch{return String(H)}},ee=new Map,ie=new Map,Se=new Map,Ze=new Map,ve=null,fe=(H,pe,Oe)=>{var Pt;let Qe=Se.get(H);Qe||(Qe=[],Se.set(H,Qe));let _e=0,Ue=Qe.length;for(;_e<Ue;){let Kt=_e+Ue>>>1;Qe[Kt].seq<pe?_e=Kt+1:Ue=Kt}((Pt=Qe[_e])==null?void 0:Pt.seq)===pe?Qe[_e]={seq:pe,text:Oe}:Qe.splice(_e,0,{seq:pe,text:Oe});let at="";for(let Kt=0;Kt<Qe.length;Kt++)at+=Qe[Kt].text;return at},Je=(H,pe)=>{let Oe=Y(pe),Qe=ie.get(H.id),_e=dh(Qe,Oe);H.rawContent=_e;let Ue=ee.get(H.id),at=xt=>{var we;let lt=(we=H.content)!=null?we:"";xt.trim()!==""&&(lt.trim().length===0||xt.startsWith(lt)||xt.trimStart().startsWith(lt.trim()))&&(H.content=xt)},Pt=()=>{var xt;if(Ue){let lt=(xt=Ue.close)==null?void 0:xt.call(Ue);lt instanceof Promise&&lt.catch(()=>{})}ee.delete(H.id),ie.delete(H.id),H.streaming=!1,f(H)};if(!Ue){at(Oe),Pt();return}let Kt=Ko(_e);if(Kt!==null&&Kt.trim()!==""){at(Kt),Pt();return}let Zt=xt=>{var le;let lt=typeof xt=="string"?xt:(le=xt==null?void 0:xt.text)!=null?le:null;if(lt!==null&&lt.trim()!=="")return lt;let we=Ue.getExtractedText();return we!==null&&we.trim()!==""?we:Oe},G;try{G=Ue.processChunk(_e)}catch{at(Oe),Pt();return}if(G instanceof Promise){G.then(xt=>{at(Zt(xt)),Pt()}).catch(()=>{at(Oe),Pt()});return}at(Zt(G)),Pt()},De=[],V=!1,ue,ot=()=>{V||(V=!0,queueMicrotask(()=>{V=!1,ue()}))},Et=new mi((H,pe)=>{De.push({payloadType:H,payload:pe}),ot()}),ne=null,Ve=new Map,Nn=(Ht=this.config.iterationDisplay)!=null?Ht:"separate";for(ue=()=>{var H,pe,Oe,Qe,_e,Ue,at,Pt,Kt,Zt,G,xt,lt,we,le,nt,tn,Gt,Pn,wn,mt,Mt,et,qt,dn,An,Sn,yn,Mr,At,jn,qn,Nr,fr,vt,Lo,kr,Po,Fn,ss,ro,Fr,St,zn,Vn,In,Lt,ar,ir,Kn,oo,_r,so,Gn,Bt,Rn,lr,ao,$r,io,Lr,Jn,hr,ft,nn,rn,Qn,lo,ye,br,cr,$,as,Pr,Ur,jr,Ir,yr,Ns,Xn,Yn,xr,vr,Io,qr,Tn,Rr,is,Ro,ls,Ba,cs,Da,ds,yt,Fs,dr,_n,Oa,Na,ps,zr,_s,co,$s,Us,js,qs,$n,us,Wr,Hr,zs,Fa,Vs,Ks,Wo,_a,$a,Ua,ja,pl,Ho,po,qa,Gs,uo,za,Js,mo,Qs,Va,Vr,Ka,go,Dt,ms,gs;for(let Bo=0;Bo<De.length;Bo++){let je=De[Bo].payloadType,A=De[Bo].payload;if(je==="reason_start"){let U=(H=be(A,!0))!=null?H:`reason-${l()}`,L=Le(U);L.reasoning=(pe=L.reasoning)!=null?pe:{id:U,status:"streaming",chunks:[]},L.reasoning.startedAt=(Qe=L.reasoning.startedAt)!=null?Qe:He((Oe=A.startedAt)!=null?Oe:A.timestamp),L.reasoning.completedAt=void 0,L.reasoning.durationMs=void 0,L.streaming=!0,L.reasoning.status="streaming",f(L)}else if(je==="reason_delta"||je==="reason_chunk"){let U=(Ue=(_e=be(A,!1))!=null?_e:be(A,!0))!=null?Ue:`reason-${l()}`,L=Le(U);L.reasoning=(at=L.reasoning)!=null?at:{id:U,status:"streaming",chunks:[]},L.reasoning.startedAt=(Kt=L.reasoning.startedAt)!=null?Kt:He((Pt=A.startedAt)!=null?Pt:A.timestamp);let Z=(xt=(G=(Zt=A.reasoningText)!=null?Zt:A.text)!=null?G:A.delta)!=null?xt:"";if(Z&&A.hidden!==!0){let se=typeof A.sequenceIndex=="number"?A.sequenceIndex:void 0;if(se!==void 0){let J=fe(U,se,String(Z));L.reasoning.chunks=[J]}else L.reasoning.chunks.push(String(Z))}if(L.reasoning.status=A.done?"complete":"streaming",A.done){L.reasoning.completedAt=He((lt=A.completedAt)!=null?lt:A.timestamp);let se=(we=L.reasoning.startedAt)!=null?we:Date.now();L.reasoning.durationMs=Math.max(0,((le=L.reasoning.completedAt)!=null?le:Date.now())-se)}L.streaming=L.reasoning.status!=="complete",f(L)}else if(je==="reason_complete"){let U=(tn=(nt=be(A,!1))!=null?nt:be(A,!0))!=null?tn:`reason-${l()}`,L=O.get(U);if(L!=null&&L.reasoning){L.reasoning.status="complete",L.reasoning.completedAt=He((Gt=A.completedAt)!=null?Gt:A.timestamp);let se=(Pn=L.reasoning.startedAt)!=null?Pn:Date.now();L.reasoning.durationMs=Math.max(0,((wn=L.reasoning.completedAt)!=null?wn:Date.now())-se),L.streaming=!1,f(L)}let Z=z(A);Z&&T.byStep.delete(Z)}else if(je==="tool_start"){let U=(mt=K(A,!0))!=null?mt:`tool-${l()}`,L=(Mt=A.toolName)!=null?Mt:A.name;if(ge(L)){de.add(U);continue}let Z=ae(U),se=(et=Z.toolCall)!=null?et:{id:U,status:"pending"};se.name=L!=null?L:se.name,se.status="running",A.args!==void 0?se.args=A.args:A.parameters!==void 0&&(se.args=A.parameters),se.startedAt=(dn=se.startedAt)!=null?dn:He((qt=A.startedAt)!=null?qt:A.timestamp),se.completedAt=void 0,se.durationMs=void 0,Z.toolCall=se,Z.streaming=!0;let J=A.agentContext;(J||A.executionId)&&(Z.agentMetadata={executionId:(An=J==null?void 0:J.executionId)!=null?An:A.executionId,iteration:(Sn=J==null?void 0:J.iteration)!=null?Sn:A.iteration}),f(Z)}else if(je==="tool_chunk"||je==="tool_delta"){let U=(Mr=(yn=K(A,!1))!=null?yn:K(A,!0))!=null?Mr:`tool-${l()}`;if(de.has(U))continue;let L=ae(U),Z=(At=L.toolCall)!=null?At:{id:U,status:"running"};Z.startedAt=(qn=Z.startedAt)!=null?qn:He((jn=A.startedAt)!=null?jn:A.timestamp);let se=(vt=(fr=(Nr=A.text)!=null?Nr:A.delta)!=null?fr:A.message)!=null?vt:"";se&&(Z.chunks=(Lo=Z.chunks)!=null?Lo:[],Z.chunks.push(String(se))),Z.status="running",L.toolCall=Z,L.streaming=!0;let J=A.agentContext;(J||A.executionId)&&(L.agentMetadata=(Fn=L.agentMetadata)!=null?Fn:{executionId:(kr=J==null?void 0:J.executionId)!=null?kr:A.executionId,iteration:(Po=J==null?void 0:J.iteration)!=null?Po:A.iteration}),f(L)}else if(je==="tool_complete"){let U=(ro=(ss=K(A,!1))!=null?ss:K(A,!0))!=null?ro:`tool-${l()}`;if(de.has(U)){de.delete(U);continue}let L=ae(U),Z=(Fr=L.toolCall)!=null?Fr:{id:U,status:"running"};Z.status="complete",A.result!==void 0&&(Z.result=A.result),typeof A.duration=="number"&&(Z.duration=A.duration),Z.completedAt=He((St=A.completedAt)!=null?St:A.timestamp);let se=(zn=A.duration)!=null?zn:A.executionTime;if(typeof se=="number")Z.durationMs=se;else{let Fe=(Vn=Z.startedAt)!=null?Vn:Date.now();Z.durationMs=Math.max(0,((In=Z.completedAt)!=null?In:Date.now())-Fe)}L.toolCall=Z,L.streaming=!1;let J=A.agentContext;(J||A.executionId)&&(L.agentMetadata=(ir=L.agentMetadata)!=null?ir:{executionId:(Lt=J==null?void 0:J.executionId)!=null?Lt:A.executionId,iteration:(ar=J==null?void 0:J.iteration)!=null?ar:A.iteration}),f(L);let Me=oe(A);Me&&W.byCall.delete(Me)}else if(je==="step_await"&&A.awaitReason==="local_tool_required"&&A.toolName){let U=typeof A.toolCallId=="string"&&A.toolCallId.length>0?A.toolCallId:void 0,L=(Kn=U!=null?U:A.toolId)!=null?Kn:`local-${l()}`,Z=ae(L),se=A.toolName,J=zo(se),Me=(oo=Z.toolCall)!=null?oo:{id:L,status:"pending"};Me.name=se,Me.args=A.parameters,Me.status=J?"running":"complete",Me.chunks=(_r=Me.chunks)!=null?_r:[],Me.startedAt=(Gn=Me.startedAt)!=null?Gn:He((so=A.startedAt)!=null?so:A.timestamp),J?(Me.completedAt=void 0,Me.duration=void 0,Me.durationMs=void 0):Me.completedAt=(Bt=Me.completedAt)!=null?Bt:Me.startedAt,Z.toolCall=Me,Z.streaming=!1,Z.agentMetadata={...Z.agentMetadata,executionId:(lr=A.executionId)!=null?lr:(Rn=Z.agentMetadata)==null?void 0:Rn.executionId,awaitingLocalTool:!0,...U?{webMcpToolCallId:U}:{}},f(Z)}else if(je==="text_start"){if((ao=A.toolContext)!=null&&ao.toolId)continue;let U=A.partId;if(U!==void 0&&w.current!==null&&U!==w.current){let L=g;L&&(L.streaming=!1,f(L),ve=L,g=null,S=!0)}U!==void 0&&(w.current=U)}else if(je==="text_end"){if(($r=A.toolContext)!=null&&$r.toolId)continue;let U=g;U&&(U.streaming=!1,f(U),ve=U,g=null,S=!0)}else if(je==="step_chunk"||je==="step_delta"){let U=A.stepType,L=A.executionType;if(U==="tool"||L==="context")continue;let Z=A.toolContext;if(Z!=null&&Z.toolId){let Fe=String((Lr=(io=A.id)!=null?io:Z.stepId)!=null?Lr:`step-${l()}`),ct=A.partId!==void 0&&A.partId!==null?String(A.partId):"",tt=`${Z.toolId}::${Fe}`,Wt=R.get(tt);if(ct!==""&&Wt!==void 0&&Wt!==""&&Wt!==ct){let it=I.get(_(Z.toolId,Fe,Wt));it&&it.streaming!==!1&&(it.streaming=!1,f(it))}ct!==""&&R.set(tt,ct);let $t=M(Z.toolId,Fe,ct,Z.executionId),gn=(nn=(ft=(hr=(Jn=A.text)!=null?Jn:A.delta)!=null?hr:A.content)!=null?ft:A.chunk)!=null?nn:"";gn&&($t.content+=String(gn),$t.streaming=!0,f($t)),A.isComplete&&($t.streaming=!1,f($t));continue}let se=A.partId;if(se!==void 0&&w.current!==null&&se!==w.current){let Fe=g;Fe&&(Fe.streaming=!1,f(Fe),ve=Fe,g=null,S=!0)}se!==void 0&&(w.current=se);let J=se!==void 0&&(rn=Ze.get(se))!=null?rn:Ae();se!==void 0&&(J.partId||(J.partId=se),Ze.set(se,J));let Me=(br=(ye=(lo=(Qn=A.text)!=null?Qn:A.delta)!=null?lo:A.content)!=null?ye:A.chunk)!=null?br:"";if(Me){let Fe=typeof A.seq=="number"?A.seq:void 0,ct=se!=null?se:J.id,tt=Fe!==void 0?fe(ct,Fe,String(Me)):((cr=ie.get(J.id))!=null?cr:"")+Me;J.rawContent=tt,ee.has(J.id)||ee.set(J.id,this.createStreamParser());let Wt=ee.get(J.id),$t=tt.trim().startsWith("{")||tt.trim().startsWith("[");if($t&&ie.set(J.id,tt),Wt.__isPlainTextParser===!0){J.content=Fe!==void 0?tt:J.content+Me,ie.delete(J.id),ee.delete(J.id),J.rawContent=void 0,f(J);continue}let it=Wt.processChunk(tt);if(it instanceof Promise)it.then(ht=>{var Ge;let en=typeof ht=="string"?ht:(Ge=ht==null?void 0:ht.text)!=null?Ge:null;if(en!==null&&en.trim()!=="")J.content=en,f(J);else if(!$t&&!tt.trim().startsWith("<")){let Cn=g,Qt=Cn&&Cn.id===J.id?Cn:J;Qt.id===J.id&&(Qt.content=Fe!==void 0?tt:Qt.content+Me,ie.delete(Qt.id),ee.delete(Qt.id),Qt.rawContent=void 0,f(Qt))}}).catch(()=>{J.content=Fe!==void 0?tt:J.content+Me,ie.delete(J.id),ee.delete(J.id),J.rawContent=void 0,f(J)});else{let ht=typeof it=="string"?it:($=it==null?void 0:it.text)!=null?$:null;ht!==null&&ht.trim()!==""?(J.content=ht,f(J)):!$t&&!tt.trim().startsWith("<")&&(J.content=Fe!==void 0?tt:J.content+Me,ie.delete(J.id),ee.delete(J.id),J.rawContent=void 0,f(J))}}if(A.isComplete){let Fe=(Pr=(as=A.result)==null?void 0:as.response)!=null?Pr:J.content;if(Fe){let ct=ie.get(J.id),tt=ct!=null?ct:Y(Fe);J.rawContent=tt;let Wt=ee.get(J.id),$t=null,gn=!1;if(Wt&&($t=Wt.getExtractedText(),$t===null&&($t=Ko(tt)),$t===null)){let it=Wt.processChunk(tt);it instanceof Promise?(gn=!0,it.then(ht=>{var Ge;let en=typeof ht=="string"?ht:(Ge=ht==null?void 0:ht.text)!=null?Ge:null;if(en!==null){let Cn=g;Cn&&Cn.id===J.id&&(Cn.content=en,Cn.streaming=!1,ee.delete(Cn.id),ie.delete(Cn.id),f(Cn))}})):$t=typeof it=="string"?it:(Ur=it==null?void 0:it.text)!=null?Ur:null}if(!gn){$t!==null&&$t.trim()!==""?J.content=$t:ie.has(J.id)||(J.content=Y(Fe));let it=ee.get(J.id);if(it){let ht=(jr=it.close)==null?void 0:jr.call(it);ht instanceof Promise&&ht.catch(()=>{}),ee.delete(J.id)}ie.delete(J.id),J.streaming=!1,f(J)}}}}else if(je==="step_complete"){let U=A.stepType,L=A.executionType;if(U==="tool"||L==="context")continue;let Z=A.toolContext;if(Z!=null&&Z.toolId){let Fe=String((yr=(Ir=A.id)!=null?Ir:Z.stepId)!=null?yr:"");if(Fe){let ct=F(Z.toolId,Fe);for(let[tt,Wt]of I)tt.startsWith(ct)&&Wt.streaming!==!1&&(Wt.streaming=!1,f(Wt));R.delete(`${Z.toolId}::${Fe}`)}continue}let se=A.stopReason;if(S){if(g!==null){let tt=g;se&&(tt.stopReason=se),ee.delete(tt.id),ie.delete(tt.id),tt.streaming!==!1&&(tt.streaming=!1,f(tt))}let Fe=(Ns=A.result)==null?void 0:Ns.response,ct=ve;ct&&(se&&(ct.stopReason=se),Fe!=null?Je(ct,Fe):(ee.delete(ct.id),ie.delete(ct.id))),ve=null;continue}let J=(Xn=A.result)==null?void 0:Xn.response,Me=Ae();if(se&&(Me.stopReason=se),J!=null){let Fe=ee.get(Me.id),ct=!1,tt=!1;if(Fe){let Wt=Fe.getExtractedText(),$t=ie.get(Me.id),gn=$t!=null?$t:Y(J);if(Me.rawContent=gn,Wt!==null&&Wt.trim()!=="")Me.content=Wt,ct=!0;else{let it=Ko(gn);if(it!==null)Me.content=it,ct=!0;else{let ht=Fe.processChunk(gn);if(ht instanceof Promise)tt=!0,ht.then(en=>{var Cn;let Ge=typeof en=="string"?en:(Cn=en==null?void 0:en.text)!=null?Cn:null;if(Ge!==null&&Ge.trim()!==""){let Qt=g;Qt&&Qt.id===Me.id&&(Qt.content=Ge,Qt.streaming=!1,ee.delete(Qt.id),ie.delete(Qt.id),f(Qt))}else{let Qt=Fe.getExtractedText(),xn=g;xn&&xn.id===Me.id&&(Qt!==null&&Qt.trim()!==""?xn.content=Qt:ie.has(xn.id)||(xn.content=Y(J)),xn.streaming=!1,ee.delete(xn.id),ie.delete(xn.id),f(xn))}});else{let en=typeof ht=="string"?ht:(Yn=ht==null?void 0:ht.text)!=null?Yn:null;if(en!==null&&en.trim()!=="")Me.content=en,ct=!0;else{let Ge=Fe.getExtractedText();Ge!==null&&Ge.trim()!==""&&(Me.content=Ge,ct=!0)}}}}}if(!tt){if(!Me.rawContent){let Wt=ie.get(Me.id);Me.rawContent=Wt!=null?Wt:Y(J)}if(!ct&&!ie.has(Me.id)&&(Me.content=Y(J)),Fe){let Wt=(xr=Fe.close)==null?void 0:xr.call(Fe);Wt instanceof Promise&&Wt.catch(()=>{})}ee.delete(Me.id),ie.delete(Me.id),Me.streaming=!1,f(Me)}}else ee.delete(Me.id),ie.delete(Me.id),Me.streaming=!1,f(Me)}else if(je==="flow_complete"){let U=(vr=A.result)==null?void 0:vr.response;if(S){if(g!==null){let L=g;ee.delete(L.id),ie.delete(L.id),L.streaming!==!1&&(L.streaming=!1,f(L))}}else if(U!=null){let L=Ae(),Z=ie.get(L.id),se=Z!=null?Z:Y(U);L.rawContent=se;let J=Y(U),Me=ee.get(L.id);if(Me){let tt=Ko(se);if(tt!==null)J=tt;else{let Wt=Me.processChunk(se);Wt instanceof Promise&&Wt.then(gn=>{var ht;let it=typeof gn=="string"?gn:(ht=gn==null?void 0:gn.text)!=null?ht:null;it!==null&&(L.content=it,L.streaming=!1,f(L))});let $t=Me.getExtractedText();$t!==null&&(J=$t)}}ee.delete(L.id),ie.delete(L.id);let Fe=J!==L.content,ct=L.streaming!==!1;Fe&&(L.content=J),L.streaming=!1,(Fe||ct)&&f(L)}else if(g!==null){let L=g;ee.delete(L.id),ie.delete(L.id),L.streaming!==!1&&(L.streaming=!1,f(L))}n({type:"status",status:"idle"})}else if(je==="agent_start")ne={executionId:A.executionId,agentId:(Io=A.agentId)!=null?Io:"virtual",agentName:(qr=A.agentName)!=null?qr:"",status:"running",currentIteration:0,maxTurns:(Tn=A.maxTurns)!=null?Tn:1,startedAt:He(A.startedAt)};else if(je==="agent_iteration_start"){if(ne&&(ne.currentIteration=A.iteration),Nn==="separate"&&A.iteration>1){let U=g;U&&(U.streaming=!1,f(U),Ve.set(A.iteration-1,U),g=null)}}else if(je==="agent_turn_start")v=null;else if(je==="agent_turn_delta"){if(A.contentType==="text"){let U=Ae();U.content+=(Rr=A.delta)!=null?Rr:"",U.agentMetadata={executionId:A.executionId,iteration:A.iteration,turnId:A.turnId,agentName:ne==null?void 0:ne.agentName},v=U,f(U)}else if(A.contentType==="thinking"){let U=(is=A.turnId)!=null?is:`agent-think-${A.iteration}`,L=Le(U);L.reasoning=(Ro=L.reasoning)!=null?Ro:{id:U,status:"streaming",chunks:[]},L.reasoning.chunks.push((ls=A.delta)!=null?ls:""),L.agentMetadata={executionId:A.executionId,iteration:A.iteration,turnId:A.turnId},f(L)}else if(A.contentType==="tool_input"){let U=(Ba=A.toolCallId)!=null?Ba:W.lastId;if(U){let L=k.get(U);L!=null&&L.toolCall&&(L.toolCall.chunks=(cs=L.toolCall.chunks)!=null?cs:[],L.toolCall.chunks.push((Da=A.delta)!=null?Da:""),f(L))}}}else if(je==="agent_turn_complete"){let U=A.turnId;if(U){let se=O.get(U);if(se!=null&&se.reasoning){se.reasoning.status="complete",se.reasoning.completedAt=He(A.completedAt);let J=(ds=se.reasoning.startedAt)!=null?ds:Date.now();se.reasoning.durationMs=Math.max(0,((yt=se.reasoning.completedAt)!=null?yt:Date.now())-J),se.streaming=!1,f(se)}}let L=A.stopReason,Z=g!=null?g:v;if(L&&Z!==null){let se=A.turnId;(!se||((Fs=Z.agentMetadata)==null?void 0:Fs.turnId)===se)&&(Z.stopReason=L,f(Z))}}else if(je==="agent_tool_start"){g&&(g.streaming=!1,f(g),g=null);let U=(dr=A.toolCallId)!=null?dr:`agent-tool-${l()}`;We(oe(A),U);let L=ae(U),Z=(_n=L.toolCall)!=null?_n:{id:U,status:"pending",name:void 0,args:void 0,chunks:void 0,result:void 0,duration:void 0,startedAt:void 0,completedAt:void 0,durationMs:void 0};Z.name=(Na=(Oa=A.toolName)!=null?Oa:A.name)!=null?Na:Z.name,Z.status="running",A.parameters!==void 0&&(Z.args=A.parameters),Z.startedAt=He((ps=A.startedAt)!=null?ps:A.timestamp),L.toolCall=Z,L.streaming=!0,L.agentMetadata={executionId:A.executionId,iteration:A.iteration},f(L)}else if(je==="agent_tool_delta"){let U=(zr=A.toolCallId)!=null?zr:W.lastId;if(U){let L=(_s=k.get(U))!=null?_s:ae(U);L.toolCall&&(L.toolCall.chunks=(co=L.toolCall.chunks)!=null?co:[],L.toolCall.chunks.push(($s=A.delta)!=null?$s:""),L.toolCall.status="running",L.streaming=!0,f(L))}}else if(je==="agent_tool_complete"){let U=(Us=A.toolCallId)!=null?Us:W.lastId;if(U){let L=(js=k.get(U))!=null?js:ae(U);if(L.toolCall){L.toolCall.status="complete",A.result!==void 0&&(L.toolCall.result=A.result),typeof A.executionTime=="number"&&(L.toolCall.durationMs=A.executionTime),L.toolCall.completedAt=He((qs=A.completedAt)!=null?qs:A.timestamp),L.streaming=!1,f(L);let Z=oe(A);Z&&W.byCall.delete(Z)}}}else if(je==="agent_media"){let U=Array.isArray(A.media)?A.media:[],L=[];for(let Z of U){if(!Z||typeof Z!="object")continue;let se=Z,J=typeof se.type=="string"?se.type:void 0,Me=typeof se.mediaType=="string"?se.mediaType.toLowerCase():"",Fe=null,ct="";if(J==="media"){let tt=typeof se.data=="string"?se.data:void 0;if(!tt)continue;ct=Me.length>0?Me:"application/octet-stream",Fe=`data:${ct};base64,${tt}`}else if(J==="image-url"){let tt=typeof se.url=="string"?se.url:void 0;if(!tt)continue;ct=Me,Fe=tt}else if(J==="file-url"){let tt=typeof se.url=="string"?se.url:void 0;if(!tt)continue;ct=Me,Fe=tt}else continue;if(Fe)if(J==="image-url"||ct.startsWith("image/"))L.push({type:"image",image:Fe,...ct?{mimeType:ct}:{}});else if(ct.startsWith("audio/"))L.push({type:"audio",audio:Fe,mimeType:ct});else if(ct.startsWith("video/"))L.push({type:"video",video:Fe,mimeType:ct});else{let tt=ct||"application/octet-stream";L.push({type:"file",data:Fe,mimeType:tt,filename:lh(tt)})}}if(L.length>0){let Z=l(),se=A.toolCallId,Me={id:`agent-media-${typeof se=="string"&&se.length>0?`${se}-${Z}`:String(Z)}`,role:"assistant",content:"",contentParts:L,createdAt:new Date().toISOString(),streaming:!1,sequence:Z,agentMetadata:{executionId:A.executionId,iteration:A.iteration}};f(Me);let Fe=g;Fe&&(Fe.streaming=!1,f(Fe)),g=null,y.current=null}}else if(je!=="agent_iteration_complete"){if(je==="agent_reflection"||je==="agent_reflect"){let U=`agent-reflection-${A.executionId}-${A.iteration}`,L={id:U,role:"assistant",content:($n=A.reflection)!=null?$n:"",createdAt:new Date().toISOString(),streaming:!1,variant:"reasoning",sequence:l(),reasoning:{id:U,status:"complete",chunks:[(us=A.reflection)!=null?us:""]},agentMetadata:{executionId:A.executionId,iteration:A.iteration}};f(L)}else if(je==="agent_complete"){ne&&(ne.status=A.success?"complete":"error",ne.completedAt=He(A.completedAt),ne.stopReason=A.stopReason);let U=g;U&&(U.streaming=!1,f(U)),n({type:"status",status:"idle"})}else if(je==="agent_error"){let U=typeof A.error=="string"?A.error:(Hr=(Wr=A.error)==null?void 0:Wr.message)!=null?Hr:"Agent execution error";A.recoverable?typeof console!="undefined"&&console.warn("[AgentWidget] Recoverable agent error:",U):n({type:"error",error:new Error(U)})}else if(je!=="agent_ping"){if(je==="agent_approval_start"){let U=(zs=A.approvalId)!=null?zs:`approval-${l()}`,L={id:`approval-${U}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:l(),approval:{id:U,status:"pending",agentId:(Fa=ne==null?void 0:ne.agentId)!=null?Fa:"virtual",executionId:(Ks=(Vs=A.executionId)!=null?Vs:ne==null?void 0:ne.executionId)!=null?Ks:"",toolName:(Wo=A.toolName)!=null?Wo:"",toolType:A.toolType,description:($a=A.description)!=null?$a:`Execute ${(_a=A.toolName)!=null?_a:"tool"}`,...typeof A.reason=="string"&&A.reason?{reason:A.reason}:{},parameters:A.parameters}};f(L)}else if(je==="step_await"&&A.awaitReason==="approval_required"){let U=(Ua=A.approvalId)!=null?Ua:`approval-${l()}`,L={id:`approval-${U}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:l(),approval:{id:U,status:"pending",agentId:(ja=ne==null?void 0:ne.agentId)!=null?ja:"virtual",executionId:(Ho=(pl=A.executionId)!=null?pl:ne==null?void 0:ne.executionId)!=null?Ho:"",toolName:(po=A.toolName)!=null?po:"",toolType:A.toolType,description:(Gs=A.description)!=null?Gs:`Execute ${(qa=A.toolName)!=null?qa:"tool"}`,...typeof A.reason=="string"&&A.reason?{reason:A.reason}:{},parameters:A.parameters}};f(L)}else if(je==="agent_approval_complete"){let U=A.approvalId;if(U){let Z={id:`approval-${U}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:l(),approval:{id:U,status:(uo=A.decision)!=null?uo:"approved",agentId:(za=ne==null?void 0:ne.agentId)!=null?za:"virtual",executionId:(mo=(Js=A.executionId)!=null?Js:ne==null?void 0:ne.executionId)!=null?mo:"",toolName:(Qs=A.toolName)!=null?Qs:"",description:(Va=A.description)!=null?Va:"",resolvedAt:Date.now()}};f(Z)}}else if(je==="artifact_start"||je==="artifact_delta"||je==="artifact_update"||je==="artifact_complete"){if(je==="artifact_start"){let U=A.artifactType,L=String(A.id),Z=typeof A.title=="string"?A.title:void 0;if(n({type:"artifact_start",id:L,artifactType:U,title:Z,component:typeof A.component=="string"?A.component:void 0}),ce.set(L,{markdown:"",title:Z}),!re.has(L)){re.add(L);let se={id:`artifact-ref-${L}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:l(),rawContent:JSON.stringify({component:"PersonaArtifactCard",props:{artifactId:L,title:Z,artifactType:U,status:"streaming"}})};X.set(L,se),f(se)}}else if(je==="artifact_delta"){let U=String(A.id),L=typeof A.delta=="string"?A.delta:String((Vr=A.delta)!=null?Vr:"");n({type:"artifact_delta",id:U,artDelta:L});let Z=ce.get(U);Z&&(Z.markdown+=L)}else if(je==="artifact_update"){let U=A.props&&typeof A.props=="object"&&!Array.isArray(A.props)?A.props:{};n({type:"artifact_update",id:String(A.id),props:U,component:typeof A.component=="string"?A.component:void 0})}else if(je==="artifact_complete"){let U=String(A.id);n({type:"artifact_complete",id:U});let L=X.get(U);if(L){L.streaming=!1;try{let Z=JSON.parse((Ka=L.rawContent)!=null?Ka:"{}");if(Z.props){Z.props.status="complete";let se=ce.get(U);se!=null&&se.markdown&&(Z.props.markdown=se.markdown)}L.rawContent=JSON.stringify(Z)}catch{}ce.delete(U),f(L),X.delete(U)}}}else if(je==="transcript_insert"){let U=A.message;if(!U||typeof U!="object")continue;let L=String((go=U.id)!=null?go:`msg-${l()}`),Z=U.role,J={id:L,role:Z==="user"?"user":Z==="system"?"system":"assistant",content:typeof U.content=="string"?U.content:"",rawContent:typeof U.rawContent=="string"?U.rawContent:void 0,createdAt:typeof U.createdAt=="string"?U.createdAt:new Date().toISOString(),streaming:U.streaming===!0,...typeof U.variant=="string"?{variant:U.variant}:{},sequence:l()};if(f(J),J.rawContent)try{let Me=JSON.parse(J.rawContent),Fe=(Dt=Me==null?void 0:Me.props)==null?void 0:Dt.artifactId;typeof Fe=="string"&&re.add(Fe)}catch{}g=null,y.current=null,ee.delete(L),ie.delete(L)}else if(je==="error"||je==="step_error"||je==="dispatch_error"||je==="flow_error"){let U=null;if(A.error instanceof Error)U=A.error;else if(je==="dispatch_error"){let L=(ms=A.message)!=null?ms:A.error;L!=null&&L!==""&&(U=new Error(String(L)))}else if(je==="step_error"||je==="flow_error"){let L=A.error;typeof L=="string"&&L!==""?U=new Error(L):L!=null&&typeof L=="object"&&"message"in L&&(U=new Error(String((gs=L.message)!=null?gs:L)))}else je==="error"&&A.error!=null&&A.error!==""&&(U=new Error(String(A.error)));if(U){n({type:"error",error:U});let L=g;L&&L.streaming&&(L.streaming=!1,f(L)),n({type:"status",status:"idle"})}}}}}De.length=0};;){let{done:H,value:pe}=await o.read();if(H)break;a+=s.decode(pe,{stream:!0});let Oe=a.split(`
9
+ `).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<=t)return e!==null?{text:e,raw:r}:null;let o=r.trim();if(!o.startsWith("{")&&!o.startsWith("["))return null;let s=n(r);return s!==null&&(e=s),t=r.length,e!==null?{text:e,raw:r}:null},close:async()=>{}}},Ko=e=>{try{let t=JSON.parse(e);if(t&&typeof t=="object"&&typeof t.text=="string")return t.text}catch{return null}return null},ci=()=>{let e={processChunk:t=>null,getExtractedText:()=>null};return e.__isPlainTextParser=!0,e},di=()=>{var t;let e=ah();return{processChunk:async n=>{let r=n.trim();return!r.startsWith("{")&&!r.startsWith("[")?null:e.processChunk(n)},getExtractedText:e.getExtractedText.bind(e),close:(t=e.close)==null?void 0:t.bind(e)}},pi=()=>{let e=null,t=0;return{getExtractedText:()=>e,processChunk:n=>{let r=n.trim();if(!r.startsWith("{")&&!r.startsWith("["))return null;if(n.length<=t)return e!==null||e===""?{text:e||"",raw:n}:null;try{let o=(0,Xr.parse)(n,Xr.STR|Xr.OBJ);o&&typeof o=="object"&&(o.component&&typeof o.component=="string"?e=typeof o.text=="string"?si(o.text):"":o.type==="init"&&o.form?e="":typeof o.text=="string"&&(e=si(o.text)))}catch{}return t=n.length,e!==null?{text:e,raw:n}:null},close:()=>{}}},am=e=>{let t=null,n=0,o=e||(s=>{if(!s||typeof s!="object")return null;let a=i=>typeof i=="string"?si(i):null;if(s.component&&typeof s.component=="string")return typeof s.text=="string"?si(s.text):"";if(s.type==="init"&&s.form)return"";if(s.action)switch(s.action){case"nav_then_click":return a(s.on_load_text)||a(s.text)||null;case"message":case"message_and_click":case"checkout":return a(s.text)||null;default:return a(s.text)||a(s.display_text)||a(s.message)||null}return a(s.text)||a(s.display_text)||a(s.message)||a(s.content)||null});return{getExtractedText:()=>t,processChunk:s=>{let a=s.trim();if(!a.startsWith("{")&&!a.startsWith("["))return null;if(s.length<=n)return t!==null?{text:t,raw:s}:null;try{let i=(0,Xr.parse)(s,Xr.STR|Xr.OBJ),d=o(i);d!==null&&(t=d)}catch{}return n=s.length,{text:t||"",raw:s}},close:()=>{}}},ui=()=>{let e=null;return{processChunk:t=>{if(!t.trim().startsWith("<"))return null;let r=t.match(/<text[^>]*>([\s\S]*?)<\/text>/);return r&&r[1]?(e=r[1],{text:e,raw:t}):null},getExtractedText:()=>e}};var mi=class{constructor(t,n=50){this.nextExpectedSeq=null;this.buffer=new Map;this.flushTimer=null;this.emitter=t,this.gapTimeoutMs=n}push(t,n){var s,a,i;let r=(i=(s=n==null?void 0:n.seq)!=null?s:n==null?void 0:n.sequenceIndex)!=null?i:(a=n==null?void 0:n.agentContext)==null?void 0:a.seq;if(r==null){this.buffer.size>0&&this.flushAll(),this.emitter(t,n);return}if(this.nextExpectedSeq===null&&(this.nextExpectedSeq=1),r===this.nextExpectedSeq){this.emitter(t,n),this.nextExpectedSeq=r+1,this.drainConsecutive();return}if(r<this.nextExpectedSeq){this.emitter(t,n);return}let o=this.buffer.get(r);o!==void 0&&(typeof console!="undefined"&&typeof console.warn=="function"&&console.warn(`[persona] SequenceReorderBuffer: duplicate seq=${r} (${o.payloadType} vs ${t}); emitting earlier event out-of-order to avoid loss`),this.emitter(o.payloadType,o.payload)),this.buffer.set(r,{payloadType:t,payload:n,seq:r}),this.startGapTimer()}drainConsecutive(){for(;this.buffer.has(this.nextExpectedSeq);){let t=this.buffer.get(this.nextExpectedSeq);this.buffer.delete(this.nextExpectedSeq),this.emitter(t.payloadType,t.payload),this.nextExpectedSeq++}this.buffer.size===0&&this.clearGapTimer()}startGapTimer(){this.flushTimer===null&&(this.flushTimer=setTimeout(()=>{this.flushAll()},this.gapTimeoutMs))}clearGapTimer(){this.flushTimer!==null&&(clearTimeout(this.flushTimer),this.flushTimer=null)}flushAll(){if(this.clearGapTimer(),this.buffer.size===0)return;let t=[...this.buffer.entries()].sort((n,r)=>n[0]-r[0]);for(let[n,r]of t)this.buffer.delete(n),this.emitter(r.payloadType,r.payload);t.length>0&&(this.nextExpectedSeq=t[t.length-1][0]+1)}destroy(){this.clearGapTimer(),this.buffer.clear()}flushPending(){this.flushAll()}};var ih="https://api.runtype.com/v1/dispatch",gi="https://api.runtype.com";function lh(e){var s,a;let t=e.toLowerCase(),r={"application/pdf":"pdf","application/json":"json","application/zip":"zip","text/plain":"txt","text/csv":"csv","text/markdown":"md"}[t];if(r)return`attachment.${r}`;let o=t.indexOf("/");if(o>0){let i=(a=(s=t.slice(o+1).split(";")[0])==null?void 0:s.trim())!=null?a:"";if(i&&i!=="octet-stream"&&/^[a-z0-9.+-]+$/i.test(i))return`attachment.${i}`}return"attachment"}var Il=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 ch(e){switch(e){case"json":return pi;case"regex-json":return di;case"xml":return ui;default:return ci}}var im=e=>e.startsWith("{")||e.startsWith("[")||e.startsWith("<");function dh(e,t){if(!e)return t;let n=e.trim(),r=t.trim();if(n.length===0)return t;if(r.length===0)return e;let o=im(n);if(!im(r))return e;if(!o||r===n||r.startsWith(n))return t;let a=Ko(e);return Ko(t)!==null&&a===null?t:e}var Go=class{constructor(t={}){this.config=t;this.clientSession=null;this.sessionInitPromise=null;this.lastSentClientToolsFingerprint=null;this.clientToolsFingerprintSessionId=null;var n,r,o,s;this.apiUrl=(n=t.apiUrl)!=null?n:ih,this.headers={"Content-Type":"application/json",...t.headers},this.debug=!!t.debug,this.createStreamParser=(r=t.streamParser)!=null?r:ch(t.parserType),this.contextProviders=(o=t.contextProviders)!=null?o:[],this.requestMiddleware=t.requestMiddleware,this.customFetch=t.customFetch,this.parseSSEEvent=t.parseSSEEvent,this.getHeaders=t.getHeaders,this.webMcpBridge=((s=t.webmcp)==null?void 0:s.enabled)===!0?new vs(t.webmcp):null}updateConfig(t){this.config=t}setSSEEventCallback(t){this.onSSEEvent=t}setWebMcpConfirmHandler(t){var n;(n=this.webMcpBridge)==null||n.setConfirmHandler(t)}isWebMcpOperational(){var t;return((t=this.webMcpBridge)==null?void 0:t.isOperational())===!0}executeWebMcpToolCall(t,n,r){return this.webMcpBridge?this.webMcpBridge.executeToolCall(t,n,r):null}getSSEEventCallback(){return this.onSSEEvent}isClientTokenMode(){return!!this.config.clientToken}isAgentMode(){return!!this.config.agent}getClientApiUrl(t){var r;return`${((r=this.config.apiUrl)==null?void 0:r.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||gi}/v1/client/${t}`}getClientSession(){return this.clientSession}async initSession(){var t,n;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,this.resetClientToolsFingerprint(),(n=(t=this.config).onSessionInit)==null||n.call(t,r),r}finally{this.sessionInitPromise=null}}async _doInitSession(){var s,a;let t=((a=(s=this.config).getStoredSessionId)==null?void 0:a.call(s))||null,n={token:this.config.clientToken,...this.config.flowId&&{flowId:this.config.flowId},...t&&{sessionId:t}},r=await fetch(this.getClientApiUrl("init"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});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 o=await r.json();return this.config.setStoredSessionId&&this.config.setStoredSessionId(o.sessionId),{sessionId:o.sessionId,expiresAt:new Date(o.expiresAt),flow:o.flow,config:{welcomeMessage:o.config.welcomeMessage,placeholder:o.config.placeholder,theme:o.config.theme}}}clearClientSession(){this.clientSession=null,this.sessionInitPromise=null,this.resetClientToolsFingerprint()}resetClientToolsFingerprint(){this.lastSentClientToolsFingerprint=null,this.clientToolsFingerprintSessionId=null}getFeedbackApiUrl(){var n;return`${((n=this.config.apiUrl)==null?void 0:n.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||gi}/v1/client/feedback`}async sendFeedback(t){var a,i;if(!this.isClientTokenMode())throw new Error("sendFeedback() only available in client token mode");if(!this.getClientSession())throw new Error("No active session. Please initialize session first.");if(["upvote","downvote","copy"].includes(t.type)&&!t.messageId)throw new Error(`messageId is required for ${t.type} feedback type`);if(t.type==="csat"&&(t.rating===void 0||t.rating<1||t.rating>5))throw new Error("CSAT rating must be between 1 and 5");if(t.type==="nps"&&(t.rating===void 0||t.rating<0||t.rating>10))throw new Error("NPS rating must be between 0 and 10");this.debug&&console.debug("[AgentWidgetClient] sending feedback",t);let o={...t,...this.config.clientToken&&{token:this.config.clientToken}},s=await fetch(this.getFeedbackApiUrl(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!s.ok){let d=await s.json().catch(()=>({error:"Feedback submission failed"}));throw s.status===401?(this.clientSession=null,(i=(a=this.config).onSessionExpired)==null||i.call(a),new Error("Session expired. Please refresh to continue.")):new Error(d.error||"Failed to submit feedback")}}async submitMessageFeedback(t,n){let r=this.getClientSession();if(!r)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:r.sessionId,messageId:t,type:n})}async submitCSATFeedback(t,n){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:t,comment:n})}async submitNPSFeedback(t,n){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:t,comment:n})}async dispatch(t,n){return this.isAgentMode()?this.dispatchAgent(t,n):this.isClientTokenMode()?this.dispatchClientToken(t,n):this.dispatchProxy(t,n)}async dispatchClientToken(t,n){var o,s,a,i;let r=new AbortController;t.signal&&t.signal.addEventListener("abort",()=>r.abort()),n({type:"status",status:"connecting"});try{let d=await this.initSession();if(new Date>=new Date(d.expiresAt.getTime()-6e4)){this.clearClientSession(),(s=(o=this.config).onSessionExpired)==null||s.call(o);let I=new Error("Session expired. Please refresh to continue.");throw n({type:"error",error:I}),I}let l=await this.buildPayload(t.messages),p=l.metadata?Object.fromEntries(Object.entries(l.metadata).filter(([I])=>I!=="sessionId"&&I!=="session_id")):void 0,u={sessionId:d.sessionId,messages:t.messages.filter(Il).map(I=>{var R,T,W;return{id:I.id,role:I.role,content:(W=(T=(R=I.contentParts)!=null?R:I.llmContent)!=null?T:I.rawContent)!=null?W:I.content}}),...t.assistantMessageId&&{assistantMessageId:t.assistantMessageId},...p&&Object.keys(p).length>0&&{metadata:p},...l.inputs&&Object.keys(l.inputs).length>0&&{inputs:l.inputs},...l.context&&{context:l.context}},f=l.clientTools,g=!!(f&&f.length>0),v=g?ju(f):void 0,y=this.clientToolsFingerprintSessionId===d.sessionId,w=g&&y&&this.lastSentClientToolsFingerprint===v,S=!1,O=null,k;for(let I=0;;I++){let T={...u,...g&&(S||!w)&&f?{clientTools:f}:{},...v?{clientToolsFingerprint:v}:{}};if(this.debug&&console.debug("[AgentWidgetClient] client token dispatch",T),k=await fetch(this.getClientApiUrl("chat"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T),signal:r.signal}),k.status===409&&I===0&&g){let W=await k.json().catch(()=>null);if((W==null?void 0:W.error)==="client_tools_resend_required"){S=!0,this.lastSentClientToolsFingerprint=null;continue}O=W!=null?W:{error:"Chat request failed"}}break}if(!k.ok){let I=O!=null?O:await k.json().catch(()=>({error:"Chat request failed"}));if(k.status===401){this.clearClientSession(),(i=(a=this.config).onSessionExpired)==null||i.call(a);let T=new Error("Session expired. Please refresh to continue.");throw n({type:"error",error:T}),T}if(k.status===429){let T=new Error(I.hint||"Message limit reached for this session.");throw n({type:"error",error:T}),T}let R=new Error(I.error||"Failed to send message");throw n({type:"error",error:R}),R}if(!k.body){let I=new Error("No response body received");throw n({type:"error",error:I}),I}this.lastSentClientToolsFingerprint=v!=null?v:null,this.clientToolsFingerprintSessionId=d.sessionId,n({type:"status",status:"connected"});try{await this.streamResponse(k.body,n,t.assistantMessageId)}finally{n({type:"status",status:"idle"})}}catch(d){let l=d instanceof Error?d:new Error(String(d));throw!l.message.includes("Session expired")&&!l.message.includes("Message limit")&&n({type:"error",error:l}),l}}async dispatchProxy(t,n){let r=new AbortController;t.signal&&t.signal.addEventListener("abort",()=>r.abort()),n({type:"status",status:"connecting"});let o=await this.buildPayload(t.messages);this.debug&&console.debug("[AgentWidgetClient] dispatch payload",o);let s={...this.headers};if(this.getHeaders)try{let i=await this.getHeaders();s={...s,...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:s,body:JSON.stringify(o),signal:r.signal},o)}catch(i){let d=i instanceof Error?i:new Error(String(i));throw n({type:"error",error:d}),d}else a=await fetch(this.apiUrl,{method:"POST",headers:s,body:JSON.stringify(o),signal:r.signal});if(!a.ok||!a.body){let i=new Error(`Chat backend request failed: ${a.status} ${a.statusText}`);throw n({type:"error",error:i}),i}n({type:"status",status:"connected"});try{await this.streamResponse(a.body,n)}finally{n({type:"status",status:"idle"})}}async dispatchAgent(t,n){let r=new AbortController;t.signal&&t.signal.addEventListener("abort",()=>r.abort()),n({type:"status",status:"connecting"});let o=await this.buildAgentPayload(t.messages);this.debug&&console.debug("[AgentWidgetClient] agent dispatch payload",o);let s={...this.headers};if(this.getHeaders)try{let i=await this.getHeaders();s={...s,...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:s,body:JSON.stringify(o),signal:r.signal},o)}catch(i){let d=i instanceof Error?i:new Error(String(i));throw n({type:"error",error:d}),d}else a=await fetch(this.apiUrl,{method:"POST",headers:s,body:JSON.stringify(o),signal:r.signal});if(!a.ok||!a.body){let i=new Error(`Agent execution request failed: ${a.status} ${a.statusText}`);throw n({type:"error",error:i}),i}n({type:"status",status:"connected"});try{await this.streamResponse(a.body,n,t.assistantMessageId)}finally{n({type:"status",status:"idle"})}}async processStream(t,n,r){n({type:"status",status:"connected"});try{await this.streamResponse(t,n,r)}finally{n({type:"status",status:"idle"})}}async resolveApproval(t,n){var a;let o=`${((a=this.config.apiUrl)==null?void 0:a.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,""))||gi}/v1/agents/${t.agentId}/approve`,s={"Content-Type":"application/json",...this.headers};return this.getHeaders&&Object.assign(s,await this.getHeaders()),fetch(o,{method:"POST",headers:s,body:JSON.stringify({executionId:t.executionId,approvalId:t.approvalId,decision:n,streamResponse:!0})})}async resumeFlow(t,n,r){var l,p;let o=this.isClientTokenMode(),s=o?this.getClientApiUrl("resume"):`${((l=this.config.apiUrl)==null?void 0:l.replace(/\/+$/,""))||gi}/resume`,a;o&&(a=(await this.initSession()).sessionId);let i={"Content-Type":"application/json",...this.headers};this.getHeaders&&Object.assign(i,await this.getHeaders());let d={executionId:t,toolOutputs:n,streamResponse:(p=r==null?void 0:r.streamResponse)!=null?p:!0};return a&&(d.sessionId=a),fetch(s,{method:"POST",headers:i,body:JSON.stringify(d),signal:r==null?void 0:r.signal})}async buildAgentPayload(t){var s,a;if(!this.config.agent)throw new Error("Agent configuration required for agent mode");let n=t.slice().filter(Il).filter(i=>i.role==="user"||i.role==="assistant"||i.role==="system").filter(i=>!i.variant||i.variant==="assistant").sort((i,d)=>{let l=new Date(i.createdAt).getTime(),p=new Date(d.createdAt).getTime();return l-p}).map(i=>{var d,l,p;return{role:i.role,content:(p=(l=(d=i.contentParts)!=null?d:i.llmContent)!=null?l:i.rawContent)!=null?p:i.content,createdAt:i.createdAt}}),r={agent:this.config.agent,messages:n,options:{streamResponse:!0,recordMode:"virtual",...this.config.agentOptions}},o=[...la(this.config),...(a=await((s=this.webMcpBridge)==null?void 0:s.snapshotForDispatch()))!=null?a:[]];if(o.length>0&&(r.clientTools=o),this.contextProviders.length){let i={};await Promise.all(this.contextProviders.map(async d=>{try{let l=await d({messages:t,config:this.config});l&&typeof l=="object"&&Object.assign(i,l)}catch(l){typeof console!="undefined"&&console.warn("[AgentWidget] Context provider failed:",l)}})),Object.keys(i).length&&(r.context=i)}return r}async buildPayload(t){var s,a;let r={messages:t.slice().filter(Il).sort((i,d)=>{let l=new Date(i.createdAt).getTime(),p=new Date(d.createdAt).getTime();return l-p}).map(i=>{var d,l,p;return{role:i.role,content:(p=(l=(d=i.contentParts)!=null?d:i.llmContent)!=null?l:i.rawContent)!=null?p:i.content,createdAt:i.createdAt}}),...this.config.flowId&&{flowId:this.config.flowId}},o=[...la(this.config),...(a=await((s=this.webMcpBridge)==null?void 0:s.snapshotForDispatch()))!=null?a:[]];if(o.length>0&&(r.clientTools=o),this.contextProviders.length){let i={};await Promise.all(this.contextProviders.map(async d=>{try{let l=await d({messages:t,config:this.config});l&&typeof l=="object"&&Object.assign(i,l)}catch(l){typeof console!="undefined"&&console.warn("[AgentWidget] Context provider failed:",l)}})),Object.keys(i).length&&(r.context=i)}if(this.requestMiddleware)try{let i=await this.requestMiddleware({payload:{...r},config:this.config});if(i&&typeof i=="object"){let d=i;return r.clientTools!==void 0&&!("clientTools"in d)&&(d.clientTools=r.clientTools),d}}catch(i){typeof console!="undefined"&&console.error("[AgentWidget] Request middleware error:",i)}return r}async handleCustomSSEEvent(t,n,r,o,s,a){if(!this.parseSSEEvent)return!1;try{let i=await this.parseSSEEvent(t);if(i===null)return!1;let d=p=>{let u={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"assistant",sequence:s(),...p!==void 0&&{partId:p}};return r.current=u,o(u),u},l=p=>r.current?r.current:d(p);if(i.text!==void 0){i.partId!==void 0&&a.current!==null&&i.partId!==a.current&&(r.current&&(r.current.streaming=!1,o(r.current)),d(i.partId)),i.partId!==void 0&&(a.current=i.partId);let p=l(i.partId);i.partId!==void 0&&!p.partId&&(p.partId=i.partId),p.content+=i.text,o(p)}return i.done&&(r.current&&(r.current.streaming=!1,o(r.current)),a.current=null,n({type:"status",status:"idle"})),i.error&&(a.current=null,n({type:"error",error:new Error(i.error)})),!0}catch(i){return typeof console!="undefined"&&console.error("[AgentWidget] parseSSEEvent error:",i),!1}}async streamResponse(t,n,r){var Ht,cn,sr,Er;let o=t.getReader(),s=new TextDecoder,a="",i=Date.now(),d=0,l=()=>i+d++,p=H=>{let pe=H.reasoning?{...H.reasoning,chunks:[...H.reasoning.chunks]}:void 0,Oe=H.toolCall?{...H.toolCall,chunks:H.toolCall.chunks?[...H.toolCall.chunks]:void 0}:void 0,Qe=H.tools?H.tools.map(_e=>({..._e,chunks:_e.chunks?[..._e.chunks]:void 0})):void 0;return{...H,reasoning:pe,toolCall:Oe,tools:Qe}},u=H=>{if(H.role!=="assistant"||H.variant)return!0;let pe=Array.isArray(H.contentParts)&&H.contentParts.length>0,Oe=typeof H.rawContent=="string"&&H.rawContent.trim()!=="";return typeof H.content=="string"&&H.content.trim()!==""||pe||Oe||!!H.stopReason},f=H=>{u(H)&&n({type:"message",message:p(H)})},g=null,v=null,y={current:null},w={current:null},S=!1,O=new Map,k=new Map,I=new Map,R=new Map,T={lastId:null,byStep:new Map},W={lastId:null,byCall:new Map},_=(H,pe,Oe="")=>`${H}::${pe}::${Oe}`,F=(H,pe)=>`${H}::${pe}::`,M=(H,pe,Oe,Qe)=>{let _e=_(H,pe,Oe),Ue=I.get(_e);if(Ue)return Ue;let at=Oe?`-${Oe}`:"",Pt={id:`nested-${H}-${pe}${at}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:l(),...Oe?{partId:Oe}:{},agentMetadata:{executionId:Qe,parentToolId:H,parentStepId:pe}};return I.set(_e,Pt),f(Pt),Pt},j=H=>{if(H==null)return null;try{return String(H)}catch{return null}},z=H=>{var pe,Oe,Qe,_e,Ue;return j((Ue=(_e=(Qe=(Oe=(pe=H.stepId)!=null?pe:H.step_id)!=null?Oe:H.step)!=null?Qe:H.parentId)!=null?_e:H.flowStepId)!=null?Ue:H.flow_step_id)},oe=H=>{var pe,Oe,Qe,_e,Ue,at,Pt;return j((Pt=(at=(Ue=(_e=(Qe=(Oe=(pe=H.callId)!=null?pe:H.call_id)!=null?Oe:H.requestId)!=null?Qe:H.request_id)!=null?_e:H.toolCallId)!=null?Ue:H.tool_call_id)!=null?at:H.stepId)!=null?Pt:H.step_id)},ke=r,ze=!1,Ae=()=>{if(g)return g;let H;return!ze&&ke?(H=ke,ze=!0):ke&&w.current?H=`${ke}_${w.current}`:H=`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,g={id:H,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:l()},f(g),g},Re=(H,pe)=>{T.lastId=pe,H&&T.byStep.set(H,pe)},be=(H,pe)=>{var Ue;let Oe=(Ue=H.reasoningId)!=null?Ue:H.id,Qe=z(H);if(Oe){let at=String(Oe);return Re(Qe,at),at}if(Qe){let at=T.byStep.get(Qe);if(at)return T.lastId=at,at}if(T.lastId&&!pe)return T.lastId;if(!pe)return null;let _e=`reason-${l()}`;return Re(Qe,_e),_e},Le=H=>{let pe=O.get(H);if(pe)return pe;let Oe={id:`reason-${H}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"reasoning",sequence:l(),reasoning:{id:H,status:"streaming",chunks:[]}};return O.set(H,Oe),f(Oe),Oe},We=(H,pe)=>{W.lastId=pe,H&&W.byCall.set(H,pe)},de=new Set,X=new Map,re=new Set,ce=new Map,ge=H=>{if(!H)return!1;let pe=H.replace(/_+/g,"_").replace(/^_|_$/g,"");return pe==="emit_artifact_markdown"||pe==="emit_artifact_component"},K=(H,pe)=>{var Ue;let Oe=(Ue=H.toolId)!=null?Ue:H.id,Qe=oe(H);if(Oe){let at=String(Oe);return We(Qe,at),at}if(Qe){let at=W.byCall.get(Qe);if(at)return W.lastId=at,at}if(W.lastId&&!pe)return W.lastId;if(!pe)return null;let _e=`tool-${l()}`;return We(Qe,_e),_e},ae=H=>{let pe=k.get(H);if(pe)return pe;let Oe={id:`tool-${H}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"tool",sequence:l(),toolCall:{id:H,status:"pending"}};return k.set(H,Oe),f(Oe),Oe},He=H=>{if(typeof H=="number"&&Number.isFinite(H))return H;if(typeof H=="string"){let pe=Number(H);if(!Number.isNaN(pe)&&Number.isFinite(pe))return pe;let Oe=Date.parse(H);if(!Number.isNaN(Oe))return Oe}return Date.now()},Y=H=>{if(typeof H=="string")return H;if(H==null)return"";try{return JSON.stringify(H)}catch{return String(H)}},ee=new Map,ie=new Map,Se=new Map,Ze=new Map,ve=null,fe=(H,pe,Oe)=>{var Pt;let Qe=Se.get(H);Qe||(Qe=[],Se.set(H,Qe));let _e=0,Ue=Qe.length;for(;_e<Ue;){let Kt=_e+Ue>>>1;Qe[Kt].seq<pe?_e=Kt+1:Ue=Kt}((Pt=Qe[_e])==null?void 0:Pt.seq)===pe?Qe[_e]={seq:pe,text:Oe}:Qe.splice(_e,0,{seq:pe,text:Oe});let at="";for(let Kt=0;Kt<Qe.length;Kt++)at+=Qe[Kt].text;return at},Je=(H,pe)=>{let Oe=Y(pe),Qe=ie.get(H.id),_e=dh(Qe,Oe);H.rawContent=_e;let Ue=ee.get(H.id),at=xt=>{var we;let lt=(we=H.content)!=null?we:"";xt.trim()!==""&&(lt.trim().length===0||xt.startsWith(lt)||xt.trimStart().startsWith(lt.trim()))&&(H.content=xt)},Pt=()=>{var xt;if(Ue){let lt=(xt=Ue.close)==null?void 0:xt.call(Ue);lt instanceof Promise&&lt.catch(()=>{})}ee.delete(H.id),ie.delete(H.id),H.streaming=!1,f(H)};if(!Ue){at(Oe),Pt();return}let Kt=Ko(_e);if(Kt!==null&&Kt.trim()!==""){at(Kt),Pt();return}let Zt=xt=>{var le;let lt=typeof xt=="string"?xt:(le=xt==null?void 0:xt.text)!=null?le:null;if(lt!==null&&lt.trim()!=="")return lt;let we=Ue.getExtractedText();return we!==null&&we.trim()!==""?we:Oe},G;try{G=Ue.processChunk(_e)}catch{at(Oe),Pt();return}if(G instanceof Promise){G.then(xt=>{at(Zt(xt)),Pt()}).catch(()=>{at(Oe),Pt()});return}at(Zt(G)),Pt()},De=[],V=!1,ue,ot=()=>{V||(V=!0,queueMicrotask(()=>{V=!1,ue()}))},Et=new mi((H,pe)=>{De.push({payloadType:H,payload:pe}),ot()}),ne=null,Ve=new Map,Nn=(Ht=this.config.iterationDisplay)!=null?Ht:"separate";for(ue=()=>{var H,pe,Oe,Qe,_e,Ue,at,Pt,Kt,Zt,G,xt,lt,we,le,nt,tn,Gt,Pn,wn,mt,Mt,et,qt,dn,An,Sn,yn,Mr,At,jn,qn,Nr,fr,vt,Lo,kr,Po,Fn,ss,ro,Fr,St,zn,Vn,In,Lt,ar,ir,Kn,oo,_r,so,Gn,Bt,Rn,lr,ao,$r,io,Lr,Jn,hr,ft,nn,rn,Qn,lo,ye,br,cr,$,as,Pr,Ur,jr,Ir,yr,Ns,Xn,Yn,xr,vr,Io,qr,Tn,Rr,is,Ro,ls,Ba,cs,Da,ds,yt,Fs,dr,_n,Oa,Na,ps,zr,_s,co,$s,Us,js,qs,$n,us,Wr,Hr,zs,Fa,Vs,Ks,Wo,_a,$a,Ua,ja,pl,Ho,po,qa,Gs,uo,za,Js,mo,Qs,Va,Vr,Ka,go,Dt,ms,gs;for(let Bo=0;Bo<De.length;Bo++){let je=De[Bo].payloadType,A=De[Bo].payload;if(je==="reason_start"){let U=(H=be(A,!0))!=null?H:`reason-${l()}`,L=Le(U);L.reasoning=(pe=L.reasoning)!=null?pe:{id:U,status:"streaming",chunks:[]},L.reasoning.startedAt=(Qe=L.reasoning.startedAt)!=null?Qe:He((Oe=A.startedAt)!=null?Oe:A.timestamp),L.reasoning.completedAt=void 0,L.reasoning.durationMs=void 0,L.streaming=!0,L.reasoning.status="streaming",f(L)}else if(je==="reason_delta"||je==="reason_chunk"){let U=(Ue=(_e=be(A,!1))!=null?_e:be(A,!0))!=null?Ue:`reason-${l()}`,L=Le(U);L.reasoning=(at=L.reasoning)!=null?at:{id:U,status:"streaming",chunks:[]},L.reasoning.startedAt=(Kt=L.reasoning.startedAt)!=null?Kt:He((Pt=A.startedAt)!=null?Pt:A.timestamp);let Z=(xt=(G=(Zt=A.reasoningText)!=null?Zt:A.text)!=null?G:A.delta)!=null?xt:"";if(Z&&A.hidden!==!0){let se=typeof A.sequenceIndex=="number"?A.sequenceIndex:void 0;if(se!==void 0){let J=fe(U,se,String(Z));L.reasoning.chunks=[J]}else L.reasoning.chunks.push(String(Z))}if(L.reasoning.status=A.done?"complete":"streaming",A.done){L.reasoning.completedAt=He((lt=A.completedAt)!=null?lt:A.timestamp);let se=(we=L.reasoning.startedAt)!=null?we:Date.now();L.reasoning.durationMs=Math.max(0,((le=L.reasoning.completedAt)!=null?le:Date.now())-se)}L.streaming=L.reasoning.status!=="complete",f(L)}else if(je==="reason_complete"){let U=(tn=(nt=be(A,!1))!=null?nt:be(A,!0))!=null?tn:`reason-${l()}`,L=O.get(U);if(L!=null&&L.reasoning){L.reasoning.status="complete",L.reasoning.completedAt=He((Gt=A.completedAt)!=null?Gt:A.timestamp);let se=(Pn=L.reasoning.startedAt)!=null?Pn:Date.now();L.reasoning.durationMs=Math.max(0,((wn=L.reasoning.completedAt)!=null?wn:Date.now())-se),L.streaming=!1,f(L)}let Z=z(A);Z&&T.byStep.delete(Z)}else if(je==="tool_start"){let U=(mt=K(A,!0))!=null?mt:`tool-${l()}`,L=(Mt=A.toolName)!=null?Mt:A.name;if(ge(L)){de.add(U);continue}let Z=ae(U),se=(et=Z.toolCall)!=null?et:{id:U,status:"pending"};se.name=L!=null?L:se.name,se.status="running",A.args!==void 0?se.args=A.args:A.parameters!==void 0&&(se.args=A.parameters),se.startedAt=(dn=se.startedAt)!=null?dn:He((qt=A.startedAt)!=null?qt:A.timestamp),se.completedAt=void 0,se.durationMs=void 0,Z.toolCall=se,Z.streaming=!0;let J=A.agentContext;(J||A.executionId)&&(Z.agentMetadata={executionId:(An=J==null?void 0:J.executionId)!=null?An:A.executionId,iteration:(Sn=J==null?void 0:J.iteration)!=null?Sn:A.iteration}),f(Z)}else if(je==="tool_chunk"||je==="tool_delta"){let U=(Mr=(yn=K(A,!1))!=null?yn:K(A,!0))!=null?Mr:`tool-${l()}`;if(de.has(U))continue;let L=ae(U),Z=(At=L.toolCall)!=null?At:{id:U,status:"running"};Z.startedAt=(qn=Z.startedAt)!=null?qn:He((jn=A.startedAt)!=null?jn:A.timestamp);let se=(vt=(fr=(Nr=A.text)!=null?Nr:A.delta)!=null?fr:A.message)!=null?vt:"";se&&(Z.chunks=(Lo=Z.chunks)!=null?Lo:[],Z.chunks.push(String(se))),Z.status="running",L.toolCall=Z,L.streaming=!0;let J=A.agentContext;(J||A.executionId)&&(L.agentMetadata=(Fn=L.agentMetadata)!=null?Fn:{executionId:(kr=J==null?void 0:J.executionId)!=null?kr:A.executionId,iteration:(Po=J==null?void 0:J.iteration)!=null?Po:A.iteration}),f(L)}else if(je==="tool_complete"){let U=(ro=(ss=K(A,!1))!=null?ss:K(A,!0))!=null?ro:`tool-${l()}`;if(de.has(U)){de.delete(U);continue}let L=ae(U),Z=(Fr=L.toolCall)!=null?Fr:{id:U,status:"running"};Z.status="complete",A.result!==void 0&&(Z.result=A.result),typeof A.duration=="number"&&(Z.duration=A.duration),Z.completedAt=He((St=A.completedAt)!=null?St:A.timestamp);let se=(zn=A.duration)!=null?zn:A.executionTime;if(typeof se=="number")Z.durationMs=se;else{let Fe=(Vn=Z.startedAt)!=null?Vn:Date.now();Z.durationMs=Math.max(0,((In=Z.completedAt)!=null?In:Date.now())-Fe)}L.toolCall=Z,L.streaming=!1;let J=A.agentContext;(J||A.executionId)&&(L.agentMetadata=(ir=L.agentMetadata)!=null?ir:{executionId:(Lt=J==null?void 0:J.executionId)!=null?Lt:A.executionId,iteration:(ar=J==null?void 0:J.iteration)!=null?ar:A.iteration}),f(L);let Me=oe(A);Me&&W.byCall.delete(Me)}else if(je==="step_await"&&A.awaitReason==="local_tool_required"&&A.toolName){let U=typeof A.toolCallId=="string"&&A.toolCallId.length>0?A.toolCallId:void 0,L=(Kn=U!=null?U:A.toolId)!=null?Kn:`local-${l()}`,Z=ae(L),se=A.toolName,J=zo(se),Me=(oo=Z.toolCall)!=null?oo:{id:L,status:"pending"};Me.name=se,Me.args=A.parameters,Me.status=J?"running":"complete",Me.chunks=(_r=Me.chunks)!=null?_r:[],Me.startedAt=(Gn=Me.startedAt)!=null?Gn:He((so=A.startedAt)!=null?so:A.timestamp),J?(Me.completedAt=void 0,Me.duration=void 0,Me.durationMs=void 0):Me.completedAt=(Bt=Me.completedAt)!=null?Bt:Me.startedAt,Z.toolCall=Me,Z.streaming=!1,Z.agentMetadata={...Z.agentMetadata,executionId:(lr=A.executionId)!=null?lr:(Rn=Z.agentMetadata)==null?void 0:Rn.executionId,awaitingLocalTool:!0,...U?{webMcpToolCallId:U}:{}},f(Z)}else if(je==="text_start"){if((ao=A.toolContext)!=null&&ao.toolId)continue;let U=A.partId;if(U!==void 0&&w.current!==null&&U!==w.current){let L=g;L&&(L.streaming=!1,f(L),ve=L,g=null,S=!0)}U!==void 0&&(w.current=U)}else if(je==="text_end"){if(($r=A.toolContext)!=null&&$r.toolId)continue;let U=g;U&&(U.streaming=!1,f(U),ve=U,g=null,S=!0)}else if(je==="step_chunk"||je==="step_delta"){let U=A.stepType,L=A.executionType;if(U==="tool"||L==="context")continue;let Z=A.toolContext;if(Z!=null&&Z.toolId){let Fe=String((Lr=(io=A.id)!=null?io:Z.stepId)!=null?Lr:`step-${l()}`),ct=A.partId!==void 0&&A.partId!==null?String(A.partId):"",tt=`${Z.toolId}::${Fe}`,Wt=R.get(tt);if(ct!==""&&Wt!==void 0&&Wt!==""&&Wt!==ct){let it=I.get(_(Z.toolId,Fe,Wt));it&&it.streaming!==!1&&(it.streaming=!1,f(it))}ct!==""&&R.set(tt,ct);let $t=M(Z.toolId,Fe,ct,Z.executionId),gn=(nn=(ft=(hr=(Jn=A.text)!=null?Jn:A.delta)!=null?hr:A.content)!=null?ft:A.chunk)!=null?nn:"";gn&&($t.content+=String(gn),$t.streaming=!0,f($t)),A.isComplete&&($t.streaming=!1,f($t));continue}let se=A.partId;if(se!==void 0&&w.current!==null&&se!==w.current){let Fe=g;Fe&&(Fe.streaming=!1,f(Fe),ve=Fe,g=null,S=!0)}se!==void 0&&(w.current=se);let J=se!==void 0&&(rn=Ze.get(se))!=null?rn:Ae();se!==void 0&&(J.partId||(J.partId=se),Ze.set(se,J));let Me=(br=(ye=(lo=(Qn=A.text)!=null?Qn:A.delta)!=null?lo:A.content)!=null?ye:A.chunk)!=null?br:"";if(Me){let Fe=typeof A.seq=="number"?A.seq:void 0,ct=se!=null?se:J.id,tt=Fe!==void 0?fe(ct,Fe,String(Me)):((cr=ie.get(J.id))!=null?cr:"")+Me;J.rawContent=tt,ee.has(J.id)||ee.set(J.id,this.createStreamParser());let Wt=ee.get(J.id),$t=tt.trim().startsWith("{")||tt.trim().startsWith("[");if($t&&ie.set(J.id,tt),Wt.__isPlainTextParser===!0){J.content=Fe!==void 0?tt:J.content+Me,ie.delete(J.id),ee.delete(J.id),J.rawContent=void 0,f(J);continue}let it=Wt.processChunk(tt);if(it instanceof Promise)it.then(ht=>{var Ge;let en=typeof ht=="string"?ht:(Ge=ht==null?void 0:ht.text)!=null?Ge:null;if(en!==null&&en.trim()!=="")J.content=en,f(J);else if(!$t&&!tt.trim().startsWith("<")){let Cn=g,Qt=Cn&&Cn.id===J.id?Cn:J;Qt.id===J.id&&(Qt.content=Fe!==void 0?tt:Qt.content+Me,ie.delete(Qt.id),ee.delete(Qt.id),Qt.rawContent=void 0,f(Qt))}}).catch(()=>{J.content=Fe!==void 0?tt:J.content+Me,ie.delete(J.id),ee.delete(J.id),J.rawContent=void 0,f(J)});else{let ht=typeof it=="string"?it:($=it==null?void 0:it.text)!=null?$:null;ht!==null&&ht.trim()!==""?(J.content=ht,f(J)):!$t&&!tt.trim().startsWith("<")&&(J.content=Fe!==void 0?tt:J.content+Me,ie.delete(J.id),ee.delete(J.id),J.rawContent=void 0,f(J))}}if(A.isComplete){let Fe=(Pr=(as=A.result)==null?void 0:as.response)!=null?Pr:J.content;if(Fe){let ct=ie.get(J.id),tt=ct!=null?ct:Y(Fe);J.rawContent=tt;let Wt=ee.get(J.id),$t=null,gn=!1;if(Wt&&($t=Wt.getExtractedText(),$t===null&&($t=Ko(tt)),$t===null)){let it=Wt.processChunk(tt);it instanceof Promise?(gn=!0,it.then(ht=>{var Ge;let en=typeof ht=="string"?ht:(Ge=ht==null?void 0:ht.text)!=null?Ge:null;if(en!==null){let Cn=g;Cn&&Cn.id===J.id&&(Cn.content=en,Cn.streaming=!1,ee.delete(Cn.id),ie.delete(Cn.id),f(Cn))}})):$t=typeof it=="string"?it:(Ur=it==null?void 0:it.text)!=null?Ur:null}if(!gn){$t!==null&&$t.trim()!==""?J.content=$t:ie.has(J.id)||(J.content=Y(Fe));let it=ee.get(J.id);if(it){let ht=(jr=it.close)==null?void 0:jr.call(it);ht instanceof Promise&&ht.catch(()=>{}),ee.delete(J.id)}ie.delete(J.id),J.streaming=!1,f(J)}}}}else if(je==="step_complete"){let U=A.stepType,L=A.executionType;if(U==="tool"||L==="context")continue;let Z=A.toolContext;if(Z!=null&&Z.toolId){let Fe=String((yr=(Ir=A.id)!=null?Ir:Z.stepId)!=null?yr:"");if(Fe){let ct=F(Z.toolId,Fe);for(let[tt,Wt]of I)tt.startsWith(ct)&&Wt.streaming!==!1&&(Wt.streaming=!1,f(Wt));R.delete(`${Z.toolId}::${Fe}`)}continue}let se=A.stopReason;if(S){if(g!==null){let tt=g;se&&(tt.stopReason=se),ee.delete(tt.id),ie.delete(tt.id),tt.streaming!==!1&&(tt.streaming=!1,f(tt))}let Fe=(Ns=A.result)==null?void 0:Ns.response,ct=ve;ct&&(se&&(ct.stopReason=se),Fe!=null?Je(ct,Fe):(ee.delete(ct.id),ie.delete(ct.id))),ve=null;continue}let J=(Xn=A.result)==null?void 0:Xn.response,Me=Ae();if(se&&(Me.stopReason=se),J!=null){let Fe=ee.get(Me.id),ct=!1,tt=!1;if(Fe){let Wt=Fe.getExtractedText(),$t=ie.get(Me.id),gn=$t!=null?$t:Y(J);if(Me.rawContent=gn,Wt!==null&&Wt.trim()!=="")Me.content=Wt,ct=!0;else{let it=Ko(gn);if(it!==null)Me.content=it,ct=!0;else{let ht=Fe.processChunk(gn);if(ht instanceof Promise)tt=!0,ht.then(en=>{var Cn;let Ge=typeof en=="string"?en:(Cn=en==null?void 0:en.text)!=null?Cn:null;if(Ge!==null&&Ge.trim()!==""){let Qt=g;Qt&&Qt.id===Me.id&&(Qt.content=Ge,Qt.streaming=!1,ee.delete(Qt.id),ie.delete(Qt.id),f(Qt))}else{let Qt=Fe.getExtractedText(),xn=g;xn&&xn.id===Me.id&&(Qt!==null&&Qt.trim()!==""?xn.content=Qt:ie.has(xn.id)||(xn.content=Y(J)),xn.streaming=!1,ee.delete(xn.id),ie.delete(xn.id),f(xn))}});else{let en=typeof ht=="string"?ht:(Yn=ht==null?void 0:ht.text)!=null?Yn:null;if(en!==null&&en.trim()!=="")Me.content=en,ct=!0;else{let Ge=Fe.getExtractedText();Ge!==null&&Ge.trim()!==""&&(Me.content=Ge,ct=!0)}}}}}if(!tt){if(!Me.rawContent){let Wt=ie.get(Me.id);Me.rawContent=Wt!=null?Wt:Y(J)}if(!ct&&!ie.has(Me.id)&&(Me.content=Y(J)),Fe){let Wt=(xr=Fe.close)==null?void 0:xr.call(Fe);Wt instanceof Promise&&Wt.catch(()=>{})}ee.delete(Me.id),ie.delete(Me.id),Me.streaming=!1,f(Me)}}else ee.delete(Me.id),ie.delete(Me.id),Me.streaming=!1,f(Me)}else if(je==="flow_complete"){let U=(vr=A.result)==null?void 0:vr.response;if(S){if(g!==null){let L=g;ee.delete(L.id),ie.delete(L.id),L.streaming!==!1&&(L.streaming=!1,f(L))}}else if(U!=null){let L=Ae(),Z=ie.get(L.id),se=Z!=null?Z:Y(U);L.rawContent=se;let J=Y(U),Me=ee.get(L.id);if(Me){let tt=Ko(se);if(tt!==null)J=tt;else{let Wt=Me.processChunk(se);Wt instanceof Promise&&Wt.then(gn=>{var ht;let it=typeof gn=="string"?gn:(ht=gn==null?void 0:gn.text)!=null?ht:null;it!==null&&(L.content=it,L.streaming=!1,f(L))});let $t=Me.getExtractedText();$t!==null&&(J=$t)}}ee.delete(L.id),ie.delete(L.id);let Fe=J!==L.content,ct=L.streaming!==!1;Fe&&(L.content=J),L.streaming=!1,(Fe||ct)&&f(L)}else if(g!==null){let L=g;ee.delete(L.id),ie.delete(L.id),L.streaming!==!1&&(L.streaming=!1,f(L))}n({type:"status",status:"idle"})}else if(je==="agent_start")ne={executionId:A.executionId,agentId:(Io=A.agentId)!=null?Io:"virtual",agentName:(qr=A.agentName)!=null?qr:"",status:"running",currentIteration:0,maxTurns:(Tn=A.maxTurns)!=null?Tn:1,startedAt:He(A.startedAt)};else if(je==="agent_iteration_start"){if(ne&&(ne.currentIteration=A.iteration),Nn==="separate"&&A.iteration>1){let U=g;U&&(U.streaming=!1,f(U),Ve.set(A.iteration-1,U),g=null)}}else if(je==="agent_turn_start")v=null;else if(je==="agent_turn_delta"){if(A.contentType==="text"){let U=Ae();U.content+=(Rr=A.delta)!=null?Rr:"",U.agentMetadata={executionId:A.executionId,iteration:A.iteration,turnId:A.turnId,agentName:ne==null?void 0:ne.agentName},v=U,f(U)}else if(A.contentType==="thinking"){let U=(is=A.turnId)!=null?is:`agent-think-${A.iteration}`,L=Le(U);L.reasoning=(Ro=L.reasoning)!=null?Ro:{id:U,status:"streaming",chunks:[]},L.reasoning.chunks.push((ls=A.delta)!=null?ls:""),L.agentMetadata={executionId:A.executionId,iteration:A.iteration,turnId:A.turnId},f(L)}else if(A.contentType==="tool_input"){let U=(Ba=A.toolCallId)!=null?Ba:W.lastId;if(U){let L=k.get(U);L!=null&&L.toolCall&&(L.toolCall.chunks=(cs=L.toolCall.chunks)!=null?cs:[],L.toolCall.chunks.push((Da=A.delta)!=null?Da:""),f(L))}}}else if(je==="agent_turn_complete"){let U=A.turnId;if(U){let se=O.get(U);if(se!=null&&se.reasoning){se.reasoning.status="complete",se.reasoning.completedAt=He(A.completedAt);let J=(ds=se.reasoning.startedAt)!=null?ds:Date.now();se.reasoning.durationMs=Math.max(0,((yt=se.reasoning.completedAt)!=null?yt:Date.now())-J),se.streaming=!1,f(se)}}let L=A.stopReason,Z=g!=null?g:v;if(L&&Z!==null){let se=A.turnId;(!se||((Fs=Z.agentMetadata)==null?void 0:Fs.turnId)===se)&&(Z.stopReason=L,f(Z))}}else if(je==="agent_tool_start"){g&&(g.streaming=!1,f(g),g=null);let U=(dr=A.toolCallId)!=null?dr:`agent-tool-${l()}`;We(oe(A),U);let L=ae(U),Z=(_n=L.toolCall)!=null?_n:{id:U,status:"pending",name:void 0,args:void 0,chunks:void 0,result:void 0,duration:void 0,startedAt:void 0,completedAt:void 0,durationMs:void 0};Z.name=(Na=(Oa=A.toolName)!=null?Oa:A.name)!=null?Na:Z.name,Z.status="running",A.parameters!==void 0&&(Z.args=A.parameters),Z.startedAt=He((ps=A.startedAt)!=null?ps:A.timestamp),L.toolCall=Z,L.streaming=!0,L.agentMetadata={executionId:A.executionId,iteration:A.iteration},f(L)}else if(je==="agent_tool_delta"){let U=(zr=A.toolCallId)!=null?zr:W.lastId;if(U){let L=(_s=k.get(U))!=null?_s:ae(U);L.toolCall&&(L.toolCall.chunks=(co=L.toolCall.chunks)!=null?co:[],L.toolCall.chunks.push(($s=A.delta)!=null?$s:""),L.toolCall.status="running",L.streaming=!0,f(L))}}else if(je==="agent_tool_complete"){let U=(Us=A.toolCallId)!=null?Us:W.lastId;if(U){let L=(js=k.get(U))!=null?js:ae(U);if(L.toolCall){L.toolCall.status="complete",A.result!==void 0&&(L.toolCall.result=A.result),typeof A.executionTime=="number"&&(L.toolCall.durationMs=A.executionTime),L.toolCall.completedAt=He((qs=A.completedAt)!=null?qs:A.timestamp),L.streaming=!1,f(L);let Z=oe(A);Z&&W.byCall.delete(Z)}}}else if(je==="agent_media"){let U=Array.isArray(A.media)?A.media:[],L=[];for(let Z of U){if(!Z||typeof Z!="object")continue;let se=Z,J=typeof se.type=="string"?se.type:void 0,Me=typeof se.mediaType=="string"?se.mediaType.toLowerCase():"",Fe=null,ct="";if(J==="media"){let tt=typeof se.data=="string"?se.data:void 0;if(!tt)continue;ct=Me.length>0?Me:"application/octet-stream",Fe=`data:${ct};base64,${tt}`}else if(J==="image-url"){let tt=typeof se.url=="string"?se.url:void 0;if(!tt)continue;ct=Me,Fe=tt}else if(J==="file-url"){let tt=typeof se.url=="string"?se.url:void 0;if(!tt)continue;ct=Me,Fe=tt}else continue;if(Fe)if(J==="image-url"||ct.startsWith("image/"))L.push({type:"image",image:Fe,...ct?{mimeType:ct}:{}});else if(ct.startsWith("audio/"))L.push({type:"audio",audio:Fe,mimeType:ct});else if(ct.startsWith("video/"))L.push({type:"video",video:Fe,mimeType:ct});else{let tt=ct||"application/octet-stream";L.push({type:"file",data:Fe,mimeType:tt,filename:lh(tt)})}}if(L.length>0){let Z=l(),se=A.toolCallId,Me={id:`agent-media-${typeof se=="string"&&se.length>0?`${se}-${Z}`:String(Z)}`,role:"assistant",content:"",contentParts:L,createdAt:new Date().toISOString(),streaming:!1,sequence:Z,agentMetadata:{executionId:A.executionId,iteration:A.iteration}};f(Me);let Fe=g;Fe&&(Fe.streaming=!1,f(Fe)),g=null,y.current=null}}else if(je!=="agent_iteration_complete"){if(je==="agent_reflection"||je==="agent_reflect"){let U=`agent-reflection-${A.executionId}-${A.iteration}`,L={id:U,role:"assistant",content:($n=A.reflection)!=null?$n:"",createdAt:new Date().toISOString(),streaming:!1,variant:"reasoning",sequence:l(),reasoning:{id:U,status:"complete",chunks:[(us=A.reflection)!=null?us:""]},agentMetadata:{executionId:A.executionId,iteration:A.iteration}};f(L)}else if(je==="agent_complete"){ne&&(ne.status=A.success?"complete":"error",ne.completedAt=He(A.completedAt),ne.stopReason=A.stopReason);let U=g;U&&(U.streaming=!1,f(U)),n({type:"status",status:"idle"})}else if(je==="agent_error"){let U=typeof A.error=="string"?A.error:(Hr=(Wr=A.error)==null?void 0:Wr.message)!=null?Hr:"Agent execution error";A.recoverable?typeof console!="undefined"&&console.warn("[AgentWidget] Recoverable agent error:",U):n({type:"error",error:new Error(U)})}else if(je!=="agent_ping"){if(je==="agent_approval_start"){let U=(zs=A.approvalId)!=null?zs:`approval-${l()}`,L={id:`approval-${U}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:l(),approval:{id:U,status:"pending",agentId:(Fa=ne==null?void 0:ne.agentId)!=null?Fa:"virtual",executionId:(Ks=(Vs=A.executionId)!=null?Vs:ne==null?void 0:ne.executionId)!=null?Ks:"",toolName:(Wo=A.toolName)!=null?Wo:"",toolType:A.toolType,description:($a=A.description)!=null?$a:`Execute ${(_a=A.toolName)!=null?_a:"tool"}`,...typeof A.reason=="string"&&A.reason?{reason:A.reason}:{},parameters:A.parameters}};f(L)}else if(je==="step_await"&&A.awaitReason==="approval_required"){let U=(Ua=A.approvalId)!=null?Ua:`approval-${l()}`,L={id:`approval-${U}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:l(),approval:{id:U,status:"pending",agentId:(ja=ne==null?void 0:ne.agentId)!=null?ja:"virtual",executionId:(Ho=(pl=A.executionId)!=null?pl:ne==null?void 0:ne.executionId)!=null?Ho:"",toolName:(po=A.toolName)!=null?po:"",toolType:A.toolType,description:(Gs=A.description)!=null?Gs:`Execute ${(qa=A.toolName)!=null?qa:"tool"}`,...typeof A.reason=="string"&&A.reason?{reason:A.reason}:{},parameters:A.parameters}};f(L)}else if(je==="agent_approval_complete"){let U=A.approvalId;if(U){let Z={id:`approval-${U}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:l(),approval:{id:U,status:(uo=A.decision)!=null?uo:"approved",agentId:(za=ne==null?void 0:ne.agentId)!=null?za:"virtual",executionId:(mo=(Js=A.executionId)!=null?Js:ne==null?void 0:ne.executionId)!=null?mo:"",toolName:(Qs=A.toolName)!=null?Qs:"",description:(Va=A.description)!=null?Va:"",resolvedAt:Date.now()}};f(Z)}}else if(je==="artifact_start"||je==="artifact_delta"||je==="artifact_update"||je==="artifact_complete"){if(je==="artifact_start"){let U=A.artifactType,L=String(A.id),Z=typeof A.title=="string"?A.title:void 0;if(n({type:"artifact_start",id:L,artifactType:U,title:Z,component:typeof A.component=="string"?A.component:void 0}),ce.set(L,{markdown:"",title:Z}),!re.has(L)){re.add(L);let se={id:`artifact-ref-${L}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:l(),rawContent:JSON.stringify({component:"PersonaArtifactCard",props:{artifactId:L,title:Z,artifactType:U,status:"streaming"}})};X.set(L,se),f(se)}}else if(je==="artifact_delta"){let U=String(A.id),L=typeof A.delta=="string"?A.delta:String((Vr=A.delta)!=null?Vr:"");n({type:"artifact_delta",id:U,artDelta:L});let Z=ce.get(U);Z&&(Z.markdown+=L)}else if(je==="artifact_update"){let U=A.props&&typeof A.props=="object"&&!Array.isArray(A.props)?A.props:{};n({type:"artifact_update",id:String(A.id),props:U,component:typeof A.component=="string"?A.component:void 0})}else if(je==="artifact_complete"){let U=String(A.id);n({type:"artifact_complete",id:U});let L=X.get(U);if(L){L.streaming=!1;try{let Z=JSON.parse((Ka=L.rawContent)!=null?Ka:"{}");if(Z.props){Z.props.status="complete";let se=ce.get(U);se!=null&&se.markdown&&(Z.props.markdown=se.markdown)}L.rawContent=JSON.stringify(Z)}catch{}ce.delete(U),f(L),X.delete(U)}}}else if(je==="transcript_insert"){let U=A.message;if(!U||typeof U!="object")continue;let L=String((go=U.id)!=null?go:`msg-${l()}`),Z=U.role,J={id:L,role:Z==="user"?"user":Z==="system"?"system":"assistant",content:typeof U.content=="string"?U.content:"",rawContent:typeof U.rawContent=="string"?U.rawContent:void 0,createdAt:typeof U.createdAt=="string"?U.createdAt:new Date().toISOString(),streaming:U.streaming===!0,...typeof U.variant=="string"?{variant:U.variant}:{},sequence:l()};if(f(J),J.rawContent)try{let Me=JSON.parse(J.rawContent),Fe=(Dt=Me==null?void 0:Me.props)==null?void 0:Dt.artifactId;typeof Fe=="string"&&re.add(Fe)}catch{}g=null,y.current=null,ee.delete(L),ie.delete(L)}else if(je==="error"||je==="step_error"||je==="dispatch_error"||je==="flow_error"){let U=null;if(A.error instanceof Error)U=A.error;else if(je==="dispatch_error"){let L=(ms=A.message)!=null?ms:A.error;L!=null&&L!==""&&(U=new Error(String(L)))}else if(je==="step_error"||je==="flow_error"){let L=A.error;typeof L=="string"&&L!==""?U=new Error(L):L!=null&&typeof L=="object"&&"message"in L&&(U=new Error(String((gs=L.message)!=null?gs:L)))}else je==="error"&&A.error!=null&&A.error!==""&&(U=new Error(String(A.error)));if(U){n({type:"error",error:U});let L=g;L&&L.streaming&&(L.streaming=!1,f(L)),n({type:"status",status:"idle"})}}}}}De.length=0};;){let{done:H,value:pe}=await o.read();if(H)break;a+=s.decode(pe,{stream:!0});let Oe=a.split(`
10
10
 
11
11
  `);a=(cn=Oe.pop())!=null?cn:"";for(let Qe of Oe){let _e=Qe.split(`
12
12
  `),Ue="message",at="";for(let Zt of _e)Zt.startsWith("event:")?Ue=Zt.replace("event:","").trim():Zt.startsWith("data:")&&(at+=Zt.replace("data:","").trim());if(!at)continue;let Pt;try{Pt=JSON.parse(at)}catch(Zt){n({type:"error",error:Zt instanceof Error?Zt:new Error("Failed to parse chat stream payload")});continue}let Kt=Ue!=="message"?Ue:(sr=Pt.type)!=null?sr:"message";if((Er=this.onSSEEvent)==null||Er.call(this,Kt,Pt),this.parseSSEEvent){y.current=g;let Zt=await this.handleCustomSSEEvent(Pt,n,y,f,l,w);if(y.current&&y.current!==g&&(g=y.current),Zt)continue}Et.push(Kt,Pt),ue()}}Et.flushPending(),ue(),Et.destroy()}};function lm(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`msg_${e}_${t}`}function Ts(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`usr_${e}_${t}`}function Jo(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`ast_${e}_${t}`}var fi="[Image]";function cm(e){return typeof e=="string"?[{type:"text",text:e}]:e}function dm(e){return typeof e=="string"?e:e.filter(t=>t.type==="text").map(t=>t.text).join("")}function pm(e){return typeof e=="string"?!1:e.some(t=>t.type==="image")}function um(e){return typeof e=="string"?[]:e.filter(t=>t.type==="image")}function pa(e){return{type:"text",text:e}}function mm(e,t){return{type:"image",image:e,...(t==null?void 0:t.mimeType)&&{mimeType:t.mimeType},...(t==null?void 0:t.alt)&&{alt:t.alt}}}async function gm(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let o=r.result;t({type:"image",image:o,mimeType:e.type,alt:e.name})},r.onerror=()=>n(new Error("Failed to read file")),r.readAsDataURL(e)})}function fm(e,t=["image/png","image/jpeg","image/gif","image/webp"],n=10*1024*1024){return t.includes(e.type)?e.size>n?{valid:!1,error:`File too large. Maximum size: ${Math.round(n/1048576)}MB`}:{valid:!0}:{valid:!1,error:`Invalid file type. Accepted types: ${t.join(", ")}`}}var hm=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml","image/bmp"],ph=["application/pdf","text/plain","text/markdown","text/csv","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/json"],Yr=[...hm,...ph];function uh(e){return hm.includes(e)||e.startsWith("image/")}function hi(e){return uh(e.type)}async function bm(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let o=r.result;hi(e)?t({type:"image",image:o,mimeType:e.type,alt:e.name}):t({type:"file",data:o,mimeType:e.type,filename:e.name})},r.onerror=()=>n(new Error("Failed to read file")),r.readAsDataURL(e)})}function ym(e,t=Yr,n=10*1024*1024){return t.includes(e.type)?e.size>n?{valid:!1,error:`File too large. Maximum size: ${Math.round(n/1048576)}MB`}:{valid:!0}:{valid:!1,error:`Invalid file type "${e.type}". Accepted types: ${t.join(", ")}`}}function mh(e){let t=e.split(".");return t.length>1?t.pop().toLowerCase():""}function xm(e,t){let n=mh(t).toUpperCase();return{"application/pdf":"PDF","text/plain":"TXT","text/markdown":"MD","text/csv":"CSV","application/msword":"DOC","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"DOCX","application/vnd.ms-excel":"XLS","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"XLSX","application/json":"JSON"}[e]||n||"FILE"}var bi=class{constructor(t=24e3){this.ctx=null;this.nextStartTime=0;this.activeSources=[];this.finishedCallbacks=[];this.playing=!1;this.streamEnded=!1;this.pendingCount=0;this.remainder=null;this.sampleRate=t}ensureContext(){if(!this.ctx){let n=typeof window!="undefined"?window:void 0;if(!n)throw new Error("AudioPlaybackManager requires a browser environment");let r=n.AudioContext||n.webkitAudioContext;this.ctx=new r({sampleRate:this.sampleRate})}let t=this.ctx;return t.state==="suspended"&&t.resume(),t}enqueue(t){if(t.length===0)return;let n=t;if(this.remainder){let d=new Uint8Array(this.remainder.length+t.length);d.set(this.remainder),d.set(t,this.remainder.length),n=d,this.remainder=null}if(n.length%2!==0&&(this.remainder=new Uint8Array([n[n.length-1]]),n=n.subarray(0,n.length-1)),n.length===0)return;let r=this.ensureContext(),o=this.pcmToFloat32(n),s=r.createBuffer(1,o.length,this.sampleRate);s.getChannelData(0).set(o);let a=r.createBufferSource();a.buffer=s,a.connect(r.destination);let i=r.currentTime;this.nextStartTime<i&&(this.nextStartTime=i),a.start(this.nextStartTime),this.nextStartTime+=s.duration,this.activeSources.push(a),this.pendingCount++,this.playing=!0,a.onended=()=>{let d=this.activeSources.indexOf(a);d!==-1&&this.activeSources.splice(d,1),this.pendingCount--,this.checkFinished()}}markStreamEnd(){this.streamEnded=!0,this.checkFinished()}flush(){for(let t of this.activeSources)try{t.stop(),t.disconnect()}catch{}this.activeSources=[],this.pendingCount=0,this.nextStartTime=0,this.playing=!1,this.streamEnded=!1,this.finishedCallbacks=[],this.remainder=null}isPlaying(){return this.playing}onFinished(t){this.finishedCallbacks.push(t)}async destroy(){this.flush(),this.ctx&&(await this.ctx.close(),this.ctx=null)}checkFinished(){if(this.streamEnded&&this.pendingCount<=0&&this.playing){this.playing=!1,this.streamEnded=!1;let t=this.finishedCallbacks.slice();this.finishedCallbacks=[];for(let n of t)n()}}pcmToFloat32(t){let n=Math.floor(t.length/2),r=new Float32Array(n),o=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let s=0;s<n;s++){let a=o.getInt16(s*2,!0);r[s]=a/32768}return r}};var yi=class{constructor(){this.sourceNode=null;this.analyserNode=null;this.interval=null;this.conditionStart=null;this.fired=!1}start(t,n,r,o,s){this.stop(),this.fired=!1,this.conditionStart=null,this.sourceNode=t.createMediaStreamSource(n),this.analyserNode=t.createAnalyser(),this.analyserNode.fftSize=2048,this.sourceNode.connect(this.analyserNode);let a=new Float32Array(this.analyserNode.fftSize);this.interval=setInterval(()=>{if(!this.analyserNode||this.fired)return;this.analyserNode.getFloatTimeDomainData(a);let i=0;for(let p=0;p<a.length;p++)i+=a[p]*a[p];let d=Math.sqrt(i/a.length);(r==="silence"?d<o.threshold:d>=o.threshold)?this.conditionStart===null?this.conditionStart=Date.now():Date.now()-this.conditionStart>=o.duration&&(this.fired=!0,s()):this.conditionStart=null},100)}stop(){this.interval&&(clearInterval(this.interval),this.interval=null),this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=null),this.analyserNode=null,this.conditionStart=null,this.fired=!1}};var ua=class{constructor(t){this.config=t;this.type="runtype";this.ws=null;this.audioContext=null;this.w=typeof window!="undefined"?window:void 0;this.mediaRecorder=null;this.resultCallbacks=[];this.errorCallbacks=[];this.statusCallbacks=[];this.processingStartCallbacks=[];this.audioChunks=[];this.isProcessing=!1;this.isSpeaking=!1;this.vad=new yi;this.mediaStream=null;this.currentAudio=null;this.currentAudioUrl=null;this.currentRequestId=null;this.interruptionMode="none";this.playbackManager=null}getInterruptionMode(){return this.interruptionMode}isBargeInActive(){return this.interruptionMode==="barge-in"&&this.mediaStream!==null}async deactivateBargeIn(){this.vad.stop(),this.mediaStream&&(this.mediaStream.getTracks().forEach(t=>t.stop()),this.mediaStream=null),this.audioContext&&(await this.audioContext.close(),this.audioContext=null)}async connect(){var t,n,r;if(!(this.ws&&this.ws.readyState===WebSocket.OPEN))try{if(!this.w)throw new Error("Window object not available");let o=this.w;if(!o||!o.location)throw new Error("Window object or location not available");let s=o.location.protocol==="https:"?"wss:":"ws:",a=(t=this.config)==null?void 0:t.host,i=(n=this.config)==null?void 0:n.agentId,d=(r=this.config)==null?void 0:r.clientToken;if(!i||!d)throw new Error("agentId and clientToken are required");if(!a)throw new Error("host must be provided in Runtype voice provider configuration");let l=`${s}//${a}/ws/agents/${i}/voice?token=${d}`;this.ws=new WebSocket(l),this.setupWebSocketHandlers();let p=`${s}//${a}/ws/agents/${i}/voice?token=...`,u=" Check: API running on port 8787? Valid client token? Agent voice enabled? Token allowedOrigins includes this page?";await new Promise((f,g)=>{if(!this.ws)return g(new Error("WebSocket not created"));let v=!1,y=S=>{v||(v=!0,clearTimeout(w),g(new Error(S)))},w=setTimeout(()=>y("WebSocket connection timed out."+u),1e4);this.ws.addEventListener("open",()=>{v||(v=!0,clearTimeout(w),f())},{once:!0}),this.ws.addEventListener("error",()=>{y("WebSocket connection failed to "+p+"."+u)},{once:!0}),this.ws.addEventListener("close",S=>{if(!S.wasClean&&!v){let O=S.code!==1006?` (code ${S.code})`:"";y("WebSocket connection failed"+O+"."+u)}},{once:!0})}),this.sendHeartbeat()}catch(o){throw this.ws=null,this.errorCallbacks.forEach(s=>s(o)),this.statusCallbacks.forEach(s=>s("error")),o}}setupWebSocketHandlers(){this.ws&&(this.ws.onopen=()=>{this.statusCallbacks.forEach(t=>t("connected"))},this.ws.onclose=()=>{this.statusCallbacks.forEach(t=>t("disconnected"))},this.ws.onerror=t=>{this.errorCallbacks.forEach(n=>n(new Error("WebSocket error"))),this.statusCallbacks.forEach(n=>n("error"))},this.ws.binaryType="arraybuffer",this.ws.onmessage=t=>{if(t.data instanceof ArrayBuffer){this.handleAudioChunk(new Uint8Array(t.data));return}try{let n=JSON.parse(t.data);this.handleWebSocketMessage(n)}catch{this.errorCallbacks.forEach(r=>r(new Error("Message parsing failed")))}})}handleWebSocketMessage(t){var n,r;switch(t.type){case"session_config":t.interruptionMode&&(this.interruptionMode=t.interruptionMode);break;case"voice_response":this.isProcessing=!1,this.resultCallbacks.forEach(o=>o({text:t.response.agentResponseText||t.response.transcript,transcript:t.response.transcript,audio:t.response.audio,confidence:.95,provider:"runtype"})),(n=t.response.audio)!=null&&n.base64?(this.isSpeaking=!0,this.statusCallbacks.forEach(o=>o("speaking")),this.playAudio(t.response.audio).catch(o=>this.errorCallbacks.forEach(s=>s(o instanceof Error?o:new Error(String(o)))))):(r=t.response.audio)!=null&&r.base64;break;case"audio_end":if(t.requestId&&t.requestId!==this.currentRequestId)break;this.playbackManager?this.playbackManager.markStreamEnd():(this.isSpeaking=!1,this.isProcessing=!1,this.statusCallbacks.forEach(o=>o("idle")));break;case"cancelled":this.isProcessing=!1;break;case"error":this.errorCallbacks.forEach(o=>o(new Error(t.error))),this.statusCallbacks.forEach(o=>o("error")),this.isProcessing=!1;break;case"pong":break}}handleAudioChunk(t){t.length!==0&&this.currentRequestId&&(this.playbackManager||(this.playbackManager=new bi(24e3),this.playbackManager.onFinished(()=>{this.isSpeaking=!1,this.playbackManager=null,this.vad.stop(),this.statusCallbacks.forEach(n=>n("idle"))})),this.isSpeaking||(this.isSpeaking=!0,this.statusCallbacks.forEach(n=>n("speaking")),this.startBargeInMonitoring().catch(()=>{})),this.playbackManager.enqueue(t))}stopPlayback(){!this.isProcessing&&!this.isSpeaking||(this.cancelCurrentPlayback(),this.statusCallbacks.forEach(t=>t("idle")))}cancelCurrentPlayback(){this.currentAudio&&(this.currentAudio.pause(),this.currentAudio.src="",this.currentAudio=null),this.currentAudioUrl&&(URL.revokeObjectURL(this.currentAudioUrl),this.currentAudioUrl=null),this.playbackManager&&(this.playbackManager.flush(),this.playbackManager=null),this.currentRequestId&&this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(JSON.stringify({type:"cancel",requestId:this.currentRequestId})),this.currentRequestId=null,this.isProcessing=!1,this.isSpeaking=!1}async startListening(){var t,n,r,o;try{if(this.isProcessing||this.isSpeaking)if(this.interruptionMode!=="none")this.cancelCurrentPlayback();else return;if(!this.mediaStream){let l=this.interruptionMode==="barge-in"?{audio:{echoCancellation:!0,noiseSuppression:!0}}:{audio:!0};this.mediaStream=await navigator.mediaDevices.getUserMedia(l)}let s=this.w;this.audioContext||(this.audioContext=new(s.AudioContext||s.webkitAudioContext));let a=this.audioContext,i=(n=(t=this.config)==null?void 0:t.pauseDuration)!=null?n:2e3,d=(o=(r=this.config)==null?void 0:r.silenceThreshold)!=null?o:.01;this.vad.start(a,this.mediaStream,"silence",{threshold:d,duration:i},()=>this.stopListening()),this.mediaRecorder=new MediaRecorder(this.mediaStream),this.audioChunks=[],this.mediaRecorder.ondataavailable=l=>{l.data.size>0&&this.audioChunks.push(l.data)},this.mediaRecorder.onstop=async()=>{var l;if(this.audioChunks.length>0){this.isProcessing=!0,this.statusCallbacks.forEach(f=>f("processing")),this.processingStartCallbacks.forEach(f=>f());let p=((l=this.mediaRecorder)==null?void 0:l.mimeType)||"audio/webm",u=new Blob(this.audioChunks,{type:p});await this.sendAudio(u),this.audioChunks=[]}},this.mediaRecorder.start(1e3),this.statusCallbacks.forEach(l=>l("listening"))}catch(s){throw this.errorCallbacks.forEach(a=>a(s)),this.statusCallbacks.forEach(a=>a("error")),s}}async stopListening(){this.vad.stop(),this.mediaRecorder&&(this.interruptionMode!=="barge-in"&&this.mediaRecorder.stream.getTracks().forEach(t=>t.stop()),this.mediaRecorder.stop(),this.mediaRecorder=null),this.interruptionMode!=="barge-in"&&(this.mediaStream&&(this.mediaStream.getTracks().forEach(t=>t.stop()),this.mediaStream=null),this.audioContext&&(await this.audioContext.close(),this.audioContext=null)),this.statusCallbacks.forEach(t=>t("idle"))}async startBargeInMonitoring(){var s,a;if(this.interruptionMode!=="barge-in")return;let t=this.w;if(!this.mediaStream&&t&&(this.mediaStream=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0}})),!this.audioContext&&t&&(this.audioContext=new(t.AudioContext||t.webkitAudioContext)),!this.audioContext||!this.mediaStream)return;let n=this.audioContext,r=(a=(s=this.config)==null?void 0:s.silenceThreshold)!=null?a:.01;this.vad.start(n,this.mediaStream,"speech",{threshold:r,duration:200},()=>this.handleBargeIn())}handleBargeIn(){this.cancelCurrentPlayback(),this.startListening().catch(t=>{this.errorCallbacks.forEach(n=>n(t instanceof Error?t:new Error(String(t))))})}generateRequestId(){return"vreq_"+Math.random().toString(36).substring(2,10)+Date.now().toString(36)}async sendAudio(t){var n;if(!this.ws||this.ws.readyState!==WebSocket.OPEN){this.errorCallbacks.forEach(r=>r(new Error("WebSocket not connected"))),this.statusCallbacks.forEach(r=>r("error"));return}try{let r=await this.blobToBase64(t),o=this.getFormatFromMimeType(t.type),s=this.generateRequestId();this.currentRequestId=s,this.ws.send(JSON.stringify({type:"audio_input",audio:r,format:o,sampleRate:16e3,voiceId:(n=this.config)==null?void 0:n.voiceId,requestId:s}))}catch(r){this.errorCallbacks.forEach(o=>o(r)),this.statusCallbacks.forEach(o=>o("error"))}}getFormatFromMimeType(t){return t.includes("wav")?"wav":t.includes("mpeg")||t.includes("mp3")?"mp3":"webm"}blobToBase64(t){return new Promise((n,r)=>{let o=new FileReader;o.onload=()=>{let a=o.result.split(",")[1];n(a)},o.onerror=r,o.readAsDataURL(t)})}async playAudio(t){if(!t.base64)return;let n=atob(t.base64),r=new Uint8Array(n.length);for(let l=0;l<n.length;l++)r[l]=n.charCodeAt(l);let o=t.format||"mp3",s=o==="mp3"?"audio/mpeg":`audio/${o}`,a=new Blob([r],{type:s}),i=URL.createObjectURL(a),d=new Audio(i);this.currentAudio=d,this.currentAudioUrl=i,d.onended=()=>{URL.revokeObjectURL(i),this.currentAudio===d&&(this.currentAudio=null,this.currentAudioUrl=null,this.isSpeaking=!1,this.statusCallbacks.forEach(l=>l("idle")))},await d.play()}onResult(t){this.resultCallbacks.push(t)}onError(t){this.errorCallbacks.push(t)}onStatusChange(t){this.statusCallbacks.push(t)}onProcessingStart(t){this.processingStartCallbacks.push(t)}async disconnect(){if(this.currentAudio&&(this.currentAudio.pause(),this.currentAudio.src="",this.currentAudio=null),this.currentAudioUrl&&(URL.revokeObjectURL(this.currentAudioUrl),this.currentAudioUrl=null),this.playbackManager&&(await this.playbackManager.destroy(),this.playbackManager=null),this.currentRequestId=null,this.isSpeaking=!1,this.vad.stop(),await this.stopListening(),this.mediaStream&&(this.mediaStream.getTracks().forEach(t=>t.stop()),this.mediaStream=null),this.audioContext&&(await this.audioContext.close(),this.audioContext=null),this.ws){try{this.ws.close()}catch{}this.ws=null}this.statusCallbacks.forEach(t=>t("disconnected"))}sendHeartbeat(){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(JSON.stringify({type:"ping"}))}};var Qo=class{constructor(t={}){this.config=t;this.type="browser";this.recognition=null;this.resultCallbacks=[];this.errorCallbacks=[];this.statusCallbacks=[];this.isListening=!1;this.w=typeof window!="undefined"?window:void 0}async connect(){this.statusCallbacks.forEach(t=>t("connected"))}async startListening(){var t,n;try{if(this.isListening)throw new Error("Already listening");if(!this.w)throw new Error("Window object not available");let r=this.w.SpeechRecognition||this.w.webkitSpeechRecognition;if(!r)throw new Error("Browser speech recognition not supported");this.recognition=new r,this.recognition.lang=((t=this.config)==null?void 0:t.language)||"en-US",this.recognition.continuous=((n=this.config)==null?void 0:n.continuous)||!1,this.recognition.interimResults=!0,this.recognition.onresult=o=>{var i;let s=Array.from(o.results).map(d=>d[0]).map(d=>d.transcript).join(""),a=o.results[o.results.length-1].isFinal;this.resultCallbacks.forEach(d=>d({text:s,confidence:a?.8:.5,provider:"browser"})),a&&!((i=this.config)!=null&&i.continuous)&&this.stopListening()},this.recognition.onerror=o=>{this.errorCallbacks.forEach(s=>s(new Error(o.error))),this.statusCallbacks.forEach(s=>s("error"))},this.recognition.onstart=()=>{this.isListening=!0,this.statusCallbacks.forEach(o=>o("listening"))},this.recognition.onend=()=>{this.isListening=!1,this.statusCallbacks.forEach(o=>o("idle"))},this.recognition.start()}catch(r){throw this.errorCallbacks.forEach(o=>o(r)),this.statusCallbacks.forEach(o=>o("error")),r}}async stopListening(){this.recognition&&(this.recognition.stop(),this.recognition=null),this.isListening=!1,this.statusCallbacks.forEach(t=>t("idle"))}onResult(t){this.resultCallbacks.push(t)}onError(t){this.errorCallbacks.push(t)}onStatusChange(t){this.statusCallbacks.push(t)}async disconnect(){await this.stopListening(),this.statusCallbacks.forEach(t=>t("disconnected"))}static isSupported(){return"SpeechRecognition"in window||"webkitSpeechRecognition"in window}};function Xo(e){switch(e.type){case"runtype":if(!e.runtype)throw new Error("Runtype voice provider requires configuration");return new ua(e.runtype);case"browser":if(!Qo.isSupported())throw new Error("Browser speech recognition not supported");return new Qo(e.browser||{});case"custom":throw new Error("Custom voice providers not yet implemented");default:throw new Error(`Unknown voice provider type: ${e.type}`)}}function xi(e){if((e==null?void 0:e.type)==="runtype"&&e.runtype)return Xo({type:"runtype",runtype:e.runtype});if(Qo.isSupported())return Xo({type:"browser",browser:(e==null?void 0:e.browser)||{language:"en-US"}});throw new Error("No supported voice providers available")}function ma(e){try{return xi(e),!0}catch{return!1}}var gh=["apiUrl","clientToken","flowId","agent","agentOptions","headers","getHeaders","webmcp","streamParser","parserType","contextProviders","requestMiddleware","customFetch","parseSSEEvent","onSessionInit","onSessionExpired","getStoredSessionId","setStoredSessionId"];function fh(e,t){return gh.some(n=>e[n]!==t[n])}function vm(e,t){let n=e instanceof Error?e:new Error(String(e));if(typeof t=="string")return t;if(typeof t=="function")return t(n);let r="Sorry \u2014 I couldn't reach the assistant. The chat service didn't respond. Please check that your proxy or backend is running and reachable, then try again.";return n.message?`${r}
@@ -120,7 +120,7 @@ ${a.join(`
120
120
  ${a.join(`
121
121
  `)}`)}return r.join(`
122
122
 
123
- `)}var Ug="3.34.0";var os=Ug;function jg(){return{name:"@persona/accessibility",version:"1.0.0",transform(e){return{...e,semantic:{...e.semantic,colors:{...e.semantic.colors,interactive:{...e.semantic.colors.interactive,focus:"palette.colors.primary.700",disabled:"palette.colors.gray.300"}}}}},cssVariables:{"--persona-accessibility-focus-ring":"0 0 0 2px var(--persona-semantic-colors-surface, #fff), 0 0 0 4px var(--persona-semantic-colors-interactive-focus, #0f0f0f)"}}}function qg(){return{name:"@persona/animations",version:"1.0.0",transform(e){return{...e,palette:{...e.palette,transitions:{fast:"150ms",normal:"200ms",slow:"300ms",bounce:"500ms cubic-bezier(0.68, -0.55, 0.265, 1.55)"},easings:{easeIn:"cubic-bezier(0.4, 0, 1, 1)",easeOut:"cubic-bezier(0, 0, 0.2, 1)",easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)"}}}},cssVariables:{"--persona-transition-fast":"150ms ease","--persona-transition-normal":"200ms ease","--persona-transition-slow":"300ms ease"}}}function zg(e){return{name:"@persona/brand",version:"1.0.0",transform(t){var r;let n={...t.palette};return(r=e.colors)!=null&&r.primary&&(n.colors={...n.colors,primary:{50:Or(e.colors.primary,.95),100:Or(e.colors.primary,.9),200:Or(e.colors.primary,.8),300:Or(e.colors.primary,.7),400:Or(e.colors.primary,.6),500:e.colors.primary,600:Or(e.colors.primary,.8),700:Or(e.colors.primary,.7),800:Or(e.colors.primary,.6),900:Or(e.colors.primary,.5),950:Or(e.colors.primary,.45)}}),{...t,palette:n}}}}function Vg(){return{name:"@persona/reduced-motion",version:"1.0.0",transform(e){return{...e,palette:{...e.palette,transitions:{fast:"0ms",normal:"0ms",slow:"0ms",bounce:"0ms"}}}},afterResolve(e){return{...e,"--persona-transition-fast":"0ms","--persona-transition-normal":"0ms","--persona-transition-slow":"0ms"}}}}function Kg(){return{name:"@persona/high-contrast",version:"1.0.0",transform(e){return{...e,semantic:{...e.semantic,colors:{...e.semantic.colors,text:"palette.colors.gray.950",textMuted:"palette.colors.gray.700",border:"palette.colors.gray.900",divider:"palette.colors.gray.900"}}}}}}function Or(e,t){let n=parseInt(e.slice(1,3),16),r=parseInt(e.slice(3,5),16),o=parseInt(e.slice(5,7),16),s=Math.round(n+(255-n)*(1-t)),a=Math.round(r+(255-r)*(1-t)),i=Math.round(o+(255-o)*(1-t));return`#${s.toString(16).padStart(2,"0")}${a.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`}function Gg(e){return{name:e.name,version:e.version,transform:e.transform||(t=>t),cssVariables:e.cssVariables,afterResolve:e.afterResolve}}var wy={palette:{colors:{primary:{500:"#111827"},accent:{600:"#1d4ed8"},gray:{50:"#ffffff",100:"#f8fafc",200:"#f1f5f9",500:"#6b7280",900:"#000000"}},radius:{sm:"0.75rem",md:"1rem",lg:"1.5rem",launcher:"9999px",button:"9999px"}},semantic:{colors:{primary:"palette.colors.primary.500",textInverse:"palette.colors.gray.50"}}},Jg={components:{panel:{borderRadius:"0",shadow:"none"}}},fc={id:"shop",label:"Shopping Assistant",config:{theme:wy,launcher:{title:"Shopping Assistant",subtitle:"Here to help you find what you need",agentIconText:"\u{1F6CD}\uFE0F",position:"bottom-right",width:nr},copy:{welcomeTitle:"Welcome to our shop!",welcomeSubtitle:"I can help you find products and answer questions",inputPlaceholder:"Ask me anything...",sendButtonLabel:"Send"},suggestionChips:["What can you help me with?","Tell me about your features","How does this work?"]}},hc={id:"minimal",label:"Minimal",config:{launcher:{enabled:!1,fullHeight:!0},layout:{header:{layout:"minimal",showCloseButton:!1},messages:{layout:"minimal"}},theme:Jg}},bc={id:"fullscreen",label:"Fullscreen Assistant",config:{launcher:{enabled:!1,fullHeight:!0},layout:{header:{layout:"minimal",showCloseButton:!1},contentMaxWidth:"72ch"},theme:Jg}},yc={shop:fc,minimal:hc,fullscreen:bc};function Qg(e){return yc[e]}var Xg=cc;function no(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(t=>t.toString()).join(", ")}]`:e.toString()}function Cy(e){if(e)return{getHeaders:no(e.getHeaders),onFeedback:no(e.onFeedback),onCopy:no(e.onCopy),requestMiddleware:no(e.requestMiddleware),actionHandlers:no(e.actionHandlers),actionParsers:no(e.actionParsers),postprocessMessage:no(e.postprocessMessage),contextProviders:no(e.contextProviders),streamParser:no(e.streamParser)}}var Yg=`({ text, message }: any) => {
123
+ `)}var Ug="3.34.1";var os=Ug;function jg(){return{name:"@persona/accessibility",version:"1.0.0",transform(e){return{...e,semantic:{...e.semantic,colors:{...e.semantic.colors,interactive:{...e.semantic.colors.interactive,focus:"palette.colors.primary.700",disabled:"palette.colors.gray.300"}}}}},cssVariables:{"--persona-accessibility-focus-ring":"0 0 0 2px var(--persona-semantic-colors-surface, #fff), 0 0 0 4px var(--persona-semantic-colors-interactive-focus, #0f0f0f)"}}}function qg(){return{name:"@persona/animations",version:"1.0.0",transform(e){return{...e,palette:{...e.palette,transitions:{fast:"150ms",normal:"200ms",slow:"300ms",bounce:"500ms cubic-bezier(0.68, -0.55, 0.265, 1.55)"},easings:{easeIn:"cubic-bezier(0.4, 0, 1, 1)",easeOut:"cubic-bezier(0, 0, 0.2, 1)",easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)"}}}},cssVariables:{"--persona-transition-fast":"150ms ease","--persona-transition-normal":"200ms ease","--persona-transition-slow":"300ms ease"}}}function zg(e){return{name:"@persona/brand",version:"1.0.0",transform(t){var r;let n={...t.palette};return(r=e.colors)!=null&&r.primary&&(n.colors={...n.colors,primary:{50:Or(e.colors.primary,.95),100:Or(e.colors.primary,.9),200:Or(e.colors.primary,.8),300:Or(e.colors.primary,.7),400:Or(e.colors.primary,.6),500:e.colors.primary,600:Or(e.colors.primary,.8),700:Or(e.colors.primary,.7),800:Or(e.colors.primary,.6),900:Or(e.colors.primary,.5),950:Or(e.colors.primary,.45)}}),{...t,palette:n}}}}function Vg(){return{name:"@persona/reduced-motion",version:"1.0.0",transform(e){return{...e,palette:{...e.palette,transitions:{fast:"0ms",normal:"0ms",slow:"0ms",bounce:"0ms"}}}},afterResolve(e){return{...e,"--persona-transition-fast":"0ms","--persona-transition-normal":"0ms","--persona-transition-slow":"0ms"}}}}function Kg(){return{name:"@persona/high-contrast",version:"1.0.0",transform(e){return{...e,semantic:{...e.semantic,colors:{...e.semantic.colors,text:"palette.colors.gray.950",textMuted:"palette.colors.gray.700",border:"palette.colors.gray.900",divider:"palette.colors.gray.900"}}}}}}function Or(e,t){let n=parseInt(e.slice(1,3),16),r=parseInt(e.slice(3,5),16),o=parseInt(e.slice(5,7),16),s=Math.round(n+(255-n)*(1-t)),a=Math.round(r+(255-r)*(1-t)),i=Math.round(o+(255-o)*(1-t));return`#${s.toString(16).padStart(2,"0")}${a.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`}function Gg(e){return{name:e.name,version:e.version,transform:e.transform||(t=>t),cssVariables:e.cssVariables,afterResolve:e.afterResolve}}var wy={palette:{colors:{primary:{500:"#111827"},accent:{600:"#1d4ed8"},gray:{50:"#ffffff",100:"#f8fafc",200:"#f1f5f9",500:"#6b7280",900:"#000000"}},radius:{sm:"0.75rem",md:"1rem",lg:"1.5rem",launcher:"9999px",button:"9999px"}},semantic:{colors:{primary:"palette.colors.primary.500",textInverse:"palette.colors.gray.50"}}},Jg={components:{panel:{borderRadius:"0",shadow:"none"}}},fc={id:"shop",label:"Shopping Assistant",config:{theme:wy,launcher:{title:"Shopping Assistant",subtitle:"Here to help you find what you need",agentIconText:"\u{1F6CD}\uFE0F",position:"bottom-right",width:nr},copy:{welcomeTitle:"Welcome to our shop!",welcomeSubtitle:"I can help you find products and answer questions",inputPlaceholder:"Ask me anything...",sendButtonLabel:"Send"},suggestionChips:["What can you help me with?","Tell me about your features","How does this work?"]}},hc={id:"minimal",label:"Minimal",config:{launcher:{enabled:!1,fullHeight:!0},layout:{header:{layout:"minimal",showCloseButton:!1},messages:{layout:"minimal"}},theme:Jg}},bc={id:"fullscreen",label:"Fullscreen Assistant",config:{launcher:{enabled:!1,fullHeight:!0},layout:{header:{layout:"minimal",showCloseButton:!1},contentMaxWidth:"72ch"},theme:Jg}},yc={shop:fc,minimal:hc,fullscreen:bc};function Qg(e){return yc[e]}var Xg=cc;function no(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(t=>t.toString()).join(", ")}]`:e.toString()}function Cy(e){if(e)return{getHeaders:no(e.getHeaders),onFeedback:no(e.onFeedback),onCopy:no(e.onCopy),requestMiddleware:no(e.requestMiddleware),actionHandlers:no(e.actionHandlers),actionParsers:no(e.actionParsers),postprocessMessage:no(e.postprocessMessage),contextProviders:no(e.contextProviders),streamParser:no(e.streamParser)}}var Yg=`({ text, message }: any) => {
124
124
  const jsonSource = (message as any).rawContent || text || message.content;
125
125
  if (!jsonSource || typeof jsonSource !== 'string') return null;
126
126
  let cleanJson = jsonSource