@runtypelabs/persona 4.20.0 → 4.21.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.
Files changed (52) hide show
  1. package/dist/animations/glyph-cycle.d.cts +1 -1
  2. package/dist/animations/glyph-cycle.d.ts +1 -1
  3. package/dist/animations/{types-CG-bLFmk.d.cts → types-B_JdVK9o.d.cts} +2 -0
  4. package/dist/animations/{types-CG-bLFmk.d.ts → types-B_JdVK9o.d.ts} +2 -0
  5. package/dist/animations/wipe.d.cts +1 -1
  6. package/dist/animations/wipe.d.ts +1 -1
  7. package/dist/animations-extra.d.cts +2 -0
  8. package/dist/animations-extra.d.ts +2 -0
  9. package/dist/approval-ui.d.cts +22 -0
  10. package/dist/approval-ui.d.ts +22 -0
  11. package/dist/artifacts-ui.d.cts +22 -0
  12. package/dist/artifacts-ui.d.ts +22 -0
  13. package/dist/codegen.cjs +1 -1
  14. package/dist/codegen.js +1 -1
  15. package/dist/context-mentions.d.cts +22 -0
  16. package/dist/context-mentions.d.ts +22 -0
  17. package/dist/event-stream-view.d.cts +22 -0
  18. package/dist/event-stream-view.d.ts +22 -0
  19. package/dist/forms-ui.d.cts +46 -4
  20. package/dist/forms-ui.d.ts +46 -4
  21. package/dist/history-view.d.cts +2 -0
  22. package/dist/history-view.d.ts +2 -0
  23. package/dist/index.cjs +63 -63
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +50 -4
  26. package/dist/index.d.ts +50 -4
  27. package/dist/index.global.js +48 -48
  28. package/dist/index.global.js.map +1 -1
  29. package/dist/index.js +63 -63
  30. package/dist/index.js.map +1 -1
  31. package/dist/session-reconnect.d.cts +22 -0
  32. package/dist/session-reconnect.d.ts +22 -0
  33. package/dist/smart-dom-reader.d.cts +22 -0
  34. package/dist/smart-dom-reader.d.ts +22 -0
  35. package/dist/theme-editor-preview.cjs +65 -65
  36. package/dist/theme-editor-preview.d.cts +22 -0
  37. package/dist/theme-editor-preview.d.ts +22 -0
  38. package/dist/theme-editor-preview.js +43 -43
  39. package/dist/theme-editor.d.cts +22 -0
  40. package/dist/theme-editor.d.ts +22 -0
  41. package/dist/webmcp-runtime.d.cts +16 -0
  42. package/dist/webmcp-runtime.d.ts +16 -0
  43. package/package.json +1 -1
  44. package/src/client-visitor-history.test.ts +473 -3
  45. package/src/client.test.ts +141 -3
  46. package/src/client.ts +157 -39
  47. package/src/generated/runtype-openapi-contract.ts +2 -0
  48. package/src/session.ts +139 -103
  49. package/src/session.webmcp.test.ts +48 -1
  50. package/src/types.ts +30 -0
  51. package/src/ui.history-lifecycle.test.ts +2 -2
  52. package/src/ui.ts +95 -7
package/dist/index.cjs CHANGED
@@ -1,31 +1,31 @@
1
- "use strict";var rE=Object.create;var sd=Object.defineProperty;var sE=Object.getOwnPropertyDescriptor;var iE=Object.getOwnPropertyNames;var aE=Object.getPrototypeOf,lE=Object.prototype.hasOwnProperty;var nl=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ig=(e,t)=>{for(var n in t)sd(e,n,{get:t[n],enumerable:!0})},kb=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of iE(t))!lE.call(e,r)&&r!==n&&sd(e,r,{get:()=>t[r],enumerable:!(o=sE(t,r))||o.enumerable});return e};var yn=(e,t,n)=>(n=e!=null?rE(aE(e)):{},kb(t||!e||!e.__esModule?sd(n,"default",{value:e,enumerable:!0}):n,e)),cE=e=>kb(sd({},"__esModule",{value:!0}),e);var Rb={};Ig(Rb,{DOMPurify:()=>Ib.default,Marked:()=>Lb.Marked});var Lb,Ib,Hb=nl(()=>{"use strict";Lb=require("marked"),Ib=yn(require("dompurify"),1)});var qi,rm=nl(()=>{"use strict";qi=class{constructor(t=24e3,n={}){this.ctx=null;this.nextStartTime=0;this.activeSources=[];this.finishedCallbacks=[];this.startedCallbacks=[];this.playing=!1;this.streamEnded=!1;this.pendingCount=0;this.started=!1;this.userPaused=!1;this.pendingBuffers=[];this.pendingSamples=0;this.remainder=null;this.sampleRate=t;let o=Math.max(0,n.prebufferMs??0);this.waterlineSamples=Math.round(t*o/1e3),this.buffering=this.waterlineSamples>0}ensureContext(){if(!this.ctx){let n=typeof window<"u"?window:void 0;if(!n)throw new Error("AudioPlaybackManager requires a browser environment");let o=n.AudioContext||n.webkitAudioContext;this.ctx=new o({sampleRate:this.sampleRate})}let t=this.ctx;return t.state==="suspended"&&!this.userPaused&&t.resume(),t}enqueue(t){if(t.length===0)return;let n=t;if(this.remainder){let r=new Uint8Array(this.remainder.length+t.length);r.set(this.remainder),r.set(t,this.remainder.length),n=r,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 o=this.pcmToFloat32(n);o.length!==0&&(this.buffering?(this.pendingBuffers.push(o),this.pendingSamples+=o.length,this.pendingSamples>=this.waterlineSamples&&this.releaseBuffer()):this.scheduleSamples(o))}markStreamEnd(){this.pendingBuffers.length>0&&this.releaseBuffer(),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.startedCallbacks=[],this.remainder=null,this.pendingBuffers=[],this.pendingSamples=0,this.buffering=this.waterlineSamples>0,this.started=!1}isPlaying(){return this.playing}onFinished(t){this.finishedCallbacks.push(t)}onStarted(t){this.startedCallbacks.push(t)}pause(){this.userPaused=!0,this.ctx&&this.ctx.state==="running"&&this.ctx.suspend()}resume(){this.userPaused=!1,this.ctx&&this.ctx.state==="suspended"&&this.ctx.resume()}async destroy(){this.flush(),this.ctx&&(await this.ctx.close(),this.ctx=null)}releaseBuffer(){this.buffering=!1;let t=this.pendingBuffers;this.pendingBuffers=[],this.pendingSamples=0;for(let n of t)this.scheduleSamples(n)}scheduleSamples(t){if(t.length===0)return;let n=this.ensureContext(),o=n.createBuffer(1,t.length,this.sampleRate);o.getChannelData(0).set(t);let r=n.createBufferSource();r.buffer=o,r.connect(n.destination);let s=n.currentTime;if(this.nextStartTime===0?this.nextStartTime=s:this.nextStartTime<s&&(this.nextStartTime=s,this.waterlineSamples>0&&(this.buffering=!0)),r.start(this.nextStartTime),this.nextStartTime+=o.duration,this.activeSources.push(r),this.pendingCount++,this.playing=!0,!this.started){this.started=!0;let a=this.startedCallbacks.slice();this.startedCallbacks=[];for(let l of a)l()}r.onended=()=>{let a=this.activeSources.indexOf(r);a!==-1&&this.activeSources.splice(a,1),this.pendingCount--,this.checkFinished()}}checkFinished(){if(this.streamEnded&&this.pendingCount<=0&&this.pendingBuffers.length===0){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),o=new Float32Array(n),r=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let s=0;s<n;s++){let a=r.getInt16(s*2,!0);o[s]=a/32768}return o}}});function bT(e){return e.replace(/\/+$/,"")}async function vT(e){try{let t=await e.json();return t.detail?`${t.error??`Runtype TTS ${e.status}`}: ${t.detail}`:t.error??`Runtype TTS request failed (${e.status})`}catch{return`Runtype TTS request failed (${e.status})`}}var Rd,nC=nl(()=>{"use strict";rm();Rd=class{constructor(t){this.opts=t;this.id="runtype-tts";this.supportsPause=!0;this.player=null;this.playerPromise=null;this.generation=0}ensurePlayer(){return this.playerPromise??(this.playerPromise=Promise.resolve(this.opts.createPlaybackEngine?this.opts.createPlaybackEngine():new qi(24e3,{prebufferMs:this.opts.prebufferMs??200})).then(t=>this.player=t))}speak(t,n){let o=++this.generation;this.run(o,t,n)}async run(t,n,o){try{let r=await this.ensurePlayer();if(t!==this.generation)return;r.flush(),r.resume(),r.onStarted(()=>{t===this.generation&&o.onStart?.()}),r.onFinished(()=>{t===this.generation&&o.onEnd?.()});let s=`${bT(this.opts.host)}/v1/agents/${encodeURIComponent(this.opts.agentId)}/speak`,a=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.opts.clientToken}`},body:JSON.stringify({text:n.text,voice:n.voice??this.opts.voice,format:"pcm"})});if(t!==this.generation)return;if(!a.ok||!a.body)throw new Error(await vT(a));let l=a.body.getReader();for(;;){let{done:d,value:p}=await l.read();if(t!==this.generation){await l.cancel().catch(()=>{});return}if(d)break;p&&p.byteLength>0&&r.enqueue(p)}r.markStreamEnd()}catch(r){if(t!==this.generation)return;let s=r instanceof Error?r:new Error(String(r));this.opts.onError?.(s),o.onError?.(s)}}pause(){this.player?.pause()}resume(){this.player?.resume()}stop(){this.generation++,this.player?.flush()}destroy(){this.generation++,this.player?.destroy(),this.player=null,this.playerPromise=null}}});var Hd,oC=nl(()=>{"use strict";Hd=class{constructor(t,n,o={}){this.primary=t;this.fallback=n;this.options=o;this.id="fallback";this.active=t}get supportsPause(){return this.active.supportsPause}speak(t,n){this.active=this.primary;let o=!1;this.primary.speak(t,{onStart:()=>{o=!0,n.onStart?.()},onEnd:()=>n.onEnd?.(),onError:r=>{if(o){n.onError?.(r);return}this.options.onFallback?.(r),this.active=this.fallback,this.fallback.speak(t,n)}})}pause(){this.active.pause()}resume(){this.active.resume()}stop(){this.active.stop()}destroy(){this.primary.destroy?.(),this.fallback.destroy?.()}}});var rC={};Ig(rC,{FallbackSpeechEngine:()=>Hd,RuntypeSpeechEngine:()=>Rd});var sC=nl(()=>{"use strict";nC();oC()});var O0={};Ig(O0,{ASK_USER_QUESTION_CLIENT_TOOL:()=>Yg,ASK_USER_QUESTION_PARAMETERS_SCHEMA:()=>Qg,ASK_USER_QUESTION_TOOL_NAME:()=>ll,AgentWidgetClient:()=>js,AgentWidgetSession:()=>zi,AttachmentManager:()=>zs,BrowserSpeechEngine:()=>Qr,DEFAULT_COMPONENTS:()=>km,DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH:()=>_d,DEFAULT_FLOATING_LAUNCHER_WIDTH:()=>Gn,DEFAULT_PALETTE:()=>Tm,DEFAULT_SEMANTIC:()=>Pm,DEFAULT_WIDGET_CONFIG:()=>st,HistoryProviderError:()=>lo,PRESETS:()=>Uf,PRESET_FULLSCREEN:()=>$f,PRESET_MINIMAL:()=>Ff,PRESET_SHOP:()=>Nf,ReadAloudController:()=>qs,SUGGEST_REPLIES_CLIENT_TOOL:()=>hd,SUGGEST_REPLIES_PARAMETERS_SCHEMA:()=>Kg,SUGGEST_REPLIES_TOOL_NAME:()=>$o,THEME_ZONES:()=>dw,VERSION:()=>Uo,WEBMCP_TOOL_PREFIX:()=>sl,WebMcpBridge:()=>Xp,accessibilityPlugin:()=>gS,animationsPlugin:()=>mS,applyFeaturePreferences:()=>Cf,applyThemeVariables:()=>Vs,attachHeaderToContainer:()=>Qs,brandPlugin:()=>fS,buildComposer:()=>Xs,buildDefaultHeader:()=>qm,buildHeader:()=>fr,buildHeaderWithLayout:()=>Zi,buildMinimalHeader:()=>zm,builtInClientToolsForDispatch:()=>Fi,canonicalArtifactDisplayMode:()=>Hn,collectEnrichedPageContext:()=>lS,componentRegistry:()=>xo,createActionManager:()=>Fl,createAgentExperience:()=>Np,createAskUserQuestionBubble:()=>wv,createBestAvailableVoiceProvider:()=>Gp,createBubbleWithLayout:()=>Gw,createCSATFeedback:()=>Bp,createComboButton:()=>pp,createComponentMiddleware:()=>Ux,createComponentStreamParser:()=>Hp,createDefaultSanitizer:()=>_g,createDemoCarousel:()=>RS,createDirectivePostprocessor:()=>zb,createDropdownMenu:()=>Ys,createFlexibleJsonStreamParser:()=>Ev,createIconButton:()=>Bn,createImagePart:()=>Pd,createJsonStreamParser:()=>Md,createLabelButton:()=>jm,createLocalStorageAdapter:()=>Ip,createMarkdownProcessor:()=>ol,createMarkdownProcessorFromConfig:()=>rl,createMessageActions:()=>Xm,createNPSFeedback:()=>_p,createPlainTextParser:()=>Sd,createPlugin:()=>bS,createRegexJsonParser:()=>Ad,createRovingTablist:()=>DS,createSlashCommandsSource:()=>_S,createSplitButton:()=>Fw,createStandardBubble:()=>ea,createStaticMentionSource:()=>BS,createTextPart:()=>ao,createTheme:()=>vl,createThemeObserver:()=>Yi,createToggleGroup:()=>Hl,createTypingIndicator:()=>Js,createVoiceProvider:()=>pa,createWidgetHostLayout:()=>Ul,createXmlParser:()=>Ed,default:()=>uS,defaultActionHandlers:()=>ti,defaultJsonActionParser:()=>Nl,defaultMentionFilter:()=>Jp,defaultParseRules:()=>_f,detectColorScheme:()=>Cl,directivePostprocessor:()=>Vb,ensureAskUserQuestionSheet:()=>Ni,escapeHtml:()=>dr,extractComponentDirectiveFromMessage:()=>Op,fileToImagePart:()=>Lv,formatEnrichedContext:()=>cS,generateAssistantMessageId:()=>jr,generateCodeSnippet:()=>AS,generateMessageId:()=>av,generateStableSelector:()=>Df,generateUserMessageId:()=>Bi,getActiveTheme:()=>Xr,getColorScheme:()=>tp,getDisplayText:()=>Td,getHeaderLayout:()=>Vm,getImageParts:()=>kv,getPreset:()=>pS,hasComponentDirective:()=>$l,hasImages:()=>Ui,headerLayouts:()=>up,highContrastPlugin:()=>yS,initAgentWidget:()=>Hf,isAskUserQuestionMessage:()=>pr,isComponentDirectiveType:()=>$x,isDockedMountMode:()=>Mt,isHistoryProviderError:()=>Zv,isSuggestRepliesMessage:()=>Us,isVoiceSupported:()=>Vf,isWebMcpToolName:()=>$r,isWelcomeVisible:()=>ts,latestAgentSuggestions:()=>yd,listRegisteredStreamAnimations:()=>Ww,loadMarkdownParsers:()=>ad,markdownPostprocessor:()=>Bg,mergeWithDefaults:()=>Gi,normalizeContent:()=>Pv,normalizeMediaType:()=>Ur,onMarkdownParsersReady:()=>Ri,parseAskUserQuestionPayload:()=>ur,parseSuggestRepliesPayload:()=>Gg,parseWidgetPreferenceSlice:()=>vf,pickBestVoice:()=>ji,pluginRegistry:()=>Dl,reducedMotionPlugin:()=>hS,registerIcons:()=>Fb,registerStreamAnimationPlugin:()=>Ml,removeAskUserQuestionSheet:()=>Vr,renderComponentDirective:()=>Wp,renderLoadingIndicatorWithFallback:()=>Ym,renderLucideIcon:()=>ge,resolveArtifactDisplay:()=>$g,resolveArtifactDisplayMode:()=>Fo,resolveConfigPreferences:()=>_l,resolveDockConfig:()=>On,resolveSanitizer:()=>dd,resolveTokens:()=>Zd,resolveWelcomeConfig:()=>wo,stripWebMcpPrefix:()=>Fg,themeToCssVariables:()=>ep,unregisterStreamAnimationPlugin:()=>Hw,validateImageFile:()=>Iv,validateTheme:()=>Lm});module.exports=cE(O0);var Bb=require("marked"),_b=yn(require("dompurify"),1);var bt=e=>{let{fallbackImport:t,resetOnSetLoader:n=!1}=e,o=null,r=null,s=null;return{setLoader:u=>{o=u,n&&(r=null,s=null)},load:()=>r?Promise.resolve(r):s||(s=(o??t)().then(m=>(r=m,m)).catch(m=>{throw s=null,m}),s),provide:u=>{r=u},getSync:()=>r}};var{setLoader:q0,load:dE,provide:pE,getSync:Rg}=bt({fallbackImport:()=>Promise.resolve().then(()=>(Hb(),Rb))}),id=new Set,Wb=()=>{let e=[...id];id.clear();for(let t of e)try{t()}catch{}};var ad=()=>{let e=Rg();return e?Promise.resolve(e):dE().then(t=>(Wb(),t))},Ri=e=>Rg()?()=>{}:(id.add(e),()=>{id.delete(e)}),Ob=e=>{pE(e),Wb()},No=Rg;Ob({Marked:Bb.Marked,DOMPurify:_b.default});var G=require("lucide"),Db={user:G.User,mail:G.Mail,phone:G.Phone,calendar:G.Calendar,clock:G.Clock,building:G.Building,"map-pin":G.MapPin,lock:G.Lock,key:G.Key,"credit-card":G.CreditCard,hash:G.Hash,globe:G.Globe,link:G.Link,"circle-check":G.CircleCheck,"circle-x":G.CircleX,"triangle-alert":G.TriangleAlert,info:G.Info,ban:G.Ban,shield:G.Shield,house:G.House,"pen-line":G.PenLine,save:G.Save,share:G.Share,funnel:G.Funnel,settings:G.Settings,"rotate-cw":G.RotateCw,"shopping-cart":G.ShoppingCart,"shopping-bag":G.ShoppingBag,package:G.Package,truck:G.Truck,tag:G.Tag,gift:G.Gift,receipt:G.Receipt,wallet:G.Wallet,store:G.Store,"dollar-sign":G.DollarSign,percent:G.Percent,play:G.Play,pause:G.Pause,"volume-x":G.VolumeX,camera:G.Camera,image:G.Image,film:G.Film,headphones:G.Headphones,"message-circle":G.MessageCircle,bell:G.Bell,heart:G.Heart,"eye-off":G.EyeOff,bookmark:G.Bookmark,"calendar-days":G.CalendarDays,timer:G.Timer,folder:G.Folder,"folder-open":G.FolderOpen,files:G.Files,"chart-column":G.ChartColumn,sparkles:G.Sparkles,zap:G.Zap,sun:G.Sun,moon:G.Moon,flag:G.Flag,lightbulb:G.Lightbulb,monitor:G.Monitor,smartphone:G.Smartphone};var Ot=(e,t=24,n="currentColor",o=2)=>{if(!Array.isArray(e))return null;let r=document.createElementNS("http://www.w3.org/2000/svg","svg");return r.setAttribute("width",String(t)),r.setAttribute("height",String(t)),r.setAttribute("viewBox","0 0 24 24"),r.setAttribute("fill","none"),r.setAttribute("stroke",n),r.setAttribute("stroke-width",String(o)),r.setAttribute("stroke-linecap","round"),r.setAttribute("stroke-linejoin","round"),r.setAttribute("aria-hidden","true"),e.forEach(s=>{if(!Array.isArray(s)||s.length<2)return;let a=s[0],l=s[1];if(!l)return;let d=document.createElementNS("http://www.w3.org/2000/svg",a);Object.entries(l).forEach(([p,u])=>{p!=="stroke"&&d.setAttribute(p,String(u))}),r.appendChild(d)}),r};var{setLoader:Y0,load:uE}=bt({fallbackImport:()=>import("@runtypelabs/persona/icons-extra")});var ld=uE;var ne=require("lucide"),gE={activity:ne.Activity,"arrow-down":ne.ArrowDown,"arrow-up":ne.ArrowUp,"arrow-up-right":ne.ArrowUpRight,bot:ne.Bot,"chevron-down":ne.ChevronDown,"chevron-up":ne.ChevronUp,"chevron-right":ne.ChevronRight,"chevron-left":ne.ChevronLeft,check:ne.Check,clipboard:ne.Clipboard,"clipboard-copy":ne.ClipboardCopy,"code-xml":ne.CodeXml,copy:ne.Copy,file:ne.File,"file-code":ne.FileCode,"file-spreadsheet":ne.FileSpreadsheet,"file-text":ne.FileText,"image-plus":ne.ImagePlus,loader:ne.Loader,"loader-circle":ne.LoaderCircle,mic:ne.Mic,paperclip:ne.Paperclip,quote:ne.Quote,"refresh-cw":ne.RefreshCw,search:ne.Search,send:ne.Send,"shield-alert":ne.ShieldAlert,"shield-check":ne.ShieldCheck,"shield-x":ne.ShieldX,square:ne.Square,"thumbs-down":ne.ThumbsDown,"thumbs-up":ne.ThumbsUp,upload:ne.Upload,"volume-2":ne.Volume2,x:ne.X,"at-sign":ne.AtSign,"arrow-left":ne.ArrowLeft,"arrow-right":ne.ArrowRight,"external-link":ne.ExternalLink,ellipsis:ne.Ellipsis,"ellipsis-vertical":ne.EllipsisVertical,menu:ne.Menu,"panel-left":ne.PanelLeft,plus:ne.Plus,minus:ne.Minus,pencil:ne.Pencil,trash:ne.Trash,"trash-2":ne.Trash2,download:ne.Download,maximize:ne.Maximize,minimize:ne.Minimize,"message-square":ne.MessageSquare,star:ne.Star,eye:ne.Eye,history:ne.History},mE=["user","mail","phone","calendar","clock","building","map-pin","lock","key","credit-card","hash","globe","link","circle-check","circle-x","triangle-alert","info","ban","shield","house","pen-line","save","share","funnel","settings","rotate-cw","shopping-cart","shopping-bag","package","truck","tag","gift","receipt","wallet","store","dollar-sign","percent","play","pause","volume-x","camera","image","film","headphones","message-circle","bell","heart","eye-off","bookmark","calendar-days","timer","folder","folder-open","files","chart-column","sparkles","zap","sun","moon","flag","lightbulb","monitor","smartphone"],Fs=new Map(Object.entries(gE)),Hi=new Set,Wi=!1,cd=new Set,Wg=e=>{let t=[...cd];e&&cd.clear();for(let n of t)try{n()}catch{}},Nb=e=>Wi?()=>{}:(cd.add(e),()=>{cd.delete(e)}),Og=()=>{let e=0;for(let t of[...Hi]){let n=Fs.get(t.name);if(!n)continue;Hi.delete(t),e++;let o=Ot(n,t.size,t.color,t.strokeWidth);if(o)for(t.el.removeAttribute("data-persona-icon-pending");o.firstChild;)t.el.appendChild(o.firstChild)}return e},Fb=e=>{for(let[t,n]of Object.entries(e))Fs.set(t,n);Og()>0&&!Wi&&Wg(!1)},$b=e=>{if(!Wi){for(let[t,n]of Object.entries(e))Fs.has(t)||Fs.set(t,n);Wi=!0,Og(),Wg(!0)}},Hg=!1,fE=()=>{ld().then(e=>{if(!Wi){for(let[t,n]of Object.entries(e.EXTRA_LUCIDE_ICONS))Fs.has(t)||Fs.set(t,n);Wi=!0,Og(),Wg(!0)}}).catch(e=>{Hg=!0,console.warn("[Persona] Failed to load the icons-extra chunk",e)})},hE=(e,t,n)=>{let o=document.createElementNS("http://www.w3.org/2000/svg","svg");return o.setAttribute("width",String(e)),o.setAttribute("height",String(e)),o.setAttribute("viewBox","0 0 24 24"),o.setAttribute("fill","none"),o.setAttribute("stroke",t),o.setAttribute("stroke-width",String(n)),o.setAttribute("stroke-linecap","round"),o.setAttribute("stroke-linejoin","round"),o.setAttribute("aria-hidden","true"),o.setAttribute("data-persona-icon-pending","true"),o},ge=(e,t=24,n="currentColor",o=2)=>{let r=Fs.get(e);if(r)return Ot(r,t,n,o);if(mE.includes(e)){Hg&&(Hg=!1);let s=hE(t,n,o);if(Hi.size>=500){let a=Hi.values().next().value;a&&Hi.delete(a)}return Hi.add({el:s,name:e,size:t,color:n,strokeWidth:o}),fE(),s}return console.warn(`Lucide icon "${e}" is not in the Persona registry. Register it via registerIcons(), or add it to packages/widget/src/utils/icons.ts (see docs/icon-registry-shortlist.md).`),null};$b(Db);var yE=e=>{if(!e)return;let t={},n=e;if(n.heading){let o=n.heading;t.heading=(r,s,a)=>o({type:"heading",raw:a,depth:s,text:r,tokens:[]})}if(n.code){let o=n.code;t.code=(r,s,a)=>o({type:"code",raw:"",text:r,lang:s,escaped:a})}if(n.blockquote){let o=n.blockquote;t.blockquote=r=>o({type:"blockquote",raw:"",text:r,tokens:[]})}if(n.table){let o=n.table;t.table=(r,s)=>o({type:"table",raw:"",header:[],rows:[],align:[],headerHtml:r,bodyHtml:s})}if(n.link){let o=n.link;t.link=(r,s,a)=>o({type:"link",raw:"",href:r,title:s??null,text:a,tokens:[]})}if(n.image){let o=n.image;t.image=(r,s,a)=>o({type:"image",raw:"",href:r,title:s??null,text:a})}if(n.list){let o=n.list;t.list=(r,s,a)=>o({type:"list",raw:"",ordered:s,start:a,loose:!1,items:[],itemsHtml:r})}if(n.listitem){let o=n.listitem;t.listitem=(r,s,a)=>o({type:"list_item",raw:"",task:s,checked:a,loose:!1,text:r,tokens:[]})}if(n.paragraph){let o=n.paragraph;t.paragraph=r=>o({type:"paragraph",raw:"",text:r,tokens:[]})}if(n.codespan){let o=n.codespan;t.codespan=r=>o({type:"codespan",raw:"",text:r})}if(n.strong){let o=n.strong;t.strong=r=>o({type:"strong",raw:"",text:r,tokens:[]})}if(n.em){let o=n.em;t.em=r=>o({type:"em",raw:"",text:r,tokens:[]})}if(n.del){let o=n.del;t.del=r=>o({type:"del",raw:"",text:r,tokens:[]})}if(n.html){let o=n.html;t.html=r=>o({type:"html",raw:r,text:r})}if(n.text){let o=n.text;t.text=r=>o({type:"text",raw:r,text:r})}if(n.checkbox){let o=n.checkbox;t.checkbox=r=>o({checked:r})}return n.hr&&(t.hr=n.hr),n.br&&(t.br=n.br),t},ol=e=>{let t=null;return n=>{let o=No();if(!o)return dr(n);if(!t){let{Marked:r}=o,s=e?.markedOptions;t=new r({gfm:s?.gfm??!0,breaks:s?.breaks??!0,pedantic:s?.pedantic,silent:s?.silent});let a=yE(e?.renderer);a&&t.use({renderer:a})}return t.parse(n)}},rl=e=>e?ol({markedOptions:e.options,renderer:e.renderer}):ol(),bE=ol(),Bg=e=>bE(e),dr=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),jb=e=>e.replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),Ub=e=>`%%FORM_PLACEHOLDER_${e}%%`,qb=(e,t)=>{let n=e;return n=n.replace(/<Directive>([\s\S]*?)<\/Directive>/gi,(o,r)=>{try{let s=JSON.parse(r.trim());if(s&&typeof s=="object"&&s.component==="form"&&s.type){let a=Ub(t.length);return t.push({token:a,type:String(s.type)}),a}}catch{return o}return o}),n=n.replace(/<Form\s+type="([^"]+)"\s*\/>/gi,(o,r)=>{let s=Ub(t.length);return t.push({token:s,type:r}),s}),n},zb=e=>{let t=rl(e);return n=>{let o=[],r=qb(n,o),s=t(r);return o.forEach(({token:a,type:l})=>{let d=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),u=`<div class="persona-form-directive" data-tv-form="${jb(l)}"></div>`;s=s.replace(d,u)}),s}},Vb=e=>{let t=[],n=qb(e,t),o=Bg(n);return t.forEach(({token:r,type:s})=>{let a=new RegExp(r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),d=`<div class="persona-form-directive" data-tv-form="${jb(s)}"></div>`;o=o.replace(a,d)}),o};var vE={ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","p","br","hr","div","span","ul","ol","li","dl","dt","dd","strong","em","b","i","u","s","del","ins","mark","small","sub","sup","abbr","kbd","var","samp","code","a","img","blockquote","pre","details","summary","table","thead","tbody","tfoot","tr","th","td","caption","colgroup","col","input","label","select","option","textarea","button"],ALLOWED_ATTR:["href","src","alt","title","target","rel","loading","width","height","colspan","rowspan","scope","class","id","type","name","value","placeholder","disabled","checked","for","aria-label","aria-hidden","aria-expanded","role","tabindex","data-tv-form","data-message-id","data-persona-component-directive","data-preserve-animation","data-persona-instance"]},CE=/^data:image\/(?:png|jpe?g|gif|webp|bmp|x-icon|avif)/i,_g=()=>{let e=null;return t=>{let n=No();if(!n)return dr(t);if(!e){let{DOMPurify:o}=n;e=o(typeof window<"u"?window:void 0),e.addHook("uponSanitizeAttribute",(r,s)=>{if(s.attrName==="src"||s.attrName==="href"){let a=s.attrValue;a.toLowerCase().startsWith("data:")&&!CE.test(a)&&(s.attrValue="",s.keepAttr=!1)}})}return e.sanitize(t,vE)}},dd=e=>e===!1?null:typeof e=="function"?e:_g();var Kb=/^\s*\|?[\s:|-]*-[\s:|-]*$/,Gb=e=>e.includes("|"),Qb=e=>{let t=e.trim();return t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1)),t.split("|").map(n=>n.trim())},wE=e=>`| ${e.join(" | ")} |`,xE=e=>`| ${Array.from({length:e},()=>"---").join(" | ")} |`,SE=(e,t)=>e.length>=t?e.slice(0,t):e.concat(Array.from({length:t-e.length},()=>"")),Yb=e=>{if(!e||!e.includes("|"))return e;let t=e.split(`
2
- `),n=!1;for(let o=0;o<t.length-1;o++){let r=t[o],s=t[o+1];if(!Gb(r)||Kb.test(r)||!Kb.test(s))continue;let a=Qb(r).length;if(a<1)continue;let l=xE(a);t[o+1]!==l&&(t[o+1]=l,n=!0);let d=o+2;for(;d<t.length;d++){let p=t[d];if(p.trim()===""||!Gb(p))break;let u=wE(SE(Qb(p),a));t[d]!==u&&(t[d]=u,n=!0)}o=d-1}return n?t.join(`
3
- `):e};var Xb="var(--persona-md-table-scroll-fade, 24px)",Jb=new WeakSet;function ev(e){e.querySelectorAll("table").forEach(n=>{if(n.parentElement?.classList.contains("persona-table-scroll"))return;let r=document.createElement("div");r.className="persona-table-scroll",n.replaceWith(r),r.appendChild(n)})}function Zb(e){let t=e.scrollWidth-e.clientWidth;if(t<=1){e.removeAttribute("data-persona-scroll-x");return}e.setAttribute("data-persona-scroll-x","");let o=getComputedStyle(e).direction==="rtl"?t+e.scrollLeft:e.scrollLeft,r=t-o;e.style.setProperty("--persona-fade-l",o<=1?"0px":Xb),e.style.setProperty("--persona-fade-r",r<=1?"0px":Xb)}function Dg(e){Jb.has(e)||(Jb.add(e),e.addEventListener("scroll",t=>{let n=t.target;n?.classList?.contains("persona-table-scroll")&&Zb(n)},!0)),e.querySelectorAll(".persona-table-scroll").forEach(Zb)}var sl="webmcp:",Ng=new Map,pd=e=>{Ng.clear();for(let t of e){let n=t.title?.trim();n&&Ng.set(t.name,n)}},Oi=e=>Ng.get(Fg(e)),tv=null;function ov(e){if(e.length===0)return"0:empty";let t=e.map(n=>[n.name,n.description??"",n.parametersSchema?JSON.stringify(n.parametersSchema):"",n.origin??"",n.annotations?JSON.stringify(n.annotations):""].join("")).sort();return`${e.length}:${AE(t.join(""))}`}function nv(e,t){let n=3735928559^t,o=1103547991^t;for(let r=0;r<e.length;r++){let s=e.charCodeAt(r);n=Math.imul(n^s,2654435761),o=Math.imul(o^s,1597334677)}return n=Math.imul(n^n>>>16,2246822507),n^=Math.imul(o^o>>>13,3266489909),o=Math.imul(o^o>>>16,2246822507),o^=Math.imul(n^n>>>13,3266489909),4294967296*(2097151&o)+(n>>>0)}function AE(e){let t=nv(e,0).toString(36),n=nv(e,2654435761).toString(36);return`${t}.${n}`}var Fg=e=>e.startsWith(sl)?e.slice(sl.length):e,$r=e=>e.startsWith(sl),ud=()=>tv?tv():import("@mcp-b/webmcp-polyfill");var{setLoader:uI,load:ME}=bt({fallbackImport:()=>import("@runtypelabs/persona/webmcp-runtime")});var rv=ME;function Hn(e){return e==="card"?"collapsed":e}function Ur(e){return e.split(";",1)[0].trim().toLowerCase()}function EE(e,t){if(!e)return;let n=Object.entries(e);for(let[r,s]of n)if(Ur(r)===t)return{mode:Hn(s),selector:Ur(r)};let o=`${t.split("/",1)[0]}/*`;for(let[r,s]of n)if(Ur(r)===o)return{mode:Hn(s),selector:o}}function $g(e,t){let n=e?.display,o=typeof n=="string"?{default:n}:n??{};if(t.file&&o.files){if(typeof o.files=="string")return{mode:Hn(o.files),matchedBy:{type:"files"}};let l=t.file.mimeType?Ur(t.file.mimeType):void 0,d=l?EE(o.files.byMediaType,l):void 0;if(l&&d)return{mode:d.mode,matchedBy:{type:"mediaType",mediaType:l,selector:d.selector}};if(o.files.default)return{mode:Hn(o.files.default),matchedBy:{type:"files"}}}let r=o.byKind?.[t.artifactType];if(r)return{mode:Hn(r),matchedBy:{type:"kind",kind:t.artifactType,configuredBy:"byKind"}};let s=o.byType?.[t.artifactType];if(s)return{mode:Hn(s),matchedBy:{type:"kind",kind:t.artifactType,configuredBy:"byType"}};let a=t.presentation?.preferredMode;return a?{mode:Hn(a),matchedBy:{type:"preferredMode"}}:o.default?{mode:Hn(o.default),matchedBy:{type:"default"}}:{mode:"panel",matchedBy:{type:"personaDefault"}}}function Fo(e,t){return $g(e,t).mode}function il(e,t){return JSON.stringify({component:e==="inline"?"PersonaArtifactInline":"PersonaArtifactCard",props:{artifactId:t.artifactId,title:t.title,artifactType:t.artifactType,status:t.status,...t.file?{file:t.file}:{},...t.presentation?{presentation:t.presentation}:{},...e==="inline"&&t.component?{component:t.component}:{},...e==="inline"&&t.componentProps?{componentProps:t.componentProps}:{},...t.markdown!==void 0?{markdown:t.markdown}:{}}})}var TE="agent_",PE="flow_";function sv(e){return e.startsWith(TE)?{kind:"agentId",agentId:e}:e.startsWith(PE)?{kind:"flowId",flowId:e}:null}function iv(e,t){let n=e.trim();if(!n)throw new Error("[Persona] `target` is empty.");let o=n.indexOf(":");if(o>0){let a=n.slice(0,o),l=n.slice(o+1);if(a==="runtype"){let p=sv(l);if(p)return p;throw new Error(`[Persona] target "runtype:${l}" is not a valid Runtype agent_/flow_ id.`)}let d=t?.[a];if(!d)throw new Error(`[Persona] No target provider registered for "${a}". Add a \`targetProviders.${a}\` resolver, or use a Runtype agent_/flow_ id.`);return{kind:"payload",payload:d(l).payload}}let r=sv(n);if(r)return r;let s=t?.default;if(s)return{kind:"payload",payload:s(n).payload};throw new Error(`[Persona] target "${n}" has no provider prefix and is not a Runtype agent_/flow_ id. Use "<provider>:${n}", a Runtype TypeID, or register a \`targetProviders.default\` resolver.`)}function av(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`msg_${e}_${t}`}function Bi(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`usr_${e}_${t}`}function jr(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`ast_${e}_${t}`}function lv(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`turn_${e}_${t}`}var qr=require("partial-json");var M=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n};var Y=(e,t={},...n)=>{let o=document.createElement(e);if(t.className&&(o.className=t.className),t.text!==void 0&&(o.textContent=t.text),t.attrs)for(let[s,a]of Object.entries(t.attrs))o.setAttribute(s,a);if(t.style){let s=o.style,a=t.style;for(let l of Object.keys(a)){let d=a[l];d!=null&&(s[l]=d)}}let r=n.filter(s=>s!=null);return r.length>0&&o.append(...r),o},bn=(...e)=>e.filter(Boolean).join(" ");var ll="ask_user_question",al=8,_i="data-persona-ask-sheet-for",kE="Other",LE="Other\u2026",dv="Type your own answer here",pv="Send",IE="Next",RE="Back",HE="Submit all",WE="Skip",OE=3,Ug="data-ask-current-index",jg="data-ask-question-count",uv="data-ask-answers",qg="data-ask-grouped",gv="data-ask-layout",BE=e=>e.layout==="pills"?"pills":"rows",_E=e=>e.getAttribute(gv)==="pills"?"pills":"rows",cv=!1,mv=e=>e.replace(/["\\]/g,"\\$&"),pr=e=>e.variant==="tool"&&!!e.toolCall&&e.toolCall.name===ll,gd=e=>e?.features?.askUserQuestion??{},ur=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 o=t.chunks;if(!o||o.length===0)return{payload:null,complete:n};try{let r=o.join(""),s=(0,qr.parse)(r,qr.STR|qr.OBJ|qr.ARR);if(s&&typeof s=="object")return{payload:s,complete:n}}catch{}return{payload:null,complete:n}},cl=e=>{let t=Array.isArray(e?.questions)?e.questions:[];return t.length>al&&!cv&&(cv=!0,typeof console<"u"&&console.warn(`[AgentWidget] ask_user_question received ${t.length} questions; truncating to ${al}.`)),t.slice(0,al)},DE=e=>cl(e)[0]??null,NE=(e,t)=>cl(e)[t]??null,fv=(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))},hv=(e,t,n)=>{if(e!=="rows")return null;let o=M("span","persona-ask-row-affordance");if(o.setAttribute("aria-hidden","true"),t){let r=M("span","persona-ask-row-check");o.appendChild(r)}else{let r=M("span","persona-ask-row-badge");r.textContent=String(n+1),o.appendChild(r)}return o},FE=(e,t,n,o)=>{let s=M("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",o?"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=M("span","persona-ask-row-content"),l=M("span","persona-ask-row-label");if(l.textContent=e.label,a.appendChild(l),e.description){let p=M("span","persona-ask-row-description");p.textContent=e.description,a.appendChild(p)}s.appendChild(a);let d=hv(n,o,t);d&&s.appendChild(d)}else s.textContent=e.label,e.description&&(s.title=e.description);return s},$E=e=>{let n=M("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},UE=(e,t,n,o)=>{let s=M("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");s.setAttribute("role","group"),s.setAttribute("data-ask-pill-list","true");let a=!!e?.multiSelect,d=(Array.isArray(e?.options)?e.options:[]).filter(u=>u&&typeof u.label=="string"&&u.label.length>0);if(d.length===0&&!n){for(let u=0;u<OE;u++)s.appendChild($E(o));return s}if(d.forEach((u,m)=>{s.appendChild(FE(u,m,o,a))}),e?.allowFreeText!==!1){let u=o==="rows"?kE:LE;if(o==="rows"){let m=M("div","persona-ask-pill persona-ask-row persona-ask-row--other persona-ask-pill-custom persona-pointer-events-auto");m.setAttribute("data-ask-user-action","focus-free-text"),m.setAttribute("data-option-index",String(d.length)),m.setAttribute("data-ask-other-row","true");let y=M("span","persona-ask-row-content"),h=document.createElement("input");h.type="text",h.className="persona-ask-row-input persona-flex-1 persona-pointer-events-auto",h.placeholder=t.freeTextPlaceholder??dv,h.setAttribute("data-ask-free-text-input","true"),h.setAttribute("aria-label",t.freeTextLabel??u),y.appendChild(h),m.appendChild(y);let C=hv(o,a,d.length);C&&m.appendChild(C),s.appendChild(m)}else{let m=M("button","persona-ask-pill persona-ask-pill-custom persona-pointer-events-auto");m.type="button",m.setAttribute("data-ask-user-action","open-free-text"),m.textContent=t.freeTextLabel??u,s.appendChild(m)}}return s},yv=(e,t)=>{let o=M("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");o.setAttribute("data-ask-free-text-row","true");let r=document.createElement("input");if(r.type="text",r.className="persona-ask-free-text-input persona-flex-1 persona-pointer-events-auto",r.placeholder=e.freeTextPlaceholder??dv,r.setAttribute("data-ask-free-text-input","true"),o.appendChild(r),t!=="rows"){let s=M("button","persona-ask-free-text-submit persona-pointer-events-auto");s.type="button",s.textContent=e.submitLabel??pv,s.setAttribute("data-ask-user-action","submit-free-text"),o.appendChild(s)}return o},jE=e=>{let t=M("div","persona-ask-multi-actions persona-flex persona-justify-end persona-mt-2");t.setAttribute("data-ask-multi-actions","true");let n=M("button","persona-ask-multi-submit persona-pointer-events-auto");return n.type="button",n.textContent=e.submitLabel??pv,n.setAttribute("data-ask-user-action","submit-multi"),n.disabled=!0,t.appendChild(n),t},qE=(e,t,n)=>{let o=M("div","persona-ask-nav persona-flex persona-justify-between persona-items-center persona-gap-2 persona-mt-2");o.setAttribute("data-ask-nav-row","true");let r=M("button","persona-ask-nav-back persona-pointer-events-auto");r.type="button",r.textContent=n.backLabel??RE,r.setAttribute("data-ask-user-action","back"),r.disabled=e===0,o.appendChild(r);let s=M("div","persona-ask-nav-right persona-flex persona-items-center persona-gap-2"),a=M("button","persona-ask-nav-skip persona-pointer-events-auto");a.type="button",a.textContent=n.skipLabel??WE,a.setAttribute("data-ask-user-action","skip"),s.appendChild(a);let l=M("button","persona-ask-nav-next persona-pointer-events-auto");l.type="button";let d=e===t-1;return l.textContent=d?n.submitAllLabel??HE:n.nextLabel??IE,l.setAttribute("data-ask-user-action",d?"submit-all":"next"),l.disabled=!0,s.appendChild(l),o.appendChild(s),o},$s=e=>{let t=e.getAttribute(uv);if(!t)return{};try{let n=JSON.parse(t);return n&&typeof n=="object"?n:{}}catch{return{}}},bv=(e,t)=>{e.setAttribute(uv,JSON.stringify(t))},io=e=>{let t=Number(e.getAttribute(Ug)??"0");return Number.isFinite(t)?Math.max(0,Math.floor(t)):0},zE=(e,t)=>{e.setAttribute(Ug,String(Math.max(0,Math.floor(t))))},Di=e=>{let t=Number(e.getAttribute(jg)??"1");return Number.isFinite(t)?Math.max(1,Math.floor(t)):1},zr=e=>e.getAttribute(qg)==="true",VE=(e,t)=>{let n=e.agentMetadata?.askUserQuestionAnswers;if(!n||typeof n!="object")return{};let o={};return t.forEach((r,s)=>{let a=typeof r?.question=="string"?r.question:"";if(a&&Object.prototype.hasOwnProperty.call(n,a)){let l=n[a];(typeof l=="string"||Array.isArray(l))&&(o[s]=l)}}),o},KE=(e,t)=>{let n=e.agentMetadata?.askUserQuestionIndex;return typeof n!="number"||!Number.isFinite(n)?0:Math.max(0,Math.min(t-1,Math.floor(n)))},md=(e,t)=>{let{payload:n}=ur(t),o=cl(n),r=$s(e),s={},a=new Set;return o.forEach((l,d)=>{let p=typeof l?.question=="string"?l.question:"";p&&(a.has(p)&&typeof console<"u"&&console.warn(`[AgentWidget] ask_user_question has duplicate question text "${p}"; later answer wins.`),a.add(p),Object.prototype.hasOwnProperty.call(r,d)&&(s[p]=r[d]))}),s},vv=e=>{let t=$s(e),n=io(e),o=t[n],r=new Set;typeof o=="string"?r.add(o):Array.isArray(o)&&o.forEach(d=>r.add(d));let s=e.querySelectorAll('[data-ask-user-action="pick"][data-option-label]');s.forEach(d=>{let p=d.getAttribute("data-option-label")??"",u=r.has(p);d.setAttribute("aria-pressed",u?"true":"false"),d.classList.toggle("persona-ask-pill-selected",u)});let a=new Set(Array.from(s).map(d=>d.getAttribute("data-option-label")??"")),l=e.querySelector('[data-ask-free-text-input="true"]');l&&(typeof o=="string"&&o.length>0&&!a.has(o)?(l.value=o,l.closest('[data-ask-free-text-row="true"]')?.classList.remove("persona-hidden")):l.value="")},Cv=e=>{if(!zr(e))return;let t=$s(e),n=io(e),o=t[n],r=typeof o=="string"&&o.length>0||Array.isArray(o)&&o.length>0,s=e.querySelector('[data-ask-user-action="next"], [data-ask-user-action="submit-all"]');s&&(s.disabled=!r);let a=e.querySelector('[data-ask-user-action="submit-multi"]');if(a){let l=Array.from(e.querySelectorAll('[aria-pressed="true"][data-option-label]'));a.disabled=l.length===0}},zg=(e,t,n)=>{let o=gd(n),r=_E(e),{payload:s,complete:a}=ur(t),l=zr(e),d=io(e),p=Di(e),u=l?NE(s,d):DE(s),m=!!u?.multiSelect,y=e.querySelector('[data-ask-step-inline="true"]');y&&(y.textContent=l?`${d+1}/${p}`:"");let h=e.querySelector('[data-ask-stepper="true"]');h&&h.remove();let C=e.querySelector('[data-ask-question="true"]');if(C){let B=typeof u?.question=="string"?u.question:"";C.textContent=B,C.classList.toggle("persona-ask-question-skeleton",!B&&!a)}let x=e.querySelector('[data-ask-pill-list="true"]');if(x){let B=UE(u,o,a,r);x.replaceWith(B)}if(r!=="rows"){let B=e.querySelector('[data-ask-free-text-row="true"]');B&&B.replaceWith(yv(o,r))}let S=e.querySelector('[data-ask-multi-actions="true"]');!l&&m&&!S?e.appendChild(jE(o)):(!m||l)&&S&&S.remove(),e.setAttribute("data-multi-select",m?"true":"false");let k=e.querySelector('[data-ask-nav-row="true"]');if(l){let B=qE(d,p,o);k?k.replaceWith(B):e.appendChild(B)}else k&&k.remove();vv(e),Cv(e)},GE=(e,t,n)=>{let o=gd(t),r=BE(o),s=e.toolCall.id,a=cl(n),l=Math.max(1,a.length),d=l>1,p=VE(e,a),u=d?KE(e,l):0,m=M("div",["persona-ask-sheet",`persona-ask-sheet--${r}`,"persona-pointer-events-auto","persona-ask-sheet-enter"].join(" "));m.setAttribute(_i,s),m.setAttribute("data-tool-call-id",s),m.setAttribute("data-message-id",e.id),m.setAttribute(jg,String(l)),m.setAttribute(Ug,String(u)),m.setAttribute(qg,d?"true":"false"),m.setAttribute(gv,r),bv(m,p),m.setAttribute("role","group"),m.setAttribute("aria-label","Suggested answers"),o.slideInMs!==void 0&&m.style.setProperty("--persona-ask-sheet-duration",`${o.slideInMs}ms`),fv(m,o);let y=M("div","persona-ask-sheet-header persona-flex persona-items-center persona-gap-3"),h=M("div","persona-ask-sheet-question persona-flex-1");h.setAttribute("data-ask-question","true"),h.textContent="",y.appendChild(h);let C=M("span","persona-ask-sheet-step-inline");C.setAttribute("data-ask-step-inline","true"),C.textContent="",y.appendChild(C),m.appendChild(y);let S=M("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");return S.setAttribute("data-ask-pill-list","true"),S.setAttribute("role","group"),m.appendChild(S),r!=="rows"&&m.appendChild(yv(o,r)),zg(m,e,t),requestAnimationFrame(()=>{requestAnimationFrame(()=>m.classList.remove("persona-ask-sheet-enter"))}),m},QE=(e,t,n)=>{let{payload:o}=ur(t),r=Math.max(1,cl(o).length);r>Di(e)&&(e.setAttribute(jg,String(r)),r>1&&!zr(e)&&e.setAttribute(qg,"true")),zg(e,t,n)},wv=(e,t)=>{let n=M("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 o=gd(t);fv(n,o);let r=M("span","persona-ask-stub-label"),{complete:s}=ur(e);return r.textContent=s?"Awaiting your response\u2026":"Preparing options\u2026",n.appendChild(r),n},Ni=(e,t,n)=>{if(!n||!pr(e)||gd(t).enabled===!1)return;let r=e.toolCall.id;n.querySelectorAll(`[${_i}]`).forEach(p=>{p.getAttribute(_i)!==r&&p.remove()});let a=n.querySelector(`[${_i}="${mv(r)}"]`);if(a){QE(a,e,t);return}let{payload:l}=ur(e),d=GE(e,t,l);n.appendChild(d)},Vr=(e,t)=>{if(!e)return;let n=t?`[${_i}="${mv(t)}"]`:`[${_i}]`;e.querySelectorAll(n).forEach(r=>{r.classList.add("persona-ask-sheet-leave");let s=Number.parseInt(getComputedStyle(r).getPropertyValue("--persona-ask-sheet-duration")||"180",10);setTimeout(()=>r.remove(),Number.isFinite(s)?s:180)})},Vg=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),Kr=(e,t)=>{let n=$s(e),o=io(e);typeof t=="string"&&t.length===0||Array.isArray(t)&&t.length===0?delete n[o]:n[o]=t,bv(e,n),vv(e),Cv(e)},fd=(e,t,n,o)=>{let r=Di(e),s=Math.max(0,Math.min(r-1,o));zE(e,s),zg(e,t,n)};var $o="suggest_replies";var Kg={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:"object",properties:{label:{type:"string",minLength:1,maxLength:80},prompt:{type:"string",minLength:1,maxLength:500},description:{type:"string",minLength:1,maxLength:160}},required:["label"],additionalProperties:!1}}},required:["suggestions"],additionalProperties:!1},hd={name:$o,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. Give each suggestion a `label` with the short visible text, an optional `prompt` with the fuller text placed as the user's message (defaults to the label), and an optional `description` with one line of supporting copy. Suggestions are sent as the user's next message, so phrase prompts 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: do not add further commentary after calling this tool; end your turn.",parametersSchema:Kg,origin:"sdk",annotations:{readOnlyHint:!0}},Sv=()=>({content:[{type:"text",text:"Suggestions shown to the user."}]}),Us=e=>e.variant==="tool"&&e.toolCall?.name===$o,Gg=e=>{let t=e;if(typeof t=="string")try{t=JSON.parse(t)}catch{return[]}let n=t?.suggestions;if(!Array.isArray(n))return[];let o=n.flatMap(r=>{if(typeof r=="string"){let l=r.trim();return l?[l]:[]}if(!r||typeof r!="object")return[];let s=r;if(typeof s.label!="string"||!s.label.trim())return[];let a={label:s.label.trim()};return typeof s.prompt=="string"&&s.prompt.trim()&&(a.prompt=s.prompt.trim()),typeof s.description=="string"&&s.description.trim()&&(a.description=s.description.trim()),[a]});return o.length>4?(console.warn(`[persona] suggest_replies: ${o.length} suggestions exceeds the cap of 4; extra suggestions dropped.`),o.slice(0,4)):o},yd=e=>{for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role==="user")return null;if(!Us(n))continue;let o=Gg(n.toolCall?.args);return o.length>0?o:null}return null},xv=new Set,YE=(e,t,n)=>{let o=`${e}:${t}:${n}`;xv.has(o)||(xv.add(o),console.warn(`[persona] suggestions.followUps.${e} and features.suggestReplies.${e} disagree; suggestions.followUps.${e} wins.`))},Gr=e=>{let t=e?.suggestions?.followUps,n=e?.features?.suggestReplies,o=a=>{let l=t?.[a],d=n?.[a];l===void 0||d===void 0||l!==d&&YE(a,d,l)};e&&(o("enabled"),o("expose"));let r=t?.enabled??n?.enabled??!0,s=r?t?.expose??n?.expose??!1:!1;return{enabled:r,expose:s}};var Qg={type:"object",properties:{questions:{type:"array",minItems:1,maxItems:al,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: 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},Yg={name:ll,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: 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:Qg,origin:"sdk",annotations:{readOnlyHint:!0}},Fi=e=>{let t=[],n=e?.features?.askUserQuestion;return n?.expose===!0&&n.enabled!==!1&&t.push(Yg),Gr(e).expose&&t.push(hd),t};var gr=require("partial-json"),bd=e=>e.replace(/\\n/g,`
4
- `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\"),vd=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)}},XE=e=>{let t=e.completedAt??Date.now(),n=e.startedAt??t,r=(e.durationMs!==void 0?e.durationMs:Math.max(0,t-n))/1e3;return r<.1?"Thought for <0.1 seconds":`Thought for ${r>=10?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")} seconds`},Av=e=>e.status==="complete"?XE(e):e.status==="pending"?"Waiting":"",JE=e=>{let n=(typeof e.duration=="number"?e.duration:typeof e.durationMs=="number"?e.durationMs:Math.max(0,(e.completedAt??Date.now())-(e.startedAt??e.completedAt??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 Mv=e=>e.status==="complete"?JE(e):"Using tool...",Cd=e=>{let t=e/1e3;return t<.1?"<0.1s":t>=10?`${Math.round(t)}s`:`${t.toFixed(1).replace(/\.0$/,"")}s`},pl=e=>{let t=typeof e.duration=="number"?e.duration:typeof e.durationMs=="number"?e.durationMs:Math.max(0,(e.completedAt??Date.now())-(e.startedAt??e.completedAt??Date.now()));return Cd(t)},wd=e=>{let t=e.durationMs!==void 0?e.durationMs:Math.max(0,(e.completedAt??Date.now())-(e.startedAt??e.completedAt??Date.now()));return Cd(t)},Xg=(e,t,n)=>{if(!t)return n;let o=e.name?.trim()||"tool",r=pl(e);return t.replace(/\{toolName\}/g,o).replace(/\{duration\}/g,r)},xd=(e,t)=>{let n=e.replace(/\{toolName\}/g,t),o=[],r=/\*\*(.+?)\*\*|\*(.+?)\*|~(.+?)~/g,s=0,a;for(;(a=r.exec(n))!==null;)a.index>s&&dl(o,n.slice(s,a.index),[]),a[1]!==void 0?dl(o,a[1],["bold"]):a[2]!==void 0?dl(o,a[2],["italic"]):a[3]!==void 0&&dl(o,a[3],["dim"]),s=a.index+a[0].length;return s<n.length&&dl(o,n.slice(s),[]),o},dl=(e,t,n)=>{let o=t.split("{duration}");for(let r=0;r<o.length;r++)o[r]&&e.push({text:o[r],styles:n}),r<o.length-1&&e.push({text:"{duration}",styles:n,isDuration:!0})},ZE=()=>{let e=null,t=0,n=o=>{let r=/"text"\s*:\s*"((?:[^"\\]|\\.|")*?)"/,s=o.match(r);if(s&&s[1])try{return s[1].replace(/\\n/g,`
1
+ "use strict";var lE=Object.create;var id=Object.defineProperty;var cE=Object.getOwnPropertyDescriptor;var dE=Object.getOwnPropertyNames;var pE=Object.getPrototypeOf,uE=Object.prototype.hasOwnProperty;var ol=(e,t)=>()=>(e&&(t=e(e=0)),t);var Hg=(e,t)=>{for(var n in t)id(e,n,{get:t[n],enumerable:!0})},Hb=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of dE(t))!uE.call(e,r)&&r!==n&&id(e,r,{get:()=>t[r],enumerable:!(o=cE(t,r))||o.enumerable});return e};var fn=(e,t,n)=>(n=e!=null?lE(pE(e)):{},Hb(t||!e||!e.__esModule?id(n,"default",{value:e,enumerable:!0}):n,e)),gE=e=>Hb(id({},"__esModule",{value:!0}),e);var Bb={};Hg(Bb,{DOMPurify:()=>Ob.default,Marked:()=>Wb.Marked});var Wb,Ob,_b=ol(()=>{"use strict";Wb=require("marked"),Ob=fn(require("dompurify"),1)});var Qi,am=ol(()=>{"use strict";Qi=class{constructor(t=24e3,n={}){this.ctx=null;this.nextStartTime=0;this.activeSources=[];this.finishedCallbacks=[];this.startedCallbacks=[];this.playing=!1;this.streamEnded=!1;this.pendingCount=0;this.started=!1;this.userPaused=!1;this.pendingBuffers=[];this.pendingSamples=0;this.remainder=null;this.sampleRate=t;let o=Math.max(0,n.prebufferMs??0);this.waterlineSamples=Math.round(t*o/1e3),this.buffering=this.waterlineSamples>0}ensureContext(){if(!this.ctx){let n=typeof window<"u"?window:void 0;if(!n)throw new Error("AudioPlaybackManager requires a browser environment");let o=n.AudioContext||n.webkitAudioContext;this.ctx=new o({sampleRate:this.sampleRate})}let t=this.ctx;return t.state==="suspended"&&!this.userPaused&&t.resume(),t}enqueue(t){if(t.length===0)return;let n=t;if(this.remainder){let r=new Uint8Array(this.remainder.length+t.length);r.set(this.remainder),r.set(t,this.remainder.length),n=r,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 o=this.pcmToFloat32(n);o.length!==0&&(this.buffering?(this.pendingBuffers.push(o),this.pendingSamples+=o.length,this.pendingSamples>=this.waterlineSamples&&this.releaseBuffer()):this.scheduleSamples(o))}markStreamEnd(){this.pendingBuffers.length>0&&this.releaseBuffer(),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.startedCallbacks=[],this.remainder=null,this.pendingBuffers=[],this.pendingSamples=0,this.buffering=this.waterlineSamples>0,this.started=!1}isPlaying(){return this.playing}onFinished(t){this.finishedCallbacks.push(t)}onStarted(t){this.startedCallbacks.push(t)}pause(){this.userPaused=!0,this.ctx&&this.ctx.state==="running"&&this.ctx.suspend()}resume(){this.userPaused=!1,this.ctx&&this.ctx.state==="suspended"&&this.ctx.resume()}async destroy(){this.flush(),this.ctx&&(await this.ctx.close(),this.ctx=null)}releaseBuffer(){this.buffering=!1;let t=this.pendingBuffers;this.pendingBuffers=[],this.pendingSamples=0;for(let n of t)this.scheduleSamples(n)}scheduleSamples(t){if(t.length===0)return;let n=this.ensureContext(),o=n.createBuffer(1,t.length,this.sampleRate);o.getChannelData(0).set(t);let r=n.createBufferSource();r.buffer=o,r.connect(n.destination);let s=n.currentTime;if(this.nextStartTime===0?this.nextStartTime=s:this.nextStartTime<s&&(this.nextStartTime=s,this.waterlineSamples>0&&(this.buffering=!0)),r.start(this.nextStartTime),this.nextStartTime+=o.duration,this.activeSources.push(r),this.pendingCount++,this.playing=!0,!this.started){this.started=!0;let a=this.startedCallbacks.slice();this.startedCallbacks=[];for(let l of a)l()}r.onended=()=>{let a=this.activeSources.indexOf(r);a!==-1&&this.activeSources.splice(a,1),this.pendingCount--,this.checkFinished()}}checkFinished(){if(this.streamEnded&&this.pendingCount<=0&&this.pendingBuffers.length===0){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),o=new Float32Array(n),r=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let s=0;s<n;s++){let a=r.getInt16(s*2,!0);o[s]=a/32768}return o}}});function xT(e){return e.replace(/\/+$/,"")}async function ST(e){try{let t=await e.json();return t.detail?`${t.error??`Runtype TTS ${e.status}`}: ${t.detail}`:t.error??`Runtype TTS request failed (${e.status})`}catch{return`Runtype TTS request failed (${e.status})`}}var Hd,sC=ol(()=>{"use strict";am();Hd=class{constructor(t){this.opts=t;this.id="runtype-tts";this.supportsPause=!0;this.player=null;this.playerPromise=null;this.generation=0}ensurePlayer(){return this.playerPromise??(this.playerPromise=Promise.resolve(this.opts.createPlaybackEngine?this.opts.createPlaybackEngine():new Qi(24e3,{prebufferMs:this.opts.prebufferMs??200})).then(t=>this.player=t))}speak(t,n){let o=++this.generation;this.run(o,t,n)}async run(t,n,o){try{let r=await this.ensurePlayer();if(t!==this.generation)return;r.flush(),r.resume(),r.onStarted(()=>{t===this.generation&&o.onStart?.()}),r.onFinished(()=>{t===this.generation&&o.onEnd?.()});let s=`${xT(this.opts.host)}/v1/agents/${encodeURIComponent(this.opts.agentId)}/speak`,a=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.opts.clientToken}`},body:JSON.stringify({text:n.text,voice:n.voice??this.opts.voice,format:"pcm"})});if(t!==this.generation)return;if(!a.ok||!a.body)throw new Error(await ST(a));let l=a.body.getReader();for(;;){let{done:d,value:p}=await l.read();if(t!==this.generation){await l.cancel().catch(()=>{});return}if(d)break;p&&p.byteLength>0&&r.enqueue(p)}r.markStreamEnd()}catch(r){if(t!==this.generation)return;let s=r instanceof Error?r:new Error(String(r));this.opts.onError?.(s),o.onError?.(s)}}pause(){this.player?.pause()}resume(){this.player?.resume()}stop(){this.generation++,this.player?.flush()}destroy(){this.generation++,this.player?.destroy(),this.player=null,this.playerPromise=null}}});var Wd,iC=ol(()=>{"use strict";Wd=class{constructor(t,n,o={}){this.primary=t;this.fallback=n;this.options=o;this.id="fallback";this.active=t}get supportsPause(){return this.active.supportsPause}speak(t,n){this.active=this.primary;let o=!1;this.primary.speak(t,{onStart:()=>{o=!0,n.onStart?.()},onEnd:()=>n.onEnd?.(),onError:r=>{if(o){n.onError?.(r);return}this.options.onFallback?.(r),this.active=this.fallback,this.fallback.speak(t,n)}})}pause(){this.active.pause()}resume(){this.active.resume()}stop(){this.active.stop()}destroy(){this.primary.destroy?.(),this.fallback.destroy?.()}}});var aC={};Hg(aC,{FallbackSpeechEngine:()=>Wd,RuntypeSpeechEngine:()=>Hd});var lC=ol(()=>{"use strict";sC();iC()});var N0={};Hg(N0,{ASK_USER_QUESTION_CLIENT_TOOL:()=>Jg,ASK_USER_QUESTION_PARAMETERS_SCHEMA:()=>Xg,ASK_USER_QUESTION_TOOL_NAME:()=>cl,AgentWidgetClient:()=>zs,AgentWidgetSession:()=>Yi,AttachmentManager:()=>Ks,BrowserSpeechEngine:()=>es,DEFAULT_COMPONENTS:()=>Rm,DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH:()=>Dd,DEFAULT_FLOATING_LAUNCHER_WIDTH:()=>zn,DEFAULT_PALETTE:()=>Lm,DEFAULT_SEMANTIC:()=>Im,DEFAULT_WIDGET_CONFIG:()=>at,HistoryProviderError:()=>lo,PRESETS:()=>zf,PRESET_FULLSCREEN:()=>qf,PRESET_MINIMAL:()=>jf,PRESET_SHOP:()=>Uf,ReadAloudController:()=>Vs,SUGGEST_REPLIES_CLIENT_TOOL:()=>yd,SUGGEST_REPLIES_PARAMETERS_SCHEMA:()=>Qg,SUGGEST_REPLIES_TOOL_NAME:()=>jo,THEME_ZONES:()=>gw,VERSION:()=>io,WEBMCP_TOOL_PREFIX:()=>il,WebMcpBridge:()=>Jp,accessibilityPlugin:()=>hS,animationsPlugin:()=>yS,applyFeaturePreferences:()=>Sf,applyThemeVariables:()=>Gs,attachHeaderToContainer:()=>Xs,brandPlugin:()=>bS,buildComposer:()=>Zs,buildDefaultHeader:()=>Km,buildHeader:()=>vr,buildHeaderWithLayout:()=>ra,buildMinimalHeader:()=>Gm,builtInClientToolsForDispatch:()=>zi,canonicalArtifactDisplayMode:()=>Ln,collectEnrichedPageContext:()=>pS,componentRegistry:()=>So,createActionManager:()=>$l,createAgentExperience:()=>Fp,createAskUserQuestionBubble:()=>Mv,createBestAvailableVoiceProvider:()=>Qp,createBubbleWithLayout:()=>Xw,createCSATFeedback:()=>_p,createComboButton:()=>up,createComponentMiddleware:()=>zx,createComponentStreamParser:()=>Wp,createDefaultSanitizer:()=>Ng,createDemoCarousel:()=>OS,createDirectivePostprocessor:()=>Qb,createDropdownMenu:()=>Js,createFlexibleJsonStreamParser:()=>Lv,createIconButton:()=>Hn,createImagePart:()=>kd,createJsonStreamParser:()=>Ed,createLabelButton:()=>Vm,createLocalStorageAdapter:()=>Rp,createMarkdownProcessor:()=>rl,createMarkdownProcessorFromConfig:()=>sl,createMessageActions:()=>ef,createNPSFeedback:()=>Dp,createPlainTextParser:()=>Ad,createPlugin:()=>wS,createRegexJsonParser:()=>Md,createRovingTablist:()=>$S,createSlashCommandsSource:()=>FS,createSplitButton:()=>jw,createStandardBubble:()=>sa,createStaticMentionSource:()=>NS,createTextPart:()=>ao,createTheme:()=>Cl,createThemeObserver:()=>ta,createToggleGroup:()=>Wl,createTypingIndicator:()=>ei,createVoiceProvider:()=>ha,createWidgetHostLayout:()=>jl,createXmlParser:()=>Td,default:()=>fS,defaultActionHandlers:()=>oi,defaultJsonActionParser:()=>Fl,defaultMentionFilter:()=>Zp,defaultParseRules:()=>Ff,detectColorScheme:()=>wl,directivePostprocessor:()=>Yb,ensureAskUserQuestionSheet:()=>qi,escapeHtml:()=>mr,extractComponentDirectiveFromMessage:()=>Bp,fileToImagePart:()=>Wv,formatEnrichedContext:()=>uS,generateAssistantMessageId:()=>Gr,generateCodeSnippet:()=>TS,generateMessageId:()=>pv,generateStableSelector:()=>$f,generateUserMessageId:()=>$i,getActiveTheme:()=>ns,getColorScheme:()=>np,getDisplayText:()=>Pd,getHeaderLayout:()=>Qm,getImageParts:()=>Hv,getPreset:()=>mS,hasComponentDirective:()=>Ul,hasImages:()=>Ki,headerLayouts:()=>gp,highContrastPlugin:()=>CS,initAgentWidget:()=>Bf,isAskUserQuestionMessage:()=>fr,isComponentDirectiveType:()=>qx,isDockedMountMode:()=>At,isHistoryProviderError:()=>nC,isSuggestRepliesMessage:()=>qs,isVoiceSupported:()=>Qf,isWebMcpToolName:()=>Vr,isWelcomeVisible:()=>is,latestAgentSuggestions:()=>bd,listRegisteredStreamAnimations:()=>_w,loadMarkdownParsers:()=>ld,markdownPostprocessor:()=>Dg,mergeWithDefaults:()=>Zi,normalizeContent:()=>Rv,normalizeMediaType:()=>Kr,onMarkdownParsersReady:()=>_i,parseAskUserQuestionPayload:()=>hr,parseSuggestRepliesPayload:()=>Yg,parseWidgetPreferenceSlice:()=>xf,pickBestVoice:()=>Gi,pluginRegistry:()=>Nl,reducedMotionPlugin:()=>vS,registerIcons:()=>qb,registerStreamAnimationPlugin:()=>El,removeAskUserQuestionSheet:()=>Xr,renderComponentDirective:()=>Op,renderLoadingIndicatorWithFallback:()=>Zm,renderLucideIcon:()=>ge,resolveArtifactDisplay:()=>jg,resolveArtifactDisplayMode:()=>Uo,resolveConfigPreferences:()=>Dl,resolveDockConfig:()=>Rn,resolveSanitizer:()=>pd,resolveTokens:()=>ep,resolveWelcomeConfig:()=>xo,stripWebMcpPrefix:()=>Ug,themeToCssVariables:()=>tp,unregisterStreamAnimationPlugin:()=>Bw,validateImageFile:()=>Ov,validateTheme:()=>Hm});module.exports=gE(N0);var Fb=require("marked"),$b=fn(require("dompurify"),1);var bt=e=>{let{fallbackImport:t,resetOnSetLoader:n=!1}=e,o=null,r=null,s=null;return{setLoader:u=>{o=u,n&&(r=null,s=null)},load:()=>r?Promise.resolve(r):s||(s=(o??t)().then(m=>(r=m,m)).catch(m=>{throw s=null,m}),s),provide:u=>{r=u},getSync:()=>r}};var{setLoader:G0,load:mE,provide:fE,getSync:Wg}=bt({fallbackImport:()=>Promise.resolve().then(()=>(_b(),Bb))}),ad=new Set,Db=()=>{let e=[...ad];ad.clear();for(let t of e)try{t()}catch{}};var ld=()=>{let e=Wg();return e?Promise.resolve(e):mE().then(t=>(Db(),t))},_i=e=>Wg()?()=>{}:(ad.add(e),()=>{ad.delete(e)}),Nb=e=>{fE(e),Db()},$o=Wg;Nb({Marked:Fb.Marked,DOMPurify:$b.default});var G=require("lucide"),Ub={user:G.User,mail:G.Mail,phone:G.Phone,calendar:G.Calendar,clock:G.Clock,building:G.Building,"map-pin":G.MapPin,lock:G.Lock,key:G.Key,"credit-card":G.CreditCard,hash:G.Hash,globe:G.Globe,link:G.Link,"circle-check":G.CircleCheck,"circle-x":G.CircleX,"triangle-alert":G.TriangleAlert,info:G.Info,ban:G.Ban,shield:G.Shield,house:G.House,"pen-line":G.PenLine,save:G.Save,share:G.Share,funnel:G.Funnel,settings:G.Settings,"rotate-cw":G.RotateCw,"shopping-cart":G.ShoppingCart,"shopping-bag":G.ShoppingBag,package:G.Package,truck:G.Truck,tag:G.Tag,gift:G.Gift,receipt:G.Receipt,wallet:G.Wallet,store:G.Store,"dollar-sign":G.DollarSign,percent:G.Percent,play:G.Play,pause:G.Pause,"volume-x":G.VolumeX,camera:G.Camera,image:G.Image,film:G.Film,headphones:G.Headphones,"message-circle":G.MessageCircle,bell:G.Bell,heart:G.Heart,"eye-off":G.EyeOff,bookmark:G.Bookmark,"calendar-days":G.CalendarDays,timer:G.Timer,folder:G.Folder,"folder-open":G.FolderOpen,files:G.Files,"chart-column":G.ChartColumn,sparkles:G.Sparkles,zap:G.Zap,sun:G.Sun,moon:G.Moon,flag:G.Flag,lightbulb:G.Lightbulb,monitor:G.Monitor,smartphone:G.Smartphone};var Wt=(e,t=24,n="currentColor",o=2)=>{if(!Array.isArray(e))return null;let r=document.createElementNS("http://www.w3.org/2000/svg","svg");return r.setAttribute("width",String(t)),r.setAttribute("height",String(t)),r.setAttribute("viewBox","0 0 24 24"),r.setAttribute("fill","none"),r.setAttribute("stroke",n),r.setAttribute("stroke-width",String(o)),r.setAttribute("stroke-linecap","round"),r.setAttribute("stroke-linejoin","round"),r.setAttribute("aria-hidden","true"),e.forEach(s=>{if(!Array.isArray(s)||s.length<2)return;let a=s[0],l=s[1];if(!l)return;let d=document.createElementNS("http://www.w3.org/2000/svg",a);Object.entries(l).forEach(([p,u])=>{p!=="stroke"&&d.setAttribute(p,String(u))}),r.appendChild(d)}),r};var{setLoader:eI,load:hE}=bt({fallbackImport:()=>import("@runtypelabs/persona/icons-extra")});var cd=hE;var ne=require("lucide"),yE={activity:ne.Activity,"arrow-down":ne.ArrowDown,"arrow-up":ne.ArrowUp,"arrow-up-right":ne.ArrowUpRight,bot:ne.Bot,"chevron-down":ne.ChevronDown,"chevron-up":ne.ChevronUp,"chevron-right":ne.ChevronRight,"chevron-left":ne.ChevronLeft,check:ne.Check,clipboard:ne.Clipboard,"clipboard-copy":ne.ClipboardCopy,"code-xml":ne.CodeXml,copy:ne.Copy,file:ne.File,"file-code":ne.FileCode,"file-spreadsheet":ne.FileSpreadsheet,"file-text":ne.FileText,"image-plus":ne.ImagePlus,loader:ne.Loader,"loader-circle":ne.LoaderCircle,mic:ne.Mic,paperclip:ne.Paperclip,quote:ne.Quote,"refresh-cw":ne.RefreshCw,search:ne.Search,send:ne.Send,"shield-alert":ne.ShieldAlert,"shield-check":ne.ShieldCheck,"shield-x":ne.ShieldX,square:ne.Square,"thumbs-down":ne.ThumbsDown,"thumbs-up":ne.ThumbsUp,upload:ne.Upload,"volume-2":ne.Volume2,x:ne.X,"at-sign":ne.AtSign,"arrow-left":ne.ArrowLeft,"arrow-right":ne.ArrowRight,"external-link":ne.ExternalLink,ellipsis:ne.Ellipsis,"ellipsis-vertical":ne.EllipsisVertical,menu:ne.Menu,"panel-left":ne.PanelLeft,plus:ne.Plus,minus:ne.Minus,pencil:ne.Pencil,trash:ne.Trash,"trash-2":ne.Trash2,download:ne.Download,maximize:ne.Maximize,minimize:ne.Minimize,"message-square":ne.MessageSquare,star:ne.Star,eye:ne.Eye,history:ne.History},bE=["user","mail","phone","calendar","clock","building","map-pin","lock","key","credit-card","hash","globe","link","circle-check","circle-x","triangle-alert","info","ban","shield","house","pen-line","save","share","funnel","settings","rotate-cw","shopping-cart","shopping-bag","package","truck","tag","gift","receipt","wallet","store","dollar-sign","percent","play","pause","volume-x","camera","image","film","headphones","message-circle","bell","heart","eye-off","bookmark","calendar-days","timer","folder","folder-open","files","chart-column","sparkles","zap","sun","moon","flag","lightbulb","monitor","smartphone"],Us=new Map(Object.entries(yE)),Di=new Set,Ni=!1,dd=new Set,Bg=e=>{let t=[...dd];e&&dd.clear();for(let n of t)try{n()}catch{}},jb=e=>Ni?()=>{}:(dd.add(e),()=>{dd.delete(e)}),_g=()=>{let e=0;for(let t of[...Di]){let n=Us.get(t.name);if(!n)continue;Di.delete(t),e++;let o=Wt(n,t.size,t.color,t.strokeWidth);if(o)for(t.el.removeAttribute("data-persona-icon-pending");o.firstChild;)t.el.appendChild(o.firstChild)}return e},qb=e=>{for(let[t,n]of Object.entries(e))Us.set(t,n);_g()>0&&!Ni&&Bg(!1)},zb=e=>{if(!Ni){for(let[t,n]of Object.entries(e))Us.has(t)||Us.set(t,n);Ni=!0,_g(),Bg(!0)}},Og=!1,vE=()=>{cd().then(e=>{if(!Ni){for(let[t,n]of Object.entries(e.EXTRA_LUCIDE_ICONS))Us.has(t)||Us.set(t,n);Ni=!0,_g(),Bg(!0)}}).catch(e=>{Og=!0,console.warn("[Persona] Failed to load the icons-extra chunk",e)})},CE=(e,t,n)=>{let o=document.createElementNS("http://www.w3.org/2000/svg","svg");return o.setAttribute("width",String(e)),o.setAttribute("height",String(e)),o.setAttribute("viewBox","0 0 24 24"),o.setAttribute("fill","none"),o.setAttribute("stroke",t),o.setAttribute("stroke-width",String(n)),o.setAttribute("stroke-linecap","round"),o.setAttribute("stroke-linejoin","round"),o.setAttribute("aria-hidden","true"),o.setAttribute("data-persona-icon-pending","true"),o},ge=(e,t=24,n="currentColor",o=2)=>{let r=Us.get(e);if(r)return Wt(r,t,n,o);if(bE.includes(e)){Og&&(Og=!1);let s=CE(t,n,o);if(Di.size>=500){let a=Di.values().next().value;a&&Di.delete(a)}return Di.add({el:s,name:e,size:t,color:n,strokeWidth:o}),vE(),s}return console.warn(`Lucide icon "${e}" is not in the Persona registry. Register it via registerIcons(), or add it to packages/widget/src/utils/icons.ts (see docs/icon-registry-shortlist.md).`),null};zb(Ub);var wE=e=>{if(!e)return;let t={},n=e;if(n.heading){let o=n.heading;t.heading=(r,s,a)=>o({type:"heading",raw:a,depth:s,text:r,tokens:[]})}if(n.code){let o=n.code;t.code=(r,s,a)=>o({type:"code",raw:"",text:r,lang:s,escaped:a})}if(n.blockquote){let o=n.blockquote;t.blockquote=r=>o({type:"blockquote",raw:"",text:r,tokens:[]})}if(n.table){let o=n.table;t.table=(r,s)=>o({type:"table",raw:"",header:[],rows:[],align:[],headerHtml:r,bodyHtml:s})}if(n.link){let o=n.link;t.link=(r,s,a)=>o({type:"link",raw:"",href:r,title:s??null,text:a,tokens:[]})}if(n.image){let o=n.image;t.image=(r,s,a)=>o({type:"image",raw:"",href:r,title:s??null,text:a})}if(n.list){let o=n.list;t.list=(r,s,a)=>o({type:"list",raw:"",ordered:s,start:a,loose:!1,items:[],itemsHtml:r})}if(n.listitem){let o=n.listitem;t.listitem=(r,s,a)=>o({type:"list_item",raw:"",task:s,checked:a,loose:!1,text:r,tokens:[]})}if(n.paragraph){let o=n.paragraph;t.paragraph=r=>o({type:"paragraph",raw:"",text:r,tokens:[]})}if(n.codespan){let o=n.codespan;t.codespan=r=>o({type:"codespan",raw:"",text:r})}if(n.strong){let o=n.strong;t.strong=r=>o({type:"strong",raw:"",text:r,tokens:[]})}if(n.em){let o=n.em;t.em=r=>o({type:"em",raw:"",text:r,tokens:[]})}if(n.del){let o=n.del;t.del=r=>o({type:"del",raw:"",text:r,tokens:[]})}if(n.html){let o=n.html;t.html=r=>o({type:"html",raw:r,text:r})}if(n.text){let o=n.text;t.text=r=>o({type:"text",raw:r,text:r})}if(n.checkbox){let o=n.checkbox;t.checkbox=r=>o({checked:r})}return n.hr&&(t.hr=n.hr),n.br&&(t.br=n.br),t},rl=e=>{let t=null;return n=>{let o=$o();if(!o)return mr(n);if(!t){let{Marked:r}=o,s=e?.markedOptions;t=new r({gfm:s?.gfm??!0,breaks:s?.breaks??!0,pedantic:s?.pedantic,silent:s?.silent});let a=wE(e?.renderer);a&&t.use({renderer:a})}return t.parse(n)}},sl=e=>e?rl({markedOptions:e.options,renderer:e.renderer}):rl(),xE=rl(),Dg=e=>xE(e),mr=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),Kb=e=>e.replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),Vb=e=>`%%FORM_PLACEHOLDER_${e}%%`,Gb=(e,t)=>{let n=e;return n=n.replace(/<Directive>([\s\S]*?)<\/Directive>/gi,(o,r)=>{try{let s=JSON.parse(r.trim());if(s&&typeof s=="object"&&s.component==="form"&&s.type){let a=Vb(t.length);return t.push({token:a,type:String(s.type)}),a}}catch{return o}return o}),n=n.replace(/<Form\s+type="([^"]+)"\s*\/>/gi,(o,r)=>{let s=Vb(t.length);return t.push({token:s,type:r}),s}),n},Qb=e=>{let t=sl(e);return n=>{let o=[],r=Gb(n,o),s=t(r);return o.forEach(({token:a,type:l})=>{let d=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),u=`<div class="persona-form-directive" data-tv-form="${Kb(l)}"></div>`;s=s.replace(d,u)}),s}},Yb=e=>{let t=[],n=Gb(e,t),o=Dg(n);return t.forEach(({token:r,type:s})=>{let a=new RegExp(r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),d=`<div class="persona-form-directive" data-tv-form="${Kb(s)}"></div>`;o=o.replace(a,d)}),o};var SE={ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","p","br","hr","div","span","ul","ol","li","dl","dt","dd","strong","em","b","i","u","s","del","ins","mark","small","sub","sup","abbr","kbd","var","samp","code","a","img","blockquote","pre","details","summary","table","thead","tbody","tfoot","tr","th","td","caption","colgroup","col","input","label","select","option","textarea","button"],ALLOWED_ATTR:["href","src","alt","title","target","rel","loading","width","height","colspan","rowspan","scope","class","id","type","name","value","placeholder","disabled","checked","for","aria-label","aria-hidden","aria-expanded","role","tabindex","data-tv-form","data-message-id","data-persona-component-directive","data-preserve-animation","data-persona-instance"]},AE=/^data:image\/(?:png|jpe?g|gif|webp|bmp|x-icon|avif)/i,Ng=()=>{let e=null;return t=>{let n=$o();if(!n)return mr(t);if(!e){let{DOMPurify:o}=n;e=o(typeof window<"u"?window:void 0),e.addHook("uponSanitizeAttribute",(r,s)=>{if(s.attrName==="src"||s.attrName==="href"){let a=s.attrValue;a.toLowerCase().startsWith("data:")&&!AE.test(a)&&(s.attrValue="",s.keepAttr=!1)}})}return e.sanitize(t,SE)}},pd=e=>e===!1?null:typeof e=="function"?e:Ng();var Xb=/^\s*\|?[\s:|-]*-[\s:|-]*$/,Jb=e=>e.includes("|"),Zb=e=>{let t=e.trim();return t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1)),t.split("|").map(n=>n.trim())},ME=e=>`| ${e.join(" | ")} |`,EE=e=>`| ${Array.from({length:e},()=>"---").join(" | ")} |`,TE=(e,t)=>e.length>=t?e.slice(0,t):e.concat(Array.from({length:t-e.length},()=>"")),ev=e=>{if(!e||!e.includes("|"))return e;let t=e.split(`
2
+ `),n=!1;for(let o=0;o<t.length-1;o++){let r=t[o],s=t[o+1];if(!Jb(r)||Xb.test(r)||!Xb.test(s))continue;let a=Zb(r).length;if(a<1)continue;let l=EE(a);t[o+1]!==l&&(t[o+1]=l,n=!0);let d=o+2;for(;d<t.length;d++){let p=t[d];if(p.trim()===""||!Jb(p))break;let u=ME(TE(Zb(p),a));t[d]!==u&&(t[d]=u,n=!0)}o=d-1}return n?t.join(`
3
+ `):e};var tv="var(--persona-md-table-scroll-fade, 24px)",nv=new WeakSet;function rv(e){e.querySelectorAll("table").forEach(n=>{if(n.parentElement?.classList.contains("persona-table-scroll"))return;let r=document.createElement("div");r.className="persona-table-scroll",n.replaceWith(r),r.appendChild(n)})}function ov(e){let t=e.scrollWidth-e.clientWidth;if(t<=1){e.removeAttribute("data-persona-scroll-x");return}e.setAttribute("data-persona-scroll-x","");let o=getComputedStyle(e).direction==="rtl"?t+e.scrollLeft:e.scrollLeft,r=t-o;e.style.setProperty("--persona-fade-l",o<=1?"0px":tv),e.style.setProperty("--persona-fade-r",r<=1?"0px":tv)}function Fg(e){nv.has(e)||(nv.add(e),e.addEventListener("scroll",t=>{let n=t.target;n?.classList?.contains("persona-table-scroll")&&ov(n)},!0)),e.querySelectorAll(".persona-table-scroll").forEach(ov)}var il="webmcp:",$g=new Map,ud=e=>{$g.clear();for(let t of e){let n=t.title?.trim();n&&$g.set(t.name,n)}},Fi=e=>$g.get(Ug(e)),sv=null;function av(e){if(e.length===0)return"0:empty";let t=e.map(n=>[n.name,n.description??"",n.parametersSchema?JSON.stringify(n.parametersSchema):"",n.origin??"",n.annotations?JSON.stringify(n.annotations):""].join("")).sort();return`${e.length}:${PE(t.join(""))}`}function iv(e,t){let n=3735928559^t,o=1103547991^t;for(let r=0;r<e.length;r++){let s=e.charCodeAt(r);n=Math.imul(n^s,2654435761),o=Math.imul(o^s,1597334677)}return n=Math.imul(n^n>>>16,2246822507),n^=Math.imul(o^o>>>13,3266489909),o=Math.imul(o^o>>>16,2246822507),o^=Math.imul(n^n>>>13,3266489909),4294967296*(2097151&o)+(n>>>0)}function PE(e){let t=iv(e,0).toString(36),n=iv(e,2654435761).toString(36);return`${t}.${n}`}var Ug=e=>e.startsWith(il)?e.slice(il.length):e,Vr=e=>e.startsWith(il),gd=()=>sv?sv():import("@mcp-b/webmcp-polyfill");var{setLoader:hI,load:kE}=bt({fallbackImport:()=>import("@runtypelabs/persona/webmcp-runtime")});var lv=kE;function Ln(e){return e==="card"?"collapsed":e}function Kr(e){return e.split(";",1)[0].trim().toLowerCase()}function LE(e,t){if(!e)return;let n=Object.entries(e);for(let[r,s]of n)if(Kr(r)===t)return{mode:Ln(s),selector:Kr(r)};let o=`${t.split("/",1)[0]}/*`;for(let[r,s]of n)if(Kr(r)===o)return{mode:Ln(s),selector:o}}function jg(e,t){let n=e?.display,o=typeof n=="string"?{default:n}:n??{};if(t.file&&o.files){if(typeof o.files=="string")return{mode:Ln(o.files),matchedBy:{type:"files"}};let l=t.file.mimeType?Kr(t.file.mimeType):void 0,d=l?LE(o.files.byMediaType,l):void 0;if(l&&d)return{mode:d.mode,matchedBy:{type:"mediaType",mediaType:l,selector:d.selector}};if(o.files.default)return{mode:Ln(o.files.default),matchedBy:{type:"files"}}}let r=o.byKind?.[t.artifactType];if(r)return{mode:Ln(r),matchedBy:{type:"kind",kind:t.artifactType,configuredBy:"byKind"}};let s=o.byType?.[t.artifactType];if(s)return{mode:Ln(s),matchedBy:{type:"kind",kind:t.artifactType,configuredBy:"byType"}};let a=t.presentation?.preferredMode;return a?{mode:Ln(a),matchedBy:{type:"preferredMode"}}:o.default?{mode:Ln(o.default),matchedBy:{type:"default"}}:{mode:"panel",matchedBy:{type:"personaDefault"}}}function Uo(e,t){return jg(e,t).mode}function al(e,t){return JSON.stringify({component:e==="inline"?"PersonaArtifactInline":"PersonaArtifactCard",props:{artifactId:t.artifactId,title:t.title,artifactType:t.artifactType,status:t.status,...t.file?{file:t.file}:{},...t.presentation?{presentation:t.presentation}:{},...e==="inline"&&t.component?{component:t.component}:{},...e==="inline"&&t.componentProps?{componentProps:t.componentProps}:{},...t.markdown!==void 0?{markdown:t.markdown}:{}}})}var IE="agent_",RE="flow_";function cv(e){return e.startsWith(IE)?{kind:"agentId",agentId:e}:e.startsWith(RE)?{kind:"flowId",flowId:e}:null}function dv(e,t){let n=e.trim();if(!n)throw new Error("[Persona] `target` is empty.");let o=n.indexOf(":");if(o>0){let a=n.slice(0,o),l=n.slice(o+1);if(a==="runtype"){let p=cv(l);if(p)return p;throw new Error(`[Persona] target "runtype:${l}" is not a valid Runtype agent_/flow_ id.`)}let d=t?.[a];if(!d)throw new Error(`[Persona] No target provider registered for "${a}". Add a \`targetProviders.${a}\` resolver, or use a Runtype agent_/flow_ id.`);return{kind:"payload",payload:d(l).payload}}let r=cv(n);if(r)return r;let s=t?.default;if(s)return{kind:"payload",payload:s(n).payload};throw new Error(`[Persona] target "${n}" has no provider prefix and is not a Runtype agent_/flow_ id. Use "<provider>:${n}", a Runtype TypeID, or register a \`targetProviders.default\` resolver.`)}function pv(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`msg_${e}_${t}`}function $i(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`usr_${e}_${t}`}function Gr(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`ast_${e}_${t}`}function uv(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,10);return`turn_${e}_${t}`}var Qr=require("partial-json");var M=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n};var X=(e,t={},...n)=>{let o=document.createElement(e);if(t.className&&(o.className=t.className),t.text!==void 0&&(o.textContent=t.text),t.attrs)for(let[s,a]of Object.entries(t.attrs))o.setAttribute(s,a);if(t.style){let s=o.style,a=t.style;for(let l of Object.keys(a)){let d=a[l];d!=null&&(s[l]=d)}}let r=n.filter(s=>s!=null);return r.length>0&&o.append(...r),o},hn=(...e)=>e.filter(Boolean).join(" ");var cl="ask_user_question",ll=8,Ui="data-persona-ask-sheet-for",HE="Other",WE="Other\u2026",mv="Type your own answer here",fv="Send",OE="Next",BE="Back",_E="Submit all",DE="Skip",NE=3,qg="data-ask-current-index",zg="data-ask-question-count",hv="data-ask-answers",Vg="data-ask-grouped",yv="data-ask-layout",FE=e=>e.layout==="pills"?"pills":"rows",$E=e=>e.getAttribute(yv)==="pills"?"pills":"rows",gv=!1,bv=e=>e.replace(/["\\]/g,"\\$&"),fr=e=>e.variant==="tool"&&!!e.toolCall&&e.toolCall.name===cl,md=e=>e?.features?.askUserQuestion??{},hr=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 o=t.chunks;if(!o||o.length===0)return{payload:null,complete:n};try{let r=o.join(""),s=(0,Qr.parse)(r,Qr.STR|Qr.OBJ|Qr.ARR);if(s&&typeof s=="object")return{payload:s,complete:n}}catch{}return{payload:null,complete:n}},dl=e=>{let t=Array.isArray(e?.questions)?e.questions:[];return t.length>ll&&!gv&&(gv=!0,typeof console<"u"&&console.warn(`[AgentWidget] ask_user_question received ${t.length} questions; truncating to ${ll}.`)),t.slice(0,ll)},UE=e=>dl(e)[0]??null,jE=(e,t)=>dl(e)[t]??null,vv=(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))},Cv=(e,t,n)=>{if(e!=="rows")return null;let o=M("span","persona-ask-row-affordance");if(o.setAttribute("aria-hidden","true"),t){let r=M("span","persona-ask-row-check");o.appendChild(r)}else{let r=M("span","persona-ask-row-badge");r.textContent=String(n+1),o.appendChild(r)}return o},qE=(e,t,n,o)=>{let s=M("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",o?"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=M("span","persona-ask-row-content"),l=M("span","persona-ask-row-label");if(l.textContent=e.label,a.appendChild(l),e.description){let p=M("span","persona-ask-row-description");p.textContent=e.description,a.appendChild(p)}s.appendChild(a);let d=Cv(n,o,t);d&&s.appendChild(d)}else s.textContent=e.label,e.description&&(s.title=e.description);return s},zE=e=>{let n=M("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},VE=(e,t,n,o)=>{let s=M("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");s.setAttribute("role","group"),s.setAttribute("data-ask-pill-list","true");let a=!!e?.multiSelect,d=(Array.isArray(e?.options)?e.options:[]).filter(u=>u&&typeof u.label=="string"&&u.label.length>0);if(d.length===0&&!n){for(let u=0;u<NE;u++)s.appendChild(zE(o));return s}if(d.forEach((u,m)=>{s.appendChild(qE(u,m,o,a))}),e?.allowFreeText!==!1){let u=o==="rows"?HE:WE;if(o==="rows"){let m=M("div","persona-ask-pill persona-ask-row persona-ask-row--other persona-ask-pill-custom persona-pointer-events-auto");m.setAttribute("data-ask-user-action","focus-free-text"),m.setAttribute("data-option-index",String(d.length)),m.setAttribute("data-ask-other-row","true");let y=M("span","persona-ask-row-content"),h=document.createElement("input");h.type="text",h.className="persona-ask-row-input persona-flex-1 persona-pointer-events-auto",h.placeholder=t.freeTextPlaceholder??mv,h.setAttribute("data-ask-free-text-input","true"),h.setAttribute("aria-label",t.freeTextLabel??u),y.appendChild(h),m.appendChild(y);let C=Cv(o,a,d.length);C&&m.appendChild(C),s.appendChild(m)}else{let m=M("button","persona-ask-pill persona-ask-pill-custom persona-pointer-events-auto");m.type="button",m.setAttribute("data-ask-user-action","open-free-text"),m.textContent=t.freeTextLabel??u,s.appendChild(m)}}return s},wv=(e,t)=>{let o=M("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");o.setAttribute("data-ask-free-text-row","true");let r=document.createElement("input");if(r.type="text",r.className="persona-ask-free-text-input persona-flex-1 persona-pointer-events-auto",r.placeholder=e.freeTextPlaceholder??mv,r.setAttribute("data-ask-free-text-input","true"),o.appendChild(r),t!=="rows"){let s=M("button","persona-ask-free-text-submit persona-pointer-events-auto");s.type="button",s.textContent=e.submitLabel??fv,s.setAttribute("data-ask-user-action","submit-free-text"),o.appendChild(s)}return o},KE=e=>{let t=M("div","persona-ask-multi-actions persona-flex persona-justify-end persona-mt-2");t.setAttribute("data-ask-multi-actions","true");let n=M("button","persona-ask-multi-submit persona-pointer-events-auto");return n.type="button",n.textContent=e.submitLabel??fv,n.setAttribute("data-ask-user-action","submit-multi"),n.disabled=!0,t.appendChild(n),t},GE=(e,t,n)=>{let o=M("div","persona-ask-nav persona-flex persona-justify-between persona-items-center persona-gap-2 persona-mt-2");o.setAttribute("data-ask-nav-row","true");let r=M("button","persona-ask-nav-back persona-pointer-events-auto");r.type="button",r.textContent=n.backLabel??BE,r.setAttribute("data-ask-user-action","back"),r.disabled=e===0,o.appendChild(r);let s=M("div","persona-ask-nav-right persona-flex persona-items-center persona-gap-2"),a=M("button","persona-ask-nav-skip persona-pointer-events-auto");a.type="button",a.textContent=n.skipLabel??DE,a.setAttribute("data-ask-user-action","skip"),s.appendChild(a);let l=M("button","persona-ask-nav-next persona-pointer-events-auto");l.type="button";let d=e===t-1;return l.textContent=d?n.submitAllLabel??_E:n.nextLabel??OE,l.setAttribute("data-ask-user-action",d?"submit-all":"next"),l.disabled=!0,s.appendChild(l),o.appendChild(s),o},js=e=>{let t=e.getAttribute(hv);if(!t)return{};try{let n=JSON.parse(t);return n&&typeof n=="object"?n:{}}catch{return{}}},xv=(e,t)=>{e.setAttribute(hv,JSON.stringify(t))},so=e=>{let t=Number(e.getAttribute(qg)??"0");return Number.isFinite(t)?Math.max(0,Math.floor(t)):0},QE=(e,t)=>{e.setAttribute(qg,String(Math.max(0,Math.floor(t))))},ji=e=>{let t=Number(e.getAttribute(zg)??"1");return Number.isFinite(t)?Math.max(1,Math.floor(t)):1},Yr=e=>e.getAttribute(Vg)==="true",YE=(e,t)=>{let n=e.agentMetadata?.askUserQuestionAnswers;if(!n||typeof n!="object")return{};let o={};return t.forEach((r,s)=>{let a=typeof r?.question=="string"?r.question:"";if(a&&Object.prototype.hasOwnProperty.call(n,a)){let l=n[a];(typeof l=="string"||Array.isArray(l))&&(o[s]=l)}}),o},XE=(e,t)=>{let n=e.agentMetadata?.askUserQuestionIndex;return typeof n!="number"||!Number.isFinite(n)?0:Math.max(0,Math.min(t-1,Math.floor(n)))},fd=(e,t)=>{let{payload:n}=hr(t),o=dl(n),r=js(e),s={},a=new Set;return o.forEach((l,d)=>{let p=typeof l?.question=="string"?l.question:"";p&&(a.has(p)&&typeof console<"u"&&console.warn(`[AgentWidget] ask_user_question has duplicate question text "${p}"; later answer wins.`),a.add(p),Object.prototype.hasOwnProperty.call(r,d)&&(s[p]=r[d]))}),s},Sv=e=>{let t=js(e),n=so(e),o=t[n],r=new Set;typeof o=="string"?r.add(o):Array.isArray(o)&&o.forEach(d=>r.add(d));let s=e.querySelectorAll('[data-ask-user-action="pick"][data-option-label]');s.forEach(d=>{let p=d.getAttribute("data-option-label")??"",u=r.has(p);d.setAttribute("aria-pressed",u?"true":"false"),d.classList.toggle("persona-ask-pill-selected",u)});let a=new Set(Array.from(s).map(d=>d.getAttribute("data-option-label")??"")),l=e.querySelector('[data-ask-free-text-input="true"]');l&&(typeof o=="string"&&o.length>0&&!a.has(o)?(l.value=o,l.closest('[data-ask-free-text-row="true"]')?.classList.remove("persona-hidden")):l.value="")},Av=e=>{if(!Yr(e))return;let t=js(e),n=so(e),o=t[n],r=typeof o=="string"&&o.length>0||Array.isArray(o)&&o.length>0,s=e.querySelector('[data-ask-user-action="next"], [data-ask-user-action="submit-all"]');s&&(s.disabled=!r);let a=e.querySelector('[data-ask-user-action="submit-multi"]');if(a){let l=Array.from(e.querySelectorAll('[aria-pressed="true"][data-option-label]'));a.disabled=l.length===0}},Kg=(e,t,n)=>{let o=md(n),r=$E(e),{payload:s,complete:a}=hr(t),l=Yr(e),d=so(e),p=ji(e),u=l?jE(s,d):UE(s),m=!!u?.multiSelect,y=e.querySelector('[data-ask-step-inline="true"]');y&&(y.textContent=l?`${d+1}/${p}`:"");let h=e.querySelector('[data-ask-stepper="true"]');h&&h.remove();let C=e.querySelector('[data-ask-question="true"]');if(C){let O=typeof u?.question=="string"?u.question:"";C.textContent=O,C.classList.toggle("persona-ask-question-skeleton",!O&&!a)}let S=e.querySelector('[data-ask-pill-list="true"]');if(S){let O=VE(u,o,a,r);S.replaceWith(O)}if(r!=="rows"){let O=e.querySelector('[data-ask-free-text-row="true"]');O&&O.replaceWith(wv(o,r))}let x=e.querySelector('[data-ask-multi-actions="true"]');!l&&m&&!x?e.appendChild(KE(o)):(!m||l)&&x&&x.remove(),e.setAttribute("data-multi-select",m?"true":"false");let k=e.querySelector('[data-ask-nav-row="true"]');if(l){let O=GE(d,p,o);k?k.replaceWith(O):e.appendChild(O)}else k&&k.remove();Sv(e),Av(e)},JE=(e,t,n)=>{let o=md(t),r=FE(o),s=e.toolCall.id,a=dl(n),l=Math.max(1,a.length),d=l>1,p=YE(e,a),u=d?XE(e,l):0,m=M("div",["persona-ask-sheet",`persona-ask-sheet--${r}`,"persona-pointer-events-auto","persona-ask-sheet-enter"].join(" "));m.setAttribute(Ui,s),m.setAttribute("data-tool-call-id",s),m.setAttribute("data-message-id",e.id),m.setAttribute(zg,String(l)),m.setAttribute(qg,String(u)),m.setAttribute(Vg,d?"true":"false"),m.setAttribute(yv,r),xv(m,p),m.setAttribute("role","group"),m.setAttribute("aria-label","Suggested answers"),o.slideInMs!==void 0&&m.style.setProperty("--persona-ask-sheet-duration",`${o.slideInMs}ms`),vv(m,o);let y=M("div","persona-ask-sheet-header persona-flex persona-items-center persona-gap-3"),h=M("div","persona-ask-sheet-question persona-flex-1");h.setAttribute("data-ask-question","true"),h.textContent="",y.appendChild(h);let C=M("span","persona-ask-sheet-step-inline");C.setAttribute("data-ask-step-inline","true"),C.textContent="",y.appendChild(C),m.appendChild(y);let x=M("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");return x.setAttribute("data-ask-pill-list","true"),x.setAttribute("role","group"),m.appendChild(x),r!=="rows"&&m.appendChild(wv(o,r)),Kg(m,e,t),requestAnimationFrame(()=>{requestAnimationFrame(()=>m.classList.remove("persona-ask-sheet-enter"))}),m},ZE=(e,t,n)=>{let{payload:o}=hr(t),r=Math.max(1,dl(o).length);r>ji(e)&&(e.setAttribute(zg,String(r)),r>1&&!Yr(e)&&e.setAttribute(Vg,"true")),Kg(e,t,n)},Mv=(e,t)=>{let n=M("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 o=md(t);vv(n,o);let r=M("span","persona-ask-stub-label"),{complete:s}=hr(e);return r.textContent=s?"Awaiting your response\u2026":"Preparing options\u2026",n.appendChild(r),n},qi=(e,t,n)=>{if(!n||!fr(e)||md(t).enabled===!1)return;let r=e.toolCall.id;n.querySelectorAll(`[${Ui}]`).forEach(p=>{p.getAttribute(Ui)!==r&&p.remove()});let a=n.querySelector(`[${Ui}="${bv(r)}"]`);if(a){ZE(a,e,t);return}let{payload:l}=hr(e),d=JE(e,t,l);n.appendChild(d)},Xr=(e,t)=>{if(!e)return;let n=t?`[${Ui}="${bv(t)}"]`:`[${Ui}]`;e.querySelectorAll(n).forEach(r=>{r.classList.add("persona-ask-sheet-leave");let s=Number.parseInt(getComputedStyle(r).getPropertyValue("--persona-ask-sheet-duration")||"180",10);setTimeout(()=>r.remove(),Number.isFinite(s)?s:180)})},Gg=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),Jr=(e,t)=>{let n=js(e),o=so(e);typeof t=="string"&&t.length===0||Array.isArray(t)&&t.length===0?delete n[o]:n[o]=t,xv(e,n),Sv(e),Av(e)},hd=(e,t,n,o)=>{let r=ji(e),s=Math.max(0,Math.min(r-1,o));QE(e,s),Kg(e,t,n)};var jo="suggest_replies";var Qg={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:"object",properties:{label:{type:"string",minLength:1,maxLength:80},prompt:{type:"string",minLength:1,maxLength:500},description:{type:"string",minLength:1,maxLength:160}},required:["label"],additionalProperties:!1}}},required:["suggestions"],additionalProperties:!1},yd={name:jo,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. Give each suggestion a `label` with the short visible text, an optional `prompt` with the fuller text placed as the user's message (defaults to the label), and an optional `description` with one line of supporting copy. Suggestions are sent as the user's next message, so phrase prompts 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: do not add further commentary after calling this tool; end your turn.",parametersSchema:Qg,origin:"sdk",annotations:{readOnlyHint:!0}},Tv=()=>({content:[{type:"text",text:"Suggestions shown to the user."}]}),qs=e=>e.variant==="tool"&&e.toolCall?.name===jo,Yg=e=>{let t=e;if(typeof t=="string")try{t=JSON.parse(t)}catch{return[]}let n=t?.suggestions;if(!Array.isArray(n))return[];let o=n.flatMap(r=>{if(typeof r=="string"){let l=r.trim();return l?[l]:[]}if(!r||typeof r!="object")return[];let s=r;if(typeof s.label!="string"||!s.label.trim())return[];let a={label:s.label.trim()};return typeof s.prompt=="string"&&s.prompt.trim()&&(a.prompt=s.prompt.trim()),typeof s.description=="string"&&s.description.trim()&&(a.description=s.description.trim()),[a]});return o.length>4?(console.warn(`[persona] suggest_replies: ${o.length} suggestions exceeds the cap of 4; extra suggestions dropped.`),o.slice(0,4)):o},bd=e=>{for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role==="user")return null;if(!qs(n))continue;let o=Yg(n.toolCall?.args);return o.length>0?o:null}return null},Ev=new Set,eT=(e,t,n)=>{let o=`${e}:${t}:${n}`;Ev.has(o)||(Ev.add(o),console.warn(`[persona] suggestions.followUps.${e} and features.suggestReplies.${e} disagree; suggestions.followUps.${e} wins.`))},Zr=e=>{let t=e?.suggestions?.followUps,n=e?.features?.suggestReplies,o=a=>{let l=t?.[a],d=n?.[a];l===void 0||d===void 0||l!==d&&eT(a,d,l)};e&&(o("enabled"),o("expose"));let r=t?.enabled??n?.enabled??!0,s=r?t?.expose??n?.expose??!1:!1;return{enabled:r,expose:s}};var Xg={type:"object",properties:{questions:{type:"array",minItems:1,maxItems:ll,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: 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},Jg={name:cl,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: 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:Xg,origin:"sdk",annotations:{readOnlyHint:!0}},zi=e=>{let t=[],n=e?.features?.askUserQuestion;return n?.expose===!0&&n.enabled!==!1&&t.push(Jg),Zr(e).expose&&t.push(yd),t};var yr=require("partial-json"),vd=e=>e.replace(/\\n/g,`
4
+ `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\"),Cd=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)}},tT=e=>{let t=e.completedAt??Date.now(),n=e.startedAt??t,r=(e.durationMs!==void 0?e.durationMs:Math.max(0,t-n))/1e3;return r<.1?"Thought for <0.1 seconds":`Thought for ${r>=10?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")} seconds`},Pv=e=>e.status==="complete"?tT(e):e.status==="pending"?"Waiting":"",nT=e=>{let n=(typeof e.duration=="number"?e.duration:typeof e.durationMs=="number"?e.durationMs:Math.max(0,(e.completedAt??Date.now())-(e.startedAt??e.completedAt??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 kv=e=>e.status==="complete"?nT(e):"Using tool...",wd=e=>{let t=e/1e3;return t<.1?"<0.1s":t>=10?`${Math.round(t)}s`:`${t.toFixed(1).replace(/\.0$/,"")}s`},ul=e=>{let t=typeof e.duration=="number"?e.duration:typeof e.durationMs=="number"?e.durationMs:Math.max(0,(e.completedAt??Date.now())-(e.startedAt??e.completedAt??Date.now()));return wd(t)},xd=e=>{let t=e.durationMs!==void 0?e.durationMs:Math.max(0,(e.completedAt??Date.now())-(e.startedAt??e.completedAt??Date.now()));return wd(t)},Zg=(e,t,n)=>{if(!t)return n;let o=e.name?.trim()||"tool",r=ul(e);return t.replace(/\{toolName\}/g,o).replace(/\{duration\}/g,r)},Sd=(e,t)=>{let n=e.replace(/\{toolName\}/g,t),o=[],r=/\*\*(.+?)\*\*|\*(.+?)\*|~(.+?)~/g,s=0,a;for(;(a=r.exec(n))!==null;)a.index>s&&pl(o,n.slice(s,a.index),[]),a[1]!==void 0?pl(o,a[1],["bold"]):a[2]!==void 0?pl(o,a[2],["italic"]):a[3]!==void 0&&pl(o,a[3],["dim"]),s=a.index+a[0].length;return s<n.length&&pl(o,n.slice(s),[]),o},pl=(e,t,n)=>{let o=t.split("{duration}");for(let r=0;r<o.length;r++)o[r]&&e.push({text:o[r],styles:n}),r<o.length-1&&e.push({text:"{duration}",styles:n,isDuration:!0})},oT=()=>{let e=null,t=0,n=o=>{let r=/"text"\s*:\s*"((?:[^"\\]|\\.|")*?)"/,s=o.match(r);if(s&&s[1])try{return s[1].replace(/\\n/g,`
5
5
  `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return s[1]}let a=/"text"\s*:\s*"((?:[^"\\]|\\.)*)/,l=o.match(a);if(l&&l[1])try{return l[1].replace(/\\n/g,`
6
- `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return l[1]}return null};return{getExtractedText:()=>e,processChunk:async o=>{if(o.length<=t)return e!==null?{text:e,raw:o}:null;let r=o.trim();if(!r.startsWith("{")&&!r.startsWith("["))return null;let s=n(o);return s!==null&&(e=s),t=o.length,e!==null?{text:e,raw:o}:null},close:async()=>{}}},ul=e=>{try{let t=JSON.parse(e);if(t&&typeof t=="object"&&typeof t.text=="string")return t.text}catch{return null}return null},Sd=()=>{let e={processChunk:t=>null,getExtractedText:()=>null};return e.__isPlainTextParser=!0,e},Ad=()=>{let e=ZE();return{processChunk:async t=>{let n=t.trim();return!n.startsWith("{")&&!n.startsWith("[")?null:e.processChunk(t)},getExtractedText:e.getExtractedText.bind(e),close:e.close?.bind(e)}},Md=()=>{let e=null,t=0;return{getExtractedText:()=>e,processChunk:n=>{let o=n.trim();if(!o.startsWith("{")&&!o.startsWith("["))return null;if(n.length<=t)return e!==null||e===""?{text:e||"",raw:n}:null;try{let r=(0,gr.parse)(n,gr.STR|gr.OBJ);r&&typeof r=="object"&&(r.component&&typeof r.component=="string"?e=typeof r.text=="string"?bd(r.text):"":r.type==="init"&&r.form?e="":typeof r.text=="string"&&(e=bd(r.text)))}catch{}return t=n.length,e!==null?{text:e,raw:n}:null},close:()=>{}}},Ev=e=>{let t=null,n=0,r=e||(s=>{if(!s||typeof s!="object")return null;let a=l=>typeof l=="string"?bd(l):null;if(s.component&&typeof s.component=="string")return typeof s.text=="string"?bd(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 l=(0,gr.parse)(s,gr.STR|gr.OBJ),d=r(l);d!==null&&(t=d)}catch{}return n=s.length,{text:t||"",raw:s}},close:()=>{}}},Ed=()=>{let e=null;return{processChunk:t=>{if(!t.trim().startsWith("<"))return null;let o=t.match(/<text[^>]*>([\s\S]*?)<\/text>/);return o&&o[1]?(e=o[1],{text:e,raw:t}):null},getExtractedText:()=>e}};var Tv="4.20.0";var Uo=Tv;var $i="[Image]";function Pv(e){return typeof e=="string"?[{type:"text",text:e}]:e}function Td(e){return typeof e=="string"?e:e.filter(t=>t.type==="text").map(t=>t.text).join("")}function Ui(e){return typeof e=="string"?!1:e.some(t=>t.type==="image")}function kv(e){return typeof e=="string"?[]:e.filter(t=>t.type==="image")}function ao(e){return{type:"text",text:e}}function Pd(e,t){return{type:"image",image:e,...t?.mimeType&&{mimeType:t.mimeType},...t?.alt&&{alt:t.alt}}}async function Lv(e){return new Promise((t,n)=>{let o=new FileReader;o.onload=()=>{let r=o.result;t({type:"image",image:r,mimeType:e.type,alt:e.name})},o.onerror=()=>n(new Error("Failed to read file")),o.readAsDataURL(e)})}function Iv(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 Rv=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml","image/bmp"],tT=["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"],mr=[...Rv,...tT];function nT(e){return Rv.includes(e)||e.startsWith("image/")}function kd(e){return nT(e.type)}function Hv(e,t,n){return{type:"file",data:e,mimeType:t,filename:n}}async function Wv(e){return new Promise((t,n)=>{let o=new FileReader;o.onload=()=>{let r=o.result;kd(e)?t({type:"image",image:r,mimeType:e.type,alt:e.name}):t({type:"file",data:r,mimeType:e.type,filename:e.name})},o.onerror=()=>n(new Error("Failed to read file")),o.readAsDataURL(e)})}function Ov(e,t=mr,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 oT(e){let t=e.split(".");return t.length>1?t.pop().toLowerCase():""}function Bv(e,t){let n=oT(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 rT=["user","assistant","system"],sT=0;function _v(e){if(typeof e!="string"||e==="")return null;let t=Date.parse(e);return Number.isNaN(t)?null:t}function Ld(e){return typeof e=="string"?e:void 0}function iT(e){if(typeof e!="object"||e===null)return null;let t=e;switch(t.type){case"text":return typeof t.text=="string"?ao(t.text):null;case"image":return typeof t.image=="string"?Pd(t.image,{mimeType:Ld(t.mimeType),alt:Ld(t.alt)}):null;case"file":return typeof t.data=="string"&&typeof t.mimeType=="string"&&typeof t.filename=="string"?Hv(t.data,t.mimeType,t.filename):null;case"audio":return typeof t.audio=="string"?{type:"audio",audio:t.audio,...Ld(t.mimeType)!==void 0&&{mimeType:t.mimeType}}:null;case"video":return typeof t.video=="string"?{type:"video",video:t.video,...Ld(t.mimeType)!==void 0&&{mimeType:t.mimeType}}:null;default:return null}}function aT(e,t){let n=_v(t),o=e.map(a=>_v(a.timestamp)),r=new Array(e.length),s=0;for(;s<o.length;){let a=o[s];if(a!==null){r[s]=a,s+=1;continue}let l=s;for(;l+1<o.length&&o[l+1]===null;)l+=1;let d=l-s+1,p=s>0?r[s-1]:null,u=l+1<o.length?o[l+1]:null,m=u!==null&&n!==null?Math.min(u,n):u??n;for(let y=0;y<d;y+=1)r[s+y]=m!==null?m-(d-y):p!==null?p+y+1:sT+y;s=l+1}return r.map(a=>new Date(a).toISOString())}function Dv(e,t){let n=aT(e,t?.beforeCreatedAt),o=[];return e.forEach((r,s)=>{if(typeof r?.id!="string"||r.id===""||!rT.includes(r.role))return;let a=r.role,l=n[s];if(r.displayAvailable===!1){let d={historyDisplayUnavailable:!0};o.push({id:r.id,role:a,content:"",createdAt:l,agentMetadata:d});return}if(typeof r.displayContent=="string"){o.push({id:r.id,role:a,content:r.displayContent,createdAt:l});return}if(typeof r.content=="string"){o.push({id:r.id,role:a,content:r.content,createdAt:l});return}if(Array.isArray(r.content)){let d=r.content.map(iT).filter(u=>u!==null),p=Td(d);o.push({id:r.id,role:a,content:p||(Ui(d)?$i:""),createdAt:l,...d.length>0&&{contentParts:d}});return}o.push({id:r.id,role:a,content:"",createdAt:l})}),o}function gl(e){let t=e.content;if(typeof t!="string"||t==="")return;let n=e.contentParts??e.llmContent??e.rawContent??t;if(!(typeof n=="string"&&n===t))return t}function ml(e,t){let n=new Map;for(let o of e)n.set(o.id,o);for(let o of t)n.set(o.id,o);return[...n.values()].sort((o,r)=>{let s=new Date(o.createdAt).getTime(),a=new Date(r.createdAt).getTime();if(!Number.isNaN(s)&&!Number.isNaN(a)&&s!==a)return s-a;let l=o.sequence??0,d=r.sequence??0;return l!==d?l-d:o.id.localeCompare(r.id)})}var lT="https://api.runtype.com/v1/dispatch",Nv="https://api.runtype.com",ze=class extends Error{constructor(t,n,o){super(n),this.name="HistoryClientError",this.code=t,o?.retryAfterSeconds!==void 0&&(this.retryAfterSeconds=o.retryAfterSeconds)}},Fv=32768,Jg=49152,$v=e=>{let t=e??{},n=typeof t.targetId=="string"?t.targetId:typeof t.flowId=="string"?t.flowId:null;return{id:typeof t.id=="string"?t.id:"",title:typeof t.title=="string"?t.title:"",targetId:n,preview:typeof t.preview=="string"?t.preview:null,messageCount:typeof t.messageCount=="number"?t.messageCount:0,createdAt:typeof t.createdAt=="string"?t.createdAt:"",updatedAt:typeof t.updatedAt=="string"?t.updatedAt:""}},Uv=e=>"reason"in e?e.reason:void 0,jv="The identity proof was not admitted; account history is unavailable",qv="The identity proof was rejected",zv="The request carried no visitor credential",Vv="The stored visitor belongs to a different signed-in user",Kv=(e,t)=>e instanceof ze&&e.code===t;function cT(e){let t=e.toLowerCase(),o={"application/pdf":"pdf","application/json":"json","application/zip":"zip","text/plain":"txt","text/csv":"csv","text/markdown":"md"}[t];if(o)return`attachment.${o}`;let r=t.indexOf("/");if(r>0){let s=t.slice(r+1).split(";")[0]?.trim()??"";if(s&&s!=="octet-stream"&&/^[a-z0-9.+-]+$/i.test(s))return`attachment.${s}`}return"attachment"}var Zg=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 dT(e){switch(e){case"json":return Md;case"regex-json":return Ad;case"xml":return Ed;default:return Sd}}var Gv=e=>e.startsWith("{")||e.startsWith("[")||e.startsWith("<");function pT(e,t){if(!e)return t;let n=e.trim(),o=t.trim();if(n.length===0)return t;if(o.length===0)return e;let r=Gv(n);if(!Gv(o))return e;if(!r||o===n||o.startsWith(n))return t;let a=ul(e);return ul(t)!==null&&a===null?t:e}var js=class{constructor(t={},n={}){this.config=t;this.historyInternals=n;this.currentClientTurnId=null;this.clientSession=null;this.sessionInitPromise=null;this.lastSentClientToolsFingerprint=null;this.clientToolsFingerprintSessionId=null;this.sentNonEmptyClientToolsSessionId=null;this.historyUnavailable=!1;this.historyUnavailableWarned=!1;this.claimInFlight=!1;this.historyIdentityStatus=null;this.historyIdentitySubscribers=new Set;this.historyAvailabilitySubscribers=new Set;this.webMcpBridge=null;this.webMcpBridgePromise=null;if(t.target&&(t.agentId||t.flowId||t.agent))throw new Error("[Persona] `target` is mutually exclusive with `agentId`, `flowId`, and `agent`. Set only one routing field.");this.apiUrl=t.apiUrl??lT,this.headers={"Content-Type":"application/json","X-Persona-Version":Uo,...t.headers},this.debug=!!t.debug,this.createStreamParser=t.streamParser??dT(t.parserType),this.contextProviders=t.contextProviders??[],this.requestMiddleware=t.requestMiddleware,this.customFetch=t.customFetch,this.parseSSEEvent=t.parseSSEEvent,this.getHeaders=t.getHeaders,t.webmcp?.enabled===!0&&(this.webMcpBridgePromise=this.createWebMcpBridge(t.webmcp))}createWebMcpBridge(t){return rv().then(n=>{let o=new n.WebMcpBridge(t,{recordToolDisplayTitles:pd,getToolDisplayTitle:Oi,loadPolyfill:ud});return this.pendingWebMcpConfirmHandler!==void 0&&o.setConfirmHandler(this.pendingWebMcpConfirmHandler),this.webMcpBridge=o,o}).catch(n=>(this.webMcpBridgePromise=null,console.warn("[Persona] Failed to load the WebMCP runtime chunk",n),null))}getWebMcpBridge(){return this.webMcpBridge?Promise.resolve(this.webMcpBridge):this.config.webmcp?.enabled!==!0?Promise.resolve(null):(this.webMcpBridgePromise||(this.webMcpBridgePromise=this.createWebMcpBridge(this.config.webmcp)),this.webMcpBridgePromise)}updateConfig(t){this.config=t}setHistoryInternals(t){this.historyInternals=t}setSSEEventCallback(t){this.onSSEEvent=t}setWebMcpConfirmHandler(t){this.pendingWebMcpConfirmHandler=t,this.webMcpBridge?.setConfirmHandler(t)}isWebMcpOperational(){return this.webMcpBridge?.isOperational()===!0}executeWebMcpToolCall(t,n,o){return this.config.webmcp?.enabled!==!0?null:this.getWebMcpBridge().then(r=>r?r.executeToolCall(t,n,o):{isError:!0,content:[{type:"text",text:"WebMCP runtime failed to load."}]})}getSSEEventCallback(){return this.onSSEEvent}isClientTokenMode(){return!!this.config.clientToken}routing(){let{agentId:t,flowId:n,target:o,targetProviders:r}=this.config;if(!o)return{agentId:t,flowId:n};let s=iv(o,r);return s.kind==="agentId"?{agentId:s.agentId}:s.kind==="flowId"?{flowId:s.flowId}:{targetPayload:s.payload}}isAgentMode(){return!!(this.config.agent||this.routing().agentId)}clientApiBase(){return this.config.apiUrl?.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,"")||Nv}getClientApiUrl(t){return`${this.clientApiBase()}/v1/client/${t}`}getClientSession(){return this.clientSession}async initSession(){if(!this.isClientTokenMode())throw new Error("initSession() only available in client token mode");if(this.clientSession&&new Date<this.clientSession.expiresAt)return this.clientSession;if(this.sessionInitPromise)return this.sessionInitPromise;this.sessionInitPromise=this._doInitSession();try{let t=await this.sessionInitPromise;return this.clientSession=t,this.resetClientToolsFingerprint(),this.config.onSessionInit?.(t),t}finally{this.sessionInitPromise=null}}isHistoryCapable(){return this.config.features?.history?.enabled===!0&&this.isClientTokenMode()&&!this.historyUnavailable}async readVisitorToken(){let t=this.historyInternals.visitorStore;return t?(await t.ready,await t.get()??null):null}markHistoryUnavailable(){if(!this.historyUnavailable){this.setHistoryIdentityStatus({state:"unavailable",reason:"history_disabled"}),this.historyUnavailable=!0,!this.historyUnavailableWarned&&typeof console<"u"&&(this.historyUnavailableWarned=!0,console.warn("[Persona] Visitor history is disabled for this surface; continuing without it.")),this.historyInternals.onHistoryAvailabilityChanged?.(!1);for(let t of[...this.historyAvailabilitySubscribers])t(!1)}}getHistoryIdentityStatus(){return this.historyIdentityStatus??this.restingIdentityStatus()}subscribeHistoryIdentityStatus(t){return this.historyIdentitySubscribers.add(t),()=>{this.historyIdentitySubscribers.delete(t)}}subscribeHistoryAvailability(t){return this.historyAvailabilitySubscribers.add(t),this.historyUnavailable&&t(!1),()=>{this.historyAvailabilitySubscribers.delete(t)}}restingIdentityStatus(){return this.isClientTokenMode()?this.config.features?.history?.enabled!==!0||this.historyUnavailable?{state:"unavailable",reason:"history_disabled"}:this.browserOnlyStatus():{state:"unavailable",reason:"ineligible_mode"}}browserOnlyStatus(){let t=this.historyIdentityStatus;return t?.state==="browser_only"?t:this.derivedBrowserOnly()}derivedBrowserOnly(){return this.config.features?.history?.scope==="browser"?{state:"browser_only",reason:"configured_browser_scope"}:this.config.getIdentityProof?{state:"browser_only",reason:"proof_unavailable_before_binding"}:{state:"browser_only",reason:"no_identity_provider"}}setHistoryIdentityStatus(t){let n=this.getHistoryIdentityStatus(),o=n.state===t.state&&Uv(n)===Uv(t);if(this.historyIdentityStatus=t,!o){this.historyInternals.onHistoryIdentityStatusChanged?.(t);for(let r of[...this.historyIdentitySubscribers])r(t)}}async createClientSession(t){let n=this.isHistoryCapable()&&!t.omitVisitorFields,o=null;n&&(await this.historyInternals.historyBootstrapReady,o=await this.readVisitorToken());let r=this.routing(),s=r.agentId??r.flowId,a=n?t.conversationId:void 0,l={token:this.config.clientToken,...s&&{flowId:s},...n&&{visitorHistory:!0},...n&&o?{visitorToken:o}:{},...n&&t.identityProof?{identityProof:t.identityProof}:{},...a?{conversationId:a}:t.storedSessionId?{sessionId:t.storedSessionId}:{}},d=await fetch(this.getClientApiUrl("init"),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":Uo},body:JSON.stringify(l)});if(!d.ok){let u=await d.json().catch(()=>({error:"Session initialization failed"}));if(n&&d.status===403&&u.error==="visitor_history_disabled"){if(this.markHistoryUnavailable(),a)throw new ze("history_disabled","Visitor history is disabled for this surface");return this.createClientSession({...t,omitVisitorFields:!0})}throw n&&d.status===401&&u.error==="visitor_required"?new ze("visitor_required","Visitor credential no longer resolves"):a&&d.status===404?new ze("not_found","Conversation not found"):d.status===401?new Error(`Invalid client token: ${u.hint||u.error}`):d.status===403?new Error(`Origin not allowed: ${u.hint||u.error}`):new Error(u.error||"Failed to initialize session")}let p=await d.json();return p.visitor?.token&&await this.historyInternals.visitorStore?.set(p.visitor.token),{sessionId:p.sessionId,expiresAt:new Date(p.expiresAt),flow:p.flow,...p.conversationId?{conversationId:p.conversationId}:{},...p.targetId??p.flow?.id?{targetId:p.targetId??p.flow?.id}:{},...p.conversationRevision?{conversationRevision:p.conversationRevision}:{},...p.visitor?{visitor:p.visitor}:{},config:{welcomeMessage:p.config.welcomeMessage,placeholder:p.config.placeholder,theme:p.config.theme}}}async _doInitSession(){if(!this.isHistoryCapable()){let o=this.config.getStoredSessionId?.()||null,r=await this.createClientSession({storedSessionId:o});return this.config.setStoredSessionId?.(r.sessionId),r}await this.historyInternals.historyBootstrapReady;let t=this.config.getStoredConversationId?.()||null,n=await this.readVisitorToken();if(t&&n)try{let o=await this.createClientSession({conversationId:t});return this.finishInit(o,t,!1)}catch(o){if(!Kv(o,"not_found")&&!Kv(o,"visitor_required"))throw o;return this.ordinaryInit(t,!0)}return this.ordinaryInit(t,!1)}async ordinaryInit(t,n){let o=this.historyInternals.visitorStore;return o&&this.isHistoryCapable()&&!await this.readVisitorToken()?o.withFirstInitLock(()=>this.doOrdinaryInit(t,n)):this.doOrdinaryInit(t,n)}async doOrdinaryInit(t,n){let o=this.config.getStoredSessionId?.()||null,r=await this.createClientSession({storedSessionId:o}),s=await this.claimFirstConversation(r);return this.finishInit(s,t,n)}async reinitWithProof(t){let n=this.config.getStoredSessionId?.()||null,o=this.config.getStoredConversationId?.()||null,r=await this.createClientSession({storedSessionId:n,identityProof:t}),s=this.finishInit(r,o,!1);return this.clientSession=s,this.sessionInitPromise=null,this.resetClientToolsFingerprint(),s}async claimFirstConversation(t){if(!t.visitor?.token||this.claimInFlight||!this.isHistoryCapable())return t;this.claimInFlight=!0;try{return await this.createClientSession({storedSessionId:t.sessionId})}catch{return t}finally{this.claimInFlight=!1}}finishInit(t,n,o){let r=t.conversationId;return r&&n&&(o||r!==n)&&this.historyInternals.onHistoryContinuityChanged?.({previousConversationId:n,conversationId:r}),this.config.setStoredSessionId?.(t.sessionId),r&&(this.config.setStoredConversationId?.(r),this.historyInternals.setStoredConversationRevision?.(t.conversationRevision??null)),t}prepared(t){let n=!1;return{session:t,commit:()=>{n||(n=!0,this.clientSession=t,this.resetClientToolsFingerprint())},discard:()=>{n=!0}}}async prepareConversationSession(t,n){if(!this.isClientTokenMode())throw new Error("prepareConversationSession() only available in client token mode");if(!this.isHistoryCapable())throw new ze("history_disabled","Visitor history is disabled for this surface");await this.historyInternals.historyBootstrapReady;let o=n?.proof??null;if(!await this.readVisitorToken()&&!o)throw new ze("conversation_credential_missing","Reopening a conversation requires a stored visitor token or an identity proof");let s=await this.createClientSession({conversationId:t,identityProof:o});return this.prepared(s)}async prepareNewConversationSession(){if(!this.isClientTokenMode())throw new Error("prepareNewConversationSession() only available in client token mode");await this.historyInternals.historyBootstrapReady;let t=await this.createClientSession({});return this.prepared(t)}handleExternalCredentialChange(){this.clearClientSession(),this.isHistoryCapable()&&this.setHistoryIdentityStatus(this.derivedBrowserOnly())}clearClientSession(){this.clientSession=null,this.sessionInitPromise=null,this.resetClientToolsFingerprint()}resetClientToolsFingerprint(){this.lastSentClientToolsFingerprint=null,this.clientToolsFingerprintSessionId=null,this.sentNonEmptyClientToolsSessionId=null}getFeedbackApiUrl(){return`${this.clientApiBase()}/v1/client/feedback`}async sendFeedback(t){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 r={...t,...this.config.clientToken&&{token:this.config.clientToken}},s=await fetch(this.getFeedbackApiUrl(),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":Uo},body:JSON.stringify(r)});if(!s.ok){let a=await s.json().catch(()=>({error:"Feedback submission failed"}));throw s.status===401?(this.clientSession=null,this.config.onSessionExpired?.(),new Error("Session expired. Please refresh to continue.")):new Error(a.error||"Failed to submit feedback")}}async submitMessageFeedback(t,n){let o=this.getClientSession();if(!o)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:o.sessionId,messageId:t,type:n})}async submitCSATFeedback(t,n){let o=this.getClientSession();if(!o)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:o.sessionId,type:"csat",rating:t,comment:n})}async submitNPSFeedback(t,n){let o=this.getClientSession();if(!o)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:o.sessionId,type:"nps",rating:t,comment:n})}historyUrl(t,n){let o=new URLSearchParams;for(let[s,a]of Object.entries(n))a===void 0||a===""||o.set(s,String(a));let r=o.toString();return`${this.clientApiBase()}/v1/client/${t}${r?`?${r}`:""}`}resolveHistoryScope(t){if(t)return t;let n=this.config.features?.history?.scope;return n||(this.config.getIdentityProof?"verified-user":"browser")}async resolveIdentityProof(t,n){let o=this.config.getIdentityProof;if(!o)return n&&this.setHistoryIdentityStatus(this.browserOnlyStatus()),null;n&&this.setHistoryIdentityStatus({state:"verifying"});let r;try{r=await o()??null}catch{throw n&&this.setHistoryIdentityStatus({state:"identity_provider_failed"}),new ze("identity_provider_failed","The identity proof provider failed")}if(r)return r;if(t.visitor?.endUserId!=null)throw n&&this.setHistoryIdentityStatus({state:"authentication_required",reason:"proof_unavailable_after_binding"}),new ze("authentication_required","This browser is bound to a signed-in user and needs a fresh identity proof");return n&&this.setHistoryIdentityStatus({state:"browser_only",reason:"proof_unavailable_before_binding"}),null}async bindIdentity(t,n,o){if(t.visitor?.endUserId!=null)return t;let r=await this.reinitWithProof(n);if(!(r.visitor?.identityStatus==="admitted"&&r.visitor?.endUserId!=null))throw o&&this.setHistoryIdentityStatus({state:"configuration_error",reason:"proof_not_admitted"}),new ze("proof_not_admitted",jv);return r}async readErrorCode(t){let n=await t.json().catch(()=>({}));return typeof n.error=="string"?n.error:typeof n.message=="string"?n.message:""}async recoverFromUnauthorized(t,n,o){let r=t.toLowerCase();if(r.includes("invalid_identity_proof"))throw o&&this.setHistoryIdentityStatus({state:"authentication_required",reason:"invalid_identity_proof"}),new ze("invalid_identity_proof",qv);if(r.includes("visitor token required"))throw new ze("visitor_token_missing",zv);if(r.includes("visitor_identity_mismatch")){if(!n)throw o&&this.setHistoryIdentityStatus({state:"authentication_required",reason:"proof_unavailable_after_binding"}),new ze("visitor_identity_mismatch",Vv);return this.reinitWithProof(n)}if(r.includes("expired")||r.includes("not found"))return this.clearClientSession(),this.initSession();throw new ze("unauthorized",t||"History request was not authorized")}async historyErrorFor(t,n){let o=await this.readErrorCode(t);if(t.status===404)return new ze("not_found","Conversation not found");if(t.status===429){let r=Number.parseInt(t.headers.get("Retry-After")??"",10);return new ze("rate_limited","Too many history requests",{...Number.isFinite(r)?{retryAfterSeconds:r}:{}})}if(t.status===503&&o.includes("identity_proof_not_admitted"))return n&&this.setHistoryIdentityStatus({state:"configuration_error",reason:"proof_not_admitted"}),new ze("proof_not_admitted",jv);if(t.status===401){let r=o.toLowerCase();return r.includes("invalid_identity_proof")?(n&&this.setHistoryIdentityStatus({state:"authentication_required",reason:"invalid_identity_proof"}),new ze("invalid_identity_proof",qv)):r.includes("visitor token required")?new ze("visitor_token_missing",zv):r.includes("visitor_identity_mismatch")?new ze("visitor_identity_mismatch",Vv):new ze("unauthorized",o||"History request was not authorized")}return new ze("request_failed",o||`History request failed (${t.status})`)}commitIdentityAcknowledgement(t,n,o){let r=t?.toLowerCase()??null;if(n){if(r==="admitted"){o&&this.setHistoryIdentityStatus({state:"verified"});return}throw o&&this.setHistoryIdentityStatus({state:"configuration_error",reason:"proof_not_admitted"}),r==="ignored"?new ze("identity_contract_violation","Server reported an ignored identity proof on a success response"):new ze("proof_not_admitted","The response did not acknowledge the identity proof this request sent")}if(r==="admitted")throw new ze("identity_contract_violation","Server admitted an identity proof that was never sent");o&&this.setHistoryIdentityStatus(this.browserOnlyStatus())}async historyFetch(t,n){this.assertHistoryUsable();let o=n.trackIdentity!==!1,r=await this.initSession(),s=null;this.resolveHistoryScope(n.scope)==="verified-user"&&(s=await this.resolveIdentityProof(r,o),s&&(r=await this.bindIdentity(r,s,o)));let a=this.historyInternals.visitorStore,l=!1;for(;;){let d=a?.revision()??0,p=await this.readVisitorToken();if(!p&&!n.visitorTokenOptional)throw new ze("visitor_token_missing","No visitor credential is stored for this browser");let u=await fetch(this.historyUrl(t,{...n.query,sessionId:r.sessionId}),{method:n.method,headers:{"X-Persona-Version":Uo,...p?{"X-Visitor-Token":p}:{},...s?{"X-Identity-Proof":s}:{},...n.body!==void 0?{"Content-Type":"application/json"}:{}},...n.body!==void 0?{body:JSON.stringify(n.body)}:{},...n.keepalive?{keepalive:!0}:{}});if(u.status===401&&!l){l=!0,r=await this.recoverFromUnauthorized(await this.readErrorCode(u),s,o);continue}if(!u.ok)throw await this.historyErrorFor(u,o);let m=u.headers.get("X-History-Identity-Status"),y=await u.json().catch(()=>{});if(a&&a.revision()!==d)throw new ze("credential_changed","The visitor credential changed while the request was in flight");return this.commitIdentityAcknowledgement(m,s!==null,o),y}}assertHistoryUsable(){if(!this.isClientTokenMode())throw new Error("Conversation history is only available in client token mode");if(!this.isHistoryCapable())throw new ze("history_disabled","Visitor history is disabled for this surface")}async listConversations(t){let n=await this.historyFetch("conversations",{method:"GET",query:{...t?.cursor?{cursor:t.cursor}:{},...t?.limit!==void 0?{limit:t.limit}:{},...t?.targetId?{targetId:t.targetId}:{}},...t?.scope?{scope:t.scope}:{}});return{data:(Array.isArray(n?.data)?n.data:[]).map($v),nextCursor:typeof n?.nextCursor=="string"?n.nextCursor:null}}async getConversation(t,n){let o=await this.historyFetch(`conversations/${encodeURIComponent(t)}`,{method:"GET",query:{...n?.messageCursor?{messageCursor:n.messageCursor}:{}},...n?.scope?{scope:n.scope}:{}}),r=o&&typeof o.conversation=="object"&&o.conversation!==null?o.conversation:o;return{summary:$v(r),messages:Array.isArray(o?.messages)?o.messages:[],nextMessageCursor:typeof o?.nextMessageCursor=="string"?o.nextMessageCursor:null,conversationRevision:typeof o?.conversationRevision=="string"?o.conversationRevision:null}}async finalizeDisplayProjections(t,n){this.assertHistoryUsable();let o=0;for(let d of n){let p=d.displayContent.length;if(p>Fv)throw new ze("payload_too_large",`displayContent exceeds the ${Fv} character limit`);o+=p}if(o>Jg)throw new ze("payload_too_large",`Display projection batch exceeds the ${Jg} character limit`);await this.initSession();let r=this.historyInternals.visitorStore,s=r?.revision()??0,a=await this.historyFetch(`conversations/${encodeURIComponent(t)}/display-projections`,{method:"PATCH",body:{messages:n},scope:"browser",keepalive:o<=Jg,trackIdentity:!1}),l=typeof a?.conversationRevision=="string"?a.conversationRevision:null;return l&&this.clientSession?.conversationId===t&&(r?.revision()??0)===s&&this.historyInternals.setStoredConversationRevision?.(l),{conversationRevision:l}}async deleteConversation(t,n){let o=await this.historyFetch(`conversations/${encodeURIComponent(t)}`,{method:"DELETE",...n?.scope?{scope:n.scope}:{}});return{deleted:typeof o?.deleted=="number"?o.deleted:0}}async deleteAllConversations(t){let n=await this.historyFetch("conversations",{method:"DELETE",query:{...t?.targetId!==void 0?{targetId:t.targetId}:{}},...t?.scope?{scope:t.scope}:{}});return{deleted:typeof n?.deleted=="number"?n.deleted:0}}async resetVisitor(){this.assertHistoryUsable(),this.setHistoryIdentityStatus({state:"resetting"});try{await this.historyFetch("visitor/reset",{method:"POST",scope:"browser",visitorTokenOptional:!0})}finally{await this.historyInternals.visitorStore?.clear(),this.setHistoryIdentityStatus(this.derivedBrowserOnly())}return{reset:!0}}async dispatch(t,n){return t.signal?.throwIfAborted(),this.isClientTokenMode()?this.dispatchClientToken(t,n):this.isAgentMode()?this.dispatchAgent(t,n):this.dispatchProxy(t,n)}async dispatchClientToken(t,n){let o=lv();this.currentClientTurnId=o;let r=()=>this.currentClientTurnId===o,s=a=>{r()&&n(a)};n({type:"status",status:"connecting"});try{let a=await this.initSession();if(new Date>=new Date(a.expiresAt.getTime()-6e4)){this.clearClientSession(),this.config.onSessionExpired?.();let h=new Error("Session expired. Please refresh to continue.");throw s({type:"error",error:h}),h}let l=await this.buildPayload(t.messages),d=l.metadata?Object.fromEntries(Object.entries(l.metadata).filter(([h])=>h!=="sessionId"&&h!=="session_id")):void 0,p=this.isHistoryCapable(),u={sessionId:a.sessionId,messages:t.messages.filter(Zg).map(h=>{let C=p?gl(h):void 0;return{id:h.id,role:h.role,content:h.contentParts??h.llmContent??h.rawContent??h.content,...C!==void 0&&{displayContent:C}}}),...t.assistantMessageId&&{assistantMessageId:t.assistantMessageId},...d&&Object.keys(d).length>0&&{metadata:d},...l.inputs&&Object.keys(l.inputs).length>0&&{inputs:l.inputs},...l.context&&{context:l.context},turnId:o,...t.interrupt&&{submitMode:"interrupt"}},{response:m,commit:y}=await this.sendWithClientToolsDiff(a.sessionId,l.clientTools,h=>{let C={...u,...h};return this.debug&&console.debug("[AgentWidgetClient] client token dispatch",C),fetch(this.getClientApiUrl("chat"),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":Uo},body:JSON.stringify(C),signal:t.signal})});if(!m.ok){let h=await m.json().catch(()=>({error:"Chat request failed"}));if(m.status===401){this.clearClientSession(),this.config.onSessionExpired?.();let x=new Error("Session expired. Please refresh to continue.");throw s({type:"error",error:x}),x}if(m.status===429){let x=new Error(h.hint||"Message limit reached for this session.");throw s({type:"error",error:x}),x}if(m.status===410&&h.error==="conversation_deleted"){let x=new ze("conversation_deleted","This conversation was deleted");throw s({type:"error",error:x}),x}let C=new Error(h.error||"Failed to send message");throw s({type:"error",error:C}),C}if(!m.body){let h=new Error("No response body received");throw s({type:"error",error:h}),h}y(),s({type:"status",status:"connected"});try{await this.streamResponse(m.body,s,t.assistantMessageId)}finally{s({type:"status",status:"idle"})}}catch(a){let l=a instanceof Error?a:new Error(String(a));throw!(l instanceof ze)&&!l.message.includes("Session expired")&&!l.message.includes("Message limit")&&s({type:"error",error:l}),l}}async dispatchProxy(t,n){n({type:"status",status:"connecting"});let o=await this.buildPayload(t.messages,t.composerOptions);this.debug&&console.debug("[AgentWidgetClient] dispatch payload",o);let r={...this.headers};if(this.getHeaders)try{let a=await this.getHeaders();r={...r,...a}}catch(a){typeof console<"u"&&console.error("[AgentWidget] getHeaders error:",a)}let s;if(this.customFetch)try{s=await this.customFetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:t.signal},o)}catch(a){let l=a instanceof Error?a:new Error(String(a));throw n({type:"error",error:l}),l}else s=await fetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:t.signal});if(!s.ok||!s.body){let a=new Error(`Chat backend request failed: ${s.status} ${s.statusText}`);throw n({type:"error",error:a}),a}n({type:"status",status:"connected"});try{await this.streamResponse(s.body,n)}finally{n({type:"status",status:"idle"})}}async dispatchAgent(t,n){n({type:"status",status:"connecting"});let o=await this.buildAgentPayload(t.messages,t.composerOptions);this.debug&&console.debug("[AgentWidgetClient] agent dispatch payload",o);let r={...this.headers};if(this.getHeaders)try{let a=await this.getHeaders();r={...r,...a}}catch(a){typeof console<"u"&&console.error("[AgentWidget] getHeaders error:",a)}let s;if(this.customFetch)try{s=await this.customFetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:t.signal},o)}catch(a){let l=a instanceof Error?a:new Error(String(a));throw n({type:"error",error:l}),l}else s=await fetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:t.signal});if(!s.ok||!s.body){let a=new Error(`Agent execution request failed: ${s.status} ${s.statusText}`);throw n({type:"error",error:a}),a}n({type:"status",status:"connected"});try{await this.streamResponse(s.body,n,t.assistantMessageId)}finally{n({type:"status",status:"idle"})}}async processStream(t,n,o,r){n({type:"status",status:"connected"});try{await this.streamResponse(t,n,o,r)}finally{n({type:"status",status:"idle"})}}async resolveApproval(t,n){let o=`${this.clientApiBase()}/v1/agents/${t.agentId}/approve`,r={"Content-Type":"application/json",...this.headers};return this.getHeaders&&Object.assign(r,await this.getHeaders()),fetch(o,{method:"POST",headers:r,body:JSON.stringify({executionId:t.executionId,approvalId:t.approvalId,decision:n,streamResponse:!0})})}async sendWithClientToolsDiff(t,n,o,r){let s=!!(n&&n.length>0),a=s?ov(n):void 0,l=this.clientToolsFingerprintSessionId===t,d=s&&l&&this.lastSentClientToolsFingerprint===a,p=!s&&r?.emptyMeansReplace===!0&&this.sentNonEmptyClientToolsSessionId===t,u=!1,m;for(let y=0;;y++){if(m=await o({...s&&(u||!d)&&n?{clientTools:n}:{},...p?{clientTools:[]}:{},...a?{clientToolsFingerprint:a}:{}}),m.status===409&&y===0&&s&&(await m.clone().json().catch(()=>null))?.error==="client_tools_resend_required"){u=!0,this.lastSentClientToolsFingerprint=null;continue}break}return{response:m,commit:()=>{this.lastSentClientToolsFingerprint=a??null,this.clientToolsFingerprintSessionId=t,s?this.sentNonEmptyClientToolsSessionId=t:p&&(this.sentNonEmptyClientToolsSessionId=null)}}}async resumeFlow(t,n,o){let r=this.isClientTokenMode(),s=r?this.getClientApiUrl("resume"):`${this.config.apiUrl?.replace(/\/+$/,"")||Nv}/resume`,a;r&&(a=(await this.initSession()).sessionId);let l={"Content-Type":"application/json",...this.headers};this.getHeaders&&Object.assign(l,await this.getHeaders());let d={executionId:t,toolOutputs:n,streamResponse:o?.streamResponse??!0};if(a&&(d.sessionId=a),r&&a){let p=[...Fi(this.config),...await(await this.getWebMcpBridge())?.snapshotForDispatch()??[]],{response:u,commit:m}=await this.sendWithClientToolsDiff(a,p,y=>{let h={...d,...y};return this.debug&&console.debug("[AgentWidgetClient] client token resume",h),fetch(s,{method:"POST",headers:l,body:JSON.stringify(h),signal:o?.signal})},{emptyMeansReplace:!0});return u.ok&&m(),u}return fetch(s,{method:"POST",headers:l,body:JSON.stringify(d),signal:o?.signal})}latestMentionContext(t){for(let n=t.length-1;n>=0;n--){let o=t[n];if(o.role==="user")return o.mentionContext&&Object.keys(o.mentionContext).length>0?{mentions:o.mentionContext}:null}return null}async buildContextAggregate(t){let n={};this.contextProviders.length&&await Promise.all(this.contextProviders.map(async r=>{try{let s=await r({messages:t,config:this.config});s&&typeof s=="object"&&Object.assign(n,s)}catch(s){typeof console<"u"&&console.warn("[AgentWidget] Context provider failed:",s)}}));let o=this.latestMentionContext(t);return o&&Object.assign(n,o),Object.keys(n).length?n:null}normalizeComposerOptions(t){if(!t)return;let n={};return t.selectedModelId&&(n.selectedModelId=t.selectedModelId),t.activeModeIds?.length&&(n.activeModeIds=[...t.activeModeIds]),Object.keys(n).length>0?n:void 0}applyInlineAgentModel(t,n){let o=n?.selectedModelId;return!o||!("model"in t)?t:this.config.composer?.models?.some(s=>s.id===o)?{...t,model:o}:t}async buildAgentPayload(t,n){let o=this.routing().agentId;if(!this.config.agent&&!o)throw new Error("Agent configuration required for agent mode");let r=t.slice().filter(Zg).filter(p=>p.role==="user"||p.role==="assistant"||p.role==="system").filter(p=>!p.variant||p.variant==="assistant").sort((p,u)=>{let m=new Date(p.createdAt).getTime(),y=new Date(u.createdAt).getTime();return m-y}).map(p=>({role:p.role,content:p.contentParts??p.llmContent??p.rawContent??p.content,createdAt:p.createdAt})),s=this.normalizeComposerOptions(n),a={agent:this.applyInlineAgentModel(this.config.agent??{agentId:o},s),messages:r,options:{streamResponse:!0,recordMode:"virtual",...this.config.agentOptions}};s&&(a.composerOptions=s);let l=[...Fi(this.config),...await(await this.getWebMcpBridge())?.snapshotForDispatch()??[]];l.length>0&&(a.clientTools=l);let d=await this.buildContextAggregate(t);return d&&(a.context=d),a}async buildPayload(t,n){let o=t.slice().filter(Zg).sort((p,u)=>{let m=new Date(p.createdAt).getTime(),y=new Date(u.createdAt).getTime();return m-y}).map(p=>({role:p.role,content:p.contentParts??p.llmContent??p.rawContent??p.content,createdAt:p.createdAt})),r=this.routing(),s={messages:o,...r.agentId?{agent:{agentId:r.agentId}}:r.flowId?{flowId:r.flowId}:{}};if(r.targetPayload)for(let[p,u]of Object.entries(r.targetPayload))p!=="messages"&&(s[p]=u);let a=[...Fi(this.config),...await(await this.getWebMcpBridge())?.snapshotForDispatch()??[]];a.length>0&&(s.clientTools=a);let l=await this.buildContextAggregate(t);l&&(s.context=l);let d=this.normalizeComposerOptions(n);if(d&&(s.composerOptions=d),this.requestMiddleware)try{let p=await this.requestMiddleware({payload:{...s},config:this.config});if(p&&typeof p=="object"){let u=p;return s.clientTools!==void 0&&!("clientTools"in u)&&(u.clientTools=s.clientTools),u}}catch(p){typeof console<"u"&&console.error("[AgentWidget] Request middleware error:",p)}return s}async handleCustomSSEEvent(t,n,o,r,s,a){if(!this.parseSSEEvent)return!1;try{let l=await this.parseSSEEvent(t);if(l===null)return!1;let d=u=>{let m={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"assistant",sequence:s(),...u!==void 0&&{partId:u}};return o.current=m,r(m),m},p=u=>o.current?o.current:d(u);if(l.text!==void 0){l.partId!==void 0&&a.current!==null&&l.partId!==a.current&&(o.current&&(o.current.streaming=!1,r(o.current)),d(l.partId)),l.partId!==void 0&&(a.current=l.partId);let u=p(l.partId);l.partId!==void 0&&!u.partId&&(u.partId=l.partId),u.content+=l.text,r(u)}return l.done&&(o.current&&(o.current.streaming=!1,r(o.current)),a.current=null,n({type:"status",status:"idle"})),l.error&&(a.current=null,n({type:"error",error:new Error(l.error)})),!0}catch(l){return typeof console<"u"&&console.error("[AgentWidget] parseSSEEvent error:",l),!1}}async streamResponse(t,n,o,r){let s=t.getReader(),a=new TextDecoder,l="",d=Date.now(),p=0,u=()=>d+p++,m=R=>{let te=R.reasoning?{...R.reasoning,chunks:[...R.reasoning.chunks]}:void 0,v=R.toolCall?{...R.toolCall,chunks:R.toolCall.chunks?[...R.toolCall.chunks]:void 0}:void 0,N=R.tools?R.tools.map(F=>({...F,chunks:F.chunks?[...F.chunks]:void 0})):void 0;return{...R,reasoning:te,toolCall:v,tools:N}},y=R=>{if(R.role!=="assistant"||R.variant)return!0;let te=Array.isArray(R.contentParts)&&R.contentParts.length>0,v=typeof R.rawContent=="string"&&R.rawContent.trim()!=="";return typeof R.content=="string"&&R.content.trim()!==""||te||v||!!R.stopReason},h=R=>{y(R)&&n({type:"message",message:m(R)})},C=null,x=null,S={current:null},k={current:null},B=null,$="",T=new Map,I=new Map,A=new Map,D=new Map,Q=new Map,le={lastId:null,byStep:new Map},re={lastId:null,byCall:new Map},E=R=>{if(R==null)return null;try{return String(R)}catch{return null}},_=R=>E(R.stepId??R.step_id??R.step??R.parentId??R.flowStepId??R.flow_step_id),W=R=>E(R.callId??R.call_id??R.requestId??R.request_id??R.toolCallId??R.tool_call_id??R.stepId??R.step_id),L=o,X=!1,K=()=>{if(C)return C;let R,te="",v=B;return!X&&L?(R=L,X=!0,te=r??""):L&&v?R=`${L}_${v}`:R=`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,C={id:R,role:"assistant",content:te,createdAt:new Date().toISOString(),streaming:!0,sequence:u()},h(C),C},de=(R,te)=>{le.lastId=te,R&&le.byStep.set(R,te)},ue=(R,te)=>{let v=R.reasoningId??R.id,N=_(R);if(v){let U=String(v);return de(N,U),U}if(N){let U=le.byStep.get(N);if(U)return le.lastId=U,U}if(le.lastId&&!te)return le.lastId;if(!te)return null;let F=`reason-${u()}`;return de(N,F),F},fe=R=>{let te=D.get(R);if(te)return te;let v={id:`reason-${R}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"reasoning",sequence:u(),reasoning:{id:R,status:"streaming",chunks:[]}};return D.set(R,v),h(v),v},Me=(R,te)=>{re.lastId=te,R&&re.byCall.set(R,te)},ye=new Set,Ne=new Map,lt=new Set,Ce=new Map,j=R=>{if(!R)return!1;let te=R.replace(/_+/g,"_").replace(/^_|_$/g,"");return te==="emit_artifact_markdown"||te==="emit_artifact_component"},Fe=(R,te)=>{let v=R.toolId??R.id,N=W(R);if(v){let U=String(v);return Me(N,U),U}if(N){let U=re.byCall.get(N);if(U)return re.lastId=U,U}if(re.lastId&&!te)return re.lastId;if(!te)return null;let F=`tool-${u()}`;return Me(N,F),F},$e=R=>{let te=Q.get(R);if(te)return te;let v={id:`tool-${R}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"tool",sequence:u(),toolCall:{id:R,status:"pending"}};return Q.set(R,v),h(v),v},Se=R=>{if(typeof R=="number"&&Number.isFinite(R))return R;if(typeof R=="string"){let te=Number(R);if(!Number.isNaN(te)&&Number.isFinite(te))return te;let v=Date.parse(R);if(!Number.isNaN(v))return v}return Date.now()},Ie=R=>{if(typeof R=="string")return R;if(R==null)return"";try{return JSON.stringify(R)}catch{return String(R)}},be=new Map,ut=new Map,He=new Map,qt=(R,te,v)=>{let N=He.get(R);N||(N=[],He.set(R,N));let F=0,U=N.length;for(;F<U;){let oe=F+U>>>1;N[oe].seq<te?F=oe+1:U=oe}N[F]?.seq===te?N[F]={seq:te,text:v}:N.splice(F,0,{seq:te,text:v});let ee="";for(let oe=0;oe<N.length;oe++)ee+=N[oe].text;return ee},ct=(R,te)=>{let v=Ie(te),N=ut.get(R.id),F=pT(N,v);R.rawContent=F;let U=be.get(R.id),ee=Ve=>{let _t=R.content??"";Ve.trim()!==""&&(_t.trim().length===0||Ve.startsWith(_t)||Ve.trimStart().startsWith(_t.trim()))&&(R.content=Ve)},oe=()=>{if(U){let Ve=U.close?.();Ve instanceof Promise&&Ve.catch(()=>{})}be.delete(R.id),ut.delete(R.id),R.streaming=!1,h(R)};if(!U){ee(v),oe();return}let ce=ul(F);if(ce!==null&&ce.trim()!==""){ee(ce),oe();return}let Ee=Ve=>{let _t=typeof Ve=="string"?Ve:Ve?.text??null;if(_t!==null&&_t.trim()!=="")return _t;let Et=U.getExtractedText();return Et!==null&&Et.trim()!==""?Et:v},vt;try{vt=U.processChunk(F)}catch{ee(v),oe();return}if(vt instanceof Promise){vt.then(Ve=>{ee(Ee(Ve)),oe()}).catch(()=>{ee(v),oe()});return}ee(Ee(vt)),oe()},rn=null,An=(R,te,v,N)=>{R.rawContent=te,be.has(R.id)||be.set(R.id,this.createStreamParser());let F=be.get(R.id),U=te.trim().startsWith("{")||te.trim().startsWith("[");if(U&&ut.set(R.id,te),F.__isPlainTextParser===!0){R.content=N!==void 0?te:R.content+v,ut.delete(R.id),be.delete(R.id),R.rawContent=void 0,h(R);return}let oe=F.processChunk(te);if(oe instanceof Promise)oe.then(ce=>{let Ee=typeof ce=="string"?ce:ce?.text??null;Ee!==null&&Ee.trim()!==""?(R.content=Ee,h(R)):!U&&!te.trim().startsWith("<")&&(R.content=N!==void 0?te:R.content+v,ut.delete(R.id),be.delete(R.id),R.rawContent=void 0,h(R))}).catch(()=>{R.content=N!==void 0?te:R.content+v,ut.delete(R.id),be.delete(R.id),R.rawContent=void 0,h(R)});else{let ce=typeof oe=="string"?oe:oe?.text??null;ce!==null&&ce.trim()!==""?(R.content=ce,h(R)):!U&&!te.trim().startsWith("<")&&(R.content=N!==void 0?te:R.content+v,ut.delete(R.id),be.delete(R.id),R.rawContent=void 0,h(R))}},Bt=(R,te)=>{let v=te??R.content;if(v==null||v===""){R.streaming=!1,h(R);return}let F=ut.get(R.id)??Ie(v);R.rawContent=F;let U=be.get(R.id),ee=null,oe=!1;if(U&&(ee=U.getExtractedText(),ee===null&&(ee=ul(F)),ee===null)){let ce=U.processChunk(F);ce instanceof Promise?(oe=!0,ce.then(Ee=>{let vt=typeof Ee=="string"?Ee:Ee?.text??null;vt!==null&&(R.content=vt,R.streaming=!1,be.delete(R.id),ut.delete(R.id),h(R))}).catch(()=>{})):ee=typeof ce=="string"?ce:ce?.text??null}if(!oe){ee!==null&&ee.trim()!==""?R.content=ee:ut.has(R.id)||(R.content=Ie(v));let ce=be.get(R.id);if(ce){let Ee=ce.close?.();Ee instanceof Promise&&Ee.catch(()=>{}),be.delete(R.id)}ut.delete(R.id),R.streaming=!1,h(R)}},os=(R,te,v)=>{let N=I.get(R);if(N)return N;let F={id:`nested-${te}-${R}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:u(),...v?{variant:v}:{},...v==="reasoning"?{reasoning:{id:R,status:"streaming",chunks:[]}}:{},agentMetadata:{parentToolId:te}};return I.set(R,F),h(F),F},Mn=[],Ao,ua=new Map,rs=0,gn="agent",ga=!1,kt=null,ft=null,po=new Map,zl=this.config.iterationDisplay??"separate";for(Ao=()=>{for(let R=0;R<Mn.length;R++){let te=Mn[R].payloadType,v=Mn[R].payload;if(!ga&&gn!=="flow"&&typeof v.stepType=="string"&&(gn="flow"),te==="reasoning_start"){let N=typeof v.id=="string"?v.id:null,F=typeof v.parentToolCallId=="string"&&v.parentToolCallId?v.parentToolCallId:null;if(N&&F){T.set(N,F),os(N,F,"reasoning");continue}let U=ue(v,!0)??`reason-${u()}`,ee=fe(U);ee.reasoning=ee.reasoning??{id:U,status:"streaming",chunks:[]},ee.reasoning.startedAt=ee.reasoning.startedAt??Se(v.startedAt??v.timestamp),ee.reasoning.completedAt=void 0,ee.reasoning.durationMs=void 0,(v.scope==="loop"||v.scope==="turn")&&(ee.reasoning.scope=v.scope),ee.streaming=!0,ee.reasoning.status="streaming",h(ee)}else if(te==="reasoning_delta"){let N=typeof v.id=="string"?v.id:null;if(N&&T.has(N)&&I.has(N)){let oe=I.get(N),ce=v.reasoningText??v.text??v.delta??"";ce&&v.hidden!==!0&&oe.reasoning&&(oe.reasoning.chunks.push(String(ce)),h(oe));continue}let F=ue(v,!1)??ue(v,!0)??`reason-${u()}`,U=fe(F);U.reasoning=U.reasoning??{id:F,status:"streaming",chunks:[]},U.reasoning.startedAt=U.reasoning.startedAt??Se(v.startedAt??v.timestamp);let ee=v.reasoningText??v.text??v.delta??"";if(ee&&v.hidden!==!0){let oe=typeof v.sequenceIndex=="number"?v.sequenceIndex:void 0;if(oe!==void 0){let ce=qt(F,oe,String(ee));U.reasoning.chunks=[ce]}else U.reasoning.chunks.push(String(ee))}if(U.reasoning.status=v.done?"complete":"streaming",v.done){U.reasoning.completedAt=Se(v.completedAt??v.timestamp);let oe=U.reasoning.startedAt??Date.now();U.reasoning.durationMs=Math.max(0,(U.reasoning.completedAt??Date.now())-oe)}U.streaming=U.reasoning.status!=="complete",h(U)}else if(te==="reasoning_complete"){let N=typeof v.id=="string"?v.id:null;if(N&&T.has(N)&&I.has(N)){let ce=I.get(N);if(ce.reasoning){let Ee=typeof v.text=="string"?v.text:"";Ee&&ce.reasoning.chunks.length===0&&ce.reasoning.chunks.push(Ee),ce.reasoning.status="complete",ce.streaming=!1,h(ce)}T.delete(N),I.delete(N);continue}let F=ue(v,!1)??ue(v,!0)??`reason-${u()}`,U=typeof v.text=="string"?v.text:"";!D.get(F)&&(U||v.scope==="loop")&&fe(F);let ee=D.get(F);if(ee?.reasoning){(v.scope==="loop"||v.scope==="turn")&&(ee.reasoning.scope=v.scope),U&&ee.reasoning.chunks.length===0&&ee.reasoning.chunks.push(U),ee.reasoning.status="complete",ee.reasoning.completedAt=Se(v.completedAt??v.timestamp);let ce=ee.reasoning.startedAt??Date.now();ee.reasoning.durationMs=Math.max(0,(ee.reasoning.completedAt??Date.now())-ce),ee.streaming=!1,h(ee)}let oe=_(v);oe&&le.byStep.delete(oe)}else if(te==="tool_start"){C&&(C.streaming=!1,h(C),C=null),typeof v.iteration=="number"&&(rs=v.iteration);let N=(typeof v.toolCallId=="string"?v.toolCallId:void 0)??Fe(v,!0)??`tool-${u()}`,F=v.toolName??v.name;if(j(F)){ye.add(N);continue}Me(W(v),N);let U=$e(N),ee=U.toolCall??{id:N,status:"pending"};ee.name=F??ee.name,ee.status="running",v.parameters!==void 0?ee.args=v.parameters:v.args!==void 0&&(ee.args=v.args),ee.startedAt=ee.startedAt??Se(v.startedAt??v.timestamp),ee.completedAt=void 0,ee.durationMs=void 0,U.toolCall=ee,U.streaming=!0,v.executionId&&(U.agentMetadata={executionId:v.executionId,iteration:v.iteration}),h(U)}else if(te==="tool_output_delta"){let N=Fe(v,!1)??Fe(v,!0)??`tool-${u()}`;if(ye.has(N))continue;let F=$e(N),U=F.toolCall??{id:N,status:"running"};U.startedAt=U.startedAt??Se(v.startedAt??v.timestamp);let ee=v.text??v.delta??v.message??"";ee&&(U.chunks=U.chunks??[],U.chunks.push(String(ee))),U.status="running",F.toolCall=U,F.streaming=!0;let oe=v.agentContext;(oe||v.executionId)&&(F.agentMetadata=F.agentMetadata??{executionId:oe?.executionId??v.executionId,iteration:oe?.iteration??v.iteration}),h(F)}else if(te==="tool_complete"){let N=Fe(v,!1)??Fe(v,!0)??`tool-${u()}`;if(ye.has(N)){ye.delete(N);continue}let F=$e(N),U=F.toolCall??{id:N,status:"running"};U.status="complete",v.result!==void 0&&(U.result=v.result),typeof v.duration=="number"&&(U.duration=v.duration),U.completedAt=Se(v.completedAt??v.timestamp);let ee=v.duration??v.executionTime;if(typeof ee=="number")U.durationMs=ee;else{let Ee=U.startedAt??Date.now();U.durationMs=Math.max(0,(U.completedAt??Date.now())-Ee)}F.toolCall=U,F.streaming=!1;let oe=v.agentContext;(oe||v.executionId)&&(F.agentMetadata=F.agentMetadata??{executionId:oe?.executionId??v.executionId,iteration:oe?.iteration??v.iteration}),h(F);let ce=W(v);ce&&re.byCall.delete(ce)}else if(te==="await"&&v.toolName){let N=typeof v.toolCallId=="string"&&v.toolCallId.length>0?v.toolCallId:void 0,F=N??v.toolId??`local-${u()}`,U=$e(F),ee=v.toolName,oe=v.origin==="webmcp"&&!$r(ee)?`webmcp:${ee}`:ee,ce=$r(oe),Ee=U.toolCall??{id:F,status:"pending"};Ee.name=oe,Ee.args=v.parameters,Ee.status=ce?"running":"complete",Ee.chunks=Ee.chunks??[],Ee.startedAt=Ee.startedAt??Se(v.startedAt??v.timestamp??v.awaitedAt),ce?(Ee.completedAt=void 0,Ee.duration=void 0,Ee.durationMs=void 0):Ee.completedAt=Ee.completedAt??Ee.startedAt,U.toolCall=Ee,U.streaming=!1,U.agentMetadata={...U.agentMetadata,executionId:v.executionId??U.agentMetadata?.executionId,awaitingLocalTool:!0,...N?{webMcpToolCallId:N}:{}},h(U)}else if(te==="text_start"){let N=typeof v.id=="string"?v.id:null,F=typeof v.parentToolCallId=="string"&&v.parentToolCallId?v.parentToolCallId:null;if(N&&F){T.set(N,F);continue}let U=C;U&&(gn==="flow"?(Bt(U),rn=U):(U.streaming=!1,h(U)),C=null),B=typeof v.id=="string"?v.id:B,$=""}else if(te==="text_delta"){let N=typeof v.id=="string"?v.id:null,F=N?T.get(N):void 0;if(N&&F){let ee=typeof v.delta=="string"?v.delta:"",oe=(A.get(N)??"")+ee;if(A.set(N,oe),oe.trim()==="")continue;let ce=os(N,F);ce.agentMetadata={...ce.agentMetadata,executionId:v.executionId,parentToolId:F},An(ce,oe,ee,void 0);continue}if(B=typeof v.id=="string"?v.id:B,gn==="flow"){let ee=typeof v.delta=="string"?v.delta:"";if($+=ee,$.trim()==="")continue;let oe=K();oe.agentMetadata={executionId:v.executionId,iteration:v.iteration},An(oe,$,ee,void 0),x=oe;continue}let U=K();U.content+=v.delta??"",U.agentMetadata={executionId:v.executionId,iteration:v.iteration,turnId:kt??void 0,agentName:ft?.agentName},x=U,h(U)}else if(te==="text_complete"){let N=typeof v.id=="string"?v.id:null;if(N&&T.has(N)){let U=I.get(N);U&&Bt(U),T.delete(N),A.delete(N),I.delete(N);continue}let F=C;F&&(gn==="flow"?(Bt(F),rn=F):((F.content??"")===""&&typeof v.text=="string"&&(F.content=v.text),F.streaming=!1,h(F)),C=null),B=null,$=""}else if(te==="step_complete"){let N=v.stepType,F=v.executionType;if(N==="tool"||F==="context")continue;if(v.success===!1){let U=v.error,ee=typeof U=="string"&&U!==""?U:U!=null&&typeof U=="object"&&Reflect.has(U,"message")?String(U.message??"Step failed"):"Step failed";n({type:"error",error:new Error(ee)});let oe=C;oe&&oe.streaming&&(oe.streaming=!1,h(oe)),n({type:"status",status:"idle"});continue}{let U=rn;rn=null;let ee=v.stopReason,oe=v.result?.response;if(U)ee&&(U.stopReason=ee),oe!=null?ct(U,oe):U.streaming!==!1&&(be.delete(U.id),ut.delete(U.id),U.streaming=!1,h(U));else{let ce=oe!=null&&oe!=="";if(ce||ee){let Ee=K();ee&&(Ee.stopReason=ee),ce?Bt(Ee,oe):(Ee.streaming=!1,h(Ee))}}continue}}else if(te==="execution_start")gn=v.kind==="flow"?"flow":"agent",ga=!0,gn==="agent"&&(ft={executionId:v.executionId,agentId:v.agentId??"virtual",agentName:v.agentName??"",status:"running",currentIteration:0,maxTurns:v.maxTurns??1,startedAt:Se(v.startedAt)});else if(te==="turn_start"){let N=typeof v.iteration=="number"?v.iteration:rs;if(N!==rs){if(ft&&(ft.currentIteration=N),zl==="separate"&&N>1){let F=C;F&&(F.streaming=!1,h(F),po.set(N-1,F),C=null)}rs=N}kt=typeof v.id=="string"?v.id:null,x=null}else if(te==="tool_input_delta"){let N=v.toolCallId??re.lastId;if(N){let F=Q.get(N);F?.toolCall&&(F.toolCall.chunks=F.toolCall.chunks??[],F.toolCall.chunks.push(v.delta??""),h(F))}}else{if(te==="tool_input_complete")continue;if(te==="turn_complete"){let N=v.stopReason,F=C??x;if(N&&F!==null){let U=v.id;(!U||F.agentMetadata?.turnId===U)&&(F.stopReason=N,h(F))}kt===v.id&&(kt=null)}else if(te==="media_start"){let N=String(v.id);ua.set(N,{mediaType:typeof v.mediaType=="string"?v.mediaType:void 0,role:typeof v.role=="string"?v.role:void 0,toolCallId:v.toolCallId,parts:[]})}else if(te==="media_delta"){let N=ua.get(String(v.id));N&&typeof v.delta=="string"&&N.parts.push(v.delta)}else if(te==="media_complete"){let N=String(v.id),F=ua.get(N);ua.delete(N);let U=(typeof v.mediaType=="string"?v.mediaType:void 0)??F?.mediaType??"application/octet-stream",ee=typeof v.data=="string"?v.data:void 0,oe=typeof v.url=="string"?v.url:F&&F.parts.length>0?F.parts.join(""):void 0,ce=null;if(ee)ce={type:"media",data:ee,mediaType:U};else if(oe){let _t=U.toLowerCase();ce={type:_t==="image"||_t.startsWith("image/")?"image-url":"file-url",url:oe,mediaType:U}}let Ee=v.toolCallId??F?.toolCallId,vt=ce?[ce]:[],Ve=[];for(let _t of vt){if(!_t||typeof _t!="object")continue;let Et=_t,ss=typeof Et.type=="string"?Et.type:void 0,_n=typeof Et.mediaType=="string"?Et.mediaType.toLowerCase():"",zt=null,mn="";if(ss==="media"){let ln=typeof Et.data=="string"?Et.data:void 0;if(!ln)continue;mn=_n.length>0?_n:"application/octet-stream",zt=`data:${mn};base64,${ln}`}else if(ss==="image-url"){let ln=typeof Et.url=="string"?Et.url:void 0;if(!ln)continue;mn=_n,zt=ln}else if(ss==="file-url"){let ln=typeof Et.url=="string"?Et.url:void 0;if(!ln)continue;mn=_n,zt=ln}else continue;if(zt)if(ss==="image-url"||mn.startsWith("image/"))Ve.push({type:"image",image:zt,...mn.includes("/")?{mimeType:mn}:{}});else if(mn.startsWith("audio/"))Ve.push({type:"audio",audio:zt,mimeType:mn});else if(mn.startsWith("video/"))Ve.push({type:"video",video:zt,mimeType:mn});else{let ln=mn||"application/octet-stream";Ve.push({type:"file",data:zt,mimeType:ln,filename:cT(ln)})}}if(Ve.length>0){let _t=u(),Et=Ee,_n={id:`agent-media-${typeof Et=="string"&&Et.length>0?`${Et}-${_t}`:String(_t)}`,role:"assistant",content:"",contentParts:Ve,createdAt:new Date().toISOString(),streaming:!1,sequence:_t,agentMetadata:{executionId:v.executionId,iteration:typeof v.iteration=="number"?v.iteration:rs}};h(_n);let zt=C;zt&&(zt.streaming=!1,h(zt)),C=null,S.current=null}}else if(te==="execution_complete"){let N=v.kind??gn;N==="agent"&&ft&&(ft.status=v.success?"complete":"error",ft.completedAt=Se(v.completedAt),ft.stopReason=v.stopReason);let F=C;F&&(N==="flow"&&F.streaming!==!1?Bt(F):(F.streaming=!1,h(F)),C=null),B=null,$="",rn=null,n({type:"status",status:"idle",terminal:!0})}else if(te==="execution_error"){let N=typeof v.error=="string"?v.error:v.error?.message??"Execution error";n({type:"error",error:new Error(N)})}else if(te!=="ping"){if(te==="approval_start"){let N=v.approvalId??`approval-${u()}`,F={id:`approval-${N}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:u(),approval:{id:N,status:"pending",agentId:ft?.agentId??"virtual",executionId:v.executionId??ft?.executionId??"",toolName:v.toolName??"",toolType:v.toolType,description:v.description??`Execute ${v.toolName??"tool"}`,...typeof v.reason=="string"&&v.reason?{reason:v.reason}:{},parameters:v.parameters}};h(F)}else if(te==="step_await"&&v.awaitReason==="approval_required"){let N=v.approvalId??`approval-${u()}`,F={id:`approval-${N}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:u(),approval:{id:N,status:"pending",agentId:ft?.agentId??"virtual",executionId:v.executionId??ft?.executionId??"",toolName:v.toolName??"",toolType:v.toolType,description:v.description??`Execute ${v.toolName??"tool"}`,...typeof v.reason=="string"&&v.reason?{reason:v.reason}:{},parameters:v.parameters}};h(F)}else if(te==="approval_complete"){let N=v.approvalId;if(N){let U={id:`approval-${N}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:u(),approval:{id:N,status:v.decision??"approved",agentId:ft?.agentId??"virtual",executionId:v.executionId??ft?.executionId??"",toolName:v.toolName??"",description:v.description??"",resolvedAt:Date.now()}};h(U)}}else if(te==="artifact_start"||te==="artifact_delta"||te==="artifact_update"||te==="artifact_complete"){if(te==="artifact_start"){let N=v.artifactType,F=String(v.id),U=typeof v.title=="string"?v.title:void 0,ee=v.file,oe;ee&&typeof ee=="object"&&!Array.isArray(ee)&&typeof ee.path=="string"&&typeof ee.mimeType=="string"&&(oe={path:ee.path,mimeType:ee.mimeType,...typeof ee.language=="string"?{language:ee.language}:{}}),n({type:"artifact_start",id:F,artifactType:N,title:U,component:typeof v.component=="string"?v.component:void 0,...oe?{file:oe}:{}});let ce=v.props&&typeof v.props=="object"&&!Array.isArray(v.props)?{...v.props}:void 0;if(Ce.set(F,{markdown:"",title:U,file:oe,...ce?{props:ce}:{}}),!lt.has(F)){lt.add(F);let Ee=Fo(this.config.features?.artifacts,{artifactType:N,...oe?{file:oe}:{}}),vt=typeof v.component=="string"?v.component:void 0,Ve={id:`artifact-ref-${F}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:u(),rawContent:il(Ee,{artifactId:F,title:U,artifactType:N,status:"streaming",...oe?{file:oe}:{},...vt?{component:vt}:{}})};Ne.set(F,Ve),h(Ve)}}else if(te==="artifact_delta"){let N=String(v.id),F=typeof v.delta=="string"?v.delta:String(v.delta??"");n({type:"artifact_delta",id:N,artDelta:F});let U=Ce.get(N);U&&(U.markdown+=F)}else if(te==="artifact_update"){let N=v.props&&typeof v.props=="object"&&!Array.isArray(v.props)?v.props:{};n({type:"artifact_update",id:String(v.id),props:N,component:typeof v.component=="string"?v.component:void 0});let F=Ce.get(String(v.id));F&&(F.props={...F.props??{},...N})}else if(te==="artifact_complete"){let N=String(v.id);n({type:"artifact_complete",id:N});let F=Ne.get(N);if(F){F.streaming=!1;try{let U=JSON.parse(F.rawContent??"{}");if(U.props){U.props.status="complete";let ee=Ce.get(N);ee?.markdown&&(U.props.markdown=ee.markdown),ee?.file&&(U.props.file=ee.file),U.component==="PersonaArtifactInline"&&ee?.props&&Object.keys(ee.props).length>0&&(U.props.componentProps=ee.props)}F.rawContent=JSON.stringify(U)}catch{}Ce.delete(N),h(F),Ne.delete(N)}}}else if(te==="transcript_insert"){let N=v.message;if(!N||typeof N!="object")continue;let F=String(N.id??`msg-${u()}`),U=N.role,oe={id:F,role:U==="user"?"user":U==="system"?"system":"assistant",content:typeof N.content=="string"?N.content:"",rawContent:typeof N.rawContent=="string"?N.rawContent:void 0,createdAt:typeof N.createdAt=="string"?N.createdAt:new Date().toISOString(),streaming:N.streaming===!0,...typeof N.variant=="string"?{variant:N.variant}:{},sequence:u()};if(h(oe),oe.rawContent)try{let Ee=JSON.parse(oe.rawContent)?.props?.artifactId;typeof Ee=="string"&&lt.add(Ee)}catch{}C=null,S.current=null,be.delete(F),ut.delete(F)}else if(te==="error"){if(v.recoverable===!1&&v.error!=null&&v.error!==""){let N=typeof v.error=="string"?v.error:v.error?.message!=null?String(v.error.message):"Execution error";n({type:"error",error:new Error(N)});let F=C;F&&F.streaming&&(F.streaming=!1,h(F)),n({type:"status",status:"idle"})}}else if(te==="step_error"||te==="dispatch_error"||te==="flow_error"){let N=null;if(v.error instanceof Error)N=v.error;else if(te==="dispatch_error"){let F=v.message??v.error;F!=null&&F!==""&&(N=new Error(String(F)))}else{let F=v.error;typeof F=="string"&&F!==""?N=new Error(F):F!=null&&typeof F=="object"&&Reflect.has(F,"message")&&(N=new Error(String(F.message??F)))}if(N){n({type:"error",error:N});let F=C;F&&F.streaming&&(F.streaming=!1,h(F)),n({type:"status",status:"idle"})}}}}}Mn.length=0};;){let{done:R,value:te}=await s.read();if(R)break;l+=a.decode(te,{stream:!0});let v=l.split(`
6
+ `).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return l[1]}return null};return{getExtractedText:()=>e,processChunk:async o=>{if(o.length<=t)return e!==null?{text:e,raw:o}:null;let r=o.trim();if(!r.startsWith("{")&&!r.startsWith("["))return null;let s=n(o);return s!==null&&(e=s),t=o.length,e!==null?{text:e,raw:o}:null},close:async()=>{}}},gl=e=>{try{let t=JSON.parse(e);if(t&&typeof t=="object"&&typeof t.text=="string")return t.text}catch{return null}return null},Ad=()=>{let e={processChunk:t=>null,getExtractedText:()=>null};return e.__isPlainTextParser=!0,e},Md=()=>{let e=oT();return{processChunk:async t=>{let n=t.trim();return!n.startsWith("{")&&!n.startsWith("[")?null:e.processChunk(t)},getExtractedText:e.getExtractedText.bind(e),close:e.close?.bind(e)}},Ed=()=>{let e=null,t=0;return{getExtractedText:()=>e,processChunk:n=>{let o=n.trim();if(!o.startsWith("{")&&!o.startsWith("["))return null;if(n.length<=t)return e!==null||e===""?{text:e||"",raw:n}:null;try{let r=(0,yr.parse)(n,yr.STR|yr.OBJ);r&&typeof r=="object"&&(r.component&&typeof r.component=="string"?e=typeof r.text=="string"?vd(r.text):"":r.type==="init"&&r.form?e="":typeof r.text=="string"&&(e=vd(r.text)))}catch{}return t=n.length,e!==null?{text:e,raw:n}:null},close:()=>{}}},Lv=e=>{let t=null,n=0,r=e||(s=>{if(!s||typeof s!="object")return null;let a=l=>typeof l=="string"?vd(l):null;if(s.component&&typeof s.component=="string")return typeof s.text=="string"?vd(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 l=(0,yr.parse)(s,yr.STR|yr.OBJ),d=r(l);d!==null&&(t=d)}catch{}return n=s.length,{text:t||"",raw:s}},close:()=>{}}},Td=()=>{let e=null;return{processChunk:t=>{if(!t.trim().startsWith("<"))return null;let o=t.match(/<text[^>]*>([\s\S]*?)<\/text>/);return o&&o[1]?(e=o[1],{text:e,raw:t}):null},getExtractedText:()=>e}};var Iv="4.21.1";var io=Iv;var Vi="[Image]";function Rv(e){return typeof e=="string"?[{type:"text",text:e}]:e}function Pd(e){return typeof e=="string"?e:e.filter(t=>t.type==="text").map(t=>t.text).join("")}function Ki(e){return typeof e=="string"?!1:e.some(t=>t.type==="image")}function Hv(e){return typeof e=="string"?[]:e.filter(t=>t.type==="image")}function ao(e){return{type:"text",text:e}}function kd(e,t){return{type:"image",image:e,...t?.mimeType&&{mimeType:t.mimeType},...t?.alt&&{alt:t.alt}}}async function Wv(e){return new Promise((t,n)=>{let o=new FileReader;o.onload=()=>{let r=o.result;t({type:"image",image:r,mimeType:e.type,alt:e.name})},o.onerror=()=>n(new Error("Failed to read file")),o.readAsDataURL(e)})}function Ov(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 Bv=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml","image/bmp"],sT=["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"],br=[...Bv,...sT];function iT(e){return Bv.includes(e)||e.startsWith("image/")}function Ld(e){return iT(e.type)}function _v(e,t,n){return{type:"file",data:e,mimeType:t,filename:n}}async function Dv(e){return new Promise((t,n)=>{let o=new FileReader;o.onload=()=>{let r=o.result;Ld(e)?t({type:"image",image:r,mimeType:e.type,alt:e.name}):t({type:"file",data:r,mimeType:e.type,filename:e.name})},o.onerror=()=>n(new Error("Failed to read file")),o.readAsDataURL(e)})}function Nv(e,t=br,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 aT(e){let t=e.split(".");return t.length>1?t.pop().toLowerCase():""}function Fv(e,t){let n=aT(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 lT=["user","assistant","system"],cT=0;function $v(e){if(typeof e!="string"||e==="")return null;let t=Date.parse(e);return Number.isNaN(t)?null:t}function Id(e){return typeof e=="string"?e:void 0}function dT(e){if(typeof e!="object"||e===null)return null;let t=e;switch(t.type){case"text":return typeof t.text=="string"?ao(t.text):null;case"image":return typeof t.image=="string"?kd(t.image,{mimeType:Id(t.mimeType),alt:Id(t.alt)}):null;case"file":return typeof t.data=="string"&&typeof t.mimeType=="string"&&typeof t.filename=="string"?_v(t.data,t.mimeType,t.filename):null;case"audio":return typeof t.audio=="string"?{type:"audio",audio:t.audio,...Id(t.mimeType)!==void 0&&{mimeType:t.mimeType}}:null;case"video":return typeof t.video=="string"?{type:"video",video:t.video,...Id(t.mimeType)!==void 0&&{mimeType:t.mimeType}}:null;default:return null}}function pT(e,t){let n=$v(t),o=e.map(a=>$v(a.timestamp)),r=new Array(e.length),s=0;for(;s<o.length;){let a=o[s];if(a!==null){r[s]=a,s+=1;continue}let l=s;for(;l+1<o.length&&o[l+1]===null;)l+=1;let d=l-s+1,p=s>0?r[s-1]:null,u=l+1<o.length?o[l+1]:null,m=u!==null&&n!==null?Math.min(u,n):u??n;for(let y=0;y<d;y+=1)r[s+y]=m!==null?m-(d-y):p!==null?p+y+1:cT+y;s=l+1}return r.map(a=>new Date(a).toISOString())}function Uv(e,t){let n=pT(e,t?.beforeCreatedAt),o=[];return e.forEach((r,s)=>{if(typeof r?.id!="string"||r.id===""||!lT.includes(r.role))return;let a=r.role,l=n[s];if(r.displayAvailable===!1){let d={historyDisplayUnavailable:!0};o.push({id:r.id,role:a,content:"",createdAt:l,agentMetadata:d});return}if(typeof r.displayContent=="string"){o.push({id:r.id,role:a,content:r.displayContent,createdAt:l});return}if(typeof r.content=="string"){o.push({id:r.id,role:a,content:r.content,createdAt:l});return}if(Array.isArray(r.content)){let d=r.content.map(dT).filter(u=>u!==null),p=Pd(d);o.push({id:r.id,role:a,content:p||(Ki(d)?Vi:""),createdAt:l,...d.length>0&&{contentParts:d}});return}o.push({id:r.id,role:a,content:"",createdAt:l})}),o}function ml(e){let t=e.content;if(typeof t!="string"||t==="")return;let n=e.contentParts??e.llmContent??e.rawContent??t;if(!(typeof n=="string"&&n===t))return t}function fl(e,t){let n=new Map;for(let o of e)n.set(o.id,o);for(let o of t)n.set(o.id,o);return[...n.values()].sort((o,r)=>{let s=new Date(o.createdAt).getTime(),a=new Date(r.createdAt).getTime();if(!Number.isNaN(s)&&!Number.isNaN(a)&&s!==a)return s-a;let l=o.sequence??0,d=r.sequence??0;return l!==d?l-d:o.id.localeCompare(r.id)})}var uT="https://api.runtype.com/v1/dispatch",jv="https://api.runtype.com",ze=class extends Error{constructor(t,n,o){super(n),this.name="HistoryClientError",this.code=t,o?.retryAfterSeconds!==void 0&&(this.retryAfterSeconds=o.retryAfterSeconds)}},qv=32768,em=49152,zv=e=>{let t=e??{},n=typeof t.targetId=="string"?t.targetId:typeof t.flowId=="string"?t.flowId:null;return{id:typeof t.id=="string"?t.id:"",title:typeof t.title=="string"?t.title:"",targetId:n,preview:typeof t.preview=="string"?t.preview:null,messageCount:typeof t.messageCount=="number"?t.messageCount:0,createdAt:typeof t.createdAt=="string"?t.createdAt:"",updatedAt:typeof t.updatedAt=="string"?t.updatedAt:""}},Vv=e=>"reason"in e?e.reason:void 0,Kv="The identity proof was not admitted; account history is unavailable",Gv="The identity proof was rejected",Qv="The request carried no visitor credential",Yv="The stored visitor belongs to a different signed-in user",tm=(e,t)=>e instanceof ze&&e.code===t;function gT(e){let t=e.toLowerCase(),o={"application/pdf":"pdf","application/json":"json","application/zip":"zip","text/plain":"txt","text/csv":"csv","text/markdown":"md"}[t];if(o)return`attachment.${o}`;let r=t.indexOf("/");if(r>0){let s=t.slice(r+1).split(";")[0]?.trim()??"";if(s&&s!=="octet-stream"&&/^[a-z0-9.+-]+$/i.test(s))return`attachment.${s}`}return"attachment"}var nm=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 mT(e){switch(e){case"json":return Ed;case"regex-json":return Md;case"xml":return Td;default:return Ad}}var Xv=e=>e.startsWith("{")||e.startsWith("[")||e.startsWith("<");function fT(e,t){if(!e)return t;let n=e.trim(),o=t.trim();if(n.length===0)return t;if(o.length===0)return e;let r=Xv(n);if(!Xv(o))return e;if(!r||o===n||o.startsWith(n))return t;let a=gl(e);return gl(t)!==null&&a===null?t:e}var zs=class{constructor(t={},n={}){this.config=t;this.historyInternals=n;this.currentClientTurnId=null;this.clientSession=null;this.sessionInitPromise=null;this.lastSentClientToolsFingerprint=null;this.clientToolsFingerprintSessionId=null;this.sentNonEmptyClientToolsSessionId=null;this.historyUnavailable=!1;this.historyUnavailableWarned=!1;this.claimInFlight=!1;this.historyIdentityStatus=null;this.historyIdentitySubscribers=new Set;this.historyAvailabilitySubscribers=new Set;this.webMcpBridge=null;this.webMcpBridgePromise=null;if(t.target&&(t.agentId||t.flowId||t.agent))throw new Error("[Persona] `target` is mutually exclusive with `agentId`, `flowId`, and `agent`. Set only one routing field.");this.apiUrl=t.apiUrl??uT,this.headers={"Content-Type":"application/json","X-Persona-Version":io,...t.headers},this.debug=!!t.debug,this.createStreamParser=t.streamParser??mT(t.parserType),this.contextProviders=t.contextProviders??[],this.requestMiddleware=t.requestMiddleware,this.customFetch=t.customFetch,this.parseSSEEvent=t.parseSSEEvent,this.getHeaders=t.getHeaders,t.webmcp?.enabled===!0&&(this.webMcpBridgePromise=this.createWebMcpBridge(t.webmcp))}createWebMcpBridge(t){return lv().then(n=>{let o=new n.WebMcpBridge(t,{recordToolDisplayTitles:ud,getToolDisplayTitle:Fi,loadPolyfill:gd});return this.pendingWebMcpConfirmHandler!==void 0&&o.setConfirmHandler(this.pendingWebMcpConfirmHandler),this.webMcpBridge=o,o}).catch(n=>(this.webMcpBridgePromise=null,console.warn("[Persona] Failed to load the WebMCP runtime chunk",n),null))}getWebMcpBridge(){return this.webMcpBridge?Promise.resolve(this.webMcpBridge):this.config.webmcp?.enabled!==!0?Promise.resolve(null):(this.webMcpBridgePromise||(this.webMcpBridgePromise=this.createWebMcpBridge(this.config.webmcp)),this.webMcpBridgePromise)}updateConfig(t){this.config=t}setHistoryInternals(t){this.historyInternals=t}setSSEEventCallback(t){this.onSSEEvent=t}setWebMcpConfirmHandler(t){this.pendingWebMcpConfirmHandler=t,this.webMcpBridge?.setConfirmHandler(t)}isWebMcpOperational(){return this.webMcpBridge?.isOperational()===!0}executeWebMcpToolCall(t,n,o){return this.config.webmcp?.enabled!==!0?null:this.getWebMcpBridge().then(r=>r?r.executeToolCall(t,n,o):{isError:!0,content:[{type:"text",text:"WebMCP runtime failed to load."}]})}getSSEEventCallback(){return this.onSSEEvent}isClientTokenMode(){return!!this.config.clientToken}routing(){let{agentId:t,flowId:n,target:o,targetProviders:r}=this.config;if(!o)return{agentId:t,flowId:n};let s=dv(o,r);return s.kind==="agentId"?{agentId:s.agentId}:s.kind==="flowId"?{flowId:s.flowId}:{targetPayload:s.payload}}isAgentMode(){return!!(this.config.agent||this.routing().agentId)}clientApiBase(){return this.config.apiUrl?.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,"")||jv}getClientApiUrl(t){return`${this.clientApiBase()}/v1/client/${t}`}getClientSession(){return this.clientSession}async reconnectClientTokenStream(t){let n=await this.initSession(),o=!1;for(;;){let r=n.conversationId,s=await this.readVisitorToken();if(n.durableRecovery?.enabled!==!0||!r||!s)throw new ze("visitor_token_missing","Durable recovery is not enabled for this client session");let a=`${this.clientApiBase()}/v1/client/conversations/${encodeURIComponent(r)}/executions/${encodeURIComponent(t.executionId)}/events`,l=new URLSearchParams({sessionId:n.sessionId,after:t.after}),d=await fetch(`${a}?${l}`,{method:"GET",headers:{"X-Persona-Version":io,"X-Visitor-Token":s},signal:t.signal});if(d.status===401&&!o){o=!0,n=await this.recoverFromUnauthorized(await this.readErrorCode(d),null,!0);continue}if(!d.ok)throw await this.historyErrorFor(d,!0);return d}}async initSession(){if(!this.isClientTokenMode())throw new Error("initSession() only available in client token mode");if(this.clientSession&&new Date<this.clientSession.expiresAt)return this.clientSession;if(this.sessionInitPromise)return this.sessionInitPromise;this.sessionInitPromise=this._doInitSession();try{let t=await this.sessionInitPromise;return this.clientSession=t,this.resetClientToolsFingerprint(),this.config.onSessionInit?.(t),t}finally{this.sessionInitPromise=null}}isHistoryCapable(){return this.config.features?.history?.enabled===!0&&this.isClientTokenMode()&&!this.historyUnavailable}async readVisitorToken(){let t=this.historyInternals.visitorStore;return t?(await t.ready,await t.get()??null):null}markHistoryUnavailable(){if(!this.historyUnavailable){this.setHistoryIdentityStatus({state:"unavailable",reason:"history_disabled"}),this.historyUnavailable=!0,!this.historyUnavailableWarned&&typeof console<"u"&&(this.historyUnavailableWarned=!0,console.warn("[Persona] Visitor history is disabled for this surface; continuing without it.")),this.historyInternals.onHistoryAvailabilityChanged?.(!1);for(let t of[...this.historyAvailabilitySubscribers])t(!1)}}getHistoryIdentityStatus(){return this.historyIdentityStatus??this.restingIdentityStatus()}subscribeHistoryIdentityStatus(t){return this.historyIdentitySubscribers.add(t),()=>{this.historyIdentitySubscribers.delete(t)}}subscribeHistoryAvailability(t){return this.historyAvailabilitySubscribers.add(t),this.historyUnavailable&&t(!1),()=>{this.historyAvailabilitySubscribers.delete(t)}}restingIdentityStatus(){return this.isClientTokenMode()?this.config.features?.history?.enabled!==!0||this.historyUnavailable?{state:"unavailable",reason:"history_disabled"}:this.browserOnlyStatus():{state:"unavailable",reason:"ineligible_mode"}}browserOnlyStatus(){let t=this.historyIdentityStatus;return t?.state==="browser_only"?t:this.derivedBrowserOnly()}derivedBrowserOnly(){return this.config.features?.history?.scope==="browser"?{state:"browser_only",reason:"configured_browser_scope"}:this.config.getIdentityProof?{state:"browser_only",reason:"proof_unavailable_before_binding"}:{state:"browser_only",reason:"no_identity_provider"}}setHistoryIdentityStatus(t){let n=this.getHistoryIdentityStatus(),o=n.state===t.state&&Vv(n)===Vv(t);if(this.historyIdentityStatus=t,!o){this.historyInternals.onHistoryIdentityStatusChanged?.(t);for(let r of[...this.historyIdentitySubscribers])r(t)}}async createClientSession(t){let n=this.isHistoryCapable()&&!t.omitVisitorFields,o=!t.omitVisitorFields,r=null;(n||o)&&(await this.historyInternals.historyBootstrapReady,r=await this.readVisitorToken());let s=this.routing(),a=s.agentId??s.flowId,l=n||t.durableResume?t.conversationId:void 0,d={token:this.config.clientToken,...a&&{flowId:a},...n&&{visitorHistory:!0},...o&&{durableRecovery:!0},...(n||o)&&r?{visitorToken:r}:{},...n&&t.identityProof?{identityProof:t.identityProof}:{},...l?{conversationId:l}:t.storedSessionId?{sessionId:t.storedSessionId}:{}},p=await fetch(this.getClientApiUrl("init"),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":io},body:JSON.stringify(d)});if(p.status===400&&o){let m={...d};delete m.durableRecovery,p=await fetch(this.getClientApiUrl("init"),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":io},body:JSON.stringify(m)})}if(!p.ok){let m=await p.json().catch(()=>({error:"Session initialization failed"}));if(n&&p.status===403&&m.error==="visitor_history_disabled"){if(this.markHistoryUnavailable(),l)throw new ze("history_disabled","Visitor history is disabled for this surface");return this.createClientSession({...t,omitVisitorFields:!0})}throw p.status===403&&m.error==="durable_recovery_disabled"?new ze("history_disabled","Durable recovery is disabled for this surface"):(n||t.durableResume)&&p.status===401&&m.error==="visitor_required"?new ze("visitor_required","Visitor credential no longer resolves"):l&&p.status===404?new ze("not_found","Conversation not found"):p.status===401?new Error(`Invalid client token: ${m.hint||m.error}`):p.status===403?new Error(`Origin not allowed: ${m.hint||m.error}`):new Error(m.error||"Failed to initialize session")}let u=await p.json();return u.visitor?.token&&await this.historyInternals.visitorStore?.set(u.visitor.token),{sessionId:u.sessionId,expiresAt:new Date(u.expiresAt),flow:u.flow,...u.conversationId?{conversationId:u.conversationId}:{},...u.targetId??u.flow?.id?{targetId:u.targetId??u.flow?.id}:{},...u.conversationRevision?{conversationRevision:u.conversationRevision}:{},...u.durableRecovery?{durableRecovery:u.durableRecovery}:{},...u.visitor?{visitor:u.visitor}:{},config:{welcomeMessage:u.config.welcomeMessage,placeholder:u.config.placeholder,theme:u.config.theme}}}async _doInitSession(){await this.historyInternals.historyBootstrapReady;let t=this.config.getStoredConversationId?.()||null,n=this.historyInternals.shouldResumeDurableConversation?.()===!0;if(!this.isHistoryCapable()&&!n)return this.ordinaryInit(t,!1);let o=await this.readVisitorToken();if(t&&o)try{let r=await this.createClientSession({conversationId:t,durableResume:n});return n&&r.durableRecovery?.enabled!==!0&&this.historyInternals.setStoredResumableHandle?.(null),this.finishInit(r,t,!1)}catch(r){if(!tm(r,"not_found")&&!tm(r,"visitor_required")&&!tm(r,"history_disabled"))throw r;return n&&this.historyInternals.setStoredResumableHandle?.(null),this.ordinaryInit(t,!0)}return this.ordinaryInit(t,!1)}async ordinaryInit(t,n){let o=this.historyInternals.visitorStore;return o&&!await this.readVisitorToken()?o.withFirstInitLock(()=>this.doOrdinaryInit(t,n)):this.doOrdinaryInit(t,n)}async doOrdinaryInit(t,n){let o=this.config.getStoredSessionId?.()||null,r=await this.createClientSession({storedSessionId:o}),s=await this.claimFirstConversation(r);return this.finishInit(s,t,n)}async reinitWithProof(t){let n=this.config.getStoredSessionId?.()||null,o=this.config.getStoredConversationId?.()||null,r=await this.createClientSession({storedSessionId:n,identityProof:t}),s=this.finishInit(r,o,!1);return this.clientSession=s,this.sessionInitPromise=null,this.resetClientToolsFingerprint(),s}async claimFirstConversation(t){if(!t.visitor?.token||this.claimInFlight||!this.isHistoryCapable()&&t.durableRecovery?.enabled!==!0)return t;this.claimInFlight=!0;try{return await this.createClientSession({storedSessionId:t.sessionId})}catch{return t}finally{this.claimInFlight=!1}}finishInit(t,n,o){let r=t.conversationId;return r&&n&&(o||r!==n)&&this.historyInternals.onHistoryContinuityChanged?.({previousConversationId:n,conversationId:r}),this.config.setStoredSessionId?.(t.sessionId),r&&(this.config.setStoredConversationId?.(r),this.historyInternals.setStoredConversationRevision?.(t.conversationRevision??null)),t}prepared(t){let n=!1;return{session:t,commit:()=>{n||(n=!0,this.clientSession=t,this.resetClientToolsFingerprint())},discard:()=>{n=!0}}}async prepareConversationSession(t,n){if(!this.isClientTokenMode())throw new Error("prepareConversationSession() only available in client token mode");if(!this.isHistoryCapable())throw new ze("history_disabled","Visitor history is disabled for this surface");await this.historyInternals.historyBootstrapReady;let o=n?.proof??null;if(!await this.readVisitorToken()&&!o)throw new ze("conversation_credential_missing","Reopening a conversation requires a stored visitor token or an identity proof");let s=await this.createClientSession({conversationId:t,identityProof:o});return this.prepared(s)}async prepareNewConversationSession(){if(!this.isClientTokenMode())throw new Error("prepareNewConversationSession() only available in client token mode");await this.historyInternals.historyBootstrapReady;let t=await this.createClientSession({});return this.prepared(t)}handleExternalCredentialChange(){this.clearClientSession(),this.isHistoryCapable()&&this.setHistoryIdentityStatus(this.derivedBrowserOnly())}clearClientSession(){this.clientSession=null,this.sessionInitPromise=null,this.resetClientToolsFingerprint()}resetClientToolsFingerprint(){this.lastSentClientToolsFingerprint=null,this.clientToolsFingerprintSessionId=null,this.sentNonEmptyClientToolsSessionId=null}getFeedbackApiUrl(){return`${this.clientApiBase()}/v1/client/feedback`}async sendFeedback(t){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 r={...t,...this.config.clientToken&&{token:this.config.clientToken}},s=await fetch(this.getFeedbackApiUrl(),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":io},body:JSON.stringify(r)});if(!s.ok){let a=await s.json().catch(()=>({error:"Feedback submission failed"}));throw s.status===401?(this.clientSession=null,this.config.onSessionExpired?.(),new Error("Session expired. Please refresh to continue.")):new Error(a.error||"Failed to submit feedback")}}async submitMessageFeedback(t,n){let o=this.getClientSession();if(!o)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:o.sessionId,messageId:t,type:n})}async submitCSATFeedback(t,n){let o=this.getClientSession();if(!o)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:o.sessionId,type:"csat",rating:t,comment:n})}async submitNPSFeedback(t,n){let o=this.getClientSession();if(!o)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:o.sessionId,type:"nps",rating:t,comment:n})}historyUrl(t,n){let o=new URLSearchParams;for(let[s,a]of Object.entries(n))a===void 0||a===""||o.set(s,String(a));let r=o.toString();return`${this.clientApiBase()}/v1/client/${t}${r?`?${r}`:""}`}resolveHistoryScope(t){if(t)return t;let n=this.config.features?.history?.scope;return n||(this.config.getIdentityProof?"verified-user":"browser")}async resolveIdentityProof(t,n){let o=this.config.getIdentityProof;if(!o)return n&&this.setHistoryIdentityStatus(this.browserOnlyStatus()),null;n&&this.setHistoryIdentityStatus({state:"verifying"});let r;try{r=await o()??null}catch{throw n&&this.setHistoryIdentityStatus({state:"identity_provider_failed"}),new ze("identity_provider_failed","The identity proof provider failed")}if(r)return r;if(t.visitor?.endUserId!=null)throw n&&this.setHistoryIdentityStatus({state:"authentication_required",reason:"proof_unavailable_after_binding"}),new ze("authentication_required","This browser is bound to a signed-in user and needs a fresh identity proof");return n&&this.setHistoryIdentityStatus({state:"browser_only",reason:"proof_unavailable_before_binding"}),null}async bindIdentity(t,n,o){if(t.visitor?.endUserId!=null)return t;let r=await this.reinitWithProof(n);if(!(r.visitor?.identityStatus==="admitted"&&r.visitor?.endUserId!=null))throw o&&this.setHistoryIdentityStatus({state:"configuration_error",reason:"proof_not_admitted"}),new ze("proof_not_admitted",Kv);return r}async readErrorCode(t){let n=await t.json().catch(()=>({}));return typeof n.error=="string"?n.error:typeof n.message=="string"?n.message:""}async recoverFromUnauthorized(t,n,o){let r=t.toLowerCase();if(r.includes("invalid_identity_proof"))throw o&&this.setHistoryIdentityStatus({state:"authentication_required",reason:"invalid_identity_proof"}),new ze("invalid_identity_proof",Gv);if(r.includes("visitor token required"))throw new ze("visitor_token_missing",Qv);if(r.includes("visitor_identity_mismatch")){if(!n)throw o&&this.setHistoryIdentityStatus({state:"authentication_required",reason:"proof_unavailable_after_binding"}),new ze("visitor_identity_mismatch",Yv);return this.reinitWithProof(n)}if(r.includes("expired")||r.includes("not found"))return this.clearClientSession(),this.initSession();throw new ze("unauthorized",t||"History request was not authorized")}async historyErrorFor(t,n){let o=await this.readErrorCode(t);if(t.status===404)return new ze("not_found","Conversation not found");if(t.status===429){let r=Number.parseInt(t.headers.get("Retry-After")??"",10);return new ze("rate_limited","Too many history requests",{...Number.isFinite(r)?{retryAfterSeconds:r}:{}})}if(t.status===503&&o.includes("identity_proof_not_admitted"))return n&&this.setHistoryIdentityStatus({state:"configuration_error",reason:"proof_not_admitted"}),new ze("proof_not_admitted",Kv);if(t.status===401){let r=o.toLowerCase();return r.includes("invalid_identity_proof")?(n&&this.setHistoryIdentityStatus({state:"authentication_required",reason:"invalid_identity_proof"}),new ze("invalid_identity_proof",Gv)):r.includes("visitor token required")?new ze("visitor_token_missing",Qv):r.includes("visitor_identity_mismatch")?new ze("visitor_identity_mismatch",Yv):new ze("unauthorized",o||"History request was not authorized")}return new ze("request_failed",o||`History request failed (${t.status})`)}commitIdentityAcknowledgement(t,n,o){let r=t?.toLowerCase()??null;if(n){if(r==="admitted"){o&&this.setHistoryIdentityStatus({state:"verified"});return}throw o&&this.setHistoryIdentityStatus({state:"configuration_error",reason:"proof_not_admitted"}),r==="ignored"?new ze("identity_contract_violation","Server reported an ignored identity proof on a success response"):new ze("proof_not_admitted","The response did not acknowledge the identity proof this request sent")}if(r==="admitted")throw new ze("identity_contract_violation","Server admitted an identity proof that was never sent");o&&this.setHistoryIdentityStatus(this.browserOnlyStatus())}async historyFetch(t,n){this.assertHistoryUsable();let o=n.trackIdentity!==!1,r=await this.initSession(),s=null;this.resolveHistoryScope(n.scope)==="verified-user"&&(s=await this.resolveIdentityProof(r,o),s&&(r=await this.bindIdentity(r,s,o)));let a=this.historyInternals.visitorStore,l=!1;for(;;){let d=a?.revision()??0,p=await this.readVisitorToken();if(!p&&!n.visitorTokenOptional)throw new ze("visitor_token_missing","No visitor credential is stored for this browser");let u=await fetch(this.historyUrl(t,{...n.query,sessionId:r.sessionId}),{method:n.method,headers:{"X-Persona-Version":io,...p?{"X-Visitor-Token":p}:{},...s?{"X-Identity-Proof":s}:{},...n.body!==void 0?{"Content-Type":"application/json"}:{}},...n.body!==void 0?{body:JSON.stringify(n.body)}:{},...n.keepalive?{keepalive:!0}:{}});if(u.status===401&&!l){l=!0,r=await this.recoverFromUnauthorized(await this.readErrorCode(u),s,o);continue}if(!u.ok)throw await this.historyErrorFor(u,o);let m=u.headers.get("X-History-Identity-Status"),y=await u.json().catch(()=>{});if(a&&a.revision()!==d)throw new ze("credential_changed","The visitor credential changed while the request was in flight");return this.commitIdentityAcknowledgement(m,s!==null,o),y}}assertHistoryUsable(){if(!this.isClientTokenMode())throw new Error("Conversation history is only available in client token mode");if(!this.isHistoryCapable())throw new ze("history_disabled","Visitor history is disabled for this surface")}async listConversations(t){let n=await this.historyFetch("conversations",{method:"GET",query:{...t?.cursor?{cursor:t.cursor}:{},...t?.limit!==void 0?{limit:t.limit}:{},...t?.targetId?{targetId:t.targetId}:{}},...t?.scope?{scope:t.scope}:{}});return{data:(Array.isArray(n?.data)?n.data:[]).map(zv),nextCursor:typeof n?.nextCursor=="string"?n.nextCursor:null}}async getConversation(t,n){let o=await this.historyFetch(`conversations/${encodeURIComponent(t)}`,{method:"GET",query:{...n?.messageCursor?{messageCursor:n.messageCursor}:{}},...n?.scope?{scope:n.scope}:{}}),r=o&&typeof o.conversation=="object"&&o.conversation!==null?o.conversation:o;return{summary:zv(r),messages:Array.isArray(o?.messages)?o.messages:[],nextMessageCursor:typeof o?.nextMessageCursor=="string"?o.nextMessageCursor:null,conversationRevision:typeof o?.conversationRevision=="string"?o.conversationRevision:null}}async finalizeDisplayProjections(t,n){this.assertHistoryUsable();let o=0;for(let d of n){let p=d.displayContent.length;if(p>qv)throw new ze("payload_too_large",`displayContent exceeds the ${qv} character limit`);o+=p}if(o>em)throw new ze("payload_too_large",`Display projection batch exceeds the ${em} character limit`);await this.initSession();let r=this.historyInternals.visitorStore,s=r?.revision()??0,a=await this.historyFetch(`conversations/${encodeURIComponent(t)}/display-projections`,{method:"PATCH",body:{messages:n},scope:"browser",keepalive:o<=em,trackIdentity:!1}),l=typeof a?.conversationRevision=="string"?a.conversationRevision:null;return l&&this.clientSession?.conversationId===t&&(r?.revision()??0)===s&&this.historyInternals.setStoredConversationRevision?.(l),{conversationRevision:l}}async deleteConversation(t,n){let o=await this.historyFetch(`conversations/${encodeURIComponent(t)}`,{method:"DELETE",...n?.scope?{scope:n.scope}:{}});return{deleted:typeof o?.deleted=="number"?o.deleted:0}}async deleteAllConversations(t){let n=await this.historyFetch("conversations",{method:"DELETE",query:{...t?.targetId!==void 0?{targetId:t.targetId}:{}},...t?.scope?{scope:t.scope}:{}});return{deleted:typeof n?.deleted=="number"?n.deleted:0}}async resetVisitor(){this.assertHistoryUsable(),this.setHistoryIdentityStatus({state:"resetting"});try{await this.historyFetch("visitor/reset",{method:"POST",scope:"browser",visitorTokenOptional:!0})}finally{await this.historyInternals.visitorStore?.clear(),this.setHistoryIdentityStatus(this.derivedBrowserOnly())}return{reset:!0}}async dispatch(t,n){return t.signal?.throwIfAborted(),this.isClientTokenMode()?this.dispatchClientToken(t,n):this.isAgentMode()?this.dispatchAgent(t,n):this.dispatchProxy(t,n)}async dispatchClientToken(t,n){let o=uv();this.currentClientTurnId=o;let r=()=>this.currentClientTurnId===o,s=a=>{r()&&n(a)};n({type:"status",status:"connecting"});try{let a=await this.initSession();if(new Date>=new Date(a.expiresAt.getTime()-6e4)){this.clearClientSession(),this.config.onSessionExpired?.();let C=new Error("Session expired. Please refresh to continue.");throw s({type:"error",error:C}),C}let l=await this.buildPayload(t.messages),d=a.durableRecovery?.enabled===!0?await this.readVisitorToken():null,p=l.metadata?Object.fromEntries(Object.entries(l.metadata).filter(([C])=>C!=="sessionId"&&C!=="session_id")):void 0,u=this.isHistoryCapable(),m={sessionId:a.sessionId,messages:t.messages.filter(nm).map(C=>{let S=u?ml(C):void 0;return{id:C.id,role:C.role,content:C.contentParts??C.llmContent??C.rawContent??C.content,...S!==void 0&&{displayContent:S}}}),...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},turnId:o,...t.interrupt&&{submitMode:"interrupt"}},{response:y,commit:h}=await this.sendWithClientToolsDiff(a.sessionId,l.clientTools,C=>{let S={...m,...C};return this.debug&&console.debug("[AgentWidgetClient] client token dispatch",S),fetch(this.getClientApiUrl("chat"),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":io,...d?{"X-Visitor-Token":d}:{}},body:JSON.stringify(S),signal:t.signal})});if(!y.ok){let C=await y.json().catch(()=>({error:"Chat request failed"}));if(y.status===401){this.clearClientSession(),this.config.onSessionExpired?.();let x=new Error("Session expired. Please refresh to continue.");throw s({type:"error",error:x}),x}if(y.status===429){let x=new Error(C.hint||"Message limit reached for this session.");throw s({type:"error",error:x}),x}if(y.status===410&&C.error==="conversation_deleted"){let x=new ze("conversation_deleted","This conversation was deleted");throw s({type:"error",error:x}),x}let S=new Error(C.error||"Failed to send message");throw s({type:"error",error:S}),S}if(!y.body){let C=new Error("No response body received");throw s({type:"error",error:C}),C}h(),s({type:"status",status:"connected"});try{await this.streamResponse(y.body,s,t.assistantMessageId)}finally{s({type:"status",status:"idle"})}}catch(a){let l=a instanceof Error?a:new Error(String(a));throw!(l instanceof ze)&&!l.message.includes("Session expired")&&!l.message.includes("Message limit")&&s({type:"error",error:l}),l}}async dispatchProxy(t,n){n({type:"status",status:"connecting"});let o=await this.buildPayload(t.messages,t.composerOptions);this.debug&&console.debug("[AgentWidgetClient] dispatch payload",o);let r={...this.headers};if(this.getHeaders)try{let a=await this.getHeaders();r={...r,...a}}catch(a){typeof console<"u"&&console.error("[AgentWidget] getHeaders error:",a)}let s;if(this.customFetch)try{s=await this.customFetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:t.signal},o)}catch(a){let l=a instanceof Error?a:new Error(String(a));throw n({type:"error",error:l}),l}else s=await fetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:t.signal});if(!s.ok||!s.body){let a=new Error(`Chat backend request failed: ${s.status} ${s.statusText}`);throw n({type:"error",error:a}),a}n({type:"status",status:"connected"});try{await this.streamResponse(s.body,n)}finally{n({type:"status",status:"idle"})}}async dispatchAgent(t,n){n({type:"status",status:"connecting"});let o=await this.buildAgentPayload(t.messages,t.composerOptions);this.debug&&console.debug("[AgentWidgetClient] agent dispatch payload",o);let r={...this.headers};if(this.getHeaders)try{let a=await this.getHeaders();r={...r,...a}}catch(a){typeof console<"u"&&console.error("[AgentWidget] getHeaders error:",a)}let s;if(this.customFetch)try{s=await this.customFetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:t.signal},o)}catch(a){let l=a instanceof Error?a:new Error(String(a));throw n({type:"error",error:l}),l}else s=await fetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:t.signal});if(!s.ok||!s.body){let a=new Error(`Agent execution request failed: ${s.status} ${s.statusText}`);throw n({type:"error",error:a}),a}n({type:"status",status:"connected"});try{await this.streamResponse(s.body,n,t.assistantMessageId)}finally{n({type:"status",status:"idle"})}}async processStream(t,n,o,r){n({type:"status",status:"connected"});try{await this.streamResponse(t,n,o,r)}finally{n({type:"status",status:"idle"})}}async resolveApproval(t,n){let o=`${this.clientApiBase()}/v1/agents/${t.agentId}/approve`,r={"Content-Type":"application/json",...this.headers};return this.getHeaders&&Object.assign(r,await this.getHeaders()),fetch(o,{method:"POST",headers:r,body:JSON.stringify({executionId:t.executionId,approvalId:t.approvalId,decision:n,streamResponse:!0})})}async sendWithClientToolsDiff(t,n,o,r){let s=!!(n&&n.length>0),a=s?av(n):void 0,l=this.clientToolsFingerprintSessionId===t,d=s&&l&&this.lastSentClientToolsFingerprint===a,p=!s&&r?.emptyMeansReplace===!0&&this.sentNonEmptyClientToolsSessionId===t,u=!1,m;for(let y=0;;y++){if(m=await o({...s&&(u||!d)&&n?{clientTools:n}:{},...p?{clientTools:[]}:{},...a?{clientToolsFingerprint:a}:{}}),m.status===409&&y===0&&s&&(await m.clone().json().catch(()=>null))?.error==="client_tools_resend_required"){u=!0,this.lastSentClientToolsFingerprint=null;continue}break}return{response:m,commit:()=>{this.lastSentClientToolsFingerprint=a??null,this.clientToolsFingerprintSessionId=t,s?this.sentNonEmptyClientToolsSessionId=t:p&&(this.sentNonEmptyClientToolsSessionId=null)}}}async resumeFlow(t,n,o){let r=this.isClientTokenMode(),s=r?this.getClientApiUrl("resume"):`${this.config.apiUrl?.replace(/\/+$/,"")||jv}/resume`,a,l=null;if(r){let u=await this.initSession();a=u.sessionId,u.durableRecovery?.enabled===!0&&(l=await this.readVisitorToken())}let d={"Content-Type":"application/json",...l?{"X-Visitor-Token":l}:{},...this.headers};this.getHeaders&&Object.assign(d,await this.getHeaders());let p={executionId:t,toolOutputs:n,streamResponse:o?.streamResponse??!0,...o?.after?{after:o.after}:{}};if(a&&(p.sessionId=a),r&&a){let u=[...zi(this.config),...await(await this.getWebMcpBridge())?.snapshotForDispatch()??[]],{response:m,commit:y}=await this.sendWithClientToolsDiff(a,u,h=>{let C={...p,...h};return this.debug&&console.debug("[AgentWidgetClient] client token resume",C),fetch(s,{method:"POST",headers:d,body:JSON.stringify(C),signal:o?.signal})},{emptyMeansReplace:!0});return m.ok&&y(),m}return fetch(s,{method:"POST",headers:d,body:JSON.stringify(p),signal:o?.signal})}latestMentionContext(t){for(let n=t.length-1;n>=0;n--){let o=t[n];if(o.role==="user")return o.mentionContext&&Object.keys(o.mentionContext).length>0?{mentions:o.mentionContext}:null}return null}async buildContextAggregate(t){let n={};this.contextProviders.length&&await Promise.all(this.contextProviders.map(async r=>{try{let s=await r({messages:t,config:this.config});s&&typeof s=="object"&&Object.assign(n,s)}catch(s){typeof console<"u"&&console.warn("[AgentWidget] Context provider failed:",s)}}));let o=this.latestMentionContext(t);return o&&Object.assign(n,o),Object.keys(n).length?n:null}normalizeComposerOptions(t){if(!t)return;let n={};return t.selectedModelId&&(n.selectedModelId=t.selectedModelId),t.activeModeIds?.length&&(n.activeModeIds=[...t.activeModeIds]),Object.keys(n).length>0?n:void 0}applyInlineAgentModel(t,n){let o=n?.selectedModelId;return!o||!("model"in t)?t:this.config.composer?.models?.some(s=>s.id===o)?{...t,model:o}:t}async buildAgentPayload(t,n){let o=this.routing().agentId;if(!this.config.agent&&!o)throw new Error("Agent configuration required for agent mode");let r=t.slice().filter(nm).filter(p=>p.role==="user"||p.role==="assistant"||p.role==="system").filter(p=>!p.variant||p.variant==="assistant").sort((p,u)=>{let m=new Date(p.createdAt).getTime(),y=new Date(u.createdAt).getTime();return m-y}).map(p=>({role:p.role,content:p.contentParts??p.llmContent??p.rawContent??p.content,createdAt:p.createdAt})),s=this.normalizeComposerOptions(n),a={agent:this.applyInlineAgentModel(this.config.agent??{agentId:o},s),messages:r,options:{streamResponse:!0,recordMode:"virtual",...this.config.agentOptions}};s&&(a.composerOptions=s);let l=[...zi(this.config),...await(await this.getWebMcpBridge())?.snapshotForDispatch()??[]];l.length>0&&(a.clientTools=l);let d=await this.buildContextAggregate(t);return d&&(a.context=d),a}async buildPayload(t,n){let o=t.slice().filter(nm).sort((p,u)=>{let m=new Date(p.createdAt).getTime(),y=new Date(u.createdAt).getTime();return m-y}).map(p=>({role:p.role,content:p.contentParts??p.llmContent??p.rawContent??p.content,createdAt:p.createdAt})),r=this.routing(),s={messages:o,...r.agentId?{agent:{agentId:r.agentId}}:r.flowId?{flowId:r.flowId}:{}};if(r.targetPayload)for(let[p,u]of Object.entries(r.targetPayload))p!=="messages"&&(s[p]=u);let a=[...zi(this.config),...await(await this.getWebMcpBridge())?.snapshotForDispatch()??[]];a.length>0&&(s.clientTools=a);let l=await this.buildContextAggregate(t);l&&(s.context=l);let d=this.normalizeComposerOptions(n);if(d&&(s.composerOptions=d),this.requestMiddleware)try{let p=await this.requestMiddleware({payload:{...s},config:this.config});if(p&&typeof p=="object"){let u=p;return s.clientTools!==void 0&&!("clientTools"in u)&&(u.clientTools=s.clientTools),u}}catch(p){typeof console<"u"&&console.error("[AgentWidget] Request middleware error:",p)}return s}async handleCustomSSEEvent(t,n,o,r,s,a){if(!this.parseSSEEvent)return!1;try{let l=await this.parseSSEEvent(t);if(l===null)return!1;let d=u=>{let m={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"assistant",sequence:s(),...u!==void 0&&{partId:u}};return o.current=m,r(m),m},p=u=>o.current?o.current:d(u);if(l.text!==void 0){l.partId!==void 0&&a.current!==null&&l.partId!==a.current&&(o.current&&(o.current.streaming=!1,r(o.current)),d(l.partId)),l.partId!==void 0&&(a.current=l.partId);let u=p(l.partId);l.partId!==void 0&&!u.partId&&(u.partId=l.partId),u.content+=l.text,r(u)}return l.done&&(o.current&&(o.current.streaming=!1,r(o.current)),a.current=null,n({type:"status",status:"idle"})),l.error&&(a.current=null,n({type:"error",error:new Error(l.error)})),!0}catch(l){return typeof console<"u"&&console.error("[AgentWidget] parseSSEEvent error:",l),!1}}async streamResponse(t,n,o,r){let s=t.getReader(),a=new TextDecoder,l="",d=Date.now(),p=0,u=()=>d+p++,m=D=>{let J=D.reasoning?{...D.reasoning,chunks:[...D.reasoning.chunks]}:void 0,v=D.toolCall?{...D.toolCall,chunks:D.toolCall.chunks?[...D.toolCall.chunks]:void 0}:void 0,_=D.tools?D.tools.map(F=>({...F,chunks:F.chunks?[...F.chunks]:void 0})):void 0;return{...D,reasoning:J,toolCall:v,tools:_}},y=D=>{if(D.role!=="assistant"||D.variant)return!0;let J=Array.isArray(D.contentParts)&&D.contentParts.length>0,v=typeof D.rawContent=="string"&&D.rawContent.trim()!=="";return typeof D.content=="string"&&D.content.trim()!==""||J||v||!!D.stopReason},h=D=>{y(D)&&n({type:"message",message:m(D)})},C=null,S=null,x={current:null},k={current:null},O=null,$="",T=new Map,I=new Map,A=new Map,N=new Map,Q=new Map,ce={lastId:null,byStep:new Map},Y={lastId:null,byCall:new Map},E=D=>{if(D==null)return null;try{return String(D)}catch{return null}},B=D=>E(D.stepId??D.step_id??D.step??D.parentId??D.flowStepId??D.flow_step_id),H=D=>E(D.callId??D.call_id??D.requestId??D.request_id??D.toolCallId??D.tool_call_id??D.stepId??D.step_id),L=o,te=!1,K=()=>{if(C)return C;let D,J="",v=O;return!te&&L?(D=L,te=!0,J=r??""):L&&v?D=`${L}_${v}`:D=`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,C={id:D,role:"assistant",content:J,createdAt:new Date().toISOString(),streaming:!0,sequence:u()},h(C),C},me=(D,J)=>{ce.lastId=J,D&&ce.byStep.set(D,J)},de=(D,J)=>{let v=D.reasoningId??D.id,_=B(D);if(v){let U=String(v);return me(_,U),U}if(_){let U=ce.byStep.get(_);if(U)return ce.lastId=U,U}if(ce.lastId&&!J)return ce.lastId;if(!J)return null;let F=`reason-${u()}`;return me(_,F),F},he=D=>{let J=N.get(D);if(J)return J;let v={id:`reason-${D}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"reasoning",sequence:u(),reasoning:{id:D,status:"streaming",chunks:[]}};return N.set(D,v),h(v),v},We=(D,J)=>{Y.lastId=J,D&&Y.byCall.set(D,J)},Oe=new Set,Se=new Map,Xe=new Set,we=new Map,j=D=>{if(!D)return!1;let J=D.replace(/_+/g,"_").replace(/^_|_$/g,"");return J==="emit_artifact_markdown"||J==="emit_artifact_component"},$e=(D,J)=>{let v=D.toolId??D.id,_=H(D);if(v){let U=String(v);return We(_,U),U}if(_){let U=Y.byCall.get(_);if(U)return Y.lastId=U,U}if(Y.lastId&&!J)return Y.lastId;if(!J)return null;let F=`tool-${u()}`;return We(_,F),F},je=D=>{let J=Q.get(D);if(J)return J;let v={id:`tool-${D}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"tool",sequence:u(),toolCall:{id:D,status:"pending"}};return Q.set(D,v),h(v),v},mt=D=>{if(typeof D=="number"&&Number.isFinite(D))return D;if(typeof D=="string"){let J=Number(D);if(!Number.isNaN(J)&&Number.isFinite(J))return J;let v=Date.parse(D);if(!Number.isNaN(v))return v}return Date.now()},Ae=D=>{if(typeof D=="string")return D;if(D==null)return"";try{return JSON.stringify(D)}catch{return String(D)}},ke=new Map,ve=new Map,Re=new Map,Mt=(D,J,v)=>{let _=Re.get(D);_||(_=[],Re.set(D,_));let F=0,U=_.length;for(;F<U;){let ie=F+U>>>1;_[ie].seq<J?F=ie+1:U=ie}_[F]?.seq===J?_[F]={seq:J,text:v}:_.splice(F,0,{seq:J,text:v});let oe="";for(let ie=0;ie<_.length;ie++)oe+=_[ie].text;return oe},Xt=(D,J)=>{let v=Ae(J),_=ve.get(D.id),F=fT(_,v);D.rawContent=F;let U=ke.get(D.id),oe=_e=>{let Ot=D.content??"";_e.trim()!==""&&(Ot.trim().length===0||_e.startsWith(Ot)||_e.trimStart().startsWith(Ot.trim()))&&(D.content=_e)},ie=()=>{if(U){let _e=U.close?.();_e instanceof Promise&&_e.catch(()=>{})}ke.delete(D.id),ve.delete(D.id),D.streaming=!1,h(D)};if(!U){oe(v),ie();return}let le=gl(F);if(le!==null&&le.trim()!==""){oe(le),ie();return}let pe=_e=>{let Ot=typeof _e=="string"?_e:_e?.text??null;if(Ot!==null&&Ot.trim()!=="")return Ot;let Pt=U.getExtractedText();return Pt!==null&&Pt.trim()!==""?Pt:v},Ut;try{Ut=U.processChunk(F)}catch{oe(v),ie();return}if(Ut instanceof Promise){Ut.then(_e=>{oe(pe(_e)),ie()}).catch(()=>{oe(v),ie()});return}oe(pe(Ut)),ie()},ft=null,un=(D,J,v,_)=>{D.rawContent=J,ke.has(D.id)||ke.set(D.id,this.createStreamParser());let F=ke.get(D.id),U=J.trim().startsWith("{")||J.trim().startsWith("[");if(U&&ve.set(D.id,J),F.__isPlainTextParser===!0){D.content=_!==void 0?J:D.content+v,ve.delete(D.id),ke.delete(D.id),D.rawContent=void 0,h(D);return}let ie=F.processChunk(J);if(ie instanceof Promise)ie.then(le=>{let pe=typeof le=="string"?le:le?.text??null;pe!==null&&pe.trim()!==""?(D.content=pe,h(D)):!U&&!J.trim().startsWith("<")&&(D.content=_!==void 0?J:D.content+v,ve.delete(D.id),ke.delete(D.id),D.rawContent=void 0,h(D))}).catch(()=>{D.content=_!==void 0?J:D.content+v,ve.delete(D.id),ke.delete(D.id),D.rawContent=void 0,h(D)});else{let le=typeof ie=="string"?ie:ie?.text??null;le!==null&&le.trim()!==""?(D.content=le,h(D)):!U&&!J.trim().startsWith("<")&&(D.content=_!==void 0?J:D.content+v,ve.delete(D.id),ke.delete(D.id),D.rawContent=void 0,h(D))}},Gn=(D,J)=>{let v=J??D.content;if(v==null||v===""){D.streaming=!1,h(D);return}let F=ve.get(D.id)??Ae(v);D.rawContent=F;let U=ke.get(D.id),oe=null,ie=!1;if(U&&(oe=U.getExtractedText(),oe===null&&(oe=gl(F)),oe===null)){let le=U.processChunk(F);le instanceof Promise?(ie=!0,le.then(pe=>{let Ut=typeof pe=="string"?pe:pe?.text??null;Ut!==null&&(D.content=Ut,D.streaming=!1,ke.delete(D.id),ve.delete(D.id),h(D))}).catch(()=>{})):oe=typeof le=="string"?le:le?.text??null}if(!ie){oe!==null&&oe.trim()!==""?D.content=oe:ve.has(D.id)||(D.content=Ae(v));let le=ke.get(D.id);if(le){let pe=le.close?.();pe instanceof Promise&&pe.catch(()=>{}),ke.delete(D.id)}ve.delete(D.id),D.streaming=!1,h(D)}},an=(D,J,v)=>{let _=I.get(D);if(_)return _;let F={id:`nested-${J}-${D}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:u(),...v?{variant:v}:{},...v==="reasoning"?{reasoning:{id:D,status:"streaming",chunks:[]}}:{},agentMetadata:{parentToolId:J}};return I.set(D,F),h(F),F},Mo=[],Qn,po=new Map,si=0,Eo="agent",Qo=!1,ls=null,ot=null,Wn=new Map,uo=this.config.iterationDisplay??"separate";for(Qn=()=>{for(let D=0;D<Mo.length;D++){let J=Mo[D].payloadType,v=Mo[D].payload;if(!Qo&&Eo!=="flow"&&typeof v.stepType=="string"&&(Eo="flow"),J==="reasoning_start"){let _=typeof v.id=="string"?v.id:null,F=typeof v.parentToolCallId=="string"&&v.parentToolCallId?v.parentToolCallId:null;if(_&&F){T.set(_,F),an(_,F,"reasoning");continue}let U=de(v,!0)??`reason-${u()}`,oe=he(U);oe.reasoning=oe.reasoning??{id:U,status:"streaming",chunks:[]},oe.reasoning.startedAt=oe.reasoning.startedAt??mt(v.startedAt??v.timestamp),oe.reasoning.completedAt=void 0,oe.reasoning.durationMs=void 0,(v.scope==="loop"||v.scope==="turn")&&(oe.reasoning.scope=v.scope),oe.streaming=!0,oe.reasoning.status="streaming",h(oe)}else if(J==="reasoning_delta"){let _=typeof v.id=="string"?v.id:null;if(_&&T.has(_)&&I.has(_)){let ie=I.get(_),le=v.reasoningText??v.text??v.delta??"";le&&v.hidden!==!0&&ie.reasoning&&(ie.reasoning.chunks.push(String(le)),h(ie));continue}let F=de(v,!1)??de(v,!0)??`reason-${u()}`,U=he(F);U.reasoning=U.reasoning??{id:F,status:"streaming",chunks:[]},U.reasoning.startedAt=U.reasoning.startedAt??mt(v.startedAt??v.timestamp);let oe=v.reasoningText??v.text??v.delta??"";if(oe&&v.hidden!==!0){let ie=typeof v.sequenceIndex=="number"?v.sequenceIndex:void 0;if(ie!==void 0){let le=Mt(F,ie,String(oe));U.reasoning.chunks=[le]}else U.reasoning.chunks.push(String(oe))}if(U.reasoning.status=v.done?"complete":"streaming",v.done){U.reasoning.completedAt=mt(v.completedAt??v.timestamp);let ie=U.reasoning.startedAt??Date.now();U.reasoning.durationMs=Math.max(0,(U.reasoning.completedAt??Date.now())-ie)}U.streaming=U.reasoning.status!=="complete",h(U)}else if(J==="reasoning_complete"){let _=typeof v.id=="string"?v.id:null;if(_&&T.has(_)&&I.has(_)){let le=I.get(_);if(le.reasoning){let pe=typeof v.text=="string"?v.text:"";pe&&le.reasoning.chunks.length===0&&le.reasoning.chunks.push(pe),le.reasoning.status="complete",le.streaming=!1,h(le)}T.delete(_),I.delete(_);continue}let F=de(v,!1)??de(v,!0)??`reason-${u()}`,U=typeof v.text=="string"?v.text:"";!N.get(F)&&(U||v.scope==="loop")&&he(F);let oe=N.get(F);if(oe?.reasoning){(v.scope==="loop"||v.scope==="turn")&&(oe.reasoning.scope=v.scope),U&&oe.reasoning.chunks.length===0&&oe.reasoning.chunks.push(U),oe.reasoning.status="complete",oe.reasoning.completedAt=mt(v.completedAt??v.timestamp);let le=oe.reasoning.startedAt??Date.now();oe.reasoning.durationMs=Math.max(0,(oe.reasoning.completedAt??Date.now())-le),oe.streaming=!1,h(oe)}let ie=B(v);ie&&ce.byStep.delete(ie)}else if(J==="tool_start"){C&&(C.streaming=!1,h(C),C=null),typeof v.iteration=="number"&&(si=v.iteration);let _=(typeof v.toolCallId=="string"?v.toolCallId:void 0)??$e(v,!0)??`tool-${u()}`,F=v.toolName??v.name;if(j(F)){Oe.add(_);continue}We(H(v),_);let U=je(_),oe=U.toolCall??{id:_,status:"pending"};oe.name=F??oe.name,oe.status="running",v.parameters!==void 0?oe.args=v.parameters:v.args!==void 0&&(oe.args=v.args),oe.startedAt=oe.startedAt??mt(v.startedAt??v.timestamp),oe.completedAt=void 0,oe.durationMs=void 0,U.toolCall=oe,U.streaming=!0,v.executionId&&(U.agentMetadata={executionId:v.executionId,iteration:v.iteration}),h(U)}else if(J==="tool_output_delta"){let _=$e(v,!1)??$e(v,!0)??`tool-${u()}`;if(Oe.has(_))continue;let F=je(_),U=F.toolCall??{id:_,status:"running"};U.startedAt=U.startedAt??mt(v.startedAt??v.timestamp);let oe=v.text??v.delta??v.message??"";oe&&(U.chunks=U.chunks??[],U.chunks.push(String(oe))),U.status="running",F.toolCall=U,F.streaming=!0;let ie=v.agentContext;(ie||v.executionId)&&(F.agentMetadata=F.agentMetadata??{executionId:ie?.executionId??v.executionId,iteration:ie?.iteration??v.iteration}),h(F)}else if(J==="tool_complete"){let _=$e(v,!1)??$e(v,!0)??`tool-${u()}`;if(Oe.has(_)){Oe.delete(_);continue}let F=je(_),U=F.toolCall??{id:_,status:"running"};U.status="complete",v.result!==void 0&&(U.result=v.result),typeof v.duration=="number"&&(U.duration=v.duration),U.completedAt=mt(v.completedAt??v.timestamp);let oe=v.duration??v.executionTime;if(typeof oe=="number")U.durationMs=oe;else{let pe=U.startedAt??Date.now();U.durationMs=Math.max(0,(U.completedAt??Date.now())-pe)}F.toolCall=U,F.streaming=!1;let ie=v.agentContext;(ie||v.executionId)&&(F.agentMetadata=F.agentMetadata??{executionId:ie?.executionId??v.executionId,iteration:ie?.iteration??v.iteration}),h(F);let le=H(v);le&&Y.byCall.delete(le)}else if(J==="await"&&v.toolName){let _=typeof v.toolCallId=="string"&&v.toolCallId.length>0?v.toolCallId:void 0,F=_??v.toolId??`local-${u()}`,U=je(F),oe=v.toolName,ie=v.origin==="webmcp"&&!Vr(oe)?`webmcp:${oe}`:oe,le=Vr(ie),pe=U.toolCall??{id:F,status:"pending"};pe.name=ie,pe.args=v.parameters,pe.status=le?"running":"complete",pe.chunks=pe.chunks??[],pe.startedAt=pe.startedAt??mt(v.startedAt??v.timestamp??v.awaitedAt),le?(pe.completedAt=void 0,pe.duration=void 0,pe.durationMs=void 0):pe.completedAt=pe.completedAt??pe.startedAt,U.toolCall=pe,U.streaming=!1,U.agentMetadata={...U.agentMetadata,executionId:v.executionId??U.agentMetadata?.executionId,awaitingLocalTool:!0,..._?{webMcpToolCallId:_}:{}},h(U)}else if(J==="text_start"){let _=typeof v.id=="string"?v.id:null,F=typeof v.parentToolCallId=="string"&&v.parentToolCallId?v.parentToolCallId:null;if(_&&F){T.set(_,F);continue}let U=C;U&&(Eo==="flow"?(Gn(U),ft=U):(U.streaming=!1,h(U)),C=null),O=typeof v.id=="string"?v.id:O,$=""}else if(J==="text_delta"){let _=typeof v.id=="string"?v.id:null,F=_?T.get(_):void 0;if(_&&F){let ie=typeof v.delta=="string"?v.delta:"",le=(A.get(_)??"")+ie;if(A.set(_,le),le.trim()==="")continue;let pe=an(_,F);pe.agentMetadata={...pe.agentMetadata,executionId:v.executionId,parentToolId:F},un(pe,le,ie,void 0);continue}if(O=typeof v.id=="string"?v.id:O,Eo==="flow"){let ie=typeof v.delta=="string"?v.delta:"";if($+=ie,$.trim()==="")continue;let le=K();le.agentMetadata={executionId:v.executionId,iteration:v.iteration},un(le,$,ie,void 0),S=le;continue}let U=typeof v.delta=="string"?v.delta:"";$+=U;let oe=K();oe.agentMetadata={executionId:v.executionId,iteration:v.iteration,turnId:ls??void 0,agentName:ot?.agentName},un(oe,$,U,void 0),S=oe}else if(J==="text_complete"){let _=typeof v.id=="string"?v.id:null;if(_&&T.has(_)){let U=I.get(_);U&&Gn(U),T.delete(_),A.delete(_),I.delete(_);continue}let F=C;F&&(Eo==="flow"?(Gn(F),ft=F):((F.content??"")===""&&typeof v.text=="string"&&(F.content=v.text),F.streaming=!1,h(F)),C=null),O=null,$=""}else if(J==="step_complete"){let _=v.stepType,F=v.executionType;if(_==="tool"||F==="context")continue;if(v.success===!1){let U=v.error,oe=typeof U=="string"&&U!==""?U:U!=null&&typeof U=="object"&&Reflect.has(U,"message")?String(U.message??"Step failed"):"Step failed";n({type:"error",error:new Error(oe)});let ie=C;ie&&ie.streaming&&(ie.streaming=!1,h(ie)),n({type:"status",status:"idle"});continue}{let U=ft;ft=null;let oe=v.stopReason,ie=v.result?.response;if(U)oe&&(U.stopReason=oe),ie!=null?Xt(U,ie):U.streaming!==!1&&(ke.delete(U.id),ve.delete(U.id),U.streaming=!1,h(U));else{let le=ie!=null&&ie!=="";if(le||oe){let pe=K();oe&&(pe.stopReason=oe),le?Gn(pe,ie):(pe.streaming=!1,h(pe))}}continue}}else if(J==="execution_start")Eo=v.kind==="flow"?"flow":"agent",Qo=!0,Eo==="agent"&&(ot={executionId:v.executionId,agentId:v.agentId??"virtual",agentName:v.agentName??"",status:"running",currentIteration:0,maxTurns:v.maxTurns??1,startedAt:mt(v.startedAt)});else if(J==="turn_start"){let _=typeof v.iteration=="number"?v.iteration:si;if(_!==si){if(ot&&(ot.currentIteration=_),uo==="separate"&&_>1){let F=C;F&&(F.streaming=!1,h(F),Wn.set(_-1,F),C=null)}si=_}ls=typeof v.id=="string"?v.id:null,S=null}else if(J==="tool_input_delta"){let _=v.toolCallId??Y.lastId;if(_){let F=Q.get(_);F?.toolCall&&(F.toolCall.chunks=F.toolCall.chunks??[],F.toolCall.chunks.push(v.delta??""),h(F))}}else{if(J==="tool_input_complete")continue;if(J==="turn_complete"){let _=v.stopReason,F=C??S;if(_&&F!==null){let U=v.id;(!U||F.agentMetadata?.turnId===U)&&(F.stopReason=_,h(F))}ls===v.id&&(ls=null)}else if(J==="media_start"){let _=String(v.id);po.set(_,{mediaType:typeof v.mediaType=="string"?v.mediaType:void 0,role:typeof v.role=="string"?v.role:void 0,toolCallId:v.toolCallId,parts:[]})}else if(J==="media_delta"){let _=po.get(String(v.id));_&&typeof v.delta=="string"&&_.parts.push(v.delta)}else if(J==="media_complete"){let _=String(v.id),F=po.get(_);po.delete(_);let U=(typeof v.mediaType=="string"?v.mediaType:void 0)??F?.mediaType??"application/octet-stream",oe=typeof v.data=="string"?v.data:void 0,ie=typeof v.url=="string"?v.url:F&&F.parts.length>0?F.parts.join(""):void 0,le=null;if(oe)le={type:"media",data:oe,mediaType:U};else if(ie){let Ot=U.toLowerCase();le={type:Ot==="image"||Ot.startsWith("image/")?"image-url":"file-url",url:ie,mediaType:U}}let pe=v.toolCallId??F?.toolCallId,Ut=le?[le]:[],_e=[];for(let Ot of Ut){if(!Ot||typeof Ot!="object")continue;let Pt=Ot,Yo=typeof Pt.type=="string"?Pt.type:void 0,Mr=typeof Pt.mediaType=="string"?Pt.mediaType.toLowerCase():"",jt=null,qt="";if(Yo==="media"){let xn=typeof Pt.data=="string"?Pt.data:void 0;if(!xn)continue;qt=Mr.length>0?Mr:"application/octet-stream",jt=`data:${qt};base64,${xn}`}else if(Yo==="image-url"){let xn=typeof Pt.url=="string"?Pt.url:void 0;if(!xn)continue;qt=Mr,jt=xn}else if(Yo==="file-url"){let xn=typeof Pt.url=="string"?Pt.url:void 0;if(!xn)continue;qt=Mr,jt=xn}else continue;if(jt)if(Yo==="image-url"||qt.startsWith("image/"))_e.push({type:"image",image:jt,...qt.includes("/")?{mimeType:qt}:{}});else if(qt.startsWith("audio/"))_e.push({type:"audio",audio:jt,mimeType:qt});else if(qt.startsWith("video/"))_e.push({type:"video",video:jt,mimeType:qt});else{let xn=qt||"application/octet-stream";_e.push({type:"file",data:jt,mimeType:xn,filename:gT(xn)})}}if(_e.length>0){let Ot=u(),Pt=pe,Mr={id:`agent-media-${typeof Pt=="string"&&Pt.length>0?`${Pt}-${Ot}`:String(Ot)}`,role:"assistant",content:"",contentParts:_e,createdAt:new Date().toISOString(),streaming:!1,sequence:Ot,agentMetadata:{executionId:v.executionId,iteration:typeof v.iteration=="number"?v.iteration:si}};h(Mr);let jt=C;jt&&(jt.streaming=!1,h(jt)),C=null,x.current=null}}else if(J==="execution_complete"){let _=v.kind??Eo;_==="agent"&&ot&&(ot.status=v.success?"complete":"error",ot.completedAt=mt(v.completedAt),ot.stopReason=v.stopReason);let F=C;F&&(_==="flow"&&F.streaming!==!1?Gn(F):(F.streaming=!1,h(F)),C=null),O=null,$="",ft=null,n({type:"status",status:"idle",terminal:!0})}else if(J==="execution_error"){let _=typeof v.error=="string"?v.error:v.error?.message??"Execution error";n({type:"error",error:new Error(_)})}else if(J!=="ping"){if(J==="approval_start"){let _=v.approvalId??`approval-${u()}`,F={id:`approval-${_}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:u(),approval:{id:_,status:"pending",agentId:ot?.agentId??"virtual",executionId:v.executionId??ot?.executionId??"",toolName:v.toolName??"",toolType:v.toolType,description:v.description??`Execute ${v.toolName??"tool"}`,...typeof v.reason=="string"&&v.reason?{reason:v.reason}:{},parameters:v.parameters}};h(F)}else if(J==="step_await"&&v.awaitReason==="approval_required"){let _=v.approvalId??`approval-${u()}`,F={id:`approval-${_}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:u(),approval:{id:_,status:"pending",agentId:ot?.agentId??"virtual",executionId:v.executionId??ot?.executionId??"",toolName:v.toolName??"",toolType:v.toolType,description:v.description??`Execute ${v.toolName??"tool"}`,...typeof v.reason=="string"&&v.reason?{reason:v.reason}:{},parameters:v.parameters}};h(F)}else if(J==="approval_complete"){let _=v.approvalId;if(_){let U={id:`approval-${_}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:u(),approval:{id:_,status:v.decision??"approved",agentId:ot?.agentId??"virtual",executionId:v.executionId??ot?.executionId??"",toolName:v.toolName??"",description:v.description??"",resolvedAt:Date.now()}};h(U)}}else if(J==="artifact_start"||J==="artifact_delta"||J==="artifact_update"||J==="artifact_complete"){if(J==="artifact_start"){let _=v.artifactType,F=String(v.id),U=typeof v.title=="string"?v.title:void 0,oe=v.file,ie;oe&&typeof oe=="object"&&!Array.isArray(oe)&&typeof oe.path=="string"&&typeof oe.mimeType=="string"&&(ie={path:oe.path,mimeType:oe.mimeType,...typeof oe.language=="string"?{language:oe.language}:{}}),n({type:"artifact_start",id:F,artifactType:_,title:U,component:typeof v.component=="string"?v.component:void 0,...ie?{file:ie}:{}});let le=v.props&&typeof v.props=="object"&&!Array.isArray(v.props)?{...v.props}:void 0;if(we.set(F,{markdown:"",title:U,file:ie,...le?{props:le}:{}}),!Xe.has(F)){Xe.add(F);let pe=Uo(this.config.features?.artifacts,{artifactType:_,...ie?{file:ie}:{}}),Ut=typeof v.component=="string"?v.component:void 0,_e={id:`artifact-ref-${F}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:u(),rawContent:al(pe,{artifactId:F,title:U,artifactType:_,status:"streaming",...ie?{file:ie}:{},...Ut?{component:Ut}:{}})};Se.set(F,_e),h(_e)}}else if(J==="artifact_delta"){let _=String(v.id),F=typeof v.delta=="string"?v.delta:String(v.delta??"");n({type:"artifact_delta",id:_,artDelta:F});let U=we.get(_);U&&(U.markdown+=F)}else if(J==="artifact_update"){let _=v.props&&typeof v.props=="object"&&!Array.isArray(v.props)?v.props:{};n({type:"artifact_update",id:String(v.id),props:_,component:typeof v.component=="string"?v.component:void 0});let F=we.get(String(v.id));F&&(F.props={...F.props??{},..._})}else if(J==="artifact_complete"){let _=String(v.id);n({type:"artifact_complete",id:_});let F=Se.get(_);if(F){F.streaming=!1;try{let U=JSON.parse(F.rawContent??"{}");if(U.props){U.props.status="complete";let oe=we.get(_);oe?.markdown&&(U.props.markdown=oe.markdown),oe?.file&&(U.props.file=oe.file),U.component==="PersonaArtifactInline"&&oe?.props&&Object.keys(oe.props).length>0&&(U.props.componentProps=oe.props)}F.rawContent=JSON.stringify(U)}catch{}we.delete(_),h(F),Se.delete(_)}}}else if(J==="transcript_insert"){let _=v.message;if(!_||typeof _!="object")continue;let F=String(_.id??`msg-${u()}`),U=_.role,ie={id:F,role:U==="user"?"user":U==="system"?"system":"assistant",content:typeof _.content=="string"?_.content:"",rawContent:typeof _.rawContent=="string"?_.rawContent:void 0,createdAt:typeof _.createdAt=="string"?_.createdAt:new Date().toISOString(),streaming:_.streaming===!0,...typeof _.variant=="string"?{variant:_.variant}:{},sequence:u()};if(h(ie),ie.rawContent)try{let pe=JSON.parse(ie.rawContent)?.props?.artifactId;typeof pe=="string"&&Xe.add(pe)}catch{}C=null,x.current=null,ke.delete(F),ve.delete(F)}else if(J==="error"){if(v.recoverable===!1&&v.error!=null&&v.error!==""){let _=typeof v.error=="string"?v.error:v.error?.message!=null?String(v.error.message):"Execution error";n({type:"error",error:new Error(_)});let F=C;F&&F.streaming&&(F.streaming=!1,h(F)),n({type:"status",status:"idle"})}}else if(J==="step_error"||J==="dispatch_error"||J==="flow_error"){let _=null;if(v.error instanceof Error)_=v.error;else if(J==="dispatch_error"){let F=v.message??v.error;F!=null&&F!==""&&(_=new Error(String(F)))}else{let F=v.error;typeof F=="string"&&F!==""?_=new Error(F):F!=null&&typeof F=="object"&&Reflect.has(F,"message")&&(_=new Error(String(F.message??F)))}if(_){n({type:"error",error:_});let F=C;F&&F.streaming&&(F.streaming=!1,h(F)),n({type:"status",status:"idle"})}}}}}Mo.length=0};;){let{done:D,value:J}=await s.read();if(D)break;l+=a.decode(J,{stream:!0});let v=l.split(`
7
7
 
8
- `);l=v.pop()??"";for(let N of v){let F=N.split(`
9
- `),U="message",ee="",oe=null;for(let Ve of F)Ve.startsWith("event:")?U=Ve.replace("event:","").trim():Ve.startsWith("data:")?ee+=Ve.replace("data:","").trim():Ve.startsWith("id:")&&(oe=Ve.slice(3).trim());let ce=()=>{oe!==null&&oe!==""&&n({type:"cursor",id:oe})};if(!ee){ce();continue}let Ee;try{Ee=JSON.parse(ee)}catch(Ve){n({type:"error",error:Ve instanceof Error?Ve:new Error("Failed to parse chat stream payload")});continue}let vt=U!=="message"?U:Ee.type??"message";if(this.onSSEEvent?.(vt,Ee),this.parseSSEEvent){S.current=C;let Ve=await this.handleCustomSSEEvent(Ee,n,S,h,u,k);if(S.current&&S.current!==C&&(C=S.current),Ve){ce();continue}}Mn.push({payloadType:vt,payload:Ee}),Ao(),ce()}}Ao()}};function uT(e){let t=0;for(let n of e.split(`
10
- `)){let o=/^ {0,3}(`+)/.exec(n);o&&o[1].length>t&&(t=o[1].length)}return t}function Qv(e,t){let n="`".repeat(Math.max(3,uT(t)+1));return`${n}${e}
8
+ `);l=v.pop()??"";for(let _ of v){let F=_.split(`
9
+ `),U="message",oe="",ie=null;for(let _e of F)_e.startsWith("event:")?U=_e.replace("event:","").trim():_e.startsWith("data:")?oe+=_e.replace("data:","").trim():_e.startsWith("id:")&&(ie=_e.slice(3).trim());let le=()=>{ie!==null&&ie!==""&&n({type:"cursor",id:ie})};if(!oe){le();continue}let pe;try{pe=JSON.parse(oe)}catch(_e){n({type:"error",error:_e instanceof Error?_e:new Error("Failed to parse chat stream payload")});continue}let Ut=U!=="message"?U:pe.type??"message";if(this.onSSEEvent?.(Ut,pe),this.parseSSEEvent){x.current=C;let _e=await this.handleCustomSSEEvent(pe,n,x,h,u,k);if(x.current&&x.current!==C&&(C=x.current),_e){le();continue}}Mo.push({payloadType:Ut,payload:pe}),Qn(),le()}}Qn()}};function hT(e){let t=0;for(let n of e.split(`
10
+ `)){let o=/^ {0,3}(`+)/.exec(n);o&&o[1].length>t&&(t=o[1].length)}return t}function Jv(e,t){let n="`".repeat(Math.max(3,hT(t)+1));return`${n}${e}
11
11
  ${t}
12
- ${n}`}var gT=e=>e.sourceLabel?`quoted-text source=${e.sourceLabel}`:"quoted-text";function mT(e){let t=e?.text?.trim()??"";return t?Qv(gT(e),t):""}function Yv(e){let t=mT(e.quote);return t?e.contentParts&&e.contentParts.length>0?{contentParts:[ao(t),...e.contentParts]}:{llmContent:[t,e.text].filter(Boolean).join(`
12
+ ${n}`}var yT=e=>e.sourceLabel?`quoted-text source=${e.sourceLabel}`:"quoted-text";function bT(e){let t=e?.text?.trim()??"";return t?Jv(yT(e),t):""}function Zv(e){let t=bT(e.quote);return t?e.contentParts&&e.contentParts.length>0?{contentParts:[ao(t),...e.contentParts]}:{llmContent:[t,e.text].filter(Boolean).join(`
13
13
 
14
- `)}:{}}function Id(e,t=140){let n=e.replace(/\s+/g," ").trim();return n.length<=t?n:`${n.slice(0,t-1)}\u2026`}function Xv(e,t){let n=e.findIndex(r=>r.id===t);if(n===-1||e[n].role!=="user")return null;let o=n+1;for(;o<e.length&&e[o].role!=="user";)o+=1;return{start:n,end:o}}function em(e,t){let n=e.findIndex(o=>o.id===t);if(n<=0)return null;for(let o=n-1;o>=0;o-=1)if(e[o].role==="user")return e[o].id;return null}function Jv(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n.role==="user"||n.streaming)return null;if(!(n.role!=="assistant"||n.variant))return em(e,n.id)?n.id:null}return null}function tm(e){return e.role!=="user"||e.variant||e.streaming||e.contentParts?.length||e.contextMentions?.length||e.contentSegments?.length||e.mentionContext&&Object.keys(e.mentionContext).length>0||e.rawContent!==void 0||e.llmContent!==void 0&&e.llmContent!==e.content||e.quote?!1:typeof e.content=="string"&&e.content.length>0}var lo=class extends Error{constructor(t,n,o){super(n),this.name="HistoryProviderError",this.code=t,o?.retryAfterSeconds!==void 0&&(this.retryAfterSeconds=o.retryAfterSeconds)}};function Zv(e){return e instanceof lo}function ji(e){let t=["Microsoft Jenny Online (Natural) - English (United States)","Microsoft Aria Online (Natural) - English (United States)","Microsoft Guy Online (Natural) - English (United States)","Google US English","Google UK English Female","Ava (Premium)","Evan (Enhanced)","Samantha (Enhanced)","Samantha","Daniel","Karen","Microsoft David Desktop - English (United States)","Microsoft Zira Desktop - English (United States)"];for(let n of t){let o=e.find(r=>r.name===n);if(o)return o}return e.find(n=>n.lang.startsWith("en"))??e[0]}var Qr=class e{constructor(t={}){this.options=t;this.id="browser";this.supportsPause=!0}static isSupported(){return typeof window<"u"&&"speechSynthesis"in window}speak(t,n){if(!e.isSupported()){n.onError?.(new Error("Web Speech API is unavailable"));return}let o=window.speechSynthesis;o.cancel();let r=new SpeechSynthesisUtterance(t.text),s=o.getVoices();if(t.voice){let a=s.find(l=>l.name===t.voice);a&&(r.voice=a)}else s.length>0&&(r.voice=this.options.pickVoice?this.options.pickVoice(s):ji(s));t.rate!==void 0&&(r.rate=t.rate),t.pitch!==void 0&&(r.pitch=t.pitch),r.onend=()=>n.onEnd?.(),r.onerror=a=>{let l=a.error;l==="canceled"||l==="interrupted"?n.onEnd?.():n.onError?.(new Error(l||"Speech synthesis failed"))},setTimeout(()=>{o.speak(r),n.onStart?.()},50)}pause(){e.isSupported()&&window.speechSynthesis.pause()}resume(){e.isSupported()&&window.speechSynthesis.resume()}stop(){e.isSupported()&&window.speechSynthesis.cancel()}};var qs=class{constructor(t){this.resolveEngine=t;this.engine=null;this.activeId=null;this.state="idle";this.listeners=new Set;this.generation=0}get supportsPause(){return this.engine?.supportsPause??!0}stateFor(t){return this.activeId===t?this.state:"idle"}activeMessageId(){return this.activeId}onChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}toggle(t,n){if(this.activeId===t){if(this.state==="playing"){this.engine?.supportsPause?(this.engine.pause(),this.set(t,"paused")):this.stop();return}if(this.state==="paused"){this.engine?.resume(),this.set(t,"playing");return}if(this.state==="loading"){this.stop();return}}this.play(t,n)}async play(t,n){let o=++this.generation;this.engine?.stop(),this.set(t,"loading");try{if(!this.engine){let r=await this.resolveEngine();if(o!==this.generation)return;if(!r){this.set(null,"idle");return}this.engine=r}this.engine.speak(n,{onStart:()=>{o===this.generation&&this.set(t,"playing")},onEnd:()=>{o===this.generation&&this.set(null,"idle")},onError:()=>{o===this.generation&&this.set(null,"idle")}})}catch{o===this.generation&&this.set(null,"idle")}}stop(){this.generation++,this.engine?.stop(),this.set(null,"idle")}destroy(){this.stop(),this.engine?.destroy?.(),this.engine=null,this.listeners.clear()}set(t,n){this.activeId=n==="idle"?null:t,this.state=n;for(let o of this.listeners)o(this.activeId,this.state)}};var fT=()=>typeof window<"u"&&("SpeechRecognition"in window||"webkitSpeechRecognition"in window);function eC(e){try{if(e?.type==="custom"&&e.custom){let t=e.custom,n=typeof t=="function"?t():t;return!!n&&typeof n.startListening=="function"}return e?.type==="runtype"&&e.runtype?!0:fT()}catch{return!1}}var{setLoader:XI,load:hT}=bt({fallbackImport:()=>import("@runtypelabs/persona/voice-runtime")});var nm=hT;function om(e){if(!e)return"";let t=yT(e);return tC(t!==null?t:e)}function yT(e){let t=e.trim(),n=t.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i);if(n&&(t=n[1].trim()),!t.startsWith("{"))return null;try{let o=JSON.parse(t);if(o&&typeof o=="object"&&typeof o.text=="string")return o.text}catch{}return null}function tC(e){if(!e)return"";let t=e;return t=t.replace(/```[\s\S]*?```/g," "),t=t.replace(/~~~[\s\S]*?~~~/g," "),t=t.replace(/`([^`]+)`/g,"$1"),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]+)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]+)\]\[[^\]]*\]/g,"$1"),t=t.replace(/<\/?[a-zA-Z][^>]*>/g," "),t=t.replace(/^[ \t]*#{1,6}[ \t]+/gm,""),t=t.replace(/^[ \t]*>[ \t]?/gm,""),t=t.replace(/^[ \t]*[-*+][ \t]+/gm,""),t=t.replace(/^[ \t]*\d+\.[ \t]+/gm,""),t=t.replace(/^[ \t]*([-*_])([ \t]*\1){2,}[ \t]*$/gm," "),t=t.replace(/(\*\*|__)(.*?)\1/g,"$2"),t=t.replace(/(\*|_)(.*?)\1/g,"$2"),t=t.replace(/~~(.*?)~~/g,"$1"),t=t.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&nbsp;/g," "),t=t.replace(/[ \t]+/g," "),t=t.replace(/[ \t]*\n[ \t]*/g,`
14
+ `)}:{}}function Rd(e,t=140){let n=e.replace(/\s+/g," ").trim();return n.length<=t?n:`${n.slice(0,t-1)}\u2026`}function eC(e,t){let n=e.findIndex(r=>r.id===t);if(n===-1||e[n].role!=="user")return null;let o=n+1;for(;o<e.length&&e[o].role!=="user";)o+=1;return{start:n,end:o}}function om(e,t){let n=e.findIndex(o=>o.id===t);if(n<=0)return null;for(let o=n-1;o>=0;o-=1)if(e[o].role==="user")return e[o].id;return null}function tC(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n.role==="user"||n.streaming)return null;if(!(n.role!=="assistant"||n.variant))return om(e,n.id)?n.id:null}return null}function rm(e){return e.role!=="user"||e.variant||e.streaming||e.contentParts?.length||e.contextMentions?.length||e.contentSegments?.length||e.mentionContext&&Object.keys(e.mentionContext).length>0||e.rawContent!==void 0||e.llmContent!==void 0&&e.llmContent!==e.content||e.quote?!1:typeof e.content=="string"&&e.content.length>0}var lo=class extends Error{constructor(t,n,o){super(n),this.name="HistoryProviderError",this.code=t,o?.retryAfterSeconds!==void 0&&(this.retryAfterSeconds=o.retryAfterSeconds)}};function nC(e){return e instanceof lo}function Gi(e){let t=["Microsoft Jenny Online (Natural) - English (United States)","Microsoft Aria Online (Natural) - English (United States)","Microsoft Guy Online (Natural) - English (United States)","Google US English","Google UK English Female","Ava (Premium)","Evan (Enhanced)","Samantha (Enhanced)","Samantha","Daniel","Karen","Microsoft David Desktop - English (United States)","Microsoft Zira Desktop - English (United States)"];for(let n of t){let o=e.find(r=>r.name===n);if(o)return o}return e.find(n=>n.lang.startsWith("en"))??e[0]}var es=class e{constructor(t={}){this.options=t;this.id="browser";this.supportsPause=!0}static isSupported(){return typeof window<"u"&&"speechSynthesis"in window}speak(t,n){if(!e.isSupported()){n.onError?.(new Error("Web Speech API is unavailable"));return}let o=window.speechSynthesis;o.cancel();let r=new SpeechSynthesisUtterance(t.text),s=o.getVoices();if(t.voice){let a=s.find(l=>l.name===t.voice);a&&(r.voice=a)}else s.length>0&&(r.voice=this.options.pickVoice?this.options.pickVoice(s):Gi(s));t.rate!==void 0&&(r.rate=t.rate),t.pitch!==void 0&&(r.pitch=t.pitch),r.onend=()=>n.onEnd?.(),r.onerror=a=>{let l=a.error;l==="canceled"||l==="interrupted"?n.onEnd?.():n.onError?.(new Error(l||"Speech synthesis failed"))},setTimeout(()=>{o.speak(r),n.onStart?.()},50)}pause(){e.isSupported()&&window.speechSynthesis.pause()}resume(){e.isSupported()&&window.speechSynthesis.resume()}stop(){e.isSupported()&&window.speechSynthesis.cancel()}};var Vs=class{constructor(t){this.resolveEngine=t;this.engine=null;this.activeId=null;this.state="idle";this.listeners=new Set;this.generation=0}get supportsPause(){return this.engine?.supportsPause??!0}stateFor(t){return this.activeId===t?this.state:"idle"}activeMessageId(){return this.activeId}onChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}toggle(t,n){if(this.activeId===t){if(this.state==="playing"){this.engine?.supportsPause?(this.engine.pause(),this.set(t,"paused")):this.stop();return}if(this.state==="paused"){this.engine?.resume(),this.set(t,"playing");return}if(this.state==="loading"){this.stop();return}}this.play(t,n)}async play(t,n){let o=++this.generation;this.engine?.stop(),this.set(t,"loading");try{if(!this.engine){let r=await this.resolveEngine();if(o!==this.generation)return;if(!r){this.set(null,"idle");return}this.engine=r}this.engine.speak(n,{onStart:()=>{o===this.generation&&this.set(t,"playing")},onEnd:()=>{o===this.generation&&this.set(null,"idle")},onError:()=>{o===this.generation&&this.set(null,"idle")}})}catch{o===this.generation&&this.set(null,"idle")}}stop(){this.generation++,this.engine?.stop(),this.set(null,"idle")}destroy(){this.stop(),this.engine?.destroy?.(),this.engine=null,this.listeners.clear()}set(t,n){this.activeId=n==="idle"?null:t,this.state=n;for(let o of this.listeners)o(this.activeId,this.state)}};var vT=()=>typeof window<"u"&&("SpeechRecognition"in window||"webkitSpeechRecognition"in window);function oC(e){try{if(e?.type==="custom"&&e.custom){let t=e.custom,n=typeof t=="function"?t():t;return!!n&&typeof n.startListening=="function"}return e?.type==="runtype"&&e.runtype?!0:vT()}catch{return!1}}var{setLoader:tR,load:CT}=bt({fallbackImport:()=>import("@runtypelabs/persona/voice-runtime")});var sm=CT;function im(e){if(!e)return"";let t=wT(e);return rC(t!==null?t:e)}function wT(e){let t=e.trim(),n=t.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i);if(n&&(t=n[1].trim()),!t.startsWith("{"))return null;try{let o=JSON.parse(t);if(o&&typeof o=="object"&&typeof o.text=="string")return o.text}catch{}return null}function rC(e){if(!e)return"";let t=e;return t=t.replace(/```[\s\S]*?```/g," "),t=t.replace(/~~~[\s\S]*?~~~/g," "),t=t.replace(/`([^`]+)`/g,"$1"),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]+)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]+)\]\[[^\]]*\]/g,"$1"),t=t.replace(/<\/?[a-zA-Z][^>]*>/g," "),t=t.replace(/^[ \t]*#{1,6}[ \t]+/gm,""),t=t.replace(/^[ \t]*>[ \t]?/gm,""),t=t.replace(/^[ \t]*[-*+][ \t]+/gm,""),t=t.replace(/^[ \t]*\d+\.[ \t]+/gm,""),t=t.replace(/^[ \t]*([-*_])([ \t]*\1){2,}[ \t]*$/gm," "),t=t.replace(/(\*\*|__)(.*?)\1/g,"$2"),t=t.replace(/(\*|_)(.*?)\1/g,"$2"),t=t.replace(/~~(.*?)~~/g,"$1"),t=t.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&nbsp;/g," "),t=t.replace(/[ \t]+/g," "),t=t.replace(/[ \t]*\n[ \t]*/g,`
15
15
  `),t=t.replace(/\n{2,}/g,`
16
- `),t.trim()}var iC=null;var sm=()=>iC?iC():Promise.resolve().then(()=>(sC(),rC));var{setLoader:lR,load:CT}=bt({fallbackImport:()=>import("@runtypelabs/persona/session-reconnect")});var aC=CT;var wT=["apiUrl","clientToken","flowId","agentId","target","targetProviders","agent","agentOptions","headers","getHeaders","webmcp","streamParser","parserType","contextProviders","requestMiddleware","customFetch","parseSSEEvent","onSessionInit","onSessionExpired","getStoredSessionId","setStoredSessionId","getIdentityProof","getStoredConversationId","setStoredConversationId","clearStoredConversationId","clearStoredSessionId"];function xT(e,t){return wT.some(n=>e[n]!==t[n])}var jo=class extends Error{constructor(t,n){super(n),this.name="SessionHistoryError",this.code=t}};function im(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 o="Sorry: 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?`${o}
16
+ `),t.trim()}var cC=null;var lm=()=>cC?cC():Promise.resolve().then(()=>(lC(),aC));var{setLoader:uR,load:AT}=bt({fallbackImport:()=>import("@runtypelabs/persona/session-reconnect")});var dC=AT;var MT=["apiUrl","clientToken","flowId","agentId","target","targetProviders","agent","agentOptions","headers","getHeaders","webmcp","streamParser","parserType","contextProviders","requestMiddleware","customFetch","parseSSEEvent","onSessionInit","onSessionExpired","getStoredSessionId","setStoredSessionId","getIdentityProof","getStoredConversationId","setStoredConversationId","clearStoredConversationId","clearStoredSessionId"];function ET(e,t){return MT.some(n=>e[n]!==t[n])}var qo=class extends Error{constructor(t,n){super(n),this.name="SessionHistoryError",this.code=t}};function cm(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 o="Sorry: 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?`${o}
17
17
 
18
- _Details: ${n.message}_`:o}var am=e=>({isError:!0,content:[{type:"text",text:e}]}),ST=(e,t="WebMCP tool execution failed.")=>e instanceof Error&&e.message?e.message:typeof e=="string"&&e?e:t,lC=e=>$r(e)||e===$o,zi=class e{constructor(t={},n,o={}){this.config=t;this.callbacks=n;this.historyInternals=o;this.status="idle";this.streaming=!1;this.abortController=null;this.sequenceCounter=Date.now();this.clientSession=null;this.agentExecution=null;this.resumable=null;this.activeAssistantMessageId=null;this.reconnecting=!1;this.reconnectController=null;this.reconnectControllerPromise=null;this.executionStateTimer=null;this.artifacts=new Map;this.selectedArtifactId=null;this.webMcpInflightKeys=new Set;this.webMcpResolvedKeys=new Set;this.webMcpResolveControllers=new Set;this.webMcpEpoch=0;this.webMcpApprovalResolvers=new Map;this.webMcpApprovalSeq=0;this.webMcpAwaitBatches=new Map;this.voiceProvider=null;this.voiceSetupPromise=null;this.voiceSetupGeneration=0;this.voiceLevel=0;this.voiceActive=!1;this.voiceStatus="disconnected";this.activeConversationId=null;this.activeConversationRevision=null;this.historyNextMessageCursor=null;this.historyOpenEpoch=0;this.suppressWelcomeInjection=!1;this.historyRecovery=null;this.historySendBlocked=!1;this.historyGate=null;this.olderPageRequests=new Map;this.projectionFinalizationPromise=null;this.acknowledgedProjections=new Map;this.pendingProjections=null;this.bootConversationRevision=null;this.bootRevisionCaptured=!1;this.visitorStoreUnsubscribe=null;this.subscribedVisitorStore=null;this.credentialReinitPending=!1;this.credentialReinitPromise=null;this.pendingVoiceUserMessageId=null;this.pendingVoiceAssistantMessageId=null;this.ttsSpokenMessageIds=new Set;this.readAloud=new qs(()=>this.createSpeechEngine());this.handleEvent=t=>{if(t.type==="message"){this.upsertMessage(t.message),t.message.role==="assistant"&&!t.message.variant&&t.message.streaming&&(this.activeAssistantMessageId=t.message.id);let n=t.message.toolCall,o=!!n?.name&&($r(n.name)||n.name===$o&&Gr(this.config).enabled);t.message.agentMetadata?.awaitingLocalTool===!0&&o&&this.enqueueWebMcpAwait(t.message),t.message.agentMetadata?.executionId&&(this.agentExecution?t.message.agentMetadata.iteration!==void 0&&(this.agentExecution.currentIteration=t.message.agentMetadata.iteration):this.agentExecution={executionId:t.message.agentMetadata.executionId,agentId:"",agentName:t.message.agentMetadata.agentName??"",status:"running",currentIteration:t.message.agentMetadata.iteration??0,maxTurns:0})}else if(t.type==="cursor")this.trackCursor(t.id);else if(t.type==="status"){if(t.status==="idle"&&!t.terminal&&this.isDurableDrop()){this.beginReconnect();return}if(this.setStatus(t.status),t.status==="connecting")this.setStreaming(!0);else if(t.status==="idle"||t.status==="error"){this.clearResumable(),this.webMcpResolveControllers.size===0&&(this.setStreaming(!1),this.abortController=null,this.invalidateConversationRevision(),this.scheduleProjectionFinalization());let n=this.webMcpAwaitBatches.size>0||this.webMcpResolveControllers.size>0;this.agentExecution?.status==="running"&&(t.status==="error"?this.agentExecution.status="error":n||(this.agentExecution.status="complete")),this.scheduleWebMcpBatchFlush()}}else t.type==="error"?(this.setStatus("error"),this.clearResumable(),this.webMcpResolveControllers.size===0&&(this.setStreaming(!1),this.abortController=null),this.agentExecution?.status==="running"&&(this.agentExecution.status="error"),this.callbacks.onError?.(t.error)):(t.type==="artifact_start"||t.type==="artifact_delta"||t.type==="artifact_update"||t.type==="artifact_complete")&&this.applyArtifactStreamEvent(t)};this.historyInternals=this.composeHistoryInternals(o),this.messages=[...t.initialMessages??[]].map(r=>({...r,sequence:r.sequence??this.nextSequence()})),this.messages=this.sortMessages(this.messages),this.client=new js(t,this.historyInternals),this.syncVisitorStoreSubscription(),this.wireDefaultWebMcpConfirm();for(let r of t.initialArtifacts??[])this.artifacts.set(r.id,{...r,status:"complete"});t.initialSelectedArtifactId!=null&&(this.selectedArtifactId=t.initialSelectedArtifactId),this.messages.length&&this.callbacks.onMessagesChanged([...this.messages]),this.artifacts.size>0&&this.emitArtifactsState(),this.callbacks.onStatusChanged(this.status),this.prefetchRuntypeTts(),this.prefetchVoiceRuntime()}prefetchVoiceRuntime(){this.config.voiceRecognition?.provider&&nm().catch(()=>{})}prefetchRuntypeTts(){let t=this.config.textToSpeech;if(t?.provider!=="runtype"||t.createEngine)return;let n=t.host??this.config.apiUrl,o=t.agentId??this.config.voiceRecognition?.provider?.runtype?.agentId??this.config.agentId;!n||!o||!this.config.clientToken||sm().catch(()=>{})}setSSEEventCallback(t){this.client.setSSEEventCallback(t)}isClientTokenMode(){return this.client.isClientTokenMode()}isAgentMode(){return this.client.isAgentMode()}getAgentExecution(){return this.agentExecution}isAgentExecuting(){return this.agentExecution?.status==="running"}isVoiceSupported(){return eC(this.config.voiceRecognition?.provider)}isVoiceActive(){return this.voiceActive}getVoiceStatus(){return this.voiceStatus}getVoiceLevel(){return this.voiceProvider?.onLevel?this.voiceLevel:null}getVoiceInterruptionMode(){return this.voiceProvider?.getInterruptionMode?this.voiceProvider.getInterruptionMode():"none"}stopVoicePlayback(){this.voiceProvider?.stopPlayback&&this.voiceProvider.stopPlayback()}isBargeInActive(){return this.voiceProvider?.isBargeInActive?.()??!1}async deactivateBargeIn(){this.voiceProvider?.deactivateBargeIn&&await this.voiceProvider.deactivateBargeIn()}createSpeechEngine(){let t=this.config.textToSpeech;if(t?.createEngine)return t.createEngine();let n=Qr.isSupported()?new Qr({pickVoice:t?.pickVoice}):null;if(t?.provider==="runtype"){let o=t.host??this.config.apiUrl,r=t.agentId??this.config.voiceRecognition?.provider?.runtype?.agentId??this.config.agentId,s=this.config.clientToken,a=t.browserFallback!==!1;if(o&&r&&s)return sm().then(({RuntypeSpeechEngine:l,FallbackSpeechEngine:d})=>{let p=new l({host:o,agentId:r,clientToken:s,voice:t.voice,prebufferMs:t.prebufferMs,createPlaybackEngine:t.createPlaybackEngine});return a&&n?new d(p,n,{onFallback:u=>console.warn(`[persona] Runtype read-aloud failed; using browser voice. ${u.message}`)}):p});if(a&&n)return s&&console.warn("[persona] textToSpeech.provider 'runtype' is missing an agentId; using the browser voice. Set textToSpeech.agentId (or voiceRecognition.provider.runtype.agentId)."),n}return n}setupVoice(t){try{let n=t||this.getVoiceConfigFromConfig();if(!n)throw new Error("Voice configuration not provided");let o=++this.voiceSetupGeneration;this.voiceSetupPromise=nm().then(r=>{o===this.voiceSetupGeneration&&this.wireVoiceProvider(r.createVoiceProvider(n))}).catch(r=>{console.error("Failed to setup voice:",r)}).finally(()=>{o===this.voiceSetupGeneration&&(this.voiceSetupPromise=null)})}catch(n){console.error("Failed to setup voice:",n)}}wireVoiceProvider(t){try{this.voiceProvider=t;let o=(this.config.voiceRecognition??{}).processingErrorText??"Voice processing failed. Please try again.";this.voiceProvider.onResult(r=>{r.provider!=="runtype"&&r.text&&r.text.trim()&&this.sendMessage(r.text,{viaVoice:!0})}),this.voiceProvider.onTranscript&&this.voiceProvider.onTranscript((r,s,a)=>{if(r==="user"){if(this.pendingVoiceUserMessageId)this.upsertMessage({id:this.pendingVoiceUserMessageId,role:"user",content:s,createdAt:new Date().toISOString(),streaming:!1,voiceProcessing:!a});else{let l=this.injectMessage({role:"user",content:s,streaming:!1,voiceProcessing:!a});this.pendingVoiceUserMessageId=l.id}if(a){this.pendingVoiceUserMessageId=null;let l=this.injectMessage({role:"assistant",content:"",streaming:!0,voiceProcessing:!0});this.pendingVoiceAssistantMessageId=l.id,this.setStreaming(!0)}}else{if(this.pendingVoiceAssistantMessageId)this.upsertMessage({id:this.pendingVoiceAssistantMessageId,role:"assistant",content:s,createdAt:new Date().toISOString(),streaming:!a,voiceProcessing:!a});else{let l=this.injectMessage({role:"assistant",content:s,streaming:!a,voiceProcessing:!a});this.pendingVoiceAssistantMessageId=l.id}a&&(this.pendingVoiceAssistantMessageId&&this.ttsSpokenMessageIds.add(this.pendingVoiceAssistantMessageId),this.setStreaming(!1),this.pendingVoiceAssistantMessageId=null)}}),this.voiceProvider.onLevel&&this.voiceProvider.onLevel(r=>{this.voiceLevel=Number.isFinite(r)?Math.max(0,Math.min(1,r)):0}),this.voiceProvider.onMetrics&&this.voiceProvider.onMetrics(r=>{this.config.voiceRecognition?.onMetrics?.(r)}),this.voiceProvider.onError(r=>{console.error("Voice error:",r),this.pendingVoiceAssistantMessageId&&(this.upsertMessage({id:this.pendingVoiceAssistantMessageId,role:"assistant",content:o,createdAt:new Date().toISOString(),streaming:!1,voiceProcessing:!1}),this.setStreaming(!1),this.pendingVoiceUserMessageId=null,this.pendingVoiceAssistantMessageId=null)}),this.voiceProvider.onStatusChange(r=>{this.voiceStatus=r,this.voiceActive=r==="listening",this.callbacks.onVoiceStatusChanged?.(r)}),this.voiceProvider.connect()}catch(n){console.error("Failed to setup voice:",n)}}async toggleVoice(){if(!this.voiceProvider&&this.voiceSetupPromise&&await this.voiceSetupPromise,!this.voiceProvider){console.error("Voice not configured");return}if(this.voiceActive)await this.voiceProvider.stopListening();else{this.stopSpeaking();try{await this.voiceProvider.startListening()}catch(t){console.error("Failed to start voice:",t)}}}cleanupVoice(){this.voiceSetupGeneration++,this.voiceSetupPromise=null,this.voiceProvider&&(this.voiceProvider.disconnect(),this.voiceProvider=null),this.voiceActive=!1,this.voiceStatus="disconnected"}getVoiceConfigFromConfig(){if(!this.config.voiceRecognition?.provider)return;let t=this.config.voiceRecognition.provider;switch(t.type){case"runtype":return{type:"runtype",runtype:{agentId:t.runtype?.agentId??this.config.agentId??"",clientToken:t.runtype?.clientToken??this.config.clientToken,host:t.runtype?.host??this.config.apiUrl,voiceId:t.runtype?.voiceId,createPlaybackEngine:t.runtype?.createPlaybackEngine}};case"browser":return{type:"browser",browser:{language:t.browser?.language||"en-US",continuous:t.browser?.continuous}};case"custom":return{type:"custom",custom:t.custom};default:return}}async initClientSession(){if(!this.isClientTokenMode())return null;this.config.features?.history?.enabled&&(await this.historyInternals.historyBootstrapReady,this.bootConversationRevision=this.historyInternals.getStoredConversationRevision?.()??null,this.bootRevisionCaptured=!0);try{let t=await this.client.initSession();return this.setClientSession(t),t}catch(t){return this.callbacks.onError?.(t instanceof Error?t:new Error(String(t))),null}}setClientSession(t){this.clientSession=t,this.injectWelcomeMessage(t)}injectWelcomeMessage(t){if(this.suppressWelcomeInjection||!t.config.welcomeMessage||this.messages.length!==0)return;let n={id:`welcome-${Date.now()}`,role:"assistant",content:t.config.welcomeMessage,createdAt:new Date().toISOString(),sequence:this.nextSequence()};this.appendMessage(n)}getClientSession(){return this.clientSession??this.client.getClientSession()}isSessionValid(){let t=this.getClientSession();return t?new Date<t.expiresAt:!1}clearClientSession(){this.clientSession=null,this.client.clearClientSession()}getClient(){return this.client}async submitMessageFeedback(t,n){return this.client.submitMessageFeedback(t,n)}async submitCSATFeedback(t,n){return this.client.submitCSATFeedback(t,n)}async submitNPSFeedback(t,n){return this.client.submitNPSFeedback(t,n)}setHistoryInternals(t){this.historyInternals=this.composeHistoryInternals(t),this.client.setHistoryInternals(this.historyInternals),this.syncVisitorStoreSubscription()}destroy(){this.visitorStoreUnsubscribe?.(),this.visitorStoreUnsubscribe=null,this.subscribedVisitorStore=null}composeHistoryInternals(t){let n=t.onHistoryContinuityChanged;return{...t,onHistoryContinuityChanged:o=>{this.handleHistoryContinuityChanged(o),n?.(o)}}}get historyProvider(){return this.historyInternals.historyProvider??null}requireHistoryProvider(){let t=this.historyProvider;if(!t)throw new jo("history_unavailable","No conversation history provider is installed");return t}historyContext(t){let n=this.requireHistoryProvider(),o=t??this.config.features?.history?.scope,r=this.config.getIdentityProof?"verified-user":"browser",s=o??(n.capabilities.scopes.includes(r)?r:n.capabilities.scopes[0]??r);if(!n.capabilities.scopes.includes(s))throw new lo("unsupported_scope","This history scope is not supported.");return{scope:s}}getHistoryState(){return{activeConversationId:this.activeConversationId,conversationRevision:this.activeConversationRevision,nextMessageCursor:this.historyNextMessageCursor,recovery:this.historyRecovery,sendBlocked:this.historySendBlocked}}getActiveConversationId(){return this.activeConversationId}emitHistoryState(){this.callbacks.onHistoryStateChanged?.(this.getHistoryState())}notifyHistory(t,n){this.callbacks.onHistoryNotice?.({code:t,message:n})}async awaitHistorySettled(){let t=this.historyGate;t&&await t.catch(()=>{});let n=this.projectionFinalizationPromise;n&&await n.catch(()=>{})}assertHistoryIdle(){if(this.streaming||this.status==="paused"||this.status==="resuming")throw new jo("conversation_busy","Finish or stop the current turn before switching conversations")}listConversations(t){return this.requireHistoryProvider().list({...t?.cursor?{cursor:t.cursor}:{},...t?.limit!==void 0?{limit:t.limit}:{},...t?.targetId!==void 0?{targetId:t.targetId}:{},context:this.historyContext(t?.scope)})}async openConversation(t,n){let o=this.requireHistoryProvider();this.assertHistoryIdle();let r=this.historyContext(n?.scope);await this.awaitHistorySettled();let s=++this.historyOpenEpoch,a=await o.getPage(t,{context:r});if(s!==this.historyOpenEpoch)throw new jo("superseded","A later selection won");let l=await o.prepareOpen(t,{context:r});if(s!==this.historyOpenEpoch)throw l.discard(),new jo("superseded","A later selection won");this.suppressWelcomeInjection=!0;try{await this.commitActivation(l)}finally{this.suppressWelcomeInjection=!1}this.activeConversationId=l.conversationId||t,this.activeConversationRevision=l.conversationRevision||a.conversationRevision||null,this.historyNextMessageCursor=a.nextCursor,this.historyRecovery=null,this.historySendBlocked=!1,this.resetConversationScopedState();for(let d of a.messages)this.acknowledgedProjections.set(d.id,d.content);return this.persistConversationMetadata(),this.hydrateMessages(a.messages),this.emitHistoryState(),{summary:a.summary,nextMessageCursor:a.nextCursor}}loadOlderMessages(t,n,o){let r=this.requireHistoryProvider(),s=this.historyContext(o?.scope),a=n??this.historyNextMessageCursor;if(!a)return Promise.resolve({messages:[],nextMessageCursor:null});let l=`${t} ${a}`,d=this.olderPageRequests.get(l);if(d)return d;let p=this.fetchOlderPage(r,t,a,s).finally(()=>{this.olderPageRequests.delete(l)});return this.olderPageRequests.set(l,p),p}async fetchOlderPage(t,n,o,r){let s=this.messages[0]?.createdAt,a=await t.getPage(n,{cursor:o,...s?{beforeCreatedAt:s}:{},context:r});if(this.activeConversationId&&this.activeConversationId!==n)return{messages:[],nextMessageCursor:a.nextCursor};let l=ml(this.messages,a.messages);this.messages=this.sortMessages(l.map(d=>this.ensureSequence(d))),this.historyNextMessageCursor=a.nextCursor;for(let d of a.messages)this.acknowledgedProjections.set(d.id,d.content);return this.historyInternals.setStoredMessageCursor?.(a.nextCursor),this.callbacks.onMessagesChanged([...this.messages]),this.emitHistoryState(),{messages:a.messages,nextMessageCursor:a.nextCursor}}async startNewConversation(t){let n=this.requireHistoryProvider(),o=this.historyContext(t?.scope);await this.awaitHistorySettled();let r=++this.historyOpenEpoch,s=await n.prepareStartNew({context:o});if(r!==this.historyOpenEpoch)throw s.discard(),new jo("superseded","A later action won");await this.installFreshConversation(s)}async installFreshConversation(t){this.discardConversationState(),await this.commitActivation(t),this.activeConversationId=t.conversationId||null,this.activeConversationRevision=t.conversationRevision||null,this.historyNextMessageCursor=null,this.historyRecovery=null,this.historySendBlocked=!1,this.persistConversationMetadata(),this.emitHistoryState()}async deleteConversation(t,n){let o=this.requireHistoryProvider(),r=this.historyContext(n?.scope);await this.awaitHistorySettled(),await o.delete(t,{context:r}),t===this.activeConversationId&&await this.recoverFromDestroyedConversation(r)}async updateConversation(t,n,o){let r=this.requireHistoryProvider();if(!r.update)throw new jo("history_unavailable","This history provider cannot update conversations");let s=this.historyContext(o?.scope);return await this.awaitHistorySettled(),r.update(t,n,{context:s})}canUpdateConversations(){return typeof this.historyProvider?.update=="function"}async clearConversationHistory(t){let n=this.requireHistoryProvider(),o=this.historyContext(t?.scope);await this.awaitHistorySettled();let r=await n.deleteAll({...t?.targetId!==void 0?{targetId:t.targetId}:{},context:o});return await this.recoverFromDestroyedConversation(o),r}async resetHistoryDevice(){let t=this.requireHistoryProvider();if(!t.resetDevice)throw new jo("history_unavailable","This history provider cannot reset the device");this.historyOpenEpoch+=1,this.projectionFinalizationPromise=null;try{return await t.resetDevice()}finally{this.discardConversationState(),this.activeConversationId=null,this.activeConversationRevision=null,this.historyNextMessageCursor=null,this.historyRecovery=null,this.historySendBlocked=!1,this.emitHistoryState()}}async recoverFromDestroyedConversation(t){this.historyOpenEpoch+=1,this.projectionFinalizationPromise=null,this.discardConversationState(),this.activeConversationId=null,this.activeConversationRevision=null,this.historyNextMessageCursor=null,this.historySendBlocked=!0,this.historyRecovery=null,this.emitHistoryState(),await this.prepareReplacementConversation(t)}async prepareReplacementConversation(t){let n=this.historyProvider;if(!n){this.historySendBlocked=!1,this.emitHistoryState();return}try{let o=await n.prepareStartNew({context:t});await this.installFreshConversation(o)}catch{this.historySendBlocked=!0,this.historyRecovery="new_conversation_required",this.emitHistoryState(),this.notifyHistory("new_conversation_required","That conversation was deleted. Start a new conversation to continue.")}}async retryRequiredConversation(){if(!(this.historyRecovery!=="new_conversation_required"||!this.historyProvider)&&(this.historyRecovery=null,await this.prepareReplacementConversation(this.historyContext()),this.historyRecovery==="new_conversation_required"))throw new jo("new_conversation_required","A new conversation is required before sending")}async commitActivation(t){await t.commit();let n=this.client.getClientSession();n&&n.sessionId!==this.clientSession?.sessionId&&this.bindActivatedSession(n)}bindActivatedSession(t){this.clientSession=t,this.config.setStoredSessionId?.(t.sessionId),t.conversationId&&(this.activeConversationId=t.conversationId,this.activeConversationRevision=t.conversationRevision??null,this.config.setStoredConversationId?.(t.conversationId),this.historyInternals.setStoredConversationRevision?.(t.conversationRevision??null)),this.suppressWelcomeInjection||this.injectWelcomeMessage(t)}persistConversationMetadata(){this.activeConversationId?this.config.setStoredConversationId?.(this.activeConversationId):this.config.clearStoredConversationId?.(),this.historyInternals.setStoredConversationRevision?.(this.activeConversationRevision),this.historyInternals.setStoredMessageCursor?.(this.historyNextMessageCursor)}resetConversationScopedState(){this.agentExecution=null,this.clearArtifactState(),this.webMcpInflightKeys.clear(),this.webMcpResolvedKeys.clear(),this.client.resetClientToolsFingerprint(),this.acknowledgedProjections.clear(),this.setPendingProjections(null)}discardConversationState(){this.stopSpeaking(),this.abortController?.abort(),this.abortController=null,this.teardownReconnect(),this.abortWebMcpResolves(),this.messages=[],this.resetConversationScopedState(),this.olderPageRequests.clear(),this.config.clearStoredSessionId?.(),this.config.clearStoredConversationId?.(),this.historyInternals.setStoredConversationRevision?.(null),this.historyInternals.setStoredMessageCursor?.(null),this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}handleHistoryContinuityChanged(t){this.historyOpenEpoch+=1,this.projectionFinalizationPromise=null,this.historySendBlocked=!0,this.discardConversationState(),this.activeConversationId=t.conversationId,this.activeConversationRevision=null,this.historyNextMessageCursor=null,this.historyRecovery=null,this.emitHistoryState(),this.notifyHistory("history_continuity_reset","This browser was reconnected to a different conversation, so the previous messages were cleared."),this.historyGate=Promise.resolve().then(()=>{this.historySendBlocked=!1,this.historyGate=null,this.emitHistoryState()})}syncVisitorStoreSubscription(){let t=this.historyInternals.visitorStore??null;t!==this.subscribedVisitorStore&&(this.visitorStoreUnsubscribe?.(),this.visitorStoreUnsubscribe=null,this.subscribedVisitorStore=t,t&&(this.visitorStoreUnsubscribe=t.subscribe(n=>this.handleExternalCredentialChange(n))))}handleExternalCredentialChange(t){if(t.source!=="external"||t.previousToken===null)return;this.clientSession=null,this.client.handleExternalCredentialChange(),this.historyOpenEpoch+=1,this.projectionFinalizationPromise=null,this.credentialReinitPending=!0,this.credentialReinitPromise=null;let n=this.messages.length>0;n||this.activeConversationId!==null||(this.config.getStoredConversationId?.()??null)!==null?this.discardConversationState():(this.config.clearStoredSessionId?.(),this.config.clearStoredConversationId?.(),this.olderPageRequests.clear(),this.setPendingProjections(null)),this.activeConversationId=null,this.activeConversationRevision=null,this.historyNextMessageCursor=null,this.historyRecovery=null,this.emitHistoryState(),n&&this.notifyHistory("history_continuity_reset","This browser's conversation history was reset in another tab, so the previous messages were cleared.")}completeCredentialReinit(){return this.credentialReinitPending?(this.credentialReinitPromise||(this.credentialReinitPromise=this.runCredentialReinit().finally(()=>{this.credentialReinitPromise=null})),this.credentialReinitPromise):Promise.resolve()}async runCredentialReinit(){if(!this.isClientTokenMode()){this.credentialReinitPending=!1;return}try{this.bindActivatedSession(await this.client.initSession()),this.credentialReinitPending=!1}catch{}}reconcileBootConversation(t){let n=this.historyProvider,o=this.clientSession?.conversationId??this.config.getStoredConversationId?.()??this.activeConversationId;if(!n||!o)return Promise.resolve();let r=this.historyContext(t?.scope);this.historySendBlocked=!0,this.emitHistoryState();let s=this.runBootReconciliation(n,o,r).finally(()=>{this.historySendBlocked=this.historyRecovery!==null,this.historyGate===s&&(this.historyGate=null),this.emitHistoryState()});return this.historyGate=s,s}async runBootReconciliation(t,n,o){this.activeConversationId=n;let r=this.clientSession?.conversationRevision??this.activeConversationRevision??null,s=this.bootRevisionCaptured?this.bootConversationRevision:this.historyInternals.getStoredConversationRevision?.()??null;if(this.bootRevisionCaptured=!1,this.historyNextMessageCursor=this.historyInternals.getStoredMessageCursor?.()??this.historyNextMessageCursor,await this.replayPendingProjections(),r&&s&&r===s){this.activeConversationRevision=r;return}let a=await t.getPage(n,{context:o}),l=new Set(a.messages.map(m=>m.id)),d=this.messages.some(m=>l.has(m.id)),p=a.messages[0]?.createdAt,u;if(!d)u=a.messages.map(m=>this.ensureSequence(m));else{let m=this.resumable?this.activeAssistantMessageId:null,y=this.messages.filter(h=>l.has(h.id)||h.id===m?!0:p!==void 0&&h.createdAt<p);u=ml(y,a.messages).map(h=>this.ensureSequence(h))}this.historyNextMessageCursor=a.nextCursor,this.activeConversationRevision=a.conversationRevision||r||null,this.acknowledgedProjections.clear();for(let m of a.messages)this.acknowledgedProjections.set(m.id,m.content);this.persistConversationMetadata(),this.messages=this.sortMessages(u),this.callbacks.onMessagesChanged([...this.messages])}projectionFinalizationEnabled(){return this.config.features?.history?.enabled===!0&&this.isClientTokenMode()}setPendingProjections(t){this.pendingProjections=t,this.historyInternals.setPendingDisplayProjections?.(t)}readPendingProjections(){return this.historyInternals.getPendingDisplayProjections?.()??this.pendingProjections}recordDispatchedProjections(t){if(this.projectionFinalizationEnabled())for(let n of t){let o=gl(n);o!==void 0&&this.acknowledgedProjections.set(n.id,o)}}scheduleProjectionFinalization(){if(!this.projectionFinalizationEnabled())return;let t=this.activeConversationId;if(!t)return;let n=[];for(let o of this.messages){if(o.role!=="assistant"||o.streaming)continue;let r=gl(o);r!==void 0&&this.acknowledgedProjections.get(o.id)!==r&&n.push({id:o.id,displayContent:r})}n.length!==0&&(this.setPendingProjections({conversationId:t,messageIds:n.map(o=>o.id)}),this.enqueueProjectionFinalization(t,n))}enqueueProjectionFinalization(t,n){let r=(this.projectionFinalizationPromise??Promise.resolve()).catch(()=>{}).then(()=>this.finalizeProjections(t,n,!1)).finally(()=>{this.projectionFinalizationPromise===r&&(this.projectionFinalizationPromise=null)});this.projectionFinalizationPromise=r}async finalizeProjections(t,n,o){if(this.activeConversationId!==t)return;let r=n.filter(s=>this.acknowledgedProjections.get(s.id)!==s.displayContent);if(r.length===0){this.clearFinalizedMarker(t,n);return}try{let{conversationRevision:s}=await this.client.finalizeDisplayProjections(t,r);for(let a of r)this.acknowledgedProjections.set(a.id,a.displayContent);this.activeConversationId===t&&s&&(this.activeConversationRevision=s),this.clearFinalizedMarker(t,n)}catch(s){if(!o&&this.isTransientProjectionError(s)){await this.finalizeProjections(t,r,!0);return}if(s instanceof ze&&(s.code==="not_found"||s.code==="conversation_deleted")){this.clearFinalizedMarker(t,n);return}this.notifyHistory("projection_finalization_failed","Some message formatting could not be saved for history; it will be retried.")}}isTransientProjectionError(t){return t instanceof ze?t.code==="request_failed":t instanceof Error}clearFinalizedMarker(t,n){let o=this.readPendingProjections();if(!o||o.conversationId!==t)return;let r=new Set(n.map(a=>a.id)),s=o.messageIds.filter(a=>!r.has(a));this.setPendingProjections(s.length?{conversationId:t,messageIds:s}:null)}async replayPendingProjections(){if(!this.projectionFinalizationEnabled())return;let t=this.readPendingProjections();if(!t)return;if(this.activeConversationId&&t.conversationId!==this.activeConversationId){this.setPendingProjections(null);return}let n=[];for(let o of t.messageIds){let r=this.messages.find(s=>s.id===o);!r||typeof r.content!="string"||n.push({id:o,displayContent:r.content})}if(n.length===0){this.setPendingProjections(null);return}this.enqueueProjectionFinalization(t.conversationId,n),await this.projectionFinalizationPromise?.catch(()=>{})}invalidateConversationRevision(){this.activeConversationId&&(this.activeConversationRevision=null,this.historyInternals.setStoredConversationRevision?.(null))}async awaitHistorySendable(){await this.awaitHistorySettled(),await this.completeCredentialReinit(),this.historyRecovery==="new_conversation_required"&&await this.retryRequiredConversation()}static isConversationDeleted(t){return t instanceof ze&&t.code==="conversation_deleted"}async dispatchWithDeletedRecovery(t,n,o,r,s){this.recordDispatchedProjections(t);try{await this.client.dispatch({messages:t,signal:n.signal,assistantMessageId:o,composerOptions:s?.composerOptions,interrupt:s?.interrupt},this.handleEvent);return}catch(a){if(!e.isConversationDeleted(a))throw a;let l=await this.recoverFromDeletedConversation(r);if(!l)throw a;this.recordDispatchedProjections([l]),await this.client.dispatch({messages:[l],signal:n.signal,assistantMessageId:o,composerOptions:s?.composerOptions},this.handleEvent)}}async recoverFromDeletedConversation(t){let n=this.messages.find(r=>r.id===t);if(!n)return null;let o={...n};this.historyOpenEpoch+=1,this.projectionFinalizationPromise=null,this.discardConversationState(),this.activeConversationId=null,this.activeConversationRevision=null,this.historyNextMessageCursor=null,this.suppressWelcomeInjection=!0;try{let r=this.historyProvider;if(r){let s=await r.prepareStartNew({context:this.historyContext()});await this.installFreshConversation(s)}else{this.client.clearClientSession();let s=await this.client.initSession();this.bindActivatedSession(s)}}catch{return this.historySendBlocked=!0,this.historyRecovery="new_conversation_required",this.emitHistoryState(),this.notifyHistory("new_conversation_required","That conversation was deleted. Start a new conversation to continue."),null}finally{this.suppressWelcomeInjection=!1}return this.appendMessage(o),this.setStreaming(!0),this.notifyHistory("conversation_deleted_recovered","That conversation was deleted. Started a new conversation."),this.messages.find(r=>r.id===o.id)??o}updateConfig(t){let n=this.config.features?.artifacts?.display,o={...this.config,...t},r=JSON.stringify(n)!==JSON.stringify(o.features?.artifacts?.display);if(!xT(this.config,o)){this.config=o,this.client.updateConfig(o),r&&this.refreshArtifactReferenceBlocks();return}this.abortWebMcpResolves(),this.webMcpInflightKeys.clear(),this.webMcpResolvedKeys.clear();let s=this.client.getSSEEventCallback();this.config=o,this.client=new js(this.config,this.historyInternals),r&&this.refreshArtifactReferenceBlocks(),this.wireDefaultWebMcpConfirm(),s&&this.client.setSSEEventCallback(s)}getMessages(){return[...this.messages]}getStatus(){return this.status}isStreaming(){return this.streaming}injectTestEvent(t){this.handleEvent(t)}injectMessage(t){let{role:n,content:o,llmContent:r,contentParts:s,id:a,createdAt:l,sequence:d,streaming:p=!1,voiceProcessing:u,rawContent:m}=t,h={id:a??(n==="user"?Bi():n==="assistant"?jr():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`),role:n,content:o,createdAt:l??new Date().toISOString(),sequence:d??this.nextSequence(),streaming:p,...r!==void 0&&{llmContent:r},...s!==void 0&&{contentParts:s},...u!==void 0&&{voiceProcessing:u},...m!==void 0&&{rawContent:m}};return this.upsertMessage(h),h}injectAssistantMessage(t){return this.injectMessage({...t,role:"assistant"})}injectUserMessage(t){return this.injectMessage({...t,role:"user"})}injectSystemMessage(t){return this.injectMessage({...t,role:"system"})}injectMessageBatch(t){let n=[];for(let o of t){let{role:r,content:s,llmContent:a,contentParts:l,id:d,createdAt:p,sequence:u,streaming:m=!1,voiceProcessing:y,rawContent:h}=o,x={id:d??(r==="user"?Bi():r==="assistant"?jr():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`),role:r,content:s,createdAt:p??new Date().toISOString(),sequence:u??this.nextSequence(),streaming:m,...a!==void 0&&{llmContent:a},...l!==void 0&&{contentParts:l},...y!==void 0&&{voiceProcessing:y},...h!==void 0&&{rawContent:h}};n.push(x)}return this.messages=this.sortMessages([...this.messages,...n]),this.callbacks.onMessagesChanged([...this.messages]),n}injectComponentDirective(t){let{component:n,props:o={},text:r="",llmContent:s,id:a,createdAt:l,sequence:d}=t,p={text:r,component:n,props:o};return this.injectMessage({role:"assistant",content:r,rawContent:JSON.stringify(p),...s!==void 0&&{llmContent:s},...a!==void 0&&{id:a},...l!==void 0&&{createdAt:l},...d!==void 0&&{sequence:d}})}async applyMentionBundle(t,n,o){let r;try{r=await o()}catch{return}let s=r.blocks.join(`
18
+ _Details: ${n.message}_`:o}var dm=e=>({isError:!0,content:[{type:"text",text:e}]}),TT=(e,t="WebMCP tool execution failed.")=>e instanceof Error&&e.message?e.message:typeof e=="string"&&e?e:t,pC=e=>Vr(e)||e===jo,Yi=class e{constructor(t={},n,o={}){this.config=t;this.callbacks=n;this.historyInternals=o;this.status="idle";this.streaming=!1;this.abortController=null;this.sequenceCounter=Date.now();this.clientSession=null;this.agentExecution=null;this.resumable=null;this.activeAssistantMessageId=null;this.reconnecting=!1;this.reconnectController=null;this.reconnectControllerPromise=null;this.executionStateTimer=null;this.artifacts=new Map;this.selectedArtifactId=null;this.webMcpInflightKeys=new Set;this.webMcpResolvedKeys=new Set;this.webMcpResolveControllers=new Set;this.webMcpEpoch=0;this.webMcpApprovalResolvers=new Map;this.webMcpApprovalSeq=0;this.webMcpAwaitBatches=new Map;this.voiceProvider=null;this.voiceSetupPromise=null;this.voiceSetupGeneration=0;this.voiceLevel=0;this.voiceActive=!1;this.voiceStatus="disconnected";this.activeConversationId=null;this.activeConversationRevision=null;this.historyNextMessageCursor=null;this.historyOpenEpoch=0;this.suppressWelcomeInjection=!1;this.historyRecovery=null;this.historySendBlocked=!1;this.historyGate=null;this.olderPageRequests=new Map;this.projectionFinalizationPromise=null;this.acknowledgedProjections=new Map;this.pendingProjections=null;this.bootConversationRevision=null;this.bootRevisionCaptured=!1;this.visitorStoreUnsubscribe=null;this.subscribedVisitorStore=null;this.credentialReinitPending=!1;this.credentialReinitPromise=null;this.pendingVoiceUserMessageId=null;this.pendingVoiceAssistantMessageId=null;this.ttsSpokenMessageIds=new Set;this.readAloud=new Vs(()=>this.createSpeechEngine());this.handleEvent=t=>{if(t.type==="message"){this.upsertMessage(t.message),t.message.role==="assistant"&&!t.message.variant&&t.message.streaming&&(this.activeAssistantMessageId=t.message.id);let n=t.message.toolCall,o=!!n?.name&&(Vr(n.name)||n.name===jo&&Zr(this.config).enabled);t.message.agentMetadata?.awaitingLocalTool===!0&&o&&this.enqueueWebMcpAwait(t.message),t.message.agentMetadata?.executionId&&(this.agentExecution?t.message.agentMetadata.iteration!==void 0&&(this.agentExecution.currentIteration=t.message.agentMetadata.iteration):this.agentExecution={executionId:t.message.agentMetadata.executionId,agentId:"",agentName:t.message.agentMetadata.agentName??"",status:"running",currentIteration:t.message.agentMetadata.iteration??0,maxTurns:0})}else if(t.type==="cursor")this.trackCursor(t.id);else if(t.type==="status"){if(t.status==="idle"&&!t.terminal&&this.isDurableDrop()){this.beginReconnect();return}if(this.setStatus(t.status),t.status==="connecting")this.setStreaming(!0);else if(t.status==="idle"||t.status==="error"){this.isAwaitPending()||this.clearResumable(),this.webMcpResolveControllers.size===0&&(this.setStreaming(!1),this.abortController=null,this.invalidateConversationRevision(),this.scheduleProjectionFinalization());let n=this.webMcpAwaitBatches.size>0||this.webMcpResolveControllers.size>0;this.agentExecution?.status==="running"&&(t.status==="error"?this.agentExecution.status="error":n||(this.agentExecution.status="complete")),this.scheduleWebMcpBatchFlush()}}else t.type==="error"?(this.setStatus("error"),this.clearResumable(),this.webMcpResolveControllers.size===0&&(this.setStreaming(!1),this.abortController=null),this.agentExecution?.status==="running"&&(this.agentExecution.status="error"),this.callbacks.onError?.(t.error)):(t.type==="artifact_start"||t.type==="artifact_delta"||t.type==="artifact_update"||t.type==="artifact_complete")&&this.applyArtifactStreamEvent(t)};this.historyInternals=this.composeHistoryInternals(o),this.messages=[...t.initialMessages??[]].map(r=>({...r,sequence:r.sequence??this.nextSequence()})),this.messages=this.sortMessages(this.messages),this.client=new zs(t,this.historyInternals),this.syncVisitorStoreSubscription(),this.wireDefaultWebMcpConfirm();for(let r of t.initialArtifacts??[])this.artifacts.set(r.id,{...r,status:"complete"});t.initialSelectedArtifactId!=null&&(this.selectedArtifactId=t.initialSelectedArtifactId),this.messages.length&&this.callbacks.onMessagesChanged([...this.messages]),this.artifacts.size>0&&this.emitArtifactsState(),this.callbacks.onStatusChanged(this.status),this.prefetchRuntypeTts(),this.prefetchVoiceRuntime()}prefetchVoiceRuntime(){this.config.voiceRecognition?.provider&&sm().catch(()=>{})}prefetchRuntypeTts(){let t=this.config.textToSpeech;if(t?.provider!=="runtype"||t.createEngine)return;let n=t.host??this.config.apiUrl,o=t.agentId??this.config.voiceRecognition?.provider?.runtype?.agentId??this.config.agentId;!n||!o||!this.config.clientToken||lm().catch(()=>{})}setSSEEventCallback(t){this.client.setSSEEventCallback(t)}isClientTokenMode(){return this.client.isClientTokenMode()}isAgentMode(){return this.client.isAgentMode()}getAgentExecution(){return this.agentExecution}isAgentExecuting(){return this.agentExecution?.status==="running"}isVoiceSupported(){return oC(this.config.voiceRecognition?.provider)}isVoiceActive(){return this.voiceActive}getVoiceStatus(){return this.voiceStatus}getVoiceLevel(){return this.voiceProvider?.onLevel?this.voiceLevel:null}getVoiceInterruptionMode(){return this.voiceProvider?.getInterruptionMode?this.voiceProvider.getInterruptionMode():"none"}stopVoicePlayback(){this.voiceProvider?.stopPlayback&&this.voiceProvider.stopPlayback()}isBargeInActive(){return this.voiceProvider?.isBargeInActive?.()??!1}async deactivateBargeIn(){this.voiceProvider?.deactivateBargeIn&&await this.voiceProvider.deactivateBargeIn()}createSpeechEngine(){let t=this.config.textToSpeech;if(t?.createEngine)return t.createEngine();let n=es.isSupported()?new es({pickVoice:t?.pickVoice}):null;if(t?.provider==="runtype"){let o=t.host??this.config.apiUrl,r=t.agentId??this.config.voiceRecognition?.provider?.runtype?.agentId??this.config.agentId,s=this.config.clientToken,a=t.browserFallback!==!1;if(o&&r&&s)return lm().then(({RuntypeSpeechEngine:l,FallbackSpeechEngine:d})=>{let p=new l({host:o,agentId:r,clientToken:s,voice:t.voice,prebufferMs:t.prebufferMs,createPlaybackEngine:t.createPlaybackEngine});return a&&n?new d(p,n,{onFallback:u=>console.warn(`[persona] Runtype read-aloud failed; using browser voice. ${u.message}`)}):p});if(a&&n)return s&&console.warn("[persona] textToSpeech.provider 'runtype' is missing an agentId; using the browser voice. Set textToSpeech.agentId (or voiceRecognition.provider.runtype.agentId)."),n}return n}setupVoice(t){try{let n=t||this.getVoiceConfigFromConfig();if(!n)throw new Error("Voice configuration not provided");let o=++this.voiceSetupGeneration;this.voiceSetupPromise=sm().then(r=>{o===this.voiceSetupGeneration&&this.wireVoiceProvider(r.createVoiceProvider(n))}).catch(r=>{console.error("Failed to setup voice:",r)}).finally(()=>{o===this.voiceSetupGeneration&&(this.voiceSetupPromise=null)})}catch(n){console.error("Failed to setup voice:",n)}}wireVoiceProvider(t){try{this.voiceProvider=t;let o=(this.config.voiceRecognition??{}).processingErrorText??"Voice processing failed. Please try again.";this.voiceProvider.onResult(r=>{r.provider!=="runtype"&&r.text&&r.text.trim()&&this.sendMessage(r.text,{viaVoice:!0})}),this.voiceProvider.onTranscript&&this.voiceProvider.onTranscript((r,s,a)=>{if(r==="user"){if(this.pendingVoiceUserMessageId)this.upsertMessage({id:this.pendingVoiceUserMessageId,role:"user",content:s,createdAt:new Date().toISOString(),streaming:!1,voiceProcessing:!a});else{let l=this.injectMessage({role:"user",content:s,streaming:!1,voiceProcessing:!a});this.pendingVoiceUserMessageId=l.id}if(a){this.pendingVoiceUserMessageId=null;let l=this.injectMessage({role:"assistant",content:"",streaming:!0,voiceProcessing:!0});this.pendingVoiceAssistantMessageId=l.id,this.setStreaming(!0)}}else{if(this.pendingVoiceAssistantMessageId)this.upsertMessage({id:this.pendingVoiceAssistantMessageId,role:"assistant",content:s,createdAt:new Date().toISOString(),streaming:!a,voiceProcessing:!a});else{let l=this.injectMessage({role:"assistant",content:s,streaming:!a,voiceProcessing:!a});this.pendingVoiceAssistantMessageId=l.id}a&&(this.pendingVoiceAssistantMessageId&&this.ttsSpokenMessageIds.add(this.pendingVoiceAssistantMessageId),this.setStreaming(!1),this.pendingVoiceAssistantMessageId=null)}}),this.voiceProvider.onLevel&&this.voiceProvider.onLevel(r=>{this.voiceLevel=Number.isFinite(r)?Math.max(0,Math.min(1,r)):0}),this.voiceProvider.onMetrics&&this.voiceProvider.onMetrics(r=>{this.config.voiceRecognition?.onMetrics?.(r)}),this.voiceProvider.onError(r=>{console.error("Voice error:",r),this.pendingVoiceAssistantMessageId&&(this.upsertMessage({id:this.pendingVoiceAssistantMessageId,role:"assistant",content:o,createdAt:new Date().toISOString(),streaming:!1,voiceProcessing:!1}),this.setStreaming(!1),this.pendingVoiceUserMessageId=null,this.pendingVoiceAssistantMessageId=null)}),this.voiceProvider.onStatusChange(r=>{this.voiceStatus=r,this.voiceActive=r==="listening",this.callbacks.onVoiceStatusChanged?.(r)}),this.voiceProvider.connect()}catch(n){console.error("Failed to setup voice:",n)}}async toggleVoice(){if(!this.voiceProvider&&this.voiceSetupPromise&&await this.voiceSetupPromise,!this.voiceProvider){console.error("Voice not configured");return}if(this.voiceActive)await this.voiceProvider.stopListening();else{this.stopSpeaking();try{await this.voiceProvider.startListening()}catch(t){console.error("Failed to start voice:",t)}}}cleanupVoice(){this.voiceSetupGeneration++,this.voiceSetupPromise=null,this.voiceProvider&&(this.voiceProvider.disconnect(),this.voiceProvider=null),this.voiceActive=!1,this.voiceStatus="disconnected"}getVoiceConfigFromConfig(){if(!this.config.voiceRecognition?.provider)return;let t=this.config.voiceRecognition.provider;switch(t.type){case"runtype":return{type:"runtype",runtype:{agentId:t.runtype?.agentId??this.config.agentId??"",clientToken:t.runtype?.clientToken??this.config.clientToken,host:t.runtype?.host??this.config.apiUrl,voiceId:t.runtype?.voiceId,createPlaybackEngine:t.runtype?.createPlaybackEngine}};case"browser":return{type:"browser",browser:{language:t.browser?.language||"en-US",continuous:t.browser?.continuous}};case"custom":return{type:"custom",custom:t.custom};default:return}}async initClientSession(){if(!this.isClientTokenMode())return null;this.config.features?.history?.enabled&&(await this.historyInternals.historyBootstrapReady,this.bootConversationRevision=this.historyInternals.getStoredConversationRevision?.()??null,this.bootRevisionCaptured=!0);try{let t=await this.client.initSession();return this.setClientSession(t),t}catch(t){return this.callbacks.onError?.(t instanceof Error?t:new Error(String(t))),null}}setClientSession(t){this.clientSession=t,this.injectWelcomeMessage(t)}injectWelcomeMessage(t){if(this.suppressWelcomeInjection||!t.config.welcomeMessage||this.messages.length!==0)return;let n={id:`welcome-${Date.now()}`,role:"assistant",content:t.config.welcomeMessage,createdAt:new Date().toISOString(),sequence:this.nextSequence()};this.appendMessage(n)}getClientSession(){return this.clientSession??this.client.getClientSession()}isSessionValid(){let t=this.getClientSession();return t?new Date<t.expiresAt:!1}clearClientSession(){this.clientSession=null,this.client.clearClientSession()}getClient(){return this.client}async submitMessageFeedback(t,n){return this.client.submitMessageFeedback(t,n)}async submitCSATFeedback(t,n){return this.client.submitCSATFeedback(t,n)}async submitNPSFeedback(t,n){return this.client.submitNPSFeedback(t,n)}setHistoryInternals(t){this.historyInternals=this.composeHistoryInternals(t),this.client.setHistoryInternals(this.historyInternals),this.syncVisitorStoreSubscription()}destroy(){this.visitorStoreUnsubscribe?.(),this.visitorStoreUnsubscribe=null,this.subscribedVisitorStore=null}composeHistoryInternals(t){let n=t.onHistoryContinuityChanged;return{...t,onHistoryContinuityChanged:o=>{this.handleHistoryContinuityChanged(o),n?.(o)}}}get historyProvider(){return this.historyInternals.historyProvider??null}requireHistoryProvider(){let t=this.historyProvider;if(!t)throw new qo("history_unavailable","No conversation history provider is installed");return t}historyContext(t){let n=this.requireHistoryProvider(),o=t??this.config.features?.history?.scope,r=this.config.getIdentityProof?"verified-user":"browser",s=o??(n.capabilities.scopes.includes(r)?r:n.capabilities.scopes[0]??r);if(!n.capabilities.scopes.includes(s))throw new lo("unsupported_scope","This history scope is not supported.");return{scope:s}}getHistoryState(){return{activeConversationId:this.activeConversationId,conversationRevision:this.activeConversationRevision,nextMessageCursor:this.historyNextMessageCursor,recovery:this.historyRecovery,sendBlocked:this.historySendBlocked}}getActiveConversationId(){return this.activeConversationId}emitHistoryState(){this.callbacks.onHistoryStateChanged?.(this.getHistoryState())}notifyHistory(t,n){this.callbacks.onHistoryNotice?.({code:t,message:n})}async awaitHistorySettled(){let t=this.historyGate;t&&await t.catch(()=>{});let n=this.projectionFinalizationPromise;n&&await n.catch(()=>{})}assertHistoryIdle(){if(this.streaming||this.status==="paused"||this.status==="resuming")throw new qo("conversation_busy","Finish or stop the current turn before switching conversations")}listConversations(t){return this.requireHistoryProvider().list({...t?.cursor?{cursor:t.cursor}:{},...t?.limit!==void 0?{limit:t.limit}:{},...t?.targetId!==void 0?{targetId:t.targetId}:{},context:this.historyContext(t?.scope)})}async openConversation(t,n){let o=this.requireHistoryProvider();this.assertHistoryIdle();let r=this.historyContext(n?.scope);await this.awaitHistorySettled();let s=++this.historyOpenEpoch,a=await o.getPage(t,{context:r});if(s!==this.historyOpenEpoch)throw new qo("superseded","A later selection won");let l=await o.prepareOpen(t,{context:r});if(s!==this.historyOpenEpoch)throw l.discard(),new qo("superseded","A later selection won");this.suppressWelcomeInjection=!0;try{await this.commitActivation(l)}finally{this.suppressWelcomeInjection=!1}this.activeConversationId=l.conversationId||t,this.activeConversationRevision=l.conversationRevision||a.conversationRevision||null,this.historyNextMessageCursor=a.nextCursor,this.historyRecovery=null,this.historySendBlocked=!1,this.resetConversationScopedState();for(let d of a.messages)this.acknowledgedProjections.set(d.id,d.content);return this.persistConversationMetadata(),this.hydrateMessages(a.messages),this.emitHistoryState(),{summary:a.summary,nextMessageCursor:a.nextCursor}}loadOlderMessages(t,n,o){let r=this.requireHistoryProvider(),s=this.historyContext(o?.scope),a=n??this.historyNextMessageCursor;if(!a)return Promise.resolve({messages:[],nextMessageCursor:null});let l=`${t} ${a}`,d=this.olderPageRequests.get(l);if(d)return d;let p=this.fetchOlderPage(r,t,a,s).finally(()=>{this.olderPageRequests.delete(l)});return this.olderPageRequests.set(l,p),p}async fetchOlderPage(t,n,o,r){let s=this.messages[0]?.createdAt,a=await t.getPage(n,{cursor:o,...s?{beforeCreatedAt:s}:{},context:r});if(this.activeConversationId&&this.activeConversationId!==n)return{messages:[],nextMessageCursor:a.nextCursor};let l=fl(this.messages,a.messages);this.messages=this.sortMessages(l.map(d=>this.ensureSequence(d))),this.historyNextMessageCursor=a.nextCursor;for(let d of a.messages)this.acknowledgedProjections.set(d.id,d.content);return this.historyInternals.setStoredMessageCursor?.(a.nextCursor),this.callbacks.onMessagesChanged([...this.messages]),this.emitHistoryState(),{messages:a.messages,nextMessageCursor:a.nextCursor}}async startNewConversation(t){let n=this.requireHistoryProvider(),o=this.historyContext(t?.scope);await this.awaitHistorySettled();let r=++this.historyOpenEpoch,s=await n.prepareStartNew({context:o});if(r!==this.historyOpenEpoch)throw s.discard(),new qo("superseded","A later action won");await this.installFreshConversation(s)}async installFreshConversation(t){this.discardConversationState(),await this.commitActivation(t),this.activeConversationId=t.conversationId||null,this.activeConversationRevision=t.conversationRevision||null,this.historyNextMessageCursor=null,this.historyRecovery=null,this.historySendBlocked=!1,this.persistConversationMetadata(),this.emitHistoryState()}async deleteConversation(t,n){let o=this.requireHistoryProvider(),r=this.historyContext(n?.scope);await this.awaitHistorySettled(),await o.delete(t,{context:r}),t===this.activeConversationId&&await this.recoverFromDestroyedConversation(r)}async updateConversation(t,n,o){let r=this.requireHistoryProvider();if(!r.update)throw new qo("history_unavailable","This history provider cannot update conversations");let s=this.historyContext(o?.scope);return await this.awaitHistorySettled(),r.update(t,n,{context:s})}canUpdateConversations(){return typeof this.historyProvider?.update=="function"}async clearConversationHistory(t){let n=this.requireHistoryProvider(),o=this.historyContext(t?.scope);await this.awaitHistorySettled();let r=await n.deleteAll({...t?.targetId!==void 0?{targetId:t.targetId}:{},context:o});return await this.recoverFromDestroyedConversation(o),r}async resetHistoryDevice(){let t=this.requireHistoryProvider();if(!t.resetDevice)throw new qo("history_unavailable","This history provider cannot reset the device");this.historyOpenEpoch+=1,this.projectionFinalizationPromise=null;try{return await t.resetDevice()}finally{this.discardConversationState(),this.activeConversationId=null,this.activeConversationRevision=null,this.historyNextMessageCursor=null,this.historyRecovery=null,this.historySendBlocked=!1,this.emitHistoryState()}}async recoverFromDestroyedConversation(t){this.historyOpenEpoch+=1,this.projectionFinalizationPromise=null,this.discardConversationState(),this.activeConversationId=null,this.activeConversationRevision=null,this.historyNextMessageCursor=null,this.historySendBlocked=!0,this.historyRecovery=null,this.emitHistoryState(),await this.prepareReplacementConversation(t)}async prepareReplacementConversation(t){let n=this.historyProvider;if(!n){this.historySendBlocked=!1,this.emitHistoryState();return}try{let o=await n.prepareStartNew({context:t});await this.installFreshConversation(o)}catch{this.historySendBlocked=!0,this.historyRecovery="new_conversation_required",this.emitHistoryState(),this.notifyHistory("new_conversation_required","That conversation was deleted. Start a new conversation to continue.")}}async retryRequiredConversation(){if(!(this.historyRecovery!=="new_conversation_required"||!this.historyProvider)&&(this.historyRecovery=null,await this.prepareReplacementConversation(this.historyContext()),this.historyRecovery==="new_conversation_required"))throw new qo("new_conversation_required","A new conversation is required before sending")}async commitActivation(t){await t.commit();let n=this.client.getClientSession();n&&n.sessionId!==this.clientSession?.sessionId&&this.bindActivatedSession(n)}bindActivatedSession(t){this.clientSession=t,this.config.setStoredSessionId?.(t.sessionId),t.conversationId&&(this.activeConversationId=t.conversationId,this.activeConversationRevision=t.conversationRevision??null,this.config.setStoredConversationId?.(t.conversationId),this.historyInternals.setStoredConversationRevision?.(t.conversationRevision??null)),this.suppressWelcomeInjection||this.injectWelcomeMessage(t)}persistConversationMetadata(){this.activeConversationId?this.config.setStoredConversationId?.(this.activeConversationId):this.config.clearStoredConversationId?.(),this.historyInternals.setStoredConversationRevision?.(this.activeConversationRevision),this.historyInternals.setStoredMessageCursor?.(this.historyNextMessageCursor)}resetConversationScopedState(){this.historyInternals.setStoredResumableHandle?.(null),this.agentExecution=null,this.clearArtifactState(),this.webMcpInflightKeys.clear(),this.webMcpResolvedKeys.clear(),this.client.resetClientToolsFingerprint(),this.acknowledgedProjections.clear(),this.setPendingProjections(null)}discardConversationState(){this.stopSpeaking(),this.abortController?.abort(),this.abortController=null,this.teardownReconnect(),this.abortWebMcpResolves(),this.messages=[],this.resetConversationScopedState(),this.olderPageRequests.clear(),this.config.clearStoredSessionId?.(),this.config.clearStoredConversationId?.(),this.historyInternals.setStoredConversationRevision?.(null),this.historyInternals.setStoredMessageCursor?.(null),this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}handleHistoryContinuityChanged(t){this.historyOpenEpoch+=1,this.projectionFinalizationPromise=null,this.historySendBlocked=!0,this.discardConversationState(),this.activeConversationId=t.conversationId,this.activeConversationRevision=null,this.historyNextMessageCursor=null,this.historyRecovery=null,this.emitHistoryState(),this.notifyHistory("history_continuity_reset","This browser was reconnected to a different conversation, so the previous messages were cleared."),this.historyGate=Promise.resolve().then(()=>{this.historySendBlocked=!1,this.historyGate=null,this.emitHistoryState()})}syncVisitorStoreSubscription(){let t=this.historyInternals.visitorStore??null;t!==this.subscribedVisitorStore&&(this.visitorStoreUnsubscribe?.(),this.visitorStoreUnsubscribe=null,this.subscribedVisitorStore=t,t&&(this.visitorStoreUnsubscribe=t.subscribe(n=>this.handleExternalCredentialChange(n))))}handleExternalCredentialChange(t){if(t.source!=="external"||t.previousToken===null)return;this.clientSession=null,this.client.handleExternalCredentialChange(),this.historyOpenEpoch+=1,this.projectionFinalizationPromise=null,this.credentialReinitPending=!0,this.credentialReinitPromise=null;let n=this.messages.length>0;n||this.activeConversationId!==null||(this.config.getStoredConversationId?.()??null)!==null?this.discardConversationState():(this.config.clearStoredSessionId?.(),this.config.clearStoredConversationId?.(),this.olderPageRequests.clear(),this.setPendingProjections(null)),this.activeConversationId=null,this.activeConversationRevision=null,this.historyNextMessageCursor=null,this.historyRecovery=null,this.emitHistoryState(),n&&this.notifyHistory("history_continuity_reset","This browser's conversation history was reset in another tab, so the previous messages were cleared.")}completeCredentialReinit(){return this.credentialReinitPending?(this.credentialReinitPromise||(this.credentialReinitPromise=this.runCredentialReinit().finally(()=>{this.credentialReinitPromise=null})),this.credentialReinitPromise):Promise.resolve()}async runCredentialReinit(){if(!this.isClientTokenMode()){this.credentialReinitPending=!1;return}try{this.bindActivatedSession(await this.client.initSession()),this.credentialReinitPending=!1}catch{}}reconcileBootConversation(t){let n=this.historyProvider,o=this.clientSession?.conversationId??this.config.getStoredConversationId?.()??this.activeConversationId;if(!n||!o)return Promise.resolve();let r=this.historyContext(t?.scope);this.historySendBlocked=!0,this.emitHistoryState();let s=this.runBootReconciliation(n,o,r).finally(()=>{this.historySendBlocked=this.historyRecovery!==null,this.historyGate===s&&(this.historyGate=null),this.emitHistoryState()});return this.historyGate=s,s}async runBootReconciliation(t,n,o){this.activeConversationId=n;let r=this.clientSession?.conversationRevision??this.activeConversationRevision??null,s=this.bootRevisionCaptured?this.bootConversationRevision:this.historyInternals.getStoredConversationRevision?.()??null;if(this.bootRevisionCaptured=!1,this.historyNextMessageCursor=this.historyInternals.getStoredMessageCursor?.()??this.historyNextMessageCursor,await this.replayPendingProjections(),r&&s&&r===s){this.activeConversationRevision=r;return}let a=await t.getPage(n,{context:o}),l=new Set(a.messages.map(m=>m.id)),d=this.messages.some(m=>l.has(m.id)),p=a.messages[0]?.createdAt,u;if(!d)u=a.messages.map(m=>this.ensureSequence(m));else{let m=this.resumable?this.activeAssistantMessageId:null,y=this.messages.filter(h=>l.has(h.id)||h.id===m?!0:p!==void 0&&h.createdAt<p);u=fl(y,a.messages).map(h=>this.ensureSequence(h))}this.historyNextMessageCursor=a.nextCursor,this.activeConversationRevision=a.conversationRevision||r||null,this.acknowledgedProjections.clear();for(let m of a.messages)this.acknowledgedProjections.set(m.id,m.content);this.persistConversationMetadata(),this.messages=this.sortMessages(u),this.callbacks.onMessagesChanged([...this.messages])}projectionFinalizationEnabled(){return this.config.features?.history?.enabled===!0&&this.isClientTokenMode()}setPendingProjections(t){this.pendingProjections=t,this.historyInternals.setPendingDisplayProjections?.(t)}readPendingProjections(){return this.historyInternals.getPendingDisplayProjections?.()??this.pendingProjections}recordDispatchedProjections(t){if(this.projectionFinalizationEnabled())for(let n of t){let o=ml(n);o!==void 0&&this.acknowledgedProjections.set(n.id,o)}}scheduleProjectionFinalization(){if(!this.projectionFinalizationEnabled())return;let t=this.activeConversationId;if(!t)return;let n=[];for(let o of this.messages){if(o.role!=="assistant"||o.streaming)continue;let r=ml(o);r!==void 0&&this.acknowledgedProjections.get(o.id)!==r&&n.push({id:o.id,displayContent:r})}n.length!==0&&(this.setPendingProjections({conversationId:t,messageIds:n.map(o=>o.id)}),this.enqueueProjectionFinalization(t,n))}enqueueProjectionFinalization(t,n){let r=(this.projectionFinalizationPromise??Promise.resolve()).catch(()=>{}).then(()=>this.finalizeProjections(t,n,!1)).finally(()=>{this.projectionFinalizationPromise===r&&(this.projectionFinalizationPromise=null)});this.projectionFinalizationPromise=r}async finalizeProjections(t,n,o){if(this.activeConversationId!==t)return;let r=n.filter(s=>this.acknowledgedProjections.get(s.id)!==s.displayContent);if(r.length===0){this.clearFinalizedMarker(t,n);return}try{let{conversationRevision:s}=await this.client.finalizeDisplayProjections(t,r);for(let a of r)this.acknowledgedProjections.set(a.id,a.displayContent);this.activeConversationId===t&&s&&(this.activeConversationRevision=s),this.clearFinalizedMarker(t,n)}catch(s){if(!o&&this.isTransientProjectionError(s)){await this.finalizeProjections(t,r,!0);return}if(s instanceof ze&&(s.code==="not_found"||s.code==="conversation_deleted")){this.clearFinalizedMarker(t,n);return}this.notifyHistory("projection_finalization_failed","Some message formatting could not be saved for history; it will be retried.")}}isTransientProjectionError(t){return t instanceof ze?t.code==="request_failed":t instanceof Error}clearFinalizedMarker(t,n){let o=this.readPendingProjections();if(!o||o.conversationId!==t)return;let r=new Set(n.map(a=>a.id)),s=o.messageIds.filter(a=>!r.has(a));this.setPendingProjections(s.length?{conversationId:t,messageIds:s}:null)}async replayPendingProjections(){if(!this.projectionFinalizationEnabled())return;let t=this.readPendingProjections();if(!t)return;if(this.activeConversationId&&t.conversationId!==this.activeConversationId){this.setPendingProjections(null);return}let n=[];for(let o of t.messageIds){let r=this.messages.find(s=>s.id===o);!r||typeof r.content!="string"||n.push({id:o,displayContent:r.content})}if(n.length===0){this.setPendingProjections(null);return}this.enqueueProjectionFinalization(t.conversationId,n),await this.projectionFinalizationPromise?.catch(()=>{})}invalidateConversationRevision(){this.activeConversationId&&(this.activeConversationRevision=null,this.historyInternals.setStoredConversationRevision?.(null))}async awaitHistorySendable(){await this.awaitHistorySettled(),await this.completeCredentialReinit(),this.historyRecovery==="new_conversation_required"&&await this.retryRequiredConversation()}static isConversationDeleted(t){return t instanceof ze&&t.code==="conversation_deleted"}async dispatchWithDeletedRecovery(t,n,o,r,s){this.recordDispatchedProjections(t);try{await this.client.dispatch({messages:t,signal:n.signal,assistantMessageId:o,composerOptions:s?.composerOptions,interrupt:s?.interrupt},this.handleEvent);return}catch(a){if(!e.isConversationDeleted(a))throw a;let l=await this.recoverFromDeletedConversation(r);if(!l)throw a;this.recordDispatchedProjections([l]),await this.client.dispatch({messages:[l],signal:n.signal,assistantMessageId:o,composerOptions:s?.composerOptions},this.handleEvent)}}async recoverFromDeletedConversation(t){let n=this.messages.find(r=>r.id===t);if(!n)return null;let o={...n};this.historyOpenEpoch+=1,this.projectionFinalizationPromise=null,this.discardConversationState(),this.activeConversationId=null,this.activeConversationRevision=null,this.historyNextMessageCursor=null,this.suppressWelcomeInjection=!0;try{let r=this.historyProvider;if(r){let s=await r.prepareStartNew({context:this.historyContext()});await this.installFreshConversation(s)}else{this.client.clearClientSession();let s=await this.client.initSession();this.bindActivatedSession(s)}}catch{return this.historySendBlocked=!0,this.historyRecovery="new_conversation_required",this.emitHistoryState(),this.notifyHistory("new_conversation_required","That conversation was deleted. Start a new conversation to continue."),null}finally{this.suppressWelcomeInjection=!1}return this.appendMessage(o),this.setStreaming(!0),this.notifyHistory("conversation_deleted_recovered","That conversation was deleted. Started a new conversation."),this.messages.find(r=>r.id===o.id)??o}updateConfig(t){let n=this.config.features?.artifacts?.display,o={...this.config,...t},r=JSON.stringify(n)!==JSON.stringify(o.features?.artifacts?.display);if(!ET(this.config,o)){this.config=o,this.client.updateConfig(o),r&&this.refreshArtifactReferenceBlocks();return}this.abortWebMcpResolves(),this.webMcpInflightKeys.clear(),this.webMcpResolvedKeys.clear();let s=this.client.getSSEEventCallback();this.config=o,this.client=new zs(this.config,this.historyInternals),r&&this.refreshArtifactReferenceBlocks(),this.wireDefaultWebMcpConfirm(),s&&this.client.setSSEEventCallback(s)}getMessages(){return[...this.messages]}getStatus(){return this.status}isStreaming(){return this.streaming}injectTestEvent(t){this.handleEvent(t)}injectMessage(t){let{role:n,content:o,llmContent:r,contentParts:s,id:a,createdAt:l,sequence:d,streaming:p=!1,voiceProcessing:u,rawContent:m}=t,h={id:a??(n==="user"?$i():n==="assistant"?Gr():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`),role:n,content:o,createdAt:l??new Date().toISOString(),sequence:d??this.nextSequence(),streaming:p,...r!==void 0&&{llmContent:r},...s!==void 0&&{contentParts:s},...u!==void 0&&{voiceProcessing:u},...m!==void 0&&{rawContent:m}};return this.upsertMessage(h),h}injectAssistantMessage(t){return this.injectMessage({...t,role:"assistant"})}injectUserMessage(t){return this.injectMessage({...t,role:"user"})}injectSystemMessage(t){return this.injectMessage({...t,role:"system"})}injectMessageBatch(t){let n=[];for(let o of t){let{role:r,content:s,llmContent:a,contentParts:l,id:d,createdAt:p,sequence:u,streaming:m=!1,voiceProcessing:y,rawContent:h}=o,S={id:d??(r==="user"?$i():r==="assistant"?Gr():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`),role:r,content:s,createdAt:p??new Date().toISOString(),sequence:u??this.nextSequence(),streaming:m,...a!==void 0&&{llmContent:a},...l!==void 0&&{contentParts:l},...y!==void 0&&{voiceProcessing:y},...h!==void 0&&{rawContent:h}};n.push(S)}return this.messages=this.sortMessages([...this.messages,...n]),this.callbacks.onMessagesChanged([...this.messages]),n}injectComponentDirective(t){let{component:n,props:o={},text:r="",llmContent:s,id:a,createdAt:l,sequence:d}=t,p={text:r,component:n,props:o};return this.injectMessage({role:"assistant",content:r,rawContent:JSON.stringify(p),...s!==void 0&&{llmContent:s},...a!==void 0&&{id:a},...l!==void 0&&{createdAt:l},...d!==void 0&&{sequence:d}})}async applyMentionBundle(t,n,o){let r;try{r=await o()}catch{return}let s=r.blocks.join(`
19
19
 
20
20
  `),a=[s,n].filter(Boolean).join(`
21
21
 
22
- `),l=Array.isArray(t.contentParts)&&t.contentParts.length>0,d=r.contentParts.length>0;if(l){let p=[];s&&p.push(ao(s)),p.push(...r.contentParts),p.push(...t.contentParts),t.contentParts=p}else if(d){let p=[];a&&p.push(ao(a)),p.push(...r.contentParts),t.contentParts=p}else s&&(t.llmContent=a);Object.keys(r.context).length>0&&(t.mentionContext=r.context)}async sendMessage(t,n){let o=t.trim(),r=!!n?.replayFields&&(n.replayFields.llmContent!==void 0||n.replayFields.rawContent!==void 0||(n.replayFields.contextMentions?.length??0)>0);if(!o&&(!n?.contentParts||n.contentParts.length===0)&&(!n?.mentions||n.mentions.refs.length===0)&&!r)return;(this.historyGate||this.projectionFinalizationPromise||this.historySendBlocked||this.credentialReinitPending)&&await this.awaitHistorySendable(),this.stopSpeaking(),this.abortController?.abort(),this.abortWebMcpResolves(),this.teardownReconnect();let s=Bi(),a=jr();this.activeAssistantMessageId=null;let l=n?.contentParts&&Ui(n.contentParts)?$i:"",d={id:s,role:"user",content:o||l,createdAt:new Date().toISOString(),sequence:this.nextSequence(),viaVoice:n?.viaVoice||!1,...n?.contentParts&&n.contentParts.length>0&&{contentParts:n.contentParts},...n?.mentions&&n.mentions.refs.length>0&&{contextMentions:n.mentions.refs},...n?.contentSegments&&n.contentSegments.length>0&&{contentSegments:n.contentSegments},...n?.composerOptions&&{composerOptions:n.composerOptions},...n?.replayFields??{}};this.appendMessage(d),this.setStreaming(!0);let p=new AbortController;if(this.abortController=p,n?.mentions){let m=this.messages.find(y=>y.id===s)??d;if(await this.applyMentionBundle(m,o,n.mentions.finalize),p.signal.aborted||this.abortController!==p)return;this.callbacks.onMessagesChanged([...this.messages])}if(n?.quote&&!n.replayFields){let m=this.messages.find(h=>h.id===s)??d,y=Yv({quote:n.quote,text:m.llmContent??m.content,contentParts:m.contentParts});y.contentParts&&(m.contentParts=y.contentParts),y.llmContent!==void 0&&(m.llmContent=y.llmContent),(y.contentParts||y.llmContent!==void 0)&&(m.quote={...n.quote},this.callbacks.onMessagesChanged([...this.messages]))}let u=[...this.messages];try{await this.dispatchWithDeletedRecovery(u,p,a,s,{composerOptions:n?.composerOptions,interrupt:n?.interrupt})}catch(m){if(this.status==="resuming"||this.reconnecting)return;let y=m instanceof Error&&(m.name==="AbortError"||m.message.includes("aborted")||m.message.includes("abort"));if(!y){let h=im(m,this.config.errorMessage);if(h){let C={id:a,role:"assistant",createdAt:new Date().toISOString(),content:h,sequence:this.nextSequence()};this.appendMessage(C)}}this.setStatus("idle"),this.setStreaming(!1),this.abortController=null,y||(m instanceof Error?this.callbacks.onError?.(m):this.callbacks.onError?.(new Error(String(m))))}}resubmitFrom(t,n){let o=Xv(this.messages,t);if(!o)return!1;let r=this.messages[o.start],s=n.replacement,a=s?s.text:r.content,l=s?s.contentParts:r.contentParts;if(!(!!a?.trim()||(l?.length??0)>0||!s&&(r.llmContent?.trim()?.length??0)>0))return!1;let p=s?void 0:{...r.llmContent!==void 0&&{llmContent:r.llmContent},...r.rawContent!==void 0&&{rawContent:r.rawContent},...r.mentionContext&&{mentionContext:r.mentionContext},...r.contextMentions&&{contextMentions:r.contextMentions},...r.quote&&{quote:r.quote}},u=s?this.toComposerOptionsPayload(s.options):r.composerOptions,m=s?s.contentSegments:r.contentSegments,y=s?s.options?.quote:void 0,h=s?s.viaVoice:r.viaVoice;return this.cancel(),this.messages=this.messages.slice(0,o.start),this.sendMessage(a??"",{...l?.length?{contentParts:[...l]}:{},...m?.length?{contentSegments:[...m]}:{},...u?{composerOptions:u}:{},...y?{quote:y}:{},...p&&Object.keys(p).length>0?{replayFields:p}:{},viaVoice:h===!0}),!0}toComposerOptionsPayload(t){if(!t)return;let n={};return t.selectedModelId&&(n.selectedModelId=t.selectedModelId),t.activeModeIds?.length&&(n.activeModeIds=[...t.activeModeIds]),Object.keys(n).length>0?n:void 0}async continueConversation(){if(this.streaming)return;(this.historyGate||this.projectionFinalizationPromise||this.historySendBlocked||this.credentialReinitPending)&&await this.awaitHistorySendable(),this.abortController?.abort(),this.teardownReconnect();let t=jr();this.activeAssistantMessageId=null,this.setStreaming(!0);let n=new AbortController;this.abortController=n;let o=[...this.messages];try{await this.client.dispatch({messages:o,signal:n.signal,assistantMessageId:t},this.handleEvent)}catch(r){if(this.status==="resuming"||this.reconnecting)return;let s=r instanceof Error&&(r.name==="AbortError"||r.message.includes("aborted")||r.message.includes("abort"));if(!s){let a=im(r,this.config.errorMessage);if(a){let l={id:t,role:"assistant",createdAt:new Date().toISOString(),content:a,sequence:this.nextSequence()};this.appendMessage(l)}}this.setStatus("idle"),this.setStreaming(!1),this.abortController=null,s||(r instanceof Error?this.callbacks.onError?.(r):this.callbacks.onError?.(new Error(String(r))))}}async connectStream(t,n){if(this.streaming&&!n?.allowReentry)return;n?.allowReentry||this.abortController?.abort(),n?.preserveAssistantId&&n.assistantMessageId&&(this.activeAssistantMessageId=n.assistantMessageId);let o=n?.preserveAssistantId?n.assistantMessageId:void 0,r=!1;for(let s of this.messages)s.streaming&&s.id!==o&&(s.streaming=!1,r=!0);r&&this.callbacks.onMessagesChanged([...this.messages]),this.setStreaming(!0);try{await this.client.processStream(t,this.handleEvent,n?.assistantMessageId,n?.seedContent)}catch(s){if(this.status==="resuming"||this.reconnecting)return;this.setStatus("error"),this.webMcpResolveControllers.size===0&&(this.setStreaming(!1),this.abortController=null),this.callbacks.onError?.(s instanceof Error?s:new Error(String(s)))}}wireDefaultWebMcpConfirm(){let t=this.config.webmcp;t?.enabled===!0&&!t.onConfirm&&this.client.setWebMcpConfirmHandler(n=>this.requestWebMcpApproval(n))}requestWebMcpApproval(t){try{if(this.config.webmcp?.autoApprove?.(t)===!0)return Promise.resolve(!0)}catch{}let n={id:`webmcp-${++this.webMcpApprovalSeq}`,status:"pending",agentId:"",executionId:"",toolName:t.toolName,toolType:"webmcp",description:t.description??`Allow the assistant to run ${t.toolName}?`,parameters:t.args},o=`approval-${n.id}`;return this.upsertMessage({id:o,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",approval:n}),new Promise(r=>{this.webMcpApprovalResolvers.set(o,r)})}resolveWebMcpApproval(t,n){let o=this.webMcpApprovalResolvers.get(t);if(!o)return;this.webMcpApprovalResolvers.delete(t);let r=this.messages.find(s=>s.id===t);r?.approval&&this.upsertMessage({...r,approval:{...r.approval,status:n,resolvedAt:Date.now()}}),o(n==="approved")}async resolveApproval(t,n,o){let r=`approval-${t.id}`,s={...t,status:n,resolvedAt:Date.now()},a=this.messages.find(u=>u.id===r),l={id:r,role:"assistant",content:"",createdAt:a?.createdAt??new Date().toISOString(),...a?.sequence!==void 0?{sequence:a.sequence}:{},streaming:!1,variant:"approval",approval:s};this.upsertMessage(l),this.abortController?.abort(),this.abortController=new AbortController,this.setStreaming(!0);let d=this.config.approval,p=d&&typeof d=="object"?d.onDecision:void 0;try{let u;if(p?u=await p({approvalId:t.id,executionId:t.executionId,agentId:t.agentId,toolName:t.toolName},n,o):u=await this.client.resolveApproval({agentId:t.agentId,executionId:t.executionId,approvalId:t.id},n),u){let m=null;if(u instanceof Response){if(!u.ok){let y=await u.json().catch(()=>null);throw new Error(y?.error??`Approval request failed: ${u.status}`)}m=u.body}else u instanceof ReadableStream&&(m=u);m?await this.connectStream(m,{allowReentry:!0}):(n==="denied"&&this.appendMessage({id:`denial-${t.id}`,role:"assistant",content:"Tool execution was denied by user.",createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()}),this.setStreaming(!1),this.abortController=null)}else this.setStreaming(!1),this.abortController=null}catch(u){let m=u instanceof Error&&(u.name==="AbortError"||u.message.includes("aborted")||u.message.includes("abort"));this.setStreaming(!1),this.abortController=null,m||this.callbacks.onError?.(u instanceof Error?u:new Error(String(u)))}}persistAskUserQuestionProgress(t,n){let o=this.messages.find(r=>r.id===t.id);o&&this.upsertMessage({...o,agentMetadata:{...o.agentMetadata,askUserQuestionAnswers:n.answers,askUserQuestionIndex:n.currentIndex}})}markAskUserQuestionResolved(t,n){let o=this.messages.find(r=>r.id===t.id);o&&this.upsertMessage({...o,agentMetadata:{...o.agentMetadata,awaitingLocalTool:!1,askUserQuestionAnswered:!0,...n?{askUserQuestionAnswers:n}:{}}})}async resolveAskUserQuestion(t,n){if(this.messages.find(u=>u.id===t.id)?.agentMetadata?.askUserQuestionAnswered===!0)return;let r=t.agentMetadata?.executionId,s=t.toolCall?.name;if(!r||!s){this.callbacks.onError?.(new Error("resolveAskUserQuestion: message is missing executionId or toolCall.name"));return}let a=typeof n=="string"?void 0:n;if(a===void 0&&typeof n=="string"){let u=t.toolCall?.args,m=Array.isArray(u?.questions)?u.questions:[];if(m.length===1){let y=typeof m[0]?.question=="string"?m[0].question:"";y&&(a={[y]:n})}}this.markAskUserQuestionResolved(t,a),this.abortController?.abort(),this.abortController=new AbortController,this.setStreaming(!0);let l=t.toolCall.id,d=t.toolCall?.args,p=Array.isArray(d?.questions)?d.questions:[];if(p.length===0){let u=typeof n=="string"?n:Object.entries(n).map(([m,y])=>`${m}: ${Array.isArray(y)?y.join(", "):y}`).join(" | ");this.appendMessage({id:`ask-user-answer-${l}`,role:"user",content:u,createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()})}else{let u=a??{};p.forEach((m,y)=>{let h=typeof m?.question=="string"?m.question:"";if(!h)return;let C=u[h],x=Array.isArray(C)?C.join(", "):typeof C=="string"?C:"";this.appendMessage({id:`ask-user-q-${l}-${y}`,role:"assistant",content:h,createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()}),this.appendMessage({id:`ask-user-a-${l}-${y}`,role:"user",content:x||"*Skipped*",createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()})})}try{let u=await this.client.resumeFlow(r,{[s]:n});if(!u.ok){let m=await u.json().catch(()=>null);throw new Error(m?.error??`Resume failed: ${u.status}`)}u.body?await this.connectStream(u.body,{allowReentry:!0}):(this.setStreaming(!1),this.abortController=null)}catch(u){let m=u instanceof Error&&(u.name==="AbortError"||u.message.includes("aborted")||u.message.includes("abort"));this.setStreaming(!1),this.abortController=null,m||this.callbacks.onError?.(u instanceof Error?u:new Error(String(u)))}}enqueueWebMcpAwait(t){let n=t.agentMetadata?.executionId,o=t.toolCall?.id;if(!n||!o){let s=this.webMcpEpoch;queueMicrotask(()=>{s===this.webMcpEpoch&&this.resolveWebMcpToolCall(t)});return}let r=this.webMcpAwaitBatches.get(n);r||(r={snapshots:[],seen:new Set},this.webMcpAwaitBatches.set(n,r)),!r.seen.has(o)&&(r.seen.add(o),r.snapshots.push(t))}scheduleWebMcpBatchFlush(){if(this.webMcpAwaitBatches.size===0)return;let t=this.webMcpEpoch;queueMicrotask(()=>{if(t===this.webMcpEpoch)for(let n of[...this.webMcpAwaitBatches.keys()])this.flushWebMcpAwaitBatch(n)})}flushWebMcpAwaitBatch(t){let n=this.webMcpAwaitBatches.get(t);if(!n)return;this.webMcpAwaitBatches.delete(t);let{snapshots:o}=n;o.length===1?this.resolveWebMcpToolCall(o[0]):o.length>1&&this.resolveWebMcpToolCallBatch(t,o)}resolveWebMcpToolStartedAt(t){let o=[this.messages.find(r=>r.id===t.id)?.toolCall?.startedAt,t.toolCall?.startedAt];for(let r of o)if(typeof r=="number"&&Number.isFinite(r))return r;return Date.now()}isSuggestRepliesAlreadyResolved(t){return t.toolCall?.name!==$o?!1:(this.messages.find(o=>o.id===t.id)??t).agentMetadata?.suggestRepliesResolved===!0}markWebMcpToolRunning(t){let n=this.resolveWebMcpToolStartedAt(t);return this.upsertMessage({...t,streaming:!0,agentMetadata:{...t.agentMetadata,awaitingLocalTool:!1},toolCall:t.toolCall?{...t.toolCall,status:"running",startedAt:n,completedAt:void 0,duration:void 0,durationMs:void 0}:t.toolCall}),n}markWebMcpToolComplete(t,n,o,r=Date.now(),s){this.messages.some(a=>a.id===t.id)&&this.upsertMessage({...t,streaming:!1,agentMetadata:{...t.agentMetadata,awaitingLocalTool:!1,...s},toolCall:t.toolCall?{...t.toolCall,status:"complete",result:n,startedAt:o,completedAt:r,duration:void 0,durationMs:Math.max(0,r-o)}:t.toolCall})}async resolveWebMcpToolCallBatch(t,n){let o=[],r=new AbortController;this.webMcpResolveControllers.add(r),this.setStreaming(!0);let s=await Promise.all(n.map(async l=>{let d=l.toolCall?.name,p=l.toolCall?.id;if(!d||!p)return null;let u=`${t}:${p}`;if(this.webMcpInflightKeys.has(u)||this.webMcpResolvedKeys.has(u)||this.isSuggestRepliesAlreadyResolved(l))return null;this.webMcpInflightKeys.add(u),o.push(u);let m=this.markWebMcpToolRunning(l),y=l.agentMetadata?.webMcpToolCallId??d;if(d===$o)return{dedupeKey:u,resumeKey:y,output:Sv(),toolMessage:l,startedAt:m,completedAt:Date.now()};let h=this.client.executeWebMcpToolCall(d,l.toolCall?.args,r.signal),C;if(!h)C={isError:!0,content:[{type:"text",text:"WebMCP not enabled on this widget."}]};else try{C=await h}catch(x){let S=x instanceof Error&&(x.name==="AbortError"||x.message.includes("aborted")||x.message.includes("abort"));return S||this.callbacks.onError?.(x instanceof Error?x:new Error(String(x))),this.markWebMcpToolComplete(l,am(S?"Aborted by cancel()":ST(x)),m),this.webMcpInflightKeys.delete(u),null}return r.signal.aborted?(this.markWebMcpToolComplete(l,am("Aborted by cancel()"),m),this.webMcpInflightKeys.delete(u),null):{dedupeKey:u,resumeKey:y,output:C,toolMessage:l,startedAt:m,completedAt:Date.now()}})),a=[];try{if(a=s.filter(p=>p!==null),a.length===0)return;let l={};for(let p of a)l[p.resumeKey]=p.output;let d=await this.client.resumeFlow(t,l,{signal:r.signal});if(!d.ok){let p=await d.json().catch(()=>null);throw new Error(p?.error??`Resume failed: ${d.status}`)}for(let p of a)this.webMcpResolvedKeys.add(p.dedupeKey),this.markWebMcpToolComplete(p.toolMessage,p.output,p.startedAt,p.completedAt,p.toolMessage.toolCall?.name===$o?{suggestRepliesResolved:!0}:void 0);d.body&&await this.connectStream(d.body,{allowReentry:!0})}catch(l){if(!(l instanceof Error&&(l.name==="AbortError"||l.message.includes("aborted")||l.message.includes("abort"))))this.callbacks.onError?.(l instanceof Error?l:new Error(String(l)));else for(let p of a)this.markWebMcpToolComplete(p.toolMessage,am("Aborted by cancel()"),p.startedAt)}finally{for(let l of o)this.webMcpInflightKeys.delete(l);this.webMcpResolveControllers.delete(r),this.webMcpResolveControllers.size===0&&!this.abortController&&this.setStreaming(!1)}}async resolveWebMcpToolCall(t){let n=t.agentMetadata?.executionId,o=t.toolCall?.name,r=t.toolCall?.id;if(!n){this.callbacks.onError?.(new Error("WebMCP step_await missing executionId: dispatch left paused."));return}if(!o)return;if(!r){let a=`${n}:__no_tool_id__:${o}`;if(this.webMcpInflightKeys.has(a)||this.webMcpResolvedKeys.has(a))return;this.webMcpInflightKeys.add(a);try{await this.resumeWithToolOutput(n,o,{isError:!0,content:[{type:"text",text:"WebMCP step_await missing toolCall.id: cannot execute the page tool."}]}),this.webMcpResolvedKeys.add(a)}catch(l){this.callbacks.onError?.(l instanceof Error?l:new Error(String(l)))}finally{this.webMcpInflightKeys.delete(a)}return}let s=`${n}:${r}`;if(!(this.webMcpInflightKeys.has(s)||this.webMcpResolvedKeys.has(s)||this.isSuggestRepliesAlreadyResolved(t)))return this.resolveWebMcpToolCallBatch(n,[t])}async resumeWithToolOutput(t,n,o,r){let s=await this.client.resumeFlow(t,{[n]:o},{signal:r?.signal});if(!s.ok){let a=await s.json().catch(()=>null);throw new Error(a?.error??`Resume failed: ${s.status}`)}r?.onHttpOk?.(),s.body?await this.connectStream(s.body,{allowReentry:!0}):this.webMcpResolveControllers.size===0&&(this.setStreaming(!1),this.abortController=null)}abortWebMcpResolves(){for(let t of this.webMcpResolveControllers)t.abort();this.webMcpResolveControllers.clear();for(let t of[...this.webMcpApprovalResolvers.keys()])this.resolveWebMcpApproval(t,"denied");this.webMcpAwaitBatches.clear(),this.webMcpEpoch++}cancel(){this.abortController?.abort(),this.abortController=null,this.teardownReconnect(),this.abortWebMcpResolves(),this.webMcpInflightKeys.clear(),this.stopSpeaking(),this.stopVoicePlayback(),this.setStreaming(!1),this.setStatus("idle")}clearMessages(){this.stopSpeaking(),this.abortController?.abort(),this.abortController=null,this.teardownReconnect(),this.abortWebMcpResolves(),this.messages=[],this.agentExecution=null,this.clearArtifactState(),this.webMcpInflightKeys.clear(),this.webMcpResolvedKeys.clear(),this.client.resetClientToolsFingerprint(),this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}getArtifacts(){return[...this.artifacts.values()]}getArtifactById(t){return this.artifacts.get(t)}getSelectedArtifactId(){return this.selectedArtifactId}selectArtifact(t){this.selectedArtifactId=t,this.emitArtifactsState()}clearArtifacts(){this.clearArtifactState()}upsertArtifact(t){let n=t.id||`art_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`,o=t.artifactType==="markdown"?{id:n,artifactType:"markdown",title:t.title,status:"complete",markdown:t.content,...t.file?{file:t.file}:{},...t.presentation?{presentation:t.presentation}:{}}:{id:n,artifactType:"component",title:t.title,status:"complete",component:t.component,props:t.props??{},...t.presentation?{presentation:t.presentation}:{}};return this.artifacts.set(n,o),this.selectedArtifactId=n,this.emitArtifactsState(),t.transcript!==!1&&this.injectArtifactRefBlock(o),o}injectArtifactRefBlock(t){let n=`artifact-ref-${t.id}`,o=Fo(this.config.features?.artifacts,t),r=il(o,{artifactId:t.id,title:t.title,artifactType:t.artifactType,status:"complete",...t.file?{file:t.file}:{},...t.presentation?{presentation:t.presentation}:{},...t.component?{component:t.component}:{},...t.props?{componentProps:t.props}:{},...t.markdown!==void 0?{markdown:t.markdown}:{}}),s=this.messages.find(a=>a.id===n);if(s){s.rawContent=r,s.streaming=!1,this.callbacks.onMessagesChanged([...this.messages]);return}this.injectAssistantMessage({id:n,content:"",rawContent:r})}refreshArtifactReferenceBlocks(){let t=!1;for(let n of this.artifacts.values()){let o=this.messages.find(a=>a.id===`artifact-ref-${n.id}`);if(!o)continue;let r=Fo(this.config.features?.artifacts,n),s=il(r,{artifactId:n.id,title:n.title,artifactType:n.artifactType,status:n.status,...n.file?{file:n.file}:{},...n.presentation?{presentation:n.presentation}:{},...n.component?{component:n.component}:{},...n.props?{componentProps:n.props}:{},...n.markdown!==void 0?{markdown:n.markdown}:{}});o.rawContent!==s&&(o.rawContent=s,o.streaming=n.status==="streaming",t=!0)}t&&this.callbacks.onMessagesChanged([...this.messages])}clearArtifactState(){this.artifacts.size===0&&this.selectedArtifactId===null||(this.artifacts.clear(),this.selectedArtifactId=null,this.emitArtifactsState())}emitArtifactsState(){this.callbacks.onArtifactsState?.({artifacts:[...this.artifacts.values()],selectedId:this.selectedArtifactId})}applyArtifactStreamEvent(t){switch(t.type){case"artifact_start":{t.artifactType==="markdown"?this.artifacts.set(t.id,{id:t.id,artifactType:"markdown",title:t.title,status:"streaming",markdown:"",...t.file?{file:t.file}:{}}):this.artifacts.set(t.id,{id:t.id,artifactType:"component",title:t.title,status:"streaming",component:t.component??"",props:{}}),this.selectedArtifactId=t.id;break}case"artifact_delta":{let n=this.artifacts.get(t.id);n?.artifactType==="markdown"&&(n.markdown=(n.markdown??"")+t.artDelta);break}case"artifact_update":{let n=this.artifacts.get(t.id);n?.artifactType==="component"&&(n.props={...n.props,...t.props},t.component&&(n.component=t.component));break}case"artifact_complete":{let n=this.artifacts.get(t.id);n&&(n.status="complete");break}default:return}this.emitArtifactsState()}hydrateMessages(t){this.abortController?.abort(),this.abortController=null,this.teardownReconnect(),this.abortWebMcpResolves(),this.webMcpInflightKeys.clear(),this.webMcpResolvedKeys.clear(),this.messages=this.sortMessages(t.map(n=>({...n,streaming:!1,sequence:n.sequence??this.nextSequence()}))),this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}hydrateArtifacts(t,n=null){this.artifacts.clear();for(let o of t)this.artifacts.set(o.id,{...o,status:"complete"});this.selectedArtifactId=n,this.emitArtifactsState()}trackCursor(t){let n=this.agentExecution?.executionId;if(!n||!this.activeAssistantMessageId||this.agentExecution?.status!=="running")return;let o=this.resumable===null;this.resumable={executionId:n,lastEventId:t,assistantMessageId:this.activeAssistantMessageId,status:"running"},this.notifyExecutionState(o)}isDurableDrop(){return this.resumable!==null&&typeof this.config.reconnectStream=="function"&&this.abortController?.signal.aborted!==!0&&this.webMcpResolveControllers.size===0&&this.webMcpAwaitBatches.size===0&&!this.isAwaitPending()}isAwaitPending(){return this.messages.some(t=>t.agentMetadata?.awaitingLocalTool===!0&&t.agentMetadata?.askUserQuestionAnswered!==!0||t.variant==="approval"&&t.approval?.status==="pending")}beginReconnect(){this.reconnecting||!this.resumable||typeof this.config.reconnectStream!="function"||(this.reconnecting=!0,this.callbacks.onReconnect?.({phase:"paused",handle:this.resumable}),this.setStreaming(!0),this.setStatus("resuming"),this.loadReconnectController().then(t=>{this.reconnecting&&this.resumable&&t.begin()}))}loadReconnectController(){return this.reconnectController?Promise.resolve(this.reconnectController):(this.reconnectControllerPromise||(this.reconnectControllerPromise=aC().then(({createReconnectController:t})=>{let n=t(this.buildReconnectHost());return this.reconnectController=n,n}),this.reconnectControllerPromise.catch(()=>{this.reconnectControllerPromise=null})),this.reconnectControllerPromise)}buildReconnectHost(){let t=this;return{get config(){return t.config},getResumable:()=>t.resumable,clearResumable:()=>t.clearResumable(),getStatus:()=>t.status,setStatus:n=>t.setStatus(n),setStreaming:n=>t.setStreaming(n),setReconnecting:n=>{t.reconnecting=n},setAbortController:n=>{t.abortController=n},getMessages:()=>t.messages,notifyMessagesChanged:()=>t.callbacks.onMessagesChanged([...t.messages]),resumeConnect:(n,o,r)=>t.connectStream(n,{assistantMessageId:o,allowReentry:!0,preserveAssistantId:!0,seedContent:r}),appendMessage:n=>t.appendMessage(n),nextSequence:()=>t.nextSequence(),emitReconnect:n=>t.callbacks.onReconnect?.(n),buildErrorContent:n=>im(new Error(n),t.config.errorMessage),onError:n=>t.callbacks.onError?.(n)}}reconnectNow(){if(this.reconnecting){this.reconnectController?.wake();return}this.beginReconnect()}resumeFromHandle(t){if(typeof this.config.reconnectStream!="function"||this.reconnecting)return;let n=this.reopenTrailingAssistant();n||(n=jr(),this.appendMessage({id:n,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:this.nextSequence()})),this.activeAssistantMessageId=n,this.agentExecution||(this.agentExecution={executionId:t.executionId,agentId:"",agentName:"",status:"running",currentIteration:0,maxTurns:0}),this.resumable={executionId:t.executionId,lastEventId:t.after,assistantMessageId:n,status:"running"},this.beginReconnect()}reopenTrailingAssistant(){for(let t=this.messages.length-1;t>=0;t--){let n=this.messages[t];if(n.role==="assistant"&&!n.variant)return n.streaming=!0,this.callbacks.onMessagesChanged([...this.messages]),n.id;if(n.role==="user")break}return null}teardownReconnect(){this.reconnecting=!1,this.reconnectController?.teardown(),this.clearResumable()}clearResumable(){this.executionStateTimer&&(clearTimeout(this.executionStateTimer),this.executionStateTimer=null);let t=this.resumable!==null;this.resumable=null,t&&this.config.onExecutionState?.(null)}notifyExecutionState(t){let n=this.config.onExecutionState;if(n){if(t){this.executionStateTimer&&(clearTimeout(this.executionStateTimer),this.executionStateTimer=null),n(this.resumable);return}this.executionStateTimer||(this.executionStateTimer=setTimeout(()=>{this.executionStateTimer=null,this.config.onExecutionState?.(this.resumable)},500))}}getResumableHandle(){return this.resumable}setStatus(t){this.status!==t&&(this.status=t,this.callbacks.onStatusChanged(t))}setStreaming(t){if(this.streaming===t)return;let n=this.streaming;this.streaming=t,this.callbacks.onStreamingChanged(t),n&&!t&&this.speakLatestAssistantMessage()}speakLatestAssistantMessage(){let t=this.config.textToSpeech;if(!t?.enabled||!(!t.provider||t.provider==="browser"||t.provider==="runtype"&&t.browserFallback))return;let o=[...this.messages].reverse().find(s=>s.role==="assistant"&&s.content&&!s.voiceProcessing);if(!o)return;if(this.ttsSpokenMessageIds.has(o.id)){this.ttsSpokenMessageIds.delete(o.id);return}let r=om(o.content);r.trim()&&this.readAloud.play(o.id,{text:r,voice:t.voice,rate:t.rate,pitch:t.pitch})}static pickBestVoice(t){return ji(t)}toggleReadAloud(t){let n=this.messages.find(s=>s.id===t);if(!n||n.role!=="assistant")return;let o=om(n.content||"");if(!o.trim())return;let r=this.config.textToSpeech;this.readAloud.toggle(t,{text:o,voice:r?.voice,rate:r?.rate,pitch:r?.pitch})}getReadAloudState(t){return this.readAloud.stateFor(t)}onReadAloudChange(t){return this.readAloud.onChange(t)}stopSpeaking(){this.readAloud.stop(),typeof window<"u"&&"speechSynthesis"in window&&window.speechSynthesis.cancel()}appendMessage(t){let n=this.ensureSequence(t);this.messages=this.sortMessages([...this.messages,n]),this.callbacks.onMessagesChanged([...this.messages])}upsertMessage(t){let n=this.ensureSequence(t),o=this.messages.findIndex(r=>r.id===n.id);if(o===-1){this.appendMessage(n);return}this.messages=this.messages.map((r,s)=>{if(s!==o)return r;let a={...r,...n};if(r.agentMetadata?.askUserQuestionAnswered===!0&&n.agentMetadata&&(a.agentMetadata={...n.agentMetadata,askUserQuestionAnswered:!0,...r.agentMetadata.askUserQuestionAnswers?{askUserQuestionAnswers:r.agentMetadata.askUserQuestionAnswers}:{},awaitingLocalTool:!1}),r.agentMetadata?.suggestRepliesResolved===!0&&n.agentMetadata&&(a.agentMetadata={...a.agentMetadata??n.agentMetadata,suggestRepliesResolved:!0,awaitingLocalTool:!1}),r.approval&&n.approval&&r.approval.id===n.approval.id){let u=r.approval,m=n.approval;a.approval={...u,...m,executionId:m.executionId||u.executionId,toolName:m.toolName||u.toolName,description:m.description||u.description,toolType:m.toolType??u.toolType,reason:m.reason??u.reason,parameters:m.parameters??u.parameters}}let l=n.toolCall?.name,d=n.agentMetadata?.executionId,p=n.toolCall?.id;if(l&&lC(l)&&d&&p&&n.agentMetadata?.awaitingLocalTool===!0){let u=`${d}:${p}`,m=this.webMcpInflightKeys.has(u),y=this.webMcpResolvedKeys.has(u),h=r.toolCall?.name,C=r.agentMetadata?.executionId===d&&r.toolCall?.id===p&&h!==void 0&&lC(h)&&r.toolCall?.status==="complete";(m||y||C)&&(a.agentMetadata={...a.agentMetadata??{},awaitingLocalTool:!1},a.toolCall=r.toolCall,a.streaming=r.streaming)}return a}),this.messages=this.sortMessages(this.messages),this.callbacks.onMessagesChanged([...this.messages])}ensureSequence(t){return t.sequence!==void 0?{...t}:{...t,sequence:this.nextSequence()}}nextSequence(){return this.sequenceCounter++}sortMessages(t){return[...t].sort((n,o)=>{let r=new Date(n.createdAt).getTime(),s=new Date(o.createdAt).getTime();if(!Number.isNaN(r)&&!Number.isNaN(s)&&r!==s)return r-s;let a=n.sequence??0,l=o.sequence??0;return a!==l?a-l:n.id.localeCompare(o.id)})}};var co=require("lucide");var AT={add:e=>Wv(e)},MT=e=>Number.isFinite(e)?Math.min(1,Math.max(0,e)):0,Wd={allowedTypes:mr,maxFileSize:10*1024*1024,maxFiles:4};function ET(){return`attach_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function TT(e){return e==="application/pdf"?co.FileText:e.startsWith("text/")?co.FileText:e.includes("word")?co.FileText:e.includes("excel")||e.includes("spreadsheet")?co.FileSpreadsheet:e==="application/json"?co.FileCode:co.File}var zs=class e{constructor(t={}){this.attachments=[];this.previewsContainer=null;this.pendingAdds=new Map;this.destroyed=!1;this.config={allowedTypes:t.allowedTypes??Wd.allowedTypes,maxFileSize:t.maxFileSize??Wd.maxFileSize,maxFiles:t.maxFiles??Wd.maxFiles,onFileRejected:t.onFileRejected,onAttachmentsChange:t.onAttachmentsChange,adapter:t.adapter}}hasCustomAdapter(){return typeof this.config.adapter?.add=="function"}adapter(){return this.hasCustomAdapter()?this.config.adapter:AT}setPreviewsContainer(t){this.previewsContainer=t}remountPreviews(t){if(this.previewsContainer=t,t){t.innerHTML="";for(let n of this.attachments)this.renderPreview(n)}this.updatePreviewsVisibility()}updateConfig(t){t.allowedTypes!==void 0&&(this.config.allowedTypes=t.allowedTypes.length>0?t.allowedTypes:Wd.allowedTypes),t.maxFileSize!==void 0&&(this.config.maxFileSize=t.maxFileSize),t.maxFiles!==void 0&&(this.config.maxFiles=t.maxFiles),t.onFileRejected!==void 0&&(this.config.onFileRejected=t.onFileRejected),t.onAttachmentsChange!==void 0&&(this.config.onAttachmentsChange=t.onAttachmentsChange),t.adapter!==void 0&&(this.config.adapter=t.adapter)}isReady(){return this.attachments.every(t=>t.status==="ready")}getAttachments(){return[...this.attachments]}getContentParts(){return this.attachments.map(t=>t.contentPart).filter(t=>t!==null)}hasAttachments(){return this.attachments.length>0}count(){return this.attachments.length}async handleFileSelect(t){!t||t.length===0||await this.handleFiles(Array.from(t))}async handleFiles(t){if(!t.length||this.destroyed)return;let n=[];for(let o of t){if(this.attachments.length>=this.config.maxFiles){this.config.onFileRejected?.(o,"count");continue}let r=Ov(o,this.config.allowedTypes,this.config.maxFileSize);if(!r.valid){let a=r.error?.includes("type")?"type":"size";this.config.onFileRejected?.(o,a);continue}let s={id:ET(),file:o,previewUrl:kd(o)?URL.createObjectURL(o):null,contentPart:null,status:this.hasCustomAdapter()?"uploading":"processing",progress:this.hasCustomAdapter()?0:void 0};this.attachments.push(s),this.renderPreview(s),n.push(s)}this.updatePreviewsVisibility(),this.notify(),await Promise.all(n.map(o=>this.runAdd(o)))}async runAdd(t){let n=new AbortController;this.pendingAdds.set(t.id,n);let o=()=>this.destroyed||n.signal.aborted||this.pendingAdds.get(t.id)!==n||!this.attachments.includes(t);try{let r=await this.adapter().add(t.file,{signal:n.signal,onProgress:s=>{o()||t.status!=="uploading"||(t.progress=MT(s),this.updatePreview(t),this.notify())}});if(o())return;t.contentPart=r,t.status="ready",t.progress=void 0,t.error=void 0}catch(r){if(o())return;t.status="error",t.progress=void 0,t.error=r instanceof Error?r.message:String(r??"Upload failed")}finally{this.pendingAdds.get(t.id)===n&&this.pendingAdds.delete(t.id)}this.updatePreview(t),this.notify()}retryAttachment(t){let n=this.attachments.find(o=>o.id===t);!n||n.status!=="error"||this.destroyed||(n.status=this.hasCustomAdapter()?"uploading":"processing",n.progress=this.hasCustomAdapter()?0:void 0,n.error=void 0,this.updatePreview(n),this.notify(),this.runAdd(n))}abortAdd(t){let n=this.pendingAdds.get(t);n&&(this.pendingAdds.delete(t),n.abort())}removeAttachment(t){let n=this.attachments.findIndex(s=>s.id===t);if(n===-1)return;let o=this.attachments[n];this.abortAdd(t),o.previewUrl&&URL.revokeObjectURL(o.previewUrl),this.attachments.splice(n,1);let r=this.previewsContainer?.querySelector(`[data-attachment-id="${t}"]`);r&&r.remove(),o.status==="ready"&&o.contentPart&&this.releasePart(o.contentPart),this.updatePreviewsVisibility(),this.notify()}releasePart(t){let n=this.config.adapter?.remove;if(n)try{let o=n(t,{signal:new AbortController().signal});o&&typeof o.catch=="function"&&o.catch(r=>{console.error("[AttachmentManager] adapter.remove failed:",r)})}catch(o){console.error("[AttachmentManager] adapter.remove failed:",o)}}clearAttachments(){for(let t of this.attachments)this.abortAdd(t.id),t.previewUrl&&URL.revokeObjectURL(t.previewUrl);this.attachments=[],this.pendingAdds.clear(),this.previewsContainer&&(this.previewsContainer.innerHTML=""),this.updatePreviewsVisibility(),this.notify()}destroy(){if(!this.destroyed){this.destroyed=!0;for(let t of this.pendingAdds.values())t.abort();this.pendingAdds.clear();for(let t of this.attachments)t.previewUrl&&URL.revokeObjectURL(t.previewUrl);this.attachments=[],this.previewsContainer=null}}notify(){this.destroyed||this.config.onAttachmentsChange?.(this.getAttachments())}renderPreview(t){if(!this.previewsContainer)return;let n=kd(t.file),o=M("div","persona-attachment-preview persona-relative persona-inline-block");if(o.setAttribute("data-attachment-id",t.id),o.style.width="48px",o.style.height="48px",n&&t.previewUrl){let u=M("img");u.src=t.previewUrl,u.alt=t.file.name,u.className="persona-w-full persona-h-full persona-object-cover persona-rounded-lg persona-border persona-border-gray-200",u.style.width="48px",u.style.height="48px",u.style.objectFit="cover",u.style.borderRadius="8px",o.appendChild(u)}else{let u=M("div");u.style.width="48px",u.style.height="48px",u.style.borderRadius="8px",u.style.backgroundColor="var(--persona-container, #f3f4f6)",u.style.border="1px solid var(--persona-border, #e5e7eb)",u.style.display="flex",u.style.flexDirection="column",u.style.alignItems="center",u.style.justifyContent="center",u.style.gap="2px",u.style.overflow="hidden";let m=TT(t.file.type),y=Ot(m,20,"var(--persona-muted, #6b7280)",1.5);y&&u.appendChild(y);let h=M("span");h.textContent=Bv(t.file.type,t.file.name),h.style.fontSize="8px",h.style.fontWeight="600",h.style.color="var(--persona-muted, #6b7280)",h.style.textTransform="uppercase",h.style.lineHeight="1",u.appendChild(h),o.appendChild(u)}let r=Y("div",{className:"persona-attachment-status",attrs:{"data-persona-attachment-status":""}}),s=M("div","persona-attachment-progress");s.appendChild(M("div","persona-attachment-progress__bar"));let a=Y("button",{className:"persona-attachment-retry",attrs:{type:"button","aria-label":"Retry upload"}}),l=ge("rotate-cw",12,"var(--persona-text-inverse, #ffffff)",2);l?a.appendChild(l):a.textContent="\u21BB",a.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.retryAttachment(t.id)}),r.append(s,a),o.appendChild(r);let d=M("button","persona-attachment-remove persona-absolute persona-flex persona-items-center persona-justify-center");d.type="button",d.setAttribute("aria-label","Remove attachment"),d.style.position="absolute",d.style.top="-4px",d.style.insetInlineEnd="-4px",d.style.width="18px",d.style.height="18px",d.style.borderRadius="50%",d.style.backgroundColor="var(--persona-palette-colors-black-alpha-60, rgba(0, 0, 0, 0.6))",d.style.border="none",d.style.cursor="pointer",d.style.display="flex",d.style.alignItems="center",d.style.justifyContent="center",d.style.padding="0";let p=Ot(co.X,10,"var(--persona-text-inverse, #ffffff)",2);p?d.appendChild(p):(d.textContent="\xD7",d.style.color="var(--persona-text-inverse, #ffffff)",d.style.fontSize="14px",d.style.lineHeight="1"),d.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.removeAttachment(t.id)}),o.appendChild(d),this.previewsContainer.appendChild(o),this.applyPreviewState(o,t)}updatePreview(t){let n=this.previewsContainer?.querySelector(`[data-attachment-id="${t.id}"]`);n&&this.applyPreviewState(n,t)}applyPreviewState(t,n){t.dataset.status=n.status;let o=n.status!=="ready"&&n.status!=="error";t.setAttribute("aria-busy",o?"true":"false"),t.title=n.status==="error"?`${n.file.name}: ${n.error??"Upload failed"}`:n.file.name;let r=t.querySelector(".persona-attachment-progress__bar");if(r){let s=n.progress;r.style.width=typeof s=="number"?`${Math.round(s*100)}%`:""}}updatePreviewsVisibility(){this.previewsContainer&&(this.previewsContainer.style.display=this.attachments.length>0?"flex":"none")}static fromConfig(t,n){return new e({allowedTypes:t?.allowedTypes,maxFileSize:t?.maxFileSize,maxFiles:t?.maxFiles,onFileRejected:t?.onFileRejected,onAttachmentsChange:n,adapter:t?.adapter})}};var cC=(e,t)=>e.length===t.length&&e.every((n,o)=>n===t[o]),PT=(e,t)=>e.length===t.length&&e.every((n,o)=>{let r=t[o];return n.id===r.id&&n.name===r.name&&n.mimeType===r.mimeType&&n.size===r.size&&n.status===r.status&&n.progress===r.progress&&n.error===r.error});function dC(){let e={text:"",attachments:[],mentionRefs:[],selectedModelId:void 0,activeModeIds:[],quote:void 0,pendingSubmission:void 0,preparing:!1,streaming:!1,inputDisabled:!1,sendDisabled:!1},t=new Set,n=null,o=!1,r=!1,s=()=>e.preparing?"preparing":e.streaming?"streaming":"idle",a=()=>{let u=s();return Object.freeze({text:e.text,attachments:Object.freeze(e.attachments.map(m=>Object.freeze({...m}))),mentionRefs:Object.freeze([...e.mentionRefs]),selectedModelId:e.selectedModelId,activeModeIds:Object.freeze([...e.activeModeIds]),quote:e.quote?Object.freeze({...e.quote}):void 0,pendingSubmission:e.pendingSubmission,phase:u,inputDisabled:e.inputDisabled,sendDisabled:u!=="idle"||e.sendDisabled||e.inputDisabled})},l=()=>(n||(n=a()),n),d=()=>{if(o=!1,r||t.size===0)return;let u=l();for(let m of[...t])try{m(u)}catch(y){typeof console<"u"&&console.error("[AgentWidget] composer state listener failed:",y)}},p=()=>{n=null,!(r||o)&&(o=!0,queueMicrotask(d))};return{getState:l,subscribe:u=>(t.add(u),()=>t.delete(u)),setText:u=>{e.text!==u&&(e.text=u,p())},setAttachments:u=>{PT(e.attachments,u)||(e.attachments=[...u],p())},setMentionRefs:u=>{cC(e.mentionRefs,u)||(e.mentionRefs=[...u],p())},setSelectedModelId:u=>{e.selectedModelId!==u&&(e.selectedModelId=u,p())},setActiveModeIds:u=>{cC(e.activeModeIds,u)||(e.activeModeIds=[...u],p())},setQuote:u=>{let m=e.quote;m?.text===u?.text&&m?.messageId===u?.messageId&&m?.sourceLabel===u?.sourceLabel||(e.quote=u?{...u}:void 0,p())},setPendingSubmission:u=>{e.pendingSubmission!==u&&(e.pendingSubmission=u,p())},setPreparing:u=>{e.preparing!==u&&(e.preparing=u,p())},setStreaming:u=>{e.streaming!==u&&(e.streaming=u,p())},setInputDisabled:u=>{e.inputDisabled!==u&&(e.inputDisabled=u,p())},setSendDisabled:u=>{e.sendDisabled!==u&&(e.sendDisabled=u,p())},flush:()=>{o&&d()},destroy:()=>{r=!0,o=!1,t.clear()}}}var Wn=(e,...t)=>{for(let n of t){let o=e.querySelector(n);if(o)return o}return null},pC=(e,t)=>{let n=M("div",e);return n.setAttribute(t,""),n.setAttribute("data-persona-composer-synthesized",""),n.style.display="contents",n};function uC(e,t={}){let n=Wn(e,"[data-persona-composer-form]"),o=Wn(e,"[data-persona-composer-input]");if(!n||!o){let k=`[Persona] composer surface is missing required element(s): ${[!n&&"form",!o&&"input"].filter(Boolean).join(", ")}. Mark them with data-persona-composer-form / data-persona-composer-input.`;if(t.debug&&(n||o))throw new Error(k);return typeof console<"u"&&console.warn(k),null}let r={header:Wn(e,"[data-persona-composer-header]"),body:Wn(e,"[data-persona-composer-body]"),actionsStart:Wn(e,"[data-persona-composer-actions-start]",".persona-widget-composer__left-actions"),actionsEnd:Wn(e,"[data-persona-composer-actions-end]",".persona-widget-composer__right-actions"),actionsRow:Wn(e,"[data-persona-composer-actions]",".persona-widget-composer .persona-flex.persona-items-center.persona-justify-between"),suggestions:Wn(e,"[data-persona-composer-suggestions]",".persona-mb-3.persona-flex.persona-flex-wrap.persona-gap-2"),status:Wn(e,"[data-persona-composer-status]")},s=new Set,a=r.header;a||(s.add("header"),a=pC("persona-widget-composer__header","data-persona-composer-header"),n.parentNode?n.parentNode.insertBefore(a,n):e.appendChild(a));let l=r.body??o.parentElement??n,d=(S,k,B,$,T)=>{if(k)return k;s.add(S);let I=pC(B,$);return T.appendChild(I),I},p=d("actionsStart",r.actionsStart,"persona-widget-composer__left-actions","data-persona-composer-actions-start",n),u=d("actionsEnd",r.actionsEnd,"persona-widget-composer__right-actions","data-persona-composer-actions-end",n),m=d("suggestions",r.suggestions,"persona-widget-composer__suggestions","data-persona-composer-suggestions",e),y=d("status",r.status,"persona-widget-composer__status","data-persona-composer-status",e),h=[],C=(S,k)=>S.target===k.target&&S.type===k.type&&S.handler===k.handler,x=Wn(e,"[data-persona-composer-attachment-input]",'input[type="file"]')??void 0;return{footer:e,form:n,input:o,header:a,body:l,actionsStart:p,actionsEnd:u,suggestions:m,status:y,attachmentInput:x,attachmentPreviews:Wn(e,"[data-persona-composer-attachment-previews]",".persona-attachment-previews")??void 0,attachmentButton:Wn(e,"[data-persona-composer-attachment-button]",".persona-attachment-button")??void 0,sendButton:Wn(e,"[data-persona-composer-submit]")??void 0,micButton:Wn(e,"[data-persona-composer-mic]")??void 0,synthesized:s,found:r,addListener:(S,k,B,$)=>{S.addEventListener(k,B,$),h.push({target:S,type:k,handler:B,options:$})},removeListener:(S,k,B,$)=>{S.removeEventListener(k,B,$),h=h.filter(T=>!C(T,{target:S,type:k,handler:B}))},destroy:()=>{for(let S of h)S.target.removeEventListener(S.type,S.handler,S.options);h=[]}}}var jt={idle:"Online",connecting:"Connecting\u2026",connected:"Streaming\u2026",error:"Offline",paused:"Connection lost\u2026",resuming:"Reconnecting\u2026"},an=1e5,Vi=an+1;var kT=8,LT=8,lm=10,gC=200,mC=300,fC=0,Bd=e=>Math.max(0,e);function hC(e){e.delayMs!==void 0&&(gC=Bd(e.delayMs)),e.skipDelayMs!==void 0&&(mC=Bd(e.skipDelayMs))}var IT=()=>Date.now()<fC,RT=e=>{fC=e>0?Date.now()+e:0},Od=new WeakMap,dm="data-persona-tooltip-suppressed",HT=e=>typeof e.closest=="function"&&e.closest(`[${dm}]`)!==null;function yC(e){Od.get(e)?.hide()}var bC=e=>e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e,WT=e=>{let t=e.getRootNode?.();return bC(t)?t:e.ownerDocument.body},cm=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),OT=[...["background","foreground","hint-fg","radius","font-size","padding","max-width","shadow","arrow-display"].map(e=>`--persona-tooltip-${e}`),"--persona-font-family","--persona-radius-sm"];function nn(e){Od.get(e.anchor)?.destroy();let{anchor:t,trigger:n=t,text:o,hint:r,enabled:s=!0,gap:a=kT,viewportPadding:l=LT}=e,d=()=>t.ownerDocument,p=()=>d().defaultView??window,u=null,m=null,y=null,h=null,C,x=!1,S=!1,k=!1,B=()=>(typeof o=="function"?o():o).trim(),$=()=>(typeof r=="function"?r():r??"").trim(),T=()=>Bd(e.delayMs??gC),I=()=>Bd(e.skipDelayMs??mC),A=()=>{C!==void 0&&(p().clearTimeout(C),C=void 0)},D=()=>{A();let fe=u!==null;h?.(),h=null,u?.remove(),u=null,m=null,y=null,fe&&RT(I())},Q=()=>{if(!u)return;let fe=d(),Me=p(),ye=t.getBoundingClientRect(),Ne=u.getBoundingClientRect(),lt=fe.documentElement.clientWidth||Me.innerWidth,Ce=fe.documentElement.clientHeight||Me.innerHeight,j=lt-l-Ne.width,Fe=ye.left+ye.width/2-Ne.width/2,$e=cm(Fe,l,j),Se=ye.top-l,Ie=Ce-l-ye.bottom,be=Ne.height+a,ut=Se>=be||Se>=Ie?"top":"bottom",He=ut==="top"?ye.top-a-Ne.height:ye.bottom+a,qt=Ce-l-Ne.height,ct=cm(He,l,qt),rn=ye.left+ye.width/2,An=Math.max(lm,Ne.width-lm),Bt=cm(rn-$e,lm,An);u.dataset.placement=ut,u.style.left=`${$e}px`,u.style.top=`${ct}px`,u.style.setProperty("--persona-tooltip-arrow-x",`${Bt}px`)},le=()=>{if(k||!s||u||!t.isConnected||HT(t))return;let fe=B(),Me=WT(t);if(!fe||!Me)return;let ye=d(),Ne=p();u=ye.createElement("div"),u.className="persona-control-tooltip",u.setAttribute("role","tooltip"),u.dataset.state="measuring",u.style.zIndex=String(Vi);let lt=Ne.getComputedStyle?.(t);if(lt){for(let be of OT){let ut=lt.getPropertyValue(be).trim();ut&&u.style.setProperty(be,ut)}lt.fontFamily&&(u.style.fontFamily=lt.fontFamily)}m=ye.createElement("span"),m.className="persona-control-tooltip__label",m.textContent=fe,u.appendChild(m);let Ce=$();Ce&&(y=ye.createElement("span"),y.className="persona-control-tooltip__hint",y.textContent=Ce,u.appendChild(y));let j=ye.createElement("span");j.className="persona-control-tooltip__arrow",u.appendChild(j),Me.appendChild(u),Q(),u.dataset.state="open";let Fe=()=>{if(!t.isConnected){D();return}m&&(m.textContent=B()),y&&(y.textContent=$()),Q()};Ne.addEventListener("scroll",Fe,!0),Ne.addEventListener("resize",Fe);let $e=t.getRootNode(),Se=bC($e)?$e:ye.documentElement,Ie=typeof MutationObserver>"u"?null:new MutationObserver(()=>{t.isConnected||D()});Ie?.observe(Se,{childList:!0,subtree:!0}),h=()=>{Ne.removeEventListener("scroll",Fe,!0),Ne.removeEventListener("resize",Fe),Ie?.disconnect()}},re=fe=>{if(!(k||u)){if(A(),fe||T()<=0||IT()){le();return}C=p().setTimeout(()=>{C=void 0,le()},T())}},E=()=>{x||S?re(S):D()},_=()=>{let fe=p();(!fe.matchMedia||!fe.matchMedia("(hover: none)").matches)&&(x=!0,E())},W=()=>{x=!1,E()},L=()=>{try{S=t.matches(":focus-visible")}catch{S=!0}E()},X=()=>{S=!1,E()},K=()=>{x=!1,S=!1,D()},de=fe=>{fe.key==="Escape"&&K()};n.addEventListener("mouseenter",_),n.addEventListener("mouseleave",W),t.addEventListener("focus",L),t.addEventListener("blur",X),t.addEventListener("keydown",de),t.addEventListener("click",K);let ue={get isOpen(){return u!==null},show:le,hide:D,reposition:Q,destroy:()=>{k||(k=!0,D(),n.removeEventListener("mouseenter",_),n.removeEventListener("mouseleave",W),t.removeEventListener("focus",L),t.removeEventListener("blur",X),t.removeEventListener("keydown",de),t.removeEventListener("click",K),Od.delete(t))}};return Od.set(t,ue),ue}var vC=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function Ki(e,t){if(!e)return t;if(!t)return e;let n={...e};for(let[o,r]of Object.entries(t)){let s=n[o];vC(s)&&vC(r)?n[o]=Ki(s,r):n[o]=r}return n}var Gn="min(440px, calc(100vw - 24px))",_d="440px",pm="How can I help...",BT={enabled:!0,mountMode:"floating",dock:{side:"right",width:"420px"},title:"Chat Assistant",subtitle:"Here to help you get answers fast",agentIconText:"\u{1F4AC}",agentIconName:"bot",headerIconName:"bot",position:"bottom-right",width:Gn,heightOffset:0,autoExpand:!1,callToActionIconHidden:!1,agentIconSize:"40px",headerIconSize:"40px",closeButtonPaddingX:"0px",closeButtonPaddingY:"0px",callToActionIconName:"arrow-up-right",callToActionIconText:"",callToActionIconSize:"32px",callToActionIconPadding:"5px",callToActionIconColor:void 0,callToActionIconBackgroundColor:void 0,closeButtonBackgroundColor:"transparent",clearChat:{backgroundColor:"transparent",borderColor:"transparent",enabled:!0,placement:"inline",iconName:"refresh-cw",showTooltip:!0,tooltipText:"Clear chat",paddingX:"0px",paddingY:"0px"},headerIconHidden:!1,border:void 0,shadow:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)"},st={apiUrl:"https://api.runtype.com/api/chat/dispatch",clientToken:void 0,agentId:void 0,target:void 0,theme:void 0,darkTheme:void 0,colorScheme:"light",tooltip:{delayMs:200,skipDelayMs:300},launcher:BT,copy:{inputPlaceholder:pm,sendButtonLabel:"Send"},sendButton:{borderWidth:"0px",paddingX:"12px",paddingY:"10px",borderColor:void 0,useIcon:!0,iconText:"\u2191",showTooltip:!0,tooltipText:"Send message",iconName:"send"},statusIndicator:{visible:!0,idleText:"Online",connectingText:"Connecting\u2026",connectedText:"Streaming\u2026",errorText:"Offline"},voiceRecognition:{enabled:!0,pauseDuration:2e3,iconName:"mic",borderWidth:"0px",iconColor:void 0,backgroundColor:"transparent",borderColor:"transparent",recordingIconColor:void 0,recordingBackgroundColor:void 0,recordingBorderColor:"transparent",showTooltip:!0,tooltipText:"Start voice recognition"},features:{showReasoning:!0,showToolCalls:!0,scrollToBottom:{enabled:!0,iconName:"arrow-down",label:""},scrollBehavior:{mode:"anchor-top",anchorTopOffset:16,showActivityWhilePinned:!0},toolCallDisplay:{collapsedMode:"tool-call",activePreview:!1,grouped:!1,groupedMode:"stack",previewMaxLines:3,expandable:!0,loadingAnimation:"none"},reasoningDisplay:{activePreview:!1,previewMaxLines:3,expandable:!0,loadingAnimation:"none"},streamAnimation:{type:"none",placeholder:"none",speed:120,duration:1800},askUserQuestion:{enabled:!0,slideInMs:180,freeTextLabel:"Other\u2026",freeTextPlaceholder:"Type your answer\u2026",submitLabel:"Send"},history:{enabled:!1,presentation:"panel",showScopeStatus:!0,showDelete:!0,showDeleteAll:!0}},suggestionChips:["Show me what you can help with","Walk me through getting started","Answer a question about this page"],suggestionChipsConfig:{fontFamily:"sans-serif",fontWeight:"500",paddingX:"12px",paddingY:"6px"},layout:{header:{layout:"default",showIcon:!0,showTitle:!0,showSubtitle:!0,showCloseButton:!0,showClearChat:!0},messages:{layout:"bubble",avatar:{show:!1,position:"left"},timestamp:{show:!1,position:"below"},groupConsecutive:!1},slots:{}},markdown:{options:{gfm:!0,breaks:!0},disableDefaultStyles:!1},messageActions:{enabled:!0,showCopy:!0,showUpvote:!1,showDownvote:!1,visibility:"hover",align:"right",layout:"pill-inside"},debug:!1};function CC(e,t){if(!(!e&&!t))return e?t?Ki(e,t):e:t}function Gi(e){return e?{...st,...e,theme:CC(st.theme,e.theme),darkTheme:CC(st.darkTheme,e.darkTheme),launcher:{...st.launcher,...e.launcher,dock:{...st.launcher?.dock,...e.launcher?.dock},clearChat:{...st.launcher?.clearChat,...e.launcher?.clearChat}},tooltip:{...st.tooltip,...e.tooltip},copy:{...st.copy,...e.copy},sendButton:{...st.sendButton,...e.sendButton},statusIndicator:{...st.statusIndicator,...e.statusIndicator},voiceRecognition:{...st.voiceRecognition,...e.voiceRecognition},features:(()=>{let t=st.features?.artifacts,n=e.features?.artifacts,o=st.features?.scrollToBottom,r=e.features?.scrollToBottom,s=st.features?.scrollBehavior,a=e.features?.scrollBehavior,l=st.features?.streamAnimation,d=e.features?.streamAnimation,p=st.features?.askUserQuestion,u=e.features?.askUserQuestion,m=st.features?.history,y=e.features?.history,h=t===void 0&&n===void 0?void 0:{...t,...n,layout:{...t?.layout,...n?.layout}},C=o===void 0&&r===void 0?void 0:{...o,...r},x=s===void 0&&a===void 0?void 0:{...s,...a},S=l===void 0&&d===void 0?void 0:{...l,...d},k=p===void 0&&u===void 0?void 0:{...p,...u,styles:{...p?.styles,...u?.styles}},B=m===void 0&&y===void 0?void 0:{...m,...y,copy:{...m?.copy,...y?.copy}};return{...st.features,...e.features,...C!==void 0?{scrollToBottom:C}:{},...x!==void 0?{scrollBehavior:x}:{},...h!==void 0?{artifacts:h}:{},...S!==void 0?{streamAnimation:S}:{},...k!==void 0?{askUserQuestion:k}:{},...B!==void 0?{history:B}:{}}})(),suggestionChips:e.suggestionChips??st.suggestionChips,suggestionChipsConfig:{...st.suggestionChipsConfig,...e.suggestionChipsConfig},layout:{...st.layout,...e.layout,header:{...st.layout?.header,...e.layout?.header},messages:{...st.layout?.messages,...e.layout?.messages,avatar:{...st.layout?.messages?.avatar,...e.layout?.messages?.avatar},timestamp:{...st.layout?.messages?.timestamp,...e.layout?.messages?.timestamp}},slots:{...st.layout?.slots,...e.layout?.slots}},markdown:{...st.markdown,...e.markdown,options:{...st.markdown?.options,...e.markdown?.options}},messageActions:{...st.messageActions,...e.messageActions}}:st}function um(e){let t=e.ownerDocument?.defaultView;if(!t?.getComputedStyle)return 20;let n=t.getComputedStyle(e).lineHeight;if(!n||!n.trim().endsWith("px"))return 20;let o=parseFloat(n);return Number.isFinite(o)&&o>0?o:20}function Dd(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e>0?e:t}function wC(e,t){e.style.maxHeight=`${t*um(e)}px`,e.style.overflowY="auto"}function yl(e){let t=e?.ownerDocument?.defaultView??(typeof window<"u"?window:null);if(!t||typeof t.matchMedia!="function")return!1;try{return t.matchMedia("(pointer: coarse)").matches===!0}catch{return!1}}function xC(e){return e.insertNewlineOnTouchEnter===!0&&e.coarsePointer===!0}function SC(e,t){if(e.key!=="Enter"||e.shiftKey||e.isComposing)return!1;let n=e.metaKey===!0||e.ctrlKey===!0,o=t.submitKey??"enter";return o==="none"?!1:o==="mod-enter"?n:n||!xC(t)}function _T(e){return(e.submitKey??"enter")!=="enter"||xC(e)?"enter":"send"}function Nd(e,t){e.setAttribute("enterkeyhint",_T(t))}function Fd(e,t){let n=t?.autocomplete;e.setAttribute("autocomplete",typeof n=="string"&&n?n:"off");let o=(r,s)=>{s===void 0?e.removeAttribute(r):e.setAttribute(r,s)};o("autocapitalize",typeof t?.autocapitalize=="string"?t.autocapitalize:void 0),o("spellcheck",typeof t?.spellcheck=="boolean"?String(t.spellcheck):void 0),o("inputmode",typeof t?.inputmode=="string"&&t.inputmode?t.inputmode:void 0),o("aria-label",typeof t?.ariaLabel=="string"&&t.ariaLabel?t.ariaLabel:void 0)}function gm(e){return e===!0?{disabled:!0}:!e||typeof e!="object"?{disabled:!1}:{disabled:!0,reason:typeof e.reason=="string"&&e.reason?e.reason:void 0}}var Qn="persona-composer-control",Co="persona-composer-control--glyph",fm=40,vn=24,$d=(e,t,n)=>{let o=e.ownerDocument?.defaultView;if(!o)return;let r=o.getComputedStyle(e);for(let s of n){let a=r.getPropertyValue(s).trim();a?t.style.setProperty(s,a):t.style.removeProperty(s)}},Ud=(e,t)=>{let n=M("textarea");n.setAttribute("data-persona-composer-input",""),n.placeholder=e?.copy?.inputPlaceholder??pm,n.dir="auto",Nd(n,{submitKey:e?.composer?.submitKey,insertNewlineOnTouchEnter:e?.composer?.insertNewlineOnTouchEnter,coarsePointer:yl(n)}),Fd(n,e?.composer?.inputAttributes),n.className="persona-w-full persona-min-h-[24px] persona-resize-none persona-border-none persona-bg-transparent persona-text-sm persona-text-persona-text focus:persona-outline-none focus:persona-border-none persona-composer-textarea",n.rows=1,n.style.fontFamily='var(--persona-input-font-family, var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif))',n.style.fontWeight="var(--persona-input-font-weight, var(--persona-font-weight, 400))";let o=Dd(e?.composer?.maxLines,t?.defaultMaxLines??3),r=`${o*20}px`;n.style.maxHeight=r,n.style.overflowY="auto";let s=()=>{let l=n.style.maxHeight;if(l!==r){let p=parseFloat(l);if(Number.isFinite(p)&&p>0)return p}let d=o*um(n);return r=`${d}px`,n.style.maxHeight=r,d},a=()=>{n.addEventListener("input",()=>{n.style.height="auto";let l=Math.min(n.scrollHeight,s());n.style.height=`${l}px`})};return n.style.border="none",n.style.outline="none",n.style.borderWidth="0",n.style.borderStyle="none",n.style.borderColor="transparent",n.addEventListener("focus",()=>{n.style.border="none",n.style.outline="none",n.style.borderWidth="0",n.style.borderStyle="none",n.style.borderColor="transparent",n.style.boxShadow="none"}),n.addEventListener("blur",()=>{n.style.border="none",n.style.outline="none"}),{textarea:n,attachAutoResize:a}},NT="[data-persona-glyph-stack]",hm=(e,t,n="send")=>{let o=Y("span",{className:"persona-composer-glyph-stack",attrs:{"data-mode":n,"data-persona-glyph-stack":""}});return e.setAttribute("data-glyph","send"),t.setAttribute("data-glyph","stop"),o.append(e,t),o},jd=e=>{let t=e?.sendButton??{},n=t.useIcon??!1,o=t.iconText??"\u2191",r=t.iconName,s=t.stopIconName??"square",a=t.tooltipText??"Send message",l=t.stopTooltipText??"Stop generating",d=e?.copy?.sendButtonLabel??"Send",p=e?.copy?.stopButtonLabel??"Stop",u=t.showTooltip??!1,m=t.size,y=parseFloat(m??"")||fm,h=t.backgroundColor,C=t.textColor,x=M("div","persona-send-button-wrapper"),S=Y("button",{className:bn("persona-rounded-button disabled:persona-opacity-50 persona-cursor-pointer",n?`persona-flex persona-items-center persona-justify-center ${Qn}`:"persona-bg-persona-accent persona-px-4 persona-py-2 persona-text-sm persona-font-semibold",n&&!h&&"persona-bg-persona-primary",!n&&!C&&"persona-text-white"),attrs:{type:"submit","data-persona-composer-submit":"","data-persona-send-mode":"send"},style:{width:n?m:void 0,height:n?m:void 0,minWidth:n?m:void 0,minHeight:n?m:void 0,fontSize:n?"18px":void 0,lineHeight:n?"1":void 0,color:n?C||"var(--persona-send-button-fg, var(--persona-button-primary-fg, #ffffff))":C||void 0,backgroundColor:n&&h||void 0,borderWidth:t.borderWidth||void 0,borderStyle:t.borderWidth?"solid":void 0,borderColor:t.borderColor||void 0,paddingLeft:n?"0":t.paddingX||void 0,paddingRight:n?"0":t.paddingX||void 0,paddingTop:n?"0":t.paddingY||void 0,paddingBottom:n?"0":t.paddingY||void 0}}),k=null,B=null,$=null;if(n){let A=parseFloat(t.iconSize??"")||Math.round(y*.5),D=t.iconStrokeWidth??2,Q=C?.trim()||"currentColor";r&&(k=ge(r,A,Q,D)),B=ge(s,A,Q,D),k&&B?($=hm(k,B),S.appendChild($)):k?S.appendChild(k):(S.textContent=o,B=null)}else S.textContent=d;S.setAttribute("aria-label",a),x.appendChild(S),nn({anchor:S,trigger:x,text:()=>S.getAttribute("aria-label")??"",enabled:u});let T="send";return{button:S,wrapper:x,setMode:A=>{if(A===T)return;T=A;let D=A==="stop"?l:a;S.setAttribute("aria-label",D),S.setAttribute("data-persona-send-mode",A),n?(S.querySelector(NT)??$)?.setAttribute("data-mode",A):S.textContent=A==="stop"?p:d},glyphStack:$}},Qi=e=>{let t=e?.voiceRecognition??{};if(!(t.enabled===!0))return null;let o=typeof window<"u"&&(typeof window.webkitSpeechRecognition<"u"||typeof window.SpeechRecognition<"u"),r=t.provider?.type==="runtype",s=t.provider?.type==="custom";if(!(o||r||s))return null;let l=t.iconName??"mic",d=t.iconSize,p=parseFloat(d??"")||vn,u=t.backgroundColor??e?.sendButton?.backgroundColor,m=t.iconColor??e?.sendButton?.textColor,y=M("div","persona-send-button-wrapper"),h=Y("button",{className:bn("persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer",Qn,!d&&Co),attrs:{type:"button","data-persona-composer-mic":"","data-state":"idle","aria-label":t.tooltipText??"Start voice recognition"},style:{width:d,height:d,minWidth:d,minHeight:d,fontSize:"18px",lineHeight:"1",color:m||"var(--persona-text, #111827)",backgroundColor:u||void 0,borderWidth:t.borderWidth||void 0,borderStyle:t.borderWidth?"solid":void 0,borderColor:t.borderColor||void 0,paddingLeft:t.paddingX||void 0,paddingRight:t.paddingX||void 0,paddingTop:t.paddingY||void 0,paddingBottom:t.paddingY||void 0}}),x=ge(l,p,m||"currentColor",1.5);x?h.appendChild(x):h.textContent="\u{1F3A4}",y.appendChild(h);let S=t.tooltipText??"Start voice recognition",k=t.showTooltip??!1;return nn({anchor:h,trigger:y,text:()=>h.getAttribute("aria-label")??S,enabled:k}),{button:h,wrapper:y}},qd=e=>{let t=e?.attachments??{};if(t.enabled!==!0)return null;let n=M("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2");n.setAttribute("data-persona-composer-attachment-previews",""),n.style.display="none";let o=M("input");o.type="file",o.setAttribute("data-persona-composer-attachment-input",""),o.accept=(t.allowedTypes??mr).join(","),o.multiple=(t.maxFiles??4)>1,o.style.display="none",o.setAttribute("aria-label","Attach files");let r=t.buttonIconName??"paperclip",s=M("div","persona-send-button-wrapper"),a=Y("button",{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-attachment-button ${Qn} ${Co}`,attrs:{type:"button","data-persona-composer-attachment-button":"","aria-label":t.buttonTooltipText??"Attach file"},style:{fontSize:"18px",lineHeight:"1"}}),l=ge(r,vn,"currentColor",1.5);l?a.appendChild(l):a.textContent="\u{1F4CE}",a.addEventListener("click",p=>{p.preventDefault(),o.click()}),s.appendChild(a);let d=t.buttonTooltipText??"Attach file";return nn({anchor:a,trigger:s,text:()=>a.getAttribute("aria-label")??d}),{button:a,wrapper:s,input:o,previewsContainer:n}},zd=e=>{let t=e?.statusIndicator??{},n=t.align==="left"?"persona-text-left":t.align==="center"?"persona-text-center":"persona-text-right",o=M("div",`persona-mt-2 ${n} persona-text-xs persona-text-persona-muted`);o.setAttribute("data-persona-composer-status","");let r=t.visible??!0;o.style.display=r?"":"none";let s=t.idleText??"Online";if(t.idleLink){let a=M("a");a.href=t.idleLink,a.target="_blank",a.rel="noopener noreferrer",a.textContent=s,a.style.color="inherit",a.style.textDecoration="none",o.appendChild(a)}else o.textContent=s;return o},Vd=()=>Y("div",{className:"persona-mb-3 persona-flex persona-flex-wrap persona-gap-2",attrs:{"data-persona-composer-suggestions":""}});function FT(e){let t=e.getRootNode?.();return t instanceof ShadowRoot?t:(e.ownerDocument??document).body}function Kd(e){let{anchor:t,content:n,placement:o="bottom-start",offset:r=6,matchAnchorWidth:s=!1,horizontalOffset:a,verticalOffset:l,zIndex:d=2147483e3,onOpen:p,onDismiss:u}=e,m=e.container??FT(t),y=!1,h=null,C=()=>{if(!y)return;let k=t.getBoundingClientRect();n.style.position="fixed",s&&(n.style.minWidth=`${k.width}px`),a&&(n.style.maxWidth=`${k.width}px`);let B=n.getBoundingClientRect(),$=l?.()??null,T=$!=null?k.top+$:k.top,I=o==="top-start"||o==="top-end"?T-r-B.height:k.bottom+r,D=o==="bottom-end"||o==="top-end"?k.right-B.width:k.left,Q=a?.()??null;if(Q!=null){let le=Math.max(k.left,k.right-B.width);D=Math.min(Math.max(k.left+Q,k.left),le)}n.style.top=`${I}px`,n.style.left=`${D}px`},x=()=>{y&&(y=!1,h&&(h(),h=null),n.remove())},S=()=>{if(y)return;y=!0,d!=null&&(n.style.zIndex=String(d)),m.appendChild(n),C();let k=(t.ownerDocument??document).defaultView??window,B=t.ownerDocument??document,$=()=>{if(!t.isConnected){x(),u?.("anchor-removed");return}C()},T=A=>{let D=typeof A.composedPath=="function"?A.composedPath():[];D.includes(n)||D.includes(t)||(x(),u?.("outside"))},I=k.setTimeout(()=>{B.addEventListener("pointerdown",T,!0)},0);k.addEventListener("scroll",$,!0),k.addEventListener("resize",$),h=()=>{k.clearTimeout(I),B.removeEventListener("pointerdown",T,!0),k.removeEventListener("scroll",$,!0),k.removeEventListener("resize",$)},p?.()};return{get isOpen(){return y},open:S,close:x,toggle:()=>y?x():S(),reposition:C,destroy:x}}var $T='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',UT=["--persona-components-composer-overflowMenu-background","--persona-components-composer-overflowMenu-borderColor","--persona-components-composer-overflowMenu-borderRadius","--persona-components-composer-overflowMenu-foreground","--persona-components-composer-overflowMenu-shadow"],ym="data-persona-menu-focus",jT=new Set(["ArrowDown","ArrowUp","Home","End"]);function AC(e){return e.getAttribute("role")==="menuitem"?e:e.querySelector($T)??e}var qT=e=>e.disabled===!0||e.getAttribute("aria-disabled")==="true";function MC(e){let t=e.label,n=!1,o=M("div","persona-send-button-wrapper"),r=Y("button",{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center persona-cursor-pointer persona-composer-action-button persona-composer-overflow-trigger ${Qn} ${Co}`,attrs:{type:"button","aria-haspopup":"menu","aria-expanded":"false","data-persona-composer-overflow-trigger":""}});o.appendChild(r);let s=Y("div",{className:"persona-composer-overflow-menu",attrs:{role:"menu",tabindex:"-1","data-persona-composer-overflow-menu":""}}),a=()=>{let L=e.getButtonSize?.()??"";r.style.width=L,r.style.height=L,r.style.minWidth=L,r.style.minHeight=L,r.style.lineHeight="1",r.replaceChildren();let X=ge("plus",vn,"currentColor",1.5);X?r.appendChild(X):r.textContent="+"},l=()=>{r.setAttribute("aria-label",t),r.setAttribute("title",t),s.setAttribute("aria-label",t)};l(),a();let d=[],p=-1,u=!1,m=()=>{let X=s.getRootNode().activeElement;return X instanceof HTMLElement?X:null},y=()=>{let L=m();for(let X of d){let K=!!L&&AC(X)===L;X.toggleAttribute(ym,K&&u)}},h=()=>d.filter(L=>L.isConnected||s.contains(L)).map(AC).filter(L=>!qT(L)),C=(L,X)=>{L.forEach((K,de)=>{K.setAttribute("tabindex",de===X?"0":"-1")})},x=L=>{let X=h();if(X.length===0)return;let K=(L%X.length+X.length)%X.length;p=K,C(X,K),X[K].focus(),y()},S=()=>o.ownerDocument??document,k=null,B=null,$=null,T=()=>{k&&(S().removeEventListener("focusin",k,!0),k=null)},I=()=>{B&&(s.removeEventListener("focusin",B),B=null),$&&(s.removeEventListener("pointerdown",$,!0),$=null)},A=null,D=()=>(A||(A=Kd({anchor:r,content:s,placement:"top-start",offset:6,onDismiss:()=>{r.setAttribute("aria-expanded","false"),T()}})),A),Q=()=>A?.isOpen===!0,le=(L=!1)=>{if(Q()){A?.close(),r.setAttribute("aria-expanded","false"),T(),I(),p=-1,u=!1;for(let X of d)X.removeAttribute(ym);L&&r.focus()}},re=(L=0,X=!1)=>{if(n||Q())return;u=X,$d(r,s,UT),D().open(),r.setAttribute("aria-expanded","true");let K=h();C(K,-1),x(L<0?K.length-1:L),k=de=>{let ue=typeof de.composedPath=="function"?de.composedPath():[];ue.includes(s)||ue.includes(o)||le()},S().addEventListener("focusin",k,!0),B=()=>y(),s.addEventListener("focusin",B),$=()=>{u=!1},s.addEventListener("pointerdown",$,!0)},E=L=>{L.preventDefault(),L.stopPropagation(),Q()?le(!0):re(0)},_=L=>{if(L.key==="ArrowDown"||L.key==="Enter"||L.key===" "){L.preventDefault(),u=!0,Q()?x(0):re(0,!0);return}L.key==="ArrowUp"&&(L.preventDefault(),u=!0,Q()?x(-1):re(-1,!0))},W=L=>{switch(jT.has(L.key)&&(u=!0),L.key){case"ArrowDown":L.preventDefault(),x(p+1);return;case"ArrowUp":L.preventDefault(),x(p-1);return;case"Home":L.preventDefault(),x(0);return;case"End":L.preventDefault(),x(h().length-1);return;case"Escape":L.preventDefault(),L.stopPropagation(),le(!0);return;case"Tab":le(!0);return;default:}};return r.addEventListener("click",E),r.addEventListener("keydown",_),s.addEventListener("keydown",W),{trigger:o,triggerButton:r,panel:s,setItems:L=>{for(let K of d)L.includes(K)||K.removeAttribute(ym);if(d=[...L],!Q())return;let X=h();C(X,Math.min(p,X.length-1)),y()},isOpen:Q,open:()=>re(0),close:le,setLabel:L=>{L!==t&&(t=L,l())},applyButtonSize:a,destroy:()=>{n=!0,T(),I(),r.removeEventListener("click",E),r.removeEventListener("keydown",_),s.removeEventListener("keydown",W),A?.destroy(),A=null,o.remove(),s.remove(),d=[]}}}var qo={mention:100,attachment:200,mic:800,overflow:900,send:1e3,custom:500},EC="data-persona-composer-action",bm="data-persona-composer-disable-when-streaming",zT="core:overflow",VT=e=>e==="core:attachment"?"attachments":e.startsWith("core:mention")?"mentions":null;function KT(e,t){if(e===void 0)return null;if(typeof e=="number")return Number.isFinite(e)?e:null;let n=Number.parseFloat(e);if(/^\s*-?\d*\.?\d+(px)?\s*$/.test(e)&&Number.isFinite(n))return n;let o=M("div");o.style.position="absolute",o.style.visibility="hidden",o.style.pointerEvents="none",o.style.height="0",o.style.width=e,t.appendChild(o);let r=o.getBoundingClientRect().width;return o.remove(),Number.isFinite(r)&&r>0?r:Number.isFinite(n)?n:null}function vm(e){let t=e.clientWidth;if(!t)return 0;let n=e.ownerDocument?.defaultView;if(!n?.getComputedStyle)return t;let o=n.getComputedStyle(e),r=(Number.parseFloat(o.paddingLeft)||0)+(Number.parseFloat(o.paddingRight)||0);return Math.max(0,t-r)}var TC=(e,t)=>{!e||typeof console>"u"||console.warn(t)},GT=(e,t)=>t.includes(":")?t:`${e}:${t}`;function QT(e){let{debug:t}=e,n=[],o=new Map,r=0,s=l=>{let d=o.get(l.id);if(d){TC(t,`[Persona] composer action "${l.id}" is already contributed by ${PC(d)}; the ${PC(l)} copy is ignored.`);return}o.set(l.id,l),n.push(l)};for(let l of e.builtIns)s({id:l.id,placement:l.placement,presentation:"bar",order:l.order,sequence:r++,source:"core",builtIn:l});let a=(l,d,p)=>{let u=p?GT(p,l.id):l.id,m=l.order??qo.custom;l.placement==="end"&&m>=qo.send&&(TC(t,`[Persona] composer action "${u}" ordered at ${m} would render after send; clamped to ${qo.send-1}.`),m=qo.send-1),s({id:u,placement:l.placement,presentation:l.presentation??"bar",order:m,sequence:r++,source:d,pluginId:p,action:l})};for(let l of e.configActions??[])a(l,"config");for(let l of e.plugins){if(!l.contributeComposerActions)continue;let d;try{d=l.contributeComposerActions(e.contributionContext)}catch(p){typeof console<"u"&&console.error(`[Persona] plugin "${l.id}" contributeComposerActions failed:`,p);continue}for(let p of d??[])a(p,"plugin",l.id)}return n.sort((l,d)=>l.order===d.order?l.sequence-d.sequence:l.order-d.order)}var PC=e=>e.source==="plugin"?`plugin "${e.pluginId}"`:e.source==="config"?"composer.actions":"a core built-in",kC=(e,t,n)=>e===void 0?n:typeof e=="function"?e(t)===!0:e===!0,YT=e=>e.phase==="streaming"||e.text.trim().length>0||e.attachments.length>0;function XT(e,t){if(!e||e==="always")return!0;let n=YT(t);return e==="when-text"?n:!n}var Yr=e=>e.kind==="custom",Cm=e=>e instanceof HTMLButtonElement?e:e.querySelector("button")??e,JT=e=>{let t=Cm(e);return t.getAttribute("aria-label")?.trim()||t.getAttribute("title")?.trim()||""},ZT='.persona-control-tooltip, [role="tooltip"], .persona-sr-only, [hidden], [aria-hidden="true"]';function eP(e){let t="",n=o=>{if(o.nodeType===Node.TEXT_NODE){t+=o.nodeValue??"";return}if(o.nodeType!==Node.ELEMENT_NODE)return;let r=o;typeof r.matches=="function"&&r.matches(ZT)||o.childNodes.forEach(n)};return n(e),t.trim()}var tP=e=>eP(e).length===0;function LC(e){let t=new Map,n=[],o=!1,r=()=>e.getButtonSize?.(),s=(E,_)=>{let W=E.button;if(!W)return;W.setAttribute("role","menuitem"),W.setAttribute("tabindex","-1"),W.className="persona-composer-overflow-menu__item";for(let K of["width","height","minWidth","minHeight","fontSize","color","backgroundColor"])W.style[K]="";W.style.lineHeight="1",_.tooltipText?W.setAttribute("title",_.tooltipText):W.removeAttribute("title"),W.replaceChildren();let L=M("span","persona-composer-overflow-menu__icon");if(_.iconName){let K=ge(_.iconName,16,"currentColor",1.5);K&&L.appendChild(K)}let X=M("span","persona-composer-overflow-menu__label");X.textContent=_.shortLabel??_.label,W.append(L,X)},a=(E,_)=>{let W=E.button;if(!W)return;if(W.setAttribute("aria-label",_.label),_.pressed===void 0?W.removeAttribute("aria-pressed"):W.setAttribute("aria-pressed",_.pressed?"true":"false"),W.toggleAttribute(bm,_.disableWhenStreaming===!0),E.mode==="menu"){E.tooltip?.destroy(),E.tooltip=void 0,s(E,_);return}W.removeAttribute("role"),W.removeAttribute("tabindex"),W.removeAttribute("title");let L=r(),X=!!_.shortLabel;if(W.className=bn("persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-composer-action-button",Qn,Co,X&&"persona-composer-action-button--text persona-gap-1 persona-text-sm"),W.style.width=L&&!X?L:"",W.style.height=L??"",W.style.minWidth=L&&!X?L:"",W.style.minHeight=L??"",W.style.fontSize=X?"":"18px",W.style.lineHeight="1",W.style.color=_.iconColor??"",W.style.backgroundColor=_.backgroundColor??"",W.replaceChildren(),_.iconName){let K=ge(_.iconName,vn,"currentColor",1.5);K&&W.appendChild(K)}if(X){let K=M("span","persona-composer-action-button__label");K.textContent=_.shortLabel,W.appendChild(K)}else W.firstChild||(W.textContent=_.label);E.tooltip?.destroy(),E.tooltip=nn({anchor:W,trigger:E.element,text:()=>_.tooltipText??_.label,enabled:!!_.tooltipText})},l=(E,_)=>{let W=E.action,L=Y("button",{attrs:{type:"button"}}),X=L;if(_==="bar"){let ue=M("div","persona-send-button-wrapper");ue.appendChild(L),X=ue}X.setAttribute(EC,E.id);let K={resolved:E,element:X,button:L,owned:!0,managed:!0,busy:!1,visible:!0,mode:_},de=ue=>{if(ue.preventDefault(),ue.stopPropagation(),K.busy||L.disabled)return;let fe=K.resolved.action;K.mode==="menu"&&h?.close(!0);let Me;try{Me=fe.onSelect(e.actionContext,ue)}catch(ye){e.reportError(ye,{actionId:K.resolved.id});return}!Me||typeof Me.then!="function"||(K.busy=!0,L.setAttribute("aria-busy","true"),Me.catch(ye=>{e.reportError(ye,{actionId:K.resolved.id})}).finally(()=>{K.busy=!1,L.removeAttribute("aria-busy")}))};return L.addEventListener("click",de),K.detach=()=>L.removeEventListener("click",de),a(K,W),K},d=E=>{let _=E.action,W;try{W=_.render({...e.actionContext,id:E.id,action:_})}catch(L){return e.reportError(L,{actionId:E.id}),null}return W?.element?(W.element.setAttribute(EC,E.id),W.element.toggleAttribute(bm,_.disableWhenStreaming===!0),{resolved:E,element:W.element,owned:!0,managed:!0,destroy:W.destroy,busy:!1,visible:!0,mode:"bar"}):null},p=(E,_)=>{if(E.builtIn){let L=E.builtIn.element;return L?{resolved:E,element:L,owned:!1,managed:E.builtIn.managed===!0,busy:!1,visible:!0,mode:"bar"}:null}let W=E.action;return W?Yr(W)?d(E):l(E,_):null},u=E=>{if(E.detach?.(),E.tooltip?.destroy(),E.detachMenuSlot?.(),E.detachMenuSlot=void 0,E.menuLabel?.remove(),E.menuLabel=void 0,E.menuSlot?.remove(),E.menuSlot=void 0,E.owned){try{E.destroy?.()}catch(_){e.reportError(_,{actionId:E.resolved.id})}E.element.remove()}},m=(E,_)=>{for(let W=0;W<_.length;W++){let L=_[W];if(!L.managed)continue;let X=null;for(let K=W+1;K<_.length;K++){let de=_[K];if(!de.managed&&de.element.parentElement===E){X=de.element;break}}X?(L.element.parentElement!==E||L.element.nextSibling!==X)&&E.insertBefore(L.element,X):E.lastChild!==L.element&&E.appendChild(L.element)}},y=(E,_)=>{if(E.button){E.button.disabled=_;return}if(!E.owned)return;let W=E.element;W.toggleAttribute("data-disabled",_),W.setAttribute("aria-disabled",_?"true":"false");let L=W instanceof HTMLButtonElement||W instanceof HTMLSelectElement||W instanceof HTMLInputElement||W instanceof HTMLTextAreaElement?W:W.querySelector("button, select, input, textarea");L&&(L.disabled=_)},h=null,C=null,x=null,S=0,k=()=>{let E=e.getOverflow?.();return E?.enabled===!0?E:void 0},B=()=>(h?h.setLabel(e.getOverflowLabel?.()??"More actions"):h=MC({label:e.getOverflowLabel?.()??"More actions",getButtonSize:r}),h),$=E=>{C!==E&&(x?.disconnect(),C=E,S=vm(E),!(typeof ResizeObserver>"u")&&(x=new ResizeObserver(_=>{let L=_[_.length-1]?.contentRect?.width??vm(E);L!==S&&(S=L,le())}),x.observe(E)))},T=(E,_)=>{let W=KT(E.collapseAutoActionsBelow,_);if(W===null)return!1;let L=S||vm(_);return L>0&&L<W},I=(E,_,W)=>{if(!_)return"bar";if(E.resolved.builtIn){let X=VT(E.resolved.id);return X&&_.includeBuiltIns?.includes(X)?"menu":"bar"}let L=E.resolved.presentation;return L==="overflow"||L==="auto"&&W?"menu":"bar"},A=E=>{let _=E.menuSlot;if(!_)return;if(!tP(E.element)){E.menuLabel?.remove(),E.menuLabel=void 0;return}let W=JT(E.element);if(!W){E.menuLabel?.remove(),E.menuLabel=void 0;return}E.menuLabel||(E.menuLabel=M("span","persona-composer-overflow-menu__label")),E.menuLabel.textContent!==W&&(E.menuLabel.textContent=W),E.menuLabel.parentElement!==_&&_.appendChild(E.menuLabel)},D=(E,_)=>{if(E.mode===_)return E;let W=E.resolved.action;if(W&&!Yr(W)){u(E),t.delete(E.resolved.id);let L=l(E.resolved,_);return t.set(E.resolved.id,L),L}if(_==="menu"){let L=Y("div",{className:"persona-composer-overflow-menu__slot",attrs:{role:"none",[dm]:""}});L.appendChild(E.element),yC(Cm(E.element)),E.menuSlot=L;let X=K=>{let de=Cm(E.element);if(de.disabled)return;let ue=K.target===de||de.contains(K.target);h?.close(!0),ue||de.click()};L.addEventListener("click",X,!0),E.detachMenuSlot=()=>L.removeEventListener("click",X,!0),E.managed=!0,A(E)}else E.detachMenuSlot?.(),E.detachMenuSlot=void 0,E.menuLabel?.remove(),E.menuLabel=void 0,E.menuSlot?.remove(),E.menuSlot=void 0;return E.mode=_,E},Q=(E,_)=>{let W=_.map(L=>L.menuSlot??L.element);for(W.forEach((L,X)=>{let K=E.children[X];K!==L&&(K?E.insertBefore(L,K):E.appendChild(L))});E.children.length>W.length;)E.lastElementChild?.remove()},le=()=>{if(o)return;let E=e.getBindings();if(!E)return;let _=e.getState(),W=_.phase==="streaming",L=k();L&&$(E.footer);let X=L?T(L,E.footer):!1,K={start:[],end:[]},de=[];for(let ue of n){let fe=t.get(ue.id);if(!fe)continue;let Me=ue.action,ye=Me?kC(Me.visible,_,!0)&&XT(Me.visibility,_):!0;if(fe.visible!==ye&&(fe.visible=ye,!ye&&fe.managed&&(fe.menuSlot??fe.element).remove()),!!ye){if(fe=D(fe,I(fe,L,X)),Me){let Ne=kC(Me.disabled,_,!1)||Me.disableWhenStreaming===!0&&W;y(fe,Ne),!Yr(Me)&&Me.pressed!==void 0&&fe.button?.setAttribute("aria-pressed",Me.pressed?"true":"false")}fe.mode==="menu"?(A(fe),de.push(fe)):K[ue.placement].push(fe)}}if(de.length>0){let ue=B();Q(ue.panel,de),ue.setItems(de.map(Ne=>Ne.menuSlot??Ne.element)),ue.applyButtonSize();let fe=Number.isFinite(L?.order)?L?.order:qo.overflow,Me=K.start.findIndex(Ne=>Ne.resolved.order>fe),ye={resolved:{id:zT,placement:"start",presentation:"bar",order:fe,sequence:-1,source:"core"},element:ue.trigger,owned:!1,managed:!0,busy:!1,visible:!0,mode:"bar"};K.start.splice(Me<0?K.start.length:Me,0,ye)}else h&&(h.close(),h.trigger.remove(),h.setItems([]));m(E.actionsStart,K.start),m(E.actionsEnd,K.end)};return{resolve:()=>{if(o)return;let E=QT(e.collect()),_=new Set(E.map(W=>W.id));for(let[W,L]of t)_.has(W)||(u(L),t.delete(W));for(let W of E){let L=t.get(W.id);if(!L){let ue=p(W,"bar");ue&&t.set(W.id,ue);continue}let X=L.resolved.action,K=W.action;if(!!X!=!!K||X&&K&&Yr(X)!==Yr(K)||X&&K&&Yr(X)&&Yr(K)&&X.render!==K.render){u(L),t.delete(W.id);let ue=p(W,L.mode);ue&&t.set(W.id,ue);continue}L.resolved=W,W.builtIn?(L.managed=W.builtIn.managed===!0||L.mode==="menu",W.builtIn.element&&L.mode==="bar"&&(L.element=W.builtIn.element)):K&&!Yr(K)?a(L,K):K&&L.element.toggleAttribute(bm,K.disableWhenStreaming===!0)}n=E,le()},sync:le,getResolved:()=>n,getOverflowMenu:()=>h,destroy:()=>{if(!o){o=!0,x?.disconnect(),x=null,C=null;for(let E of t.values())u(E);t.clear(),h?.destroy(),h=null,n=[]}}}}var nP="core:model",oP=700,IC=16,rP=["--persona-components-composer-modelPicker-menuBackground","--persona-components-composer-modelPicker-menuBorderRadius","--persona-components-composer-modelPicker-rowHoverBackground","--persona-components-composer-modelPicker-labelColor","--persona-components-composer-modelPicker-descriptionColor"],RC=()=>{let e=Y("span",{className:"persona-composer-model-picker-wrapper",attrs:{"data-persona-composer-model-picker-wrapper":""}}),t=Y("span",{className:"persona-composer-model-picker-chevron",attrs:{"aria-hidden":"true"}});return{wrapper:e,chevron:t}};function HC(e){let t=e.label??"Model",n=e.presentation??"native",o=null,r=d=>{let p=e.getSelectedModelId();return d.find(u=>u.id===p)??d[0]},s=()=>{let d=Y("select",{className:"persona-composer-model-picker",attrs:{"aria-label":t,"data-persona-composer-model-picker":""}}),p="",u=()=>{let x=e.getModels(),S=x.map(k=>`${k.id}:${k.label}`).join("|");S!==p&&(p=S,d.replaceChildren(...x.map(k=>{let B=Y("option",{attrs:{value:k.id}});return B.textContent=k.label,B}))),d.value=r(x)?.id??""};u(),o=u;let m=()=>{d.value&&e.onSelect(d.value)};d.addEventListener("change",m);let y=x=>x.stopPropagation();d.addEventListener("click",y);let{wrapper:h,chevron:C}=RC();return h.append(d,C),{element:h,destroy:()=>{o===u&&(o=null),d.removeEventListener("change",m),d.removeEventListener("click",y)}}},a=()=>{let d=Y("button",{className:"persona-composer-model-picker persona-composer-model-picker-trigger",attrs:{type:"button","aria-haspopup":"listbox","aria-expanded":"false","data-persona-composer-model-picker":"popover"}}),p=M("span","persona-composer-model-picker-label"),u=M("span","persona-composer-model-picker-suffix");d.append(p,u);let m=Y("div",{className:"persona-composer-model-menu",attrs:{role:"listbox",tabindex:"-1","aria-label":t,"data-persona-composer-model-menu":""}}),y=new Map,h="",C=null,x=()=>C?.isOpen===!0,S=(_=!1)=>{x()&&(C?.close(),d.setAttribute("aria-expanded","false"),_&&d.focus())},k=_=>{let W=[...y.values()];if(W.length===0)return;let L=(_%W.length+W.length)%W.length;W[L].focus()},B=_=>{if(x())return;C||(C=Kd({anchor:d,content:m,placement:"top-start",offset:6,onDismiss:()=>d.setAttribute("aria-expanded","false")})),$d(d,m,rP),C.open(),d.setAttribute("aria-expanded","true");let L=[...y.keys()].indexOf(r(e.getModels())?.id??"");k(_??(L>=0?L:0))},$=_=>{S(!0),e.onSelect(_)},T=_=>{_.preventDefault(),_.stopPropagation();let W=_.currentTarget.getAttribute("data-persona-model-option");W&&$(W)},I=_=>{let W=Y("button",{className:"persona-composer-model-option",attrs:{type:"button",role:"option",tabindex:"-1","aria-selected":"false","data-persona-model-option":_.id}});if(_.icon){let ue=ge(_.icon,IC,"currentColor",1.5);if(ue){let fe=M("span","persona-composer-model-option-icon");fe.appendChild(ue),W.appendChild(fe)}}let L=M("span","persona-composer-model-option-body"),X=M("span","persona-composer-model-option-label");if(X.textContent=_.label,L.appendChild(X),_.description){let ue=M("span","persona-composer-model-option-description");ue.textContent=_.description,L.appendChild(ue)}W.appendChild(L);let K=M("span","persona-composer-model-option-check");K.setAttribute("aria-hidden","true");let de=ge("check",IC,"currentColor",2);return de&&K.appendChild(de),W.appendChild(K),W.addEventListener("click",T),W},A=()=>{let _=e.getModels(),W=_.map(K=>`${K.id}:${K.label}:${K.icon??""}:${K.description??""}`).join("|");if(W!==h){h=W;for(let K of y.values())K.removeEventListener("click",T);y.clear(),m.replaceChildren(..._.map(K=>{let de=I(K);return y.set(K.id,de),de}))}let L=r(_);for(let[K,de]of y)de.setAttribute("aria-selected",String(K===L?.id));p.textContent=L?.label??"";let X=e.getSuffix?.()??"";u.textContent=X,d.setAttribute("aria-label",[t,[L?.label,X].filter(Boolean).join(" ")].filter(Boolean).join(": "))};A(),o=A;let D=_=>{_.preventDefault(),_.stopPropagation(),x()?S(!0):B()},Q=_=>{if(_.key==="ArrowDown"){_.preventDefault(),x()?k(0):B(0);return}_.key==="ArrowUp"&&(_.preventDefault(),x()?k(-1):B(-1))},le=_=>{let W=[...y.values()],L=W.indexOf(_.target?.closest?.(".persona-composer-model-option"));switch(_.key){case"ArrowDown":_.preventDefault(),k(L+1);return;case"ArrowUp":_.preventDefault(),k(L-1);return;case"Home":_.preventDefault(),k(0);return;case"End":_.preventDefault(),k(W.length-1);return;case"Escape":_.preventDefault(),_.stopPropagation(),S(!0);return;case"Tab":S(!0);return;default:}};d.addEventListener("click",D),d.addEventListener("keydown",Q),m.addEventListener("keydown",le);let{wrapper:re,chevron:E}=RC();return re.append(d,E),{element:re,destroy:()=>{o===A&&(o=null),d.removeEventListener("click",D),d.removeEventListener("keydown",Q),m.removeEventListener("keydown",le);for(let _ of y.values())_.removeEventListener("click",T);y.clear(),C?.destroy(),C=null,m.remove()}}};return{action:{id:nP,kind:"custom",placement:"end",order:oP,presentation:n==="popover"?"bar":"auto",label:t,render:()=>n==="popover"?a():s()},repaint:()=>o?.()}}var wm="[data-persona-composer-chip-row]";function Gd(e){e.style.display=e.childElementCount>0?"flex":"none"}function xm(e){let t=e.querySelector(wm);if(t)return t;let n=Y("div",{className:"persona-composer-chip-row",attrs:{"data-persona-composer-chip-row":""}});n.style.display="none";let o=e.querySelector("[data-persona-composer-quote], [data-persona-composer-pending]");return o?.parentElement===e?e.insertBefore(n,o):e.appendChild(n),n}var sP=":scope > [data-persona-composer-mode]";function WC(e){let t=e.row,n="",o=!1,r=new Set(e.initialIds??[]),s=p=>{let u=Y("span",{className:"persona-mention-chip persona-composer-mode-chip",attrs:{"data-persona-composer-mode":p.id}});if(p.iconName){let C=M("span","persona-mention-chip-icon"),x=ge(p.iconName,12,"currentColor",1.5);x&&C.appendChild(x),u.appendChild(C)}let m=M("span","persona-mention-chip-label");m.textContent=p.shortLabel??p.label,u.appendChild(m);let y=Y("button",{className:"persona-mention-chip-remove",attrs:{type:"button","aria-label":`Remove ${p.label}`}}),h=ge("x",12,"currentColor",2);return h?y.appendChild(h):y.textContent="\xD7",y.addEventListener("click",C=>{C.preventDefault(),C.stopPropagation(),e.onRemove(p.id)}),u.appendChild(y),u},a=()=>Array.from(t.querySelectorAll(sP)),l=p=>{p.setAttribute("data-persona-chip-exit",""),p.setAttribute("aria-hidden","true"),p.style.pointerEvents="none";let u=()=>{p.remove(),Gd(t)},m=t.ownerDocument.defaultView,y=typeof m?.getComputedStyle=="function"?m.getComputedStyle(p).animationName:"";if(!y||y==="none"){u();return}p.addEventListener("animationend",u,{once:!0}),p.addEventListener("animationcancel",u,{once:!0})},d=()=>{for(let p of a())p.remove()};return{element:t,render:(p,u)=>{if(o)return;let m=u.filter(x=>p.includes(x.id)),y=m.map(x=>`${x.id}:${x.shortLabel??x.label}`).join("|");if(y===n)return;n=y;let h=new Map;for(let x of a()){let S=x.getAttribute("data-persona-composer-mode");S&&m.some(B=>B.id===S)&&!x.hasAttribute("data-persona-chip-exit")?h.set(S,x):x.hasAttribute("data-persona-chip-exit")||l(x)}let C=t.firstChild;for(let x of m){let S=h.get(x.id);S||(S=s(x),r.has(x.id)||(S.setAttribute("data-persona-chip-enter",""),S.addEventListener("animationend",()=>S?.removeAttribute("data-persona-chip-enter"),{once:!0}))),r.delete(x.id),S!==C&&t.insertBefore(S,C),C=S.nextSibling}Gd(t)},destroy:()=>{o=!0,d(),Gd(t)}}}var OC=e=>`core:mode:${e}`;var Sm=e=>Math.min(300+e,499),BC=e=>`core:mode-group:${e}`;function Qd(e,t){return e?t?.find(n=>n.id===e)?.presentation==="segmented":!1}function iP(e,t){return e?t?.find(n=>n.id===e)?.chipVisibility==="hidden":!1}function _C(e,t){return e?.length?e.filter(n=>!Qd(n.groupId,t)&&!iP(n.groupId,t)):[]}var aP=(e,t)=>e.groupId?t?.find(n=>n.id===e.groupId)?.selection??null:null;function DC(e,t,n,o){let r=n.find(l=>l.id===t);if(!r)return[...e];let s=e.includes(t),a=new Set(e);if(s)a.delete(t);else{if(aP(r,o)==="single"){let l=n.filter(d=>d.groupId===r.groupId).map(d=>d.id);a=new Set([...a].filter(d=>!l.includes(d)))}a.add(t)}return n.filter(l=>a.has(l.id)).map(l=>l.id)}function Yd(e,t){return t?.length?t.filter(n=>e.includes(n.id)).map(n=>n.id):[]}function NC(e,t){return t?.length?t.filter(n=>e.includes(n.id)&&(n.persistence??"sticky")!=="once").map(n=>n.id):[]}function FC(e,t){if(!(!t?.length||e.length===0))return t.find(n=>e.includes(n.id)&&n.placeholder)?.placeholder}var lP=16;function $C(e){let t=null;return{action:{id:BC(e.groupId),kind:"custom",placement:"start",presentation:"bar",label:e.getGroup()?.label??e.groupId,render:()=>{let o=Y("div",{className:"persona-composer-segmented",attrs:{"data-persona-composer-mode-group":e.groupId}}),r=new Map,s="",a=p=>{p.preventDefault(),p.stopPropagation();let m=p.currentTarget.getAttribute("data-persona-composer-mode");!m||e.getActiveIds().includes(m)&&e.getGroup()?.selection==="single"||e.onSelect(m)},l=p=>{let u=Y("button",{className:"persona-composer-segmented-item",attrs:{type:"button","data-persona-composer-mode":p.id,"aria-label":p.label}});if(p.iconName){let y=ge(p.iconName,lP,"currentColor",1.5);y&&u.appendChild(y)}let m=M("span","persona-composer-segmented-label");return m.textContent=p.shortLabel??p.label,u.appendChild(m),u.addEventListener("click",a),u},d=()=>{let p=e.getGroup();p?.label?(o.setAttribute("role","group"),o.setAttribute("aria-label",p.label)):(o.removeAttribute("role"),o.removeAttribute("aria-label"));let u=e.getModes(),m=u.map(h=>`${h.id}:${h.shortLabel??h.label}:${h.iconName??""}`).join("|");if(m!==s){s=m;for(let C of r.values())C.removeEventListener("click",a);r.clear();let h=u.map(C=>{let x=l(C);return r.set(C.id,x),x});o.replaceChildren(...h)}let y=e.getActiveIds();for(let[h,C]of r)C.setAttribute("aria-pressed",String(y.includes(h)))};return d(),t=d,{element:o,destroy:()=>{t===d&&(t=null);for(let p of r.values())p.removeEventListener("click",a);r.clear()}}}},repaint:()=>t?.()}}function UC(e){let t=Y("div",{className:"persona-composer-quote",attrs:{"data-persona-composer-quote":""}});t.style.display="none";let n="",o=!1,r=s=>{let a=M("span","persona-composer-quote-bar"),l=M("div","persona-composer-quote-content");if(s.sourceLabel){let m=M("div","persona-composer-quote-source");m.textContent=s.sourceLabel,l.appendChild(m)}let d=Y("div",{className:"persona-composer-quote-text",attrs:{"data-persona-composer-quote-text":""}});d.textContent=Id(s.text),l.appendChild(d);let p=Y("button",{className:"persona-composer-quote-dismiss",attrs:{type:"button","aria-label":e.dismissLabel??"Remove quote","data-persona-composer-quote-dismiss":""}}),u=ge("x",12,"currentColor",2);u?p.appendChild(u):p.textContent="\xD7",p.addEventListener("click",m=>{m.preventDefault(),m.stopPropagation(),e.onDismiss()}),t.replaceChildren(a,l,p)};return{element:t,render:s=>{if(o)return;let a=s?`${s.sourceLabel??""}\0${s.text}`:"";if(a!==n){if(n=a,!s){t.replaceChildren(),t.style.display="none";return}r(s),t.style.display="flex"}},destroy:()=>{o=!0,t.replaceChildren(),t.remove()}}}function jC(e){let t=Y("div",{className:"persona-composer-pending",attrs:{"data-persona-composer-pending":""}});t.style.display="none";let n,o=!1,r=(a,l,d,p)=>{let u=Y("button",{className:"persona-composer-pending-action",attrs:{type:"button","aria-label":l,[d]:""}}),m=ge(a,12,"currentColor",2);return m?u.appendChild(m):u.textContent=l,u.addEventListener("click",y=>{y.preventDefault(),y.stopPropagation(),p()}),u},s=a=>{let l=Id(a.text??"",90);if(l)return l;let d=a.contentParts?.length??0;return d>0?d===1?"1 attachment":`${d} attachments`:(a.mentionRefs?.length??0)>0?a.mentionRefs.map(u=>u.label).join(", "):"Queued message"};return{element:t,render:a=>{if(o||a===n)return;if(n=a,!a){t.replaceChildren(),t.style.display="none";return}let l=M("span","persona-composer-pending-badge");l.textContent=e.label??"Sends next";let d=Y("div",{className:"persona-composer-pending-text",attrs:{"data-persona-composer-pending-text":""}});d.textContent=s(a),t.replaceChildren(l,d,r("pencil",e.editLabel??"Edit queued message","data-persona-composer-pending-edit",e.onEdit),r("x",e.removeLabel??"Remove queued message","data-persona-composer-pending-remove",e.onRemove)),t.style.display="flex"},destroy:()=>{o=!0,t.replaceChildren(),t.remove()}}}function qC(e){let t=Y("div",{className:"persona-message-edit",attrs:{"data-persona-message-edit":e.messageId,"data-preserve-runtime":""}}),n=Y("textarea",{className:"persona-message-edit-input",attrs:{rows:"1",dir:"auto","aria-label":"Edit message","data-persona-message-edit-input":""}});n.value=e.initialText;let o=()=>{n.style.height="auto",n.style.height=`${n.scrollHeight}px`};n.addEventListener("input",o);let r=M("div","persona-message-edit-actions"),s=(l,d,p,u)=>{let m=Y("button",{className:`persona-message-edit-button ${d}`,attrs:{type:"button",[p]:""},text:l});return m.addEventListener("click",y=>{y.preventDefault(),y.stopPropagation(),u()}),m},a=()=>{let l=n.value.trim();l&&e.onSave(l)};return r.append(s(e.cancelLabel??"Cancel","persona-message-edit-cancel","data-persona-message-edit-cancel",e.onCancel),s(e.saveLabel??"Send","persona-message-edit-save","data-persona-message-edit-save",a)),n.addEventListener("keydown",l=>{if(l.key==="Escape"){l.preventDefault(),l.stopPropagation(),e.onCancel();return}l.key==="Enter"&&!l.shiftKey&&(l.preventDefault(),a())}),t.append(n,r),{element:t,getValue:()=>n.value,focus:()=>{n.focus();let l=n.value.length;n.setSelectionRange(l,l),o()},destroy:()=>{t.replaceChildren(),t.remove()}}}function zC(e){let t=e.text??"";if(t.trim().length>0||(e.mentionRefs?.length??0)>0||(e.activeModeIds?.length??0)>0||e.quote||e.selectedModelId)return{text:t,...e.mentionRefs?.length?{mentionRefs:[...e.mentionRefs]}:{},...e.contentSegments?.length?{contentSegments:[...e.contentSegments]}:{},...e.selectedModelId?{selectedModelId:e.selectedModelId}:{},...e.activeModeIds?.length?{activeModeIds:[...e.activeModeIds]}:{},...e.quote?{quote:{...e.quote}}:{}}}function VC(e,t){if(!e||typeof e.text!="string")return;let n=new Set(t.mentionSourceIds),o=(e.mentionRefs??[]).filter(d=>n.has(d.sourceId)),r=o.length===(e.mentionRefs?.length??0)&&o.length>0,s=new Set(t.modes.map(d=>d.id)),a=(e.activeModeIds??[]).filter(d=>s.has(d)),l=e.selectedModelId&&t.modelIds.includes(e.selectedModelId)?e.selectedModelId:void 0;return{text:e.text,...r?{mentionRefs:o}:{},...r&&e.contentSegments?.length?{contentSegments:e.contentSegments}:{},...l?{selectedModelId:l}:{},...a.length?{activeModeIds:a}:{},...e.quote?.text?{quote:e.quote}:{}}}function KC(e){let t=e.delay??500,n=null,o=!1,r=()=>{n!==null&&(clearTimeout(n),n=null)};return{schedule:()=>{o||(r(),n=setTimeout(()=>{n=null,e.write()},t))},flush:()=>{o||n===null||(r(),e.write())},cancel:r,destroy:()=>{o=!0,r()}}}function GC(e){return e.wrapped||e.text.includes(`
23
- `)?!1:!(e.hasAttachments||e.hasChips||e.hasQuote||e.hasPendingSubmission||e.dictationActive)}function QC(){let e=!1;return{observe:(t,n)=>n?(t&&(e=!0),e):(e=!1,!1),release:()=>{e=!1}}}function YC(e){if(!e)return!1;let t=e.ownerDocument?.defaultView;if(!t?.getComputedStyle)return!1;let n=t.getComputedStyle(e),o=Number.parseFloat(n.lineHeight),r=Number.parseFloat(n.fontSize),s=Number.isFinite(o)&&o>0?o:Number.isFinite(r)&&r>0?r*1.4:0;if(!s)return!1;let a=(Number.parseFloat(n.paddingTop)||0)+(Number.parseFloat(n.paddingBottom)||0);return e.scrollHeight-a>s*1.5}function XC(e){e&&(typeof e.requestSubmit=="function"?e.requestSubmit():e.dispatchEvent(new Event("submit",{bubbles:!0,cancelable:!0})))}function Am(e){return Object.freeze({text:e.text,contentParts:e.contentParts?Object.freeze([...e.contentParts]):void 0,mentionRefs:Object.freeze([...e.mentionRefs]),contentSegments:e.contentSegments?Object.freeze([...e.contentSegments]):void 0,options:Object.freeze({...e.options}),viaVoice:e.viaVoice})}function ZC(e){return e.inputDisabled===!0||e.sendDisabled===!0||e.hasAttachments&&!e.attachmentsReady?!1:!!e.text||e.hasAttachments||e.hasMentions||e.hasServerMentions}var cP=e=>typeof e?.then=="function";function JC(e,t){return t===!1?{status:"canceled"}:!t||typeof t!="object"?{status:"proceed"}:(typeof t.text=="string"&&(e.text=t.text),t.options&&(e.options={...e.options,...t.options}),{status:"proceed"})}function ew(e,t,n){let o;try{o=e(Am(t),{signal:n})}catch(r){return{status:"error",error:r}}return cP(o)?Promise.resolve(o).then(r=>n.aborted?{status:"aborted"}:JC(t,r),r=>n.aborted?{status:"aborted"}:{status:"error",error:r}):JC(t,o)}var tw=/\s/;function dP(e,t,n){if(n==="input-start")return t===0;let o=t>0?e[t-1]:"";return n==="line-start"?o===""||o===`
24
- `:o===""||tw.test(o)}function pP(e,t,n="@",o="anywhere",r=!1){if(!n||t<=0||t>e.length)return null;let s=t-1;for(;s>=0;){let a=e[s];if(a===n)return dP(e,s,o)?{triggerIndex:s,query:e.slice(s+1,t)}:null;if(a===`
25
- `||a==="\uFFFC"||!r&&tw.test(a))return null;s--}return null}function nw(e,t,n){for(let o of n){let r=pP(e,t,o.trigger,o.position??"anywhere",o.allowSpaces??!1);if(r)return{channel:o,match:r}}return null}function ow(e){return e?e!=="insertFromPaste"&&e!=="insertFromDrop":!0}function rw(e){let t={trigger:e.trigger??"@",position:e.triggerPosition??"anywhere",allowSpaces:!1,sources:Array.isArray(e.sources)?e.sources:[],searchPlaceholder:e.searchPlaceholder,showButton:e.showButton!==!1,buttonIconName:e.buttonIconName,buttonTooltipText:e.buttonTooltipText},n=(e.triggers??[]).map(o=>({trigger:o.trigger,position:o.triggerPosition??"anywhere",allowSpaces:o.allowSpaces??!1,sources:Array.isArray(o.sources)?o.sources:[],searchPlaceholder:o.searchPlaceholder,showButton:o.showButton===!0,buttonIconName:o.buttonIconName,buttonTooltipText:o.buttonTooltipText}));return[t,...n]}function sw(e){let{config:t,onOpen:n}=e,o=t.buttonIconName??"plus",r=t.buttonTooltipText??"Add context",s=M("div","persona-send-button-wrapper"),a=Y("button",{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-mention-button ${Qn} ${Co}`,attrs:{type:"button","data-persona-composer-mention-button":"","aria-label":r,"aria-haspopup":"listbox","aria-expanded":"false"},style:{fontSize:"18px",lineHeight:"1"}}),l=ge(o,vn,"currentColor",1.5);return l?a.appendChild(l):a.textContent="+",a.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),n()}),s.appendChild(a),nn({anchor:a,trigger:s,text:()=>a.getAttribute("aria-label")??r}),{button:a,wrapper:s}}var{setLoader:QH,load:uP}=bt({fallbackImport:()=>import("@runtypelabs/persona/context-mentions")});var Mm=uP;var{setLoader:JH,load:gP}=bt({fallbackImport:()=>import("@runtypelabs/persona/context-mentions-inline"),resetOnSetLoader:!0});var iw=gP;function bl(e,t={}){if(t.render)return t.render({ref:e,readonly:!!t.readonly});let n=Y("span",{className:bn("persona-mention-token",t.readonly&&"persona-mention-token-readonly"),attrs:{"data-mention-source":e.sourceId,title:e.label,role:"img","aria-label":`${e.label} mention`}});e.color&&n.style.setProperty("--persona-mention-token-accent",e.color);let o=ge(e.iconName??"at-sign",13,"currentColor",2);if(o){let r=M("span","persona-mention-token-icon");r.appendChild(o),n.appendChild(r)}return n.appendChild(Y("span",{className:"persona-mention-token-label",text:`@${e.label}`})),n}function aw(e){let t=e.config.contextMentions;if(!t?.enabled)return null;let n=rw(t).filter(T=>T.sources.length>0);if(n.length===0)return typeof console<"u"&&console.warn("[Persona] contextMentions.enabled is true but no sources were provided; mentions are disabled."),null;let o=n.filter(T=>T.sources.some(I=>typeof I.matchCommand=="function")),r=T=>o.some(I=>I.trigger?I.position==="line-start"?T.split(`
26
- `).some(D=>D.startsWith(I.trigger)):(I.position==="anywhere"?T:T.split(`
27
- `)[0]).startsWith(I.trigger):!1),s=(T,I)=>{if(!(typeof window>"u"))try{window.dispatchEvent(new CustomEvent(`persona:mention:${T}`,{detail:I}))}catch{}},a=!e.chipRow,l=e.chipRow??Y("div",{className:"persona-mention-context-row",attrs:{"data-persona-mention-context-row":""}}),d=null,p=null,u=e.textarea,m=null,y=null,h=null,C=null,x=()=>{if(d)return Promise.resolve(d);if(p)return p;let T=Mm().then(I=>(I.setMentionIconRenderer(ge),d=I.mountContextMentions({mentionConfig:t,textarea:e.textarea,composerInput:m??void 0,anchor:e.anchor,contextRow:l,getMessages:e.getMessages,getConfig:()=>e.config,liveRegionHost:e.liveRegionHost,popoverContainer:e.popoverContainer,onPickerOpenChange:$,emit:s}),d)).catch(I=>(typeof console<"u"&&console.warn("[Persona] Failed to load context mentions runtime",I),p===T&&(p=null),null));return p=T,T},S=()=>{iw().then(T=>{let I=T.mountInlineComposer({textarea:e.textarea,renderToken:D=>bl(D,{render:t.renderMentionToken}),onMentionRemoved:D=>d?.untrackMention(D)});m=I.input,y=I.destroy;let A=u;A.replaceWith(I.element),u=I.element,C={next:I.element,prev:A},h?.(I.element,A),d?d.rebindComposer(I.input):p&&p.then(D=>D?.rebindComposer(I.input))}).catch(T=>{typeof console<"u"&&console.warn("[Persona] Failed to load inline mention composer",T)})};t.display==="inline"&&S();let k=[],B=new Map;for(let T of n){if(!T.showButton)continue;let I=sw({config:{...t,buttonIconName:T.buttonIconName,buttonTooltipText:T.buttonTooltipText},onOpen:()=>{x().then(A=>A?.openMenu(T.trigger))}});k.push(I),B.set(T.trigger,I.button)}let $=(T,I,A)=>{let D=B.get(I);D&&(D.setAttribute("aria-expanded",T?"true":"false"),T?D.setAttribute("aria-controls",A):D.removeAttribute("aria-controls"))};return{affordanceButtons:k.map(T=>T.wrapper),contextRow:l,handleInput:T=>{if(d){d.handleInput();return}if(!ow(T))return;let I=u,A=I.selectionStart??0;nw(I.value,A,n)&&x().then(D=>D?.handleInput())},handleKeydown:T=>{if(d?.isMenuOpen())return d.handleKeydown(T);if(T.key==="Backspace"&&d?.hasMentions()&&!C){let I=u,A=I.selectionStart===0&&I.selectionEnd===0;if((I.value.length===0||A)&&d.removeLastChip())return T.preventDefault(),!0}return!1},isMenuOpen:()=>d?.isMenuOpen()??!1,hasMentions:()=>d?.hasMentions()??!1,getMentionRefs:()=>d?.getMentionRefs()??[],collectForSubmit:()=>d?.collectForSubmit()??null,takeInlineCommand:async T=>r(T)?(d??await x())?.dispatchInlineCommand(T)??null:null,clear:()=>d?.clear(),prefetch:()=>{Mm().catch(()=>{})},onComposerSwap:T=>{h=T,C&&T(C.next,C.prev)},destroy:()=>{d?.destroy(),y?.();for(let T of k)T.wrapper.remove();a&&l.remove()}}}var Xd="16px",Jd="transparent",mP=(()=>{let e={};for(let t of[0,1,2,3,4,5,6,8,10,12,16,20,24,32,40,48,56,64])e[t]=t===0?"0px":`${t/4}rem`;return e})(),Tm={colors:{primary:{50:"#ffffff",100:"#f5f5f5",200:"#d4d4d4",300:"#a3a3a3",400:"#737373",500:"#171717",600:"#0f0f0f",700:"#0a0a0a",800:"#050505",900:"#030303",950:"#000000"},secondary:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},accent:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},success:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d"},warning:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12"},error:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d"},info:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"}},spacing:mP,typography:{fontFamily:{sans:'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',serif:'Georgia, Cambria, "Times New Roman", Times, serif',mono:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace"},fontSize:{xs:"0.75rem",sm:"0.875rem",base:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem"},fontWeight:{normal:"400",medium:"500",semibold:"600",bold:"700"},lineHeight:{tight:"1.25",normal:"1.5",relaxed:"1.625"}},shadows:{none:"none",sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)"},borders:{none:"none",sm:"1px solid",md:"2px solid",lg:"4px solid"},radius:{none:"0px",sm:"0.125rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem",full:"9999px"}},Pm={colors:{primary:"palette.colors.primary.500",secondary:"palette.colors.secondary.500",accent:"palette.colors.primary.600",surface:"palette.colors.gray.50",background:"palette.colors.gray.50",container:"palette.colors.gray.50",text:"palette.colors.gray.900",textMuted:"palette.colors.gray.500",textInverse:"palette.colors.gray.50",border:"palette.colors.gray.200",divider:"palette.colors.gray.200",interactive:{default:"palette.colors.primary.600",hover:"palette.colors.primary.700",focus:"palette.colors.primary.600",active:"palette.colors.primary.600",disabled:"palette.colors.gray.300"},feedback:{success:"palette.colors.success.500",warning:"palette.colors.warning.500",error:"palette.colors.error.500",info:"palette.colors.info.500"}},spacing:{xs:"palette.spacing.1",sm:"palette.spacing.2",md:"palette.spacing.4",lg:"palette.spacing.6",xl:"palette.spacing.8","2xl":"palette.spacing.10"},typography:{fontFamily:"palette.typography.fontFamily.sans",fontSize:"palette.typography.fontSize.base",fontWeight:"palette.typography.fontWeight.normal",lineHeight:"palette.typography.lineHeight.normal"}},km={button:{primary:{background:"palette.colors.primary.500",foreground:"palette.colors.primary.50",borderRadius:"palette.radius.lg",padding:"semantic.spacing.md"},secondary:{background:"semantic.colors.surface",foreground:"semantic.colors.secondary",borderRadius:"palette.radius.lg",padding:"semantic.spacing.md"},ghost:{background:"transparent",foreground:"semantic.colors.text",borderRadius:"palette.radius.md",padding:"semantic.spacing.sm",hoverBackground:"rgba(0, 0, 0, 0.05)"}},input:{background:"semantic.colors.surface",placeholder:"semantic.colors.textMuted",borderRadius:"palette.radius.lg",padding:"semantic.spacing.md",focus:{border:"palette.colors.gray.400",ring:"palette.colors.gray.400"}},launcher:{background:"semantic.colors.surface",foreground:"semantic.colors.primary",border:"semantic.colors.border",size:"60px",iconSize:"28px",borderRadius:"palette.radius.full",shadow:"palette.shadows.lg"},panel:{width:Gn,maxWidth:_d,height:"600px",maxHeight:"calc(100vh - 80px)",borderRadius:"palette.radius.xl",shadow:"palette.shadows.xl",inset:Xd,canvasBackground:Jd},header:{background:"palette.colors.primary.500",foreground:"palette.colors.primary.50",borderRadius:"palette.radius.xl palette.radius.xl 0 0",padding:"semantic.spacing.md",iconBackground:"palette.colors.primary.600",iconForeground:"palette.colors.primary.50"},message:{user:{background:"palette.colors.primary.500",text:"palette.colors.primary.50",borderRadius:"palette.radius.lg",shadow:"palette.shadows.sm"},assistant:{background:"semantic.colors.container",text:"semantic.colors.text",borderRadius:"palette.radius.lg",border:"semantic.colors.border",shadow:"palette.shadows.sm"},border:"semantic.colors.border"},introCard:{background:"transparent",borderRadius:"palette.radius.2xl",padding:"semantic.spacing.lg",shadow:"palette.shadows.none"},suggestion:{chip:{background:"semantic.colors.surface",foreground:"semantic.colors.text",border:"semantic.colors.border",borderRadius:"palette.radius.full",padding:"0.5rem 0.875rem",gap:"0.5rem",itemGap:"8px",minHeight:"36px",fontSize:"0.8125rem",lineHeight:"1.25",iconSize:"16px",hoverBackground:"palette.colors.gray.100",hoverBorder:"palette.colors.gray.300",pressedBackground:"palette.colors.gray.200",focusRing:"semantic.colors.interactive.focus",disabledOpacity:"0.5"},card:{background:"semantic.colors.surface",foreground:"semantic.colors.text",border:"semantic.colors.border",borderRadius:"palette.radius.xl",padding:"1rem",shadow:"palette.shadows.sm",gap:"0.625rem",itemGap:"8px",minHeight:"72px",fontSize:"0.875rem",lineHeight:"1.35",iconSize:"18px",hoverBackground:"palette.colors.gray.100",hoverBorder:"palette.colors.gray.300",pressedBackground:"palette.colors.gray.200",focusRing:"semantic.colors.interactive.focus",disabledOpacity:"0.5"},list:{background:"transparent",foreground:"semantic.colors.text",border:"semantic.colors.border",borderRadius:"palette.radius.md",padding:"0.75rem",gap:"0.625rem",itemGap:"8px",minHeight:"44px",fontSize:"0.875rem",lineHeight:"1.35",iconSize:"17px",hoverBackground:"palette.colors.gray.100",hoverBorder:"palette.colors.gray.300",pressedBackground:"palette.colors.gray.200",focusRing:"semantic.colors.interactive.focus",disabledOpacity:"0.5"}},toolBubble:{shadow:"palette.shadows.sm"},reasoningBubble:{shadow:"palette.shadows.sm"},composer:{shadow:"palette.shadows.none"},scrollbar:{thumb:"semantic.colors.border",track:"transparent"},markdown:{inlineCode:{background:"palette.colors.gray.50",foreground:"palette.colors.gray.900"},link:{foreground:"palette.colors.primary.600"},prose:{fontFamily:"inherit"},codeBlock:{background:"semantic.colors.container",borderColor:"semantic.colors.border",textColor:"inherit",borderRadius:"palette.radius.md"},table:{headerBackground:"semantic.colors.container",borderColor:"semantic.colors.border"},hr:{color:"semantic.colors.divider"},blockquote:{borderColor:"palette.colors.gray.900",background:"transparent",textColor:"palette.colors.gray.500"}},collapsibleWidget:{container:"palette.colors.gray.50",surface:"semantic.colors.surface",border:"semantic.colors.border"},voice:{recording:{indicator:"palette.colors.error.500",background:"palette.colors.error.50",border:"palette.colors.error.200"},processing:{icon:"palette.colors.primary.500",background:"palette.colors.primary.50"},speaking:{icon:"palette.colors.success.500"}},approval:{requested:{background:"semantic.colors.surface",border:"semantic.colors.border",text:"palette.colors.gray.900",shadow:"0 1px 2px 0 rgba(11, 11, 11, 0.06), 0 2px 8px 0 rgba(11, 11, 11, 0.04)"},approve:{background:"semantic.colors.primary",foreground:"semantic.colors.textInverse",borderRadius:"palette.radius.md",padding:"semantic.spacing.sm"},deny:{background:"semantic.colors.container",foreground:"semantic.colors.text",borderRadius:"palette.radius.md",padding:"semantic.spacing.sm"}},attachment:{image:{background:"palette.colors.gray.100",border:"palette.colors.gray.200"}},scrollToBottom:{background:"components.button.primary.background",foreground:"components.button.primary.foreground",border:"semantic.colors.primary",size:"40px",borderRadius:"palette.radius.full",shadow:"palette.shadows.sm",padding:"0.5rem 0.875rem",gap:"0.5rem",fontSize:"0.875rem",iconSize:"14px"},artifact:{pane:{background:"semantic.colors.container",toolbarBackground:"semantic.colors.container"}}};function Cn(e,t){if(!t.startsWith("palette.")&&!t.startsWith("semantic.")&&!t.startsWith("components."))return t;let n=t.split("."),o=e;for(let r of n){if(o==null)return;o=o[r]}return typeof o=="string"&&(o.startsWith("palette.")||o.startsWith("semantic.")||o.startsWith("components."))?Cn(e,o):o}function Zd(e){let t={};function n(o,r){for(let[s,a]of Object.entries(o)){let l=`${r}.${s}`;if(typeof a=="string"){let d=Cn(e,a);d!==void 0&&(t[l]={path:l,value:d,type:r.includes("color")?"color":r.includes("spacing")?"spacing":r.includes("typography")?"typography":r.includes("shadow")?"shadow":r.includes("border")?"border":"color"})}else typeof a=="object"&&a!==null&&n(a,l)}}return n(e.palette,"palette"),n(e.semantic,"semantic"),n(e.components,"components"),t}function Lm(e){let t=[],n=[];return e.palette||t.push({path:"palette",message:"Theme must include a palette",severity:"error"}),e.semantic||n.push({path:"semantic",message:"No semantic tokens defined - defaults will be used",severity:"warning"}),e.components||n.push({path:"components",message:"No component tokens defined - defaults will be used",severity:"warning"}),{valid:t.length===0,errors:t,warnings:n}}function cw(e,t){let n={...e};for(let[o,r]of Object.entries(t)){let s=n[o];s&&typeof s=="object"&&!Array.isArray(s)&&r&&typeof r=="object"&&!Array.isArray(r)?n[o]=cw(s,r):n[o]=r}return n}function fP(e,t){return t?cw(e,t):e}function vl(e,t={}){let n={palette:Tm,semantic:Pm,components:km},o={palette:{...n.palette,...e?.palette,colors:{...n.palette.colors,...e?.palette?.colors},spacing:{...n.palette.spacing,...e?.palette?.spacing},typography:{...n.palette.typography,...e?.palette?.typography},shadows:{...n.palette.shadows,...e?.palette?.shadows},borders:{...n.palette.borders,...e?.palette?.borders},radius:{...n.palette.radius,...e?.palette?.radius}},semantic:{...n.semantic,...e?.semantic,colors:{...n.semantic.colors,...e?.semantic?.colors,interactive:{...n.semantic.colors.interactive,...e?.semantic?.colors?.interactive},feedback:{...n.semantic.colors.feedback,...e?.semantic?.colors?.feedback}},spacing:{...n.semantic.spacing,...e?.semantic?.spacing},typography:{...n.semantic.typography,...e?.semantic?.typography}},components:fP(n.components,e?.components)};if(t.validate!==!1){let r=Lm(o);if(!r.valid)throw new Error(`Theme validation failed: ${r.errors.map(s=>s.message).join(", ")}`)}if(t.plugins)for(let r of t.plugins)o=r.transform(o);return o}var Em=e=>e.trim()==="0"?"0px":e,lw="--persona-",hP=e=>{if(!e)return;let t=e.trim().toLowerCase(),n;if(t.charCodeAt(0)===35){let a=t.slice(1);if(!/^[0-9a-f]+$/.test(a))return;a.length===3||a.length===4?n=[0,1,2].map(l=>parseInt(a[l]+a[l],16)):(a.length===6||a.length===8)&&(n=[0,2,4].map(l=>parseInt(a.slice(l,l+2),16)))}else{let a=t.match(/^rgba?\(([^)]+)\)$/);if(a){let l=a[1].split(/[,/\s]+/).filter(Boolean);l.length>=3&&(n=l.slice(0,3).map(d=>{let p=d.endsWith("%"),u=parseFloat(p?d.slice(0,-1):d);return p?u/100*255:u}))}}if(!n||n.some(a=>!Number.isFinite(a)))return;let[o,r,s]=n.map(a=>{let l=Math.max(0,Math.min(255,a))/255;return l<=.03928?l/12.92:Math.pow((l+.055)/1.055,2.4)});return .2126*o+.7152*r+.0722*s},yP=.179,on=(e,t)=>{for(let[n,...o]of t){let r;for(let s of o)if(r=s.charCodeAt(0)===61?s.slice(1):e[lw+s],r!==void 0)break;r!==void 0&&(e[lw+n]=r)}};function ep(e){let t=Zd(e),n={};for(let[j,Fe]of Object.entries(t)){let $e=j.replace(/\./g,"-");n[`--persona-${$e}`]=Fe.value}on(n,[["primary","semantic-colors-primary","palette-colors-primary-500"],["secondary","semantic-colors-secondary","palette-colors-secondary-500"],["accent","semantic-colors-accent","palette-colors-accent-500"],["surface","semantic-colors-surface","palette-colors-gray-50"],["background","semantic-colors-background","palette-colors-gray-50"],["container","semantic-colors-container","palette-colors-gray-100"],["text","semantic-colors-text","palette-colors-gray-900"],["text-muted","semantic-colors-text-muted","palette-colors-gray-500"],["text-inverse","semantic-colors-text-inverse","palette-colors-gray-50"],["border","semantic-colors-border","palette-colors-gray-200"],["divider","semantic-colors-divider","palette-colors-gray-200"],["muted","text-muted"],["voice-recording-indicator","components-voice-recording-indicator","palette-colors-error-500"],["voice-recording-bg","components-voice-recording-background","palette-colors-error-50"],["voice-processing-icon","components-voice-processing-icon","palette-colors-primary-500"],["voice-speaking-icon","components-voice-speaking-icon","palette-colors-success-500"],["approval-bg","components-approval-requested-background","surface"],["approval-border","components-approval-requested-border","border"],["approval-text","components-approval-requested-text","palette-colors-gray-900"],["approval-shadow","components-approval-requested-shadow","=0 1px 2px 0 rgba(11, 11, 11, 0.06), 0 2px 8px 0 rgba(11, 11, 11, 0.04)"],["approval-approve-bg","components-approval-approve-background","button-primary-bg"],["approval-deny-bg","components-approval-deny-background","container"],["attachment-image-bg","components-attachment-image-background","palette-colors-gray-100"],["attachment-image-border","components-attachment-image-border","palette-colors-gray-200"],["font-family","semantic-typography-fontFamily","palette-typography-fontFamily-sans"],["font-size","semantic-typography-fontSize","palette-typography-fontSize-base"],["font-weight","semantic-typography-fontWeight","palette-typography-fontWeight-normal"],["line-height","semantic-typography-lineHeight","palette-typography-lineHeight-normal"],["input-font-family","font-family"],["input-font-weight","font-weight"],["radius-sm","palette-radius-sm","=0.125rem"],["radius-md","palette-radius-md","=0.375rem"],["radius-lg","palette-radius-lg","=0.5rem"],["radius-xl","palette-radius-xl","=0.75rem"],["radius-full","palette-radius-full","=9999px"],["launcher-radius","components-launcher-borderRadius","palette-radius-full","=9999px"],["launcher-bg","components-launcher-background","surface"],["launcher-fg","components-launcher-foreground","primary"]]);let o=n["--persona-components-launcher-foreground"];n["--persona-launcher-fg-muted"]=o&&o!==n["--persona-primary"]?`color-mix(in srgb, ${o} 70%, transparent)`:n["--persona-muted"],on(n,[["launcher-border","components-launcher-border","border"],["button-primary-bg","components-button-primary-background","primary"],["button-primary-fg","components-button-primary-foreground","text-inverse"],["button-radius","components-button-primary-borderRadius","palette-radius-full","=9999px"],["button-stop-bg","components-button-stop-background"],["button-stop-fg","components-button-stop-foreground"]]),on(n,[["button-ghost-bg","components-button-ghost-background","=transparent"],["button-ghost-fg","components-button-ghost-foreground","text"],["button-ghost-radius","components-button-ghost-borderRadius","radius-md","=0.375rem"],["button-ghost-hover-bg","components-button-ghost-hoverBackground","=rgba(0, 0, 0, 0.05)"],["panel-radius","components-panel-borderRadius","radius-xl","=0.75rem"]]),n["--persona-panel-border"]=n["--persona-components-panel-border"]??`1px solid ${n["--persona-border"]}`,on(n,[["panel-shadow","components-panel-shadow","palette-shadows-xl","=0 25px 50px -12px rgba(0, 0, 0, 0.25)"]]),n["--persona-panel-inset"]=n["--persona-components-panel-inset"]??Xd,n["--persona-panel-canvas-bg"]=n["--persona-components-panel-canvasBackground"]??Jd,on(n,[["launcher-shadow","components-launcher-shadow","=0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)"],["input-radius","components-input-borderRadius","radius-lg","=0.5rem"],["message-user-radius","components-message-user-borderRadius","radius-lg","=0.5rem"],["message-assistant-radius","components-message-assistant-borderRadius","radius-lg","=0.5rem"]]),on(n,[["header-bg","components-header-background","surface"]]);let r=n["--persona-header-bg"],s=n["--persona-components-header-foreground"],a=s?`color-mix(in srgb, ${s} 72%, ${r})`:void 0;n["--persona-header-border"]=n["--persona-components-header-border"]??(s?`color-mix(in srgb, ${s} 14%, ${r})`:void 0)??n["--persona-divider"],on(n,[["header-icon-bg","components-header-iconBackground","primary"],["header-icon-fg","components-header-iconForeground","text-inverse"]]),n["--persona-header-title-fg"]=n["--persona-components-header-title-color"]??n["--persona-components-header-titleForeground"]??s??n["--persona-primary"],n["--persona-header-subtitle-fg"]=n["--persona-components-header-subtitle-color"]??n["--persona-components-header-subtitleForeground"]??a??n["--persona-text-muted"],n["--persona-header-action-icon-fg"]=n["--persona-components-header-actionIconForeground"]??a??n["--persona-muted"],on(n,[["header-control-size","components-header-controlSize","=32px"],["header-control-icon-size","components-header-controlIconSize","=20px"]]);let l=e.components?.header;l?.shadow&&(n["--persona-header-shadow"]=l.shadow),l?.borderBottom&&(n["--persona-header-border-bottom"]=l.borderBottom),l?.minHeight&&(n["--persona-header-min-height"]=l.minHeight);let d=n["--persona-components-history-railHeader-background"];d&&(n["--persona-history-rail-header-bg"]=d);let p=n["--persona-components-history-railHeader-border"];p&&(n["--persona-history-rail-header-border"]=p);let u=n["--persona-components-history-railHeader-minHeight"];u&&(n["--persona-history-rail-header-min-height"]=u);for(let[j,Fe]of[["margin","margin"],["borderRadius","radius"],["shadow","shadow"],["background","bg"]]){let $e=n[`--persona-components-history-overlay-${j}`];$e&&(n[`--persona-history-overlay-${Fe}`]=$e)}for(let[j,Fe]of[["background","bg"],["borderRadius","radius"]]){let $e=n[`--persona-components-history-menu-${j}`];$e&&(n[`--persona-history-menu-${Fe}`]=$e)}let m=e.components?.history?.motion;if(m){let j=Se=>{if(Se===void 0)return;let Ie=String(Se).trim();return/^\d+(\.\d+)?$/.test(Ie)?`${Ie}ms`:Ie},Fe=j(m.enterDurationMs);Fe!==void 0&&(n["--persona-history-enter-ms"]=Fe);let $e=j(m.exitDurationMs);$e!==void 0&&(n["--persona-history-exit-ms"]=$e),m.enterEasing&&(n["--persona-history-enter-easing"]=m.enterEasing),m.exitEasing&&(n["--persona-history-exit-easing"]=m.exitEasing)}let y=n["--persona-components-history-dangerForeground"];y&&(n["--persona-history-danger-fg"]=y),n["--persona-danger"]=n["--persona-components-history-confirm-dangerBackground"]??n["--persona-palette-colors-error-700"]??"#b42318",n["--persona-danger-fg"]=n["--persona-components-history-confirm-dangerForeground"]??"#ffffff";for(let j of["scrim","shadow"]){let Fe=n[`--persona-components-history-confirm-${j}`];Fe&&(n[`--persona-history-confirm-${j}`]=Fe)}for(let[j,Fe]of[["background","background"],["foreground","foreground"],["hintForeground","hint-fg"],["borderRadius","radius"],["fontSize","font-size"],["padding","padding"],["maxWidth","max-width"],["shadow","shadow"]]){let $e=n[`--persona-components-tooltip-${j}`];$e&&(n[`--persona-tooltip-${Fe}`]=$e)}e.components?.tooltip?.arrow===!1&&(n["--persona-tooltip-arrow-display"]="none");for(let[j,Fe]of[["background","bg"],["border","border"],["hoverBackground","hover-bg"],["hoverForeground","hover-fg"],["borderRadius","radius"]]){let $e=n[`--persona-components-messageActions-${j}`];$e&&(n[`--persona-message-action-${Fe}`]=$e)}on(n,[["intro-card-bg","components-introCard-background","=transparent"],["intro-card-radius","components-introCard-borderRadius","=1rem"]]);let h=n["--persona-components-introCard-background"],C=n["--persona-components-introCard-shadow"],x=(!h||h==="transparent"||h==="none")&&(!C||C==="none"),S=n["--persona-components-introCard-padding"]??"1.5rem";n["--persona-intro-card-padding"]=x&&S==="1.5rem"?"1.5rem 0":S,on(n,[["intro-card-shadow","components-introCard-shadow","=none"],["intro-card-border","components-introCard-border","=none"],["input-background","components-input-background","surface"],["input-placeholder","components-input-placeholder","text-muted"],["input-backdrop-filter","components-input-backdropFilter","=none"],["message-user-bg","components-message-user-background","accent"],["message-user-text","components-message-user-text","text-inverse"],["message-user-shadow","components-message-user-shadow","=0 5px 15px rgba(15, 23, 42, 0.08)"],["message-assistant-bg","components-message-assistant-background","surface"],["message-assistant-text","components-message-assistant-text","text"],["message-assistant-border","components-message-assistant-border","border"],["message-assistant-shadow","components-message-assistant-shadow","=0 1px 2px 0 rgb(0 0 0 / 0.05)"],["scroll-to-bottom-bg","components-scrollToBottom-background","button-primary-bg","accent"],["scroll-to-bottom-fg","components-scrollToBottom-foreground","button-primary-fg","text-inverse"],["scroll-to-bottom-border","components-scrollToBottom-border","primary"],["scroll-to-bottom-size","components-scrollToBottom-size","=40px"],["scroll-to-bottom-radius","components-scrollToBottom-borderRadius","button-radius","radius-full","=9999px"],["scroll-to-bottom-shadow","components-scrollToBottom-shadow","palette-shadows-sm","=0 1px 2px 0 rgb(0 0 0 / 0.05)"],["scroll-to-bottom-padding","components-scrollToBottom-padding","=0.5rem 0.875rem"],["scroll-to-bottom-gap","components-scrollToBottom-gap","=0.5rem"],["scroll-to-bottom-font-size","components-scrollToBottom-fontSize","palette-typography-fontSize-sm","=0.875rem"],["scroll-to-bottom-icon-size","components-scrollToBottom-iconSize","=14px"],["tool-bubble-shadow","components-toolBubble-shadow","=0 5px 15px rgba(15, 23, 42, 0.08)"],["reasoning-bubble-shadow","components-reasoningBubble-shadow","=0 5px 15px rgba(15, 23, 42, 0.08)"],["composer-shadow","components-composer-shadow","=none"]]),on(n,[["composer-padding","components-composer-padding","=0.75rem 1rem"],["composer-gap","components-composer-gap","=0.5rem"],["composer-font-size","components-composer-fontSize","=0.875rem"],["composer-line-height","components-composer-lineHeight","=1.25rem"],["composer-control-size","components-composer-controlSize","=40px"],["composer-control-icon-size","components-composer-controlIconSize","=24px"],["motion-duration-fast","components-motion-durationFast","=120ms"],["motion-duration-base","components-motion-durationBase","=200ms"],["motion-easing","components-motion-easing","=cubic-bezier(0.2, 0, 0, 1)"],["composer-border-color","components-composer-borderColor","border","=#e5e7eb"],["composer-overlay-band","components-composer-overlayBand","=transparent"],["scrollbar-thumb","components-scrollbar-thumb","border","=#e5e7eb"],["scrollbar-track","components-scrollbar-track","=transparent"],["md-inline-code-bg","components-markdown-inlineCode-background","container"],["md-inline-code-color","components-markdown-inlineCode-foreground","text"],["md-link-color","components-markdown-link-foreground","accent","=#0f0f0f"]]);let k=n["--persona-components-markdown-heading-h1-fontSize"];k&&(n["--persona-md-h1-size"]=k);let B=n["--persona-components-markdown-heading-h1-fontWeight"];B&&(n["--persona-md-h1-weight"]=B);let $=n["--persona-components-markdown-heading-h2-fontSize"];$&&(n["--persona-md-h2-size"]=$);let T=n["--persona-components-markdown-heading-h2-fontWeight"];T&&(n["--persona-md-h2-weight"]=T);let I=n["--persona-components-markdown-prose-fontFamily"];I&&I!=="inherit"&&(n["--persona-md-prose-font-family"]=I),on(n,[["md-code-block-bg","components-markdown-codeBlock-background","container"],["md-code-block-border-color","components-markdown-codeBlock-borderColor","border"],["md-code-block-text-color","components-markdown-codeBlock-textColor","=inherit"]]),on(n,[["md-code-block-border-radius","components-markdown-codeBlock-borderRadius","radius-md","=0.375rem"]]),on(n,[["md-table-header-bg","components-markdown-table-headerBackground","container"],["md-table-border-color","components-markdown-table-borderColor","border"]]),on(n,[["md-hr-color","components-markdown-hr-color","divider"]]),on(n,[["md-blockquote-border-color","components-markdown-blockquote-borderColor","palette-colors-gray-900"],["md-blockquote-bg","components-markdown-blockquote-background","=transparent"],["md-blockquote-text-color","components-markdown-blockquote-textColor","palette-colors-gray-500"]]),n["--cw-container"]=n["--persona-components-collapsibleWidget-container"]??n["--persona-surface"],n["--cw-surface"]=n["--persona-components-collapsibleWidget-surface"]??n["--persona-surface"],n["--cw-border"]=n["--persona-components-collapsibleWidget-border"]??n["--persona-border"],on(n,[["message-border","components-message-border","border"]]),on(n,[["message-user-padding","components-message-user-padding"],["message-user-max-width","components-message-user-maxWidth"],["message-user-font-size","components-message-user-fontSize"],["message-user-font-family","components-message-user-fontFamily"],["message-user-line-height","components-message-user-lineHeight"],["message-assistant-padding","components-message-assistant-padding"],["message-assistant-max-width","components-message-assistant-maxWidth"],["message-assistant-font-size","components-message-assistant-fontSize"],["message-assistant-font-family","components-message-assistant-fontFamily"],["message-assistant-line-height","components-message-assistant-lineHeight"]]);let A=e.components,D=A?.iconButton;D&&(D.background&&(n["--persona-icon-btn-bg"]=D.background),D.border&&(n["--persona-icon-btn-border"]=D.border),D.color&&(n["--persona-icon-btn-color"]=D.color),D.padding&&(n["--persona-icon-btn-padding"]=D.padding),D.borderRadius&&(n["--persona-icon-btn-radius"]=D.borderRadius),D.hoverBackground&&(n["--persona-icon-btn-hover-bg"]=D.hoverBackground),D.hoverColor&&(n["--persona-icon-btn-hover-color"]=D.hoverColor),D.activeBackground&&(n["--persona-icon-btn-active-bg"]=D.activeBackground),D.activeBorder&&(n["--persona-icon-btn-active-border"]=D.activeBorder));let Q=A?.labelButton;Q&&(Q.background&&(n["--persona-label-btn-bg"]=Q.background),Q.border&&(n["--persona-label-btn-border"]=Q.border),Q.color&&(n["--persona-label-btn-color"]=Q.color),Q.padding&&(n["--persona-label-btn-padding"]=Q.padding),Q.borderRadius&&(n["--persona-label-btn-radius"]=Q.borderRadius),Q.hoverBackground&&(n["--persona-label-btn-hover-bg"]=Q.hoverBackground),Q.fontSize&&(n["--persona-label-btn-font-size"]=Q.fontSize),Q.gap&&(n["--persona-label-btn-gap"]=Q.gap));let le=A?.toggleGroup;le&&(le.gap&&(n["--persona-toggle-group-gap"]=le.gap),le.borderRadius&&(n["--persona-toggle-group-radius"]=le.borderRadius));let re=A?.artifact;if(re?.toolbar){let j=re.toolbar;j.iconHoverColor&&(n["--persona-artifact-toolbar-icon-hover-color"]=j.iconHoverColor),j.iconHoverBackground&&(n["--persona-artifact-toolbar-icon-hover-bg"]=j.iconHoverBackground),j.iconPadding&&(n["--persona-artifact-toolbar-icon-padding"]=j.iconPadding),j.iconBorderRadius&&(n["--persona-artifact-toolbar-icon-radius"]=j.iconBorderRadius),j.iconBorder&&(n["--persona-artifact-toolbar-icon-border"]=j.iconBorder),j.toggleGroupGap&&(n["--persona-artifact-toolbar-toggle-group-gap"]=Em(j.toggleGroupGap)),j.toggleBorderRadius&&(n["--persona-artifact-toolbar-toggle-radius"]=j.toggleBorderRadius),j.toggleGroupPadding&&(n["--persona-artifact-toolbar-toggle-group-padding"]=Em(j.toggleGroupPadding)),j.toggleGroupBorder&&(n["--persona-artifact-toolbar-toggle-group-border"]=j.toggleGroupBorder),j.toggleGroupBorderRadius&&(n["--persona-artifact-toolbar-toggle-group-radius"]=j.toggleGroupBorderRadius),j.toggleGroupBackground&&(n["--persona-artifact-toolbar-toggle-group-bg"]=Cn(e,j.toggleGroupBackground)??j.toggleGroupBackground),j.copyBackground&&(n["--persona-artifact-toolbar-copy-bg"]=j.copyBackground),j.copyBorder&&(n["--persona-artifact-toolbar-copy-border"]=j.copyBorder),j.copyColor&&(n["--persona-artifact-toolbar-copy-color"]=j.copyColor),j.copyBorderRadius&&(n["--persona-artifact-toolbar-copy-radius"]=Em(j.copyBorderRadius)),j.copyPadding&&(n["--persona-artifact-toolbar-copy-padding"]=j.copyPadding),j.copyMenuBackground&&(n["--persona-artifact-toolbar-copy-menu-bg"]=j.copyMenuBackground,n["--persona-dropdown-bg"]=n["--persona-dropdown-bg"]??j.copyMenuBackground),j.copyMenuBorder&&(n["--persona-artifact-toolbar-copy-menu-border"]=j.copyMenuBorder,n["--persona-dropdown-border"]=n["--persona-dropdown-border"]??j.copyMenuBorder),j.copyMenuShadow&&(n["--persona-artifact-toolbar-copy-menu-shadow"]=j.copyMenuShadow,n["--persona-dropdown-shadow"]=n["--persona-dropdown-shadow"]??j.copyMenuShadow),j.copyMenuBorderRadius&&(n["--persona-artifact-toolbar-copy-menu-radius"]=j.copyMenuBorderRadius,n["--persona-dropdown-radius"]=n["--persona-dropdown-radius"]??j.copyMenuBorderRadius),j.copyMenuItemHoverBackground&&(n["--persona-artifact-toolbar-copy-menu-item-hover-bg"]=j.copyMenuItemHoverBackground,n["--persona-dropdown-item-hover-bg"]=n["--persona-dropdown-item-hover-bg"]??j.copyMenuItemHoverBackground),j.iconBackground&&(n["--persona-artifact-toolbar-icon-bg"]=j.iconBackground),j.toolbarBorder&&(n["--persona-artifact-toolbar-border"]=j.toolbarBorder)}if(re?.tab){let j=re.tab;j.background&&(n["--persona-artifact-tab-bg"]=j.background),j.activeBackground&&(n["--persona-artifact-tab-active-bg"]=j.activeBackground),j.activeBorder&&(n["--persona-artifact-tab-active-border"]=j.activeBorder),j.borderRadius&&(n["--persona-artifact-tab-radius"]=j.borderRadius),j.textColor&&(n["--persona-artifact-tab-color"]=j.textColor),j.hoverBackground&&(n["--persona-artifact-tab-hover-bg"]=j.hoverBackground),j.listBackground&&(n["--persona-artifact-tab-list-bg"]=j.listBackground),j.listBorderColor&&(n["--persona-artifact-tab-list-border-color"]=j.listBorderColor),j.listPadding&&(n["--persona-artifact-tab-list-padding"]=j.listPadding)}if(re?.pane){let j=re.pane;if(j.toolbarBackground){let Fe=Cn(e,j.toolbarBackground)??j.toolbarBackground;n["--persona-artifact-toolbar-bg"]=Fe}}if(re?.card){let j=re.card;j.background&&(n["--persona-artifact-card-bg"]=j.background),j.border&&(n["--persona-artifact-card-border"]=j.border),j.borderRadius&&(n["--persona-artifact-card-radius"]=j.borderRadius),j.hoverBackground&&(n["--persona-artifact-card-hover-bg"]=j.hoverBackground),j.hoverBorderColor&&(n["--persona-artifact-card-hover-border"]=j.hoverBorderColor)}if(re?.inline){let j=re.inline;j.background&&(n["--persona-artifact-inline-bg"]=Cn(e,j.background)??j.background),j.border&&(n["--persona-artifact-inline-border"]=j.border),j.borderRadius&&(n["--persona-artifact-inline-radius"]=j.borderRadius),j.chromeBackground&&(n["--persona-artifact-inline-chrome-bg"]=Cn(e,j.chromeBackground)??j.chromeBackground),j.chromeBorder&&(n["--persona-artifact-inline-chrome-border"]=Cn(e,j.chromeBorder)??j.chromeBorder),j.titleColor&&(n["--persona-artifact-inline-title-color"]=Cn(e,j.titleColor)??j.titleColor),j.mutedColor&&(n["--persona-artifact-inline-muted-color"]=Cn(e,j.mutedColor)??j.mutedColor),j.frameHeight&&(n["--persona-artifact-inline-frame-height"]=j.frameHeight)}let E=A?.code;E&&(E.keywordColor&&(n["--persona-code-keyword-color"]=E.keywordColor),E.stringColor&&(n["--persona-code-string-color"]=E.stringColor),E.commentColor&&(n["--persona-code-comment-color"]=E.commentColor),E.numberColor&&(n["--persona-code-number-color"]=E.numberColor),E.tagColor&&(n["--persona-code-tag-color"]=E.tagColor),E.attrColor&&(n["--persona-code-attr-color"]=E.attrColor),E.propertyColor&&(n["--persona-code-property-color"]=E.propertyColor),E.lineNumberColor&&(n["--persona-code-line-number-color"]=E.lineNumberColor),E.gutterBorderColor&&(n["--persona-code-gutter-border-color"]=E.gutterBorderColor),E.background&&(n["--persona-code-bg"]=Cn(e,E.background)??E.background));let _=n["--persona-surface"],W=n["--persona-container"],L=n["--persona-palette-colors-gray-100"]??"#f3f4f6",X=n["--persona-palette-colors-gray-200"]??"#e5e7eb",K=n["--persona-palette-colors-gray-300"]??"#d1d5db",de=!W||W===_,ue=hP(_??n["--persona-background"]),fe=de&&ue!==void 0&&ue<yP,Me=fe?"rgba(255, 255, 255, 0.08)":L,ye=fe?"rgba(255, 255, 255, 0.12)":X,Ne=fe?"rgba(255, 255, 255, 0.16)":K,lt=de?Me:W,Ce=de?ye:W;return n["--persona-icon-btn-hover-bg"]=n["--persona-icon-btn-hover-bg"]??lt,n["--persona-icon-btn-active-bg"]=n["--persona-icon-btn-active-bg"]??Ce,de&&(n["--persona-icon-btn-active-border"]=n["--persona-icon-btn-active-border"]??Ne),n["--persona-label-btn-hover-bg"]=n["--persona-label-btn-hover-bg"]??lt,n["--persona-artifact-tab-hover-bg"]=n["--persona-artifact-tab-hover-bg"]??lt,n["--persona-artifact-card-hover-bg"]=n["--persona-artifact-card-hover-bg"]??lt,n}var dw={header:"Widget header bar",messages:"Message list area","user-message":"User message bubble","assistant-message":"Assistant message bubble",composer:"Footer / composer area",container:"Main widget container","artifact-pane":"Artifact sidebar","artifact-toolbar":"Artifact toolbar","artifact-inline":"Inline artifact block","artifact-inline-chrome":"Inline artifact title bar"};var bP={colors:{primary:{50:"#ffffff",100:"#f5f5f5",200:"#d4d4d4",300:"#a3a3a3",400:"#737373",500:"#171717",600:"#0f0f0f",700:"#0a0a0a",800:"#050505",900:"#030303",950:"#000000"},secondary:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},accent:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},success:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d"},warning:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12"},error:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d"}}},vP={components:{button:{ghost:{hoverBackground:"rgba(255, 255, 255, 0.08)"}},markdown:{link:{foreground:"palette.colors.primary.300"}},history:{dangerForeground:"#f87171",confirm:{dangerBackground:"palette.colors.error.600",scrim:"rgba(0, 0, 0, 0.6)"}}}},pw=e=>{if(!(!e||typeof e!="object"||Array.isArray(e)))return e},Cl=()=>typeof document<"u"&&document.documentElement.classList.contains("dark")||typeof window<"u"&&window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light",CP=e=>{let t=e?.colorScheme??"light";return t==="light"?"light":t==="dark"?"dark":Cl()},tp=e=>CP(e),wP=e=>vl(e),xP=e=>{let t=Ki(vP,e??{})??{};return vl({...t,palette:{...t.palette,colors:{...bP.colors,...t.palette?.colors}}},{validate:!1})},Xr=e=>{let t=tp(e),n=pw(e?.theme),o=pw(e?.darkTheme);return t==="dark"?xP(Ki(n??{},o??{})):wP(n)},SP=e=>ep(e),Vs=(e,t)=>{let n=Xr(t),o=SP(n);for(let[r,s]of Object.entries(o))e.style.setProperty(r,s);e.setAttribute("data-persona-color-scheme",tp(t))},Yi=e=>{let t=[];if(typeof document<"u"&&typeof MutationObserver<"u"){let n=new MutationObserver(()=>{e(Cl())});n.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),t.push(()=>n.disconnect())}if(typeof window<"u"&&window.matchMedia){let n=window.matchMedia("(prefers-color-scheme: dark)"),o=()=>e(Cl());n.addEventListener?(n.addEventListener("change",o),t.push(()=>n.removeEventListener("change",o))):n.addListener&&(n.addListener(o),t.push(()=>n.removeListener(o)))}return()=>{t.forEach(n=>n())}};var vr=require("lucide");var Jr=(e,t)=>e?.layout?.contentMaxWidth??(t?e?.launcher?.composerBar?.contentMaxWidth??"720px":"768px");var np="24px",Im=(e,t)=>t||e?.composer?.placement!=="overlay"?"block":"overlay",wl=e=>{if(typeof e!="string")return null;let t=/^\s*(\d+(?:\.\d+)?)\s*%\s*$/.exec(e);if(!t)return null;let n=Number(t[1])/100;return n>0&&n<1?n:null},uw=e=>Math.max(0,Math.round(e.columnHeight*(1-e.fraction))-e.footerHeight);var gw=null;var Rm=()=>{if(gw!==null)return gw;if(typeof navigator>"u")return!1;let t=navigator.userAgentData?.platform??navigator.platform??"";return/mac|iphone|ipad|ipod/i.test(t)},AP="ArrowUp ArrowDown ArrowLeft ArrowRight PageUp PageDown Space",op=(e,t)=>{console.warn(`[persona] ${e} shortcut: ${t}`)},rp=e=>{let t=e.toLowerCase().split("+").map(r=>r.trim()),n=t.pop(),o={key:n,mod:!1,shift:!1,alt:!1};for(let r of t)if(r==="mod"||r==="cmd"||r==="ctrl")o.mod=!0;else if(r==="shift")o.shift=!0;else if(r==="alt"||r==="option")o.alt=!0;else return op("unknown modifier in",e),null;return!o.mod||o.shift&&o.alt||/^(enter|esc(ape)?)$/.test(n)||!/^([^+\s]|[a-z]{2,12})$/.test(n)?(op("unsupported",e),null):(n==="space"&&(o.key=" "),o)},MP=e=>AP.split(" ").find(t=>t.toLowerCase()===e)??(e===" "?"Space":e.length===1?e.toUpperCase():e[0].toUpperCase()+e.slice(1)),mw=(e,t)=>{let n=rp(e);if(!n)return"";let o=Rm(),r=MP(n.key);if(!t&&o)return`${n.alt?"\u2325":""}${n.shift?"\u21E7":""}\u2318${r}`;let s=[t?o?"Meta":"Control":"Ctrl"];return n.alt&&s.push("Alt"),n.shift&&s.push("Shift"),s.push(r),s.join("+")},sp=e=>mw(e,!1),xl=e=>mw(e,!0),EP=(e,t)=>t.key?.toLowerCase()===e.key&&(Rm()?t.metaKey:t.ctrlKey)===e.mod&&!(Rm()?t.ctrlKey:t.metaKey)&&t.shiftKey===e.shift&&t.altKey===e.alt,TP=e=>{if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"||e.isContentEditable},fw=e=>{let t=new Map,n=e?.ownerDocument??(typeof document<"u"?document:null),o=(s,a)=>{if((s.scope??"widget")==="page")return!0;if(!e)return!1;let l=a.composedPath?.();return l?.length?l.includes(e):e.contains(a.target)},r=s=>{if(s.isComposing||!t.size)return;let a=s.composedPath?.()[0]??s.target;for(let l of t.values())if(EP(l.parsed,s)&&l.when?.()!==!1&&o(l,s)&&!(!l.allowInInput&&TP(a))){s.preventDefault();try{l.run(s)}catch(d){op(`${l.id} threw on`,l.combo),console.warn(d)}return}};return n?.addEventListener("keydown",r),{register(s){let a=rp(s.combo);if(!a)return()=>{};let l=`${a.mod?"m":""}${a.shift?"s":""}${a.alt?"a":""}${a.key}`,d=t.get(l);return d?(op(`${d.id} already owns`,s.combo),()=>{}):(t.set(l,{...s,parsed:a}),s.element?.setAttribute("aria-keyshortcuts",xl(s.combo)),()=>{t.get(l)?.id===s.id&&t.delete(l),s.element?.removeAttribute("aria-keyshortcuts")})},destroy(){t.clear(),n?.removeEventListener("keydown",r)}}};var hw=require("idiomorph"),ip=(e,t,n={})=>{let{preserveTypingAnimation:o=!0}=n;hw.Idiomorph.morph(e,t.innerHTML,{morphStyle:"innerHTML",callbacks:{beforeNodeMorphed(r,s){if(r instanceof HTMLElement&&o){if(r.classList.contains("persona-animate-typing")||r.hasAttribute("data-preserve-runtime"))return!1;if(r.hasAttribute("data-tool-elapsed"))return s instanceof HTMLElement&&s.getAttribute("data-tool-elapsed")===r.getAttribute("data-tool-elapsed")?!1:void 0;if(r.hasAttribute("data-preserve-animation")){if(s instanceof HTMLElement&&!s.hasAttribute("data-preserve-animation"))return;if(s instanceof HTMLElement&&s.hasAttribute("data-preserve-animation")){let a=r.textContent??"",l=s.textContent??"";if(a!==l)return}return!1}}}}})};var yw=e=>e.replace(/^\n+/,"").replace(/\s+$/,"");var Hm={index:-1,draft:""};function bw(e){let{direction:t,history:n,currentValue:o,atStart:r,state:s}=e,a=s.index!==-1;if(n.length===0)return{handled:!1,state:s};if(t==="up"){if(!a&&!r)return{handled:!1,state:s};if(!a){let l=n.length-1;return{handled:!0,value:n[l],state:{index:l,draft:o}}}if(s.index>0){let l=s.index-1;return{handled:!0,value:n[l],state:{index:l,draft:s.draft}}}return{handled:!0,state:s}}if(!a)return{handled:!1,state:s};if(s.index<n.length-1){let l=s.index+1;return{handled:!0,value:n[l],state:{index:l,draft:s.draft}}}return{handled:!0,value:s.draft,state:{index:-1,draft:s.draft}}}function vw(e,t){return[e.id,e.role,e.content?.length??0,e.content?.slice(-32)??"",e.streaming?"1":"0",e.voiceProcessing?"1":"0",e.variant??"",e.rawContent?.length??0,e.llmContent?.length??0,e.approval?.status??"",e.toolCall?.status??"",e.toolCall?.name??"",e.toolCall?.chunks?.length??0,e.toolCall?.chunks?.[e.toolCall.chunks.length-1]?.slice(-32)??"",typeof e.toolCall?.args=="string"?e.toolCall.args.length:e.toolCall?.args?JSON.stringify(e.toolCall.args).length:0,e.reasoning?.chunks?.length??0,e.reasoning?.chunks?.[e.reasoning.chunks.length-1]?.length??0,e.reasoning?.chunks?.[e.reasoning.chunks.length-1]?.slice(-32)??"",e.contentParts?.length??0,e.stopReason??"",t].join("\0")}function Cw(){return new Map}function ww(e,t,n){let o=e.get(t);return o&&o.fingerprint===n?o.wrapper:null}function xw(e,t,n,o){e.set(t,{fingerprint:n,wrapper:o})}function Sw(e,t){for(let n of e.keys())t.has(n)||e.delete(n)}function Aw(e){return e.role!=="assistant"||e.variant==="tool"||e.variant==="reasoning"?!1:e.variant==="approval"?!0:!!(e.content?.trim()||e.rawContent?.trim()||e.contentParts?.length)}function Mw(e=!0){let t=e;return{isFollowing:()=>t,pause:()=>t?(t=!1,!0):!1,resume:()=>t?!1:(t=!0,!0)}}function zo(e){return Math.max(0,e.scrollHeight-e.clientHeight)}function Ks(e,t){return zo(e)-e.scrollTop<=t}function Ew(e){let{following:t,currentScrollTop:n,lastScrollTop:o,nearBottom:r,userScrollThreshold:s,isAutoScrolling:a=!1,pauseOnUpwardScroll:l=!1,pauseWhenAwayFromBottom:d=!0,resumeRequiresDownwardScroll:p=!1}=e,u=n-o;return a||Math.abs(u)<s?{action:"none",delta:u,nextLastScrollTop:n}:!t&&r&&(!p||u>0)?{action:"resume",delta:u,nextLastScrollTop:n}:t&&l&&u<0?{action:"pause",delta:u,nextLastScrollTop:n}:t&&d&&!r?{action:"pause",delta:u,nextLastScrollTop:n}:{action:"none",delta:u,nextLastScrollTop:n}}function Tw(e){let{following:t,deltaY:n,nearBottom:o=!1,resumeWhenNearBottom:r=!1}=e;return t&&n<0?"pause":!t&&r&&n>0&&o?"resume":"none"}function Pw(e,t){return!e||e.isCollapsed?!1:t.contains(e.anchorNode)||t.contains(e.focusNode)}function Wm(e){let t=Math.max(0,e.anchorOffsetTop-e.topOffset),n=Math.max(0,t+e.viewportHeight-e.contentHeight+(e.slack??0));return{targetScrollTop:t,spacerHeight:n}}function kw(e){let t=Math.max(0,e.currentContentHeight-e.contentHeightAtAnchor);return Math.max(0,e.initialSpacerHeight-t)}var Sl={type:"none",placeholder:"none",speed:120,duration:1800,buffer:"none"},PP=["pre","code","a","script","style"],ap=e=>({type:e?.type??Sl.type,placeholder:e?.placeholder??Sl.placeholder,speed:e?.speed??Sl.speed,duration:e?.duration??Sl.duration,buffer:e?.buffer??Sl.buffer}),Iw=[{name:"typewriter",containerClass:"persona-stream-typewriter",wrap:"char",useCaret:!0},{name:"pop-bubble",bubbleClass:"persona-stream-pop",wrap:"none"},{name:"letter-rise",containerClass:"persona-stream-letter-rise",wrap:"char"},{name:"word-fade",containerClass:"persona-stream-word-fade",wrap:"word"}],Al=new Map;for(let e of Iw)Al.set(e.name,e);var Rw=["wipe","glyph-cycle"],Ml=e=>{Al.set(e.name,e)},Hw=e=>{Iw.some(t=>t.name===e)||Al.delete(e)},Ww=()=>Array.from(Al.keys()),El=(e,t)=>e==="none"?null:t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]??null:Al.get(e)??null,lp=(e,t,n,o,r)=>{if(!r)return e;if(n?.bufferContent)return n.bufferContent(e,o);if(!e)return e;if(t==="word"){let s=e.search(/\s(?=\S*$)/);return s<0?"":e.slice(0,s)}if(t==="line"){let s=e.lastIndexOf(`
28
- `);return s<0?"":e.slice(0,s)}return e},kP=(e,t,n,o)=>{let r=e.createElement("span");return r.className="persona-stream-char",r.id=`stream-c-${n}-${o}`,r.style.setProperty("--char-index",String(o)),r.textContent=t,r},LP=(e,t,n,o)=>{let r=e.createElement("span");return r.className="persona-stream-word",r.id=`stream-w-${n}-${o}`,r.style.setProperty("--word-index",String(o)),r.textContent=t,r},Om=/\s/,IP=(e,t)=>{let n=e.parentNode;for(;n;){if(n.nodeType===1){let o=n;if(t.has(o.tagName.toLowerCase()))return!0}n=n.parentNode}return!1},RP=(e,t,n)=>{let o=e.ownerDocument,r=e.parentNode;if(!o||!r)return;let s=e.nodeValue??"";if(!s)return;let a=o.createDocumentFragment(),l=0;for(;l<s.length;)if(Om.test(s[l])){let d=l;for(;d<s.length&&Om.test(s[d]);)d+=1;a.appendChild(o.createTextNode(s.slice(l,d))),l=d}else{let d=o.createElement("span");d.className="persona-stream-word-group";let p=l;for(;p<s.length&&!Om.test(s[p]);)d.appendChild(kP(o,s[p],t,n.value)),n.value+=1,p+=1;a.appendChild(d),l=p}r.replaceChild(a,e)},HP=(e,t,n)=>{let o=e.ownerDocument,r=e.parentNode;if(!o||!r)return;let s=e.nodeValue??"";if(!s)return;let a=o.createDocumentFragment(),l=s.split(/(\s+)/);for(let d of l)d&&(/^\s+$/.test(d)?a.appendChild(o.createTextNode(d)):(a.appendChild(LP(o,d,t,n.value)),n.value+=1));r.replaceChild(a,e)},Tl=(e,t,n,o)=>{if(!e||typeof document>"u")return e;let r=document.createElement("div");r.innerHTML=e;let s=new Set((o?.skipTags??PP).map(m=>m.toLowerCase())),a=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null),l=[],d=a.nextNode();for(;d;)IP(d,s)||l.push(d),d=a.nextNode();let p={value:o?.startIndex??0},u=t==="char"?RP:HP;for(let m of l)u(m,n,p);return r.innerHTML},cp=(e=document)=>{let t=e.createElement("span");return t.className="persona-stream-caret",t.setAttribute("aria-hidden","true"),t.setAttribute("data-preserve-animation","stream-caret"),t},Pl=(e=document)=>{let t=e.createElement("div");t.className="persona-stream-skeleton",t.setAttribute("data-preserve-animation","stream-skeleton"),t.setAttribute("aria-hidden","true");let n=e.createElement("div");return n.className="persona-stream-skeleton-line",t.appendChild(n),t},Lw=new WeakMap,WP=(e,t)=>{if(!e.styles)return;let n=Lw.get(t);if(n||(n=new Set,Lw.set(t,n)),n.has(e.name)){let s=e.name.replace(/["\\]/g,"\\$&");if(t.querySelector(`style[data-persona-animation="${s}"]`))return;n.delete(e.name)}n.add(e.name);let r=(t instanceof ShadowRoot?t.ownerDocument:t.ownerDocument??document).createElement("style");r.setAttribute("data-persona-animation",e.name),r.textContent=e.styles,t.appendChild(r)},Bm=new WeakMap,OP=(e,t)=>{if(!e.onAttach)return;let n=Bm.get(t);if(n||(n=new Map,Bm.set(t,n)),n.has(e.name))return;let o=e.onAttach(t);n.set(e.name,o)},Ow=e=>{let t=Bm.get(e);if(t){for(let n of t.values())typeof n=="function"&&n();t.clear()}},kl=(e,t)=>{WP(e,t),OP(e,t)};var{setLoader:TW,load:BP}=bt({fallbackImport:()=>import("@runtypelabs/persona/animations-extra")});var Bw=BP;function _m(e,t=an){let n=e.style.position,o=e.style.zIndex,r=e.style.isolation,s=getComputedStyle(e),a=s.position==="static"||s.position==="";return a&&(e.style.position="relative"),e.style.zIndex=String(t),e.style.isolation="isolate",()=>{a&&(e.style.position=n),e.style.zIndex=o,e.style.isolation=r}}var Ll=0,Zr=null;function Dm(e=document){if(Ll++,Ll===1){let n=e.body,r=(e.defaultView??window).scrollY||e.documentElement.scrollTop;Zr={originalOverflow:n.style.overflow,originalPosition:n.style.position,originalTop:n.style.top,originalWidth:n.style.width,scrollY:r},n.style.overflow="hidden",n.style.position="fixed",n.style.top=`-${r}px`,n.style.width="100%"}let t=!1;return()=>{if(!t&&(t=!0,Ll=Math.max(0,Ll-1),Ll===0&&Zr)){let n=e.body,o=e.defaultView??window;n.style.overflow=Zr.originalOverflow,n.style.position=Zr.originalPosition,n.style.top=Zr.originalTop,n.style.width=Zr.originalWidth,o.scrollTo(0,Zr.scrollY),Zr=null}}}var Il={side:"right",width:"420px",animate:!0,reveal:"resize",maxHeight:"100dvh"},Mt=e=>(e?.launcher?.mountMode??"floating")==="docked",es=e=>(e?.launcher?.mountMode??"floating")==="composer-bar",On=e=>{let t=e?.launcher?.dock;return{side:t?.side??Il.side,width:t?.width??Il.width,animate:t?.animate??Il.animate,reveal:t?.reveal??Il.reveal,maxHeight:t?.maxHeight??Il.maxHeight}};var Dw=require("lucide");var Nm=e=>e==="followUp"?"follow-up":e,Fm=(e,t=0)=>{if(typeof e=="string"){let r=e.trim();return r?{id:r,label:r,prompt:r,emphasis:"default"}:null}let n=e.label.trim();if(!n)return null;let o=e.prompt?.trim()||n;return{id:e.id?.trim()||o||`suggestion-${t}`,label:n,prompt:o,description:e.description?.trim()||void 0,icon:e.icon,iconColor:e.iconColor?.trim()||void 0,behavior:e.behavior,emphasis:e.emphasis??"default"}},_P=e=>{switch(e){case"serif":return'Georgia, "Times New Roman", Times, serif';case"mono":return'"Courier New", Courier, "Lucida Console", Monaco, monospace';default:return'-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif'}},_w=new WeakSet,DP=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,NP=e=>{DP()||e.forEach((t,n)=>{typeof t.animate=="function"&&t.animate([{opacity:"0",transform:"translateY(4px)"},{opacity:"1",transform:"none"}],{duration:250,delay:n*60,easing:"ease-out",fill:"backwards"})})},$m=e=>{var $,T,I;let{item:t,index:n,surface:o,source:r,variant:s,streaming:a,config:l,plugins:d,chipsConfig:p,session:u,getTextarea:m,eventTarget:y,submitPrompt:h}=e,C=o==="followUp",x=t.behavior,S=()=>{if(u.isStreaming())return;let A={suggestion:{...t},surface:o,source:r,behavior:x},D=y.dispatchEvent(new CustomEvent("persona:suggestion:selected",{detail:A,bubbles:!0,composed:!0,cancelable:!0}));if(C&&y.dispatchEvent(new CustomEvent("persona:suggestReplies:selected",{detail:{suggestion:t.prompt},bubbles:!0,composed:!0})),!D)return;for(let le of d)if(le.onSuggestionSelect?.({suggestion:{...t},surface:o,source:r,variant:s,config:l})===!1)return;let Q=m();if(x==="fill"){Q.value=t.prompt,Q.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),Q.focus();return}if(h){h(t.prompt);return}Q.value="",u.sendMessage(t.prompt)},k=()=>{let A=M("button",`persona-suggestion persona-suggestion--${s}`);if(A.type="button",A.disabled=a,A.dataset.suggestionId=t.id,A.dataset.emphasis=t.emphasis,A.dataset.behavior=x,s==="chip"&&(p?.fontFamily&&(A.style.fontFamily=_P(p.fontFamily)),p?.fontWeight&&(A.style.fontWeight=p.fontWeight),p?.paddingX&&(A.style.paddingLeft=p.paddingX,A.style.paddingRight=p.paddingX),p?.paddingY&&(A.style.paddingTop=p.paddingY,A.style.paddingBottom=p.paddingY)),t.icon){let Q=ge(t.icon,"var(--persona-suggestion-icon-size)","currentColor",1.8);Q&&(Q.classList.add("persona-suggestion__icon"),t.iconColor&&(Q.style.color=t.iconColor),A.appendChild(Q))}let D=M("span","persona-suggestion__copy");if(D.appendChild(Y("span",{className:"persona-suggestion__label",text:t.label})),t.description&&s!=="chip"&&D.appendChild(Y("span",{className:"persona-suggestion__description",text:t.description})),A.appendChild(D),s!=="chip"){let Q=Ot(Dw.ArrowRight,16,"currentColor",1.8);Q&&(Q.classList.add("persona-suggestion__arrow"),A.appendChild(Q))}return A.addEventListener("click",S),A},B=null;for(let A of d)if(A.renderSuggestion&&(B=A.renderSuggestion({suggestion:{...t},index:n,surface:o,source:r,variant:s,streaming:a,config:l,defaultRenderer:k,select:S}),B))break;return B??(B=k()),($=B.dataset).suggestionId||($.suggestionId=t.id),(T=B.dataset).behavior||(T.behavior=x),(I=B.dataset).emphasis||(I.emphasis=t.emphasis),B instanceof HTMLButtonElement||B.setAttribute("aria-disabled",a?"true":"false"),B},Rl=e=>{let t=[],n=[],o=null,r=null,s=()=>{e.removeAttribute("data-scroll-left"),e.removeAttribute("data-scroll-right")},a=()=>{if(r=null,e.hidden||e.dataset.variant!=="chip"||e.dataset.overflow!=="scroll"){s();return}let u=Math.max(0,e.scrollWidth-e.clientWidth);if(u<=1){s();return}let m=getComputedStyle(e).direction==="rtl",y=Math.min(u,Math.max(0,Math.abs(e.scrollLeft))),h=4,C=y<=h,x=y>=u-h,S=m?!x:!C,k=m?!C:!x;e.toggleAttribute("data-scroll-left",S),e.toggleAttribute("data-scroll-right",k)},l=()=>{if(r!==null||typeof requestAnimationFrame!="function"){typeof requestAnimationFrame!="function"&&a();return}r=requestAnimationFrame(a)};e.addEventListener("scroll",l,{passive:!0});let d=typeof ResizeObserver=="function"?new ResizeObserver(l):null;return d?.observe(e),{buttons:t,elements:n,destroy:()=>{e.removeEventListener("scroll",l),d?.disconnect(),r!==null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(r),r=null},render:(u,m,y,h,C,x)=>{e.replaceChildren(),t.length=0,n.length=0;let S=x?.source??"config",k=x?.surface??(S==="config"?"starter":"followUp"),B=k==="followUp",$=x?.variant??"chip",T=x?.behavior??"send",I=x?.overflow??"wrap",A=x?.config??{},D=x?.plugins??[],Q=typeof x?.maxItems=="number"?Math.max(0,Math.floor(x.maxItems)):void 0,le=B?"followUps":"starters";!_w.has(A)&&A.debug===!0&&$!=="chip"&&A.suggestions?.[le]?.overflow!==void 0&&(_w.add(A),console.info(`[persona] suggestions.${le}.overflow applies to the "chip" variant only; the "${$}" variant manages its own stacking.`));let re=K=>K.map(Fm).filter(de=>de!==null).map(de=>({...de,behavior:de.behavior??T})),E=re(u??[]);D.forEach(K=>{K.transformSuggestions&&(E=re(K.transformSuggestions({suggestions:E.map(de=>({...de})),surface:k,source:S,config:A})))});let _=Q===void 0?E:E.slice(0,Q);if(!_.length){e.hidden=!0,o=null,s();return}if(!B&&(h??m.getMessages()).some(de=>de.role==="user")){e.hidden=!0,o=null;return}e.hidden=!1,e.classList.add("persona-suggestions"),e.dataset.personaSuggestionSurface=Nm(k),e.dataset.variant=$,e.dataset.overflow=I;let W=document.createDocumentFragment(),L=m.isStreaming();_.forEach((K,de)=>{let ue=$m({item:K,index:de,surface:k,source:S,variant:$,streaming:L,config:A,plugins:D,chipsConfig:C,session:m,getTextarea:()=>y,eventTarget:e,submitPrompt:x?.submitPrompt});W.appendChild(ue),n.push(ue),[...ue instanceof HTMLButtonElement?[ue]:[],...Array.from(ue.querySelectorAll("button"))].forEach(Me=>{t.includes(Me)||(Me.disabled=L,t.push(Me))})}),e.appendChild(W),a(),l();let X=JSON.stringify({normalized:_,surface:k,variant:$,source:S});X!==o&&(o=X,NP(n),e.dispatchEvent(new CustomEvent("persona:suggestion:shown",{detail:{suggestions:_.map(K=>({...K})),surface:k,source:S,variant:$},bubbles:!0,composed:!0})),B&&e.dispatchEvent(new CustomEvent("persona:suggestReplies:shown",{detail:{suggestions:_.map(K=>K.prompt)},bubbles:!0,composed:!0})))}}};var Yn={"bottom-right":"persona-bottom-6 persona-right-6","bottom-left":"persona-bottom-6 persona-left-6","top-right":"persona-top-6 persona-right-6","top-left":"persona-top-6 persona-left-6"};var FP="persona-header-control",$P="persona-header-control--glyph",UP="persona-header-control--sparse",jP=20,qP={x:[1.4,1.05]},Nw="persona-relative persona-ml-auto persona-inline-flex persona-items-center persona-justify-center",zP="persona-relative persona-ml-auto persona-clear-chat-button-wrapper",dp=(e,t,n={})=>{let{iconSize:o,iconText:r}=n,[s,a]=qP[t]??[1,1.5],l=!o;e.classList.toggle($P,l),e.classList.toggle(UP,l&&s!==1);let d=parseFloat(o??"")||jP,p=ge(t,`${Math.round(d*s)}px`,"currentColor",a);p?(p.style.display="block",l||(p.style.strokeWidth=`calc(var(--persona-components-header-controlStrokeWidth, 1.5) * ${Number((a/1.5).toFixed(4))})`),e.replaceChildren(p)):r&&(e.textContent=r)},Gs=e=>{let{ariaLabel:t,tooltip:n=!0,tooltipHint:o,iconName:r,iconText:s,wrapperClassName:a=Nw,size:l,iconSize:d,color:p,backgroundColor:u,borderWidth:m,borderColor:y,borderRadius:h,paddingX:C,paddingY:x,hidden:S,extraClassName:k,attrs:B}=e,$=M("div",a),T=!!(m||y),I=Y("button",{className:bn(FP,"persona-inline-flex persona-items-center persona-justify-center persona-cursor-pointer",!u&&"persona-bg-transparent hover:persona-bg-gray-100",!T&&"persona-border-none",!h&&"persona-rounded-full",k),attrs:{type:"button","aria-label":t,...B},style:{width:l,height:l,minWidth:l,minHeight:l,display:S?"none":void 0,color:p||wn.actionIconColor,backgroundColor:u,border:T?`${m||"0px"} solid ${y||"transparent"}`:void 0,borderRadius:h,paddingLeft:C,paddingRight:C,paddingTop:x,paddingBottom:x}});return r?dp(I,r,{iconSize:d,iconText:s}):s&&(I.textContent=s),$.appendChild(I),nn({anchor:I,trigger:$,text:()=>I.getAttribute("aria-label")??t,hint:o,enabled:n}),{button:I,wrapper:$}},Xi=(e,t={})=>{let{showClose:n=!0,wrapperClassName:o=Nw,buttonSize:r,iconSize:s}=t,a=e?.launcher??{},l=a.closeButtonTooltipText??"Close chat",d=a.closeButtonShowTooltip??!0,{button:p,wrapper:u}=Gs({ariaLabel:l,tooltip:d,iconName:a.closeButtonIconName??"x",iconText:a.closeButtonIconText??"\xD7",wrapperClassName:o,size:r??a.closeButtonSize,iconSize:s,color:a.closeButtonColor,backgroundColor:a.closeButtonBackgroundColor,borderWidth:a.closeButtonBorderWidth,borderColor:a.closeButtonBorderColor,borderRadius:a.closeButtonBorderRadius,paddingX:a.closeButtonPaddingX,paddingY:a.closeButtonPaddingY,hidden:!n});return{button:p,wrapper:u}},Ji=(e,t={})=>{let{wrapperClassName:n=zP,buttonSize:o,iconSize:r}=t,a=(e?.launcher??{}).clearChat??{},l=a.tooltipText??"Clear chat",d=a.showTooltip??!0,{button:p,wrapper:u}=Gs({ariaLabel:l,tooltip:d,iconName:a.iconName??"refresh-cw",wrapperClassName:n,size:o??a.size,iconSize:r,color:a.iconColor,backgroundColor:a.backgroundColor,borderWidth:a.borderWidth,borderColor:a.borderColor,borderRadius:a.borderRadius,paddingX:a.paddingX,paddingY:a.paddingY});return{button:p,wrapper:u}};var wn={titleColor:"var(--persona-header-title-fg, var(--persona-primary, #0f0f0f))",subtitleColor:"var(--persona-header-subtitle-fg, var(--persona-text-muted, var(--persona-muted, #9ca3af)))",actionIconColor:"var(--persona-header-action-icon-fg, var(--persona-muted, #9ca3af))",minHeight:"var(--persona-header-min-height, auto)"},Um={fontFamily:"var(--persona-components-header-title-fontFamily, inherit)",fontSize:"var(--persona-components-header-title-fontSize, 1rem)",fontWeight:"var(--persona-components-header-title-fontWeight, 600)",lineHeight:"var(--persona-components-header-title-lineHeight, 1.5rem)",letterSpacing:"var(--persona-components-header-title-letterSpacing, normal)"},VP={fontFamily:"var(--persona-components-header-subtitle-fontFamily, inherit)",fontSize:"var(--persona-components-header-subtitle-fontSize, 0.75rem)",fontWeight:"var(--persona-components-header-subtitle-fontWeight, inherit)",lineHeight:"var(--persona-components-header-subtitle-lineHeight, 1rem)",letterSpacing:"var(--persona-components-header-subtitle-letterSpacing, normal)"},fr=e=>{let{config:t,showClose:n=!0}=e,o=Y("div",{className:"persona-widget-header persona-flex persona-items-center persona-gap-3 persona-px-6 persona-py-5",attrs:{"data-persona-theme-zone":"header"},style:{minHeight:wn.minHeight,backgroundColor:"var(--persona-header-bg, var(--persona-surface, #ffffff))",borderBottomColor:"var(--persona-header-border, var(--persona-divider, #f1f5f9))",boxShadow:"var(--persona-header-shadow, none)",borderBottom:"var(--persona-header-border-bottom, 1px solid var(--persona-header-border, var(--persona-divider, #f1f5f9)))"}}),r=t?.launcher??{},s=r.headerIconSize??"48px",a=r.closeButtonPlacement??"inline",l=r.headerIconHidden??!1,d=r.headerIconName,p=Y("div",{className:"persona-flex persona-items-center persona-justify-center persona-rounded-xl persona-text-xl",style:{height:s,width:s,backgroundColor:"var(--persona-header-icon-bg, var(--persona-primary, #0f0f0f))",color:"var(--persona-header-icon-fg, var(--persona-text-inverse, #ffffff))"}});if(!l)if(d){let I=parseFloat(s)||24,A=ge(d,I*.6,"currentColor",1);A?p.replaceChildren(A):p.textContent=t?.launcher?.agentIconText??"\u{1F4AC}"}else if(t?.launcher?.iconUrl){let I=M("img");I.src=t.launcher.iconUrl,I.alt="",I.className="persona-rounded-xl persona-object-cover",I.style.height=s,I.style.width=s,p.replaceChildren(I)}else p.textContent=t?.launcher?.agentIconText??"\u{1F4AC}";let u=M("div","persona-flex persona-flex-col persona-flex-1 persona-min-w-0"),m=Y("span",{className:"persona-text-base persona-font-semibold",text:t?.launcher?.title??"Chat Assistant",style:{color:wn.titleColor,...Um}}),y=Y("span",{className:"persona-text-xs",text:t?.launcher?.subtitle??"Here to help you get answers fast",style:{color:wn.subtitleColor,...VP}});u.append(m,y),l?o.append(u):o.append(p,u);let h=r.clearChat??{},C=h.enabled??!0,x=h.placement??"inline",S=null,k=null;if(C){let A=Ji(t,{wrapperClassName:x==="top-right"?"persona-absolute persona-top-4 persona-z-50":"persona-relative persona-ml-auto persona-clear-chat-button-wrapper"});S=A.button,k=A.wrapper,x==="top-right"&&(k.style.right="48px"),x==="inline"&&o.appendChild(k)}let B=a==="top-right"?"persona-absolute persona-top-4 persona-right-4 persona-z-50":C&&x==="inline"?"persona-relative persona-inline-flex persona-items-center persona-justify-center":"persona-relative persona-ml-auto persona-inline-flex persona-items-center persona-justify-center",{button:$,wrapper:T}=Xi(t,{showClose:n,wrapperClassName:B});return a!=="top-right"&&o.appendChild(T),{header:o,iconHolder:p,headerTitle:m,headerSubtitle:y,closeButton:$,closeButtonWrapper:T,clearChatButton:S,clearChatButtonWrapper:k}},Qs=(e,t,n)=>{let o=n?.launcher??{},r=o.closeButtonPlacement??"inline",s=o.clearChat?.placement??"inline";e.appendChild(t.header),r==="top-right"&&(e.style.position="relative",e.appendChild(t.closeButtonWrapper)),t.clearChatButtonWrapper&&s==="top-right"&&(e.style.position="relative",e.appendChild(t.clearChatButtonWrapper))};function Ys(e){let{items:t,onSelect:n,anchor:o,position:r="bottom-left",portal:s,onOpenChange:a}=e,l=M("div","persona-dropdown-menu persona-hidden");l.setAttribute("role","menu"),l.setAttribute("data-persona-theme-zone","dropdown"),s?(l.style.position="fixed",l.style.zIndex=String(Vi)):(l.style.position="absolute",l.style.top="100%",l.style.marginTop="4px",r==="bottom-right"?l.style.right="0":l.style.left="0");for(let C of t){if(C.dividerBefore){let k=document.createElement("hr");l.appendChild(k)}let x=document.createElement("button");if(x.type="button",x.setAttribute("role","menuitem"),x.setAttribute("data-dropdown-item-id",C.id),C.destructive&&x.setAttribute("data-destructive",""),C.icon){let k=ge(C.icon,16,"currentColor",1.5);k&&x.appendChild(k)}let S=document.createElement("span");S.textContent=C.label,x.appendChild(S),x.addEventListener("click",k=>{k.stopPropagation(),m(),n(C.id)}),l.appendChild(x)}let d=null;function p(){if(!s)return;let C=o.getBoundingClientRect();l.style.top=`${C.bottom+4}px`,r==="bottom-right"?(l.style.right=`${window.innerWidth-C.right}px`,l.style.left="auto"):(l.style.left=`${C.left}px`,l.style.right="auto")}function u(){let C=l.classList.contains("persona-hidden");p(),l.classList.remove("persona-hidden"),C&&a?.(!0),requestAnimationFrame(()=>{let x=S=>{!l.contains(S.target)&&!o.contains(S.target)&&m()};document.addEventListener("click",x,!0),d=()=>document.removeEventListener("click",x,!0)})}function m(){let C=!l.classList.contains("persona-hidden");l.classList.add("persona-hidden"),d?.(),d=null,C&&a?.(!1)}function y(){l.classList.contains("persona-hidden")?u():m()}function h(){m(),l.remove()}return s&&s.appendChild(l),{element:l,show:u,hide:m,toggle:y,destroy:h}}function Bn(e){let{icon:t,label:n,size:o,strokeWidth:r,className:s,chromeless:a,onClick:l,aria:d}=e,p=M("button",bn(!a&&"persona-icon-btn",s));p.type="button",p.setAttribute("aria-label",n),p.title=n;let u=ge(t,o??16,"currentColor",r??2);if(u&&p.appendChild(u),l&&p.addEventListener("click",l),d)for(let[m,y]of Object.entries(d))p.setAttribute(m,y);return p}function jm(e){let{icon:t,label:n,variant:o="default",size:r="sm",iconSize:s,className:a,onClick:l,aria:d}=e,p="persona-label-btn";o!=="default"&&(p+=" persona-label-btn--"+o),p+=" persona-label-btn--"+r,a&&(p+=" "+a);let u=M("button",p);if(u.type="button",u.setAttribute("aria-label",n),t){let y=ge(t,s??14,"currentColor",2);y&&u.appendChild(y)}let m=M("span");if(m.textContent=n,u.appendChild(m),l&&u.addEventListener("click",l),d)for(let[y,h]of Object.entries(d))u.setAttribute(y,h);return u}function Hl(e){let{items:t,selectedId:n,onSelect:o,className:r}=e,s=M("div","persona-toggle-group"+(r?" "+r:""));s.setAttribute("role","group");let a=n,l=[];function d(){for(let u of l)u.btn.setAttribute("aria-pressed",u.id===a?"true":"false")}for(let u of t){let m;u.icon?m=Bn({icon:u.icon,label:u.label,className:u.className,onClick:()=>{a=u.id,d(),o(u.id)}}):(m=M("button","persona-icon-btn"+(u.className?" "+u.className:"")),m.type="button",m.setAttribute("aria-label",u.label),m.title=u.label,m.textContent=u.label,m.addEventListener("click",()=>{a=u.id,d(),o(u.id)})),m.setAttribute("aria-pressed",u.id===a?"true":"false"),l.push({id:u.id,btn:m}),s.appendChild(m)}function p(u){a=u,d()}return{element:s,setSelected:p}}function Fw(e){let{label:t,icon:n,iconSize:o,iconOnly:r,menuItems:s,onSelect:a,onPrimary:l,position:d="bottom-left",portal:p,chevronLabel:u="More options",chevronIconSize:m,className:y,primaryClassName:h,chevronClassName:C}=e,x=M("div","persona-split-btn"+(y?" "+y:"")),S={label:t,className:"persona-split-btn-primary"+(h?" "+h:""),onClick:l},k=r&&n?Bn({...S,icon:n,size:o??14}):jm({...S,icon:n,iconSize:o??14}),B=Bn({icon:"chevron-down",label:u,size:m??14,className:"persona-split-btn-chevron"+(C?" "+C:""),aria:{"aria-haspopup":"true","aria-expanded":"false"}});x.append(k,B);let $=null,T=()=>{if($)return $;let I=(typeof p=="function"?p():p)??void 0;return $=Ys({items:s,onSelect:a,anchor:x,position:d,portal:I,onOpenChange:A=>{B.setAttribute("aria-expanded",A?"true":"false")}}),I||x.appendChild($.element),$};return x.isConnected?T():requestAnimationFrame(()=>{$||T()}),B.addEventListener("click",I=>{I.stopPropagation(),T().toggle()}),{element:x,primaryButton:k,chevronButton:B,openMenu:()=>T().show(),closeMenu:()=>$?.hide(),toggleMenu:()=>T().toggle(),destroy:()=>{$?.destroy(),x.remove()}}}function pp(e){let{label:t,icon:n="chevron-down",menuItems:o,onSelect:r,position:s="bottom-left",portal:a,className:l,hover:d}=e,p=M("div","persona-combo-btn"+(l?" "+l:""));p.style.position="relative",p.style.display="inline-flex",p.style.alignItems="center",p.style.cursor="pointer",p.setAttribute("role","button"),p.setAttribute("tabindex","0"),p.setAttribute("aria-haspopup","true"),p.setAttribute("aria-expanded","false"),p.setAttribute("aria-label",t);let u=M("span","persona-combo-btn-label");u.textContent=t,p.appendChild(u);let m=ge(n,14,"currentColor",2);m&&(m.style.marginLeft="4px",m.style.opacity="0.6",p.appendChild(m)),d&&(p.style.borderRadius=d.borderRadius??"10px",p.style.padding=d.padding??"6px 4px 6px 12px",p.style.border="1px solid transparent",p.style.transition="background-color 0.15s ease, border-color 0.15s ease",p.addEventListener("mouseenter",()=>{p.style.backgroundColor=d.background??"",p.style.borderColor=d.border??""}),p.addEventListener("mouseleave",()=>{p.style.backgroundColor="",p.style.borderColor="transparent"}));let y=Ys({items:o,onSelect:C=>{p.setAttribute("aria-expanded","false"),r(C)},anchor:p,position:s,portal:a});a||p.appendChild(y.element);let h=()=>p.getAttribute("data-persona-menu-locked")==="true";return p.addEventListener("click",C=>{if(C.stopPropagation(),h())return;let x=!y.element.classList.contains("persona-hidden");p.setAttribute("aria-expanded",x?"false":"true"),y.toggle()}),p.addEventListener("keydown",C=>{(C.key==="Enter"||C.key===" ")&&(C.preventDefault(),p.click())}),{element:p,setLabel:C=>{u.textContent=C,p.setAttribute("aria-label",C)},open:()=>{p.setAttribute("aria-expanded","true"),y.show()},close:()=>{p.setAttribute("aria-expanded","false"),y.hide()},toggle:()=>{let C=!y.element.classList.contains("persona-hidden");p.setAttribute("aria-expanded",C?"false":"true"),y.toggle()},destroy:()=>{y.destroy(),p.remove()}}}var qm=e=>{let t=fr({config:e.config,showClose:e.showClose,onClose:e.onClose,onClearChat:e.onClearChat}),n=e.layoutHeaderConfig?.onTitleClick;if(n){let o=t.headerTitle.parentElement;o&&(o.style.cursor="pointer",o.setAttribute("role","button"),o.setAttribute("tabindex","0"),o.addEventListener("click",()=>n()),o.addEventListener("keydown",r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),n())}))}return t};function KP(e,t,n){if(t?.length)for(let o of t){let{button:r,wrapper:s}=Gs({ariaLabel:o.ariaLabel??o.label??o.id,iconName:o.icon,iconText:o.icon?void 0:o.label,tooltipHint:o.shortcut?sp(o.shortcut):void 0,wrapperClassName:"persona-relative persona-inline-flex persona-items-center persona-justify-center"});if(r.setAttribute("data-persona-header-action",o.id),o.shortcut){let a=xl(o.shortcut);a&&r.setAttribute("aria-keyshortcuts",a)}if(o.menuItems?.length){let a=Ys({items:o.menuItems,onSelect:l=>n?.(l),anchor:s,position:"bottom-right"});s.appendChild(a.element),r.addEventListener("click",l=>{l.stopPropagation(),a.toggle()})}else r.addEventListener("click",()=>n?.(o.id));e.appendChild(s)}}var zm=e=>{let{config:t,showClose:n=!0,onClose:o,layoutHeaderConfig:r,onHeaderAction:s}=e,a=t?.launcher??{},l=M("div","persona-flex persona-items-center persona-justify-between persona-px-6 persona-py-4");l.setAttribute("data-persona-theme-zone","header"),l.style.minHeight=wn.minHeight,l.style.backgroundColor="var(--persona-header-bg, var(--persona-surface, #ffffff))",l.style.borderBottomColor="var(--persona-header-border, var(--persona-divider, #f1f5f9))",l.style.boxShadow="var(--persona-header-shadow, none)",l.style.borderBottom="var(--persona-header-border-bottom, 1px solid var(--persona-header-border, var(--persona-divider, #f1f5f9)))";let d=r?.titleMenu,p,u;if(d){let T=pp({label:a.title??"Chat Assistant",menuItems:d.menuItems,onSelect:I=>{let A=Q=>{Q===!1&&T.element.dispatchEvent(new CustomEvent("persona:title-menu-builtin",{bubbles:!0,composed:!0,detail:{actionId:I}}))},D=d.onSelect(I);D instanceof Promise?D.then(A,()=>{}):A(D)},hover:d.hover,className:""});p=T.element,p.style.color=wn.titleColor,u=p.querySelector(".persona-combo-btn-label")??p}else{if(p=M("div","persona-flex persona-min-w-0 persona-flex-1 persona-items-center persona-gap-1"),u=M("span","persona-text-base persona-font-semibold persona-truncate"),u.style.color=wn.titleColor,Object.assign(u.style,Um),u.textContent=a.title??"Chat Assistant",p.appendChild(u),r?.onTitleClick){p.style.cursor="pointer",p.setAttribute("role","button"),p.setAttribute("tabindex","0");let I=r.onTitleClick;p.addEventListener("click",A=>{A.target.closest("button")||I()}),p.addEventListener("keydown",A=>{(A.key==="Enter"||A.key===" ")&&(A.preventDefault(),I())})}let T=r?.titleRowHover;T&&(p.style.borderRadius=T.borderRadius??"10px",p.style.padding=T.padding??"6px 4px 6px 12px",p.style.margin="-6px 0 -6px -12px",p.style.border="1px solid transparent",p.style.transition="background-color 0.15s ease, border-color 0.15s ease",p.style.width="fit-content",p.style.flex="none",p.addEventListener("mouseenter",()=>{p.style.backgroundColor=T.background??"",p.style.borderColor=T.border??""}),p.addEventListener("mouseleave",()=>{p.style.backgroundColor="",p.style.borderColor="transparent"}))}l.appendChild(p);let m="persona-relative persona-inline-flex persona-items-center persona-justify-center",{button:y,wrapper:h}=Xi(t,{showClose:n,wrapperClassName:m});o&&y.addEventListener("click",o);let C=M("div","persona-flex persona-items-center persona-gap-1");d||KP(C,r?.trailingActions,r?.onAction??s);let x=a.clearChat??{},S=null,k=null;if(x.enabled??!0){let T=x.placement??"inline",I=Ji(t,{wrapperClassName:T==="top-right"?"persona-absolute persona-top-4 persona-z-50":m});S=I.button,k=I.wrapper,T==="top-right"?k.style.right="48px":C.appendChild(k)}C.appendChild(h),l.appendChild(C);let B=M("div");B.style.display="none";let $=M("span");return $.style.display="none",{header:l,iconHolder:B,headerTitle:u,headerSubtitle:$,closeButton:y,closeButtonWrapper:h,clearChatButton:S,clearChatButtonWrapper:k}},up={default:qm,minimal:zm},Vm=e=>up[e]??up.default,Zi=(e,t,n)=>{if(t?.render){let a=t.render({config:e,onClose:n?.onClose,onClearChat:n?.onClearChat,trailingActions:t.trailingActions,onAction:t.onAction}),l=M("div");l.style.display="none";let d=M("span"),p=M("span"),u=M("button");u.style.display="none";let m=M("div");return m.style.display="none",{header:a,iconHolder:l,headerTitle:d,headerSubtitle:p,closeButton:u,closeButtonWrapper:m,clearChatButton:null,clearChatButtonWrapper:null}}let o=t?.layout??"default",s=Vm(o)({config:e,showClose:t?.showCloseButton??n?.showClose??!0,onClose:n?.onClose,onClearChat:n?.onClearChat,layoutHeaderConfig:t,onHeaderAction:t?.onAction});return t&&(t.showIcon===!1&&(s.iconHolder.style.display="none"),t.showTitle===!1&&(s.headerTitle.style.display="none"),t.showSubtitle===!1&&(s.headerSubtitle.style.display="none"),t.showCloseButton===!1&&(s.closeButton.style.display="none"),t.showClearChat===!1&&s.clearChatButtonWrapper&&(s.clearChatButtonWrapper.style.display="none")),s};var Xs=e=>{let{config:t}=e,n=Y("div",{className:"persona-widget-footer persona-border-t-persona-divider persona-bg-persona-surface persona-px-6 persona-py-4",attrs:{"data-persona-theme-zone":"composer"}}),o=Vd(),r=Y("form",{className:"persona-widget-composer persona-flex persona-flex-col persona-gap-2 persona-rounded-2xl persona-border persona-border-persona-border persona-bg-persona-input-background persona-px-4 persona-py-3",attrs:{"data-persona-composer-form":""},style:{outline:"none"}}),{textarea:s,attachAutoResize:a}=Ud(t);a();let l=jd(t),d=Qi(t),p=qd(t),u=zd(t),m=Y("div",{className:"persona-widget-composer__header",attrs:{"data-persona-composer-header":""},style:{display:"contents"}});r.append(m),p&&(p.previewsContainer.style.gap="8px",m.append(p.previewsContainer),r.append(p.input)),r.append(s);let y=Y("div",{className:"persona-widget-composer__actions persona-flex persona-items-center persona-justify-between persona-w-full",attrs:{"data-persona-composer-actions":""}}),h=Y("div",{className:"persona-widget-composer__left-actions persona-flex persona-items-center persona-gap-2",attrs:{"data-persona-composer-actions-start":""}}),C=Y("div",{className:"persona-widget-composer__right-actions persona-flex persona-items-center persona-gap-2",attrs:{"data-persona-composer-actions-end":""}});return p&&h.append(p.wrapper),d&&C.append(d.wrapper),C.append(l.wrapper),y.append(h,C),r.append(y),r.addEventListener("click",x=>{x.target!==l.button&&x.target!==l.wrapper&&x.target!==d?.button&&x.target!==d?.wrapper&&x.target!==p?.button&&x.target!==p?.wrapper&&s.focus()}),n.append(o,r,u),{footer:n,suggestions:o,composerForm:r,header:m,textarea:s,sendButton:l.button,sendButtonWrapper:l.wrapper,micButton:d?.button??null,micButtonWrapper:d?.wrapper??null,statusText:u,attachmentButton:p?.button??null,attachmentButtonWrapper:p?.wrapper??null,attachmentInput:p?.input??null,attachmentPreviewsContainer:p?.previewsContainer??null,actionsRow:y,leftActions:h,rightActions:C,setSendButtonMode:l.setMode}};var gp=require("lucide");var $w=()=>{let e=Y("button",{className:"persona-pill-peek",attrs:{type:"button","data-persona-pill-peek":"","aria-label":"Show conversation",tabindex:"-1"}}),t=M("span","persona-pill-peek__icon"),n=Ot(gp.MessageSquare,16,"currentColor",1.5);n&&t.appendChild(n);let o=M("span","persona-pill-peek__text"),r=M("span","persona-pill-peek__caret"),s=Ot(gp.ChevronUp,16,"currentColor",1.5);return s&&r.appendChild(s),e.append(t,o,r),{root:e,textNode:o}},mp=e=>{let{config:t}=e,n=Y("div",{className:"persona-widget-footer persona-widget-footer--pill",attrs:{"data-persona-theme-zone":"composer"}}),o=Vd(),r=zd(t);r.style.display="none";let{textarea:s,attachAutoResize:a}=Ud(t,{defaultMaxLines:5});a();let l=jd(t),d=Qi(t),p=qd(t);p&&p.previewsContainer.classList.add("persona-pill-composer__previews");let u=Y("form",{className:"persona-widget-composer persona-pill-composer",attrs:{"data-persona-composer-form":""},style:{outline:"none"}}),m=Y("div",{className:"persona-widget-composer__left-actions persona-pill-composer__left",attrs:{"data-persona-composer-actions-start":""}});p&&m.append(p.wrapper);let y=Y("div",{className:"persona-widget-composer__right-actions persona-pill-composer__right",attrs:{"data-persona-composer-actions-end":""}});d&&y.append(d.wrapper),y.append(l.wrapper),u.addEventListener("click",x=>{x.target!==l.button&&x.target!==l.wrapper&&x.target!==d?.button&&x.target!==d?.wrapper&&x.target!==p?.button&&x.target!==p?.wrapper&&s.focus()}),p&&u.append(p.input),u.append(m,s,y);let h=Y("div",{className:"persona-pill-composer__header",attrs:{"data-persona-composer-header":""},style:{display:"contents"}});n.append(h),p&&h.append(p.previewsContainer),n.append(o,u,r);let C=u;return{footer:n,suggestions:o,composerForm:u,header:h,textarea:s,sendButton:l.button,sendButtonWrapper:l.wrapper,micButton:d?.button??null,micButtonWrapper:d?.wrapper??null,statusText:r,attachmentButton:p?.button??null,attachmentButtonWrapper:p?.wrapper??null,attachmentInput:p?.input??null,attachmentPreviewsContainer:p?.previewsContainer??null,actionsRow:C,leftActions:m,rightActions:y,setSendButtonMode:l.setMode}};var GP=e=>{switch(e){case"max_tool_calls":return"Stopped after calling a tool. Send a follow-up to continue.";case"length":return"Response cut off as max tokens reached. Ask for more to continue.";case"content_filter":return"The provider filtered this response.";case"error":return"Something went wrong generating this response.";default:return null}},QP=(e,t)=>{if(!e)return null;let n=GP(e);if(n===null)return null;let o=t?.[e],r=o!==void 0?o:n;return r||null},YP=(e,t)=>{let n=M("div","persona-message-stop-reason persona-text-xs persona-mt-2 persona-italic");return n.setAttribute("data-stop-reason",e),n.setAttribute("role","note"),n.style.opacity="0.75",n.textContent=t,n},XP=e=>{let t=e.toLowerCase();return t.startsWith("data:image/svg+xml")?!1:!!(/^(?:https?|blob):/i.test(e)||t.startsWith("data:image/")||!e.includes(":"))},Gm=e=>{let t=e.toLowerCase();return t.startsWith("javascript:")||t.startsWith("data:text/html")||t.startsWith("data:text/javascript")||t.startsWith("data:text/xml")||t.startsWith("data:application/xhtml")||t.startsWith("data:image/svg+xml")?!1:!!(/^(?:https?|blob):/i.test(e)||t.startsWith("data:")||!e.includes(":"))},Qm=320,Vw=320,JP=e=>!e.contentParts||e.contentParts.length===0?[]:e.contentParts.filter(t=>t.type==="image"&&typeof t.image=="string"&&t.image.trim().length>0),ZP=e=>!e.contentParts||e.contentParts.length===0?[]:e.contentParts.filter(t=>t.type==="audio"&&typeof t.audio=="string"&&t.audio.trim().length>0),ek=e=>!e.contentParts||e.contentParts.length===0?[]:e.contentParts.filter(t=>t.type==="video"&&typeof t.video=="string"&&t.video.trim().length>0),tk=e=>!e.contentParts||e.contentParts.length===0?[]:e.contentParts.filter(t=>t.type==="file"&&typeof t.data=="string"&&t.data.trim().length>0),nk=e=>{if(!e||e.length===0)return null;let t=Y("div",{className:"persona-mention-context-row persona-message-mentions",attrs:{"data-message-mentions":""}});t.style.display="flex";for(let n of e){let o=Y("div",{className:"persona-mention-chip persona-mention-chip-readonly",attrs:{"data-status":"ready",title:n.label}}),r=M("span","persona-mention-chip-icon"),s=ge(n.iconName??"at-sign",13,"currentColor",2);s&&r.appendChild(s),o.appendChild(r),o.appendChild(Y("span",{className:"persona-mention-chip-label",text:n.label})),t.appendChild(o)}return t},ok=(e,t)=>{let n=document.createDocumentFragment();for(let o of e){if(o.kind==="text"){n.appendChild(document.createTextNode(o.text));continue}n.appendChild(bl(o.ref,{readonly:!0,render:t}))}return n},Uw="\uE000",jw="\uE001",rk=(e,t,n,o)=>{let r=Math.random().toString(36).slice(2,8),s=y=>`${Uw}${r}:${y}${jw}`,a=t.map((y,h)=>y.kind==="text"?y.text:s(h)).join(""),l=n(a);if(!t.every((y,h)=>y.kind==="text"||l.includes(s(h)))){e.replaceChildren(ok(t,o));return}e.innerHTML=l;let p=new RegExp(`${Uw}${r}:(\\d+)${jw}`),u=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),m=[];for(let y=u.nextNode();y;y=u.nextNode())m.push(y);for(let y of m){let h=y;for(let C=p.exec(h.data);C;C=p.exec(h.data)){let x=t[Number(C[1])],S=h.splitText(C.index);S.data=S.data.slice(C[0].length),x?.kind==="mention"&&S.parentNode?.insertBefore(bl(x.ref,{readonly:!0,render:o}),S),h=S}}},sk=(e,t,n)=>{if(e.length===0)return null;try{let o=M("div","persona-flex persona-flex-col persona-gap-2");o.setAttribute("data-message-attachments","images"),t&&(o.style.marginBottom="8px");let r=0,s=!1,a=()=>{s||(s=!0,o.remove(),n?.())};return e.forEach((l,d)=>{let p=M("img");p.alt=l.alt?.trim()||`Attached image ${d+1}`,p.loading="lazy",p.decoding="async",p.referrerPolicy="no-referrer",p.style.display="block",p.style.width="100%",p.style.maxWidth=`${Qm}px`,p.style.maxHeight=`${Vw}px`,p.style.height="auto",p.style.objectFit="contain",p.style.borderRadius="10px",p.style.backgroundColor="var(--persona-attachment-image-bg, var(--persona-container, #f3f4f6))",p.style.border="1px solid var(--persona-attachment-image-border, var(--persona-border, #e5e7eb))";let u=!1;r+=1,p.addEventListener("error",()=>{u||(u=!0,r=Math.max(0,r-1),p.remove(),r===0&&a())}),p.addEventListener("load",()=>{u=!0}),XP(l.image)?(p.src=l.image,o.appendChild(p)):(u=!0,r=Math.max(0,r-1),p.remove())}),r===0?(a(),null):o}catch{return n?.(),null}},ik=e=>{if(e.length===0)return null;try{let t=M("div","persona-flex persona-flex-col persona-gap-2");t.setAttribute("data-message-attachments","audio");let n=0;return e.forEach(o=>{if(!Gm(o.audio))return;let r=M("audio");r.controls=!0,r.preload="metadata",r.src=o.audio,r.style.display="block",r.style.width="100%",r.style.maxWidth=`${Qm}px`,t.appendChild(r),n+=1}),n===0?(t.remove(),null):t}catch{return null}},ak=e=>{if(e.length===0)return null;try{let t=M("div","persona-flex persona-flex-col persona-gap-2");t.setAttribute("data-message-attachments","video");let n=0;return e.forEach(o=>{if(!Gm(o.video))return;let r=M("video");r.controls=!0,r.preload="metadata",r.src=o.video,r.style.display="block",r.style.width="100%",r.style.maxWidth=`${Qm}px`,r.style.maxHeight=`${Vw}px`,r.style.borderRadius="10px",r.style.backgroundColor="var(--persona-attachment-image-bg, var(--persona-container, #f3f4f6))",t.appendChild(r),n+=1}),n===0?(t.remove(),null):t}catch{return null}},lk=e=>{if(e.length===0)return null;try{let t=M("div","persona-flex persona-flex-col persona-gap-2");t.setAttribute("data-message-attachments","files");let n=0;return e.forEach(o=>{if(!Gm(o.data))return;let r=M("a");r.href=o.data,r.download=o.filename,r.target="_blank",r.rel="noopener noreferrer",r.textContent=o.filename,r.className="persona-message-file-attachment",r.style.display="inline-flex",r.style.alignItems="center",r.style.gap="6px",r.style.padding="6px 10px",r.style.borderRadius="8px",r.style.fontSize="0.875rem",r.style.textDecoration="underline",r.style.backgroundColor="var(--persona-attachment-file-bg, var(--persona-container, #f3f4f6))",r.style.border="1px solid var(--persona-attachment-file-border, var(--persona-border, #e5e7eb))",r.style.color="inherit",t.appendChild(r),n+=1}),n===0?(t.remove(),null):t}catch{return null}},Js=()=>{let e=document.createElement("div");e.className="persona-flex persona-items-center persona-space-x-1 persona-h-5 persona-mt-2";let t=document.createElement("div");t.className="persona-animate-typing persona-rounded-full persona-h-1.5 persona-w-1.5",t.style.backgroundColor="currentColor",t.style.opacity="0.4",t.style.animationDelay="0ms";let n=document.createElement("div");n.className="persona-animate-typing persona-rounded-full persona-h-1.5 persona-w-1.5",n.style.backgroundColor="currentColor",n.style.opacity="0.4",n.style.animationDelay="250ms";let o=document.createElement("div");o.className="persona-animate-typing persona-rounded-full persona-h-1.5 persona-w-1.5",o.style.backgroundColor="currentColor",o.style.opacity="0.4",o.style.animationDelay="500ms";let r=document.createElement("span");return r.className="persona-sr-only",r.textContent="Loading",e.appendChild(t),e.appendChild(n),e.appendChild(o),e.appendChild(r),e},Ym=(e,t,n)=>{let o={config:n??{},streaming:!0,location:e,defaultRenderer:Js};if(t){let r=t(o);if(r!==null)return r}return Js()},ck=(e,t)=>{let n=M("div","persona-flex-shrink-0 persona-w-8 persona-h-8 persona-rounded-full persona-flex persona-items-center persona-justify-center persona-text-sm"),o=t==="user"?e.userAvatar:e.assistantAvatar;if(o)if(o.startsWith("http")||o.startsWith("/")||o.startsWith("data:")){let r=M("img");r.src=o,r.alt=t==="user"?"User":"Assistant",r.className="persona-w-full persona-h-full persona-rounded-full persona-object-cover",n.appendChild(r)}else n.textContent=o,n.classList.add(t==="user"?"persona-bg-persona-accent":"persona-bg-persona-primary","persona-text-white");else n.textContent=t==="user"?"U":"A",n.classList.add(t==="user"?"persona-bg-persona-accent":"persona-bg-persona-primary","persona-text-white");return n},qw=(e,t,n="div")=>{let o=M(n,"persona-text-xs persona-text-persona-muted"),r=new Date(e.createdAt);return t.format?o.textContent=t.format(r):o.textContent=r.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),o},Wl=(e,t="bubble")=>{let n=["persona-message-bubble"];switch(t){case"flat":e==="user"?n.push("persona-message-user-bubble","persona-ml-auto","persona-text-persona-primary","persona-py-2"):n.push("persona-message-assistant-bubble","persona-text-persona-text","persona-py-2");break;case"minimal":n.push("persona-text-sm","persona-leading-relaxed"),e==="user"?n.push("persona-message-user-bubble","persona-ml-auto","persona-bg-persona-accent","persona-text-white","persona-px-3","persona-py-2","persona-rounded-lg"):n.push("persona-message-assistant-bubble","persona-bg-persona-container","persona-text-persona-text","persona-px-3","persona-py-2","persona-rounded-lg");break;default:n.push("persona-rounded-2xl","persona-text-sm","persona-leading-relaxed","persona-shadow-sm"),e==="user"?n.push("persona-message-user-bubble","persona-ml-auto","persona-bg-persona-accent","persona-text-white","persona-px-5","persona-py-3"):n.push("persona-message-assistant-bubble","persona-bg-persona-container","persona-border","persona-border-persona-message-border","persona-text-persona-text","persona-px-5","persona-py-3");break}return n},zw={bubble:{padding:"0.75rem 1.25rem",fontSize:"0.875rem",lineHeight:"1.75"},minimal:{padding:"0.5rem 0.75rem",fontSize:"0.875rem",lineHeight:"1.75"},flat:{padding:"0.5rem 0",fontSize:"inherit",lineHeight:"inherit"}},dk=(e,t,n="bubble",o)=>{if(!o)return;let r=t==="user"?"user":"assistant",s=zw[n??"bubble"]??zw.bubble;o.padding&&(e.style.padding=`var(--persona-message-${r}-padding, ${s.padding})`),o.fontSize&&(e.style.fontSize=`var(--persona-message-${r}-font-size, ${s.fontSize})`),o.lineHeight&&(e.style.lineHeight=`var(--persona-message-${r}-line-height, ${s.lineHeight})`),o.fontFamily&&(e.style.fontFamily=`var(--persona-message-${r}-font-family, inherit)`)},fp="custom:",pk=e=>`${fp}${e}`,Kw=(e,t)=>t!=="user"&&t!=="assistant"?[]:(e?.custom??[]).filter(n=>(n.roles??["assistant"]).includes(t)),Xm=(e,t,n,o)=>{let r=t.showCopy??!0,s=t.showUpvote??!0,a=t.showDownvote??!0,l=t.showReadAloud??!1,d=(t.showRegenerate??!1)&&o?.canRegenerate===!0,p=(t.showEdit??!1)&&o?.canEdit===!0,u=(t.showQuote??!1)&&o?.canQuote!==!1,m=Kw(t,e.role);if(!r&&!s&&!a&&!l&&!d&&!p&&!u&&m.length===0){let $=M("div");return $.style.display="none",$.id=`actions-${e.id}`,$.setAttribute("data-actions-for",e.id),$}let y=t.visibility??"hover",h=t.align??"right",C=t.layout??"pill-inside",x={left:"persona-message-actions-left",center:"persona-message-actions-center",right:"persona-message-actions-right"}[h],S={"pill-inside":"persona-message-actions-pill","row-inside":"persona-message-actions-row"}[C],k=M("div",`persona-message-actions persona-flex persona-items-center persona-gap-1 persona-mt-2 ${x} ${S} ${y==="hover"?"persona-message-actions-hover":""}`);k.id=`actions-${e.id}`,k.setAttribute("data-actions-for",e.id);let B=($,T,I)=>{let A=Bn({icon:$,label:T,size:14,className:"persona-message-action-btn",chromeless:!0});return A.setAttribute("data-action",I),A};r&&k.appendChild(B("copy","Copy message","copy")),l&&k.appendChild(B("volume-2","Read aloud","read-aloud")),s&&k.appendChild(B("thumbs-up","Upvote","upvote")),a&&k.appendChild(B("thumbs-down","Downvote","downvote")),d&&k.appendChild(B("refresh-cw","Regenerate response","regenerate")),p&&k.appendChild(B("pencil","Edit message","edit")),u&&k.appendChild(B("quote","Quote message","quote"));for(let $ of m)k.appendChild(B($.iconName??"ellipsis",$.label,pk($.id)));return k},ea=(e,t,n,o,r,s)=>{let a=n??{},l=a.layout??"bubble",d=a.avatar,p=a.timestamp,u=d?.show??!1,m=p?.show??!1,y=d?.position??"left",h=p?.position??"below",C=Wl(e.role,l),x=M("div",C.join(" "));x.id=`bubble-${e.id}`,x.setAttribute("data-message-id",e.id),x.setAttribute("data-persona-theme-zone",e.role==="user"?"user-message":"assistant-message");let S=s?.widgetConfig?.theme?.components?.message;dk(x,e.role,l,e.role==="user"?S?.user:S?.assistant),l==="flat"?(x.style.backgroundColor="transparent",x.style.color=e.role==="user"?"var(--persona-primary, var(--persona-text))":"var(--persona-message-assistant-text, var(--persona-text))"):e.role==="user"?(x.style.backgroundColor="var(--persona-message-user-bg, var(--persona-accent))",x.style.color="var(--persona-message-user-text, white)"):e.role==="assistant"&&(x.style.backgroundColor="var(--persona-message-assistant-bg, var(--persona-container))",x.style.color="var(--persona-message-assistant-text, var(--persona-text))");let k=JP(e),B=e.content?.trim()??"",T=k.length>0&&B===$i,I=ap(s?.widgetConfig?.features?.streamAnimation),A=s?.widgetConfig?.features?.streamAnimation?.plugins,D=e.role==="assistant"&&I.type!=="none"?El(I.type,A):null,Q=e.role==="assistant"&&D?.isAnimating?.(e)===!0,le=e.role==="assistant"&&D!==null&&(!!e.streaming||Q);le&&D?.bubbleClass&&x.classList.add(D.bubbleClass);let re=document.createElement("div");re.classList.add("persona-message-content"),e.streaming&&re.classList.add("persona-content-streaming"),le&&D&&(D.containerClass&&re.classList.add(D.containerClass),re.style.setProperty("--persona-stream-step",`${I.speed}ms`),re.style.setProperty("--persona-stream-duration",`${I.duration}ms`));let E=le?lp(e.content??"",I.buffer,D,e,!!e.streaming):e.content??"",_=()=>{let Ce=t({text:E,message:e,streaming:!!e.streaming,raw:e.rawContent});return le&&D?.wrap==="char"?Tl(Ce,"char",e.id,{skipTags:D.skipTags}):le&&D?.wrap==="word"?Tl(Ce,"word",e.id,{skipTags:D.skipTags}):Ce},W=null;if(T?(W=document.createElement("div"),W.innerHTML=_(),W.style.display="none",re.appendChild(W)):e.contentSegments?.length?rk(re,e.contentSegments,Ce=>t({text:Ce,message:e,streaming:!!e.streaming,raw:e.rawContent}),s?.widgetConfig?.contextMentions?.renderMentionToken):re.innerHTML=_(),le&&D?.useCaret&&!T&&B){let Ce=cp(),j=re.querySelectorAll(".persona-stream-char, .persona-stream-word"),Fe=j[j.length-1];if(Fe?.parentNode)Fe.parentNode.insertBefore(Ce,Fe.nextSibling);else{let $e=re.lastElementChild;$e?$e.appendChild(Ce):re.appendChild(Ce)}}if(m&&h==="inline"&&e.createdAt){let Ce=qw(e,p,"span");Ce.classList.add("persona-timestamp-inline");let j=re.lastElementChild;j?j.appendChild(Ce):re.appendChild(Ce)}if(k.length>0){let Ce=sk(k,!T&&!!B,()=>{T&&W&&(W.style.display="")});Ce?x.appendChild(Ce):T&&W&&(W.style.display="")}let L=ZP(e);if(L.length>0){let Ce=ik(L);Ce&&x.appendChild(Ce)}let X=ek(e);if(X.length>0){let Ce=ak(X);Ce&&x.appendChild(Ce)}let K=tk(e);if(K.length>0){let Ce=lk(K);Ce&&x.appendChild(Ce)}let de=e.contentSegments?.length?null:nk(e.contextMentions);if(de&&x.appendChild(de),x.appendChild(re),m&&h==="below"&&e.createdAt){let Ce=qw(e,p);Ce.classList.add("persona-mt-1"),x.appendChild(Ce)}let ue=e.role==="assistant"?QP(e.stopReason,s?.widgetConfig?.copy?.stopReasonNotice):null;if(e.streaming&&e.role==="assistant"){let Ce=!!(E&&E.trim()),j=I.placeholder==="skeleton",Fe=j&&I.buffer==="line"&&Ce;if(Ce)Fe&&x.appendChild(Pl());else if(j)x.appendChild(Pl());else{let $e=Ym("inline",s?.loadingIndicatorRenderer,s?.widgetConfig);$e&&x.appendChild($e)}}ue&&e.stopReason&&!e.streaming&&(B||(re.style.display="none"),x.appendChild(YP(e.stopReason,ue)));let fe=e.role==="assistant"&&!e.streaming&&e.content&&e.content.trim()&&o?.enabled!==!1,Me=s?.actionEligibility,ye=e.role==="user"&&!e.streaming&&o?.enabled!==!1&&(o?.showEdit===!0&&Me?.canEdit===!0||o?.showQuote===!0&&Me?.canQuote===!0||Kw(o,"user").length>0);if((fe||ye)&&o){let Ce=Xm(e,ye?{...o,showCopy:!1,showUpvote:!1,showDownvote:!1,showReadAloud:!1}:o,r,Me);x.appendChild(Ce)}if(!u||e.role==="system")return x;let Ne=M("div",`persona-message-with-avatar persona-flex persona-gap-2 ${e.role==="user"?"persona-flex-row-reverse":""}`),lt=ck(d,e.role);return y==="right"||y==="left"&&e.role==="user"?Ne.append(x,lt):Ne.append(lt,x),Ne},Gw=(e,t,n,o,r,s)=>{let a=n??{};return e.role==="user"&&a.renderUserMessage?a.renderUserMessage({message:e,config:{},streaming:!!e.streaming}):e.role==="assistant"&&a.renderAssistantMessage?a.renderAssistantMessage({message:e,config:{},streaming:!!e.streaming}):ea(e,t,n,o,r,s)};var uk=40,gk=(e,t)=>{if(e.replaceChildren(),!t){e.hidden=!0;return}if(typeof t=="function"){let n=null;try{n=t()}catch(o){console.warn("[persona] welcome.icon renderer threw",o)}if(!n){e.hidden=!0;return}e.appendChild(n),e.hidden=!1;return}if(t.type==="lucide"){let n=ge(t.name,uk);if(!n){e.hidden=!0;return}e.appendChild(n)}else t.type==="image"?e.appendChild(Y("img",{className:"persona-welcome-icon-image",attrs:{src:t.url,alt:t.alt}})):e.appendChild(Y("span",{className:"persona-welcome-icon-text",text:t.text}));e.hidden=!1},Qw=(e,t,n={})=>{let o=Y("div",{className:"persona-welcome-icon",attrs:{"data-persona-welcome-icon":""}});o.hidden=!0;let r=M("p","persona-welcome-kicker");r.hidden=!0;let s=M("h2","persona-welcome-title"),a=M("p","persona-welcome-subtitle"),l=Y("div",{className:"persona-welcome-head-text"},r,s),d=Y("div",{className:"persona-welcome-title-row"},o,l);return{host:Y("div",{className:"persona-welcome persona-rounded-2xl",attrs:{"data-persona-welcome":"","data-persona-intro-card":"","data-persona-welcome-variant":"card"},style:{background:"var(--persona-intro-card-bg, transparent)",boxShadow:n.flatShadow?"none":"var(--persona-intro-card-shadow, none)",border:"var(--persona-intro-card-border, none)"}},d,a,t),iconHolder:o,kicker:r,title:s,subtitle:a,starterSuggestions:t}},ta=(e,t,n)=>{t.hidden=!n,t.style.display=n?"":"none",e.classList.toggle("persona-gap-6",n),e.classList.toggle("persona-gap-3",!n)},yp=(e,t)=>{e.title.textContent=t.title,e.kicker.textContent=t.kicker??"",e.kicker.hidden=!t.kicker,e.subtitle.textContent=t.subtitle,e.subtitle.hidden=t.subtitle==="",gk(e.iconHolder,t.icon),e.host.setAttribute("data-persona-welcome-variant",t.variant),e.host.setAttribute("data-persona-welcome-dismiss",t.dismiss),e.host.setAttribute("data-persona-welcome-anchor",t.anchor??"bottom"),t.iconPlacement==="inline"?e.host.setAttribute("data-persona-welcome-icon-placement","inline"):e.host.removeAttribute("data-persona-welcome-icon-placement"),t.align?e.host.setAttribute("data-persona-welcome-align",t.align):e.host.removeAttribute("data-persona-welcome-align")},mk="data-persona-welcome-plugin",Yw="data-persona-welcome-overlay",hp="persona-welcome-overlay-active",Jm=new WeakMap,Zm=(e,t,n)=>{n.setAttribute(mk,""),t.appendChild(n),t.setAttribute("data-persona-welcome-content","plugin"),t.setAttribute(Yw,""),e.classList.contains(hp)||(Jm.set(e,e.scrollTop),e.classList.add(hp),e.scrollTop=0)},ef=(e,t,n)=>{n&&n!==t&&n.remove(),t.removeAttribute("data-persona-welcome-content"),t.removeAttribute(Yw),e.classList.contains(hp)&&(e.classList.remove(hp),e.scrollTop=Jm.get(e)??e.scrollTop,Jm.delete(e))},Xw=()=>{let e=Y("div",{className:"persona-welcome-greeting persona-flex persona-flex-col",attrs:{"data-persona-welcome-greeting":""}});return e.hidden=!0,e},bp=(e,t,n)=>{if(e.replaceChildren(),!t){e.hidden=!0;return}let o=n?.layout?.messages?.layout??"bubble",r=Y("div",{className:Wl("assistant",o).join(" "),attrs:{"data-persona-theme-zone":"assistant-message"},text:t,style:o==="flat"?{backgroundColor:"transparent",color:"var(--persona-message-assistant-text, var(--persona-text))"}:{backgroundColor:"var(--persona-message-assistant-bg, var(--persona-container))",color:"var(--persona-message-assistant-text, var(--persona-text))"}});e.appendChild(Y("div",{className:"persona-flex"},r)),e.hidden=!1},Jw=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,Zw=(e,t)=>{if(Jw()||typeof e.animate!="function"||!e.isConnected)return t(null),null;let n=e.getBoundingClientRect(),o=e.parentElement,r=0,s=0,a=0;if(o){let C=getComputedStyle(o);r=parseFloat(C.rowGap)||0;let x=e.previousElementSibling,S=e.nextElementSibling,B=o.getBoundingClientRect().top+(parseFloat(C.borderTopWidth)||0)+(parseFloat(C.paddingTop)||0)-o.scrollTop;s=Math.max(0,x?n.top-x.getBoundingClientRect().bottom-r:n.top-B),a=Math.max(0,S?S.getBoundingClientRect().top-n.bottom-r:0)}let l=e.style.overflow;e.style.overflow="hidden";let d=getComputedStyle(e),p=parseFloat(d.paddingTop)||0,u=parseFloat(d.paddingBottom)||0,m=e.animate([{opacity:"1",transform:"none",height:`${n.height}px`,minHeight:"0px",paddingTop:`${p}px`,paddingBottom:`${u}px`,marginTop:`${s}px`,marginBottom:`${a}px`},{opacity:"0",transform:"translateY(-4px)",height:"0px",minHeight:"0px",paddingTop:"0px",paddingBottom:"0px",marginTop:"0px",marginBottom:`${-r}px`}],{duration:180,easing:"ease-out",fill:"forwards"}),y=!1,h=()=>{y||(y=!0,e.style.overflow=l,t(m))};return m.finished.then(h).catch(h),m},ex=(e,t,n)=>{if(t<=1||Jw()||typeof e.animate!="function"||!e.isConnected)return null;let o=n==="drop"?-t:t;return e.animate([{transform:`translateY(${o}px)`},{transform:"none"}],{duration:260,easing:"cubic-bezier(0.2, 0, 0, 1)",fill:"none"})};var fk="Hello \u{1F44B}",hk="I can answer questions and help you get things done here.",tx=new WeakSet,xn=(e,t)=>!!e&&e[t]!==void 0,yk=(e,t)=>{!e||e.debug!==!0||!t.length||tx.has(e)||(tx.add(e),t.forEach(n=>console.warn(`[persona] ${n}`)))},wo=e=>{let t=e?.welcome,n=e?.copy,o=xn(t,"variant")?t.variant:n?.showWelcomeCard===!1?"none":"card",r=o==="hero"?"on-first-message":xn(t,"dismiss")?t.dismiss:"never",s=[];xn(t,"title")&&xn(n,"welcomeTitle")&&s.push("welcome.title and copy.welcomeTitle are both set; welcome.title wins. copy.welcomeTitle is deprecated."),xn(t,"subtitle")&&xn(n,"welcomeSubtitle")&&s.push("welcome.subtitle and copy.welcomeSubtitle are both set; welcome.subtitle wins. copy.welcomeSubtitle is deprecated."),xn(t,"variant")&&xn(n,"showWelcomeCard")&&s.push("welcome.variant and copy.showWelcomeCard are both set; welcome.variant wins. copy.showWelcomeCard is deprecated."),o==="hero"&&xn(t,"message")&&s.push('welcome.message is ignored when welcome.variant is "hero": the hero is the greeting.'),o==="hero"&&xn(t,"dismiss")&&t.dismiss!=="on-first-message"&&s.push('welcome.dismiss is pinned to "on-first-message" when welcome.variant is "hero".');let a=t?.anchor==="center"?"center":"bottom",l=wl(t?.anchorComposerTop)!==null;return xn(t,"anchorComposerTop")&&!l&&s.push('welcome.anchorComposerTop must be a percentage between 0% and 100%; falling back to "44%".'),a!=="center"&&(xn(t,"anchorComposerTop")||xn(t,"composerGap"))&&s.push('welcome.anchorComposerTop is ignored unless welcome.anchor is "center".'),yk(e,s),{title:xn(t,"title")?t.title:n?.welcomeTitle??fk,kicker:t?.kicker??"",subtitle:xn(t,"subtitle")?t.subtitle:n?.welcomeSubtitle??hk,icon:t?.icon,align:t?.align==="start"||t?.align==="center"?t.align:void 0,iconPlacement:t?.icon&&typeof t.icon!="function"&&t.icon.placement==="inline"?"inline":"above",variant:o,dismiss:r,message:o==="hero"?void 0:t?.message,anchor:a,anchorComposerTop:l?t.anchorComposerTop:"44%",composerGap:t?.composerGap?.trim()||np}},nx=e=>(e??[]).some(t=>t.role==="user")?"active":"empty",ts=(e,t)=>e.variant==="none"?!1:e.dismiss==="never"?!0:!(t??[]).some(n=>n.role==="user");var ox="16px",nf="10px",of="14px",rx=e=>{let t=e?.launcher?.enabled??!0,n=Mt(e);if(es(e)){let u=e?.launcher?.composerBar??{},m=M("div","persona-widget-wrapper persona-fixed persona-transition");m.setAttribute("data-persona-composer-bar",""),m.dataset.state="collapsed",m.dataset.expandedSize=u.expandedSize??"anchored",m.style.zIndex=String(e?.launcher?.zIndex??an);let y=M("div","persona-widget-panel persona-relative persona-flex persona-flex-1 persona-min-h-0 persona-flex-col");y.style.width="100%",m.appendChild(y);let h=M("div","persona-widget-pill-root");return h.setAttribute("data-persona-composer-bar",""),h.dataset.state="collapsed",h.dataset.expandedSize=u.expandedSize??"anchored",h.style.zIndex=String(e?.launcher?.zIndex??an),{wrapper:m,panel:y,pillRoot:h}}if(n){let u=M("div","persona-relative persona-h-full persona-w-full persona-flex persona-flex-1 persona-min-h-0 persona-flex-col"),m=M("div","persona-relative persona-h-full persona-w-full persona-flex persona-flex-1 persona-min-h-0 persona-flex-col");return u.appendChild(m),{wrapper:u,panel:m}}if(!t){let u=M("div","persona-relative persona-h-full persona-flex persona-flex-col persona-flex-1 persona-min-h-0"),m=M("div","persona-relative persona-flex-1 persona-flex persona-flex-col persona-min-h-0"),y=e?.launcher?.width??"100%";return u.style.width=y,m.style.width="100%",u.appendChild(m),{wrapper:u,panel:m}}let r=e?.launcher??{},s=r.position&&Yn[r.position]?Yn[r.position]:Yn["bottom-right"],a=M("div",`persona-widget-wrapper persona-fixed ${s} persona-transition`);a.style.zIndex=String(e?.launcher?.zIndex??an);let l=M("div","persona-widget-panel persona-relative persona-min-h-[320px]"),p=e?.launcher?.width??e?.launcherWidth??Gn;return l.style.width=p,l.style.maxWidth=p,a.appendChild(l),{wrapper:a,panel:l}},rf=e=>{let t=Y("div",{className:"persona-suggestions",attrs:{"data-persona-suggestions":Nm(e)}});return t.hidden=!0,t},sx=(e,t)=>{let n=rf("starter"),o=Qw(e,n,{flatShadow:Mt(e)}),r=wo(e);yp(o,r),ta(t,o.host,ts(r,e?.initialMessages));let s=Xw();return bp(s,r.message,e),{welcome:o,greetingHost:s}},bk=(e,t)=>{let n=M("div","persona-widget-container persona-relative persona-flex persona-flex-1 persona-min-h-0 persona-flex-col persona-text-persona-primary");n.setAttribute("data-persona-theme-zone","container");let{button:o,wrapper:r}=Xi(e,{showClose:t,wrapperClassName:"persona-composer-bar-close",buttonSize:ox,iconSize:nf});r.style.position="absolute",r.style.top="8px",r.style.right="8px",r.style.zIndex="10";let s=e?.launcher?.clearChat?.enabled??!0,a=null,l=null;if(s){let D=Ji(e,{wrapperClassName:"persona-composer-bar-clear-chat",buttonSize:ox,iconSize:of});a=D.button,l=D.wrapper,l.style.position="absolute",l.style.top="8px",l.style.right="32px",l.style.zIndex="10"}let d=Y("span",{className:"persona-widget-header",attrs:{"data-persona-theme-zone":"header"},style:{display:"none"}}),p=Y("div",{className:"persona-widget-body persona-flex persona-flex-1 persona-min-h-0 persona-flex-col persona-gap-6 persona-overflow-y-auto persona-bg-persona-container persona-px-6 persona-py-6",attrs:{id:"persona-scroll-container","data-persona-theme-zone":"messages"},style:{paddingTop:"48px"}});p.style.setProperty("scrollbar-gutter","stable");let{welcome:u,greetingHost:m}=sx(e,p),{host:y,title:h,subtitle:C}=u,x=u.starterSuggestions,S=M("div","persona-widget-messages persona-flex persona-flex-col persona-gap-3"),k=rf("followUp"),B=Jr(e,!0);B&&(S.style.maxWidth=B,S.style.marginLeft="auto",S.style.marginRight="auto",S.style.width="100%"),p.append(y,m,S,k);let $=Y("div",{className:"persona-composer-overlay persona-pointer-events-none",attrs:{"data-persona-composer-overlay":""},style:{position:"absolute",left:"0",right:"0",bottom:"calc(var(--persona-composer-overlay-height, 0px) + var(--persona-composer-lift, 0px))",zIndex:"20"}}),T=mp({config:e}),{root:I,textNode:A}=$w();return n.append(d,r,p,$),l&&n.appendChild(l),{container:n,body:p,messagesWrapper:S,starterSuggestions:x,transcriptSuggestions:k,composerOverlay:$,suggestions:T.suggestions,textarea:T.textarea,sendButton:T.sendButton,sendButtonWrapper:T.sendButtonWrapper,micButton:T.micButton,micButtonWrapper:T.micButtonWrapper,composerForm:T.composerForm,statusText:T.statusText,welcomeHost:y,welcomeIconHolder:u.iconHolder,greetingHost:m,introKicker:u.kicker,introTitle:h,introSubtitle:C,closeButton:o,closeButtonWrapper:r,clearChatButton:a,clearChatButtonWrapper:l,iconHolder:M("span"),headerTitle:M("span"),headerSubtitle:M("span"),header:d,footer:T.footer,attachmentButton:T.attachmentButton,attachmentButtonWrapper:T.attachmentButtonWrapper,attachmentInput:T.attachmentInput,attachmentPreviewsContainer:T.attachmentPreviewsContainer,actionsRow:T.actionsRow,leftActions:T.leftActions,rightActions:T.rightActions,setSendButtonMode:T.setSendButtonMode,peekBanner:I,peekTextNode:A}},ix=(e,t=!0)=>{if(es(e))return bk(e,t);let n=Y("div",{className:"persona-widget-container persona-flex persona-h-full persona-w-full persona-flex-1 persona-min-h-0 persona-flex-col persona-text-persona-primary persona-bg-persona-surface persona-rounded-2xl persona-overflow-hidden persona-border persona-border-persona-border",attrs:{"data-persona-theme-zone":"container"}}),o=e?.layout?.header,r=e?.layout?.showHeader!==!1,s=o?Zi(e,o,{showClose:t}):fr({config:e,showClose:t}),a=Y("div",{className:"persona-widget-body persona-flex persona-flex-1 persona-min-h-0 persona-flex-col persona-gap-6 persona-overflow-y-auto persona-bg-persona-container persona-px-6 persona-py-6",attrs:{id:"persona-scroll-container","data-persona-theme-zone":"messages"}});a.style.setProperty("scrollbar-gutter","stable");let{welcome:l,greetingHost:d}=sx(e,a),{host:p,title:u,subtitle:m}=l,y=l.starterSuggestions,h=M("div","persona-widget-messages persona-flex persona-flex-col persona-gap-3"),C=rf("followUp"),x=Jr(e,!1);x&&(h.style.maxWidth=x,h.style.marginLeft="auto",h.style.marginRight="auto",h.style.width="100%"),a.append(p,d,h,C);let S=Xs({config:e}),k=e?.layout?.showFooter!==!1;r?Qs(n,s,e):(s.header.style.display="none",Qs(n,s,e)),n.append(a);let B=Y("div",{className:"persona-composer-overlay persona-pointer-events-none",attrs:{"data-persona-composer-overlay":""},style:{position:"absolute",left:"0",right:"0",bottom:"calc(var(--persona-composer-overlay-height, 0px) + var(--persona-composer-lift, 0px))",zIndex:"20"}});return k||(S.footer.style.display="none"),n.append(S.footer),n.append(B),{container:n,body:a,messagesWrapper:h,starterSuggestions:y,transcriptSuggestions:C,composerOverlay:B,suggestions:S.suggestions,textarea:S.textarea,sendButton:S.sendButton,sendButtonWrapper:S.sendButtonWrapper,micButton:S.micButton,micButtonWrapper:S.micButtonWrapper,composerForm:S.composerForm,statusText:S.statusText,welcomeHost:p,welcomeIconHolder:l.iconHolder,greetingHost:d,introKicker:l.kicker,introTitle:u,introSubtitle:m,closeButton:s.closeButton,closeButtonWrapper:s.closeButtonWrapper,clearChatButton:s.clearChatButton,clearChatButtonWrapper:s.clearChatButtonWrapper,iconHolder:s.iconHolder,headerTitle:s.headerTitle,headerSubtitle:s.headerSubtitle,header:s.header,footer:S.footer,attachmentButton:S.attachmentButton,attachmentButtonWrapper:S.attachmentButtonWrapper,attachmentInput:S.attachmentInput,attachmentPreviewsContainer:S.attachmentPreviewsContainer,actionsRow:S.actionsRow,leftActions:S.leftActions,rightActions:S.rightActions,setSendButtonMode:S.setSendButtonMode}};var sf=(e,t)=>{let n=M("button");n.type="button",n.innerHTML=`
22
+ `),l=Array.isArray(t.contentParts)&&t.contentParts.length>0,d=r.contentParts.length>0;if(l){let p=[];s&&p.push(ao(s)),p.push(...r.contentParts),p.push(...t.contentParts),t.contentParts=p}else if(d){let p=[];a&&p.push(ao(a)),p.push(...r.contentParts),t.contentParts=p}else s&&(t.llmContent=a);Object.keys(r.context).length>0&&(t.mentionContext=r.context)}async sendMessage(t,n){let o=t.trim(),r=!!n?.replayFields&&(n.replayFields.llmContent!==void 0||n.replayFields.rawContent!==void 0||(n.replayFields.contextMentions?.length??0)>0);if(!o&&(!n?.contentParts||n.contentParts.length===0)&&(!n?.mentions||n.mentions.refs.length===0)&&!r)return;(this.historyGate||this.projectionFinalizationPromise||this.historySendBlocked||this.credentialReinitPending)&&await this.awaitHistorySendable(),this.stopSpeaking(),this.abortController?.abort(),this.abortWebMcpResolves(),this.teardownReconnect();let s=$i(),a=Gr();this.activeAssistantMessageId=null;let l=n?.contentParts&&Ki(n.contentParts)?Vi:"",d={id:s,role:"user",content:o||l,createdAt:new Date().toISOString(),sequence:this.nextSequence(),viaVoice:n?.viaVoice||!1,...n?.contentParts&&n.contentParts.length>0&&{contentParts:n.contentParts},...n?.mentions&&n.mentions.refs.length>0&&{contextMentions:n.mentions.refs},...n?.contentSegments&&n.contentSegments.length>0&&{contentSegments:n.contentSegments},...n?.composerOptions&&{composerOptions:n.composerOptions},...n?.replayFields??{}};this.appendMessage(d),this.setStreaming(!0);let p=new AbortController;if(this.abortController=p,n?.mentions){let m=this.messages.find(y=>y.id===s)??d;if(await this.applyMentionBundle(m,o,n.mentions.finalize),p.signal.aborted||this.abortController!==p)return;this.callbacks.onMessagesChanged([...this.messages])}if(n?.quote&&!n.replayFields){let m=this.messages.find(h=>h.id===s)??d,y=Zv({quote:n.quote,text:m.llmContent??m.content,contentParts:m.contentParts});y.contentParts&&(m.contentParts=y.contentParts),y.llmContent!==void 0&&(m.llmContent=y.llmContent),(y.contentParts||y.llmContent!==void 0)&&(m.quote={...n.quote},this.callbacks.onMessagesChanged([...this.messages]))}let u=[...this.messages];try{await this.dispatchWithDeletedRecovery(u,p,a,s,{composerOptions:n?.composerOptions,interrupt:n?.interrupt})}catch(m){if(this.status==="resuming"||this.reconnecting)return;let y=m instanceof Error&&(m.name==="AbortError"||m.message.includes("aborted")||m.message.includes("abort"));if(!y){let h=cm(m,this.config.errorMessage);if(h){let C={id:a,role:"assistant",createdAt:new Date().toISOString(),content:h,sequence:this.nextSequence()};this.appendMessage(C)}}this.setStatus("idle"),this.setStreaming(!1),this.abortController=null,y||(m instanceof Error?this.callbacks.onError?.(m):this.callbacks.onError?.(new Error(String(m))))}}resubmitFrom(t,n){let o=eC(this.messages,t);if(!o)return!1;let r=this.messages[o.start],s=n.replacement,a=s?s.text:r.content,l=s?s.contentParts:r.contentParts;if(!(!!a?.trim()||(l?.length??0)>0||!s&&(r.llmContent?.trim()?.length??0)>0))return!1;let p=s?void 0:{...r.llmContent!==void 0&&{llmContent:r.llmContent},...r.rawContent!==void 0&&{rawContent:r.rawContent},...r.mentionContext&&{mentionContext:r.mentionContext},...r.contextMentions&&{contextMentions:r.contextMentions},...r.quote&&{quote:r.quote}},u=s?this.toComposerOptionsPayload(s.options):r.composerOptions,m=s?s.contentSegments:r.contentSegments,y=s?s.options?.quote:void 0,h=s?s.viaVoice:r.viaVoice;return this.cancel(),this.messages=this.messages.slice(0,o.start),this.sendMessage(a??"",{...l?.length?{contentParts:[...l]}:{},...m?.length?{contentSegments:[...m]}:{},...u?{composerOptions:u}:{},...y?{quote:y}:{},...p&&Object.keys(p).length>0?{replayFields:p}:{},viaVoice:h===!0}),!0}toComposerOptionsPayload(t){if(!t)return;let n={};return t.selectedModelId&&(n.selectedModelId=t.selectedModelId),t.activeModeIds?.length&&(n.activeModeIds=[...t.activeModeIds]),Object.keys(n).length>0?n:void 0}async continueConversation(){if(this.streaming)return;(this.historyGate||this.projectionFinalizationPromise||this.historySendBlocked||this.credentialReinitPending)&&await this.awaitHistorySendable(),this.abortController?.abort(),this.teardownReconnect();let t=Gr();this.activeAssistantMessageId=null,this.setStreaming(!0);let n=new AbortController;this.abortController=n;let o=[...this.messages];try{await this.client.dispatch({messages:o,signal:n.signal,assistantMessageId:t},this.handleEvent)}catch(r){if(this.status==="resuming"||this.reconnecting)return;let s=r instanceof Error&&(r.name==="AbortError"||r.message.includes("aborted")||r.message.includes("abort"));if(!s){let a=cm(r,this.config.errorMessage);if(a){let l={id:t,role:"assistant",createdAt:new Date().toISOString(),content:a,sequence:this.nextSequence()};this.appendMessage(l)}}this.setStatus("idle"),this.setStreaming(!1),this.abortController=null,s||(r instanceof Error?this.callbacks.onError?.(r):this.callbacks.onError?.(new Error(String(r))))}}async connectStream(t,n){if(this.streaming&&!n?.allowReentry)return;n?.allowReentry||this.abortController?.abort(),n?.preserveAssistantId&&n.assistantMessageId&&(this.activeAssistantMessageId=n.assistantMessageId);let o=n?.preserveAssistantId?n.assistantMessageId:void 0,r=!1;for(let s of this.messages)s.streaming&&s.id!==o&&(s.streaming=!1,r=!0);r&&this.callbacks.onMessagesChanged([...this.messages]),this.setStreaming(!0);try{await this.client.processStream(t,this.handleEvent,n?.assistantMessageId,n?.seedContent)}catch(s){if(this.status==="resuming"||this.reconnecting)return;this.setStatus("error"),this.webMcpResolveControllers.size===0&&(this.setStreaming(!1),this.abortController=null),this.callbacks.onError?.(s instanceof Error?s:new Error(String(s)))}}wireDefaultWebMcpConfirm(){let t=this.config.webmcp;t?.enabled===!0&&!t.onConfirm&&this.client.setWebMcpConfirmHandler(n=>this.requestWebMcpApproval(n))}requestWebMcpApproval(t){try{if(this.config.webmcp?.autoApprove?.(t)===!0)return Promise.resolve(!0)}catch{}let n={id:`webmcp-${++this.webMcpApprovalSeq}`,status:"pending",agentId:"",executionId:"",toolName:t.toolName,toolType:"webmcp",description:t.description??`Allow the assistant to run ${t.toolName}?`,parameters:t.args},o=`approval-${n.id}`;return this.upsertMessage({id:o,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",approval:n}),new Promise(r=>{this.webMcpApprovalResolvers.set(o,r)})}resolveWebMcpApproval(t,n){let o=this.webMcpApprovalResolvers.get(t);if(!o)return;this.webMcpApprovalResolvers.delete(t);let r=this.messages.find(s=>s.id===t);r?.approval&&this.upsertMessage({...r,approval:{...r.approval,status:n,resolvedAt:Date.now()}}),o(n==="approved")}async resolveApproval(t,n,o){let r=`approval-${t.id}`,s={...t,status:n,resolvedAt:Date.now()},a=this.messages.find(u=>u.id===r),l={id:r,role:"assistant",content:"",createdAt:a?.createdAt??new Date().toISOString(),...a?.sequence!==void 0?{sequence:a.sequence}:{},streaming:!1,variant:"approval",approval:s};this.upsertMessage(l),this.abortController?.abort(),this.abortController=new AbortController,this.setStreaming(!0);let d=this.config.approval,p=d&&typeof d=="object"?d.onDecision:void 0;try{let u;if(p?u=await p({approvalId:t.id,executionId:t.executionId,agentId:t.agentId,toolName:t.toolName},n,o):u=await this.client.resolveApproval({agentId:t.agentId,executionId:t.executionId,approvalId:t.id},n),u){let m=null;if(u instanceof Response){if(!u.ok){let y=await u.json().catch(()=>null);throw new Error(y?.error??`Approval request failed: ${u.status}`)}m=u.body}else u instanceof ReadableStream&&(m=u);m?await this.connectStream(m,{allowReentry:!0}):(n==="denied"&&this.appendMessage({id:`denial-${t.id}`,role:"assistant",content:"Tool execution was denied by user.",createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()}),this.setStreaming(!1),this.abortController=null)}else this.setStreaming(!1),this.abortController=null}catch(u){let m=u instanceof Error&&(u.name==="AbortError"||u.message.includes("aborted")||u.message.includes("abort"));this.setStreaming(!1),this.abortController=null,m||this.callbacks.onError?.(u instanceof Error?u:new Error(String(u)))}}persistAskUserQuestionProgress(t,n){let o=this.messages.find(r=>r.id===t.id);o&&this.upsertMessage({...o,agentMetadata:{...o.agentMetadata,askUserQuestionAnswers:n.answers,askUserQuestionIndex:n.currentIndex}})}markAskUserQuestionResolved(t,n){let o=this.messages.find(r=>r.id===t.id);o&&this.upsertMessage({...o,agentMetadata:{...o.agentMetadata,awaitingLocalTool:!1,askUserQuestionAnswered:!0,...n?{askUserQuestionAnswers:n}:{}}})}async resolveAskUserQuestion(t,n){if(this.messages.find(u=>u.id===t.id)?.agentMetadata?.askUserQuestionAnswered===!0)return;let r=t.agentMetadata?.executionId,s=t.toolCall?.name;if(!r||!s){this.callbacks.onError?.(new Error("resolveAskUserQuestion: message is missing executionId or toolCall.name"));return}let a=typeof n=="string"?void 0:n;if(a===void 0&&typeof n=="string"){let u=t.toolCall?.args,m=Array.isArray(u?.questions)?u.questions:[];if(m.length===1){let y=typeof m[0]?.question=="string"?m[0].question:"";y&&(a={[y]:n})}}this.markAskUserQuestionResolved(t,a),this.abortController?.abort(),this.abortController=new AbortController,this.setStreaming(!0);let l=t.toolCall.id,d=t.toolCall?.args,p=Array.isArray(d?.questions)?d.questions:[];if(p.length===0){let u=typeof n=="string"?n:Object.entries(n).map(([m,y])=>`${m}: ${Array.isArray(y)?y.join(", "):y}`).join(" | ");this.appendMessage({id:`ask-user-answer-${l}`,role:"user",content:u,createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()})}else{let u=a??{};p.forEach((m,y)=>{let h=typeof m?.question=="string"?m.question:"";if(!h)return;let C=u[h],S=Array.isArray(C)?C.join(", "):typeof C=="string"?C:"";this.appendMessage({id:`ask-user-q-${l}-${y}`,role:"assistant",content:h,createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()}),this.appendMessage({id:`ask-user-a-${l}-${y}`,role:"user",content:S||"*Skipped*",createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()})})}try{let u=await this.client.resumeFlow(r,{[s]:n},{after:this.resumable?.executionId===r?this.resumable.lastEventId:void 0});if(!u.ok){let m=await u.json().catch(()=>null);throw new Error(m?.error??`Resume failed: ${u.status}`)}u.body?await this.connectStream(u.body,{allowReentry:!0}):(this.setStreaming(!1),this.abortController=null)}catch(u){let m=u instanceof Error&&(u.name==="AbortError"||u.message.includes("aborted")||u.message.includes("abort"));this.setStreaming(!1),this.abortController=null,m||this.callbacks.onError?.(u instanceof Error?u:new Error(String(u)))}}enqueueWebMcpAwait(t){let n=t.agentMetadata?.executionId,o=t.toolCall?.id;if(!n||!o){let s=this.webMcpEpoch;queueMicrotask(()=>{s===this.webMcpEpoch&&this.resolveWebMcpToolCall(t)});return}let r=this.webMcpAwaitBatches.get(n);r||(r={snapshots:[],seen:new Set},this.webMcpAwaitBatches.set(n,r)),!r.seen.has(o)&&(r.seen.add(o),r.snapshots.push(t))}scheduleWebMcpBatchFlush(){if(this.webMcpAwaitBatches.size===0)return;let t=this.webMcpEpoch;queueMicrotask(()=>{if(t===this.webMcpEpoch)for(let n of[...this.webMcpAwaitBatches.keys()])this.flushWebMcpAwaitBatch(n)})}flushWebMcpAwaitBatch(t){let n=this.webMcpAwaitBatches.get(t);if(!n)return;this.webMcpAwaitBatches.delete(t);let{snapshots:o}=n;o.length===1?this.resolveWebMcpToolCall(o[0]):o.length>1&&this.resolveWebMcpToolCallBatch(t,o)}resolveWebMcpToolStartedAt(t){let o=[this.messages.find(r=>r.id===t.id)?.toolCall?.startedAt,t.toolCall?.startedAt];for(let r of o)if(typeof r=="number"&&Number.isFinite(r))return r;return Date.now()}isSuggestRepliesAlreadyResolved(t){return t.toolCall?.name!==jo?!1:(this.messages.find(o=>o.id===t.id)??t).agentMetadata?.suggestRepliesResolved===!0}markWebMcpToolRunning(t){let n=this.resolveWebMcpToolStartedAt(t);return this.upsertMessage({...t,streaming:!0,agentMetadata:{...t.agentMetadata,awaitingLocalTool:!1},toolCall:t.toolCall?{...t.toolCall,status:"running",startedAt:n,completedAt:void 0,duration:void 0,durationMs:void 0}:t.toolCall}),n}markWebMcpToolComplete(t,n,o,r=Date.now(),s){this.messages.some(a=>a.id===t.id)&&this.upsertMessage({...t,streaming:!1,agentMetadata:{...t.agentMetadata,awaitingLocalTool:!1,...s},toolCall:t.toolCall?{...t.toolCall,status:"complete",result:n,startedAt:o,completedAt:r,duration:void 0,durationMs:Math.max(0,r-o)}:t.toolCall})}async resolveWebMcpToolCallBatch(t,n){let o=[],r=new AbortController;this.webMcpResolveControllers.add(r),this.setStreaming(!0);let s=async d=>{let p=d.toolCall?.name,u=d.toolCall?.id;if(!p||!u)return null;let m=`${t}:${u}`;if(this.webMcpInflightKeys.has(m)||this.webMcpResolvedKeys.has(m)||this.isSuggestRepliesAlreadyResolved(d))return null;this.webMcpInflightKeys.add(m),o.push(m);let y=this.markWebMcpToolRunning(d),h=d.agentMetadata?.webMcpToolCallId??p;if(p===jo)return{dedupeKey:m,resumeKey:h,output:Tv(),toolMessage:d,startedAt:y,completedAt:Date.now()};let C=this.client.executeWebMcpToolCall(p,d.toolCall?.args,r.signal),S;if(!C)S={isError:!0,content:[{type:"text",text:"WebMCP not enabled on this widget."}]};else try{S=await C}catch(x){let k=x instanceof Error&&(x.name==="AbortError"||x.message.includes("aborted")||x.message.includes("abort"));return k||this.callbacks.onError?.(x instanceof Error?x:new Error(String(x))),this.markWebMcpToolComplete(d,dm(k?"Aborted by cancel()":TT(x)),y),this.webMcpInflightKeys.delete(m),null}return r.signal.aborted?(this.markWebMcpToolComplete(d,dm("Aborted by cancel()"),y),this.webMcpInflightKeys.delete(m),null):{dedupeKey:m,resumeKey:h,output:S,toolMessage:d,startedAt:y,completedAt:Date.now()}},a;if(this.config.webmcp?.execution==="sequential"){a=[];for(let d of n)a.push(await s(d))}else a=await Promise.all(n.map(s));let l=[];try{if(l=a.filter(u=>u!==null),l.length===0)return;let d={};for(let u of l)d[u.resumeKey]=u.output;let p=await this.client.resumeFlow(t,d,{signal:r.signal,after:this.resumable?.executionId===t?this.resumable.lastEventId:void 0});if(!p.ok){let u=await p.json().catch(()=>null);throw new Error(u?.error??`Resume failed: ${p.status}`)}for(let u of l)this.webMcpResolvedKeys.add(u.dedupeKey),this.markWebMcpToolComplete(u.toolMessage,u.output,u.startedAt,u.completedAt,u.toolMessage.toolCall?.name===jo?{suggestRepliesResolved:!0}:void 0);p.body&&await this.connectStream(p.body,{allowReentry:!0})}catch(d){if(!(d instanceof Error&&(d.name==="AbortError"||d.message.includes("aborted")||d.message.includes("abort"))))this.callbacks.onError?.(d instanceof Error?d:new Error(String(d)));else for(let u of l)this.markWebMcpToolComplete(u.toolMessage,dm("Aborted by cancel()"),u.startedAt)}finally{for(let d of o)this.webMcpInflightKeys.delete(d);this.webMcpResolveControllers.delete(r),this.webMcpResolveControllers.size===0&&!this.abortController&&this.setStreaming(!1)}}async resolveWebMcpToolCall(t){let n=t.agentMetadata?.executionId,o=t.toolCall?.name,r=t.toolCall?.id;if(!n){this.callbacks.onError?.(new Error("WebMCP step_await missing executionId: dispatch left paused."));return}if(!o)return;if(!r){let a=`${n}:__no_tool_id__:${o}`;if(this.webMcpInflightKeys.has(a)||this.webMcpResolvedKeys.has(a))return;this.webMcpInflightKeys.add(a);try{await this.resumeWithToolOutput(n,o,{isError:!0,content:[{type:"text",text:"WebMCP step_await missing toolCall.id: cannot execute the page tool."}]}),this.webMcpResolvedKeys.add(a)}catch(l){this.callbacks.onError?.(l instanceof Error?l:new Error(String(l)))}finally{this.webMcpInflightKeys.delete(a)}return}let s=`${n}:${r}`;if(!(this.webMcpInflightKeys.has(s)||this.webMcpResolvedKeys.has(s)||this.isSuggestRepliesAlreadyResolved(t)))return this.resolveWebMcpToolCallBatch(n,[t])}async resumeWithToolOutput(t,n,o,r){let s=await this.client.resumeFlow(t,{[n]:o},{signal:r?.signal,after:this.resumable?.executionId===t?this.resumable.lastEventId:void 0});if(!s.ok){let a=await s.json().catch(()=>null);throw new Error(a?.error??`Resume failed: ${s.status}`)}r?.onHttpOk?.(),s.body?await this.connectStream(s.body,{allowReentry:!0}):this.webMcpResolveControllers.size===0&&(this.setStreaming(!1),this.abortController=null)}abortWebMcpResolves(){for(let t of this.webMcpResolveControllers)t.abort();this.webMcpResolveControllers.clear();for(let t of[...this.webMcpApprovalResolvers.keys()])this.resolveWebMcpApproval(t,"denied");this.webMcpAwaitBatches.clear(),this.webMcpEpoch++}cancel(){this.abortController?.abort(),this.abortController=null,this.teardownReconnect(),this.abortWebMcpResolves(),this.webMcpInflightKeys.clear(),this.stopSpeaking(),this.stopVoicePlayback(),this.setStreaming(!1),this.setStatus("idle")}clearMessages(){this.stopSpeaking(),this.abortController?.abort(),this.abortController=null,this.teardownReconnect(),this.abortWebMcpResolves(),this.messages=[],this.agentExecution=null,this.clearArtifactState(),this.webMcpInflightKeys.clear(),this.webMcpResolvedKeys.clear(),this.client.resetClientToolsFingerprint(),this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}getArtifacts(){return[...this.artifacts.values()]}getArtifactById(t){return this.artifacts.get(t)}getSelectedArtifactId(){return this.selectedArtifactId}selectArtifact(t){this.selectedArtifactId=t,this.emitArtifactsState()}clearArtifacts(){this.clearArtifactState()}upsertArtifact(t){let n=t.id||`art_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`,o=t.artifactType==="markdown"?{id:n,artifactType:"markdown",title:t.title,status:"complete",markdown:t.content,...t.file?{file:t.file}:{},...t.presentation?{presentation:t.presentation}:{}}:{id:n,artifactType:"component",title:t.title,status:"complete",component:t.component,props:t.props??{},...t.presentation?{presentation:t.presentation}:{}};return this.artifacts.set(n,o),this.selectedArtifactId=n,this.emitArtifactsState(),t.transcript!==!1&&this.injectArtifactRefBlock(o),o}injectArtifactRefBlock(t){let n=`artifact-ref-${t.id}`,o=Uo(this.config.features?.artifacts,t),r=al(o,{artifactId:t.id,title:t.title,artifactType:t.artifactType,status:"complete",...t.file?{file:t.file}:{},...t.presentation?{presentation:t.presentation}:{},...t.component?{component:t.component}:{},...t.props?{componentProps:t.props}:{},...t.markdown!==void 0?{markdown:t.markdown}:{}}),s=this.messages.find(a=>a.id===n);if(s){s.rawContent=r,s.streaming=!1,this.callbacks.onMessagesChanged([...this.messages]);return}this.injectAssistantMessage({id:n,content:"",rawContent:r})}refreshArtifactReferenceBlocks(){let t=!1;for(let n of this.artifacts.values()){let o=this.messages.find(a=>a.id===`artifact-ref-${n.id}`);if(!o)continue;let r=Uo(this.config.features?.artifacts,n),s=al(r,{artifactId:n.id,title:n.title,artifactType:n.artifactType,status:n.status,...n.file?{file:n.file}:{},...n.presentation?{presentation:n.presentation}:{},...n.component?{component:n.component}:{},...n.props?{componentProps:n.props}:{},...n.markdown!==void 0?{markdown:n.markdown}:{}});o.rawContent!==s&&(o.rawContent=s,o.streaming=n.status==="streaming",t=!0)}t&&this.callbacks.onMessagesChanged([...this.messages])}clearArtifactState(){this.artifacts.size===0&&this.selectedArtifactId===null||(this.artifacts.clear(),this.selectedArtifactId=null,this.emitArtifactsState())}emitArtifactsState(){this.callbacks.onArtifactsState?.({artifacts:[...this.artifacts.values()],selectedId:this.selectedArtifactId})}applyArtifactStreamEvent(t){switch(t.type){case"artifact_start":{t.artifactType==="markdown"?this.artifacts.set(t.id,{id:t.id,artifactType:"markdown",title:t.title,status:"streaming",markdown:"",...t.file?{file:t.file}:{}}):this.artifacts.set(t.id,{id:t.id,artifactType:"component",title:t.title,status:"streaming",component:t.component??"",props:{}}),this.selectedArtifactId=t.id;break}case"artifact_delta":{let n=this.artifacts.get(t.id);n?.artifactType==="markdown"&&(n.markdown=(n.markdown??"")+t.artDelta);break}case"artifact_update":{let n=this.artifacts.get(t.id);n?.artifactType==="component"&&(n.props={...n.props,...t.props},t.component&&(n.component=t.component));break}case"artifact_complete":{let n=this.artifacts.get(t.id);n&&(n.status="complete");break}default:return}this.emitArtifactsState()}hydrateMessages(t){this.abortController?.abort(),this.abortController=null,this.teardownReconnect(),this.abortWebMcpResolves(),this.webMcpInflightKeys.clear(),this.webMcpResolvedKeys.clear(),this.messages=this.sortMessages(t.map(n=>({...n,streaming:!1,sequence:n.sequence??this.nextSequence()}))),this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}hydrateArtifacts(t,n=null){this.artifacts.clear();for(let o of t)this.artifacts.set(o.id,{...o,status:"complete"});this.selectedArtifactId=n,this.emitArtifactsState()}trackCursor(t){let n=this.agentExecution?.executionId;if(!n||!this.activeAssistantMessageId||this.agentExecution?.status!=="running")return;let o=this.resumable===null;this.resumable={executionId:n,lastEventId:t,assistantMessageId:this.activeAssistantMessageId,status:"running"},this.notifyExecutionState(o)}isDurableDrop(){return this.resumable!==null&&typeof this.config.reconnectStream=="function"&&this.abortController?.signal.aborted!==!0&&this.webMcpResolveControllers.size===0&&this.webMcpAwaitBatches.size===0&&!this.isAwaitPending()}isAwaitPending(){return this.messages.some(t=>t.agentMetadata?.awaitingLocalTool===!0&&t.agentMetadata?.askUserQuestionAnswered!==!0||t.variant==="approval"&&t.approval?.status==="pending")}beginReconnect(){this.reconnecting||!this.resumable||typeof this.config.reconnectStream!="function"||(this.reconnecting=!0,this.callbacks.onReconnect?.({phase:"paused",handle:this.resumable}),this.setStreaming(!0),this.setStatus("resuming"),this.loadReconnectController().then(t=>{this.reconnecting&&this.resumable&&t.begin()}))}loadReconnectController(){return this.reconnectController?Promise.resolve(this.reconnectController):(this.reconnectControllerPromise||(this.reconnectControllerPromise=dC().then(({createReconnectController:t})=>{let n=t(this.buildReconnectHost());return this.reconnectController=n,n}),this.reconnectControllerPromise.catch(()=>{this.reconnectControllerPromise=null})),this.reconnectControllerPromise)}buildReconnectHost(){let t=this;return{get config(){return t.config},getResumable:()=>t.resumable,clearResumable:()=>t.clearResumable(),getStatus:()=>t.status,setStatus:n=>t.setStatus(n),setStreaming:n=>t.setStreaming(n),setReconnecting:n=>{t.reconnecting=n},setAbortController:n=>{t.abortController=n},getMessages:()=>t.messages,notifyMessagesChanged:()=>t.callbacks.onMessagesChanged([...t.messages]),resumeConnect:(n,o,r)=>t.connectStream(n,{assistantMessageId:o,allowReentry:!0,preserveAssistantId:!0,seedContent:r}),appendMessage:n=>t.appendMessage(n),nextSequence:()=>t.nextSequence(),emitReconnect:n=>t.callbacks.onReconnect?.(n),buildErrorContent:n=>cm(new Error(n),t.config.errorMessage),onError:n=>t.callbacks.onError?.(n)}}reconnectNow(){if(this.reconnecting){this.reconnectController?.wake();return}this.beginReconnect()}resumeFromHandle(t){if(typeof this.config.reconnectStream!="function"||this.reconnecting)return;let n=this.reopenTrailingAssistant();n||(n=Gr(),this.appendMessage({id:n,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:this.nextSequence()})),this.activeAssistantMessageId=n,this.agentExecution||(this.agentExecution={executionId:t.executionId,agentId:"",agentName:"",status:"running",currentIteration:0,maxTurns:0}),this.resumable={executionId:t.executionId,lastEventId:t.after,assistantMessageId:n,status:"running"},this.beginReconnect()}reopenTrailingAssistant(){for(let t=this.messages.length-1;t>=0;t--){let n=this.messages[t];if(n.role==="assistant"&&!n.variant)return n.streaming=!0,this.callbacks.onMessagesChanged([...this.messages]),n.id;if(n.role==="user")break}return null}teardownReconnect(){this.reconnecting=!1,this.reconnectController?.teardown(),this.clearResumable()}clearResumable(){this.executionStateTimer&&(clearTimeout(this.executionStateTimer),this.executionStateTimer=null);let t=this.resumable!==null;this.resumable=null,t&&this.config.onExecutionState?.(null)}notifyExecutionState(t){let n=this.config.onExecutionState;if(n){if(t){this.executionStateTimer&&(clearTimeout(this.executionStateTimer),this.executionStateTimer=null),n(this.resumable);return}this.executionStateTimer||(this.executionStateTimer=setTimeout(()=>{this.executionStateTimer=null,this.config.onExecutionState?.(this.resumable)},500))}}getResumableHandle(){return this.resumable}setStatus(t){this.status!==t&&(this.status=t,this.callbacks.onStatusChanged(t))}setStreaming(t){if(this.streaming===t)return;let n=this.streaming;this.streaming=t,this.callbacks.onStreamingChanged(t),n&&!t&&this.speakLatestAssistantMessage()}speakLatestAssistantMessage(){let t=this.config.textToSpeech;if(!t?.enabled||!(!t.provider||t.provider==="browser"||t.provider==="runtype"&&t.browserFallback))return;let o=[...this.messages].reverse().find(s=>s.role==="assistant"&&s.content&&!s.voiceProcessing);if(!o)return;if(this.ttsSpokenMessageIds.has(o.id)){this.ttsSpokenMessageIds.delete(o.id);return}let r=im(o.content);r.trim()&&this.readAloud.play(o.id,{text:r,voice:t.voice,rate:t.rate,pitch:t.pitch})}static pickBestVoice(t){return Gi(t)}toggleReadAloud(t){let n=this.messages.find(s=>s.id===t);if(!n||n.role!=="assistant")return;let o=im(n.content||"");if(!o.trim())return;let r=this.config.textToSpeech;this.readAloud.toggle(t,{text:o,voice:r?.voice,rate:r?.rate,pitch:r?.pitch})}getReadAloudState(t){return this.readAloud.stateFor(t)}onReadAloudChange(t){return this.readAloud.onChange(t)}stopSpeaking(){this.readAloud.stop(),typeof window<"u"&&"speechSynthesis"in window&&window.speechSynthesis.cancel()}appendMessage(t){let n=this.ensureSequence(t);this.messages=this.sortMessages([...this.messages,n]),this.callbacks.onMessagesChanged([...this.messages])}upsertMessage(t){let n=this.ensureSequence(t),o=this.messages.findIndex(r=>r.id===n.id);if(o===-1){this.appendMessage(n);return}this.messages=this.messages.map((r,s)=>{if(s!==o)return r;let a={...r,...n};if(r.agentMetadata?.askUserQuestionAnswered===!0&&n.agentMetadata&&(a.agentMetadata={...n.agentMetadata,askUserQuestionAnswered:!0,...r.agentMetadata.askUserQuestionAnswers?{askUserQuestionAnswers:r.agentMetadata.askUserQuestionAnswers}:{},awaitingLocalTool:!1}),r.agentMetadata?.suggestRepliesResolved===!0&&n.agentMetadata&&(a.agentMetadata={...a.agentMetadata??n.agentMetadata,suggestRepliesResolved:!0,awaitingLocalTool:!1}),r.approval&&n.approval&&r.approval.id===n.approval.id){let u=r.approval,m=n.approval;a.approval={...u,...m,executionId:m.executionId||u.executionId,toolName:m.toolName||u.toolName,description:m.description||u.description,toolType:m.toolType??u.toolType,reason:m.reason??u.reason,parameters:m.parameters??u.parameters}}let l=n.toolCall?.name,d=n.agentMetadata?.executionId,p=n.toolCall?.id;if(l&&pC(l)&&d&&p&&n.agentMetadata?.awaitingLocalTool===!0){let u=`${d}:${p}`,m=this.webMcpInflightKeys.has(u),y=this.webMcpResolvedKeys.has(u),h=r.toolCall?.name,C=r.agentMetadata?.executionId===d&&r.toolCall?.id===p&&h!==void 0&&pC(h)&&r.toolCall?.status==="complete";(m||y||C)&&(a.agentMetadata={...a.agentMetadata??{},awaitingLocalTool:!1},a.toolCall=r.toolCall,a.streaming=r.streaming)}return a}),this.messages=this.sortMessages(this.messages),this.callbacks.onMessagesChanged([...this.messages])}ensureSequence(t){return t.sequence!==void 0?{...t}:{...t,sequence:this.nextSequence()}}nextSequence(){return this.sequenceCounter++}sortMessages(t){return[...t].sort((n,o)=>{let r=new Date(n.createdAt).getTime(),s=new Date(o.createdAt).getTime();if(!Number.isNaN(r)&&!Number.isNaN(s)&&r!==s)return r-s;let a=n.sequence??0,l=o.sequence??0;return a!==l?a-l:n.id.localeCompare(o.id)})}};var co=require("lucide");var PT={add:e=>Dv(e)},kT=e=>Number.isFinite(e)?Math.min(1,Math.max(0,e)):0,Od={allowedTypes:br,maxFileSize:10*1024*1024,maxFiles:4};function LT(){return`attach_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function IT(e){return e==="application/pdf"?co.FileText:e.startsWith("text/")?co.FileText:e.includes("word")?co.FileText:e.includes("excel")||e.includes("spreadsheet")?co.FileSpreadsheet:e==="application/json"?co.FileCode:co.File}var Ks=class e{constructor(t={}){this.attachments=[];this.previewsContainer=null;this.pendingAdds=new Map;this.destroyed=!1;this.config={allowedTypes:t.allowedTypes??Od.allowedTypes,maxFileSize:t.maxFileSize??Od.maxFileSize,maxFiles:t.maxFiles??Od.maxFiles,onFileRejected:t.onFileRejected,onAttachmentsChange:t.onAttachmentsChange,adapter:t.adapter}}hasCustomAdapter(){return typeof this.config.adapter?.add=="function"}adapter(){return this.hasCustomAdapter()?this.config.adapter:PT}setPreviewsContainer(t){this.previewsContainer=t}remountPreviews(t){if(this.previewsContainer=t,t){t.innerHTML="";for(let n of this.attachments)this.renderPreview(n)}this.updatePreviewsVisibility()}updateConfig(t){t.allowedTypes!==void 0&&(this.config.allowedTypes=t.allowedTypes.length>0?t.allowedTypes:Od.allowedTypes),t.maxFileSize!==void 0&&(this.config.maxFileSize=t.maxFileSize),t.maxFiles!==void 0&&(this.config.maxFiles=t.maxFiles),t.onFileRejected!==void 0&&(this.config.onFileRejected=t.onFileRejected),t.onAttachmentsChange!==void 0&&(this.config.onAttachmentsChange=t.onAttachmentsChange),t.adapter!==void 0&&(this.config.adapter=t.adapter)}isReady(){return this.attachments.every(t=>t.status==="ready")}getAttachments(){return[...this.attachments]}getContentParts(){return this.attachments.map(t=>t.contentPart).filter(t=>t!==null)}hasAttachments(){return this.attachments.length>0}count(){return this.attachments.length}async handleFileSelect(t){!t||t.length===0||await this.handleFiles(Array.from(t))}async handleFiles(t){if(!t.length||this.destroyed)return;let n=[];for(let o of t){if(this.attachments.length>=this.config.maxFiles){this.config.onFileRejected?.(o,"count");continue}let r=Nv(o,this.config.allowedTypes,this.config.maxFileSize);if(!r.valid){let a=r.error?.includes("type")?"type":"size";this.config.onFileRejected?.(o,a);continue}let s={id:LT(),file:o,previewUrl:Ld(o)?URL.createObjectURL(o):null,contentPart:null,status:this.hasCustomAdapter()?"uploading":"processing",progress:this.hasCustomAdapter()?0:void 0};this.attachments.push(s),this.renderPreview(s),n.push(s)}this.updatePreviewsVisibility(),this.notify(),await Promise.all(n.map(o=>this.runAdd(o)))}async runAdd(t){let n=new AbortController;this.pendingAdds.set(t.id,n);let o=()=>this.destroyed||n.signal.aborted||this.pendingAdds.get(t.id)!==n||!this.attachments.includes(t);try{let r=await this.adapter().add(t.file,{signal:n.signal,onProgress:s=>{o()||t.status!=="uploading"||(t.progress=kT(s),this.updatePreview(t),this.notify())}});if(o())return;t.contentPart=r,t.status="ready",t.progress=void 0,t.error=void 0}catch(r){if(o())return;t.status="error",t.progress=void 0,t.error=r instanceof Error?r.message:String(r??"Upload failed")}finally{this.pendingAdds.get(t.id)===n&&this.pendingAdds.delete(t.id)}this.updatePreview(t),this.notify()}retryAttachment(t){let n=this.attachments.find(o=>o.id===t);!n||n.status!=="error"||this.destroyed||(n.status=this.hasCustomAdapter()?"uploading":"processing",n.progress=this.hasCustomAdapter()?0:void 0,n.error=void 0,this.updatePreview(n),this.notify(),this.runAdd(n))}abortAdd(t){let n=this.pendingAdds.get(t);n&&(this.pendingAdds.delete(t),n.abort())}removeAttachment(t){let n=this.attachments.findIndex(s=>s.id===t);if(n===-1)return;let o=this.attachments[n];this.abortAdd(t),o.previewUrl&&URL.revokeObjectURL(o.previewUrl),this.attachments.splice(n,1);let r=this.previewsContainer?.querySelector(`[data-attachment-id="${t}"]`);r&&r.remove(),o.status==="ready"&&o.contentPart&&this.releasePart(o.contentPart),this.updatePreviewsVisibility(),this.notify()}releasePart(t){let n=this.config.adapter?.remove;if(n)try{let o=n(t,{signal:new AbortController().signal});o&&typeof o.catch=="function"&&o.catch(r=>{console.error("[AttachmentManager] adapter.remove failed:",r)})}catch(o){console.error("[AttachmentManager] adapter.remove failed:",o)}}clearAttachments(){for(let t of this.attachments)this.abortAdd(t.id),t.previewUrl&&URL.revokeObjectURL(t.previewUrl);this.attachments=[],this.pendingAdds.clear(),this.previewsContainer&&(this.previewsContainer.innerHTML=""),this.updatePreviewsVisibility(),this.notify()}destroy(){if(!this.destroyed){this.destroyed=!0;for(let t of this.pendingAdds.values())t.abort();this.pendingAdds.clear();for(let t of this.attachments)t.previewUrl&&URL.revokeObjectURL(t.previewUrl);this.attachments=[],this.previewsContainer=null}}notify(){this.destroyed||this.config.onAttachmentsChange?.(this.getAttachments())}renderPreview(t){if(!this.previewsContainer)return;let n=Ld(t.file),o=M("div","persona-attachment-preview persona-relative persona-inline-block");if(o.setAttribute("data-attachment-id",t.id),o.style.width="48px",o.style.height="48px",n&&t.previewUrl){let u=M("img");u.src=t.previewUrl,u.alt=t.file.name,u.className="persona-w-full persona-h-full persona-object-cover persona-rounded-lg persona-border persona-border-gray-200",u.style.width="48px",u.style.height="48px",u.style.objectFit="cover",u.style.borderRadius="8px",o.appendChild(u)}else{let u=M("div");u.style.width="48px",u.style.height="48px",u.style.borderRadius="8px",u.style.backgroundColor="var(--persona-container, #f3f4f6)",u.style.border="1px solid var(--persona-border, #e5e7eb)",u.style.display="flex",u.style.flexDirection="column",u.style.alignItems="center",u.style.justifyContent="center",u.style.gap="2px",u.style.overflow="hidden";let m=IT(t.file.type),y=Wt(m,20,"var(--persona-muted, #6b7280)",1.5);y&&u.appendChild(y);let h=M("span");h.textContent=Fv(t.file.type,t.file.name),h.style.fontSize="8px",h.style.fontWeight="600",h.style.color="var(--persona-muted, #6b7280)",h.style.textTransform="uppercase",h.style.lineHeight="1",u.appendChild(h),o.appendChild(u)}let r=X("div",{className:"persona-attachment-status",attrs:{"data-persona-attachment-status":""}}),s=M("div","persona-attachment-progress");s.appendChild(M("div","persona-attachment-progress__bar"));let a=X("button",{className:"persona-attachment-retry",attrs:{type:"button","aria-label":"Retry upload"}}),l=ge("rotate-cw",12,"var(--persona-text-inverse, #ffffff)",2);l?a.appendChild(l):a.textContent="\u21BB",a.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.retryAttachment(t.id)}),r.append(s,a),o.appendChild(r);let d=M("button","persona-attachment-remove persona-absolute persona-flex persona-items-center persona-justify-center");d.type="button",d.setAttribute("aria-label","Remove attachment"),d.style.position="absolute",d.style.top="-4px",d.style.insetInlineEnd="-4px",d.style.width="18px",d.style.height="18px",d.style.borderRadius="50%",d.style.backgroundColor="var(--persona-palette-colors-black-alpha-60, rgba(0, 0, 0, 0.6))",d.style.border="none",d.style.cursor="pointer",d.style.display="flex",d.style.alignItems="center",d.style.justifyContent="center",d.style.padding="0";let p=Wt(co.X,10,"var(--persona-text-inverse, #ffffff)",2);p?d.appendChild(p):(d.textContent="\xD7",d.style.color="var(--persona-text-inverse, #ffffff)",d.style.fontSize="14px",d.style.lineHeight="1"),d.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.removeAttachment(t.id)}),o.appendChild(d),this.previewsContainer.appendChild(o),this.applyPreviewState(o,t)}updatePreview(t){let n=this.previewsContainer?.querySelector(`[data-attachment-id="${t.id}"]`);n&&this.applyPreviewState(n,t)}applyPreviewState(t,n){t.dataset.status=n.status;let o=n.status!=="ready"&&n.status!=="error";t.setAttribute("aria-busy",o?"true":"false"),t.title=n.status==="error"?`${n.file.name}: ${n.error??"Upload failed"}`:n.file.name;let r=t.querySelector(".persona-attachment-progress__bar");if(r){let s=n.progress;r.style.width=typeof s=="number"?`${Math.round(s*100)}%`:""}}updatePreviewsVisibility(){this.previewsContainer&&(this.previewsContainer.style.display=this.attachments.length>0?"flex":"none")}static fromConfig(t,n){return new e({allowedTypes:t?.allowedTypes,maxFileSize:t?.maxFileSize,maxFiles:t?.maxFiles,onFileRejected:t?.onFileRejected,onAttachmentsChange:n,adapter:t?.adapter})}};var uC=(e,t)=>e.length===t.length&&e.every((n,o)=>n===t[o]),RT=(e,t)=>e.length===t.length&&e.every((n,o)=>{let r=t[o];return n.id===r.id&&n.name===r.name&&n.mimeType===r.mimeType&&n.size===r.size&&n.status===r.status&&n.progress===r.progress&&n.error===r.error});function gC(){let e={text:"",attachments:[],mentionRefs:[],selectedModelId:void 0,activeModeIds:[],quote:void 0,pendingSubmission:void 0,preparing:!1,streaming:!1,inputDisabled:!1,sendDisabled:!1},t=new Set,n=null,o=!1,r=!1,s=()=>e.preparing?"preparing":e.streaming?"streaming":"idle",a=()=>{let u=s();return Object.freeze({text:e.text,attachments:Object.freeze(e.attachments.map(m=>Object.freeze({...m}))),mentionRefs:Object.freeze([...e.mentionRefs]),selectedModelId:e.selectedModelId,activeModeIds:Object.freeze([...e.activeModeIds]),quote:e.quote?Object.freeze({...e.quote}):void 0,pendingSubmission:e.pendingSubmission,phase:u,inputDisabled:e.inputDisabled,sendDisabled:u!=="idle"||e.sendDisabled||e.inputDisabled})},l=()=>(n||(n=a()),n),d=()=>{if(o=!1,r||t.size===0)return;let u=l();for(let m of[...t])try{m(u)}catch(y){typeof console<"u"&&console.error("[AgentWidget] composer state listener failed:",y)}},p=()=>{n=null,!(r||o)&&(o=!0,queueMicrotask(d))};return{getState:l,subscribe:u=>(t.add(u),()=>t.delete(u)),setText:u=>{e.text!==u&&(e.text=u,p())},setAttachments:u=>{RT(e.attachments,u)||(e.attachments=[...u],p())},setMentionRefs:u=>{uC(e.mentionRefs,u)||(e.mentionRefs=[...u],p())},setSelectedModelId:u=>{e.selectedModelId!==u&&(e.selectedModelId=u,p())},setActiveModeIds:u=>{uC(e.activeModeIds,u)||(e.activeModeIds=[...u],p())},setQuote:u=>{let m=e.quote;m?.text===u?.text&&m?.messageId===u?.messageId&&m?.sourceLabel===u?.sourceLabel||(e.quote=u?{...u}:void 0,p())},setPendingSubmission:u=>{e.pendingSubmission!==u&&(e.pendingSubmission=u,p())},setPreparing:u=>{e.preparing!==u&&(e.preparing=u,p())},setStreaming:u=>{e.streaming!==u&&(e.streaming=u,p())},setInputDisabled:u=>{e.inputDisabled!==u&&(e.inputDisabled=u,p())},setSendDisabled:u=>{e.sendDisabled!==u&&(e.sendDisabled=u,p())},flush:()=>{o&&d()},destroy:()=>{r=!0,o=!1,t.clear()}}}var In=(e,...t)=>{for(let n of t){let o=e.querySelector(n);if(o)return o}return null},mC=(e,t)=>{let n=M("div",e);return n.setAttribute(t,""),n.setAttribute("data-persona-composer-synthesized",""),n.style.display="contents",n};function fC(e,t={}){let n=In(e,"[data-persona-composer-form]"),o=In(e,"[data-persona-composer-input]");if(!n||!o){let k=`[Persona] composer surface is missing required element(s): ${[!n&&"form",!o&&"input"].filter(Boolean).join(", ")}. Mark them with data-persona-composer-form / data-persona-composer-input.`;if(t.debug&&(n||o))throw new Error(k);return typeof console<"u"&&console.warn(k),null}let r={header:In(e,"[data-persona-composer-header]"),body:In(e,"[data-persona-composer-body]"),actionsStart:In(e,"[data-persona-composer-actions-start]",".persona-widget-composer__left-actions"),actionsEnd:In(e,"[data-persona-composer-actions-end]",".persona-widget-composer__right-actions"),actionsRow:In(e,"[data-persona-composer-actions]",".persona-widget-composer .persona-flex.persona-items-center.persona-justify-between"),suggestions:In(e,"[data-persona-composer-suggestions]",".persona-mb-3.persona-flex.persona-flex-wrap.persona-gap-2"),status:In(e,"[data-persona-composer-status]")},s=new Set,a=r.header;a||(s.add("header"),a=mC("persona-widget-composer__header","data-persona-composer-header"),n.parentNode?n.parentNode.insertBefore(a,n):e.appendChild(a));let l=r.body??o.parentElement??n,d=(x,k,O,$,T)=>{if(k)return k;s.add(x);let I=mC(O,$);return T.appendChild(I),I},p=d("actionsStart",r.actionsStart,"persona-widget-composer__left-actions","data-persona-composer-actions-start",n),u=d("actionsEnd",r.actionsEnd,"persona-widget-composer__right-actions","data-persona-composer-actions-end",n),m=d("suggestions",r.suggestions,"persona-widget-composer__suggestions","data-persona-composer-suggestions",e),y=d("status",r.status,"persona-widget-composer__status","data-persona-composer-status",e),h=[],C=(x,k)=>x.target===k.target&&x.type===k.type&&x.handler===k.handler,S=In(e,"[data-persona-composer-attachment-input]",'input[type="file"]')??void 0;return{footer:e,form:n,input:o,header:a,body:l,actionsStart:p,actionsEnd:u,suggestions:m,status:y,attachmentInput:S,attachmentPreviews:In(e,"[data-persona-composer-attachment-previews]",".persona-attachment-previews")??void 0,attachmentButton:In(e,"[data-persona-composer-attachment-button]",".persona-attachment-button")??void 0,sendButton:In(e,"[data-persona-composer-submit]")??void 0,micButton:In(e,"[data-persona-composer-mic]")??void 0,synthesized:s,found:r,addListener:(x,k,O,$)=>{x.addEventListener(k,O,$),h.push({target:x,type:k,handler:O,options:$})},removeListener:(x,k,O,$)=>{x.removeEventListener(k,O,$),h=h.filter(T=>!C(T,{target:x,type:k,handler:O}))},destroy:()=>{for(let x of h)x.target.removeEventListener(x.type,x.handler,x.options);h=[]}}}var $t={idle:"Online",connecting:"Connecting\u2026",connected:"Streaming\u2026",error:"Offline",paused:"Connection lost\u2026",resuming:"Reconnecting\u2026"},sn=1e5,Xi=sn+1;var HT=8,WT=8,pm=10,hC=200,yC=300,bC=0,_d=e=>Math.max(0,e);function vC(e){e.delayMs!==void 0&&(hC=_d(e.delayMs)),e.skipDelayMs!==void 0&&(yC=_d(e.skipDelayMs))}var OT=()=>Date.now()<bC,BT=e=>{bC=e>0?Date.now()+e:0},Bd=new WeakMap,gm="data-persona-tooltip-suppressed",_T=e=>typeof e.closest=="function"&&e.closest(`[${gm}]`)!==null;function CC(e){Bd.get(e)?.hide()}var wC=e=>e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e,DT=e=>{let t=e.getRootNode?.();return wC(t)?t:e.ownerDocument.body},um=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),NT=[...["background","foreground","hint-fg","radius","font-size","padding","max-width","shadow","arrow-display"].map(e=>`--persona-tooltip-${e}`),"--persona-font-family","--persona-radius-sm"];function nn(e){Bd.get(e.anchor)?.destroy();let{anchor:t,trigger:n=t,text:o,hint:r,enabled:s=!0,gap:a=HT,viewportPadding:l=WT}=e,d=()=>t.ownerDocument,p=()=>d().defaultView??window,u=null,m=null,y=null,h=null,C,S=!1,x=!1,k=!1,O=()=>(typeof o=="function"?o():o).trim(),$=()=>(typeof r=="function"?r():r??"").trim(),T=()=>_d(e.delayMs??hC),I=()=>_d(e.skipDelayMs??yC),A=()=>{C!==void 0&&(p().clearTimeout(C),C=void 0)},N=()=>{A();let he=u!==null;h?.(),h=null,u?.remove(),u=null,m=null,y=null,he&&BT(I())},Q=()=>{if(!u)return;let he=d(),We=p(),Oe=t.getBoundingClientRect(),Se=u.getBoundingClientRect(),Xe=he.documentElement.clientWidth||We.innerWidth,we=he.documentElement.clientHeight||We.innerHeight,j=Xe-l-Se.width,$e=Oe.left+Oe.width/2-Se.width/2,je=um($e,l,j),mt=Oe.top-l,Ae=we-l-Oe.bottom,ke=Se.height+a,ve=mt>=ke||mt>=Ae?"top":"bottom",Re=ve==="top"?Oe.top-a-Se.height:Oe.bottom+a,Mt=we-l-Se.height,Xt=um(Re,l,Mt),ft=Oe.left+Oe.width/2,un=Math.max(pm,Se.width-pm),Gn=um(ft-je,pm,un);u.dataset.placement=ve,u.style.left=`${je}px`,u.style.top=`${Xt}px`,u.style.setProperty("--persona-tooltip-arrow-x",`${Gn}px`)},ce=()=>{if(k||!s||u||!t.isConnected||_T(t))return;let he=O(),We=DT(t);if(!he||!We)return;let Oe=d(),Se=p();u=Oe.createElement("div"),u.className="persona-control-tooltip",u.setAttribute("role","tooltip"),u.dataset.state="measuring",u.style.zIndex=String(Xi);let Xe=Se.getComputedStyle?.(t);if(Xe){for(let ke of NT){let ve=Xe.getPropertyValue(ke).trim();ve&&u.style.setProperty(ke,ve)}Xe.fontFamily&&(u.style.fontFamily=Xe.fontFamily)}m=Oe.createElement("span"),m.className="persona-control-tooltip__label",m.textContent=he,u.appendChild(m);let we=$();we&&(y=Oe.createElement("span"),y.className="persona-control-tooltip__hint",y.textContent=we,u.appendChild(y));let j=Oe.createElement("span");j.className="persona-control-tooltip__arrow",u.appendChild(j),We.appendChild(u),Q(),u.dataset.state="open";let $e=()=>{if(!t.isConnected){N();return}m&&(m.textContent=O()),y&&(y.textContent=$()),Q()};Se.addEventListener("scroll",$e,!0),Se.addEventListener("resize",$e);let je=t.getRootNode(),mt=wC(je)?je:Oe.documentElement,Ae=typeof MutationObserver>"u"?null:new MutationObserver(()=>{t.isConnected||N()});Ae?.observe(mt,{childList:!0,subtree:!0}),h=()=>{Se.removeEventListener("scroll",$e,!0),Se.removeEventListener("resize",$e),Ae?.disconnect()}},Y=he=>{if(!(k||u)){if(A(),he||T()<=0||OT()){ce();return}C=p().setTimeout(()=>{C=void 0,ce()},T())}},E=()=>{S||x?Y(x):N()},B=()=>{let he=p();(!he.matchMedia||!he.matchMedia("(hover: none)").matches)&&(S=!0,E())},H=()=>{S=!1,E()},L=()=>{try{x=t.matches(":focus-visible")}catch{x=!0}E()},te=()=>{x=!1,E()},K=()=>{S=!1,x=!1,N()},me=he=>{he.key==="Escape"&&K()};n.addEventListener("mouseenter",B),n.addEventListener("mouseleave",H),t.addEventListener("focus",L),t.addEventListener("blur",te),t.addEventListener("keydown",me),t.addEventListener("click",K);let de={get isOpen(){return u!==null},show:ce,hide:N,reposition:Q,destroy:()=>{k||(k=!0,N(),n.removeEventListener("mouseenter",B),n.removeEventListener("mouseleave",H),t.removeEventListener("focus",L),t.removeEventListener("blur",te),t.removeEventListener("keydown",me),t.removeEventListener("click",K),Bd.delete(t))}};return Bd.set(t,de),de}var xC=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function Ji(e,t){if(!e)return t;if(!t)return e;let n={...e};for(let[o,r]of Object.entries(t)){let s=n[o];xC(s)&&xC(r)?n[o]=Ji(s,r):n[o]=r}return n}var zn="min(440px, calc(100vw - 24px))",Dd="440px",mm="How can I help...",FT={enabled:!0,mountMode:"floating",dock:{side:"right",width:"420px"},title:"Chat Assistant",subtitle:"Here to help you get answers fast",agentIconText:"\u{1F4AC}",agentIconName:"bot",headerIconName:"bot",position:"bottom-right",width:zn,heightOffset:0,autoExpand:!1,callToActionIconHidden:!1,agentIconSize:"40px",headerIconSize:"40px",closeButtonPaddingX:"0px",closeButtonPaddingY:"0px",callToActionIconName:"arrow-up-right",callToActionIconText:"",callToActionIconSize:"32px",callToActionIconPadding:"5px",callToActionIconColor:void 0,callToActionIconBackgroundColor:void 0,closeButtonBackgroundColor:"transparent",clearChat:{backgroundColor:"transparent",borderColor:"transparent",enabled:!0,placement:"inline",iconName:"refresh-cw",showTooltip:!0,tooltipText:"Clear chat",paddingX:"0px",paddingY:"0px"},headerIconHidden:!1,border:void 0,shadow:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)"},at={apiUrl:"https://api.runtype.com/api/chat/dispatch",clientToken:void 0,agentId:void 0,target:void 0,theme:void 0,darkTheme:void 0,colorScheme:"light",tooltip:{delayMs:200,skipDelayMs:300},launcher:FT,copy:{inputPlaceholder:mm,sendButtonLabel:"Send"},sendButton:{borderWidth:"0px",paddingX:"12px",paddingY:"10px",borderColor:void 0,useIcon:!0,iconText:"\u2191",showTooltip:!0,tooltipText:"Send message",iconName:"send"},statusIndicator:{visible:!0,idleText:"Online",connectingText:"Connecting\u2026",connectedText:"Streaming\u2026",errorText:"Offline"},voiceRecognition:{enabled:!0,pauseDuration:2e3,iconName:"mic",borderWidth:"0px",iconColor:void 0,backgroundColor:"transparent",borderColor:"transparent",recordingIconColor:void 0,recordingBackgroundColor:void 0,recordingBorderColor:"transparent",showTooltip:!0,tooltipText:"Start voice recognition"},features:{showReasoning:!0,showToolCalls:!0,scrollToBottom:{enabled:!0,iconName:"arrow-down",label:""},scrollBehavior:{mode:"anchor-top",anchorTopOffset:16,showActivityWhilePinned:!0},toolCallDisplay:{collapsedMode:"tool-call",activePreview:!1,grouped:!1,groupedMode:"stack",previewMaxLines:3,expandable:!0,loadingAnimation:"none"},reasoningDisplay:{activePreview:!1,previewMaxLines:3,expandable:!0,loadingAnimation:"none"},streamAnimation:{type:"none",placeholder:"none",speed:120,duration:1800},askUserQuestion:{enabled:!0,slideInMs:180,freeTextLabel:"Other\u2026",freeTextPlaceholder:"Type your answer\u2026",submitLabel:"Send"},history:{enabled:!1,presentation:"panel",showScopeStatus:!0,showDelete:!0,showDeleteAll:!0}},suggestionChips:["Show me what you can help with","Walk me through getting started","Answer a question about this page"],suggestionChipsConfig:{fontFamily:"sans-serif",fontWeight:"500",paddingX:"12px",paddingY:"6px"},layout:{header:{layout:"default",showIcon:!0,showTitle:!0,showSubtitle:!0,showCloseButton:!0,showClearChat:!0},messages:{layout:"bubble",avatar:{show:!1,position:"left"},timestamp:{show:!1,position:"below"},groupConsecutive:!1},slots:{}},markdown:{options:{gfm:!0,breaks:!0},disableDefaultStyles:!1},messageActions:{enabled:!0,showCopy:!0,showUpvote:!1,showDownvote:!1,visibility:"hover",align:"right",layout:"pill-inside"},debug:!1};function SC(e,t){if(!(!e&&!t))return e?t?Ji(e,t):e:t}function Zi(e){return e?{...at,...e,theme:SC(at.theme,e.theme),darkTheme:SC(at.darkTheme,e.darkTheme),launcher:{...at.launcher,...e.launcher,dock:{...at.launcher?.dock,...e.launcher?.dock},clearChat:{...at.launcher?.clearChat,...e.launcher?.clearChat}},tooltip:{...at.tooltip,...e.tooltip},copy:{...at.copy,...e.copy},sendButton:{...at.sendButton,...e.sendButton},statusIndicator:{...at.statusIndicator,...e.statusIndicator},voiceRecognition:{...at.voiceRecognition,...e.voiceRecognition},features:(()=>{let t=at.features?.artifacts,n=e.features?.artifacts,o=at.features?.scrollToBottom,r=e.features?.scrollToBottom,s=at.features?.scrollBehavior,a=e.features?.scrollBehavior,l=at.features?.streamAnimation,d=e.features?.streamAnimation,p=at.features?.askUserQuestion,u=e.features?.askUserQuestion,m=at.features?.history,y=e.features?.history,h=t===void 0&&n===void 0?void 0:{...t,...n,layout:{...t?.layout,...n?.layout}},C=o===void 0&&r===void 0?void 0:{...o,...r},S=s===void 0&&a===void 0?void 0:{...s,...a},x=l===void 0&&d===void 0?void 0:{...l,...d},k=p===void 0&&u===void 0?void 0:{...p,...u,styles:{...p?.styles,...u?.styles}},O=m===void 0&&y===void 0?void 0:{...m,...y,copy:{...m?.copy,...y?.copy}};return{...at.features,...e.features,...C!==void 0?{scrollToBottom:C}:{},...S!==void 0?{scrollBehavior:S}:{},...h!==void 0?{artifacts:h}:{},...x!==void 0?{streamAnimation:x}:{},...k!==void 0?{askUserQuestion:k}:{},...O!==void 0?{history:O}:{}}})(),suggestionChips:e.suggestionChips??at.suggestionChips,suggestionChipsConfig:{...at.suggestionChipsConfig,...e.suggestionChipsConfig},layout:{...at.layout,...e.layout,header:{...at.layout?.header,...e.layout?.header},messages:{...at.layout?.messages,...e.layout?.messages,avatar:{...at.layout?.messages?.avatar,...e.layout?.messages?.avatar},timestamp:{...at.layout?.messages?.timestamp,...e.layout?.messages?.timestamp}},slots:{...at.layout?.slots,...e.layout?.slots}},markdown:{...at.markdown,...e.markdown,options:{...at.markdown?.options,...e.markdown?.options}},messageActions:{...at.messageActions,...e.messageActions}}:at}function fm(e){let t=e.ownerDocument?.defaultView;if(!t?.getComputedStyle)return 20;let n=t.getComputedStyle(e).lineHeight;if(!n||!n.trim().endsWith("px"))return 20;let o=parseFloat(n);return Number.isFinite(o)&&o>0?o:20}function Nd(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e>0?e:t}function AC(e,t){e.style.maxHeight=`${t*fm(e)}px`,e.style.overflowY="auto"}function bl(e){let t=e?.ownerDocument?.defaultView??(typeof window<"u"?window:null);if(!t||typeof t.matchMedia!="function")return!1;try{return t.matchMedia("(pointer: coarse)").matches===!0}catch{return!1}}function MC(e){return e.insertNewlineOnTouchEnter===!0&&e.coarsePointer===!0}function EC(e,t){if(e.key!=="Enter"||e.shiftKey||e.isComposing)return!1;let n=e.metaKey===!0||e.ctrlKey===!0,o=t.submitKey??"enter";return o==="none"?!1:o==="mod-enter"?n:n||!MC(t)}function $T(e){return(e.submitKey??"enter")!=="enter"||MC(e)?"enter":"send"}function Fd(e,t){e.setAttribute("enterkeyhint",$T(t))}function $d(e,t){let n=t?.autocomplete;e.setAttribute("autocomplete",typeof n=="string"&&n?n:"off");let o=(r,s)=>{s===void 0?e.removeAttribute(r):e.setAttribute(r,s)};o("autocapitalize",typeof t?.autocapitalize=="string"?t.autocapitalize:void 0),o("spellcheck",typeof t?.spellcheck=="boolean"?String(t.spellcheck):void 0),o("inputmode",typeof t?.inputmode=="string"&&t.inputmode?t.inputmode:void 0),o("aria-label",typeof t?.ariaLabel=="string"&&t.ariaLabel?t.ariaLabel:void 0)}function hm(e){return e===!0?{disabled:!0}:!e||typeof e!="object"?{disabled:!1}:{disabled:!0,reason:typeof e.reason=="string"&&e.reason?e.reason:void 0}}var Vn="persona-composer-control",wo="persona-composer-control--glyph",bm=40,yn=24,Ud=(e,t,n)=>{let o=e.ownerDocument?.defaultView;if(!o)return;let r=o.getComputedStyle(e);for(let s of n){let a=r.getPropertyValue(s).trim();a?t.style.setProperty(s,a):t.style.removeProperty(s)}},jd=(e,t)=>{let n=M("textarea");n.setAttribute("data-persona-composer-input",""),n.placeholder=e?.copy?.inputPlaceholder??mm,n.dir="auto",Fd(n,{submitKey:e?.composer?.submitKey,insertNewlineOnTouchEnter:e?.composer?.insertNewlineOnTouchEnter,coarsePointer:bl(n)}),$d(n,e?.composer?.inputAttributes),n.className="persona-w-full persona-min-h-[24px] persona-resize-none persona-border-none persona-bg-transparent persona-text-sm persona-text-persona-text focus:persona-outline-none focus:persona-border-none persona-composer-textarea",n.rows=1,n.style.fontFamily='var(--persona-input-font-family, var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif))',n.style.fontWeight="var(--persona-input-font-weight, var(--persona-font-weight, 400))";let o=Nd(e?.composer?.maxLines,t?.defaultMaxLines??3),r=`${o*20}px`;n.style.maxHeight=r,n.style.overflowY="auto";let s=()=>{let l=n.style.maxHeight;if(l!==r){let p=parseFloat(l);if(Number.isFinite(p)&&p>0)return p}let d=o*fm(n);return r=`${d}px`,n.style.maxHeight=r,d},a=()=>{n.addEventListener("input",()=>{n.style.height="auto";let l=Math.min(n.scrollHeight,s());n.style.height=`${l}px`})};return n.style.border="none",n.style.outline="none",n.style.borderWidth="0",n.style.borderStyle="none",n.style.borderColor="transparent",n.addEventListener("focus",()=>{n.style.border="none",n.style.outline="none",n.style.borderWidth="0",n.style.borderStyle="none",n.style.borderColor="transparent",n.style.boxShadow="none"}),n.addEventListener("blur",()=>{n.style.border="none",n.style.outline="none"}),{textarea:n,attachAutoResize:a}},jT="[data-persona-glyph-stack]",vm=(e,t,n="send")=>{let o=X("span",{className:"persona-composer-glyph-stack",attrs:{"data-mode":n,"data-persona-glyph-stack":""}});return e.setAttribute("data-glyph","send"),t.setAttribute("data-glyph","stop"),o.append(e,t),o},qd=e=>{let t=e?.sendButton??{},n=t.useIcon??!1,o=t.iconText??"\u2191",r=t.iconName,s=t.stopIconName??"square",a=t.tooltipText??"Send message",l=t.stopTooltipText??"Stop generating",d=e?.copy?.sendButtonLabel??"Send",p=e?.copy?.stopButtonLabel??"Stop",u=t.showTooltip??!1,m=t.size,y=parseFloat(m??"")||bm,h=t.backgroundColor,C=t.textColor,S=M("div","persona-send-button-wrapper"),x=X("button",{className:hn("persona-rounded-button disabled:persona-opacity-50 persona-cursor-pointer",n?`persona-flex persona-items-center persona-justify-center ${Vn}`:"persona-bg-persona-accent persona-px-4 persona-py-2 persona-text-sm persona-font-semibold",n&&!h&&"persona-bg-persona-primary",!n&&!C&&"persona-text-white"),attrs:{type:"submit","data-persona-composer-submit":"","data-persona-send-mode":"send"},style:{width:n?m:void 0,height:n?m:void 0,minWidth:n?m:void 0,minHeight:n?m:void 0,fontSize:n?"18px":void 0,lineHeight:n?"1":void 0,color:n?C||"var(--persona-send-button-fg, var(--persona-button-primary-fg, #ffffff))":C||void 0,backgroundColor:n&&h||void 0,borderWidth:t.borderWidth||void 0,borderStyle:t.borderWidth?"solid":void 0,borderColor:t.borderColor||void 0,paddingLeft:n?"0":t.paddingX||void 0,paddingRight:n?"0":t.paddingX||void 0,paddingTop:n?"0":t.paddingY||void 0,paddingBottom:n?"0":t.paddingY||void 0}}),k=null,O=null,$=null;if(n){let A=parseFloat(t.iconSize??"")||Math.round(y*.5),N=t.iconStrokeWidth??2,Q=C?.trim()||"currentColor";r&&(k=ge(r,A,Q,N)),O=ge(s,A,Q,N),k&&O?($=vm(k,O),x.appendChild($)):k?x.appendChild(k):(x.textContent=o,O=null)}else x.textContent=d;x.setAttribute("aria-label",a),S.appendChild(x),nn({anchor:x,trigger:S,text:()=>x.getAttribute("aria-label")??"",enabled:u});let T="send";return{button:x,wrapper:S,setMode:A=>{if(A===T)return;T=A;let N=A==="stop"?l:a;x.setAttribute("aria-label",N),x.setAttribute("data-persona-send-mode",A),n?(x.querySelector(jT)??$)?.setAttribute("data-mode",A):x.textContent=A==="stop"?p:d},glyphStack:$}},ea=e=>{let t=e?.voiceRecognition??{};if(!(t.enabled===!0))return null;let o=typeof window<"u"&&(typeof window.webkitSpeechRecognition<"u"||typeof window.SpeechRecognition<"u"),r=t.provider?.type==="runtype",s=t.provider?.type==="custom";if(!(o||r||s))return null;let l=t.iconName??"mic",d=t.iconSize,p=parseFloat(d??"")||yn,u=t.backgroundColor??e?.sendButton?.backgroundColor,m=t.iconColor??e?.sendButton?.textColor,y=M("div","persona-send-button-wrapper"),h=X("button",{className:hn("persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer",Vn,!d&&wo),attrs:{type:"button","data-persona-composer-mic":"","data-state":"idle","aria-label":t.tooltipText??"Start voice recognition"},style:{width:d,height:d,minWidth:d,minHeight:d,fontSize:"18px",lineHeight:"1",color:m||"var(--persona-text, #111827)",backgroundColor:u||void 0,borderWidth:t.borderWidth||void 0,borderStyle:t.borderWidth?"solid":void 0,borderColor:t.borderColor||void 0,paddingLeft:t.paddingX||void 0,paddingRight:t.paddingX||void 0,paddingTop:t.paddingY||void 0,paddingBottom:t.paddingY||void 0}}),S=ge(l,p,m||"currentColor",1.5);S?h.appendChild(S):h.textContent="\u{1F3A4}",y.appendChild(h);let x=t.tooltipText??"Start voice recognition",k=t.showTooltip??!1;return nn({anchor:h,trigger:y,text:()=>h.getAttribute("aria-label")??x,enabled:k}),{button:h,wrapper:y}},zd=e=>{let t=e?.attachments??{};if(t.enabled!==!0)return null;let n=M("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2");n.setAttribute("data-persona-composer-attachment-previews",""),n.style.display="none";let o=M("input");o.type="file",o.setAttribute("data-persona-composer-attachment-input",""),o.accept=(t.allowedTypes??br).join(","),o.multiple=(t.maxFiles??4)>1,o.style.display="none",o.setAttribute("aria-label","Attach files");let r=t.buttonIconName??"paperclip",s=M("div","persona-send-button-wrapper"),a=X("button",{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-attachment-button ${Vn} ${wo}`,attrs:{type:"button","data-persona-composer-attachment-button":"","aria-label":t.buttonTooltipText??"Attach file"},style:{fontSize:"18px",lineHeight:"1"}}),l=ge(r,yn,"currentColor",1.5);l?a.appendChild(l):a.textContent="\u{1F4CE}",a.addEventListener("click",p=>{p.preventDefault(),o.click()}),s.appendChild(a);let d=t.buttonTooltipText??"Attach file";return nn({anchor:a,trigger:s,text:()=>a.getAttribute("aria-label")??d}),{button:a,wrapper:s,input:o,previewsContainer:n}},Vd=e=>{let t=e?.statusIndicator??{},n=t.align==="left"?"persona-text-left":t.align==="center"?"persona-text-center":"persona-text-right",o=M("div",`persona-mt-2 ${n} persona-text-xs persona-text-persona-muted`);o.setAttribute("data-persona-composer-status","");let r=t.visible??!0;o.style.display=r?"":"none";let s=t.idleText??"Online";if(t.idleLink){let a=M("a");a.href=t.idleLink,a.target="_blank",a.rel="noopener noreferrer",a.textContent=s,a.style.color="inherit",a.style.textDecoration="none",o.appendChild(a)}else o.textContent=s;return o},Kd=()=>X("div",{className:"persona-mb-3 persona-flex persona-flex-wrap persona-gap-2",attrs:{"data-persona-composer-suggestions":""}});function qT(e){let t=e.getRootNode?.();return t instanceof ShadowRoot?t:(e.ownerDocument??document).body}function Gd(e){let{anchor:t,content:n,placement:o="bottom-start",offset:r=6,matchAnchorWidth:s=!1,horizontalOffset:a,verticalOffset:l,zIndex:d=2147483e3,onOpen:p,onDismiss:u}=e,m=e.container??qT(t),y=!1,h=null,C=()=>{if(!y)return;let k=t.getBoundingClientRect();n.style.position="fixed",s&&(n.style.minWidth=`${k.width}px`),a&&(n.style.maxWidth=`${k.width}px`);let O=n.getBoundingClientRect(),$=l?.()??null,T=$!=null?k.top+$:k.top,I=o==="top-start"||o==="top-end"?T-r-O.height:k.bottom+r,N=o==="bottom-end"||o==="top-end"?k.right-O.width:k.left,Q=a?.()??null;if(Q!=null){let ce=Math.max(k.left,k.right-O.width);N=Math.min(Math.max(k.left+Q,k.left),ce)}n.style.top=`${I}px`,n.style.left=`${N}px`},S=()=>{y&&(y=!1,h&&(h(),h=null),n.remove())},x=()=>{if(y)return;y=!0,d!=null&&(n.style.zIndex=String(d)),m.appendChild(n),C();let k=(t.ownerDocument??document).defaultView??window,O=t.ownerDocument??document,$=()=>{if(!t.isConnected){S(),u?.("anchor-removed");return}C()},T=A=>{let N=typeof A.composedPath=="function"?A.composedPath():[];N.includes(n)||N.includes(t)||(S(),u?.("outside"))},I=k.setTimeout(()=>{O.addEventListener("pointerdown",T,!0)},0);k.addEventListener("scroll",$,!0),k.addEventListener("resize",$),h=()=>{k.clearTimeout(I),O.removeEventListener("pointerdown",T,!0),k.removeEventListener("scroll",$,!0),k.removeEventListener("resize",$)},p?.()};return{get isOpen(){return y},open:x,close:S,toggle:()=>y?S():x(),reposition:C,destroy:S}}var zT='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',VT=["--persona-components-composer-overflowMenu-background","--persona-components-composer-overflowMenu-borderColor","--persona-components-composer-overflowMenu-borderRadius","--persona-components-composer-overflowMenu-foreground","--persona-components-composer-overflowMenu-shadow"],Cm="data-persona-menu-focus",KT=new Set(["ArrowDown","ArrowUp","Home","End"]);function TC(e){return e.getAttribute("role")==="menuitem"?e:e.querySelector(zT)??e}var GT=e=>e.disabled===!0||e.getAttribute("aria-disabled")==="true";function PC(e){let t=e.label,n=!1,o=M("div","persona-send-button-wrapper"),r=X("button",{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center persona-cursor-pointer persona-composer-action-button persona-composer-overflow-trigger ${Vn} ${wo}`,attrs:{type:"button","aria-haspopup":"menu","aria-expanded":"false","data-persona-composer-overflow-trigger":""}});o.appendChild(r);let s=X("div",{className:"persona-composer-overflow-menu",attrs:{role:"menu",tabindex:"-1","data-persona-composer-overflow-menu":""}}),a=()=>{let L=e.getButtonSize?.()??"";r.style.width=L,r.style.height=L,r.style.minWidth=L,r.style.minHeight=L,r.style.lineHeight="1",r.replaceChildren();let te=ge("plus",yn,"currentColor",1.5);te?r.appendChild(te):r.textContent="+"},l=()=>{r.setAttribute("aria-label",t),r.setAttribute("title",t),s.setAttribute("aria-label",t)};l(),a();let d=[],p=-1,u=!1,m=()=>{let te=s.getRootNode().activeElement;return te instanceof HTMLElement?te:null},y=()=>{let L=m();for(let te of d){let K=!!L&&TC(te)===L;te.toggleAttribute(Cm,K&&u)}},h=()=>d.filter(L=>L.isConnected||s.contains(L)).map(TC).filter(L=>!GT(L)),C=(L,te)=>{L.forEach((K,me)=>{K.setAttribute("tabindex",me===te?"0":"-1")})},S=L=>{let te=h();if(te.length===0)return;let K=(L%te.length+te.length)%te.length;p=K,C(te,K),te[K].focus(),y()},x=()=>o.ownerDocument??document,k=null,O=null,$=null,T=()=>{k&&(x().removeEventListener("focusin",k,!0),k=null)},I=()=>{O&&(s.removeEventListener("focusin",O),O=null),$&&(s.removeEventListener("pointerdown",$,!0),$=null)},A=null,N=()=>(A||(A=Gd({anchor:r,content:s,placement:"top-start",offset:6,onDismiss:()=>{r.setAttribute("aria-expanded","false"),T()}})),A),Q=()=>A?.isOpen===!0,ce=(L=!1)=>{if(Q()){A?.close(),r.setAttribute("aria-expanded","false"),T(),I(),p=-1,u=!1;for(let te of d)te.removeAttribute(Cm);L&&r.focus()}},Y=(L=0,te=!1)=>{if(n||Q())return;u=te,Ud(r,s,VT),N().open(),r.setAttribute("aria-expanded","true");let K=h();C(K,-1),S(L<0?K.length-1:L),k=me=>{let de=typeof me.composedPath=="function"?me.composedPath():[];de.includes(s)||de.includes(o)||ce()},x().addEventListener("focusin",k,!0),O=()=>y(),s.addEventListener("focusin",O),$=()=>{u=!1},s.addEventListener("pointerdown",$,!0)},E=L=>{L.preventDefault(),L.stopPropagation(),Q()?ce(!0):Y(0)},B=L=>{if(L.key==="ArrowDown"||L.key==="Enter"||L.key===" "){L.preventDefault(),u=!0,Q()?S(0):Y(0,!0);return}L.key==="ArrowUp"&&(L.preventDefault(),u=!0,Q()?S(-1):Y(-1,!0))},H=L=>{switch(KT.has(L.key)&&(u=!0),L.key){case"ArrowDown":L.preventDefault(),S(p+1);return;case"ArrowUp":L.preventDefault(),S(p-1);return;case"Home":L.preventDefault(),S(0);return;case"End":L.preventDefault(),S(h().length-1);return;case"Escape":L.preventDefault(),L.stopPropagation(),ce(!0);return;case"Tab":ce(!0);return;default:}};return r.addEventListener("click",E),r.addEventListener("keydown",B),s.addEventListener("keydown",H),{trigger:o,triggerButton:r,panel:s,setItems:L=>{for(let K of d)L.includes(K)||K.removeAttribute(Cm);if(d=[...L],!Q())return;let te=h();C(te,Math.min(p,te.length-1)),y()},isOpen:Q,open:()=>Y(0),close:ce,setLabel:L=>{L!==t&&(t=L,l())},applyButtonSize:a,destroy:()=>{n=!0,T(),I(),r.removeEventListener("click",E),r.removeEventListener("keydown",B),s.removeEventListener("keydown",H),A?.destroy(),A=null,o.remove(),s.remove(),d=[]}}}var zo={mention:100,attachment:200,mic:800,overflow:900,send:1e3,custom:500},kC="data-persona-composer-action",wm="data-persona-composer-disable-when-streaming",QT="core:overflow",YT=e=>e==="core:attachment"?"attachments":e.startsWith("core:mention")?"mentions":null;function XT(e,t){if(e===void 0)return null;if(typeof e=="number")return Number.isFinite(e)?e:null;let n=Number.parseFloat(e);if(/^\s*-?\d*\.?\d+(px)?\s*$/.test(e)&&Number.isFinite(n))return n;let o=M("div");o.style.position="absolute",o.style.visibility="hidden",o.style.pointerEvents="none",o.style.height="0",o.style.width=e,t.appendChild(o);let r=o.getBoundingClientRect().width;return o.remove(),Number.isFinite(r)&&r>0?r:Number.isFinite(n)?n:null}function xm(e){let t=e.clientWidth;if(!t)return 0;let n=e.ownerDocument?.defaultView;if(!n?.getComputedStyle)return t;let o=n.getComputedStyle(e),r=(Number.parseFloat(o.paddingLeft)||0)+(Number.parseFloat(o.paddingRight)||0);return Math.max(0,t-r)}var LC=(e,t)=>{!e||typeof console>"u"||console.warn(t)},JT=(e,t)=>t.includes(":")?t:`${e}:${t}`;function ZT(e){let{debug:t}=e,n=[],o=new Map,r=0,s=l=>{let d=o.get(l.id);if(d){LC(t,`[Persona] composer action "${l.id}" is already contributed by ${IC(d)}; the ${IC(l)} copy is ignored.`);return}o.set(l.id,l),n.push(l)};for(let l of e.builtIns)s({id:l.id,placement:l.placement,presentation:"bar",order:l.order,sequence:r++,source:"core",builtIn:l});let a=(l,d,p)=>{let u=p?JT(p,l.id):l.id,m=l.order??zo.custom;l.placement==="end"&&m>=zo.send&&(LC(t,`[Persona] composer action "${u}" ordered at ${m} would render after send; clamped to ${zo.send-1}.`),m=zo.send-1),s({id:u,placement:l.placement,presentation:l.presentation??"bar",order:m,sequence:r++,source:d,pluginId:p,action:l})};for(let l of e.configActions??[])a(l,"config");for(let l of e.plugins){if(!l.contributeComposerActions)continue;let d;try{d=l.contributeComposerActions(e.contributionContext)}catch(p){typeof console<"u"&&console.error(`[Persona] plugin "${l.id}" contributeComposerActions failed:`,p);continue}for(let p of d??[])a(p,"plugin",l.id)}return n.sort((l,d)=>l.order===d.order?l.sequence-d.sequence:l.order-d.order)}var IC=e=>e.source==="plugin"?`plugin "${e.pluginId}"`:e.source==="config"?"composer.actions":"a core built-in",RC=(e,t,n)=>e===void 0?n:typeof e=="function"?e(t)===!0:e===!0,eP=e=>e.phase==="streaming"||e.text.trim().length>0||e.attachments.length>0;function tP(e,t){if(!e||e==="always")return!0;let n=eP(t);return e==="when-text"?n:!n}var ts=e=>e.kind==="custom",Sm=e=>e instanceof HTMLButtonElement?e:e.querySelector("button")??e,nP=e=>{let t=Sm(e);return t.getAttribute("aria-label")?.trim()||t.getAttribute("title")?.trim()||""},oP='.persona-control-tooltip, [role="tooltip"], .persona-sr-only, [hidden], [aria-hidden="true"]';function rP(e){let t="",n=o=>{if(o.nodeType===Node.TEXT_NODE){t+=o.nodeValue??"";return}if(o.nodeType!==Node.ELEMENT_NODE)return;let r=o;typeof r.matches=="function"&&r.matches(oP)||o.childNodes.forEach(n)};return n(e),t.trim()}var sP=e=>rP(e).length===0;function HC(e){let t=new Map,n=[],o=!1,r=()=>e.getButtonSize?.(),s=(E,B)=>{let H=E.button;if(!H)return;H.setAttribute("role","menuitem"),H.setAttribute("tabindex","-1"),H.className="persona-composer-overflow-menu__item";for(let K of["width","height","minWidth","minHeight","fontSize","color","backgroundColor"])H.style[K]="";H.style.lineHeight="1",B.tooltipText?H.setAttribute("title",B.tooltipText):H.removeAttribute("title"),H.replaceChildren();let L=M("span","persona-composer-overflow-menu__icon");if(B.iconName){let K=ge(B.iconName,16,"currentColor",1.5);K&&L.appendChild(K)}let te=M("span","persona-composer-overflow-menu__label");te.textContent=B.shortLabel??B.label,H.append(L,te)},a=(E,B)=>{let H=E.button;if(!H)return;if(H.setAttribute("aria-label",B.label),B.pressed===void 0?H.removeAttribute("aria-pressed"):H.setAttribute("aria-pressed",B.pressed?"true":"false"),H.toggleAttribute(wm,B.disableWhenStreaming===!0),E.mode==="menu"){E.tooltip?.destroy(),E.tooltip=void 0,s(E,B);return}H.removeAttribute("role"),H.removeAttribute("tabindex"),H.removeAttribute("title");let L=r(),te=!!B.shortLabel;if(H.className=hn("persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-composer-action-button",Vn,wo,te&&"persona-composer-action-button--text persona-gap-1 persona-text-sm"),H.style.width=L&&!te?L:"",H.style.height=L??"",H.style.minWidth=L&&!te?L:"",H.style.minHeight=L??"",H.style.fontSize=te?"":"18px",H.style.lineHeight="1",H.style.color=B.iconColor??"",H.style.backgroundColor=B.backgroundColor??"",H.replaceChildren(),B.iconName){let K=ge(B.iconName,yn,"currentColor",1.5);K&&H.appendChild(K)}if(te){let K=M("span","persona-composer-action-button__label");K.textContent=B.shortLabel,H.appendChild(K)}else H.firstChild||(H.textContent=B.label);E.tooltip?.destroy(),E.tooltip=nn({anchor:H,trigger:E.element,text:()=>B.tooltipText??B.label,enabled:!!B.tooltipText})},l=(E,B)=>{let H=E.action,L=X("button",{attrs:{type:"button"}}),te=L;if(B==="bar"){let de=M("div","persona-send-button-wrapper");de.appendChild(L),te=de}te.setAttribute(kC,E.id);let K={resolved:E,element:te,button:L,owned:!0,managed:!0,busy:!1,visible:!0,mode:B},me=de=>{if(de.preventDefault(),de.stopPropagation(),K.busy||L.disabled)return;let he=K.resolved.action;K.mode==="menu"&&h?.close(!0);let We;try{We=he.onSelect(e.actionContext,de)}catch(Oe){e.reportError(Oe,{actionId:K.resolved.id});return}!We||typeof We.then!="function"||(K.busy=!0,L.setAttribute("aria-busy","true"),We.catch(Oe=>{e.reportError(Oe,{actionId:K.resolved.id})}).finally(()=>{K.busy=!1,L.removeAttribute("aria-busy")}))};return L.addEventListener("click",me),K.detach=()=>L.removeEventListener("click",me),a(K,H),K},d=E=>{let B=E.action,H;try{H=B.render({...e.actionContext,id:E.id,action:B})}catch(L){return e.reportError(L,{actionId:E.id}),null}return H?.element?(H.element.setAttribute(kC,E.id),H.element.toggleAttribute(wm,B.disableWhenStreaming===!0),{resolved:E,element:H.element,owned:!0,managed:!0,destroy:H.destroy,busy:!1,visible:!0,mode:"bar"}):null},p=(E,B)=>{if(E.builtIn){let L=E.builtIn.element;return L?{resolved:E,element:L,owned:!1,managed:E.builtIn.managed===!0,busy:!1,visible:!0,mode:"bar"}:null}let H=E.action;return H?ts(H)?d(E):l(E,B):null},u=E=>{if(E.detach?.(),E.tooltip?.destroy(),E.detachMenuSlot?.(),E.detachMenuSlot=void 0,E.menuLabel?.remove(),E.menuLabel=void 0,E.menuSlot?.remove(),E.menuSlot=void 0,E.owned){try{E.destroy?.()}catch(B){e.reportError(B,{actionId:E.resolved.id})}E.element.remove()}},m=(E,B)=>{for(let H=0;H<B.length;H++){let L=B[H];if(!L.managed)continue;let te=null;for(let K=H+1;K<B.length;K++){let me=B[K];if(!me.managed&&me.element.parentElement===E){te=me.element;break}}te?(L.element.parentElement!==E||L.element.nextSibling!==te)&&E.insertBefore(L.element,te):E.lastChild!==L.element&&E.appendChild(L.element)}},y=(E,B)=>{if(E.button){E.button.disabled=B;return}if(!E.owned)return;let H=E.element;H.toggleAttribute("data-disabled",B),H.setAttribute("aria-disabled",B?"true":"false");let L=H instanceof HTMLButtonElement||H instanceof HTMLSelectElement||H instanceof HTMLInputElement||H instanceof HTMLTextAreaElement?H:H.querySelector("button, select, input, textarea");L&&(L.disabled=B)},h=null,C=null,S=null,x=0,k=()=>{let E=e.getOverflow?.();return E?.enabled===!0?E:void 0},O=()=>(h?h.setLabel(e.getOverflowLabel?.()??"More actions"):h=PC({label:e.getOverflowLabel?.()??"More actions",getButtonSize:r}),h),$=E=>{C!==E&&(S?.disconnect(),C=E,x=xm(E),!(typeof ResizeObserver>"u")&&(S=new ResizeObserver(B=>{let L=B[B.length-1]?.contentRect?.width??xm(E);L!==x&&(x=L,ce())}),S.observe(E)))},T=(E,B)=>{let H=XT(E.collapseAutoActionsBelow,B);if(H===null)return!1;let L=x||xm(B);return L>0&&L<H},I=(E,B,H)=>{if(!B)return"bar";if(E.resolved.builtIn){let te=YT(E.resolved.id);return te&&B.includeBuiltIns?.includes(te)?"menu":"bar"}let L=E.resolved.presentation;return L==="overflow"||L==="auto"&&H?"menu":"bar"},A=E=>{let B=E.menuSlot;if(!B)return;if(!sP(E.element)){E.menuLabel?.remove(),E.menuLabel=void 0;return}let H=nP(E.element);if(!H){E.menuLabel?.remove(),E.menuLabel=void 0;return}E.menuLabel||(E.menuLabel=M("span","persona-composer-overflow-menu__label")),E.menuLabel.textContent!==H&&(E.menuLabel.textContent=H),E.menuLabel.parentElement!==B&&B.appendChild(E.menuLabel)},N=(E,B)=>{if(E.mode===B)return E;let H=E.resolved.action;if(H&&!ts(H)){u(E),t.delete(E.resolved.id);let L=l(E.resolved,B);return t.set(E.resolved.id,L),L}if(B==="menu"){let L=X("div",{className:"persona-composer-overflow-menu__slot",attrs:{role:"none",[gm]:""}});L.appendChild(E.element),CC(Sm(E.element)),E.menuSlot=L;let te=K=>{let me=Sm(E.element);if(me.disabled)return;let de=K.target===me||me.contains(K.target);h?.close(!0),de||me.click()};L.addEventListener("click",te,!0),E.detachMenuSlot=()=>L.removeEventListener("click",te,!0),E.managed=!0,A(E)}else E.detachMenuSlot?.(),E.detachMenuSlot=void 0,E.menuLabel?.remove(),E.menuLabel=void 0,E.menuSlot?.remove(),E.menuSlot=void 0;return E.mode=B,E},Q=(E,B)=>{let H=B.map(L=>L.menuSlot??L.element);for(H.forEach((L,te)=>{let K=E.children[te];K!==L&&(K?E.insertBefore(L,K):E.appendChild(L))});E.children.length>H.length;)E.lastElementChild?.remove()},ce=()=>{if(o)return;let E=e.getBindings();if(!E)return;let B=e.getState(),H=B.phase==="streaming",L=k();L&&$(E.footer);let te=L?T(L,E.footer):!1,K={start:[],end:[]},me=[];for(let de of n){let he=t.get(de.id);if(!he)continue;let We=de.action,Oe=We?RC(We.visible,B,!0)&&tP(We.visibility,B):!0;if(he.visible!==Oe&&(he.visible=Oe,!Oe&&he.managed&&(he.menuSlot??he.element).remove()),!!Oe){if(he=N(he,I(he,L,te)),We){let Se=RC(We.disabled,B,!1)||We.disableWhenStreaming===!0&&H;y(he,Se),!ts(We)&&We.pressed!==void 0&&he.button?.setAttribute("aria-pressed",We.pressed?"true":"false")}he.mode==="menu"?(A(he),me.push(he)):K[de.placement].push(he)}}if(me.length>0){let de=O();Q(de.panel,me),de.setItems(me.map(Se=>Se.menuSlot??Se.element)),de.applyButtonSize();let he=Number.isFinite(L?.order)?L?.order:zo.overflow,We=K.start.findIndex(Se=>Se.resolved.order>he),Oe={resolved:{id:QT,placement:"start",presentation:"bar",order:he,sequence:-1,source:"core"},element:de.trigger,owned:!1,managed:!0,busy:!1,visible:!0,mode:"bar"};K.start.splice(We<0?K.start.length:We,0,Oe)}else h&&(h.close(),h.trigger.remove(),h.setItems([]));m(E.actionsStart,K.start),m(E.actionsEnd,K.end)};return{resolve:()=>{if(o)return;let E=ZT(e.collect()),B=new Set(E.map(H=>H.id));for(let[H,L]of t)B.has(H)||(u(L),t.delete(H));for(let H of E){let L=t.get(H.id);if(!L){let de=p(H,"bar");de&&t.set(H.id,de);continue}let te=L.resolved.action,K=H.action;if(!!te!=!!K||te&&K&&ts(te)!==ts(K)||te&&K&&ts(te)&&ts(K)&&te.render!==K.render){u(L),t.delete(H.id);let de=p(H,L.mode);de&&t.set(H.id,de);continue}L.resolved=H,H.builtIn?(L.managed=H.builtIn.managed===!0||L.mode==="menu",H.builtIn.element&&L.mode==="bar"&&(L.element=H.builtIn.element)):K&&!ts(K)?a(L,K):K&&L.element.toggleAttribute(wm,K.disableWhenStreaming===!0)}n=E,ce()},sync:ce,getResolved:()=>n,getOverflowMenu:()=>h,destroy:()=>{if(!o){o=!0,S?.disconnect(),S=null,C=null;for(let E of t.values())u(E);t.clear(),h?.destroy(),h=null,n=[]}}}}var iP="core:model",aP=700,WC=16,lP=["--persona-components-composer-modelPicker-menuBackground","--persona-components-composer-modelPicker-menuBorderRadius","--persona-components-composer-modelPicker-rowHoverBackground","--persona-components-composer-modelPicker-labelColor","--persona-components-composer-modelPicker-descriptionColor"],OC=()=>{let e=X("span",{className:"persona-composer-model-picker-wrapper",attrs:{"data-persona-composer-model-picker-wrapper":""}}),t=X("span",{className:"persona-composer-model-picker-chevron",attrs:{"aria-hidden":"true"}});return{wrapper:e,chevron:t}};function BC(e){let t=e.label??"Model",n=e.presentation??"native",o=null,r=d=>{let p=e.getSelectedModelId();return d.find(u=>u.id===p)??d[0]},s=()=>{let d=X("select",{className:"persona-composer-model-picker",attrs:{"aria-label":t,"data-persona-composer-model-picker":""}}),p="",u=()=>{let S=e.getModels(),x=S.map(k=>`${k.id}:${k.label}`).join("|");x!==p&&(p=x,d.replaceChildren(...S.map(k=>{let O=X("option",{attrs:{value:k.id}});return O.textContent=k.label,O}))),d.value=r(S)?.id??""};u(),o=u;let m=()=>{d.value&&e.onSelect(d.value)};d.addEventListener("change",m);let y=S=>S.stopPropagation();d.addEventListener("click",y);let{wrapper:h,chevron:C}=OC();return h.append(d,C),{element:h,destroy:()=>{o===u&&(o=null),d.removeEventListener("change",m),d.removeEventListener("click",y)}}},a=()=>{let d=X("button",{className:"persona-composer-model-picker persona-composer-model-picker-trigger",attrs:{type:"button","aria-haspopup":"listbox","aria-expanded":"false","data-persona-composer-model-picker":"popover"}}),p=M("span","persona-composer-model-picker-label"),u=M("span","persona-composer-model-picker-suffix");d.append(p,u);let m=X("div",{className:"persona-composer-model-menu",attrs:{role:"listbox",tabindex:"-1","aria-label":t,"data-persona-composer-model-menu":""}}),y=new Map,h="",C=null,S=()=>C?.isOpen===!0,x=(B=!1)=>{S()&&(C?.close(),d.setAttribute("aria-expanded","false"),B&&d.focus())},k=B=>{let H=[...y.values()];if(H.length===0)return;let L=(B%H.length+H.length)%H.length;H[L].focus()},O=B=>{if(S())return;C||(C=Gd({anchor:d,content:m,placement:"top-start",offset:6,onDismiss:()=>d.setAttribute("aria-expanded","false")})),Ud(d,m,lP),C.open(),d.setAttribute("aria-expanded","true");let L=[...y.keys()].indexOf(r(e.getModels())?.id??"");k(B??(L>=0?L:0))},$=B=>{x(!0),e.onSelect(B)},T=B=>{B.preventDefault(),B.stopPropagation();let H=B.currentTarget.getAttribute("data-persona-model-option");H&&$(H)},I=B=>{let H=X("button",{className:"persona-composer-model-option",attrs:{type:"button",role:"option",tabindex:"-1","aria-selected":"false","data-persona-model-option":B.id}});if(B.icon){let de=ge(B.icon,WC,"currentColor",1.5);if(de){let he=M("span","persona-composer-model-option-icon");he.appendChild(de),H.appendChild(he)}}let L=M("span","persona-composer-model-option-body"),te=M("span","persona-composer-model-option-label");if(te.textContent=B.label,L.appendChild(te),B.description){let de=M("span","persona-composer-model-option-description");de.textContent=B.description,L.appendChild(de)}H.appendChild(L);let K=M("span","persona-composer-model-option-check");K.setAttribute("aria-hidden","true");let me=ge("check",WC,"currentColor",2);return me&&K.appendChild(me),H.appendChild(K),H.addEventListener("click",T),H},A=()=>{let B=e.getModels(),H=B.map(K=>`${K.id}:${K.label}:${K.icon??""}:${K.description??""}`).join("|");if(H!==h){h=H;for(let K of y.values())K.removeEventListener("click",T);y.clear(),m.replaceChildren(...B.map(K=>{let me=I(K);return y.set(K.id,me),me}))}let L=r(B);for(let[K,me]of y)me.setAttribute("aria-selected",String(K===L?.id));p.textContent=L?.label??"";let te=e.getSuffix?.()??"";u.textContent=te,d.setAttribute("aria-label",[t,[L?.label,te].filter(Boolean).join(" ")].filter(Boolean).join(": "))};A(),o=A;let N=B=>{B.preventDefault(),B.stopPropagation(),S()?x(!0):O()},Q=B=>{if(B.key==="ArrowDown"){B.preventDefault(),S()?k(0):O(0);return}B.key==="ArrowUp"&&(B.preventDefault(),S()?k(-1):O(-1))},ce=B=>{let H=[...y.values()],L=H.indexOf(B.target?.closest?.(".persona-composer-model-option"));switch(B.key){case"ArrowDown":B.preventDefault(),k(L+1);return;case"ArrowUp":B.preventDefault(),k(L-1);return;case"Home":B.preventDefault(),k(0);return;case"End":B.preventDefault(),k(H.length-1);return;case"Escape":B.preventDefault(),B.stopPropagation(),x(!0);return;case"Tab":x(!0);return;default:}};d.addEventListener("click",N),d.addEventListener("keydown",Q),m.addEventListener("keydown",ce);let{wrapper:Y,chevron:E}=OC();return Y.append(d,E),{element:Y,destroy:()=>{o===A&&(o=null),d.removeEventListener("click",N),d.removeEventListener("keydown",Q),m.removeEventListener("keydown",ce);for(let B of y.values())B.removeEventListener("click",T);y.clear(),C?.destroy(),C=null,m.remove()}}};return{action:{id:iP,kind:"custom",placement:"end",order:aP,presentation:n==="popover"?"bar":"auto",label:t,render:()=>n==="popover"?a():s()},repaint:()=>o?.()}}var Am="[data-persona-composer-chip-row]";function Qd(e){e.style.display=e.childElementCount>0?"flex":"none"}function Mm(e){let t=e.querySelector(Am);if(t)return t;let n=X("div",{className:"persona-composer-chip-row",attrs:{"data-persona-composer-chip-row":""}});n.style.display="none";let o=e.querySelector("[data-persona-composer-quote], [data-persona-composer-pending]");return o?.parentElement===e?e.insertBefore(n,o):e.appendChild(n),n}var cP=":scope > [data-persona-composer-mode]";function _C(e){let t=e.row,n="",o=!1,r=new Set(e.initialIds??[]),s=p=>{let u=X("span",{className:"persona-mention-chip persona-composer-mode-chip",attrs:{"data-persona-composer-mode":p.id}});if(p.iconName){let C=M("span","persona-mention-chip-icon"),S=ge(p.iconName,12,"currentColor",1.5);S&&C.appendChild(S),u.appendChild(C)}let m=M("span","persona-mention-chip-label");m.textContent=p.shortLabel??p.label,u.appendChild(m);let y=X("button",{className:"persona-mention-chip-remove",attrs:{type:"button","aria-label":`Remove ${p.label}`}}),h=ge("x",12,"currentColor",2);return h?y.appendChild(h):y.textContent="\xD7",y.addEventListener("click",C=>{C.preventDefault(),C.stopPropagation(),e.onRemove(p.id)}),u.appendChild(y),u},a=()=>Array.from(t.querySelectorAll(cP)),l=p=>{p.setAttribute("data-persona-chip-exit",""),p.setAttribute("aria-hidden","true"),p.style.pointerEvents="none";let u=()=>{p.remove(),Qd(t)},m=t.ownerDocument.defaultView,y=typeof m?.getComputedStyle=="function"?m.getComputedStyle(p).animationName:"";if(!y||y==="none"){u();return}p.addEventListener("animationend",u,{once:!0}),p.addEventListener("animationcancel",u,{once:!0})},d=()=>{for(let p of a())p.remove()};return{element:t,render:(p,u)=>{if(o)return;let m=u.filter(S=>p.includes(S.id)),y=m.map(S=>`${S.id}:${S.shortLabel??S.label}`).join("|");if(y===n)return;n=y;let h=new Map;for(let S of a()){let x=S.getAttribute("data-persona-composer-mode");x&&m.some(O=>O.id===x)&&!S.hasAttribute("data-persona-chip-exit")?h.set(x,S):S.hasAttribute("data-persona-chip-exit")||l(S)}let C=t.firstChild;for(let S of m){let x=h.get(S.id);x||(x=s(S),r.has(S.id)||(x.setAttribute("data-persona-chip-enter",""),x.addEventListener("animationend",()=>x?.removeAttribute("data-persona-chip-enter"),{once:!0}))),r.delete(S.id),x!==C&&t.insertBefore(x,C),C=x.nextSibling}Qd(t)},destroy:()=>{o=!0,d(),Qd(t)}}}var DC=e=>`core:mode:${e}`;var Em=e=>Math.min(300+e,499),NC=e=>`core:mode-group:${e}`;function Yd(e,t){return e?t?.find(n=>n.id===e)?.presentation==="segmented":!1}function dP(e,t){return e?t?.find(n=>n.id===e)?.chipVisibility==="hidden":!1}function FC(e,t){return e?.length?e.filter(n=>!Yd(n.groupId,t)&&!dP(n.groupId,t)):[]}var pP=(e,t)=>e.groupId?t?.find(n=>n.id===e.groupId)?.selection??null:null;function $C(e,t,n,o){let r=n.find(l=>l.id===t);if(!r)return[...e];let s=e.includes(t),a=new Set(e);if(s)a.delete(t);else{if(pP(r,o)==="single"){let l=n.filter(d=>d.groupId===r.groupId).map(d=>d.id);a=new Set([...a].filter(d=>!l.includes(d)))}a.add(t)}return n.filter(l=>a.has(l.id)).map(l=>l.id)}function Xd(e,t){return t?.length?t.filter(n=>e.includes(n.id)).map(n=>n.id):[]}function UC(e,t){return t?.length?t.filter(n=>e.includes(n.id)&&(n.persistence??"sticky")!=="once").map(n=>n.id):[]}function jC(e,t){if(!(!t?.length||e.length===0))return t.find(n=>e.includes(n.id)&&n.placeholder)?.placeholder}var uP=16;function qC(e){let t=null;return{action:{id:NC(e.groupId),kind:"custom",placement:"start",presentation:"bar",label:e.getGroup()?.label??e.groupId,render:()=>{let o=X("div",{className:"persona-composer-segmented",attrs:{"data-persona-composer-mode-group":e.groupId}}),r=new Map,s="",a=p=>{p.preventDefault(),p.stopPropagation();let m=p.currentTarget.getAttribute("data-persona-composer-mode");!m||e.getActiveIds().includes(m)&&e.getGroup()?.selection==="single"||e.onSelect(m)},l=p=>{let u=X("button",{className:"persona-composer-segmented-item",attrs:{type:"button","data-persona-composer-mode":p.id,"aria-label":p.label}});if(p.iconName){let y=ge(p.iconName,uP,"currentColor",1.5);y&&u.appendChild(y)}let m=M("span","persona-composer-segmented-label");return m.textContent=p.shortLabel??p.label,u.appendChild(m),u.addEventListener("click",a),u},d=()=>{let p=e.getGroup();p?.label?(o.setAttribute("role","group"),o.setAttribute("aria-label",p.label)):(o.removeAttribute("role"),o.removeAttribute("aria-label"));let u=e.getModes(),m=u.map(h=>`${h.id}:${h.shortLabel??h.label}:${h.iconName??""}`).join("|");if(m!==s){s=m;for(let C of r.values())C.removeEventListener("click",a);r.clear();let h=u.map(C=>{let S=l(C);return r.set(C.id,S),S});o.replaceChildren(...h)}let y=e.getActiveIds();for(let[h,C]of r)C.setAttribute("aria-pressed",String(y.includes(h)))};return d(),t=d,{element:o,destroy:()=>{t===d&&(t=null);for(let p of r.values())p.removeEventListener("click",a);r.clear()}}}},repaint:()=>t?.()}}function zC(e){let t=X("div",{className:"persona-composer-quote",attrs:{"data-persona-composer-quote":""}});t.style.display="none";let n="",o=!1,r=s=>{let a=M("span","persona-composer-quote-bar"),l=M("div","persona-composer-quote-content");if(s.sourceLabel){let m=M("div","persona-composer-quote-source");m.textContent=s.sourceLabel,l.appendChild(m)}let d=X("div",{className:"persona-composer-quote-text",attrs:{"data-persona-composer-quote-text":""}});d.textContent=Rd(s.text),l.appendChild(d);let p=X("button",{className:"persona-composer-quote-dismiss",attrs:{type:"button","aria-label":e.dismissLabel??"Remove quote","data-persona-composer-quote-dismiss":""}}),u=ge("x",12,"currentColor",2);u?p.appendChild(u):p.textContent="\xD7",p.addEventListener("click",m=>{m.preventDefault(),m.stopPropagation(),e.onDismiss()}),t.replaceChildren(a,l,p)};return{element:t,render:s=>{if(o)return;let a=s?`${s.sourceLabel??""}\0${s.text}`:"";if(a!==n){if(n=a,!s){t.replaceChildren(),t.style.display="none";return}r(s),t.style.display="flex"}},destroy:()=>{o=!0,t.replaceChildren(),t.remove()}}}function VC(e){let t=X("div",{className:"persona-composer-pending",attrs:{"data-persona-composer-pending":""}});t.style.display="none";let n,o=!1,r=(a,l,d,p)=>{let u=X("button",{className:"persona-composer-pending-action",attrs:{type:"button","aria-label":l,[d]:""}}),m=ge(a,12,"currentColor",2);return m?u.appendChild(m):u.textContent=l,u.addEventListener("click",y=>{y.preventDefault(),y.stopPropagation(),p()}),u},s=a=>{let l=Rd(a.text??"",90);if(l)return l;let d=a.contentParts?.length??0;return d>0?d===1?"1 attachment":`${d} attachments`:(a.mentionRefs?.length??0)>0?a.mentionRefs.map(u=>u.label).join(", "):"Queued message"};return{element:t,render:a=>{if(o||a===n)return;if(n=a,!a){t.replaceChildren(),t.style.display="none";return}let l=M("span","persona-composer-pending-badge");l.textContent=e.label??"Sends next";let d=X("div",{className:"persona-composer-pending-text",attrs:{"data-persona-composer-pending-text":""}});d.textContent=s(a),t.replaceChildren(l,d,r("pencil",e.editLabel??"Edit queued message","data-persona-composer-pending-edit",e.onEdit),r("x",e.removeLabel??"Remove queued message","data-persona-composer-pending-remove",e.onRemove)),t.style.display="flex"},destroy:()=>{o=!0,t.replaceChildren(),t.remove()}}}function KC(e){let t=X("div",{className:"persona-message-edit",attrs:{"data-persona-message-edit":e.messageId,"data-preserve-runtime":""}}),n=X("textarea",{className:"persona-message-edit-input",attrs:{rows:"1",dir:"auto","aria-label":"Edit message","data-persona-message-edit-input":""}});n.value=e.initialText;let o=()=>{n.style.height="auto",n.style.height=`${n.scrollHeight}px`};n.addEventListener("input",o);let r=M("div","persona-message-edit-actions"),s=(l,d,p,u)=>{let m=X("button",{className:`persona-message-edit-button ${d}`,attrs:{type:"button",[p]:""},text:l});return m.addEventListener("click",y=>{y.preventDefault(),y.stopPropagation(),u()}),m},a=()=>{let l=n.value.trim();l&&e.onSave(l)};return r.append(s(e.cancelLabel??"Cancel","persona-message-edit-cancel","data-persona-message-edit-cancel",e.onCancel),s(e.saveLabel??"Send","persona-message-edit-save","data-persona-message-edit-save",a)),n.addEventListener("keydown",l=>{if(l.key==="Escape"){l.preventDefault(),l.stopPropagation(),e.onCancel();return}l.key==="Enter"&&!l.shiftKey&&(l.preventDefault(),a())}),t.append(n,r),{element:t,getValue:()=>n.value,focus:()=>{n.focus();let l=n.value.length;n.setSelectionRange(l,l),o()},destroy:()=>{t.replaceChildren(),t.remove()}}}function GC(e){let t=e.text??"";if(t.trim().length>0||(e.mentionRefs?.length??0)>0||(e.activeModeIds?.length??0)>0||e.quote||e.selectedModelId)return{text:t,...e.mentionRefs?.length?{mentionRefs:[...e.mentionRefs]}:{},...e.contentSegments?.length?{contentSegments:[...e.contentSegments]}:{},...e.selectedModelId?{selectedModelId:e.selectedModelId}:{},...e.activeModeIds?.length?{activeModeIds:[...e.activeModeIds]}:{},...e.quote?{quote:{...e.quote}}:{}}}function QC(e,t){if(!e||typeof e.text!="string")return;let n=new Set(t.mentionSourceIds),o=(e.mentionRefs??[]).filter(d=>n.has(d.sourceId)),r=o.length===(e.mentionRefs?.length??0)&&o.length>0,s=new Set(t.modes.map(d=>d.id)),a=(e.activeModeIds??[]).filter(d=>s.has(d)),l=e.selectedModelId&&t.modelIds.includes(e.selectedModelId)?e.selectedModelId:void 0;return{text:e.text,...r?{mentionRefs:o}:{},...r&&e.contentSegments?.length?{contentSegments:e.contentSegments}:{},...l?{selectedModelId:l}:{},...a.length?{activeModeIds:a}:{},...e.quote?.text?{quote:e.quote}:{}}}function YC(e){let t=e.delay??500,n=null,o=!1,r=()=>{n!==null&&(clearTimeout(n),n=null)};return{schedule:()=>{o||(r(),n=setTimeout(()=>{n=null,e.write()},t))},flush:()=>{o||n===null||(r(),e.write())},cancel:r,destroy:()=>{o=!0,r()}}}function XC(e){return e.wrapped||e.text.includes(`
23
+ `)?!1:!(e.hasAttachments||e.hasChips||e.hasQuote||e.hasPendingSubmission||e.dictationActive)}function JC(){let e=!1;return{observe:(t,n)=>n?(t&&(e=!0),e):(e=!1,!1),release:()=>{e=!1}}}function ZC(e){if(!e)return!1;let t=e.ownerDocument?.defaultView;if(!t?.getComputedStyle)return!1;let n=t.getComputedStyle(e),o=Number.parseFloat(n.lineHeight),r=Number.parseFloat(n.fontSize),s=Number.isFinite(o)&&o>0?o:Number.isFinite(r)&&r>0?r*1.4:0;if(!s)return!1;let a=(Number.parseFloat(n.paddingTop)||0)+(Number.parseFloat(n.paddingBottom)||0);return e.scrollHeight-a>s*1.5}function ew(e){e&&(typeof e.requestSubmit=="function"?e.requestSubmit():e.dispatchEvent(new Event("submit",{bubbles:!0,cancelable:!0})))}function Tm(e){return Object.freeze({text:e.text,contentParts:e.contentParts?Object.freeze([...e.contentParts]):void 0,mentionRefs:Object.freeze([...e.mentionRefs]),contentSegments:e.contentSegments?Object.freeze([...e.contentSegments]):void 0,options:Object.freeze({...e.options}),viaVoice:e.viaVoice})}function nw(e){return e.inputDisabled===!0||e.sendDisabled===!0||e.hasAttachments&&!e.attachmentsReady?!1:!!e.text||e.hasAttachments||e.hasMentions||e.hasServerMentions}var gP=e=>typeof e?.then=="function";function tw(e,t){return t===!1?{status:"canceled"}:!t||typeof t!="object"?{status:"proceed"}:(typeof t.text=="string"&&(e.text=t.text),t.options&&(e.options={...e.options,...t.options}),{status:"proceed"})}function ow(e,t,n){let o;try{o=e(Tm(t),{signal:n})}catch(r){return{status:"error",error:r}}return gP(o)?Promise.resolve(o).then(r=>n.aborted?{status:"aborted"}:tw(t,r),r=>n.aborted?{status:"aborted"}:{status:"error",error:r}):tw(t,o)}var rw=/\s/;function mP(e,t,n){if(n==="input-start")return t===0;let o=t>0?e[t-1]:"";return n==="line-start"?o===""||o===`
24
+ `:o===""||rw.test(o)}function fP(e,t,n="@",o="anywhere",r=!1){if(!n||t<=0||t>e.length)return null;let s=t-1;for(;s>=0;){let a=e[s];if(a===n)return mP(e,s,o)?{triggerIndex:s,query:e.slice(s+1,t)}:null;if(a===`
25
+ `||a==="\uFFFC"||!r&&rw.test(a))return null;s--}return null}function sw(e,t,n){for(let o of n){let r=fP(e,t,o.trigger,o.position??"anywhere",o.allowSpaces??!1);if(r)return{channel:o,match:r}}return null}function iw(e){return e?e!=="insertFromPaste"&&e!=="insertFromDrop":!0}function aw(e){let t={trigger:e.trigger??"@",position:e.triggerPosition??"anywhere",allowSpaces:!1,sources:Array.isArray(e.sources)?e.sources:[],searchPlaceholder:e.searchPlaceholder,showButton:e.showButton!==!1,buttonIconName:e.buttonIconName,buttonTooltipText:e.buttonTooltipText},n=(e.triggers??[]).map(o=>({trigger:o.trigger,position:o.triggerPosition??"anywhere",allowSpaces:o.allowSpaces??!1,sources:Array.isArray(o.sources)?o.sources:[],searchPlaceholder:o.searchPlaceholder,showButton:o.showButton===!0,buttonIconName:o.buttonIconName,buttonTooltipText:o.buttonTooltipText}));return[t,...n]}function lw(e){let{config:t,onOpen:n}=e,o=t.buttonIconName??"plus",r=t.buttonTooltipText??"Add context",s=M("div","persona-send-button-wrapper"),a=X("button",{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-mention-button ${Vn} ${wo}`,attrs:{type:"button","data-persona-composer-mention-button":"","aria-label":r,"aria-haspopup":"listbox","aria-expanded":"false"},style:{fontSize:"18px",lineHeight:"1"}}),l=ge(o,yn,"currentColor",1.5);return l?a.appendChild(l):a.textContent="+",a.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),n()}),s.appendChild(a),nn({anchor:a,trigger:s,text:()=>a.getAttribute("aria-label")??r}),{button:a,wrapper:s}}var{setLoader:ZH,load:hP}=bt({fallbackImport:()=>import("@runtypelabs/persona/context-mentions")});var Pm=hP;var{setLoader:nW,load:yP}=bt({fallbackImport:()=>import("@runtypelabs/persona/context-mentions-inline"),resetOnSetLoader:!0});var cw=yP;function vl(e,t={}){if(t.render)return t.render({ref:e,readonly:!!t.readonly});let n=X("span",{className:hn("persona-mention-token",t.readonly&&"persona-mention-token-readonly"),attrs:{"data-mention-source":e.sourceId,title:e.label,role:"img","aria-label":`${e.label} mention`}});e.color&&n.style.setProperty("--persona-mention-token-accent",e.color);let o=ge(e.iconName??"at-sign",13,"currentColor",2);if(o){let r=M("span","persona-mention-token-icon");r.appendChild(o),n.appendChild(r)}return n.appendChild(X("span",{className:"persona-mention-token-label",text:`@${e.label}`})),n}function dw(e){let t=e.config.contextMentions;if(!t?.enabled)return null;let n=aw(t).filter(T=>T.sources.length>0);if(n.length===0)return typeof console<"u"&&console.warn("[Persona] contextMentions.enabled is true but no sources were provided; mentions are disabled."),null;let o=n.filter(T=>T.sources.some(I=>typeof I.matchCommand=="function")),r=T=>o.some(I=>I.trigger?I.position==="line-start"?T.split(`
26
+ `).some(N=>N.startsWith(I.trigger)):(I.position==="anywhere"?T:T.split(`
27
+ `)[0]).startsWith(I.trigger):!1),s=(T,I)=>{if(!(typeof window>"u"))try{window.dispatchEvent(new CustomEvent(`persona:mention:${T}`,{detail:I}))}catch{}},a=!e.chipRow,l=e.chipRow??X("div",{className:"persona-mention-context-row",attrs:{"data-persona-mention-context-row":""}}),d=null,p=null,u=e.textarea,m=null,y=null,h=null,C=null,S=()=>{if(d)return Promise.resolve(d);if(p)return p;let T=Pm().then(I=>(I.setMentionIconRenderer(ge),d=I.mountContextMentions({mentionConfig:t,textarea:e.textarea,composerInput:m??void 0,anchor:e.anchor,contextRow:l,getMessages:e.getMessages,getConfig:()=>e.config,liveRegionHost:e.liveRegionHost,popoverContainer:e.popoverContainer,onPickerOpenChange:$,emit:s}),d)).catch(I=>(typeof console<"u"&&console.warn("[Persona] Failed to load context mentions runtime",I),p===T&&(p=null),null));return p=T,T},x=()=>{cw().then(T=>{let I=T.mountInlineComposer({textarea:e.textarea,renderToken:N=>vl(N,{render:t.renderMentionToken}),onMentionRemoved:N=>d?.untrackMention(N)});m=I.input,y=I.destroy;let A=u;A.replaceWith(I.element),u=I.element,C={next:I.element,prev:A},h?.(I.element,A),d?d.rebindComposer(I.input):p&&p.then(N=>N?.rebindComposer(I.input))}).catch(T=>{typeof console<"u"&&console.warn("[Persona] Failed to load inline mention composer",T)})};t.display==="inline"&&x();let k=[],O=new Map;for(let T of n){if(!T.showButton)continue;let I=lw({config:{...t,buttonIconName:T.buttonIconName,buttonTooltipText:T.buttonTooltipText},onOpen:()=>{S().then(A=>A?.openMenu(T.trigger))}});k.push(I),O.set(T.trigger,I.button)}let $=(T,I,A)=>{let N=O.get(I);N&&(N.setAttribute("aria-expanded",T?"true":"false"),T?N.setAttribute("aria-controls",A):N.removeAttribute("aria-controls"))};return{affordanceButtons:k.map(T=>T.wrapper),contextRow:l,handleInput:T=>{if(d){d.handleInput();return}if(!iw(T))return;let I=u,A=I.selectionStart??0;sw(I.value,A,n)&&S().then(N=>N?.handleInput())},handleKeydown:T=>{if(d?.isMenuOpen())return d.handleKeydown(T);if(T.key==="Backspace"&&d?.hasMentions()&&!C){let I=u,A=I.selectionStart===0&&I.selectionEnd===0;if((I.value.length===0||A)&&d.removeLastChip())return T.preventDefault(),!0}return!1},isMenuOpen:()=>d?.isMenuOpen()??!1,hasMentions:()=>d?.hasMentions()??!1,getMentionRefs:()=>d?.getMentionRefs()??[],collectForSubmit:()=>d?.collectForSubmit()??null,takeInlineCommand:async T=>r(T)?(d??await S())?.dispatchInlineCommand(T)??null:null,clear:()=>d?.clear(),prefetch:()=>{Pm().catch(()=>{})},onComposerSwap:T=>{h=T,C&&T(C.next,C.prev)},destroy:()=>{d?.destroy(),y?.();for(let T of k)T.wrapper.remove();a&&l.remove()}}}var Jd="16px",Zd="transparent",bP=(()=>{let e={};for(let t of[0,1,2,3,4,5,6,8,10,12,16,20,24,32,40,48,56,64])e[t]=t===0?"0px":`${t/4}rem`;return e})(),Lm={colors:{primary:{50:"#ffffff",100:"#f5f5f5",200:"#d4d4d4",300:"#a3a3a3",400:"#737373",500:"#171717",600:"#0f0f0f",700:"#0a0a0a",800:"#050505",900:"#030303",950:"#000000"},secondary:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},accent:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},success:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d"},warning:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12"},error:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d"},info:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"}},spacing:bP,typography:{fontFamily:{sans:'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',serif:'Georgia, Cambria, "Times New Roman", Times, serif',mono:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace"},fontSize:{xs:"0.75rem",sm:"0.875rem",base:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem"},fontWeight:{normal:"400",medium:"500",semibold:"600",bold:"700"},lineHeight:{tight:"1.25",normal:"1.5",relaxed:"1.625"}},shadows:{none:"none",sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)"},borders:{none:"none",sm:"1px solid",md:"2px solid",lg:"4px solid"},radius:{none:"0px",sm:"0.125rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem",full:"9999px"}},Im={colors:{primary:"palette.colors.primary.500",secondary:"palette.colors.secondary.500",accent:"palette.colors.primary.600",surface:"palette.colors.gray.50",background:"palette.colors.gray.50",container:"palette.colors.gray.50",text:"palette.colors.gray.900",textMuted:"palette.colors.gray.500",textInverse:"palette.colors.gray.50",border:"palette.colors.gray.200",divider:"palette.colors.gray.200",interactive:{default:"palette.colors.primary.600",hover:"palette.colors.primary.700",focus:"palette.colors.primary.600",active:"palette.colors.primary.600",disabled:"palette.colors.gray.300"},feedback:{success:"palette.colors.success.500",warning:"palette.colors.warning.500",error:"palette.colors.error.500",info:"palette.colors.info.500"}},spacing:{xs:"palette.spacing.1",sm:"palette.spacing.2",md:"palette.spacing.4",lg:"palette.spacing.6",xl:"palette.spacing.8","2xl":"palette.spacing.10"},typography:{fontFamily:"palette.typography.fontFamily.sans",fontSize:"palette.typography.fontSize.base",fontWeight:"palette.typography.fontWeight.normal",lineHeight:"palette.typography.lineHeight.normal"}},Rm={button:{primary:{background:"palette.colors.primary.500",foreground:"palette.colors.primary.50",borderRadius:"palette.radius.lg",padding:"semantic.spacing.md"},secondary:{background:"semantic.colors.surface",foreground:"semantic.colors.secondary",borderRadius:"palette.radius.lg",padding:"semantic.spacing.md"},ghost:{background:"transparent",foreground:"semantic.colors.text",borderRadius:"palette.radius.md",padding:"semantic.spacing.sm",hoverBackground:"rgba(0, 0, 0, 0.05)"}},input:{background:"semantic.colors.surface",placeholder:"semantic.colors.textMuted",borderRadius:"palette.radius.lg",padding:"semantic.spacing.md",focus:{border:"palette.colors.gray.400",ring:"palette.colors.gray.400"}},launcher:{background:"semantic.colors.surface",foreground:"semantic.colors.primary",border:"semantic.colors.border",size:"60px",iconSize:"28px",borderRadius:"palette.radius.full",shadow:"palette.shadows.lg"},panel:{width:zn,maxWidth:Dd,height:"600px",maxHeight:"calc(100vh - 80px)",borderRadius:"palette.radius.xl",shadow:"palette.shadows.xl",inset:Jd,canvasBackground:Zd},header:{background:"palette.colors.primary.500",foreground:"palette.colors.primary.50",borderRadius:"palette.radius.xl palette.radius.xl 0 0",padding:"semantic.spacing.md",iconBackground:"palette.colors.primary.600",iconForeground:"palette.colors.primary.50"},message:{user:{background:"palette.colors.primary.500",text:"palette.colors.primary.50",borderRadius:"palette.radius.lg",shadow:"palette.shadows.sm"},assistant:{background:"semantic.colors.container",text:"semantic.colors.text",borderRadius:"palette.radius.lg",border:"semantic.colors.border",shadow:"palette.shadows.sm"},border:"semantic.colors.border"},introCard:{background:"transparent",borderRadius:"palette.radius.2xl",padding:"semantic.spacing.lg",shadow:"palette.shadows.none"},suggestion:{chip:{background:"semantic.colors.surface",foreground:"semantic.colors.text",border:"semantic.colors.border",borderRadius:"palette.radius.full",padding:"0.5rem 0.875rem",gap:"0.5rem",itemGap:"8px",minHeight:"36px",fontSize:"0.8125rem",lineHeight:"1.25",iconSize:"16px",hoverBackground:"palette.colors.gray.100",hoverBorder:"palette.colors.gray.300",pressedBackground:"palette.colors.gray.200",focusRing:"semantic.colors.interactive.focus",disabledOpacity:"0.5"},card:{background:"semantic.colors.surface",foreground:"semantic.colors.text",border:"semantic.colors.border",borderRadius:"palette.radius.xl",padding:"1rem",shadow:"palette.shadows.sm",gap:"0.625rem",itemGap:"8px",minHeight:"72px",fontSize:"0.875rem",lineHeight:"1.35",iconSize:"18px",hoverBackground:"palette.colors.gray.100",hoverBorder:"palette.colors.gray.300",pressedBackground:"palette.colors.gray.200",focusRing:"semantic.colors.interactive.focus",disabledOpacity:"0.5"},list:{background:"transparent",foreground:"semantic.colors.text",border:"semantic.colors.border",borderRadius:"palette.radius.md",padding:"0.75rem",gap:"0.625rem",itemGap:"8px",minHeight:"44px",fontSize:"0.875rem",lineHeight:"1.35",iconSize:"17px",hoverBackground:"palette.colors.gray.100",hoverBorder:"palette.colors.gray.300",pressedBackground:"palette.colors.gray.200",focusRing:"semantic.colors.interactive.focus",disabledOpacity:"0.5"}},toolBubble:{shadow:"palette.shadows.sm"},reasoningBubble:{shadow:"palette.shadows.sm"},composer:{shadow:"palette.shadows.none"},scrollbar:{thumb:"semantic.colors.border",track:"transparent"},markdown:{inlineCode:{background:"palette.colors.gray.50",foreground:"palette.colors.gray.900"},link:{foreground:"palette.colors.primary.600"},prose:{fontFamily:"inherit"},codeBlock:{background:"semantic.colors.container",borderColor:"semantic.colors.border",textColor:"inherit",borderRadius:"palette.radius.md"},table:{headerBackground:"semantic.colors.container",borderColor:"semantic.colors.border"},hr:{color:"semantic.colors.divider"},blockquote:{borderColor:"palette.colors.gray.900",background:"transparent",textColor:"palette.colors.gray.500"}},collapsibleWidget:{container:"palette.colors.gray.50",surface:"semantic.colors.surface",border:"semantic.colors.border"},voice:{recording:{indicator:"palette.colors.error.500",background:"palette.colors.error.50",border:"palette.colors.error.200"},processing:{icon:"palette.colors.primary.500",background:"palette.colors.primary.50"},speaking:{icon:"palette.colors.success.500"}},approval:{requested:{background:"semantic.colors.surface",border:"semantic.colors.border",text:"palette.colors.gray.900",shadow:"0 1px 2px 0 rgba(11, 11, 11, 0.06), 0 2px 8px 0 rgba(11, 11, 11, 0.04)"},approve:{background:"semantic.colors.primary",foreground:"semantic.colors.textInverse",borderRadius:"palette.radius.md",padding:"semantic.spacing.sm"},deny:{background:"semantic.colors.container",foreground:"semantic.colors.text",borderRadius:"palette.radius.md",padding:"semantic.spacing.sm"}},attachment:{image:{background:"palette.colors.gray.100",border:"palette.colors.gray.200"}},scrollToBottom:{background:"components.button.primary.background",foreground:"components.button.primary.foreground",border:"semantic.colors.primary",size:"40px",borderRadius:"palette.radius.full",shadow:"palette.shadows.sm",padding:"0.5rem 0.875rem",gap:"0.5rem",fontSize:"0.875rem",iconSize:"14px"},artifact:{pane:{background:"semantic.colors.container",toolbarBackground:"semantic.colors.container"}}};function bn(e,t){if(!t.startsWith("palette.")&&!t.startsWith("semantic.")&&!t.startsWith("components."))return t;let n=t.split("."),o=e;for(let r of n){if(o==null)return;o=o[r]}return typeof o=="string"&&(o.startsWith("palette.")||o.startsWith("semantic.")||o.startsWith("components."))?bn(e,o):o}function ep(e){let t={};function n(o,r){for(let[s,a]of Object.entries(o)){let l=`${r}.${s}`;if(typeof a=="string"){let d=bn(e,a);d!==void 0&&(t[l]={path:l,value:d,type:r.includes("color")?"color":r.includes("spacing")?"spacing":r.includes("typography")?"typography":r.includes("shadow")?"shadow":r.includes("border")?"border":"color"})}else typeof a=="object"&&a!==null&&n(a,l)}}return n(e.palette,"palette"),n(e.semantic,"semantic"),n(e.components,"components"),t}function Hm(e){let t=[],n=[];return e.palette||t.push({path:"palette",message:"Theme must include a palette",severity:"error"}),e.semantic||n.push({path:"semantic",message:"No semantic tokens defined - defaults will be used",severity:"warning"}),e.components||n.push({path:"components",message:"No component tokens defined - defaults will be used",severity:"warning"}),{valid:t.length===0,errors:t,warnings:n}}function uw(e,t){let n={...e};for(let[o,r]of Object.entries(t)){let s=n[o];s&&typeof s=="object"&&!Array.isArray(s)&&r&&typeof r=="object"&&!Array.isArray(r)?n[o]=uw(s,r):n[o]=r}return n}function vP(e,t){return t?uw(e,t):e}function Cl(e,t={}){let n={palette:Lm,semantic:Im,components:Rm},o={palette:{...n.palette,...e?.palette,colors:{...n.palette.colors,...e?.palette?.colors},spacing:{...n.palette.spacing,...e?.palette?.spacing},typography:{...n.palette.typography,...e?.palette?.typography},shadows:{...n.palette.shadows,...e?.palette?.shadows},borders:{...n.palette.borders,...e?.palette?.borders},radius:{...n.palette.radius,...e?.palette?.radius}},semantic:{...n.semantic,...e?.semantic,colors:{...n.semantic.colors,...e?.semantic?.colors,interactive:{...n.semantic.colors.interactive,...e?.semantic?.colors?.interactive},feedback:{...n.semantic.colors.feedback,...e?.semantic?.colors?.feedback}},spacing:{...n.semantic.spacing,...e?.semantic?.spacing},typography:{...n.semantic.typography,...e?.semantic?.typography}},components:vP(n.components,e?.components)};if(t.validate!==!1){let r=Hm(o);if(!r.valid)throw new Error(`Theme validation failed: ${r.errors.map(s=>s.message).join(", ")}`)}if(t.plugins)for(let r of t.plugins)o=r.transform(o);return o}var km=e=>e.trim()==="0"?"0px":e,pw="--persona-",CP=e=>{if(!e)return;let t=e.trim().toLowerCase(),n;if(t.charCodeAt(0)===35){let a=t.slice(1);if(!/^[0-9a-f]+$/.test(a))return;a.length===3||a.length===4?n=[0,1,2].map(l=>parseInt(a[l]+a[l],16)):(a.length===6||a.length===8)&&(n=[0,2,4].map(l=>parseInt(a.slice(l,l+2),16)))}else{let a=t.match(/^rgba?\(([^)]+)\)$/);if(a){let l=a[1].split(/[,/\s]+/).filter(Boolean);l.length>=3&&(n=l.slice(0,3).map(d=>{let p=d.endsWith("%"),u=parseFloat(p?d.slice(0,-1):d);return p?u/100*255:u}))}}if(!n||n.some(a=>!Number.isFinite(a)))return;let[o,r,s]=n.map(a=>{let l=Math.max(0,Math.min(255,a))/255;return l<=.03928?l/12.92:Math.pow((l+.055)/1.055,2.4)});return .2126*o+.7152*r+.0722*s},wP=.179,on=(e,t)=>{for(let[n,...o]of t){let r;for(let s of o)if(r=s.charCodeAt(0)===61?s.slice(1):e[pw+s],r!==void 0)break;r!==void 0&&(e[pw+n]=r)}};function tp(e){let t=ep(e),n={};for(let[j,$e]of Object.entries(t)){let je=j.replace(/\./g,"-");n[`--persona-${je}`]=$e.value}on(n,[["primary","semantic-colors-primary","palette-colors-primary-500"],["secondary","semantic-colors-secondary","palette-colors-secondary-500"],["accent","semantic-colors-accent","palette-colors-accent-500"],["surface","semantic-colors-surface","palette-colors-gray-50"],["background","semantic-colors-background","palette-colors-gray-50"],["container","semantic-colors-container","palette-colors-gray-100"],["text","semantic-colors-text","palette-colors-gray-900"],["text-muted","semantic-colors-text-muted","palette-colors-gray-500"],["text-inverse","semantic-colors-text-inverse","palette-colors-gray-50"],["border","semantic-colors-border","palette-colors-gray-200"],["divider","semantic-colors-divider","palette-colors-gray-200"],["muted","text-muted"],["voice-recording-indicator","components-voice-recording-indicator","palette-colors-error-500"],["voice-recording-bg","components-voice-recording-background","palette-colors-error-50"],["voice-processing-icon","components-voice-processing-icon","palette-colors-primary-500"],["voice-speaking-icon","components-voice-speaking-icon","palette-colors-success-500"],["approval-bg","components-approval-requested-background","surface"],["approval-border","components-approval-requested-border","border"],["approval-text","components-approval-requested-text","palette-colors-gray-900"],["approval-shadow","components-approval-requested-shadow","=0 1px 2px 0 rgba(11, 11, 11, 0.06), 0 2px 8px 0 rgba(11, 11, 11, 0.04)"],["approval-approve-bg","components-approval-approve-background","button-primary-bg"],["approval-deny-bg","components-approval-deny-background","container"],["attachment-image-bg","components-attachment-image-background","palette-colors-gray-100"],["attachment-image-border","components-attachment-image-border","palette-colors-gray-200"],["font-family","semantic-typography-fontFamily","palette-typography-fontFamily-sans"],["font-size","semantic-typography-fontSize","palette-typography-fontSize-base"],["font-weight","semantic-typography-fontWeight","palette-typography-fontWeight-normal"],["line-height","semantic-typography-lineHeight","palette-typography-lineHeight-normal"],["input-font-family","font-family"],["input-font-weight","font-weight"],["radius-sm","palette-radius-sm","=0.125rem"],["radius-md","palette-radius-md","=0.375rem"],["radius-lg","palette-radius-lg","=0.5rem"],["radius-xl","palette-radius-xl","=0.75rem"],["radius-full","palette-radius-full","=9999px"],["launcher-radius","components-launcher-borderRadius","palette-radius-full","=9999px"],["launcher-bg","components-launcher-background","surface"],["launcher-fg","components-launcher-foreground","primary"]]);let o=n["--persona-components-launcher-foreground"];n["--persona-launcher-fg-muted"]=o&&o!==n["--persona-primary"]?`color-mix(in srgb, ${o} 70%, transparent)`:n["--persona-muted"],on(n,[["launcher-border","components-launcher-border","border"],["button-primary-bg","components-button-primary-background","primary"],["button-primary-fg","components-button-primary-foreground","text-inverse"],["button-radius","components-button-primary-borderRadius","palette-radius-full","=9999px"],["button-stop-bg","components-button-stop-background"],["button-stop-fg","components-button-stop-foreground"]]),on(n,[["button-ghost-bg","components-button-ghost-background","=transparent"],["button-ghost-fg","components-button-ghost-foreground","text"],["button-ghost-radius","components-button-ghost-borderRadius","radius-md","=0.375rem"],["button-ghost-hover-bg","components-button-ghost-hoverBackground","=rgba(0, 0, 0, 0.05)"],["panel-radius","components-panel-borderRadius","radius-xl","=0.75rem"]]),n["--persona-panel-border"]=n["--persona-components-panel-border"]??`1px solid ${n["--persona-border"]}`,on(n,[["panel-shadow","components-panel-shadow","palette-shadows-xl","=0 25px 50px -12px rgba(0, 0, 0, 0.25)"]]),n["--persona-panel-inset"]=n["--persona-components-panel-inset"]??Jd,n["--persona-panel-canvas-bg"]=n["--persona-components-panel-canvasBackground"]??Zd,on(n,[["launcher-shadow","components-launcher-shadow","=0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)"],["input-radius","components-input-borderRadius","radius-lg","=0.5rem"],["message-user-radius","components-message-user-borderRadius","radius-lg","=0.5rem"],["message-assistant-radius","components-message-assistant-borderRadius","radius-lg","=0.5rem"]]),on(n,[["header-bg","components-header-background","surface"]]);let r=n["--persona-header-bg"],s=n["--persona-components-header-foreground"],a=s?`color-mix(in srgb, ${s} 72%, ${r})`:void 0;n["--persona-header-border"]=n["--persona-components-header-border"]??(s?`color-mix(in srgb, ${s} 14%, ${r})`:void 0)??n["--persona-divider"],on(n,[["header-icon-bg","components-header-iconBackground","primary"],["header-icon-fg","components-header-iconForeground","text-inverse"]]),n["--persona-header-title-fg"]=n["--persona-components-header-title-color"]??n["--persona-components-header-titleForeground"]??s??n["--persona-primary"],n["--persona-header-subtitle-fg"]=n["--persona-components-header-subtitle-color"]??n["--persona-components-header-subtitleForeground"]??a??n["--persona-text-muted"],n["--persona-header-action-icon-fg"]=n["--persona-components-header-actionIconForeground"]??a??n["--persona-muted"],on(n,[["header-control-size","components-header-controlSize","=32px"],["header-control-icon-size","components-header-controlIconSize","=20px"]]);let l=e.components?.header;l?.shadow&&(n["--persona-header-shadow"]=l.shadow),l?.borderBottom&&(n["--persona-header-border-bottom"]=l.borderBottom),l?.minHeight&&(n["--persona-header-min-height"]=l.minHeight);let d=n["--persona-components-history-railHeader-background"];d&&(n["--persona-history-rail-header-bg"]=d);let p=n["--persona-components-history-railHeader-border"];p&&(n["--persona-history-rail-header-border"]=p);let u=n["--persona-components-history-railHeader-minHeight"];u&&(n["--persona-history-rail-header-min-height"]=u);for(let[j,$e]of[["margin","margin"],["borderRadius","radius"],["shadow","shadow"],["background","bg"]]){let je=n[`--persona-components-history-overlay-${j}`];je&&(n[`--persona-history-overlay-${$e}`]=je)}for(let[j,$e]of[["background","bg"],["borderRadius","radius"]]){let je=n[`--persona-components-history-menu-${j}`];je&&(n[`--persona-history-menu-${$e}`]=je)}let m=e.components?.history?.motion;if(m){let j=mt=>{if(mt===void 0)return;let Ae=String(mt).trim();return/^\d+(\.\d+)?$/.test(Ae)?`${Ae}ms`:Ae},$e=j(m.enterDurationMs);$e!==void 0&&(n["--persona-history-enter-ms"]=$e);let je=j(m.exitDurationMs);je!==void 0&&(n["--persona-history-exit-ms"]=je),m.enterEasing&&(n["--persona-history-enter-easing"]=m.enterEasing),m.exitEasing&&(n["--persona-history-exit-easing"]=m.exitEasing)}let y=n["--persona-components-history-dangerForeground"];y&&(n["--persona-history-danger-fg"]=y),n["--persona-danger"]=n["--persona-components-history-confirm-dangerBackground"]??n["--persona-palette-colors-error-700"]??"#b42318",n["--persona-danger-fg"]=n["--persona-components-history-confirm-dangerForeground"]??"#ffffff";for(let j of["scrim","shadow"]){let $e=n[`--persona-components-history-confirm-${j}`];$e&&(n[`--persona-history-confirm-${j}`]=$e)}for(let[j,$e]of[["background","background"],["foreground","foreground"],["hintForeground","hint-fg"],["borderRadius","radius"],["fontSize","font-size"],["padding","padding"],["maxWidth","max-width"],["shadow","shadow"]]){let je=n[`--persona-components-tooltip-${j}`];je&&(n[`--persona-tooltip-${$e}`]=je)}e.components?.tooltip?.arrow===!1&&(n["--persona-tooltip-arrow-display"]="none");for(let[j,$e]of[["background","bg"],["border","border"],["hoverBackground","hover-bg"],["hoverForeground","hover-fg"],["borderRadius","radius"]]){let je=n[`--persona-components-messageActions-${j}`];je&&(n[`--persona-message-action-${$e}`]=je)}on(n,[["intro-card-bg","components-introCard-background","=transparent"],["intro-card-radius","components-introCard-borderRadius","=1rem"]]);let h=n["--persona-components-introCard-background"],C=n["--persona-components-introCard-shadow"],S=(!h||h==="transparent"||h==="none")&&(!C||C==="none"),x=n["--persona-components-introCard-padding"]??"1.5rem";n["--persona-intro-card-padding"]=S&&x==="1.5rem"?"1.5rem 0":x,on(n,[["intro-card-shadow","components-introCard-shadow","=none"],["intro-card-border","components-introCard-border","=none"],["input-background","components-input-background","surface"],["input-placeholder","components-input-placeholder","text-muted"],["input-backdrop-filter","components-input-backdropFilter","=none"],["message-user-bg","components-message-user-background","accent"],["message-user-text","components-message-user-text","text-inverse"],["message-user-shadow","components-message-user-shadow","=0 5px 15px rgba(15, 23, 42, 0.08)"],["message-assistant-bg","components-message-assistant-background","surface"],["message-assistant-text","components-message-assistant-text","text"],["message-assistant-border","components-message-assistant-border","border"],["message-assistant-shadow","components-message-assistant-shadow","=0 1px 2px 0 rgb(0 0 0 / 0.05)"],["scroll-to-bottom-bg","components-scrollToBottom-background","button-primary-bg","accent"],["scroll-to-bottom-fg","components-scrollToBottom-foreground","button-primary-fg","text-inverse"],["scroll-to-bottom-border","components-scrollToBottom-border","primary"],["scroll-to-bottom-size","components-scrollToBottom-size","=40px"],["scroll-to-bottom-radius","components-scrollToBottom-borderRadius","button-radius","radius-full","=9999px"],["scroll-to-bottom-shadow","components-scrollToBottom-shadow","palette-shadows-sm","=0 1px 2px 0 rgb(0 0 0 / 0.05)"],["scroll-to-bottom-padding","components-scrollToBottom-padding","=0.5rem 0.875rem"],["scroll-to-bottom-gap","components-scrollToBottom-gap","=0.5rem"],["scroll-to-bottom-font-size","components-scrollToBottom-fontSize","palette-typography-fontSize-sm","=0.875rem"],["scroll-to-bottom-icon-size","components-scrollToBottom-iconSize","=14px"],["tool-bubble-shadow","components-toolBubble-shadow","=0 5px 15px rgba(15, 23, 42, 0.08)"],["reasoning-bubble-shadow","components-reasoningBubble-shadow","=0 5px 15px rgba(15, 23, 42, 0.08)"],["composer-shadow","components-composer-shadow","=none"]]),on(n,[["composer-padding","components-composer-padding","=0.75rem 1rem"],["composer-gap","components-composer-gap","=0.5rem"],["composer-font-size","components-composer-fontSize","=0.875rem"],["composer-line-height","components-composer-lineHeight","=1.25rem"],["composer-control-size","components-composer-controlSize","=40px"],["composer-control-icon-size","components-composer-controlIconSize","=24px"],["motion-duration-fast","components-motion-durationFast","=120ms"],["motion-duration-base","components-motion-durationBase","=200ms"],["motion-easing","components-motion-easing","=cubic-bezier(0.2, 0, 0, 1)"],["composer-border-color","components-composer-borderColor","border","=#e5e7eb"],["composer-overlay-band","components-composer-overlayBand","=transparent"],["scrollbar-thumb","components-scrollbar-thumb","border","=#e5e7eb"],["scrollbar-track","components-scrollbar-track","=transparent"],["md-inline-code-bg","components-markdown-inlineCode-background","container"],["md-inline-code-color","components-markdown-inlineCode-foreground","text"],["md-link-color","components-markdown-link-foreground","accent","=#0f0f0f"]]);let k=n["--persona-components-markdown-heading-h1-fontSize"];k&&(n["--persona-md-h1-size"]=k);let O=n["--persona-components-markdown-heading-h1-fontWeight"];O&&(n["--persona-md-h1-weight"]=O);let $=n["--persona-components-markdown-heading-h2-fontSize"];$&&(n["--persona-md-h2-size"]=$);let T=n["--persona-components-markdown-heading-h2-fontWeight"];T&&(n["--persona-md-h2-weight"]=T);let I=n["--persona-components-markdown-prose-fontFamily"];I&&I!=="inherit"&&(n["--persona-md-prose-font-family"]=I),on(n,[["md-code-block-bg","components-markdown-codeBlock-background","container"],["md-code-block-border-color","components-markdown-codeBlock-borderColor","border"],["md-code-block-text-color","components-markdown-codeBlock-textColor","=inherit"]]),on(n,[["md-code-block-border-radius","components-markdown-codeBlock-borderRadius","radius-md","=0.375rem"]]),on(n,[["md-table-header-bg","components-markdown-table-headerBackground","container"],["md-table-border-color","components-markdown-table-borderColor","border"]]),on(n,[["md-hr-color","components-markdown-hr-color","divider"]]),on(n,[["md-blockquote-border-color","components-markdown-blockquote-borderColor","palette-colors-gray-900"],["md-blockquote-bg","components-markdown-blockquote-background","=transparent"],["md-blockquote-text-color","components-markdown-blockquote-textColor","palette-colors-gray-500"]]),n["--cw-container"]=n["--persona-components-collapsibleWidget-container"]??n["--persona-surface"],n["--cw-surface"]=n["--persona-components-collapsibleWidget-surface"]??n["--persona-surface"],n["--cw-border"]=n["--persona-components-collapsibleWidget-border"]??n["--persona-border"],on(n,[["message-border","components-message-border","border"]]),on(n,[["message-user-padding","components-message-user-padding"],["message-user-max-width","components-message-user-maxWidth"],["message-user-font-size","components-message-user-fontSize"],["message-user-font-family","components-message-user-fontFamily"],["message-user-line-height","components-message-user-lineHeight"],["message-assistant-padding","components-message-assistant-padding"],["message-assistant-max-width","components-message-assistant-maxWidth"],["message-assistant-font-size","components-message-assistant-fontSize"],["message-assistant-font-family","components-message-assistant-fontFamily"],["message-assistant-line-height","components-message-assistant-lineHeight"]]);let A=e.components,N=A?.iconButton;N&&(N.background&&(n["--persona-icon-btn-bg"]=N.background),N.border&&(n["--persona-icon-btn-border"]=N.border),N.color&&(n["--persona-icon-btn-color"]=N.color),N.padding&&(n["--persona-icon-btn-padding"]=N.padding),N.borderRadius&&(n["--persona-icon-btn-radius"]=N.borderRadius),N.hoverBackground&&(n["--persona-icon-btn-hover-bg"]=N.hoverBackground),N.hoverColor&&(n["--persona-icon-btn-hover-color"]=N.hoverColor),N.activeBackground&&(n["--persona-icon-btn-active-bg"]=N.activeBackground),N.activeBorder&&(n["--persona-icon-btn-active-border"]=N.activeBorder));let Q=A?.labelButton;Q&&(Q.background&&(n["--persona-label-btn-bg"]=Q.background),Q.border&&(n["--persona-label-btn-border"]=Q.border),Q.color&&(n["--persona-label-btn-color"]=Q.color),Q.padding&&(n["--persona-label-btn-padding"]=Q.padding),Q.borderRadius&&(n["--persona-label-btn-radius"]=Q.borderRadius),Q.hoverBackground&&(n["--persona-label-btn-hover-bg"]=Q.hoverBackground),Q.fontSize&&(n["--persona-label-btn-font-size"]=Q.fontSize),Q.gap&&(n["--persona-label-btn-gap"]=Q.gap));let ce=A?.toggleGroup;ce&&(ce.gap&&(n["--persona-toggle-group-gap"]=ce.gap),ce.borderRadius&&(n["--persona-toggle-group-radius"]=ce.borderRadius));let Y=A?.artifact;if(Y?.toolbar){let j=Y.toolbar;j.iconHoverColor&&(n["--persona-artifact-toolbar-icon-hover-color"]=j.iconHoverColor),j.iconHoverBackground&&(n["--persona-artifact-toolbar-icon-hover-bg"]=j.iconHoverBackground),j.iconPadding&&(n["--persona-artifact-toolbar-icon-padding"]=j.iconPadding),j.iconBorderRadius&&(n["--persona-artifact-toolbar-icon-radius"]=j.iconBorderRadius),j.iconBorder&&(n["--persona-artifact-toolbar-icon-border"]=j.iconBorder),j.toggleGroupGap&&(n["--persona-artifact-toolbar-toggle-group-gap"]=km(j.toggleGroupGap)),j.toggleBorderRadius&&(n["--persona-artifact-toolbar-toggle-radius"]=j.toggleBorderRadius),j.toggleGroupPadding&&(n["--persona-artifact-toolbar-toggle-group-padding"]=km(j.toggleGroupPadding)),j.toggleGroupBorder&&(n["--persona-artifact-toolbar-toggle-group-border"]=j.toggleGroupBorder),j.toggleGroupBorderRadius&&(n["--persona-artifact-toolbar-toggle-group-radius"]=j.toggleGroupBorderRadius),j.toggleGroupBackground&&(n["--persona-artifact-toolbar-toggle-group-bg"]=bn(e,j.toggleGroupBackground)??j.toggleGroupBackground),j.copyBackground&&(n["--persona-artifact-toolbar-copy-bg"]=j.copyBackground),j.copyBorder&&(n["--persona-artifact-toolbar-copy-border"]=j.copyBorder),j.copyColor&&(n["--persona-artifact-toolbar-copy-color"]=j.copyColor),j.copyBorderRadius&&(n["--persona-artifact-toolbar-copy-radius"]=km(j.copyBorderRadius)),j.copyPadding&&(n["--persona-artifact-toolbar-copy-padding"]=j.copyPadding),j.copyMenuBackground&&(n["--persona-artifact-toolbar-copy-menu-bg"]=j.copyMenuBackground,n["--persona-dropdown-bg"]=n["--persona-dropdown-bg"]??j.copyMenuBackground),j.copyMenuBorder&&(n["--persona-artifact-toolbar-copy-menu-border"]=j.copyMenuBorder,n["--persona-dropdown-border"]=n["--persona-dropdown-border"]??j.copyMenuBorder),j.copyMenuShadow&&(n["--persona-artifact-toolbar-copy-menu-shadow"]=j.copyMenuShadow,n["--persona-dropdown-shadow"]=n["--persona-dropdown-shadow"]??j.copyMenuShadow),j.copyMenuBorderRadius&&(n["--persona-artifact-toolbar-copy-menu-radius"]=j.copyMenuBorderRadius,n["--persona-dropdown-radius"]=n["--persona-dropdown-radius"]??j.copyMenuBorderRadius),j.copyMenuItemHoverBackground&&(n["--persona-artifact-toolbar-copy-menu-item-hover-bg"]=j.copyMenuItemHoverBackground,n["--persona-dropdown-item-hover-bg"]=n["--persona-dropdown-item-hover-bg"]??j.copyMenuItemHoverBackground),j.iconBackground&&(n["--persona-artifact-toolbar-icon-bg"]=j.iconBackground),j.toolbarBorder&&(n["--persona-artifact-toolbar-border"]=j.toolbarBorder)}if(Y?.tab){let j=Y.tab;j.background&&(n["--persona-artifact-tab-bg"]=j.background),j.activeBackground&&(n["--persona-artifact-tab-active-bg"]=j.activeBackground),j.activeBorder&&(n["--persona-artifact-tab-active-border"]=j.activeBorder),j.borderRadius&&(n["--persona-artifact-tab-radius"]=j.borderRadius),j.textColor&&(n["--persona-artifact-tab-color"]=j.textColor),j.hoverBackground&&(n["--persona-artifact-tab-hover-bg"]=j.hoverBackground),j.listBackground&&(n["--persona-artifact-tab-list-bg"]=j.listBackground),j.listBorderColor&&(n["--persona-artifact-tab-list-border-color"]=j.listBorderColor),j.listPadding&&(n["--persona-artifact-tab-list-padding"]=j.listPadding)}if(Y?.pane){let j=Y.pane;if(j.toolbarBackground){let $e=bn(e,j.toolbarBackground)??j.toolbarBackground;n["--persona-artifact-toolbar-bg"]=$e}}if(Y?.card){let j=Y.card;j.background&&(n["--persona-artifact-card-bg"]=j.background),j.border&&(n["--persona-artifact-card-border"]=j.border),j.borderRadius&&(n["--persona-artifact-card-radius"]=j.borderRadius),j.hoverBackground&&(n["--persona-artifact-card-hover-bg"]=j.hoverBackground),j.hoverBorderColor&&(n["--persona-artifact-card-hover-border"]=j.hoverBorderColor)}if(Y?.inline){let j=Y.inline;j.background&&(n["--persona-artifact-inline-bg"]=bn(e,j.background)??j.background),j.border&&(n["--persona-artifact-inline-border"]=j.border),j.borderRadius&&(n["--persona-artifact-inline-radius"]=j.borderRadius),j.chromeBackground&&(n["--persona-artifact-inline-chrome-bg"]=bn(e,j.chromeBackground)??j.chromeBackground),j.chromeBorder&&(n["--persona-artifact-inline-chrome-border"]=bn(e,j.chromeBorder)??j.chromeBorder),j.titleColor&&(n["--persona-artifact-inline-title-color"]=bn(e,j.titleColor)??j.titleColor),j.mutedColor&&(n["--persona-artifact-inline-muted-color"]=bn(e,j.mutedColor)??j.mutedColor),j.frameHeight&&(n["--persona-artifact-inline-frame-height"]=j.frameHeight)}let E=A?.code;E&&(E.keywordColor&&(n["--persona-code-keyword-color"]=E.keywordColor),E.stringColor&&(n["--persona-code-string-color"]=E.stringColor),E.commentColor&&(n["--persona-code-comment-color"]=E.commentColor),E.numberColor&&(n["--persona-code-number-color"]=E.numberColor),E.tagColor&&(n["--persona-code-tag-color"]=E.tagColor),E.attrColor&&(n["--persona-code-attr-color"]=E.attrColor),E.propertyColor&&(n["--persona-code-property-color"]=E.propertyColor),E.lineNumberColor&&(n["--persona-code-line-number-color"]=E.lineNumberColor),E.gutterBorderColor&&(n["--persona-code-gutter-border-color"]=E.gutterBorderColor),E.background&&(n["--persona-code-bg"]=bn(e,E.background)??E.background));let B=n["--persona-surface"],H=n["--persona-container"],L=n["--persona-palette-colors-gray-100"]??"#f3f4f6",te=n["--persona-palette-colors-gray-200"]??"#e5e7eb",K=n["--persona-palette-colors-gray-300"]??"#d1d5db",me=!H||H===B,de=CP(B??n["--persona-background"]),he=me&&de!==void 0&&de<wP,We=he?"rgba(255, 255, 255, 0.08)":L,Oe=he?"rgba(255, 255, 255, 0.12)":te,Se=he?"rgba(255, 255, 255, 0.16)":K,Xe=me?We:H,we=me?Oe:H;return n["--persona-icon-btn-hover-bg"]=n["--persona-icon-btn-hover-bg"]??Xe,n["--persona-icon-btn-active-bg"]=n["--persona-icon-btn-active-bg"]??we,me&&(n["--persona-icon-btn-active-border"]=n["--persona-icon-btn-active-border"]??Se),n["--persona-label-btn-hover-bg"]=n["--persona-label-btn-hover-bg"]??Xe,n["--persona-artifact-tab-hover-bg"]=n["--persona-artifact-tab-hover-bg"]??Xe,n["--persona-artifact-card-hover-bg"]=n["--persona-artifact-card-hover-bg"]??Xe,n}var gw={header:"Widget header bar",messages:"Message list area","user-message":"User message bubble","assistant-message":"Assistant message bubble",composer:"Footer / composer area",container:"Main widget container","artifact-pane":"Artifact sidebar","artifact-toolbar":"Artifact toolbar","artifact-inline":"Inline artifact block","artifact-inline-chrome":"Inline artifact title bar"};var xP={colors:{primary:{50:"#ffffff",100:"#f5f5f5",200:"#d4d4d4",300:"#a3a3a3",400:"#737373",500:"#171717",600:"#0f0f0f",700:"#0a0a0a",800:"#050505",900:"#030303",950:"#000000"},secondary:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},accent:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},success:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d"},warning:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12"},error:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d"}}},SP={components:{button:{ghost:{hoverBackground:"rgba(255, 255, 255, 0.08)"}},markdown:{link:{foreground:"palette.colors.primary.300"}},history:{dangerForeground:"#f87171",confirm:{dangerBackground:"palette.colors.error.600",scrim:"rgba(0, 0, 0, 0.6)"}}}},mw=e=>{if(!(!e||typeof e!="object"||Array.isArray(e)))return e},wl=()=>typeof document<"u"&&document.documentElement.classList.contains("dark")||typeof window<"u"&&window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light",AP=e=>{let t=e?.colorScheme??"light";return t==="light"?"light":t==="dark"?"dark":wl()},np=e=>AP(e),MP=e=>Cl(e),EP=e=>{let t=Ji(SP,e??{})??{};return Cl({...t,palette:{...t.palette,colors:{...xP.colors,...t.palette?.colors}}},{validate:!1})},ns=e=>{let t=np(e),n=mw(e?.theme),o=mw(e?.darkTheme);return t==="dark"?EP(Ji(n??{},o??{})):MP(n)},TP=e=>tp(e),Gs=(e,t)=>{let n=ns(t),o=TP(n);for(let[r,s]of Object.entries(o))e.style.setProperty(r,s);e.setAttribute("data-persona-color-scheme",np(t))},ta=e=>{let t=[];if(typeof document<"u"&&typeof MutationObserver<"u"){let n=new MutationObserver(()=>{e(wl())});n.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),t.push(()=>n.disconnect())}if(typeof window<"u"&&window.matchMedia){let n=window.matchMedia("(prefers-color-scheme: dark)"),o=()=>e(wl());n.addEventListener?(n.addEventListener("change",o),t.push(()=>n.removeEventListener("change",o))):n.addListener&&(n.addListener(o),t.push(()=>n.removeListener(o)))}return()=>{t.forEach(n=>n())}};var Sr=require("lucide");var os=(e,t)=>e?.layout?.contentMaxWidth??(t?e?.launcher?.composerBar?.contentMaxWidth??"720px":"768px");var op="24px",Wm=(e,t)=>t||e?.composer?.placement!=="overlay"?"block":"overlay",xl=e=>{if(typeof e!="string")return null;let t=/^\s*(\d+(?:\.\d+)?)\s*%\s*$/.exec(e);if(!t)return null;let n=Number(t[1])/100;return n>0&&n<1?n:null},fw=e=>Math.max(0,Math.round(e.columnHeight*(1-e.fraction))-e.footerHeight);var hw=null;var Om=()=>{if(hw!==null)return hw;if(typeof navigator>"u")return!1;let t=navigator.userAgentData?.platform??navigator.platform??"";return/mac|iphone|ipad|ipod/i.test(t)},PP="ArrowUp ArrowDown ArrowLeft ArrowRight PageUp PageDown Space",rp=(e,t)=>{console.warn(`[persona] ${e} shortcut: ${t}`)},sp=e=>{let t=e.toLowerCase().split("+").map(r=>r.trim()),n=t.pop(),o={key:n,mod:!1,shift:!1,alt:!1};for(let r of t)if(r==="mod"||r==="cmd"||r==="ctrl")o.mod=!0;else if(r==="shift")o.shift=!0;else if(r==="alt"||r==="option")o.alt=!0;else return rp("unknown modifier in",e),null;return!o.mod||o.shift&&o.alt||/^(enter|esc(ape)?)$/.test(n)||!/^([^+\s]|[a-z]{2,12})$/.test(n)?(rp("unsupported",e),null):(n==="space"&&(o.key=" "),o)},kP=e=>PP.split(" ").find(t=>t.toLowerCase()===e)??(e===" "?"Space":e.length===1?e.toUpperCase():e[0].toUpperCase()+e.slice(1)),yw=(e,t)=>{let n=sp(e);if(!n)return"";let o=Om(),r=kP(n.key);if(!t&&o)return`${n.alt?"\u2325":""}${n.shift?"\u21E7":""}\u2318${r}`;let s=[t?o?"Meta":"Control":"Ctrl"];return n.alt&&s.push("Alt"),n.shift&&s.push("Shift"),s.push(r),s.join("+")},ip=e=>yw(e,!1),Sl=e=>yw(e,!0),LP=(e,t)=>t.key?.toLowerCase()===e.key&&(Om()?t.metaKey:t.ctrlKey)===e.mod&&!(Om()?t.ctrlKey:t.metaKey)&&t.shiftKey===e.shift&&t.altKey===e.alt,IP=e=>{if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"||e.isContentEditable},bw=e=>{let t=new Map,n=e?.ownerDocument??(typeof document<"u"?document:null),o=(s,a)=>{if((s.scope??"widget")==="page")return!0;if(!e)return!1;let l=a.composedPath?.();return l?.length?l.includes(e):e.contains(a.target)},r=s=>{if(s.isComposing||!t.size)return;let a=s.composedPath?.()[0]??s.target;for(let l of t.values())if(LP(l.parsed,s)&&l.when?.()!==!1&&o(l,s)&&!(!l.allowInInput&&IP(a))){s.preventDefault();try{l.run(s)}catch(d){rp(`${l.id} threw on`,l.combo),console.warn(d)}return}};return n?.addEventListener("keydown",r),{register(s){let a=sp(s.combo);if(!a)return()=>{};let l=`${a.mod?"m":""}${a.shift?"s":""}${a.alt?"a":""}${a.key}`,d=t.get(l);return d?(rp(`${d.id} already owns`,s.combo),()=>{}):(t.set(l,{...s,parsed:a}),s.element?.setAttribute("aria-keyshortcuts",Sl(s.combo)),()=>{t.get(l)?.id===s.id&&t.delete(l),s.element?.removeAttribute("aria-keyshortcuts")})},destroy(){t.clear(),n?.removeEventListener("keydown",r)}}};var vw=require("idiomorph"),ap=(e,t,n={})=>{let{preserveTypingAnimation:o=!0}=n;vw.Idiomorph.morph(e,t.innerHTML,{morphStyle:"innerHTML",callbacks:{beforeNodeMorphed(r,s){if(r instanceof HTMLElement&&o){if(r.classList.contains("persona-animate-typing")||r.hasAttribute("data-preserve-runtime"))return!1;if(r.hasAttribute("data-tool-elapsed"))return s instanceof HTMLElement&&s.getAttribute("data-tool-elapsed")===r.getAttribute("data-tool-elapsed")?!1:void 0;if(r.hasAttribute("data-preserve-animation")){if(s instanceof HTMLElement&&!s.hasAttribute("data-preserve-animation"))return;if(s instanceof HTMLElement&&s.hasAttribute("data-preserve-animation")){let a=r.textContent??"",l=s.textContent??"";if(a!==l)return}return!1}}}}})};var Cw=e=>e.replace(/^\n+/,"").replace(/\s+$/,"");var Bm={index:-1,draft:""};function ww(e){let{direction:t,history:n,currentValue:o,atStart:r,state:s}=e,a=s.index!==-1;if(n.length===0)return{handled:!1,state:s};if(t==="up"){if(!a&&!r)return{handled:!1,state:s};if(!a){let l=n.length-1;return{handled:!0,value:n[l],state:{index:l,draft:o}}}if(s.index>0){let l=s.index-1;return{handled:!0,value:n[l],state:{index:l,draft:s.draft}}}return{handled:!0,state:s}}if(!a)return{handled:!1,state:s};if(s.index<n.length-1){let l=s.index+1;return{handled:!0,value:n[l],state:{index:l,draft:s.draft}}}return{handled:!0,value:s.draft,state:{index:-1,draft:s.draft}}}function xw(e,t){return[e.id,e.role,e.content?.length??0,e.content?.slice(-32)??"",e.streaming?"1":"0",e.voiceProcessing?"1":"0",e.variant??"",e.rawContent?.length??0,e.llmContent?.length??0,e.approval?.status??"",e.toolCall?.status??"",e.toolCall?.name??"",e.toolCall?.chunks?.length??0,e.toolCall?.chunks?.[e.toolCall.chunks.length-1]?.slice(-32)??"",typeof e.toolCall?.args=="string"?e.toolCall.args.length:e.toolCall?.args?JSON.stringify(e.toolCall.args).length:0,e.reasoning?.chunks?.length??0,e.reasoning?.chunks?.[e.reasoning.chunks.length-1]?.length??0,e.reasoning?.chunks?.[e.reasoning.chunks.length-1]?.slice(-32)??"",e.contentParts?.length??0,e.stopReason??"",t].join("\0")}function Sw(){return new Map}function Aw(e,t,n){let o=e.get(t);return o&&o.fingerprint===n?o.wrapper:null}function Mw(e,t,n,o){e.set(t,{fingerprint:n,wrapper:o})}function Ew(e,t){for(let n of e.keys())t.has(n)||e.delete(n)}function Tw(e){return e.role!=="assistant"||e.variant==="tool"||e.variant==="reasoning"?!1:e.variant==="approval"?!0:!!(e.content?.trim()||e.rawContent?.trim()||e.contentParts?.length)}function Pw(e=!0){let t=e;return{isFollowing:()=>t,pause:()=>t?(t=!1,!0):!1,resume:()=>t?!1:(t=!0,!0)}}function Vo(e){return Math.max(0,e.scrollHeight-e.clientHeight)}function Qs(e,t){return Vo(e)-e.scrollTop<=t}function kw(e){let{following:t,currentScrollTop:n,lastScrollTop:o,nearBottom:r,userScrollThreshold:s,isAutoScrolling:a=!1,pauseOnUpwardScroll:l=!1,pauseWhenAwayFromBottom:d=!0,resumeRequiresDownwardScroll:p=!1}=e,u=n-o;return a||Math.abs(u)<s?{action:"none",delta:u,nextLastScrollTop:n}:!t&&r&&(!p||u>0)?{action:"resume",delta:u,nextLastScrollTop:n}:t&&l&&u<0?{action:"pause",delta:u,nextLastScrollTop:n}:t&&d&&!r?{action:"pause",delta:u,nextLastScrollTop:n}:{action:"none",delta:u,nextLastScrollTop:n}}function Lw(e){let{following:t,deltaY:n,nearBottom:o=!1,resumeWhenNearBottom:r=!1}=e;return t&&n<0?"pause":!t&&r&&n>0&&o?"resume":"none"}function Iw(e,t){return!e||e.isCollapsed?!1:t.contains(e.anchorNode)||t.contains(e.focusNode)}function _m(e){let t=Math.max(0,e.anchorOffsetTop-e.topOffset),n=Math.max(0,t+e.viewportHeight-e.contentHeight+(e.slack??0));return{targetScrollTop:t,spacerHeight:n}}function Rw(e){let t=Math.max(0,e.currentContentHeight-e.contentHeightAtAnchor);return Math.max(0,e.initialSpacerHeight-t)}var Al={type:"none",placeholder:"none",speed:120,duration:1800,buffer:"none"},RP=["pre","code","a","script","style"],lp=e=>({type:e?.type??Al.type,placeholder:e?.placeholder??Al.placeholder,speed:e?.speed??Al.speed,duration:e?.duration??Al.duration,buffer:e?.buffer??Al.buffer}),Ww=[{name:"typewriter",containerClass:"persona-stream-typewriter",wrap:"char",useCaret:!0},{name:"pop-bubble",bubbleClass:"persona-stream-pop",wrap:"none"},{name:"letter-rise",containerClass:"persona-stream-letter-rise",wrap:"char"},{name:"word-fade",containerClass:"persona-stream-word-fade",wrap:"word"}],Ml=new Map;for(let e of Ww)Ml.set(e.name,e);var Ow=["wipe","glyph-cycle"],El=e=>{Ml.set(e.name,e)},Bw=e=>{Ww.some(t=>t.name===e)||Ml.delete(e)},_w=()=>Array.from(Ml.keys()),Tl=(e,t)=>e==="none"?null:t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]??null:Ml.get(e)??null,cp=(e,t,n,o,r)=>{if(!r)return e;if(n?.bufferContent)return n.bufferContent(e,o);if(!e)return e;if(t==="word"){let s=e.search(/\s(?=\S*$)/);return s<0?"":e.slice(0,s)}if(t==="line"){let s=e.lastIndexOf(`
28
+ `);return s<0?"":e.slice(0,s)}return e},HP=(e,t,n,o)=>{let r=e.createElement("span");return r.className="persona-stream-char",r.id=`stream-c-${n}-${o}`,r.style.setProperty("--char-index",String(o)),r.textContent=t,r},WP=(e,t,n,o)=>{let r=e.createElement("span");return r.className="persona-stream-word",r.id=`stream-w-${n}-${o}`,r.style.setProperty("--word-index",String(o)),r.textContent=t,r},Dm=/\s/,OP=(e,t)=>{let n=e.parentNode;for(;n;){if(n.nodeType===1){let o=n;if(t.has(o.tagName.toLowerCase()))return!0}n=n.parentNode}return!1},BP=(e,t,n)=>{let o=e.ownerDocument,r=e.parentNode;if(!o||!r)return;let s=e.nodeValue??"";if(!s)return;let a=o.createDocumentFragment(),l=0;for(;l<s.length;)if(Dm.test(s[l])){let d=l;for(;d<s.length&&Dm.test(s[d]);)d+=1;a.appendChild(o.createTextNode(s.slice(l,d))),l=d}else{let d=o.createElement("span");d.className="persona-stream-word-group";let p=l;for(;p<s.length&&!Dm.test(s[p]);)d.appendChild(HP(o,s[p],t,n.value)),n.value+=1,p+=1;a.appendChild(d),l=p}r.replaceChild(a,e)},_P=(e,t,n)=>{let o=e.ownerDocument,r=e.parentNode;if(!o||!r)return;let s=e.nodeValue??"";if(!s)return;let a=o.createDocumentFragment(),l=s.split(/(\s+)/);for(let d of l)d&&(/^\s+$/.test(d)?a.appendChild(o.createTextNode(d)):(a.appendChild(WP(o,d,t,n.value)),n.value+=1));r.replaceChild(a,e)},Pl=(e,t,n,o)=>{if(!e||typeof document>"u")return e;let r=document.createElement("div");r.innerHTML=e;let s=new Set((o?.skipTags??RP).map(m=>m.toLowerCase())),a=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null),l=[],d=a.nextNode();for(;d;)OP(d,s)||l.push(d),d=a.nextNode();let p={value:o?.startIndex??0},u=t==="char"?BP:_P;for(let m of l)u(m,n,p);return r.innerHTML},dp=(e=document)=>{let t=e.createElement("span");return t.className="persona-stream-caret",t.setAttribute("aria-hidden","true"),t.setAttribute("data-preserve-animation","stream-caret"),t},kl=(e=document)=>{let t=e.createElement("div");t.className="persona-stream-skeleton",t.setAttribute("data-preserve-animation","stream-skeleton"),t.setAttribute("aria-hidden","true");let n=e.createElement("div");return n.className="persona-stream-skeleton-line",t.appendChild(n),t},Hw=new WeakMap,DP=(e,t)=>{if(!e.styles)return;let n=Hw.get(t);if(n||(n=new Set,Hw.set(t,n)),n.has(e.name)){let s=e.name.replace(/["\\]/g,"\\$&");if(t.querySelector(`style[data-persona-animation="${s}"]`))return;n.delete(e.name)}n.add(e.name);let r=(t instanceof ShadowRoot?t.ownerDocument:t.ownerDocument??document).createElement("style");r.setAttribute("data-persona-animation",e.name),r.textContent=e.styles,t.appendChild(r)},Nm=new WeakMap,NP=(e,t)=>{if(!e.onAttach)return;let n=Nm.get(t);if(n||(n=new Map,Nm.set(t,n)),n.has(e.name))return;let o=e.onAttach(t);n.set(e.name,o)},Dw=e=>{let t=Nm.get(e);if(t){for(let n of t.values())typeof n=="function"&&n();t.clear()}},Ll=(e,t)=>{DP(e,t),NP(e,t)};var{setLoader:IW,load:FP}=bt({fallbackImport:()=>import("@runtypelabs/persona/animations-extra")});var Nw=FP;function Fm(e,t=sn){let n=e.style.position,o=e.style.zIndex,r=e.style.isolation,s=getComputedStyle(e),a=s.position==="static"||s.position==="";return a&&(e.style.position="relative"),e.style.zIndex=String(t),e.style.isolation="isolate",()=>{a&&(e.style.position=n),e.style.zIndex=o,e.style.isolation=r}}var Il=0,rs=null;function $m(e=document){if(Il++,Il===1){let n=e.body,r=(e.defaultView??window).scrollY||e.documentElement.scrollTop;rs={originalOverflow:n.style.overflow,originalPosition:n.style.position,originalTop:n.style.top,originalWidth:n.style.width,scrollY:r},n.style.overflow="hidden",n.style.position="fixed",n.style.top=`-${r}px`,n.style.width="100%"}let t=!1;return()=>{if(!t&&(t=!0,Il=Math.max(0,Il-1),Il===0&&rs)){let n=e.body,o=e.defaultView??window;n.style.overflow=rs.originalOverflow,n.style.position=rs.originalPosition,n.style.top=rs.originalTop,n.style.width=rs.originalWidth,o.scrollTo(0,rs.scrollY),rs=null}}}var Rl={side:"right",width:"420px",animate:!0,reveal:"resize",maxHeight:"100dvh"},At=e=>(e?.launcher?.mountMode??"floating")==="docked",ss=e=>(e?.launcher?.mountMode??"floating")==="composer-bar",Rn=e=>{let t=e?.launcher?.dock;return{side:t?.side??Rl.side,width:t?.width??Rl.width,animate:t?.animate??Rl.animate,reveal:t?.reveal??Rl.reveal,maxHeight:t?.maxHeight??Rl.maxHeight}};var $w=require("lucide");var Um=e=>e==="followUp"?"follow-up":e,jm=(e,t=0)=>{if(typeof e=="string"){let r=e.trim();return r?{id:r,label:r,prompt:r,emphasis:"default"}:null}let n=e.label.trim();if(!n)return null;let o=e.prompt?.trim()||n;return{id:e.id?.trim()||o||`suggestion-${t}`,label:n,prompt:o,description:e.description?.trim()||void 0,icon:e.icon,iconColor:e.iconColor?.trim()||void 0,behavior:e.behavior,emphasis:e.emphasis??"default"}},$P=e=>{switch(e){case"serif":return'Georgia, "Times New Roman", Times, serif';case"mono":return'"Courier New", Courier, "Lucida Console", Monaco, monospace';default:return'-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif'}},Fw=new WeakSet,UP=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,jP=e=>{UP()||e.forEach((t,n)=>{typeof t.animate=="function"&&t.animate([{opacity:"0",transform:"translateY(4px)"},{opacity:"1",transform:"none"}],{duration:250,delay:n*60,easing:"ease-out",fill:"backwards"})})},qm=e=>{var $,T,I;let{item:t,index:n,surface:o,source:r,variant:s,streaming:a,config:l,plugins:d,chipsConfig:p,session:u,getTextarea:m,eventTarget:y,submitPrompt:h}=e,C=o==="followUp",S=t.behavior,x=()=>{if(u.isStreaming())return;let A={suggestion:{...t},surface:o,source:r,behavior:S},N=y.dispatchEvent(new CustomEvent("persona:suggestion:selected",{detail:A,bubbles:!0,composed:!0,cancelable:!0}));if(C&&y.dispatchEvent(new CustomEvent("persona:suggestReplies:selected",{detail:{suggestion:t.prompt},bubbles:!0,composed:!0})),!N)return;for(let ce of d)if(ce.onSuggestionSelect?.({suggestion:{...t},surface:o,source:r,variant:s,config:l})===!1)return;let Q=m();if(S==="fill"){Q.value=t.prompt,Q.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),Q.focus();return}if(h){h(t.prompt);return}Q.value="",u.sendMessage(t.prompt)},k=()=>{let A=M("button",`persona-suggestion persona-suggestion--${s}`);if(A.type="button",A.disabled=a,A.dataset.suggestionId=t.id,A.dataset.emphasis=t.emphasis,A.dataset.behavior=S,s==="chip"&&(p?.fontFamily&&(A.style.fontFamily=$P(p.fontFamily)),p?.fontWeight&&(A.style.fontWeight=p.fontWeight),p?.paddingX&&(A.style.paddingLeft=p.paddingX,A.style.paddingRight=p.paddingX),p?.paddingY&&(A.style.paddingTop=p.paddingY,A.style.paddingBottom=p.paddingY)),t.icon){let Q=ge(t.icon,"var(--persona-suggestion-icon-size)","currentColor",1.8);Q&&(Q.classList.add("persona-suggestion__icon"),t.iconColor&&(Q.style.color=t.iconColor),A.appendChild(Q))}let N=M("span","persona-suggestion__copy");if(N.appendChild(X("span",{className:"persona-suggestion__label",text:t.label})),t.description&&s!=="chip"&&N.appendChild(X("span",{className:"persona-suggestion__description",text:t.description})),A.appendChild(N),s!=="chip"){let Q=Wt($w.ArrowRight,16,"currentColor",1.8);Q&&(Q.classList.add("persona-suggestion__arrow"),A.appendChild(Q))}return A.addEventListener("click",x),A},O=null;for(let A of d)if(A.renderSuggestion&&(O=A.renderSuggestion({suggestion:{...t},index:n,surface:o,source:r,variant:s,streaming:a,config:l,defaultRenderer:k,select:x}),O))break;return O??(O=k()),($=O.dataset).suggestionId||($.suggestionId=t.id),(T=O.dataset).behavior||(T.behavior=S),(I=O.dataset).emphasis||(I.emphasis=t.emphasis),O instanceof HTMLButtonElement||O.setAttribute("aria-disabled",a?"true":"false"),O},Hl=e=>{let t=[],n=[],o=null,r=null,s=()=>{e.removeAttribute("data-scroll-left"),e.removeAttribute("data-scroll-right")},a=()=>{if(r=null,e.hidden||e.dataset.variant!=="chip"||e.dataset.overflow!=="scroll"){s();return}let u=Math.max(0,e.scrollWidth-e.clientWidth);if(u<=1){s();return}let m=getComputedStyle(e).direction==="rtl",y=Math.min(u,Math.max(0,Math.abs(e.scrollLeft))),h=4,C=y<=h,S=y>=u-h,x=m?!S:!C,k=m?!C:!S;e.toggleAttribute("data-scroll-left",x),e.toggleAttribute("data-scroll-right",k)},l=()=>{if(r!==null||typeof requestAnimationFrame!="function"){typeof requestAnimationFrame!="function"&&a();return}r=requestAnimationFrame(a)};e.addEventListener("scroll",l,{passive:!0});let d=typeof ResizeObserver=="function"?new ResizeObserver(l):null;return d?.observe(e),{buttons:t,elements:n,destroy:()=>{e.removeEventListener("scroll",l),d?.disconnect(),r!==null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(r),r=null},render:(u,m,y,h,C,S)=>{e.replaceChildren(),t.length=0,n.length=0;let x=S?.source??"config",k=S?.surface??(x==="config"?"starter":"followUp"),O=k==="followUp",$=S?.variant??"chip",T=S?.behavior??"send",I=S?.overflow??"wrap",A=S?.config??{},N=S?.plugins??[],Q=typeof S?.maxItems=="number"?Math.max(0,Math.floor(S.maxItems)):void 0,ce=O?"followUps":"starters";!Fw.has(A)&&A.debug===!0&&$!=="chip"&&A.suggestions?.[ce]?.overflow!==void 0&&(Fw.add(A),console.info(`[persona] suggestions.${ce}.overflow applies to the "chip" variant only; the "${$}" variant manages its own stacking.`));let Y=K=>K.map(jm).filter(me=>me!==null).map(me=>({...me,behavior:me.behavior??T})),E=Y(u??[]);N.forEach(K=>{K.transformSuggestions&&(E=Y(K.transformSuggestions({suggestions:E.map(me=>({...me})),surface:k,source:x,config:A})))});let B=Q===void 0?E:E.slice(0,Q);if(!B.length){e.hidden=!0,o=null,s();return}if(!O&&(h??m.getMessages()).some(me=>me.role==="user")){e.hidden=!0,o=null;return}e.hidden=!1,e.classList.add("persona-suggestions"),e.dataset.personaSuggestionSurface=Um(k),e.dataset.variant=$,e.dataset.overflow=I;let H=document.createDocumentFragment(),L=m.isStreaming();B.forEach((K,me)=>{let de=qm({item:K,index:me,surface:k,source:x,variant:$,streaming:L,config:A,plugins:N,chipsConfig:C,session:m,getTextarea:()=>y,eventTarget:e,submitPrompt:S?.submitPrompt});H.appendChild(de),n.push(de),[...de instanceof HTMLButtonElement?[de]:[],...Array.from(de.querySelectorAll("button"))].forEach(We=>{t.includes(We)||(We.disabled=L,t.push(We))})}),e.appendChild(H),a(),l();let te=JSON.stringify({normalized:B,surface:k,variant:$,source:x});te!==o&&(o=te,jP(n),e.dispatchEvent(new CustomEvent("persona:suggestion:shown",{detail:{suggestions:B.map(K=>({...K})),surface:k,source:x,variant:$},bubbles:!0,composed:!0})),O&&e.dispatchEvent(new CustomEvent("persona:suggestReplies:shown",{detail:{suggestions:B.map(K=>K.prompt)},bubbles:!0,composed:!0})))}}};var Kn={"bottom-right":"persona-bottom-6 persona-right-6","bottom-left":"persona-bottom-6 persona-left-6","top-right":"persona-top-6 persona-right-6","top-left":"persona-top-6 persona-left-6"};var qP="persona-header-control",zP="persona-header-control--glyph",VP="persona-header-control--sparse",KP=20,GP={x:[1.4,1.05]},Uw="persona-relative persona-ml-auto persona-inline-flex persona-items-center persona-justify-center",QP="persona-relative persona-ml-auto persona-clear-chat-button-wrapper",pp=(e,t,n={})=>{let{iconSize:o,iconText:r}=n,[s,a]=GP[t]??[1,1.5],l=!o;e.classList.toggle(zP,l),e.classList.toggle(VP,l&&s!==1);let d=parseFloat(o??"")||KP,p=ge(t,`${Math.round(d*s)}px`,"currentColor",a);p?(p.style.display="block",l||(p.style.strokeWidth=`calc(var(--persona-components-header-controlStrokeWidth, 1.5) * ${Number((a/1.5).toFixed(4))})`),e.replaceChildren(p)):r&&(e.textContent=r)},Ys=e=>{let{ariaLabel:t,tooltip:n=!0,tooltipHint:o,iconName:r,iconText:s,wrapperClassName:a=Uw,size:l,iconSize:d,color:p,backgroundColor:u,borderWidth:m,borderColor:y,borderRadius:h,paddingX:C,paddingY:S,hidden:x,extraClassName:k,attrs:O}=e,$=M("div",a),T=!!(m||y),I=X("button",{className:hn(qP,"persona-inline-flex persona-items-center persona-justify-center persona-cursor-pointer",!u&&"persona-bg-transparent hover:persona-bg-gray-100",!T&&"persona-border-none",!h&&"persona-rounded-full",k),attrs:{type:"button","aria-label":t,...O},style:{width:l,height:l,minWidth:l,minHeight:l,display:x?"none":void 0,color:p||vn.actionIconColor,backgroundColor:u,border:T?`${m||"0px"} solid ${y||"transparent"}`:void 0,borderRadius:h,paddingLeft:C,paddingRight:C,paddingTop:S,paddingBottom:S}});return r?pp(I,r,{iconSize:d,iconText:s}):s&&(I.textContent=s),$.appendChild(I),nn({anchor:I,trigger:$,text:()=>I.getAttribute("aria-label")??t,hint:o,enabled:n}),{button:I,wrapper:$}},na=(e,t={})=>{let{showClose:n=!0,wrapperClassName:o=Uw,buttonSize:r,iconSize:s}=t,a=e?.launcher??{},l=a.closeButtonTooltipText??"Close chat",d=a.closeButtonShowTooltip??!0,{button:p,wrapper:u}=Ys({ariaLabel:l,tooltip:d,iconName:a.closeButtonIconName??"x",iconText:a.closeButtonIconText??"\xD7",wrapperClassName:o,size:r??a.closeButtonSize,iconSize:s,color:a.closeButtonColor,backgroundColor:a.closeButtonBackgroundColor,borderWidth:a.closeButtonBorderWidth,borderColor:a.closeButtonBorderColor,borderRadius:a.closeButtonBorderRadius,paddingX:a.closeButtonPaddingX,paddingY:a.closeButtonPaddingY,hidden:!n});return{button:p,wrapper:u}},oa=(e,t={})=>{let{wrapperClassName:n=QP,buttonSize:o,iconSize:r}=t,a=(e?.launcher??{}).clearChat??{},l=a.tooltipText??"Clear chat",d=a.showTooltip??!0,{button:p,wrapper:u}=Ys({ariaLabel:l,tooltip:d,iconName:a.iconName??"refresh-cw",wrapperClassName:n,size:o??a.size,iconSize:r,color:a.iconColor,backgroundColor:a.backgroundColor,borderWidth:a.borderWidth,borderColor:a.borderColor,borderRadius:a.borderRadius,paddingX:a.paddingX,paddingY:a.paddingY});return{button:p,wrapper:u}};var vn={titleColor:"var(--persona-header-title-fg, var(--persona-primary, #0f0f0f))",subtitleColor:"var(--persona-header-subtitle-fg, var(--persona-text-muted, var(--persona-muted, #9ca3af)))",actionIconColor:"var(--persona-header-action-icon-fg, var(--persona-muted, #9ca3af))",minHeight:"var(--persona-header-min-height, auto)"},zm={fontFamily:"var(--persona-components-header-title-fontFamily, inherit)",fontSize:"var(--persona-components-header-title-fontSize, 1rem)",fontWeight:"var(--persona-components-header-title-fontWeight, 600)",lineHeight:"var(--persona-components-header-title-lineHeight, 1.5rem)",letterSpacing:"var(--persona-components-header-title-letterSpacing, normal)"},YP={fontFamily:"var(--persona-components-header-subtitle-fontFamily, inherit)",fontSize:"var(--persona-components-header-subtitle-fontSize, 0.75rem)",fontWeight:"var(--persona-components-header-subtitle-fontWeight, inherit)",lineHeight:"var(--persona-components-header-subtitle-lineHeight, 1rem)",letterSpacing:"var(--persona-components-header-subtitle-letterSpacing, normal)"},vr=e=>{let{config:t,showClose:n=!0}=e,o=X("div",{className:"persona-widget-header persona-flex persona-items-center persona-gap-3 persona-px-6 persona-py-5",attrs:{"data-persona-theme-zone":"header"},style:{minHeight:vn.minHeight,backgroundColor:"var(--persona-header-bg, var(--persona-surface, #ffffff))",borderBottomColor:"var(--persona-header-border, var(--persona-divider, #f1f5f9))",boxShadow:"var(--persona-header-shadow, none)",borderBottom:"var(--persona-header-border-bottom, 1px solid var(--persona-header-border, var(--persona-divider, #f1f5f9)))"}}),r=t?.launcher??{},s=r.headerIconSize??"48px",a=r.closeButtonPlacement??"inline",l=r.headerIconHidden??!1,d=r.headerIconName,p=X("div",{className:"persona-flex persona-items-center persona-justify-center persona-rounded-xl persona-text-xl",style:{height:s,width:s,backgroundColor:"var(--persona-header-icon-bg, var(--persona-primary, #0f0f0f))",color:"var(--persona-header-icon-fg, var(--persona-text-inverse, #ffffff))"}});if(!l)if(d){let I=parseFloat(s)||24,A=ge(d,I*.6,"currentColor",1);A?p.replaceChildren(A):p.textContent=t?.launcher?.agentIconText??"\u{1F4AC}"}else if(t?.launcher?.iconUrl){let I=M("img");I.src=t.launcher.iconUrl,I.alt="",I.className="persona-rounded-xl persona-object-cover",I.style.height=s,I.style.width=s,p.replaceChildren(I)}else p.textContent=t?.launcher?.agentIconText??"\u{1F4AC}";let u=M("div","persona-flex persona-flex-col persona-flex-1 persona-min-w-0"),m=X("span",{className:"persona-text-base persona-font-semibold",text:t?.launcher?.title??"Chat Assistant",style:{color:vn.titleColor,...zm}}),y=X("span",{className:"persona-text-xs",text:t?.launcher?.subtitle??"Here to help you get answers fast",style:{color:vn.subtitleColor,...YP}});u.append(m,y),l?o.append(u):o.append(p,u);let h=r.clearChat??{},C=h.enabled??!0,S=h.placement??"inline",x=null,k=null;if(C){let A=oa(t,{wrapperClassName:S==="top-right"?"persona-absolute persona-top-4 persona-z-50":"persona-relative persona-ml-auto persona-clear-chat-button-wrapper"});x=A.button,k=A.wrapper,S==="top-right"&&(k.style.right="48px"),S==="inline"&&o.appendChild(k)}let O=a==="top-right"?"persona-absolute persona-top-4 persona-right-4 persona-z-50":C&&S==="inline"?"persona-relative persona-inline-flex persona-items-center persona-justify-center":"persona-relative persona-ml-auto persona-inline-flex persona-items-center persona-justify-center",{button:$,wrapper:T}=na(t,{showClose:n,wrapperClassName:O});return a!=="top-right"&&o.appendChild(T),{header:o,iconHolder:p,headerTitle:m,headerSubtitle:y,closeButton:$,closeButtonWrapper:T,clearChatButton:x,clearChatButtonWrapper:k}},Xs=(e,t,n)=>{let o=n?.launcher??{},r=o.closeButtonPlacement??"inline",s=o.clearChat?.placement??"inline";e.appendChild(t.header),r==="top-right"&&(e.style.position="relative",e.appendChild(t.closeButtonWrapper)),t.clearChatButtonWrapper&&s==="top-right"&&(e.style.position="relative",e.appendChild(t.clearChatButtonWrapper))};function Js(e){let{items:t,onSelect:n,anchor:o,position:r="bottom-left",portal:s,onOpenChange:a}=e,l=M("div","persona-dropdown-menu persona-hidden");l.setAttribute("role","menu"),l.setAttribute("data-persona-theme-zone","dropdown"),s?(l.style.position="fixed",l.style.zIndex=String(Xi)):(l.style.position="absolute",l.style.top="100%",l.style.marginTop="4px",r==="bottom-right"?l.style.right="0":l.style.left="0");for(let C of t){if(C.dividerBefore){let k=document.createElement("hr");l.appendChild(k)}let S=document.createElement("button");if(S.type="button",S.setAttribute("role","menuitem"),S.setAttribute("data-dropdown-item-id",C.id),C.destructive&&S.setAttribute("data-destructive",""),C.icon){let k=ge(C.icon,16,"currentColor",1.5);k&&S.appendChild(k)}let x=document.createElement("span");x.textContent=C.label,S.appendChild(x),S.addEventListener("click",k=>{k.stopPropagation(),m(),n(C.id)}),l.appendChild(S)}let d=null;function p(){if(!s)return;let C=o.getBoundingClientRect();l.style.top=`${C.bottom+4}px`,r==="bottom-right"?(l.style.right=`${window.innerWidth-C.right}px`,l.style.left="auto"):(l.style.left=`${C.left}px`,l.style.right="auto")}function u(){let C=l.classList.contains("persona-hidden");p(),l.classList.remove("persona-hidden"),C&&a?.(!0),requestAnimationFrame(()=>{let S=x=>{!l.contains(x.target)&&!o.contains(x.target)&&m()};document.addEventListener("click",S,!0),d=()=>document.removeEventListener("click",S,!0)})}function m(){let C=!l.classList.contains("persona-hidden");l.classList.add("persona-hidden"),d?.(),d=null,C&&a?.(!1)}function y(){l.classList.contains("persona-hidden")?u():m()}function h(){m(),l.remove()}return s&&s.appendChild(l),{element:l,show:u,hide:m,toggle:y,destroy:h}}function Hn(e){let{icon:t,label:n,size:o,strokeWidth:r,className:s,chromeless:a,onClick:l,aria:d}=e,p=M("button",hn(!a&&"persona-icon-btn",s));p.type="button",p.setAttribute("aria-label",n),p.title=n;let u=ge(t,o??16,"currentColor",r??2);if(u&&p.appendChild(u),l&&p.addEventListener("click",l),d)for(let[m,y]of Object.entries(d))p.setAttribute(m,y);return p}function Vm(e){let{icon:t,label:n,variant:o="default",size:r="sm",iconSize:s,className:a,onClick:l,aria:d}=e,p="persona-label-btn";o!=="default"&&(p+=" persona-label-btn--"+o),p+=" persona-label-btn--"+r,a&&(p+=" "+a);let u=M("button",p);if(u.type="button",u.setAttribute("aria-label",n),t){let y=ge(t,s??14,"currentColor",2);y&&u.appendChild(y)}let m=M("span");if(m.textContent=n,u.appendChild(m),l&&u.addEventListener("click",l),d)for(let[y,h]of Object.entries(d))u.setAttribute(y,h);return u}function Wl(e){let{items:t,selectedId:n,onSelect:o,className:r}=e,s=M("div","persona-toggle-group"+(r?" "+r:""));s.setAttribute("role","group");let a=n,l=[];function d(){for(let u of l)u.btn.setAttribute("aria-pressed",u.id===a?"true":"false")}for(let u of t){let m;u.icon?m=Hn({icon:u.icon,label:u.label,className:u.className,onClick:()=>{a=u.id,d(),o(u.id)}}):(m=M("button","persona-icon-btn"+(u.className?" "+u.className:"")),m.type="button",m.setAttribute("aria-label",u.label),m.title=u.label,m.textContent=u.label,m.addEventListener("click",()=>{a=u.id,d(),o(u.id)})),m.setAttribute("aria-pressed",u.id===a?"true":"false"),l.push({id:u.id,btn:m}),s.appendChild(m)}function p(u){a=u,d()}return{element:s,setSelected:p}}function jw(e){let{label:t,icon:n,iconSize:o,iconOnly:r,menuItems:s,onSelect:a,onPrimary:l,position:d="bottom-left",portal:p,chevronLabel:u="More options",chevronIconSize:m,className:y,primaryClassName:h,chevronClassName:C}=e,S=M("div","persona-split-btn"+(y?" "+y:"")),x={label:t,className:"persona-split-btn-primary"+(h?" "+h:""),onClick:l},k=r&&n?Hn({...x,icon:n,size:o??14}):Vm({...x,icon:n,iconSize:o??14}),O=Hn({icon:"chevron-down",label:u,size:m??14,className:"persona-split-btn-chevron"+(C?" "+C:""),aria:{"aria-haspopup":"true","aria-expanded":"false"}});S.append(k,O);let $=null,T=()=>{if($)return $;let I=(typeof p=="function"?p():p)??void 0;return $=Js({items:s,onSelect:a,anchor:S,position:d,portal:I,onOpenChange:A=>{O.setAttribute("aria-expanded",A?"true":"false")}}),I||S.appendChild($.element),$};return S.isConnected?T():requestAnimationFrame(()=>{$||T()}),O.addEventListener("click",I=>{I.stopPropagation(),T().toggle()}),{element:S,primaryButton:k,chevronButton:O,openMenu:()=>T().show(),closeMenu:()=>$?.hide(),toggleMenu:()=>T().toggle(),destroy:()=>{$?.destroy(),S.remove()}}}function up(e){let{label:t,icon:n="chevron-down",menuItems:o,onSelect:r,position:s="bottom-left",portal:a,className:l,hover:d}=e,p=M("div","persona-combo-btn"+(l?" "+l:""));p.style.position="relative",p.style.display="inline-flex",p.style.alignItems="center",p.style.cursor="pointer",p.setAttribute("role","button"),p.setAttribute("tabindex","0"),p.setAttribute("aria-haspopup","true"),p.setAttribute("aria-expanded","false"),p.setAttribute("aria-label",t);let u=M("span","persona-combo-btn-label");u.textContent=t,p.appendChild(u);let m=ge(n,14,"currentColor",2);m&&(m.style.marginLeft="4px",m.style.opacity="0.6",p.appendChild(m)),d&&(p.style.borderRadius=d.borderRadius??"10px",p.style.padding=d.padding??"6px 4px 6px 12px",p.style.border="1px solid transparent",p.style.transition="background-color 0.15s ease, border-color 0.15s ease",p.addEventListener("mouseenter",()=>{p.style.backgroundColor=d.background??"",p.style.borderColor=d.border??""}),p.addEventListener("mouseleave",()=>{p.style.backgroundColor="",p.style.borderColor="transparent"}));let y=Js({items:o,onSelect:C=>{p.setAttribute("aria-expanded","false"),r(C)},anchor:p,position:s,portal:a});a||p.appendChild(y.element);let h=()=>p.getAttribute("data-persona-menu-locked")==="true";return p.addEventListener("click",C=>{if(C.stopPropagation(),h())return;let S=!y.element.classList.contains("persona-hidden");p.setAttribute("aria-expanded",S?"false":"true"),y.toggle()}),p.addEventListener("keydown",C=>{(C.key==="Enter"||C.key===" ")&&(C.preventDefault(),p.click())}),{element:p,setLabel:C=>{u.textContent=C,p.setAttribute("aria-label",C)},open:()=>{p.setAttribute("aria-expanded","true"),y.show()},close:()=>{p.setAttribute("aria-expanded","false"),y.hide()},toggle:()=>{let C=!y.element.classList.contains("persona-hidden");p.setAttribute("aria-expanded",C?"false":"true"),y.toggle()},destroy:()=>{y.destroy(),p.remove()}}}var Km=e=>{let t=vr({config:e.config,showClose:e.showClose,onClose:e.onClose,onClearChat:e.onClearChat}),n=e.layoutHeaderConfig?.onTitleClick;if(n){let o=t.headerTitle.parentElement;o&&(o.style.cursor="pointer",o.setAttribute("role","button"),o.setAttribute("tabindex","0"),o.addEventListener("click",()=>n()),o.addEventListener("keydown",r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),n())}))}return t};function XP(e,t,n){if(t?.length)for(let o of t){let{button:r,wrapper:s}=Ys({ariaLabel:o.ariaLabel??o.label??o.id,iconName:o.icon,iconText:o.icon?void 0:o.label,tooltipHint:o.shortcut?ip(o.shortcut):void 0,wrapperClassName:"persona-relative persona-inline-flex persona-items-center persona-justify-center"});if(r.setAttribute("data-persona-header-action",o.id),o.shortcut){let a=Sl(o.shortcut);a&&r.setAttribute("aria-keyshortcuts",a)}if(o.menuItems?.length){let a=Js({items:o.menuItems,onSelect:l=>n?.(l),anchor:s,position:"bottom-right"});s.appendChild(a.element),r.addEventListener("click",l=>{l.stopPropagation(),a.toggle()})}else r.addEventListener("click",()=>n?.(o.id));e.appendChild(s)}}var Gm=e=>{let{config:t,showClose:n=!0,onClose:o,layoutHeaderConfig:r,onHeaderAction:s}=e,a=t?.launcher??{},l=M("div","persona-flex persona-items-center persona-justify-between persona-px-6 persona-py-4");l.setAttribute("data-persona-theme-zone","header"),l.style.minHeight=vn.minHeight,l.style.backgroundColor="var(--persona-header-bg, var(--persona-surface, #ffffff))",l.style.borderBottomColor="var(--persona-header-border, var(--persona-divider, #f1f5f9))",l.style.boxShadow="var(--persona-header-shadow, none)",l.style.borderBottom="var(--persona-header-border-bottom, 1px solid var(--persona-header-border, var(--persona-divider, #f1f5f9)))";let d=r?.titleMenu,p,u;if(d){let T=up({label:a.title??"Chat Assistant",menuItems:d.menuItems,onSelect:I=>{let A=Q=>{Q===!1&&T.element.dispatchEvent(new CustomEvent("persona:title-menu-builtin",{bubbles:!0,composed:!0,detail:{actionId:I}}))},N=d.onSelect(I);N instanceof Promise?N.then(A,()=>{}):A(N)},hover:d.hover,className:""});p=T.element,p.style.color=vn.titleColor,u=p.querySelector(".persona-combo-btn-label")??p}else{if(p=M("div","persona-flex persona-min-w-0 persona-flex-1 persona-items-center persona-gap-1"),u=M("span","persona-text-base persona-font-semibold persona-truncate"),u.style.color=vn.titleColor,Object.assign(u.style,zm),u.textContent=a.title??"Chat Assistant",p.appendChild(u),r?.onTitleClick){p.style.cursor="pointer",p.setAttribute("role","button"),p.setAttribute("tabindex","0");let I=r.onTitleClick;p.addEventListener("click",A=>{A.target.closest("button")||I()}),p.addEventListener("keydown",A=>{(A.key==="Enter"||A.key===" ")&&(A.preventDefault(),I())})}let T=r?.titleRowHover;T&&(p.style.borderRadius=T.borderRadius??"10px",p.style.padding=T.padding??"6px 4px 6px 12px",p.style.margin="-6px 0 -6px -12px",p.style.border="1px solid transparent",p.style.transition="background-color 0.15s ease, border-color 0.15s ease",p.style.width="fit-content",p.style.flex="none",p.addEventListener("mouseenter",()=>{p.style.backgroundColor=T.background??"",p.style.borderColor=T.border??""}),p.addEventListener("mouseleave",()=>{p.style.backgroundColor="",p.style.borderColor="transparent"}))}l.appendChild(p);let m="persona-relative persona-inline-flex persona-items-center persona-justify-center",{button:y,wrapper:h}=na(t,{showClose:n,wrapperClassName:m});o&&y.addEventListener("click",o);let C=M("div","persona-flex persona-items-center persona-gap-1");d||XP(C,r?.trailingActions,r?.onAction??s);let S=a.clearChat??{},x=null,k=null;if(S.enabled??!0){let T=S.placement??"inline",I=oa(t,{wrapperClassName:T==="top-right"?"persona-absolute persona-top-4 persona-z-50":m});x=I.button,k=I.wrapper,T==="top-right"?k.style.right="48px":C.appendChild(k)}C.appendChild(h),l.appendChild(C);let O=M("div");O.style.display="none";let $=M("span");return $.style.display="none",{header:l,iconHolder:O,headerTitle:u,headerSubtitle:$,closeButton:y,closeButtonWrapper:h,clearChatButton:x,clearChatButtonWrapper:k}},gp={default:Km,minimal:Gm},Qm=e=>gp[e]??gp.default,ra=(e,t,n)=>{if(t?.render){let a=t.render({config:e,onClose:n?.onClose,onClearChat:n?.onClearChat,trailingActions:t.trailingActions,onAction:t.onAction}),l=M("div");l.style.display="none";let d=M("span"),p=M("span"),u=M("button");u.style.display="none";let m=M("div");return m.style.display="none",{header:a,iconHolder:l,headerTitle:d,headerSubtitle:p,closeButton:u,closeButtonWrapper:m,clearChatButton:null,clearChatButtonWrapper:null}}let o=t?.layout??"default",s=Qm(o)({config:e,showClose:t?.showCloseButton??n?.showClose??!0,onClose:n?.onClose,onClearChat:n?.onClearChat,layoutHeaderConfig:t,onHeaderAction:t?.onAction});return t&&(t.showIcon===!1&&(s.iconHolder.style.display="none"),t.showTitle===!1&&(s.headerTitle.style.display="none"),t.showSubtitle===!1&&(s.headerSubtitle.style.display="none"),t.showCloseButton===!1&&(s.closeButton.style.display="none"),t.showClearChat===!1&&s.clearChatButtonWrapper&&(s.clearChatButtonWrapper.style.display="none")),s};var Zs=e=>{let{config:t}=e,n=X("div",{className:"persona-widget-footer persona-border-t-persona-divider persona-bg-persona-surface persona-px-6 persona-py-4",attrs:{"data-persona-theme-zone":"composer"}}),o=Kd(),r=X("form",{className:"persona-widget-composer persona-flex persona-flex-col persona-gap-2 persona-rounded-2xl persona-border persona-border-persona-border persona-bg-persona-input-background persona-px-4 persona-py-3",attrs:{"data-persona-composer-form":""},style:{outline:"none"}}),{textarea:s,attachAutoResize:a}=jd(t);a();let l=qd(t),d=ea(t),p=zd(t),u=Vd(t),m=X("div",{className:"persona-widget-composer__header",attrs:{"data-persona-composer-header":""},style:{display:"contents"}});r.append(m),p&&(p.previewsContainer.style.gap="8px",m.append(p.previewsContainer),r.append(p.input)),r.append(s);let y=X("div",{className:"persona-widget-composer__actions persona-flex persona-items-center persona-justify-between persona-w-full",attrs:{"data-persona-composer-actions":""}}),h=X("div",{className:"persona-widget-composer__left-actions persona-flex persona-items-center persona-gap-2",attrs:{"data-persona-composer-actions-start":""}}),C=X("div",{className:"persona-widget-composer__right-actions persona-flex persona-items-center persona-gap-2",attrs:{"data-persona-composer-actions-end":""}});return p&&h.append(p.wrapper),d&&C.append(d.wrapper),C.append(l.wrapper),y.append(h,C),r.append(y),r.addEventListener("click",S=>{S.target!==l.button&&S.target!==l.wrapper&&S.target!==d?.button&&S.target!==d?.wrapper&&S.target!==p?.button&&S.target!==p?.wrapper&&s.focus()}),n.append(o,r,u),{footer:n,suggestions:o,composerForm:r,header:m,textarea:s,sendButton:l.button,sendButtonWrapper:l.wrapper,micButton:d?.button??null,micButtonWrapper:d?.wrapper??null,statusText:u,attachmentButton:p?.button??null,attachmentButtonWrapper:p?.wrapper??null,attachmentInput:p?.input??null,attachmentPreviewsContainer:p?.previewsContainer??null,actionsRow:y,leftActions:h,rightActions:C,setSendButtonMode:l.setMode}};var mp=require("lucide");var qw=()=>{let e=X("button",{className:"persona-pill-peek",attrs:{type:"button","data-persona-pill-peek":"","aria-label":"Show conversation",tabindex:"-1"}}),t=M("span","persona-pill-peek__icon"),n=Wt(mp.MessageSquare,16,"currentColor",1.5);n&&t.appendChild(n);let o=M("span","persona-pill-peek__text"),r=M("span","persona-pill-peek__caret"),s=Wt(mp.ChevronUp,16,"currentColor",1.5);return s&&r.appendChild(s),e.append(t,o,r),{root:e,textNode:o}},fp=e=>{let{config:t}=e,n=X("div",{className:"persona-widget-footer persona-widget-footer--pill",attrs:{"data-persona-theme-zone":"composer"}}),o=Kd(),r=Vd(t);r.style.display="none";let{textarea:s,attachAutoResize:a}=jd(t,{defaultMaxLines:5});a();let l=qd(t),d=ea(t),p=zd(t);p&&p.previewsContainer.classList.add("persona-pill-composer__previews");let u=X("form",{className:"persona-widget-composer persona-pill-composer",attrs:{"data-persona-composer-form":""},style:{outline:"none"}}),m=X("div",{className:"persona-widget-composer__left-actions persona-pill-composer__left",attrs:{"data-persona-composer-actions-start":""}});p&&m.append(p.wrapper);let y=X("div",{className:"persona-widget-composer__right-actions persona-pill-composer__right",attrs:{"data-persona-composer-actions-end":""}});d&&y.append(d.wrapper),y.append(l.wrapper),u.addEventListener("click",S=>{S.target!==l.button&&S.target!==l.wrapper&&S.target!==d?.button&&S.target!==d?.wrapper&&S.target!==p?.button&&S.target!==p?.wrapper&&s.focus()}),p&&u.append(p.input),u.append(m,s,y);let h=X("div",{className:"persona-pill-composer__header",attrs:{"data-persona-composer-header":""},style:{display:"contents"}});n.append(h),p&&h.append(p.previewsContainer),n.append(o,u,r);let C=u;return{footer:n,suggestions:o,composerForm:u,header:h,textarea:s,sendButton:l.button,sendButtonWrapper:l.wrapper,micButton:d?.button??null,micButtonWrapper:d?.wrapper??null,statusText:r,attachmentButton:p?.button??null,attachmentButtonWrapper:p?.wrapper??null,attachmentInput:p?.input??null,attachmentPreviewsContainer:p?.previewsContainer??null,actionsRow:C,leftActions:m,rightActions:y,setSendButtonMode:l.setMode}};var JP=e=>{switch(e){case"max_tool_calls":return"Stopped after calling a tool. Send a follow-up to continue.";case"length":return"Response cut off as max tokens reached. Ask for more to continue.";case"content_filter":return"The provider filtered this response.";case"error":return"Something went wrong generating this response.";default:return null}},ZP=(e,t)=>{if(!e)return null;let n=JP(e);if(n===null)return null;let o=t?.[e],r=o!==void 0?o:n;return r||null},ek=(e,t)=>{let n=M("div","persona-message-stop-reason persona-text-xs persona-mt-2 persona-italic");return n.setAttribute("data-stop-reason",e),n.setAttribute("role","note"),n.style.opacity="0.75",n.textContent=t,n},tk=e=>{let t=e.toLowerCase();return t.startsWith("data:image/svg+xml")?!1:!!(/^(?:https?|blob):/i.test(e)||t.startsWith("data:image/")||!e.includes(":"))},Xm=e=>{let t=e.toLowerCase();return t.startsWith("javascript:")||t.startsWith("data:text/html")||t.startsWith("data:text/javascript")||t.startsWith("data:text/xml")||t.startsWith("data:application/xhtml")||t.startsWith("data:image/svg+xml")?!1:!!(/^(?:https?|blob):/i.test(e)||t.startsWith("data:")||!e.includes(":"))},Jm=320,Qw=320,nk=e=>!e.contentParts||e.contentParts.length===0?[]:e.contentParts.filter(t=>t.type==="image"&&typeof t.image=="string"&&t.image.trim().length>0),ok=e=>!e.contentParts||e.contentParts.length===0?[]:e.contentParts.filter(t=>t.type==="audio"&&typeof t.audio=="string"&&t.audio.trim().length>0),rk=e=>!e.contentParts||e.contentParts.length===0?[]:e.contentParts.filter(t=>t.type==="video"&&typeof t.video=="string"&&t.video.trim().length>0),sk=e=>!e.contentParts||e.contentParts.length===0?[]:e.contentParts.filter(t=>t.type==="file"&&typeof t.data=="string"&&t.data.trim().length>0),ik=e=>{if(!e||e.length===0)return null;let t=X("div",{className:"persona-mention-context-row persona-message-mentions",attrs:{"data-message-mentions":""}});t.style.display="flex";for(let n of e){let o=X("div",{className:"persona-mention-chip persona-mention-chip-readonly",attrs:{"data-status":"ready",title:n.label}}),r=M("span","persona-mention-chip-icon"),s=ge(n.iconName??"at-sign",13,"currentColor",2);s&&r.appendChild(s),o.appendChild(r),o.appendChild(X("span",{className:"persona-mention-chip-label",text:n.label})),t.appendChild(o)}return t},ak=(e,t)=>{let n=document.createDocumentFragment();for(let o of e){if(o.kind==="text"){n.appendChild(document.createTextNode(o.text));continue}n.appendChild(vl(o.ref,{readonly:!0,render:t}))}return n},zw="\uE000",Vw="\uE001",lk=(e,t,n,o)=>{let r=Math.random().toString(36).slice(2,8),s=y=>`${zw}${r}:${y}${Vw}`,a=t.map((y,h)=>y.kind==="text"?y.text:s(h)).join(""),l=n(a);if(!t.every((y,h)=>y.kind==="text"||l.includes(s(h)))){e.replaceChildren(ak(t,o));return}e.innerHTML=l;let p=new RegExp(`${zw}${r}:(\\d+)${Vw}`),u=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),m=[];for(let y=u.nextNode();y;y=u.nextNode())m.push(y);for(let y of m){let h=y;for(let C=p.exec(h.data);C;C=p.exec(h.data)){let S=t[Number(C[1])],x=h.splitText(C.index);x.data=x.data.slice(C[0].length),S?.kind==="mention"&&x.parentNode?.insertBefore(vl(S.ref,{readonly:!0,render:o}),x),h=x}}},ck=(e,t,n)=>{if(e.length===0)return null;try{let o=M("div","persona-flex persona-flex-col persona-gap-2");o.setAttribute("data-message-attachments","images"),t&&(o.style.marginBottom="8px");let r=0,s=!1,a=()=>{s||(s=!0,o.remove(),n?.())};return e.forEach((l,d)=>{let p=M("img");p.alt=l.alt?.trim()||`Attached image ${d+1}`,p.loading="lazy",p.decoding="async",p.referrerPolicy="no-referrer",p.style.display="block",p.style.width="100%",p.style.maxWidth=`${Jm}px`,p.style.maxHeight=`${Qw}px`,p.style.height="auto",p.style.objectFit="contain",p.style.borderRadius="10px",p.style.backgroundColor="var(--persona-attachment-image-bg, var(--persona-container, #f3f4f6))",p.style.border="1px solid var(--persona-attachment-image-border, var(--persona-border, #e5e7eb))";let u=!1;r+=1,p.addEventListener("error",()=>{u||(u=!0,r=Math.max(0,r-1),p.remove(),r===0&&a())}),p.addEventListener("load",()=>{u=!0}),tk(l.image)?(p.src=l.image,o.appendChild(p)):(u=!0,r=Math.max(0,r-1),p.remove())}),r===0?(a(),null):o}catch{return n?.(),null}},dk=e=>{if(e.length===0)return null;try{let t=M("div","persona-flex persona-flex-col persona-gap-2");t.setAttribute("data-message-attachments","audio");let n=0;return e.forEach(o=>{if(!Xm(o.audio))return;let r=M("audio");r.controls=!0,r.preload="metadata",r.src=o.audio,r.style.display="block",r.style.width="100%",r.style.maxWidth=`${Jm}px`,t.appendChild(r),n+=1}),n===0?(t.remove(),null):t}catch{return null}},pk=e=>{if(e.length===0)return null;try{let t=M("div","persona-flex persona-flex-col persona-gap-2");t.setAttribute("data-message-attachments","video");let n=0;return e.forEach(o=>{if(!Xm(o.video))return;let r=M("video");r.controls=!0,r.preload="metadata",r.src=o.video,r.style.display="block",r.style.width="100%",r.style.maxWidth=`${Jm}px`,r.style.maxHeight=`${Qw}px`,r.style.borderRadius="10px",r.style.backgroundColor="var(--persona-attachment-image-bg, var(--persona-container, #f3f4f6))",t.appendChild(r),n+=1}),n===0?(t.remove(),null):t}catch{return null}},uk=e=>{if(e.length===0)return null;try{let t=M("div","persona-flex persona-flex-col persona-gap-2");t.setAttribute("data-message-attachments","files");let n=0;return e.forEach(o=>{if(!Xm(o.data))return;let r=M("a");r.href=o.data,r.download=o.filename,r.target="_blank",r.rel="noopener noreferrer",r.textContent=o.filename,r.className="persona-message-file-attachment",r.style.display="inline-flex",r.style.alignItems="center",r.style.gap="6px",r.style.padding="6px 10px",r.style.borderRadius="8px",r.style.fontSize="0.875rem",r.style.textDecoration="underline",r.style.backgroundColor="var(--persona-attachment-file-bg, var(--persona-container, #f3f4f6))",r.style.border="1px solid var(--persona-attachment-file-border, var(--persona-border, #e5e7eb))",r.style.color="inherit",t.appendChild(r),n+=1}),n===0?(t.remove(),null):t}catch{return null}},ei=()=>{let e=document.createElement("div");e.className="persona-flex persona-items-center persona-space-x-1 persona-h-5 persona-mt-2";let t=document.createElement("div");t.className="persona-animate-typing persona-rounded-full persona-h-1.5 persona-w-1.5",t.style.backgroundColor="currentColor",t.style.opacity="0.4",t.style.animationDelay="0ms";let n=document.createElement("div");n.className="persona-animate-typing persona-rounded-full persona-h-1.5 persona-w-1.5",n.style.backgroundColor="currentColor",n.style.opacity="0.4",n.style.animationDelay="250ms";let o=document.createElement("div");o.className="persona-animate-typing persona-rounded-full persona-h-1.5 persona-w-1.5",o.style.backgroundColor="currentColor",o.style.opacity="0.4",o.style.animationDelay="500ms";let r=document.createElement("span");return r.className="persona-sr-only",r.textContent="Loading",e.appendChild(t),e.appendChild(n),e.appendChild(o),e.appendChild(r),e},Zm=(e,t,n)=>{let o={config:n??{},streaming:!0,location:e,defaultRenderer:ei};if(t){let r=t(o);if(r!==null)return r}return ei()},gk=(e,t)=>{let n=M("div","persona-flex-shrink-0 persona-w-8 persona-h-8 persona-rounded-full persona-flex persona-items-center persona-justify-center persona-text-sm"),o=t==="user"?e.userAvatar:e.assistantAvatar;if(o)if(o.startsWith("http")||o.startsWith("/")||o.startsWith("data:")){let r=M("img");r.src=o,r.alt=t==="user"?"User":"Assistant",r.className="persona-w-full persona-h-full persona-rounded-full persona-object-cover",n.appendChild(r)}else n.textContent=o,n.classList.add(t==="user"?"persona-bg-persona-accent":"persona-bg-persona-primary","persona-text-white");else n.textContent=t==="user"?"U":"A",n.classList.add(t==="user"?"persona-bg-persona-accent":"persona-bg-persona-primary","persona-text-white");return n},Kw=(e,t,n="div")=>{let o=M(n,"persona-text-xs persona-text-persona-muted"),r=new Date(e.createdAt);return t.format?o.textContent=t.format(r):o.textContent=r.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),o},Ol=(e,t="bubble")=>{let n=["persona-message-bubble"];switch(t){case"flat":e==="user"?n.push("persona-message-user-bubble","persona-ml-auto","persona-text-persona-primary","persona-py-2"):n.push("persona-message-assistant-bubble","persona-text-persona-text","persona-py-2");break;case"minimal":n.push("persona-text-sm","persona-leading-relaxed"),e==="user"?n.push("persona-message-user-bubble","persona-ml-auto","persona-bg-persona-accent","persona-text-white","persona-px-3","persona-py-2","persona-rounded-lg"):n.push("persona-message-assistant-bubble","persona-bg-persona-container","persona-text-persona-text","persona-px-3","persona-py-2","persona-rounded-lg");break;default:n.push("persona-rounded-2xl","persona-text-sm","persona-leading-relaxed","persona-shadow-sm"),e==="user"?n.push("persona-message-user-bubble","persona-ml-auto","persona-bg-persona-accent","persona-text-white","persona-px-5","persona-py-3"):n.push("persona-message-assistant-bubble","persona-bg-persona-container","persona-border","persona-border-persona-message-border","persona-text-persona-text","persona-px-5","persona-py-3");break}return n},Gw={bubble:{padding:"0.75rem 1.25rem",fontSize:"0.875rem",lineHeight:"1.75"},minimal:{padding:"0.5rem 0.75rem",fontSize:"0.875rem",lineHeight:"1.75"},flat:{padding:"0.5rem 0",fontSize:"inherit",lineHeight:"inherit"}},mk=(e,t,n="bubble",o)=>{if(!o)return;let r=t==="user"?"user":"assistant",s=Gw[n??"bubble"]??Gw.bubble;o.padding&&(e.style.padding=`var(--persona-message-${r}-padding, ${s.padding})`),o.fontSize&&(e.style.fontSize=`var(--persona-message-${r}-font-size, ${s.fontSize})`),o.lineHeight&&(e.style.lineHeight=`var(--persona-message-${r}-line-height, ${s.lineHeight})`),o.fontFamily&&(e.style.fontFamily=`var(--persona-message-${r}-font-family, inherit)`)},hp="custom:",fk=e=>`${hp}${e}`,Yw=(e,t)=>t!=="user"&&t!=="assistant"?[]:(e?.custom??[]).filter(n=>(n.roles??["assistant"]).includes(t)),ef=(e,t,n,o)=>{let r=t.showCopy??!0,s=t.showUpvote??!0,a=t.showDownvote??!0,l=t.showReadAloud??!1,d=(t.showRegenerate??!1)&&o?.canRegenerate===!0,p=(t.showEdit??!1)&&o?.canEdit===!0,u=(t.showQuote??!1)&&o?.canQuote!==!1,m=Yw(t,e.role);if(!r&&!s&&!a&&!l&&!d&&!p&&!u&&m.length===0){let $=M("div");return $.style.display="none",$.id=`actions-${e.id}`,$.setAttribute("data-actions-for",e.id),$}let y=t.visibility??"hover",h=t.align??"right",C=t.layout??"pill-inside",S={left:"persona-message-actions-left",center:"persona-message-actions-center",right:"persona-message-actions-right"}[h],x={"pill-inside":"persona-message-actions-pill","row-inside":"persona-message-actions-row"}[C],k=M("div",`persona-message-actions persona-flex persona-items-center persona-gap-1 persona-mt-2 ${S} ${x} ${y==="hover"?"persona-message-actions-hover":""}`);k.id=`actions-${e.id}`,k.setAttribute("data-actions-for",e.id);let O=($,T,I)=>{let A=Hn({icon:$,label:T,size:14,className:"persona-message-action-btn",chromeless:!0});return A.setAttribute("data-action",I),A};r&&k.appendChild(O("copy","Copy message","copy")),l&&k.appendChild(O("volume-2","Read aloud","read-aloud")),s&&k.appendChild(O("thumbs-up","Upvote","upvote")),a&&k.appendChild(O("thumbs-down","Downvote","downvote")),d&&k.appendChild(O("refresh-cw","Regenerate response","regenerate")),p&&k.appendChild(O("pencil","Edit message","edit")),u&&k.appendChild(O("quote","Quote message","quote"));for(let $ of m)k.appendChild(O($.iconName??"ellipsis",$.label,fk($.id)));return k},sa=(e,t,n,o,r,s)=>{let a=n??{},l=a.layout??"bubble",d=a.avatar,p=a.timestamp,u=d?.show??!1,m=p?.show??!1,y=d?.position??"left",h=p?.position??"below",C=Ol(e.role,l),S=M("div",C.join(" "));S.id=`bubble-${e.id}`,S.setAttribute("data-message-id",e.id),S.setAttribute("data-persona-theme-zone",e.role==="user"?"user-message":"assistant-message");let x=s?.widgetConfig?.theme?.components?.message;mk(S,e.role,l,e.role==="user"?x?.user:x?.assistant),l==="flat"?(S.style.backgroundColor="transparent",S.style.color=e.role==="user"?"var(--persona-primary, var(--persona-text))":"var(--persona-message-assistant-text, var(--persona-text))"):e.role==="user"?(S.style.backgroundColor="var(--persona-message-user-bg, var(--persona-accent))",S.style.color="var(--persona-message-user-text, white)"):e.role==="assistant"&&(S.style.backgroundColor="var(--persona-message-assistant-bg, var(--persona-container))",S.style.color="var(--persona-message-assistant-text, var(--persona-text))");let k=nk(e),O=e.content?.trim()??"",T=k.length>0&&O===Vi,I=lp(s?.widgetConfig?.features?.streamAnimation),A=s?.widgetConfig?.features?.streamAnimation?.plugins,N=e.role==="assistant"&&I.type!=="none"?Tl(I.type,A):null,Q=e.role==="assistant"&&N?.isAnimating?.(e)===!0,ce=e.role==="assistant"&&N!==null&&(!!e.streaming||Q);ce&&N?.bubbleClass&&S.classList.add(N.bubbleClass);let Y=document.createElement("div");Y.classList.add("persona-message-content"),e.streaming&&Y.classList.add("persona-content-streaming"),ce&&N&&(N.containerClass&&Y.classList.add(N.containerClass),Y.style.setProperty("--persona-stream-step",`${I.speed}ms`),Y.style.setProperty("--persona-stream-duration",`${I.duration}ms`));let E=ce?cp(e.content??"",I.buffer,N,e,!!e.streaming):e.content??"",B=()=>{let we=t({text:E,message:e,streaming:!!e.streaming,raw:e.rawContent});return ce&&N?.wrap==="char"?Pl(we,"char",e.id,{skipTags:N.skipTags}):ce&&N?.wrap==="word"?Pl(we,"word",e.id,{skipTags:N.skipTags}):we},H=null;if(T?(H=document.createElement("div"),H.innerHTML=B(),H.style.display="none",Y.appendChild(H)):e.contentSegments?.length?lk(Y,e.contentSegments,we=>t({text:we,message:e,streaming:!!e.streaming,raw:e.rawContent}),s?.widgetConfig?.contextMentions?.renderMentionToken):Y.innerHTML=B(),ce&&N?.useCaret&&!T&&O){let we=dp(),j=Y.querySelectorAll(".persona-stream-char, .persona-stream-word"),$e=j[j.length-1];if($e?.parentNode)$e.parentNode.insertBefore(we,$e.nextSibling);else{let je=Y.lastElementChild;je?je.appendChild(we):Y.appendChild(we)}}if(m&&h==="inline"&&e.createdAt){let we=Kw(e,p,"span");we.classList.add("persona-timestamp-inline");let j=Y.lastElementChild;j?j.appendChild(we):Y.appendChild(we)}if(k.length>0){let we=ck(k,!T&&!!O,()=>{T&&H&&(H.style.display="")});we?S.appendChild(we):T&&H&&(H.style.display="")}let L=ok(e);if(L.length>0){let we=dk(L);we&&S.appendChild(we)}let te=rk(e);if(te.length>0){let we=pk(te);we&&S.appendChild(we)}let K=sk(e);if(K.length>0){let we=uk(K);we&&S.appendChild(we)}let me=e.contentSegments?.length?null:ik(e.contextMentions);if(me&&S.appendChild(me),S.appendChild(Y),m&&h==="below"&&e.createdAt){let we=Kw(e,p);we.classList.add("persona-mt-1"),S.appendChild(we)}let de=e.role==="assistant"?ZP(e.stopReason,s?.widgetConfig?.copy?.stopReasonNotice):null;if(e.streaming&&e.role==="assistant"){let we=!!(E&&E.trim()),j=I.placeholder==="skeleton",$e=j&&I.buffer==="line"&&we;if(we)$e&&S.appendChild(kl());else if(j)S.appendChild(kl());else{let je=Zm("inline",s?.loadingIndicatorRenderer,s?.widgetConfig);je&&S.appendChild(je)}}de&&e.stopReason&&!e.streaming&&(O||(Y.style.display="none"),S.appendChild(ek(e.stopReason,de)));let he=e.role==="assistant"&&!e.streaming&&e.content&&e.content.trim()&&o?.enabled!==!1,We=s?.actionEligibility,Oe=e.role==="user"&&!e.streaming&&o?.enabled!==!1&&(o?.showEdit===!0&&We?.canEdit===!0||o?.showQuote===!0&&We?.canQuote===!0||Yw(o,"user").length>0);if((he||Oe)&&o){let we=ef(e,Oe?{...o,showCopy:!1,showUpvote:!1,showDownvote:!1,showReadAloud:!1}:o,r,We);S.appendChild(we)}if(!u||e.role==="system")return S;let Se=M("div",`persona-message-with-avatar persona-flex persona-gap-2 ${e.role==="user"?"persona-flex-row-reverse":""}`),Xe=gk(d,e.role);return y==="right"||y==="left"&&e.role==="user"?Se.append(S,Xe):Se.append(Xe,S),Se},Xw=(e,t,n,o,r,s)=>{let a=n??{};return e.role==="user"&&a.renderUserMessage?a.renderUserMessage({message:e,config:{},streaming:!!e.streaming}):e.role==="assistant"&&a.renderAssistantMessage?a.renderAssistantMessage({message:e,config:{},streaming:!!e.streaming}):sa(e,t,n,o,r,s)};var hk=40,yk=(e,t)=>{if(e.replaceChildren(),!t){e.hidden=!0;return}if(typeof t=="function"){let n=null;try{n=t()}catch(o){console.warn("[persona] welcome.icon renderer threw",o)}if(!n){e.hidden=!0;return}e.appendChild(n),e.hidden=!1;return}if(t.type==="lucide"){let n=ge(t.name,hk);if(!n){e.hidden=!0;return}e.appendChild(n)}else t.type==="image"?e.appendChild(X("img",{className:"persona-welcome-icon-image",attrs:{src:t.url,alt:t.alt}})):e.appendChild(X("span",{className:"persona-welcome-icon-text",text:t.text}));e.hidden=!1},Jw=(e,t,n={})=>{let o=X("div",{className:"persona-welcome-icon",attrs:{"data-persona-welcome-icon":""}});o.hidden=!0;let r=M("p","persona-welcome-kicker");r.hidden=!0;let s=M("h2","persona-welcome-title"),a=M("p","persona-welcome-subtitle"),l=X("div",{className:"persona-welcome-head-text"},r,s),d=X("div",{className:"persona-welcome-title-row"},o,l);return{host:X("div",{className:"persona-welcome persona-rounded-2xl",attrs:{"data-persona-welcome":"","data-persona-intro-card":"","data-persona-welcome-variant":"card"},style:{background:"var(--persona-intro-card-bg, transparent)",boxShadow:n.flatShadow?"none":"var(--persona-intro-card-shadow, none)",border:"var(--persona-intro-card-border, none)"}},d,a,t),iconHolder:o,kicker:r,title:s,subtitle:a,starterSuggestions:t}},ia=(e,t,n)=>{t.hidden=!n,t.style.display=n?"":"none",e.classList.toggle("persona-gap-6",n),e.classList.toggle("persona-gap-3",!n)},bp=(e,t)=>{e.title.textContent=t.title,e.kicker.textContent=t.kicker??"",e.kicker.hidden=!t.kicker,e.subtitle.textContent=t.subtitle,e.subtitle.hidden=t.subtitle==="",yk(e.iconHolder,t.icon),e.host.setAttribute("data-persona-welcome-variant",t.variant),e.host.setAttribute("data-persona-welcome-dismiss",t.dismiss),e.host.setAttribute("data-persona-welcome-anchor",t.anchor??"bottom"),t.iconPlacement==="inline"?e.host.setAttribute("data-persona-welcome-icon-placement","inline"):e.host.removeAttribute("data-persona-welcome-icon-placement"),t.align?e.host.setAttribute("data-persona-welcome-align",t.align):e.host.removeAttribute("data-persona-welcome-align")},bk="data-persona-welcome-plugin",Zw="data-persona-welcome-overlay",yp="persona-welcome-overlay-active",tf=new WeakMap,nf=(e,t,n)=>{n.setAttribute(bk,""),t.appendChild(n),t.setAttribute("data-persona-welcome-content","plugin"),t.setAttribute(Zw,""),e.classList.contains(yp)||(tf.set(e,e.scrollTop),e.classList.add(yp),e.scrollTop=0)},of=(e,t,n)=>{n&&n!==t&&n.remove(),t.removeAttribute("data-persona-welcome-content"),t.removeAttribute(Zw),e.classList.contains(yp)&&(e.classList.remove(yp),e.scrollTop=tf.get(e)??e.scrollTop,tf.delete(e))},ex=()=>{let e=X("div",{className:"persona-welcome-greeting persona-flex persona-flex-col",attrs:{"data-persona-welcome-greeting":""}});return e.hidden=!0,e},vp=(e,t,n)=>{if(e.replaceChildren(),!t){e.hidden=!0;return}let o=n?.layout?.messages?.layout??"bubble",r=X("div",{className:Ol("assistant",o).join(" "),attrs:{"data-persona-theme-zone":"assistant-message"},text:t,style:o==="flat"?{backgroundColor:"transparent",color:"var(--persona-message-assistant-text, var(--persona-text))"}:{backgroundColor:"var(--persona-message-assistant-bg, var(--persona-container))",color:"var(--persona-message-assistant-text, var(--persona-text))"}});e.appendChild(X("div",{className:"persona-flex"},r)),e.hidden=!1},tx=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,nx=(e,t)=>{if(tx()||typeof e.animate!="function"||!e.isConnected)return t(null),null;let n=e.getBoundingClientRect(),o=e.parentElement,r=0,s=0,a=0;if(o){let C=getComputedStyle(o);r=parseFloat(C.rowGap)||0;let S=e.previousElementSibling,x=e.nextElementSibling,O=o.getBoundingClientRect().top+(parseFloat(C.borderTopWidth)||0)+(parseFloat(C.paddingTop)||0)-o.scrollTop;s=Math.max(0,S?n.top-S.getBoundingClientRect().bottom-r:n.top-O),a=Math.max(0,x?x.getBoundingClientRect().top-n.bottom-r:0)}let l=e.style.overflow;e.style.overflow="hidden";let d=getComputedStyle(e),p=parseFloat(d.paddingTop)||0,u=parseFloat(d.paddingBottom)||0,m=e.animate([{opacity:"1",transform:"none",height:`${n.height}px`,minHeight:"0px",paddingTop:`${p}px`,paddingBottom:`${u}px`,marginTop:`${s}px`,marginBottom:`${a}px`},{opacity:"0",transform:"translateY(-4px)",height:"0px",minHeight:"0px",paddingTop:"0px",paddingBottom:"0px",marginTop:"0px",marginBottom:`${-r}px`}],{duration:180,easing:"ease-out",fill:"forwards"}),y=!1,h=()=>{y||(y=!0,e.style.overflow=l,t(m))};return m.finished.then(h).catch(h),m},ox=(e,t,n)=>{if(t<=1||tx()||typeof e.animate!="function"||!e.isConnected)return null;let o=n==="drop"?-t:t;return e.animate([{transform:`translateY(${o}px)`},{transform:"none"}],{duration:260,easing:"cubic-bezier(0.2, 0, 0, 1)",fill:"none"})};var vk="Hello \u{1F44B}",Ck="I can answer questions and help you get things done here.",rx=new WeakSet,Cn=(e,t)=>!!e&&e[t]!==void 0,wk=(e,t)=>{!e||e.debug!==!0||!t.length||rx.has(e)||(rx.add(e),t.forEach(n=>console.warn(`[persona] ${n}`)))},xo=e=>{let t=e?.welcome,n=e?.copy,o=Cn(t,"variant")?t.variant:n?.showWelcomeCard===!1?"none":"card",r=o==="hero"?"on-first-message":Cn(t,"dismiss")?t.dismiss:"never",s=[];Cn(t,"title")&&Cn(n,"welcomeTitle")&&s.push("welcome.title and copy.welcomeTitle are both set; welcome.title wins. copy.welcomeTitle is deprecated."),Cn(t,"subtitle")&&Cn(n,"welcomeSubtitle")&&s.push("welcome.subtitle and copy.welcomeSubtitle are both set; welcome.subtitle wins. copy.welcomeSubtitle is deprecated."),Cn(t,"variant")&&Cn(n,"showWelcomeCard")&&s.push("welcome.variant and copy.showWelcomeCard are both set; welcome.variant wins. copy.showWelcomeCard is deprecated."),o==="hero"&&Cn(t,"message")&&s.push('welcome.message is ignored when welcome.variant is "hero": the hero is the greeting.'),o==="hero"&&Cn(t,"dismiss")&&t.dismiss!=="on-first-message"&&s.push('welcome.dismiss is pinned to "on-first-message" when welcome.variant is "hero".');let a=t?.anchor==="center"?"center":"bottom",l=xl(t?.anchorComposerTop)!==null;return Cn(t,"anchorComposerTop")&&!l&&s.push('welcome.anchorComposerTop must be a percentage between 0% and 100%; falling back to "44%".'),a!=="center"&&(Cn(t,"anchorComposerTop")||Cn(t,"composerGap"))&&s.push('welcome.anchorComposerTop is ignored unless welcome.anchor is "center".'),wk(e,s),{title:Cn(t,"title")?t.title:n?.welcomeTitle??vk,kicker:t?.kicker??"",subtitle:Cn(t,"subtitle")?t.subtitle:n?.welcomeSubtitle??Ck,icon:t?.icon,align:t?.align==="start"||t?.align==="center"?t.align:void 0,iconPlacement:t?.icon&&typeof t.icon!="function"&&t.icon.placement==="inline"?"inline":"above",variant:o,dismiss:r,message:o==="hero"?void 0:t?.message,anchor:a,anchorComposerTop:l?t.anchorComposerTop:"44%",composerGap:t?.composerGap?.trim()||op}},sx=e=>(e??[]).some(t=>t.role==="user")?"active":"empty",is=(e,t)=>e.variant==="none"?!1:e.dismiss==="never"?!0:!(t??[]).some(n=>n.role==="user");var ix="16px",sf="10px",af="14px",ax=e=>{let t=e?.launcher?.enabled??!0,n=At(e);if(ss(e)){let u=e?.launcher?.composerBar??{},m=M("div","persona-widget-wrapper persona-fixed persona-transition");m.setAttribute("data-persona-composer-bar",""),m.dataset.state="collapsed",m.dataset.expandedSize=u.expandedSize??"anchored",m.style.zIndex=String(e?.launcher?.zIndex??sn);let y=M("div","persona-widget-panel persona-relative persona-flex persona-flex-1 persona-min-h-0 persona-flex-col");y.style.width="100%",m.appendChild(y);let h=M("div","persona-widget-pill-root");return h.setAttribute("data-persona-composer-bar",""),h.dataset.state="collapsed",h.dataset.expandedSize=u.expandedSize??"anchored",h.style.zIndex=String(e?.launcher?.zIndex??sn),{wrapper:m,panel:y,pillRoot:h}}if(n){let u=M("div","persona-relative persona-h-full persona-w-full persona-flex persona-flex-1 persona-min-h-0 persona-flex-col"),m=M("div","persona-relative persona-h-full persona-w-full persona-flex persona-flex-1 persona-min-h-0 persona-flex-col");return u.appendChild(m),{wrapper:u,panel:m}}if(!t){let u=M("div","persona-relative persona-h-full persona-flex persona-flex-col persona-flex-1 persona-min-h-0"),m=M("div","persona-relative persona-flex-1 persona-flex persona-flex-col persona-min-h-0"),y=e?.launcher?.width??"100%";return u.style.width=y,m.style.width="100%",u.appendChild(m),{wrapper:u,panel:m}}let r=e?.launcher??{},s=r.position&&Kn[r.position]?Kn[r.position]:Kn["bottom-right"],a=M("div",`persona-widget-wrapper persona-fixed ${s} persona-transition`);a.style.zIndex=String(e?.launcher?.zIndex??sn);let l=M("div","persona-widget-panel persona-relative persona-min-h-[320px]"),p=e?.launcher?.width??e?.launcherWidth??zn;return l.style.width=p,l.style.maxWidth=p,a.appendChild(l),{wrapper:a,panel:l}},lf=e=>{let t=X("div",{className:"persona-suggestions",attrs:{"data-persona-suggestions":Um(e)}});return t.hidden=!0,t},lx=(e,t)=>{let n=lf("starter"),o=Jw(e,n,{flatShadow:At(e)}),r=xo(e);bp(o,r),ia(t,o.host,is(r,e?.initialMessages));let s=ex();return vp(s,r.message,e),{welcome:o,greetingHost:s}},xk=(e,t)=>{let n=M("div","persona-widget-container persona-relative persona-flex persona-flex-1 persona-min-h-0 persona-flex-col persona-text-persona-primary");n.setAttribute("data-persona-theme-zone","container");let{button:o,wrapper:r}=na(e,{showClose:t,wrapperClassName:"persona-composer-bar-close",buttonSize:ix,iconSize:sf});r.style.position="absolute",r.style.top="8px",r.style.right="8px",r.style.zIndex="10";let s=e?.launcher?.clearChat?.enabled??!0,a=null,l=null;if(s){let N=oa(e,{wrapperClassName:"persona-composer-bar-clear-chat",buttonSize:ix,iconSize:af});a=N.button,l=N.wrapper,l.style.position="absolute",l.style.top="8px",l.style.right="32px",l.style.zIndex="10"}let d=X("span",{className:"persona-widget-header",attrs:{"data-persona-theme-zone":"header"},style:{display:"none"}}),p=X("div",{className:"persona-widget-body persona-flex persona-flex-1 persona-min-h-0 persona-flex-col persona-gap-6 persona-overflow-y-auto persona-bg-persona-container persona-px-6 persona-py-6",attrs:{id:"persona-scroll-container","data-persona-theme-zone":"messages"},style:{paddingTop:"48px"}});p.style.setProperty("scrollbar-gutter","stable");let{welcome:u,greetingHost:m}=lx(e,p),{host:y,title:h,subtitle:C}=u,S=u.starterSuggestions,x=M("div","persona-widget-messages persona-flex persona-flex-col persona-gap-3"),k=lf("followUp"),O=os(e,!0);O&&(x.style.maxWidth=O,x.style.marginLeft="auto",x.style.marginRight="auto",x.style.width="100%"),p.append(y,m,x,k);let $=X("div",{className:"persona-composer-overlay persona-pointer-events-none",attrs:{"data-persona-composer-overlay":""},style:{position:"absolute",left:"0",right:"0",bottom:"calc(var(--persona-composer-overlay-height, 0px) + var(--persona-composer-lift, 0px))",zIndex:"20"}}),T=fp({config:e}),{root:I,textNode:A}=qw();return n.append(d,r,p,$),l&&n.appendChild(l),{container:n,body:p,messagesWrapper:x,starterSuggestions:S,transcriptSuggestions:k,composerOverlay:$,suggestions:T.suggestions,textarea:T.textarea,sendButton:T.sendButton,sendButtonWrapper:T.sendButtonWrapper,micButton:T.micButton,micButtonWrapper:T.micButtonWrapper,composerForm:T.composerForm,statusText:T.statusText,welcomeHost:y,welcomeIconHolder:u.iconHolder,greetingHost:m,introKicker:u.kicker,introTitle:h,introSubtitle:C,closeButton:o,closeButtonWrapper:r,clearChatButton:a,clearChatButtonWrapper:l,iconHolder:M("span"),headerTitle:M("span"),headerSubtitle:M("span"),header:d,footer:T.footer,attachmentButton:T.attachmentButton,attachmentButtonWrapper:T.attachmentButtonWrapper,attachmentInput:T.attachmentInput,attachmentPreviewsContainer:T.attachmentPreviewsContainer,actionsRow:T.actionsRow,leftActions:T.leftActions,rightActions:T.rightActions,setSendButtonMode:T.setSendButtonMode,peekBanner:I,peekTextNode:A}},cx=(e,t=!0)=>{if(ss(e))return xk(e,t);let n=X("div",{className:"persona-widget-container persona-flex persona-h-full persona-w-full persona-flex-1 persona-min-h-0 persona-flex-col persona-text-persona-primary persona-bg-persona-surface persona-rounded-2xl persona-overflow-hidden persona-border persona-border-persona-border",attrs:{"data-persona-theme-zone":"container"}}),o=e?.layout?.header,r=e?.layout?.showHeader!==!1,s=o?ra(e,o,{showClose:t}):vr({config:e,showClose:t}),a=X("div",{className:"persona-widget-body persona-flex persona-flex-1 persona-min-h-0 persona-flex-col persona-gap-6 persona-overflow-y-auto persona-bg-persona-container persona-px-6 persona-py-6",attrs:{id:"persona-scroll-container","data-persona-theme-zone":"messages"}});a.style.setProperty("scrollbar-gutter","stable");let{welcome:l,greetingHost:d}=lx(e,a),{host:p,title:u,subtitle:m}=l,y=l.starterSuggestions,h=M("div","persona-widget-messages persona-flex persona-flex-col persona-gap-3"),C=lf("followUp"),S=os(e,!1);S&&(h.style.maxWidth=S,h.style.marginLeft="auto",h.style.marginRight="auto",h.style.width="100%"),a.append(p,d,h,C);let x=Zs({config:e}),k=e?.layout?.showFooter!==!1;r?Xs(n,s,e):(s.header.style.display="none",Xs(n,s,e)),n.append(a);let O=X("div",{className:"persona-composer-overlay persona-pointer-events-none",attrs:{"data-persona-composer-overlay":""},style:{position:"absolute",left:"0",right:"0",bottom:"calc(var(--persona-composer-overlay-height, 0px) + var(--persona-composer-lift, 0px))",zIndex:"20"}});return k||(x.footer.style.display="none"),n.append(x.footer),n.append(O),{container:n,body:a,messagesWrapper:h,starterSuggestions:y,transcriptSuggestions:C,composerOverlay:O,suggestions:x.suggestions,textarea:x.textarea,sendButton:x.sendButton,sendButtonWrapper:x.sendButtonWrapper,micButton:x.micButton,micButtonWrapper:x.micButtonWrapper,composerForm:x.composerForm,statusText:x.statusText,welcomeHost:p,welcomeIconHolder:l.iconHolder,greetingHost:d,introKicker:l.kicker,introTitle:u,introSubtitle:m,closeButton:s.closeButton,closeButtonWrapper:s.closeButtonWrapper,clearChatButton:s.clearChatButton,clearChatButtonWrapper:s.clearChatButtonWrapper,iconHolder:s.iconHolder,headerTitle:s.headerTitle,headerSubtitle:s.headerSubtitle,header:s.header,footer:x.footer,attachmentButton:x.attachmentButton,attachmentButtonWrapper:x.attachmentButtonWrapper,attachmentInput:x.attachmentInput,attachmentPreviewsContainer:x.attachmentPreviewsContainer,actionsRow:x.actionsRow,leftActions:x.leftActions,rightActions:x.rightActions,setSendButtonMode:x.setSendButtonMode}};var cf=(e,t)=>{let n=M("button");n.type="button",n.innerHTML=`
29
29
  <span class="persona-inline-flex persona-items-center persona-justify-center persona-rounded-full persona-bg-persona-primary persona-text-white" data-role="launcher-icon">\u{1F4AC}</span>
30
30
  <img data-role="launcher-image" class="persona-rounded-full persona-object-cover" alt="" style="display:none" />
31
31
  <span class="persona-flex persona-min-w-0 persona-flex-1 persona-flex-col persona-items-start persona-text-left">
@@ -33,14 +33,14 @@ _Details: ${n.message}_`:o}var am=e=>({isError:!0,content:[{type:"text",text:e}]
33
33
  <span class="persona-block persona-w-full persona-truncate persona-text-xs persona-text-persona-launcher-muted" data-role="launcher-subtitle"></span>
34
34
  </span>
35
35
  <span class="persona-ml-2 persona-grid persona-place-items-center persona-rounded-full persona-bg-persona-primary persona-text-persona-call-to-action" data-role="launcher-call-to-action-icon">\u2197</span>
36
- `,n.addEventListener("click",t);let o=s=>{let a=s.launcher??{},l=Mt(s),d=n.querySelector("[data-role='launcher-title']");if(d){let $=a.title??"Chat Assistant";d.textContent=$,d.setAttribute("title",$)}let p=n.querySelector("[data-role='launcher-subtitle']");if(p){let $=a.subtitle??"Here to help you get answers fast";p.textContent=$,p.setAttribute("title",$)}let u=n.querySelector(".persona-flex-col");u&&(a.textHidden||l?u.style.display="none":u.style.display="");let m=n.querySelector("[data-role='launcher-icon']");if(m)if(a.agentIconHidden)m.style.display="none";else{let $=a.agentIconSize??"40px";if(m.style.height=$,m.style.width=$,a.agentIconBackgroundColor?(m.style.backgroundColor=a.agentIconBackgroundColor,m.classList.remove("persona-bg-persona-primary")):(m.style.backgroundColor="",m.classList.add("persona-bg-persona-primary")),m.innerHTML="",a.agentIconName){let T=parseFloat($)||24,I=ge(a.agentIconName,T*.6,"var(--persona-text-inverse, #ffffff)",1.5);I?(m.appendChild(I),m.style.display=""):(m.textContent=a.agentIconText??"\u{1F4AC}",m.style.display="")}else a.iconUrl?m.style.display="none":(m.textContent=a.agentIconText??"\u{1F4AC}",m.style.display="")}let y=n.querySelector("[data-role='launcher-image']");if(y){let $=a.agentIconSize??"40px";y.style.height=$,y.style.width=$,a.iconUrl&&!a.agentIconName&&!a.agentIconHidden?(y.src=a.iconUrl,y.style.display="block"):y.style.display="none"}let h=n.querySelector("[data-role='launcher-call-to-action-icon']");if(h){let $=a.callToActionIconSize??"32px";h.style.height=$,h.style.width=$,a.callToActionIconBackgroundColor?(h.style.backgroundColor=a.callToActionIconBackgroundColor,h.classList.remove("persona-bg-persona-primary")):(h.style.backgroundColor="",h.classList.add("persona-bg-persona-primary")),a.callToActionIconColor?(h.style.color=a.callToActionIconColor,h.classList.remove("persona-text-persona-call-to-action")):(h.style.color="",h.classList.add("persona-text-persona-call-to-action"));let T=0;if(a.callToActionIconPadding?(h.style.boxSizing="border-box",h.style.padding=a.callToActionIconPadding,T=(parseFloat(a.callToActionIconPadding)||0)*2):(h.style.boxSizing="",h.style.padding=""),a.callToActionIconHidden)h.style.display="none";else if(h.style.display=l?"none":"",h.innerHTML="",a.callToActionIconName){let I=parseFloat($)||24,A=Math.max(I-T,8),D=ge(a.callToActionIconName,A,"currentColor",1.5);D?h.appendChild(D):h.textContent=a.callToActionIconText??"\u2197"}else h.textContent=a.callToActionIconText??"\u2197"}let C=a.position&&Yn[a.position]?Yn[a.position]:Yn["bottom-right"],x="persona-fixed persona-flex persona-items-center persona-gap-3 persona-rounded-launcher persona-bg-persona-launcher persona-py-2.5 persona-pl-3 persona-pr-3 persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer",S="persona-relative persona-mt-4 persona-mb-4 persona-mx-auto persona-flex persona-items-center persona-justify-center persona-rounded-launcher persona-bg-persona-launcher persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer";n.className=l?S:`${x} ${C}`,l||(n.style.zIndex=String(a.zIndex??an));let k="1px solid var(--persona-launcher-border, var(--persona-border, #e5e7eb))",B="var(--persona-launcher-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1))";n.style.border=a.border??k,n.style.boxShadow=a.shadow!==void 0?a.shadow.trim()===""?"none":a.shadow:B,l?(n.style.width="0",n.style.minWidth="0",n.style.maxWidth="0",n.style.padding="0",n.style.overflow="hidden",n.style.border="none",n.style.boxShadow="none"):(n.style.width="",n.style.minWidth="",n.style.maxWidth=a.collapsedMaxWidth??"",n.style.justifyContent="",n.style.padding="",n.style.overflow="")},r=()=>{n.removeEventListener("click",t),n.remove()};return e&&o(e),{element:n,update:o,destroy:r}},vk="teaser-dismissed",lx=new Set,ax=e=>{let t=e?.persistState;return`${(typeof t=="object"?t?.keyPrefix:void 0)??"persona-"}${vk}`},Ck=(e,t)=>{if(lx.has(e))return!0;if(!t)return!1;try{return window.localStorage.getItem(e)==="1"}catch{return!1}},wk=(e,t)=>{if(lx.add(e),!!t)try{window.localStorage.setItem(e,"1")}catch{}},xk=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,Sk=e=>{let t=e?.launcher?.teaser;return!t||!t.text||e?.launcher?.enabled===!1||Mt(e??{})?null:t},cx=(e,t)=>{let n=M("div","persona-launcher-surface");n.setAttribute("data-persona-launcher-surface","true");let o=e??{},r=null,s=null,a=null,l=null,d=null,p=!1,u=!1,m=!1,y=!1,h=()=>(r?.frequency??"once")==="once"&&o.persistState!==!1,C=()=>{d!==null&&(clearTimeout(d),d=null)},x=()=>{!s||!p||(p=!1,s.hidden=!0)},S=X=>{C(),m=!0,x(),wk(ax(o),X&&h())},k=X=>{!r||m||S(X==="user"&&p)},B=()=>{d=null,!(!s||m||y)&&(u=!0,p=!0,s.hidden=!1,!(xk()||typeof s.animate!="function")&&s.animate([{opacity:"0",transform:"translateY(6px)"},{opacity:"1",transform:"none"}],{duration:220,easing:"ease-out",fill:"backwards"}))},$=()=>{!r||!s||m||u||y||Ck(ax(o),h())||(C(),d=setTimeout(B,Math.max(0,r.delayMs??0)))},T=()=>{S(h()),t()},I=X=>{X.stopPropagation(),S(h())},D=sf(e,()=>{k("user"),t()}),Q=()=>{C(),l?.removeEventListener("click",T),a?.removeEventListener("click",I),s?.remove(),s=null,l=null,a=null,p=!1},le=()=>{l=Y("button",{className:"persona-launcher-teaser-text",attrs:{type:"button"}}),l.addEventListener("click",T),a=Y("button",{className:"persona-launcher-teaser-dismiss",attrs:{type:"button"},text:"\xD7"}),a.addEventListener("click",I),s=Y("div",{className:"persona-launcher-teaser",attrs:{"data-persona-launcher-teaser":"true",role:"status","aria-live":"polite",hidden:""}},l,a),n.insertBefore(s,D.element)},re=()=>{let X=o.launcher?.position??"bottom-right",K=Yn[X]??Yn["bottom-right"];if(!s){n.className="persona-launcher-surface",n.removeAttribute("data-teaser"),n.style.zIndex="",D.element.style.position="";return}n.className=bn("persona-launcher-surface",K),n.setAttribute("data-teaser",X),n.style.zIndex=String(o.launcher?.zIndex??an),D.element.style.position="static"},E=X=>{let K=Sk(X);if(r=K,!K){Q();return}s||le(),l.textContent=K.text,a.hidden=K.dismissible===!1,a.setAttribute("aria-label",K.dismissLabel??"Dismiss message"),$()},_=X=>{o=X,D.update(X),E(X),re()},W=(X,K="user")=>{y=X,X&&k(K)},L=()=>{Q(),D.destroy(),n.remove()};return n.appendChild(D.element),e&&(E(e),re()),{element:n,launcher:D,get teaser(){return s?{element:s,show:B,dismiss:S}:null},setPanelOpen:W,update:_,destroy:L}};var dx=({config:e,showClose:t})=>{let{wrapper:n,panel:o,pillRoot:r}=rx(e),s=ix(e,t),a={wrapper:n,panel:o,pillRoot:r},l={container:s.container,body:s.body,messagesWrapper:s.messagesWrapper,starterSuggestions:s.starterSuggestions,transcriptSuggestions:s.transcriptSuggestions,composerOverlay:s.composerOverlay,welcomeHost:s.welcomeHost,welcomeIconHolder:s.welcomeIconHolder,greetingHost:s.greetingHost,introTitle:s.introTitle,introSubtitle:s.introSubtitle},d={element:s.header,iconHolder:s.iconHolder,headerTitle:s.headerTitle,headerSubtitle:s.headerSubtitle,closeButton:s.closeButton,closeButtonWrapper:s.closeButtonWrapper,clearChatButton:s.clearChatButton,clearChatButtonWrapper:s.clearChatButtonWrapper},p={footer:s.footer,form:s.composerForm,textarea:s.textarea,sendButton:s.sendButton,sendButtonWrapper:s.sendButtonWrapper,micButton:s.micButton,micButtonWrapper:s.micButtonWrapper,statusText:s.statusText,suggestions:s.suggestions,attachmentButton:s.attachmentButton,attachmentButtonWrapper:s.attachmentButtonWrapper,attachmentInput:s.attachmentInput,attachmentPreviewsContainer:s.attachmentPreviewsContainer,actionsRow:s.actionsRow,leftActions:s.leftActions,rightActions:s.rightActions,setSendButtonMode:s.setSendButtonMode,peekBanner:s.peekBanner,peekTextNode:s.peekTextNode};return{shell:a,panelElements:s,transcript:l,header:d,composer:p,replaceHeader:y=>(d.element.replaceWith(y.header),d.element=y.header,d.iconHolder=y.iconHolder,d.headerTitle=y.headerTitle,d.headerSubtitle=y.headerSubtitle,d.closeButton=y.closeButton,d.closeButtonWrapper=y.closeButtonWrapper,d.clearChatButton=y.clearChatButton,d.clearChatButtonWrapper=y.clearChatButtonWrapper,y),replaceComposer:y=>{p.footer.replaceWith(y),p.footer=y}}},af=({config:e,plugins:t,onToggle:n})=>{let o=t.find(s=>s.renderLauncher);if(o?.renderLauncher){let s=o.renderLauncher({config:e,defaultRenderer:()=>sf(e,n).element,onToggle:n});if(s)return{instance:null,element:s}}let r=cx(e,n);return{instance:r,element:r.element}};var Ak=e=>{let t=e?.persistState;return(typeof t=="object"?t?.keyPrefix:void 0)??"persona-"},Mk=(e,t,n)=>`${Ak(e)}plugin:${t}:${n}`,px=e=>{let t=new Map,n=!1,o=()=>{if(n||e()?.persistState===!1)return null;try{return typeof window>"u"||!window.localStorage?null:window.localStorage}catch{return n=!0,null}};return r=>{let s=a=>Mk(e(),r,a);return{get:a=>{let l=s(a),d=o();if(d)try{return d.getItem(l)}catch{n=!0}return t.get(l)??null},set:(a,l)=>{let d=s(a),p=o();if(p)try{p.setItem(d,l);return}catch{n=!0}t.set(d,l)},remove:a=>{let l=s(a);t.delete(l);let d=o();if(d)try{d.removeItem(l)}catch{n=!0}}}}};var na=(e,t,n)=>{let o=n;for(let r of t){let s=M("span","persona-tool-char");s.style.setProperty("--char-index",String(o)),s.textContent=r===" "?"\xA0":r,e.appendChild(s),o++}return o};var vp=require("lucide");var Ek=["persona-w-full","persona-rounded-2xl","persona-bg-persona-surface","persona-border","persona-border-persona-message-border","persona-text-persona-primary","persona-shadow-sm","persona-overflow-hidden","persona-px-0","persona-py-0"],Tk="persona-flex persona-w-full persona-items-center persona-justify-between persona-gap-3 persona-bg-transparent persona-px-4 persona-py-3 persona-text-left persona-cursor-pointer persona-border-none",Pk="persona-flex persona-w-full persona-items-center persona-justify-between persona-gap-3 persona-bg-transparent persona-px-4 persona-py-3 persona-text-left persona-cursor-default persona-border-none",kk=(e,t)=>t==null?!1:typeof t=="string"?(e.textContent=t,!0):(e.appendChild(t),!0),Cp=(e,t)=>{let n=M("div",["persona-message-bubble",e,...Ek].join(" "));return n.id=`bubble-${t}`,n.setAttribute("data-message-id",t),n},wp=e=>{let t=M("button",e.expandable?Tk:Pk);return t.type="button",e.expandable&&(t.setAttribute("aria-expanded",e.expanded?"true":"false"),t.setAttribute("data-expand-header","true")),t.setAttribute("data-bubble-type",e.bubbleType),t},lf=(e,t,n)=>{e.innerHTML="";let o=Ot(t?vp.ChevronUp:vp.ChevronDown,16,n,2);o?e.appendChild(o):e.textContent=t?"Hide":"Show"},xp=(e,t,n)=>{if(!n.expandable)return e.append(t),null;let o=M("div","persona-flex persona-items-center");lf(o,n.expanded,n.iconColor);let r=M("div",n.metaGap?"persona-flex persona-items-center persona-gap-2 persona-ml-auto":"persona-flex persona-items-center persona-ml-auto");return r.append(o),e.append(t,r),o},Sp=e=>{let t=M("div","persona-px-4 persona-py-3 persona-text-xs persona-leading-snug persona-text-persona-muted");if(t.setAttribute("data-persona-collapsed-preview",e.previewKind),t.style.display="none",t.style.whiteSpace="pre-wrap",!e.expanded&&e.isActive&&e.activePreview&&e.previewText){let n=e.renderPreview?.();kk(t,n)||(t.textContent=e.previewText),t.style.display=""}return!e.expanded&&e.isActive&&e.activeMinHeight&&(e.bubble.style.minHeight=e.activeMinHeight),t},Ap=e=>{e.header.setAttribute("aria-expanded",e.expanded?"true":"false"),e.toggleIcon&&lf(e.toggleIcon,e.expanded,e.iconColor),e.content.style.display=e.expanded?"":"none",e.collapsedPreview.style.display=e.expanded?"none":e.collapsedPreview.textContent||e.collapsedPreview.childNodes.length?"":"none"},Mp=(e,t,n)=>{let o=n.stateSet.has(e),r=t.querySelector('button[data-expand-header="true"]'),s=t.querySelector(".persona-border-t"),a=t.querySelector(`[data-persona-collapsed-preview="${n.previewKind}"]`);if(!r||!s)return;r.setAttribute("aria-expanded",o?"true":"false");let d=r.querySelector(".persona-ml-auto")?.querySelector(":scope > .persona-flex.persona-items-center");d&&lf(d,o,n.iconColor),s.style.display=o?"":"none",a&&(a.style.display=o?"none":a.textContent||a.childNodes.length?"":"none")};var oa=new Set,Lk=(e,t)=>{let n=e.reasoning?.chunks.join("").trim()??"";return n?n.split(/\r?\n/).map(o=>o.trim()).filter(Boolean).slice(0,t).join(`
37
- `):""},ux=(e,t)=>{Mp(e,t,{stateSet:oa,previewKind:"reasoning",iconColor:"currentColor"})},cf=(e,t)=>{let n=e.reasoning,o=Cp("persona-reasoning-bubble",e.id);if(!n)return o;let r=t?.features?.reasoningDisplay??{},s=r.expandable!==!1,a=s&&oa.has(e.id),l=n.status!=="complete",d=Lk(e,r.previewMaxLines??3),p=wp({expandable:s,expanded:a,bubbleType:"reasoning"}),u=M("div","persona-flex persona-flex-col persona-text-left"),m=M("span","persona-text-xs persona-text-persona-primary"),y="Thinking...",h=t?.reasoning??{},C=String(n.startedAt??Date.now()),x=()=>{let L=M("span","");return L.setAttribute("data-tool-elapsed",C),L.textContent=wd(n),L},S=h.renderCollapsedSummary?.({message:e,reasoning:n,defaultSummary:y,previewText:d,isActive:l,config:t??{},elapsed:wd(n),createElapsedElement:x});typeof S=="string"&&S.trim()?(m.textContent=S,u.appendChild(m)):S instanceof HTMLElement?u.appendChild(S):(m.textContent=y,u.appendChild(m));let k=M("span","persona-text-xs persona-text-persona-primary");k.textContent=Av(n),u.appendChild(k);let B=r.loadingAnimation??"none",$=h.activeTextTemplate,T=h.completeTextTemplate,I=l?$:T,A=S instanceof HTMLElement,D=(L,X)=>{m.textContent="";let K=xd(L,""),de=0;for(let ue of K){let fe=ue.styles.length>0?(()=>{let Me=M("span",ue.styles.map(ye=>`persona-tool-text-${ye}`).join(" "));return m.appendChild(Me),Me})():m;if(ue.isDuration&&l)fe.appendChild(x());else{let Me=ue.isDuration?wd(n):ue.text;X?de=na(fe,Me,de):fe.appendChild(document.createTextNode(Me))}}};if(!A&&I)if(k.style.display="none",m.style.display="",l&&B!=="none"){let L=h.loadingAnimationDuration??2e3;m.setAttribute("data-preserve-animation","true"),B==="pulse"?(m.classList.add("persona-tool-loading-pulse"),m.style.setProperty("--persona-tool-anim-duration",`${L}ms`),D(I,!1)):(m.classList.add(`persona-tool-loading-${B}`),m.style.setProperty("--persona-tool-anim-duration",`${L}ms`),B==="shimmer-color"&&(h.loadingAnimationColor&&m.style.setProperty("--persona-tool-anim-color",h.loadingAnimationColor),h.loadingAnimationSecondaryColor&&m.style.setProperty("--persona-tool-anim-secondary-color",h.loadingAnimationSecondaryColor)),D(I,!0))}else D(I,!1);else if(!A&&l&&B!=="none"){m.style.display="";let L=h.loadingAnimationDuration??2e3;if(m.setAttribute("data-preserve-animation","true"),B==="pulse")m.classList.add("persona-tool-loading-pulse"),m.style.setProperty("--persona-tool-anim-duration",`${L}ms`);else{m.classList.add(`persona-tool-loading-${B}`),m.style.setProperty("--persona-tool-anim-duration",`${L}ms`),B==="shimmer-color"&&(h.loadingAnimationColor&&m.style.setProperty("--persona-tool-anim-color",h.loadingAnimationColor),h.loadingAnimationSecondaryColor&&m.style.setProperty("--persona-tool-anim-secondary-color",h.loadingAnimationSecondaryColor));let X=m.textContent||y;m.textContent="",na(m,X,0)}n.status==="complete"&&(m.style.display="none")}else A||(n.status==="complete"?m.style.display="none":m.style.display="");if(r.iconName&&!A){let L=M("span","persona-reasoning-header-icon"),X=ge(r.iconName,16,"currentColor",2);X&&(L.appendChild(X),p.appendChild(L))}let Q="currentColor",le=xp(p,u,{expandable:s,expanded:a,iconColor:Q,metaGap:!1}),re=Sp({bubble:o,previewKind:"reasoning",expanded:a,isActive:l,previewText:d,activePreview:r.activePreview,activeMinHeight:r.activeMinHeight,renderPreview:()=>t?.reasoning?.renderCollapsedPreview?.({message:e,reasoning:n,defaultPreview:d,isActive:l,config:t??{}})});if(!s)return o.append(p,re),o;let E=M("div","persona-border-t persona-border-gray-200 persona-bg-gray-50 persona-px-4 persona-py-3");E.style.display=a?"":"none";let _=n.chunks.join(""),W=M("div","persona-whitespace-pre-wrap persona-text-xs persona-leading-snug persona-text-persona-muted");return W.textContent=_||(n.status==="complete"?"No additional context was shared.":"Waiting for details\u2026"),E.appendChild(W),Ap({expanded:a,header:p,toggleIcon:le,content:E,collapsedPreview:re,iconColor:Q}),o.append(p,re,E),o};var ra=new Set,gx=e=>e.toggleTextColor||e.headerTextColor||"var(--persona-primary, #171717)",Ik=(e,t)=>{let n=e.toolCall;if(!n)return"";let o=(n.chunks??[]).join("").trim();if(o)return o.split(/\r?\n/).map(a=>a.trim()).filter(Boolean).slice(-t).join(`
38
- `);let r=vd(n.args).trim();return r?r.split(/\r?\n/).map(s=>s.trim()).filter(Boolean).slice(0,t).join(`
39
- `):""},df=(e,t)=>{e.style.backgroundColor=t.codeBlockBackgroundColor??"var(--persona-container, #f3f4f6)",e.style.borderColor=t.codeBlockBorderColor??"var(--persona-border, #e5e7eb)",e.style.color=t.codeBlockTextColor??"var(--persona-text, #171717)"},Rk=(e,t)=>{let n=e.toolCall,o=t?.features?.toolCallDisplay,r=o?.collapsedMode??"tool-call",s=Ik(e,o?.previewMaxLines??3),a=n?Mv(n):"";if(!n)return{summary:a,previewText:s,isActive:!1};let l=n.status!=="complete",d=t?.toolCall??{},p=a;return r==="tool-name"?p=n.name?.trim()||a:r==="tool-preview"&&s&&(p=s),l&&d.activeTextTemplate?p=Xg(n,d.activeTextTemplate,p):!l&&d.completeTextTemplate&&(p=Xg(n,d.completeTextTemplate,p)),{summary:p,previewText:s,isActive:l}},mx=(e,t,n)=>{Mp(e,t,{stateSet:ra,previewKind:"tool",iconColor:gx(n?.toolCall??{})})},pf=(e,t)=>{let n=e.toolCall,o=t?.toolCall??{},r=Cp("persona-tool-bubble",e.id);if(o.backgroundColor&&(r.style.backgroundColor=o.backgroundColor),o.borderColor&&(r.style.borderColor=o.borderColor),o.borderWidth&&(r.style.borderWidth=o.borderWidth),o.borderRadius&&(r.style.borderRadius=o.borderRadius),r.style.boxShadow=o.shadow!==void 0?o.shadow.trim()===""?"none":o.shadow:"var(--persona-tool-bubble-shadow, 0 5px 15px rgba(15, 23, 42, 0.08))",!n)return r;let s=t?.features?.toolCallDisplay??{},a=s.expandable!==!1,l=a&&ra.has(e.id),{summary:d,previewText:p,isActive:u}=Rk(e,t),m=wp({expandable:a,expanded:l,bubbleType:"tool"});o.headerBackgroundColor&&(m.style.backgroundColor=o.headerBackgroundColor),o.headerPaddingX&&(m.style.paddingLeft=o.headerPaddingX,m.style.paddingRight=o.headerPaddingX),o.headerPaddingY&&(m.style.paddingTop=o.headerPaddingY,m.style.paddingBottom=o.headerPaddingY);let y=M("div","persona-flex persona-flex-col persona-text-left"),h=M("span","persona-text-xs persona-text-persona-primary");o.headerTextColor&&(h.style.color=o.headerTextColor);let C=String(n.startedAt??Date.now()),x=()=>{let E=M("span","");return E.setAttribute("data-tool-elapsed",C),E.textContent=pl(n),E},S=o.renderCollapsedSummary?.({message:e,toolCall:n,defaultSummary:d,previewText:p,collapsedMode:s.collapsedMode??"tool-call",isActive:u,config:t??{},elapsed:pl(n),createElapsedElement:x});typeof S=="string"&&S.trim()?(h.textContent=S,y.appendChild(h)):S instanceof HTMLElement?y.appendChild(S):(h.textContent=d,y.appendChild(h));let k=s.loadingAnimation??"none",B=o.activeTextTemplate,$=o.completeTextTemplate,T=u?B:$,I=S instanceof HTMLElement,A=(E,_)=>{h.textContent="";let W=n.name?.trim()||"tool",L=xd(E,W),X=0;for(let K of L){let de=K.styles.length>0?(()=>{let ue=M("span",K.styles.map(fe=>`persona-tool-text-${fe}`).join(" "));return h.appendChild(ue),ue})():h;if(K.isDuration&&u)de.appendChild(x());else{let ue=K.isDuration?pl(n):K.text;_?X=na(de,ue,X):de.appendChild(document.createTextNode(ue))}}};if(!I)if(u&&k!=="none"){let E=o.loadingAnimationDuration??2e3;if(h.setAttribute("data-preserve-animation","true"),k==="pulse")h.classList.add("persona-tool-loading-pulse"),h.style.setProperty("--persona-tool-anim-duration",`${E}ms`),T&&A(T,!1);else if(h.classList.add(`persona-tool-loading-${k}`),h.style.setProperty("--persona-tool-anim-duration",`${E}ms`),k==="shimmer-color"&&(o.loadingAnimationColor&&h.style.setProperty("--persona-tool-anim-color",o.loadingAnimationColor),o.loadingAnimationSecondaryColor&&h.style.setProperty("--persona-tool-anim-secondary-color",o.loadingAnimationSecondaryColor)),T)A(T,!0);else{let _=h.textContent||d;h.textContent="",na(h,_,0)}}else T&&A(T,!1);let D=gx(o),Q=xp(m,y,{expandable:a,expanded:l,iconColor:D,metaGap:!0}),le=Sp({bubble:r,previewKind:"tool",expanded:l,isActive:u,previewText:p,activePreview:s.activePreview,activeMinHeight:s.activeMinHeight,renderPreview:()=>o.renderCollapsedPreview?.({message:e,toolCall:n,defaultPreview:p,isActive:u,config:t??{}})});if(!a)return r.append(m,le),r;let re=M("div","persona-border-t persona-border-gray-200 persona-bg-gray-50 persona-space-y-3 persona-px-4 persona-py-3");if(re.style.display=l?"":"none",o.contentBackgroundColor&&(re.style.backgroundColor=o.contentBackgroundColor),o.contentTextColor&&(re.style.color=o.contentTextColor),o.contentPaddingX&&(re.style.paddingLeft=o.contentPaddingX,re.style.paddingRight=o.contentPaddingX),o.contentPaddingY&&(re.style.paddingTop=o.contentPaddingY,re.style.paddingBottom=o.contentPaddingY),n.name){let E=M("div","persona-text-xs persona-text-persona-muted persona-italic");o.contentTextColor?E.style.color=o.contentTextColor:o.headerTextColor&&(E.style.color=o.headerTextColor),E.textContent=n.name,re.appendChild(E)}if(n.args!==void 0){let E=M("div","persona-space-y-1"),_=M("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(_.style.color=o.labelTextColor),_.textContent="Arguments";let W=M("pre","persona-max-h-48 persona-overflow-auto persona-whitespace-pre-wrap persona-rounded-lg persona-border persona-px-3 persona-py-2 persona-text-xs");W.style.fontSize="0.75rem",W.style.lineHeight="1rem",df(W,o),W.textContent=vd(n.args),E.append(_,W),re.appendChild(E)}if(n.chunks&&n.chunks.length){let E=M("div","persona-space-y-1"),_=M("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(_.style.color=o.labelTextColor),_.textContent="Activity";let W=M("pre","persona-max-h-48 persona-overflow-auto persona-whitespace-pre-wrap persona-rounded-lg persona-border persona-px-3 persona-py-2 persona-text-xs");W.style.fontSize="0.75rem",W.style.lineHeight="1rem",df(W,o),W.textContent=n.chunks.join(""),E.append(_,W),re.appendChild(E)}if(n.status==="complete"&&n.result!==void 0){let E=M("div","persona-space-y-1"),_=M("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(_.style.color=o.labelTextColor),_.textContent="Result";let W=M("pre","persona-max-h-48 persona-overflow-auto persona-whitespace-pre-wrap persona-rounded-lg persona-border persona-px-3 persona-py-2 persona-text-xs");W.style.fontSize="0.75rem",W.style.lineHeight="1rem",df(W,o),W.textContent=vd(n.result),E.append(_,W),re.appendChild(E)}if(n.status==="complete"&&typeof n.duration=="number"){let E=M("div","persona-text-xs persona-text-persona-muted");o.contentTextColor&&(E.style.color=o.contentTextColor),E.textContent=`Duration: ${n.duration}ms`,re.appendChild(E)}return Ap({expanded:l,header:m,toggleIcon:Q,content:re,collapsedPreview:le,iconColor:D}),r.append(m,le,re),r};var{setLoader:AB,load:Hk,provide:MB,getSync:Wk}=bt({fallbackImport:()=>import("@runtypelabs/persona/approval-ui")});var fx=Hk;var hx=Wk;var{setLoader:PB,load:Ok}=bt({fallbackImport:()=>import("@runtypelabs/persona/event-stream-view")});var uf=Ok;var gf=class{constructor(){this.components=new Map;this.options=new Map}register(t,n,o){this.components.has(t)&&console.warn(`[ComponentRegistry] Component "${t}" is already registered. Overwriting.`),this.components.set(t,n),o?this.options.set(t,o):this.options.delete(t)}unregister(t){this.components.delete(t),this.options.delete(t)}get(t){return this.components.get(t)}has(t){return this.components.has(t)}getOptions(t){return this.options.get(t)}getAllNames(){return Array.from(this.components.keys())}clear(){this.components.clear(),this.options.clear()}registerAll(t){Object.entries(t).forEach(([n,o])=>{this.register(n,o)})}},xo=new gf;var mf=["PersonaArtifactCard","PersonaArtifactInline"],{setLoader:OB,load:Bk,provide:BB,getSync:_k}=bt({fallbackImport:()=>import("@runtypelabs/persona/artifacts-ui")}),sa=null,Ep=new Set,yx=e=>{if(sa)return sa;sa=e,e.initArtifactsUi({componentRegistry:xo});for(let o of mf)xo.has(o)||xo.register(o,o==="PersonaArtifactCard"?e.PersonaArtifactCard:e.PersonaArtifactInline,{bubbleChrome:!1});let t=No();t?e.__provideMarkdownParsers(t):Ri(()=>{let o=No();o&&e.__provideMarkdownParsers(o)}),e.__setIconsExtraLoader(()=>ld());let n=[...Ep];Ep.clear();for(let o of n)try{o()}catch{}return e};var Tp=()=>Bk().then(yx);var hr=()=>{if(sa)return sa;let e=_k();return e?yx(e):null},ff=e=>sa?()=>{}:(Ep.add(e),()=>{Ep.delete(e)});function Sn(e){return e?.features?.artifacts?.enabled===!0}function bx(e,t){if(e.classList.remove("persona-artifact-border-full","persona-artifact-border-left"),e.style.removeProperty("--persona-artifact-pane-border"),e.style.removeProperty("--persona-artifact-pane-border-left"),!Sn(t))return;let n=t.features?.artifacts?.layout,o=n?.paneBorder?.trim(),r=n?.paneBorderLeft?.trim();o?(e.classList.add("persona-artifact-border-full"),e.style.setProperty("--persona-artifact-pane-border",o)):r&&(e.classList.add("persona-artifact-border-left"),e.style.setProperty("--persona-artifact-pane-border-left",r))}function Dk(e){e.style.removeProperty("--persona-artifact-doc-toolbar-icon-color"),e.style.removeProperty("--persona-artifact-doc-toggle-active-bg"),e.style.removeProperty("--persona-artifact-doc-toggle-active-border")}var vx=["panel","seamless","detached"];function hf(e){let t=e.features?.artifacts?.layout?.paneAppearance;return t&&vx.includes(t)?t:t?"panel":e.launcher?.detachedPanel?"detached":"panel"}function yf(e){return!e||!Sn(e)?!1:hf(e)==="detached"}function Ol(e,t){if(!Sn(t)){e.style.removeProperty("--persona-artifact-split-gap"),e.style.removeProperty("--persona-artifact-pane-width"),e.style.removeProperty("--persona-artifact-pane-max-width"),e.style.removeProperty("--persona-artifact-pane-min-width"),e.style.removeProperty("--persona-artifact-drawer-width"),e.style.removeProperty("--persona-artifact-pane-bg"),e.style.removeProperty("--persona-artifact-pane-padding"),Dk(e),bx(e,t);return}let n=t.features?.artifacts?.layout,o=hf(t)==="detached"?"var(--persona-panel-inset)":"0";e.style.setProperty("--persona-artifact-split-gap",n?.splitGap??o),e.style.setProperty("--persona-artifact-pane-width",n?.paneWidth??"40%"),e.style.setProperty("--persona-artifact-pane-max-width",n?.paneMaxWidth??"28rem"),n?.drawerWidth?e.style.setProperty("--persona-artifact-drawer-width",n.drawerWidth):e.style.removeProperty("--persona-artifact-drawer-width"),n?.paneMinWidth?e.style.setProperty("--persona-artifact-pane-min-width",n.paneMinWidth):e.style.removeProperty("--persona-artifact-pane-min-width");let r=n?.paneBackground?.trim();r?e.style.setProperty("--persona-artifact-pane-bg",r):e.style.removeProperty("--persona-artifact-pane-bg");let s=n?.panePadding?.trim();s?e.style.setProperty("--persona-artifact-pane-padding",s):e.style.removeProperty("--persona-artifact-pane-padding");let a=[[n?.documentToolbarIconColor,"--persona-artifact-doc-toolbar-icon-color"],[n?.documentToolbarToggleActiveBackground,"--persona-artifact-doc-toggle-active-bg"],[n?.documentToolbarToggleActiveBorderColor,"--persona-artifact-doc-toggle-active-border"],[n?.documentToolbarToggleActiveColor,"--persona-artifact-doc-toggle-active-color"]];for(let[l,d]of a){let p=l?.trim();p?e.style.setProperty(d,p):e.style.removeProperty(d)}bx(e,t)}function Bl(e,t){for(let l of vx)e.classList.remove(`persona-artifact-appearance-${l}`);if(e.style.removeProperty("--persona-artifact-pane-radius"),e.style.removeProperty("--persona-artifact-pane-shadow"),e.style.removeProperty("--persona-artifact-chat-shadow"),!Sn(t))return;let n=t.features?.artifacts?.layout,o=hf(t);e.classList.add(`persona-artifact-appearance-${o}`);let r=n?.paneBorderRadius?.trim();r&&e.style.setProperty("--persona-artifact-pane-radius",r);let s=n?.paneShadow?.trim();s&&e.style.setProperty("--persona-artifact-pane-shadow",s);let a=n?.chatShadow?.trim();a&&e.style.setProperty("--persona-artifact-chat-shadow",a)}function Cx(e,t){return!t||!Sn(e)?!1:e.features?.artifacts?.layout?.expandLauncherPanelWhenOpen!==!1}var Nk=new Set(["__proto__","prototype","constructor"]),Fk=new Set(["collapsed","card","panel","inline"]),wx=new Set(["markdown","component"]),$k=/^[a-z0-9][a-z0-9!#$&^_.+-]*\/(\*|[a-z0-9!#$&^_.+-]+)$/,Zs=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),kp=e=>!Nk.has(e),bf=e=>typeof e=="string"&&Fk.has(e),ei=e=>Object.keys(e).length>0;function Vo(e,t,n,o){e.push({path:t,code:n,message:o})}var Uk="Ignored because this key is not part of the persisted preference schema.",Pp="Ignored an unsupported value.",jk="Expected collapsed, panel, or inline.",qk='Expected a MIME type such as "text/html" or a wildcard such as "image/*".',xx={kind:"mode",message:Pp},ia={kind:"string",message:"Expected a CSS length string."},yr={kind:"boolean"},zk={paneWidth:ia,paneMaxWidth:ia,paneMinWidth:ia,expandedPanelWidth:ia,resizableMinWidth:ia,resizableMaxWidth:ia,expandLauncherPanelWhenOpen:yr,resizable:yr},Vk={kind:"object",message:"Expected a preference object.",children:{showToolCalls:yr,showReasoning:yr,toolCallDisplay:{kind:"object",children:{collapsedMode:{kind:"enum",values:new Set(["tool-call","tool-name","tool-preview"]),message:Pp},groupedMode:{kind:"enum",values:new Set(["stack","summary"]),message:Pp},loadingAnimation:{kind:"enum",values:new Set(["none","pulse","shimmer","shimmer-color","rainbow"]),message:Pp},expandable:yr,grouped:yr}},reasoningDisplay:{kind:"object",children:{expandable:yr,activePreview:yr}},artifacts:{kind:"object",children:{display:{kind:"object",bareMode:!0,message:"Expected an artifact display rules object.",children:{default:xx,files:{kind:"object",bareMode:!0,message:"Expected collapsed, panel, inline, or a file display rules object.",children:{default:xx,byMediaType:{kind:"modeMap",keys:"mediaType"}}},byType:{kind:"modeMap",keys:wx,alias:"byKind",deprecated:"Use byKind. The legacy selector was normalized automatically."},byKind:{kind:"modeMap",keys:wx}}},filePreview:{kind:"object",children:{enabled:yr}},layout:{kind:"object",children:zk}}}}};function Sx(e,t,n,o){if(e!==void 0)switch(t.kind){case"boolean":return typeof e=="boolean"?e:Vo(o,n,"invalid_type","Expected a boolean.");case"string":return typeof e=="string"?e:Vo(o,n,"invalid_type",t.message);case"enum":return typeof e=="string"&&t.values.has(e)?e:Vo(o,n,"invalid_value",t.message);case"mode":return bf(e)?Hn(e):Vo(o,n,"invalid_value",t.message);case"modeMap":{if(!Zs(e))return Vo(o,n,"invalid_type","Expected an object.");let r=t.keys==="mediaType"?void 0:t.keys,s={};for(let[a,l]of Object.entries(e)){let d=r?a:Ur(a);kp(a)&&(r?r.has(a):$k.test(d))?bf(l)?s[d]=Hn(l):Vo(o,`${n}.${a}`,"invalid_value",jk):Vo(o,`${n}.${a}`,r?"unknown_key":"invalid_value",r?"Ignored an unsupported selector.":qk)}return ei(s)?s:void 0}case"object":{if(t.bareMode&&bf(e))return Hn(e);if(!Zs(e))return Vo(o,n,"invalid_type",t.message??"Expected an object.");let r=Object.keys(t.children),s=l=>n?`${n}.${l}`:l;for(let l of Object.keys(e))(!kp(l)||!r.includes(l))&&Vo(o,s(l),"unknown_key",Uk);let a={};for(let l of r){let d=t.children[l],p=Sx(e[l],d,s(l),o);if(d.deprecated&&e[l]!==void 0&&Vo(o,s(l),"deprecated_key",d.deprecated),p===void 0)continue;let u=d.alias??l,m=a[u];a[u]=Zs(m)&&Zs(p)?{...m,...p}:p}return ei(a)?a:void 0}}}function vf(e){let t=[];return{preferences:(e===null?void 0:Sx(e,Vk,"",t))??{},issues:t}}function aa(e){if(Array.isArray(e))return e.map(aa);if(!Zs(e))return e;let t={};for(let[n,o]of Object.entries(e))kp(n)&&o!==void 0&&(t[n]=aa(o));return t}function Ax(e,t){let n=aa(e);for(let[o,r]of Object.entries(t)){if(!kp(o)||r===void 0)continue;let s=n[o];n[o]=Zs(s)&&Zs(r)?Ax(s,r):aa(r)}return n}function Kk(e){let t={},n;for(let r of e){let s=vf(r).preferences;n=Mx(n,s.artifacts?.display),t=Ax(t,s)}let o=t;return o.artifacts&&(n!==void 0?o.artifacts.display=n:delete o.artifacts.display),o}function Gk(e,t){if(t===void 0)return e===void 0?void 0:aa(e);if(typeof t=="string")return t;let n=typeof e=="string"?{default:e}:e??{},o=t.default??n.default,r={...n.byMediaType,...t.byMediaType},s={...o?{default:o}:{},...ei(r)?{byMediaType:r}:{}};return ei(s)?s:void 0}function Mx(e,t){if(t===void 0)return e===void 0?void 0:aa(e);if(typeof t=="string")return t;let n=typeof e=="string"?{default:e}:e??{},o=t.default??n.default,r={...n.byType,...n.byKind,...t.byType,...t.byKind},s=Gk(n.files,t.files),a={...o?{default:o}:{},...ei(r)?{byKind:r}:{},...s!==void 0?{files:s}:{}};return ei(a)?a:void 0}function Cf(e={},t){let n=Kk(t),o={...e};if(n.showToolCalls!==void 0&&(o.showToolCalls=n.showToolCalls),n.showReasoning!==void 0&&(o.showReasoning=n.showReasoning),n.toolCallDisplay&&(o.toolCallDisplay={...e.toolCallDisplay,...n.toolCallDisplay}),n.reasoningDisplay&&(o.reasoningDisplay={...e.reasoningDisplay,...n.reasoningDisplay}),n.artifacts){let r=e.artifacts??{},s={...r};if(n.artifacts.display!==void 0){let a=Mx(r.display,n.artifacts.display);a!==void 0&&(s.display=a)}n.artifacts.filePreview&&(s.filePreview={...r.filePreview,enabled:n.artifacts.filePreview.enabled}),n.artifacts.layout&&(s.layout={...r.layout,...n.artifacts.layout}),o.artifacts=s}return o}function _l(e){let t=e.preferences;return!t||!ei(t)?e:{...e,features:Cf(e.features??{},[t])}}function Qk(e,t){if(!e?.trim())return t;let n=/^(\d+(?:\.\d+)?)px\s*$/i.exec(e.trim());return n?Math.max(0,Number(n[1])):t}function Yk(e){if(!e?.trim())return null;let t=/^(\d+(?:\.\d+)?)px\s*$/i.exec(e.trim());return t?Math.max(0,Number(t[1])):null}function Xk(e,t,n){return n<t?t:Math.min(n,Math.max(t,e))}function Jk(e,t,n,o){let r=e-o-2*t-n;return Math.max(0,r)}function wf(e,t){let o=(t.getComputedStyle(e).gap||"0px").trim().split(/\s+/)[0]??"0px",r=/^([\d.]+)px$/i.exec(o);if(r)return Number(r[1]);let s=/^([\d.]+)/.exec(o);return s?Number(s[1]):8}function Ex(e,t,n,o,r,s,a=200){let l=Qk(r,200),d=Jk(t,n,o,a);d=Math.max(l,d);let p=Yk(s);return p!==null&&(d=Math.min(d,p)),Xk(e,l,d)}var{setLoader:jB,load:Zk,provide:qB,getSync:eL}=bt({fallbackImport:()=>import("@runtypelabs/persona/forms-ui")});var Tx=Zk;var Px=eL;var xf=class{constructor(){this.plugins=new Map}register(t){this.plugins.has(t.id)&&console.warn(`Plugin "${t.id}" is already registered. Overwriting.`),this.plugins.set(t.id,t),t.onRegister?.()}unregister(t){let n=this.plugins.get(t);n&&(n.onUnregister?.(),this.plugins.delete(t))}getAll(){return Array.from(this.plugins.values()).sort((t,n)=>(n.priority??0)-(t.priority??0))}getForInstance(t){let n=this.getAll();if(!t||t.length===0)return n;let o=new Set(t.map(s=>s.id));return[...n.filter(s=>!o.has(s.id)),...t].sort((s,a)=>(a.priority??0)-(s.priority??0))}clear(){this.plugins.forEach(t=>t.onUnregister?.()),this.plugins.clear()}},Dl=new xf;var kx=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),tL=new Set(["headers","agent","storageAdapter","components","targetProviders","voiceRecognition.provider.custom","features.artifacts.display","features.streamAnimation.plugins","preferences","welcome.icon"]),Lx=(e,t,n)=>{if(!kx(e)||!kx(t)||tL.has(n))return t;let o={...e};for(let r of Object.keys(t)){if(t[r]===void 0){delete o[r];continue}let s=n?`${n}.${r}`:r;o[r]=Lx(e[r],t[r],s)}return o};function Lp(e,t){let n=Lx(e,t,"");return Gi(n)}var Ix=()=>{let e=new Map,t=(r,s)=>(e.has(r)||e.set(r,new Set),e.get(r).add(s),()=>n(r,s)),n=(r,s)=>{e.get(r)?.delete(s)};return{on:t,off:n,emit:(r,s)=>{e.get(r)?.forEach(a=>{try{a(s)}catch(l){typeof console<"u"&&console.error("[AgentWidget] Event handler error:",l)}})}}};var nL=e=>{let t=e.match(/```(?:json)?\s*([\s\S]*?)```/i);return t?t[1]:e},oL=e=>{let t=e.trim(),n=t.indexOf("{");if(n===-1)return null;let o=0;for(let r=n;r<t.length;r+=1){let s=t[r];if(s==="{"&&(o+=1),s==="}"&&(o-=1,o===0))return t.slice(n,r+1)}return null},Nl=({text:e})=>{if(!e||!e.includes("{"))return null;try{let t=nL(e),n=oL(t);if(!n)return null;let o=JSON.parse(n);if(!o||typeof o!="object"||!o.action)return null;let{action:r,...s}=o;return{type:String(r),payload:s,raw:o}}catch{return null}},Sf=e=>typeof e=="string"?e:e==null?"":String(e),ti={message:e=>e.type!=="message"?void 0:{handled:!0,displayText:Sf(e.payload.text)},messageAndClick:(e,t)=>{if(e.type!=="message_and_click")return;let n=e.payload,o=Sf(n.element);if(o&&t.document?.querySelector){let r=t.document.querySelector(o);r?setTimeout(()=>{r.click()},400):typeof console<"u"&&console.warn("[AgentWidget] Element not found for selector:",o)}return{handled:!0,displayText:Sf(n.text)}}},Rx=e=>Array.isArray(e)?e.map(t=>String(t)):[],Fl=e=>{let t=new Set(Rx(e.getSessionMetadata().processedActionMessageIds)),n=()=>{t=new Set(Rx(e.getSessionMetadata().processedActionMessageIds))},o=()=>{let s=Array.from(t);e.updateSessionMetadata(a=>({...a,processedActionMessageIds:s}))};return{process:s=>{if(s.streaming||s.message.role!=="assistant"||!s.text||t.has(s.message.id))return null;let a=typeof s.raw=="string"&&s.raw||typeof s.message.rawContent=="string"&&s.message.rawContent||typeof s.text=="string"&&s.text||null;!a&&typeof s.text=="string"&&s.text.trim().startsWith("{")&&typeof console<"u"&&console.warn("[AgentWidget] Structured response detected but no raw payload was provided. Ensure your stream parser returns { text, raw }.");let l=a?e.parsers.reduce((p,u)=>p||u?.({text:a,message:s.message})||null,null):null;if(!l)return null;t.add(s.message.id),o();let d={action:l,message:s.message};e.emit("action:detected",d);for(let p of e.handlers)if(p)try{let u=()=>{e.emit("action:resubmit",d)},m=p(l,{message:s.message,metadata:e.getSessionMetadata(),updateMetadata:e.updateSessionMetadata,document:e.documentRef,triggerResubmit:u});if(!m)continue;if(m.handled){let y=m.persistMessage!==!1;return{text:m.displayText!==void 0?m.displayText:"",persist:y,resubmit:m.resubmit}}}catch(u){typeof console<"u"&&console.error("[AgentWidget] Action handler error:",u)}return{text:"",persist:!0}},syncFromMetadata:n}};var rL=e=>{if(!e)return null;try{return JSON.parse(e)}catch(t){return typeof console<"u"&&console.error("[AgentWidget] Failed to parse stored state:",t),null}},sL=e=>e.map(t=>({...t,streaming:!1})),iL=e=>e.map(t=>({...t,status:"complete"})),Ip=(e="persona-state")=>{let t=()=>typeof window>"u"||!window.localStorage?null:window.localStorage;return{load:()=>{let n=t();return n?rL(n.getItem(e)):null},save:n=>{let o=t();if(o)try{let r={...n,messages:n.messages?sL(n.messages):void 0,artifacts:n.artifacts?iL(n.artifacts):void 0};o.setItem(e,JSON.stringify(r))}catch(r){typeof console<"u"&&console.error("[AgentWidget] Failed to persist state:",r)}},clear:()=>{let n=t();if(n)try{n.removeItem(e)}catch(o){typeof console<"u"&&console.error("[AgentWidget] Failed to clear stored state:",o)}}}};var aL=e=>{let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return t.toString(16).padStart(8,"0")},Hx=async e=>{let t=globalThis.crypto?.subtle;if(t)try{let n=await t.digest("SHA-256",new TextEncoder().encode(e));return Array.from(new Uint8Array(n)).map(o=>o.toString(16).padStart(2,"0")).join("")}catch{}return aL(e)},lL=async(e,t)=>{let n=await Hx(e);return{storageKey:`${t}visitor:${n}`,leaseKey:`${t}visitor-init-lock:${n}`,lockName:`persona-visitor-init:${await Hx(`${e}\0${t}`)}`}};var Wx=(e,t,n)=>{let o="",r="",s="",a=!1,l=!1,d=0,p=null,u=null,m=new Set,y=()=>{if(n||a)return null;try{return typeof window>"u"||!window.localStorage?null:window.localStorage}catch{return a=!0,null}},h=()=>{let A=y();if(!A)return p;try{return A.getItem(o)}catch{return a=!0,p}},C=(A,D)=>{if(l||A===p)return;let Q=p;p=A,d+=1;let le={previousToken:Q,token:A,source:D,revision:d};for(let re of m)re(le)},x=A=>{l||A.key!==null&&A.key!==o||C(A.key===null?null:A.newValue??null,"external")},S=(async()=>{let A=await lL(e,t);o=A.storageKey,r=A.leaseKey,s=A.lockName,p=h(),!n&&typeof window<"u"&&window.addEventListener("storage",x)})(),k=A=>new Promise(D=>setTimeout(D,A)),B=()=>{let A=y();if(!A)return null;try{let D=A.getItem(r);if(!D)return null;let Q=JSON.parse(D);return typeof Q?.expiresAt=="number"&&typeof Q?.ownerNonce=="string"?Q:null}catch{return null}},$=A=>{let D=y();if(D)try{B()?.ownerNonce===A&&D.removeItem(r)}catch{}},T=A=>new Promise(D=>{let Q=setTimeout(le,A);function le(){clearTimeout(Q),window.removeEventListener("storage",re),D()}function re(E){(E.key===null||E.key===r)&&le()}window.addEventListener("storage",re)}),I=async A=>{let D=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,Q=Date.now()+15e3;for(;Date.now()<Q;){let le=y();if(!le)break;let re=Date.now(),E=B();if(E&&E.expiresAt>re&&E.ownerNonce!==D){await T(Math.min(E.expiresAt-re,500));continue}try{le.setItem(r,JSON.stringify({ownerNonce:D,expiresAt:re+1e4}))}catch{a=!0;break}if(await k(20+Math.random()*40),B()?.ownerNonce!==D){await T(500);continue}u=D;try{return await A()}finally{u=null,$(D)}}return A()};return{ready:S,async get(){return await S,C(h(),"external"),p},async set(A){await S;let D=y();if(D)try{D.setItem(o,A)}catch{a=!0}C(A,"local")},async clear(){await S;let A=y();if(A)try{A.removeItem(o)}catch{a=!0}C(null,"local")},revision(){return d},subscribe(A){return m.add(A),()=>{m.delete(A)}},async withFirstInitLock(A){await S;let D=globalThis.navigator?.locks;return D?.request?D.request(s,()=>A()):y()?I(A):A()},matches(A,D,Q){return A===e&&D===t&&Q===n},destroy(){l=!0,m.clear(),typeof window<"u"&&window.removeEventListener("storage",x),u&&$(u)}}};var{setLoader:e_,load:cL}=bt({fallbackImport:()=>import("@runtypelabs/persona/history-view")});var Af=cL;var Mf=(e,t)=>{console.warn(`[persona] ${e} threw`,t)},br=e=>Object.freeze({...e}),Ox=e=>Object.freeze({id:e.id,title:e.title,targetId:e.targetId,preview:e.preview,messageCount:e.messageCount,createdAt:e.createdAt,updatedAt:e.updatedAt}),Bx=e=>e?br(e):null;function _x(e){let{plugins:t,config:n}=e,o=!1,r=!1,s=!1,a=!1,l=null,d=[],p=()=>{for(let T of d.splice(0))try{T()}catch(I){Mf("renderHistoryView cleanup",I)}},u=(T,I)=>{for(let A of t){let D=A[T];if(D)try{let Q=D(I);if(Q)return Q}catch(Q){Mf(T,Q)}}return null},m=()=>({presentation:e.getPresentation(),config:n}),y={header:T=>a?u("renderHistoryHeader",Object.freeze({...m(),returnSurface:e.getReturnSurface(),identityStatus:br(T.identityStatus),pendingAction:Bx(T.pendingAction),copy:br(T.copy),actions:Object.freeze({close:x.close,startNewConversation:x.startNewConversation}),defaultRenderer:T.defaultRenderer})):null,conversation:T=>a?u("renderHistoryConversation",Object.freeze({...m(),conversation:Ox(T.conversation),active:T.active,pending:T.pending,open:T.open,requestDelete:T.requestDelete,defaultRenderer:T.defaultRenderer})):null,state:T=>a?u("renderHistoryState",Object.freeze({...m(),state:br(T.state),identityStatus:br(T.identityStatus),copy:br(T.copy),...T.retry?{retry:T.retry}:{},...T.startNewConversation?{startNewConversation:T.startNewConversation}:{},defaultRenderer:T.defaultRenderer})):null},h=t.flatMap(T=>(T.railSections??[]).map(I=>({...I,placement:I.placement??"above-conversations",items:[],render:A=>I.render(Object.freeze({collapsed:A,presentation:e.getPresentation(),actions:x}))}))),C=e.createView({slots:y,renderDom:!1,onModelChange:()=>$(),railSections:h}),x=Object.freeze({...C.operations,close:e.close}),S=()=>(a=!0,C.setDomRenderEnabled(!0),C.element),k=T=>Object.freeze({conversations:Object.freeze(T.conversations.map(Ox)),activeConversationId:T.activeConversationId,state:br(T.state),pendingAction:Bx(T.pendingAction),identityStatus:br(T.identityStatus),nextCursor:T.nextCursor,presentation:e.getPresentation(),returnSurface:e.getReturnSurface(),config:n,copy:br(C.copy),actions:x,defaultRenderer:S,requestRender:()=>$(),onCleanup:I=>{d.push(I)}}),B=()=>{a=!1;let T=null;for(let A of t)if(A.renderHistoryView){try{T=A.renderHistoryView(k(C.getModel()))}catch(D){Mf("renderHistoryView",D),T=null}if(T)break}let I=!T||T.contains(C.element);return a=I,C.setDomRenderEnabled(I),T??C.element};function $(){if(!(!s||o||r)){r=!0;try{p();let T=B();if(T===l)return;let I=l;l=T,e.onElementChanged(T,I)}finally{r=!1}}}return s=!0,$(),{view:C,get element(){return l??C.element},requestRender:$,dispose:()=>{o=!0,p()}}}var dL=null;function Dx(){return dL}var pL=new Map([["not_found","not_found"],["conversation_deleted","not_found"],["rate_limited","rate_limited"],["authentication_required","authentication_required"],["invalid_identity_proof","authentication_required"],["visitor_identity_mismatch","authentication_required"],["visitor_required","authentication_required"],["identity_provider_failed","identity_provider_failed"],["proof_not_admitted","proof_not_admitted"],["identity_contract_violation","proof_not_admitted"],["unauthorized","authentication_failed"],["visitor_token_missing","authentication_failed"],["conversation_credential_missing","authentication_failed"]]),uL=new Map([["not_found","That conversation is no longer available."],["rate_limited","Too many history requests."],["authentication_failed","History access was not authorized."],["authentication_required","Sign in again to view account history."],["identity_provider_failed","The identity provider did not respond."],["proof_not_admitted","Account history is not available for this configuration."],["unsupported_scope","This history scope is not supported."],["unavailable","Conversation history is unavailable right now."]]),Ef=e=>uL.get(e)??"Conversation history is unavailable right now.";function gL(e){if(e instanceof lo)return e;if(e instanceof ze){let t=pL.get(e.code)??"unavailable";return new lo(t,Ef(t),{...e.retryAfterSeconds!==void 0?{retryAfterSeconds:e.retryAfterSeconds}:{}})}return new lo("unavailable",Ef("unavailable"))}function Nx(e){let t=()=>e.getClient?.()??e.client,n=e.getIdentityProofConfigured()?["browser","verified-user"]:["browser"],o={scopes:n},r=l=>{if(!n.includes(l))throw new lo("unsupported_scope",Ef("unsupported_scope"))},s=async(l,d)=>{r(l);try{return await d()}catch(p){throw gL(p)}},a=l=>{let d=!1;return{conversationId:l.session.conversationId??"",conversationRevision:l.session.conversationRevision??"",async commit(){d||(d=!0,l.commit(),await e.onActivationCommitted(l.session))},discard(){d||(d=!0,l.discard())}}};return{capabilities:o,getIdentityStatus(){return t().getHistoryIdentityStatus()},subscribeIdentityStatus(l){return t().subscribeHistoryIdentityStatus(l)},subscribeAvailability(l){return t().subscribeHistoryAvailability(l)},async list(l){return s(l.context.scope,async()=>{let d=await t().listConversations({...l.cursor?{cursor:l.cursor}:{},...l.limit!==void 0?{limit:l.limit}:{},...l.targetId?{targetId:l.targetId}:{},scope:l.context.scope});return{items:d.data,nextCursor:d.nextCursor}})},async getPage(l,d){return s(d.context.scope,async()=>{let p=await t().getConversation(l,{...d.cursor?{messageCursor:d.cursor}:{},scope:d.context.scope}),u=Dv(p.messages,{...d.beforeCreatedAt?{beforeCreatedAt:d.beforeCreatedAt}:{}});return{summary:p.summary,messages:ml([],u),conversationRevision:p.conversationRevision??"",nextCursor:p.nextMessageCursor}})},async prepareOpen(l,d){return s(d.context.scope,async()=>a(await t().prepareConversationSession(l)))},async prepareStartNew(l){return s(l.context.scope,async()=>a(await t().prepareNewConversationSession()))},async delete(l,d){await s(d.context.scope,()=>t().deleteConversation(l,{scope:d.context.scope}))},async deleteAll(l){return s(l.context.scope,()=>t().deleteAllConversations({...l.targetId!==void 0?{targetId:l.targetId}:{},scope:l.context.scope}))},async resetDevice(){try{return await t().resetVisitor(),{remoteRevocationConfirmed:!0}}catch{return{remoteRevocationConfirmed:!1}}}}}var mL=["viewTitle","openHistoryLabel","openHistoryBusyLabel","newConversationLabel","expandLabel","collapseLabel","resizeLabel","showEarlierMessagesLabel","openConversationLoadingLabel","openConversationErrorTitle","openConversationRetryLabel","openConversationBackLabel","confirmCancelLabel","deleteConversationConfirmTitle","deleteConversationConfirm","deleteConversationConfirmLabel","clearHistoryConfirmTitle","clearHistoryConfirm","clearHistoryVerifiedConfirm","clearHistoryConfirmLabel","resetIdentityConfirmTitle","resetIdentityConfirm","resetIdentityConfirmLabel","conversationDeletedNotice","identityResetNotice","identityResetUnconfirmedNotice"],Fx={viewTitle:"Messages",openHistoryLabel:"Messages",openHistoryBusyLabel:"Messages, available once the reply finishes",newConversationLabel:"New conversation",expandLabel:"Expand conversation list",collapseLabel:"Collapse conversation list",resizeLabel:"Resize conversation list",showEarlierMessagesLabel:"Show earlier messages",openConversationLoadingLabel:"Loading conversation",openConversationErrorTitle:"Could not open the conversation.",openConversationRetryLabel:"Try again",openConversationBackLabel:"Back to messages",confirmCancelLabel:"Cancel",deleteConversationConfirmTitle:"Delete conversation",deleteConversationConfirm:"Delete this conversation? This cannot be undone.",deleteConversationConfirmLabel:"Delete",clearHistoryConfirmTitle:"Delete all conversations",clearHistoryConfirm:"Delete all conversations for this assistant on this browser? This cannot be undone.",clearHistoryVerifiedConfirm:"Delete all conversations for this assistant and signed-in user? This cannot be undone.",clearHistoryConfirmLabel:"Delete all",resetIdentityConfirmTitle:"Forget this device",resetIdentityConfirm:"Forget this device? All Persona data stored in this browser is cleared. Records are not deleted elsewhere.",resetIdentityConfirmLabel:"Forget this device",conversationDeletedNotice:"That conversation was deleted. You are now in a new conversation.",identityResetNotice:"This device was forgotten.",identityResetUnconfirmedNotice:"This device was cleared here, but the server could not confirm it."};function Tf(e){if(!e)return Fx;let t={...Fx};for(let n of mL){let o=e[n];typeof o=="string"&&o.length>0&&(t[n]=o)}return t}var fL="button:not([disabled])";function Rp(e){let t=document.activeElement instanceof HTMLElement?document.activeElement:null,n=Math.random().toString(36).slice(2,8),o=`persona-history-confirm-title-${n}`,r=`persona-history-confirm-desc-${n}`,s=Y("button",{className:"persona-history-confirm__cancel",text:e.cancelLabel,attrs:{type:"button"}}),a=Y("button",{className:"persona-history-confirm__confirm",text:e.confirmLabel,attrs:{type:"button","data-persona-destructive":"true"}}),l=Y("div",{className:"persona-history-confirm__dialog",attrs:{role:"alertdialog","aria-modal":"true","aria-labelledby":o,"aria-describedby":r},style:{maxWidth:"22rem",width:"100%",borderRadius:"var(--persona-radius-lg, 0.75rem)",background:"var(--persona-surface, #ffffff)",color:"var(--persona-text, #111827)",boxShadow:"var(--persona-history-confirm-shadow, 0 20px 40px -12px rgba(0, 0, 0, 0.35))",padding:"20px",display:"flex",flexDirection:"column",gap:"12px"}},Y("h2",{className:"persona-history-confirm__title",text:e.title,attrs:{id:o},style:{margin:"0",fontSize:"1rem",fontWeight:"600"}}),Y("p",{className:"persona-history-confirm__description",text:e.description,attrs:{id:r},style:{margin:"0",fontSize:"0.875rem",lineHeight:"1.4"}}),Y("div",{className:"persona-history-confirm__actions",style:{display:"flex",gap:"8px",justifyContent:"flex-end",flexWrap:"wrap"}},s,a));for(let p of[s,a])p.style.minHeight="44px",p.style.minWidth="88px",p.style.padding="0 16px",p.style.borderRadius="var(--persona-radius-md, 0.5rem)",p.style.cursor="pointer",p.style.font="inherit";s.style.border="1px solid var(--persona-border, rgba(0,0,0,0.12))",s.style.background="transparent",s.style.color="inherit",a.style.border="none",a.style.background="var(--persona-danger, #b42318)",a.style.color="var(--persona-danger-fg, #ffffff)";let d=Y("div",{className:"persona-history-confirm",style:{position:"absolute",inset:"0",zIndex:"40",display:"flex",alignItems:"center",justifyContent:"center",padding:"16px",background:"var(--persona-history-confirm-scrim, rgba(15, 23, 42, 0.45))"}},l);return new Promise(p=>{let u=!1,m=h=>{u||(u=!0,d.removeEventListener("keydown",y,!0),d.remove(),t?.focus(),p(h))};function y(h){if(h.key==="Escape"){h.preventDefault(),h.stopPropagation(),m(!1);return}if(h.key!=="Tab")return;let C=Array.from(l.querySelectorAll(fL));if(C.length===0)return;let x=C[0],S=C[C.length-1],k=document.activeElement;h.shiftKey&&(k===x||!l.contains(k))?(h.preventDefault(),S.focus()):!h.shiftKey&&k===S&&(h.preventDefault(),x.focus())}d.addEventListener("keydown",y,!0),d.addEventListener("pointerdown",h=>{h.target===d&&m(!1)}),s.addEventListener("click",()=>m(!1)),a.addEventListener("click",()=>m(!0)),e.host.appendChild(d),s.focus()})}var la=require("partial-json");function hL(e){if(!e||typeof e!="object"||!("component"in e))return!1;let t=e.component;return typeof t=="string"&&t.length>0}function yL(e,t){if(!hL(e))return null;let n=e.props&&typeof e.props=="object"&&e.props!==null?e.props:{};return{component:e.component,props:n,raw:t}}function Hp(){let e=null,t=0;return{getExtractedDirective:()=>e,processChunk:n=>{let o=n.trim();if(!o.startsWith("{")&&!o.startsWith("["))return null;if(n.length<=t)return e;try{let r=(0,la.parse)(n,la.STR|la.OBJ),s=yL(r,n);s&&(e=s)}catch{}return t=n.length,e},reset:()=>{e=null,t=0}}}function $x(e){return typeof e=="object"&&e!==null&&"component"in e&&typeof e.component=="string"&&"props"in e&&typeof e.props=="object"}function Wp(e,t){let{config:n,message:o,onPropsUpdate:r}=t,s=xo.get(e.component);if(!s){if(mf.includes(e.component)){Tp().catch(()=>{});let l=M("div","persona-w-full");return l.setAttribute("data-persona-artifact-pending","true"),l}return console.warn(`[ComponentMiddleware] Component "${e.component}" not found in registry. Falling back to default rendering.`),null}let a={message:o,config:n,updateProps:l=>{r&&r(l)}};try{return s(e.props,a)}catch(l){return console.error(`[ComponentMiddleware] Error rendering component "${e.component}":`,l),null}}function Ux(){let e=Hp();return{processChunk:t=>e.processChunk(t),getDirective:()=>e.getExtractedDirective(),reset:()=>{e.reset()}}}function jx(e){if(typeof e.rawContent=="string"&&e.rawContent.length>0)return e.rawContent;if(typeof e.content=="string"){let t=e.content.trim();if(t.startsWith("{")||t.startsWith("["))return e.content}return null}function $l(e){let t=jx(e);if(!t)return!1;try{let n=JSON.parse(t);return typeof n=="object"&&n!==null&&"component"in n&&typeof n.component=="string"}catch{return!1}}function Op(e){let t=jx(e);if(!t)return null;try{let n=JSON.parse(t);if(typeof n=="object"&&n!==null&&"component"in n&&typeof n.component=="string"){let o=n;return{component:o.component,props:o.props&&typeof o.props=="object"&&o.props!==null?o.props:{},raw:t}}}catch{}return null}var bL=["Very dissatisfied","Dissatisfied","Neutral","Satisfied","Very satisfied"];function Bp(e){let{onSubmit:t,onDismiss:n,title:o="How satisfied are you?",subtitle:r="Please rate your experience",commentPlaceholder:s="Share your thoughts (optional)...",submitText:a="Submit",skipText:l="Skip",showComment:d=!0,ratingLabels:p=bL}=e,u=document.createElement("div");u.className="persona-feedback-container persona-feedback-csat",u.setAttribute("role","dialog"),u.setAttribute("aria-label","Customer satisfaction feedback");let m=null,y=document.createElement("div");y.className="persona-feedback-content";let h=document.createElement("div");h.className="persona-feedback-header";let C=document.createElement("h3");C.className="persona-feedback-title",C.textContent=o,h.appendChild(C);let x=document.createElement("p");x.className="persona-feedback-subtitle",x.textContent=r,h.appendChild(x),y.appendChild(h);let S=document.createElement("div");S.className="persona-feedback-rating persona-feedback-rating-csat",S.setAttribute("role","radiogroup"),S.setAttribute("aria-label","Satisfaction rating from 1 to 5");let k=[];for(let A=1;A<=5;A++){let D=document.createElement("button");D.type="button",D.className="persona-feedback-rating-btn persona-feedback-star-btn",D.setAttribute("role","radio"),D.setAttribute("aria-checked","false"),D.setAttribute("aria-label",`${A} star${A>1?"s":""}: ${p[A-1]}`),D.title=p[A-1],D.dataset.rating=String(A),D.innerHTML=`
36
+ `,n.addEventListener("click",t);let o=s=>{let a=s.launcher??{},l=At(s),d=n.querySelector("[data-role='launcher-title']");if(d){let $=a.title??"Chat Assistant";d.textContent=$,d.setAttribute("title",$)}let p=n.querySelector("[data-role='launcher-subtitle']");if(p){let $=a.subtitle??"Here to help you get answers fast";p.textContent=$,p.setAttribute("title",$)}let u=n.querySelector(".persona-flex-col");u&&(a.textHidden||l?u.style.display="none":u.style.display="");let m=n.querySelector("[data-role='launcher-icon']");if(m)if(a.agentIconHidden)m.style.display="none";else{let $=a.agentIconSize??"40px";if(m.style.height=$,m.style.width=$,a.agentIconBackgroundColor?(m.style.backgroundColor=a.agentIconBackgroundColor,m.classList.remove("persona-bg-persona-primary")):(m.style.backgroundColor="",m.classList.add("persona-bg-persona-primary")),m.innerHTML="",a.agentIconName){let T=parseFloat($)||24,I=ge(a.agentIconName,T*.6,"var(--persona-text-inverse, #ffffff)",1.5);I?(m.appendChild(I),m.style.display=""):(m.textContent=a.agentIconText??"\u{1F4AC}",m.style.display="")}else a.iconUrl?m.style.display="none":(m.textContent=a.agentIconText??"\u{1F4AC}",m.style.display="")}let y=n.querySelector("[data-role='launcher-image']");if(y){let $=a.agentIconSize??"40px";y.style.height=$,y.style.width=$,a.iconUrl&&!a.agentIconName&&!a.agentIconHidden?(y.src=a.iconUrl,y.style.display="block"):y.style.display="none"}let h=n.querySelector("[data-role='launcher-call-to-action-icon']");if(h){let $=a.callToActionIconSize??"32px";h.style.height=$,h.style.width=$,a.callToActionIconBackgroundColor?(h.style.backgroundColor=a.callToActionIconBackgroundColor,h.classList.remove("persona-bg-persona-primary")):(h.style.backgroundColor="",h.classList.add("persona-bg-persona-primary")),a.callToActionIconColor?(h.style.color=a.callToActionIconColor,h.classList.remove("persona-text-persona-call-to-action")):(h.style.color="",h.classList.add("persona-text-persona-call-to-action"));let T=0;if(a.callToActionIconPadding?(h.style.boxSizing="border-box",h.style.padding=a.callToActionIconPadding,T=(parseFloat(a.callToActionIconPadding)||0)*2):(h.style.boxSizing="",h.style.padding=""),a.callToActionIconHidden)h.style.display="none";else if(h.style.display=l?"none":"",h.innerHTML="",a.callToActionIconName){let I=parseFloat($)||24,A=Math.max(I-T,8),N=ge(a.callToActionIconName,A,"currentColor",1.5);N?h.appendChild(N):h.textContent=a.callToActionIconText??"\u2197"}else h.textContent=a.callToActionIconText??"\u2197"}let C=a.position&&Kn[a.position]?Kn[a.position]:Kn["bottom-right"],S="persona-fixed persona-flex persona-items-center persona-gap-3 persona-rounded-launcher persona-bg-persona-launcher persona-py-2.5 persona-pl-3 persona-pr-3 persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer",x="persona-relative persona-mt-4 persona-mb-4 persona-mx-auto persona-flex persona-items-center persona-justify-center persona-rounded-launcher persona-bg-persona-launcher persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer";n.className=l?x:`${S} ${C}`,l||(n.style.zIndex=String(a.zIndex??sn));let k="1px solid var(--persona-launcher-border, var(--persona-border, #e5e7eb))",O="var(--persona-launcher-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1))";n.style.border=a.border??k,n.style.boxShadow=a.shadow!==void 0?a.shadow.trim()===""?"none":a.shadow:O,l?(n.style.width="0",n.style.minWidth="0",n.style.maxWidth="0",n.style.padding="0",n.style.overflow="hidden",n.style.border="none",n.style.boxShadow="none"):(n.style.width="",n.style.minWidth="",n.style.maxWidth=a.collapsedMaxWidth??"",n.style.justifyContent="",n.style.padding="",n.style.overflow="")},r=()=>{n.removeEventListener("click",t),n.remove()};return e&&o(e),{element:n,update:o,destroy:r}},Sk="teaser-dismissed",px=new Set,dx=e=>{let t=e?.persistState;return`${(typeof t=="object"?t?.keyPrefix:void 0)??"persona-"}${Sk}`},Ak=(e,t)=>{if(px.has(e))return!0;if(!t)return!1;try{return window.localStorage.getItem(e)==="1"}catch{return!1}},Mk=(e,t)=>{if(px.add(e),!!t)try{window.localStorage.setItem(e,"1")}catch{}},Ek=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,Tk=e=>{let t=e?.launcher?.teaser;return!t||!t.text||e?.launcher?.enabled===!1||At(e??{})?null:t},ux=(e,t)=>{let n=M("div","persona-launcher-surface");n.setAttribute("data-persona-launcher-surface","true");let o=e??{},r=null,s=null,a=null,l=null,d=null,p=!1,u=!1,m=!1,y=!1,h=()=>(r?.frequency??"once")==="once"&&o.persistState!==!1,C=()=>{d!==null&&(clearTimeout(d),d=null)},S=()=>{!s||!p||(p=!1,s.hidden=!0)},x=te=>{C(),m=!0,S(),Mk(dx(o),te&&h())},k=te=>{!r||m||x(te==="user"&&p)},O=()=>{d=null,!(!s||m||y)&&(u=!0,p=!0,s.hidden=!1,!(Ek()||typeof s.animate!="function")&&s.animate([{opacity:"0",transform:"translateY(6px)"},{opacity:"1",transform:"none"}],{duration:220,easing:"ease-out",fill:"backwards"}))},$=()=>{!r||!s||m||u||y||Ak(dx(o),h())||(C(),d=setTimeout(O,Math.max(0,r.delayMs??0)))},T=()=>{x(h()),t()},I=te=>{te.stopPropagation(),x(h())},N=cf(e,()=>{k("user"),t()}),Q=()=>{C(),l?.removeEventListener("click",T),a?.removeEventListener("click",I),s?.remove(),s=null,l=null,a=null,p=!1},ce=()=>{l=X("button",{className:"persona-launcher-teaser-text",attrs:{type:"button"}}),l.addEventListener("click",T),a=X("button",{className:"persona-launcher-teaser-dismiss",attrs:{type:"button"},text:"\xD7"}),a.addEventListener("click",I),s=X("div",{className:"persona-launcher-teaser",attrs:{"data-persona-launcher-teaser":"true",role:"status","aria-live":"polite",hidden:""}},l,a),n.insertBefore(s,N.element)},Y=()=>{let te=o.launcher?.position??"bottom-right",K=Kn[te]??Kn["bottom-right"];if(!s){n.className="persona-launcher-surface",n.removeAttribute("data-teaser"),n.style.zIndex="",N.element.style.position="";return}n.className=hn("persona-launcher-surface",K),n.setAttribute("data-teaser",te),n.style.zIndex=String(o.launcher?.zIndex??sn),N.element.style.position="static"},E=te=>{let K=Tk(te);if(r=K,!K){Q();return}s||ce(),l.textContent=K.text,a.hidden=K.dismissible===!1,a.setAttribute("aria-label",K.dismissLabel??"Dismiss message"),$()},B=te=>{o=te,N.update(te),E(te),Y()},H=(te,K="user")=>{y=te,te&&k(K)},L=()=>{Q(),N.destroy(),n.remove()};return n.appendChild(N.element),e&&(E(e),Y()),{element:n,launcher:N,get teaser(){return s?{element:s,show:O,dismiss:x}:null},setPanelOpen:H,update:B,destroy:L}};var gx=({config:e,showClose:t})=>{let{wrapper:n,panel:o,pillRoot:r}=ax(e),s=cx(e,t),a={wrapper:n,panel:o,pillRoot:r},l={container:s.container,body:s.body,messagesWrapper:s.messagesWrapper,starterSuggestions:s.starterSuggestions,transcriptSuggestions:s.transcriptSuggestions,composerOverlay:s.composerOverlay,welcomeHost:s.welcomeHost,welcomeIconHolder:s.welcomeIconHolder,greetingHost:s.greetingHost,introTitle:s.introTitle,introSubtitle:s.introSubtitle},d={element:s.header,iconHolder:s.iconHolder,headerTitle:s.headerTitle,headerSubtitle:s.headerSubtitle,closeButton:s.closeButton,closeButtonWrapper:s.closeButtonWrapper,clearChatButton:s.clearChatButton,clearChatButtonWrapper:s.clearChatButtonWrapper},p={footer:s.footer,form:s.composerForm,textarea:s.textarea,sendButton:s.sendButton,sendButtonWrapper:s.sendButtonWrapper,micButton:s.micButton,micButtonWrapper:s.micButtonWrapper,statusText:s.statusText,suggestions:s.suggestions,attachmentButton:s.attachmentButton,attachmentButtonWrapper:s.attachmentButtonWrapper,attachmentInput:s.attachmentInput,attachmentPreviewsContainer:s.attachmentPreviewsContainer,actionsRow:s.actionsRow,leftActions:s.leftActions,rightActions:s.rightActions,setSendButtonMode:s.setSendButtonMode,peekBanner:s.peekBanner,peekTextNode:s.peekTextNode};return{shell:a,panelElements:s,transcript:l,header:d,composer:p,replaceHeader:y=>(d.element.replaceWith(y.header),d.element=y.header,d.iconHolder=y.iconHolder,d.headerTitle=y.headerTitle,d.headerSubtitle=y.headerSubtitle,d.closeButton=y.closeButton,d.closeButtonWrapper=y.closeButtonWrapper,d.clearChatButton=y.clearChatButton,d.clearChatButtonWrapper=y.clearChatButtonWrapper,y),replaceComposer:y=>{p.footer.replaceWith(y),p.footer=y}}},df=({config:e,plugins:t,onToggle:n})=>{let o=t.find(s=>s.renderLauncher);if(o?.renderLauncher){let s=o.renderLauncher({config:e,defaultRenderer:()=>cf(e,n).element,onToggle:n});if(s)return{instance:null,element:s}}let r=ux(e,n);return{instance:r,element:r.element}};var Pk=e=>{let t=e?.persistState;return(typeof t=="object"?t?.keyPrefix:void 0)??"persona-"},kk=(e,t,n)=>`${Pk(e)}plugin:${t}:${n}`,mx=e=>{let t=new Map,n=!1,o=()=>{if(n||e()?.persistState===!1)return null;try{return typeof window>"u"||!window.localStorage?null:window.localStorage}catch{return n=!0,null}};return r=>{let s=a=>kk(e(),r,a);return{get:a=>{let l=s(a),d=o();if(d)try{return d.getItem(l)}catch{n=!0}return t.get(l)??null},set:(a,l)=>{let d=s(a),p=o();if(p)try{p.setItem(d,l);return}catch{n=!0}t.set(d,l)},remove:a=>{let l=s(a);t.delete(l);let d=o();if(d)try{d.removeItem(l)}catch{n=!0}}}}};var aa=(e,t,n)=>{let o=n;for(let r of t){let s=M("span","persona-tool-char");s.style.setProperty("--char-index",String(o)),s.textContent=r===" "?"\xA0":r,e.appendChild(s),o++}return o};var Cp=require("lucide");var Lk=["persona-w-full","persona-rounded-2xl","persona-bg-persona-surface","persona-border","persona-border-persona-message-border","persona-text-persona-primary","persona-shadow-sm","persona-overflow-hidden","persona-px-0","persona-py-0"],Ik="persona-flex persona-w-full persona-items-center persona-justify-between persona-gap-3 persona-bg-transparent persona-px-4 persona-py-3 persona-text-left persona-cursor-pointer persona-border-none",Rk="persona-flex persona-w-full persona-items-center persona-justify-between persona-gap-3 persona-bg-transparent persona-px-4 persona-py-3 persona-text-left persona-cursor-default persona-border-none",Hk=(e,t)=>t==null?!1:typeof t=="string"?(e.textContent=t,!0):(e.appendChild(t),!0),wp=(e,t)=>{let n=M("div",["persona-message-bubble",e,...Lk].join(" "));return n.id=`bubble-${t}`,n.setAttribute("data-message-id",t),n},xp=e=>{let t=M("button",e.expandable?Ik:Rk);return t.type="button",e.expandable&&(t.setAttribute("aria-expanded",e.expanded?"true":"false"),t.setAttribute("data-expand-header","true")),t.setAttribute("data-bubble-type",e.bubbleType),t},pf=(e,t,n)=>{e.innerHTML="";let o=Wt(t?Cp.ChevronUp:Cp.ChevronDown,16,n,2);o?e.appendChild(o):e.textContent=t?"Hide":"Show"},Sp=(e,t,n)=>{if(!n.expandable)return e.append(t),null;let o=M("div","persona-flex persona-items-center");pf(o,n.expanded,n.iconColor);let r=M("div",n.metaGap?"persona-flex persona-items-center persona-gap-2 persona-ml-auto":"persona-flex persona-items-center persona-ml-auto");return r.append(o),e.append(t,r),o},Ap=e=>{let t=M("div","persona-px-4 persona-py-3 persona-text-xs persona-leading-snug persona-text-persona-muted");if(t.setAttribute("data-persona-collapsed-preview",e.previewKind),t.style.display="none",t.style.whiteSpace="pre-wrap",!e.expanded&&e.isActive&&e.activePreview&&e.previewText){let n=e.renderPreview?.();Hk(t,n)||(t.textContent=e.previewText),t.style.display=""}return!e.expanded&&e.isActive&&e.activeMinHeight&&(e.bubble.style.minHeight=e.activeMinHeight),t},Mp=e=>{e.header.setAttribute("aria-expanded",e.expanded?"true":"false"),e.toggleIcon&&pf(e.toggleIcon,e.expanded,e.iconColor),e.content.style.display=e.expanded?"":"none",e.collapsedPreview.style.display=e.expanded?"none":e.collapsedPreview.textContent||e.collapsedPreview.childNodes.length?"":"none"},Ep=(e,t,n)=>{let o=n.stateSet.has(e),r=t.querySelector('button[data-expand-header="true"]'),s=t.querySelector(".persona-border-t"),a=t.querySelector(`[data-persona-collapsed-preview="${n.previewKind}"]`);if(!r||!s)return;r.setAttribute("aria-expanded",o?"true":"false");let d=r.querySelector(".persona-ml-auto")?.querySelector(":scope > .persona-flex.persona-items-center");d&&pf(d,o,n.iconColor),s.style.display=o?"":"none",a&&(a.style.display=o?"none":a.textContent||a.childNodes.length?"":"none")};var la=new Set,Wk=(e,t)=>{let n=e.reasoning?.chunks.join("").trim()??"";return n?n.split(/\r?\n/).map(o=>o.trim()).filter(Boolean).slice(0,t).join(`
37
+ `):""},fx=(e,t)=>{Ep(e,t,{stateSet:la,previewKind:"reasoning",iconColor:"currentColor"})},uf=(e,t)=>{let n=e.reasoning,o=wp("persona-reasoning-bubble",e.id);if(!n)return o;let r=t?.features?.reasoningDisplay??{},s=r.expandable!==!1,a=s&&la.has(e.id),l=n.status!=="complete",d=Wk(e,r.previewMaxLines??3),p=xp({expandable:s,expanded:a,bubbleType:"reasoning"}),u=M("div","persona-flex persona-flex-col persona-text-left"),m=M("span","persona-text-xs persona-text-persona-primary"),y="Thinking...",h=t?.reasoning??{},C=String(n.startedAt??Date.now()),S=()=>{let L=M("span","");return L.setAttribute("data-tool-elapsed",C),L.textContent=xd(n),L},x=h.renderCollapsedSummary?.({message:e,reasoning:n,defaultSummary:y,previewText:d,isActive:l,config:t??{},elapsed:xd(n),createElapsedElement:S});typeof x=="string"&&x.trim()?(m.textContent=x,u.appendChild(m)):x instanceof HTMLElement?u.appendChild(x):(m.textContent=y,u.appendChild(m));let k=M("span","persona-text-xs persona-text-persona-primary");k.textContent=Pv(n),u.appendChild(k);let O=r.loadingAnimation??"none",$=h.activeTextTemplate,T=h.completeTextTemplate,I=l?$:T,A=x instanceof HTMLElement,N=(L,te)=>{m.textContent="";let K=Sd(L,""),me=0;for(let de of K){let he=de.styles.length>0?(()=>{let We=M("span",de.styles.map(Oe=>`persona-tool-text-${Oe}`).join(" "));return m.appendChild(We),We})():m;if(de.isDuration&&l)he.appendChild(S());else{let We=de.isDuration?xd(n):de.text;te?me=aa(he,We,me):he.appendChild(document.createTextNode(We))}}};if(!A&&I)if(k.style.display="none",m.style.display="",l&&O!=="none"){let L=h.loadingAnimationDuration??2e3;m.setAttribute("data-preserve-animation","true"),O==="pulse"?(m.classList.add("persona-tool-loading-pulse"),m.style.setProperty("--persona-tool-anim-duration",`${L}ms`),N(I,!1)):(m.classList.add(`persona-tool-loading-${O}`),m.style.setProperty("--persona-tool-anim-duration",`${L}ms`),O==="shimmer-color"&&(h.loadingAnimationColor&&m.style.setProperty("--persona-tool-anim-color",h.loadingAnimationColor),h.loadingAnimationSecondaryColor&&m.style.setProperty("--persona-tool-anim-secondary-color",h.loadingAnimationSecondaryColor)),N(I,!0))}else N(I,!1);else if(!A&&l&&O!=="none"){m.style.display="";let L=h.loadingAnimationDuration??2e3;if(m.setAttribute("data-preserve-animation","true"),O==="pulse")m.classList.add("persona-tool-loading-pulse"),m.style.setProperty("--persona-tool-anim-duration",`${L}ms`);else{m.classList.add(`persona-tool-loading-${O}`),m.style.setProperty("--persona-tool-anim-duration",`${L}ms`),O==="shimmer-color"&&(h.loadingAnimationColor&&m.style.setProperty("--persona-tool-anim-color",h.loadingAnimationColor),h.loadingAnimationSecondaryColor&&m.style.setProperty("--persona-tool-anim-secondary-color",h.loadingAnimationSecondaryColor));let te=m.textContent||y;m.textContent="",aa(m,te,0)}n.status==="complete"&&(m.style.display="none")}else A||(n.status==="complete"?m.style.display="none":m.style.display="");if(r.iconName&&!A){let L=M("span","persona-reasoning-header-icon"),te=ge(r.iconName,16,"currentColor",2);te&&(L.appendChild(te),p.appendChild(L))}let Q="currentColor",ce=Sp(p,u,{expandable:s,expanded:a,iconColor:Q,metaGap:!1}),Y=Ap({bubble:o,previewKind:"reasoning",expanded:a,isActive:l,previewText:d,activePreview:r.activePreview,activeMinHeight:r.activeMinHeight,renderPreview:()=>t?.reasoning?.renderCollapsedPreview?.({message:e,reasoning:n,defaultPreview:d,isActive:l,config:t??{}})});if(!s)return o.append(p,Y),o;let E=M("div","persona-border-t persona-border-gray-200 persona-bg-gray-50 persona-px-4 persona-py-3");E.style.display=a?"":"none";let B=n.chunks.join(""),H=M("div","persona-whitespace-pre-wrap persona-text-xs persona-leading-snug persona-text-persona-muted");return H.textContent=B||(n.status==="complete"?"No additional context was shared.":"Waiting for details\u2026"),E.appendChild(H),Mp({expanded:a,header:p,toggleIcon:ce,content:E,collapsedPreview:Y,iconColor:Q}),o.append(p,Y,E),o};var ca=new Set,hx=e=>e.toggleTextColor||e.headerTextColor||"var(--persona-primary, #171717)",Ok=(e,t)=>{let n=e.toolCall;if(!n)return"";let o=(n.chunks??[]).join("").trim();if(o)return o.split(/\r?\n/).map(a=>a.trim()).filter(Boolean).slice(-t).join(`
38
+ `);let r=Cd(n.args).trim();return r?r.split(/\r?\n/).map(s=>s.trim()).filter(Boolean).slice(0,t).join(`
39
+ `):""},gf=(e,t)=>{e.style.backgroundColor=t.codeBlockBackgroundColor??"var(--persona-container, #f3f4f6)",e.style.borderColor=t.codeBlockBorderColor??"var(--persona-border, #e5e7eb)",e.style.color=t.codeBlockTextColor??"var(--persona-text, #171717)"},Bk=(e,t)=>{let n=e.toolCall,o=t?.features?.toolCallDisplay,r=o?.collapsedMode??"tool-call",s=Ok(e,o?.previewMaxLines??3),a=n?kv(n):"";if(!n)return{summary:a,previewText:s,isActive:!1};let l=n.status!=="complete",d=t?.toolCall??{},p=a;return r==="tool-name"?p=n.name?.trim()||a:r==="tool-preview"&&s&&(p=s),l&&d.activeTextTemplate?p=Zg(n,d.activeTextTemplate,p):!l&&d.completeTextTemplate&&(p=Zg(n,d.completeTextTemplate,p)),{summary:p,previewText:s,isActive:l}},yx=(e,t,n)=>{Ep(e,t,{stateSet:ca,previewKind:"tool",iconColor:hx(n?.toolCall??{})})},mf=(e,t)=>{let n=e.toolCall,o=t?.toolCall??{},r=wp("persona-tool-bubble",e.id);if(o.backgroundColor&&(r.style.backgroundColor=o.backgroundColor),o.borderColor&&(r.style.borderColor=o.borderColor),o.borderWidth&&(r.style.borderWidth=o.borderWidth),o.borderRadius&&(r.style.borderRadius=o.borderRadius),r.style.boxShadow=o.shadow!==void 0?o.shadow.trim()===""?"none":o.shadow:"var(--persona-tool-bubble-shadow, 0 5px 15px rgba(15, 23, 42, 0.08))",!n)return r;let s=t?.features?.toolCallDisplay??{},a=s.expandable!==!1,l=a&&ca.has(e.id),{summary:d,previewText:p,isActive:u}=Bk(e,t),m=xp({expandable:a,expanded:l,bubbleType:"tool"});o.headerBackgroundColor&&(m.style.backgroundColor=o.headerBackgroundColor),o.headerPaddingX&&(m.style.paddingLeft=o.headerPaddingX,m.style.paddingRight=o.headerPaddingX),o.headerPaddingY&&(m.style.paddingTop=o.headerPaddingY,m.style.paddingBottom=o.headerPaddingY);let y=M("div","persona-flex persona-flex-col persona-text-left"),h=M("span","persona-text-xs persona-text-persona-primary");o.headerTextColor&&(h.style.color=o.headerTextColor);let C=String(n.startedAt??Date.now()),S=()=>{let E=M("span","");return E.setAttribute("data-tool-elapsed",C),E.textContent=ul(n),E},x=o.renderCollapsedSummary?.({message:e,toolCall:n,defaultSummary:d,previewText:p,collapsedMode:s.collapsedMode??"tool-call",isActive:u,config:t??{},elapsed:ul(n),createElapsedElement:S});typeof x=="string"&&x.trim()?(h.textContent=x,y.appendChild(h)):x instanceof HTMLElement?y.appendChild(x):(h.textContent=d,y.appendChild(h));let k=s.loadingAnimation??"none",O=o.activeTextTemplate,$=o.completeTextTemplate,T=u?O:$,I=x instanceof HTMLElement,A=(E,B)=>{h.textContent="";let H=n.name?.trim()||"tool",L=Sd(E,H),te=0;for(let K of L){let me=K.styles.length>0?(()=>{let de=M("span",K.styles.map(he=>`persona-tool-text-${he}`).join(" "));return h.appendChild(de),de})():h;if(K.isDuration&&u)me.appendChild(S());else{let de=K.isDuration?ul(n):K.text;B?te=aa(me,de,te):me.appendChild(document.createTextNode(de))}}};if(!I)if(u&&k!=="none"){let E=o.loadingAnimationDuration??2e3;if(h.setAttribute("data-preserve-animation","true"),k==="pulse")h.classList.add("persona-tool-loading-pulse"),h.style.setProperty("--persona-tool-anim-duration",`${E}ms`),T&&A(T,!1);else if(h.classList.add(`persona-tool-loading-${k}`),h.style.setProperty("--persona-tool-anim-duration",`${E}ms`),k==="shimmer-color"&&(o.loadingAnimationColor&&h.style.setProperty("--persona-tool-anim-color",o.loadingAnimationColor),o.loadingAnimationSecondaryColor&&h.style.setProperty("--persona-tool-anim-secondary-color",o.loadingAnimationSecondaryColor)),T)A(T,!0);else{let B=h.textContent||d;h.textContent="",aa(h,B,0)}}else T&&A(T,!1);let N=hx(o),Q=Sp(m,y,{expandable:a,expanded:l,iconColor:N,metaGap:!0}),ce=Ap({bubble:r,previewKind:"tool",expanded:l,isActive:u,previewText:p,activePreview:s.activePreview,activeMinHeight:s.activeMinHeight,renderPreview:()=>o.renderCollapsedPreview?.({message:e,toolCall:n,defaultPreview:p,isActive:u,config:t??{}})});if(!a)return r.append(m,ce),r;let Y=M("div","persona-border-t persona-border-gray-200 persona-bg-gray-50 persona-space-y-3 persona-px-4 persona-py-3");if(Y.style.display=l?"":"none",o.contentBackgroundColor&&(Y.style.backgroundColor=o.contentBackgroundColor),o.contentTextColor&&(Y.style.color=o.contentTextColor),o.contentPaddingX&&(Y.style.paddingLeft=o.contentPaddingX,Y.style.paddingRight=o.contentPaddingX),o.contentPaddingY&&(Y.style.paddingTop=o.contentPaddingY,Y.style.paddingBottom=o.contentPaddingY),n.name){let E=M("div","persona-text-xs persona-text-persona-muted persona-italic");o.contentTextColor?E.style.color=o.contentTextColor:o.headerTextColor&&(E.style.color=o.headerTextColor),E.textContent=n.name,Y.appendChild(E)}if(n.args!==void 0){let E=M("div","persona-space-y-1"),B=M("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(B.style.color=o.labelTextColor),B.textContent="Arguments";let H=M("pre","persona-max-h-48 persona-overflow-auto persona-whitespace-pre-wrap persona-rounded-lg persona-border persona-px-3 persona-py-2 persona-text-xs");H.style.fontSize="0.75rem",H.style.lineHeight="1rem",gf(H,o),H.textContent=Cd(n.args),E.append(B,H),Y.appendChild(E)}if(n.chunks&&n.chunks.length){let E=M("div","persona-space-y-1"),B=M("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(B.style.color=o.labelTextColor),B.textContent="Activity";let H=M("pre","persona-max-h-48 persona-overflow-auto persona-whitespace-pre-wrap persona-rounded-lg persona-border persona-px-3 persona-py-2 persona-text-xs");H.style.fontSize="0.75rem",H.style.lineHeight="1rem",gf(H,o),H.textContent=n.chunks.join(""),E.append(B,H),Y.appendChild(E)}if(n.status==="complete"&&n.result!==void 0){let E=M("div","persona-space-y-1"),B=M("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(B.style.color=o.labelTextColor),B.textContent="Result";let H=M("pre","persona-max-h-48 persona-overflow-auto persona-whitespace-pre-wrap persona-rounded-lg persona-border persona-px-3 persona-py-2 persona-text-xs");H.style.fontSize="0.75rem",H.style.lineHeight="1rem",gf(H,o),H.textContent=Cd(n.result),E.append(B,H),Y.appendChild(E)}if(n.status==="complete"&&typeof n.duration=="number"){let E=M("div","persona-text-xs persona-text-persona-muted");o.contentTextColor&&(E.style.color=o.contentTextColor),E.textContent=`Duration: ${n.duration}ms`,Y.appendChild(E)}return Mp({expanded:l,header:m,toggleIcon:Q,content:Y,collapsedPreview:ce,iconColor:N}),r.append(m,ce,Y),r};var{setLoader:PB,load:_k,provide:kB,getSync:Dk}=bt({fallbackImport:()=>import("@runtypelabs/persona/approval-ui")});var bx=_k;var vx=Dk;var{setLoader:RB,load:Nk}=bt({fallbackImport:()=>import("@runtypelabs/persona/event-stream-view")});var ff=Nk;var hf=class{constructor(){this.components=new Map;this.options=new Map}register(t,n,o){this.components.has(t)&&console.warn(`[ComponentRegistry] Component "${t}" is already registered. Overwriting.`),this.components.set(t,n),o?this.options.set(t,o):this.options.delete(t)}unregister(t){this.components.delete(t),this.options.delete(t)}get(t){return this.components.get(t)}has(t){return this.components.has(t)}getOptions(t){return this.options.get(t)}getAllNames(){return Array.from(this.components.keys())}clear(){this.components.clear(),this.options.clear()}registerAll(t){Object.entries(t).forEach(([n,o])=>{this.register(n,o)})}},So=new hf;var yf=["PersonaArtifactCard","PersonaArtifactInline"],{setLoader:NB,load:Fk,provide:FB,getSync:$k}=bt({fallbackImport:()=>import("@runtypelabs/persona/artifacts-ui")}),da=null,Tp=new Set,Cx=e=>{if(da)return da;da=e,e.initArtifactsUi({componentRegistry:So});for(let o of yf)So.has(o)||So.register(o,o==="PersonaArtifactCard"?e.PersonaArtifactCard:e.PersonaArtifactInline,{bubbleChrome:!1});let t=$o();t?e.__provideMarkdownParsers(t):_i(()=>{let o=$o();o&&e.__provideMarkdownParsers(o)}),e.__setIconsExtraLoader(()=>cd());let n=[...Tp];Tp.clear();for(let o of n)try{o()}catch{}return e};var Pp=()=>Fk().then(Cx);var Cr=()=>{if(da)return da;let e=$k();return e?Cx(e):null},bf=e=>da?()=>{}:(Tp.add(e),()=>{Tp.delete(e)});function wn(e){return e?.features?.artifacts?.enabled===!0}function wx(e,t){if(e.classList.remove("persona-artifact-border-full","persona-artifact-border-left"),e.style.removeProperty("--persona-artifact-pane-border"),e.style.removeProperty("--persona-artifact-pane-border-left"),!wn(t))return;let n=t.features?.artifacts?.layout,o=n?.paneBorder?.trim(),r=n?.paneBorderLeft?.trim();o?(e.classList.add("persona-artifact-border-full"),e.style.setProperty("--persona-artifact-pane-border",o)):r&&(e.classList.add("persona-artifact-border-left"),e.style.setProperty("--persona-artifact-pane-border-left",r))}function Uk(e){e.style.removeProperty("--persona-artifact-doc-toolbar-icon-color"),e.style.removeProperty("--persona-artifact-doc-toggle-active-bg"),e.style.removeProperty("--persona-artifact-doc-toggle-active-border")}var xx=["panel","seamless","detached"];function vf(e){let t=e.features?.artifacts?.layout?.paneAppearance;return t&&xx.includes(t)?t:t?"panel":e.launcher?.detachedPanel?"detached":"panel"}function Cf(e){return!e||!wn(e)?!1:vf(e)==="detached"}function Bl(e,t){if(!wn(t)){e.style.removeProperty("--persona-artifact-split-gap"),e.style.removeProperty("--persona-artifact-pane-width"),e.style.removeProperty("--persona-artifact-pane-max-width"),e.style.removeProperty("--persona-artifact-pane-min-width"),e.style.removeProperty("--persona-artifact-drawer-width"),e.style.removeProperty("--persona-artifact-pane-bg"),e.style.removeProperty("--persona-artifact-pane-padding"),Uk(e),wx(e,t);return}let n=t.features?.artifacts?.layout,o=vf(t)==="detached"?"var(--persona-panel-inset)":"0";e.style.setProperty("--persona-artifact-split-gap",n?.splitGap??o),e.style.setProperty("--persona-artifact-pane-width",n?.paneWidth??"40%"),e.style.setProperty("--persona-artifact-pane-max-width",n?.paneMaxWidth??"28rem"),n?.drawerWidth?e.style.setProperty("--persona-artifact-drawer-width",n.drawerWidth):e.style.removeProperty("--persona-artifact-drawer-width"),n?.paneMinWidth?e.style.setProperty("--persona-artifact-pane-min-width",n.paneMinWidth):e.style.removeProperty("--persona-artifact-pane-min-width");let r=n?.paneBackground?.trim();r?e.style.setProperty("--persona-artifact-pane-bg",r):e.style.removeProperty("--persona-artifact-pane-bg");let s=n?.panePadding?.trim();s?e.style.setProperty("--persona-artifact-pane-padding",s):e.style.removeProperty("--persona-artifact-pane-padding");let a=[[n?.documentToolbarIconColor,"--persona-artifact-doc-toolbar-icon-color"],[n?.documentToolbarToggleActiveBackground,"--persona-artifact-doc-toggle-active-bg"],[n?.documentToolbarToggleActiveBorderColor,"--persona-artifact-doc-toggle-active-border"],[n?.documentToolbarToggleActiveColor,"--persona-artifact-doc-toggle-active-color"]];for(let[l,d]of a){let p=l?.trim();p?e.style.setProperty(d,p):e.style.removeProperty(d)}wx(e,t)}function _l(e,t){for(let l of xx)e.classList.remove(`persona-artifact-appearance-${l}`);if(e.style.removeProperty("--persona-artifact-pane-radius"),e.style.removeProperty("--persona-artifact-pane-shadow"),e.style.removeProperty("--persona-artifact-chat-shadow"),!wn(t))return;let n=t.features?.artifacts?.layout,o=vf(t);e.classList.add(`persona-artifact-appearance-${o}`);let r=n?.paneBorderRadius?.trim();r&&e.style.setProperty("--persona-artifact-pane-radius",r);let s=n?.paneShadow?.trim();s&&e.style.setProperty("--persona-artifact-pane-shadow",s);let a=n?.chatShadow?.trim();a&&e.style.setProperty("--persona-artifact-chat-shadow",a)}function Sx(e,t){return!t||!wn(e)?!1:e.features?.artifacts?.layout?.expandLauncherPanelWhenOpen!==!1}var jk=new Set(["__proto__","prototype","constructor"]),qk=new Set(["collapsed","card","panel","inline"]),Ax=new Set(["markdown","component"]),zk=/^[a-z0-9][a-z0-9!#$&^_.+-]*\/(\*|[a-z0-9!#$&^_.+-]+)$/,ti=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Lp=e=>!jk.has(e),wf=e=>typeof e=="string"&&qk.has(e),ni=e=>Object.keys(e).length>0;function Ko(e,t,n,o){e.push({path:t,code:n,message:o})}var Vk="Ignored because this key is not part of the persisted preference schema.",kp="Ignored an unsupported value.",Kk="Expected collapsed, panel, or inline.",Gk='Expected a MIME type such as "text/html" or a wildcard such as "image/*".',Mx={kind:"mode",message:kp},pa={kind:"string",message:"Expected a CSS length string."},wr={kind:"boolean"},Qk={paneWidth:pa,paneMaxWidth:pa,paneMinWidth:pa,expandedPanelWidth:pa,resizableMinWidth:pa,resizableMaxWidth:pa,expandLauncherPanelWhenOpen:wr,resizable:wr},Yk={kind:"object",message:"Expected a preference object.",children:{showToolCalls:wr,showReasoning:wr,toolCallDisplay:{kind:"object",children:{collapsedMode:{kind:"enum",values:new Set(["tool-call","tool-name","tool-preview"]),message:kp},groupedMode:{kind:"enum",values:new Set(["stack","summary"]),message:kp},loadingAnimation:{kind:"enum",values:new Set(["none","pulse","shimmer","shimmer-color","rainbow"]),message:kp},expandable:wr,grouped:wr}},reasoningDisplay:{kind:"object",children:{expandable:wr,activePreview:wr}},artifacts:{kind:"object",children:{display:{kind:"object",bareMode:!0,message:"Expected an artifact display rules object.",children:{default:Mx,files:{kind:"object",bareMode:!0,message:"Expected collapsed, panel, inline, or a file display rules object.",children:{default:Mx,byMediaType:{kind:"modeMap",keys:"mediaType"}}},byType:{kind:"modeMap",keys:Ax,alias:"byKind",deprecated:"Use byKind. The legacy selector was normalized automatically."},byKind:{kind:"modeMap",keys:Ax}}},filePreview:{kind:"object",children:{enabled:wr}},layout:{kind:"object",children:Qk}}}}};function Ex(e,t,n,o){if(e!==void 0)switch(t.kind){case"boolean":return typeof e=="boolean"?e:Ko(o,n,"invalid_type","Expected a boolean.");case"string":return typeof e=="string"?e:Ko(o,n,"invalid_type",t.message);case"enum":return typeof e=="string"&&t.values.has(e)?e:Ko(o,n,"invalid_value",t.message);case"mode":return wf(e)?Ln(e):Ko(o,n,"invalid_value",t.message);case"modeMap":{if(!ti(e))return Ko(o,n,"invalid_type","Expected an object.");let r=t.keys==="mediaType"?void 0:t.keys,s={};for(let[a,l]of Object.entries(e)){let d=r?a:Kr(a);Lp(a)&&(r?r.has(a):zk.test(d))?wf(l)?s[d]=Ln(l):Ko(o,`${n}.${a}`,"invalid_value",Kk):Ko(o,`${n}.${a}`,r?"unknown_key":"invalid_value",r?"Ignored an unsupported selector.":Gk)}return ni(s)?s:void 0}case"object":{if(t.bareMode&&wf(e))return Ln(e);if(!ti(e))return Ko(o,n,"invalid_type",t.message??"Expected an object.");let r=Object.keys(t.children),s=l=>n?`${n}.${l}`:l;for(let l of Object.keys(e))(!Lp(l)||!r.includes(l))&&Ko(o,s(l),"unknown_key",Vk);let a={};for(let l of r){let d=t.children[l],p=Ex(e[l],d,s(l),o);if(d.deprecated&&e[l]!==void 0&&Ko(o,s(l),"deprecated_key",d.deprecated),p===void 0)continue;let u=d.alias??l,m=a[u];a[u]=ti(m)&&ti(p)?{...m,...p}:p}return ni(a)?a:void 0}}}function xf(e){let t=[];return{preferences:(e===null?void 0:Ex(e,Yk,"",t))??{},issues:t}}function ua(e){if(Array.isArray(e))return e.map(ua);if(!ti(e))return e;let t={};for(let[n,o]of Object.entries(e))Lp(n)&&o!==void 0&&(t[n]=ua(o));return t}function Tx(e,t){let n=ua(e);for(let[o,r]of Object.entries(t)){if(!Lp(o)||r===void 0)continue;let s=n[o];n[o]=ti(s)&&ti(r)?Tx(s,r):ua(r)}return n}function Xk(e){let t={},n;for(let r of e){let s=xf(r).preferences;n=Px(n,s.artifacts?.display),t=Tx(t,s)}let o=t;return o.artifacts&&(n!==void 0?o.artifacts.display=n:delete o.artifacts.display),o}function Jk(e,t){if(t===void 0)return e===void 0?void 0:ua(e);if(typeof t=="string")return t;let n=typeof e=="string"?{default:e}:e??{},o=t.default??n.default,r={...n.byMediaType,...t.byMediaType},s={...o?{default:o}:{},...ni(r)?{byMediaType:r}:{}};return ni(s)?s:void 0}function Px(e,t){if(t===void 0)return e===void 0?void 0:ua(e);if(typeof t=="string")return t;let n=typeof e=="string"?{default:e}:e??{},o=t.default??n.default,r={...n.byType,...n.byKind,...t.byType,...t.byKind},s=Jk(n.files,t.files),a={...o?{default:o}:{},...ni(r)?{byKind:r}:{},...s!==void 0?{files:s}:{}};return ni(a)?a:void 0}function Sf(e={},t){let n=Xk(t),o={...e};if(n.showToolCalls!==void 0&&(o.showToolCalls=n.showToolCalls),n.showReasoning!==void 0&&(o.showReasoning=n.showReasoning),n.toolCallDisplay&&(o.toolCallDisplay={...e.toolCallDisplay,...n.toolCallDisplay}),n.reasoningDisplay&&(o.reasoningDisplay={...e.reasoningDisplay,...n.reasoningDisplay}),n.artifacts){let r=e.artifacts??{},s={...r};if(n.artifacts.display!==void 0){let a=Px(r.display,n.artifacts.display);a!==void 0&&(s.display=a)}n.artifacts.filePreview&&(s.filePreview={...r.filePreview,enabled:n.artifacts.filePreview.enabled}),n.artifacts.layout&&(s.layout={...r.layout,...n.artifacts.layout}),o.artifacts=s}return o}function Dl(e){let t=e.preferences;return!t||!ni(t)?e:{...e,features:Sf(e.features??{},[t])}}function Zk(e,t){if(!e?.trim())return t;let n=/^(\d+(?:\.\d+)?)px\s*$/i.exec(e.trim());return n?Math.max(0,Number(n[1])):t}function eL(e){if(!e?.trim())return null;let t=/^(\d+(?:\.\d+)?)px\s*$/i.exec(e.trim());return t?Math.max(0,Number(t[1])):null}function tL(e,t,n){return n<t?t:Math.min(n,Math.max(t,e))}function nL(e,t,n,o){let r=e-o-2*t-n;return Math.max(0,r)}function Af(e,t){let o=(t.getComputedStyle(e).gap||"0px").trim().split(/\s+/)[0]??"0px",r=/^([\d.]+)px$/i.exec(o);if(r)return Number(r[1]);let s=/^([\d.]+)/.exec(o);return s?Number(s[1]):8}function kx(e,t,n,o,r,s,a=200){let l=Zk(r,200),d=nL(t,n,o,a);d=Math.max(l,d);let p=eL(s);return p!==null&&(d=Math.min(d,p)),tL(e,l,d)}var{setLoader:KB,load:oL,provide:GB,getSync:rL}=bt({fallbackImport:()=>import("@runtypelabs/persona/forms-ui")});var Lx=oL;var Ix=rL;var Mf=class{constructor(){this.plugins=new Map}register(t){this.plugins.has(t.id)&&console.warn(`Plugin "${t.id}" is already registered. Overwriting.`),this.plugins.set(t.id,t),t.onRegister?.()}unregister(t){let n=this.plugins.get(t);n&&(n.onUnregister?.(),this.plugins.delete(t))}getAll(){return Array.from(this.plugins.values()).sort((t,n)=>(n.priority??0)-(t.priority??0))}getForInstance(t){let n=this.getAll();if(!t||t.length===0)return n;let o=new Set(t.map(s=>s.id));return[...n.filter(s=>!o.has(s.id)),...t].sort((s,a)=>(a.priority??0)-(s.priority??0))}clear(){this.plugins.forEach(t=>t.onUnregister?.()),this.plugins.clear()}},Nl=new Mf;var Rx=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),sL=new Set(["headers","agent","storageAdapter","components","targetProviders","voiceRecognition.provider.custom","features.artifacts.display","features.streamAnimation.plugins","preferences","welcome.icon"]),Hx=(e,t,n)=>{if(!Rx(e)||!Rx(t)||sL.has(n))return t;let o={...e};for(let r of Object.keys(t)){if(t[r]===void 0){delete o[r];continue}let s=n?`${n}.${r}`:r;o[r]=Hx(e[r],t[r],s)}return o};function Ip(e,t){let n=Hx(e,t,"");return Zi(n)}var Wx=()=>{let e=new Map,t=(r,s)=>(e.has(r)||e.set(r,new Set),e.get(r).add(s),()=>n(r,s)),n=(r,s)=>{e.get(r)?.delete(s)};return{on:t,off:n,emit:(r,s)=>{e.get(r)?.forEach(a=>{try{a(s)}catch(l){typeof console<"u"&&console.error("[AgentWidget] Event handler error:",l)}})}}};var iL=e=>{let t=e.match(/```(?:json)?\s*([\s\S]*?)```/i);return t?t[1]:e},aL=e=>{let t=e.trim(),n=t.indexOf("{");if(n===-1)return null;let o=0;for(let r=n;r<t.length;r+=1){let s=t[r];if(s==="{"&&(o+=1),s==="}"&&(o-=1,o===0))return t.slice(n,r+1)}return null},Fl=({text:e})=>{if(!e||!e.includes("{"))return null;try{let t=iL(e),n=aL(t);if(!n)return null;let o=JSON.parse(n);if(!o||typeof o!="object"||!o.action)return null;let{action:r,...s}=o;return{type:String(r),payload:s,raw:o}}catch{return null}},Ef=e=>typeof e=="string"?e:e==null?"":String(e),oi={message:e=>e.type!=="message"?void 0:{handled:!0,displayText:Ef(e.payload.text)},messageAndClick:(e,t)=>{if(e.type!=="message_and_click")return;let n=e.payload,o=Ef(n.element);if(o&&t.document?.querySelector){let r=t.document.querySelector(o);r?setTimeout(()=>{r.click()},400):typeof console<"u"&&console.warn("[AgentWidget] Element not found for selector:",o)}return{handled:!0,displayText:Ef(n.text)}}},Ox=e=>Array.isArray(e)?e.map(t=>String(t)):[],$l=e=>{let t=new Set(Ox(e.getSessionMetadata().processedActionMessageIds)),n=()=>{t=new Set(Ox(e.getSessionMetadata().processedActionMessageIds))},o=()=>{let s=Array.from(t);e.updateSessionMetadata(a=>({...a,processedActionMessageIds:s}))};return{process:s=>{if(s.streaming||s.message.role!=="assistant"||!s.text||t.has(s.message.id))return null;let a=typeof s.raw=="string"&&s.raw||typeof s.message.rawContent=="string"&&s.message.rawContent||typeof s.text=="string"&&s.text||null;!a&&typeof s.text=="string"&&s.text.trim().startsWith("{")&&typeof console<"u"&&console.warn("[AgentWidget] Structured response detected but no raw payload was provided. Ensure your stream parser returns { text, raw }.");let l=a?e.parsers.reduce((p,u)=>p||u?.({text:a,message:s.message})||null,null):null;if(!l)return null;t.add(s.message.id),o();let d={action:l,message:s.message};e.emit("action:detected",d);for(let p of e.handlers)if(p)try{let u=()=>{e.emit("action:resubmit",d)},m=p(l,{message:s.message,metadata:e.getSessionMetadata(),updateMetadata:e.updateSessionMetadata,document:e.documentRef,triggerResubmit:u});if(!m)continue;if(m.handled){let y=m.persistMessage!==!1;return{text:m.displayText!==void 0?m.displayText:"",persist:y,resubmit:m.resubmit}}}catch(u){typeof console<"u"&&console.error("[AgentWidget] Action handler error:",u)}return{text:"",persist:!0}},syncFromMetadata:n}};var lL=e=>{if(!e)return null;try{return JSON.parse(e)}catch(t){return typeof console<"u"&&console.error("[AgentWidget] Failed to parse stored state:",t),null}},cL=e=>e.map(t=>({...t,streaming:!1})),dL=e=>e.map(t=>({...t,status:"complete"})),Rp=(e="persona-state")=>{let t=()=>typeof window>"u"||!window.localStorage?null:window.localStorage;return{load:()=>{let n=t();return n?lL(n.getItem(e)):null},save:n=>{let o=t();if(o)try{let r={...n,messages:n.messages?cL(n.messages):void 0,artifacts:n.artifacts?dL(n.artifacts):void 0};o.setItem(e,JSON.stringify(r))}catch(r){typeof console<"u"&&console.error("[AgentWidget] Failed to persist state:",r)}},clear:()=>{let n=t();if(n)try{n.removeItem(e)}catch(o){typeof console<"u"&&console.error("[AgentWidget] Failed to clear stored state:",o)}}}};var pL=e=>{let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return t.toString(16).padStart(8,"0")},Bx=async e=>{let t=globalThis.crypto?.subtle;if(t)try{let n=await t.digest("SHA-256",new TextEncoder().encode(e));return Array.from(new Uint8Array(n)).map(o=>o.toString(16).padStart(2,"0")).join("")}catch{}return pL(e)},uL=async(e,t)=>{let n=await Bx(e);return{storageKey:`${t}visitor:${n}`,leaseKey:`${t}visitor-init-lock:${n}`,lockName:`persona-visitor-init:${await Bx(`${e}\0${t}`)}`}};var _x=(e,t,n)=>{let o="",r="",s="",a=!1,l=!1,d=0,p=null,u=null,m=new Set,y=()=>{if(n||a)return null;try{return typeof window>"u"||!window.localStorage?null:window.localStorage}catch{return a=!0,null}},h=()=>{let A=y();if(!A)return p;try{return A.getItem(o)}catch{return a=!0,p}},C=(A,N)=>{if(l||A===p)return;let Q=p;p=A,d+=1;let ce={previousToken:Q,token:A,source:N,revision:d};for(let Y of m)Y(ce)},S=A=>{l||A.key!==null&&A.key!==o||C(A.key===null?null:A.newValue??null,"external")},x=(async()=>{let A=await uL(e,t);o=A.storageKey,r=A.leaseKey,s=A.lockName,p=h(),!n&&typeof window<"u"&&window.addEventListener("storage",S)})(),k=A=>new Promise(N=>setTimeout(N,A)),O=()=>{let A=y();if(!A)return null;try{let N=A.getItem(r);if(!N)return null;let Q=JSON.parse(N);return typeof Q?.expiresAt=="number"&&typeof Q?.ownerNonce=="string"?Q:null}catch{return null}},$=A=>{let N=y();if(N)try{O()?.ownerNonce===A&&N.removeItem(r)}catch{}},T=A=>new Promise(N=>{let Q=setTimeout(ce,A);function ce(){clearTimeout(Q),window.removeEventListener("storage",Y),N()}function Y(E){(E.key===null||E.key===r)&&ce()}window.addEventListener("storage",Y)}),I=async A=>{let N=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,Q=Date.now()+15e3;for(;Date.now()<Q;){let ce=y();if(!ce)break;let Y=Date.now(),E=O();if(E&&E.expiresAt>Y&&E.ownerNonce!==N){await T(Math.min(E.expiresAt-Y,500));continue}try{ce.setItem(r,JSON.stringify({ownerNonce:N,expiresAt:Y+1e4}))}catch{a=!0;break}if(await k(20+Math.random()*40),O()?.ownerNonce!==N){await T(500);continue}u=N;try{return await A()}finally{u=null,$(N)}}return A()};return{ready:x,async get(){return await x,C(h(),"external"),p},async set(A){await x;let N=y();if(N)try{N.setItem(o,A)}catch{a=!0}C(A,"local")},async clear(){await x;let A=y();if(A)try{A.removeItem(o)}catch{a=!0}C(null,"local")},revision(){return d},subscribe(A){return m.add(A),()=>{m.delete(A)}},async withFirstInitLock(A){await x;let N=globalThis.navigator?.locks;return N?.request?N.request(s,()=>A()):y()?I(A):A()},matches(A,N,Q){return A===e&&N===t&&Q===n},destroy(){l=!0,m.clear(),typeof window<"u"&&window.removeEventListener("storage",S),u&&$(u)}}};var{setLoader:r_,load:gL}=bt({fallbackImport:()=>import("@runtypelabs/persona/history-view")});var Tf=gL;var Pf=(e,t)=>{console.warn(`[persona] ${e} threw`,t)},xr=e=>Object.freeze({...e}),Dx=e=>Object.freeze({id:e.id,title:e.title,targetId:e.targetId,preview:e.preview,messageCount:e.messageCount,createdAt:e.createdAt,updatedAt:e.updatedAt}),Nx=e=>e?xr(e):null;function Fx(e){let{plugins:t,config:n}=e,o=!1,r=!1,s=!1,a=!1,l=null,d=[],p=()=>{for(let T of d.splice(0))try{T()}catch(I){Pf("renderHistoryView cleanup",I)}},u=(T,I)=>{for(let A of t){let N=A[T];if(N)try{let Q=N(I);if(Q)return Q}catch(Q){Pf(T,Q)}}return null},m=()=>({presentation:e.getPresentation(),config:n}),y={header:T=>a?u("renderHistoryHeader",Object.freeze({...m(),returnSurface:e.getReturnSurface(),identityStatus:xr(T.identityStatus),pendingAction:Nx(T.pendingAction),copy:xr(T.copy),actions:Object.freeze({close:S.close,startNewConversation:S.startNewConversation}),defaultRenderer:T.defaultRenderer})):null,conversation:T=>a?u("renderHistoryConversation",Object.freeze({...m(),conversation:Dx(T.conversation),active:T.active,pending:T.pending,open:T.open,requestDelete:T.requestDelete,defaultRenderer:T.defaultRenderer})):null,state:T=>a?u("renderHistoryState",Object.freeze({...m(),state:xr(T.state),identityStatus:xr(T.identityStatus),copy:xr(T.copy),...T.retry?{retry:T.retry}:{},...T.startNewConversation?{startNewConversation:T.startNewConversation}:{},defaultRenderer:T.defaultRenderer})):null},h=t.flatMap(T=>(T.railSections??[]).map(I=>({...I,placement:I.placement??"above-conversations",items:[],render:A=>I.render(Object.freeze({collapsed:A,presentation:e.getPresentation(),actions:S}))}))),C=e.createView({slots:y,renderDom:!1,onModelChange:()=>$(),railSections:h}),S=Object.freeze({...C.operations,close:e.close}),x=()=>(a=!0,C.setDomRenderEnabled(!0),C.element),k=T=>Object.freeze({conversations:Object.freeze(T.conversations.map(Dx)),activeConversationId:T.activeConversationId,state:xr(T.state),pendingAction:Nx(T.pendingAction),identityStatus:xr(T.identityStatus),nextCursor:T.nextCursor,presentation:e.getPresentation(),returnSurface:e.getReturnSurface(),config:n,copy:xr(C.copy),actions:S,defaultRenderer:x,requestRender:()=>$(),onCleanup:I=>{d.push(I)}}),O=()=>{a=!1;let T=null;for(let A of t)if(A.renderHistoryView){try{T=A.renderHistoryView(k(C.getModel()))}catch(N){Pf("renderHistoryView",N),T=null}if(T)break}let I=!T||T.contains(C.element);return a=I,C.setDomRenderEnabled(I),T??C.element};function $(){if(!(!s||o||r)){r=!0;try{p();let T=O();if(T===l)return;let I=l;l=T,e.onElementChanged(T,I)}finally{r=!1}}}return s=!0,$(),{view:C,get element(){return l??C.element},requestRender:$,dispose:()=>{o=!0,p()}}}var mL=null;function $x(){return mL}var fL=new Map([["not_found","not_found"],["conversation_deleted","not_found"],["rate_limited","rate_limited"],["authentication_required","authentication_required"],["invalid_identity_proof","authentication_required"],["visitor_identity_mismatch","authentication_required"],["visitor_required","authentication_required"],["identity_provider_failed","identity_provider_failed"],["proof_not_admitted","proof_not_admitted"],["identity_contract_violation","proof_not_admitted"],["unauthorized","authentication_failed"],["visitor_token_missing","authentication_failed"],["conversation_credential_missing","authentication_failed"]]),hL=new Map([["not_found","That conversation is no longer available."],["rate_limited","Too many history requests."],["authentication_failed","History access was not authorized."],["authentication_required","Sign in again to view account history."],["identity_provider_failed","The identity provider did not respond."],["proof_not_admitted","Account history is not available for this configuration."],["unsupported_scope","This history scope is not supported."],["unavailable","Conversation history is unavailable right now."]]),kf=e=>hL.get(e)??"Conversation history is unavailable right now.";function yL(e){if(e instanceof lo)return e;if(e instanceof ze){let t=fL.get(e.code)??"unavailable";return new lo(t,kf(t),{...e.retryAfterSeconds!==void 0?{retryAfterSeconds:e.retryAfterSeconds}:{}})}return new lo("unavailable",kf("unavailable"))}function Ux(e){let t=()=>e.getClient?.()??e.client,n=e.getIdentityProofConfigured()?["browser","verified-user"]:["browser"],o={scopes:n},r=l=>{if(!n.includes(l))throw new lo("unsupported_scope",kf("unsupported_scope"))},s=async(l,d)=>{r(l);try{return await d()}catch(p){throw yL(p)}},a=l=>{let d=!1;return{conversationId:l.session.conversationId??"",conversationRevision:l.session.conversationRevision??"",async commit(){d||(d=!0,l.commit(),await e.onActivationCommitted(l.session))},discard(){d||(d=!0,l.discard())}}};return{capabilities:o,getIdentityStatus(){return t().getHistoryIdentityStatus()},subscribeIdentityStatus(l){return t().subscribeHistoryIdentityStatus(l)},subscribeAvailability(l){return t().subscribeHistoryAvailability(l)},async list(l){return s(l.context.scope,async()=>{let d=await t().listConversations({...l.cursor?{cursor:l.cursor}:{},...l.limit!==void 0?{limit:l.limit}:{},...l.targetId?{targetId:l.targetId}:{},scope:l.context.scope});return{items:d.data,nextCursor:d.nextCursor}})},async getPage(l,d){return s(d.context.scope,async()=>{let p=await t().getConversation(l,{...d.cursor?{messageCursor:d.cursor}:{},scope:d.context.scope}),u=Uv(p.messages,{...d.beforeCreatedAt?{beforeCreatedAt:d.beforeCreatedAt}:{}});return{summary:p.summary,messages:fl([],u),conversationRevision:p.conversationRevision??"",nextCursor:p.nextMessageCursor}})},async prepareOpen(l,d){return s(d.context.scope,async()=>a(await t().prepareConversationSession(l)))},async prepareStartNew(l){return s(l.context.scope,async()=>a(await t().prepareNewConversationSession()))},async delete(l,d){await s(d.context.scope,()=>t().deleteConversation(l,{scope:d.context.scope}))},async deleteAll(l){return s(l.context.scope,()=>t().deleteAllConversations({...l.targetId!==void 0?{targetId:l.targetId}:{},scope:l.context.scope}))},async resetDevice(){try{return await t().resetVisitor(),{remoteRevocationConfirmed:!0}}catch{return{remoteRevocationConfirmed:!1}}}}}var bL=["viewTitle","openHistoryLabel","openHistoryBusyLabel","newConversationLabel","expandLabel","collapseLabel","resizeLabel","showEarlierMessagesLabel","openConversationLoadingLabel","openConversationErrorTitle","openConversationRetryLabel","openConversationBackLabel","confirmCancelLabel","deleteConversationConfirmTitle","deleteConversationConfirm","deleteConversationConfirmLabel","clearHistoryConfirmTitle","clearHistoryConfirm","clearHistoryVerifiedConfirm","clearHistoryConfirmLabel","resetIdentityConfirmTitle","resetIdentityConfirm","resetIdentityConfirmLabel","conversationDeletedNotice","identityResetNotice","identityResetUnconfirmedNotice"],jx={viewTitle:"Messages",openHistoryLabel:"Messages",openHistoryBusyLabel:"Messages, available once the reply finishes",newConversationLabel:"New conversation",expandLabel:"Expand conversation list",collapseLabel:"Collapse conversation list",resizeLabel:"Resize conversation list",showEarlierMessagesLabel:"Show earlier messages",openConversationLoadingLabel:"Loading conversation",openConversationErrorTitle:"Could not open the conversation.",openConversationRetryLabel:"Try again",openConversationBackLabel:"Back to messages",confirmCancelLabel:"Cancel",deleteConversationConfirmTitle:"Delete conversation",deleteConversationConfirm:"Delete this conversation? This cannot be undone.",deleteConversationConfirmLabel:"Delete",clearHistoryConfirmTitle:"Delete all conversations",clearHistoryConfirm:"Delete all conversations for this assistant on this browser? This cannot be undone.",clearHistoryVerifiedConfirm:"Delete all conversations for this assistant and signed-in user? This cannot be undone.",clearHistoryConfirmLabel:"Delete all",resetIdentityConfirmTitle:"Forget this device",resetIdentityConfirm:"Forget this device? All Persona data stored in this browser is cleared. Records are not deleted elsewhere.",resetIdentityConfirmLabel:"Forget this device",conversationDeletedNotice:"That conversation was deleted. You are now in a new conversation.",identityResetNotice:"This device was forgotten.",identityResetUnconfirmedNotice:"This device was cleared here, but the server could not confirm it."};function Lf(e){if(!e)return jx;let t={...jx};for(let n of bL){let o=e[n];typeof o=="string"&&o.length>0&&(t[n]=o)}return t}var vL="button:not([disabled])";function Hp(e){let t=document.activeElement instanceof HTMLElement?document.activeElement:null,n=Math.random().toString(36).slice(2,8),o=`persona-history-confirm-title-${n}`,r=`persona-history-confirm-desc-${n}`,s=X("button",{className:"persona-history-confirm__cancel",text:e.cancelLabel,attrs:{type:"button"}}),a=X("button",{className:"persona-history-confirm__confirm",text:e.confirmLabel,attrs:{type:"button","data-persona-destructive":"true"}}),l=X("div",{className:"persona-history-confirm__dialog",attrs:{role:"alertdialog","aria-modal":"true","aria-labelledby":o,"aria-describedby":r},style:{maxWidth:"22rem",width:"100%",borderRadius:"var(--persona-radius-lg, 0.75rem)",background:"var(--persona-surface, #ffffff)",color:"var(--persona-text, #111827)",boxShadow:"var(--persona-history-confirm-shadow, 0 20px 40px -12px rgba(0, 0, 0, 0.35))",padding:"20px",display:"flex",flexDirection:"column",gap:"12px"}},X("h2",{className:"persona-history-confirm__title",text:e.title,attrs:{id:o},style:{margin:"0",fontSize:"1rem",fontWeight:"600"}}),X("p",{className:"persona-history-confirm__description",text:e.description,attrs:{id:r},style:{margin:"0",fontSize:"0.875rem",lineHeight:"1.4"}}),X("div",{className:"persona-history-confirm__actions",style:{display:"flex",gap:"8px",justifyContent:"flex-end",flexWrap:"wrap"}},s,a));for(let p of[s,a])p.style.minHeight="44px",p.style.minWidth="88px",p.style.padding="0 16px",p.style.borderRadius="var(--persona-radius-md, 0.5rem)",p.style.cursor="pointer",p.style.font="inherit";s.style.border="1px solid var(--persona-border, rgba(0,0,0,0.12))",s.style.background="transparent",s.style.color="inherit",a.style.border="none",a.style.background="var(--persona-danger, #b42318)",a.style.color="var(--persona-danger-fg, #ffffff)";let d=X("div",{className:"persona-history-confirm",style:{position:"absolute",inset:"0",zIndex:"40",display:"flex",alignItems:"center",justifyContent:"center",padding:"16px",background:"var(--persona-history-confirm-scrim, rgba(15, 23, 42, 0.45))"}},l);return new Promise(p=>{let u=!1,m=h=>{u||(u=!0,d.removeEventListener("keydown",y,!0),d.remove(),t?.focus(),p(h))};function y(h){if(h.key==="Escape"){h.preventDefault(),h.stopPropagation(),m(!1);return}if(h.key!=="Tab")return;let C=Array.from(l.querySelectorAll(vL));if(C.length===0)return;let S=C[0],x=C[C.length-1],k=document.activeElement;h.shiftKey&&(k===S||!l.contains(k))?(h.preventDefault(),x.focus()):!h.shiftKey&&k===x&&(h.preventDefault(),S.focus())}d.addEventListener("keydown",y,!0),d.addEventListener("pointerdown",h=>{h.target===d&&m(!1)}),s.addEventListener("click",()=>m(!1)),a.addEventListener("click",()=>m(!0)),e.host.appendChild(d),s.focus()})}var ga=require("partial-json");function CL(e){if(!e||typeof e!="object"||!("component"in e))return!1;let t=e.component;return typeof t=="string"&&t.length>0}function wL(e,t){if(!CL(e))return null;let n=e.props&&typeof e.props=="object"&&e.props!==null?e.props:{};return{component:e.component,props:n,raw:t}}function Wp(){let e=null,t=0;return{getExtractedDirective:()=>e,processChunk:n=>{let o=n.trim();if(!o.startsWith("{")&&!o.startsWith("["))return null;if(n.length<=t)return e;try{let r=(0,ga.parse)(n,ga.STR|ga.OBJ),s=wL(r,n);s&&(e=s)}catch{}return t=n.length,e},reset:()=>{e=null,t=0}}}function qx(e){return typeof e=="object"&&e!==null&&"component"in e&&typeof e.component=="string"&&"props"in e&&typeof e.props=="object"}function Op(e,t){let{config:n,message:o,onPropsUpdate:r}=t,s=So.get(e.component);if(!s){if(yf.includes(e.component)){Pp().catch(()=>{});let l=M("div","persona-w-full");return l.setAttribute("data-persona-artifact-pending","true"),l}return console.warn(`[ComponentMiddleware] Component "${e.component}" not found in registry. Falling back to default rendering.`),null}let a={message:o,config:n,updateProps:l=>{r&&r(l)}};try{return s(e.props,a)}catch(l){return console.error(`[ComponentMiddleware] Error rendering component "${e.component}":`,l),null}}function zx(){let e=Wp();return{processChunk:t=>e.processChunk(t),getDirective:()=>e.getExtractedDirective(),reset:()=>{e.reset()}}}function Vx(e){if(typeof e.rawContent=="string"&&e.rawContent.length>0)return e.rawContent;if(typeof e.content=="string"){let t=e.content.trim();if(t.startsWith("{")||t.startsWith("["))return e.content}return null}function Ul(e){let t=Vx(e);if(!t)return!1;try{let n=JSON.parse(t);return typeof n=="object"&&n!==null&&"component"in n&&typeof n.component=="string"}catch{return!1}}function Bp(e){let t=Vx(e);if(!t)return null;try{let n=JSON.parse(t);if(typeof n=="object"&&n!==null&&"component"in n&&typeof n.component=="string"){let o=n;return{component:o.component,props:o.props&&typeof o.props=="object"&&o.props!==null?o.props:{},raw:t}}}catch{}return null}var xL=["Very dissatisfied","Dissatisfied","Neutral","Satisfied","Very satisfied"];function _p(e){let{onSubmit:t,onDismiss:n,title:o="How satisfied are you?",subtitle:r="Please rate your experience",commentPlaceholder:s="Share your thoughts (optional)...",submitText:a="Submit",skipText:l="Skip",showComment:d=!0,ratingLabels:p=xL}=e,u=document.createElement("div");u.className="persona-feedback-container persona-feedback-csat",u.setAttribute("role","dialog"),u.setAttribute("aria-label","Customer satisfaction feedback");let m=null,y=document.createElement("div");y.className="persona-feedback-content";let h=document.createElement("div");h.className="persona-feedback-header";let C=document.createElement("h3");C.className="persona-feedback-title",C.textContent=o,h.appendChild(C);let S=document.createElement("p");S.className="persona-feedback-subtitle",S.textContent=r,h.appendChild(S),y.appendChild(h);let x=document.createElement("div");x.className="persona-feedback-rating persona-feedback-rating-csat",x.setAttribute("role","radiogroup"),x.setAttribute("aria-label","Satisfaction rating from 1 to 5");let k=[];for(let A=1;A<=5;A++){let N=document.createElement("button");N.type="button",N.className="persona-feedback-rating-btn persona-feedback-star-btn",N.setAttribute("role","radio"),N.setAttribute("aria-checked","false"),N.setAttribute("aria-label",`${A} star${A>1?"s":""}: ${p[A-1]}`),N.title=p[A-1],N.dataset.rating=String(A),N.innerHTML=`
40
40
  <svg class="persona-feedback-star" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
41
41
  <polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon>
42
42
  </svg>
43
- `,D.addEventListener("click",()=>{m=A,k.forEach((Q,le)=>{let re=le<A;Q.classList.toggle("selected",re),Q.setAttribute("aria-checked",le===A-1?"true":"false")})}),k.push(D),S.appendChild(D)}y.appendChild(S);let B=null;if(d){let A=document.createElement("div");A.className="persona-feedback-comment-container",B=document.createElement("textarea"),B.className="persona-feedback-comment",B.placeholder=s,B.rows=3,B.setAttribute("aria-label","Additional comments"),A.appendChild(B),y.appendChild(A)}let $=document.createElement("div");$.className="persona-feedback-actions";let T=document.createElement("button");T.type="button",T.className="persona-feedback-btn persona-feedback-btn-skip",T.textContent=l,T.addEventListener("click",()=>{n?.(),u.remove()});let I=document.createElement("button");return I.type="button",I.className="persona-feedback-btn persona-feedback-btn-submit",I.textContent=a,I.addEventListener("click",async()=>{if(m===null){S.classList.add("persona-feedback-shake"),setTimeout(()=>S.classList.remove("persona-feedback-shake"),500);return}I.disabled=!0,I.textContent="Submitting...";try{let A=B?.value.trim()||void 0;await t(m,A),u.remove()}catch(A){I.disabled=!1,I.textContent=a,console.error("[CSAT Feedback] Failed to submit:",A)}}),$.appendChild(T),$.appendChild(I),y.appendChild($),u.appendChild(y),u}function _p(e){let{onSubmit:t,onDismiss:n,title:o="How likely are you to recommend us?",subtitle:r="On a scale of 0 to 10",commentPlaceholder:s="What could we do better? (optional)...",submitText:a="Submit",skipText:l="Skip",showComment:d=!0,lowLabel:p="Not likely",highLabel:u="Very likely"}=e,m=document.createElement("div");m.className="persona-feedback-container persona-feedback-nps",m.setAttribute("role","dialog"),m.setAttribute("aria-label","Net Promoter Score feedback");let y=null,h=document.createElement("div");h.className="persona-feedback-content";let C=document.createElement("div");C.className="persona-feedback-header";let x=document.createElement("h3");x.className="persona-feedback-title",x.textContent=o,C.appendChild(x);let S=document.createElement("p");S.className="persona-feedback-subtitle",S.textContent=r,C.appendChild(S),h.appendChild(C);let k=document.createElement("div");k.className="persona-feedback-rating persona-feedback-rating-nps",k.setAttribute("role","radiogroup"),k.setAttribute("aria-label","Likelihood rating from 0 to 10");let B=document.createElement("div");B.className="persona-feedback-labels";let $=document.createElement("span");$.className="persona-feedback-label-low",$.textContent=p;let T=document.createElement("span");T.className="persona-feedback-label-high",T.textContent=u,B.appendChild($),B.appendChild(T);let I=document.createElement("div");I.className="persona-feedback-numbers";let A=[];for(let E=0;E<=10;E++){let _=document.createElement("button");_.type="button",_.className="persona-feedback-rating-btn persona-feedback-number-btn",_.setAttribute("role","radio"),_.setAttribute("aria-checked","false"),_.setAttribute("aria-label",`Rating ${E} out of 10`),_.textContent=String(E),_.dataset.rating=String(E),E<=6?_.classList.add("persona-feedback-detractor"):E<=8?_.classList.add("persona-feedback-passive"):_.classList.add("persona-feedback-promoter"),_.addEventListener("click",()=>{y=E,A.forEach((W,L)=>{W.classList.toggle("selected",L===E),W.setAttribute("aria-checked",L===E?"true":"false")})}),A.push(_),I.appendChild(_)}k.appendChild(B),k.appendChild(I),h.appendChild(k);let D=null;if(d){let E=document.createElement("div");E.className="persona-feedback-comment-container",D=document.createElement("textarea"),D.className="persona-feedback-comment",D.placeholder=s,D.rows=3,D.setAttribute("aria-label","Additional comments"),E.appendChild(D),h.appendChild(E)}let Q=document.createElement("div");Q.className="persona-feedback-actions";let le=document.createElement("button");le.type="button",le.className="persona-feedback-btn persona-feedback-btn-skip",le.textContent=l,le.addEventListener("click",()=>{n?.(),m.remove()});let re=document.createElement("button");return re.type="button",re.className="persona-feedback-btn persona-feedback-btn-submit",re.textContent=a,re.addEventListener("click",async()=>{if(y===null){I.classList.add("persona-feedback-shake"),setTimeout(()=>I.classList.remove("persona-feedback-shake"),500);return}re.disabled=!0,re.textContent="Submitting...";try{let E=D?.value.trim()||void 0;await t(y,E),m.remove()}catch(E){re.disabled=!1,re.textContent=a,console.error("[NPS Feedback] Failed to submit:",E)}}),Q.appendChild(le),Q.appendChild(re),h.appendChild(Q),m.appendChild(h),m}var ca="persona-chat-history",wL=30*1e3,xL=641,da="data-persona-composer-reason",SL={"image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","image/bmp":"bmp","image/tiff":"tiff"};function AL(e){if(!e)return[];let t=[],n=Array.from(e.items??[]);for(let o of n){if(o.kind!=="file"||!o.type.startsWith("image/"))continue;let r=o.getAsFile();if(!r)continue;if(r.name){t.push(r);continue}let s=SL[r.type]??"png";t.push(new File([r],`clipboard-image-${Date.now()}.${s}`,{type:r.type,lastModified:Date.now()}))}if(t.length>0)return t;for(let o of Array.from(e.files??[]))o.type.startsWith("image/")&&t.push(o);return t}function Dp(e){if(!e)return!1;let t=e.types;return t?typeof t.contains=="function"?t.contains("Files"):Array.from(t).includes("Files"):!1}function ML(e){return e?e===!0?{storage:"session",keyPrefix:"persona-",persist:{openState:!0,voiceState:!0,focusInput:!0},clearOnChatClear:!0}:{storage:e.storage??"session",keyPrefix:e.keyPrefix??"persona-",persist:{openState:e.persist?.openState??!0,voiceState:e.persist?.voiceState??!0,focusInput:e.persist?.focusInput??!0},clearOnChatClear:e.clearOnChatClear??!0}:null}function EL(e){try{let t=e==="local"?localStorage:sessionStorage,n="__persist_test__";return t.setItem(n,"1"),t.removeItem(n),t}catch{return null}}var Pf=e=>!e||typeof e!="object"?{}:{...e},qx=e=>e.map(t=>({...t,streaming:!1})),zx=(e,t,n)=>{let o=e?.markdown?rl(e.markdown):null,r=dd(e?.sanitize);e?.postprocessMessage&&r&&e?.sanitize===void 0&&console.warn("[Persona] A custom postprocessMessage is active with the default HTML sanitizer. Tags or attributes not in the built-in allowlist will be stripped. To keep custom HTML, set `sanitize: false` or provide a custom sanitize function.");let s=!1,a=l=>{let d=l.text??"",p=l.message.rawContent??null;if(t){let y=t.process({text:d,raw:p??d,message:l.message,streaming:l.streaming});y!==null&&(d=y.text,y.persist||(l.message.__skipPersist=!0),y.resubmit&&!l.streaming&&n&&n())}let u=No()!==null,m;if(e?.postprocessMessage){let y=e.postprocessMessage({...l,text:d,raw:p??l.text??""});m=r?r(y):y}else if(o){let y=l.streaming?Yb(d):d,h=o(y);m=r&&u?r(h):h}else m=dr(d);return m};return l=>{try{return a(l)}catch(d){return s||(s=!0,console.error("[Persona] markdown rendering failed; falling back to plain text:",d)),dr(l.text??"")}}};function Vx(e){let t=M("div","persona-attachment-drop-overlay");e?.background&&t.style.setProperty("--persona-drop-overlay-bg",e.background),e?.backdropBlur!==void 0&&t.style.setProperty("--persona-drop-overlay-blur",e.backdropBlur),e?.border&&t.style.setProperty("--persona-drop-overlay-border",e.border),e?.borderRadius&&t.style.setProperty("--persona-drop-overlay-radius",e.borderRadius),e?.inset&&t.style.setProperty("--persona-drop-overlay-inset",e.inset),e?.labelSize&&t.style.setProperty("--persona-drop-overlay-label-size",e.labelSize),e?.labelColor&&t.style.setProperty("--persona-drop-overlay-label-color",e.labelColor);let n=e?.iconName??"upload",o=e?.iconSize??"48px",r=e?.iconColor??"rgba(59, 130, 246, 0.6)",s=e?.iconStrokeWidth??.5,a=ge(n,o,r,s);if(a&&t.appendChild(a),e?.label){let l=M("span","persona-drop-overlay-label");l.textContent=e.label,t.appendChild(l)}return t}var TL=(e,t)=>{let n={...e};for(let[o,r]of Object.entries(t)){let s=n[o];n[o]=s?{...s,...r}:r}return n},PL=e=>e.reduce((t,n)=>({blocks:[...t.blocks,...n.blocks],contentParts:[...t.contentParts,...n.contentParts],context:TL(t.context,n.context)}),{blocks:[],contentParts:[],context:{}}),Np=(e,t,n)=>{if(e==null)throw new Error('createAgentExperience: mount must be a non-null HTMLElement (e.g. pass document.getElementById("my-root") after the node exists).');e.id&&!e.getAttribute("data-persona-instance")&&e.setAttribute("data-persona-instance",e.id),e.hasAttribute("data-persona-root")||e.setAttribute("data-persona-root","true");let o=Gi(t),r=()=>{hC({delayMs:o.tooltip?.delayMs??200,skipDelayMs:o.tooltip?.skipDelayMs??300})};r();let s=o.features;o=_l(o);let a=Dl.getForInstance(o.plugins),l=fw(e),d=[],p=!1,u=px(()=>o),m=null,y=null,h=null,C=!1,x=null,S=i=>{m=i,i.initApprovalUi({webMcpToolTitle:Oi});let c=i.createBuiltInApprovalPlugin();y=c.plugin,h=c.teardown},k=()=>{if(m)return m;let i=hx();return i?(S(i),i):(fx().then(c=>{C||m||(S(c),x?.())}).catch(()=>{}),null)},B=!1,$=!1,T=null,I=(i,c,g,f)=>{if(!i.querySelector("[data-tv-form]"))return;let b=Px();if(b){b.enhanceWithForms(i,c,g,f);return}Tx().then(()=>{B||$||!T||($=!0,T())}).catch(()=>{})};o.components&&xo.registerAll(o.components);let A=Ix(),Q=o.persistState===!1?null:o.storageAdapter??Ip(),le={},re=null,E,_=new Promise(i=>{E=i}),W,L=!1,X=i=>{if(o.onStateLoaded)try{let c=o.onStateLoaded(i);if(c&&typeof c=="object"&&"state"in c){let{state:g,open:f}=c;return f&&(L=!0),g}return c}catch(c){typeof console<"u"&&console.error("[AgentWidget] onStateLoaded hook failed:",c)}return i};if(Q?.load)try{let i=Q.load();if(i&&typeof i.then=="function")re=i.then(c=>X(c??{messages:[],metadata:{}}));else{let g=X(i??{messages:[],metadata:{}});g.metadata&&(le=Pf(g.metadata)),g.messages?.length&&(o={...o,initialMessages:g.messages}),g.artifacts?.length&&(o={...o,initialArtifacts:g.artifacts,initialSelectedArtifactId:g.selectedArtifactId??null}),W=g.draft}}catch(i){typeof console<"u"&&console.error("[AgentWidget] Failed to load stored state:",i)}else if(o.onStateLoaded)try{let i=X({messages:[],metadata:{}});i.messages?.length&&(o={...o,initialMessages:i.messages})}catch(i){typeof console<"u"&&console.error("[AgentWidget] onStateLoaded hook failed:",i)}re||E();let K=()=>le,de=i=>{le=i({...le})??{},Ea()},ue=o.actionParsers&&o.actionParsers.length?o.actionParsers:[Nl],fe=o.actionHandlers&&o.actionHandlers.length?o.actionHandlers:[ti.message,ti.messageAndClick],Me=Fl({parsers:ue,handlers:fe,getSessionMetadata:K,updateSessionMetadata:de,emit:A.emit,documentRef:typeof document<"u"?document:null});Me.syncFromMetadata();let ye=o.launcher?.enabled??!0,Ne=o.launcher?.autoExpand??!1,lt=o.autoFocusInput??!1,Ce=Ne,j=ye,Fe=o.layout?.header?.layout,$e=!1,Se=()=>es(o),Ie=()=>ye||Se(),be=Se()?!1:ye?Ne:!0,ut=!1,He=null,qt=()=>{ut=!0,He&&clearTimeout(He),He=setTimeout(()=>{ut&&(typeof console<"u"&&console.warn("[AgentWidget] Resubmit requested but no injection occurred within 10s"),ut=!1)},1e4)},ct=zx(o,Me,qt),rn=o.features?.showReasoning??!0,An=o.features?.showToolCalls??!0,Bt=o.features?.showEventStreamToggle??!1,os=o.features?.scrollToBottom??{},Mn=o.features?.scrollBehavior??{},Ao=()=>(typeof o.persistState=="object"?o.persistState?.keyPrefix:void 0)??"persona-",rs=`${Ao()}event-stream`,gn=null,ga=o.features?.eventStream?.maxEvents??2e3,kt=null,ft=null,po=null,zl=!1,R=null,te=!1,v=null,N=0,F=(i,c)=>{kt?.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:i,timestamp:Date.now(),payload:JSON.stringify(c)})},U=(i,c)=>{ft?.processEvent(i,c),kt?F(i,c):po&&(po.length>=ga&&po.shift(),po.push({type:i,payload:c}))},ee=()=>{kt||!Bt||(po??(po=[]),uf().then(i=>{if(zl||kt||!Bt)return;gn=new i.EventStreamStore(rs),kt=new i.EventStreamBuffer(ga,gn),ft=ft??new i.ThroughputTracker,gn.open().then(()=>kt?.restore()).catch(g=>{o.debug&&console.warn("[AgentWidget] IndexedDB not available for event stream:",g)});let c=po??[];po=null;for(let g of c)ft?.processEvent(g.type,g.payload),F(g.type,g.payload)}).catch(()=>{}))};Bt&&ee();let oe=!1,ce=null,Ee=()=>{},vt=()=>{},Ve=()=>{},_t=()=>{},Et=()=>{},ss=()=>te||oe&&ce==="panel",_n={onCopy:i=>{A.emit("message:copy",i),P?.isClientTokenMode()&&P.submitMessageFeedback(i.id,"copy").catch(c=>{o.debug&&console.error("[AgentWidget] Failed to submit copy feedback:",c)}),o.messageActions?.onCopy?.(i)},onFeedback:i=>{A.emit("message:feedback",i),P?.isClientTokenMode()&&P.submitMessageFeedback(i.messageId,i.type).catch(c=>{o.debug&&console.error("[AgentWidget] Failed to submit feedback:",c)}),o.messageActions?.onFeedback?.(i)}},zt=o.statusIndicator??{},mn=i=>i==="idle"?zt.idleText??jt.idle:i==="connecting"?zt.connectingText??jt.connecting:i==="connected"?zt.connectedText??jt.connected:i==="error"?zt.errorText??jt.error:i==="paused"?zt.pausedText??jt.paused:i==="resuming"?zt.resumingText??jt.resuming:jt[i];function ln(i,c,g,f){if(!i.hasAttribute(da))if(f==="idle"&&g.idleLink){i.textContent="";let b=document.createElement("a");b.href=g.idleLink,b.target="_blank",b.rel="noopener noreferrer",b.textContent=c,b.style.color="inherit",b.style.textDecoration="none",i.appendChild(b)}else i.textContent=c}let Dn=dx({config:o,showClose:Ie()}),{wrapper:Ye,panel:Te,pillRoot:Jt}=Dn.shell,Ue=Dn.panelElements,{container:me,body:se,messagesWrapper:Re,starterSuggestions:Zp,transcriptSuggestions:ma,suggestions:wr,textarea:pe,sendButton:Pe,composerForm:uo,statusText:it,welcomeHost:En,welcomeIconHolder:NS,greetingHost:Nn,introKicker:FS,introTitle:$S,introSubtitle:US,closeButton:qe,iconHolder:Lt,headerTitle:xr,headerSubtitle:is,header:ke,footer:We,actionsRow:jS}=Ue,eu=Ue.leftActions,Vl=Ue.rightActions,Mo=Ue.sendButtonWrapper,Kf=Ue.setSendButtonMode,ie=Ue.micButton,Fn=Ue.micButtonWrapper,Tt=Ue.attachmentButton,Tn=Ue.attachmentButtonWrapper,Ct=Ue.attachmentInput,Pn=Ue.attachmentPreviewsContainer;me.classList.add("persona-relative"),se.classList.add("persona-relative");let qS=12,fa=()=>os.label??"",zS=()=>os.iconName??"arrow-down",VS=()=>os.enabled!==!1,$n=()=>Mn.mode??"anchor-top",Sr=()=>$n()==="follow"||$n()==="anchor-top"&&Ma,ha=()=>Mn.anchorTopOffset??16,KS=()=>Mn.restorePosition??"bottom",Gf=()=>Mn.pauseOnInteraction===!0,Qf=()=>Mn.showActivityWhilePinned!==!1,Yf=()=>Mn.announce===!0,tu=()=>Mn.scrollbar??"on-scroll",Nt=M("button","persona-scroll-to-bottom-indicator persona-absolute persona-bottom-3 persona-left-1/2 persona-z-10 persona-flex persona-items-center persona-gap-1 persona-text-xs persona-transform persona--translate-x-1/2 persona-cursor-pointer");Nt.type="button",Nt.style.display="none",Nt.setAttribute("data-persona-scroll-to-bottom","true");let ya=M("span","persona-flex persona-items-center"),nu=M("span",""),as=M("span","");as.setAttribute("data-persona-scroll-to-bottom-count",""),as.style.display="none",Nt.append(ya,nu,as),me.appendChild(Nt);let Xn=M("div","persona-stream-anchor-spacer");Xn.setAttribute("aria-hidden","true"),Xn.setAttribute("data-persona-anchor-spacer",""),Xn.style.flexShrink="0",Xn.style.pointerEvents="none",Xn.style.height="0px",Xn.style.display="none",se.appendChild(Xn);let Go=M("div","persona-sr-only");Go.setAttribute("aria-live","polite"),Go.setAttribute("aria-atomic","true"),Go.setAttribute("role","status"),Go.setAttribute("data-persona-live-region",""),Object.assign(Go.style,{position:"absolute",width:"1px",height:"1px",margin:"-1px",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",border:"0"}),me.appendChild(Go);let ba=null,Kl=null,Gl=i=>{!Yf()||!i||(Kl=i,ba===null&&(ba=setTimeout(()=>{ba=null,Kl&&Yf()&&(Go.textContent=Kl),Kl=null},400)))},Ql="empty",Yl=0,ou=()=>Yl||parseFloat(e.style.getPropertyValue("--persona-composer-lift"))||0,ls=()=>{let c=We.style.display==="none"?0:We.offsetHeight;Nt.style.bottom=`${c+ou()+qS}px`};ls();let ru=()=>{ai||(We.style.marginBottom=Yl>0?`${Yl}px`:"")},Xl=()=>{let i=Im(o,Se()),c=wo(o),f=We.style.display==="none"?0:We.offsetHeight,b=c.anchor==="center"&&Ql==="empty"?wl(c.anchorComposerTop)??wl("44%"):null,w=b===null||Se()?0:uw({columnHeight:me.clientHeight,footerHeight:f,fraction:b});e.style.setProperty("--persona-composer-overlay-height",`${f}px`),e.style.setProperty("--persona-composer-lift",`${i==="overlay"?w:0}px`),Yl=i==="block"?w:0,ru(),ls()},Xf=()=>{let i=!!fa();Nt.setAttribute("aria-label",fa()||"Jump to latest"),Nt.title=fa(),Nt.setAttribute("data-persona-scroll-to-bottom-has-label",i?"true":"false"),ya.innerHTML="";let c=ge(zS(),"14px","currentColor",2);c?(ya.appendChild(c),ya.style.display=""):ya.style.display="none",nu.textContent=fa(),nu.style.display=i?"":"none"};Xf();let et=null,Dt=null,Ae=dC(),GS=i=>{try{me.dispatchEvent(new CustomEvent("persona:composer:state",{detail:i,bubbles:!0,composed:!0}))}catch{}};Ae.subscribe(GS);let Eo=()=>{Ae.setText(pe?.value??"")},cs=()=>{Ae.setMentionRefs(Dt?.getMentionRefs()??[])},QS=i=>({id:i.id,name:i.file.name,mimeType:i.file.type,size:i.file.size,status:i.status,progress:i.progress,error:i.error}),Jf=i=>{let c=Object.freeze(i.map(QS));Ae.setAttachments(c);try{o.attachments?.onChange?.(c)}catch(g){console.error("[AgentWidget] attachments.onChange failed:",g)}Lu()};Ae.setSelectedModelId(o.composer?.selectedModelId);let va=()=>o.composer?.modes??[],oi=()=>_C(va(),o.composer?.modeGroups);{let i=Yd(o.composer?.defaultActiveModeIds??[],va());i.length&&Ae.setActiveModeIds(i)}function Zf(i){if(Ae.getState().selectedModelId!==i){Ae.setSelectedModelId(i),Ar?.repaint();try{o.composer?.onModelChange?.(i)}catch(c){console.error("[AgentWidget] composer.onModelChange failed:",c)}}}function Jl(i){Ae.setActiveModeIds(i),Qo?.render(i,oi()),ri.forEach(c=>c.repaint()),Po?.resolve(),Sc(),go()}function su(i){Jl(DC(Ae.getState().activeModeIds,i,va(),o.composer?.modeGroups))}let Ar=null,iu=null,Qo=null,ri=new Map,Mr=null;function To(i){Ae.setQuote(i),Mr?.render(Ae.getState().quote),go(),zh()}let eh=!1;function au(){let i=o.composer?.streamingSubmitBehavior??"block";return i!=="interrupt"?i:o.clientToken?"interrupt":(!eh&&o.debug===!0&&(eh=!0,typeof console<"u"&&console.warn('[persona] composer.streamingSubmitBehavior "interrupt" requires the client-token transport; falling back to "block".')),"block")}let Er=null;function si(i){Ae.setPendingSubmission(i),Er?.render(Ae.getState().pendingSubmission),go()}let YS=i=>{let c=ri.get(i);if(c)return c;let g=$C({groupId:i,getGroup:()=>o.composer?.modeGroups?.find(f=>f.id===i),getModes:()=>va().filter(f=>f.groupId===i),getActiveIds:()=>Ae.getState().activeModeIds,onSelect:f=>su(f)});return ri.set(i,g),g},XS=()=>{let i=[],c=Ae.getState().activeModeIds,g=new Set;if(va().forEach((f,b)=>{if(Qd(f.groupId,o.composer?.modeGroups)){let w=f.groupId;if(g.has(w))return;g.add(w);let O=YS(w);O.action.order=Sm(b),O.action.label=o.composer?.modeGroups?.find(z=>z.id===w)?.label??w,i.push(O.action);return}i.push({id:OC(f.id),kind:"button",placement:"start",order:Sm(b),presentation:f.presentation??"auto",label:f.label,shortLabel:f.shortLabel,iconName:f.iconName,pressed:c.includes(f.id),onSelect:()=>su(f.id)})}),o.composer?.models?.length&&!a.some(f=>f.renderComposer)){let f=o.composer?.modelPicker?.presentation??"native";(!Ar||iu!==f)&&(iu=f,Ar=HC({getModels:()=>o.composer?.models??[],getSelectedModelId:()=>Ae.getState().selectedModelId,onSelect:b=>Zf(b),presentation:f,getSuffix:()=>o.composer?.modelPicker?.suffix})),i.push(Ar.action)}return i},lu=null,th=a.find(i=>i.renderHeader);if(th?.renderHeader){let i=th.renderHeader({config:o,defaultRenderer:()=>{let c=fr({config:o,showClose:Ie()});return Qs(me,c,o),c.header},onClose:()=>gt(!1,"user")});if(i){let c=ke;c&&(c.replaceWith(i),ke=i,Dn.header.element=i)}}let nh=()=>{R&&(se.style.display="none",We.parentNode?.insertBefore(R.element,We),R.update())},cu=()=>{if(!kt){ee();return}if(te=!0,R?nh():uf().then(c=>{R||!te||!kt||(R=c.createEventStreamView({buffer:kt,getFullHistory:()=>kt.getAllFromStore(),onClose:()=>ii(),config:o,plugins:a,getThroughput:()=>ft?.getMetric()??{status:"idle"},renderIconByName:ge}),nh())}).catch(()=>{ii()}),nt){nt.style.boxShadow=`inset 0 0 0 1.5px ${wn.actionIconColor}`;let c=o.features?.eventStream?.classNames?.toggleButtonActive;c&&c.split(/\s+/).forEach(g=>g&&nt.classList.add(g))}let i=()=>{if(!te)return;let c=Date.now();c-N>=200&&(R?.update(),N=c),v=requestAnimationFrame(i)};N=0,v=requestAnimationFrame(i),Kt(),A.emit("eventStream:opened",{timestamp:Date.now()})},ii=()=>{if(te){if(te=!1,R&&R.element.remove(),se.style.display="",nt){nt.style.boxShadow="";let i=o.features?.eventStream?.classNames?.toggleButtonActive;i&&i.split(/\s+/).forEach(c=>c&&nt.classList.remove(c))}v!==null&&(cancelAnimationFrame(v),v=null),Kt(),A.emit("eventStream:closed",{timestamp:Date.now()})}},nt=null;if(Bt){let i=o.features?.eventStream?.classNames,c="persona-inline-flex persona-items-center persona-justify-center persona-rounded-full hover:persona-opacity-80 persona-cursor-pointer persona-border-none persona-bg-transparent persona-p-1"+(i?.toggleButton?" "+i.toggleButton:"");nt=M("button",c),nt.style.width="28px",nt.style.height="28px",nt.style.color=wn.actionIconColor,nt.type="button",nt.setAttribute("aria-label","Event Stream"),nt.title="Event Stream";let g=Ot(vr.Activity,"18px","currentColor",1.5);g&&nt.appendChild(g);let f=Ue.clearChatButtonWrapper,b=Ue.closeButtonWrapper,w=f||b;w&&w.parentNode===ke?ke.insertBefore(nt,w):ke.appendChild(nt),nt.addEventListener("click",()=>{te?ii():cu()})}let oh=i=>{let c=o.attachments;if(!c?.enabled)return;let g=i.querySelector("[data-persona-composer-attachment-previews]")??i.querySelector(".persona-attachment-previews");if(!g){g=M("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2"),g.setAttribute("data-persona-composer-attachment-previews",""),g.style.display="none";let b=i.querySelector("[data-persona-composer-form]");b?.parentNode?b.parentNode.insertBefore(g,b):i.insertBefore(g,i.firstChild)}if(!(i.querySelector("[data-persona-composer-attachment-input]")??i.querySelector('input[type="file"]'))){let b=M("input");b.type="file",b.setAttribute("data-persona-composer-attachment-input",""),b.accept=(c.allowedTypes??mr).join(","),b.multiple=(c.maxFiles??4)>1,b.style.display="none",b.setAttribute("aria-label",c.buttonTooltipText??"Attach files"),i.appendChild(b)}},ai=!1,rh=i=>{let c=a.find(b=>b.renderComposer);if(!c?.renderComposer)return null;let g=o.composer,f=p?P.isStreaming():!1;return c.renderComposer({config:o,defaultRenderer:i,requestRender:()=>hb(),storage:u(c.id),onSubmit:b=>{!P||P.isStreaming()||Yc(b.trim(),{consumeDraft:!1})},streaming:f,disabled:f,openAttachmentPicker:()=>{Hr()||Ct?.click()},models:g?.models,selectedModelId:Ae.getState().selectedModelId??g?.selectedModelId,onModelChange:b=>Zf(b),onVoiceToggle:o.voiceRecognition?.enabled===!0?()=>{lu?.()}:void 0})},sh=rh(()=>Xs({config:o}).footer);sh&&(Dn.replaceComposer(sh),We=Dn.composer.footer,ai=!0);let ot=null,JS=i=>{uo=i.form,pe=i.input,Mo=i.sendButton?i.sendButton.parentElement:null,i.sendButton&&(Pe=i.sendButton),i.micButton&&(ie=i.micButton,Fn=i.micButton.parentElement),i.found.status&&(it=i.found.status),i.found.suggestions&&(wr=i.found.suggestions),i.attachmentButton&&(Tt=i.attachmentButton,Tn=i.attachmentButton.parentElement),Ct=i.attachmentInput??null,Pn=i.attachmentPreviews??null,i.found.actionsRow&&(jS=i.found.actionsRow),eu=i.found.actionsStart,Vl=i.found.actionsEnd};function du(){let i=pe;if(!i)return;let c=o.composer?.inputAttributes,g=!c?.ariaLabel&&!(i instanceof HTMLTextAreaElement)?i.getAttribute("aria-label"):null;Fd(i,c),g&&i.setAttribute("aria-label",g),Nd(i,{submitKey:o.composer?.submitKey,insertNewlineOnTouchEnter:o.composer?.insertNewlineOnTouchEnter,coarsePointer:yl(i)}),wC(i,Dd(o.composer?.maxLines,Se()?5:3))}let ih=i=>{ot=uC(i,{debug:o.debug===!0}),ot&&JS(ot),du()};oh(We),ih(We),Eo();let Ca=Jr(o,Se());Ca&&(Re.style.maxWidth=Ca,Re.style.marginLeft="auto",Re.style.marginRight="auto",Re.style.width="100%",Nn.style.maxWidth=Ca,Nn.style.marginLeft="auto",Nn.style.marginRight="auto",Nn.style.width="100%",Zp.style.maxWidth=Ca,ma.style.maxWidth=Ca,ma.style.marginLeft="auto",ma.style.marginRight="auto",ma.style.width="100%");let ah=()=>{let i=Jr(o,Se());if(!(!i||Se()))for(let c of[uo,wr,Pn,it])c&&(c.style.maxWidth=i,c.style.marginLeft="auto",c.style.marginRight="auto",c.style.width="100%")};ah();let lh=()=>{!o.attachments?.enabled||!Ct||!Pn||(et?et.remountPreviews(Pn):(et=zs.fromConfig(o.attachments,Jf),et.setPreviewsContainer(Pn)),ot?.addListener(Ct,"change",i=>{let c=i.target;et?.handleFileSelect(c.files),c.value=""}),me.querySelector(".persona-attachment-drop-overlay")||me.appendChild(Vx(o.attachments.dropOverlay)))};lh();let ZS=()=>Dt?.prefetch(),ch=()=>{if(!o.contextMentions?.enabled||!pe)return;let i=ot?.header??null,c=i?xm(i):void 0;if(Dt=aw({config:o,textarea:pe,anchor:uo??pe,getMessages:()=>P.getMessages(),liveRegionHost:me,chipRow:c}),Dt&&!c){let g=pe;g.parentElement?.insertBefore(Dt.contextRow,g)}};ch();let Po=null,eA={getState:()=>Ae.getState(),getValue:()=>pe?.value??"",setValue:i=>{pe&&(pe.value=i,pe.dispatchEvent(new Event("input",{bubbles:!0})),Eo())},submit:()=>{XC(ot?.form??null)},openAttachmentPicker:()=>{Hr()||Ct?.click()},toggleVoice:()=>{lu?.()},requestRender:()=>Po?.resolve()},tA=()=>{let i=[];return(Dt?.affordanceButtons??[]).forEach((g,f)=>{i.push({id:`core:mention-${f}`,placement:"start",order:qo.mention+f,element:g,managed:!0})}),Tn&&i.push({id:"core:attachment",placement:"start",order:qo.attachment,element:Tn}),Fn&&i.push({id:"core:mic",placement:"end",order:qo.mic,element:Fn}),Mo&&i.push({id:"core:send",placement:"end",order:qo.send,element:Mo}),i},dh=()=>{Po?.destroy(),Po=LC({getBindings:()=>ot,collect:()=>({builtIns:tA(),configActions:[...XS(),...o.composer?.actions??[]],plugins:a,contributionContext:{config:o,getState:()=>Ae.getState(),requestRender:()=>Po?.resolve()},debug:o.debug===!0}),actionContext:eA,getState:()=>Ae.getState(),getOverflow:()=>o.composer?.actionOverflow,reportError:(i,c)=>{typeof console<"u"&&console.error(`[AgentWidget] composer action "${c.actionId}" failed:`,i)}}),Po.resolve()};dh();let pu=()=>{if(Qo?.destroy(),Qo=null,!oi().length)return;let i=ot?.header;i&&(Qo=WC({row:xm(i),onRemove:c=>su(c),initialIds:Ae.getState().activeModeIds}),Qo.render(Ae.getState().activeModeIds,oi()))};pu();let ph=()=>{Mr?.destroy(),Mr=null,Er?.destroy(),Er=null;let i=ot?.header;i&&(Mr=UC({onDismiss:()=>To(void 0)}),i.appendChild(Mr.element),Mr.render(Ae.getState().quote),au()==="defer-one"&&(Er=jC({onEdit:()=>PM(),onRemove:()=>si(void 0)}),i.appendChild(Er.element),Er.render(Ae.getState().pendingSubmission)))};ph();let uu=QC(),nA=()=>{let i=ot?.header?.querySelector(wm);if(i)return i.childElementCount>0;let c=Ae.getState();return c.mentionRefs.length>0||Yd(c.activeModeIds,oi()).length>0},uh=()=>!1;function go(){let i=Ae.getState(),c=uu.observe(YC(pe),i.text);We.toggleAttribute("data-persona-composer-compact",GC({text:i.text,wrapped:c,hasAttachments:i.attachments.length>0,hasChips:nA(),hasQuote:i.quote!==void 0,hasPendingSubmission:i.pendingSubmission!==void 0,dictationActive:uh()}))}function gh(){o.composer?.layout==="single-row"&&!Se()?We.setAttribute("data-persona-composer-layout","single-row"):We.removeAttribute("data-persona-composer-layout")}gh(),Ae.subscribe(()=>{Po?.sync(),Lu(),wc(),go(),zh()}),wc();let mh=!1,oA=i=>{if(mh||o.debug!==!0)return;let c=["messages","composer"].filter(g=>i[g]);c.length&&(mh=!0,console.warn(`[persona] layout.slots.${c.join(" and layout.slots.")} ${c.length>1?"are":"is"} deprecated and unsupported: the renderer never runs. Use the message render hooks for the transcript and the renderComposer plugin hook for the composer.`))};(()=>{let i=o.layout?.slots??{};oA(i);let c=f=>{switch(f){case"body-top":return se.querySelector("[data-persona-intro-card]");case"messages":return Re;case"footer-top":return wr;case"composer":return uo;case"footer-bottom":return it;default:return null}},g=(f,b)=>{switch(f){case"header-left":case"header-center":case"header-right":if(f==="header-left")ke.insertBefore(b,ke.firstChild);else if(f==="header-right")ke.appendChild(b);else{let w=ke.querySelector(".persona-flex-col");w?w.parentNode?.insertBefore(b,w.nextSibling):ke.appendChild(b)}break;case"body-top":{let w=se.querySelector("[data-persona-intro-card]");w?w.replaceWith(b):se.insertBefore(b,se.firstChild);break}case"body-bottom":se.appendChild(b);break;case"footer-top":wr.replaceWith(b);break;case"footer-bottom":it.replaceWith(b);break;default:break}};for(let[f,b]of Object.entries(i))if(b)try{let w=b({config:o,defaultContent:()=>c(f)});w&&g(f,w)}catch(w){typeof console<"u"&&console.error(`[AgentWidget] Error rendering slot "${f}":`,w)}})();let fh=i=>{let g=i.target.closest('button[data-expand-header="true"]');if(!g)return;let f=g.closest(".persona-reasoning-bubble, .persona-tool-bubble, .persona-approval-bubble");if(!f)return;let b=f.getAttribute("data-message-id");if(!b)return;let w=g.getAttribute("data-bubble-type");if(w==="reasoning")oa.has(b)?oa.delete(b):oa.add(b),ux(b,f);else if(w==="tool")ra.has(b)?ra.delete(b):ra.add(b),mx(b,f,o);else if(w==="approval"&&m){let z=((o.approval!==!1?o.approval:void 0)?.detailsDisplay??"collapsed")==="expanded",q=m.approvalDetailsExpansionState.get(b)??z;m.approvalDetailsExpansionState.set(b,!q),m.updateApprovalDetailsUI(b,f,o)}Ft.delete(b)};Re.addEventListener("pointerdown",i=>{i.target.closest('button[data-expand-header="true"]')&&(i.preventDefault(),fh(i))}),Re.addEventListener("keydown",i=>{let c=i.target;(i.key==="Enter"||i.key===" ")&&c.closest('button[data-expand-header="true"]')&&(i.preventDefault(),fh(i))}),Re.addEventListener("copy",i=>{let{clipboardData:c}=i;if(!c)return;let g=Re.getRootNode(),f=typeof g.getSelection=="function"?g.getSelection():window.getSelection();if(!f||f.isCollapsed)return;let b=f.toString(),w=yw(b);!w||w===b||(c.setData("text/plain",w),i.preventDefault())});let gu=new Map,hh=null,yh="idle",rA={idle:{icon:"volume-2",label:"Read aloud"},loading:{icon:"loader-circle",label:"Loading\u2026"},playing:{icon:"pause",label:"Pause"},paused:{icon:"play",label:"Resume"}},sA=(i,c)=>{let{icon:g,label:f}=rA[c];i.setAttribute("aria-label",f),i.title=f,i.setAttribute("aria-pressed",c==="idle"?"false":"true"),i.classList.toggle("persona-message-action-active",c!=="idle"),i.classList.toggle("persona-message-action-loading",c==="loading");let b=ge(g,14,"currentColor",2);b&&(i.innerHTML="",i.appendChild(b))},bh=()=>{Re.querySelectorAll('[data-action="read-aloud"]').forEach(c=>{let f=c.closest("[data-actions-for]")?.getAttribute("data-actions-for")??null;sA(c,f&&f===hh?yh:"idle")})};Re.addEventListener("click",i=>{let g=i.target.closest(".persona-message-action-btn[data-action]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.closest("[data-actions-for]");if(!f)return;let b=f.getAttribute("data-actions-for");if(!b)return;let w=g.getAttribute("data-action");if(w==="copy"){let z=P.getMessages().find(q=>q.id===b);if(z&&_n.onCopy){let q=z.content||"";navigator.clipboard.writeText(q).then(()=>{g.classList.add("persona-message-action-success");let V=Ot(vr.Check,14,"currentColor",2);V&&(g.innerHTML="",g.appendChild(V)),setTimeout(()=>{g.classList.remove("persona-message-action-success");let J=Ot(vr.Copy,14,"currentColor",2);J&&(g.innerHTML="",g.appendChild(J))},2e3)}).catch(V=>{typeof console<"u"&&console.error("[AgentWidget] Failed to copy message:",V)}),_n.onCopy(z)}}else if(w==="read-aloud")P.toggleReadAloud(b);else if(w==="upvote"||w==="downvote"){let z=(gu.get(b)??null)===w,q=w==="upvote"?"thumbs-up":"thumbs-down";if(z){gu.delete(b),g.classList.remove("persona-message-action-active");let V=ge(q,14,"currentColor",2);V&&(g.innerHTML="",g.appendChild(V))}else{let V=w==="upvote"?"downvote":"upvote",J=f.querySelector(`[data-action="${V}"]`);if(J){J.classList.remove("persona-message-action-active");let mt=ge(V==="upvote"?"thumbs-up":"thumbs-down",14,"currentColor",2);mt&&(J.innerHTML="",J.appendChild(mt))}gu.set(b,w),g.classList.add("persona-message-action-active");let ae=ge(q,14,"currentColor",2);ae&&(ae.setAttribute("fill","currentColor"),g.innerHTML="",g.appendChild(ae)),g.classList.remove("persona-message-action-pop"),g.offsetWidth,g.classList.add("persona-message-action-pop");let Ze=P.getMessages().find(pt=>pt.id===b);Ze&&_n.onFeedback&&_n.onFeedback({type:w,messageId:Ze.id,message:Ze})}}else if(w==="regenerate")Zl?.regenerate(b);else if(w==="edit")Zl?.edit(b);else if(w==="quote")Zl?.quote(b);else if(w?.startsWith(fp)){let O=w.slice(fp.length),z=o.messageActions?.custom?.find(V=>V.id===O),q=P.getMessages().find(V=>V.id===b);if(!z||!q)return;try{z.onSelect(q)}catch(V){console.error(`[AgentWidget] messageActions.custom "${O}" onSelect failed:`,V)}}});let Zl=null;Re.addEventListener("click",i=>{let g=i.target.closest("button[data-approval-action]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.closest(".persona-approval-bubble");if(!f)return;let b=f.getAttribute("data-message-id");if(!b)return;let w=g.getAttribute("data-approval-action");if(!w)return;let O=w==="approve"?"approved":"denied",q=P.getMessages().find(J=>J.id===b);if(!q?.approval)return;let V=f.querySelector("[data-approval-buttons]");V&&V.querySelectorAll("button").forEach(ae=>{ae.disabled=!0,ae.style.opacity="0.5",ae.style.cursor="not-allowed"}),q.approval.toolType==="webmcp"?P.resolveWebMcpApproval(b,O):P.resolveApproval(q.approval,O)});let Ke=null,vh=!1,wa=null,ds=()=>{},xa="none",ec=null,Jn={artifacts:[],selectedId:null},Yo=!1,mo=!1,Sa=!1,li=!1,Ch=()=>li||Jn.artifacts.some(i=>Fo(o.features?.artifacts,i)==="panel"),tc=()=>Jn.artifacts.length>0&&!Yo&&Ch(),dt={current:null},mu=(i,c)=>{let g=P.getArtifactById(c),f=g?.markdown,b=g?.title||"artifact",w=g?.file,O=g?.artifactType??"markdown";if(!f){let V=i.closest("[data-open-artifact], [data-artifact-inline]")?.closest("[data-message-id]")?.getAttribute("data-message-id");if(V){let ae=P.getMessages().find(he=>he.id===V);if(ae?.rawContent)try{let he=JSON.parse(ae.rawContent);f=he?.props?.markdown,b=he?.props?.title||b,he?.props?.file&&typeof he.props.file=="object"&&(w=he.props.file),!g&&typeof he?.props?.artifactType=="string"&&(O=he.props.artifactType)}catch{}}}return{markdown:f,title:b,file:w,artifactType:O}};Re.addEventListener("click",i=>{let g=i.target.closest("[data-download-artifact]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.getAttribute("data-download-artifact");if(!f||o.features?.artifacts?.onArtifactAction?.({type:"download",artifactId:f})===!0)return;let{markdown:w,title:O,file:z}=mu(g,f);if(!w)return;let q=hr();q&&q.triggerArtifactDownload(q.downloadInfoFor({title:O,markdown:w,file:z}))}),Re.addEventListener("click",i=>{let g=i.target.closest("[data-artifact-custom-action]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.getAttribute("data-artifact-custom-action");if(!f)return;let b=g.closest("[data-artifact-inline]"),w=b?null:g.closest("[data-open-artifact]"),O=b?b.getAttribute("data-artifact-inline"):w?.getAttribute("data-open-artifact")??null,q=(b?o.features?.artifacts?.inlineActions:o.features?.artifacts?.cardActions)?.find(pt=>pt.id===f);if(!q)return;let{markdown:V,title:J,file:ae,artifactType:he}=mu(g,O??""),Ze={artifactId:O,title:J,artifactType:he,markdown:V,file:ae};try{Promise.resolve(q.onClick(Ze)).catch(()=>{})}catch{}}),Re.addEventListener("click",i=>{let g=i.target.closest("[data-copy-artifact]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.getAttribute("data-copy-artifact");if(!f)return;let b=P.getArtifactById(f),w=hr();if(!w)return;let O="";if(b)O=w.artifactCopyText(b);else{let{markdown:z,file:q,artifactType:V}=mu(g,f);V==="markdown"&&(O=w.artifactCopyText({id:f,artifactType:"markdown",status:"complete",markdown:z??"",...q?{file:q}:{}}))}O&&navigator.clipboard.writeText(O).then(()=>{let z=Ot(vr.Check,16,"currentColor",2);z&&(g.replaceChildren(z),setTimeout(()=>{let q=Ot(vr.Copy,16,"currentColor",2);q&&g.replaceChildren(q)},1500))}).catch(()=>{})}),Re.addEventListener("click",i=>{let g=i.target.closest("[data-expand-artifact-inline]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.getAttribute("data-expand-artifact-inline");!f||o.features?.artifacts?.onArtifactAction?.({type:"open",artifactId:f})===!0||(Yo=!1,li=!0,mo=!0,Sa=!0,P.selectArtifact(f),fo())}),Re.addEventListener("click",i=>{let c=i.target;if(c.closest("[data-download-artifact]")||c.closest("[data-artifact-custom-action]"))return;let g=c.closest("[data-open-artifact]");if(!g)return;let f=g.getAttribute("data-open-artifact");!f||o.features?.artifacts?.onArtifactAction?.({type:"open",artifactId:f})===!0||(i.preventDefault(),i.stopPropagation(),Yo=!1,li=!0,P.selectArtifact(f),fo())}),Re.addEventListener("keydown",i=>{if(i.key!=="Enter"&&i.key!==" ")return;let c=i.target;!c.hasAttribute("data-open-artifact")&&!c.hasAttribute("data-expand-artifact-inline")||(i.preventDefault(),c.click())});let ci=Ue.composerOverlay,di=(i,c,g)=>{let f=c.trim();if(!f||!dt.current)return;let b=i.getAttribute("data-tool-call-id")??"",w=g.source==="free-text";e.dispatchEvent(new CustomEvent("persona:askUserQuestion:answered",{detail:{toolUseId:b,answer:f,answers:g.structured,values:g.values??(g.source==="multi"?f.split(", "):[f]),isFreeText:w,source:g.source},bubbles:!0,composed:!0})),Vr(ci,b);let O=dt.current.getMessages().find(z=>z.toolCall?.id===b);O?.agentMetadata?.awaitingLocalTool?dt.current.resolveAskUserQuestion(O,g.structured??f):dt.current.sendMessage(f)},ps=i=>{let c=dt.current;if(!c)return;let g=i.getAttribute("data-tool-call-id")??"",f=c.getMessages().find(b=>b.toolCall?.id===g);f&&c.persistAskUserQuestionProgress(f,{answers:md(i,f),currentIndex:io(i)})},wh=i=>Object.entries(i).map(([c,g])=>`${c}: ${Array.isArray(g)?g.join(", "):g}`).join(" | "),fu=i=>{if(o.features?.askUserQuestion?.groupedAutoAdvance===!1)return;let c=io(i),g=Di(i);if(c>=g-1)return;let f=dt.current?.getMessages().find(b=>b.toolCall?.id===i.getAttribute("data-tool-call-id"));f&&(fd(i,f,o,c+1),ps(i))};ci.addEventListener("click",i=>{let g=i.target.closest("[data-ask-user-action]");if(!g)return;let f=g.closest("[data-persona-ask-sheet-for]");if(!f)return;let b=g.getAttribute("data-ask-user-action");if(i.preventDefault(),i.stopPropagation(),b==="dismiss"){let w=f.getAttribute("data-tool-call-id")??"";e.dispatchEvent(new CustomEvent("persona:askUserQuestion:dismissed",{detail:{toolUseId:w},bubbles:!0,composed:!0})),Vr(ci,w);let O=dt.current?.getMessages().find(z=>z.toolCall?.id===w);O?.agentMetadata?.awaitingLocalTool&&(dt.current?.markAskUserQuestionResolved(O),dt.current?.resolveAskUserQuestion(O,"(dismissed)"));return}if(b==="pick"){let w=g.getAttribute("data-option-label");if(!w)return;let O=f.getAttribute("data-multi-select")==="true",z=zr(f);if(z&&O){let q=$s(f)[io(f)],V=new Set(Array.isArray(q)?q:[]);V.has(w)?V.delete(w):V.add(w),Kr(f,Array.from(V)),ps(f);return}if(z){Kr(f,w),ps(f),fu(f);return}if(O){let q=g.getAttribute("aria-pressed")==="true";g.setAttribute("aria-pressed",q?"false":"true"),g.classList.toggle("persona-ask-pill-selected",!q);let V=f.querySelector('[data-ask-user-action="submit-multi"]');V&&(V.disabled=Vg(f).length===0);return}di(f,w,{source:"pick",values:[w]});return}if(b==="submit-multi"){let w=Vg(f);if(w.length===0)return;di(f,w.join(", "),{source:"multi",values:w});return}if(b==="open-free-text"){let w=f.querySelector('[data-ask-free-text-row="true"]');w&&(w.classList.remove("persona-hidden"),w.querySelector('[data-ask-free-text-input="true"]')?.focus());return}if(b==="focus-free-text"){f.querySelector('[data-ask-free-text-input="true"]')?.focus();return}if(b==="submit-free-text"){let O=f.querySelector('[data-ask-free-text-input="true"]')?.value??"";if(!O.trim())return;if(zr(f)){Kr(f,O.trim()),ps(f),fu(f);return}di(f,O,{source:"free-text"});return}if(b==="next"||b==="back"){if(!dt.current)return;let w=f.getAttribute("data-tool-call-id")??"",O=dt.current.getMessages().find(ae=>ae.toolCall?.id===w);if(!O)return;let q=f.querySelector('[data-ask-free-text-input="true"]')?.value?.trim()??"";if(q){let ae=$s(f)[io(f)];(typeof ae!="string"||ae!==q)&&Kr(f,q)}let V=b==="next"?1:-1,J=io(f)+V;fd(f,O,o,J),ps(f);return}if(b==="submit-all"){if(!dt.current)return;let w=f.getAttribute("data-tool-call-id")??"",O=dt.current.getMessages().find(ae=>ae.toolCall?.id===w);if(!O)return;let q=f.querySelector('[data-ask-free-text-input="true"]')?.value?.trim()??"";q&&Kr(f,q);let V=md(f,O);dt.current.persistAskUserQuestionProgress(O,{answers:V,currentIndex:io(f)});let J=wh(V);di(f,J||"(submitted)",{source:"submit-all",structured:V});return}if(b==="skip"){if(!dt.current)return;let w=f.getAttribute("data-tool-call-id")??"",O=dt.current.getMessages().find(he=>he.toolCall?.id===w);if(!O)return;let z=zr(f),q=io(f),V=Di(f),J=q>=V-1;if(!z){e.dispatchEvent(new CustomEvent("persona:askUserQuestion:dismissed",{detail:{toolUseId:w},bubbles:!0,composed:!0})),Vr(ci,w),O.agentMetadata?.awaitingLocalTool&&(dt.current.markAskUserQuestionResolved(O),dt.current.resolveAskUserQuestion(O,"(dismissed)"));return}Kr(f,"");let ae=f.querySelector('[data-ask-free-text-input="true"]');if(ae&&(ae.value=""),J){let he=md(f,O),Ze=wh(he);di(f,Ze||"(skipped)",{source:"submit-all",structured:he});return}fd(f,O,o,q+1),ps(f);return}}),ci.addEventListener("keydown",i=>{if(i.key!=="Enter")return;let g=i.target;if(!g.matches?.('[data-ask-free-text-input="true"]'))return;let f=g.closest("[data-persona-ask-sheet-for]");if(!f)return;i.preventDefault();let b=g.value;if(b.trim()){if(zr(f)){Kr(f,b.trim()),ps(f),fu(f);return}di(f,b,{source:"free-text"})}});let xh=i=>{if(!/^[1-9]$/.test(i.key)||i.metaKey||i.ctrlKey||i.altKey)return;let c=i.target;if(c?.tagName==="INPUT"||c?.tagName==="TEXTAREA"||c?.isContentEditable)return;let g=ci.querySelector("[data-persona-ask-sheet-for]");if(!g||g.getAttribute("data-ask-layout")!=="rows"||g.getAttribute("data-multi-select")==="true")return;let f=Number(i.key),w=g.querySelectorAll('[data-ask-pill-list="true"] [data-ask-user-action="pick"], [data-ask-pill-list="true"] [data-ask-user-action="focus-free-text"]')[f-1];w&&(i.preventDefault(),w.click())};document.addEventListener("keydown",xh);let ko=null,wt=null,Aa=null,nc=null,oc=()=>{},Sh=!1,rc="",sc="";function hu(){nc?.(),nc=null}let iA=()=>{let i=wi&&Rs?.isConnected?Rs:null,c=i?i.getBoundingClientRect().width:0;return c<=0?200:c+360},Ah=()=>{if(!ko||!wt)return;let i=e.classList.contains("persona-artifact-welded-split"),c=e.ownerDocument.defaultView??window,g=c.innerWidth<=640;if(!i||e.classList.contains("persona-artifact-narrow-host")||g){wt.style.removeProperty("position"),wt.style.removeProperty("left"),wt.style.removeProperty("top"),wt.style.removeProperty("bottom"),wt.style.removeProperty("width"),wt.style.removeProperty("z-index");return}let f=ko.firstElementChild;if(!f||f===wt)return;let b=10;wt.style.position="absolute",wt.style.top="0",wt.style.bottom="0",wt.style.width=`${b}px`,wt.style.zIndex="5";let w=wf(ko,c),O=f.offsetWidth+w/2-b/2;wt.style.left=`${Math.max(0,O)}px`},ic=()=>{},aA=()=>{let i=e.ownerDocument.defaultView??window,c=o.launcher?.mobileFullscreen??!0,g=o.launcher?.mobileBreakpoint??640;return!c||i.innerWidth>g?!1:ye||Mt(o)},ac=()=>!Sn(o)||!tc()||e.classList.contains("persona-artifact-narrow-host")||aA()||(e.ownerDocument.defaultView??window).innerWidth<xL?"none":yf(o)?"detached":"welded",fo=()=>{if(!Ke||!Sn(o))return;Ol(e,o),Bl(e,o),ic();let i=o.features?.artifacts?.layout?.narrowHostMaxWidth??520,c=Te.getBoundingClientRect().width||0;e.classList.toggle("persona-artifact-narrow-host",c>0&&c<=i);let g=tc();Ke.setVisible(g),Ke.update(Jn),Yo?(Ke.setMobileOpen(!1),Ke.element.classList.add("persona-hidden"),Ke.backdrop?.classList.add("persona-hidden"),mo=!1,Sa=!1):Jn.artifacts.length>0&&Ch()?(Ke.element.classList.remove("persona-hidden"),Ke.setMobileOpen(!0)):(Ke.setMobileOpen(!1),Ke.element.classList.add("persona-hidden"),Ke.backdrop?.classList.add("persona-hidden"),mo=!1,Sa=!1);let f=o.features?.artifacts?.layout?.showExpandToggle===!0;if(Ke.setExpandToggleVisible(f),Ke.setCopyButtonVisible(o.features?.artifacts?.layout?.showCopyButton===!0),Ke.setRefreshButtonVisible(typeof o.features?.artifacts?.layout?.onDocumentToolbarRefresh=="function"),Ke.setCustomActions(o.features?.artifacts?.toolbarActions??[]),Ke.setTabFade(o.features?.artifacts?.layout?.tabFade),Ke.setRenderTabBar(o.features?.artifacts?.renderTabBar),!f&&!Sa&&(mo=!1),mo!==Sh){let w=Ke.element;mo?(rc=w.style.width,sc=w.style.maxWidth,w.style.removeProperty("width"),w.style.removeProperty("max-width")):(rc&&(w.style.width=rc),sc&&(w.style.maxWidth=sc),rc="",sc=""),Sh=mo}e.classList.toggle("persona-artifact-expanded",mo),Ke.setExpanded(mo);let b=ac();b!==xa&&(xa=b,ds()),oc()};if(Sn(o)){Te.style.position="relative";let i=M("div","persona-flex persona-flex-1 persona-flex-col persona-min-w-0 persona-min-h-0"),c=M("div","persona-flex persona-h-full persona-w-full persona-min-h-0 persona-artifact-split-root");i.appendChild(me),ko=c,c.appendChild(i),Te.appendChild(c);let g=b=>{vh||Ke||(Ke=b.createArtifactPane(o,{onSelect:w=>dt.current?.selectArtifact(w),onDismiss:()=>{Yo=!0,fo()},onToggleExpand:()=>{let w=!mo,O=Jn.selectedId??Jn.artifacts[Jn.artifacts.length-1]?.id??null;o.features?.artifacts?.onArtifactAction?.({type:"expand",artifactId:O,expanded:w})!==!0&&(mo=w,w||(Sa=!1),fo())}}),Ke.element.classList.add("persona-hidden"),c.appendChild(Ke.element),Ke.backdrop&&Te.appendChild(Ke.backdrop),oc(),fo())},f=hr();f?g(f):(ff(()=>{let b=hr();b&&g(b)}),Tp().catch(()=>{})),oc=()=>{if(!ko||!Ke)return;if(!(o.features?.artifacts?.layout?.resizable===!0)){Aa?.(),Aa=null,hu(),wt&&(wt.remove(),wt=null),Ke.element.style.removeProperty("width"),Ke.element.style.removeProperty("maxWidth");return}if(!wt){let w=M("div","persona-artifact-split-handle persona-shrink-0 persona-h-full");w.setAttribute("role","separator"),w.setAttribute("aria-orientation","vertical"),w.setAttribute("aria-label","Resize artifacts panel"),w.tabIndex=0;let O=e.ownerDocument,z=O.defaultView??window,q=V=>{if(!Ke||V.button!==0||e.classList.contains("persona-artifact-narrow-host")||e.classList.contains("persona-artifact-expanded")||z.innerWidth<=640)return;V.preventDefault(),hu();let J=V.clientX,ae=Ke.element.getBoundingClientRect().width,he=o.features?.artifacts?.layout,Ze=mt=>{let Zt=ko.getBoundingClientRect().width,Ut=e.classList.contains("persona-artifact-welded-split"),Ht=wf(ko,z),cn=Ut?0:w.getBoundingClientRect().width||6,tt=ae-(mt.clientX-J),dn=Ex(tt,Zt,Ht,cn,he?.resizableMinWidth,he?.resizableMaxWidth,iA());Ke.element.style.width=`${dn}px`,Ke.element.style.maxWidth="none",Ah()},pt=()=>{O.removeEventListener("pointermove",Ze),O.removeEventListener("pointerup",pt),O.removeEventListener("pointercancel",pt),nc=null;try{w.releasePointerCapture(V.pointerId)}catch{}};nc=pt,O.addEventListener("pointermove",Ze),O.addEventListener("pointerup",pt),O.addEventListener("pointercancel",pt);try{w.setPointerCapture(V.pointerId)}catch{}};w.addEventListener("pointerdown",q),wt=w,ko.insertBefore(w,Ke.element),Aa=()=>{w.removeEventListener("pointerdown",q)}}if(wt){let w=tc();wt.classList.toggle("persona-hidden",!w),Ah()}},ic=()=>{if(!ye||!Ke||(o.launcher?.sidebarMode??!1)||Mt(o)&&On(o).reveal==="emerge")return;let w=e.ownerDocument.defaultView??window,O=o.launcher?.mobileFullscreen??!0,z=o.launcher?.mobileBreakpoint??640;if(O&&w.innerWidth<=z||!Cx(o,ye))return;let q=o.launcher?.width??o.launcherWidth??Gn,V=o.features?.artifacts?.layout?.expandedPanelWidth??"min(720px, calc(100vw - 24px))";tc()?(Te.style.width=V,Te.style.maxWidth=V):(Te.style.width=q,Te.style.maxWidth=q)},typeof ResizeObserver<"u"&&(wa=new ResizeObserver(()=>{fo()}),wa.observe(Te))}else Te.appendChild(me);Se()&&Jt&&(Ue.peekBanner&&Jt.appendChild(Ue.peekBanner),Jt.appendChild(We)),e.appendChild(Ye),Jt&&e.appendChild(Jt);let yu=()=>{if(Se()){Te.style.width="100%",Te.style.maxWidth="100%";let xe=o.launcher?.composerBar??{},je=Ye.dataset.state==="expanded",yt=xe.expandedSize??"anchored";if(!(je&&yt!=="fullscreen")){me.style.background="",me.style.border="",me.style.borderRadius="",me.style.overflow="",me.style.boxShadow="";return}let Xt=o.theme?.components?.panel,Kn=Xr(o),Ds=(Ns,nd)=>Ns==null||Ns===""?nd:Cn(Kn,Ns)??Ns,Eb="1px solid var(--persona-border)",Pt="var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25))",Lg="var(--persona-panel-radius, var(--persona-radius-xl, 0.75rem))";me.style.background="var(--persona-surface, #ffffff)",me.style.border=Ds(Xt?.border,Eb),me.style.borderRadius=Ds(Xt?.borderRadius,Lg),me.style.boxShadow=Ds(Xt?.shadow,Pt),me.style.overflow="hidden";return}let i=Mt(o),c=o.launcher?.sidebarMode??!1,g=i||c||(o.launcher?.fullHeight??!1),f=o.launcher?.enabled===!1,b=o.launcher?.detachedPanel===!0,w=o.theme?.components?.panel,O=Xr(o),z=(xe,je)=>xe==null||xe===""?je:Cn(O,xe)??xe,q=e.ownerDocument.defaultView??window,V=o.launcher?.mobileFullscreen??!0,J=o.launcher?.mobileBreakpoint??640,ae=q.innerWidth<=J,he=V&&ae&&ye,Ze=i&&V&&ae,pt=o.launcher?.position??"bottom-left",mt=pt==="bottom-left"||pt==="top-left",Zt=o.launcher?.zIndex??an,Ut="var(--persona-panel-border, 1px solid var(--persona-border))",Ht="var(--persona-panel-shadow, var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25)))",cn="var(--persona-panel-radius, var(--persona-radius-xl, 0.75rem))",tt=b&&!he&&!Ze;tt?e.setAttribute("data-persona-panel-detached","true"):e.removeAttribute("data-persona-panel-detached");let dn=tt?Ut:c||he?"none":Ut,cr=tt?Ht:he?"none":c?mt?"var(--persona-palette-shadows-sidebar-left, 2px 0 12px rgba(0, 0, 0, 0.08))":"var(--persona-palette-shadows-sidebar-right, -2px 0 12px rgba(0, 0, 0, 0.08))":f?"none":Ht;i&&!he&&!tt&&(cr="none",dn="none");let Oo=tt?cn:c||he?"0":cn,Bo=z(w?.border,dn),H=z(w?.shadow,cr),Be=z(w?.borderRadius,Oo),De=ac(),ve=De==="detached",ht=De==="welded";e.classList.toggle("persona-artifact-detached-split",ve),e.classList.toggle("persona-artifact-welded-split",ht);let Gt="var(--persona-artifact-chat-shadow, var(--persona-artifact-pane-shadow, var(--persona-panel-shadow, var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25)))))",Wt=(o.features?.artifacts?.layout?.chatSurface==="flush"?"flush":"card")==="flush"&&Sn(o)&&yf(o)&&f&&!i;e.classList.toggle("persona-artifact-chat-flush",Wt);let Le=ve||Wt?"none":H,Qt=ve?Ut:ht?"none":Bo,Yt=ve?cn:Be;Wt&&(Qt="none",Yt="0");let so=w?.borderRadius!=null&&w.borderRadius!=="",Oe=Wt&&!so?"0":Be,St=se.scrollTop;e.style.cssText="",Ye.style.cssText="",Te.style.cssText="",me.style.cssText="",se.style.cssText="",ai||(We.style.cssText=""),te&&(se.style.display="none"),(g||f)&&(e.style.minWidth="0");let _o=()=>{if(St<=0)return;(se.ownerDocument.defaultView??window).requestAnimationFrame(()=>{if(se.scrollTop===St)return;let je=se.scrollHeight-se.clientHeight;je<=0||(se.scrollTop=Math.min(St,je))})};if(he){Ye.classList.remove("persona-bottom-6","persona-right-6","persona-left-6","persona-top-6","persona-bottom-4","persona-right-4","persona-left-4","persona-top-4"),Ye.style.cssText=`
43
+ `,N.addEventListener("click",()=>{m=A,k.forEach((Q,ce)=>{let Y=ce<A;Q.classList.toggle("selected",Y),Q.setAttribute("aria-checked",ce===A-1?"true":"false")})}),k.push(N),x.appendChild(N)}y.appendChild(x);let O=null;if(d){let A=document.createElement("div");A.className="persona-feedback-comment-container",O=document.createElement("textarea"),O.className="persona-feedback-comment",O.placeholder=s,O.rows=3,O.setAttribute("aria-label","Additional comments"),A.appendChild(O),y.appendChild(A)}let $=document.createElement("div");$.className="persona-feedback-actions";let T=document.createElement("button");T.type="button",T.className="persona-feedback-btn persona-feedback-btn-skip",T.textContent=l,T.addEventListener("click",()=>{n?.(),u.remove()});let I=document.createElement("button");return I.type="button",I.className="persona-feedback-btn persona-feedback-btn-submit",I.textContent=a,I.addEventListener("click",async()=>{if(m===null){x.classList.add("persona-feedback-shake"),setTimeout(()=>x.classList.remove("persona-feedback-shake"),500);return}I.disabled=!0,I.textContent="Submitting...";try{let A=O?.value.trim()||void 0;await t(m,A),u.remove()}catch(A){I.disabled=!1,I.textContent=a,console.error("[CSAT Feedback] Failed to submit:",A)}}),$.appendChild(T),$.appendChild(I),y.appendChild($),u.appendChild(y),u}function Dp(e){let{onSubmit:t,onDismiss:n,title:o="How likely are you to recommend us?",subtitle:r="On a scale of 0 to 10",commentPlaceholder:s="What could we do better? (optional)...",submitText:a="Submit",skipText:l="Skip",showComment:d=!0,lowLabel:p="Not likely",highLabel:u="Very likely"}=e,m=document.createElement("div");m.className="persona-feedback-container persona-feedback-nps",m.setAttribute("role","dialog"),m.setAttribute("aria-label","Net Promoter Score feedback");let y=null,h=document.createElement("div");h.className="persona-feedback-content";let C=document.createElement("div");C.className="persona-feedback-header";let S=document.createElement("h3");S.className="persona-feedback-title",S.textContent=o,C.appendChild(S);let x=document.createElement("p");x.className="persona-feedback-subtitle",x.textContent=r,C.appendChild(x),h.appendChild(C);let k=document.createElement("div");k.className="persona-feedback-rating persona-feedback-rating-nps",k.setAttribute("role","radiogroup"),k.setAttribute("aria-label","Likelihood rating from 0 to 10");let O=document.createElement("div");O.className="persona-feedback-labels";let $=document.createElement("span");$.className="persona-feedback-label-low",$.textContent=p;let T=document.createElement("span");T.className="persona-feedback-label-high",T.textContent=u,O.appendChild($),O.appendChild(T);let I=document.createElement("div");I.className="persona-feedback-numbers";let A=[];for(let E=0;E<=10;E++){let B=document.createElement("button");B.type="button",B.className="persona-feedback-rating-btn persona-feedback-number-btn",B.setAttribute("role","radio"),B.setAttribute("aria-checked","false"),B.setAttribute("aria-label",`Rating ${E} out of 10`),B.textContent=String(E),B.dataset.rating=String(E),E<=6?B.classList.add("persona-feedback-detractor"):E<=8?B.classList.add("persona-feedback-passive"):B.classList.add("persona-feedback-promoter"),B.addEventListener("click",()=>{y=E,A.forEach((H,L)=>{H.classList.toggle("selected",L===E),H.setAttribute("aria-checked",L===E?"true":"false")})}),A.push(B),I.appendChild(B)}k.appendChild(O),k.appendChild(I),h.appendChild(k);let N=null;if(d){let E=document.createElement("div");E.className="persona-feedback-comment-container",N=document.createElement("textarea"),N.className="persona-feedback-comment",N.placeholder=s,N.rows=3,N.setAttribute("aria-label","Additional comments"),E.appendChild(N),h.appendChild(E)}let Q=document.createElement("div");Q.className="persona-feedback-actions";let ce=document.createElement("button");ce.type="button",ce.className="persona-feedback-btn persona-feedback-btn-skip",ce.textContent=l,ce.addEventListener("click",()=>{n?.(),m.remove()});let Y=document.createElement("button");return Y.type="button",Y.className="persona-feedback-btn persona-feedback-btn-submit",Y.textContent=a,Y.addEventListener("click",async()=>{if(y===null){I.classList.add("persona-feedback-shake"),setTimeout(()=>I.classList.remove("persona-feedback-shake"),500);return}Y.disabled=!0,Y.textContent="Submitting...";try{let E=N?.value.trim()||void 0;await t(y,E),m.remove()}catch(E){Y.disabled=!1,Y.textContent=a,console.error("[NPS Feedback] Failed to submit:",E)}}),Q.appendChild(ce),Q.appendChild(Y),h.appendChild(Q),m.appendChild(h),m}var ma="persona-chat-history",ML=30*1e3,EL=641,fa="data-persona-composer-reason",TL={"image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","image/bmp":"bmp","image/tiff":"tiff"};function PL(e){if(!e)return[];let t=[],n=Array.from(e.items??[]);for(let o of n){if(o.kind!=="file"||!o.type.startsWith("image/"))continue;let r=o.getAsFile();if(!r)continue;if(r.name){t.push(r);continue}let s=TL[r.type]??"png";t.push(new File([r],`clipboard-image-${Date.now()}.${s}`,{type:r.type,lastModified:Date.now()}))}if(t.length>0)return t;for(let o of Array.from(e.files??[]))o.type.startsWith("image/")&&t.push(o);return t}function Np(e){if(!e)return!1;let t=e.types;return t?typeof t.contains=="function"?t.contains("Files"):Array.from(t).includes("Files"):!1}function kL(e){return e?e===!0?{storage:"session",keyPrefix:"persona-",persist:{openState:!0,voiceState:!0,focusInput:!0},clearOnChatClear:!0}:{storage:e.storage??"session",keyPrefix:e.keyPrefix??"persona-",persist:{openState:e.persist?.openState??!0,voiceState:e.persist?.voiceState??!0,focusInput:e.persist?.focusInput??!0},clearOnChatClear:e.clearOnChatClear??!0}:null}function LL(e){try{let t=e==="local"?localStorage:sessionStorage,n="__persist_test__";return t.setItem(n,"1"),t.removeItem(n),t}catch{return null}}var If=e=>!e||typeof e!="object"?{}:{...e},Kx=e=>e.map(t=>({...t,streaming:!1})),Gx=(e,t,n)=>{let o=e?.markdown?sl(e.markdown):null,r=pd(e?.sanitize);e?.postprocessMessage&&r&&e?.sanitize===void 0&&console.warn("[Persona] A custom postprocessMessage is active with the default HTML sanitizer. Tags or attributes not in the built-in allowlist will be stripped. To keep custom HTML, set `sanitize: false` or provide a custom sanitize function.");let s=!1,a=l=>{let d=l.text??"",p=l.message.rawContent??null;if(t){let y=t.process({text:d,raw:p??d,message:l.message,streaming:l.streaming});y!==null&&(d=y.text,y.persist||(l.message.__skipPersist=!0),y.resubmit&&!l.streaming&&n&&n())}let u=$o()!==null,m;if(e?.postprocessMessage){let y=e.postprocessMessage({...l,text:d,raw:p??l.text??""});m=r?r(y):y}else if(o){let y=l.streaming?ev(d):d,h=o(y);m=r&&u?r(h):h}else m=mr(d);return m};return l=>{try{return a(l)}catch(d){return s||(s=!0,console.error("[Persona] markdown rendering failed; falling back to plain text:",d)),mr(l.text??"")}}};function Qx(e){let t=M("div","persona-attachment-drop-overlay");e?.background&&t.style.setProperty("--persona-drop-overlay-bg",e.background),e?.backdropBlur!==void 0&&t.style.setProperty("--persona-drop-overlay-blur",e.backdropBlur),e?.border&&t.style.setProperty("--persona-drop-overlay-border",e.border),e?.borderRadius&&t.style.setProperty("--persona-drop-overlay-radius",e.borderRadius),e?.inset&&t.style.setProperty("--persona-drop-overlay-inset",e.inset),e?.labelSize&&t.style.setProperty("--persona-drop-overlay-label-size",e.labelSize),e?.labelColor&&t.style.setProperty("--persona-drop-overlay-label-color",e.labelColor);let n=e?.iconName??"upload",o=e?.iconSize??"48px",r=e?.iconColor??"rgba(59, 130, 246, 0.6)",s=e?.iconStrokeWidth??.5,a=ge(n,o,r,s);if(a&&t.appendChild(a),e?.label){let l=M("span","persona-drop-overlay-label");l.textContent=e.label,t.appendChild(l)}return t}var IL=(e,t)=>{let n={...e};for(let[o,r]of Object.entries(t)){let s=n[o];n[o]=s?{...s,...r}:r}return n},RL=e=>e.reduce((t,n)=>({blocks:[...t.blocks,...n.blocks],contentParts:[...t.contentParts,...n.contentParts],context:IL(t.context,n.context)}),{blocks:[],contentParts:[],context:{}}),Fp=(e,t,n)=>{if(e==null)throw new Error('createAgentExperience: mount must be a non-null HTMLElement (e.g. pass document.getElementById("my-root") after the node exists).');e.id&&!e.getAttribute("data-persona-instance")&&e.setAttribute("data-persona-instance",e.id),e.hasAttribute("data-persona-root")||e.setAttribute("data-persona-root","true");let o=Zi(t),r=()=>{vC({delayMs:o.tooltip?.delayMs??200,skipDelayMs:o.tooltip?.skipDelayMs??300})};r();let s=o.features;o=Dl(o);let a=Nl.getForInstance(o.plugins),l=bw(e),d=[],p=!1,u=mx(()=>o),m=null,y=null,h=null,C=!1,S=null,x=i=>{m=i,i.initApprovalUi({webMcpToolTitle:Fi});let c=i.createBuiltInApprovalPlugin();y=c.plugin,h=c.teardown},k=()=>{if(m)return m;let i=vx();return i?(x(i),i):(bx().then(c=>{C||m||(x(c),S?.())}).catch(()=>{}),null)},O=!1,$=!1,T=null,I=(i,c,g,f)=>{if(!i.querySelector("[data-tv-form]"))return;let b=Ix();if(b){b.enhanceWithForms(i,c,g,f);return}Lx().then(()=>{O||$||!T||($=!0,T())}).catch(()=>{})};o.components&&So.registerAll(o.components);let A=Wx(),Q=o.persistState===!1?null:o.storageAdapter??Rp(),ce=!!o.clientToken&&typeof o.reconnectStream!="function",Y={},E=null,B,H=new Promise(i=>{B=i}),L,te=!1,K=i=>{if(o.onStateLoaded)try{let c=o.onStateLoaded(i);if(c&&typeof c=="object"&&"state"in c){let{state:g,open:f}=c;return f&&(te=!0),g}return c}catch(c){typeof console<"u"&&console.error("[AgentWidget] onStateLoaded hook failed:",c)}return i};if(Q?.load)try{let i=Q.load();if(i&&typeof i.then=="function")E=i.then(c=>K(c??{messages:[],metadata:{}}));else{let g=K(i??{messages:[],metadata:{}});g.metadata&&(Y=If(g.metadata)),g.messages?.length&&(o={...o,initialMessages:g.messages}),g.artifacts?.length&&(o={...o,initialArtifacts:g.artifacts,initialSelectedArtifactId:g.selectedArtifactId??null}),L=g.draft}}catch(i){typeof console<"u"&&console.error("[AgentWidget] Failed to load stored state:",i)}else if(o.onStateLoaded)try{let i=K({messages:[],metadata:{}});i.messages?.length&&(o={...o,initialMessages:i.messages})}catch(i){typeof console<"u"&&console.error("[AgentWidget] onStateLoaded hook failed:",i)}E||B();let me=()=>Y,de=i=>{Y=i({...Y})??{},bi()},he=o.actionParsers&&o.actionParsers.length?o.actionParsers:[Fl],We=o.actionHandlers&&o.actionHandlers.length?o.actionHandlers:[oi.message,oi.messageAndClick],Oe=$l({parsers:he,handlers:We,getSessionMetadata:me,updateSessionMetadata:de,emit:A.emit,documentRef:typeof document<"u"?document:null});Oe.syncFromMetadata();let Se=o.launcher?.enabled??!0,Xe=o.launcher?.autoExpand??!1,we=o.autoFocusInput??!1,j=Xe,$e=Se,je=o.layout?.header?.layout,mt=!1,Ae=()=>ss(o),ke=()=>Se||Ae(),ve=Ae()?!1:Se?Xe:!0,Re=!1,Mt=null,Xt=()=>{Re=!0,Mt&&clearTimeout(Mt),Mt=setTimeout(()=>{Re&&(typeof console<"u"&&console.warn("[AgentWidget] Resubmit requested but no injection occurred within 10s"),Re=!1)},1e4)},ft=Gx(o,Oe,Xt),un=o.features?.showReasoning??!0,Gn=o.features?.showToolCalls??!0,an=o.features?.showEventStreamToggle??!1,Mo=o.features?.scrollToBottom??{},Qn=o.features?.scrollBehavior??{},po=()=>(typeof o.persistState=="object"?o.persistState?.keyPrefix:void 0)??"persona-",Eo=`${po()}event-stream`,Qo=null,ls=o.features?.eventStream?.maxEvents??2e3,ot=null,Wn=null,uo=null,D=!1,J=null,v=!1,_=null,F=0,U=(i,c)=>{ot?.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:i,timestamp:Date.now(),payload:JSON.stringify(c)})},oe=(i,c)=>{Wn?.processEvent(i,c),ot?U(i,c):uo&&(uo.length>=ls&&uo.shift(),uo.push({type:i,payload:c}))},ie=()=>{ot||!an||(uo??(uo=[]),ff().then(i=>{if(D||ot||!an)return;Qo=new i.EventStreamStore(Eo),ot=new i.EventStreamBuffer(ls,Qo),Wn=Wn??new i.ThroughputTracker,Qo.open().then(()=>ot?.restore()).catch(g=>{o.debug&&console.warn("[AgentWidget] IndexedDB not available for event stream:",g)});let c=uo??[];uo=null;for(let g of c)Wn?.processEvent(g.type,g.payload),U(g.type,g.payload)}).catch(()=>{}))};an&&ie();let le=!1,pe=null,Ut=()=>{},_e=()=>{},Ot=()=>{},Pt=()=>{},Yo=()=>{},Mr=()=>v||le&&pe==="panel",jt={onCopy:i=>{A.emit("message:copy",i),P?.isClientTokenMode()&&P.submitMessageFeedback(i.id,"copy").catch(c=>{o.debug&&console.error("[AgentWidget] Failed to submit copy feedback:",c)}),o.messageActions?.onCopy?.(i)},onFeedback:i=>{A.emit("message:feedback",i),P?.isClientTokenMode()&&P.submitMessageFeedback(i.messageId,i.type).catch(c=>{o.debug&&console.error("[AgentWidget] Failed to submit feedback:",c)}),o.messageActions?.onFeedback?.(i)}},qt=o.statusIndicator??{},xn=i=>i==="idle"?qt.idleText??$t.idle:i==="connecting"?qt.connectingText??$t.connecting:i==="connected"?qt.connectedText??$t.connected:i==="error"?qt.errorText??$t.error:i==="paused"?qt.pausedText??$t.paused:i==="resuming"?qt.resumingText??$t.resuming:$t[i];function Vl(i,c,g,f){if(!i.hasAttribute(fa))if(f==="idle"&&g.idleLink){i.textContent="";let b=document.createElement("a");b.href=g.idleLink,b.target="_blank",b.rel="noopener noreferrer",b.textContent=c,b.style.color="inherit",b.style.textDecoration="none",i.appendChild(b)}else i.textContent=c}let On=gx({config:o,showClose:ke()}),{wrapper:Ye,panel:Ee,pillRoot:Jt}=On.shell,Ue=On.panelElements,{container:fe,body:re,messagesWrapper:Ie,starterSuggestions:eu,transcriptSuggestions:ya,suggestions:Er,textarea:ue,sendButton:Te,composerForm:go,statusText:lt,welcomeHost:Sn,welcomeIconHolder:US,greetingHost:Bn,introKicker:jS,introTitle:qS,introSubtitle:zS,closeButton:Ve,iconHolder:kt,headerTitle:Tr,headerSubtitle:cs,header:Pe,footer:He,actionsRow:VS}=Ue,tu=Ue.leftActions,Kl=Ue.rightActions,To=Ue.sendButtonWrapper,Yf=Ue.setSendButtonMode,se=Ue.micButton,_n=Ue.micButtonWrapper,Et=Ue.attachmentButton,An=Ue.attachmentButtonWrapper,vt=Ue.attachmentInput,Mn=Ue.attachmentPreviewsContainer;fe.classList.add("persona-relative"),re.classList.add("persona-relative");let KS=12,ba=()=>Mo.label??"",GS=()=>Mo.iconName??"arrow-down",QS=()=>Mo.enabled!==!1,Dn=()=>Qn.mode??"anchor-top",Pr=()=>Dn()==="follow"||Dn()==="anchor-top"&&Pa,va=()=>Qn.anchorTopOffset??16,YS=()=>Qn.restorePosition??"bottom",Xf=()=>Qn.pauseOnInteraction===!0,Jf=()=>Qn.showActivityWhilePinned!==!1,Zf=()=>Qn.announce===!0,nu=()=>Qn.scrollbar??"on-scroll",_t=M("button","persona-scroll-to-bottom-indicator persona-absolute persona-bottom-3 persona-left-1/2 persona-z-10 persona-flex persona-items-center persona-gap-1 persona-text-xs persona-transform persona--translate-x-1/2 persona-cursor-pointer");_t.type="button",_t.style.display="none",_t.setAttribute("data-persona-scroll-to-bottom","true");let Ca=M("span","persona-flex persona-items-center"),ou=M("span",""),ds=M("span","");ds.setAttribute("data-persona-scroll-to-bottom-count",""),ds.style.display="none",_t.append(Ca,ou,ds),fe.appendChild(_t);let Yn=M("div","persona-stream-anchor-spacer");Yn.setAttribute("aria-hidden","true"),Yn.setAttribute("data-persona-anchor-spacer",""),Yn.style.flexShrink="0",Yn.style.pointerEvents="none",Yn.style.height="0px",Yn.style.display="none",re.appendChild(Yn);let Xo=M("div","persona-sr-only");Xo.setAttribute("aria-live","polite"),Xo.setAttribute("aria-atomic","true"),Xo.setAttribute("role","status"),Xo.setAttribute("data-persona-live-region",""),Object.assign(Xo.style,{position:"absolute",width:"1px",height:"1px",margin:"-1px",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",border:"0"}),fe.appendChild(Xo);let wa=null,Gl=null,Ql=i=>{!Zf()||!i||(Gl=i,wa===null&&(wa=setTimeout(()=>{wa=null,Gl&&Zf()&&(Xo.textContent=Gl),Gl=null},400)))},Yl="empty",Xl=0,ru=()=>Xl||parseFloat(e.style.getPropertyValue("--persona-composer-lift"))||0,ps=()=>{let c=He.style.display==="none"?0:He.offsetHeight;_t.style.bottom=`${c+ru()+KS}px`};ps();let su=()=>{di||(He.style.marginBottom=Xl>0?`${Xl}px`:"")},Jl=()=>{let i=Wm(o,Ae()),c=xo(o),f=He.style.display==="none"?0:He.offsetHeight,b=c.anchor==="center"&&Yl==="empty"?xl(c.anchorComposerTop)??xl("44%"):null,w=b===null||Ae()?0:fw({columnHeight:fe.clientHeight,footerHeight:f,fraction:b});e.style.setProperty("--persona-composer-overlay-height",`${f}px`),e.style.setProperty("--persona-composer-lift",`${i==="overlay"?w:0}px`),Xl=i==="block"?w:0,su(),ps()},eh=()=>{let i=!!ba();_t.setAttribute("aria-label",ba()||"Jump to latest"),_t.title=ba(),_t.setAttribute("data-persona-scroll-to-bottom-has-label",i?"true":"false"),Ca.innerHTML="";let c=ge(GS(),"14px","currentColor",2);c?(Ca.appendChild(c),Ca.style.display=""):Ca.style.display="none",ou.textContent=ba(),ou.style.display=i?"":"none"};eh();let tt=null,Bt=null,Me=gC(),XS=i=>{try{fe.dispatchEvent(new CustomEvent("persona:composer:state",{detail:i,bubbles:!0,composed:!0}))}catch{}};Me.subscribe(XS);let Po=()=>{Me.setText(ue?.value??"")},us=()=>{Me.setMentionRefs(Bt?.getMentionRefs()??[])},JS=i=>({id:i.id,name:i.file.name,mimeType:i.file.type,size:i.file.size,status:i.status,progress:i.progress,error:i.error}),th=i=>{let c=Object.freeze(i.map(JS));Me.setAttachments(c);try{o.attachments?.onChange?.(c)}catch(g){console.error("[AgentWidget] attachments.onChange failed:",g)}Iu()};Me.setSelectedModelId(o.composer?.selectedModelId);let xa=()=>o.composer?.modes??[],ii=()=>FC(xa(),o.composer?.modeGroups);{let i=Xd(o.composer?.defaultActiveModeIds??[],xa());i.length&&Me.setActiveModeIds(i)}function nh(i){if(Me.getState().selectedModelId!==i){Me.setSelectedModelId(i),kr?.repaint();try{o.composer?.onModelChange?.(i)}catch(c){console.error("[AgentWidget] composer.onModelChange failed:",c)}}}function Zl(i){Me.setActiveModeIds(i),Jo?.render(i,ii()),ai.forEach(c=>c.repaint()),Lo?.resolve(),Ac(),mo()}function iu(i){Zl($C(Me.getState().activeModeIds,i,xa(),o.composer?.modeGroups))}let kr=null,au=null,Jo=null,ai=new Map,Lr=null;function ko(i){Me.setQuote(i),Lr?.render(Me.getState().quote),mo(),Gh()}let oh=!1;function lu(){let i=o.composer?.streamingSubmitBehavior??"block";return i!=="interrupt"?i:o.clientToken?"interrupt":(!oh&&o.debug===!0&&(oh=!0,typeof console<"u"&&console.warn('[persona] composer.streamingSubmitBehavior "interrupt" requires the client-token transport; falling back to "block".')),"block")}let Ir=null;function li(i){Me.setPendingSubmission(i),Ir?.render(Me.getState().pendingSubmission),mo()}let ZS=i=>{let c=ai.get(i);if(c)return c;let g=qC({groupId:i,getGroup:()=>o.composer?.modeGroups?.find(f=>f.id===i),getModes:()=>xa().filter(f=>f.groupId===i),getActiveIds:()=>Me.getState().activeModeIds,onSelect:f=>iu(f)});return ai.set(i,g),g},eA=()=>{let i=[],c=Me.getState().activeModeIds,g=new Set;if(xa().forEach((f,b)=>{if(Yd(f.groupId,o.composer?.modeGroups)){let w=f.groupId;if(g.has(w))return;g.add(w);let W=ZS(w);W.action.order=Em(b),W.action.label=o.composer?.modeGroups?.find(z=>z.id===w)?.label??w,i.push(W.action);return}i.push({id:DC(f.id),kind:"button",placement:"start",order:Em(b),presentation:f.presentation??"auto",label:f.label,shortLabel:f.shortLabel,iconName:f.iconName,pressed:c.includes(f.id),onSelect:()=>iu(f.id)})}),o.composer?.models?.length&&!a.some(f=>f.renderComposer)){let f=o.composer?.modelPicker?.presentation??"native";(!kr||au!==f)&&(au=f,kr=BC({getModels:()=>o.composer?.models??[],getSelectedModelId:()=>Me.getState().selectedModelId,onSelect:b=>nh(b),presentation:f,getSuffix:()=>o.composer?.modelPicker?.suffix})),i.push(kr.action)}return i},cu=null,rh=a.find(i=>i.renderHeader);if(rh?.renderHeader){let i=rh.renderHeader({config:o,defaultRenderer:()=>{let c=vr({config:o,showClose:ke()});return Xs(fe,c,o),c.header},onClose:()=>ut(!1,"user")});if(i){let c=Pe;c&&(c.replaceWith(i),Pe=i,On.header.element=i)}}let sh=()=>{J&&(re.style.display="none",He.parentNode?.insertBefore(J.element,He),J.update())},du=()=>{if(!ot){ie();return}if(v=!0,J?sh():ff().then(c=>{J||!v||!ot||(J=c.createEventStreamView({buffer:ot,getFullHistory:()=>ot.getAllFromStore(),onClose:()=>ci(),config:o,plugins:a,getThroughput:()=>Wn?.getMetric()??{status:"idle"},renderIconByName:ge}),sh())}).catch(()=>{ci()}),rt){rt.style.boxShadow=`inset 0 0 0 1.5px ${vn.actionIconColor}`;let c=o.features?.eventStream?.classNames?.toggleButtonActive;c&&c.split(/\s+/).forEach(g=>g&&rt.classList.add(g))}let i=()=>{if(!v)return;let c=Date.now();c-F>=200&&(J?.update(),F=c),_=requestAnimationFrame(i)};F=0,_=requestAnimationFrame(i),Vt(),A.emit("eventStream:opened",{timestamp:Date.now()})},ci=()=>{if(v){if(v=!1,J&&J.element.remove(),re.style.display="",rt){rt.style.boxShadow="";let i=o.features?.eventStream?.classNames?.toggleButtonActive;i&&i.split(/\s+/).forEach(c=>c&&rt.classList.remove(c))}_!==null&&(cancelAnimationFrame(_),_=null),Vt(),A.emit("eventStream:closed",{timestamp:Date.now()})}},rt=null;if(an){let i=o.features?.eventStream?.classNames,c="persona-inline-flex persona-items-center persona-justify-center persona-rounded-full hover:persona-opacity-80 persona-cursor-pointer persona-border-none persona-bg-transparent persona-p-1"+(i?.toggleButton?" "+i.toggleButton:"");rt=M("button",c),rt.style.width="28px",rt.style.height="28px",rt.style.color=vn.actionIconColor,rt.type="button",rt.setAttribute("aria-label","Event Stream"),rt.title="Event Stream";let g=Wt(Sr.Activity,"18px","currentColor",1.5);g&&rt.appendChild(g);let f=Ue.clearChatButtonWrapper,b=Ue.closeButtonWrapper,w=f||b;w&&w.parentNode===Pe?Pe.insertBefore(rt,w):Pe.appendChild(rt),rt.addEventListener("click",()=>{v?ci():du()})}let ih=i=>{let c=o.attachments;if(!c?.enabled)return;let g=i.querySelector("[data-persona-composer-attachment-previews]")??i.querySelector(".persona-attachment-previews");if(!g){g=M("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2"),g.setAttribute("data-persona-composer-attachment-previews",""),g.style.display="none";let b=i.querySelector("[data-persona-composer-form]");b?.parentNode?b.parentNode.insertBefore(g,b):i.insertBefore(g,i.firstChild)}if(!(i.querySelector("[data-persona-composer-attachment-input]")??i.querySelector('input[type="file"]'))){let b=M("input");b.type="file",b.setAttribute("data-persona-composer-attachment-input",""),b.accept=(c.allowedTypes??br).join(","),b.multiple=(c.maxFiles??4)>1,b.style.display="none",b.setAttribute("aria-label",c.buttonTooltipText??"Attach files"),i.appendChild(b)}},di=!1,ah=i=>{let c=a.find(b=>b.renderComposer);if(!c?.renderComposer)return null;let g=o.composer,f=p?P.isStreaming():!1;return c.renderComposer({config:o,defaultRenderer:i,requestRender:()=>Cb(),storage:u(c.id),onSubmit:b=>{!P||P.isStreaming()||Xc(b.trim(),{consumeDraft:!1})},streaming:f,disabled:f,openAttachmentPicker:()=>{Dr()||vt?.click()},models:g?.models,selectedModelId:Me.getState().selectedModelId??g?.selectedModelId,onModelChange:b=>nh(b),onVoiceToggle:o.voiceRecognition?.enabled===!0?()=>{cu?.()}:void 0})},lh=ah(()=>Zs({config:o}).footer);lh&&(On.replaceComposer(lh),He=On.composer.footer,di=!0);let st=null,tA=i=>{go=i.form,ue=i.input,To=i.sendButton?i.sendButton.parentElement:null,i.sendButton&&(Te=i.sendButton),i.micButton&&(se=i.micButton,_n=i.micButton.parentElement),i.found.status&&(lt=i.found.status),i.found.suggestions&&(Er=i.found.suggestions),i.attachmentButton&&(Et=i.attachmentButton,An=i.attachmentButton.parentElement),vt=i.attachmentInput??null,Mn=i.attachmentPreviews??null,i.found.actionsRow&&(VS=i.found.actionsRow),tu=i.found.actionsStart,Kl=i.found.actionsEnd};function pu(){let i=ue;if(!i)return;let c=o.composer?.inputAttributes,g=!c?.ariaLabel&&!(i instanceof HTMLTextAreaElement)?i.getAttribute("aria-label"):null;$d(i,c),g&&i.setAttribute("aria-label",g),Fd(i,{submitKey:o.composer?.submitKey,insertNewlineOnTouchEnter:o.composer?.insertNewlineOnTouchEnter,coarsePointer:bl(i)}),AC(i,Nd(o.composer?.maxLines,Ae()?5:3))}let ch=i=>{st=fC(i,{debug:o.debug===!0}),st&&tA(st),pu()};ih(He),ch(He),Po();let Sa=os(o,Ae());Sa&&(Ie.style.maxWidth=Sa,Ie.style.marginLeft="auto",Ie.style.marginRight="auto",Ie.style.width="100%",Bn.style.maxWidth=Sa,Bn.style.marginLeft="auto",Bn.style.marginRight="auto",Bn.style.width="100%",eu.style.maxWidth=Sa,ya.style.maxWidth=Sa,ya.style.marginLeft="auto",ya.style.marginRight="auto",ya.style.width="100%");let dh=()=>{let i=os(o,Ae());if(!(!i||Ae()))for(let c of[go,Er,Mn,lt])c&&(c.style.maxWidth=i,c.style.marginLeft="auto",c.style.marginRight="auto",c.style.width="100%")};dh();let ph=()=>{!o.attachments?.enabled||!vt||!Mn||(tt?tt.remountPreviews(Mn):(tt=Ks.fromConfig(o.attachments,th),tt.setPreviewsContainer(Mn)),st?.addListener(vt,"change",i=>{let c=i.target;tt?.handleFileSelect(c.files),c.value=""}),fe.querySelector(".persona-attachment-drop-overlay")||fe.appendChild(Qx(o.attachments.dropOverlay)))};ph();let nA=()=>Bt?.prefetch(),uh=()=>{if(!o.contextMentions?.enabled||!ue)return;let i=st?.header??null,c=i?Mm(i):void 0;if(Bt=dw({config:o,textarea:ue,anchor:go??ue,getMessages:()=>P.getMessages(),liveRegionHost:fe,chipRow:c}),Bt&&!c){let g=ue;g.parentElement?.insertBefore(Bt.contextRow,g)}};uh();let Lo=null,oA={getState:()=>Me.getState(),getValue:()=>ue?.value??"",setValue:i=>{ue&&(ue.value=i,ue.dispatchEvent(new Event("input",{bubbles:!0})),Po())},submit:()=>{ew(st?.form??null)},openAttachmentPicker:()=>{Dr()||vt?.click()},toggleVoice:()=>{cu?.()},requestRender:()=>Lo?.resolve()},rA=()=>{let i=[];return(Bt?.affordanceButtons??[]).forEach((g,f)=>{i.push({id:`core:mention-${f}`,placement:"start",order:zo.mention+f,element:g,managed:!0})}),An&&i.push({id:"core:attachment",placement:"start",order:zo.attachment,element:An}),_n&&i.push({id:"core:mic",placement:"end",order:zo.mic,element:_n}),To&&i.push({id:"core:send",placement:"end",order:zo.send,element:To}),i},gh=()=>{Lo?.destroy(),Lo=HC({getBindings:()=>st,collect:()=>({builtIns:rA(),configActions:[...eA(),...o.composer?.actions??[]],plugins:a,contributionContext:{config:o,getState:()=>Me.getState(),requestRender:()=>Lo?.resolve()},debug:o.debug===!0}),actionContext:oA,getState:()=>Me.getState(),getOverflow:()=>o.composer?.actionOverflow,reportError:(i,c)=>{typeof console<"u"&&console.error(`[AgentWidget] composer action "${c.actionId}" failed:`,i)}}),Lo.resolve()};gh();let uu=()=>{if(Jo?.destroy(),Jo=null,!ii().length)return;let i=st?.header;i&&(Jo=_C({row:Mm(i),onRemove:c=>iu(c),initialIds:Me.getState().activeModeIds}),Jo.render(Me.getState().activeModeIds,ii()))};uu();let mh=()=>{Lr?.destroy(),Lr=null,Ir?.destroy(),Ir=null;let i=st?.header;i&&(Lr=zC({onDismiss:()=>ko(void 0)}),i.appendChild(Lr.element),Lr.render(Me.getState().quote),lu()==="defer-one"&&(Ir=VC({onEdit:()=>RM(),onRemove:()=>li(void 0)}),i.appendChild(Ir.element),Ir.render(Me.getState().pendingSubmission)))};mh();let gu=JC(),sA=()=>{let i=st?.header?.querySelector(Am);if(i)return i.childElementCount>0;let c=Me.getState();return c.mentionRefs.length>0||Xd(c.activeModeIds,ii()).length>0},fh=()=>!1;function mo(){let i=Me.getState(),c=gu.observe(ZC(ue),i.text);He.toggleAttribute("data-persona-composer-compact",XC({text:i.text,wrapped:c,hasAttachments:i.attachments.length>0,hasChips:sA(),hasQuote:i.quote!==void 0,hasPendingSubmission:i.pendingSubmission!==void 0,dictationActive:fh()}))}function hh(){o.composer?.layout==="single-row"&&!Ae()?He.setAttribute("data-persona-composer-layout","single-row"):He.removeAttribute("data-persona-composer-layout")}hh(),Me.subscribe(()=>{Lo?.sync(),Iu(),xc(),mo(),Gh()}),xc();let yh=!1,iA=i=>{if(yh||o.debug!==!0)return;let c=["messages","composer"].filter(g=>i[g]);c.length&&(yh=!0,console.warn(`[persona] layout.slots.${c.join(" and layout.slots.")} ${c.length>1?"are":"is"} deprecated and unsupported: the renderer never runs. Use the message render hooks for the transcript and the renderComposer plugin hook for the composer.`))};(()=>{let i=o.layout?.slots??{};iA(i);let c=f=>{switch(f){case"body-top":return re.querySelector("[data-persona-intro-card]");case"messages":return Ie;case"footer-top":return Er;case"composer":return go;case"footer-bottom":return lt;default:return null}},g=(f,b)=>{switch(f){case"header-left":case"header-center":case"header-right":if(f==="header-left")Pe.insertBefore(b,Pe.firstChild);else if(f==="header-right")Pe.appendChild(b);else{let w=Pe.querySelector(".persona-flex-col");w?w.parentNode?.insertBefore(b,w.nextSibling):Pe.appendChild(b)}break;case"body-top":{let w=re.querySelector("[data-persona-intro-card]");w?w.replaceWith(b):re.insertBefore(b,re.firstChild);break}case"body-bottom":re.appendChild(b);break;case"footer-top":Er.replaceWith(b);break;case"footer-bottom":lt.replaceWith(b);break;default:break}};for(let[f,b]of Object.entries(i))if(b)try{let w=b({config:o,defaultContent:()=>c(f)});w&&g(f,w)}catch(w){typeof console<"u"&&console.error(`[AgentWidget] Error rendering slot "${f}":`,w)}})();let bh=i=>{let g=i.target.closest('button[data-expand-header="true"]');if(!g)return;let f=g.closest(".persona-reasoning-bubble, .persona-tool-bubble, .persona-approval-bubble");if(!f)return;let b=f.getAttribute("data-message-id");if(!b)return;let w=g.getAttribute("data-bubble-type");if(w==="reasoning")la.has(b)?la.delete(b):la.add(b),fx(b,f);else if(w==="tool")ca.has(b)?ca.delete(b):ca.add(b),yx(b,f,o);else if(w==="approval"&&m){let z=((o.approval!==!1?o.approval:void 0)?.detailsDisplay??"collapsed")==="expanded",q=m.approvalDetailsExpansionState.get(b)??z;m.approvalDetailsExpansionState.set(b,!q),m.updateApprovalDetailsUI(b,f,o)}Dt.delete(b)};Ie.addEventListener("pointerdown",i=>{i.target.closest('button[data-expand-header="true"]')&&(i.preventDefault(),bh(i))}),Ie.addEventListener("keydown",i=>{let c=i.target;(i.key==="Enter"||i.key===" ")&&c.closest('button[data-expand-header="true"]')&&(i.preventDefault(),bh(i))}),Ie.addEventListener("copy",i=>{let{clipboardData:c}=i;if(!c)return;let g=Ie.getRootNode(),f=typeof g.getSelection=="function"?g.getSelection():window.getSelection();if(!f||f.isCollapsed)return;let b=f.toString(),w=Cw(b);!w||w===b||(c.setData("text/plain",w),i.preventDefault())});let mu=new Map,vh=null,Ch="idle",aA={idle:{icon:"volume-2",label:"Read aloud"},loading:{icon:"loader-circle",label:"Loading\u2026"},playing:{icon:"pause",label:"Pause"},paused:{icon:"play",label:"Resume"}},lA=(i,c)=>{let{icon:g,label:f}=aA[c];i.setAttribute("aria-label",f),i.title=f,i.setAttribute("aria-pressed",c==="idle"?"false":"true"),i.classList.toggle("persona-message-action-active",c!=="idle"),i.classList.toggle("persona-message-action-loading",c==="loading");let b=ge(g,14,"currentColor",2);b&&(i.innerHTML="",i.appendChild(b))},wh=()=>{Ie.querySelectorAll('[data-action="read-aloud"]').forEach(c=>{let f=c.closest("[data-actions-for]")?.getAttribute("data-actions-for")??null;lA(c,f&&f===vh?Ch:"idle")})};Ie.addEventListener("click",i=>{let g=i.target.closest(".persona-message-action-btn[data-action]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.closest("[data-actions-for]");if(!f)return;let b=f.getAttribute("data-actions-for");if(!b)return;let w=g.getAttribute("data-action");if(w==="copy"){let z=P.getMessages().find(q=>q.id===b);if(z&&jt.onCopy){let q=z.content||"";navigator.clipboard.writeText(q).then(()=>{g.classList.add("persona-message-action-success");let V=Wt(Sr.Check,14,"currentColor",2);V&&(g.innerHTML="",g.appendChild(V)),setTimeout(()=>{g.classList.remove("persona-message-action-success");let Z=Wt(Sr.Copy,14,"currentColor",2);Z&&(g.innerHTML="",g.appendChild(Z))},2e3)}).catch(V=>{typeof console<"u"&&console.error("[AgentWidget] Failed to copy message:",V)}),jt.onCopy(z)}}else if(w==="read-aloud")P.toggleReadAloud(b);else if(w==="upvote"||w==="downvote"){let z=(mu.get(b)??null)===w,q=w==="upvote"?"thumbs-up":"thumbs-down";if(z){mu.delete(b),g.classList.remove("persona-message-action-active");let V=ge(q,14,"currentColor",2);V&&(g.innerHTML="",g.appendChild(V))}else{let V=w==="upvote"?"downvote":"upvote",Z=f.querySelector(`[data-action="${V}"]`);if(Z){Z.classList.remove("persona-message-action-active");let gt=ge(V==="upvote"?"thumbs-up":"thumbs-down",14,"currentColor",2);gt&&(Z.innerHTML="",Z.appendChild(gt))}mu.set(b,w),g.classList.add("persona-message-action-active");let ae=ge(q,14,"currentColor",2);ae&&(ae.setAttribute("fill","currentColor"),g.innerHTML="",g.appendChild(ae)),g.classList.remove("persona-message-action-pop"),g.offsetWidth,g.classList.add("persona-message-action-pop");let et=P.getMessages().find(pt=>pt.id===b);et&&jt.onFeedback&&jt.onFeedback({type:w,messageId:et.id,message:et})}}else if(w==="regenerate")ec?.regenerate(b);else if(w==="edit")ec?.edit(b);else if(w==="quote")ec?.quote(b);else if(w?.startsWith(hp)){let W=w.slice(hp.length),z=o.messageActions?.custom?.find(V=>V.id===W),q=P.getMessages().find(V=>V.id===b);if(!z||!q)return;try{z.onSelect(q)}catch(V){console.error(`[AgentWidget] messageActions.custom "${W}" onSelect failed:`,V)}}});let ec=null;Ie.addEventListener("click",i=>{let g=i.target.closest("button[data-approval-action]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.closest(".persona-approval-bubble");if(!f)return;let b=f.getAttribute("data-message-id");if(!b)return;let w=g.getAttribute("data-approval-action");if(!w)return;let W=w==="approve"?"approved":"denied",q=P.getMessages().find(Z=>Z.id===b);if(!q?.approval)return;let V=f.querySelector("[data-approval-buttons]");V&&V.querySelectorAll("button").forEach(ae=>{ae.disabled=!0,ae.style.opacity="0.5",ae.style.cursor="not-allowed"}),q.approval.toolType==="webmcp"?P.resolveWebMcpApproval(b,W):P.resolveApproval(q.approval,W)});let Ke=null,xh=!1,Aa=null,gs=()=>{},Ma="none",tc=null,Xn={artifacts:[],selectedId:null},Zo=!1,fo=!1,Ea=!1,pi=!1,Sh=()=>pi||Xn.artifacts.some(i=>Uo(o.features?.artifacts,i)==="panel"),nc=()=>Xn.artifacts.length>0&&!Zo&&Sh(),dt={current:null},fu=(i,c)=>{let g=P.getArtifactById(c),f=g?.markdown,b=g?.title||"artifact",w=g?.file,W=g?.artifactType??"markdown";if(!f){let V=i.closest("[data-open-artifact], [data-artifact-inline]")?.closest("[data-message-id]")?.getAttribute("data-message-id");if(V){let ae=P.getMessages().find(ye=>ye.id===V);if(ae?.rawContent)try{let ye=JSON.parse(ae.rawContent);f=ye?.props?.markdown,b=ye?.props?.title||b,ye?.props?.file&&typeof ye.props.file=="object"&&(w=ye.props.file),!g&&typeof ye?.props?.artifactType=="string"&&(W=ye.props.artifactType)}catch{}}}return{markdown:f,title:b,file:w,artifactType:W}};Ie.addEventListener("click",i=>{let g=i.target.closest("[data-download-artifact]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.getAttribute("data-download-artifact");if(!f||o.features?.artifacts?.onArtifactAction?.({type:"download",artifactId:f})===!0)return;let{markdown:w,title:W,file:z}=fu(g,f);if(!w)return;let q=Cr();q&&q.triggerArtifactDownload(q.downloadInfoFor({title:W,markdown:w,file:z}))}),Ie.addEventListener("click",i=>{let g=i.target.closest("[data-artifact-custom-action]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.getAttribute("data-artifact-custom-action");if(!f)return;let b=g.closest("[data-artifact-inline]"),w=b?null:g.closest("[data-open-artifact]"),W=b?b.getAttribute("data-artifact-inline"):w?.getAttribute("data-open-artifact")??null,q=(b?o.features?.artifacts?.inlineActions:o.features?.artifacts?.cardActions)?.find(pt=>pt.id===f);if(!q)return;let{markdown:V,title:Z,file:ae,artifactType:ye}=fu(g,W??""),et={artifactId:W,title:Z,artifactType:ye,markdown:V,file:ae};try{Promise.resolve(q.onClick(et)).catch(()=>{})}catch{}}),Ie.addEventListener("click",i=>{let g=i.target.closest("[data-copy-artifact]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.getAttribute("data-copy-artifact");if(!f)return;let b=P.getArtifactById(f),w=Cr();if(!w)return;let W="";if(b)W=w.artifactCopyText(b);else{let{markdown:z,file:q,artifactType:V}=fu(g,f);V==="markdown"&&(W=w.artifactCopyText({id:f,artifactType:"markdown",status:"complete",markdown:z??"",...q?{file:q}:{}}))}W&&navigator.clipboard.writeText(W).then(()=>{let z=Wt(Sr.Check,16,"currentColor",2);z&&(g.replaceChildren(z),setTimeout(()=>{let q=Wt(Sr.Copy,16,"currentColor",2);q&&g.replaceChildren(q)},1500))}).catch(()=>{})}),Ie.addEventListener("click",i=>{let g=i.target.closest("[data-expand-artifact-inline]");if(!g)return;i.preventDefault(),i.stopPropagation();let f=g.getAttribute("data-expand-artifact-inline");!f||o.features?.artifacts?.onArtifactAction?.({type:"open",artifactId:f})===!0||(Zo=!1,pi=!0,fo=!0,Ea=!0,P.selectArtifact(f),ho())}),Ie.addEventListener("click",i=>{let c=i.target;if(c.closest("[data-download-artifact]")||c.closest("[data-artifact-custom-action]"))return;let g=c.closest("[data-open-artifact]");if(!g)return;let f=g.getAttribute("data-open-artifact");!f||o.features?.artifacts?.onArtifactAction?.({type:"open",artifactId:f})===!0||(i.preventDefault(),i.stopPropagation(),Zo=!1,pi=!0,P.selectArtifact(f),ho())}),Ie.addEventListener("keydown",i=>{if(i.key!=="Enter"&&i.key!==" ")return;let c=i.target;!c.hasAttribute("data-open-artifact")&&!c.hasAttribute("data-expand-artifact-inline")||(i.preventDefault(),c.click())});let ui=Ue.composerOverlay,gi=(i,c,g)=>{let f=c.trim();if(!f||!dt.current)return;let b=i.getAttribute("data-tool-call-id")??"",w=g.source==="free-text";e.dispatchEvent(new CustomEvent("persona:askUserQuestion:answered",{detail:{toolUseId:b,answer:f,answers:g.structured,values:g.values??(g.source==="multi"?f.split(", "):[f]),isFreeText:w,source:g.source},bubbles:!0,composed:!0})),Xr(ui,b);let W=dt.current.getMessages().find(z=>z.toolCall?.id===b);W?.agentMetadata?.awaitingLocalTool?dt.current.resolveAskUserQuestion(W,g.structured??f):dt.current.sendMessage(f)},ms=i=>{let c=dt.current;if(!c)return;let g=i.getAttribute("data-tool-call-id")??"",f=c.getMessages().find(b=>b.toolCall?.id===g);f&&c.persistAskUserQuestionProgress(f,{answers:fd(i,f),currentIndex:so(i)})},Ah=i=>Object.entries(i).map(([c,g])=>`${c}: ${Array.isArray(g)?g.join(", "):g}`).join(" | "),hu=i=>{if(o.features?.askUserQuestion?.groupedAutoAdvance===!1)return;let c=so(i),g=ji(i);if(c>=g-1)return;let f=dt.current?.getMessages().find(b=>b.toolCall?.id===i.getAttribute("data-tool-call-id"));f&&(hd(i,f,o,c+1),ms(i))};ui.addEventListener("click",i=>{let g=i.target.closest("[data-ask-user-action]");if(!g)return;let f=g.closest("[data-persona-ask-sheet-for]");if(!f)return;let b=g.getAttribute("data-ask-user-action");if(i.preventDefault(),i.stopPropagation(),b==="dismiss"){let w=f.getAttribute("data-tool-call-id")??"";e.dispatchEvent(new CustomEvent("persona:askUserQuestion:dismissed",{detail:{toolUseId:w},bubbles:!0,composed:!0})),Xr(ui,w);let W=dt.current?.getMessages().find(z=>z.toolCall?.id===w);W?.agentMetadata?.awaitingLocalTool&&(dt.current?.markAskUserQuestionResolved(W),dt.current?.resolveAskUserQuestion(W,"(dismissed)"));return}if(b==="pick"){let w=g.getAttribute("data-option-label");if(!w)return;let W=f.getAttribute("data-multi-select")==="true",z=Yr(f);if(z&&W){let q=js(f)[so(f)],V=new Set(Array.isArray(q)?q:[]);V.has(w)?V.delete(w):V.add(w),Jr(f,Array.from(V)),ms(f);return}if(z){Jr(f,w),ms(f),hu(f);return}if(W){let q=g.getAttribute("aria-pressed")==="true";g.setAttribute("aria-pressed",q?"false":"true"),g.classList.toggle("persona-ask-pill-selected",!q);let V=f.querySelector('[data-ask-user-action="submit-multi"]');V&&(V.disabled=Gg(f).length===0);return}gi(f,w,{source:"pick",values:[w]});return}if(b==="submit-multi"){let w=Gg(f);if(w.length===0)return;gi(f,w.join(", "),{source:"multi",values:w});return}if(b==="open-free-text"){let w=f.querySelector('[data-ask-free-text-row="true"]');w&&(w.classList.remove("persona-hidden"),w.querySelector('[data-ask-free-text-input="true"]')?.focus());return}if(b==="focus-free-text"){f.querySelector('[data-ask-free-text-input="true"]')?.focus();return}if(b==="submit-free-text"){let W=f.querySelector('[data-ask-free-text-input="true"]')?.value??"";if(!W.trim())return;if(Yr(f)){Jr(f,W.trim()),ms(f),hu(f);return}gi(f,W,{source:"free-text"});return}if(b==="next"||b==="back"){if(!dt.current)return;let w=f.getAttribute("data-tool-call-id")??"",W=dt.current.getMessages().find(ae=>ae.toolCall?.id===w);if(!W)return;let q=f.querySelector('[data-ask-free-text-input="true"]')?.value?.trim()??"";if(q){let ae=js(f)[so(f)];(typeof ae!="string"||ae!==q)&&Jr(f,q)}let V=b==="next"?1:-1,Z=so(f)+V;hd(f,W,o,Z),ms(f);return}if(b==="submit-all"){if(!dt.current)return;let w=f.getAttribute("data-tool-call-id")??"",W=dt.current.getMessages().find(ae=>ae.toolCall?.id===w);if(!W)return;let q=f.querySelector('[data-ask-free-text-input="true"]')?.value?.trim()??"";q&&Jr(f,q);let V=fd(f,W);dt.current.persistAskUserQuestionProgress(W,{answers:V,currentIndex:so(f)});let Z=Ah(V);gi(f,Z||"(submitted)",{source:"submit-all",structured:V});return}if(b==="skip"){if(!dt.current)return;let w=f.getAttribute("data-tool-call-id")??"",W=dt.current.getMessages().find(ye=>ye.toolCall?.id===w);if(!W)return;let z=Yr(f),q=so(f),V=ji(f),Z=q>=V-1;if(!z){e.dispatchEvent(new CustomEvent("persona:askUserQuestion:dismissed",{detail:{toolUseId:w},bubbles:!0,composed:!0})),Xr(ui,w),W.agentMetadata?.awaitingLocalTool&&(dt.current.markAskUserQuestionResolved(W),dt.current.resolveAskUserQuestion(W,"(dismissed)"));return}Jr(f,"");let ae=f.querySelector('[data-ask-free-text-input="true"]');if(ae&&(ae.value=""),Z){let ye=fd(f,W),et=Ah(ye);gi(f,et||"(skipped)",{source:"submit-all",structured:ye});return}hd(f,W,o,q+1),ms(f);return}}),ui.addEventListener("keydown",i=>{if(i.key!=="Enter")return;let g=i.target;if(!g.matches?.('[data-ask-free-text-input="true"]'))return;let f=g.closest("[data-persona-ask-sheet-for]");if(!f)return;i.preventDefault();let b=g.value;if(b.trim()){if(Yr(f)){Jr(f,b.trim()),ms(f),hu(f);return}gi(f,b,{source:"free-text"})}});let Mh=i=>{if(!/^[1-9]$/.test(i.key)||i.metaKey||i.ctrlKey||i.altKey)return;let c=i.target;if(c?.tagName==="INPUT"||c?.tagName==="TEXTAREA"||c?.isContentEditable)return;let g=ui.querySelector("[data-persona-ask-sheet-for]");if(!g||g.getAttribute("data-ask-layout")!=="rows"||g.getAttribute("data-multi-select")==="true")return;let f=Number(i.key),w=g.querySelectorAll('[data-ask-pill-list="true"] [data-ask-user-action="pick"], [data-ask-pill-list="true"] [data-ask-user-action="focus-free-text"]')[f-1];w&&(i.preventDefault(),w.click())};document.addEventListener("keydown",Mh);let Io=null,Ct=null,Ta=null,oc=null,rc=()=>{},Eh=!1,sc="",ic="";function yu(){oc?.(),oc=null}let cA=()=>{let i=Ei&&Ws?.isConnected?Ws:null,c=i?i.getBoundingClientRect().width:0;return c<=0?200:c+360},Th=()=>{if(!Io||!Ct)return;let i=e.classList.contains("persona-artifact-welded-split"),c=e.ownerDocument.defaultView??window,g=c.innerWidth<=640;if(!i||e.classList.contains("persona-artifact-narrow-host")||g){Ct.style.removeProperty("position"),Ct.style.removeProperty("left"),Ct.style.removeProperty("top"),Ct.style.removeProperty("bottom"),Ct.style.removeProperty("width"),Ct.style.removeProperty("z-index");return}let f=Io.firstElementChild;if(!f||f===Ct)return;let b=10;Ct.style.position="absolute",Ct.style.top="0",Ct.style.bottom="0",Ct.style.width=`${b}px`,Ct.style.zIndex="5";let w=Af(Io,c),W=f.offsetWidth+w/2-b/2;Ct.style.left=`${Math.max(0,W)}px`},ac=()=>{},dA=()=>{let i=e.ownerDocument.defaultView??window,c=o.launcher?.mobileFullscreen??!0,g=o.launcher?.mobileBreakpoint??640;return!c||i.innerWidth>g?!1:Se||At(o)},lc=()=>!wn(o)||!nc()||e.classList.contains("persona-artifact-narrow-host")||dA()||(e.ownerDocument.defaultView??window).innerWidth<EL?"none":Cf(o)?"detached":"welded",ho=()=>{if(!Ke||!wn(o))return;Bl(e,o),_l(e,o),ac();let i=o.features?.artifacts?.layout?.narrowHostMaxWidth??520,c=Ee.getBoundingClientRect().width||0;e.classList.toggle("persona-artifact-narrow-host",c>0&&c<=i);let g=nc();Ke.setVisible(g),Ke.update(Xn),Zo?(Ke.setMobileOpen(!1),Ke.element.classList.add("persona-hidden"),Ke.backdrop?.classList.add("persona-hidden"),fo=!1,Ea=!1):Xn.artifacts.length>0&&Sh()?(Ke.element.classList.remove("persona-hidden"),Ke.setMobileOpen(!0)):(Ke.setMobileOpen(!1),Ke.element.classList.add("persona-hidden"),Ke.backdrop?.classList.add("persona-hidden"),fo=!1,Ea=!1);let f=o.features?.artifacts?.layout?.showExpandToggle===!0;if(Ke.setExpandToggleVisible(f),Ke.setCopyButtonVisible(o.features?.artifacts?.layout?.showCopyButton===!0),Ke.setRefreshButtonVisible(typeof o.features?.artifacts?.layout?.onDocumentToolbarRefresh=="function"),Ke.setCustomActions(o.features?.artifacts?.toolbarActions??[]),Ke.setTabFade(o.features?.artifacts?.layout?.tabFade),Ke.setRenderTabBar(o.features?.artifacts?.renderTabBar),!f&&!Ea&&(fo=!1),fo!==Eh){let w=Ke.element;fo?(sc=w.style.width,ic=w.style.maxWidth,w.style.removeProperty("width"),w.style.removeProperty("max-width")):(sc&&(w.style.width=sc),ic&&(w.style.maxWidth=ic),sc="",ic=""),Eh=fo}e.classList.toggle("persona-artifact-expanded",fo),Ke.setExpanded(fo);let b=lc();b!==Ma&&(Ma=b,gs()),rc()};if(wn(o)){Ee.style.position="relative";let i=M("div","persona-flex persona-flex-1 persona-flex-col persona-min-w-0 persona-min-h-0"),c=M("div","persona-flex persona-h-full persona-w-full persona-min-h-0 persona-artifact-split-root");i.appendChild(fe),Io=c,c.appendChild(i),Ee.appendChild(c);let g=b=>{xh||Ke||(Ke=b.createArtifactPane(o,{onSelect:w=>dt.current?.selectArtifact(w),onDismiss:()=>{Zo=!0,ho()},onToggleExpand:()=>{let w=!fo,W=Xn.selectedId??Xn.artifacts[Xn.artifacts.length-1]?.id??null;o.features?.artifacts?.onArtifactAction?.({type:"expand",artifactId:W,expanded:w})!==!0&&(fo=w,w||(Ea=!1),ho())}}),Ke.element.classList.add("persona-hidden"),c.appendChild(Ke.element),Ke.backdrop&&Ee.appendChild(Ke.backdrop),rc(),ho())},f=Cr();f?g(f):(bf(()=>{let b=Cr();b&&g(b)}),Pp().catch(()=>{})),rc=()=>{if(!Io||!Ke)return;if(!(o.features?.artifacts?.layout?.resizable===!0)){Ta?.(),Ta=null,yu(),Ct&&(Ct.remove(),Ct=null),Ke.element.style.removeProperty("width"),Ke.element.style.removeProperty("maxWidth");return}if(!Ct){let w=M("div","persona-artifact-split-handle persona-shrink-0 persona-h-full");w.setAttribute("role","separator"),w.setAttribute("aria-orientation","vertical"),w.setAttribute("aria-label","Resize artifacts panel"),w.tabIndex=0;let W=e.ownerDocument,z=W.defaultView??window,q=V=>{if(!Ke||V.button!==0||e.classList.contains("persona-artifact-narrow-host")||e.classList.contains("persona-artifact-expanded")||z.innerWidth<=640)return;V.preventDefault(),yu();let Z=V.clientX,ae=Ke.element.getBoundingClientRect().width,ye=o.features?.artifacts?.layout,et=gt=>{let Zt=Io.getBoundingClientRect().width,Ft=e.classList.contains("persona-artifact-welded-split"),Rt=Af(Io,z),ln=Ft?0:w.getBoundingClientRect().width||6,nt=ae-(gt.clientX-Z),cn=kx(nt,Zt,Rt,ln,ye?.resizableMinWidth,ye?.resizableMaxWidth,cA());Ke.element.style.width=`${cn}px`,Ke.element.style.maxWidth="none",Th()},pt=()=>{W.removeEventListener("pointermove",et),W.removeEventListener("pointerup",pt),W.removeEventListener("pointercancel",pt),oc=null;try{w.releasePointerCapture(V.pointerId)}catch{}};oc=pt,W.addEventListener("pointermove",et),W.addEventListener("pointerup",pt),W.addEventListener("pointercancel",pt);try{w.setPointerCapture(V.pointerId)}catch{}};w.addEventListener("pointerdown",q),Ct=w,Io.insertBefore(w,Ke.element),Ta=()=>{w.removeEventListener("pointerdown",q)}}if(Ct){let w=nc();Ct.classList.toggle("persona-hidden",!w),Th()}},ac=()=>{if(!Se||!Ke||(o.launcher?.sidebarMode??!1)||At(o)&&Rn(o).reveal==="emerge")return;let w=e.ownerDocument.defaultView??window,W=o.launcher?.mobileFullscreen??!0,z=o.launcher?.mobileBreakpoint??640;if(W&&w.innerWidth<=z||!Sx(o,Se))return;let q=o.launcher?.width??o.launcherWidth??zn,V=o.features?.artifacts?.layout?.expandedPanelWidth??"min(720px, calc(100vw - 24px))";nc()?(Ee.style.width=V,Ee.style.maxWidth=V):(Ee.style.width=q,Ee.style.maxWidth=q)},typeof ResizeObserver<"u"&&(Aa=new ResizeObserver(()=>{ho()}),Aa.observe(Ee))}else Ee.appendChild(fe);Ae()&&Jt&&(Ue.peekBanner&&Jt.appendChild(Ue.peekBanner),Jt.appendChild(He)),e.appendChild(Ye),Jt&&e.appendChild(Jt);let bu=()=>{if(Ae()){Ee.style.width="100%",Ee.style.maxWidth="100%";let xe=o.launcher?.composerBar??{},qe=Ye.dataset.state==="expanded",yt=xe.expandedSize??"anchored";if(!(qe&&yt!=="fullscreen")){fe.style.background="",fe.style.border="",fe.style.borderRadius="",fe.style.overflow="",fe.style.boxShadow="";return}let Yt=o.theme?.components?.panel,qn=ns(o),Fs=($s,od)=>$s==null||$s===""?od:bn(qn,$s)??$s,Lb="1px solid var(--persona-border)",Tt="var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25))",Rg="var(--persona-panel-radius, var(--persona-radius-xl, 0.75rem))";fe.style.background="var(--persona-surface, #ffffff)",fe.style.border=Fs(Yt?.border,Lb),fe.style.borderRadius=Fs(Yt?.borderRadius,Rg),fe.style.boxShadow=Fs(Yt?.shadow,Tt),fe.style.overflow="hidden";return}let i=At(o),c=o.launcher?.sidebarMode??!1,g=i||c||(o.launcher?.fullHeight??!1),f=o.launcher?.enabled===!1,b=o.launcher?.detachedPanel===!0,w=o.theme?.components?.panel,W=ns(o),z=(xe,qe)=>xe==null||xe===""?qe:bn(W,xe)??xe,q=e.ownerDocument.defaultView??window,V=o.launcher?.mobileFullscreen??!0,Z=o.launcher?.mobileBreakpoint??640,ae=q.innerWidth<=Z,ye=V&&ae&&Se,et=i&&V&&ae,pt=o.launcher?.position??"bottom-left",gt=pt==="bottom-left"||pt==="top-left",Zt=o.launcher?.zIndex??sn,Ft="var(--persona-panel-border, 1px solid var(--persona-border))",Rt="var(--persona-panel-shadow, var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25)))",ln="var(--persona-panel-radius, var(--persona-radius-xl, 0.75rem))",nt=b&&!ye&&!et;nt?e.setAttribute("data-persona-panel-detached","true"):e.removeAttribute("data-persona-panel-detached");let cn=nt?Ft:c||ye?"none":Ft,gr=nt?Rt:ye?"none":c?gt?"var(--persona-palette-shadows-sidebar-left, 2px 0 12px rgba(0, 0, 0, 0.08))":"var(--persona-palette-shadows-sidebar-right, -2px 0 12px rgba(0, 0, 0, 0.08))":f?"none":Rt;i&&!ye&&!nt&&(gr="none",cn="none");let _o=nt?ln:c||ye?"0":ln,Do=z(w?.border,cn),R=z(w?.shadow,gr),De=z(w?.borderRadius,_o),Fe=lc(),be=Fe==="detached",ht=Fe==="welded";e.classList.toggle("persona-artifact-detached-split",be),e.classList.toggle("persona-artifact-welded-split",ht);let Kt="var(--persona-artifact-chat-shadow, var(--persona-artifact-pane-shadow, var(--persona-panel-shadow, var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25)))))",Ht=(o.features?.artifacts?.layout?.chatSurface==="flush"?"flush":"card")==="flush"&&wn(o)&&Cf(o)&&f&&!i;e.classList.toggle("persona-artifact-chat-flush",Ht);let Le=be||Ht?"none":R,Gt=be?Ft:ht?"none":Do,Qt=be?ln:De;Ht&&(Gt="none",Qt="0");let ro=w?.borderRadius!=null&&w.borderRadius!=="",Be=Ht&&!ro?"0":De,xt=re.scrollTop;e.style.cssText="",Ye.style.cssText="",Ee.style.cssText="",fe.style.cssText="",re.style.cssText="",di||(He.style.cssText=""),v&&(re.style.display="none"),(g||f)&&(e.style.minWidth="0");let No=()=>{if(xt<=0)return;(re.ownerDocument.defaultView??window).requestAnimationFrame(()=>{if(re.scrollTop===xt)return;let qe=re.scrollHeight-re.clientHeight;qe<=0||(re.scrollTop=Math.min(xt,qe))})};if(ye){Ye.classList.remove("persona-bottom-6","persona-right-6","persona-left-6","persona-top-6","persona-bottom-4","persona-right-4","persona-left-4","persona-top-4"),Ye.style.cssText=`
44
44
  position: fixed !important;
45
45
  inset: 0 !important;
46
46
  width: 100% !important;
@@ -52,7 +52,7 @@ _Details: ${n.message}_`:o}var am=e=>({isError:!0,content:[{type:"text",text:e}]
52
52
  flex-direction: column !important;
53
53
  z-index: ${Zt} !important;
54
54
  background-color: var(--persona-surface, #ffffff) !important;
55
- `,Te.style.cssText=`
55
+ `,Ee.style.cssText=`
56
56
  position: relative !important;
57
57
  display: flex !important;
58
58
  flex-direction: column !important;
@@ -65,7 +65,7 @@ _Details: ${n.message}_`:o}var am=e=>({isError:!0,content:[{type:"text",text:e}]
65
65
  padding: 0 !important;
66
66
  box-shadow: none !important;
67
67
  border-radius: 0 !important;
68
- `,me.style.cssText=`
68
+ `,fe.style.cssText=`
69
69
  display: flex !important;
70
70
  flex-direction: column !important;
71
71
  flex: 1 1 0% !important;
@@ -76,7 +76,7 @@ _Details: ${n.message}_`:o}var am=e=>({isError:!0,content:[{type:"text",text:e}]
76
76
  overflow: hidden !important;
77
77
  border-radius: 0 !important;
78
78
  border: none !important;
79
- `,se.style.flex="1 1 0%",se.style.minHeight="0",se.style.overflowY="auto",We.style.flexShrink="0",ru(),$e=!0,_o();return}let _e=o?.launcher?.width??o?.launcherWidth??Gn;if(!c&&!i)f&&g?(Te.style.width="100%",Te.style.maxWidth="100%"):(Te.style.width=_e,Te.style.maxWidth=_e);else if(i)if(On(o).reveal==="emerge"&&!b){let je=On(o).width;Te.style.width=je,Te.style.maxWidth=je}else Te.style.width="100%",Te.style.maxWidth="100%";if(ic(),Te.style.boxShadow=Le,Te.style.borderRadius=Oe,ve?Te.style.border="none":ht&&(Te.style.border=Bo),me.style.border=Qt,me.style.borderRadius=Yt,me.style.boxShadow=ve&&!Wt?Gt:"",Wt&&(me.style.background="transparent",se.style.background="transparent",We.style.background="transparent",We.style.borderTop="none"),ht){let xe=o.features?.artifacts?.layout;ec=xe?.unifiedSplitOuterRadius?.trim()||xe?.paneBorderRadius?.trim()||Be}else ec=null;if(i&&!he&&!tt&&!ve&&!ht&&w?.border===void 0&&(me.style.border="none",On(o).side==="right"?me.style.borderLeft="1px solid var(--persona-border)":me.style.borderRight="1px solid var(--persona-border)"),i&&!he&&ht&&w?.border===void 0&&(On(o).side==="right"?Te.style.borderLeft="1px solid var(--persona-border)":Te.style.borderRight="1px solid var(--persona-border)"),g&&(e.style.display="flex",e.style.flexDirection="column",e.style.height="100%",e.style.minHeight="0",f&&(e.style.width="100%"),Ye.style.display="flex",Ye.style.flexDirection="column",Ye.style.flex="1 1 0%",Ye.style.minHeight="0",Ye.style.maxHeight="100%",Ye.style.height="100%",f&&(Ye.style.overflow="hidden"),Te.style.display="flex",Te.style.flexDirection="column",Te.style.flex="1 1 0%",Te.style.minHeight="0",Te.style.maxHeight="100%",Te.style.height="100%",ve||(Te.style.overflow="hidden"),me.style.display="flex",me.style.flexDirection="column",me.style.flex="1 1 0%",me.style.minHeight="0",me.style.maxHeight="100%",me.style.overflow="hidden",se.style.flex="1 1 0%",se.style.minHeight="0",se.style.overflowY="auto",We.style.flexShrink="0"),f&&(tt||ve||Wt)&&!i&&(Wt||(Ye.style.padding="var(--persona-panel-inset)"),Ye.style.background="var(--persona-panel-canvas-bg)"),Ye.classList.remove("persona-bottom-6","persona-right-6","persona-left-6","persona-top-6","persona-bottom-4","persona-right-4","persona-left-4","persona-top-4"),!c&&!f&&!i&&(Yn[pt]??Yn["bottom-right"]).split(" ").forEach(je=>Ye.classList.add(je)),c){let xe=o.launcher?.sidebarWidth??"420px";b?Ye.style.cssText=`
79
+ `,re.style.flex="1 1 0%",re.style.minHeight="0",re.style.overflowY="auto",He.style.flexShrink="0",su(),mt=!0,No();return}let Ne=o?.launcher?.width??o?.launcherWidth??zn;if(!c&&!i)f&&g?(Ee.style.width="100%",Ee.style.maxWidth="100%"):(Ee.style.width=Ne,Ee.style.maxWidth=Ne);else if(i)if(Rn(o).reveal==="emerge"&&!b){let qe=Rn(o).width;Ee.style.width=qe,Ee.style.maxWidth=qe}else Ee.style.width="100%",Ee.style.maxWidth="100%";if(ac(),Ee.style.boxShadow=Le,Ee.style.borderRadius=Be,be?Ee.style.border="none":ht&&(Ee.style.border=Do),fe.style.border=Gt,fe.style.borderRadius=Qt,fe.style.boxShadow=be&&!Ht?Kt:"",Ht&&(fe.style.background="transparent",re.style.background="transparent",He.style.background="transparent",He.style.borderTop="none"),ht){let xe=o.features?.artifacts?.layout;tc=xe?.unifiedSplitOuterRadius?.trim()||xe?.paneBorderRadius?.trim()||De}else tc=null;if(i&&!ye&&!nt&&!be&&!ht&&w?.border===void 0&&(fe.style.border="none",Rn(o).side==="right"?fe.style.borderLeft="1px solid var(--persona-border)":fe.style.borderRight="1px solid var(--persona-border)"),i&&!ye&&ht&&w?.border===void 0&&(Rn(o).side==="right"?Ee.style.borderLeft="1px solid var(--persona-border)":Ee.style.borderRight="1px solid var(--persona-border)"),g&&(e.style.display="flex",e.style.flexDirection="column",e.style.height="100%",e.style.minHeight="0",f&&(e.style.width="100%"),Ye.style.display="flex",Ye.style.flexDirection="column",Ye.style.flex="1 1 0%",Ye.style.minHeight="0",Ye.style.maxHeight="100%",Ye.style.height="100%",f&&(Ye.style.overflow="hidden"),Ee.style.display="flex",Ee.style.flexDirection="column",Ee.style.flex="1 1 0%",Ee.style.minHeight="0",Ee.style.maxHeight="100%",Ee.style.height="100%",be||(Ee.style.overflow="hidden"),fe.style.display="flex",fe.style.flexDirection="column",fe.style.flex="1 1 0%",fe.style.minHeight="0",fe.style.maxHeight="100%",fe.style.overflow="hidden",re.style.flex="1 1 0%",re.style.minHeight="0",re.style.overflowY="auto",He.style.flexShrink="0"),f&&(nt||be||Ht)&&!i&&(Ht||(Ye.style.padding="var(--persona-panel-inset)"),Ye.style.background="var(--persona-panel-canvas-bg)"),Ye.classList.remove("persona-bottom-6","persona-right-6","persona-left-6","persona-top-6","persona-bottom-4","persona-right-4","persona-left-4","persona-top-4"),!c&&!f&&!i&&(Kn[pt]??Kn["bottom-right"]).split(" ").forEach(qe=>Ye.classList.add(qe)),c){let xe=o.launcher?.sidebarWidth??"420px";b?Ye.style.cssText=`
80
80
  position: fixed !important;
81
81
  top: var(--persona-panel-inset) !important;
82
82
  bottom: var(--persona-panel-inset) !important;
@@ -88,7 +88,7 @@ _Details: ${n.message}_`:o}var am=e=>({isError:!0,content:[{type:"text",text:e}]
88
88
  display: flex !important;
89
89
  flex-direction: column !important;
90
90
  z-index: ${Zt} !important;
91
- ${mt?"left: var(--persona-panel-inset) !important; right: auto !important;":"left: auto !important; right: var(--persona-panel-inset) !important;"}
91
+ ${gt?"left: var(--persona-panel-inset) !important; right: auto !important;":"left: auto !important; right: var(--persona-panel-inset) !important;"}
92
92
  `:Ye.style.cssText=`
93
93
  position: fixed !important;
94
94
  top: 0 !important;
@@ -101,8 +101,8 @@ _Details: ${n.message}_`:o}var am=e=>({isError:!0,content:[{type:"text",text:e}]
101
101
  display: flex !important;
102
102
  flex-direction: column !important;
103
103
  z-index: ${Zt} !important;
104
- ${mt?"left: 0 !important; right: auto !important;":"left: auto !important; right: 0 !important;"}
105
- `,Te.style.cssText=`
104
+ ${gt?"left: 0 !important; right: auto !important;":"left: auto !important; right: 0 !important;"}
105
+ `,Ee.style.cssText=`
106
106
  position: relative !important;
107
107
  display: flex !important;
108
108
  flex-direction: column !important;
@@ -114,9 +114,9 @@ _Details: ${n.message}_`:o}var am=e=>({isError:!0,content:[{type:"text",text:e}]
114
114
  margin: 0 !important;
115
115
  padding: 0 !important;
116
116
  box-shadow: ${Le} !important;
117
- border-radius: ${Oe} !important;
118
- ${ve?"border: none !important;":ht?`border: ${Bo} !important;`:""}
119
- `,Te.style.setProperty("width","100%","important"),Te.style.setProperty("max-width","100%","important"),me.style.cssText=`
117
+ border-radius: ${Be} !important;
118
+ ${be?"border: none !important;":ht?`border: ${Do} !important;`:""}
119
+ `,Ee.style.setProperty("width","100%","important"),Ee.style.setProperty("max-width","100%","important"),fe.style.cssText=`
120
120
  display: flex !important;
121
121
  flex-direction: column !important;
122
122
  flex: 1 1 0% !important;
@@ -125,32 +125,32 @@ _Details: ${n.message}_`:o}var am=e=>({isError:!0,content:[{type:"text",text:e}]
125
125
  min-height: 0 !important;
126
126
  max-height: 100% !important;
127
127
  overflow: hidden !important;
128
- border-radius: ${Yt} !important;
129
- border: ${Qt} !important;
130
- ${ve&&!Wt?`box-shadow: ${Gt} !important;`:""}
131
- ${Wt?"background: transparent !important;":""}
132
- `,ai||(We.style.cssText=`
128
+ border-radius: ${Qt} !important;
129
+ border: ${Gt} !important;
130
+ ${be&&!Ht?`box-shadow: ${Kt} !important;`:""}
131
+ ${Ht?"background: transparent !important;":""}
132
+ `,di||(He.style.cssText=`
133
133
  flex-shrink: 0 !important;
134
134
  border-top: none !important;
135
135
  padding: 8px 16px 12px 16px !important;
136
- ${Wt?"background: transparent !important;":""}
137
- `)}if(!f&&!i){let xe="max-height: -moz-available !important; max-height: stretch !important;",je=c?"":"padding-top: 1.25em !important;",yt=c?"":`z-index: ${o.launcher?.zIndex??an} !important;`;Ye.style.cssText+=xe+je+yt}ru(),_o()},bu=()=>{e.style.setProperty("--persona-content-max-width",Jr(o,Se()))},Mh=!1,Eh=()=>{let i=Im(o,Se());Se()&&o.composer?.placement&&o.debug===!0&&!Mh&&(Mh=!0,console.warn("[persona] composer.placement is ignored in composer-bar mount mode."));let c=wo(o);e.setAttribute("data-persona-composer-placement",i),e.setAttribute("data-persona-conversation-state",Ql),e.setAttribute("data-persona-welcome-anchor",c.anchor??"bottom"),e.style.setProperty("--persona-composer-anchor-gap",c.composerGap??np),Xl()},Th=()=>{if(Se())return;let i=Mt(o),c=o.launcher?.sidebarMode??!1;if(i||c||(o.launcher?.fullHeight??!1)||!ye)return;let f=e.ownerDocument.defaultView??window,b=o.launcher?.mobileFullscreen??!0,w=o.launcher?.mobileBreakpoint??640;if(b&&f.innerWidth<=w)return;let O=f.innerHeight,z=64,q=o.launcher?.heightOffset??0,V=Math.max(200,O-z),J=Math.min(640,V);Te.style.height=`${Math.max(200,J-q)}px`};yu(),Vs(e,o),Ol(e,o),Bl(e,o),bu(),Eh(),ds=()=>{yu(),Th(),Vs(e,o),Ol(e,o),Bl(e,o),bu(),Eh(),ec?e.style.setProperty("--persona-artifact-welded-outer-radius",ec):e.style.removeProperty("--persona-artifact-welded-outer-radius"),vt(),Ee()};let we=[];we.push(()=>{vh=!0}),we.push(()=>{d.forEach(i=>i()),l.destroy()}),we.push(()=>{document.removeEventListener("keydown",xh)}),we.push(()=>{ba!==null&&clearTimeout(ba)});let Lo=null,Io=null;we.push(()=>{Lo?.(),Lo=null,Io?.(),Io=null}),wa&&we.push(()=>{wa?.disconnect(),wa=null}),we.push(()=>{Aa?.(),Aa=null,hu(),wt&&(wt.remove(),wt=null),Ke?.element.style.removeProperty("width"),Ke?.element.style.removeProperty("maxWidth"),Ke?.destroy()}),Bt&&we.push(()=>{zl=!0,po=null,v!==null&&(cancelAnimationFrame(v),v=null),R?.destroy(),R=null,kt?.destroy(),kt=null,gn=null});let us=null,Ph=()=>{us&&(us(),us=null),o.colorScheme==="auto"&&(us=Yi(()=>{Vs(e,o)}))};Ph(),we.push(()=>{us&&(us(),us=null)}),we.push(()=>{C=!0,h?.()}),we.push(()=>{B=!0});let kh=!1;we.push(()=>{kh=!0});let vu=(i,c)=>{let g=El(i,c);return g||!Rw.includes(i)?g:(Bw().then(f=>{if(kh)return;Ml(f.wipe),Ml(f.glyphCycle);let b=El(i,c);b&&kl(b,e)}).catch(()=>{}),null)},lc=o.features?.streamAnimation;if(lc?.type&&lc.type!=="none"){let i=vu(lc.type,lc.plugins);i&&kl(i,e),we.push(()=>Ow(e))}let Xo=Rl(wr),Lh=Rl(Zp),Ih=Rl(ma),gs=[Xo,Lh,Ih];we.push(()=>{gs.forEach(i=>i.destroy())});let ms=null,P,fs=null,Rh=!1,Hh=0,Wh=null,Oh=i=>i.reduce((c,g)=>g.role==="user"?c+1:c,0),Bh=i=>{for(let c=i.length-1;c>=0;c--)if(Us(i[c]))return i[c].id??null;return null},_h=!1,lA=()=>{_h||o.debug!==!0||(_h=!0,console.warn('[persona] suggestions.starters.placement is pinned to "welcome" but the welcome surface is hidden (welcome.variant: "none" or copy.showWelcomeCard: false), so no starters render. Use "auto" or "composer".'))},Dh=!1,Nh=!1,Fh=(i,c)=>{Dh||o.debug!==!0||!c.enabled||c.expose||Rh||Nh&&(P.isStreaming()||i.some(Us)||(Dh=!0,console.info("[persona] Follow-up suggestions are enabled but the agent has not called suggest_replies. The model needs the tool declared (runtimeTools server-side, suggestions.followUps.expose: true from the widget, or your own backend's tool definition) and benefits from instructions telling it when to offer follow-ups. See the integration paths table in UI-COMPONENTS.md.")))},pi=i=>{if(!P)return;let c=i??P.getMessages(),g=V=>{V.render([],P,pe,c)},f=V=>{gs.forEach(J=>{J!==V&&g(J)})};fs&&(Oh(c)>Hh||Bh(c)!==Wh)&&(fs=null);let b=Gr(o);Fh(c,b);let w=b.enabled?yd(c):null,O=fs??w,z=fs?"host":"agent";if(O){let V=o.suggestions?.followUps,J=V?.placement??(V?"auto":"composer"),he=(J==="auto"?Se()?"composer":"after-message":J)==="after-message"?Ih:Xo;f(he),he.render(O,P,pe,c,o.suggestionChipsConfig,{source:z,surface:"followUp",variant:V?.variant??"chip",behavior:V?.behavior??"send",overflow:V?.overflow??"wrap",maxItems:V?.maxItems??4,config:o,plugins:a,submitPrompt:Qc});return}if(c.some(V=>V.role==="user")){gs.forEach(g);return}let q=o.suggestions?.starters;if(q){let V=ts(wo(o),c),J=q.placement??"auto",ae=J==="auto"?V?"welcome":"composer":J;if(ae==="welcome"&&!V){lA(),gs.forEach(g);return}let he=ae==="welcome"?Lh:Xo;f(he),he.render(q.items??o.suggestionChips,P,pe,c,o.suggestionChipsConfig,{surface:"starter",variant:q.variant??"card",behavior:q.behavior??"send",overflow:q.overflow??"wrap",maxItems:q.maxItems??4,config:o,plugins:a,submitPrompt:Qc});return}f(Xo),Xo.render(o.suggestionChips,P,pe,c,o.suggestionChipsConfig,{surface:"starter",variant:"chip",behavior:"send",overflow:"wrap",config:o,plugins:a,submitPrompt:Qc})},$h=()=>{fs&&(fs=null,pi())},cA=i=>{let c=Array.isArray(i)?[...i]:[];if(!c.length){$h();return}let g=P?P.getMessages():[];fs=c,Rh=!0,Hh=Oh(g),Wh=Bh(g),pi(g)},Un=!1,Ft=Cw(),ui=new Map,hs=new Map,Tr=new Map,ys=null,Pr=null;function bs(){if(!ys)return;let i=ys;ys=null,Pr?.destroy(),Pr=null,Ft.delete(i),me.querySelector(`#wrapper-${i}`)?.removeAttribute("data-preserve-runtime"),P&&Zn(Re,P.getMessages(),ct)}let vs=0,dA=No()!==null,jn=Mw(),qn=0,kr=null,kn=!1,cc=!1,Lr=0,Vt=null,Cs=null,Cu=!1,gi=!1,ws=null,Ma=!0,dc=!1,mi=null,pc=!1,xs=()=>{pc=!0,mA()},wu=null,pA=4,Jo=24,uA=80,gA=1e3,Zo=null,Uh=()=>{e.setAttribute("data-persona-scrollbar",tu()),tu()!=="on-scroll"&&(Zo!==null&&clearTimeout(Zo),Zo=null,se.removeAttribute("data-persona-scrollbar-visible"))},mA=()=>{tu()==="on-scroll"&&(se.setAttribute("data-persona-scrollbar-visible",""),Zo!==null&&clearTimeout(Zo),Zo=setTimeout(()=>{Zo=null,Ks(se,Jo)&&se.removeAttribute("data-persona-scrollbar-visible")},gA))};Uh(),we.push(()=>{Zo!==null&&clearTimeout(Zo)});let xu=new Map,Ge={active:!1,manuallyDeactivated:!1,lastUserMessageWasVoice:!1,lastUserMessageId:null};uh=()=>Ge.active,go();let jh=o.voiceRecognition?.autoResume??!1,er=i=>{A.emit("voice:state",{active:Ge.active,source:i,timestamp:Date.now()})},ho=()=>{de(i=>({...i,voiceState:{active:Ge.active,timestamp:Date.now(),manuallyDeactivated:Ge.manuallyDeactivated}}))},fA=()=>{if(o.voiceRecognition?.enabled===!1)return;let i=Pf(le.voiceState),c=!!i.active,g=Number(i.timestamp??0);Ge.manuallyDeactivated=!!i.manuallyDeactivated,c&&Date.now()-g<wL&&setTimeout(()=>{Ge.active||(Ge.manuallyDeactivated=!1,o.voiceRecognition?.provider?.type==="runtype"?P.toggleVoice().then(()=>{Ge.active=P.isVoiceActive(),er("restore"),P.isVoiceActive()&&Li()}):Jc("restore"))},1e3)},hA=()=>P?qx(P.getMessages()).filter(i=>!i.__skipPersist):[],uc=null,qh=(i,c)=>{typeof console<"u"&&console.error(i,c)},gc=(i,c)=>{let g=()=>{try{let O=i();return!O||typeof O.then!="function"?null:Promise.resolve(O).catch(z=>{qh(c,z)})}catch(O){return qh(c,O),null}},f=uc,b=f?f.then(()=>g()??void 0):g();if(!b)return;let w=b.finally(()=>{uc===w&&(uc=null)});uc=w};function Ea(i){if(!Q?.save)return;let g={messages:i?qx(i):P?hA():[],metadata:le,artifacts:Jn.artifacts,selectedArtifactId:Jn.selectedId,...Ss?{draft:Ss}:{}};gc(()=>Q.save(g),"[AgentWidget] Failed to persist state:")}let Ss,mc=()=>!Q?.save||o.persistState===!1?!1:typeof o.persistState=="object"?o.persistState.persist?.draft!==!1:!0,Ta=KC({write:()=>{if(!mc())return;let i=Ae.getState(),c=zC({text:i.text,mentionRefs:i.mentionRefs,contentSegments:hg(),selectedModelId:i.selectedModelId,activeModeIds:i.activeModeIds,quote:i.quote});JSON.stringify(c)!==JSON.stringify(Ss)&&(Ss=c,Ea())}});function zh(){mc()&&Ta.schedule()}function Su(){Ta.flush()}function Vh(i){if(!mc())return;let c=VC(i,{mentionSourceIds:(o.contextMentions?.sources??[]).map(g=>g.id),modelIds:(o.composer?.models??[]).map(g=>g.id),modes:o.composer?.modes??[]});c&&(Ss=i,pe&&!pe.value&&(pe.value=c.text,pe.dispatchEvent(new Event("input",{bubbles:!0})),Eo()),c.selectedModelId&&(Ae.setSelectedModelId(c.selectedModelId),Ar?.repaint()),Jl(c.activeModeIds??[]),c.quote&&To(c.quote),Ta.cancel())}function fc(){Ta.cancel(),Ss&&(Ss=void 0,mc()&&Ea())}let fi=null,Kh=()=>Ye.querySelector("#persona-scroll-container")||se,hi=()=>{fi!==null&&(cancelAnimationFrame(fi),fi=null),kn=!1},Gh=()=>{kr!==null&&(cancelAnimationFrame(kr),kr=null),cc=!1,hi()},yA=()=>Un&&Mu()&&($n()!=="anchor-top"||Qf()),Au=()=>{let i=fa()||"Jump to latest",c=yA();Nt.toggleAttribute("data-persona-scroll-to-bottom-streaming",c),Lr>0?(as.textContent=String(Lr),as.style.display="",Nt.setAttribute("aria-label",`${i} (${Lr} new)`)):(as.textContent="",as.style.display="none",Nt.setAttribute("aria-label",c?`${i} (response streaming below)`:i))},Qh=()=>{Lr!==0&&(Lr=0,Au())},bA=()=>{let i=Vt?.spacerHeight??0;return i<=0?Ks(se,Jo):vc(i)-se.scrollTop-se.clientHeight<=Jo},Mu=()=>Sr()?!jn.isFollowing():!bA(),Eu=()=>!!P&&P.getMessages().length>0,Kt=()=>{if(!VS()||ss()){Nt.parentNode&&Nt.remove(),Nt.style.display="none";return}Nt.parentNode!==me&&me.appendChild(Nt),ls();let c=zo(se)>0&&Mu()&&Eu();c?Au():Qh(),Nt.style.display=c?"":"none"},Pa=()=>{jn.pause()&&(Gh(),Kt())},Ln=()=>{jn.resume(),Qh(),Kt()},Ir=(i=!1)=>{Sr()&&Eu()&&jn.isFollowing()&&(!i&&!Un||(kr!==null&&(cancelAnimationFrame(kr),kr=null),cc=!0,kr=requestAnimationFrame(()=>{kr=null,cc=!1,jn.isFollowing()&&vA(Kh(),i?220:140)})))},Yh=(i,c,g,f=()=>!0)=>{let b=i.scrollTop,w=c(),O=w-b;if(hi(),Math.abs(O)<1){kn=!0,i.scrollTop=w,qn=i.scrollTop,kn=!1;return}let z=performance.now();kn=!0;let q=J=>1-Math.pow(1-J,3),V=J=>{if(!f()){hi();return}let ae=c();ae!==w&&(w=ae,O=w-b);let he=J-z,Ze=Math.min(he/g,1),pt=q(Ze),mt=b+O*pt;i.scrollTop=mt,qn=i.scrollTop,Ze<1?fi=requestAnimationFrame(V):(i.scrollTop=w,qn=i.scrollTop,fi=null,kn=!1)};fi=requestAnimationFrame(V)},vA=(i,c=500)=>{let g=zo(i)-i.scrollTop;if(Math.abs(g)<1){qn=i.scrollTop;return}if(Math.abs(g)>=uA){hi(),kn=!0,i.scrollTop=zo(i),qn=i.scrollTop,kn=!1;return}Yh(i,()=>zo(i),c,()=>jn.isFollowing())},hc=()=>{if(!Eu()){Kt();return}let i=Kh();kn=!0,i.scrollTop=zo(i),qn=i.scrollTop,kn=!1,Kt()},As=i=>{let c=0,g=i;for(;g&&g!==se;)c+=g.offsetTop,g=g.offsetParent;return c},CA=()=>{let i=se.getRootNode();return(typeof i.getSelection=="function"?i.getSelection():null)??se.ownerDocument.getSelection()},yc=()=>Pw(CA(),se),Tu=()=>{if(KS()!=="last-user-turn")return!1;let i=P?.getMessages()??[];if(i.length<2)return!1;let c=[...i].reverse().find(w=>w.role==="user");if(!c)return!1;let g=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(c.id):c.id.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),f=se.querySelector(`[data-message-id="${g}"]`);if(!f)return!1;let b=Math.min(Math.max(0,As(f)-ha()),zo(se));return kn=!0,se.scrollTop=b,qn=se.scrollTop,kn=!1,$n()==="follow"&&!Ks(se,Jo)&&jn.pause(),Kt(),!0},bc=i=>{let c=Math.max(0,Math.round(i));Xn.style.height=`${c}px`,Xn.style.display=c>0?"":"none",Vt&&(Vt.spacerHeight=Math.max(0,i))},vc=i=>{let c=parseFloat(getComputedStyle(se).paddingBottom)||0,g=0;for(let b of Array.from(se.children)){if(b===Xn||b.offsetHeight===0)continue;let w=As(b)+b.offsetHeight;w>g&&(g=w)}let f=se.scrollHeight-i;return g>0?Math.min(g+c,f):f},wA=()=>{if(!Vt||Vt.spacerHeight<=0)return;let i=vc(Vt.spacerHeight),c=Math.max(0,Math.round(se.scrollTop)+se.clientHeight-i+Jo);c<Vt.spacerHeight&&(bc(c),Kt())},yo=()=>{Cs!==null&&(cancelAnimationFrame(Cs),Cs=null),hi(),Vt=null,Xn.style.height="0px",Xn.style.display="none"},Xh=i=>typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(i):i.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),Pu=i=>se.querySelector(`[data-message-id="${Xh(i)}"]`),Jh=i=>{Cs!==null&&cancelAnimationFrame(Cs),Cs=requestAnimationFrame(()=>{Cs=null;let c=Xh(i),g=se.querySelector(`[data-message-id="${c}"]`);if(!g)return;let f=As(g),b=Vt?.spacerHeight??0,w=vc(b),{targetScrollTop:O,spacerHeight:z}=Wm({anchorOffsetTop:f,topOffset:ha(),viewportHeight:se.clientHeight,contentHeight:w,slack:Jo});Vt={initialSpacerHeight:z,contentHeightAtAnchor:w,spacerHeight:z},bc(z),Yh(se,()=>g.isConnected?Math.max(0,As(g)-ha()):O,220)})},In=()=>{if($n()!=="anchor-top"||!Vt||!mi)return;let i=Pu(mi);if(!i)return;hi();let c=Vt.spacerHeight,g=vc(c),{targetScrollTop:f,spacerHeight:b}=Wm({anchorOffsetTop:As(i),topOffset:ha(),viewportHeight:se.clientHeight,contentHeight:g,slack:Jo});Vt={initialSpacerHeight:b,contentHeightAtAnchor:g,spacerHeight:b},bc(b),kn=!0,se.scrollTop=f,qn=se.scrollTop,kn=!1,Kt()},xA=()=>{if(Sr()){if(!jn.isFollowing()||Ks(se,1))return;Ir(!Un);return}if(Vt&&Vt.initialSpacerHeight>0){let i=se.scrollHeight-Vt.spacerHeight,c=kw({initialSpacerHeight:Vt.initialSpacerHeight,contentHeightAtAnchor:Vt.contentHeightAtAnchor,currentContentHeight:i});c!==Vt.spacerHeight&&bc(c)}Kt()},SA=i=>{let c=$n();c==="follow"?(Ln(),Ir(!0)):c==="anchor-top"&&(Ma=!1,dc=!0,pc=!1,mi=i,Jh(i))},AA=()=>{if($n()==="anchor-top"){if(dc){Ma=!1;return}Ma=!0,yo(),Ln(),Ir(!0)}},MA=96,EA=i=>{if(ws===null)return!0;let c=Pu(ws),g=Pu(i);if(!c||!g)return!0;let f=As(g)-As(c);return ha()+f>se.clientHeight-MA},TA=i=>{if($n()!=="anchor-top"||!dc||pc||yc())return;let c=ws===null;for(let g of i){if(!c){g.id===ws&&(c=!0);continue}if(Aw(g)){if(g.id===mi||!EA(g.id))return;mi=g.id,Jh(g.id);return}}},PA=i=>{let c=new Map;i.forEach(g=>{let f=xu.get(g.id);c.set(g.id,{streaming:g.streaming,role:g.role}),!f&&g.role==="assistant"&&(A.emit("assistant:message",g),!gi&&($n()!=="anchor-top"||Qf())&&Mu()&&(Lr+=1,Au(),Kt(),Gl(Lr===1?"1 new message below.":`${Lr} new messages below.`))),g.role==="assistant"&&f?.streaming&&g.streaming===!1&&A.emit("assistant:complete",g),g.variant==="approval"&&g.approval&&(f?g.approval.status!=="pending"&&A.emit("approval:resolved",{approval:g.approval,decision:g.approval.status}):A.emit("approval:requested",{approval:g.approval,message:g}))}),xu.clear(),c.forEach((g,f)=>{xu.set(f,g)})},ka=(i,c)=>{let g=c==="user"?"user":"assistant",f=o.layout?.messages?.[g],b=f?.width??"content",w=f?.maxWidth??(b==="full"?"100%":void 0);i.classList.add("persona-message-row"),i.classList.remove("persona-message-row-user","persona-message-row-assistant","persona-message-row-system","persona-message-width-content","persona-message-width-full"),i.classList.add(`persona-message-row-${c}`,`persona-message-width-${b}`),i.classList.toggle("persona-justify-end",c==="user"),i.setAttribute("data-message-role",c),i.setAttribute("data-message-width",b),w?i.style.setProperty("--persona-message-row-max-width",w):i.style.removeProperty("--persona-message-row-max-width")},tr=(i,c)=>{let g=document.createElement("div");return g.className="persona-flex",g.id=`wrapper-${i}`,g.setAttribute("data-wrapper-id",i),ka(g,c),g},kA=(i,c,g)=>{let f=document.createElement("div"),w=(()=>{let H=a.find(Be=>Be.renderLoadingIndicator);if(H?.renderLoadingIndicator)return H.renderLoadingIndicator;if(o.loadingIndicator?.render)return o.loadingIndicator.render})(),O=(H,Be)=>Be==null?!1:typeof Be=="string"?(H.textContent=Be,!0):(H.appendChild(Be),!0),z=new Set,q=new Map,V=new Set,J=a.some(H=>H.renderAskUserQuestion),ae=[],he=[],Ze=o.enableComponentStreaming!==!1,pt=o.approval!==!1,mt=[],Zt=o.messageActions,Ut=Zt?.showRegenerate===!0&&Zt.enabled!==!1&&dt.current?.isStreaming()!==!0?Jv(c):null,Ht=Zt?.showEdit===!0&&Zt.enabled!==!1,cn=Zt?.showQuote===!0&&Zt.enabled!==!1,tt=null,dn=o.features?.reasoningDisplay?.completedVisibility==="removed";if(c.forEach(H=>{if(dn&&H.variant==="reasoning"&&H.reasoning?.status==="complete")return;if(z.add(H.id),q.set(H.id,H.role),ys===H.id&&Pr){let Oe=tr(H.id,H.role);Oe.setAttribute("data-persona-message-edit-stub","true"),Oe.setAttribute("data-preserve-runtime","true"),f.appendChild(Oe),tt={messageId:H.id,element:Pr.element};return}let Be=J&&pr(H),De=pt&&H.variant==="approval"&&!!H.approval,ve=!Be&&H.role==="assistant"&&!H.variant&&Ze&&$l(H);!De&&Tr.has(H.id)&&(i.querySelector(`#wrapper-${H.id}`)?.removeAttribute("data-preserve-runtime"),Tr.delete(H.id)),!ve&&hs.has(H.id)&&(i.querySelector(`#wrapper-${H.id}`)?.removeAttribute("data-preserve-runtime"),hs.delete(H.id));let ht=pr(H)?`:${H.agentMetadata?.askUserQuestionAnswered?"a":"u"}:${H.agentMetadata?.askUserQuestionAnswers?Object.keys(H.agentMetadata.askUserQuestionAnswers).length:0}`:"",Gt={canRegenerate:Ut===H.id,canEdit:Ht&&tm(H),canQuote:cn&&!H.variant&&(H.content?.trim().length??0)>0},pn=`${Gt.canRegenerate?"r":""}${Gt.canEdit?"e":""}${Gt.canQuote?"q":""}`,un=vw(H,vs)+ht+`:${pn}`,Wt=Be||De||ve?null:ww(Ft,H.id,un);if(Wt){f.appendChild(Wt.cloneNode(!0)),pr(H)&&H.toolCall?.id&&H.agentMetadata?.awaitingLocalTool===!0&&!H.agentMetadata?.askUserQuestionAnswered&&(V.add(H.toolCall.id),Ni(H,o,Ue.composerOverlay));return}let Le=null,Qt=a.find(Oe=>!!(H.variant==="reasoning"&&Oe.renderReasoning||H.variant==="tool"&&Oe.renderToolCall||!H.variant&&Oe.renderMessage)),Yt=o.layout?.messages;if(pr(H)&&H.agentMetadata?.askUserQuestionAnswered===!0){ui.delete(H.id),i.querySelector(`#wrapper-${H.id}`)?.removeAttribute("data-preserve-runtime");return}if(Us(H)&&Gr(o).enabled)return;if(pr(H)&&o.features?.askUserQuestion?.enabled!==!1){let Oe=a.find(St=>typeof St.renderAskUserQuestion=="function");if(Oe&&dt.current){let St=ui.get(H.id),_o=St!==un,bo=null;if(_o){let{payload:je,complete:yt}=ur(H),Nr=H.id,Xt=()=>dt.current?.getMessages().find(Kn=>Kn.id===Nr);bo=Oe.renderAskUserQuestion({message:H,payload:je,complete:yt,resolve:Kn=>{let Ds=Xt();Ds&&dt.current?.resolveAskUserQuestion(Ds,Kn)},dismiss:()=>{let Kn=Xt();Kn?.agentMetadata?.awaitingLocalTool&&(dt.current?.markAskUserQuestionResolved(Kn),dt.current?.resolveAskUserQuestion(Kn,"(dismissed)"))},config:o})}let _e=St!=null;if(_o&&bo===null&&!_e){H.agentMetadata?.awaitingLocalTool===!0&&!H.agentMetadata?.askUserQuestionAnswered&&(V.add(H.toolCall.id),Ni(H,o,Ue.composerOverlay));return}let xe=tr(H.id,H.role);xe.setAttribute("data-ask-plugin-stub","true"),xe.setAttribute("data-preserve-runtime","true"),f.appendChild(xe),ae.push({messageId:H.id,fingerprint:un,bubble:bo});return}else{H.agentMetadata?.awaitingLocalTool===!0&&!H.agentMetadata?.askUserQuestionAnswered&&(V.add(H.toolCall.id),Ni(H,o,Ue.composerOverlay));return}}else if(De){let Oe=k();if(!Oe){f.appendChild(tr(H.id,H.role));return}let St=a.find(xe=>typeof xe.renderApproval=="function")??y,bo=Tr.get(H.id)!==un,_e=null;if(bo&&St?.renderApproval){let xe=H.id,je=(yt,Nr)=>{let Xt=dt.current?.getMessages().find(Kn=>Kn.id===xe);Xt?.approval&&(Xt.approval.toolType==="webmcp"?dt.current?.resolveWebMcpApproval(Xt.id,yt):dt.current?.resolveApproval(Xt.approval,yt,Nr))};_e=St.renderApproval({message:H,defaultRenderer:()=>Oe.createApprovalBubble(H,o),config:o,approve:yt=>je("approved",yt),deny:yt=>je("denied",yt)})}if(bo&&_e===null)i.querySelector(`#wrapper-${H.id}`)?.removeAttribute("data-preserve-runtime"),Tr.delete(H.id),Le=Oe.createApprovalBubble(H,o);else{let xe=tr(H.id,H.role);xe.setAttribute("data-approval-plugin-stub","true"),xe.setAttribute("data-preserve-runtime","true"),f.appendChild(xe),mt.push({messageId:H.id,fingerprint:un,bubble:_e});return}}else if(Qt)if(H.variant==="reasoning"&&H.reasoning&&Qt.renderReasoning){if(!rn)return;Le=Qt.renderReasoning({message:H,defaultRenderer:()=>cf(H,o),config:o})}else if(H.variant==="tool"&&H.toolCall&&Qt.renderToolCall){if(!An)return;Le=Qt.renderToolCall({message:H,defaultRenderer:()=>pf(H,o),config:o})}else Qt.renderMessage&&(Le=Qt.renderMessage({message:H,defaultRenderer:()=>{let Oe=ea(H,g,Yt,o.messageActions,_n,{loadingIndicatorRenderer:w,widgetConfig:o,actionEligibility:Gt});return H.role!=="user"&&I(Oe,H,o,P),Oe},config:o}));if(!Le&&ve){let Oe=Op(H);if(Oe){let St=hs.get(H.id),_o=St!==un,bo=o.wrapComponentDirectiveInBubble!==!1&&xo.getOptions(Oe.component)?.bubbleChrome!==!1,_e=null;if(_o){let xe=Wp(Oe,{config:o,message:H,transform:g});if(xe&&Oe.component==="PersonaArtifactInline"){let je=xe.hasAttribute("data-artifact-inline")?xe:xe.querySelector("[data-artifact-inline]"),yt=je?.getAttribute("data-artifact-inline")??"",Nr=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(yt):yt,Xt=yt?i.querySelector(`#wrapper-${H.id}`)?.querySelector(`[data-artifact-inline="${Nr}"]`)??null:null;je&&Xt&&Xt!==je&&hr()?.hasLiveInlineArtifactBlock(Xt)&&(je===xe?xe=Xt:je.replaceWith(Xt))}if(xe)if(bo){let je=document.createElement("div");if(je.className=["persona-message-bubble","persona-rounded-2xl","persona-bg-persona-surface","persona-border","persona-border-persona-message-border","persona-p-4"].join(" "),je.id=`bubble-${H.id}`,je.setAttribute("data-message-id",H.id),H.content&&H.content.trim()){let yt=document.createElement("div");yt.className="persona-mb-3 persona-text-sm persona-leading-relaxed",yt.innerHTML=g({text:H.content,message:H,streaming:!!H.streaming,raw:H.rawContent}),je.appendChild(yt)}je.appendChild(xe),_e=je}else{let je=document.createElement("div");if(je.className="persona-flex persona-flex-col persona-w-full persona-max-w-full persona-gap-3 persona-items-stretch",je.id=`bubble-${H.id}`,je.setAttribute("data-message-id",H.id),je.setAttribute("data-persona-component-directive","true"),H.content&&H.content.trim()){let yt=document.createElement("div");yt.className="persona-text-sm persona-leading-relaxed persona-text-persona-primary persona-w-full",yt.innerHTML=g({text:H.content,message:H,streaming:!!H.streaming,raw:H.rawContent}),je.appendChild(yt)}je.appendChild(xe),_e=je}}if(_e||St!=null){let xe=tr(H.id,H.role);xe.setAttribute("data-component-directive-stub","true"),xe.setAttribute("data-preserve-runtime","true"),f.appendChild(xe),he.push({messageId:H.id,fingerprint:un,bubble:_e});return}}}if(!Le)if(H.variant==="reasoning"&&H.reasoning){if(!rn)return;Le=cf(H,o)}else if(H.variant==="tool"&&H.toolCall){if(!An)return;Le=pf(H,o)}else if(H.variant==="approval"&&H.approval){if(o.approval===!1)return;let Oe=k();if(!Oe)return;Le=Oe.createApprovalBubble(H,o)}else{let Oe=o.layout?.messages;Oe?.renderUserMessage&&H.role==="user"?Le=Oe.renderUserMessage({message:H,config:o,streaming:!!H.streaming}):Oe?.renderAssistantMessage&&H.role==="assistant"?Le=Oe.renderAssistantMessage({message:H,config:o,streaming:!!H.streaming}):Le=ea(H,g,Oe,o.messageActions,_n,{loadingIndicatorRenderer:w,widgetConfig:o,actionEligibility:Gt}),H.role!=="user"&&Le&&I(Le,H,o,P)}let so=tr(H.id,H.role);so.appendChild(Le),xw(Ft,H.id,un,so),f.appendChild(so)}),Ue.composerOverlay&&Ue.composerOverlay.querySelectorAll("[data-persona-ask-sheet-for]").forEach(Be=>{let De=Be.getAttribute("data-persona-ask-sheet-for");De&&!V.has(De)&&Vr(Ue.composerOverlay,De)}),o.features?.toolCallDisplay?.grouped){let H=[],Be=[],De=o.features.toolCallDisplay.groupedMode==="summary";c.forEach(ve=>{if(ve.variant==="tool"&&ve.toolCall&&An){Be.push(ve);return}ve.variant==="reasoning"&&(!rn||dn&&ve.reasoning?.status==="complete")||((Be.length>1||De&&Be.length>0)&&H.push(Be),Be=[])}),(Be.length>1||De&&Be.length>0)&&H.push(Be),H.forEach(ve=>{let ht=ve.map(Yt=>Array.from(f.children).find(so=>so instanceof HTMLElement&&so.getAttribute("data-wrapper-id")===Yt.id)).filter(Yt=>!!Yt);if(ht.length<(De?1:2))return;let Gt=tr(`tool-group-${ve[0].id}`,"assistant");Gt.setAttribute("data-persona-tool-group-row","true");let pn=document.createElement("div");pn.className="persona-tool-group persona-flex persona-w-full persona-flex-col persona-gap-2",pn.setAttribute("data-persona-tool-group","true");let un=document.createElement("div");un.className="persona-tool-group-summary persona-text-xs persona-text-persona-muted",un.id=`tool-group-summary-${ve[0].id}`;let Wt=`Called ${ve.length} ${ve.length===1?"tool":"tools"}`,Le=o.toolCall?.renderGroupedSummary?.({messages:ve,toolCalls:ve.map(Yt=>Yt.toolCall).filter(Yt=>!!Yt),defaultSummary:Wt,config:o});O(un,Le)||(un.textContent=Wt);let Qt=document.createElement("div");Qt.className="persona-tool-group-stack persona-flex persona-flex-col",Qt.id=`tool-group-stack-${ve[0].id}`,Qt.setAttribute("data-persona-tool-group-stack","true"),pn.appendChild(un),De||pn.appendChild(Qt),Gt.appendChild(pn),ht[0].before(Gt),ht.forEach((Yt,so)=>{if(De){Yt.remove();return}Yt.style.setProperty("--persona-message-row-max-width","100%");let Oe=document.createElement("div");Oe.className="persona-tool-group-item persona-relative",Oe.setAttribute("data-persona-tool-group-item","true"),so<ht.length-1&&Oe.setAttribute("data-persona-tool-group-connector","true"),Oe.appendChild(Yt),Qt.appendChild(Oe)})})}Sw(Ft,z);let cr=c.some(H=>H.role==="assistant"&&H.streaming),Oo=c[c.length-1],Bo=Oo?.role==="assistant"&&!Oo.streaming&&Oo.variant!=="approval";if(Un&&c.some(H=>H.role==="user")&&!cr&&!Bo){let H={config:o,streaming:!0,location:"standalone",defaultRenderer:Js},Be=a.find(ve=>ve.renderLoadingIndicator),De=null;if(Be?.renderLoadingIndicator&&(De=Be.renderLoadingIndicator(H)),De===null&&o.loadingIndicator?.render&&(De=o.loadingIndicator.render(H)),De===null&&(De=Js()),De){let ve=document.createElement("div"),ht=o.loadingIndicator?.showBubble!==!1,Gt=o.layout?.messages?.layout??"bubble";ve.className=ht?Wl("assistant",Gt).join(" "):["persona-text-sm","persona-leading-relaxed","persona-text-persona-text"].join(" "),ve.setAttribute("data-typing-indicator","true"),ht&&(ve.style.color="var(--persona-message-assistant-text, var(--persona-text))",Gt!=="flat"&&(ve.style.backgroundColor="var(--persona-message-assistant-bg, var(--persona-container))",ve.style.borderColor="var(--persona-message-assistant-border, var(--persona-border, #e5e7eb))")),ve.appendChild(De);let pn=tr("typing-indicator","assistant");pn.appendChild(ve),f.appendChild(pn)}}if(!Un&&c.length>0){let H=c[c.length-1],Be={config:o,lastMessage:H,messageCount:c.length},De=a.find(ht=>ht.renderIdleIndicator),ve=null;if(De?.renderIdleIndicator&&(ve=De.renderIdleIndicator(Be)),ve===null&&o.loadingIndicator?.renderIdle&&(ve=o.loadingIndicator.renderIdle(Be)),ve){let ht=document.createElement("div"),Gt=o.loadingIndicator?.showBubble!==!1;ht.className=Gt?["persona-rounded-2xl","persona-text-sm","persona-leading-relaxed","persona-shadow-sm","persona-bg-persona-surface","persona-border","persona-border-persona-message-border","persona-text-persona-primary","persona-px-5","persona-py-3"].join(" "):["persona-text-sm","persona-leading-relaxed","persona-text-persona-primary"].join(" "),ht.setAttribute("data-idle-indicator","true"),ht.appendChild(ve);let pn=tr("idle-indicator","assistant");pn.appendChild(ht),f.appendChild(pn)}}if(ev(f),ip(i,f),Dg(i),tt){let{messageId:H,element:Be}=tt,De=i.querySelector(`#wrapper-${H}`);De&&Be.parentElement!==De&&(ka(De,q.get(H)??"user"),De.replaceChildren(Be))}if(ae.length>0)for(let{messageId:H,fingerprint:Be,bubble:De}of ae){let ve=i.querySelector(`#wrapper-${H}`);ve&&(ka(ve,q.get(H)??"assistant"),De!==null&&(ve.replaceChildren(De),ve.setAttribute("data-bubble-fp",Be),ui.set(H,Be)))}if(ui.size>0)for(let H of ui.keys())z.has(H)||ui.delete(H);if(he.length>0)for(let{messageId:H,fingerprint:Be,bubble:De}of he){let ve=i.querySelector(`#wrapper-${H}`);ve&&(ka(ve,q.get(H)??"assistant"),De!==null&&(ve.replaceChildren(De),ve.setAttribute("data-bubble-fp",Be),hs.set(H,Be)))}if(hs.size>0)for(let H of hs.keys())z.has(H)||hs.delete(H);if(mt.length>0)for(let{messageId:H,fingerprint:Be,bubble:De}of mt){let ve=i.querySelector(`#wrapper-${H}`);ve&&(ka(ve,q.get(H)??"assistant"),De!==null&&(ve.replaceChildren(De),ve.setAttribute("data-bubble-fp",Be),Tr.set(H,Be)))}if(Tr.size>0)for(let H of Tr.keys())z.has(H)||Tr.delete(H)},ku=!1,Cc=()=>{ku||(ku=!0,ad().catch(()=>{ku=!1}))},Zn=(i,c,g)=>{c.length>0&&Cc(),kA(i,c,g),bh()},La=null,LA=()=>{if(La)return;let i=g=>{let f=g.composedPath();f.includes(Ye)||Jt&&f.includes(Jt)||gt(!1,"user")};La=i,(e.ownerDocument??document).addEventListener("pointerdown",i,!0)},Zh=()=>{if(!La)return;(e.ownerDocument??document).removeEventListener("pointerdown",La,!0),La=null};we.push(()=>Zh());let Ia=null,IA=()=>{if(Ia)return;let i=g=>{g.key==="Escape"&&(g.isComposing||gt(!1,"user"))};Ia=i,(e.ownerDocument??document).addEventListener("keydown",i,!0)},ey=()=>{if(!Ia)return;(e.ownerDocument??document).removeEventListener("keydown",Ia,!0),Ia=null};we.push(()=>ey());let Ra=!1,ty=new Set,RA=()=>{let i=o.launcher?.composerBar?.peek?.streamAnimation;return i||o.features?.streamAnimation},yi=()=>{if(!Se())return;let i=Ue.peekBanner,c=Ue.peekTextNode;if(!i||!c)return;if(be){i.classList.remove("persona-pill-peek--visible");return}let g=P?.getMessages()??[],f;for(let Ut=g.length-1;Ut>=0;Ut--){let Ht=g[Ut];if(Ht.role==="assistant"&&Ht.content){f=Ht;break}}if(!f){i.classList.remove("persona-pill-peek--visible");return}let b=f.content,w=!!f.streaming,O=RA(),z=ap(O),q=z.type!=="none"?vu(z.type,O?.plugins):null,V=q?.isAnimating?.(f)===!0,J=q!==null&&(w||V);J&&q&&!ty.has(q.name)&&(kl(q,e),ty.add(q.name));let ae=J&&q?.containerClass?q.containerClass:null,he=c.dataset.personaPeekStreamClass??null;he&&he!==ae&&(c.classList.remove(he),delete c.dataset.personaPeekStreamClass),ae&&he!==ae&&(c.classList.add(ae),c.dataset.personaPeekStreamClass=ae),J?(c.style.setProperty("--persona-stream-step",`${z.speed}ms`),c.style.setProperty("--persona-stream-duration",`${z.duration}ms`)):(c.style.removeProperty("--persona-stream-step"),c.style.removeProperty("--persona-stream-duration"));let Ze=J?lp(b,z.buffer,q,f,w):b;if(J&&z.placeholder==="skeleton"&&w&&(!Ze||!Ze.trim())){let Ut=document.createElement("div"),Ht=Pl();Ht.classList.add("persona-pill-peek__skeleton"),Ut.appendChild(Ht),ip(c,Ut)}else{let Ut=Math.max(0,Ze.length-100),Ht=Ze.length>100?Ze.slice(-100):Ze,cn=dr(Ht);if(!J||!q){let tt=Ze.length>100?`\u2026${Ht}`:Ht;c.textContent!==tt&&(c.textContent=tt)}else{let tt=cn;(q.wrap==="char"||q.wrap==="word")&&(tt=Tl(cn,q.wrap,`peek-${f.id}`,{skipTags:q.skipTags,startIndex:Ut}));let dn=document.createElement("div");if(dn.innerHTML=tt,q.useCaret&&Ht.length>0){let cr=cp(),Oo=dn.querySelectorAll(".persona-stream-char, .persona-stream-word"),Bo=Oo[Oo.length-1];Bo?.parentNode?Bo.parentNode.insertBefore(cr,Bo.nextSibling):dn.appendChild(cr)}ip(c,dn),q.onAfterRender?.({container:c,bubble:i,messageId:f.id,message:f,speed:z.speed,duration:z.duration})}}let Zt=Un||Ra;i.classList.toggle("persona-pill-peek--visible",Zt)};if(Se()){let i=Ue.peekBanner;if(i){let f=b=>{b.preventDefault(),b.stopPropagation(),gt(!0,"user")};i.addEventListener("pointerdown",f),we.push(()=>{i.removeEventListener("pointerdown",f)})}let c=()=>{Ra||(Ra=!0,yi())},g=()=>{Ra&&(Ra=!1,yi())};Te.addEventListener("pointerenter",c),Te.addEventListener("pointerleave",g),we.push(()=>{Te.removeEventListener("pointerenter",c),Te.removeEventListener("pointerleave",g)}),Jt&&(Jt.addEventListener("pointerenter",c),Jt.addEventListener("pointerleave",g),we.push(()=>{Jt.removeEventListener("pointerenter",c),Jt.removeEventListener("pointerleave",g)}))}let HA=i=>{let c=o.launcher?.composerBar??{},g=c.expandedSize??"anchored",f=c.bottomOffset??"16px",b=c.collapsedMaxWidth,w=c.expandedMaxWidth??"880px",O=c.expandedTopOffset??"5vh",z=c.modalMaxWidth??"880px",q=c.modalMaxHeight??"min(90vh, 800px)",V="calc(100vw - 32px)",J="var(--persona-pill-area-height, 80px)",ae=Ye.style;if(ae.left="",ae.right="",ae.top="",ae.bottom="",ae.transform="",ae.width="",ae.maxWidth="",ae.height="",ae.maxHeight="",Jt){let he=Jt.style;he.bottom=f,he.width=b??""}if(i&&g!=="fullscreen"){if(g==="modal"){ae.top="50%",ae.left="50%",ae.transform="translate(-50%, -50%)",ae.bottom="auto",ae.right="auto",ae.width=z,ae.maxWidth=V,ae.maxHeight=q,ae.height=q;return}ae.left="50%",ae.transform="translateX(-50%)",ae.bottom=`calc(${f} + ${J})`,ae.top=O,ae.width=w,ae.maxWidth=V}},Ha=()=>{if(be&&Cc(),!Ie())return;if(Se()){let V=(o.launcher?.composerBar??{}).expandedSize??"anchored",J=be?"expanded":"collapsed";Ye.dataset.state=J,Ye.dataset.expandedSize=V,Jt&&(Jt.dataset.state=J,Jt.dataset.expandedSize=V),Ye.style.removeProperty("display"),Ye.classList.remove("persona-pointer-events-none","persona-opacity-0"),Te.classList.remove("persona-scale-95","persona-opacity-0","persona-scale-100","persona-opacity-100"),HA(be),me.style.display=be?"flex":"none",ds(),be?(LA(),IA()):(Zh(),ey()),yi();return}let i=Mt(o),c=e.ownerDocument.defaultView??window,g=o.launcher?.mobileBreakpoint??640,f=o.launcher?.mobileFullscreen??!0,b=c.innerWidth<=g,w=f&&b&&ye,O=On(o).reveal;be?(Ye.style.removeProperty("display"),Ye.style.display=i?"flex":"",Ye.classList.remove("persona-pointer-events-none","persona-opacity-0"),Te.classList.remove("persona-scale-95","persona-opacity-0"),Te.classList.add("persona-scale-100","persona-opacity-100"),It?(It.setPanelOpen(!0),It.element.style.display="none"):hn&&(hn.style.display="none")):(i?i&&(O==="overlay"||O==="push")&&!w?(Ye.style.removeProperty("display"),Ye.style.display="flex",Ye.classList.remove("persona-pointer-events-none","persona-opacity-0"),Te.classList.remove("persona-scale-100","persona-opacity-100","persona-scale-95","persona-opacity-0")):(Ye.style.setProperty("display","none","important"),Ye.classList.remove("persona-pointer-events-none","persona-opacity-0"),Te.classList.remove("persona-scale-100","persona-opacity-100","persona-scale-95","persona-opacity-0")):(Ye.style.display="",Ye.classList.add("persona-pointer-events-none","persona-opacity-0"),Te.classList.remove("persona-scale-100","persona-opacity-100"),Te.classList.add("persona-scale-95","persona-opacity-0")),It?(It.setPanelOpen(!1),It.element.style.display=i?"none":""):hn&&(hn.style.display=i?"none":""))},gt=(i,c="user")=>{if(!Ie()||be===i)return;let g=be;be=i,Ha();let f=(()=>{let w=o.launcher?.sidebarMode??!1,O=e.ownerDocument.defaultView??window,z=o.launcher?.mobileFullscreen??!0,q=o.launcher?.mobileBreakpoint??640,V=O.innerWidth<=q,J=Mt(o)&&z&&V,ae=Se()&&(o.launcher?.composerBar?.expandedSize??"fullscreen")==="fullscreen";return w||z&&V&&ye||J||ae})();if(be&&f){if(!Lo){let w=e.getRootNode(),O=w instanceof ShadowRoot?w.host:e.closest(".persona-host");O&&(Lo=_m(O,o.launcher?.zIndex??an))}Io||(Io=Dm(e.ownerDocument))}else be||(Lo?.(),Lo=null,Io?.(),Io=null);be&&(Xa(),Tu()||($n()==="follow"?Ir(!0):hc()));let b={open:be,source:c,timestamp:Date.now()};be&&!g?A.emit("widget:opened",b):!be&&g&&A.emit("widget:closed",b),A.emit("widget:state",{open:be,launcherEnabled:ye,voiceActive:Ge.active,streaming:P.isStreaming()})},Rr={inputDisabled:!1,sendDisabled:!1},Hr=()=>Rr.inputDisabled,Ms=()=>Rr.inputDisabled||Rr.sendDisabled,WA=()=>(Rr.inputDisabled?Rr.inputReason:void 0)??(Rr.sendDisabled?Rr.sendReason:void 0);function Lu(){if(!Pe)return;if(Ae.getState().phase==="streaming"){Pe.disabled=!1;return}let i=et?!et.isReady():!1;Pe.disabled=Ms()||i}function wc(){if(!Mo)return;let i=Ae.getState(),c=o.sendButton?.visibility==="when-text"&&i.phase!=="streaming"&&i.text.trim().length===0&&i.attachments.length===0;Mo.toggleAttribute("data-persona-send-hidden",c)}function OA(){let i=WA();if(Se()){let c=uo??We;i?c.setAttribute("title",i):c.removeAttribute("title"),We.toggleAttribute(da,!!i);return}if(i){it.setAttribute("role","status"),it.setAttribute("aria-live","polite"),it.setAttribute(da,""),it.textContent=i;return}if(it.hasAttribute(da)&&(it.removeAttribute("role"),it.removeAttribute("aria-live"),it.removeAttribute(da),p)){let c=P.getStatus();ln(it,mn(c),o.statusIndicator??{},c)}}function Iu(){let i=gm(o.composer?.inputDisabled),c=gm(o.composer?.sendDisabled);Rr={inputDisabled:i.disabled,inputReason:i.reason,sendDisabled:c.disabled,sendReason:c.reason},Ae.setInputDisabled(i.disabled),Ae.setSendDisabled(c.disabled);let g=Ae.getState().phase==="streaming",f=i.disabled,b=g||f;pe&&(pe instanceof HTMLTextAreaElement?pe.disabled=f:pe.setAttribute("contenteditable",f?"false":"true"),pe.setAttribute("aria-disabled",f?"true":"false")),Tt&&(Tt.disabled=f),Ct&&(Ct.disabled=f);for(let w of Dt?.affordanceButtons??[])w.querySelectorAll("button").forEach(O=>{O.disabled=f});ie&&(ie.disabled=b),gs.forEach(w=>{w.elements.forEach(O=>{O.toggleAttribute("data-disabled",b),O instanceof HTMLButtonElement||O.setAttribute("aria-disabled",b?"true":"false")}),w.buttons.forEach(O=>{O.disabled=b})}),Bu.forEach(w=>{w.toggleAttribute("data-disabled",b),w instanceof HTMLButtonElement?w.disabled=b:w.setAttribute("aria-disabled",b?"true":"false"),w.querySelectorAll("button").forEach(O=>{O.disabled=b})}),We.dataset.personaComposerStreaming=g?"true":"false",We.dataset.personaComposerInputDisabled=f?"true":"false",We.dataset.personaComposerSendDisabled=Ms()?"true":"false",We.querySelectorAll("[data-persona-composer-disable-when-streaming]").forEach(w=>{(w instanceof HTMLButtonElement||w instanceof HTMLInputElement||w instanceof HTMLTextAreaElement||w instanceof HTMLSelectElement)&&(w.disabled=g)}),Lu(),OA()}let Wa=i=>{Ae.setStreaming(i),Kf(i?"stop":"send"),Iu()},Es=()=>{Ge.active||pe&&pe.focus()};A.on("widget:opened",()=>{o.autoFocusInput&&setTimeout(()=>Es(),200)});let Ts=null,Oa=!1,Ru=!En.hidden,Wr=null,Hu=!re,xc=null;we.push(()=>{xc?.cancel(),xc=null});let BA=i=>{let c=nx(i);if(c===Ql)return;Ql=c,e.setAttribute("data-persona-conversation-state",c);let g=ou();Xl(),Hu&&(xc?.cancel(),xc=ex(We,c==="active"?g:ou(),c==="active"?"drop":"rise")),In()},ny=null,oy,ry=null,bi=null,Wu=!1,Ba=i=>{let c=wo(o),g=`${c.variant}|${c.dismiss}|${c.anchor??"bottom"}|${c.align??""}|${c.iconPlacement}|${c.kicker??""}|${c.title}|${c.subtitle}`;(g!==ny||c.icon!==oy)&&(ny=g,oy=c.icon,yp({host:En,iconHolder:NS,kicker:FS,title:$S,subtitle:US,starterSuggestions:Zp},c));let f=c.message===void 0?null:`${o.layout?.messages?.layout??"bubble"}|${c.message}`;f!==ry&&(ry=f,bp(Nn,c.message,o));let b=i??(P?P.getMessages():o.initialMessages);BA(b);let w=Oa,O=!w&&ts(c,b),z=O!==Ru;if(Ru=O,bi){Wr?.cancel(),Wr=null,w!==Wu&&(Wu=w,w?ef(se,En,null):Zm(se,En,bi)),ta(se,En,!w);return}if(z&&!O&&!w&&c.dismiss==="on-first-message"&&Hu){Wr=Zw(En,V=>{Wr===V&&(Wr=null),!Ru&&!bi&&(ta(se,En,!1),In()),V?.cancel()});return}if(Wr){if(!O&&!w)return;Wr.cancel(),Wr=null}let q=!En.hidden;ta(se,En,O),!O&&q&&In()},Ou=[],Bu=[],_u=!1,sy=null,iy,ay=()=>{Bu.length=0;let i=Ou.splice(0,Ou.length);for(let c of i)try{c()}catch(g){console.warn("[persona] renderWelcome cleanup threw",g)}};we.push(ay);let _A=(i,c)=>{let g=Fm(i,c);if(!g)return o.debug===!0&&console.warn("[persona] renderStarter received a suggestion with no label"),M("span");let f=o.suggestions?.starters,b=$m({item:{...g,behavior:g.behavior??f?.behavior??"send"},index:c,surface:"starter",source:"config",variant:f?.variant??"card",streaming:p?P.isStreaming():!1,config:o,plugins:a,chipsConfig:o.suggestionChipsConfig,session:P,getTextarea:()=>pe,eventTarget:En,submitPrompt:Qc});return Bu.push(b),b},Du=()=>{if(_u)return;_u=!0;let i=wo(o);sy=`${i.variant}|${i.dismiss}|${i.title}|${i.subtitle}|${i.message??""}`,iy=i.icon;try{ay(),ef(se,En,bi),bi=null,Wu=!1;let c=P?P.getMessages():o.initialMessages,g=ts(i,c),f=0,b=null;for(let w of a)if(w.renderWelcome&&(b=w.renderWelcome({config:i,variant:i.variant,visible:g,defaultRenderer:()=>En,sendMessage:O=>{if(!P||P.isStreaming())return;let z=O.trim();z&&P.sendMessage(z)},requestRender:()=>Du(),renderStarter:O=>_A(O,f++),storage:u(w.id),onCleanup:O=>{Ou.push(O)}}),b))break;b&&b!==En&&(bi=b,Zm(se,En,b))}finally{_u=!1}Ba()},DA=()=>{let i=wo(o);`${i.variant}|${i.dismiss}|${i.title}|${i.subtitle}|${i.message??""}`===sy&&i.icon===iy||Du()},Sc=()=>{Ba(),ai||(pe.placeholder=FC(Ae.getState().activeModeIds,o.composer?.modes)??o.copy?.inputPlaceholder??"How can I help...",!(o.sendButton?.useIcon??!1)&&!P?.isStreaming()&&(Pe.textContent=o.copy?.sendButtonLabel??"Send")),pe.style.fontFamily='var(--persona-input-font-family, var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif))',pe.style.fontWeight="var(--persona-input-font-weight, var(--persona-font-weight, 400))"},NA=!!o.setStoredConversationId,_a=i=>de(c=>{let g={...c};return delete g[i],g}),Ac=i=>{let c=le[i];return typeof c=="string"?c:null};o.clientToken&&(o={...o,getStoredSessionId:()=>Ac("sessionId"),setStoredSessionId:i=>{de(c=>({...c,sessionId:i}))},clearStoredSessionId:o.clearStoredSessionId??(()=>_a("sessionId")),getStoredConversationId:o.getStoredConversationId??(()=>Ac("conversationId")),setStoredConversationId:o.setStoredConversationId??(i=>{de(c=>({...c,conversationId:i}))}),clearStoredConversationId:o.clearStoredConversationId??(()=>_a("conversationId"))});let ly=()=>o.features?.history?.enabled===!0?o.clientToken??null:null,cy=i=>Wx(i,Ao(),o.persistState===!1),dy=ly(),nr=dy?cy(dy):null,Ps={...nr?{visitorStore:nr}:{},historyBootstrapReady:_,getStoredMessageCursor:()=>Ac("historyMessageCursor"),setStoredMessageCursor:i=>{if(i===null){_a("historyMessageCursor");return}de(c=>({...c,historyMessageCursor:i}))},getPendingDisplayProjections:()=>{let i=le.pendingDisplayProjections;if(!i||typeof i!="object")return null;let c=i;return typeof c.conversationId!="string"||!Array.isArray(c.messageIds)?null:{conversationId:c.conversationId,messageIds:c.messageIds.filter(g=>typeof g=="string")}},setPendingDisplayProjections:i=>{if(!i){_a("pendingDisplayProjections");return}de(c=>({...c,pendingDisplayProjections:i}))},...NA?{}:{getStoredConversationRevision:()=>Ac("conversationRevision"),setStoredConversationRevision:i=>{if(i===null){_a("conversationRevision");return}de(c=>({...c,conversationRevision:i}))}}},FA=()=>{let i=ly();if(i&&nr?.matches(i,Ao(),o.persistState===!1)||!i&&!nr)return;nr?.destroy(),nr=i?cy(i):null;let c={...Ps};nr?c.visitorStore=nr:delete c.visitorStore,Ps=c,P.setHistoryInternals(Ps)},ks=null,$A=()=>{ks==null&&(ks=setInterval(()=>{let i=Re.querySelectorAll("[data-tool-elapsed]");if(i.length===0){clearInterval(ks),ks=null;return}let c=Date.now();i.forEach(g=>{let f=Number(g.getAttribute("data-tool-elapsed"));f&&(g.textContent=Cd(c-f))})},100))},Nu=(i,c)=>{if(Object.is(i,c))return!0;if(i===null||c===null||typeof i!="object"||typeof c!="object")return!1;if(Array.isArray(i)||Array.isArray(c))return!Array.isArray(i)||!Array.isArray(c)||i.length!==c.length?!1:i.every((O,z)=>Nu(O,c[z]));let g=i,f=c,b=Object.keys(g),w=Object.keys(f);return b.length===w.length&&b.every(O=>Object.prototype.hasOwnProperty.call(f,O)&&Nu(g[O],f[O]))},py=i=>{let{content:c,rawContent:g,llmContent:f,...b}=i;return b},Fu=i=>i.role==="assistant"&&i.streaming===!0&&!i.variant&&!i.toolCall&&!i.tools&&!i.approval&&!i.reasoning&&!i.contentParts&&!i.stopReason&&!$l(i),UA=(i,c,g)=>{if(i.length!==c.length)return!1;let f=i[g.index],b=c[g.index];return!f||!b||f.id!==g.id||b.id!==g.id?!1:(!Object.is(f.content,b.content)||!Object.is(f.rawContent,b.rawContent)||!Object.is(f.llmContent,b.llmContent))&&Fu(f)&&Fu(b)&&Nu(py(f),py(b))},$u=null,vi=null,Ls=null,or=null,Mc=i=>{$u=i;let c,g;vi=null;for(let b=i.length-1;b>=0;b-=1){let w=i[b];if(!c&&w.role==="user"&&(c=w),!g&&w.role==="assistant"&&(g=w),!vi&&Fu(w)&&(vi={index:b,id:w.id}),c&&g&&vi)break}Zn(Re,i,ct),hr()?.updateInlineArtifactBlocks(Re,Jn.artifacts,{suppressTransition:Un}),$A(),Ba(i),pi(i),Ir(!Un),PA(i),i.length===0&&(yo(),Ma=!0,dc=!1,mi=null,pc=!1),!Cu||gi?(Cu=!0,ws=c?.id??null,wu=g?.id??null):c&&c.id!==ws?(ws=c.id,SA(c.id)):g&&g.id!==wu&&AA(),g&&(wu=g.id),TA(i);let f=Ge.lastUserMessageId;c&&c.id!==f&&(Ge.lastUserMessageId=c.id,A.emit("user:message",c)),Ge.lastUserMessageWasVoice=!!c?.viaVoice,Ea(i),yi()},Uu=()=>{or!==null&&(cancelAnimationFrame(or),or=null);let i=Ls;Ls=null,i&&Mc(i)},uy=()=>{or!==null&&cancelAnimationFrame(or),or=null,Ls=null},jA=i=>{let c=Ls??$u;if(Un&&c&&vi&&UA(c,i,vi)){Ls=i,or===null&&(or=requestAnimationFrame(()=>{or=null;let g=Ls;Ls=null,g&&Mc(g)}));return}if(i.length===0){uy(),Mc(i);return}Uu(),Mc(i)};P=new zi(o,{onMessagesChanged(i){jA(i)},onStatusChanged(i){let c=o.statusIndicator??{};ln(it,(f=>f==="idle"?c.idleText??jt.idle:f==="connecting"?c.connectingText??jt.connecting:f==="connected"?c.connectedText??jt.connected:f==="error"?c.errorText??jt.error:f==="paused"?c.pausedText??jt.paused:f==="resuming"?c.resumingText??jt.resuming:jt[f])(i),c,i),Et()},onStreamingChanged(i){i||(P?.getMessages().length===0?uy():Uu()),Un=i,Wa(i),Et(),P&&Zn(Re,P.getMessages(),ct),i||(Ir(!0),wA(),Nh=!0,P&&Fh(P.getMessages(),Gr(o))),Kt(),Gl(i?"Responding\u2026":"Response complete."),yi()},onVoiceStatusChanged(i){if(A.emit("voice:status",{status:i,timestamp:Date.now()}),o.voiceRecognition?.provider?.type==="runtype")switch(i){case"listening":lr(),Li();break;case"processing":lr(),zM();break;case"speaking":lr(),VM();break;default:i==="idle"&&P.isBargeInActive()?(lr(),Li(),ie?.setAttribute("aria-label","End voice session")):(Ge.active=!1,lr(),er("system"),ho());break}},onArtifactsState(i){Jn=i,i.artifacts.length===0&&(li=!1),hr()?.updateInlineArtifactBlocks(Re,i.artifacts,{suppressTransition:Un}),fo(),Ea()},onHistoryStateChanged(i){Ve(i)},onHistoryNotice(i){_t(i)},onReconnect(i){let{executionId:c,lastEventId:g}=i.handle;i.phase==="paused"?A.emit("stream:paused",{executionId:c,after:g}):i.phase==="resuming"?A.emit("stream:resuming",{executionId:c,after:g,attempt:i.attempt??1}):A.emit("stream:resumed",{executionId:c,after:g})}},Ps),dt.current=P,we.push(()=>P.cancel()),we.push(()=>{P.destroy(),nr?.destroy()});let ju=null;if(P.onReadAloudChange((i,c)=>{hh=i,yh=c,bh();let g=i??ju;i&&(ju=i);let f=g?P.getMessages().find(b=>b.id===g)??null:null;A.emit("message:read-aloud",{messageId:g,message:f,state:c,timestamp:Date.now()}),c==="idle"&&(ju=null)}),p=!0,Cu=!0,o.voiceRecognition?.provider?.type==="runtype")try{P.setupVoice()}catch(i){typeof console<"u"&&console.warn("[AgentWidget] Runtype voice setup failed:",i)}let qA=720,zA=250,Je=Tf(o.features?.history?.copy),zn=null,qu=!1,at=null,Ec=null,Tc="conversation",zu=null,fn=null,Ro=null,Pc=P.getHistoryState(),Vu=null,Da=0,Ku=null,kc=null,Lc=null,Gu=`persona-history-${Math.random().toString(36).slice(2,8)}`,Qu=()=>o.features?.history?.enabled===!0,Ho=()=>Qu()&&!!zn&&!qu,gy=()=>{let i=P.getStatus();return Un||i==="paused"||i==="resuming"},Yu=()=>{let i=o.features?.history?.scope;if(i)return i;let c=o.getIdentityProof?"verified-user":"browser",g=zn?.capabilities.scopes;return!g||g.includes(c)?c:g[0]??c},Ci=()=>Ec?.scope??Yu(),my=()=>P.getClientSession()?.targetId??null,fy=i=>`${i.state}:${"reason"in i?i.reason:""}`,VA=i=>{let c=fy(i);c!==Vu&&(Vu=c,A.emit("history:identityStatusChanged",{status:i,timestamp:Date.now()}))},Ic=i=>{i&&(Go.textContent="",Go.textContent=i)},hy=null,yy=null,KA=()=>{if(!Qu())return null;let i=Dx();if(i)return i();let c=o.features?.history?.provider;return c?typeof c!="function"?c:(hy!==c&&(hy=c,yy=c()),yy):P.isClientTokenMode()?Nx({client:P.getClient(),getIdentityProofConfigured:()=>typeof o.getIdentityProof=="function",onActivationCommitted:g=>P.bindActivatedSession(g),getClient:()=>P.getClient()}):null},by=()=>{kc?.(),kc=null,Lc?.(),Lc=null,qu=!1,zn=KA();let i={...Ps};zn?i.historyProvider=zn:delete i.historyProvider,Ps=i,P.setHistoryInternals(Ps),zn&&(kc=zn.subscribeAvailability?.(c=>{qu=!c,c||Rn({restoreFocus:!1}),Br()})??null,Lc=zn.subscribeIdentityStatus(c=>VA(c)),Vu=fy(zn.getIdentityStatus()))},Xu=()=>{let i=o.features?.history?.presentation??"panel";if(i==="panel"||i==="auto"&&!(!ye||Mt(o)))return"panel";let c=ko??me;return(c.getBoundingClientRect().width||c.clientWidth)>=qA?"rail":"panel"},eo=(i,c)=>{c?(i.setAttribute("aria-hidden","true"),i.setAttribute("inert","")):(i.removeAttribute("aria-hidden"),i.removeAttribute("inert"))},Rc="data-persona-history-suppressed",Vn=null,Or=null,Is=null,Na=null,Ju=null,vy="",Cy=()=>ke===Ju?vy:o.layout?.showHeader===!1?"none":"",GA=()=>ce==="panel"&&!!Is&&Na===Is.element&&o.layout?.showHeader!==!1&&Cy()!=="none",QA=()=>{for(let i of Array.from(ke.children))i!==Vn&&i.setAttribute(Rc,"")},YA=()=>{for(let i of Array.from(me.querySelectorAll(`[${Rc}]`)))i.removeAttribute(Rc)},XA=()=>{let i=Is;if(!i)return;if(Array.from(ke.children).some(f=>f!==Vn&&!f.hasAttribute(Rc))){Or&&Or!==ke&&(Or.style.removeProperty("min-height"),Or=null);let f=ke.offsetHeight;f>0&&(ke.style.minHeight=`${f}px`,Or=ke)}Vn||(Vn=M("div","persona-history-header-host")),i.setHeaderPlacement("external");let g=i.getHeaderElement();g.parentNode!==Vn&&Vn.replaceChildren(g),Vn.parentNode!==ke&&ke.appendChild(Vn),QA()},wy=()=>{Or&&(Or.style.removeProperty("min-height"),Or=null),Vn&&(Is?.setHeaderPlacement("inline"),Vn.remove(),Vn=null,YA())},Hc=null,Zu=()=>{if(Hc){if(se.style.display="none",eo(se,!0),We.hidden=!0,eo(We,!0),GA()){XA(),ke.style.display=Cy(),eo(ke,!1);return}wy(),ke.style.display="none",eo(ke,!0)}};Ee=Zu;let JA=i=>{let c=se.style.display,g=We.hidden,f=We,b=ke,w=ke.style.display;Ju=b,vy=w,Hc=()=>{Hc=null,wy(),Ju=null,se.style.display=c,eo(se,!1),f.hidden=g,eo(f,!1),We!==f&&(We.hidden=!1,eo(We,!1)),b.style.display=w,eo(b,!1),ke!==b&&(ke.style.display=o.layout?.showHeader===!1?"none":"",eo(ke,!1))},We.parentNode?.insertBefore(i,We),Zu()},wi=null,Rs=null,Fa=null,xi=null,xy=()=>[ke,Ue.closeButtonWrapper,Ue.clearChatButtonWrapper,se,We],ZA=52,Wc=()=>o.features?.history?.rail?.collapsible!==!1,Si=()=>o.features?.history?.rail?.side==="right"?"right":"left",eg=200,tg=400,ng=i=>Math.min(tg,Math.max(eg,Math.round(i))),eM=()=>o.features?.history?.rail?.resizable===!0,$a,tM=()=>{if($a===void 0&&($a=null,o.persistState!==!1))try{let i=Number(window.localStorage.getItem(`${Ao()}rail-width`));i&&($a=i)}catch{}return $a},Ua=()=>ng(tM()??o.features?.history?.rail?.width??260),nM=i=>{if($a=i,o.persistState!==!1)try{window.localStorage.setItem(`${Ao()}rail-width`,String(i))}catch{}},Oc=()=>Wc()&&o.features?.history?.rail?.collapsedBehavior==="overlay",$t=!1,Sy=i=>{let c=M("img");return c.src=i,c.alt="",c.setAttribute("aria-hidden","true"),c},oM=()=>{let i=o.features?.history?.rail?.brand;if(!i)return;let c=!1,g;return f=>{if(i.render)try{return i.render({collapsed:f})??null}catch(b){return c||(c=!0,console.warn("[persona] history rail brand threw",b)),null}return g===void 0&&(i.iconUrl?g=Sy(i.iconUrl):g=i.icon?ge(i.icon,20):null),g?g.cloneNode(!0):null}},rM=()=>o.features?.history?.rail?.sections?.map(i=>{let c=!1,g=f=>{c||(c=!0,console.warn("[persona] history rail section threw",i.id,f))};return{id:i.id,title:i.title,placement:i.placement??"above-conversations",items:i.items.map(f=>{let b;return{id:f.id,label:f.label,badge:f.badge,iconNode:()=>{if(b!==void 0)return b;try{f.renderIcon?b=f.renderIcon()??null:f.iconUrl?b=Sy(f.iconUrl):b=f.icon?ge(f.icon,20):null}catch(w){g(w),b=null}return b},onSelect:()=>{try{f.onSelect()}catch(w){g(w)}}}})}})??[],sM=i=>{let c=rM();for(let g of i)c.some(f=>f.id===g.id)?console.warn("[persona] duplicate history rail section id",g.id):c.push(g);return c.length?c:void 0},ja=null,Ay=()=>`${Ao()}rail-collapsed`,og=()=>{if(ja===null&&(ja=o.features?.history?.rail?.defaultCollapsed===!0,o.persistState!==!1))try{let i=window.localStorage.getItem(Ay());i&&(ja=i==="1")}catch{}return ja},rg=i=>{if(ja=i,o.persistState!==!1)try{window.localStorage.setItem(Ay(),i?"1":"0")}catch{}},qa=()=>ce==="rail"&&Wc()&&!Oc()&&og(),sg=()=>{},My=()=>{if(Oc()){sg();return}rg(!og()),at?.view.setCollapsed(qa()),vt(),In()},ig=()=>{let i=o.features?.history?.rail?.collapseShortcut;return!i||!rp(i)?null:{combo:i,hint:sp(i),aria:xl(i)}},Ey=()=>{d.forEach(c=>c()),d=[];let i=ig();i&&d.push(l.register({id:"history-rail-collapse",combo:i.combo,scope:o.features?.history?.rail?.collapseShortcutScope==="page"?"page":"widget",when:()=>oe&&ce==="rail"&&Wc()||Mi(),run:()=>Oc()?sg():My()}));for(let c of o.layout?.header?.trailingActions??[])c.shortcut&&d.push(l.register({id:`header-action-${c.id}`,combo:c.shortcut,run:()=>{let g=e.querySelector(`[data-persona-header-action="${c.id}"]`);g?g.click():o.layout?.header?.onAction?.(c.id)}}));for(let c of a)for(let g of c.shortcuts??[])d.push(l.register({...g,id:`${c.id}:${g.id}`}))};Ey();let iM=300,Bc="var(--persona-history-overlay-margin,8px)",to=null,rr=null,_c=0,sr=null,Ai=null,Hs=!1,ag=0,Ty=()=>window.matchMedia?.("(pointer: coarse)").matches===!0,Mi=()=>Ho()&&Oc()&&(ce??Xu())==="rail",aM=()=>oe&&!$t,za=()=>{Ai!==null&&clearTimeout(Ai),Ai=null},lM=()=>{Af().catch(()=>{})},Py=()=>{za(),$t&&(Ai=setTimeout(()=>{Ai=null,!(Hs||!$t)&&(sr?.contains(document.activeElement)||Rn({restoreFocus:!1}))},iM))},cM=(i,c)=>{let g=sr?.getBoundingClientRect();if(!g)return!1;let f=to?.getBoundingClientRect(),b=f?Math.min(f.top,g.top):g.top;return i>=g.left&&i<=g.right&&c>=b&&c<=g.bottom||!!f&&i>=f.left&&i<=f.right&&c>=f.top&&c<=f.bottom},lg=i=>{$t&&(Hs=cM(i.clientX,i.clientY),Hs?za():Ai===null&&Py())},ky=i=>{oe||!Mi()||($t=!0,Ka({invoker:to,keyboard:i?.keyboard===!0}).then(()=>{oe?!Hs&&document.activeElement!==to&&Rn():$t=!1}))},Ly=()=>{let i=Na?.querySelector('[data-persona-history-focus="collapse"]');i&&(i.setAttribute("aria-label",$t?Je.expandLabel:Je.collapseLabel),i.setAttribute("aria-expanded",$t?"false":"true"))},Iy=()=>{rg(!1);let i=at;if(!$t||!i){Ka({invoker:to});return}let c=document.activeElement===to;$t=!1,Dc(),i.element.remove(),dg(i.element),Ly(),c&&Fc(),In(),Br()},dM=()=>{rg(!0),Rn()};sg=()=>{!oe||$t?Iy():dM()};let pM=()=>{let i=ig(),c=Gs({ariaLabel:Je.expandLabel,iconName:"panel-left",wrapperClassName:"persona-relative persona-inline-flex persona-items-center persona-justify-center",extraClassName:"persona-rail-trigger",tooltip:!1,attrs:{"data-persona-rail-trigger":"","aria-controls":Gu,...i?{"aria-keyshortcuts":i.aria}:{}}}),g=c.button;g.addEventListener("mouseenter",()=>{Hs=!0,za(),!(Ty()||Date.now()<ag)&&ky()}),g.addEventListener("mouseleave",()=>{Hs=!1,ag=0,Py()}),g.addEventListener("focus",()=>{oe||lM()}),g.addEventListener("click",f=>{Ho()&&(f.detail!==0&&Ty()&&!oe?ky():Iy())}),to=g,rr=c.wrapper},Va=()=>{if(rr&&!rr.isConnected&&(rr=null,to=null),!Mi()){rr?.remove(),rr=null,to=null;return}to||pM();let i=rr,c=to;if(!i||!c)return;let g=Si()!=="right"?ke.firstChild:null;(g??ke.lastChild)!==i&&ke.insertBefore(i,g),i.style.display=aM()||_c>0?"none":"",c.setAttribute("aria-label",Je.expandLabel),c.setAttribute("aria-expanded",oe?"true":"false"),sr&&vt()},Ry=i=>{if(!$t)return;let c=i.target;c instanceof Node&&(sr?.contains(c)||rr?.contains(c)||c instanceof Element&&c.closest('.persona-dropdown-menu,[role="alertdialog"]')||Rn({restoreFocus:!1}))};document.addEventListener("pointerdown",Ry,!0),we.push(()=>{document.removeEventListener("pointerdown",Ry,!0),document.removeEventListener("pointermove",lg),Ei?.(),za()});let cg=null,Ei=null,Hy=16,Wy=i=>{nM(ng(i)),vt(),In()},uM=()=>{let i=M("div","persona-rail-resizer");return i.tabIndex=0,i.setAttribute("role","separator"),i.setAttribute("aria-orientation","vertical"),i.setAttribute("aria-valuemin",String(eg)),i.setAttribute("aria-valuemax",String(tg)),i.addEventListener("pointerdown",c=>{let g=Rs;if(!g||c.button!==0)return;c.preventDefault(),Ei?.();let f=c.clientX,b=g.getBoundingClientRect().width||Ua(),w=Si()==="right"?-1:1,O=b,z=e.ownerDocument;g.style.transition="none";let q=J=>{O=ng(b+w*(J.clientX-f)),g.style.flex=`0 0 ${O}px`,i.setAttribute("aria-valuenow",String(O))},V=()=>{Ei=null,z.removeEventListener("pointermove",q),z.removeEventListener("pointerup",V),z.removeEventListener("pointercancel",V),g.style.removeProperty("transition");try{i.releasePointerCapture(c.pointerId)}catch{}Wy(O)};Ei=V,z.addEventListener("pointermove",q),z.addEventListener("pointerup",V),z.addEventListener("pointercancel",V);try{i.setPointerCapture(c.pointerId)}catch{}}),i.addEventListener("keydown",c=>{let g=Si()==="right"?-Hy:Hy,f=Ua(),b=c.key==="ArrowRight"?f+g:c.key==="ArrowLeft"?f-g:c.key==="Home"?eg:c.key==="End"?tg:null;b!==null&&(c.preventDefault(),Wy(b))}),i},gM=(i,c)=>{if(!eM()||qa()){Ei?.(),cg?.remove();return}let g=cg??uM();cg=g,g.setAttribute("aria-label",Je.resizeLabel),g.setAttribute("aria-valuenow",String(Ua())),g.nextElementSibling!==c&&i.insertBefore(g,c)};vt=()=>{at?.view.setRailSide(Si());let i=Si()==="right",c=sr;if(c){let z=to?to.getBoundingClientRect().bottom-me.getBoundingClientRect().top:0;c.style.top=`calc(${Math.max(0,Math.round(z))}px + ${Bc})`,c.style.width=`${Ua()}px`,c.style.left=i?"":Bc,c.style.right=i?Bc:""}let g=Rs,f=wi,b=Fa;if(!g||!f||!b)return;g.style.flex=`0 0 ${qa()?ZA:Ua()}px`;let w="1px solid var(--persona-divider,#e5e7eb)";g.style.borderRight=i?"":w,g.style.borderLeft=i?w:"";let O=i?b:g;f.firstElementChild!==O&&f.append(O,i?g:b),gM(f,i?g:b)};let Oy=i=>{if(xi&&Rs){xi.replaceWith(i),xi=null,vt();return}let c=M("div","persona-history-rail-shell");c.style.cssText="display:flex;flex-direction:row;flex:1 1 auto;min-height:0";let g=M("div","persona-history-rail-conversation");g.style.cssText="display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;position:relative";let f=M("div","persona-history-rail-host");f.style.cssText="display:flex;min-height:0;overflow:hidden",me.insertBefore(c,ke.parentNode===me?ke:se);for(let b of xy())b?.parentNode===me&&g.appendChild(b);c.append(f,g),f.appendChild(i),wi=c,Rs=f,Fa=g,vt()},mM=()=>{if(wi)return;let i=M("div","persona-history-rail-placeholder");i.style.cssText="flex:1 1 auto;min-height:0",xi=i,Oy(i),In()},By=()=>{xi&&(Dc(),In())},fM=i=>{let c=M("div","persona-history-rail-overlay");c.style.cssText=`position:absolute;bottom:${Bc};display:flex;overflow:hidden;z-index:${Vi-1};border-radius:var(--persona-history-overlay-radius,16px);background:var(--persona-history-overlay-bg,var(--persona-container,#f7f7f8));box-shadow:var(--persona-history-overlay-shadow,0 12px 40px rgba(0,0,0,0.25))`,me.style.position="relative",me.appendChild(c),c.appendChild(i),document.addEventListener("pointermove",lg),sr=c,vt(),Ly()},Dc=()=>{Hc?.(),sr&&(Hs&&(ag=Date.now()+150),document.removeEventListener("pointermove",lg),sr.remove(),sr=null);let i=wi;if(i){Ei?.();for(let c of xy())c&&i.contains(c)&&me.insertBefore(c,i);i.remove(),wi=null,Rs=null,Fa=null,xi=null}},_y=i=>{Na=i,i.id=Gu,i.style.flex="1 1 auto",i.style.minHeight="0"},dg=i=>{_y(i),(ce!=="rail"||$t)&&By(),ce!=="rail"?JA(i):$t?fM(i):Oy(i)},Nc=()=>{if(Va(),Gy(),!oe||!at)return;let i=Xu();if(i===ce)return;let c=document.activeElement,g=c instanceof HTMLElement&&(at.element.contains(c)||Vn?.contains(c)===!0)?c:null;Dc(),at.element.remove(),at.view.setHeaderPlacement("inline"),ce=i,at.view.setPresentation(i),at.view.setCollapsed(qa()),at.requestRender(),at.element.isConnected||dg(at.element),g?.isConnected?g.focus():Fc(),Kt(),In(),Br()},Dy=(i,c)=>Vn?.querySelector(c)??i.querySelector(c),Fc=()=>{let i=at?.element??Na;if(!i)return;let c=Dy(i,'[data-persona-history-focus="close"],[data-persona-history-focus="collapse"]');if(c){c.focus();return}let g=Dy(i,".persona-history-title")??i;g.tabIndex=-1,g.focus()},Ka=async i=>{if(!Ho()||oe)return;let c=zn;if(!c)return;if(!$t&&Mi()&&og()){Va();return}$c();let g=++Da;Tc=i?.returnSurface??"conversation",zu=i?.invoker??fn;let f=Mi()&&!$t;f&&(_c+=1,Va(),mM());let b;try{b=await Af()}catch{Ic(Je.openHistoryLabel),f&&(_c-=1,g===Da&&(By(),Va()));return}if(f&&(_c-=1),g!==Da||oe)return;Ec={scope:Yu()},ce=Xu(),oe=!0;let w=ce==="panel"&&o.layout?.showHeader!==!1&&ke.style.display!=="none"?"external":"inline",O=o.features?.history?.rowAvatar,z=ig(),q=z?{hint:z.hint,aria:z.aria}:null,V={provider:c,context:Ec,targetId:my(),presentation:ce,collapsible:Wc(),collapsed:qa(),railSide:Si(),renderRailHeader:o.features?.history?.rail?.renderHeader,railBrand:oM(),onToggleCollapse:My,...q?{collapseShortcut:q}:{},headerPlacement:w,showScopeStatus:o.features?.history?.showScopeStatus!==!1,showDelete:o.features?.history?.showDelete!==!1,showDeleteAll:o.features?.history?.showDeleteAll!==!1,...o.features?.history?.listActions?.length?{listActions:o.features.history.listActions}:{},rowAvatar:O===!1?!1:typeof O=="string"?O:o.launcher?.iconUrl,activeConversationId:P.getActiveConversationId(),...o.features?.history?.grouping?{grouping:o.features.history.grouping}:{},...o.features?.history?.copy?{copy:o.features.history.copy}:{},...o.features?.history?.pageSize!==void 0?{pageSize:o.features.history.pageSize}:{},onSelect:J=>ug(J,{focusComposer:!0}).catch(()=>{}),onActiveConversationChange:J=>Ws(J),attachTooltip:nn,onStartNew:()=>gg({focusComposer:!0}),onClose:()=>Rn(),onRequestDeleteConversation:J=>Ky(J),onRequestClearHistory:()=>wM(),...c.resetDevice?{onRequestResetIdentity:()=>xM()}:{}};at=_x({plugins:a,config:o,getPresentation:()=>ce??"panel",getReturnSurface:()=>Tc,close:()=>Rn(),createView:({slots:J,renderDom:ae,onModelChange:he,railSections:Ze})=>(Is=b.createHistoryView({...V,railSections:sM(Ze),slots:J,renderDom:ae,onModelChange:he,onAnnounce:Ic}),Is),onElementChanged:(J,ae)=>{if(!ae?.isConnected)return dg(J);_y(J),ae.replaceWith(J),Zu()}}),at.view.setNewConversationRequired(Pc.recovery==="new_conversation_required"),i?.focus!==!1&&(ce!=="rail"||i?.keyboard===!0)&&Fc(),Kt(),In(),Br(),A.emit("history:opened",{presentation:ce,returnSurface:Tc,timestamp:Date.now()})},$c=()=>{},Rn=i=>{if(!oe)return;Da+=1;let c=Tc,g=zu,f=at,b=i?.restoreFocus!==!1;oe=!1;let w=!1,O=null,z=()=>{if(!w){if(w=!0,$c=()=>{},O!==null&&clearTimeout(O),$t=!1,za(),Dc(),f?.dispose(),f?.view.destroy(),f?.element.remove(),at===f&&(at=null,Is=null,Na=null,ce=null,Ec=null,zu=null),Kt(),In(),Br(),b){let V=g??fn;V?.isConnected?V.focus():Es()}A.emit("history:closed",{returnSurface:c,timestamp:Date.now()})}},q=f&&f.element===f.view.element?f.view.playExit():null;if(!q){z();return}$c=z,O=setTimeout(z,zA),q.then(z)},Ny=i=>{if(!(i.key!=="Escape"||!oe||!at)){if(ce==="rail"){let c=i.target;if(!(c instanceof Node)||!(at.element.contains(c)||$t&&rr?.contains(c)===!0))return}i.preventDefault(),i.stopPropagation(),Rn()}};me.addEventListener("keydown",Ny),we.push(()=>me.removeEventListener("keydown",Ny));let Uc=null,Fy=!1,Ga=()=>{if(!xr)return;let i=o.layout?.header?.titleSource==="conversation",c=i&&Uc?.trim()||null;xr.textContent=c??o.launcher?.title??"Chat Assistant";let g=xr.closest(".persona-combo-btn");if(!g)return;let f=!i||P.getActiveConversationId()!==null;g.setAttribute("data-persona-menu-locked",f?"false":"true"),g.setAttribute("aria-haspopup",f?"true":"false"),f||g.setAttribute("aria-expanded","false"),g.style.cursor=f?"pointer":"default";let b=g.querySelector("svg");b&&(b.style.display=f?"":"none")},hM=i=>{i!==Uc&&(Uc=i,Ga())},Ws=i=>{Fy=i?.starred===!0,hM(i&&i.title.trim()||null),Ga()};Ga(),me.addEventListener("persona:title-menu-builtin",i=>{let c=i.detail?.actionId,g=P.getActiveConversationId();g&&(c==="delete"?Ky(g):c==="star"&&P.canUpdateConversations()&&mg(g,{starred:!Fy}).catch(()=>{}))});let jc=0,yM=250,qc=null,zc=()=>{qc&&clearTimeout(qc),qc=null};we.push(zc);let $y=()=>{zc();let i=Ts;i&&(Oa=!0,i.hidden=!1,Re.style.display="none",Ba())},Vc=()=>{jc+=1,zc(),Ts&&(Ts.remove(),Ts=null,Oa=!1,Re.style.removeProperty("display"),eo(We,!1),Ba())},bM=()=>{try{if(window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches)return;Re.animate([{opacity:0},{opacity:1}],{duration:150,easing:"ease-out"})}catch{}},pg=(i,c)=>Y("div",{className:bn("persona-conversation-loading-bubble",c&&"persona-conversation-loading-bubble--trailing"),attrs:{"aria-hidden":"true"},style:{width:i}}),Uy=()=>Y("div",{className:"persona-conversation-loading-body"},pg("58%",!1),pg("72%",!0),pg("44%",!1)),jy=i=>{Ts?.remove(),Ts=i,i.hidden=!Oa,se.insertBefore(i,Re),zc(),Oa||(qc=setTimeout($y,yM)),eo(We,!0)},vM=()=>{let i={config:o,streaming:!1,location:"conversation-open",defaultRenderer:Uy},c=null,g=a.find(f=>f.renderLoadingIndicator);g?.renderLoadingIndicator&&(c=g.renderLoadingIndicator(i)),c===null&&o.loadingIndicator?.render&&(c=o.loadingIndicator.render(i)),jy(Y("div",{className:"persona-conversation-loading",attrs:{role:"status","aria-label":Je.openConversationLoadingLabel}},c??Uy()))},CM=i=>{let c=()=>{ug(i,{focusComposer:!0}).catch(()=>{})},g=Ho()?()=>{Vc(),Ka()}:void 0,f=(z,q)=>{let V=Y("button",{className:"persona-conversation-loading-error-action",attrs:{type:"button"},text:z});return V.addEventListener("click",q),V},b=()=>Y("div",{className:"persona-conversation-loading-error-body"},Y("p",{className:"persona-conversation-loading-error-title",text:Je.openConversationErrorTitle}),Y("div",{className:"persona-conversation-loading-error-actions"},f(Je.openConversationRetryLabel,c),g?f(Je.openConversationBackLabel,g):null)),w=Object.freeze({conversationId:i,config:o,copy:Object.freeze({title:Je.openConversationErrorTitle,retryLabel:Je.openConversationRetryLabel,backLabel:Je.openConversationBackLabel}),retry:c,...g?{back:g}:{},defaultRenderer:b}),O=null;for(let z of a)if(z.renderHistoryOpenError){try{O=z.renderHistoryOpenError(w)}catch(q){console.warn("[persona] renderHistoryOpenError threw",q),O=null}if(O)break}jy(Y("div",{className:"persona-conversation-loading-error",attrs:{role:"alert"}},O??b())),$y()};A.on("history:closed",()=>{Ts&&eo(We,!0)});let ug=async(i,{focusComposer:c=!1}={})=>{let g=Ci(),f=!!at;at?.view.setActiveConversationId(i),Vc();let b=jc;vM(),oe&&(ce==="panel"||$t)&&Rn({restoreFocus:!1}),gi=!0;try{await P.openConversation(i,{scope:g})}catch(w){throw b===jc&&CM(i),w}finally{gi=!1}b===jc&&(Vc(),Ft.clear(),yo(),Ln(),Tu()||hc(),bM(),ir(),f||Ws(null),A.emit("history:conversationOpened",{conversationId:i,title:Uc,scope:g,timestamp:Date.now()}),c&&Es())},gg=async({focusComposer:i=!1}={})=>{Vc(),await P.startNewConversation({scope:Ci()}),Ws(null),Ft.clear(),yo(),Ln(),hc(),ir();let c=P.getActiveConversationId();at?.view.setActiveConversationId(c),A.emit("history:conversationStarted",{conversationId:c,timestamp:Date.now()}),oe&&(ce==="panel"||$t)&&Rn({restoreFocus:!1}),i&&Es()},mg=async(i,c)=>{let g=await P.updateConversation(i,{...c,...c.title!==void 0?{title:c.title.trim()}:{}});return at?.view.applyConversationSummary(g),!at&&i===P.getActiveConversationId()&&Ws(g),g},qy=async i=>{let c=Ci(),g=P.getActiveConversationId()===i;await P.deleteConversation(i,{scope:c}),at?.view.removeConversationSummary(i),g&&(Ws(null),Ft.clear(),yo(),Ln(),ir()),A.emit("history:conversationDeleted",{conversationId:i,scope:c,wasActive:g,timestamp:Date.now()})},zy=async i=>{let c=i?.scope??Ci(),g=i?.allTargets?null:i?.targetId??my(),f=await P.clearConversationHistory({...g?{targetId:g}:{},scope:c});return Ws(null),Ft.clear(),yo(),Ln(),ir(),A.emit("history:cleared",{deleted:f.deleted,scope:c,targetId:g,timestamp:Date.now()}),f},Vy=async()=>{if(!zn?.resetDevice)throw new Error("[Persona] resetHistoryIdentity() requires a history provider that can reset this device");let i=!1;try{i=(await P.resetHistoryDevice()).remoteRevocationConfirmed}finally{Ws(null),P.clearArtifacts(),Ft.clear(),$u=null,o.clearStoredSessionId?.(),o.clearStoredConversationId?.(),le={},Me.syncFromMetadata(),Q?.clear&&gc(()=>Q.clear(),"[AgentWidget] Failed to clear storage adapter:"),yo(),Ln(),ir(),Rn({restoreFocus:!1}),Es(),be||It?.launcher.element.focus()}return Ic(i?Je.identityResetNotice:Je.identityResetUnconfirmedNotice),A.emit("history:identityReset",{remoteRevocationConfirmed:i,timestamp:Date.now()}),{remoteRevocationConfirmed:i}},fg=()=>ko?Te:me,Ky=async i=>await Rp({host:fg(),title:Je.deleteConversationConfirmTitle,description:Je.deleteConversationConfirm,confirmLabel:Je.deleteConversationConfirmLabel,cancelLabel:Je.confirmCancelLabel})?(await qy(i),"deleted"):"cancelled",wM=async()=>{let i=Ci()==="verified-user";return await Rp({host:fg(),title:Je.clearHistoryConfirmTitle,description:i?Je.clearHistoryVerifiedConfirm:Je.clearHistoryConfirm,confirmLabel:Je.clearHistoryConfirmLabel,cancelLabel:Je.confirmCancelLabel})?(await zy(),"cleared"):"cancelled"},xM=async()=>{if(!await Rp({host:fg(),title:Je.resetIdentityConfirmTitle,description:Je.resetIdentityConfirm,confirmLabel:Je.resetIdentityConfirmLabel,cancelLabel:Je.confirmCancelLabel}))return{outcome:"cancelled"};let{remoteRevocationConfirmed:c}=await Vy();return{outcome:"reset",remoteRevocationConfirmed:c}},no=M("button","persona-history-earlier");no.type="button",no.textContent=Je.showEarlierMessagesLabel,no.setAttribute("data-persona-history-earlier",""),Object.assign(no.style,{alignSelf:"center",minHeight:"44px",padding:"0 16px",borderRadius:"999px",border:"1px solid var(--persona-border, rgba(0,0,0,0.12))",background:"transparent",color:"inherit",font:"inherit",cursor:"pointer",flexShrink:"0"});let ir=()=>{if(!(Ho()&&!!Pc.nextMessageCursor&&!!P.getActiveConversationId())){no.remove();return}no.textContent=Je.showEarlierMessagesLabel,no.parentNode!==se&&se.insertBefore(no,se.firstChild)};no.addEventListener("click",()=>{let i=P.getActiveConversationId(),c=Pc.nextMessageCursor;if(!i||!c||no.disabled)return;no.disabled=!0;let g=se.scrollHeight,f=se.scrollTop;P.loadOlderMessages(i,c,{scope:Ci()}).then(()=>{se.scrollTop=f+(se.scrollHeight-g),In()}).catch(()=>{}).finally(()=>{no.disabled=!1,ir()})});let SM=()=>{let i=Gs({ariaLabel:Je.openHistoryLabel,iconName:"history",wrapperClassName:"persona-relative persona-inline-flex persona-items-center persona-justify-center",extraClassName:"persona-history-toggle",attrs:{"data-persona-history-toggle":""}});return i.button.addEventListener("click",c=>{if(!(!Ho()||gy())){if(oe){Rn();return}Ka({invoker:i.button,keyboard:c.detail===0})}}),i},Gy=()=>{if(!Ho()){Ro?.remove(),fn=null,Ro=null;return}if(Ro&&!Ro.isConnected&&(fn=null,Ro=null),!fn&&ke){let f=SM();fn=f.button,Ro=f.wrapper;let b=Ue.clearChatButtonWrapper||Ue.closeButtonWrapper;b?.parentNode&&ke.contains(b)?b.parentNode.insertBefore(Ro,b):ke.appendChild(Ro)}if(!fn||!Ro)return;let i=Mi()||oe&&ce==="rail";if(Ro.style.display=i?"none":"",i){document.activeElement===fn&&Fc();return}let c=gy();fn.disabled=c,fn.setAttribute("aria-disabled",c?"true":"false");let g=c?Je.openHistoryBusyLabel:Je.openHistoryLabel;fn.setAttribute("aria-label",g),(o.features?.history?.presentation??"panel")==="panel"?(fn.removeAttribute("aria-expanded"),fn.removeAttribute("aria-controls")):(fn.setAttribute("aria-expanded",oe?"true":"false"),fn.setAttribute("aria-controls",Gu))},Kc=!1,AM=()=>{let i=Ue.clearChatButton;if(i){if(Ho()){Kc||(Ku=i.getAttribute("aria-label")??"",Kc=!0),i.setAttribute("aria-label",Je.newConversationLabel),i.removeAttribute("title");return}Kc&&(Kc=!1,Ku&&i.setAttribute("aria-label",Ku))}},Br=()=>{Je=Tf(o.features?.history?.copy),Gy(),Va(),AM(),ir()};Et=Br,Ve=i=>{Pc=i,at?.view.setNewConversationRequired(i.recovery==="new_conversation_required"),Wa(i.sendBlocked||Un),ir()},_t=i=>{(i.code==="history_continuity_reset"||i.code==="conversation_deleted_recovered")&&(Ft.clear(),yo(),Ln()),Ic(i.message),at?.view.refresh()},by(),Br(),we.push(()=>{kc?.(),Lc?.(),Da+=1,$c(),at?.dispose(),at?.view.destroy(),at=null}),o.clientToken&&P.initClientSession().then(()=>{if(Ho())return P.reconcileBootConversation({scope:Yu()})}).then(()=>{ir()}).catch(i=>{o.debug&&console.warn("[AgentWidget] Pre-init client session failed:",i)}),(Bt||o.onSSEEvent)&&P.setSSEEventCallback((i,c)=>{o.onSSEEvent?.(i,c),U(i,c)});let Qy=()=>{o.resume&&typeof o.reconnectStream=="function"&&P.resumeFromHandle(o.resume)};re?re.then(i=>{if(i){if(i.metadata&&(le=Pf(i.metadata),Me.syncFromMetadata()),i.messages?.length){gi=!0;try{P.hydrateMessages(i.messages)}finally{gi=!1}Cc()}i.artifacts?.length&&P.hydrateArtifacts(i.artifacts,i.selectedArtifactId??null),Vh(i.draft)}}).catch(i=>{typeof console<"u"&&console.error("[AgentWidget] Failed to hydrate stored state:",i)}).finally(()=>{Hu=!0,E(),Qy()}):(Vh(W),Qy());let MM=()=>{!Se()||be||!(o.launcher?.composerBar?.expandOnSubmit??!0)||gt(!0,"auto")},EM=(i,c)=>i?c?{refs:[...i.refs,...c.refs],finalize:async()=>{let[g,f]=await Promise.allSettled([i.finalize(),c.finalize()]),b=[];return g.status==="fulfilled"?b.push(g.value):console.warn("[Persona] a mention bundle failed to finalize; sending without it",g.reason),f.status==="fulfilled"?b.push(f.value):console.warn("[Persona] a mention bundle failed to finalize; sending without it",f.reason),PL(b)}}:i:c,hg=()=>{let c=pe.getInlineMessageFields?.();return c&&c.contentSegments.some(f=>f.kind==="mention")?c.contentSegments:void 0},ar=!1,Os=null,Gc=()=>{pe.value="",pe.style.height="auto",Eo(),Ya()},yg="data-persona-composer-notice",Ti=null;function TM(i){Gl(i),!(Se()||!it)&&(it.hasAttribute(da)||(it.setAttribute(yg,""),it.setAttribute("role","status"),it.setAttribute("aria-live","polite"),it.textContent=i,Ti&&clearTimeout(Ti),Ti=setTimeout(()=>{if(Ti=null,!!it?.hasAttribute(yg)&&(it.removeAttribute(yg),it.removeAttribute("role"),it.removeAttribute("aria-live"),p)){let c=P.getStatus();ln(it,mn(c),o.statusIndicator??{},c)}},4e3)))}function PM(){let i=Ae.getState().pendingSubmission;i&&(si(void 0),pe&&(pe.value=i.text,pe.dispatchEvent(new Event("input",{bubbles:!0})),Eo()),i.options.selectedModelId&&(Ae.setSelectedModelId(i.options.selectedModelId),Ar?.repaint()),i.options.activeModeIds?.length&&Jl(i.options.activeModeIds),i.options.quote&&To(i.options.quote),pe?.focus())}let kM=i=>{typeof console<"u"&&console.error("[AgentWidget] composer.onBeforeSend failed; the draft was preserved:",i)},Yy=(i={})=>{let c=(i.overrideText??pe?.value??"").trim();return i.resolveInlineCommand&&c?(Dt?.takeInlineCommand(c)??Promise.resolve(null)).then(g=>Xy(i,c,g)):Xy(i,c,null)},Xy=(i,c,g)=>{if(g?.kind==="action"){Gc(),Dt?.clear(),cs();return}let f=g?.kind==="server"?g.mentions:null,b=g?.kind==="prompt"?g.sendText:c,w=i.pending?.contentParts,O=(et?.hasAttachments()??!1)||(w?.length??0)>0;if(!ZC({text:b,hasAttachments:O,attachmentsReady:et?.isReady()??!0,hasMentions:Dt?.hasMentions()??!1,hasServerMentions:!!f,inputDisabled:Hr(),sendDisabled:Ms()}))return;let z=P.isStreaming()?au():"block";if(z==="defer-one"&&!i.pending){if(Ae.getState().pendingSubmission){TM("One message is already queued. Edit or remove it first.");return}LM({intent:i,sendText:b,serverMentions:f});return}let q={text:b,mentionRefs:[...Dt?.getMentionRefs()??[],...f?.refs??[]],contentSegments:g?.kind==="prompt"?void 0:hg(),options:{...Ae.getState().selectedModelId&&{selectedModelId:Ae.getState().selectedModelId},...Ae.getState().activeModeIds.length>0&&{activeModeIds:[...Ae.getState().activeModeIds]},...Ae.getState().quote&&{quote:{...Ae.getState().quote}}},viaVoice:i.viaVoice};i.pending&&(q.options={...i.pending.options},q.contentSegments=i.pending.contentSegments,q.mentionRefs=[...i.pending.mentionRefs],q.viaVoice=i.pending.viaVoice);let V=()=>{if(w?.length)return[...w];if(!et?.hasAttachments())return;let mt=[...et.getContentParts()];return q.text&&mt.push(ao(q.text)),mt};q.contentParts=V();let J=()=>{bs(),MM();let mt=Dt?.collectForSubmit()??null,Zt=EM(mt,f),Ut=V();i.consumeDraft!==!1&&Gc();let Ht={selectedModelId:q.options.selectedModelId,activeModeIds:q.options.activeModeIds},cn=z==="interrupt";cn&&P.cancel(),P.sendMessage(q.text,{contentParts:Ut,mentions:Zt??void 0,contentSegments:q.contentSegments,viaVoice:q.viaVoice,composerOptions:Ht,...q.options.quote&&{quote:q.options.quote},...cn&&{interrupt:!0}}),et?.hasAttachments()&&et.clearAttachments(),mt&&Dt?.clear(),cs();let tt=Ae.getState().activeModeIds,dn=NC(tt,o.composer?.modes);dn.length!==tt.length&&Jl(dn),Ae.getState().quote&&To(void 0),fc(),uu.release(),go()},ae=o.composer?.onBeforeSend;if(!ae){J();return}let he=new AbortController;Os=he;let Ze=mt=>{if(Os=null,mt.status==="error"){kM(mt.error);return}mt.status==="proceed"&&J()},pt=ew(ae,q,he.signal);if(!(pt instanceof Promise)){Ze(pt);return}return Ae.setPreparing(!0),pt.then(Ze).finally(()=>Ae.setPreparing(!1))};function LM(i){let c=Ae.getState(),g=et?.hasAttachments()??!1,f=g?[...et.getContentParts()]:[];g&&i.sendText&&f.push(ao(i.sendText));let b=Am({text:i.sendText,contentParts:f.length?f:void 0,mentionRefs:[...Dt?.getMentionRefs()??[],...i.serverMentions?.refs??[]],contentSegments:hg(),options:{...c.selectedModelId&&{selectedModelId:c.selectedModelId},...c.activeModeIds.length>0&&{activeModeIds:[...c.activeModeIds]},...c.quote&&{quote:{...c.quote}}},viaVoice:i.intent.viaVoice});si(b),i.intent.consumeDraft!==!1&&Gc(),g&&et.clearAttachments(),Dt?.clear(),cs(),c.quote&&To(void 0),fc(),uu.release(),go(),Gl("Message queued. It sends when the response finishes.")}function IM(){let i=Ae.getState().pendingSubmission;i&&(si(void 0),Yc(i.text,{consumeDraft:!1,pending:i}))}function RM(i){if(o.messageActions?.showEdit!==!0)return;let c=P.getMessages().find(g=>g.id===i);!c||!tm(c)||ys!==i&&(bs(),ys=i,Pr=qC({messageId:i,initialText:c.content,onSave:g=>HM(i,g),onCancel:()=>bs()}),Ft.delete(i),Zn(Re,P.getMessages(),ct),Pr.focus())}function HM(i,c){let g=Pr;if(ys=null,Pr=null,g?.destroy(),Ft.delete(i),!P.resubmitFrom(i,{reason:"edit",replacement:{text:c,mentionRefs:[],options:{}}})){Zn(Re,P.getMessages(),ct);return}In()}function WM(i){if(P.isStreaming())return;let c=em(P.getMessages(),i);c&&(bs(),P.resubmitFrom(c,{reason:"retry"})&&In())}Zl={regenerate:WM,edit:RM,quote:i=>{let g=P.getMessages().find(f=>f.id===i)?.content?.trim();g&&(To({text:g,messageId:i}),pe?.focus())}};let Qa=async i=>{if(!ar){ar=!0;try{await Yy({resolveInlineCommand:!0,...i})}finally{ar=!1}}};function Qc(i){Ms()||(Gc(),Yc(i,{consumeDraft:!1}))}let Yc=(i,c)=>{if(ar)return;ar=!0;let g=()=>{ar=!1};try{let f=Yy({...c,overrideText:i});f instanceof Promise?f.finally(g):g()}catch(f){throw g(),f}},OM=i=>{if(i.preventDefault(),P.isStreaming()){P.cancel(),ft?.reset(),R?.update();return}ar||Qa()},BM=()=>o.features?.composerHistory!==!1,bg={...Hm},vg=!1,Ya=()=>{bg={...Hm}},_M=()=>P.getMessages().filter(i=>i.role==="user").map(i=>i.content??"").filter(i=>i.length>0),DM=i=>{if(!pe)return;vg=!0,pe.value=i,pe.dispatchEvent(new Event("input",{bubbles:!0})),vg=!1;let c=pe.value.length;pe.setSelectionRange(c,c)},NM=i=>{vg||(i.isComposing||Dt?.handleInput(i.inputType??void 0),Ya())},FM=()=>({submitKey:o.composer?.submitKey,insertNewlineOnTouchEnter:o.composer?.insertNewlineOnTouchEnter,coarsePointer:yl(pe)}),$M=i=>{if(pe&&!Hr()&&!(!i.isComposing&&Dt?.handleKeydown(i))){if(BM()&&(i.key==="ArrowUp"||i.key==="ArrowDown")&&!i.shiftKey&&!i.metaKey&&!i.ctrlKey&&!i.altKey&&!i.isComposing){let c=pe.selectionStart===0&&pe.selectionEnd===0,g=bw({direction:i.key==="ArrowUp"?"up":"down",history:_M(),currentValue:pe.value,atStart:c,state:bg});if(bg=g.state,g.handled){i.preventDefault(),g.value!==void 0&&DM(g.value);return}}if(SC(i,FM())){if(P.isStreaming()){if(i.preventDefault(),au()==="block"||ar||Ms())return;Ya(),Qa();return}if(ar){i.preventDefault();return}if(Ms()){i.preventDefault();return}Ya(),i.preventDefault(),Pe.click()}}},Jy=i=>{if(!(i.key!=="Escape"||i.isComposing)&&i.composedPath().includes(me)){if(Os){Os.abort(),Os=null,i.preventDefault(),i.stopImmediatePropagation();return}P.isStreaming()&&(P.cancel(),ft?.reset(),R?.update(),Ya(),i.preventDefault(),i.stopImmediatePropagation())}},UM=async i=>{if(o.attachments?.enabled!==!0||!et||Hr())return;let c=AL(i.clipboardData);c.length!==0&&(i.preventDefault(),await et.handleFiles(c))},oo=null,Wo=!1,Pi=null,xt=null,Cg=()=>o.voiceRecognition?.completionBehavior==="review";function Bs(i){ie?.setAttribute("data-state",i),i==="recording"?qM():Ag()}let Zy="--persona-voice-level",wg=.5,ki=null,xg=-1,Xc=0,eb=()=>{let i=[],c=Fn??ie?.parentElement??null;return c&&i.push(c),We&&i.push(We),i},Sg=i=>{let c=Math.round(Math.max(0,Math.min(1,i))*100)/100;if(c!==xg){xg=c;for(let g of eb())g.style.setProperty(Zy,String(c))}},jM=()=>{xg=-1,Xc=0;for(let i of eb())i.style.removeProperty(Zy)};function qM(){if(ki!==null)return;if(typeof requestAnimationFrame!="function"){Sg(p?P.getVoiceLevel()??wg:wg);return}let i=()=>{ki=requestAnimationFrame(i);let c=p?P.getVoiceLevel():null;if(c===null){Sg(wg);return}Xc+=(c-Xc)*.3,Sg(Xc)};ki=requestAnimationFrame(i)}function Ag(){ki!==null&&(cancelAnimationFrame(ki),ki=null),jM()}let tb=()=>typeof window>"u"?null:window.webkitSpeechRecognition||window.SpeechRecognition||null,Jc=(i="user")=>{if(Wo||P.isStreaming())return;let c=tb();if(!c)return;oo=new c;let g=o.voiceRecognition??{},f=g.pauseDuration??2e3;oo.continuous=g.provider?.browser?.continuous??!0,oo.interimResults=!0,oo.lang=g.provider?.browser?.language??"en-US";let b=pe.value;oo.onresult=w=>{let O="",z="";for(let V=0;V<w.results.length;V++){let J=w.results[V],ae=J[0].transcript;J.isFinal?O+=ae+" ":z=ae}let q=b+O+z;pe.value=q,Eo(),Pi&&clearTimeout(Pi),(O||z)&&(Pi=window.setTimeout(()=>{if(pe.value.trim()&&oo&&Wo){if(_r(),Cg())return;Qa({viaVoice:!0})}},f))},oo.onerror=w=>{w.error!=="no-speech"&&_r()},oo.onend=()=>{if(Wo){let w=pe.value.trim();!Cg()&&w&&w!==b.trim()&&Qa({viaVoice:!0}),_r()}};try{if(oo.start(),Wo=!0,Ge.active=!0,i!=="system"&&(Ge.manuallyDeactivated=!1),er(i),ho(),go(),ie){let w=o.voiceRecognition??{};xt={backgroundColor:ie.style.backgroundColor,color:ie.style.color,borderColor:ie.style.borderColor,iconName:w.iconName??"mic",iconSize:parseFloat(w.iconSize??"")||vn};let O=w.recordingBackgroundColor,z=w.recordingIconColor,q=w.recordingBorderColor;if(ie.classList.add("persona-voice-recording"),Bs("recording"),ie.style.backgroundColor=O??"var(--persona-voice-recording-bg, #ef4444)",ie.style.color=z??"var(--persona-voice-recording-indicator, #ffffff)",z){let V=ie.querySelector("svg");V&&V.setAttribute("stroke",z)}q&&(ie.style.borderColor=q),ie.setAttribute("aria-label","Stop voice recognition")}}catch{_r("system")}},_r=(i="user")=>{if(Wo){if(Wo=!1,Pi&&(clearTimeout(Pi),Pi=null),oo){try{oo.stop()}catch{}oo=null}if(Ge.active=!1,er(i),ho(),go(),ie){if(ie.classList.remove("persona-voice-recording"),Bs("idle"),xt){ie.style.backgroundColor=xt.backgroundColor,ie.style.color=xt.color,ie.style.borderColor=xt.borderColor;let c=ie.querySelector("svg");c&&c.setAttribute("stroke",xt.color||"currentColor"),xt=null}ie.setAttribute("aria-label","Start voice recognition")}}},Mg=()=>{if(!ie||xt)return;let i=o.voiceRecognition??{};xt={backgroundColor:ie.style.backgroundColor,color:ie.style.color,borderColor:ie.style.borderColor,iconName:i.iconName??"mic",iconSize:parseFloat(i.iconSize??"")||vn}},Eg=(i,c)=>{if(!ie)return;let g=ie.querySelector("svg");g&&g.remove();let f=xt?.iconSize??(parseFloat(o.voiceRecognition?.iconSize??"")||vn),b=ge(i,f,c,1.5);b&&ie.appendChild(b)},Zc=()=>{ie&&ie.classList.remove("persona-voice-recording","persona-voice-processing","persona-voice-speaking")},Li=()=>{if(!ie)return;Mg();let i=o.voiceRecognition??{},c=i.recordingBackgroundColor,g=i.recordingIconColor,f=i.recordingBorderColor;if(Zc(),ie.classList.add("persona-voice-recording"),Bs("recording"),ie.style.backgroundColor=c??"var(--persona-voice-recording-bg, #ef4444)",ie.style.color=g??"var(--persona-voice-recording-indicator, #ffffff)",g){let b=ie.querySelector("svg");b&&b.setAttribute("stroke",g)}f&&(ie.style.borderColor=f),ie.setAttribute("aria-label","Stop voice recognition")},zM=()=>{if(!ie)return;Mg();let i=o.voiceRecognition??{},c=P.getVoiceInterruptionMode(),g=i.processingIconName??"loader",f=i.processingIconColor??xt?.color??"",b=i.processingBackgroundColor??xt?.backgroundColor??"",w=i.processingBorderColor??xt?.borderColor??"";Zc(),ie.classList.add("persona-voice-processing"),Bs("processing"),ie.style.backgroundColor=b,ie.style.borderColor=w;let O=f||"currentColor";ie.style.color=O,Eg(g,O),ie.setAttribute("aria-label","Processing voice input"),c==="none"&&(ie.style.cursor="default")},VM=()=>{if(!ie)return;Mg();let i=o.voiceRecognition??{},c=P.getVoiceInterruptionMode(),g=c==="cancel"?"square":c==="barge-in"?"mic":"volume-2",f=i.speakingIconName??g,b=i.speakingIconColor??(c==="barge-in"?i.recordingIconColor??xt?.color??"":xt?.color??""),w=i.speakingBackgroundColor??(c==="barge-in"?i.recordingBackgroundColor??"var(--persona-voice-recording-bg, #ef4444)":xt?.backgroundColor??""),O=i.speakingBorderColor??(c==="barge-in"?i.recordingBorderColor??"":xt?.borderColor??"");Zc(),ie.classList.add("persona-voice-speaking"),Bs("speaking"),ie.style.backgroundColor=w,ie.style.borderColor=O;let z=b||"currentColor";ie.style.color=z,Eg(f,z);let q=c==="cancel"?"Stop playback and re-record":c==="barge-in"?"Speak to interrupt":"Agent is speaking";ie.setAttribute("aria-label",q),c==="none"&&(ie.style.cursor="default"),c==="barge-in"&&ie.classList.add("persona-voice-recording")},lr=()=>{ie&&(Zc(),Bs("idle"),xt&&(ie.style.backgroundColor=xt.backgroundColor??"",ie.style.color=xt.color??"",ie.style.borderColor=xt.borderColor??"",Eg(xt.iconName,xt.color||"currentColor"),xt=null),ie.style.cursor="",ie.setAttribute("aria-label","Start voice recognition"))},Tg=()=>{if(!Hr()){if(o.voiceRecognition?.provider?.type==="runtype"){let i=P.getVoiceStatus(),c=P.getVoiceInterruptionMode();if(c==="none"&&(i==="processing"||i==="speaking"))return;if(c==="cancel"&&(i==="processing"||i==="speaking")){P.stopVoicePlayback();return}if(P.isBargeInActive()){P.stopVoicePlayback(),P.deactivateBargeIn().then(()=>{Ge.active=!1,Ge.manuallyDeactivated=!0,ho(),er("user"),lr()});return}P.toggleVoice().then(()=>{Ge.active=P.isVoiceActive(),Ge.manuallyDeactivated=!P.isVoiceActive(),ho(),er("user"),P.isVoiceActive()?Li():lr()});return}if(Wo){let i=pe.value.trim();Ge.manuallyDeactivated=!0,ho(),_r("user"),i&&!Cg()&&Qa()}else Ge.manuallyDeactivated=!1,ho(),Jc("user")}};lu=Tg,ie&&we.push(()=>{o.voiceRecognition?.provider?.type==="runtype"?(P.isVoiceActive()&&P.toggleVoice(),lr()):_r("system")});let KM=A.on("assistant:complete",()=>{Ae.getState().pendingSubmission&&setTimeout(()=>{P.isStreaming()||IM()},0)});we.push(KM);let GM=A.on("assistant:complete",()=>{jh&&(Ge.active||Ge.manuallyDeactivated||jh==="assistant"&&!Ge.lastUserMessageWasVoice||setTimeout(()=>{!Ge.active&&!Ge.manuallyDeactivated&&(o.voiceRecognition?.provider?.type==="runtype"?P.toggleVoice().then(()=>{Ge.active=P.isVoiceActive(),er("auto"),P.isVoiceActive()&&Li()}):Jc("auto"))},600))});we.push(GM);let QM=A.on("action:resubmit",()=>{setTimeout(()=>{P&&!P.isStreaming()&&P.continueConversation()},100)});we.push(QM);let nb=()=>{gt(!be,"user")},It=null,hn=null;if(ye&&!Se()){let{instance:i,element:c}=af({config:o,plugins:a,onToggle:nb});It=i,i||(hn=c)}It?e.appendChild(It.element):hn&&e.appendChild(hn),Ha(),pi(),Sc(),Du(),Wa(P.isStreaming()),Tu()||($n()==="follow"?Ir(!0):hc()),fA(),lt&&(!ye||Se()?setTimeout(()=>Es(),0):be&&setTimeout(()=>Es(),200));let _s=null,ob=()=>{_s&&(_s.disconnect(),_s.observe(We),_s.observe(me))},Xa=()=>{if(Se()){ls(),Ha();return}let i=Mt(o),c=o.launcher?.sidebarMode??!1,g=e.ownerDocument.defaultView??window,f=o.launcher?.mobileFullscreen??!0,b=o.launcher?.mobileBreakpoint??640,w=g.innerWidth<=b,O=f&&w&&ye;try{if(O){ds(),xa=ac();return}let z=!1;$e&&($e=!1,ds(),z=!0);let q=ac();if(!z&&q!==xa&&(ds(),z=!0),xa=q,z&&oc(),!ye&&!i){Te.style.height="",Te.style.width="";return}if(!c&&!i){let J=o?.launcher?.width??o?.launcherWidth??Gn;Te.style.width=J,Te.style.maxWidth=J}ic(),Th()}finally{if(ls(),Xl(),Ha(),be&&ye){let q=(e.ownerDocument.defaultView??window).innerWidth<=(o.launcher?.mobileBreakpoint??640),V=o.launcher?.sidebarMode??!1,J=o.launcher?.mobileFullscreen??!0,ae=Mt(o)&&J&&q,he=V||J&&q&&ye||ae;if(he&&!Io){let Ze=e.getRootNode(),pt=Ze instanceof ShadowRoot?Ze.host:e.closest(".persona-host");pt&&!Lo&&(Lo=_m(pt,o.launcher?.zIndex??an)),Io=Dm(e.ownerDocument)}else he||(Lo?.(),Lo=null,Io?.(),Io=null)}}};Xa();let ed=e.ownerDocument.defaultView??window;if(ed.addEventListener("resize",Xa),we.push(()=>ed.removeEventListener("resize",Xa)),typeof ResizeObserver<"u"){_s=new ResizeObserver(()=>{Xl()}),ob(),we.push(()=>{_s?.disconnect(),_s=null});let i=new ResizeObserver(()=>{Nc()});i.observe(me),we.push(()=>i.disconnect())}ed.addEventListener("resize",Nc),we.push(()=>ed.removeEventListener("resize",Nc)),qn=se.scrollTop;let rb=zo(se),sb=()=>{let i=se.scrollTop,c=zo(se),g=c<rb;if(rb=c,!Sr()){qn=i,Kt();return}let{action:f,nextLastScrollTop:b}=Ew({following:jn.isFollowing(),currentScrollTop:i,lastScrollTop:qn,nearBottom:Ks(se,Jo),userScrollThreshold:pA,isAutoScrolling:kn||cc||g,pauseOnUpwardScroll:!0,pauseWhenAwayFromBottom:!1,resumeRequiresDownwardScroll:!0});if(qn=b,f==="resume"){yc()||Ln();return}f==="pause"&&Pa()};if(se.addEventListener("scroll",sb,{passive:!0}),we.push(()=>se.removeEventListener("scroll",sb)),typeof ResizeObserver<"u"){let i=new ResizeObserver(()=>{xA(),Dg(Re)});i.observe(Re),i.observe(se),we.push(()=>i.disconnect())}let ib=()=>{Sr()&&jn.isFollowing()&&yc()&&Pa()},ab=se.ownerDocument;ab.addEventListener("selectionchange",ib),we.push(()=>{ab.removeEventListener("selectionchange",ib)});let YM=new Set(["PageUp","PageDown","Home","End","ArrowUp","ArrowDown"]),lb=i=>{YM.has(i.key)&&(xs(),Gf()&&Sr()&&jn.isFollowing()&&Pa())},cb=i=>{i.target?.closest("a, button, [tabindex], input, textarea, select")&&(xs(),Gf()&&Sr()&&jn.isFollowing()&&Pa())};se.addEventListener("keydown",lb),se.addEventListener("focusin",cb),we.push(()=>{se.removeEventListener("keydown",lb),se.removeEventListener("focusin",cb)});let db=i=>{if(i.deltaY!==0&&xs(),!Sr())return;let c=Tw({following:jn.isFollowing(),deltaY:i.deltaY,nearBottom:Ks(se,Jo),resumeWhenNearBottom:!0});c==="pause"?Pa():c==="resume"&&!yc()&&Ln()};se.addEventListener("wheel",db,{passive:!0}),se.addEventListener("touchmove",xs,{passive:!0}),se.addEventListener("pointerdown",xs,{passive:!0}),we.push(()=>{se.removeEventListener("touchmove",xs),se.removeEventListener("pointerdown",xs)}),we.push(()=>se.removeEventListener("wheel",db)),Nt.addEventListener("click",()=>{yo(),se.scrollTop=se.scrollHeight,qn=se.scrollTop,Ln(),Ir(!0),Kt()}),we.push(()=>Nt.remove()),we.push(()=>{Gh(),yo()});let pb=()=>{qe&&(ms&&(qe.removeEventListener("click",ms),ms=null),Ie()?(qe.style.display="",ms=()=>{gt(!1,"user")},qe.addEventListener("click",ms)):qe.style.display="none")};pb(),(()=>{let{clearChatButton:i}=Ue;i&&i.addEventListener("click",()=>{if(Ho()){gg({focusComposer:!0}).catch(g=>{o.debug&&console.warn("[AgentWidget] New conversation failed:",g)});return}P.clearMessages(),Ft.clear(),Ln(),Vr(Ue.composerOverlay);try{localStorage.removeItem(ca),o.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${ca}`)}catch(g){console.error("[AgentWidget] Failed to clear default localStorage:",g)}if(o.clearChatHistoryStorageKey&&o.clearChatHistoryStorageKey!==ca)try{localStorage.removeItem(o.clearChatHistoryStorageKey),o.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${o.clearChatHistoryStorageKey}`)}catch(g){console.error("[AgentWidget] Failed to clear custom localStorage:",g)}let c=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});window.dispatchEvent(c),Q?.clear&&gc(()=>Q.clear(),"[AgentWidget] Failed to clear storage adapter:"),le={},Me.syncFromMetadata(),et?.clearAttachments(),fc(),si(void 0),To(void 0),bs(),kt?.clear(),ft?.reset(),R?.update()})})();let ub=[["keydown",$M],["input",NM],["input",Eo],["input",cs],["keyup",cs],["paste",UM],["focus",ZS]],gb=i=>{if(i)for(let[c,g]of ub)ot?.addListener(i,c,g)},XM=i=>{if(i)for(let[c,g]of ub)ot?.removeListener(i,c,g)},mb=()=>{ot&&(ot.addListener(ot.form,"submit",OM),ot.addListener(ot.footer,"click",cs),gb(pe),ie&&ot.addListener(ie,"click",Tg))};mb();let fb=()=>{Dt?.onComposerSwap((i,c)=>{XM(c),pe=i,ot&&(ot.input=i),gb(i),du(),Iu(),Eo()})};fb();let Pg=!1;function hb(){if(!Pg){Pg=!0;try{let i=pe?.value??"",c=We.ownerDocument??document,g=pe?c.activeElement===pe:!1;Ag(),ot?.destroy(),ot=null,Dt?.destroy(),Dt=null;let f=null,b=()=>(f=Se()?mp({config:o}):Xs({config:o}),f.footer),w=rh(b)??b();Dn.replaceComposer(w),We=Dn.composer.footer;let O=f!==null&&w===f.footer;ai=!O,Kf=O?f.setSendButtonMode:()=>{},oh(We),ih(We),ah(),lh(),ch(),fb(),dh(),pu(),ph(),mb();let z=gs.indexOf(Xo);Xo.destroy(),Xo=Rl(wr),z>=0&&(gs[z]=Xo),pe&&(pe.value=i),Eo(),cs(),Sc(),pi(),Wa(P.isStreaming()),Ge.active&&Bs("recording"),ds(),ob(),ls(),go(),wc(),g&&pe?.focus()}finally{Pg=!1}}}let Ja=e.ownerDocument??document;Ja.addEventListener("keydown",Jy,!0);let yb=()=>{Su()},bb=()=>{Ja.visibilityState==="hidden"&&Su()};typeof window<"u"&&(window.addEventListener("pagehide",yb),Ja.addEventListener("visibilitychange",bb),we.push(()=>{window.removeEventListener("pagehide",yb),Ja.removeEventListener("visibilitychange",bb)}));let vb="persona-attachment-drop-active",Za=0,kg=()=>{Za=0,me.classList.remove(vb)},Ii=()=>o.attachments?.enabled===!0&&et!==null&&!Hr(),Cb=i=>{!Dp(i.dataTransfer)||!Ii()||(Za++,Za===1&&me.classList.add(vb))},wb=i=>{!Dp(i.dataTransfer)||!Ii()||(Za--,Za<=0&&kg())},xb=i=>{!Dp(i.dataTransfer)||!Ii()||(i.preventDefault(),i.dataTransfer.dropEffect="copy")},Sb=i=>{if(!Dp(i.dataTransfer)||!Ii())return;i.preventDefault(),i.stopPropagation(),kg();let c=Array.from(i.dataTransfer.files??[]);c.length!==0&&et.handleFiles(c)},Dr=!0;me.addEventListener("dragenter",Cb,Dr),me.addEventListener("dragleave",wb,Dr),e.addEventListener("dragover",xb,Dr),e.addEventListener("drop",Sb,Dr);let td=e.ownerDocument,Ab=i=>{Ii()&&i.preventDefault()},Mb=i=>{Ii()&&i.preventDefault()};td.addEventListener("dragover",Ab),td.addEventListener("drop",Mb),we.push(()=>{ot?.destroy(),ot=null,Ag(),Po?.destroy(),Po=null,Qo?.destroy(),Qo=null,Mr?.destroy(),Mr=null,Er?.destroy(),Er=null,Ar=null,iu=null,Su(),Ta.destroy(),Ti&&clearTimeout(Ti),bs(),Os?.abort(),Os=null,et?.destroy(),et=null,Ae.destroy(),Ja.removeEventListener("keydown",Jy,!0),Dt?.destroy()}),we.push(()=>{me.removeEventListener("dragenter",Cb,Dr),me.removeEventListener("dragleave",wb,Dr),e.removeEventListener("dragover",xb,Dr),e.removeEventListener("drop",Sb,Dr),td.removeEventListener("dragover",Ab),td.removeEventListener("drop",Mb),kg()}),we.push(()=>{P.cancel()}),It?we.push(()=>{It?.destroy()}):hn&&we.push(()=>{hn?.remove()});let Rt={update(i){let c=o.toolCall,g=o.messageActions,f=o.layout?.messages,b=o.colorScheme,w=o.loadingIndicator,O=o.iterationDisplay,z=o.features?.showReasoning,q=o.features?.showToolCalls,V=o.features?.toolCallDisplay,J=o.features?.reasoningDisplay,ae=o.features?.streamAnimation?.type,he=o.features?.history?.enabled===!0,Ze=o.features?.history?.provider,pt=o.getIdentityProof,mt=o.clientToken,Zt=o.contextMentions;o=Lp({...o,features:s},i),s=o.features,o=_l(o),r(),yu(),Vs(e,o),Ol(e,o),Bl(e,o),vt(),fo(),o.colorScheme!==b&&Ph();let Ut=Dl.getForInstance(o.plugins);a.length=0,a.push(...Ut),Ey(),ye=o.launcher?.enabled??!0,Ne=o.launcher?.autoExpand??!1,rn=o.features?.showReasoning??!0,An=o.features?.showToolCalls??!0,os=o.features?.scrollToBottom??{};let Ht=$n();Mn=o.features?.scrollBehavior??{},Ht!==$n()&&(yo(),Ln()),Uh(),Xf(),Kt();let cn=Bt;if(Bt=o.features?.showEventStreamToggle??!1,Bt&&!cn){if(kt||(ee(),P.setSSEEventCallback((Z,Qe)=>{o.onSSEEvent?.(Z,Qe),U(Z,Qe)})),!nt&&ke){let Z=o.features?.eventStream?.classNames,Qe="persona-inline-flex persona-items-center persona-justify-center persona-rounded-full hover:persona-opacity-80 persona-cursor-pointer persona-border-none persona-bg-transparent persona-p-1"+(Z?.toggleButton?" "+Z.toggleButton:"");nt=M("button",Qe),nt.style.width="28px",nt.style.height="28px",nt.style.color=wn.actionIconColor,nt.type="button",nt.setAttribute("aria-label","Event Stream"),nt.title="Event Stream";let Xe=Ot(vr.Activity,"18px","currentColor",1.5);Xe&&nt.appendChild(Xe);let rt=Ue.clearChatButtonWrapper,At=Ue.closeButtonWrapper,sn=rt||At;sn&&sn.parentNode===ke?ke.insertBefore(nt,sn):ke.appendChild(nt),nt.addEventListener("click",()=>{te?ii():cu()})}}else!Bt&&cn&&(ii(),nt&&(nt.remove(),nt=null),kt?.clear(),gn?.destroy(),kt=null,gn=null,ft?.reset(),ft=null,po=null);if(o.launcher?.enabled===!1&&It&&(It.destroy(),It=null),o.launcher?.enabled===!1&&hn&&(hn.remove(),hn=null),o.launcher?.enabled!==!1&&!It&&!hn){let{instance:Z,element:Qe}=af({config:o,plugins:a,onToggle:nb});It=Z,Z||(hn=Qe),e.appendChild(Qe)}It&&It.update(o),Ga(),is&&o.launcher?.subtitle!==void 0&&(is.textContent=o.launcher.subtitle);let tt=o.layout?.header;if(tt?.layout!==Fe&&ke){let Z=tt?Zi(o,tt,{showClose:Ie(),onClose:()=>gt(!1,"user")}):fr({config:o,showClose:Ie(),onClose:()=>gt(!1,"user")});Dn.replaceHeader(Z),ke=Dn.header.element,Lt=Dn.header.iconHolder,xr=Dn.header.headerTitle,is=Dn.header.headerSubtitle,qe=Dn.header.closeButton,Fe=tt?.layout,Ga()}else if(tt){if(Lt&&(Lt.style.display=tt.showIcon===!1?"none":""),xr&&(xr.style.display=tt.showTitle===!1?"none":""),is&&(is.style.display=tt.showSubtitle===!1?"none":""),qe){let Z=Ie()&&tt.showCloseButton!==!1;qe.style.display=Z?"":"none"}if(Ue.clearChatButtonWrapper){let Z=tt.showClearChat;if(Z!==void 0){Ue.clearChatButtonWrapper.style.display=Z?"":"none";let{closeButtonWrapper:Qe}=Ue;Qe&&!Qe.classList.contains("persona-absolute")&&(Z?Qe.classList.remove("persona-ml-auto"):Qe.classList.add("persona-ml-auto"))}}}let cr=o.layout?.showHeader!==!1;ke&&(ke.style.display=cr?"":"none");let Oo=o.layout?.showFooter!==!1;We&&(We.style.display=Oo?"":"none"),ls(),Kt(),ye!==j?ye?gt(Ne,"auto"):(be=!0,Ha()):Ne!==Ce&&gt(Ne,"auto"),Ce=Ne,j=ye,Xa(),pb();let Be=JSON.stringify(o.toolCall)!==JSON.stringify(c),De=JSON.stringify(o.messageActions)!==JSON.stringify(g),ve=JSON.stringify(o.layout?.messages)!==JSON.stringify(f),ht=o.loadingIndicator?.render!==w?.render||o.loadingIndicator?.renderIdle!==w?.renderIdle||o.loadingIndicator?.showBubble!==w?.showBubble,Gt=o.iterationDisplay!==O,pn=(o.features?.showReasoning??!0)!==(z??!0)||(o.features?.showToolCalls??!0)!==(q??!0)||JSON.stringify(o.features?.toolCallDisplay)!==JSON.stringify(V)||JSON.stringify(o.features?.reasoningDisplay)!==JSON.stringify(J);(Be||De||ve||ht||Gt||pn)&&P&&(vs++,Zn(Re,P.getMessages(),ct));let Wt=o.features?.streamAnimation?.type;if(Wt!==ae&&Wt&&Wt!=="none"){let Z=vu(Wt,o.features?.streamAnimation?.plugins);Z&&kl(Z,e)}let Le=o.launcher??{},Qt=Le.headerIconHidden??!1,Yt=o.layout?.header?.showIcon,so=Qt||Yt===!1,Oe=Le.headerIconName,St=Le.headerIconSize??"48px";if(Lt){let Z=ke,Qe=Z?.querySelector(".persona-flex-col");if(so)Lt.style.display="none",Z&&Qe&&!Z.contains(Qe)&&Z.insertBefore(Qe,Z.firstChild);else{if(Lt.style.display="",Lt.style.height=St,Lt.style.width=St,Z&&Qe&&(Z.contains(Lt)?Lt.nextSibling!==Qe&&(Lt.remove(),Z.insertBefore(Lt,Qe)):Z.insertBefore(Lt,Qe)),Oe){let rt=parseFloat(St)||24,At=ge(Oe,rt*.6,"currentColor",1);At?Lt.replaceChildren(At):Lt.textContent=Le.agentIconText??"\u{1F4AC}"}else if(Le.iconUrl){let rt=Lt.querySelector("img");if(rt)rt.src=Le.iconUrl,rt.style.height=St,rt.style.width=St;else{let At=document.createElement("img");At.src=Le.iconUrl,At.alt="",At.className="persona-rounded-xl persona-object-cover",At.style.height=St,At.style.width=St,Lt.replaceChildren(At)}}else{let rt=Lt.querySelector("svg"),At=Lt.querySelector("img");(rt||At)&&Lt.replaceChildren(),Lt.textContent=Le.agentIconText??"\u{1F4AC}"}let Xe=Lt.querySelector("img");Xe&&(Xe.style.height=St,Xe.style.width=St)}}let _o=o.layout?.header?.showTitle,bo=o.layout?.header?.showSubtitle;if(xr&&(xr.style.display=_o===!1?"none":""),is&&(is.style.display=bo===!1?"none":""),qe){let Z=Ie()&&o.layout?.header?.showCloseButton!==!1;if(qe.style.display=Z?"":"none",!Se()){let en=Le.closeButtonSize??"";qe.style.height=en,qe.style.width=en,qe.style.minWidth=en,qe.style.minHeight=en}let Qe=Le.closeButtonPlacement??"inline",{closeButtonWrapper:Xe}=Ue,rt=Qe==="top-right",At=Xe?.classList.contains("persona-absolute");if(Xe&&rt!==At)if(Xe.remove(),rt){Xe.className="persona-absolute persona-top-4 persona-right-4 persona-z-50";let en=Fa??me;en.style.position="relative",en.appendChild(Xe)}else{let en=Le.clearChat?.placement??"inline",tn=Le.clearChat?.enabled??!0;Xe.className=tn&&en==="inline"?"":"persona-ml-auto",ke&&ke.appendChild(Xe)}if(qe.style.color=Le.closeButtonColor||wn.actionIconColor,Le.closeButtonBackgroundColor?(qe.style.backgroundColor=Le.closeButtonBackgroundColor,qe.classList.remove("hover:persona-bg-gray-100")):(qe.style.backgroundColor="",qe.classList.add("hover:persona-bg-gray-100")),Le.closeButtonBorderWidth||Le.closeButtonBorderColor){let en=Le.closeButtonBorderWidth||"0px",tn=Le.closeButtonBorderColor||"transparent";qe.style.border=`${en} solid ${tn}`,qe.classList.remove("persona-border-none")}else qe.style.border="",qe.classList.add("persona-border-none");Le.closeButtonBorderRadius?(qe.style.borderRadius=Le.closeButtonBorderRadius,qe.classList.remove("persona-rounded-full")):(qe.style.borderRadius="",qe.classList.add("persona-rounded-full")),Le.closeButtonPaddingX?(qe.style.paddingLeft=Le.closeButtonPaddingX,qe.style.paddingRight=Le.closeButtonPaddingX):(qe.style.paddingLeft="",qe.style.paddingRight=""),Le.closeButtonPaddingY?(qe.style.paddingTop=Le.closeButtonPaddingY,qe.style.paddingBottom=Le.closeButtonPaddingY):(qe.style.paddingTop="",qe.style.paddingBottom=""),dp(qe,Le.closeButtonIconName??"x",{iconSize:Se()?nf:void 0,iconText:Le.closeButtonIconText??"\xD7"});let sn=Le.closeButtonTooltipText??"Close chat",vo=Le.closeButtonShowTooltip??!0;qe.setAttribute("aria-label",sn),Xe&&nn({anchor:qe,trigger:Xe,text:()=>qe?.getAttribute("aria-label")??sn,enabled:vo})}let{clearChatButton:_e,clearChatButtonWrapper:xe}=Ue;if(_e){let Z=Le.clearChat??{},Qe=Z.enabled??!0,Xe=o.layout?.header?.showClearChat,rt=Xe!==void 0?Xe:Qe,At=Z.placement??"inline";if(xe){xe.style.display=rt?"":"none";let{closeButtonWrapper:sn}=Ue;!Se()&&sn&&!sn.classList.contains("persona-absolute")&&(rt?sn.classList.remove("persona-ml-auto"):sn.classList.add("persona-ml-auto"));let vo=At==="top-right",en=xe.classList.contains("persona-absolute");if(!Se()&&vo!==en&&rt){if(xe.remove(),vo){xe.className="persona-absolute persona-top-4 persona-z-50",xe.style.right="48px";let Do=Fa??me;Do.style.position="relative",Do.appendChild(xe)}else{xe.className="persona-relative persona-ml-auto persona-clear-chat-button-wrapper",xe.style.right="";let Do=Ue.closeButtonWrapper;ke&&Do&&Do.parentElement===ke?ke.insertBefore(xe,Do):ke&&ke.appendChild(xe)}let tn=Ue.closeButtonWrapper;tn&&!tn.classList.contains("persona-absolute")&&(vo?tn.classList.add("persona-ml-auto"):tn.classList.remove("persona-ml-auto"))}}if(rt){if(!Se()){let tn=Z.size??"";_e.style.height=tn,_e.style.width=tn,_e.style.minWidth=tn,_e.style.minHeight=tn}let sn=Z.iconColor??"";if(_e.style.color=sn||wn.actionIconColor,dp(_e,Z.iconName??"refresh-cw",{iconSize:Se()?of:void 0}),Z.backgroundColor?(_e.style.backgroundColor=Z.backgroundColor,_e.classList.remove("hover:persona-bg-gray-100")):(_e.style.backgroundColor="",_e.classList.add("hover:persona-bg-gray-100")),Z.borderWidth||Z.borderColor){let tn=Z.borderWidth||"0px",Do=Z.borderColor||"transparent";_e.style.border=`${tn} solid ${Do}`,_e.classList.remove("persona-border-none")}else _e.style.border="",_e.classList.add("persona-border-none");Z.borderRadius?(_e.style.borderRadius=Z.borderRadius,_e.classList.remove("persona-rounded-full")):(_e.style.borderRadius="",_e.classList.add("persona-rounded-full")),Z.paddingX?(_e.style.paddingLeft=Z.paddingX,_e.style.paddingRight=Z.paddingX):(_e.style.paddingLeft="",_e.style.paddingRight=""),Z.paddingY?(_e.style.paddingTop=Z.paddingY,_e.style.paddingBottom=Z.paddingY):(_e.style.paddingTop="",_e.style.paddingBottom="");let vo=Z.tooltipText??"Clear chat",en=Z.showTooltip??!0;_e.setAttribute("aria-label",vo),xe&&nn({anchor:_e,trigger:xe,text:()=>_e?.getAttribute("aria-label")??vo,enabled:en})}}let je=o.actionParsers&&o.actionParsers.length?o.actionParsers:[Nl],yt=o.actionHandlers&&o.actionHandlers.length?o.actionHandlers:[ti.message,ti.messageAndClick];Me=Fl({parsers:je,handlers:yt,getSessionMetadata:K,updateSessionMetadata:de,emit:A.emit,documentRef:typeof document<"u"?document:null}),ct=zx(o,Me,qt),FA(),P.updateConfig(o),(o.features?.history?.enabled===!0!==he||o.features?.history?.provider!==Ze||o.getIdentityProof!==pt||o.clientToken!==mt)&&(Rn({restoreFocus:!1}),by()),Br(),Nc(),Zn(Re,P.getMessages(),ct),pi(),Sc(),DA(),Wa(P.isStreaming()),Zt!==o.contextMentions&&hb();let Nr=o.voiceRecognition?.enabled===!0,Xt=typeof window<"u"&&(typeof window.webkitSpeechRecognition<"u"||typeof window.SpeechRecognition<"u"),Kn=o.voiceRecognition?.provider?.type==="runtype";if(Nr&&(Xt||Kn))if(!ie||!Fn){let Z=Qi(o);if(Z){ie=Z.button,Fn=Z.wrapper;let Qe=Mo&&Mo.parentElement===Vl?Mo:null;Vl?Vl.insertBefore(Fn,Qe):uo?.appendChild(Fn),ot&&(ot.micButton=ie),ot?.addListener(ie,"click",Tg),ie.disabled=P.isStreaming()}}else{let Z=o.voiceRecognition??{},Qe=o.sendButton??{},Xe=Z.iconName??"mic",rt=Z.iconSize,At=parseFloat(rt??"")||vn;ie.classList.add(Qn),ie.classList.toggle(Co,!rt),ie.style.width=rt??"",ie.style.height=rt??"",ie.style.minWidth=rt??"",ie.style.minHeight=rt??"";let sn=Z.iconColor??Qe.textColor;ie.innerHTML="";let vo=ge(Xe,At,sn||"currentColor",1.5);vo?ie.appendChild(vo):ie.textContent="\u{1F3A4}";let en=Z.backgroundColor??Qe.backgroundColor;en?ie.style.backgroundColor=en:ie.style.backgroundColor="",sn?ie.style.color=sn:ie.style.color="var(--persona-text, #111827)",Z.borderWidth?(ie.style.borderWidth=Z.borderWidth,ie.style.borderStyle="solid"):(ie.style.borderWidth="",ie.style.borderStyle=""),Z.borderColor?ie.style.borderColor=Z.borderColor:ie.style.borderColor="",Z.paddingX?(ie.style.paddingLeft=Z.paddingX,ie.style.paddingRight=Z.paddingX):(ie.style.paddingLeft="",ie.style.paddingRight=""),Z.paddingY?(ie.style.paddingTop=Z.paddingY,ie.style.paddingBottom=Z.paddingY):(ie.style.paddingTop="",ie.style.paddingBottom="");let tn=Z.tooltipText??"Start voice recognition",Do=Z.showTooltip??!1;ie.setAttribute("aria-label",tn),Fn&&nn({anchor:ie,trigger:Fn,text:()=>ie?.getAttribute("aria-label")??tn,enabled:Do}),Fn.style.display="",ie.disabled=P.isStreaming()}else ie&&Fn&&(Fn.style.display="none",o.voiceRecognition?.provider?.type==="runtype"?P.isVoiceActive()&&P.toggleVoice():Wo&&_r());if(o.attachments?.enabled===!0){if(!Tn||!Tt){let Z=o.attachments??{};Pn||(Pn=M("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2"),Pn.style.display="none",(pe.parentElement??uo).insertBefore(Pn,pe)),Ct||(Ct=document.createElement("input"),Ct.type="file",Ct.accept=(Z.allowedTypes??mr).join(","),Ct.multiple=(Z.maxFiles??4)>1,Ct.style.display="none",Ct.setAttribute("aria-label","Attach files"),(pe.parentElement??uo).insertBefore(Ct,pe)),Tn=M("div","persona-send-button-wrapper"),Tt=M("button",`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-attachment-button ${Qn} ${Co}`),Tt.type="button",Tt.setAttribute("aria-label",Z.buttonTooltipText??"Attach file");let Qe=Z.buttonIconName??"paperclip";Tt.style.fontSize="18px",Tt.style.lineHeight="1";let Xe=ge(Qe,vn,"currentColor",1.5);Xe?Tt.appendChild(Xe):Tt.textContent="\u{1F4CE}",Tt.addEventListener("click",At=>{At.preventDefault(),Ct?.click()}),Tn.appendChild(Tt);let rt=Z.buttonTooltipText??"Attach file";nn({anchor:Tt,trigger:Tn,text:()=>Tt?.getAttribute("aria-label")??rt}),eu?eu.append(Tn):uo.appendChild(Tn),ot&&(ot.attachmentButton=Tt,ot.attachmentInput=Ct??void 0,ot.attachmentPreviews=Pn??void 0),!et&&Ct&&Pn&&(et=zs.fromConfig(Z,Jf),et.setPreviewsContainer(Pn),ot?.addListener(Ct,"change",async()=>{et&&Ct?.files&&(await et.handleFileSelect(Ct.files),Ct.value="")}))}else{Tn.style.display="";let Z=o.attachments??{};Ct&&(Ct.accept=(Z.allowedTypes??mr).join(","),Ct.multiple=(Z.maxFiles??4)>1),et&&et.updateConfig({allowedTypes:Z.allowedTypes,maxFileSize:Z.maxFileSize,maxFiles:Z.maxFiles,adapter:Z.adapter})}if(me.querySelector(".persona-attachment-drop-overlay")?.remove(),me.appendChild(Vx(o.attachments?.dropOverlay)),Tt){let Z=o.attachments??{},Qe=Z.buttonTooltipText??"Attach file";Tt.setAttribute("aria-label",Qe),Tt.textContent="";let Xe=ge(Z.buttonIconName??"paperclip",vn,"currentColor",1.5);Xe?Tt.appendChild(Xe):Tt.textContent="\u{1F4CE}",Tn&&nn({anchor:Tt,trigger:Tn,text:()=>Tt?.getAttribute("aria-label")??Qe})}}else Tn&&(Tn.style.display="none"),et&&et.clearAttachments(),me.querySelector(".persona-attachment-drop-overlay")?.remove();let Pt=o.sendButton??{},Lg=Pt.useIcon??!1,Ns=Pt.iconText??"\u2191",nd=Pt.iconName,Tb=Pt.tooltipText??"Send message",eE=Pt.showTooltip??!1,el=Pt.size,tE=parseFloat(el??"")||fm,od=Pt.backgroundColor,tl=Pt.textColor;if(Lg){if(Pe.style.width=el??"",Pe.style.height=el??"",Pe.style.minWidth=el??"",Pe.style.minHeight=el??"",Pe.style.fontSize="18px",Pe.style.lineHeight="1",tl?Pe.style.color=tl:Pe.style.color="var(--persona-send-button-fg, var(--persona-button-primary-fg, #ffffff))",!P.isStreaming())if(Pe.innerHTML="",nd){let Z=parseFloat(Pt.iconSize??"")||Math.round(tE*.5),Qe=tl?.trim()||"currentColor",Xe=Pt.iconStrokeWidth??2,rt=ge(nd,Z,Qe,Xe),At=ge(Pt.stopIconName??"square",Z,Qe,Xe);rt&&At?Pe.appendChild(hm(rt,At)):rt?Pe.appendChild(rt):Pe.textContent=Ns}else Pe.textContent=Ns;Pe.className=`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer ${Qn}`,od?(Pe.style.backgroundColor=od,Pe.classList.remove("persona-bg-persona-primary")):(Pe.style.backgroundColor="",Pe.classList.add("persona-bg-persona-primary"))}else Pe.textContent=o.copy?.sendButtonLabel??"Send",Pe.style.width="",Pe.style.height="",Pe.style.minWidth="",Pe.style.minHeight="",Pe.style.fontSize="",Pe.style.lineHeight="",Pe.className="persona-rounded-button persona-bg-persona-accent persona-px-4 persona-py-2 persona-text-sm persona-font-semibold persona-text-white disabled:persona-opacity-50 persona-cursor-pointer",od?(Pe.style.backgroundColor=od,Pe.classList.remove("persona-bg-persona-accent")):Pe.classList.add("persona-bg-persona-accent"),tl?Pe.style.color=tl:Pe.classList.add("persona-text-white");Pt.borderWidth?(Pe.style.borderWidth=Pt.borderWidth,Pe.style.borderStyle="solid"):(Pe.style.borderWidth="",Pe.style.borderStyle=""),Pt.borderColor?Pe.style.borderColor=Pt.borderColor:Pe.style.borderColor="",Pt.paddingX?(Pe.style.paddingLeft=Pt.paddingX,Pe.style.paddingRight=Pt.paddingX):(Pe.style.paddingLeft="",Pe.style.paddingRight=""),Pt.paddingY?(Pe.style.paddingTop=Pt.paddingY,Pe.style.paddingBottom=Pt.paddingY):(Pe.style.paddingTop="",Pe.style.paddingBottom=""),P.isStreaming()||Pe.setAttribute("aria-label",Tb),wc(),Mo&&nn({anchor:Pe,trigger:Mo,text:()=>Pe.getAttribute("aria-label")??Tb,enabled:eE}),gh();let Pb=Yd(Ae.getState().activeModeIds,o.composer?.modes);Ae.setActiveModeIds(Pb),oi().length>0!==!!Qo&&pu(),Qo?.render(Pb,oi());for(let Z of[...ri.keys()])Qd(Z,o.composer?.modeGroups)||ri.delete(Z);ri.forEach(Z=>Z.repaint()),Ar?.repaint(),Po?.resolve();let rd=Jr(o,Se());if(bu(),rd){Re.style.maxWidth=rd,Re.style.marginLeft="auto",Re.style.marginRight="auto",Re.style.width="100%",Nn.style.maxWidth=rd,Nn.style.marginLeft="auto",Nn.style.marginRight="auto",Nn.style.width="100%";for(let Z of[uo,wr,Pn,it])Z&&(Z.style.maxWidth=rd,Z.style.marginLeft="auto",Z.style.marginRight="auto",Z.style.width="100%")}else{Re.style.maxWidth="",Re.style.marginLeft="",Re.style.marginRight="",Re.style.width="",Nn.style.maxWidth="",Nn.style.marginLeft="",Nn.style.marginRight="",Nn.style.width="";for(let Z of[uo,wr,Pn,it])Z&&(Z.style.maxWidth="",Z.style.marginLeft="",Z.style.marginRight="",Z.style.width="")}let Fr=o.statusIndicator??{},nE=Fr.visible??!0;if(it.style.display=nE?"":"none",P){let Z=P.getStatus();ln(it,(Xe=>Xe==="idle"?Fr.idleText??jt.idle:Xe==="connecting"?Fr.connectingText??jt.connecting:Xe==="connected"?Fr.connectedText??jt.connected:Xe==="error"?Fr.errorText??jt.error:jt[Xe])(Z),Fr,Z)}it.classList.remove("persona-text-left","persona-text-center","persona-text-right");let oE=Fr.align==="left"?"persona-text-left":Fr.align==="center"?"persona-text-center":"persona-text-right";it.classList.add(oE),du(),Iu(),go(),Ee()},open(){Ie()&&gt(!0,"api")},close(){Ie()&&gt(!1,"api")},toggle(){Ie()&&gt(!be,"api")},reconnect(){P.reconnectNow()},clearChat(){Yo=!1,P.clearMessages(),Ft.clear(),Ln();try{localStorage.removeItem(ca),o.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${ca}`)}catch(c){console.error("[AgentWidget] Failed to clear default localStorage:",c)}if(o.clearChatHistoryStorageKey&&o.clearChatHistoryStorageKey!==ca)try{localStorage.removeItem(o.clearChatHistoryStorageKey),o.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${o.clearChatHistoryStorageKey}`)}catch(c){console.error("[AgentWidget] Failed to clear custom localStorage:",c)}let i=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});window.dispatchEvent(i),Q?.clear&&gc(()=>Q.clear(),"[AgentWidget] Failed to clear storage adapter:"),le={},Me.syncFromMetadata(),et?.clearAttachments(),fc(),si(void 0),To(void 0),bs(),kt?.clear(),ft?.reset(),R?.update()},setMessage(i){return!pe||P.isStreaming()||Hr()?!1:(!be&&Ie()&&gt(!0,"system"),pe.value=i,pe.dispatchEvent(new Event("input",{bubbles:!0})),!0)},submitMessage(i){if(P.isStreaming()||Ms())return!1;let c=i?.trim()||pe.value.trim();return c?(!be&&Ie()&&gt(!0,"system"),pe.value="",pe.style.height="auto",Eo(),Yc(c,{consumeDraft:!1}),!0):!1},getComposerState(){return Ae.getState()},setQuote(i){let c=i?.text?.trim();c&&To({...i,text:c})},clearQuote(){To(void 0)},startVoiceRecognition(){return P.isStreaming()?!1:o.voiceRecognition?.provider?.type==="runtype"?(P.isVoiceActive()||(!be&&Ie()&&gt(!0,"system"),Ge.manuallyDeactivated=!1,ho(),P.toggleVoice().then(()=>{Ge.active=P.isVoiceActive(),er("user"),P.isVoiceActive()&&Li()})),!0):Wo?!0:tb()?(!be&&Ie()&&gt(!0,"system"),Ge.manuallyDeactivated=!1,ho(),Jc("user"),!0):!1},stopVoiceRecognition(){return o.voiceRecognition?.provider?.type==="runtype"?P.isVoiceActive()?(P.toggleVoice().then(()=>{Ge.active=!1,Ge.manuallyDeactivated=!0,ho(),er("user"),lr()}),!0):!1:Wo?(Ge.manuallyDeactivated=!0,ho(),_r("user"),!0):!1},injectMessage(i){return!be&&Ie()&&gt(!0,"system"),P.injectMessage(i)},injectAssistantMessage(i){!be&&Ie()&&gt(!0,"system");let c=P.injectAssistantMessage(i);return ut&&(ut=!1,He&&(clearTimeout(He),He=null),setTimeout(()=>{P&&!P.isStreaming()&&P.continueConversation()},100)),c},injectUserMessage(i){return!be&&Ie()&&gt(!0,"system"),P.injectUserMessage(i)},injectSystemMessage(i){return!be&&Ie()&&gt(!0,"system"),P.injectSystemMessage(i)},injectMessageBatch(i){return!be&&Ie()&&gt(!0,"system"),P.injectMessageBatch(i)},injectComponentDirective(i){return!be&&Ie()&&gt(!0,"system"),P.injectComponentDirective(i)},injectTestMessage(i){!be&&Ie()&&gt(!0,"system"),P.injectTestEvent(i)},async connectStream(i,c){return P.connectStream(i,c)},__pushEventStreamEvent(i){Bt&&(ee(),U(i.type,i.payload))},showEventStream(){Bt&&cu()},hideEventStream(){te&&ii()},isEventStreamVisible(){return te},listConversations(i){return P.listConversations(i)},getActiveConversationId(){return P.getActiveConversationId()},openConversation(i,c){return ug(i,{focusComposer:c?.focus===!0})},startNewConversation(i){return gg({focusComposer:i?.focus===!0})},deleteConversation(i){return qy(i)},renameConversation(i,c){return mg(i,{title:c})},setConversationStarred(i,c){return mg(i,{starred:c})},clearConversationHistory(i){return zy(i)},resetHistoryIdentity(){return Vy()},getHistoryIdentityStatus(){return zn?zn.getIdentityStatus():Qu()?{state:"unavailable",reason:"ineligible_mode"}:{state:"unavailable",reason:"history_disabled"}},showHistory(i){return Ka({...i?.returnSurface?{returnSurface:i.returnSurface}:{},...i?.focus!==void 0?{focus:i.focus}:{}})},hideHistory(i){Rn(i?.restoreFocus!==void 0?{restoreFocus:i.restoreFocus}:void 0)},isHistoryVisible(){return oe},showArtifacts(){Sn(o)&&(Yo=!1,li=!0,fo(),Ke?.setMobileOpen(!0))},hideArtifacts(){Sn(o)&&(Yo=!0,fo())},upsertArtifact(i){return Sn(o)?(Fo(o.features?.artifacts,{artifactType:i.artifactType,...i.artifactType==="markdown"&&i.file?{file:i.file}:{},...i.presentation?{presentation:i.presentation}:{}})==="panel"&&(Yo=!1,li=!0),P.upsertArtifact(i)):null},selectArtifact(i){Sn(o)&&P.selectArtifact(i)},clearArtifacts(){Sn(o)&&P.clearArtifacts()},getArtifacts(){return P?.getArtifacts()??[]},getSelectedArtifactId(){return P?.getSelectedArtifactId()??null},focusInput(){return ye&&!be&&!Se()||!pe?!1:(pe.focus(),!0)},async resolveApproval(i,c,g){let b=P.getMessages().find(w=>w.variant==="approval"&&w.approval?.id===i);if(!b?.approval)throw new Error(`Approval not found: ${i}`);if(b.approval.toolType==="webmcp"){P.resolveWebMcpApproval(b.id,c);return}return P.resolveApproval(b.approval,c,g)},setFollowUpSuggestions(i){cA(i)},clearFollowUpSuggestions(){$h()},getMessages(){return P.getMessages()},getStatus(){return P.getStatus()},getPersistentMetadata(){return{...le}},updatePersistentMetadata(i){de(i)},on(i,c){return A.on(i,c)},off(i,c){A.off(i,c)},isOpen(){return Ie()&&be},isVoiceActive(){return Ge.active},toggleReadAloud(i){P.toggleReadAloud(i)},stopReadAloud(){P.stopSpeaking()},getReadAloudState(i){return P.getReadAloudState(i)},onReadAloudChange(i){return P.onReadAloudChange(i)},getState(){return{open:Ie()&&be,launcherEnabled:ye,voiceActive:Ge.active,streaming:P.isStreaming()}},showCSATFeedback(i){!be&&Ie()&&gt(!0,"system");let c=Re.querySelector(".persona-feedback-container");c&&c.remove();let g=Bp({onSubmit:async(f,b)=>{P.isClientTokenMode()&&await P.submitCSATFeedback(f,b),i?.onSubmit?.(f,b)},onDismiss:i?.onDismiss,...i});Re.appendChild(g),g.scrollIntoView({behavior:"smooth",block:"end"})},showNPSFeedback(i){!be&&Ie()&&gt(!0,"system");let c=Re.querySelector(".persona-feedback-container");c&&c.remove();let g=_p({onSubmit:async(f,b)=>{P.isClientTokenMode()&&await P.submitNPSFeedback(f,b),i?.onSubmit?.(f,b)},onDismiss:i?.onDismiss,...i});Re.appendChild(g),g.scrollIntoView({behavior:"smooth",block:"end"})},async submitCSATFeedback(i,c){return P.submitCSATFeedback(i,c)},async submitNPSFeedback(i,c){return P.submitNPSFeedback(i,c)},destroy(){Uu(),ks!=null&&(clearInterval(ks),ks=null),we.forEach(i=>i()),Ye.remove(),Jt?.remove(),It?.destroy(),hn?.remove(),ms&&qe.removeEventListener("click",ms)}};if(((n?.debugTools??!1)||!!o.debug)&&typeof window<"u"){let i=window.AgentWidgetBrowser,c={controller:Rt,getMessages:Rt.getMessages,getStatus:Rt.getStatus,getMetadata:Rt.getPersistentMetadata,updateMetadata:Rt.updatePersistentMetadata,clearHistory:()=>Rt.clearChat(),setVoiceActive:g=>g?Rt.startVoiceRecognition():Rt.stopVoiceRecognition()};window.AgentWidgetBrowser=c,we.push(()=>{window.AgentWidgetBrowser===c&&(window.AgentWidgetBrowser=i)})}if(typeof window<"u"){let i=e.getAttribute("data-persona-instance")||e.id||"persona-"+Math.random().toString(36).slice(2,8),c=V=>{let J=V.detail;(!J?.instanceId||J.instanceId===i)&&Rt.focusInput()};if(window.addEventListener("persona:focusInput",c),we.push(()=>{window.removeEventListener("persona:focusInput",c)}),Bt){let V=ae=>{let he=ae.detail;(!he?.instanceId||he.instanceId===i)&&Rt.showEventStream()},J=ae=>{let he=ae.detail;(!he?.instanceId||he.instanceId===i)&&Rt.hideEventStream()};window.addEventListener("persona:showEventStream",V),window.addEventListener("persona:hideEventStream",J),we.push(()=>{window.removeEventListener("persona:showEventStream",V),window.removeEventListener("persona:hideEventStream",J)})}let g=V=>{let J=V.detail;(!J?.instanceId||J.instanceId===i)&&Rt.showHistory()},f=V=>{let J=V.detail;(!J?.instanceId||J.instanceId===i)&&Rt.hideHistory()};window.addEventListener("persona:showHistory",g),window.addEventListener("persona:hideHistory",f),we.push(()=>{window.removeEventListener("persona:showHistory",g),window.removeEventListener("persona:hideHistory",f)});let b=V=>{let J=V.detail;(!J?.instanceId||J.instanceId===i)&&Rt.showArtifacts()},w=V=>{let J=V.detail;(!J?.instanceId||J.instanceId===i)&&Rt.hideArtifacts()},O=V=>{let J=V.detail;J?.instanceId&&J.instanceId!==i||J?.artifact&&Rt.upsertArtifact(J.artifact)},z=V=>{let J=V.detail;J?.instanceId&&J.instanceId!==i||typeof J?.id=="string"&&Rt.selectArtifact(J.id)},q=V=>{let J=V.detail;(!J?.instanceId||J.instanceId===i)&&Rt.clearArtifacts()};window.addEventListener("persona:showArtifacts",b),window.addEventListener("persona:hideArtifacts",w),window.addEventListener("persona:upsertArtifact",O),window.addEventListener("persona:selectArtifact",z),window.addEventListener("persona:clearArtifacts",q),we.push(()=>{window.removeEventListener("persona:showArtifacts",b),window.removeEventListener("persona:hideArtifacts",w),window.removeEventListener("persona:upsertArtifact",O),window.removeEventListener("persona:selectArtifact",z),window.removeEventListener("persona:clearArtifacts",q)})}let ro=ML(o.persistState);if(ro&&Ie()){let i=EL(ro.storage),c=`${ro.keyPrefix}widget-open`,g=`${ro.keyPrefix}widget-voice`,f=`${ro.keyPrefix}widget-voice-mode`;if(i){let b=ro.persist?.openState&&i.getItem(c)==="true",w=ro.persist?.voiceState&&i.getItem(g)==="true",O=ro.persist?.voiceState&&i.getItem(f)==="true";if(b&&(It?.setPanelOpen(!0,"auto"),setTimeout(()=>{Rt.open(),setTimeout(()=>{if(w||O)Rt.startVoiceRecognition();else if(ro.persist?.focusInput){let z=e.querySelector("textarea");z&&z.focus()}},100)},0)),ro.persist?.openState&&(A.on("widget:opened",()=>{i.setItem(c,"true")}),A.on("widget:closed",()=>{i.setItem(c,"false")})),ro.persist?.voiceState&&(A.on("voice:state",z=>{i.setItem(g,z.active?"true":"false")}),A.on("user:message",z=>{i.setItem(f,z.viaVoice?"true":"false")})),ro.clearOnChatClear){let z=()=>{i.removeItem(c),i.removeItem(g),i.removeItem(f)},q=()=>z();window.addEventListener("persona:clear-chat",q),we.push(()=>{window.removeEventListener("persona:clear-chat",q)})}}}if(L&&Ie()&&(It?.setPanelOpen(!0,"auto"),setTimeout(()=>{Rt.open()},0)),yi(),!dA){let i=Ri(()=>{P&&(vs++,Ft.clear(),Zn(Re,P.getMessages(),ct))});we.push(i)}x=()=>{P&&(vs++,Ft.clear(),Zn(Re,P.getMessages(),ct))},P.getMessages().length>0&&Cc(),T=()=>{P&&(vs++,Ft.clear(),Zn(Re,P.getMessages(),ct))};let JM=Nb(()=>{P&&(vs++,Ft.clear(),Zn(Re,P.getMessages(),ct))});we.push(JM);let ZM=ff(()=>{P&&(vs++,Ft.clear(),Zn(Re,P.getMessages(),ct),hr()?.updateInlineArtifactBlocks(Re,Jn.artifacts,{suppressTransition:!0}),fo())});return we.push(ZM),Rt};var Kx=(e,t)=>{let n=e.trim(),o=/^(\d+(?:\.\d+)?)px$/i.exec(n);if(o)return Math.max(0,parseFloat(o[1]));let r=/^(\d+(?:\.\d+)?)%$/i.exec(n);return r?Math.max(0,t*parseFloat(r[1])/100):420},kL=(e,t)=>{if(t===!1){e.style.maxHeight="";return}e.style.maxHeight="100vh",e.style.maxHeight=t},LL=(e,t)=>{t===!1?(e.style.position="relative",e.style.top=""):(e.style.position="sticky",e.style.top="0")},IL=(e,t)=>{let n=e.parentElement;if(!n)return;let o=e.ownerDocument.createElement("div");o.style.cssText="width:0;height:1px;margin:0;padding:0;border:0;visibility:hidden;",n.appendChild(o);let r=o.offsetHeight>0;o.style.height="100%";let s=o.offsetHeight>0;o.remove(),!(!r||s)&&console.warn("[AgentWidget] Docked mode: no ancestor of the dock target provides a definite height, so the dock panel cannot size to your layout."+(t.maxHeight===!1?" The viewport guard is disabled (dock.maxHeight: false), so the panel will grow with the conversation and overflow the viewport.":` Falling back to clamping the panel to ${t.maxHeight} (configurable via launcher.dock.maxHeight).`)+" To size the panel from your layout instead, give the height chain a definite height (e.g. `html, body { height: 100% }`) down to the dock target's parent.")},Gx=(e,t)=>{let n=t?.launcher?.enabled??!0;e.className="persona-host",e.style.height=n?"":"100%",e.style.display=n?"":"flex",e.style.flexDirection=n?"":"column",e.style.flex=n?"":"1 1 auto",e.style.minHeight=n?"":"0",e.style.minWidth=n?"":"0"},Rf=e=>{e.style.position="",e.style.top="",e.style.bottom="",e.style.left="",e.style.right="",e.style.zIndex="",e.style.transform="",e.style.pointerEvents=""},Qx=e=>{e.style.inset="",e.style.width="",e.style.height="",e.style.maxWidth="",e.style.maxHeight="",e.style.minWidth="",Rf(e)},kf=e=>{e.style.transition=""},Lf=e=>{e.style.display="",e.style.flexDirection="",e.style.flex="",e.style.minHeight="",e.style.minWidth="",e.style.width="",e.style.height="",e.style.alignItems="",e.style.transition="",e.style.transform="",e.style.marginLeft=""},If=e=>{e.style.width="",e.style.maxWidth="",e.style.minWidth="",e.style.flex="1 1 auto"},Fp=(e,t)=>{e.style.width="",e.style.minWidth="0",e.style.maxWidth="",e.style.boxSizing="",t.style.alignItems=""},RL=(e,t,n,o,r)=>{r?n.parentElement!==t&&(e.replaceChildren(),t.replaceChildren(n,o),e.appendChild(t)):n.parentElement===t&&(t.replaceChildren(),e.appendChild(n),e.appendChild(o))},HL=(e,t,n,o,r,s)=>{let a=s?t:e;r==="left"?a.firstElementChild!==o&&a.replaceChildren(o,n):a.lastElementChild!==o&&a.replaceChildren(n,o)},WL=e=>{let t=Xr(e),n=t.components?.panel,o=(r,s)=>r==null||r===""?s:Cn(t,r)??r;return{inset:o(n?.inset,Xd),canvasBackground:o(n?.canvasBackground,Jd)}},Yx=(e,t,n,o)=>{if(!t){e.style.padding="",e.style.background="",e.style.boxSizing="";return}e.style.boxSizing="border-box",e.style.padding=n,e.style.background=o},OL=(e,t,n,o,r,s,a,l)=>{let d=On(s),p=d.reveal==="push",u=l!=null,m=l?.inset??"",y=l?.canvasBackground??"";RL(e,t,n,o,p),HL(e,t,n,o,d.side,p),e.dataset.personaHostLayout="docked",e.dataset.personaDockSide=d.side,e.dataset.personaDockOpen=a?"true":"false",e.style.width="100%",e.style.maxWidth="100%",e.style.minWidth="0",e.style.height="100%",e.style.minHeight="0",e.style.position="relative",n.style.display="flex",n.style.flexDirection="column",n.style.minHeight="0",n.style.position="relative",r.className="persona-host",r.style.height="100%",r.style.minHeight="0",r.style.minWidth="0",r.style.display="flex",r.style.flexDirection="column",r.style.flex="1 1 auto";let h=e.ownerDocument.defaultView,C=s?.launcher?.mobileFullscreen??!0,x=s?.launcher?.mobileBreakpoint??640,S=h!=null?h.innerWidth<=x:!1;if(C&&S&&a){e.dataset.personaDockMobileFullscreen="true",e.removeAttribute("data-persona-dock-reveal"),Lf(t),kf(o),Qx(o),If(n),Fp(r,o),Yx(o,!1,"",""),e.style.display="flex",e.style.flexDirection="column",e.style.alignItems="stretch",e.style.overflow="hidden",n.style.flex="1 1 auto",n.style.width="100%",n.style.minWidth="0",o.style.display="flex",o.style.flexDirection="column",o.style.position="fixed",o.style.inset="0",o.style.width="100%",o.style.height="100%",o.style.maxWidth="100%",o.style.minWidth="0",o.style.minHeight="0",o.style.overflow="hidden",o.style.zIndex=String(s?.launcher?.zIndex??an),o.style.transform="none",o.style.transition="none",o.style.pointerEvents="auto",o.style.flex="none",p&&(t.style.display="flex",t.style.flexDirection="column",t.style.width="100%",t.style.height="100%",t.style.minHeight="0",t.style.minWidth="0",t.style.flex="1 1 auto",t.style.alignItems="stretch",t.style.transform="none",t.style.marginLeft="0",t.style.transition="none",n.style.flex="1 1 auto",n.style.width="100%",n.style.maxWidth="100%",n.style.minWidth="0");return}if(e.removeAttribute("data-persona-dock-mobile-fullscreen"),Qx(o),kL(o,d.maxHeight),Yx(o,u&&a,m,y),d.reveal==="overlay"){e.style.display="flex",e.style.flexDirection="row",e.style.alignItems="stretch",e.style.overflow="hidden",e.dataset.personaDockReveal="overlay",Lf(t),kf(o),If(n),Fp(r,o);let B=d.animate?"transform 180ms ease":"none",$=d.side==="right"?"translateX(100%)":"translateX(-100%)",T=a?"translateX(0)":$;o.style.display="flex",o.style.flexDirection="column",o.style.flex="none",o.style.position="absolute",o.style.top="0",o.style.bottom="0",o.style.width=d.width,o.style.maxWidth=d.width,o.style.minWidth=d.width,o.style.minHeight="0",o.style.overflow="hidden",o.style.transition=B,o.style.transform=T,o.style.pointerEvents=a?"auto":"none",o.style.zIndex="2",d.side==="right"?(o.style.right="0",o.style.left=""):(o.style.left="0",o.style.right="")}else if(d.reveal==="push"){e.style.display="flex",e.style.flexDirection="row",e.style.alignItems="stretch",e.style.overflow="hidden",e.dataset.personaDockReveal="push",kf(o),Rf(o),Fp(r,o);let B=Kx(d.width,e.clientWidth),$=Math.max(0,e.clientWidth),T=d.animate?"margin-left 180ms ease":"none",I=d.side==="right"?a?-B:0:a?0:-B;t.style.display="flex",t.style.flexDirection="row",t.style.flex="0 0 auto",t.style.minHeight="0",t.style.minWidth="0",t.style.alignItems="stretch",t.style.height="100%",t.style.width=`${$+B}px`,t.style.transition=T,t.style.marginLeft=`${I}px`,t.style.transform="",n.style.flex="0 0 auto",n.style.flexGrow="0",n.style.flexShrink="0",n.style.width=`${$}px`,n.style.maxWidth=`${$}px`,n.style.minWidth=`${$}px`,o.style.display="flex",o.style.flexDirection="column",o.style.flex="0 0 auto",o.style.flexShrink="0",o.style.width=d.width,o.style.minWidth=d.width,o.style.maxWidth=d.width,o.style.position="relative",o.style.top="",o.style.overflow="hidden",o.style.transition="none",o.style.pointerEvents=a?"auto":"none"}else{e.style.display="flex",e.style.flexDirection="row",e.style.alignItems="stretch",e.style.overflow="",Lf(t),Rf(o),If(n),Fp(r,o);let B=d.reveal==="emerge";B?e.dataset.personaDockReveal="emerge":e.removeAttribute("data-persona-dock-reveal");let $=a?d.width:"0px",T=d.animate?`width 180ms ease, min-width 180ms ease, max-width 180ms ease, flex-basis 180ms ease${u?", padding 180ms ease":""}`:"none",I=!a;if(o.style.display="flex",o.style.flexDirection="column",o.style.flex=`0 0 ${$}`,o.style.width=$,o.style.maxWidth=$,o.style.minWidth=$,o.style.minHeight="0",LL(o,d.maxHeight),o.style.overflow=B||I?"hidden":"visible",o.style.transition=T,B){o.style.alignItems=d.side==="right"?"flex-start":"flex-end";let A=u?`calc(${Kx(d.width,e.clientWidth)}px - (2 * ${m}))`:d.width;r.style.width=A,r.style.minWidth=A,r.style.maxWidth=A,r.style.boxSizing="border-box"}}},BL=(e,t)=>{let n=e.ownerDocument.createElement("div");return Gx(n,t),e.appendChild(n),{mode:"direct",host:n,shell:null,syncWidgetState:()=>{},updateConfig(o){Gx(n,o)},destroy(){n.remove()}}},_L=(e,t)=>{let{ownerDocument:n}=e,o=e.parentElement;if(!o)throw new Error("Docked widget target must be attached to the DOM");let r=e.tagName.toUpperCase();if(r==="BODY"||r==="HTML")throw new Error('Docked widget target must be a concrete container element, not "body" or "html"');let s=e.nextSibling,a=n.createElement("div"),l=n.createElement("div"),d=n.createElement("div"),p=n.createElement("aside"),u=n.createElement("div"),m=t?.launcher?.enabled??!0?t?.launcher?.autoExpand??!1:!0;l.dataset.personaDockRole="push-track",d.dataset.personaDockRole="content",p.dataset.personaDockRole="panel",u.dataset.personaDockRole="host",p.appendChild(u),o.insertBefore(a,e),d.appendChild(e);let y=null,h=()=>{y?.disconnect(),y=null},C=null,x=()=>{C=t?.launcher?.detachedPanel===!0?WL(t):null};x();let S=()=>{OL(a,l,d,p,u,t,m,C)},k=null,B=()=>{k?.(),k=null,!(t?.launcher?.detachedPanel!==!0||t?.colorScheme!=="auto")&&(k=Yi(()=>{x(),S()}))},$=()=>{h(),On(t).reveal==="push"&&(typeof ResizeObserver>"u"||(y=new ResizeObserver(()=>{S()}),y.observe(a)))},T=!1,I=()=>{S(),$(),m&&!T&&a.dataset.personaDockMobileFullscreen!=="true"&&(T=!0,IL(a,On(t)))},A=a.ownerDocument.defaultView,D=()=>{I()};return A?.addEventListener("resize",D),On(t).reveal==="push"?(l.appendChild(d),l.appendChild(p),a.appendChild(l)):(a.appendChild(d),a.appendChild(p)),I(),B(),{mode:"docked",host:u,shell:a,syncWidgetState(Q){let le=Q.launcherEnabled?Q.open:!0;m!==le&&(m=le,I())},updateConfig(Q){t=Q,(t?.launcher?.enabled??!0)===!1&&(m=!0),x(),I(),B()},destroy(){A?.removeEventListener("resize",D),k?.(),k=null,h(),o.isConnected&&(s&&s.parentNode===o?o.insertBefore(e,s):o.appendChild(e)),a.remove()}}},Ul=(e,t)=>Mt(t)?_L(e,t):BL(e,t);var DL=e=>{if(typeof window>"u"||typeof document>"u")throw new Error("Chat widget can only be mounted in a browser environment");if(typeof e=="string"){let t=document.querySelector(e);if(!t)throw new Error(`Chat widget target "${e}" was not found`);return t}return e},Xx=(e,t)=>{if(!(e instanceof ShadowRoot)||e.querySelector("link[data-persona]"))return;let n=t.head.querySelector("link[data-persona]");if(!n)return;let o=n.cloneNode(!0);e.insertBefore(o,e.firstChild)},Hf=e=>{let t=DL(e.target),n=e.useShadowDom===!0,o=t.ownerDocument,r=e.config,s=Ul(t,r),a,l=[],d=(S,k)=>{let $=!(k?.launcher?.enabled??!0)||Mt(k),T=o.createElement("div");if(T.setAttribute("data-persona-root","true"),$&&(T.style.height="100%",T.style.display="flex",T.style.flexDirection="column",T.style.flex="1",T.style.minHeight="0",T.style.minWidth="0"),n){let I=S.attachShadow({mode:"open"});I.appendChild(T),Xx(I,o)}else S.appendChild(T),Xx(S,o);return t.id&&T.setAttribute("data-persona-instance",t.id),T},p=()=>{s.syncWidgetState(a.getState())},u=()=>{l.forEach(S=>S()),l=[a.on("widget:opened",p),a.on("widget:closed",p)],p()},m=()=>{let S=d(s.host,r);a=Np(S,r,{debugTools:e.debugTools}),u()},y=()=>{l.forEach(S=>S()),l=[],a.destroy()};m(),e.onChatReady?.();let h=S=>{y(),s.destroy(),s=Ul(t,S),r=S,m()},C={update(S){let k=Lp(r??{},S),B=Mt(r),$=Mt(k),T=es(r),I=es(k);if(B!==$||T!==I){h(k);return}r=k,s.updateConfig(r),a.update(S),p()},destroy(){y(),s.destroy(),e.windowKey&&typeof window<"u"&&delete window[e.windowKey]}},x=new Proxy(C,{get(S,k,B){if(k==="host")return s.host;if(k in S)return Reflect.get(S,k,B);let $=a[k];return typeof $=="function"?$.bind(a):$}});return e.windowKey&&typeof window<"u"&&(window[e.windowKey]=x),x};var nS=new Set(["script","style","noscript","svg","path","meta","link","br","hr"]),NL=new Set(["button","a","input","select","textarea","details","summary"]),FL=new Set(["button","link","menuitem","tab","option","switch","checkbox","radio","combobox","listbox","slider","spinbutton","textbox"]),Wf=/\b(product|card|item|listing|result)\b/i,Bf=/\$[\d,]+(?:\.\d{2})?|€[\d,]+(?:\.\d{2})?|£[\d,]+(?:\.\d{2})?|USD\s*[\d,]+(?:\.\d{2})?/i,$L=3e3,UL=100;function oS(e){let t=typeof e.className=="string"?e.className:"";if(Wf.test(t)||e.id&&Wf.test(e.id))return!0;for(let n=0;n<e.attributes.length;n++){let o=e.attributes[n];if(o.name.startsWith("data-")&&Wf.test(o.value))return!0}return!1}function rS(e){return Bf.test((e.textContent??"").trim())}function sS(e){let t=e.querySelectorAll("a[href]");for(let n=0;n<t.length;n++){let o=t[n].getAttribute("href")??"";if(o&&o!=="#"&&!o.toLowerCase().startsWith("javascript:"))return!0}return!1}function jL(e){return!!e.querySelector('button, [role="button"], input[type="submit"], input[type="button"]')}function Jx(e){let t=e.match(Bf);return t?t[0]:null}function Zx(e){let t=e.querySelector(".product-title a, h1 a, h2 a, h3 a, h4 a, .title a, a[href]")??e.querySelector("a[href]");if(t&&t.textContent?.trim()){let o=t.getAttribute("href");return{title:t.textContent.trim(),href:o&&o!=="#"?o:null}}let n=e.querySelector("h1, h2, h3, h4, h5, h6");return n?.textContent?.trim()?{title:n.textContent.trim(),href:null}:{title:"",href:null}}function qL(e){let t=[],n=o=>{let r=o.trim();r&&!t.includes(r)&&t.push(r)};return e.querySelectorAll("button").forEach(o=>n(o.textContent??"")),e.querySelectorAll('[role="button"]').forEach(o=>n(o.textContent??"")),e.querySelectorAll('input[type="submit"], input[type="button"]').forEach(o=>{n(o.value??"")}),t.slice(0,6)}var zL="commerce-card",VL="result-card";function eS(e){return!oS(e)||!rS(e)||!sS(e)&&!jL(e)?0:5200}function tS(e){return!oS(e)||rS(e)||!sS(e)||(e.textContent??"").trim().length<20||!(!!e.querySelector("h1, h2, h3, h4, h5, h6, .title")||!!e.querySelector(".snippet, .description, p"))?0:2800}var _f=[{id:zL,scoreElement(e){return eS(e)},shouldSuppressDescendant(e,t,n){if(t===e||!e.contains(t))return!1;if(n.interactivity==="static"){let o=n.text.trim();return!!(o.length===0||Bf.test(o)&&o.length<32)}return!0},formatSummary(e,t){if(eS(e)===0)return null;let{title:n,href:o}=Zx(e),r=Jx((e.textContent??"").trim())??Jx(t.text)??"",s=qL(e);return[o&&n?`[${n}](${o})${r?`: ${r}`:""}`:n?`${n}${r?`: ${r}`:""}`:r||t.text.trim().slice(0,120),`selector: ${t.selector}`,s.length?`actions: ${s.join(", ")}`:""].filter(Boolean).join(`
138
- `)}},{id:VL,scoreElement(e){return tS(e)},formatSummary(e,t){if(tS(e)===0)return null;let{title:n,href:o}=Zx(e);return[o&&n?`[${n}](${o})`:n||t.text.trim().slice(0,120),`selector: ${t.selector}`].filter(Boolean).join(`
139
- `)}}];function KL(){typeof console<"u"&&typeof console.warn=="function"&&console.warn('[persona] collectEnrichedPageContext: options.mode is "simple" but `rules` were provided; rules are ignored.')}function GL(e){let t=e.options??{},n=t.maxElements??e.maxElements??80,o=t.excludeSelector??e.excludeSelector??".persona-host",r=t.maxTextLength??e.maxTextLength??200,s=t.visibleOnly??e.visibleOnly??!0,a=t.root??e.root,l=t.mode??"structured",d=t.maxCandidates??Math.max(500,n*10),p=e.rules??_f;return l==="simple"&&e.rules&&e.rules.length>0?(KL(),p=[]):l==="simple"&&(p=[]),{mode:l,maxElements:n,maxCandidates:d,excludeSelector:o,maxTextLength:r,visibleOnly:s,root:a,rules:p}}function Of(e){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/([^\w-])/g,"\\$1")}var QL=["data-testid","data-product","data-action","data-id","data-name","data-type"];function YL(e){let t=e.tagName.toLowerCase(),n=e.getAttribute("role");return t==="a"&&e.hasAttribute("href")?"navigable":t==="input"||t==="select"||t==="textarea"||n==="textbox"||n==="combobox"||n==="listbox"||n==="spinbutton"?"input":t==="button"||n==="button"||NL.has(t)||n&&FL.has(n)||e.hasAttribute("tabindex")||e.hasAttribute("onclick")||e.getAttribute("contenteditable")==="true"?"clickable":"static"}function iS(e){if(e.hidden)return!1;try{let t=getComputedStyle(e);if(t.display==="none"||t.visibility==="hidden")return!1}catch{}return!(e.style.display==="none"||e.style.visibility==="hidden")}function XL(e){let t={},n=e.id;n&&(t.id=n);let o=e.getAttribute("href");o&&(t.href=o);let r=e.getAttribute("aria-label");r&&(t["aria-label"]=r);let s=e.getAttribute("type");s&&(t.type=s);let a=e.getAttribute("value");a&&(t.value=a);let l=e.getAttribute("name");l&&(t.name=l);let d=e.getAttribute("role");d&&(t.role=d);for(let p=0;p<e.attributes.length;p++){let u=e.attributes[p];u.name.startsWith("data-")&&(t[u.name]=u.value)}return t}function Df(e){let t=e.tagName.toLowerCase();if(e.id){let r=`#${Of(e.id)}`;try{if(e.ownerDocument.querySelectorAll(r).length===1)return r}catch{}}for(let r of QL){let s=e.getAttribute(r);if(s){let a=`${t}[${r}="${Of(s)}"]`;try{if(e.ownerDocument.querySelectorAll(a).length===1)return a}catch{}}}let n=Array.from(e.classList).filter(r=>r&&!r.startsWith("persona-")).slice(0,3);if(n.length>0){let r=`${t}.${n.map(a=>Of(a)).join(".")}`;try{if(e.ownerDocument.querySelectorAll(r).length===1)return r}catch{}let s=e.parentElement;if(s){let l=Array.from(s.querySelectorAll(`:scope > ${t}`)).indexOf(e);if(l>=0){let d=`${r}:nth-of-type(${l+1})`;try{if(e.ownerDocument.querySelectorAll(d).length===1)return d}catch{}}}}let o=e.parentElement;if(o){let s=Array.from(o.querySelectorAll(`:scope > ${t}`)).indexOf(e);if(s>=0)return`${t}:nth-of-type(${s+1})`}return t}function JL(e){return e==="static"?UL:$L}function aS(e,t){let n=e.tagName.toLowerCase(),o=(e.textContent??"").trim().substring(0,t);return{selector:Df(e),tagName:n,text:o,role:e.getAttribute("role"),interactivity:YL(e),attributes:XL(e)}}function ZL(e,t,n,o){let r=JL(t.interactivity),s=null;for(let a of n){let l=a.scoreElement(e,t,o);l>0&&(r+=l,a.formatSummary&&!s&&(s=a))}return{score:r,formattingRule:s}}function e0(e,t){for(let n of e)if(t.el!==n.el&&n.formattingRule?.shouldSuppressDescendant&&n.el.contains(t.el)&&n.formattingRule.shouldSuppressDescendant(n.el,t.el,t.enriched))return!0;return!1}function t0(e,t){let n={doc:t.ownerDocument,maxTextLength:e.maxTextLength},o=new Set,r=[],s=0,a=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,null),l=a.currentNode;for(;l&&r.length<e.maxCandidates;){if(l.nodeType===Node.ELEMENT_NODE){let p=l,u=p.tagName.toLowerCase();if(nS.has(u)){l=a.nextNode();continue}if(e.excludeSelector)try{if(p.closest(e.excludeSelector)){l=a.nextNode();continue}}catch{}if(e.visibleOnly&&!iS(p)){l=a.nextNode();continue}let m=aS(p,e.maxTextLength),y=m.text.length>0,h=Object.keys(m.attributes).length>0&&!Object.keys(m.attributes).every(S=>S==="role");if(!y&&!h){l=a.nextNode();continue}if(o.has(m.selector)){l=a.nextNode();continue}o.add(m.selector);let{score:C,formattingRule:x}=ZL(p,m,e.rules,n);r.push({el:p,domIndex:s,enriched:m,score:C,formattingRule:x}),s+=1}l=a.nextNode()}r.sort((p,u)=>{let m=p.enriched.interactivity==="static"?1:0,y=u.enriched.interactivity==="static"?1:0;return m!==y?m-y:u.score!==p.score?u.score-p.score:p.domIndex-u.domIndex});let d=[];for(let p of r){if(d.length>=e.maxElements)break;e0(d,p)||d.push(p)}return d.sort((p,u)=>{let m=p.enriched.interactivity==="static"?1:0,y=u.enriched.interactivity==="static"?1:0;return m!==y?m-y:m===1&&u.score!==p.score?u.score-p.score:p.domIndex-u.domIndex}),d.map(p=>{let u;if(p.formattingRule?.formatSummary){let y=p.formattingRule.formatSummary(p.el,p.enriched,n);y&&(u=y)}let m={...p.enriched};return u&&(m.formattedSummary=u),m})}function n0(e,t){let n=[],o=new Set,r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,null),s=r.currentNode;for(;s&&n.length<e.maxElements;){if(s.nodeType===Node.ELEMENT_NODE){let d=s,p=d.tagName.toLowerCase();if(nS.has(p)){s=r.nextNode();continue}if(e.excludeSelector)try{if(d.closest(e.excludeSelector)){s=r.nextNode();continue}}catch{}if(e.visibleOnly&&!iS(d)){s=r.nextNode();continue}let u=aS(d,e.maxTextLength),m=u.text.length>0,y=Object.keys(u.attributes).length>0&&!Object.keys(u.attributes).every(h=>h==="role");if(!m&&!y){s=r.nextNode();continue}o.has(u.selector)||(o.add(u.selector),n.push(u))}s=r.nextNode()}let a=[],l=[];for(let d of n)d.interactivity!=="static"?a.push(d):l.push(d);return[...a,...l].slice(0,e.maxElements)}function lS(e={}){let t=GL(e),n=t.root??document.body;return n?t.mode==="simple"?n0(t,n):t0(t,n):[]}var $p=100;function cS(e,t={}){if(e.length===0)return"No page elements found.";let n=t.mode??"structured",o=[];if(n==="structured"){let s=e.map(a=>a.formattedSummary).filter(a=>!!a&&a.length>0);s.length>0&&o.push(`Structured summaries:
136
+ ${Ht?"background: transparent !important;":""}
137
+ `)}if(!f&&!i){let xe="max-height: -moz-available !important; max-height: stretch !important;",qe=c?"":"padding-top: 1.25em !important;",yt=c?"":`z-index: ${o.launcher?.zIndex??sn} !important;`;Ye.style.cssText+=xe+qe+yt}su(),No()},vu=()=>{e.style.setProperty("--persona-content-max-width",os(o,Ae()))},Ph=!1,kh=()=>{let i=Wm(o,Ae());Ae()&&o.composer?.placement&&o.debug===!0&&!Ph&&(Ph=!0,console.warn("[persona] composer.placement is ignored in composer-bar mount mode."));let c=xo(o);e.setAttribute("data-persona-composer-placement",i),e.setAttribute("data-persona-conversation-state",Yl),e.setAttribute("data-persona-welcome-anchor",c.anchor??"bottom"),e.style.setProperty("--persona-composer-anchor-gap",c.composerGap??op),Jl()},Lh=()=>{if(Ae())return;let i=At(o),c=o.launcher?.sidebarMode??!1;if(i||c||(o.launcher?.fullHeight??!1)||!Se)return;let f=e.ownerDocument.defaultView??window,b=o.launcher?.mobileFullscreen??!0,w=o.launcher?.mobileBreakpoint??640;if(b&&f.innerWidth<=w)return;let W=f.innerHeight,z=64,q=o.launcher?.heightOffset??0,V=Math.max(200,W-z),Z=Math.min(640,V);Ee.style.height=`${Math.max(200,Z-q)}px`};bu(),Gs(e,o),Bl(e,o),_l(e,o),vu(),kh(),gs=()=>{bu(),Lh(),Gs(e,o),Bl(e,o),_l(e,o),vu(),kh(),tc?e.style.setProperty("--persona-artifact-welded-outer-radius",tc):e.style.removeProperty("--persona-artifact-welded-outer-radius"),_e(),Ut()};let Ce=[];Ce.push(()=>{xh=!0}),Ce.push(()=>{d.forEach(i=>i()),l.destroy()}),Ce.push(()=>{document.removeEventListener("keydown",Mh)}),Ce.push(()=>{wa!==null&&clearTimeout(wa)});let Ro=null,Ho=null;Ce.push(()=>{Ro?.(),Ro=null,Ho?.(),Ho=null}),Aa&&Ce.push(()=>{Aa?.disconnect(),Aa=null}),Ce.push(()=>{Ta?.(),Ta=null,yu(),Ct&&(Ct.remove(),Ct=null),Ke?.element.style.removeProperty("width"),Ke?.element.style.removeProperty("maxWidth"),Ke?.destroy()}),an&&Ce.push(()=>{D=!0,uo=null,_!==null&&(cancelAnimationFrame(_),_=null),J?.destroy(),J=null,ot?.destroy(),ot=null,Qo=null});let fs=null,Ih=()=>{fs&&(fs(),fs=null),o.colorScheme==="auto"&&(fs=ta(()=>{Gs(e,o)}))};Ih(),Ce.push(()=>{fs&&(fs(),fs=null)}),Ce.push(()=>{C=!0,h?.()}),Ce.push(()=>{O=!0});let Rh=!1;Ce.push(()=>{Rh=!0});let Cu=(i,c)=>{let g=Tl(i,c);return g||!Ow.includes(i)?g:(Nw().then(f=>{if(Rh)return;El(f.wipe),El(f.glyphCycle);let b=Tl(i,c);b&&Ll(b,e)}).catch(()=>{}),null)},cc=o.features?.streamAnimation;if(cc?.type&&cc.type!=="none"){let i=Cu(cc.type,cc.plugins);i&&Ll(i,e),Ce.push(()=>Dw(e))}let er=Hl(Er),Hh=Hl(eu),Wh=Hl(ya),hs=[er,Hh,Wh];Ce.push(()=>{hs.forEach(i=>i.destroy())});let ys=null,P,bs=null,Oh=!1,Bh=0,_h=null,Dh=i=>i.reduce((c,g)=>g.role==="user"?c+1:c,0),Nh=i=>{for(let c=i.length-1;c>=0;c--)if(qs(i[c]))return i[c].id??null;return null},Fh=!1,pA=()=>{Fh||o.debug!==!0||(Fh=!0,console.warn('[persona] suggestions.starters.placement is pinned to "welcome" but the welcome surface is hidden (welcome.variant: "none" or copy.showWelcomeCard: false), so no starters render. Use "auto" or "composer".'))},$h=!1,Uh=!1,jh=(i,c)=>{$h||o.debug!==!0||!c.enabled||c.expose||Oh||Uh&&(P.isStreaming()||i.some(qs)||($h=!0,console.info("[persona] Follow-up suggestions are enabled but the agent has not called suggest_replies. The model needs the tool declared (runtimeTools server-side, suggestions.followUps.expose: true from the widget, or your own backend's tool definition) and benefits from instructions telling it when to offer follow-ups. See the integration paths table in UI-COMPONENTS.md.")))},mi=i=>{if(!P)return;let c=i??P.getMessages(),g=V=>{V.render([],P,ue,c)},f=V=>{hs.forEach(Z=>{Z!==V&&g(Z)})};bs&&(Dh(c)>Bh||Nh(c)!==_h)&&(bs=null);let b=Zr(o);jh(c,b);let w=b.enabled?bd(c):null,W=bs??w,z=bs?"host":"agent";if(W){let V=o.suggestions?.followUps,Z=V?.placement??(V?"auto":"composer"),ye=(Z==="auto"?Ae()?"composer":"after-message":Z)==="after-message"?Wh:er;f(ye),ye.render(W,P,ue,c,o.suggestionChipsConfig,{source:z,surface:"followUp",variant:V?.variant??"chip",behavior:V?.behavior??"send",overflow:V?.overflow??"wrap",maxItems:V?.maxItems??4,config:o,plugins:a,submitPrompt:Yc});return}if(c.some(V=>V.role==="user")){hs.forEach(g);return}let q=o.suggestions?.starters;if(q){let V=is(xo(o),c),Z=q.placement??"auto",ae=Z==="auto"?V?"welcome":"composer":Z;if(ae==="welcome"&&!V){pA(),hs.forEach(g);return}let ye=ae==="welcome"?Hh:er;f(ye),ye.render(q.items??o.suggestionChips,P,ue,c,o.suggestionChipsConfig,{surface:"starter",variant:q.variant??"card",behavior:q.behavior??"send",overflow:q.overflow??"wrap",maxItems:q.maxItems??4,config:o,plugins:a,submitPrompt:Yc});return}f(er),er.render(o.suggestionChips,P,ue,c,o.suggestionChipsConfig,{surface:"starter",variant:"chip",behavior:"send",overflow:"wrap",config:o,plugins:a,submitPrompt:Yc})},qh=()=>{bs&&(bs=null,mi())},uA=i=>{let c=Array.isArray(i)?[...i]:[];if(!c.length){qh();return}let g=P?P.getMessages():[];bs=c,Oh=!0,Bh=Dh(g),_h=Nh(g),mi(g)},Nn=!1,Dt=Sw(),fi=new Map,vs=new Map,Rr=new Map,Cs=null,Hr=null;function ws(){if(!Cs)return;let i=Cs;Cs=null,Hr?.destroy(),Hr=null,Dt.delete(i),fe.querySelector(`#wrapper-${i}`)?.removeAttribute("data-preserve-runtime"),P&&Jn(Ie,P.getMessages(),ft)}let xs=0,gA=$o()!==null,Fn=Pw(),$n=0,Wr=null,En=!1,dc=!1,Or=0,zt=null,Ss=null,wu=!1,hi=!1,As=null,Pa=!0,pc=!1,yi=null,uc=!1,Ms=()=>{uc=!0,yA()},xu=null,mA=4,tr=24,fA=80,hA=1e3,nr=null,zh=()=>{e.setAttribute("data-persona-scrollbar",nu()),nu()!=="on-scroll"&&(nr!==null&&clearTimeout(nr),nr=null,re.removeAttribute("data-persona-scrollbar-visible"))},yA=()=>{nu()==="on-scroll"&&(re.setAttribute("data-persona-scrollbar-visible",""),nr!==null&&clearTimeout(nr),nr=setTimeout(()=>{nr=null,Qs(re,tr)&&re.removeAttribute("data-persona-scrollbar-visible")},hA))};zh(),Ce.push(()=>{nr!==null&&clearTimeout(nr)});let Su=new Map,Ge={active:!1,manuallyDeactivated:!1,lastUserMessageWasVoice:!1,lastUserMessageId:null};fh=()=>Ge.active,mo();let Vh=o.voiceRecognition?.autoResume??!1,or=i=>{A.emit("voice:state",{active:Ge.active,source:i,timestamp:Date.now()})},yo=()=>{de(i=>({...i,voiceState:{active:Ge.active,timestamp:Date.now(),manuallyDeactivated:Ge.manuallyDeactivated}}))},bA=()=>{if(o.voiceRecognition?.enabled===!1)return;let i=If(Y.voiceState),c=!!i.active,g=Number(i.timestamp??0);Ge.manuallyDeactivated=!!i.manuallyDeactivated,c&&Date.now()-g<ML&&setTimeout(()=>{Ge.active||(Ge.manuallyDeactivated=!1,o.voiceRecognition?.provider?.type==="runtype"?P.toggleVoice().then(()=>{Ge.active=P.isVoiceActive(),or("restore"),P.isVoiceActive()&&Oi()}):Zc("restore"))},1e3)},vA=()=>P?Kx(P.getMessages()).filter(i=>!i.__skipPersist):[],gc=null,Kh=(i,c)=>{typeof console<"u"&&console.error(i,c)},mc=(i,c)=>{let g=()=>{try{let W=i();return!W||typeof W.then!="function"?null:Promise.resolve(W).catch(z=>{Kh(c,z)})}catch(W){return Kh(c,W),null}},f=gc,b=f?f.then(()=>g()??void 0):g();if(!b)return;let w=b.finally(()=>{gc===w&&(gc=null)});gc=w};function bi(i){if(!Q?.save)return;let c=i?Kx(i):P?vA():[],g=ce&&P?.getResumableHandle();g&&(Y={...Y,durableResume:{executionId:g.executionId,after:g.lastEventId}});let f={messages:c,metadata:Y,artifacts:Xn.artifacts,selectedArtifactId:Xn.selectedId,...Es?{draft:Es}:{}};mc(()=>Q.save(f),"[AgentWidget] Failed to persist state:")}let Es,fc=()=>!Q?.save||o.persistState===!1?!1:typeof o.persistState=="object"?o.persistState.persist?.draft!==!1:!0,ka=YC({write:()=>{if(!fc())return;let i=Me.getState(),c=GC({text:i.text,mentionRefs:i.mentionRefs,contentSegments:bg(),selectedModelId:i.selectedModelId,activeModeIds:i.activeModeIds,quote:i.quote});JSON.stringify(c)!==JSON.stringify(Es)&&(Es=c,bi())}});function Gh(){fc()&&ka.schedule()}function Au(){ka.flush()}function Qh(i){if(!fc())return;let c=QC(i,{mentionSourceIds:(o.contextMentions?.sources??[]).map(g=>g.id),modelIds:(o.composer?.models??[]).map(g=>g.id),modes:o.composer?.modes??[]});c&&(Es=i,ue&&!ue.value&&(ue.value=c.text,ue.dispatchEvent(new Event("input",{bubbles:!0})),Po()),c.selectedModelId&&(Me.setSelectedModelId(c.selectedModelId),kr?.repaint()),Zl(c.activeModeIds??[]),c.quote&&ko(c.quote),ka.cancel())}function hc(){ka.cancel(),Es&&(Es=void 0,fc()&&bi())}let vi=null,Yh=()=>Ye.querySelector("#persona-scroll-container")||re,Ci=()=>{vi!==null&&(cancelAnimationFrame(vi),vi=null),En=!1},Xh=()=>{Wr!==null&&(cancelAnimationFrame(Wr),Wr=null),dc=!1,Ci()},CA=()=>Nn&&Eu()&&(Dn()!=="anchor-top"||Jf()),Mu=()=>{let i=ba()||"Jump to latest",c=CA();_t.toggleAttribute("data-persona-scroll-to-bottom-streaming",c),Or>0?(ds.textContent=String(Or),ds.style.display="",_t.setAttribute("aria-label",`${i} (${Or} new)`)):(ds.textContent="",ds.style.display="none",_t.setAttribute("aria-label",c?`${i} (response streaming below)`:i))},Jh=()=>{Or!==0&&(Or=0,Mu())},wA=()=>{let i=zt?.spacerHeight??0;return i<=0?Qs(re,tr):Cc(i)-re.scrollTop-re.clientHeight<=tr},Eu=()=>Pr()?!Fn.isFollowing():!wA(),Tu=()=>!!P&&P.getMessages().length>0,Vt=()=>{if(!QS()||Mr()){_t.parentNode&&_t.remove(),_t.style.display="none";return}_t.parentNode!==fe&&fe.appendChild(_t),ps();let c=Vo(re)>0&&Eu()&&Tu();c?Mu():Jh(),_t.style.display=c?"":"none"},La=()=>{Fn.pause()&&(Xh(),Vt())},Tn=()=>{Fn.resume(),Jh(),Vt()},Br=(i=!1)=>{Pr()&&Tu()&&Fn.isFollowing()&&(!i&&!Nn||(Wr!==null&&(cancelAnimationFrame(Wr),Wr=null),dc=!0,Wr=requestAnimationFrame(()=>{Wr=null,dc=!1,Fn.isFollowing()&&xA(Yh(),i?220:140)})))},Zh=(i,c,g,f=()=>!0)=>{let b=i.scrollTop,w=c(),W=w-b;if(Ci(),Math.abs(W)<1){En=!0,i.scrollTop=w,$n=i.scrollTop,En=!1;return}let z=performance.now();En=!0;let q=Z=>1-Math.pow(1-Z,3),V=Z=>{if(!f()){Ci();return}let ae=c();ae!==w&&(w=ae,W=w-b);let ye=Z-z,et=Math.min(ye/g,1),pt=q(et),gt=b+W*pt;i.scrollTop=gt,$n=i.scrollTop,et<1?vi=requestAnimationFrame(V):(i.scrollTop=w,$n=i.scrollTop,vi=null,En=!1)};vi=requestAnimationFrame(V)},xA=(i,c=500)=>{let g=Vo(i)-i.scrollTop;if(Math.abs(g)<1){$n=i.scrollTop;return}if(Math.abs(g)>=fA){Ci(),En=!0,i.scrollTop=Vo(i),$n=i.scrollTop,En=!1;return}Zh(i,()=>Vo(i),c,()=>Fn.isFollowing())},yc=()=>{if(!Tu()){Vt();return}let i=Yh();En=!0,i.scrollTop=Vo(i),$n=i.scrollTop,En=!1,Vt()},Ts=i=>{let c=0,g=i;for(;g&&g!==re;)c+=g.offsetTop,g=g.offsetParent;return c},SA=()=>{let i=re.getRootNode();return(typeof i.getSelection=="function"?i.getSelection():null)??re.ownerDocument.getSelection()},bc=()=>Iw(SA(),re),Pu=()=>{if(YS()!=="last-user-turn")return!1;let i=P?.getMessages()??[];if(i.length<2)return!1;let c=[...i].reverse().find(w=>w.role==="user");if(!c)return!1;let g=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(c.id):c.id.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),f=re.querySelector(`[data-message-id="${g}"]`);if(!f)return!1;let b=Math.min(Math.max(0,Ts(f)-va()),Vo(re));return En=!0,re.scrollTop=b,$n=re.scrollTop,En=!1,Dn()==="follow"&&!Qs(re,tr)&&Fn.pause(),Vt(),!0},vc=i=>{let c=Math.max(0,Math.round(i));Yn.style.height=`${c}px`,Yn.style.display=c>0?"":"none",zt&&(zt.spacerHeight=Math.max(0,i))},Cc=i=>{let c=parseFloat(getComputedStyle(re).paddingBottom)||0,g=0;for(let b of Array.from(re.children)){if(b===Yn||b.offsetHeight===0)continue;let w=Ts(b)+b.offsetHeight;w>g&&(g=w)}let f=re.scrollHeight-i;return g>0?Math.min(g+c,f):f},AA=()=>{if(!zt||zt.spacerHeight<=0)return;let i=Cc(zt.spacerHeight),c=Math.max(0,Math.round(re.scrollTop)+re.clientHeight-i+tr);c<zt.spacerHeight&&(vc(c),Vt())},bo=()=>{Ss!==null&&(cancelAnimationFrame(Ss),Ss=null),Ci(),zt=null,Yn.style.height="0px",Yn.style.display="none"},ey=i=>typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(i):i.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),ku=i=>re.querySelector(`[data-message-id="${ey(i)}"]`),ty=i=>{Ss!==null&&cancelAnimationFrame(Ss),Ss=requestAnimationFrame(()=>{Ss=null;let c=ey(i),g=re.querySelector(`[data-message-id="${c}"]`);if(!g)return;let f=Ts(g),b=zt?.spacerHeight??0,w=Cc(b),{targetScrollTop:W,spacerHeight:z}=_m({anchorOffsetTop:f,topOffset:va(),viewportHeight:re.clientHeight,contentHeight:w,slack:tr});zt={initialSpacerHeight:z,contentHeightAtAnchor:w,spacerHeight:z},vc(z),Zh(re,()=>g.isConnected?Math.max(0,Ts(g)-va()):W,220)})},Pn=()=>{if(Dn()!=="anchor-top"||!zt||!yi)return;let i=ku(yi);if(!i)return;Ci();let c=zt.spacerHeight,g=Cc(c),{targetScrollTop:f,spacerHeight:b}=_m({anchorOffsetTop:Ts(i),topOffset:va(),viewportHeight:re.clientHeight,contentHeight:g,slack:tr});zt={initialSpacerHeight:b,contentHeightAtAnchor:g,spacerHeight:b},vc(b),En=!0,re.scrollTop=f,$n=re.scrollTop,En=!1,Vt()},MA=()=>{if(Pr()){if(!Fn.isFollowing()||Qs(re,1))return;Br(!Nn);return}if(zt&&zt.initialSpacerHeight>0){let i=re.scrollHeight-zt.spacerHeight,c=Rw({initialSpacerHeight:zt.initialSpacerHeight,contentHeightAtAnchor:zt.contentHeightAtAnchor,currentContentHeight:i});c!==zt.spacerHeight&&vc(c)}Vt()},EA=i=>{let c=Dn();c==="follow"?(Tn(),Br(!0)):c==="anchor-top"&&(Pa=!1,pc=!0,uc=!1,yi=i,ty(i))},TA=()=>{if(Dn()==="anchor-top"){if(pc){Pa=!1;return}Pa=!0,bo(),Tn(),Br(!0)}},PA=96,kA=i=>{if(As===null)return!0;let c=ku(As),g=ku(i);if(!c||!g)return!0;let f=Ts(g)-Ts(c);return va()+f>re.clientHeight-PA},LA=i=>{if(Dn()!=="anchor-top"||!pc||uc||bc())return;let c=As===null;for(let g of i){if(!c){g.id===As&&(c=!0);continue}if(Tw(g)){if(g.id===yi||!kA(g.id))return;yi=g.id,ty(g.id);return}}},IA=i=>{let c=new Map;i.forEach(g=>{let f=Su.get(g.id);c.set(g.id,{streaming:g.streaming,role:g.role}),!f&&g.role==="assistant"&&(A.emit("assistant:message",g),!hi&&(Dn()!=="anchor-top"||Jf())&&Eu()&&(Or+=1,Mu(),Vt(),Ql(Or===1?"1 new message below.":`${Or} new messages below.`))),g.role==="assistant"&&f?.streaming&&g.streaming===!1&&A.emit("assistant:complete",g),g.variant==="approval"&&g.approval&&(f?g.approval.status!=="pending"&&A.emit("approval:resolved",{approval:g.approval,decision:g.approval.status}):A.emit("approval:requested",{approval:g.approval,message:g}))}),Su.clear(),c.forEach((g,f)=>{Su.set(f,g)})},Ia=(i,c)=>{let g=c==="user"?"user":"assistant",f=o.layout?.messages?.[g],b=f?.width??"content",w=f?.maxWidth??(b==="full"?"100%":void 0);i.classList.add("persona-message-row"),i.classList.remove("persona-message-row-user","persona-message-row-assistant","persona-message-row-system","persona-message-width-content","persona-message-width-full"),i.classList.add(`persona-message-row-${c}`,`persona-message-width-${b}`),i.classList.toggle("persona-justify-end",c==="user"),i.setAttribute("data-message-role",c),i.setAttribute("data-message-width",b),w?i.style.setProperty("--persona-message-row-max-width",w):i.style.removeProperty("--persona-message-row-max-width")},rr=(i,c)=>{let g=document.createElement("div");return g.className="persona-flex",g.id=`wrapper-${i}`,g.setAttribute("data-wrapper-id",i),Ia(g,c),g},RA=(i,c,g)=>{let f=document.createElement("div"),w=(()=>{let R=a.find(De=>De.renderLoadingIndicator);if(R?.renderLoadingIndicator)return R.renderLoadingIndicator;if(o.loadingIndicator?.render)return o.loadingIndicator.render})(),W=(R,De)=>De==null?!1:typeof De=="string"?(R.textContent=De,!0):(R.appendChild(De),!0),z=new Set,q=new Map,V=new Set,Z=a.some(R=>R.renderAskUserQuestion),ae=[],ye=[],et=o.enableComponentStreaming!==!1,pt=o.approval!==!1,gt=[],Zt=o.messageActions,Ft=Zt?.showRegenerate===!0&&Zt.enabled!==!1&&dt.current?.isStreaming()!==!0?tC(c):null,Rt=Zt?.showEdit===!0&&Zt.enabled!==!1,ln=Zt?.showQuote===!0&&Zt.enabled!==!1,nt=null,cn=o.features?.reasoningDisplay?.completedVisibility==="removed";if(c.forEach(R=>{if(cn&&R.variant==="reasoning"&&R.reasoning?.status==="complete")return;if(z.add(R.id),q.set(R.id,R.role),Cs===R.id&&Hr){let Be=rr(R.id,R.role);Be.setAttribute("data-persona-message-edit-stub","true"),Be.setAttribute("data-preserve-runtime","true"),f.appendChild(Be),nt={messageId:R.id,element:Hr.element};return}let De=Z&&fr(R),Fe=pt&&R.variant==="approval"&&!!R.approval,be=!De&&R.role==="assistant"&&!R.variant&&et&&Ul(R);!Fe&&Rr.has(R.id)&&(i.querySelector(`#wrapper-${R.id}`)?.removeAttribute("data-preserve-runtime"),Rr.delete(R.id)),!be&&vs.has(R.id)&&(i.querySelector(`#wrapper-${R.id}`)?.removeAttribute("data-preserve-runtime"),vs.delete(R.id));let ht=fr(R)?`:${R.agentMetadata?.askUserQuestionAnswered?"a":"u"}:${R.agentMetadata?.askUserQuestionAnswers?Object.keys(R.agentMetadata.askUserQuestionAnswers).length:0}`:"",Kt={canRegenerate:Ft===R.id,canEdit:Rt&&rm(R),canQuote:ln&&!R.variant&&(R.content?.trim().length??0)>0},dn=`${Kt.canRegenerate?"r":""}${Kt.canEdit?"e":""}${Kt.canQuote?"q":""}`,pn=xw(R,xs)+ht+`:${dn}`,Ht=De||Fe||be?null:Aw(Dt,R.id,pn);if(Ht){f.appendChild(Ht.cloneNode(!0)),fr(R)&&R.toolCall?.id&&R.agentMetadata?.awaitingLocalTool===!0&&!R.agentMetadata?.askUserQuestionAnswered&&(V.add(R.toolCall.id),qi(R,o,Ue.composerOverlay));return}let Le=null,Gt=a.find(Be=>!!(R.variant==="reasoning"&&Be.renderReasoning||R.variant==="tool"&&Be.renderToolCall||!R.variant&&Be.renderMessage)),Qt=o.layout?.messages;if(fr(R)&&R.agentMetadata?.askUserQuestionAnswered===!0){fi.delete(R.id),i.querySelector(`#wrapper-${R.id}`)?.removeAttribute("data-preserve-runtime");return}if(qs(R)&&Zr(o).enabled)return;if(fr(R)&&o.features?.askUserQuestion?.enabled!==!1){let Be=a.find(xt=>typeof xt.renderAskUserQuestion=="function");if(Be&&dt.current){let xt=fi.get(R.id),No=xt!==pn,vo=null;if(No){let{payload:qe,complete:yt}=hr(R),qr=R.id,Yt=()=>dt.current?.getMessages().find(qn=>qn.id===qr);vo=Be.renderAskUserQuestion({message:R,payload:qe,complete:yt,resolve:qn=>{let Fs=Yt();Fs&&dt.current?.resolveAskUserQuestion(Fs,qn)},dismiss:()=>{let qn=Yt();qn?.agentMetadata?.awaitingLocalTool&&(dt.current?.markAskUserQuestionResolved(qn),dt.current?.resolveAskUserQuestion(qn,"(dismissed)"))},config:o})}let Ne=xt!=null;if(No&&vo===null&&!Ne){R.agentMetadata?.awaitingLocalTool===!0&&!R.agentMetadata?.askUserQuestionAnswered&&(V.add(R.toolCall.id),qi(R,o,Ue.composerOverlay));return}let xe=rr(R.id,R.role);xe.setAttribute("data-ask-plugin-stub","true"),xe.setAttribute("data-preserve-runtime","true"),f.appendChild(xe),ae.push({messageId:R.id,fingerprint:pn,bubble:vo});return}else{R.agentMetadata?.awaitingLocalTool===!0&&!R.agentMetadata?.askUserQuestionAnswered&&(V.add(R.toolCall.id),qi(R,o,Ue.composerOverlay));return}}else if(Fe){let Be=k();if(!Be){f.appendChild(rr(R.id,R.role));return}let xt=a.find(xe=>typeof xe.renderApproval=="function")??y,vo=Rr.get(R.id)!==pn,Ne=null;if(vo&&xt?.renderApproval){let xe=R.id,qe=(yt,qr)=>{let Yt=dt.current?.getMessages().find(qn=>qn.id===xe);Yt?.approval&&(Yt.approval.toolType==="webmcp"?dt.current?.resolveWebMcpApproval(Yt.id,yt):dt.current?.resolveApproval(Yt.approval,yt,qr))};Ne=xt.renderApproval({message:R,defaultRenderer:()=>Be.createApprovalBubble(R,o),config:o,approve:yt=>qe("approved",yt),deny:yt=>qe("denied",yt)})}if(vo&&Ne===null)i.querySelector(`#wrapper-${R.id}`)?.removeAttribute("data-preserve-runtime"),Rr.delete(R.id),Le=Be.createApprovalBubble(R,o);else{let xe=rr(R.id,R.role);xe.setAttribute("data-approval-plugin-stub","true"),xe.setAttribute("data-preserve-runtime","true"),f.appendChild(xe),gt.push({messageId:R.id,fingerprint:pn,bubble:Ne});return}}else if(Gt)if(R.variant==="reasoning"&&R.reasoning&&Gt.renderReasoning){if(!un)return;Le=Gt.renderReasoning({message:R,defaultRenderer:()=>uf(R,o),config:o})}else if(R.variant==="tool"&&R.toolCall&&Gt.renderToolCall){if(!Gn)return;Le=Gt.renderToolCall({message:R,defaultRenderer:()=>mf(R,o),config:o})}else Gt.renderMessage&&(Le=Gt.renderMessage({message:R,defaultRenderer:()=>{let Be=sa(R,g,Qt,o.messageActions,jt,{loadingIndicatorRenderer:w,widgetConfig:o,actionEligibility:Kt});return R.role!=="user"&&I(Be,R,o,P),Be},config:o}));if(!Le&&be){let Be=Bp(R);if(Be){let xt=vs.get(R.id),No=xt!==pn,vo=o.wrapComponentDirectiveInBubble!==!1&&So.getOptions(Be.component)?.bubbleChrome!==!1,Ne=null;if(No){let xe=Op(Be,{config:o,message:R,transform:g});if(xe&&Be.component==="PersonaArtifactInline"){let qe=xe.hasAttribute("data-artifact-inline")?xe:xe.querySelector("[data-artifact-inline]"),yt=qe?.getAttribute("data-artifact-inline")??"",qr=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(yt):yt,Yt=yt?i.querySelector(`#wrapper-${R.id}`)?.querySelector(`[data-artifact-inline="${qr}"]`)??null:null;qe&&Yt&&Yt!==qe&&Cr()?.hasLiveInlineArtifactBlock(Yt)&&(qe===xe?xe=Yt:qe.replaceWith(Yt))}if(xe)if(vo){let qe=document.createElement("div");if(qe.className=["persona-message-bubble","persona-rounded-2xl","persona-bg-persona-surface","persona-border","persona-border-persona-message-border","persona-p-4"].join(" "),qe.id=`bubble-${R.id}`,qe.setAttribute("data-message-id",R.id),R.content&&R.content.trim()){let yt=document.createElement("div");yt.className="persona-mb-3 persona-text-sm persona-leading-relaxed",yt.innerHTML=g({text:R.content,message:R,streaming:!!R.streaming,raw:R.rawContent}),qe.appendChild(yt)}qe.appendChild(xe),Ne=qe}else{let qe=document.createElement("div");if(qe.className="persona-flex persona-flex-col persona-w-full persona-max-w-full persona-gap-3 persona-items-stretch",qe.id=`bubble-${R.id}`,qe.setAttribute("data-message-id",R.id),qe.setAttribute("data-persona-component-directive","true"),R.content&&R.content.trim()){let yt=document.createElement("div");yt.className="persona-text-sm persona-leading-relaxed persona-text-persona-primary persona-w-full",yt.innerHTML=g({text:R.content,message:R,streaming:!!R.streaming,raw:R.rawContent}),qe.appendChild(yt)}qe.appendChild(xe),Ne=qe}}if(Ne||xt!=null){let xe=rr(R.id,R.role);xe.setAttribute("data-component-directive-stub","true"),xe.setAttribute("data-preserve-runtime","true"),f.appendChild(xe),ye.push({messageId:R.id,fingerprint:pn,bubble:Ne});return}}}if(!Le)if(R.variant==="reasoning"&&R.reasoning){if(!un)return;Le=uf(R,o)}else if(R.variant==="tool"&&R.toolCall){if(!Gn)return;Le=mf(R,o)}else if(R.variant==="approval"&&R.approval){if(o.approval===!1)return;let Be=k();if(!Be)return;Le=Be.createApprovalBubble(R,o)}else{let Be=o.layout?.messages;Be?.renderUserMessage&&R.role==="user"?Le=Be.renderUserMessage({message:R,config:o,streaming:!!R.streaming}):Be?.renderAssistantMessage&&R.role==="assistant"?Le=Be.renderAssistantMessage({message:R,config:o,streaming:!!R.streaming}):Le=sa(R,g,Be,o.messageActions,jt,{loadingIndicatorRenderer:w,widgetConfig:o,actionEligibility:Kt}),R.role!=="user"&&Le&&I(Le,R,o,P)}let ro=rr(R.id,R.role);ro.appendChild(Le),Mw(Dt,R.id,pn,ro),f.appendChild(ro)}),Ue.composerOverlay&&Ue.composerOverlay.querySelectorAll("[data-persona-ask-sheet-for]").forEach(De=>{let Fe=De.getAttribute("data-persona-ask-sheet-for");Fe&&!V.has(Fe)&&Xr(Ue.composerOverlay,Fe)}),o.features?.toolCallDisplay?.grouped){let R=[],De=[],Fe=o.features.toolCallDisplay.groupedMode==="summary";c.forEach(be=>{if(be.variant==="tool"&&be.toolCall&&Gn){De.push(be);return}be.variant==="reasoning"&&(!un||cn&&be.reasoning?.status==="complete")||((De.length>1||Fe&&De.length>0)&&R.push(De),De=[])}),(De.length>1||Fe&&De.length>0)&&R.push(De),R.forEach(be=>{let ht=be.map(Qt=>Array.from(f.children).find(ro=>ro instanceof HTMLElement&&ro.getAttribute("data-wrapper-id")===Qt.id)).filter(Qt=>!!Qt);if(ht.length<(Fe?1:2))return;let Kt=rr(`tool-group-${be[0].id}`,"assistant");Kt.setAttribute("data-persona-tool-group-row","true");let dn=document.createElement("div");dn.className="persona-tool-group persona-flex persona-w-full persona-flex-col persona-gap-2",dn.setAttribute("data-persona-tool-group","true");let pn=document.createElement("div");pn.className="persona-tool-group-summary persona-text-xs persona-text-persona-muted",pn.id=`tool-group-summary-${be[0].id}`;let Ht=`Called ${be.length} ${be.length===1?"tool":"tools"}`,Le=o.toolCall?.renderGroupedSummary?.({messages:be,toolCalls:be.map(Qt=>Qt.toolCall).filter(Qt=>!!Qt),defaultSummary:Ht,config:o});W(pn,Le)||(pn.textContent=Ht);let Gt=document.createElement("div");Gt.className="persona-tool-group-stack persona-flex persona-flex-col",Gt.id=`tool-group-stack-${be[0].id}`,Gt.setAttribute("data-persona-tool-group-stack","true"),dn.appendChild(pn),Fe||dn.appendChild(Gt),Kt.appendChild(dn),ht[0].before(Kt),ht.forEach((Qt,ro)=>{if(Fe){Qt.remove();return}Qt.style.setProperty("--persona-message-row-max-width","100%");let Be=document.createElement("div");Be.className="persona-tool-group-item persona-relative",Be.setAttribute("data-persona-tool-group-item","true"),ro<ht.length-1&&Be.setAttribute("data-persona-tool-group-connector","true"),Be.appendChild(Qt),Gt.appendChild(Be)})})}Ew(Dt,z);let gr=c.some(R=>R.role==="assistant"&&R.streaming),_o=c[c.length-1],Do=_o?.role==="assistant"&&!_o.streaming&&_o.variant!=="approval";if(Nn&&c.some(R=>R.role==="user")&&!gr&&!Do){let R={config:o,streaming:!0,location:"standalone",defaultRenderer:ei},De=a.find(be=>be.renderLoadingIndicator),Fe=null;if(De?.renderLoadingIndicator&&(Fe=De.renderLoadingIndicator(R)),Fe===null&&o.loadingIndicator?.render&&(Fe=o.loadingIndicator.render(R)),Fe===null&&(Fe=ei()),Fe){let be=document.createElement("div"),ht=o.loadingIndicator?.showBubble!==!1,Kt=o.layout?.messages?.layout??"bubble";be.className=ht?Ol("assistant",Kt).join(" "):["persona-text-sm","persona-leading-relaxed","persona-text-persona-text"].join(" "),be.setAttribute("data-typing-indicator","true"),ht&&(be.style.color="var(--persona-message-assistant-text, var(--persona-text))",Kt!=="flat"&&(be.style.backgroundColor="var(--persona-message-assistant-bg, var(--persona-container))",be.style.borderColor="var(--persona-message-assistant-border, var(--persona-border, #e5e7eb))")),be.appendChild(Fe);let dn=rr("typing-indicator","assistant");dn.appendChild(be),f.appendChild(dn)}}if(!Nn&&c.length>0){let R=c[c.length-1],De={config:o,lastMessage:R,messageCount:c.length},Fe=a.find(ht=>ht.renderIdleIndicator),be=null;if(Fe?.renderIdleIndicator&&(be=Fe.renderIdleIndicator(De)),be===null&&o.loadingIndicator?.renderIdle&&(be=o.loadingIndicator.renderIdle(De)),be){let ht=document.createElement("div"),Kt=o.loadingIndicator?.showBubble!==!1;ht.className=Kt?["persona-rounded-2xl","persona-text-sm","persona-leading-relaxed","persona-shadow-sm","persona-bg-persona-surface","persona-border","persona-border-persona-message-border","persona-text-persona-primary","persona-px-5","persona-py-3"].join(" "):["persona-text-sm","persona-leading-relaxed","persona-text-persona-primary"].join(" "),ht.setAttribute("data-idle-indicator","true"),ht.appendChild(be);let dn=rr("idle-indicator","assistant");dn.appendChild(ht),f.appendChild(dn)}}if(rv(f),ap(i,f),Fg(i),nt){let{messageId:R,element:De}=nt,Fe=i.querySelector(`#wrapper-${R}`);Fe&&De.parentElement!==Fe&&(Ia(Fe,q.get(R)??"user"),Fe.replaceChildren(De))}if(ae.length>0)for(let{messageId:R,fingerprint:De,bubble:Fe}of ae){let be=i.querySelector(`#wrapper-${R}`);be&&(Ia(be,q.get(R)??"assistant"),Fe!==null&&(be.replaceChildren(Fe),be.setAttribute("data-bubble-fp",De),fi.set(R,De)))}if(fi.size>0)for(let R of fi.keys())z.has(R)||fi.delete(R);if(ye.length>0)for(let{messageId:R,fingerprint:De,bubble:Fe}of ye){let be=i.querySelector(`#wrapper-${R}`);be&&(Ia(be,q.get(R)??"assistant"),Fe!==null&&(be.replaceChildren(Fe),be.setAttribute("data-bubble-fp",De),vs.set(R,De)))}if(vs.size>0)for(let R of vs.keys())z.has(R)||vs.delete(R);if(gt.length>0)for(let{messageId:R,fingerprint:De,bubble:Fe}of gt){let be=i.querySelector(`#wrapper-${R}`);be&&(Ia(be,q.get(R)??"assistant"),Fe!==null&&(be.replaceChildren(Fe),be.setAttribute("data-bubble-fp",De),Rr.set(R,De)))}if(Rr.size>0)for(let R of Rr.keys())z.has(R)||Rr.delete(R)},Lu=!1,wc=()=>{Lu||(Lu=!0,ld().catch(()=>{Lu=!1}))},Jn=(i,c,g)=>{c.length>0&&wc(),RA(i,c,g),wh()},Ra=null,HA=()=>{if(Ra)return;let i=g=>{let f=g.composedPath();f.includes(Ye)||Jt&&f.includes(Jt)||ut(!1,"user")};Ra=i,(e.ownerDocument??document).addEventListener("pointerdown",i,!0)},ny=()=>{if(!Ra)return;(e.ownerDocument??document).removeEventListener("pointerdown",Ra,!0),Ra=null};Ce.push(()=>ny());let Ha=null,WA=()=>{if(Ha)return;let i=g=>{g.key==="Escape"&&(g.isComposing||ut(!1,"user"))};Ha=i,(e.ownerDocument??document).addEventListener("keydown",i,!0)},oy=()=>{if(!Ha)return;(e.ownerDocument??document).removeEventListener("keydown",Ha,!0),Ha=null};Ce.push(()=>oy());let Wa=!1,ry=new Set,OA=()=>{let i=o.launcher?.composerBar?.peek?.streamAnimation;return i||o.features?.streamAnimation},wi=()=>{if(!Ae())return;let i=Ue.peekBanner,c=Ue.peekTextNode;if(!i||!c)return;if(ve){i.classList.remove("persona-pill-peek--visible");return}let g=P?.getMessages()??[],f;for(let Ft=g.length-1;Ft>=0;Ft--){let Rt=g[Ft];if(Rt.role==="assistant"&&Rt.content){f=Rt;break}}if(!f){i.classList.remove("persona-pill-peek--visible");return}let b=f.content,w=!!f.streaming,W=OA(),z=lp(W),q=z.type!=="none"?Cu(z.type,W?.plugins):null,V=q?.isAnimating?.(f)===!0,Z=q!==null&&(w||V);Z&&q&&!ry.has(q.name)&&(Ll(q,e),ry.add(q.name));let ae=Z&&q?.containerClass?q.containerClass:null,ye=c.dataset.personaPeekStreamClass??null;ye&&ye!==ae&&(c.classList.remove(ye),delete c.dataset.personaPeekStreamClass),ae&&ye!==ae&&(c.classList.add(ae),c.dataset.personaPeekStreamClass=ae),Z?(c.style.setProperty("--persona-stream-step",`${z.speed}ms`),c.style.setProperty("--persona-stream-duration",`${z.duration}ms`)):(c.style.removeProperty("--persona-stream-step"),c.style.removeProperty("--persona-stream-duration"));let et=Z?cp(b,z.buffer,q,f,w):b;if(Z&&z.placeholder==="skeleton"&&w&&(!et||!et.trim())){let Ft=document.createElement("div"),Rt=kl();Rt.classList.add("persona-pill-peek__skeleton"),Ft.appendChild(Rt),ap(c,Ft)}else{let Ft=Math.max(0,et.length-100),Rt=et.length>100?et.slice(-100):et,ln=mr(Rt);if(!Z||!q){let nt=et.length>100?`\u2026${Rt}`:Rt;c.textContent!==nt&&(c.textContent=nt)}else{let nt=ln;(q.wrap==="char"||q.wrap==="word")&&(nt=Pl(ln,q.wrap,`peek-${f.id}`,{skipTags:q.skipTags,startIndex:Ft}));let cn=document.createElement("div");if(cn.innerHTML=nt,q.useCaret&&Rt.length>0){let gr=dp(),_o=cn.querySelectorAll(".persona-stream-char, .persona-stream-word"),Do=_o[_o.length-1];Do?.parentNode?Do.parentNode.insertBefore(gr,Do.nextSibling):cn.appendChild(gr)}ap(c,cn),q.onAfterRender?.({container:c,bubble:i,messageId:f.id,message:f,speed:z.speed,duration:z.duration})}}let Zt=Nn||Wa;i.classList.toggle("persona-pill-peek--visible",Zt)};if(Ae()){let i=Ue.peekBanner;if(i){let f=b=>{b.preventDefault(),b.stopPropagation(),ut(!0,"user")};i.addEventListener("pointerdown",f),Ce.push(()=>{i.removeEventListener("pointerdown",f)})}let c=()=>{Wa||(Wa=!0,wi())},g=()=>{Wa&&(Wa=!1,wi())};Ee.addEventListener("pointerenter",c),Ee.addEventListener("pointerleave",g),Ce.push(()=>{Ee.removeEventListener("pointerenter",c),Ee.removeEventListener("pointerleave",g)}),Jt&&(Jt.addEventListener("pointerenter",c),Jt.addEventListener("pointerleave",g),Ce.push(()=>{Jt.removeEventListener("pointerenter",c),Jt.removeEventListener("pointerleave",g)}))}let BA=i=>{let c=o.launcher?.composerBar??{},g=c.expandedSize??"anchored",f=c.bottomOffset??"16px",b=c.collapsedMaxWidth,w=c.expandedMaxWidth??"880px",W=c.expandedTopOffset??"5vh",z=c.modalMaxWidth??"880px",q=c.modalMaxHeight??"min(90vh, 800px)",V="calc(100vw - 32px)",Z="var(--persona-pill-area-height, 80px)",ae=Ye.style;if(ae.left="",ae.right="",ae.top="",ae.bottom="",ae.transform="",ae.width="",ae.maxWidth="",ae.height="",ae.maxHeight="",Jt){let ye=Jt.style;ye.bottom=f,ye.width=b??""}if(i&&g!=="fullscreen"){if(g==="modal"){ae.top="50%",ae.left="50%",ae.transform="translate(-50%, -50%)",ae.bottom="auto",ae.right="auto",ae.width=z,ae.maxWidth=V,ae.maxHeight=q,ae.height=q;return}ae.left="50%",ae.transform="translateX(-50%)",ae.bottom=`calc(${f} + ${Z})`,ae.top=W,ae.width=w,ae.maxWidth=V}},Oa=()=>{if(ve&&wc(),!ke())return;if(Ae()){let V=(o.launcher?.composerBar??{}).expandedSize??"anchored",Z=ve?"expanded":"collapsed";Ye.dataset.state=Z,Ye.dataset.expandedSize=V,Jt&&(Jt.dataset.state=Z,Jt.dataset.expandedSize=V),Ye.style.removeProperty("display"),Ye.classList.remove("persona-pointer-events-none","persona-opacity-0"),Ee.classList.remove("persona-scale-95","persona-opacity-0","persona-scale-100","persona-opacity-100"),BA(ve),fe.style.display=ve?"flex":"none",gs(),ve?(HA(),WA()):(ny(),oy()),wi();return}let i=At(o),c=e.ownerDocument.defaultView??window,g=o.launcher?.mobileBreakpoint??640,f=o.launcher?.mobileFullscreen??!0,b=c.innerWidth<=g,w=f&&b&&Se,W=Rn(o).reveal;ve?(Ye.style.removeProperty("display"),Ye.style.display=i?"flex":"",Ye.classList.remove("persona-pointer-events-none","persona-opacity-0"),Ee.classList.remove("persona-scale-95","persona-opacity-0"),Ee.classList.add("persona-scale-100","persona-opacity-100"),Lt?(Lt.setPanelOpen(!0),Lt.element.style.display="none"):mn&&(mn.style.display="none")):(i?i&&(W==="overlay"||W==="push")&&!w?(Ye.style.removeProperty("display"),Ye.style.display="flex",Ye.classList.remove("persona-pointer-events-none","persona-opacity-0"),Ee.classList.remove("persona-scale-100","persona-opacity-100","persona-scale-95","persona-opacity-0")):(Ye.style.setProperty("display","none","important"),Ye.classList.remove("persona-pointer-events-none","persona-opacity-0"),Ee.classList.remove("persona-scale-100","persona-opacity-100","persona-scale-95","persona-opacity-0")):(Ye.style.display="",Ye.classList.add("persona-pointer-events-none","persona-opacity-0"),Ee.classList.remove("persona-scale-100","persona-opacity-100"),Ee.classList.add("persona-scale-95","persona-opacity-0")),Lt?(Lt.setPanelOpen(!1),Lt.element.style.display=i?"none":""):mn&&(mn.style.display=i?"none":""))},ut=(i,c="user")=>{if(!ke()||ve===i)return;let g=ve;ve=i,Oa();let f=(()=>{let w=o.launcher?.sidebarMode??!1,W=e.ownerDocument.defaultView??window,z=o.launcher?.mobileFullscreen??!0,q=o.launcher?.mobileBreakpoint??640,V=W.innerWidth<=q,Z=At(o)&&z&&V,ae=Ae()&&(o.launcher?.composerBar?.expandedSize??"fullscreen")==="fullscreen";return w||z&&V&&Se||Z||ae})();if(ve&&f){if(!Ro){let w=e.getRootNode(),W=w instanceof ShadowRoot?w.host:e.closest(".persona-host");W&&(Ro=Fm(W,o.launcher?.zIndex??sn))}Ho||(Ho=$m(e.ownerDocument))}else ve||(Ro?.(),Ro=null,Ho?.(),Ho=null);ve&&(Ja(),Pu()||(Dn()==="follow"?Br(!0):yc()));let b={open:ve,source:c,timestamp:Date.now()};ve&&!g?A.emit("widget:opened",b):!ve&&g&&A.emit("widget:closed",b),A.emit("widget:state",{open:ve,launcherEnabled:Se,voiceActive:Ge.active,streaming:P.isStreaming()})},_r={inputDisabled:!1,sendDisabled:!1},Dr=()=>_r.inputDisabled,Ps=()=>_r.inputDisabled||_r.sendDisabled,_A=()=>(_r.inputDisabled?_r.inputReason:void 0)??(_r.sendDisabled?_r.sendReason:void 0);function Iu(){if(!Te)return;if(Me.getState().phase==="streaming"){Te.disabled=!1;return}let i=tt?!tt.isReady():!1;Te.disabled=Ps()||i}function xc(){if(!To)return;let i=Me.getState(),c=o.sendButton?.visibility==="when-text"&&i.phase!=="streaming"&&i.text.trim().length===0&&i.attachments.length===0;To.toggleAttribute("data-persona-send-hidden",c)}function DA(){let i=_A();if(Ae()){let c=go??He;i?c.setAttribute("title",i):c.removeAttribute("title"),He.toggleAttribute(fa,!!i);return}if(i){lt.setAttribute("role","status"),lt.setAttribute("aria-live","polite"),lt.setAttribute(fa,""),lt.textContent=i;return}if(lt.hasAttribute(fa)&&(lt.removeAttribute("role"),lt.removeAttribute("aria-live"),lt.removeAttribute(fa),p)){let c=P.getStatus();Vl(lt,xn(c),o.statusIndicator??{},c)}}function Ru(){let i=hm(o.composer?.inputDisabled),c=hm(o.composer?.sendDisabled);_r={inputDisabled:i.disabled,inputReason:i.reason,sendDisabled:c.disabled,sendReason:c.reason},Me.setInputDisabled(i.disabled),Me.setSendDisabled(c.disabled);let g=Me.getState().phase==="streaming",f=i.disabled,b=g||f;ue&&(ue instanceof HTMLTextAreaElement?ue.disabled=f:ue.setAttribute("contenteditable",f?"false":"true"),ue.setAttribute("aria-disabled",f?"true":"false")),Et&&(Et.disabled=f),vt&&(vt.disabled=f);for(let w of Bt?.affordanceButtons??[])w.querySelectorAll("button").forEach(W=>{W.disabled=f});se&&(se.disabled=b),hs.forEach(w=>{w.elements.forEach(W=>{W.toggleAttribute("data-disabled",b),W instanceof HTMLButtonElement||W.setAttribute("aria-disabled",b?"true":"false")}),w.buttons.forEach(W=>{W.disabled=b})}),_u.forEach(w=>{w.toggleAttribute("data-disabled",b),w instanceof HTMLButtonElement?w.disabled=b:w.setAttribute("aria-disabled",b?"true":"false"),w.querySelectorAll("button").forEach(W=>{W.disabled=b})}),He.dataset.personaComposerStreaming=g?"true":"false",He.dataset.personaComposerInputDisabled=f?"true":"false",He.dataset.personaComposerSendDisabled=Ps()?"true":"false",He.querySelectorAll("[data-persona-composer-disable-when-streaming]").forEach(w=>{(w instanceof HTMLButtonElement||w instanceof HTMLInputElement||w instanceof HTMLTextAreaElement||w instanceof HTMLSelectElement)&&(w.disabled=g)}),Iu(),DA()}let Ba=i=>{Me.setStreaming(i),Yf(i?"stop":"send"),Ru()},ks=()=>{Ge.active||ue&&ue.focus()};A.on("widget:opened",()=>{o.autoFocusInput&&setTimeout(()=>ks(),200)});let Ls=null,_a=!1,Hu=!Sn.hidden,Nr=null,Wu=!E,Sc=null;Ce.push(()=>{Sc?.cancel(),Sc=null});let NA=i=>{let c=sx(i);if(c===Yl)return;Yl=c,e.setAttribute("data-persona-conversation-state",c);let g=ru();Jl(),Wu&&(Sc?.cancel(),Sc=ox(He,c==="active"?g:ru(),c==="active"?"drop":"rise")),Pn()},sy=null,iy,ay=null,xi=null,Ou=!1,Da=i=>{let c=xo(o),g=`${c.variant}|${c.dismiss}|${c.anchor??"bottom"}|${c.align??""}|${c.iconPlacement}|${c.kicker??""}|${c.title}|${c.subtitle}`;(g!==sy||c.icon!==iy)&&(sy=g,iy=c.icon,bp({host:Sn,iconHolder:US,kicker:jS,title:qS,subtitle:zS,starterSuggestions:eu},c));let f=c.message===void 0?null:`${o.layout?.messages?.layout??"bubble"}|${c.message}`;f!==ay&&(ay=f,vp(Bn,c.message,o));let b=i??(P?P.getMessages():o.initialMessages);NA(b);let w=_a,W=!w&&is(c,b),z=W!==Hu;if(Hu=W,xi){Nr?.cancel(),Nr=null,w!==Ou&&(Ou=w,w?of(re,Sn,null):nf(re,Sn,xi)),ia(re,Sn,!w);return}if(z&&!W&&!w&&c.dismiss==="on-first-message"&&Wu){Nr=nx(Sn,V=>{Nr===V&&(Nr=null),!Hu&&!xi&&(ia(re,Sn,!1),Pn()),V?.cancel()});return}if(Nr){if(!W&&!w)return;Nr.cancel(),Nr=null}let q=!Sn.hidden;ia(re,Sn,W),!W&&q&&Pn()},Bu=[],_u=[],Du=!1,ly=null,cy,dy=()=>{_u.length=0;let i=Bu.splice(0,Bu.length);for(let c of i)try{c()}catch(g){console.warn("[persona] renderWelcome cleanup threw",g)}};Ce.push(dy);let FA=(i,c)=>{let g=jm(i,c);if(!g)return o.debug===!0&&console.warn("[persona] renderStarter received a suggestion with no label"),M("span");let f=o.suggestions?.starters,b=qm({item:{...g,behavior:g.behavior??f?.behavior??"send"},index:c,surface:"starter",source:"config",variant:f?.variant??"card",streaming:p?P.isStreaming():!1,config:o,plugins:a,chipsConfig:o.suggestionChipsConfig,session:P,getTextarea:()=>ue,eventTarget:Sn,submitPrompt:Yc});return _u.push(b),b},Nu=()=>{if(Du)return;Du=!0;let i=xo(o);ly=`${i.variant}|${i.dismiss}|${i.title}|${i.subtitle}|${i.message??""}`,cy=i.icon;try{dy(),of(re,Sn,xi),xi=null,Ou=!1;let c=P?P.getMessages():o.initialMessages,g=is(i,c),f=0,b=null;for(let w of a)if(w.renderWelcome&&(b=w.renderWelcome({config:i,variant:i.variant,visible:g,defaultRenderer:()=>Sn,sendMessage:W=>{if(!P||P.isStreaming())return;let z=W.trim();z&&P.sendMessage(z)},requestRender:()=>Nu(),renderStarter:W=>FA(W,f++),storage:u(w.id),onCleanup:W=>{Bu.push(W)}}),b))break;b&&b!==Sn&&(xi=b,nf(re,Sn,b))}finally{Du=!1}Da()},$A=()=>{let i=xo(o);`${i.variant}|${i.dismiss}|${i.title}|${i.subtitle}|${i.message??""}`===ly&&i.icon===cy||Nu()},Ac=()=>{Da(),di||(ue.placeholder=jC(Me.getState().activeModeIds,o.composer?.modes)??o.copy?.inputPlaceholder??"How can I help...",!(o.sendButton?.useIcon??!1)&&!P?.isStreaming()&&(Te.textContent=o.copy?.sendButtonLabel??"Send")),ue.style.fontFamily='var(--persona-input-font-family, var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif))',ue.style.fontWeight="var(--persona-input-font-weight, var(--persona-font-weight, 400))"},UA=!!o.setStoredConversationId,Si=i=>de(c=>{let g={...c};return delete g[i],g}),Mc=i=>{let c=Y[i];return typeof c=="string"?c:null},py=()=>{let i=Y.durableResume;if(!i||typeof i!="object")return null;let c=i;return typeof c.executionId=="string"&&c.executionId.length>0&&typeof c.after=="string"&&c.after.length>0?{executionId:c.executionId,after:c.after}:null};o.clientToken&&(o={...o,getStoredSessionId:()=>Mc("sessionId"),setStoredSessionId:i=>{de(c=>({...c,sessionId:i}))},clearStoredSessionId:o.clearStoredSessionId??(()=>Si("sessionId")),getStoredConversationId:o.getStoredConversationId??(()=>Mc("conversationId")),setStoredConversationId:o.setStoredConversationId??(i=>{de(c=>({...c,conversationId:i}))}),clearStoredConversationId:o.clearStoredConversationId??(()=>Si("conversationId"))});let uy=()=>o.clientToken??null,gy=i=>_x(i,po(),o.persistState===!1),my=uy(),sr=my?gy(my):null,ir={...sr?{visitorStore:sr}:{},historyBootstrapReady:H,getStoredMessageCursor:()=>Mc("historyMessageCursor"),setStoredMessageCursor:i=>{if(i===null){Si("historyMessageCursor");return}de(c=>({...c,historyMessageCursor:i}))},getPendingDisplayProjections:()=>{let i=Y.pendingDisplayProjections;if(!i||typeof i!="object")return null;let c=i;return typeof c.conversationId!="string"||!Array.isArray(c.messageIds)?null:{conversationId:c.conversationId,messageIds:c.messageIds.filter(g=>typeof g=="string")}},setPendingDisplayProjections:i=>{if(!i){Si("pendingDisplayProjections");return}de(c=>({...c,pendingDisplayProjections:i}))},getStoredResumableHandle:py,setStoredResumableHandle:i=>{if(!i){Si("durableResume");return}de(c=>({...c,durableResume:i}))},shouldResumeDurableConversation:()=>ce&&py()!==null,...UA?{}:{getStoredConversationRevision:()=>Mc("conversationRevision"),setStoredConversationRevision:i=>{if(i===null){Si("conversationRevision");return}de(c=>({...c,conversationRevision:i}))}}};if(ce){let i=o.onExecutionState,c=e.ownerDocument.defaultView,g=!1,f=()=>g=!0,b=()=>g=!1;c?.addEventListener("pagehide",f),c?.addEventListener("pageshow",b),Ce.push(()=>{c?.removeEventListener("pagehide",f),c?.removeEventListener("pageshow",b)}),o={...o,reconnectStream:o.reconnectStream??(w=>P.getClient().reconnectClientTokenStream(w)),onExecutionState:w=>{(w||!g)&&ir.setStoredResumableHandle?.(w?{executionId:w.executionId,after:w.lastEventId}:null),i?.(w)}}}let jA=()=>{let i=uy();if(i&&sr?.matches(i,po(),o.persistState===!1)||!i&&!sr)return;sr?.destroy(),sr=i?gy(i):null;let c={...ir};sr?c.visitorStore=sr:delete c.visitorStore,ir=c,P.setHistoryInternals(ir)},Is=null,qA=()=>{Is==null&&(Is=setInterval(()=>{let i=Ie.querySelectorAll("[data-tool-elapsed]");if(i.length===0){clearInterval(Is),Is=null;return}let c=Date.now();i.forEach(g=>{let f=Number(g.getAttribute("data-tool-elapsed"));f&&(g.textContent=wd(c-f))})},100))},Fu=(i,c)=>{if(Object.is(i,c))return!0;if(i===null||c===null||typeof i!="object"||typeof c!="object")return!1;if(Array.isArray(i)||Array.isArray(c))return!Array.isArray(i)||!Array.isArray(c)||i.length!==c.length?!1:i.every((W,z)=>Fu(W,c[z]));let g=i,f=c,b=Object.keys(g),w=Object.keys(f);return b.length===w.length&&b.every(W=>Object.prototype.hasOwnProperty.call(f,W)&&Fu(g[W],f[W]))},fy=i=>{let{content:c,rawContent:g,llmContent:f,...b}=i;return b},$u=i=>i.role==="assistant"&&i.streaming===!0&&!i.variant&&!i.toolCall&&!i.tools&&!i.approval&&!i.reasoning&&!i.contentParts&&!i.stopReason&&!Ul(i),zA=(i,c,g)=>{if(i.length!==c.length)return!1;let f=i[g.index],b=c[g.index];return!f||!b||f.id!==g.id||b.id!==g.id?!1:(!Object.is(f.content,b.content)||!Object.is(f.rawContent,b.rawContent)||!Object.is(f.llmContent,b.llmContent))&&$u(f)&&$u(b)&&Fu(fy(f),fy(b))},Uu=null,Ai=null,Rs=null,ar=null,ju=null,VA=i=>{if(!ce)return bi(i);ju=i,queueMicrotask(()=>{ju===i&&(ju=null,bi(i))})},Ec=i=>{Uu=i;let c,g;Ai=null;for(let b=i.length-1;b>=0;b-=1){let w=i[b];if(!c&&w.role==="user"&&(c=w),!g&&w.role==="assistant"&&(g=w),!Ai&&$u(w)&&(Ai={index:b,id:w.id}),c&&g&&Ai)break}Jn(Ie,i,ft),Cr()?.updateInlineArtifactBlocks(Ie,Xn.artifacts,{suppressTransition:Nn}),qA(),Da(i),mi(i),Br(!Nn),IA(i),i.length===0&&(bo(),Pa=!0,pc=!1,yi=null,uc=!1),!wu||hi?(wu=!0,As=c?.id??null,xu=g?.id??null):c&&c.id!==As?(As=c.id,EA(c.id)):g&&g.id!==xu&&TA(),g&&(xu=g.id),LA(i);let f=Ge.lastUserMessageId;c&&c.id!==f&&(Ge.lastUserMessageId=c.id,A.emit("user:message",c)),Ge.lastUserMessageWasVoice=!!c?.viaVoice,VA(i),wi()},qu=()=>{ar!==null&&(cancelAnimationFrame(ar),ar=null);let i=Rs;Rs=null,i&&Ec(i)},hy=()=>{ar!==null&&cancelAnimationFrame(ar),ar=null,Rs=null},KA=i=>{let c=Rs??Uu;if(Nn&&c&&Ai&&zA(c,i,Ai)){Rs=i,ar===null&&(ar=requestAnimationFrame(()=>{ar=null;let g=Rs;Rs=null,g&&Ec(g)}));return}if(i.length===0){hy(),Ec(i);return}qu(),Ec(i)};P=new Yi(o,{onMessagesChanged(i){KA(i)},onStatusChanged(i){let c=o.statusIndicator??{};Vl(lt,(f=>f==="idle"?c.idleText??$t.idle:f==="connecting"?c.connectingText??$t.connecting:f==="connected"?c.connectedText??$t.connected:f==="error"?c.errorText??$t.error:f==="paused"?c.pausedText??$t.paused:f==="resuming"?c.resumingText??$t.resuming:$t[f])(i),c,i),Yo()},onStreamingChanged(i){i||(P?.getMessages().length===0?hy():qu()),Nn=i,Ba(i),Yo(),P&&Jn(Ie,P.getMessages(),ft),i||(Br(!0),AA(),Uh=!0,P&&jh(P.getMessages(),Zr(o))),Vt(),Ql(i?"Responding\u2026":"Response complete."),wi()},onVoiceStatusChanged(i){if(A.emit("voice:status",{status:i,timestamp:Date.now()}),o.voiceRecognition?.provider?.type==="runtype")switch(i){case"listening":ur(),Oi();break;case"processing":ur(),QM();break;case"speaking":ur(),YM();break;default:i==="idle"&&P.isBargeInActive()?(ur(),Oi(),se?.setAttribute("aria-label","End voice session")):(Ge.active=!1,ur(),or("system"),yo());break}},onArtifactsState(i){Xn=i,i.artifacts.length===0&&(pi=!1),Cr()?.updateInlineArtifactBlocks(Ie,i.artifacts,{suppressTransition:Nn}),ho(),bi()},onHistoryStateChanged(i){Ot(i)},onHistoryNotice(i){Pt(i)},onReconnect(i){let{executionId:c,lastEventId:g}=i.handle;i.phase==="paused"?A.emit("stream:paused",{executionId:c,after:g}):i.phase==="resuming"?A.emit("stream:resuming",{executionId:c,after:g,attempt:i.attempt??1}):A.emit("stream:resumed",{executionId:c,after:g})}},ir),dt.current=P,Ce.push(()=>P.cancel()),Ce.push(()=>{P.destroy(),sr?.destroy()});let zu=null;if(P.onReadAloudChange((i,c)=>{vh=i,Ch=c,wh();let g=i??zu;i&&(zu=i);let f=g?P.getMessages().find(b=>b.id===g)??null:null;A.emit("message:read-aloud",{messageId:g,message:f,state:c,timestamp:Date.now()}),c==="idle"&&(zu=null)}),p=!0,wu=!0,o.voiceRecognition?.provider?.type==="runtype")try{P.setupVoice()}catch(i){typeof console<"u"&&console.warn("[AgentWidget] Runtype voice setup failed:",i)}let GA=720,QA=250,Ze=Lf(o.features?.history?.copy),Un=null,Vu=!1,ct=null,Tc=null,Pc="conversation",Ku=null,gn=null,Wo=null,kc=P.getHistoryState(),Gu=null,Na=0,Qu=null,Lc=null,Ic=null,Yu=`persona-history-${Math.random().toString(36).slice(2,8)}`,Xu=()=>o.features?.history?.enabled===!0,Oo=()=>Xu()&&!!Un&&!Vu,yy=()=>{let i=P.getStatus();return Nn||i==="paused"||i==="resuming"},Ju=()=>{let i=o.features?.history?.scope;if(i)return i;let c=o.getIdentityProof?"verified-user":"browser",g=Un?.capabilities.scopes;return!g||g.includes(c)?c:g[0]??c},Mi=()=>Tc?.scope??Ju(),by=()=>P.getClientSession()?.targetId??null,vy=i=>`${i.state}:${"reason"in i?i.reason:""}`,YA=i=>{let c=vy(i);c!==Gu&&(Gu=c,A.emit("history:identityStatusChanged",{status:i,timestamp:Date.now()}))},Rc=i=>{i&&(Xo.textContent="",Xo.textContent=i)},Cy=null,wy=null,XA=()=>{if(!Xu())return null;let i=$x();if(i)return i();let c=o.features?.history?.provider;return c?typeof c!="function"?c:(Cy!==c&&(Cy=c,wy=c()),wy):P.isClientTokenMode()?Ux({client:P.getClient(),getIdentityProofConfigured:()=>typeof o.getIdentityProof=="function",onActivationCommitted:g=>P.bindActivatedSession(g),getClient:()=>P.getClient()}):null},xy=()=>{Lc?.(),Lc=null,Ic?.(),Ic=null,Vu=!1,Un=XA();let i={...ir};Un?i.historyProvider=Un:delete i.historyProvider,ir=i,P.setHistoryInternals(ir),Un&&(Lc=Un.subscribeAvailability?.(c=>{Vu=!c,c||kn({restoreFocus:!1}),$r()})??null,Ic=Un.subscribeIdentityStatus(c=>YA(c)),Gu=vy(Un.getIdentityStatus()))},Zu=()=>{let i=o.features?.history?.presentation??"panel";if(i==="panel"||i==="auto"&&!(!Se||At(o)))return"panel";let c=Io??fe;return(c.getBoundingClientRect().width||c.clientWidth)>=GA?"rail":"panel"},Zn=(i,c)=>{c?(i.setAttribute("aria-hidden","true"),i.setAttribute("inert","")):(i.removeAttribute("aria-hidden"),i.removeAttribute("inert"))},Hc="data-persona-history-suppressed",jn=null,Fr=null,Hs=null,Fa=null,eg=null,Sy="",Ay=()=>Pe===eg?Sy:o.layout?.showHeader===!1?"none":"",JA=()=>pe==="panel"&&!!Hs&&Fa===Hs.element&&o.layout?.showHeader!==!1&&Ay()!=="none",ZA=()=>{for(let i of Array.from(Pe.children))i!==jn&&i.setAttribute(Hc,"")},eM=()=>{for(let i of Array.from(fe.querySelectorAll(`[${Hc}]`)))i.removeAttribute(Hc)},tM=()=>{let i=Hs;if(!i)return;if(Array.from(Pe.children).some(f=>f!==jn&&!f.hasAttribute(Hc))){Fr&&Fr!==Pe&&(Fr.style.removeProperty("min-height"),Fr=null);let f=Pe.offsetHeight;f>0&&(Pe.style.minHeight=`${f}px`,Fr=Pe)}jn||(jn=M("div","persona-history-header-host")),i.setHeaderPlacement("external");let g=i.getHeaderElement();g.parentNode!==jn&&jn.replaceChildren(g),jn.parentNode!==Pe&&Pe.appendChild(jn),ZA()},My=()=>{Fr&&(Fr.style.removeProperty("min-height"),Fr=null),jn&&(Hs?.setHeaderPlacement("inline"),jn.remove(),jn=null,eM())},Wc=null,tg=()=>{if(Wc){if(re.style.display="none",Zn(re,!0),He.hidden=!0,Zn(He,!0),JA()){tM(),Pe.style.display=Ay(),Zn(Pe,!1);return}My(),Pe.style.display="none",Zn(Pe,!0)}};Ut=tg;let nM=i=>{let c=re.style.display,g=He.hidden,f=He,b=Pe,w=Pe.style.display;eg=b,Sy=w,Wc=()=>{Wc=null,My(),eg=null,re.style.display=c,Zn(re,!1),f.hidden=g,Zn(f,!1),He!==f&&(He.hidden=!1,Zn(He,!1)),b.style.display=w,Zn(b,!1),Pe!==b&&(Pe.style.display=o.layout?.showHeader===!1?"none":"",Zn(Pe,!1))},He.parentNode?.insertBefore(i,He),tg()},Ei=null,Ws=null,$a=null,Ti=null,Ey=()=>[Pe,Ue.closeButtonWrapper,Ue.clearChatButtonWrapper,re,He],oM=52,Oc=()=>o.features?.history?.rail?.collapsible!==!1,Pi=()=>o.features?.history?.rail?.side==="right"?"right":"left",ng=200,og=400,rg=i=>Math.min(og,Math.max(ng,Math.round(i))),rM=()=>o.features?.history?.rail?.resizable===!0,Ua,sM=()=>{if(Ua===void 0&&(Ua=null,o.persistState!==!1))try{let i=Number(window.localStorage.getItem(`${po()}rail-width`));i&&(Ua=i)}catch{}return Ua},ja=()=>rg(sM()??o.features?.history?.rail?.width??260),iM=i=>{if(Ua=i,o.persistState!==!1)try{window.localStorage.setItem(`${po()}rail-width`,String(i))}catch{}},Bc=()=>Oc()&&o.features?.history?.rail?.collapsedBehavior==="overlay",Nt=!1,Ty=i=>{let c=M("img");return c.src=i,c.alt="",c.setAttribute("aria-hidden","true"),c},aM=()=>{let i=o.features?.history?.rail?.brand;if(!i)return;let c=!1,g;return f=>{if(i.render)try{return i.render({collapsed:f})??null}catch(b){return c||(c=!0,console.warn("[persona] history rail brand threw",b)),null}return g===void 0&&(i.iconUrl?g=Ty(i.iconUrl):g=i.icon?ge(i.icon,20):null),g?g.cloneNode(!0):null}},lM=()=>o.features?.history?.rail?.sections?.map(i=>{let c=!1,g=f=>{c||(c=!0,console.warn("[persona] history rail section threw",i.id,f))};return{id:i.id,title:i.title,placement:i.placement??"above-conversations",items:i.items.map(f=>{let b;return{id:f.id,label:f.label,badge:f.badge,iconNode:()=>{if(b!==void 0)return b;try{f.renderIcon?b=f.renderIcon()??null:f.iconUrl?b=Ty(f.iconUrl):b=f.icon?ge(f.icon,20):null}catch(w){g(w),b=null}return b},onSelect:()=>{try{f.onSelect()}catch(w){g(w)}}}})}})??[],cM=i=>{let c=lM();for(let g of i)c.some(f=>f.id===g.id)?console.warn("[persona] duplicate history rail section id",g.id):c.push(g);return c.length?c:void 0},qa=null,Py=()=>`${po()}rail-collapsed`,sg=()=>{if(qa===null&&(qa=o.features?.history?.rail?.defaultCollapsed===!0,o.persistState!==!1))try{let i=window.localStorage.getItem(Py());i&&(qa=i==="1")}catch{}return qa},ig=i=>{if(qa=i,o.persistState!==!1)try{window.localStorage.setItem(Py(),i?"1":"0")}catch{}},za=()=>pe==="rail"&&Oc()&&!Bc()&&sg(),ag=()=>{},ky=()=>{if(Bc()){ag();return}ig(!sg()),ct?.view.setCollapsed(za()),_e(),Pn()},lg=()=>{let i=o.features?.history?.rail?.collapseShortcut;return!i||!sp(i)?null:{combo:i,hint:ip(i),aria:Sl(i)}},Ly=()=>{d.forEach(c=>c()),d=[];let i=lg();i&&d.push(l.register({id:"history-rail-collapse",combo:i.combo,scope:o.features?.history?.rail?.collapseShortcutScope==="page"?"page":"widget",when:()=>le&&pe==="rail"&&Oc()||Li(),run:()=>Bc()?ag():ky()}));for(let c of o.layout?.header?.trailingActions??[])c.shortcut&&d.push(l.register({id:`header-action-${c.id}`,combo:c.shortcut,run:()=>{let g=e.querySelector(`[data-persona-header-action="${c.id}"]`);g?g.click():o.layout?.header?.onAction?.(c.id)}}));for(let c of a)for(let g of c.shortcuts??[])d.push(l.register({...g,id:`${c.id}:${g.id}`}))};Ly();let dM=300,_c="var(--persona-history-overlay-margin,8px)",eo=null,lr=null,Dc=0,cr=null,ki=null,Os=!1,cg=0,Iy=()=>window.matchMedia?.("(pointer: coarse)").matches===!0,Li=()=>Oo()&&Bc()&&(pe??Zu())==="rail",pM=()=>le&&!Nt,Va=()=>{ki!==null&&clearTimeout(ki),ki=null},uM=()=>{Tf().catch(()=>{})},Ry=()=>{Va(),Nt&&(ki=setTimeout(()=>{ki=null,!(Os||!Nt)&&(cr?.contains(document.activeElement)||kn({restoreFocus:!1}))},dM))},gM=(i,c)=>{let g=cr?.getBoundingClientRect();if(!g)return!1;let f=eo?.getBoundingClientRect(),b=f?Math.min(f.top,g.top):g.top;return i>=g.left&&i<=g.right&&c>=b&&c<=g.bottom||!!f&&i>=f.left&&i<=f.right&&c>=f.top&&c<=f.bottom},dg=i=>{Nt&&(Os=gM(i.clientX,i.clientY),Os?Va():ki===null&&Ry())},Hy=i=>{le||!Li()||(Nt=!0,Ga({invoker:eo,keyboard:i?.keyboard===!0}).then(()=>{le?!Os&&document.activeElement!==eo&&kn():Nt=!1}))},Wy=()=>{let i=Fa?.querySelector('[data-persona-history-focus="collapse"]');i&&(i.setAttribute("aria-label",Nt?Ze.expandLabel:Ze.collapseLabel),i.setAttribute("aria-expanded",Nt?"false":"true"))},Oy=()=>{ig(!1);let i=ct;if(!Nt||!i){Ga({invoker:eo});return}let c=document.activeElement===eo;Nt=!1,Nc(),i.element.remove(),ug(i.element),Wy(),c&&$c(),Pn(),$r()},mM=()=>{ig(!0),kn()};ag=()=>{!le||Nt?Oy():mM()};let fM=()=>{let i=lg(),c=Ys({ariaLabel:Ze.expandLabel,iconName:"panel-left",wrapperClassName:"persona-relative persona-inline-flex persona-items-center persona-justify-center",extraClassName:"persona-rail-trigger",tooltip:!1,attrs:{"data-persona-rail-trigger":"","aria-controls":Yu,...i?{"aria-keyshortcuts":i.aria}:{}}}),g=c.button;g.addEventListener("mouseenter",()=>{Os=!0,Va(),!(Iy()||Date.now()<cg)&&Hy()}),g.addEventListener("mouseleave",()=>{Os=!1,cg=0,Ry()}),g.addEventListener("focus",()=>{le||uM()}),g.addEventListener("click",f=>{Oo()&&(f.detail!==0&&Iy()&&!le?Hy():Oy())}),eo=g,lr=c.wrapper},Ka=()=>{if(lr&&!lr.isConnected&&(lr=null,eo=null),!Li()){lr?.remove(),lr=null,eo=null;return}eo||fM();let i=lr,c=eo;if(!i||!c)return;let g=Pi()!=="right"?Pe.firstChild:null;(g??Pe.lastChild)!==i&&Pe.insertBefore(i,g),i.style.display=pM()||Dc>0?"none":"",c.setAttribute("aria-label",Ze.expandLabel),c.setAttribute("aria-expanded",le?"true":"false"),cr&&_e()},By=i=>{if(!Nt)return;let c=i.target;c instanceof Node&&(cr?.contains(c)||lr?.contains(c)||c instanceof Element&&c.closest('.persona-dropdown-menu,[role="alertdialog"]')||kn({restoreFocus:!1}))};document.addEventListener("pointerdown",By,!0),Ce.push(()=>{document.removeEventListener("pointerdown",By,!0),document.removeEventListener("pointermove",dg),Ii?.(),Va()});let pg=null,Ii=null,_y=16,Dy=i=>{iM(rg(i)),_e(),Pn()},hM=()=>{let i=M("div","persona-rail-resizer");return i.tabIndex=0,i.setAttribute("role","separator"),i.setAttribute("aria-orientation","vertical"),i.setAttribute("aria-valuemin",String(ng)),i.setAttribute("aria-valuemax",String(og)),i.addEventListener("pointerdown",c=>{let g=Ws;if(!g||c.button!==0)return;c.preventDefault(),Ii?.();let f=c.clientX,b=g.getBoundingClientRect().width||ja(),w=Pi()==="right"?-1:1,W=b,z=e.ownerDocument;g.style.transition="none";let q=Z=>{W=rg(b+w*(Z.clientX-f)),g.style.flex=`0 0 ${W}px`,i.setAttribute("aria-valuenow",String(W))},V=()=>{Ii=null,z.removeEventListener("pointermove",q),z.removeEventListener("pointerup",V),z.removeEventListener("pointercancel",V),g.style.removeProperty("transition");try{i.releasePointerCapture(c.pointerId)}catch{}Dy(W)};Ii=V,z.addEventListener("pointermove",q),z.addEventListener("pointerup",V),z.addEventListener("pointercancel",V);try{i.setPointerCapture(c.pointerId)}catch{}}),i.addEventListener("keydown",c=>{let g=Pi()==="right"?-_y:_y,f=ja(),b=c.key==="ArrowRight"?f+g:c.key==="ArrowLeft"?f-g:c.key==="Home"?ng:c.key==="End"?og:null;b!==null&&(c.preventDefault(),Dy(b))}),i},yM=(i,c)=>{if(!rM()||za()){Ii?.(),pg?.remove();return}let g=pg??hM();pg=g,g.setAttribute("aria-label",Ze.resizeLabel),g.setAttribute("aria-valuenow",String(ja())),g.nextElementSibling!==c&&i.insertBefore(g,c)};_e=()=>{ct?.view.setRailSide(Pi());let i=Pi()==="right",c=cr;if(c){let z=eo?eo.getBoundingClientRect().bottom-fe.getBoundingClientRect().top:0;c.style.top=`calc(${Math.max(0,Math.round(z))}px + ${_c})`,c.style.width=`${ja()}px`,c.style.left=i?"":_c,c.style.right=i?_c:""}let g=Ws,f=Ei,b=$a;if(!g||!f||!b)return;g.style.flex=`0 0 ${za()?oM:ja()}px`;let w="1px solid var(--persona-divider,#e5e7eb)";g.style.borderRight=i?"":w,g.style.borderLeft=i?w:"";let W=i?b:g;f.firstElementChild!==W&&f.append(W,i?g:b),yM(f,i?g:b)};let Ny=i=>{if(Ti&&Ws){Ti.replaceWith(i),Ti=null,_e();return}let c=M("div","persona-history-rail-shell");c.style.cssText="display:flex;flex-direction:row;flex:1 1 auto;min-height:0";let g=M("div","persona-history-rail-conversation");g.style.cssText="display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;position:relative";let f=M("div","persona-history-rail-host");f.style.cssText="display:flex;min-height:0;overflow:hidden",fe.insertBefore(c,Pe.parentNode===fe?Pe:re);for(let b of Ey())b?.parentNode===fe&&g.appendChild(b);c.append(f,g),f.appendChild(i),Ei=c,Ws=f,$a=g,_e()},bM=()=>{if(Ei)return;let i=M("div","persona-history-rail-placeholder");i.style.cssText="flex:1 1 auto;min-height:0",Ti=i,Ny(i),Pn()},Fy=()=>{Ti&&(Nc(),Pn())},vM=i=>{let c=M("div","persona-history-rail-overlay");c.style.cssText=`position:absolute;bottom:${_c};display:flex;overflow:hidden;z-index:${Xi-1};border-radius:var(--persona-history-overlay-radius,16px);background:var(--persona-history-overlay-bg,var(--persona-container,#f7f7f8));box-shadow:var(--persona-history-overlay-shadow,0 12px 40px rgba(0,0,0,0.25))`,fe.style.position="relative",fe.appendChild(c),c.appendChild(i),document.addEventListener("pointermove",dg),cr=c,_e(),Wy()},Nc=()=>{Wc?.(),cr&&(Os&&(cg=Date.now()+150),document.removeEventListener("pointermove",dg),cr.remove(),cr=null);let i=Ei;if(i){Ii?.();for(let c of Ey())c&&i.contains(c)&&fe.insertBefore(c,i);i.remove(),Ei=null,Ws=null,$a=null,Ti=null}},$y=i=>{Fa=i,i.id=Yu,i.style.flex="1 1 auto",i.style.minHeight="0"},ug=i=>{$y(i),(pe!=="rail"||Nt)&&Fy(),pe!=="rail"?nM(i):Nt?vM(i):Ny(i)},Fc=()=>{if(Ka(),Jy(),!le||!ct)return;let i=Zu();if(i===pe)return;let c=document.activeElement,g=c instanceof HTMLElement&&(ct.element.contains(c)||jn?.contains(c)===!0)?c:null;Nc(),ct.element.remove(),ct.view.setHeaderPlacement("inline"),pe=i,ct.view.setPresentation(i),ct.view.setCollapsed(za()),ct.requestRender(),ct.element.isConnected||ug(ct.element),g?.isConnected?g.focus():$c(),Vt(),Pn(),$r()},Uy=(i,c)=>jn?.querySelector(c)??i.querySelector(c),$c=()=>{let i=ct?.element??Fa;if(!i)return;let c=Uy(i,'[data-persona-history-focus="close"],[data-persona-history-focus="collapse"]');if(c){c.focus();return}let g=Uy(i,".persona-history-title")??i;g.tabIndex=-1,g.focus()},Ga=async i=>{if(!Oo()||le)return;let c=Un;if(!c)return;if(!Nt&&Li()&&sg()){Ka();return}Uc();let g=++Na;Pc=i?.returnSurface??"conversation",Ku=i?.invoker??gn;let f=Li()&&!Nt;f&&(Dc+=1,Ka(),bM());let b;try{b=await Tf()}catch{Rc(Ze.openHistoryLabel),f&&(Dc-=1,g===Na&&(Fy(),Ka()));return}if(f&&(Dc-=1),g!==Na||le)return;Tc={scope:Ju()},pe=Zu(),le=!0;let w=pe==="panel"&&o.layout?.showHeader!==!1&&Pe.style.display!=="none"?"external":"inline",W=o.features?.history?.rowAvatar,z=lg(),q=z?{hint:z.hint,aria:z.aria}:null,V={provider:c,context:Tc,targetId:by(),presentation:pe,collapsible:Oc(),collapsed:za(),railSide:Pi(),renderRailHeader:o.features?.history?.rail?.renderHeader,railBrand:aM(),onToggleCollapse:ky,...q?{collapseShortcut:q}:{},headerPlacement:w,showScopeStatus:o.features?.history?.showScopeStatus!==!1,showDelete:o.features?.history?.showDelete!==!1,showDeleteAll:o.features?.history?.showDeleteAll!==!1,...o.features?.history?.listActions?.length?{listActions:o.features.history.listActions}:{},rowAvatar:W===!1?!1:typeof W=="string"?W:o.launcher?.iconUrl,activeConversationId:P.getActiveConversationId(),...o.features?.history?.grouping?{grouping:o.features.history.grouping}:{},...o.features?.history?.copy?{copy:o.features.history.copy}:{},...o.features?.history?.pageSize!==void 0?{pageSize:o.features.history.pageSize}:{},onSelect:Z=>mg(Z,{focusComposer:!0}).catch(()=>{}),onActiveConversationChange:Z=>Bs(Z),attachTooltip:nn,onStartNew:()=>fg({focusComposer:!0}),onClose:()=>kn(),onRequestDeleteConversation:Z=>Xy(Z),onRequestClearHistory:()=>MM(),...c.resetDevice?{onRequestResetIdentity:()=>EM()}:{}};ct=Fx({plugins:a,config:o,getPresentation:()=>pe??"panel",getReturnSurface:()=>Pc,close:()=>kn(),createView:({slots:Z,renderDom:ae,onModelChange:ye,railSections:et})=>(Hs=b.createHistoryView({...V,railSections:cM(et),slots:Z,renderDom:ae,onModelChange:ye,onAnnounce:Rc}),Hs),onElementChanged:(Z,ae)=>{if(!ae?.isConnected)return ug(Z);$y(Z),ae.replaceWith(Z),tg()}}),ct.view.setNewConversationRequired(kc.recovery==="new_conversation_required"),i?.focus!==!1&&(pe!=="rail"||i?.keyboard===!0)&&$c(),Vt(),Pn(),$r(),A.emit("history:opened",{presentation:pe,returnSurface:Pc,timestamp:Date.now()})},Uc=()=>{},kn=i=>{if(!le)return;Na+=1;let c=Pc,g=Ku,f=ct,b=i?.restoreFocus!==!1;le=!1;let w=!1,W=null,z=()=>{if(!w){if(w=!0,Uc=()=>{},W!==null&&clearTimeout(W),Nt=!1,Va(),Nc(),f?.dispose(),f?.view.destroy(),f?.element.remove(),ct===f&&(ct=null,Hs=null,Fa=null,pe=null,Tc=null,Ku=null),Vt(),Pn(),$r(),b){let V=g??gn;V?.isConnected?V.focus():ks()}A.emit("history:closed",{returnSurface:c,timestamp:Date.now()})}},q=f&&f.element===f.view.element?f.view.playExit():null;if(!q){z();return}Uc=z,W=setTimeout(z,QA),q.then(z)},jy=i=>{if(!(i.key!=="Escape"||!le||!ct)){if(pe==="rail"){let c=i.target;if(!(c instanceof Node)||!(ct.element.contains(c)||Nt&&lr?.contains(c)===!0))return}i.preventDefault(),i.stopPropagation(),kn()}};fe.addEventListener("keydown",jy),Ce.push(()=>fe.removeEventListener("keydown",jy));let jc=null,qy=!1,Qa=()=>{if(!Tr)return;let i=o.layout?.header?.titleSource==="conversation",c=i&&jc?.trim()||null;Tr.textContent=c??o.launcher?.title??"Chat Assistant";let g=Tr.closest(".persona-combo-btn");if(!g)return;let f=!i||P.getActiveConversationId()!==null;g.setAttribute("data-persona-menu-locked",f?"false":"true"),g.setAttribute("aria-haspopup",f?"true":"false"),f||g.setAttribute("aria-expanded","false"),g.style.cursor=f?"pointer":"default";let b=g.querySelector("svg");b&&(b.style.display=f?"":"none")},CM=i=>{i!==jc&&(jc=i,Qa())},Bs=i=>{qy=i?.starred===!0,CM(i&&i.title.trim()||null),Qa()};Qa(),fe.addEventListener("persona:title-menu-builtin",i=>{let c=i.detail?.actionId,g=P.getActiveConversationId();g&&(c==="delete"?Xy(g):c==="star"&&P.canUpdateConversations()&&hg(g,{starred:!qy}).catch(()=>{}))});let qc=0,wM=250,zc=null,Vc=()=>{zc&&clearTimeout(zc),zc=null};Ce.push(Vc);let zy=()=>{Vc();let i=Ls;i&&(_a=!0,i.hidden=!1,Ie.style.display="none",Da())},Kc=()=>{qc+=1,Vc(),Ls&&(Ls.remove(),Ls=null,_a=!1,Ie.style.removeProperty("display"),Zn(He,!1),Da())},xM=()=>{try{if(window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches)return;Ie.animate([{opacity:0},{opacity:1}],{duration:150,easing:"ease-out"})}catch{}},gg=(i,c)=>X("div",{className:hn("persona-conversation-loading-bubble",c&&"persona-conversation-loading-bubble--trailing"),attrs:{"aria-hidden":"true"},style:{width:i}}),Vy=()=>X("div",{className:"persona-conversation-loading-body"},gg("58%",!1),gg("72%",!0),gg("44%",!1)),Ky=i=>{Ls?.remove(),Ls=i,i.hidden=!_a,re.insertBefore(i,Ie),Vc(),_a||(zc=setTimeout(zy,wM)),Zn(He,!0)},SM=()=>{let i={config:o,streaming:!1,location:"conversation-open",defaultRenderer:Vy},c=null,g=a.find(f=>f.renderLoadingIndicator);g?.renderLoadingIndicator&&(c=g.renderLoadingIndicator(i)),c===null&&o.loadingIndicator?.render&&(c=o.loadingIndicator.render(i)),Ky(X("div",{className:"persona-conversation-loading",attrs:{role:"status","aria-label":Ze.openConversationLoadingLabel}},c??Vy()))},AM=i=>{let c=()=>{mg(i,{focusComposer:!0}).catch(()=>{})},g=Oo()?()=>{Kc(),Ga()}:void 0,f=(z,q)=>{let V=X("button",{className:"persona-conversation-loading-error-action",attrs:{type:"button"},text:z});return V.addEventListener("click",q),V},b=()=>X("div",{className:"persona-conversation-loading-error-body"},X("p",{className:"persona-conversation-loading-error-title",text:Ze.openConversationErrorTitle}),X("div",{className:"persona-conversation-loading-error-actions"},f(Ze.openConversationRetryLabel,c),g?f(Ze.openConversationBackLabel,g):null)),w=Object.freeze({conversationId:i,config:o,copy:Object.freeze({title:Ze.openConversationErrorTitle,retryLabel:Ze.openConversationRetryLabel,backLabel:Ze.openConversationBackLabel}),retry:c,...g?{back:g}:{},defaultRenderer:b}),W=null;for(let z of a)if(z.renderHistoryOpenError){try{W=z.renderHistoryOpenError(w)}catch(q){console.warn("[persona] renderHistoryOpenError threw",q),W=null}if(W)break}Ky(X("div",{className:"persona-conversation-loading-error",attrs:{role:"alert"}},W??b())),zy()};A.on("history:closed",()=>{Ls&&Zn(He,!0)});let mg=async(i,{focusComposer:c=!1}={})=>{let g=Mi(),f=!!ct;ct?.view.setActiveConversationId(i),Kc();let b=qc;SM(),le&&(pe==="panel"||Nt)&&kn({restoreFocus:!1}),hi=!0;try{await P.openConversation(i,{scope:g})}catch(w){throw b===qc&&AM(i),w}finally{hi=!1}b===qc&&(Kc(),Dt.clear(),bo(),Tn(),Pu()||yc(),xM(),dr(),f||Bs(null),A.emit("history:conversationOpened",{conversationId:i,title:jc,scope:g,timestamp:Date.now()}),c&&ks())},fg=async({focusComposer:i=!1}={})=>{Kc(),await P.startNewConversation({scope:Mi()}),Bs(null),Dt.clear(),bo(),Tn(),yc(),dr();let c=P.getActiveConversationId();ct?.view.setActiveConversationId(c),A.emit("history:conversationStarted",{conversationId:c,timestamp:Date.now()}),le&&(pe==="panel"||Nt)&&kn({restoreFocus:!1}),i&&ks()},hg=async(i,c)=>{let g=await P.updateConversation(i,{...c,...c.title!==void 0?{title:c.title.trim()}:{}});return ct?.view.applyConversationSummary(g),!ct&&i===P.getActiveConversationId()&&Bs(g),g},Gy=async i=>{let c=Mi(),g=P.getActiveConversationId()===i;await P.deleteConversation(i,{scope:c}),ct?.view.removeConversationSummary(i),g&&(Bs(null),Dt.clear(),bo(),Tn(),dr()),A.emit("history:conversationDeleted",{conversationId:i,scope:c,wasActive:g,timestamp:Date.now()})},Qy=async i=>{let c=i?.scope??Mi(),g=i?.allTargets?null:i?.targetId??by(),f=await P.clearConversationHistory({...g?{targetId:g}:{},scope:c});return Bs(null),Dt.clear(),bo(),Tn(),dr(),A.emit("history:cleared",{deleted:f.deleted,scope:c,targetId:g,timestamp:Date.now()}),f},Yy=async()=>{if(!Un?.resetDevice)throw new Error("[Persona] resetHistoryIdentity() requires a history provider that can reset this device");let i=!1;try{i=(await P.resetHistoryDevice()).remoteRevocationConfirmed}finally{Bs(null),P.clearArtifacts(),Dt.clear(),Uu=null,o.clearStoredSessionId?.(),o.clearStoredConversationId?.(),Y={},Oe.syncFromMetadata(),Q?.clear&&mc(()=>Q.clear(),"[AgentWidget] Failed to clear storage adapter:"),bo(),Tn(),dr(),kn({restoreFocus:!1}),ks(),ve||Lt?.launcher.element.focus()}return Rc(i?Ze.identityResetNotice:Ze.identityResetUnconfirmedNotice),A.emit("history:identityReset",{remoteRevocationConfirmed:i,timestamp:Date.now()}),{remoteRevocationConfirmed:i}},yg=()=>Io?Ee:fe,Xy=async i=>await Hp({host:yg(),title:Ze.deleteConversationConfirmTitle,description:Ze.deleteConversationConfirm,confirmLabel:Ze.deleteConversationConfirmLabel,cancelLabel:Ze.confirmCancelLabel})?(await Gy(i),"deleted"):"cancelled",MM=async()=>{let i=Mi()==="verified-user";return await Hp({host:yg(),title:Ze.clearHistoryConfirmTitle,description:i?Ze.clearHistoryVerifiedConfirm:Ze.clearHistoryConfirm,confirmLabel:Ze.clearHistoryConfirmLabel,cancelLabel:Ze.confirmCancelLabel})?(await Qy(),"cleared"):"cancelled"},EM=async()=>{if(!await Hp({host:yg(),title:Ze.resetIdentityConfirmTitle,description:Ze.resetIdentityConfirm,confirmLabel:Ze.resetIdentityConfirmLabel,cancelLabel:Ze.confirmCancelLabel}))return{outcome:"cancelled"};let{remoteRevocationConfirmed:c}=await Yy();return{outcome:"reset",remoteRevocationConfirmed:c}},to=M("button","persona-history-earlier");to.type="button",to.textContent=Ze.showEarlierMessagesLabel,to.setAttribute("data-persona-history-earlier",""),Object.assign(to.style,{alignSelf:"center",minHeight:"44px",padding:"0 16px",borderRadius:"999px",border:"1px solid var(--persona-border, rgba(0,0,0,0.12))",background:"transparent",color:"inherit",font:"inherit",cursor:"pointer",flexShrink:"0"});let dr=()=>{if(!(Oo()&&!!kc.nextMessageCursor&&!!P.getActiveConversationId())){to.remove();return}to.textContent=Ze.showEarlierMessagesLabel,to.parentNode!==re&&re.insertBefore(to,re.firstChild)};to.addEventListener("click",()=>{let i=P.getActiveConversationId(),c=kc.nextMessageCursor;if(!i||!c||to.disabled)return;to.disabled=!0;let g=re.scrollHeight,f=re.scrollTop;P.loadOlderMessages(i,c,{scope:Mi()}).then(()=>{re.scrollTop=f+(re.scrollHeight-g),Pn()}).catch(()=>{}).finally(()=>{to.disabled=!1,dr()})});let TM=()=>{let i=Ys({ariaLabel:Ze.openHistoryLabel,iconName:"history",wrapperClassName:"persona-relative persona-inline-flex persona-items-center persona-justify-center",extraClassName:"persona-history-toggle",attrs:{"data-persona-history-toggle":""}});return i.button.addEventListener("click",c=>{if(!(!Oo()||yy())){if(le){kn();return}Ga({invoker:i.button,keyboard:c.detail===0})}}),i},Jy=()=>{if(!Oo()){Wo?.remove(),gn=null,Wo=null;return}if(Wo&&!Wo.isConnected&&(gn=null,Wo=null),!gn&&Pe){let f=TM();gn=f.button,Wo=f.wrapper;let b=Ue.clearChatButtonWrapper||Ue.closeButtonWrapper;b?.parentNode&&Pe.contains(b)?b.parentNode.insertBefore(Wo,b):Pe.appendChild(Wo)}if(!gn||!Wo)return;let i=Li()||le&&pe==="rail";if(Wo.style.display=i?"none":"",i){document.activeElement===gn&&$c();return}let c=yy();gn.disabled=c,gn.setAttribute("aria-disabled",c?"true":"false");let g=c?Ze.openHistoryBusyLabel:Ze.openHistoryLabel;gn.setAttribute("aria-label",g),(o.features?.history?.presentation??"panel")==="panel"?(gn.removeAttribute("aria-expanded"),gn.removeAttribute("aria-controls")):(gn.setAttribute("aria-expanded",le?"true":"false"),gn.setAttribute("aria-controls",Yu))},Gc=!1,PM=()=>{let i=Ue.clearChatButton;if(i){if(Oo()){Gc||(Qu=i.getAttribute("aria-label")??"",Gc=!0),i.setAttribute("aria-label",Ze.newConversationLabel),i.removeAttribute("title");return}Gc&&(Gc=!1,Qu&&i.setAttribute("aria-label",Qu))}},$r=()=>{Ze=Lf(o.features?.history?.copy),Jy(),Ka(),PM(),dr()};Yo=$r,Ot=i=>{kc=i,ct?.view.setNewConversationRequired(i.recovery==="new_conversation_required"),Ba(i.sendBlocked||Nn),dr()},Pt=i=>{(i.code==="history_continuity_reset"||i.code==="conversation_deleted_recovered")&&(Dt.clear(),bo(),Tn()),Rc(i.message),ct?.view.refresh()},xy(),$r(),Ce.push(()=>{Lc?.(),Ic?.(),Na+=1,Uc(),ct?.dispose(),ct?.view.destroy(),ct=null}),o.clientToken&&P.initClientSession().then(()=>{if(Oo())return P.reconcileBootConversation({scope:Ju()})}).then(()=>{dr()}).catch(i=>{o.debug&&console.warn("[AgentWidget] Pre-init client session failed:",i)}),(an||o.onSSEEvent)&&P.setSSEEventCallback((i,c)=>{o.onSSEEvent?.(i,c),oe(i,c)});let Zy=()=>{let i=o.resume??(ce?ir.getStoredResumableHandle?.():null);i&&typeof o.reconnectStream=="function"&&P.resumeFromHandle(i)};E?E.then(i=>{if(i){if(i.metadata&&(Y=If(i.metadata),Oe.syncFromMetadata()),i.messages?.length){hi=!0;try{P.hydrateMessages(i.messages)}finally{hi=!1}wc()}i.artifacts?.length&&P.hydrateArtifacts(i.artifacts,i.selectedArtifactId??null),Qh(i.draft)}}).catch(i=>{typeof console<"u"&&console.error("[AgentWidget] Failed to hydrate stored state:",i)}).finally(()=>{Wu=!0,B(),Zy()}):(Qh(L),Zy());let kM=()=>{!Ae()||ve||!(o.launcher?.composerBar?.expandOnSubmit??!0)||ut(!0,"auto")},LM=(i,c)=>i?c?{refs:[...i.refs,...c.refs],finalize:async()=>{let[g,f]=await Promise.allSettled([i.finalize(),c.finalize()]),b=[];return g.status==="fulfilled"?b.push(g.value):console.warn("[Persona] a mention bundle failed to finalize; sending without it",g.reason),f.status==="fulfilled"?b.push(f.value):console.warn("[Persona] a mention bundle failed to finalize; sending without it",f.reason),RL(b)}}:i:c,bg=()=>{let c=ue.getInlineMessageFields?.();return c&&c.contentSegments.some(f=>f.kind==="mention")?c.contentSegments:void 0},pr=!1,_s=null,Qc=()=>{ue.value="",ue.style.height="auto",Po(),Xa()},vg="data-persona-composer-notice",Ri=null;function IM(i){Ql(i),!(Ae()||!lt)&&(lt.hasAttribute(fa)||(lt.setAttribute(vg,""),lt.setAttribute("role","status"),lt.setAttribute("aria-live","polite"),lt.textContent=i,Ri&&clearTimeout(Ri),Ri=setTimeout(()=>{if(Ri=null,!!lt?.hasAttribute(vg)&&(lt.removeAttribute(vg),lt.removeAttribute("role"),lt.removeAttribute("aria-live"),p)){let c=P.getStatus();Vl(lt,xn(c),o.statusIndicator??{},c)}},4e3)))}function RM(){let i=Me.getState().pendingSubmission;i&&(li(void 0),ue&&(ue.value=i.text,ue.dispatchEvent(new Event("input",{bubbles:!0})),Po()),i.options.selectedModelId&&(Me.setSelectedModelId(i.options.selectedModelId),kr?.repaint()),i.options.activeModeIds?.length&&Zl(i.options.activeModeIds),i.options.quote&&ko(i.options.quote),ue?.focus())}let HM=i=>{typeof console<"u"&&console.error("[AgentWidget] composer.onBeforeSend failed; the draft was preserved:",i)},eb=(i={})=>{let c=(i.overrideText??ue?.value??"").trim();return i.resolveInlineCommand&&c?(Bt?.takeInlineCommand(c)??Promise.resolve(null)).then(g=>tb(i,c,g)):tb(i,c,null)},tb=(i,c,g)=>{if(g?.kind==="action"){Qc(),Bt?.clear(),us();return}let f=g?.kind==="server"?g.mentions:null,b=g?.kind==="prompt"?g.sendText:c,w=i.pending?.contentParts,W=(tt?.hasAttachments()??!1)||(w?.length??0)>0;if(!nw({text:b,hasAttachments:W,attachmentsReady:tt?.isReady()??!0,hasMentions:Bt?.hasMentions()??!1,hasServerMentions:!!f,inputDisabled:Dr(),sendDisabled:Ps()}))return;let z=P.isStreaming()?lu():"block";if(z==="defer-one"&&!i.pending){if(Me.getState().pendingSubmission){IM("One message is already queued. Edit or remove it first.");return}WM({intent:i,sendText:b,serverMentions:f});return}let q={text:b,mentionRefs:[...Bt?.getMentionRefs()??[],...f?.refs??[]],contentSegments:g?.kind==="prompt"?void 0:bg(),options:{...Me.getState().selectedModelId&&{selectedModelId:Me.getState().selectedModelId},...Me.getState().activeModeIds.length>0&&{activeModeIds:[...Me.getState().activeModeIds]},...Me.getState().quote&&{quote:{...Me.getState().quote}}},viaVoice:i.viaVoice};i.pending&&(q.options={...i.pending.options},q.contentSegments=i.pending.contentSegments,q.mentionRefs=[...i.pending.mentionRefs],q.viaVoice=i.pending.viaVoice);let V=()=>{if(w?.length)return[...w];if(!tt?.hasAttachments())return;let gt=[...tt.getContentParts()];return q.text&&gt.push(ao(q.text)),gt};q.contentParts=V();let Z=()=>{ws(),kM();let gt=Bt?.collectForSubmit()??null,Zt=LM(gt,f),Ft=V();i.consumeDraft!==!1&&Qc();let Rt={selectedModelId:q.options.selectedModelId,activeModeIds:q.options.activeModeIds},ln=z==="interrupt";ln&&P.cancel(),P.sendMessage(q.text,{contentParts:Ft,mentions:Zt??void 0,contentSegments:q.contentSegments,viaVoice:q.viaVoice,composerOptions:Rt,...q.options.quote&&{quote:q.options.quote},...ln&&{interrupt:!0}}),tt?.hasAttachments()&&tt.clearAttachments(),gt&&Bt?.clear(),us();let nt=Me.getState().activeModeIds,cn=UC(nt,o.composer?.modes);cn.length!==nt.length&&Zl(cn),Me.getState().quote&&ko(void 0),hc(),gu.release(),mo()},ae=o.composer?.onBeforeSend;if(!ae){Z();return}let ye=new AbortController;_s=ye;let et=gt=>{if(_s=null,gt.status==="error"){HM(gt.error);return}gt.status==="proceed"&&Z()},pt=ow(ae,q,ye.signal);if(!(pt instanceof Promise)){et(pt);return}return Me.setPreparing(!0),pt.then(et).finally(()=>Me.setPreparing(!1))};function WM(i){let c=Me.getState(),g=tt?.hasAttachments()??!1,f=g?[...tt.getContentParts()]:[];g&&i.sendText&&f.push(ao(i.sendText));let b=Tm({text:i.sendText,contentParts:f.length?f:void 0,mentionRefs:[...Bt?.getMentionRefs()??[],...i.serverMentions?.refs??[]],contentSegments:bg(),options:{...c.selectedModelId&&{selectedModelId:c.selectedModelId},...c.activeModeIds.length>0&&{activeModeIds:[...c.activeModeIds]},...c.quote&&{quote:{...c.quote}}},viaVoice:i.intent.viaVoice});li(b),i.intent.consumeDraft!==!1&&Qc(),g&&tt.clearAttachments(),Bt?.clear(),us(),c.quote&&ko(void 0),hc(),gu.release(),mo(),Ql("Message queued. It sends when the response finishes.")}function OM(){let i=Me.getState().pendingSubmission;i&&(li(void 0),Xc(i.text,{consumeDraft:!1,pending:i}))}function BM(i){if(o.messageActions?.showEdit!==!0)return;let c=P.getMessages().find(g=>g.id===i);!c||!rm(c)||Cs!==i&&(ws(),Cs=i,Hr=KC({messageId:i,initialText:c.content,onSave:g=>_M(i,g),onCancel:()=>ws()}),Dt.delete(i),Jn(Ie,P.getMessages(),ft),Hr.focus())}function _M(i,c){let g=Hr;if(Cs=null,Hr=null,g?.destroy(),Dt.delete(i),!P.resubmitFrom(i,{reason:"edit",replacement:{text:c,mentionRefs:[],options:{}}})){Jn(Ie,P.getMessages(),ft);return}Pn()}function DM(i){if(P.isStreaming())return;let c=om(P.getMessages(),i);c&&(ws(),P.resubmitFrom(c,{reason:"retry"})&&Pn())}ec={regenerate:DM,edit:BM,quote:i=>{let g=P.getMessages().find(f=>f.id===i)?.content?.trim();g&&(ko({text:g,messageId:i}),ue?.focus())}};let Ya=async i=>{if(!pr){pr=!0;try{await eb({resolveInlineCommand:!0,...i})}finally{pr=!1}}};function Yc(i){Ps()||(Qc(),Xc(i,{consumeDraft:!1}))}let Xc=(i,c)=>{if(pr)return;pr=!0;let g=()=>{pr=!1};try{let f=eb({...c,overrideText:i});f instanceof Promise?f.finally(g):g()}catch(f){throw g(),f}},NM=i=>{if(i.preventDefault(),P.isStreaming()){P.cancel(),Wn?.reset(),J?.update();return}pr||Ya()},FM=()=>o.features?.composerHistory!==!1,Cg={...Bm},wg=!1,Xa=()=>{Cg={...Bm}},$M=()=>P.getMessages().filter(i=>i.role==="user").map(i=>i.content??"").filter(i=>i.length>0),UM=i=>{if(!ue)return;wg=!0,ue.value=i,ue.dispatchEvent(new Event("input",{bubbles:!0})),wg=!1;let c=ue.value.length;ue.setSelectionRange(c,c)},jM=i=>{wg||(i.isComposing||Bt?.handleInput(i.inputType??void 0),Xa())},qM=()=>({submitKey:o.composer?.submitKey,insertNewlineOnTouchEnter:o.composer?.insertNewlineOnTouchEnter,coarsePointer:bl(ue)}),zM=i=>{if(ue&&!Dr()&&!(!i.isComposing&&Bt?.handleKeydown(i))){if(FM()&&(i.key==="ArrowUp"||i.key==="ArrowDown")&&!i.shiftKey&&!i.metaKey&&!i.ctrlKey&&!i.altKey&&!i.isComposing){let c=ue.selectionStart===0&&ue.selectionEnd===0,g=ww({direction:i.key==="ArrowUp"?"up":"down",history:$M(),currentValue:ue.value,atStart:c,state:Cg});if(Cg=g.state,g.handled){i.preventDefault(),g.value!==void 0&&UM(g.value);return}}if(EC(i,qM())){if(P.isStreaming()){if(i.preventDefault(),lu()==="block"||pr||Ps())return;Xa(),Ya();return}if(pr){i.preventDefault();return}if(Ps()){i.preventDefault();return}Xa(),i.preventDefault(),Te.click()}}},nb=i=>{if(!(i.key!=="Escape"||i.isComposing)&&i.composedPath().includes(fe)){if(_s){_s.abort(),_s=null,i.preventDefault(),i.stopImmediatePropagation();return}P.isStreaming()&&(P.cancel(),Wn?.reset(),J?.update(),Xa(),i.preventDefault(),i.stopImmediatePropagation())}},VM=async i=>{if(o.attachments?.enabled!==!0||!tt||Dr())return;let c=PL(i.clipboardData);c.length!==0&&(i.preventDefault(),await tt.handleFiles(c))},no=null,Bo=!1,Hi=null,wt=null,xg=()=>o.voiceRecognition?.completionBehavior==="review";function Ds(i){se?.setAttribute("data-state",i),i==="recording"?GM():Eg()}let ob="--persona-voice-level",Sg=.5,Wi=null,Ag=-1,Jc=0,rb=()=>{let i=[],c=_n??se?.parentElement??null;return c&&i.push(c),He&&i.push(He),i},Mg=i=>{let c=Math.round(Math.max(0,Math.min(1,i))*100)/100;if(c!==Ag){Ag=c;for(let g of rb())g.style.setProperty(ob,String(c))}},KM=()=>{Ag=-1,Jc=0;for(let i of rb())i.style.removeProperty(ob)};function GM(){if(Wi!==null)return;if(typeof requestAnimationFrame!="function"){Mg(p?P.getVoiceLevel()??Sg:Sg);return}let i=()=>{Wi=requestAnimationFrame(i);let c=p?P.getVoiceLevel():null;if(c===null){Mg(Sg);return}Jc+=(c-Jc)*.3,Mg(Jc)};Wi=requestAnimationFrame(i)}function Eg(){Wi!==null&&(cancelAnimationFrame(Wi),Wi=null),KM()}let sb=()=>typeof window>"u"?null:window.webkitSpeechRecognition||window.SpeechRecognition||null,Zc=(i="user")=>{if(Bo||P.isStreaming())return;let c=sb();if(!c)return;no=new c;let g=o.voiceRecognition??{},f=g.pauseDuration??2e3;no.continuous=g.provider?.browser?.continuous??!0,no.interimResults=!0,no.lang=g.provider?.browser?.language??"en-US";let b=ue.value;no.onresult=w=>{let W="",z="";for(let V=0;V<w.results.length;V++){let Z=w.results[V],ae=Z[0].transcript;Z.isFinal?W+=ae+" ":z=ae}let q=b+W+z;ue.value=q,Po(),Hi&&clearTimeout(Hi),(W||z)&&(Hi=window.setTimeout(()=>{if(ue.value.trim()&&no&&Bo){if(Ur(),xg())return;Ya({viaVoice:!0})}},f))},no.onerror=w=>{w.error!=="no-speech"&&Ur()},no.onend=()=>{if(Bo){let w=ue.value.trim();!xg()&&w&&w!==b.trim()&&Ya({viaVoice:!0}),Ur()}};try{if(no.start(),Bo=!0,Ge.active=!0,i!=="system"&&(Ge.manuallyDeactivated=!1),or(i),yo(),mo(),se){let w=o.voiceRecognition??{};wt={backgroundColor:se.style.backgroundColor,color:se.style.color,borderColor:se.style.borderColor,iconName:w.iconName??"mic",iconSize:parseFloat(w.iconSize??"")||yn};let W=w.recordingBackgroundColor,z=w.recordingIconColor,q=w.recordingBorderColor;if(se.classList.add("persona-voice-recording"),Ds("recording"),se.style.backgroundColor=W??"var(--persona-voice-recording-bg, #ef4444)",se.style.color=z??"var(--persona-voice-recording-indicator, #ffffff)",z){let V=se.querySelector("svg");V&&V.setAttribute("stroke",z)}q&&(se.style.borderColor=q),se.setAttribute("aria-label","Stop voice recognition")}}catch{Ur("system")}},Ur=(i="user")=>{if(Bo){if(Bo=!1,Hi&&(clearTimeout(Hi),Hi=null),no){try{no.stop()}catch{}no=null}if(Ge.active=!1,or(i),yo(),mo(),se){if(se.classList.remove("persona-voice-recording"),Ds("idle"),wt){se.style.backgroundColor=wt.backgroundColor,se.style.color=wt.color,se.style.borderColor=wt.borderColor;let c=se.querySelector("svg");c&&c.setAttribute("stroke",wt.color||"currentColor"),wt=null}se.setAttribute("aria-label","Start voice recognition")}}},Tg=()=>{if(!se||wt)return;let i=o.voiceRecognition??{};wt={backgroundColor:se.style.backgroundColor,color:se.style.color,borderColor:se.style.borderColor,iconName:i.iconName??"mic",iconSize:parseFloat(i.iconSize??"")||yn}},Pg=(i,c)=>{if(!se)return;let g=se.querySelector("svg");g&&g.remove();let f=wt?.iconSize??(parseFloat(o.voiceRecognition?.iconSize??"")||yn),b=ge(i,f,c,1.5);b&&se.appendChild(b)},ed=()=>{se&&se.classList.remove("persona-voice-recording","persona-voice-processing","persona-voice-speaking")},Oi=()=>{if(!se)return;Tg();let i=o.voiceRecognition??{},c=i.recordingBackgroundColor,g=i.recordingIconColor,f=i.recordingBorderColor;if(ed(),se.classList.add("persona-voice-recording"),Ds("recording"),se.style.backgroundColor=c??"var(--persona-voice-recording-bg, #ef4444)",se.style.color=g??"var(--persona-voice-recording-indicator, #ffffff)",g){let b=se.querySelector("svg");b&&b.setAttribute("stroke",g)}f&&(se.style.borderColor=f),se.setAttribute("aria-label","Stop voice recognition")},QM=()=>{if(!se)return;Tg();let i=o.voiceRecognition??{},c=P.getVoiceInterruptionMode(),g=i.processingIconName??"loader",f=i.processingIconColor??wt?.color??"",b=i.processingBackgroundColor??wt?.backgroundColor??"",w=i.processingBorderColor??wt?.borderColor??"";ed(),se.classList.add("persona-voice-processing"),Ds("processing"),se.style.backgroundColor=b,se.style.borderColor=w;let W=f||"currentColor";se.style.color=W,Pg(g,W),se.setAttribute("aria-label","Processing voice input"),c==="none"&&(se.style.cursor="default")},YM=()=>{if(!se)return;Tg();let i=o.voiceRecognition??{},c=P.getVoiceInterruptionMode(),g=c==="cancel"?"square":c==="barge-in"?"mic":"volume-2",f=i.speakingIconName??g,b=i.speakingIconColor??(c==="barge-in"?i.recordingIconColor??wt?.color??"":wt?.color??""),w=i.speakingBackgroundColor??(c==="barge-in"?i.recordingBackgroundColor??"var(--persona-voice-recording-bg, #ef4444)":wt?.backgroundColor??""),W=i.speakingBorderColor??(c==="barge-in"?i.recordingBorderColor??"":wt?.borderColor??"");ed(),se.classList.add("persona-voice-speaking"),Ds("speaking"),se.style.backgroundColor=w,se.style.borderColor=W;let z=b||"currentColor";se.style.color=z,Pg(f,z);let q=c==="cancel"?"Stop playback and re-record":c==="barge-in"?"Speak to interrupt":"Agent is speaking";se.setAttribute("aria-label",q),c==="none"&&(se.style.cursor="default"),c==="barge-in"&&se.classList.add("persona-voice-recording")},ur=()=>{se&&(ed(),Ds("idle"),wt&&(se.style.backgroundColor=wt.backgroundColor??"",se.style.color=wt.color??"",se.style.borderColor=wt.borderColor??"",Pg(wt.iconName,wt.color||"currentColor"),wt=null),se.style.cursor="",se.setAttribute("aria-label","Start voice recognition"))},kg=()=>{if(!Dr()){if(o.voiceRecognition?.provider?.type==="runtype"){let i=P.getVoiceStatus(),c=P.getVoiceInterruptionMode();if(c==="none"&&(i==="processing"||i==="speaking"))return;if(c==="cancel"&&(i==="processing"||i==="speaking")){P.stopVoicePlayback();return}if(P.isBargeInActive()){P.stopVoicePlayback(),P.deactivateBargeIn().then(()=>{Ge.active=!1,Ge.manuallyDeactivated=!0,yo(),or("user"),ur()});return}P.toggleVoice().then(()=>{Ge.active=P.isVoiceActive(),Ge.manuallyDeactivated=!P.isVoiceActive(),yo(),or("user"),P.isVoiceActive()?Oi():ur()});return}if(Bo){let i=ue.value.trim();Ge.manuallyDeactivated=!0,yo(),Ur("user"),i&&!xg()&&Ya()}else Ge.manuallyDeactivated=!1,yo(),Zc("user")}};cu=kg,se&&Ce.push(()=>{o.voiceRecognition?.provider?.type==="runtype"?(P.isVoiceActive()&&P.toggleVoice(),ur()):Ur("system")});let XM=A.on("assistant:complete",()=>{Me.getState().pendingSubmission&&setTimeout(()=>{P.isStreaming()||OM()},0)});Ce.push(XM);let JM=A.on("assistant:complete",()=>{Vh&&(Ge.active||Ge.manuallyDeactivated||Vh==="assistant"&&!Ge.lastUserMessageWasVoice||setTimeout(()=>{!Ge.active&&!Ge.manuallyDeactivated&&(o.voiceRecognition?.provider?.type==="runtype"?P.toggleVoice().then(()=>{Ge.active=P.isVoiceActive(),or("auto"),P.isVoiceActive()&&Oi()}):Zc("auto"))},600))});Ce.push(JM);let ZM=A.on("action:resubmit",()=>{setTimeout(()=>{P&&!P.isStreaming()&&P.continueConversation()},100)});Ce.push(ZM);let ib=()=>{ut(!ve,"user")},Lt=null,mn=null;if(Se&&!Ae()){let{instance:i,element:c}=df({config:o,plugins:a,onToggle:ib});Lt=i,i||(mn=c)}Lt?e.appendChild(Lt.element):mn&&e.appendChild(mn),Oa(),mi(),Ac(),Nu(),Ba(P.isStreaming()),Pu()||(Dn()==="follow"?Br(!0):yc()),bA(),we&&(!Se||Ae()?setTimeout(()=>ks(),0):ve&&setTimeout(()=>ks(),200));let Ns=null,ab=()=>{Ns&&(Ns.disconnect(),Ns.observe(He),Ns.observe(fe))},Ja=()=>{if(Ae()){ps(),Oa();return}let i=At(o),c=o.launcher?.sidebarMode??!1,g=e.ownerDocument.defaultView??window,f=o.launcher?.mobileFullscreen??!0,b=o.launcher?.mobileBreakpoint??640,w=g.innerWidth<=b,W=f&&w&&Se;try{if(W){gs(),Ma=lc();return}let z=!1;mt&&(mt=!1,gs(),z=!0);let q=lc();if(!z&&q!==Ma&&(gs(),z=!0),Ma=q,z&&rc(),!Se&&!i){Ee.style.height="",Ee.style.width="";return}if(!c&&!i){let Z=o?.launcher?.width??o?.launcherWidth??zn;Ee.style.width=Z,Ee.style.maxWidth=Z}ac(),Lh()}finally{if(ps(),Jl(),Oa(),ve&&Se){let q=(e.ownerDocument.defaultView??window).innerWidth<=(o.launcher?.mobileBreakpoint??640),V=o.launcher?.sidebarMode??!1,Z=o.launcher?.mobileFullscreen??!0,ae=At(o)&&Z&&q,ye=V||Z&&q&&Se||ae;if(ye&&!Ho){let et=e.getRootNode(),pt=et instanceof ShadowRoot?et.host:e.closest(".persona-host");pt&&!Ro&&(Ro=Fm(pt,o.launcher?.zIndex??sn)),Ho=$m(e.ownerDocument)}else ye||(Ro?.(),Ro=null,Ho?.(),Ho=null)}}};Ja();let td=e.ownerDocument.defaultView??window;if(td.addEventListener("resize",Ja),Ce.push(()=>td.removeEventListener("resize",Ja)),typeof ResizeObserver<"u"){Ns=new ResizeObserver(()=>{Jl()}),ab(),Ce.push(()=>{Ns?.disconnect(),Ns=null});let i=new ResizeObserver(()=>{Fc()});i.observe(fe),Ce.push(()=>i.disconnect())}td.addEventListener("resize",Fc),Ce.push(()=>td.removeEventListener("resize",Fc)),$n=re.scrollTop;let lb=Vo(re),cb=()=>{let i=re.scrollTop,c=Vo(re),g=c<lb;if(lb=c,!Pr()){$n=i,Vt();return}let{action:f,nextLastScrollTop:b}=kw({following:Fn.isFollowing(),currentScrollTop:i,lastScrollTop:$n,nearBottom:Qs(re,tr),userScrollThreshold:mA,isAutoScrolling:En||dc||g,pauseOnUpwardScroll:!0,pauseWhenAwayFromBottom:!1,resumeRequiresDownwardScroll:!0});if($n=b,f==="resume"){bc()||Tn();return}f==="pause"&&La()};if(re.addEventListener("scroll",cb,{passive:!0}),Ce.push(()=>re.removeEventListener("scroll",cb)),typeof ResizeObserver<"u"){let i=new ResizeObserver(()=>{MA(),Fg(Ie)});i.observe(Ie),i.observe(re),Ce.push(()=>i.disconnect())}let db=()=>{Pr()&&Fn.isFollowing()&&bc()&&La()},pb=re.ownerDocument;pb.addEventListener("selectionchange",db),Ce.push(()=>{pb.removeEventListener("selectionchange",db)});let eE=new Set(["PageUp","PageDown","Home","End","ArrowUp","ArrowDown"]),ub=i=>{eE.has(i.key)&&(Ms(),Xf()&&Pr()&&Fn.isFollowing()&&La())},gb=i=>{i.target?.closest("a, button, [tabindex], input, textarea, select")&&(Ms(),Xf()&&Pr()&&Fn.isFollowing()&&La())};re.addEventListener("keydown",ub),re.addEventListener("focusin",gb),Ce.push(()=>{re.removeEventListener("keydown",ub),re.removeEventListener("focusin",gb)});let mb=i=>{if(i.deltaY!==0&&Ms(),!Pr())return;let c=Lw({following:Fn.isFollowing(),deltaY:i.deltaY,nearBottom:Qs(re,tr),resumeWhenNearBottom:!0});c==="pause"?La():c==="resume"&&!bc()&&Tn()};re.addEventListener("wheel",mb,{passive:!0}),re.addEventListener("touchmove",Ms,{passive:!0}),re.addEventListener("pointerdown",Ms,{passive:!0}),Ce.push(()=>{re.removeEventListener("touchmove",Ms),re.removeEventListener("pointerdown",Ms)}),Ce.push(()=>re.removeEventListener("wheel",mb)),_t.addEventListener("click",()=>{bo(),re.scrollTop=re.scrollHeight,$n=re.scrollTop,Tn(),Br(!0),Vt()}),Ce.push(()=>_t.remove()),Ce.push(()=>{Xh(),bo()});let fb=()=>{Ve&&(ys&&(Ve.removeEventListener("click",ys),ys=null),ke()?(Ve.style.display="",ys=()=>{ut(!1,"user")},Ve.addEventListener("click",ys)):Ve.style.display="none")};fb(),(()=>{let{clearChatButton:i}=Ue;i&&i.addEventListener("click",()=>{if(Oo()){fg({focusComposer:!0}).catch(g=>{o.debug&&console.warn("[AgentWidget] New conversation failed:",g)});return}P.clearMessages(),Dt.clear(),Tn(),Xr(Ue.composerOverlay);try{localStorage.removeItem(ma),o.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${ma}`)}catch(g){console.error("[AgentWidget] Failed to clear default localStorage:",g)}if(o.clearChatHistoryStorageKey&&o.clearChatHistoryStorageKey!==ma)try{localStorage.removeItem(o.clearChatHistoryStorageKey),o.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${o.clearChatHistoryStorageKey}`)}catch(g){console.error("[AgentWidget] Failed to clear custom localStorage:",g)}let c=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});window.dispatchEvent(c),Q?.clear&&mc(()=>Q.clear(),"[AgentWidget] Failed to clear storage adapter:"),Y={},Oe.syncFromMetadata(),tt?.clearAttachments(),hc(),li(void 0),ko(void 0),ws(),ot?.clear(),Wn?.reset(),J?.update()})})();let hb=[["keydown",zM],["input",jM],["input",Po],["input",us],["keyup",us],["paste",VM],["focus",nA]],yb=i=>{if(i)for(let[c,g]of hb)st?.addListener(i,c,g)},tE=i=>{if(i)for(let[c,g]of hb)st?.removeListener(i,c,g)},bb=()=>{st&&(st.addListener(st.form,"submit",NM),st.addListener(st.footer,"click",us),yb(ue),se&&st.addListener(se,"click",kg))};bb();let vb=()=>{Bt?.onComposerSwap((i,c)=>{tE(c),ue=i,st&&(st.input=i),yb(i),pu(),Ru(),Po()})};vb();let Lg=!1;function Cb(){if(!Lg){Lg=!0;try{let i=ue?.value??"",c=He.ownerDocument??document,g=ue?c.activeElement===ue:!1;Eg(),st?.destroy(),st=null,Bt?.destroy(),Bt=null;let f=null,b=()=>(f=Ae()?fp({config:o}):Zs({config:o}),f.footer),w=ah(b)??b();On.replaceComposer(w),He=On.composer.footer;let W=f!==null&&w===f.footer;di=!W,Yf=W?f.setSendButtonMode:()=>{},ih(He),ch(He),dh(),ph(),uh(),vb(),gh(),uu(),mh(),bb();let z=hs.indexOf(er);er.destroy(),er=Hl(Er),z>=0&&(hs[z]=er),ue&&(ue.value=i),Po(),us(),Ac(),mi(),Ba(P.isStreaming()),Ge.active&&Ds("recording"),gs(),ab(),ps(),mo(),xc(),g&&ue?.focus()}finally{Lg=!1}}}let Za=e.ownerDocument??document;Za.addEventListener("keydown",nb,!0);let wb=()=>{Au()},xb=()=>{Za.visibilityState==="hidden"&&Au()};typeof window<"u"&&(window.addEventListener("pagehide",wb),Za.addEventListener("visibilitychange",xb),Ce.push(()=>{window.removeEventListener("pagehide",wb),Za.removeEventListener("visibilitychange",xb)}));let Sb="persona-attachment-drop-active",el=0,Ig=()=>{el=0,fe.classList.remove(Sb)},Bi=()=>o.attachments?.enabled===!0&&tt!==null&&!Dr(),Ab=i=>{!Np(i.dataTransfer)||!Bi()||(el++,el===1&&fe.classList.add(Sb))},Mb=i=>{!Np(i.dataTransfer)||!Bi()||(el--,el<=0&&Ig())},Eb=i=>{!Np(i.dataTransfer)||!Bi()||(i.preventDefault(),i.dataTransfer.dropEffect="copy")},Tb=i=>{if(!Np(i.dataTransfer)||!Bi())return;i.preventDefault(),i.stopPropagation(),Ig();let c=Array.from(i.dataTransfer.files??[]);c.length!==0&&tt.handleFiles(c)},jr=!0;fe.addEventListener("dragenter",Ab,jr),fe.addEventListener("dragleave",Mb,jr),e.addEventListener("dragover",Eb,jr),e.addEventListener("drop",Tb,jr);let nd=e.ownerDocument,Pb=i=>{Bi()&&i.preventDefault()},kb=i=>{Bi()&&i.preventDefault()};nd.addEventListener("dragover",Pb),nd.addEventListener("drop",kb),Ce.push(()=>{st?.destroy(),st=null,Eg(),Lo?.destroy(),Lo=null,Jo?.destroy(),Jo=null,Lr?.destroy(),Lr=null,Ir?.destroy(),Ir=null,kr=null,au=null,Au(),ka.destroy(),Ri&&clearTimeout(Ri),ws(),_s?.abort(),_s=null,tt?.destroy(),tt=null,Me.destroy(),Za.removeEventListener("keydown",nb,!0),Bt?.destroy()}),Ce.push(()=>{fe.removeEventListener("dragenter",Ab,jr),fe.removeEventListener("dragleave",Mb,jr),e.removeEventListener("dragover",Eb,jr),e.removeEventListener("drop",Tb,jr),nd.removeEventListener("dragover",Pb),nd.removeEventListener("drop",kb),Ig()}),Ce.push(()=>{P.cancel()}),Lt?Ce.push(()=>{Lt?.destroy()}):mn&&Ce.push(()=>{mn?.remove()});let It={update(i){let c=o.toolCall,g=o.messageActions,f=o.layout?.messages,b=o.colorScheme,w=o.loadingIndicator,W=o.iterationDisplay,z=o.features?.showReasoning,q=o.features?.showToolCalls,V=o.features?.toolCallDisplay,Z=o.features?.reasoningDisplay,ae=o.features?.streamAnimation?.type,ye=o.features?.history?.enabled===!0,et=o.features?.history?.provider,pt=o.getIdentityProof,gt=o.clientToken,Zt=o.contextMentions;o=Ip({...o,features:s},i),s=o.features,o=Dl(o),r(),bu(),Gs(e,o),Bl(e,o),_l(e,o),_e(),ho(),o.colorScheme!==b&&Ih();let Ft=Nl.getForInstance(o.plugins);a.length=0,a.push(...Ft),Ly(),Se=o.launcher?.enabled??!0,Xe=o.launcher?.autoExpand??!1,un=o.features?.showReasoning??!0,Gn=o.features?.showToolCalls??!0,Mo=o.features?.scrollToBottom??{};let Rt=Dn();Qn=o.features?.scrollBehavior??{},Rt!==Dn()&&(bo(),Tn()),zh(),eh(),Vt();let ln=an;if(an=o.features?.showEventStreamToggle??!1,an&&!ln){if(ot||(ie(),P.setSSEEventCallback((ee,Qe)=>{o.onSSEEvent?.(ee,Qe),oe(ee,Qe)})),!rt&&Pe){let ee=o.features?.eventStream?.classNames,Qe="persona-inline-flex persona-items-center persona-justify-center persona-rounded-full hover:persona-opacity-80 persona-cursor-pointer persona-border-none persona-bg-transparent persona-p-1"+(ee?.toggleButton?" "+ee.toggleButton:"");rt=M("button",Qe),rt.style.width="28px",rt.style.height="28px",rt.style.color=vn.actionIconColor,rt.type="button",rt.setAttribute("aria-label","Event Stream"),rt.title="Event Stream";let Je=Wt(Sr.Activity,"18px","currentColor",1.5);Je&&rt.appendChild(Je);let it=Ue.clearChatButtonWrapper,St=Ue.closeButtonWrapper,rn=it||St;rn&&rn.parentNode===Pe?Pe.insertBefore(rt,rn):Pe.appendChild(rt),rt.addEventListener("click",()=>{v?ci():du()})}}else!an&&ln&&(ci(),rt&&(rt.remove(),rt=null),ot?.clear(),Qo?.destroy(),ot=null,Qo=null,Wn?.reset(),Wn=null,uo=null);if(o.launcher?.enabled===!1&&Lt&&(Lt.destroy(),Lt=null),o.launcher?.enabled===!1&&mn&&(mn.remove(),mn=null),o.launcher?.enabled!==!1&&!Lt&&!mn){let{instance:ee,element:Qe}=df({config:o,plugins:a,onToggle:ib});Lt=ee,ee||(mn=Qe),e.appendChild(Qe)}Lt&&Lt.update(o),Qa(),cs&&o.launcher?.subtitle!==void 0&&(cs.textContent=o.launcher.subtitle);let nt=o.layout?.header;if(nt?.layout!==je&&Pe){let ee=nt?ra(o,nt,{showClose:ke(),onClose:()=>ut(!1,"user")}):vr({config:o,showClose:ke(),onClose:()=>ut(!1,"user")});On.replaceHeader(ee),Pe=On.header.element,kt=On.header.iconHolder,Tr=On.header.headerTitle,cs=On.header.headerSubtitle,Ve=On.header.closeButton,je=nt?.layout,Qa()}else if(nt){if(kt&&(kt.style.display=nt.showIcon===!1?"none":""),Tr&&(Tr.style.display=nt.showTitle===!1?"none":""),cs&&(cs.style.display=nt.showSubtitle===!1?"none":""),Ve){let ee=ke()&&nt.showCloseButton!==!1;Ve.style.display=ee?"":"none"}if(Ue.clearChatButtonWrapper){let ee=nt.showClearChat;if(ee!==void 0){Ue.clearChatButtonWrapper.style.display=ee?"":"none";let{closeButtonWrapper:Qe}=Ue;Qe&&!Qe.classList.contains("persona-absolute")&&(ee?Qe.classList.remove("persona-ml-auto"):Qe.classList.add("persona-ml-auto"))}}}let gr=o.layout?.showHeader!==!1;Pe&&(Pe.style.display=gr?"":"none");let _o=o.layout?.showFooter!==!1;He&&(He.style.display=_o?"":"none"),ps(),Vt(),Se!==$e?Se?ut(Xe,"auto"):(ve=!0,Oa()):Xe!==j&&ut(Xe,"auto"),j=Xe,$e=Se,Ja(),fb();let De=JSON.stringify(o.toolCall)!==JSON.stringify(c),Fe=JSON.stringify(o.messageActions)!==JSON.stringify(g),be=JSON.stringify(o.layout?.messages)!==JSON.stringify(f),ht=o.loadingIndicator?.render!==w?.render||o.loadingIndicator?.renderIdle!==w?.renderIdle||o.loadingIndicator?.showBubble!==w?.showBubble,Kt=o.iterationDisplay!==W,dn=(o.features?.showReasoning??!0)!==(z??!0)||(o.features?.showToolCalls??!0)!==(q??!0)||JSON.stringify(o.features?.toolCallDisplay)!==JSON.stringify(V)||JSON.stringify(o.features?.reasoningDisplay)!==JSON.stringify(Z);(De||Fe||be||ht||Kt||dn)&&P&&(xs++,Jn(Ie,P.getMessages(),ft));let Ht=o.features?.streamAnimation?.type;if(Ht!==ae&&Ht&&Ht!=="none"){let ee=Cu(Ht,o.features?.streamAnimation?.plugins);ee&&Ll(ee,e)}let Le=o.launcher??{},Gt=Le.headerIconHidden??!1,Qt=o.layout?.header?.showIcon,ro=Gt||Qt===!1,Be=Le.headerIconName,xt=Le.headerIconSize??"48px";if(kt){let ee=Pe,Qe=ee?.querySelector(".persona-flex-col");if(ro)kt.style.display="none",ee&&Qe&&!ee.contains(Qe)&&ee.insertBefore(Qe,ee.firstChild);else{if(kt.style.display="",kt.style.height=xt,kt.style.width=xt,ee&&Qe&&(ee.contains(kt)?kt.nextSibling!==Qe&&(kt.remove(),ee.insertBefore(kt,Qe)):ee.insertBefore(kt,Qe)),Be){let it=parseFloat(xt)||24,St=ge(Be,it*.6,"currentColor",1);St?kt.replaceChildren(St):kt.textContent=Le.agentIconText??"\u{1F4AC}"}else if(Le.iconUrl){let it=kt.querySelector("img");if(it)it.src=Le.iconUrl,it.style.height=xt,it.style.width=xt;else{let St=document.createElement("img");St.src=Le.iconUrl,St.alt="",St.className="persona-rounded-xl persona-object-cover",St.style.height=xt,St.style.width=xt,kt.replaceChildren(St)}}else{let it=kt.querySelector("svg"),St=kt.querySelector("img");(it||St)&&kt.replaceChildren(),kt.textContent=Le.agentIconText??"\u{1F4AC}"}let Je=kt.querySelector("img");Je&&(Je.style.height=xt,Je.style.width=xt)}}let No=o.layout?.header?.showTitle,vo=o.layout?.header?.showSubtitle;if(Tr&&(Tr.style.display=No===!1?"none":""),cs&&(cs.style.display=vo===!1?"none":""),Ve){let ee=ke()&&o.layout?.header?.showCloseButton!==!1;if(Ve.style.display=ee?"":"none",!Ae()){let en=Le.closeButtonSize??"";Ve.style.height=en,Ve.style.width=en,Ve.style.minWidth=en,Ve.style.minHeight=en}let Qe=Le.closeButtonPlacement??"inline",{closeButtonWrapper:Je}=Ue,it=Qe==="top-right",St=Je?.classList.contains("persona-absolute");if(Je&&it!==St)if(Je.remove(),it){Je.className="persona-absolute persona-top-4 persona-right-4 persona-z-50";let en=$a??fe;en.style.position="relative",en.appendChild(Je)}else{let en=Le.clearChat?.placement??"inline",tn=Le.clearChat?.enabled??!0;Je.className=tn&&en==="inline"?"":"persona-ml-auto",Pe&&Pe.appendChild(Je)}if(Ve.style.color=Le.closeButtonColor||vn.actionIconColor,Le.closeButtonBackgroundColor?(Ve.style.backgroundColor=Le.closeButtonBackgroundColor,Ve.classList.remove("hover:persona-bg-gray-100")):(Ve.style.backgroundColor="",Ve.classList.add("hover:persona-bg-gray-100")),Le.closeButtonBorderWidth||Le.closeButtonBorderColor){let en=Le.closeButtonBorderWidth||"0px",tn=Le.closeButtonBorderColor||"transparent";Ve.style.border=`${en} solid ${tn}`,Ve.classList.remove("persona-border-none")}else Ve.style.border="",Ve.classList.add("persona-border-none");Le.closeButtonBorderRadius?(Ve.style.borderRadius=Le.closeButtonBorderRadius,Ve.classList.remove("persona-rounded-full")):(Ve.style.borderRadius="",Ve.classList.add("persona-rounded-full")),Le.closeButtonPaddingX?(Ve.style.paddingLeft=Le.closeButtonPaddingX,Ve.style.paddingRight=Le.closeButtonPaddingX):(Ve.style.paddingLeft="",Ve.style.paddingRight=""),Le.closeButtonPaddingY?(Ve.style.paddingTop=Le.closeButtonPaddingY,Ve.style.paddingBottom=Le.closeButtonPaddingY):(Ve.style.paddingTop="",Ve.style.paddingBottom=""),pp(Ve,Le.closeButtonIconName??"x",{iconSize:Ae()?sf:void 0,iconText:Le.closeButtonIconText??"\xD7"});let rn=Le.closeButtonTooltipText??"Close chat",Co=Le.closeButtonShowTooltip??!0;Ve.setAttribute("aria-label",rn),Je&&nn({anchor:Ve,trigger:Je,text:()=>Ve?.getAttribute("aria-label")??rn,enabled:Co})}let{clearChatButton:Ne,clearChatButtonWrapper:xe}=Ue;if(Ne){let ee=Le.clearChat??{},Qe=ee.enabled??!0,Je=o.layout?.header?.showClearChat,it=Je!==void 0?Je:Qe,St=ee.placement??"inline";if(xe){xe.style.display=it?"":"none";let{closeButtonWrapper:rn}=Ue;!Ae()&&rn&&!rn.classList.contains("persona-absolute")&&(it?rn.classList.remove("persona-ml-auto"):rn.classList.add("persona-ml-auto"));let Co=St==="top-right",en=xe.classList.contains("persona-absolute");if(!Ae()&&Co!==en&&it){if(xe.remove(),Co){xe.className="persona-absolute persona-top-4 persona-z-50",xe.style.right="48px";let Fo=$a??fe;Fo.style.position="relative",Fo.appendChild(xe)}else{xe.className="persona-relative persona-ml-auto persona-clear-chat-button-wrapper",xe.style.right="";let Fo=Ue.closeButtonWrapper;Pe&&Fo&&Fo.parentElement===Pe?Pe.insertBefore(xe,Fo):Pe&&Pe.appendChild(xe)}let tn=Ue.closeButtonWrapper;tn&&!tn.classList.contains("persona-absolute")&&(Co?tn.classList.add("persona-ml-auto"):tn.classList.remove("persona-ml-auto"))}}if(it){if(!Ae()){let tn=ee.size??"";Ne.style.height=tn,Ne.style.width=tn,Ne.style.minWidth=tn,Ne.style.minHeight=tn}let rn=ee.iconColor??"";if(Ne.style.color=rn||vn.actionIconColor,pp(Ne,ee.iconName??"refresh-cw",{iconSize:Ae()?af:void 0}),ee.backgroundColor?(Ne.style.backgroundColor=ee.backgroundColor,Ne.classList.remove("hover:persona-bg-gray-100")):(Ne.style.backgroundColor="",Ne.classList.add("hover:persona-bg-gray-100")),ee.borderWidth||ee.borderColor){let tn=ee.borderWidth||"0px",Fo=ee.borderColor||"transparent";Ne.style.border=`${tn} solid ${Fo}`,Ne.classList.remove("persona-border-none")}else Ne.style.border="",Ne.classList.add("persona-border-none");ee.borderRadius?(Ne.style.borderRadius=ee.borderRadius,Ne.classList.remove("persona-rounded-full")):(Ne.style.borderRadius="",Ne.classList.add("persona-rounded-full")),ee.paddingX?(Ne.style.paddingLeft=ee.paddingX,Ne.style.paddingRight=ee.paddingX):(Ne.style.paddingLeft="",Ne.style.paddingRight=""),ee.paddingY?(Ne.style.paddingTop=ee.paddingY,Ne.style.paddingBottom=ee.paddingY):(Ne.style.paddingTop="",Ne.style.paddingBottom="");let Co=ee.tooltipText??"Clear chat",en=ee.showTooltip??!0;Ne.setAttribute("aria-label",Co),xe&&nn({anchor:Ne,trigger:xe,text:()=>Ne?.getAttribute("aria-label")??Co,enabled:en})}}let qe=o.actionParsers&&o.actionParsers.length?o.actionParsers:[Fl],yt=o.actionHandlers&&o.actionHandlers.length?o.actionHandlers:[oi.message,oi.messageAndClick];Oe=$l({parsers:qe,handlers:yt,getSessionMetadata:me,updateSessionMetadata:de,emit:A.emit,documentRef:typeof document<"u"?document:null}),ft=Gx(o,Oe,Xt),jA(),P.updateConfig(o),(o.features?.history?.enabled===!0!==ye||o.features?.history?.provider!==et||o.getIdentityProof!==pt||o.clientToken!==gt)&&(kn({restoreFocus:!1}),xy()),$r(),Fc(),Jn(Ie,P.getMessages(),ft),mi(),Ac(),$A(),Ba(P.isStreaming()),Zt!==o.contextMentions&&Cb();let qr=o.voiceRecognition?.enabled===!0,Yt=typeof window<"u"&&(typeof window.webkitSpeechRecognition<"u"||typeof window.SpeechRecognition<"u"),qn=o.voiceRecognition?.provider?.type==="runtype";if(qr&&(Yt||qn))if(!se||!_n){let ee=ea(o);if(ee){se=ee.button,_n=ee.wrapper;let Qe=To&&To.parentElement===Kl?To:null;Kl?Kl.insertBefore(_n,Qe):go?.appendChild(_n),st&&(st.micButton=se),st?.addListener(se,"click",kg),se.disabled=P.isStreaming()}}else{let ee=o.voiceRecognition??{},Qe=o.sendButton??{},Je=ee.iconName??"mic",it=ee.iconSize,St=parseFloat(it??"")||yn;se.classList.add(Vn),se.classList.toggle(wo,!it),se.style.width=it??"",se.style.height=it??"",se.style.minWidth=it??"",se.style.minHeight=it??"";let rn=ee.iconColor??Qe.textColor;se.innerHTML="";let Co=ge(Je,St,rn||"currentColor",1.5);Co?se.appendChild(Co):se.textContent="\u{1F3A4}";let en=ee.backgroundColor??Qe.backgroundColor;en?se.style.backgroundColor=en:se.style.backgroundColor="",rn?se.style.color=rn:se.style.color="var(--persona-text, #111827)",ee.borderWidth?(se.style.borderWidth=ee.borderWidth,se.style.borderStyle="solid"):(se.style.borderWidth="",se.style.borderStyle=""),ee.borderColor?se.style.borderColor=ee.borderColor:se.style.borderColor="",ee.paddingX?(se.style.paddingLeft=ee.paddingX,se.style.paddingRight=ee.paddingX):(se.style.paddingLeft="",se.style.paddingRight=""),ee.paddingY?(se.style.paddingTop=ee.paddingY,se.style.paddingBottom=ee.paddingY):(se.style.paddingTop="",se.style.paddingBottom="");let tn=ee.tooltipText??"Start voice recognition",Fo=ee.showTooltip??!1;se.setAttribute("aria-label",tn),_n&&nn({anchor:se,trigger:_n,text:()=>se?.getAttribute("aria-label")??tn,enabled:Fo}),_n.style.display="",se.disabled=P.isStreaming()}else se&&_n&&(_n.style.display="none",o.voiceRecognition?.provider?.type==="runtype"?P.isVoiceActive()&&P.toggleVoice():Bo&&Ur());if(o.attachments?.enabled===!0){if(!An||!Et){let ee=o.attachments??{};Mn||(Mn=M("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2"),Mn.style.display="none",(ue.parentElement??go).insertBefore(Mn,ue)),vt||(vt=document.createElement("input"),vt.type="file",vt.accept=(ee.allowedTypes??br).join(","),vt.multiple=(ee.maxFiles??4)>1,vt.style.display="none",vt.setAttribute("aria-label","Attach files"),(ue.parentElement??go).insertBefore(vt,ue)),An=M("div","persona-send-button-wrapper"),Et=M("button",`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-attachment-button ${Vn} ${wo}`),Et.type="button",Et.setAttribute("aria-label",ee.buttonTooltipText??"Attach file");let Qe=ee.buttonIconName??"paperclip";Et.style.fontSize="18px",Et.style.lineHeight="1";let Je=ge(Qe,yn,"currentColor",1.5);Je?Et.appendChild(Je):Et.textContent="\u{1F4CE}",Et.addEventListener("click",St=>{St.preventDefault(),vt?.click()}),An.appendChild(Et);let it=ee.buttonTooltipText??"Attach file";nn({anchor:Et,trigger:An,text:()=>Et?.getAttribute("aria-label")??it}),tu?tu.append(An):go.appendChild(An),st&&(st.attachmentButton=Et,st.attachmentInput=vt??void 0,st.attachmentPreviews=Mn??void 0),!tt&&vt&&Mn&&(tt=Ks.fromConfig(ee,th),tt.setPreviewsContainer(Mn),st?.addListener(vt,"change",async()=>{tt&&vt?.files&&(await tt.handleFileSelect(vt.files),vt.value="")}))}else{An.style.display="";let ee=o.attachments??{};vt&&(vt.accept=(ee.allowedTypes??br).join(","),vt.multiple=(ee.maxFiles??4)>1),tt&&tt.updateConfig({allowedTypes:ee.allowedTypes,maxFileSize:ee.maxFileSize,maxFiles:ee.maxFiles,adapter:ee.adapter})}if(fe.querySelector(".persona-attachment-drop-overlay")?.remove(),fe.appendChild(Qx(o.attachments?.dropOverlay)),Et){let ee=o.attachments??{},Qe=ee.buttonTooltipText??"Attach file";Et.setAttribute("aria-label",Qe),Et.textContent="";let Je=ge(ee.buttonIconName??"paperclip",yn,"currentColor",1.5);Je?Et.appendChild(Je):Et.textContent="\u{1F4CE}",An&&nn({anchor:Et,trigger:An,text:()=>Et?.getAttribute("aria-label")??Qe})}}else An&&(An.style.display="none"),tt&&tt.clearAttachments(),fe.querySelector(".persona-attachment-drop-overlay")?.remove();let Tt=o.sendButton??{},Rg=Tt.useIcon??!1,$s=Tt.iconText??"\u2191",od=Tt.iconName,Ib=Tt.tooltipText??"Send message",rE=Tt.showTooltip??!1,tl=Tt.size,sE=parseFloat(tl??"")||bm,rd=Tt.backgroundColor,nl=Tt.textColor;if(Rg){if(Te.style.width=tl??"",Te.style.height=tl??"",Te.style.minWidth=tl??"",Te.style.minHeight=tl??"",Te.style.fontSize="18px",Te.style.lineHeight="1",nl?Te.style.color=nl:Te.style.color="var(--persona-send-button-fg, var(--persona-button-primary-fg, #ffffff))",!P.isStreaming())if(Te.innerHTML="",od){let ee=parseFloat(Tt.iconSize??"")||Math.round(sE*.5),Qe=nl?.trim()||"currentColor",Je=Tt.iconStrokeWidth??2,it=ge(od,ee,Qe,Je),St=ge(Tt.stopIconName??"square",ee,Qe,Je);it&&St?Te.appendChild(vm(it,St)):it?Te.appendChild(it):Te.textContent=$s}else Te.textContent=$s;Te.className=`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer ${Vn}`,rd?(Te.style.backgroundColor=rd,Te.classList.remove("persona-bg-persona-primary")):(Te.style.backgroundColor="",Te.classList.add("persona-bg-persona-primary"))}else Te.textContent=o.copy?.sendButtonLabel??"Send",Te.style.width="",Te.style.height="",Te.style.minWidth="",Te.style.minHeight="",Te.style.fontSize="",Te.style.lineHeight="",Te.className="persona-rounded-button persona-bg-persona-accent persona-px-4 persona-py-2 persona-text-sm persona-font-semibold persona-text-white disabled:persona-opacity-50 persona-cursor-pointer",rd?(Te.style.backgroundColor=rd,Te.classList.remove("persona-bg-persona-accent")):Te.classList.add("persona-bg-persona-accent"),nl?Te.style.color=nl:Te.classList.add("persona-text-white");Tt.borderWidth?(Te.style.borderWidth=Tt.borderWidth,Te.style.borderStyle="solid"):(Te.style.borderWidth="",Te.style.borderStyle=""),Tt.borderColor?Te.style.borderColor=Tt.borderColor:Te.style.borderColor="",Tt.paddingX?(Te.style.paddingLeft=Tt.paddingX,Te.style.paddingRight=Tt.paddingX):(Te.style.paddingLeft="",Te.style.paddingRight=""),Tt.paddingY?(Te.style.paddingTop=Tt.paddingY,Te.style.paddingBottom=Tt.paddingY):(Te.style.paddingTop="",Te.style.paddingBottom=""),P.isStreaming()||Te.setAttribute("aria-label",Ib),xc(),To&&nn({anchor:Te,trigger:To,text:()=>Te.getAttribute("aria-label")??Ib,enabled:rE}),hh();let Rb=Xd(Me.getState().activeModeIds,o.composer?.modes);Me.setActiveModeIds(Rb),ii().length>0!==!!Jo&&uu(),Jo?.render(Rb,ii());for(let ee of[...ai.keys()])Yd(ee,o.composer?.modeGroups)||ai.delete(ee);ai.forEach(ee=>ee.repaint()),kr?.repaint(),Lo?.resolve();let sd=os(o,Ae());if(vu(),sd){Ie.style.maxWidth=sd,Ie.style.marginLeft="auto",Ie.style.marginRight="auto",Ie.style.width="100%",Bn.style.maxWidth=sd,Bn.style.marginLeft="auto",Bn.style.marginRight="auto",Bn.style.width="100%";for(let ee of[go,Er,Mn,lt])ee&&(ee.style.maxWidth=sd,ee.style.marginLeft="auto",ee.style.marginRight="auto",ee.style.width="100%")}else{Ie.style.maxWidth="",Ie.style.marginLeft="",Ie.style.marginRight="",Ie.style.width="",Bn.style.maxWidth="",Bn.style.marginLeft="",Bn.style.marginRight="",Bn.style.width="";for(let ee of[go,Er,Mn,lt])ee&&(ee.style.maxWidth="",ee.style.marginLeft="",ee.style.marginRight="",ee.style.width="")}let zr=o.statusIndicator??{},iE=zr.visible??!0;if(lt.style.display=iE?"":"none",P){let ee=P.getStatus();Vl(lt,(Je=>Je==="idle"?zr.idleText??$t.idle:Je==="connecting"?zr.connectingText??$t.connecting:Je==="connected"?zr.connectedText??$t.connected:Je==="error"?zr.errorText??$t.error:$t[Je])(ee),zr,ee)}lt.classList.remove("persona-text-left","persona-text-center","persona-text-right");let aE=zr.align==="left"?"persona-text-left":zr.align==="center"?"persona-text-center":"persona-text-right";lt.classList.add(aE),pu(),Ru(),mo(),Ut()},open(){ke()&&ut(!0,"api")},close(){ke()&&ut(!1,"api")},toggle(){ke()&&ut(!ve,"api")},reconnect(){P.reconnectNow()},clearChat(){Zo=!1,P.clearMessages(),Dt.clear(),Tn();try{localStorage.removeItem(ma),o.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${ma}`)}catch(c){console.error("[AgentWidget] Failed to clear default localStorage:",c)}if(o.clearChatHistoryStorageKey&&o.clearChatHistoryStorageKey!==ma)try{localStorage.removeItem(o.clearChatHistoryStorageKey),o.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${o.clearChatHistoryStorageKey}`)}catch(c){console.error("[AgentWidget] Failed to clear custom localStorage:",c)}let i=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});window.dispatchEvent(i),Q?.clear&&mc(()=>Q.clear(),"[AgentWidget] Failed to clear storage adapter:"),Y={},Oe.syncFromMetadata(),tt?.clearAttachments(),hc(),li(void 0),ko(void 0),ws(),ot?.clear(),Wn?.reset(),J?.update()},setMessage(i){return!ue||P.isStreaming()||Dr()?!1:(!ve&&ke()&&ut(!0,"system"),ue.value=i,ue.dispatchEvent(new Event("input",{bubbles:!0})),!0)},submitMessage(i){if(P.isStreaming()||Ps())return!1;let c=i?.trim()||ue.value.trim();return c?(!ve&&ke()&&ut(!0,"system"),ue.value="",ue.style.height="auto",Po(),Xc(c,{consumeDraft:!1}),!0):!1},getComposerState(){return Me.getState()},setQuote(i){let c=i?.text?.trim();c&&ko({...i,text:c})},clearQuote(){ko(void 0)},startVoiceRecognition(){return P.isStreaming()?!1:o.voiceRecognition?.provider?.type==="runtype"?(P.isVoiceActive()||(!ve&&ke()&&ut(!0,"system"),Ge.manuallyDeactivated=!1,yo(),P.toggleVoice().then(()=>{Ge.active=P.isVoiceActive(),or("user"),P.isVoiceActive()&&Oi()})),!0):Bo?!0:sb()?(!ve&&ke()&&ut(!0,"system"),Ge.manuallyDeactivated=!1,yo(),Zc("user"),!0):!1},stopVoiceRecognition(){return o.voiceRecognition?.provider?.type==="runtype"?P.isVoiceActive()?(P.toggleVoice().then(()=>{Ge.active=!1,Ge.manuallyDeactivated=!0,yo(),or("user"),ur()}),!0):!1:Bo?(Ge.manuallyDeactivated=!0,yo(),Ur("user"),!0):!1},injectMessage(i){return!ve&&ke()&&ut(!0,"system"),P.injectMessage(i)},injectAssistantMessage(i){!ve&&ke()&&ut(!0,"system");let c=P.injectAssistantMessage(i);return Re&&(Re=!1,Mt&&(clearTimeout(Mt),Mt=null),setTimeout(()=>{P&&!P.isStreaming()&&P.continueConversation()},100)),c},injectUserMessage(i){return!ve&&ke()&&ut(!0,"system"),P.injectUserMessage(i)},injectSystemMessage(i){return!ve&&ke()&&ut(!0,"system"),P.injectSystemMessage(i)},injectMessageBatch(i){return!ve&&ke()&&ut(!0,"system"),P.injectMessageBatch(i)},injectComponentDirective(i){return!ve&&ke()&&ut(!0,"system"),P.injectComponentDirective(i)},injectTestMessage(i){!ve&&ke()&&ut(!0,"system"),P.injectTestEvent(i)},async connectStream(i,c){return P.connectStream(i,c)},__pushEventStreamEvent(i){an&&(ie(),oe(i.type,i.payload))},showEventStream(){an&&du()},hideEventStream(){v&&ci()},isEventStreamVisible(){return v},listConversations(i){return P.listConversations(i)},getActiveConversationId(){return P.getActiveConversationId()},openConversation(i,c){return mg(i,{focusComposer:c?.focus===!0})},startNewConversation(i){return fg({focusComposer:i?.focus===!0})},deleteConversation(i){return Gy(i)},renameConversation(i,c){return hg(i,{title:c})},setConversationStarred(i,c){return hg(i,{starred:c})},clearConversationHistory(i){return Qy(i)},resetHistoryIdentity(){return Yy()},getHistoryIdentityStatus(){return Un?Un.getIdentityStatus():Xu()?{state:"unavailable",reason:"ineligible_mode"}:{state:"unavailable",reason:"history_disabled"}},showHistory(i){return Ga({...i?.returnSurface?{returnSurface:i.returnSurface}:{},...i?.focus!==void 0?{focus:i.focus}:{}})},hideHistory(i){kn(i?.restoreFocus!==void 0?{restoreFocus:i.restoreFocus}:void 0)},isHistoryVisible(){return le},showArtifacts(){wn(o)&&(Zo=!1,pi=!0,ho(),Ke?.setMobileOpen(!0))},hideArtifacts(){wn(o)&&(Zo=!0,ho())},upsertArtifact(i){return wn(o)?(Uo(o.features?.artifacts,{artifactType:i.artifactType,...i.artifactType==="markdown"&&i.file?{file:i.file}:{},...i.presentation?{presentation:i.presentation}:{}})==="panel"&&(Zo=!1,pi=!0),P.upsertArtifact(i)):null},selectArtifact(i){wn(o)&&P.selectArtifact(i)},clearArtifacts(){wn(o)&&P.clearArtifacts()},getArtifacts(){return P?.getArtifacts()??[]},getSelectedArtifactId(){return P?.getSelectedArtifactId()??null},focusInput(){return Se&&!ve&&!Ae()||!ue?!1:(ue.focus(),!0)},async resolveApproval(i,c,g){let b=P.getMessages().find(w=>w.variant==="approval"&&w.approval?.id===i);if(!b?.approval)throw new Error(`Approval not found: ${i}`);if(b.approval.toolType==="webmcp"){P.resolveWebMcpApproval(b.id,c);return}return P.resolveApproval(b.approval,c,g)},setFollowUpSuggestions(i){uA(i)},clearFollowUpSuggestions(){qh()},getMessages(){return P.getMessages()},getStatus(){return P.getStatus()},getPersistentMetadata(){return{...Y}},updatePersistentMetadata(i){de(i)},on(i,c){return A.on(i,c)},off(i,c){A.off(i,c)},isOpen(){return ke()&&ve},isVoiceActive(){return Ge.active},toggleReadAloud(i){P.toggleReadAloud(i)},stopReadAloud(){P.stopSpeaking()},getReadAloudState(i){return P.getReadAloudState(i)},onReadAloudChange(i){return P.onReadAloudChange(i)},getState(){return{open:ke()&&ve,launcherEnabled:Se,voiceActive:Ge.active,streaming:P.isStreaming()}},showCSATFeedback(i){!ve&&ke()&&ut(!0,"system");let c=Ie.querySelector(".persona-feedback-container");c&&c.remove();let g=_p({onSubmit:async(f,b)=>{P.isClientTokenMode()&&await P.submitCSATFeedback(f,b),i?.onSubmit?.(f,b)},onDismiss:i?.onDismiss,...i});Ie.appendChild(g),g.scrollIntoView({behavior:"smooth",block:"end"})},showNPSFeedback(i){!ve&&ke()&&ut(!0,"system");let c=Ie.querySelector(".persona-feedback-container");c&&c.remove();let g=Dp({onSubmit:async(f,b)=>{P.isClientTokenMode()&&await P.submitNPSFeedback(f,b),i?.onSubmit?.(f,b)},onDismiss:i?.onDismiss,...i});Ie.appendChild(g),g.scrollIntoView({behavior:"smooth",block:"end"})},async submitCSATFeedback(i,c){return P.submitCSATFeedback(i,c)},async submitNPSFeedback(i,c){return P.submitNPSFeedback(i,c)},destroy(){qu(),Is!=null&&(clearInterval(Is),Is=null),Ce.forEach(i=>i()),Ye.remove(),Jt?.remove(),Lt?.destroy(),mn?.remove(),ys&&Ve.removeEventListener("click",ys)}};if(((n?.debugTools??!1)||!!o.debug)&&typeof window<"u"){let i=window.AgentWidgetBrowser,c={controller:It,getMessages:It.getMessages,getStatus:It.getStatus,getMetadata:It.getPersistentMetadata,updateMetadata:It.updatePersistentMetadata,clearHistory:()=>It.clearChat(),setVoiceActive:g=>g?It.startVoiceRecognition():It.stopVoiceRecognition()};window.AgentWidgetBrowser=c,Ce.push(()=>{window.AgentWidgetBrowser===c&&(window.AgentWidgetBrowser=i)})}if(typeof window<"u"){let i=e.getAttribute("data-persona-instance")||e.id||"persona-"+Math.random().toString(36).slice(2,8),c=V=>{let Z=V.detail;(!Z?.instanceId||Z.instanceId===i)&&It.focusInput()};if(window.addEventListener("persona:focusInput",c),Ce.push(()=>{window.removeEventListener("persona:focusInput",c)}),an){let V=ae=>{let ye=ae.detail;(!ye?.instanceId||ye.instanceId===i)&&It.showEventStream()},Z=ae=>{let ye=ae.detail;(!ye?.instanceId||ye.instanceId===i)&&It.hideEventStream()};window.addEventListener("persona:showEventStream",V),window.addEventListener("persona:hideEventStream",Z),Ce.push(()=>{window.removeEventListener("persona:showEventStream",V),window.removeEventListener("persona:hideEventStream",Z)})}let g=V=>{let Z=V.detail;(!Z?.instanceId||Z.instanceId===i)&&It.showHistory()},f=V=>{let Z=V.detail;(!Z?.instanceId||Z.instanceId===i)&&It.hideHistory()};window.addEventListener("persona:showHistory",g),window.addEventListener("persona:hideHistory",f),Ce.push(()=>{window.removeEventListener("persona:showHistory",g),window.removeEventListener("persona:hideHistory",f)});let b=V=>{let Z=V.detail;(!Z?.instanceId||Z.instanceId===i)&&It.showArtifacts()},w=V=>{let Z=V.detail;(!Z?.instanceId||Z.instanceId===i)&&It.hideArtifacts()},W=V=>{let Z=V.detail;Z?.instanceId&&Z.instanceId!==i||Z?.artifact&&It.upsertArtifact(Z.artifact)},z=V=>{let Z=V.detail;Z?.instanceId&&Z.instanceId!==i||typeof Z?.id=="string"&&It.selectArtifact(Z.id)},q=V=>{let Z=V.detail;(!Z?.instanceId||Z.instanceId===i)&&It.clearArtifacts()};window.addEventListener("persona:showArtifacts",b),window.addEventListener("persona:hideArtifacts",w),window.addEventListener("persona:upsertArtifact",W),window.addEventListener("persona:selectArtifact",z),window.addEventListener("persona:clearArtifacts",q),Ce.push(()=>{window.removeEventListener("persona:showArtifacts",b),window.removeEventListener("persona:hideArtifacts",w),window.removeEventListener("persona:upsertArtifact",W),window.removeEventListener("persona:selectArtifact",z),window.removeEventListener("persona:clearArtifacts",q)})}let oo=kL(o.persistState);if(oo&&ke()){let i=LL(oo.storage),c=`${oo.keyPrefix}widget-open`,g=`${oo.keyPrefix}widget-voice`,f=`${oo.keyPrefix}widget-voice-mode`;if(i){let b=oo.persist?.openState&&i.getItem(c)==="true",w=oo.persist?.voiceState&&i.getItem(g)==="true",W=oo.persist?.voiceState&&i.getItem(f)==="true";if(b&&(Lt?.setPanelOpen(!0,"auto"),setTimeout(()=>{It.open(),setTimeout(()=>{if(w||W)It.startVoiceRecognition();else if(oo.persist?.focusInput){let z=e.querySelector("textarea");z&&z.focus()}},100)},0)),oo.persist?.openState&&(A.on("widget:opened",()=>{i.setItem(c,"true")}),A.on("widget:closed",()=>{i.setItem(c,"false")})),oo.persist?.voiceState&&(A.on("voice:state",z=>{i.setItem(g,z.active?"true":"false")}),A.on("user:message",z=>{i.setItem(f,z.viaVoice?"true":"false")})),oo.clearOnChatClear){let z=()=>{i.removeItem(c),i.removeItem(g),i.removeItem(f)},q=()=>z();window.addEventListener("persona:clear-chat",q),Ce.push(()=>{window.removeEventListener("persona:clear-chat",q)})}}}if(te&&ke()&&(Lt?.setPanelOpen(!0,"auto"),setTimeout(()=>{It.open()},0)),wi(),!gA){let i=_i(()=>{P&&(xs++,Dt.clear(),Jn(Ie,P.getMessages(),ft))});Ce.push(i)}S=()=>{P&&(xs++,Dt.clear(),Jn(Ie,P.getMessages(),ft))},P.getMessages().length>0&&wc(),T=()=>{P&&(xs++,Dt.clear(),Jn(Ie,P.getMessages(),ft))};let nE=jb(()=>{P&&(xs++,Dt.clear(),Jn(Ie,P.getMessages(),ft))});Ce.push(nE);let oE=bf(()=>{P&&(xs++,Dt.clear(),Jn(Ie,P.getMessages(),ft),Cr()?.updateInlineArtifactBlocks(Ie,Xn.artifacts,{suppressTransition:!0}),ho())});return Ce.push(oE),It};var Yx=(e,t)=>{let n=e.trim(),o=/^(\d+(?:\.\d+)?)px$/i.exec(n);if(o)return Math.max(0,parseFloat(o[1]));let r=/^(\d+(?:\.\d+)?)%$/i.exec(n);return r?Math.max(0,t*parseFloat(r[1])/100):420},HL=(e,t)=>{if(t===!1){e.style.maxHeight="";return}e.style.maxHeight="100vh",e.style.maxHeight=t},WL=(e,t)=>{t===!1?(e.style.position="relative",e.style.top=""):(e.style.position="sticky",e.style.top="0")},OL=(e,t)=>{let n=e.parentElement;if(!n)return;let o=e.ownerDocument.createElement("div");o.style.cssText="width:0;height:1px;margin:0;padding:0;border:0;visibility:hidden;",n.appendChild(o);let r=o.offsetHeight>0;o.style.height="100%";let s=o.offsetHeight>0;o.remove(),!(!r||s)&&console.warn("[AgentWidget] Docked mode: no ancestor of the dock target provides a definite height, so the dock panel cannot size to your layout."+(t.maxHeight===!1?" The viewport guard is disabled (dock.maxHeight: false), so the panel will grow with the conversation and overflow the viewport.":` Falling back to clamping the panel to ${t.maxHeight} (configurable via launcher.dock.maxHeight).`)+" To size the panel from your layout instead, give the height chain a definite height (e.g. `html, body { height: 100% }`) down to the dock target's parent.")},Xx=(e,t)=>{let n=t?.launcher?.enabled??!0;e.className="persona-host",e.style.height=n?"":"100%",e.style.display=n?"":"flex",e.style.flexDirection=n?"":"column",e.style.flex=n?"":"1 1 auto",e.style.minHeight=n?"":"0",e.style.minWidth=n?"":"0"},Of=e=>{e.style.position="",e.style.top="",e.style.bottom="",e.style.left="",e.style.right="",e.style.zIndex="",e.style.transform="",e.style.pointerEvents=""},Jx=e=>{e.style.inset="",e.style.width="",e.style.height="",e.style.maxWidth="",e.style.maxHeight="",e.style.minWidth="",Of(e)},Rf=e=>{e.style.transition=""},Hf=e=>{e.style.display="",e.style.flexDirection="",e.style.flex="",e.style.minHeight="",e.style.minWidth="",e.style.width="",e.style.height="",e.style.alignItems="",e.style.transition="",e.style.transform="",e.style.marginLeft=""},Wf=e=>{e.style.width="",e.style.maxWidth="",e.style.minWidth="",e.style.flex="1 1 auto"},$p=(e,t)=>{e.style.width="",e.style.minWidth="0",e.style.maxWidth="",e.style.boxSizing="",t.style.alignItems=""},BL=(e,t,n,o,r)=>{r?n.parentElement!==t&&(e.replaceChildren(),t.replaceChildren(n,o),e.appendChild(t)):n.parentElement===t&&(t.replaceChildren(),e.appendChild(n),e.appendChild(o))},_L=(e,t,n,o,r,s)=>{let a=s?t:e;r==="left"?a.firstElementChild!==o&&a.replaceChildren(o,n):a.lastElementChild!==o&&a.replaceChildren(n,o)},DL=e=>{let t=ns(e),n=t.components?.panel,o=(r,s)=>r==null||r===""?s:bn(t,r)??r;return{inset:o(n?.inset,Jd),canvasBackground:o(n?.canvasBackground,Zd)}},Zx=(e,t,n,o)=>{if(!t){e.style.padding="",e.style.background="",e.style.boxSizing="";return}e.style.boxSizing="border-box",e.style.padding=n,e.style.background=o},NL=(e,t,n,o,r,s,a,l)=>{let d=Rn(s),p=d.reveal==="push",u=l!=null,m=l?.inset??"",y=l?.canvasBackground??"";BL(e,t,n,o,p),_L(e,t,n,o,d.side,p),e.dataset.personaHostLayout="docked",e.dataset.personaDockSide=d.side,e.dataset.personaDockOpen=a?"true":"false",e.style.width="100%",e.style.maxWidth="100%",e.style.minWidth="0",e.style.height="100%",e.style.minHeight="0",e.style.position="relative",n.style.display="flex",n.style.flexDirection="column",n.style.minHeight="0",n.style.position="relative",r.className="persona-host",r.style.height="100%",r.style.minHeight="0",r.style.minWidth="0",r.style.display="flex",r.style.flexDirection="column",r.style.flex="1 1 auto";let h=e.ownerDocument.defaultView,C=s?.launcher?.mobileFullscreen??!0,S=s?.launcher?.mobileBreakpoint??640,x=h!=null?h.innerWidth<=S:!1;if(C&&x&&a){e.dataset.personaDockMobileFullscreen="true",e.removeAttribute("data-persona-dock-reveal"),Hf(t),Rf(o),Jx(o),Wf(n),$p(r,o),Zx(o,!1,"",""),e.style.display="flex",e.style.flexDirection="column",e.style.alignItems="stretch",e.style.overflow="hidden",n.style.flex="1 1 auto",n.style.width="100%",n.style.minWidth="0",o.style.display="flex",o.style.flexDirection="column",o.style.position="fixed",o.style.inset="0",o.style.width="100%",o.style.height="100%",o.style.maxWidth="100%",o.style.minWidth="0",o.style.minHeight="0",o.style.overflow="hidden",o.style.zIndex=String(s?.launcher?.zIndex??sn),o.style.transform="none",o.style.transition="none",o.style.pointerEvents="auto",o.style.flex="none",p&&(t.style.display="flex",t.style.flexDirection="column",t.style.width="100%",t.style.height="100%",t.style.minHeight="0",t.style.minWidth="0",t.style.flex="1 1 auto",t.style.alignItems="stretch",t.style.transform="none",t.style.marginLeft="0",t.style.transition="none",n.style.flex="1 1 auto",n.style.width="100%",n.style.maxWidth="100%",n.style.minWidth="0");return}if(e.removeAttribute("data-persona-dock-mobile-fullscreen"),Jx(o),HL(o,d.maxHeight),Zx(o,u&&a,m,y),d.reveal==="overlay"){e.style.display="flex",e.style.flexDirection="row",e.style.alignItems="stretch",e.style.overflow="hidden",e.dataset.personaDockReveal="overlay",Hf(t),Rf(o),Wf(n),$p(r,o);let O=d.animate?"transform 180ms ease":"none",$=d.side==="right"?"translateX(100%)":"translateX(-100%)",T=a?"translateX(0)":$;o.style.display="flex",o.style.flexDirection="column",o.style.flex="none",o.style.position="absolute",o.style.top="0",o.style.bottom="0",o.style.width=d.width,o.style.maxWidth=d.width,o.style.minWidth=d.width,o.style.minHeight="0",o.style.overflow="hidden",o.style.transition=O,o.style.transform=T,o.style.pointerEvents=a?"auto":"none",o.style.zIndex="2",d.side==="right"?(o.style.right="0",o.style.left=""):(o.style.left="0",o.style.right="")}else if(d.reveal==="push"){e.style.display="flex",e.style.flexDirection="row",e.style.alignItems="stretch",e.style.overflow="hidden",e.dataset.personaDockReveal="push",Rf(o),Of(o),$p(r,o);let O=Yx(d.width,e.clientWidth),$=Math.max(0,e.clientWidth),T=d.animate?"margin-left 180ms ease":"none",I=d.side==="right"?a?-O:0:a?0:-O;t.style.display="flex",t.style.flexDirection="row",t.style.flex="0 0 auto",t.style.minHeight="0",t.style.minWidth="0",t.style.alignItems="stretch",t.style.height="100%",t.style.width=`${$+O}px`,t.style.transition=T,t.style.marginLeft=`${I}px`,t.style.transform="",n.style.flex="0 0 auto",n.style.flexGrow="0",n.style.flexShrink="0",n.style.width=`${$}px`,n.style.maxWidth=`${$}px`,n.style.minWidth=`${$}px`,o.style.display="flex",o.style.flexDirection="column",o.style.flex="0 0 auto",o.style.flexShrink="0",o.style.width=d.width,o.style.minWidth=d.width,o.style.maxWidth=d.width,o.style.position="relative",o.style.top="",o.style.overflow="hidden",o.style.transition="none",o.style.pointerEvents=a?"auto":"none"}else{e.style.display="flex",e.style.flexDirection="row",e.style.alignItems="stretch",e.style.overflow="",Hf(t),Of(o),Wf(n),$p(r,o);let O=d.reveal==="emerge";O?e.dataset.personaDockReveal="emerge":e.removeAttribute("data-persona-dock-reveal");let $=a?d.width:"0px",T=d.animate?`width 180ms ease, min-width 180ms ease, max-width 180ms ease, flex-basis 180ms ease${u?", padding 180ms ease":""}`:"none",I=!a;if(o.style.display="flex",o.style.flexDirection="column",o.style.flex=`0 0 ${$}`,o.style.width=$,o.style.maxWidth=$,o.style.minWidth=$,o.style.minHeight="0",WL(o,d.maxHeight),o.style.overflow=O||I?"hidden":"visible",o.style.transition=T,O){o.style.alignItems=d.side==="right"?"flex-start":"flex-end";let A=u?`calc(${Yx(d.width,e.clientWidth)}px - (2 * ${m}))`:d.width;r.style.width=A,r.style.minWidth=A,r.style.maxWidth=A,r.style.boxSizing="border-box"}}},FL=(e,t)=>{let n=e.ownerDocument.createElement("div");return Xx(n,t),e.appendChild(n),{mode:"direct",host:n,shell:null,syncWidgetState:()=>{},updateConfig(o){Xx(n,o)},destroy(){n.remove()}}},$L=(e,t)=>{let{ownerDocument:n}=e,o=e.parentElement;if(!o)throw new Error("Docked widget target must be attached to the DOM");let r=e.tagName.toUpperCase();if(r==="BODY"||r==="HTML")throw new Error('Docked widget target must be a concrete container element, not "body" or "html"');let s=e.nextSibling,a=n.createElement("div"),l=n.createElement("div"),d=n.createElement("div"),p=n.createElement("aside"),u=n.createElement("div"),m=t?.launcher?.enabled??!0?t?.launcher?.autoExpand??!1:!0;l.dataset.personaDockRole="push-track",d.dataset.personaDockRole="content",p.dataset.personaDockRole="panel",u.dataset.personaDockRole="host",p.appendChild(u),o.insertBefore(a,e),d.appendChild(e);let y=null,h=()=>{y?.disconnect(),y=null},C=null,S=()=>{C=t?.launcher?.detachedPanel===!0?DL(t):null};S();let x=()=>{NL(a,l,d,p,u,t,m,C)},k=null,O=()=>{k?.(),k=null,!(t?.launcher?.detachedPanel!==!0||t?.colorScheme!=="auto")&&(k=ta(()=>{S(),x()}))},$=()=>{h(),Rn(t).reveal==="push"&&(typeof ResizeObserver>"u"||(y=new ResizeObserver(()=>{x()}),y.observe(a)))},T=!1,I=()=>{x(),$(),m&&!T&&a.dataset.personaDockMobileFullscreen!=="true"&&(T=!0,OL(a,Rn(t)))},A=a.ownerDocument.defaultView,N=()=>{I()};return A?.addEventListener("resize",N),Rn(t).reveal==="push"?(l.appendChild(d),l.appendChild(p),a.appendChild(l)):(a.appendChild(d),a.appendChild(p)),I(),O(),{mode:"docked",host:u,shell:a,syncWidgetState(Q){let ce=Q.launcherEnabled?Q.open:!0;m!==ce&&(m=ce,I())},updateConfig(Q){t=Q,(t?.launcher?.enabled??!0)===!1&&(m=!0),S(),I(),O()},destroy(){A?.removeEventListener("resize",N),k?.(),k=null,h(),o.isConnected&&(s&&s.parentNode===o?o.insertBefore(e,s):o.appendChild(e)),a.remove()}}},jl=(e,t)=>At(t)?$L(e,t):FL(e,t);var UL=e=>{if(typeof window>"u"||typeof document>"u")throw new Error("Chat widget can only be mounted in a browser environment");if(typeof e=="string"){let t=document.querySelector(e);if(!t)throw new Error(`Chat widget target "${e}" was not found`);return t}return e},eS=(e,t)=>{if(!(e instanceof ShadowRoot)||e.querySelector("link[data-persona]"))return;let n=t.head.querySelector("link[data-persona]");if(!n)return;let o=n.cloneNode(!0);e.insertBefore(o,e.firstChild)},Bf=e=>{let t=UL(e.target),n=e.useShadowDom===!0,o=t.ownerDocument,r=e.config,s=jl(t,r),a,l=[],d=(x,k)=>{let $=!(k?.launcher?.enabled??!0)||At(k),T=o.createElement("div");if(T.setAttribute("data-persona-root","true"),$&&(T.style.height="100%",T.style.display="flex",T.style.flexDirection="column",T.style.flex="1",T.style.minHeight="0",T.style.minWidth="0"),n){let I=x.attachShadow({mode:"open"});I.appendChild(T),eS(I,o)}else x.appendChild(T),eS(x,o);return t.id&&T.setAttribute("data-persona-instance",t.id),T},p=()=>{s.syncWidgetState(a.getState())},u=()=>{l.forEach(x=>x()),l=[a.on("widget:opened",p),a.on("widget:closed",p)],p()},m=()=>{let x=d(s.host,r);a=Fp(x,r,{debugTools:e.debugTools}),u()},y=()=>{l.forEach(x=>x()),l=[],a.destroy()};m(),e.onChatReady?.();let h=x=>{y(),s.destroy(),s=jl(t,x),r=x,m()},C={update(x){let k=Ip(r??{},x),O=At(r),$=At(k),T=ss(r),I=ss(k);if(O!==$||T!==I){h(k);return}r=k,s.updateConfig(r),a.update(x),p()},destroy(){y(),s.destroy(),e.windowKey&&typeof window<"u"&&delete window[e.windowKey]}},S=new Proxy(C,{get(x,k,O){if(k==="host")return s.host;if(k in x)return Reflect.get(x,k,O);let $=a[k];return typeof $=="function"?$.bind(a):$}});return e.windowKey&&typeof window<"u"&&(window[e.windowKey]=S),S};var sS=new Set(["script","style","noscript","svg","path","meta","link","br","hr"]),jL=new Set(["button","a","input","select","textarea","details","summary"]),qL=new Set(["button","link","menuitem","tab","option","switch","checkbox","radio","combobox","listbox","slider","spinbutton","textbox"]),_f=/\b(product|card|item|listing|result)\b/i,Nf=/\$[\d,]+(?:\.\d{2})?|€[\d,]+(?:\.\d{2})?|£[\d,]+(?:\.\d{2})?|USD\s*[\d,]+(?:\.\d{2})?/i,zL=3e3,VL=100;function iS(e){let t=typeof e.className=="string"?e.className:"";if(_f.test(t)||e.id&&_f.test(e.id))return!0;for(let n=0;n<e.attributes.length;n++){let o=e.attributes[n];if(o.name.startsWith("data-")&&_f.test(o.value))return!0}return!1}function aS(e){return Nf.test((e.textContent??"").trim())}function lS(e){let t=e.querySelectorAll("a[href]");for(let n=0;n<t.length;n++){let o=t[n].getAttribute("href")??"";if(o&&o!=="#"&&!o.toLowerCase().startsWith("javascript:"))return!0}return!1}function KL(e){return!!e.querySelector('button, [role="button"], input[type="submit"], input[type="button"]')}function tS(e){let t=e.match(Nf);return t?t[0]:null}function nS(e){let t=e.querySelector(".product-title a, h1 a, h2 a, h3 a, h4 a, .title a, a[href]")??e.querySelector("a[href]");if(t&&t.textContent?.trim()){let o=t.getAttribute("href");return{title:t.textContent.trim(),href:o&&o!=="#"?o:null}}let n=e.querySelector("h1, h2, h3, h4, h5, h6");return n?.textContent?.trim()?{title:n.textContent.trim(),href:null}:{title:"",href:null}}function GL(e){let t=[],n=o=>{let r=o.trim();r&&!t.includes(r)&&t.push(r)};return e.querySelectorAll("button").forEach(o=>n(o.textContent??"")),e.querySelectorAll('[role="button"]').forEach(o=>n(o.textContent??"")),e.querySelectorAll('input[type="submit"], input[type="button"]').forEach(o=>{n(o.value??"")}),t.slice(0,6)}var QL="commerce-card",YL="result-card";function oS(e){return!iS(e)||!aS(e)||!lS(e)&&!KL(e)?0:5200}function rS(e){return!iS(e)||aS(e)||!lS(e)||(e.textContent??"").trim().length<20||!(!!e.querySelector("h1, h2, h3, h4, h5, h6, .title")||!!e.querySelector(".snippet, .description, p"))?0:2800}var Ff=[{id:QL,scoreElement(e){return oS(e)},shouldSuppressDescendant(e,t,n){if(t===e||!e.contains(t))return!1;if(n.interactivity==="static"){let o=n.text.trim();return!!(o.length===0||Nf.test(o)&&o.length<32)}return!0},formatSummary(e,t){if(oS(e)===0)return null;let{title:n,href:o}=nS(e),r=tS((e.textContent??"").trim())??tS(t.text)??"",s=GL(e);return[o&&n?`[${n}](${o})${r?`: ${r}`:""}`:n?`${n}${r?`: ${r}`:""}`:r||t.text.trim().slice(0,120),`selector: ${t.selector}`,s.length?`actions: ${s.join(", ")}`:""].filter(Boolean).join(`
138
+ `)}},{id:YL,scoreElement(e){return rS(e)},formatSummary(e,t){if(rS(e)===0)return null;let{title:n,href:o}=nS(e);return[o&&n?`[${n}](${o})`:n||t.text.trim().slice(0,120),`selector: ${t.selector}`].filter(Boolean).join(`
139
+ `)}}];function XL(){typeof console<"u"&&typeof console.warn=="function"&&console.warn('[persona] collectEnrichedPageContext: options.mode is "simple" but `rules` were provided; rules are ignored.')}function JL(e){let t=e.options??{},n=t.maxElements??e.maxElements??80,o=t.excludeSelector??e.excludeSelector??".persona-host",r=t.maxTextLength??e.maxTextLength??200,s=t.visibleOnly??e.visibleOnly??!0,a=t.root??e.root,l=t.mode??"structured",d=t.maxCandidates??Math.max(500,n*10),p=e.rules??Ff;return l==="simple"&&e.rules&&e.rules.length>0?(XL(),p=[]):l==="simple"&&(p=[]),{mode:l,maxElements:n,maxCandidates:d,excludeSelector:o,maxTextLength:r,visibleOnly:s,root:a,rules:p}}function Df(e){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/([^\w-])/g,"\\$1")}var ZL=["data-testid","data-product","data-action","data-id","data-name","data-type"];function e0(e){let t=e.tagName.toLowerCase(),n=e.getAttribute("role");return t==="a"&&e.hasAttribute("href")?"navigable":t==="input"||t==="select"||t==="textarea"||n==="textbox"||n==="combobox"||n==="listbox"||n==="spinbutton"?"input":t==="button"||n==="button"||jL.has(t)||n&&qL.has(n)||e.hasAttribute("tabindex")||e.hasAttribute("onclick")||e.getAttribute("contenteditable")==="true"?"clickable":"static"}function cS(e){if(e.hidden)return!1;try{let t=getComputedStyle(e);if(t.display==="none"||t.visibility==="hidden")return!1}catch{}return!(e.style.display==="none"||e.style.visibility==="hidden")}function t0(e){let t={},n=e.id;n&&(t.id=n);let o=e.getAttribute("href");o&&(t.href=o);let r=e.getAttribute("aria-label");r&&(t["aria-label"]=r);let s=e.getAttribute("type");s&&(t.type=s);let a=e.getAttribute("value");a&&(t.value=a);let l=e.getAttribute("name");l&&(t.name=l);let d=e.getAttribute("role");d&&(t.role=d);for(let p=0;p<e.attributes.length;p++){let u=e.attributes[p];u.name.startsWith("data-")&&(t[u.name]=u.value)}return t}function $f(e){let t=e.tagName.toLowerCase();if(e.id){let r=`#${Df(e.id)}`;try{if(e.ownerDocument.querySelectorAll(r).length===1)return r}catch{}}for(let r of ZL){let s=e.getAttribute(r);if(s){let a=`${t}[${r}="${Df(s)}"]`;try{if(e.ownerDocument.querySelectorAll(a).length===1)return a}catch{}}}let n=Array.from(e.classList).filter(r=>r&&!r.startsWith("persona-")).slice(0,3);if(n.length>0){let r=`${t}.${n.map(a=>Df(a)).join(".")}`;try{if(e.ownerDocument.querySelectorAll(r).length===1)return r}catch{}let s=e.parentElement;if(s){let l=Array.from(s.querySelectorAll(`:scope > ${t}`)).indexOf(e);if(l>=0){let d=`${r}:nth-of-type(${l+1})`;try{if(e.ownerDocument.querySelectorAll(d).length===1)return d}catch{}}}}let o=e.parentElement;if(o){let s=Array.from(o.querySelectorAll(`:scope > ${t}`)).indexOf(e);if(s>=0)return`${t}:nth-of-type(${s+1})`}return t}function n0(e){return e==="static"?VL:zL}function dS(e,t){let n=e.tagName.toLowerCase(),o=(e.textContent??"").trim().substring(0,t);return{selector:$f(e),tagName:n,text:o,role:e.getAttribute("role"),interactivity:e0(e),attributes:t0(e)}}function o0(e,t,n,o){let r=n0(t.interactivity),s=null;for(let a of n){let l=a.scoreElement(e,t,o);l>0&&(r+=l,a.formatSummary&&!s&&(s=a))}return{score:r,formattingRule:s}}function r0(e,t){for(let n of e)if(t.el!==n.el&&n.formattingRule?.shouldSuppressDescendant&&n.el.contains(t.el)&&n.formattingRule.shouldSuppressDescendant(n.el,t.el,t.enriched))return!0;return!1}function s0(e,t){let n={doc:t.ownerDocument,maxTextLength:e.maxTextLength},o=new Set,r=[],s=0,a=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,null),l=a.currentNode;for(;l&&r.length<e.maxCandidates;){if(l.nodeType===Node.ELEMENT_NODE){let p=l,u=p.tagName.toLowerCase();if(sS.has(u)){l=a.nextNode();continue}if(e.excludeSelector)try{if(p.closest(e.excludeSelector)){l=a.nextNode();continue}}catch{}if(e.visibleOnly&&!cS(p)){l=a.nextNode();continue}let m=dS(p,e.maxTextLength),y=m.text.length>0,h=Object.keys(m.attributes).length>0&&!Object.keys(m.attributes).every(x=>x==="role");if(!y&&!h){l=a.nextNode();continue}if(o.has(m.selector)){l=a.nextNode();continue}o.add(m.selector);let{score:C,formattingRule:S}=o0(p,m,e.rules,n);r.push({el:p,domIndex:s,enriched:m,score:C,formattingRule:S}),s+=1}l=a.nextNode()}r.sort((p,u)=>{let m=p.enriched.interactivity==="static"?1:0,y=u.enriched.interactivity==="static"?1:0;return m!==y?m-y:u.score!==p.score?u.score-p.score:p.domIndex-u.domIndex});let d=[];for(let p of r){if(d.length>=e.maxElements)break;r0(d,p)||d.push(p)}return d.sort((p,u)=>{let m=p.enriched.interactivity==="static"?1:0,y=u.enriched.interactivity==="static"?1:0;return m!==y?m-y:m===1&&u.score!==p.score?u.score-p.score:p.domIndex-u.domIndex}),d.map(p=>{let u;if(p.formattingRule?.formatSummary){let y=p.formattingRule.formatSummary(p.el,p.enriched,n);y&&(u=y)}let m={...p.enriched};return u&&(m.formattedSummary=u),m})}function i0(e,t){let n=[],o=new Set,r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,null),s=r.currentNode;for(;s&&n.length<e.maxElements;){if(s.nodeType===Node.ELEMENT_NODE){let d=s,p=d.tagName.toLowerCase();if(sS.has(p)){s=r.nextNode();continue}if(e.excludeSelector)try{if(d.closest(e.excludeSelector)){s=r.nextNode();continue}}catch{}if(e.visibleOnly&&!cS(d)){s=r.nextNode();continue}let u=dS(d,e.maxTextLength),m=u.text.length>0,y=Object.keys(u.attributes).length>0&&!Object.keys(u.attributes).every(h=>h==="role");if(!m&&!y){s=r.nextNode();continue}o.has(u.selector)||(o.add(u.selector),n.push(u))}s=r.nextNode()}let a=[],l=[];for(let d of n)d.interactivity!=="static"?a.push(d):l.push(d);return[...a,...l].slice(0,e.maxElements)}function pS(e={}){let t=JL(e),n=t.root??document.body;return n?t.mode==="simple"?i0(t,n):s0(t,n):[]}var Up=100;function uS(e,t={}){if(e.length===0)return"No page elements found.";let n=t.mode??"structured",o=[];if(n==="structured"){let s=e.map(a=>a.formattedSummary).filter(a=>!!a&&a.length>0);s.length>0&&o.push(`Structured summaries:
140
140
  ${s.map(a=>`- ${a.split(`
141
141
  `).join(`
142
142
  `)}`).join(`
143
- `)}`)}let r={clickable:[],navigable:[],input:[],static:[]};for(let s of e)n==="structured"&&s.formattedSummary||r[s.interactivity].push(s);if(r.clickable.length>0){let s=r.clickable.map(a=>`- ${a.selector}: "${a.text.substring(0,$p)}" (clickable)`);o.push(`Interactive elements:
143
+ `)}`)}let r={clickable:[],navigable:[],input:[],static:[]};for(let s of e)n==="structured"&&s.formattedSummary||r[s.interactivity].push(s);if(r.clickable.length>0){let s=r.clickable.map(a=>`- ${a.selector}: "${a.text.substring(0,Up)}" (clickable)`);o.push(`Interactive elements:
144
144
  ${s.join(`
145
- `)}`)}if(r.navigable.length>0){let s=r.navigable.map(a=>`- ${a.selector}${a.attributes.href?`[href="${a.attributes.href}"]`:""}: "${a.text.substring(0,$p)}" (navigable)`);o.push(`Navigation links:
145
+ `)}`)}if(r.navigable.length>0){let s=r.navigable.map(a=>`- ${a.selector}${a.attributes.href?`[href="${a.attributes.href}"]`:""}: "${a.text.substring(0,Up)}" (navigable)`);o.push(`Navigation links:
146
146
  ${s.join(`
147
- `)}`)}if(r.input.length>0){let s=r.input.map(a=>`- ${a.selector}${a.attributes.type?`[type="${a.attributes.type}"]`:""}: "${a.text.substring(0,$p)}" (input)`);o.push(`Form inputs:
147
+ `)}`)}if(r.input.length>0){let s=r.input.map(a=>`- ${a.selector}${a.attributes.type?`[type="${a.attributes.type}"]`:""}: "${a.text.substring(0,Up)}" (input)`);o.push(`Form inputs:
148
148
  ${s.join(`
149
- `)}`)}if(r.static.length>0){let s=r.static.map(a=>`- ${a.selector}: "${a.text.substring(0,$p)}"`);o.push(`Content:
149
+ `)}`)}if(r.static.length>0){let s=r.static.map(a=>`- ${a.selector}: "${a.text.substring(0,Up)}"`);o.push(`Content:
150
150
  ${s.join(`
151
151
  `)}`)}return o.join(`
152
152
 
153
- `)}var o0={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"}}},dS={components:{panel:{borderRadius:"0",shadow:"none"}}},Nf={id:"shop",label:"Shopping Assistant",config:{theme:o0,launcher:{title:"Shopping Assistant",subtitle:"Here to help you find what you need",agentIconText:"\u{1F6CD}\uFE0F",position:"bottom-right",width:Gn},copy:{welcomeTitle:"Welcome to our shop!",welcomeSubtitle:"I can help you find products and answer questions",inputPlaceholder:"Ask me anything...",sendButtonLabel:"Send"},suggestionChips:["Show me what you can help with","Walk me through getting started","Answer a question about this page"]}},Ff={id:"minimal",label:"Minimal",config:{launcher:{enabled:!1,fullHeight:!0},layout:{header:{layout:"minimal",showCloseButton:!1},messages:{layout:"minimal"}},theme:dS}},$f={id:"fullscreen",label:"Fullscreen Assistant",config:{launcher:{enabled:!1,fullHeight:!0},layout:{header:{layout:"minimal",showCloseButton:!1},contentMaxWidth:"72ch"},theme:dS}},Uf={shop:Nf,minimal:Ff,fullscreen:$f};function pS(e){return Uf[e]}var uS=Hf;function gS(){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 mS(){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 fS(e){return{name:"@persona/brand",version:"1.0.0",transform(t){let n={...t.palette};return e.colors?.primary&&(n.colors={...n.colors,primary:{50:Ko(e.colors.primary,.95),100:Ko(e.colors.primary,.9),200:Ko(e.colors.primary,.8),300:Ko(e.colors.primary,.7),400:Ko(e.colors.primary,.6),500:e.colors.primary,600:Ko(e.colors.primary,.8),700:Ko(e.colors.primary,.7),800:Ko(e.colors.primary,.6),900:Ko(e.colors.primary,.5),950:Ko(e.colors.primary,.45)}}),{...t,palette:n}}}}function hS(){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 yS(){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 Ko(e,t){let n=parseInt(e.slice(1,3),16),o=parseInt(e.slice(3,5),16),r=parseInt(e.slice(5,7),16),s=Math.round(n+(255-n)*(1-t)),a=Math.round(o+(255-o)*(1-t)),l=Math.round(r+(255-r)*(1-t));return`#${s.toString(16).padStart(2,"0")}${a.toString(16).padStart(2,"0")}${l.toString(16).padStart(2,"0")}`}function bS(e){return{name:e.name,version:e.version,transform:e.transform||(t=>t),cssVariables:e.cssVariables,afterResolve:e.afterResolve}}function jf(e){return e?.cdnBase?.trim().replace(/\/+$/,"").replace(/[\\'"<>`]/g,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)||`https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${Uo}/dist`}function Cr(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(t=>t.toString()).join(", ")}]`:e.toString()}function r0(e){if(e)return{getHeaders:Cr(e.getHeaders),onFeedback:Cr(e.onFeedback),onCopy:Cr(e.onCopy),requestMiddleware:Cr(e.requestMiddleware),actionHandlers:Cr(e.actionHandlers),actionParsers:Cr(e.actionParsers),postprocessMessage:Cr(e.postprocessMessage),contextProviders:Cr(e.contextProviders),streamParser:Cr(e.streamParser)}}var vS=`({ text, message }: any) => {
153
+ `)}var a0={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"}}},gS={components:{panel:{borderRadius:"0",shadow:"none"}}},Uf={id:"shop",label:"Shopping Assistant",config:{theme:a0,launcher:{title:"Shopping Assistant",subtitle:"Here to help you find what you need",agentIconText:"\u{1F6CD}\uFE0F",position:"bottom-right",width:zn},copy:{welcomeTitle:"Welcome to our shop!",welcomeSubtitle:"I can help you find products and answer questions",inputPlaceholder:"Ask me anything...",sendButtonLabel:"Send"},suggestionChips:["Show me what you can help with","Walk me through getting started","Answer a question about this page"]}},jf={id:"minimal",label:"Minimal",config:{launcher:{enabled:!1,fullHeight:!0},layout:{header:{layout:"minimal",showCloseButton:!1},messages:{layout:"minimal"}},theme:gS}},qf={id:"fullscreen",label:"Fullscreen Assistant",config:{launcher:{enabled:!1,fullHeight:!0},layout:{header:{layout:"minimal",showCloseButton:!1},contentMaxWidth:"72ch"},theme:gS}},zf={shop:Uf,minimal:jf,fullscreen:qf};function mS(e){return zf[e]}var fS=Bf;function hS(){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 yS(){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 bS(e){return{name:"@persona/brand",version:"1.0.0",transform(t){let n={...t.palette};return e.colors?.primary&&(n.colors={...n.colors,primary:{50:Go(e.colors.primary,.95),100:Go(e.colors.primary,.9),200:Go(e.colors.primary,.8),300:Go(e.colors.primary,.7),400:Go(e.colors.primary,.6),500:e.colors.primary,600:Go(e.colors.primary,.8),700:Go(e.colors.primary,.7),800:Go(e.colors.primary,.6),900:Go(e.colors.primary,.5),950:Go(e.colors.primary,.45)}}),{...t,palette:n}}}}function vS(){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 CS(){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 Go(e,t){let n=parseInt(e.slice(1,3),16),o=parseInt(e.slice(3,5),16),r=parseInt(e.slice(5,7),16),s=Math.round(n+(255-n)*(1-t)),a=Math.round(o+(255-o)*(1-t)),l=Math.round(r+(255-r)*(1-t));return`#${s.toString(16).padStart(2,"0")}${a.toString(16).padStart(2,"0")}${l.toString(16).padStart(2,"0")}`}function wS(e){return{name:e.name,version:e.version,transform:e.transform||(t=>t),cssVariables:e.cssVariables,afterResolve:e.afterResolve}}function Vf(e){return e?.cdnBase?.trim().replace(/\/+$/,"").replace(/[\\'"<>`]/g,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)||`https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${io}/dist`}function Ar(e){if(e!==void 0)return typeof e=="string"?e:Array.isArray(e)?`[${e.map(t=>t.toString()).join(", ")}]`:e.toString()}function l0(e){if(e)return{getHeaders:Ar(e.getHeaders),onFeedback:Ar(e.onFeedback),onCopy:Ar(e.onCopy),requestMiddleware:Ar(e.requestMiddleware),actionHandlers:Ar(e.actionHandlers),actionParsers:Ar(e.actionParsers),postprocessMessage:Ar(e.postprocessMessage),contextProviders:Ar(e.contextProviders),streamParser:Ar(e.streamParser)}}var xS=`({ text, message }: any) => {
154
154
  const jsonSource = (message as any).rawContent || text || message.content;
155
155
  if (!jsonSource || typeof jsonSource !== 'string') return null;
156
156
  let cleanJson = jsonSource
@@ -163,7 +163,7 @@ ${s.join(`
163
163
  if (parsed.action) return { type: parsed.action, payload: parsed };
164
164
  } catch (e) { return null; }
165
165
  return null;
166
- }`,CS=`function(ctx) {
166
+ }`,SS=`function(ctx) {
167
167
  var jsonSource = ctx.message.rawContent || ctx.text || ctx.message.content;
168
168
  if (!jsonSource || typeof jsonSource !== 'string') return null;
169
169
  var cleanJson = jsonSource
@@ -176,7 +176,7 @@ ${s.join(`
176
176
  if (parsed.action) return { type: parsed.action, payload: parsed };
177
177
  } catch (e) { return null; }
178
178
  return null;
179
- }`,wS=`(action: any, context: any) => {
179
+ }`,AS=`(action: any, context: any) => {
180
180
  if (action.type !== 'nav_then_click') return;
181
181
  const payload = action.payload || action.raw || {};
182
182
  const url = payload?.page;
@@ -193,7 +193,7 @@ ${s.join(`
193
193
  const targetUrl = url.startsWith('http') ? url : new URL(url, window.location.origin).toString();
194
194
  window.location.href = targetUrl;
195
195
  return { handled: true, displayText: text };
196
- }`,xS=`function(action, context) {
196
+ }`,MS=`function(action, context) {
197
197
  if (action.type !== 'nav_then_click') return;
198
198
  var payload = action.payload || action.raw || {};
199
199
  var url = payload.page;
@@ -210,27 +210,27 @@ ${s.join(`
210
210
  var targetUrl = url.startsWith('http') ? url : new URL(url, window.location.origin).toString();
211
211
  window.location.href = targetUrl;
212
212
  return { handled: true, displayText: text };
213
- }`,s0=`(parsed: any) => {
213
+ }`,c0=`(parsed: any) => {
214
214
  if (!parsed || typeof parsed !== 'object') return null;
215
215
  if (parsed.action === 'nav_then_click') return 'Navigating...';
216
216
  if (parsed.action === 'message') return parsed.text || '';
217
217
  if (parsed.action === 'message_and_click') return parsed.text || 'Processing...';
218
218
  return parsed.text || null;
219
- }`,i0=`function(parsed) {
219
+ }`,d0=`function(parsed) {
220
220
  if (!parsed || typeof parsed !== 'object') return null;
221
221
  if (parsed.action === 'nav_then_click') return 'Navigating...';
222
222
  if (parsed.action === 'message') return parsed.text || '';
223
223
  if (parsed.action === 'message_and_click') return parsed.text || 'Processing...';
224
224
  return parsed.text || null;
225
- }`;function a0(e){if(!e)return null;let t=e.toString();return t.includes("createJsonStreamParser")||t.includes("partial-json")?"json":t.includes("createRegexJsonParser")||t.includes("regex")?"regex-json":t.includes("createXmlParser")||t.includes("<text>")?"xml":null}function Up(e){return e.parserType??a0(e.streamParser)??"plain"}function jp(e,t){let n=[];return e.toolCall&&(n.push(`${t}toolCall: {`),Object.entries(e.toolCall).forEach(([o,r])=>{typeof r=="string"&&n.push(`${t} ${o}: "${r}",`)}),n.push(`${t}},`)),n}function qp(e,t,n){let o=[],r=e.messageActions&&Object.entries(e.messageActions).some(([a,l])=>a!=="onFeedback"&&a!=="onCopy"&&l!==void 0),s=n?.onFeedback||n?.onCopy;return(r||s)&&(o.push(`${t}messageActions: {`),e.messageActions&&Object.entries(e.messageActions).forEach(([a,l])=>{a==="onFeedback"||a==="onCopy"||(typeof l=="string"?o.push(`${t} ${a}: "${l}",`):typeof l=="boolean"&&o.push(`${t} ${a}: ${l},`))}),n?.onFeedback&&o.push(`${t} onFeedback: ${n.onFeedback},`),n?.onCopy&&o.push(`${t} onCopy: ${n.onCopy},`),o.push(`${t}},`)),o}function zp(e,t){let n=[];if(e.markdown){let o=e.markdown.options&&Object.keys(e.markdown.options).length>0,r=e.markdown.disableDefaultStyles!==void 0;(o||r)&&(n.push(`${t}markdown: {`),o&&(n.push(`${t} options: {`),Object.entries(e.markdown.options).forEach(([s,a])=>{typeof a=="string"?n.push(`${t} ${s}: "${a}",`):typeof a=="boolean"&&n.push(`${t} ${s}: ${a},`)}),n.push(`${t} },`)),r&&n.push(`${t} disableDefaultStyles: ${e.markdown.disableDefaultStyles},`),n.push(`${t}},`))}return n}function Vp(e,t){if(!e.suggestions)return[];let n=JSON.stringify(e.suggestions,null,2).split(`
226
- `);return n.map((o,r)=>{let s=r===0?`${t}suggestions: `:t,a=r===n.length-1?",":"";return`${s}${o}${a}`})}function Kp(e,t){let n=[];if(e.layout){let o=e.layout.header&&Object.keys(e.layout.header).some(s=>s!=="render"),r=e.layout.messages&&Object.keys(e.layout.messages).some(s=>s!=="renderUserMessage"&&s!=="renderAssistantMessage");(o||r)&&(n.push(`${t}layout: {`),o&&(n.push(`${t} header: {`),Object.entries(e.layout.header).forEach(([s,a])=>{s!=="render"&&(typeof a=="string"?n.push(`${t} ${s}: "${a}",`):typeof a=="boolean"&&n.push(`${t} ${s}: ${a},`))}),n.push(`${t} },`)),r&&(n.push(`${t} messages: {`),Object.entries(e.layout.messages).forEach(([s,a])=>{s==="renderUserMessage"||s==="renderAssistantMessage"||(s==="avatar"&&typeof a=="object"&&a!==null?(n.push(`${t} avatar: {`),Object.entries(a).forEach(([l,d])=>{typeof d=="string"?n.push(`${t} ${l}: "${d}",`):typeof d=="boolean"&&n.push(`${t} ${l}: ${d},`)}),n.push(`${t} },`)):s==="timestamp"&&typeof a=="object"&&a!==null?Object.entries(a).some(([d])=>d!=="format")&&(n.push(`${t} timestamp: {`),Object.entries(a).forEach(([d,p])=>{d!=="format"&&(typeof p=="string"?n.push(`${t} ${d}: "${p}",`):typeof p=="boolean"&&n.push(`${t} ${d}: ${p},`))}),n.push(`${t} },`)):typeof a=="string"?n.push(`${t} ${s}: "${a}",`):typeof a=="boolean"&&n.push(`${t} ${s}: ${a},`))}),n.push(`${t} },`)),n.push(`${t}},`))}return n}function qf(e,t){let n=[];return e&&(e.getHeaders&&n.push(`${t}getHeaders: ${e.getHeaders},`),e.requestMiddleware&&n.push(`${t}requestMiddleware: ${e.requestMiddleware},`),e.actionParsers&&n.push(`${t}actionParsers: ${e.actionParsers},`),e.actionHandlers&&n.push(`${t}actionHandlers: ${e.actionHandlers},`),e.contextProviders&&n.push(`${t}contextProviders: ${e.contextProviders},`),e.streamParser&&n.push(`${t}streamParser: ${e.streamParser},`)),n}function SS(e,t,n){Object.entries(t).forEach(([o,r])=>{if(!(r===void 0||typeof r=="function")){if(Array.isArray(r)){e.push(`${n}${o}: ${JSON.stringify(r)},`);return}if(r&&typeof r=="object"){e.push(`${n}${o}: {`),SS(e,r,`${n} `),e.push(`${n}},`);return}e.push(`${n}${o}: ${JSON.stringify(r)},`)}})}function ns(e,t,n,o){n&&(e.push(`${o}${t}: {`),SS(e,n,`${o} `),e.push(`${o}},`))}function jl(e){return(e?.target??"body").replace(/\\/g,"\\\\").replace(/'/g,"\\'")}function AS(e,t="esm",n){let o={...e};delete o.postprocessMessage,delete o.initialMessages;let r=n?{...n,hooks:r0(n.hooks)}:void 0;return t==="esm"?l0(o,r):t==="script-installer"?p0(o,r):t==="script-advanced"?g0(o,r):t==="react-component"?c0(o,r):t==="react-advanced"?d0(o,r):u0(o,r)}function l0(e,t){let n=t?.hooks,o=Up(e),r=o!=="plain",s=["import '@runtypelabs/persona/widget.css';","import { initAgentWidget, markdownPostprocessor } from '@runtypelabs/persona';","","initAgentWidget({",` target: '${jl(t)}',`," config: {"];return e.apiUrl&&s.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&s.push(` clientToken: "${e.clientToken}",`),e.agentId&&s.push(` agentId: "${e.agentId}",`),e.target&&s.push(` target: "${e.target}",`),e.flowId&&s.push(` flowId: "${e.flowId}",`),r&&s.push(` parserType: "${o}",`),e.theme&&typeof e.theme=="object"&&Object.keys(e.theme).length>0&&ns(s,"theme",e.theme," "),e.launcher&&ns(s,"launcher",e.launcher," "),e.copy&&(s.push(" copy: {"),Object.entries(e.copy).forEach(([a,l])=>{s.push(` ${a}: "${l}",`)}),s.push(" },")),e.sendButton&&(s.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.voiceRecognition&&(s.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"?s.push(` ${a}: ${l},`):typeof l=="number"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.statusIndicator&&(s.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.features&&(s.push(" features: {"),Object.entries(e.features).forEach(([a,l])=>{s.push(` ${a}: ${l},`)}),s.push(" },")),s.push(...Vp(e," ")),e.suggestionChips&&e.suggestionChips.length>0&&(s.push(" suggestionChips: ["),e.suggestionChips.forEach(a=>{s.push(` "${a}",`)}),s.push(" ],")),e.suggestionChipsConfig&&(s.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),s.push(" },")),s.push(...jp(e," ")),s.push(...qp(e," ",n)),s.push(...zp(e," ")),s.push(...Kp(e," ")),s.push(...qf(n," ")),e.debug&&s.push(` debug: ${e.debug},`),n?.postprocessMessage?s.push(` postprocessMessage: ${n.postprocessMessage}`):s.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text)"),s.push(" }"),s.push("});"),s.join(`
227
- `)}function c0(e,t){let n=t?.hooks,o=Up(e),r=o!=="plain",s=["// ChatWidget.tsx","'use client'; // Required for Next.js - remove for Vite/CRA","","import { useEffect } from 'react';","import '@runtypelabs/persona/widget.css';","import { initAgentWidget, markdownPostprocessor } from '@runtypelabs/persona';","import type { AgentWidgetInitHandle } from '@runtypelabs/persona';","","export function ChatWidget() {"," useEffect(() => {"," let handle: AgentWidgetInitHandle | null = null;",""," handle = initAgentWidget({",` target: '${jl(t)}',`," config: {"];return e.apiUrl&&s.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&s.push(` clientToken: "${e.clientToken}",`),e.agentId&&s.push(` agentId: "${e.agentId}",`),e.target&&s.push(` target: "${e.target}",`),e.flowId&&s.push(` flowId: "${e.flowId}",`),r&&s.push(` parserType: "${o}",`),e.theme&&typeof e.theme=="object"&&Object.keys(e.theme).length>0&&ns(s,"theme",e.theme," "),e.launcher&&ns(s,"launcher",e.launcher," "),e.copy&&(s.push(" copy: {"),Object.entries(e.copy).forEach(([a,l])=>{s.push(` ${a}: "${l}",`)}),s.push(" },")),e.sendButton&&(s.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.voiceRecognition&&(s.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"?s.push(` ${a}: ${l},`):typeof l=="number"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.statusIndicator&&(s.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.features&&(s.push(" features: {"),Object.entries(e.features).forEach(([a,l])=>{s.push(` ${a}: ${l},`)}),s.push(" },")),s.push(...Vp(e," ")),e.suggestionChips&&e.suggestionChips.length>0&&(s.push(" suggestionChips: ["),e.suggestionChips.forEach(a=>{s.push(` "${a}",`)}),s.push(" ],")),e.suggestionChipsConfig&&(s.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),s.push(" },")),s.push(...jp(e," ")),s.push(...qp(e," ",n)),s.push(...zp(e," ")),s.push(...Kp(e," ")),s.push(...qf(n," ")),e.debug&&s.push(` debug: ${e.debug},`),n?.postprocessMessage?s.push(` postprocessMessage: ${n.postprocessMessage}`):s.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text)"),s.push(" }"),s.push(" });"),s.push(""),s.push(" // Cleanup on unmount"),s.push(" return () => {"),s.push(" if (handle) {"),s.push(" handle.destroy();"),s.push(" }"),s.push(" };"),s.push(" }, []);"),s.push(""),s.push(" return null; // Widget injects itself into the DOM"),s.push("}"),s.push(""),s.push("// Usage in your app:"),s.push("// import { ChatWidget } from './components/ChatWidget';"),s.push("//"),s.push("// export default function App() {"),s.push("// return ("),s.push("// <div>"),s.push("// {/* Your app content */}"),s.push("// <ChatWidget />"),s.push("// </div>"),s.push("// );"),s.push("// }"),s.join(`
228
- `)}function d0(e,t){let n=t?.hooks,o=["// ChatWidgetAdvanced.tsx","'use client'; // Required for Next.js - remove for Vite/CRA","","import { useEffect } from 'react';","import '@runtypelabs/persona/widget.css';","import {"," initAgentWidget,"," createFlexibleJsonStreamParser,"," defaultJsonActionParser,"," defaultActionHandlers,"," markdownPostprocessor","} from '@runtypelabs/persona';","import type { AgentWidgetInitHandle } from '@runtypelabs/persona';","","const STORAGE_KEY = 'chat-widget-state';","const PROCESSED_ACTIONS_KEY = 'chat-widget-processed-actions';","","// Types for DOM elements","interface PageElement {"," type: string;"," tagName: string;"," selector: string;"," innerText: string;"," href?: string;","}","","interface DOMContext {"," page_elements: PageElement[];"," page_element_count: number;"," element_types: Record<string, number>;"," page_url: string;"," page_title: string;"," timestamp: string;","}","","// DOM context provider - extracts page elements for AI context","const collectDOMContext = (): DOMContext => {"," const selectors = {",` products: '[data-product-id], .product-card, .product-item, [role="article"]',`,` buttons: 'button, [role="button"], .btn',`," links: 'a[href]',"," inputs: 'input, textarea, select'"," };",""," const elements: PageElement[] = [];"," Object.entries(selectors).forEach(([type, selector]) => {"," document.querySelectorAll(selector).forEach((element) => {"," if (!(element instanceof HTMLElement)) return;"," "," // Exclude elements within the widget"," const widgetHost = element.closest('.persona-host');"," if (widgetHost) return;"," "," const text = element.innerText?.trim();"," if (!text) return;",""," const selectorString ="," element.id ? `#${element.id}` :"," element.getAttribute('data-testid') ? `[data-testid=\"${element.getAttribute('data-testid')}\"]` :"," element.getAttribute('data-product-id') ? `[data-product-id=\"${element.getAttribute('data-product-id')}\"]` :"," element.tagName.toLowerCase();",""," const elementData: PageElement = {"," type,"," tagName: element.tagName.toLowerCase(),"," selector: selectorString,"," innerText: text.substring(0, 200)"," };",""," if (type === 'links' && element instanceof HTMLAnchorElement && element.href) {"," elementData.href = element.href;"," }",""," elements.push(elementData);"," });"," });",""," const counts = elements.reduce((acc, el) => {"," acc[el.type] = (acc[el.type] || 0) + 1;"," return acc;"," }, {} as Record<string, number>);",""," return {"," page_elements: elements.slice(0, 50),"," page_element_count: elements.length,"," element_types: counts,"," page_url: window.location.href,"," page_title: document.title,"," timestamp: new Date().toISOString()"," };","};","","export function ChatWidgetAdvanced() {"," useEffect(() => {"," let handle: AgentWidgetInitHandle | null = null;",""," // Load saved state"," const loadSavedMessages = () => {"," const savedState = localStorage.getItem(STORAGE_KEY);"," if (savedState) {"," try {"," const { messages } = JSON.parse(savedState);"," return messages || [];"," } catch (e) {"," console.error('Failed to load saved state:', e);"," }"," }"," return [];"," };",""," handle = initAgentWidget({",` target: '${jl(t)}',`," config: {"];return e.apiUrl&&o.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&o.push(` clientToken: "${e.clientToken}",`),e.agentId&&o.push(` agentId: "${e.agentId}",`),e.target&&o.push(` target: "${e.target}",`),e.flowId&&o.push(` flowId: "${e.flowId}",`),e.theme&&typeof e.theme=="object"&&Object.keys(e.theme).length>0&&ns(o,"theme",e.theme," "),e.launcher&&ns(o,"launcher",e.launcher," "),e.copy&&(o.push(" copy: {"),Object.entries(e.copy).forEach(([r,s])=>{o.push(` ${r}: "${s}",`)}),o.push(" },")),e.sendButton&&(o.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([r,s])=>{typeof s=="string"?o.push(` ${r}: "${s}",`):typeof s=="boolean"&&o.push(` ${r}: ${s},`)}),o.push(" },")),e.voiceRecognition&&(o.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([r,s])=>{typeof s=="string"?o.push(` ${r}: "${s}",`):typeof s=="boolean"?o.push(` ${r}: ${s},`):typeof s=="number"&&o.push(` ${r}: ${s},`)}),o.push(" },")),e.statusIndicator&&(o.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([r,s])=>{typeof s=="string"?o.push(` ${r}: "${s}",`):typeof s=="boolean"&&o.push(` ${r}: ${s},`)}),o.push(" },")),e.features&&(o.push(" features: {"),Object.entries(e.features).forEach(([r,s])=>{o.push(` ${r}: ${s},`)}),o.push(" },")),o.push(...Vp(e," ")),e.suggestionChips&&e.suggestionChips.length>0&&(o.push(" suggestionChips: ["),e.suggestionChips.forEach(r=>{o.push(` "${r}",`)}),o.push(" ],")),e.suggestionChipsConfig&&(o.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&o.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&o.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&o.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&o.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),o.push(" },")),o.push(...jp(e," ")),o.push(...qp(e," ",n)),o.push(...zp(e," ")),o.push(...Kp(e," ")),n?.getHeaders&&o.push(` getHeaders: ${n.getHeaders},`),n?.contextProviders&&o.push(` contextProviders: ${n.contextProviders},`),e.debug&&o.push(` debug: ${e.debug},`),o.push(" initialMessages: loadSavedMessages(),"),n?.streamParser?o.push(` streamParser: ${n.streamParser},`):(o.push(" // Flexible JSON stream parser for handling structured actions"),o.push(` streamParser: () => createFlexibleJsonStreamParser(${s0}),`)),n?.actionParsers?(o.push(" // Action parsers (custom merged with defaults)"),o.push(` actionParsers: [...(${n.actionParsers}), defaultJsonActionParser,`),o.push(" // Built-in parser for markdown-wrapped JSON"),o.push(` ${vS}`),o.push(" ],")):(o.push(" // Action parsers to detect JSON actions in responses"),o.push(" actionParsers: ["),o.push(" defaultJsonActionParser,"),o.push(" // Parser for markdown-wrapped JSON"),o.push(` ${vS}`),o.push(" ],")),n?.actionHandlers?(o.push(" // Action handlers (custom merged with defaults)"),o.push(` actionHandlers: [...(${n.actionHandlers}),`),o.push(" defaultActionHandlers.message,"),o.push(" defaultActionHandlers.messageAndClick,"),o.push(" // Built-in handler for nav_then_click action"),o.push(` ${wS}`),o.push(" ],")):(o.push(" // Action handlers for navigation and other actions"),o.push(" actionHandlers: ["),o.push(" defaultActionHandlers.message,"),o.push(" defaultActionHandlers.messageAndClick,"),o.push(" // Handler for nav_then_click action"),o.push(` ${wS}`),o.push(" ],")),n?.postprocessMessage?o.push(` postprocessMessage: ${n.postprocessMessage},`):o.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text),"),n?.requestMiddleware?(o.push(" // Request middleware (custom merged with DOM context)"),o.push(" requestMiddleware: ({ payload, config }) => {"),o.push(` const customResult = (${n.requestMiddleware})({ payload, config });`),o.push(" const merged = customResult || payload;"),o.push(" return {"),o.push(" ...merged,"),o.push(" metadata: { ...merged.metadata, ...collectDOMContext() }"),o.push(" };"),o.push(" }")):(o.push(" requestMiddleware: ({ payload }) => {"),o.push(" return {"),o.push(" ...payload,"),o.push(" metadata: collectDOMContext()"),o.push(" };"),o.push(" }")),o.push(" }"),o.push(" });"),o.push(""),o.push(" // Save state on message events"),o.push(" const handleMessage = () => {"),o.push(" const session = handle?.getSession?.();"),o.push(" if (session) {"),o.push(" localStorage.setItem(STORAGE_KEY, JSON.stringify({"),o.push(" messages: session.messages,"),o.push(" timestamp: new Date().toISOString()"),o.push(" }));"),o.push(" }"),o.push(" };"),o.push(""),o.push(" // Clear state on clear chat"),o.push(" const handleClearChat = () => {"),o.push(" localStorage.removeItem(STORAGE_KEY);"),o.push(" localStorage.removeItem(PROCESSED_ACTIONS_KEY);"),o.push(" };"),o.push(""),o.push(" window.addEventListener('persona:message', handleMessage);"),o.push(" window.addEventListener('persona:clear-chat', handleClearChat);"),o.push(""),o.push(" // Cleanup on unmount"),o.push(" return () => {"),o.push(" window.removeEventListener('persona:message', handleMessage);"),o.push(" window.removeEventListener('persona:clear-chat', handleClearChat);"),o.push(" if (handle) {"),o.push(" handle.destroy();"),o.push(" }"),o.push(" };"),o.push(" }, []);"),o.push(""),o.push(" return null; // Widget injects itself into the DOM"),o.push("}"),o.push(""),o.push("// Usage: Collects DOM context for AI-powered navigation"),o.push("// Features:"),o.push("// - Extracts page elements (products, buttons, links)"),o.push("// - Persists chat history across page loads"),o.push("// - Handles navigation actions (nav_then_click)"),o.push("// - Processes structured JSON actions from AI"),o.push("//"),o.push("// Example usage in Next.js:"),o.push("// import { ChatWidgetAdvanced } from './components/ChatWidgetAdvanced';"),o.push("//"),o.push("// export default function RootLayout({ children }) {"),o.push("// return ("),o.push('// <html lang="en">'),o.push("// <body>"),o.push("// {children}"),o.push("// <ChatWidgetAdvanced />"),o.push("// </body>"),o.push("// </html>"),o.push("// );"),o.push("// }"),o.join(`
229
- `)}function MS(e){let t=Up(e),n=t!=="plain",o={};if(e.apiUrl&&(o.apiUrl=e.apiUrl),e.clientToken&&(o.clientToken=e.clientToken),e.agentId&&(o.agentId=e.agentId),e.target&&(o.target=e.target),e.flowId&&(o.flowId=e.flowId),n&&(o.parserType=t),e.theme&&(o.theme=e.theme),e.launcher&&(o.launcher=e.launcher),e.copy&&(o.copy=e.copy),e.sendButton&&(o.sendButton=e.sendButton),e.voiceRecognition&&(o.voiceRecognition=e.voiceRecognition),e.statusIndicator&&(o.statusIndicator=e.statusIndicator),e.features&&(o.features=e.features),e.suggestions&&(o.suggestions=e.suggestions),e.suggestionChips?.length>0&&(o.suggestionChips=e.suggestionChips),e.suggestionChipsConfig&&(o.suggestionChipsConfig=e.suggestionChipsConfig),e.debug&&(o.debug=e.debug),e.toolCall){let r={};Object.entries(e.toolCall).forEach(([s,a])=>{typeof a=="string"&&(r[s]=a)}),Object.keys(r).length>0&&(o.toolCall=r)}if(e.messageActions){let r={};Object.entries(e.messageActions).forEach(([s,a])=>{s!=="onFeedback"&&s!=="onCopy"&&a!==void 0&&(typeof a=="string"||typeof a=="boolean")&&(r[s]=a)}),Object.keys(r).length>0&&(o.messageActions=r)}if(e.markdown){let r={};e.markdown.options&&(r.options=e.markdown.options),e.markdown.disableDefaultStyles!==void 0&&(r.disableDefaultStyles=e.markdown.disableDefaultStyles),Object.keys(r).length>0&&(o.markdown=r)}if(e.layout){let r={};if(e.layout.header){let s={};Object.entries(e.layout.header).forEach(([a,l])=>{a!=="render"&&(typeof l=="string"||typeof l=="boolean")&&(s[a]=l)}),Object.keys(s).length>0&&(r.header=s)}if(e.layout.messages){let s={};Object.entries(e.layout.messages).forEach(([a,l])=>{if(a!=="renderUserMessage"&&a!=="renderAssistantMessage")if(a==="avatar"&&typeof l=="object"&&l!==null)s.avatar=l;else if(a==="timestamp"&&typeof l=="object"&&l!==null){let d={};Object.entries(l).forEach(([p,u])=>{p!=="format"&&(typeof u=="string"||typeof u=="boolean")&&(d[p]=u)}),Object.keys(d).length>0&&(s.timestamp=d)}else(typeof l=="string"||typeof l=="boolean")&&(s[a]=l)}),Object.keys(s).length>0&&(r.messages=s)}Object.keys(r).length>0&&(o.layout=r)}return o}function p0(e,t){let n=MS(e),r=!!(t?.windowKey||t?.target)?{config:n,...t?.windowKey?{windowKey:t.windowKey}:{},...t?.target?{target:t.target}:{}}:n,s=JSON.stringify(r,null,0).replace(/'/g,"&#39;");return`<script src="${jf(t)}/install.global.js" data-config='${s}'></script>`}function u0(e,t){let n=t?.hooks,o=Up(e),r=o!=="plain",s=jf(t),a=["<!-- Load CSS -->",`<link rel="stylesheet" href="${s}/widget.css" />`,"","<!-- Load JavaScript -->",`<script src="${s}/index.global.js"></script>`,"","<!-- Initialize widget -->","<script>"," var handle = window.AgentWidget.initAgentWidget({",` target: '${jl(t)}',`,...t?.windowKey?[` windowKey: '${t.windowKey}',`]:[]," config: {"];return e.apiUrl&&a.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&a.push(` clientToken: "${e.clientToken}",`),e.agentId&&a.push(` agentId: "${e.agentId}",`),e.target&&a.push(` target: "${e.target}",`),e.flowId&&a.push(` flowId: "${e.flowId}",`),r&&a.push(` parserType: "${o}",`),e.theme&&typeof e.theme=="object"&&Object.keys(e.theme).length>0&&ns(a,"theme",e.theme," "),e.launcher&&ns(a,"launcher",e.launcher," "),e.copy&&(a.push(" copy: {"),Object.entries(e.copy).forEach(([l,d])=>{a.push(` ${l}: "${d}",`)}),a.push(" },")),e.sendButton&&(a.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([l,d])=>{typeof d=="string"?a.push(` ${l}: "${d}",`):typeof d=="boolean"&&a.push(` ${l}: ${d},`)}),a.push(" },")),e.voiceRecognition&&(a.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([l,d])=>{typeof d=="string"?a.push(` ${l}: "${d}",`):typeof d=="boolean"?a.push(` ${l}: ${d},`):typeof d=="number"&&a.push(` ${l}: ${d},`)}),a.push(" },")),e.statusIndicator&&(a.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([l,d])=>{typeof d=="string"?a.push(` ${l}: "${d}",`):typeof d=="boolean"&&a.push(` ${l}: ${d},`)}),a.push(" },")),e.features&&(a.push(" features: {"),Object.entries(e.features).forEach(([l,d])=>{a.push(` ${l}: ${d},`)}),a.push(" },")),a.push(...Vp(e," ")),e.suggestionChips&&e.suggestionChips.length>0&&(a.push(" suggestionChips: ["),e.suggestionChips.forEach(l=>{a.push(` "${l}",`)}),a.push(" ],")),e.suggestionChipsConfig&&(a.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&a.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&a.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&a.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&a.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),a.push(" },")),a.push(...jp(e," ")),a.push(...qp(e," ",n)),a.push(...zp(e," ")),a.push(...Kp(e," ")),a.push(...qf(n," ")),e.debug&&a.push(` debug: ${e.debug},`),n?.postprocessMessage?a.push(` postprocessMessage: ${n.postprocessMessage}`):a.push(" postprocessMessage: ({ text }) => window.AgentWidget.markdownPostprocessor(text)"),a.push(" }"),a.push(" });"),a.push("</script>"),a.join(`
230
- `)}function g0(e,t){let n=t?.hooks,o=MS(e),s=["<script>","(function() {"," 'use strict';",""," // Configuration",` var CONFIG = ${JSON.stringify(o,null,2).split(`
225
+ }`;function p0(e){if(!e)return null;let t=e.toString();return t.includes("createJsonStreamParser")||t.includes("partial-json")?"json":t.includes("createRegexJsonParser")||t.includes("regex")?"regex-json":t.includes("createXmlParser")||t.includes("<text>")?"xml":null}function jp(e){return e.parserType??p0(e.streamParser)??"plain"}function qp(e,t){let n=[];return e.toolCall&&(n.push(`${t}toolCall: {`),Object.entries(e.toolCall).forEach(([o,r])=>{typeof r=="string"&&n.push(`${t} ${o}: "${r}",`)}),n.push(`${t}},`)),n}function zp(e,t,n){let o=[],r=e.messageActions&&Object.entries(e.messageActions).some(([a,l])=>a!=="onFeedback"&&a!=="onCopy"&&l!==void 0),s=n?.onFeedback||n?.onCopy;return(r||s)&&(o.push(`${t}messageActions: {`),e.messageActions&&Object.entries(e.messageActions).forEach(([a,l])=>{a==="onFeedback"||a==="onCopy"||(typeof l=="string"?o.push(`${t} ${a}: "${l}",`):typeof l=="boolean"&&o.push(`${t} ${a}: ${l},`))}),n?.onFeedback&&o.push(`${t} onFeedback: ${n.onFeedback},`),n?.onCopy&&o.push(`${t} onCopy: ${n.onCopy},`),o.push(`${t}},`)),o}function Vp(e,t){let n=[];if(e.markdown){let o=e.markdown.options&&Object.keys(e.markdown.options).length>0,r=e.markdown.disableDefaultStyles!==void 0;(o||r)&&(n.push(`${t}markdown: {`),o&&(n.push(`${t} options: {`),Object.entries(e.markdown.options).forEach(([s,a])=>{typeof a=="string"?n.push(`${t} ${s}: "${a}",`):typeof a=="boolean"&&n.push(`${t} ${s}: ${a},`)}),n.push(`${t} },`)),r&&n.push(`${t} disableDefaultStyles: ${e.markdown.disableDefaultStyles},`),n.push(`${t}},`))}return n}function Kp(e,t){if(!e.suggestions)return[];let n=JSON.stringify(e.suggestions,null,2).split(`
226
+ `);return n.map((o,r)=>{let s=r===0?`${t}suggestions: `:t,a=r===n.length-1?",":"";return`${s}${o}${a}`})}function Gp(e,t){let n=[];if(e.layout){let o=e.layout.header&&Object.keys(e.layout.header).some(s=>s!=="render"),r=e.layout.messages&&Object.keys(e.layout.messages).some(s=>s!=="renderUserMessage"&&s!=="renderAssistantMessage");(o||r)&&(n.push(`${t}layout: {`),o&&(n.push(`${t} header: {`),Object.entries(e.layout.header).forEach(([s,a])=>{s!=="render"&&(typeof a=="string"?n.push(`${t} ${s}: "${a}",`):typeof a=="boolean"&&n.push(`${t} ${s}: ${a},`))}),n.push(`${t} },`)),r&&(n.push(`${t} messages: {`),Object.entries(e.layout.messages).forEach(([s,a])=>{s==="renderUserMessage"||s==="renderAssistantMessage"||(s==="avatar"&&typeof a=="object"&&a!==null?(n.push(`${t} avatar: {`),Object.entries(a).forEach(([l,d])=>{typeof d=="string"?n.push(`${t} ${l}: "${d}",`):typeof d=="boolean"&&n.push(`${t} ${l}: ${d},`)}),n.push(`${t} },`)):s==="timestamp"&&typeof a=="object"&&a!==null?Object.entries(a).some(([d])=>d!=="format")&&(n.push(`${t} timestamp: {`),Object.entries(a).forEach(([d,p])=>{d!=="format"&&(typeof p=="string"?n.push(`${t} ${d}: "${p}",`):typeof p=="boolean"&&n.push(`${t} ${d}: ${p},`))}),n.push(`${t} },`)):typeof a=="string"?n.push(`${t} ${s}: "${a}",`):typeof a=="boolean"&&n.push(`${t} ${s}: ${a},`))}),n.push(`${t} },`)),n.push(`${t}},`))}return n}function Kf(e,t){let n=[];return e&&(e.getHeaders&&n.push(`${t}getHeaders: ${e.getHeaders},`),e.requestMiddleware&&n.push(`${t}requestMiddleware: ${e.requestMiddleware},`),e.actionParsers&&n.push(`${t}actionParsers: ${e.actionParsers},`),e.actionHandlers&&n.push(`${t}actionHandlers: ${e.actionHandlers},`),e.contextProviders&&n.push(`${t}contextProviders: ${e.contextProviders},`),e.streamParser&&n.push(`${t}streamParser: ${e.streamParser},`)),n}function ES(e,t,n){Object.entries(t).forEach(([o,r])=>{if(!(r===void 0||typeof r=="function")){if(Array.isArray(r)){e.push(`${n}${o}: ${JSON.stringify(r)},`);return}if(r&&typeof r=="object"){e.push(`${n}${o}: {`),ES(e,r,`${n} `),e.push(`${n}},`);return}e.push(`${n}${o}: ${JSON.stringify(r)},`)}})}function as(e,t,n,o){n&&(e.push(`${o}${t}: {`),ES(e,n,`${o} `),e.push(`${o}},`))}function ql(e){return(e?.target??"body").replace(/\\/g,"\\\\").replace(/'/g,"\\'")}function TS(e,t="esm",n){let o={...e};delete o.postprocessMessage,delete o.initialMessages;let r=n?{...n,hooks:l0(n.hooks)}:void 0;return t==="esm"?u0(o,r):t==="script-installer"?f0(o,r):t==="script-advanced"?y0(o,r):t==="react-component"?g0(o,r):t==="react-advanced"?m0(o,r):h0(o,r)}function u0(e,t){let n=t?.hooks,o=jp(e),r=o!=="plain",s=["import '@runtypelabs/persona/widget.css';","import { initAgentWidget, markdownPostprocessor } from '@runtypelabs/persona';","","initAgentWidget({",` target: '${ql(t)}',`," config: {"];return e.apiUrl&&s.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&s.push(` clientToken: "${e.clientToken}",`),e.agentId&&s.push(` agentId: "${e.agentId}",`),e.target&&s.push(` target: "${e.target}",`),e.flowId&&s.push(` flowId: "${e.flowId}",`),r&&s.push(` parserType: "${o}",`),e.theme&&typeof e.theme=="object"&&Object.keys(e.theme).length>0&&as(s,"theme",e.theme," "),e.launcher&&as(s,"launcher",e.launcher," "),e.copy&&(s.push(" copy: {"),Object.entries(e.copy).forEach(([a,l])=>{s.push(` ${a}: "${l}",`)}),s.push(" },")),e.sendButton&&(s.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.voiceRecognition&&(s.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"?s.push(` ${a}: ${l},`):typeof l=="number"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.statusIndicator&&(s.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.features&&(s.push(" features: {"),Object.entries(e.features).forEach(([a,l])=>{s.push(` ${a}: ${l},`)}),s.push(" },")),s.push(...Kp(e," ")),e.suggestionChips&&e.suggestionChips.length>0&&(s.push(" suggestionChips: ["),e.suggestionChips.forEach(a=>{s.push(` "${a}",`)}),s.push(" ],")),e.suggestionChipsConfig&&(s.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),s.push(" },")),s.push(...qp(e," ")),s.push(...zp(e," ",n)),s.push(...Vp(e," ")),s.push(...Gp(e," ")),s.push(...Kf(n," ")),e.debug&&s.push(` debug: ${e.debug},`),n?.postprocessMessage?s.push(` postprocessMessage: ${n.postprocessMessage}`):s.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text)"),s.push(" }"),s.push("});"),s.join(`
227
+ `)}function g0(e,t){let n=t?.hooks,o=jp(e),r=o!=="plain",s=["// ChatWidget.tsx","'use client'; // Required for Next.js - remove for Vite/CRA","","import { useEffect } from 'react';","import '@runtypelabs/persona/widget.css';","import { initAgentWidget, markdownPostprocessor } from '@runtypelabs/persona';","import type { AgentWidgetInitHandle } from '@runtypelabs/persona';","","export function ChatWidget() {"," useEffect(() => {"," let handle: AgentWidgetInitHandle | null = null;",""," handle = initAgentWidget({",` target: '${ql(t)}',`," config: {"];return e.apiUrl&&s.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&s.push(` clientToken: "${e.clientToken}",`),e.agentId&&s.push(` agentId: "${e.agentId}",`),e.target&&s.push(` target: "${e.target}",`),e.flowId&&s.push(` flowId: "${e.flowId}",`),r&&s.push(` parserType: "${o}",`),e.theme&&typeof e.theme=="object"&&Object.keys(e.theme).length>0&&as(s,"theme",e.theme," "),e.launcher&&as(s,"launcher",e.launcher," "),e.copy&&(s.push(" copy: {"),Object.entries(e.copy).forEach(([a,l])=>{s.push(` ${a}: "${l}",`)}),s.push(" },")),e.sendButton&&(s.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.voiceRecognition&&(s.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"?s.push(` ${a}: ${l},`):typeof l=="number"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.statusIndicator&&(s.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([a,l])=>{typeof l=="string"?s.push(` ${a}: "${l}",`):typeof l=="boolean"&&s.push(` ${a}: ${l},`)}),s.push(" },")),e.features&&(s.push(" features: {"),Object.entries(e.features).forEach(([a,l])=>{s.push(` ${a}: ${l},`)}),s.push(" },")),s.push(...Kp(e," ")),e.suggestionChips&&e.suggestionChips.length>0&&(s.push(" suggestionChips: ["),e.suggestionChips.forEach(a=>{s.push(` "${a}",`)}),s.push(" ],")),e.suggestionChipsConfig&&(s.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),s.push(" },")),s.push(...qp(e," ")),s.push(...zp(e," ",n)),s.push(...Vp(e," ")),s.push(...Gp(e," ")),s.push(...Kf(n," ")),e.debug&&s.push(` debug: ${e.debug},`),n?.postprocessMessage?s.push(` postprocessMessage: ${n.postprocessMessage}`):s.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text)"),s.push(" }"),s.push(" });"),s.push(""),s.push(" // Cleanup on unmount"),s.push(" return () => {"),s.push(" if (handle) {"),s.push(" handle.destroy();"),s.push(" }"),s.push(" };"),s.push(" }, []);"),s.push(""),s.push(" return null; // Widget injects itself into the DOM"),s.push("}"),s.push(""),s.push("// Usage in your app:"),s.push("// import { ChatWidget } from './components/ChatWidget';"),s.push("//"),s.push("// export default function App() {"),s.push("// return ("),s.push("// <div>"),s.push("// {/* Your app content */}"),s.push("// <ChatWidget />"),s.push("// </div>"),s.push("// );"),s.push("// }"),s.join(`
228
+ `)}function m0(e,t){let n=t?.hooks,o=["// ChatWidgetAdvanced.tsx","'use client'; // Required for Next.js - remove for Vite/CRA","","import { useEffect } from 'react';","import '@runtypelabs/persona/widget.css';","import {"," initAgentWidget,"," createFlexibleJsonStreamParser,"," defaultJsonActionParser,"," defaultActionHandlers,"," markdownPostprocessor","} from '@runtypelabs/persona';","import type { AgentWidgetInitHandle } from '@runtypelabs/persona';","","const STORAGE_KEY = 'chat-widget-state';","const PROCESSED_ACTIONS_KEY = 'chat-widget-processed-actions';","","// Types for DOM elements","interface PageElement {"," type: string;"," tagName: string;"," selector: string;"," innerText: string;"," href?: string;","}","","interface DOMContext {"," page_elements: PageElement[];"," page_element_count: number;"," element_types: Record<string, number>;"," page_url: string;"," page_title: string;"," timestamp: string;","}","","// DOM context provider - extracts page elements for AI context","const collectDOMContext = (): DOMContext => {"," const selectors = {",` products: '[data-product-id], .product-card, .product-item, [role="article"]',`,` buttons: 'button, [role="button"], .btn',`," links: 'a[href]',"," inputs: 'input, textarea, select'"," };",""," const elements: PageElement[] = [];"," Object.entries(selectors).forEach(([type, selector]) => {"," document.querySelectorAll(selector).forEach((element) => {"," if (!(element instanceof HTMLElement)) return;"," "," // Exclude elements within the widget"," const widgetHost = element.closest('.persona-host');"," if (widgetHost) return;"," "," const text = element.innerText?.trim();"," if (!text) return;",""," const selectorString ="," element.id ? `#${element.id}` :"," element.getAttribute('data-testid') ? `[data-testid=\"${element.getAttribute('data-testid')}\"]` :"," element.getAttribute('data-product-id') ? `[data-product-id=\"${element.getAttribute('data-product-id')}\"]` :"," element.tagName.toLowerCase();",""," const elementData: PageElement = {"," type,"," tagName: element.tagName.toLowerCase(),"," selector: selectorString,"," innerText: text.substring(0, 200)"," };",""," if (type === 'links' && element instanceof HTMLAnchorElement && element.href) {"," elementData.href = element.href;"," }",""," elements.push(elementData);"," });"," });",""," const counts = elements.reduce((acc, el) => {"," acc[el.type] = (acc[el.type] || 0) + 1;"," return acc;"," }, {} as Record<string, number>);",""," return {"," page_elements: elements.slice(0, 50),"," page_element_count: elements.length,"," element_types: counts,"," page_url: window.location.href,"," page_title: document.title,"," timestamp: new Date().toISOString()"," };","};","","export function ChatWidgetAdvanced() {"," useEffect(() => {"," let handle: AgentWidgetInitHandle | null = null;",""," // Load saved state"," const loadSavedMessages = () => {"," const savedState = localStorage.getItem(STORAGE_KEY);"," if (savedState) {"," try {"," const { messages } = JSON.parse(savedState);"," return messages || [];"," } catch (e) {"," console.error('Failed to load saved state:', e);"," }"," }"," return [];"," };",""," handle = initAgentWidget({",` target: '${ql(t)}',`," config: {"];return e.apiUrl&&o.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&o.push(` clientToken: "${e.clientToken}",`),e.agentId&&o.push(` agentId: "${e.agentId}",`),e.target&&o.push(` target: "${e.target}",`),e.flowId&&o.push(` flowId: "${e.flowId}",`),e.theme&&typeof e.theme=="object"&&Object.keys(e.theme).length>0&&as(o,"theme",e.theme," "),e.launcher&&as(o,"launcher",e.launcher," "),e.copy&&(o.push(" copy: {"),Object.entries(e.copy).forEach(([r,s])=>{o.push(` ${r}: "${s}",`)}),o.push(" },")),e.sendButton&&(o.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([r,s])=>{typeof s=="string"?o.push(` ${r}: "${s}",`):typeof s=="boolean"&&o.push(` ${r}: ${s},`)}),o.push(" },")),e.voiceRecognition&&(o.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([r,s])=>{typeof s=="string"?o.push(` ${r}: "${s}",`):typeof s=="boolean"?o.push(` ${r}: ${s},`):typeof s=="number"&&o.push(` ${r}: ${s},`)}),o.push(" },")),e.statusIndicator&&(o.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([r,s])=>{typeof s=="string"?o.push(` ${r}: "${s}",`):typeof s=="boolean"&&o.push(` ${r}: ${s},`)}),o.push(" },")),e.features&&(o.push(" features: {"),Object.entries(e.features).forEach(([r,s])=>{o.push(` ${r}: ${s},`)}),o.push(" },")),o.push(...Kp(e," ")),e.suggestionChips&&e.suggestionChips.length>0&&(o.push(" suggestionChips: ["),e.suggestionChips.forEach(r=>{o.push(` "${r}",`)}),o.push(" ],")),e.suggestionChipsConfig&&(o.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&o.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&o.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&o.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&o.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),o.push(" },")),o.push(...qp(e," ")),o.push(...zp(e," ",n)),o.push(...Vp(e," ")),o.push(...Gp(e," ")),n?.getHeaders&&o.push(` getHeaders: ${n.getHeaders},`),n?.contextProviders&&o.push(` contextProviders: ${n.contextProviders},`),e.debug&&o.push(` debug: ${e.debug},`),o.push(" initialMessages: loadSavedMessages(),"),n?.streamParser?o.push(` streamParser: ${n.streamParser},`):(o.push(" // Flexible JSON stream parser for handling structured actions"),o.push(` streamParser: () => createFlexibleJsonStreamParser(${c0}),`)),n?.actionParsers?(o.push(" // Action parsers (custom merged with defaults)"),o.push(` actionParsers: [...(${n.actionParsers}), defaultJsonActionParser,`),o.push(" // Built-in parser for markdown-wrapped JSON"),o.push(` ${xS}`),o.push(" ],")):(o.push(" // Action parsers to detect JSON actions in responses"),o.push(" actionParsers: ["),o.push(" defaultJsonActionParser,"),o.push(" // Parser for markdown-wrapped JSON"),o.push(` ${xS}`),o.push(" ],")),n?.actionHandlers?(o.push(" // Action handlers (custom merged with defaults)"),o.push(` actionHandlers: [...(${n.actionHandlers}),`),o.push(" defaultActionHandlers.message,"),o.push(" defaultActionHandlers.messageAndClick,"),o.push(" // Built-in handler for nav_then_click action"),o.push(` ${AS}`),o.push(" ],")):(o.push(" // Action handlers for navigation and other actions"),o.push(" actionHandlers: ["),o.push(" defaultActionHandlers.message,"),o.push(" defaultActionHandlers.messageAndClick,"),o.push(" // Handler for nav_then_click action"),o.push(` ${AS}`),o.push(" ],")),n?.postprocessMessage?o.push(` postprocessMessage: ${n.postprocessMessage},`):o.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text),"),n?.requestMiddleware?(o.push(" // Request middleware (custom merged with DOM context)"),o.push(" requestMiddleware: ({ payload, config }) => {"),o.push(` const customResult = (${n.requestMiddleware})({ payload, config });`),o.push(" const merged = customResult || payload;"),o.push(" return {"),o.push(" ...merged,"),o.push(" metadata: { ...merged.metadata, ...collectDOMContext() }"),o.push(" };"),o.push(" }")):(o.push(" requestMiddleware: ({ payload }) => {"),o.push(" return {"),o.push(" ...payload,"),o.push(" metadata: collectDOMContext()"),o.push(" };"),o.push(" }")),o.push(" }"),o.push(" });"),o.push(""),o.push(" // Save state on message events"),o.push(" const handleMessage = () => {"),o.push(" const session = handle?.getSession?.();"),o.push(" if (session) {"),o.push(" localStorage.setItem(STORAGE_KEY, JSON.stringify({"),o.push(" messages: session.messages,"),o.push(" timestamp: new Date().toISOString()"),o.push(" }));"),o.push(" }"),o.push(" };"),o.push(""),o.push(" // Clear state on clear chat"),o.push(" const handleClearChat = () => {"),o.push(" localStorage.removeItem(STORAGE_KEY);"),o.push(" localStorage.removeItem(PROCESSED_ACTIONS_KEY);"),o.push(" };"),o.push(""),o.push(" window.addEventListener('persona:message', handleMessage);"),o.push(" window.addEventListener('persona:clear-chat', handleClearChat);"),o.push(""),o.push(" // Cleanup on unmount"),o.push(" return () => {"),o.push(" window.removeEventListener('persona:message', handleMessage);"),o.push(" window.removeEventListener('persona:clear-chat', handleClearChat);"),o.push(" if (handle) {"),o.push(" handle.destroy();"),o.push(" }"),o.push(" };"),o.push(" }, []);"),o.push(""),o.push(" return null; // Widget injects itself into the DOM"),o.push("}"),o.push(""),o.push("// Usage: Collects DOM context for AI-powered navigation"),o.push("// Features:"),o.push("// - Extracts page elements (products, buttons, links)"),o.push("// - Persists chat history across page loads"),o.push("// - Handles navigation actions (nav_then_click)"),o.push("// - Processes structured JSON actions from AI"),o.push("//"),o.push("// Example usage in Next.js:"),o.push("// import { ChatWidgetAdvanced } from './components/ChatWidgetAdvanced';"),o.push("//"),o.push("// export default function RootLayout({ children }) {"),o.push("// return ("),o.push('// <html lang="en">'),o.push("// <body>"),o.push("// {children}"),o.push("// <ChatWidgetAdvanced />"),o.push("// </body>"),o.push("// </html>"),o.push("// );"),o.push("// }"),o.join(`
229
+ `)}function PS(e){let t=jp(e),n=t!=="plain",o={};if(e.apiUrl&&(o.apiUrl=e.apiUrl),e.clientToken&&(o.clientToken=e.clientToken),e.agentId&&(o.agentId=e.agentId),e.target&&(o.target=e.target),e.flowId&&(o.flowId=e.flowId),n&&(o.parserType=t),e.theme&&(o.theme=e.theme),e.launcher&&(o.launcher=e.launcher),e.copy&&(o.copy=e.copy),e.sendButton&&(o.sendButton=e.sendButton),e.voiceRecognition&&(o.voiceRecognition=e.voiceRecognition),e.statusIndicator&&(o.statusIndicator=e.statusIndicator),e.features&&(o.features=e.features),e.suggestions&&(o.suggestions=e.suggestions),e.suggestionChips?.length>0&&(o.suggestionChips=e.suggestionChips),e.suggestionChipsConfig&&(o.suggestionChipsConfig=e.suggestionChipsConfig),e.debug&&(o.debug=e.debug),e.toolCall){let r={};Object.entries(e.toolCall).forEach(([s,a])=>{typeof a=="string"&&(r[s]=a)}),Object.keys(r).length>0&&(o.toolCall=r)}if(e.messageActions){let r={};Object.entries(e.messageActions).forEach(([s,a])=>{s!=="onFeedback"&&s!=="onCopy"&&a!==void 0&&(typeof a=="string"||typeof a=="boolean")&&(r[s]=a)}),Object.keys(r).length>0&&(o.messageActions=r)}if(e.markdown){let r={};e.markdown.options&&(r.options=e.markdown.options),e.markdown.disableDefaultStyles!==void 0&&(r.disableDefaultStyles=e.markdown.disableDefaultStyles),Object.keys(r).length>0&&(o.markdown=r)}if(e.layout){let r={};if(e.layout.header){let s={};Object.entries(e.layout.header).forEach(([a,l])=>{a!=="render"&&(typeof l=="string"||typeof l=="boolean")&&(s[a]=l)}),Object.keys(s).length>0&&(r.header=s)}if(e.layout.messages){let s={};Object.entries(e.layout.messages).forEach(([a,l])=>{if(a!=="renderUserMessage"&&a!=="renderAssistantMessage")if(a==="avatar"&&typeof l=="object"&&l!==null)s.avatar=l;else if(a==="timestamp"&&typeof l=="object"&&l!==null){let d={};Object.entries(l).forEach(([p,u])=>{p!=="format"&&(typeof u=="string"||typeof u=="boolean")&&(d[p]=u)}),Object.keys(d).length>0&&(s.timestamp=d)}else(typeof l=="string"||typeof l=="boolean")&&(s[a]=l)}),Object.keys(s).length>0&&(r.messages=s)}Object.keys(r).length>0&&(o.layout=r)}return o}function f0(e,t){let n=PS(e),r=!!(t?.windowKey||t?.target)?{config:n,...t?.windowKey?{windowKey:t.windowKey}:{},...t?.target?{target:t.target}:{}}:n,s=JSON.stringify(r,null,0).replace(/'/g,"&#39;");return`<script src="${Vf(t)}/install.global.js" data-config='${s}'></script>`}function h0(e,t){let n=t?.hooks,o=jp(e),r=o!=="plain",s=Vf(t),a=["<!-- Load CSS -->",`<link rel="stylesheet" href="${s}/widget.css" />`,"","<!-- Load JavaScript -->",`<script src="${s}/index.global.js"></script>`,"","<!-- Initialize widget -->","<script>"," var handle = window.AgentWidget.initAgentWidget({",` target: '${ql(t)}',`,...t?.windowKey?[` windowKey: '${t.windowKey}',`]:[]," config: {"];return e.apiUrl&&a.push(` apiUrl: "${e.apiUrl}",`),e.clientToken&&a.push(` clientToken: "${e.clientToken}",`),e.agentId&&a.push(` agentId: "${e.agentId}",`),e.target&&a.push(` target: "${e.target}",`),e.flowId&&a.push(` flowId: "${e.flowId}",`),r&&a.push(` parserType: "${o}",`),e.theme&&typeof e.theme=="object"&&Object.keys(e.theme).length>0&&as(a,"theme",e.theme," "),e.launcher&&as(a,"launcher",e.launcher," "),e.copy&&(a.push(" copy: {"),Object.entries(e.copy).forEach(([l,d])=>{a.push(` ${l}: "${d}",`)}),a.push(" },")),e.sendButton&&(a.push(" sendButton: {"),Object.entries(e.sendButton).forEach(([l,d])=>{typeof d=="string"?a.push(` ${l}: "${d}",`):typeof d=="boolean"&&a.push(` ${l}: ${d},`)}),a.push(" },")),e.voiceRecognition&&(a.push(" voiceRecognition: {"),Object.entries(e.voiceRecognition).forEach(([l,d])=>{typeof d=="string"?a.push(` ${l}: "${d}",`):typeof d=="boolean"?a.push(` ${l}: ${d},`):typeof d=="number"&&a.push(` ${l}: ${d},`)}),a.push(" },")),e.statusIndicator&&(a.push(" statusIndicator: {"),Object.entries(e.statusIndicator).forEach(([l,d])=>{typeof d=="string"?a.push(` ${l}: "${d}",`):typeof d=="boolean"&&a.push(` ${l}: ${d},`)}),a.push(" },")),e.features&&(a.push(" features: {"),Object.entries(e.features).forEach(([l,d])=>{a.push(` ${l}: ${d},`)}),a.push(" },")),a.push(...Kp(e," ")),e.suggestionChips&&e.suggestionChips.length>0&&(a.push(" suggestionChips: ["),e.suggestionChips.forEach(l=>{a.push(` "${l}",`)}),a.push(" ],")),e.suggestionChipsConfig&&(a.push(" suggestionChipsConfig: {"),e.suggestionChipsConfig.fontFamily&&a.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`),e.suggestionChipsConfig.fontWeight&&a.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`),e.suggestionChipsConfig.paddingX&&a.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`),e.suggestionChipsConfig.paddingY&&a.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`),a.push(" },")),a.push(...qp(e," ")),a.push(...zp(e," ",n)),a.push(...Vp(e," ")),a.push(...Gp(e," ")),a.push(...Kf(n," ")),e.debug&&a.push(` debug: ${e.debug},`),n?.postprocessMessage?a.push(` postprocessMessage: ${n.postprocessMessage}`):a.push(" postprocessMessage: ({ text }) => window.AgentWidget.markdownPostprocessor(text)"),a.push(" }"),a.push(" });"),a.push("</script>"),a.join(`
230
+ `)}function y0(e,t){let n=t?.hooks,o=PS(e),s=["<script>","(function() {"," 'use strict';",""," // Configuration",` var CONFIG = ${JSON.stringify(o,null,2).split(`
231
231
  `).map((a,l)=>l===0?a:" "+a).join(`
232
- `)};`,""," // Constants",` var CDN_BASE = '${jf(t)}';`," var STORAGE_KEY = 'chat-widget-state';"," var PROCESSED_ACTIONS_KEY = 'chat-widget-processed-actions';",""," // DOM context provider - extracts page elements for AI context"," var domContextProvider = function() {"," var selectors = {",` products: '[data-product-id], .product-card, .product-item, [role="article"]',`,` buttons: 'button, [role="button"], .btn',`," links: 'a[href]',"," inputs: 'input, textarea, select'"," };",""," var elements = [];"," Object.entries(selectors).forEach(function(entry) {"," var type = entry[0], selector = entry[1];"," document.querySelectorAll(selector).forEach(function(element) {"," if (!(element instanceof HTMLElement)) return;"," var widgetHost = element.closest('.persona-host');"," if (widgetHost) return;"," var text = element.innerText ? element.innerText.trim() : '';"," if (!text) return;",""," var selectorString = element.id ? '#' + element.id :",` element.getAttribute('data-testid') ? '[data-testid="' + element.getAttribute('data-testid') + '"]' :`,` element.getAttribute('data-product-id') ? '[data-product-id="' + element.getAttribute('data-product-id') + '"]' :`," element.tagName.toLowerCase();",""," var elementData = {"," type: type,"," tagName: element.tagName.toLowerCase(),"," selector: selectorString,"," innerText: text.substring(0, 200)"," };",""," if (type === 'links' && element instanceof HTMLAnchorElement && element.href) {"," elementData.href = element.href;"," }"," elements.push(elementData);"," });"," });",""," var counts = elements.reduce(function(acc, el) {"," acc[el.type] = (acc[el.type] || 0) + 1;"," return acc;"," }, {});",""," return {"," page_elements: elements.slice(0, 50),"," page_element_count: elements.length,"," element_types: counts,"," page_url: window.location.href,"," page_title: document.title,"," timestamp: new Date().toISOString()"," };"," };",""," // Load CSS dynamically"," var loadCSS = function() {"," if (document.querySelector('link[data-persona]')) return;"," var link = document.createElement('link');"," link.rel = 'stylesheet';"," link.href = CDN_BASE + '/widget.css';"," link.setAttribute('data-persona', 'true');"," document.head.appendChild(link);"," };",""," // Load JS dynamically"," var loadJS = function(callback) {"," if (window.AgentWidget) { callback(); return; }"," var script = document.createElement('script');"," script.src = CDN_BASE + '/index.global.js';"," script.onload = callback;"," script.onerror = function() { console.error('Failed to load AgentWidget'); };"," document.head.appendChild(script);"," };",""," // Create widget config with advanced features"," var createWidgetConfig = function(agentWidget) {"," var widgetConfig = Object.assign({}, CONFIG);",""];return n?.getHeaders&&(s.push(` widgetConfig.getHeaders = ${n.getHeaders};`),s.push("")),n?.contextProviders&&(s.push(` widgetConfig.contextProviders = ${n.contextProviders};`),s.push("")),n?.streamParser?s.push(` widgetConfig.streamParser = ${n.streamParser};`):(s.push(" // Flexible JSON stream parser for handling structured actions"),s.push(" widgetConfig.streamParser = function() {"),s.push(` return agentWidget.createFlexibleJsonStreamParser(${i0});`),s.push(" };")),s.push(""),n?.actionParsers?(s.push(" // Action parsers (custom merged with defaults)"),s.push(` var customParsers = ${n.actionParsers};`),s.push(" widgetConfig.actionParsers = customParsers.concat(["),s.push(" agentWidget.defaultJsonActionParser,"),s.push(` ${CS}`),s.push(" ]);")):(s.push(" // Action parsers to detect JSON actions in responses"),s.push(" widgetConfig.actionParsers = ["),s.push(" agentWidget.defaultJsonActionParser,"),s.push(` ${CS}`),s.push(" ];")),s.push(""),n?.actionHandlers?(s.push(" // Action handlers (custom merged with defaults)"),s.push(` var customHandlers = ${n.actionHandlers};`),s.push(" widgetConfig.actionHandlers = customHandlers.concat(["),s.push(" agentWidget.defaultActionHandlers.message,"),s.push(" agentWidget.defaultActionHandlers.messageAndClick,"),s.push(` ${xS}`),s.push(" ]);")):(s.push(" // Action handlers for navigation and other actions"),s.push(" widgetConfig.actionHandlers = ["),s.push(" agentWidget.defaultActionHandlers.message,"),s.push(" agentWidget.defaultActionHandlers.messageAndClick,"),s.push(` ${xS}`),s.push(" ];")),s.push(""),n?.requestMiddleware?(s.push(" // Request middleware (custom merged with DOM context)"),s.push(" widgetConfig.requestMiddleware = function(ctx) {"),s.push(` var customResult = (${n.requestMiddleware})(ctx);`),s.push(" var merged = customResult || ctx.payload;"),s.push(" return Object.assign({}, merged, { metadata: Object.assign({}, merged.metadata, domContextProvider()) });"),s.push(" };")):(s.push(" // Send DOM context with each request"),s.push(" widgetConfig.requestMiddleware = function(ctx) {"),s.push(" return Object.assign({}, ctx.payload, { metadata: domContextProvider() });"),s.push(" };")),s.push(""),n?.postprocessMessage?s.push(` widgetConfig.postprocessMessage = ${n.postprocessMessage};`):(s.push(" // Markdown postprocessor"),s.push(" widgetConfig.postprocessMessage = function(ctx) {"),s.push(" return agentWidget.markdownPostprocessor(ctx.text);"),s.push(" };")),s.push(""),(n?.onFeedback||n?.onCopy)&&(s.push(" // Message action callbacks"),s.push(" widgetConfig.messageActions = widgetConfig.messageActions || {};"),n?.onFeedback&&s.push(` widgetConfig.messageActions.onFeedback = ${n.onFeedback};`),n?.onCopy&&s.push(` widgetConfig.messageActions.onCopy = ${n.onCopy};`),s.push("")),s.push(" return widgetConfig;"," };",""," // Initialize widget"," var init = function() {"," var agentWidget = window.AgentWidget;"," if (!agentWidget) {"," console.error('AgentWidget not loaded');"," return;"," }",""," var widgetConfig = createWidgetConfig(agentWidget);",""," // Load saved state"," var savedState = localStorage.getItem(STORAGE_KEY);"," if (savedState) {"," try {"," var parsed = JSON.parse(savedState);"," widgetConfig.initialMessages = parsed.messages || [];"," } catch (e) {"," console.error('Failed to load saved state:', e);"," }"," }",""," // Initialize widget"," var handle = agentWidget.initAgentWidget({",` target: '${jl(t)}',`," useShadowDom: false,",...t?.windowKey?[` windowKey: '${t.windowKey}',`]:[]," config: widgetConfig"," });",""," // Save state on message events"," window.addEventListener('persona:message', function() {"," var session = handle.getSession ? handle.getSession() : null;"," if (session) {"," localStorage.setItem(STORAGE_KEY, JSON.stringify({"," messages: session.messages,"," timestamp: new Date().toISOString()"," }));"," }"," });",""," // Clear state on clear chat"," window.addEventListener('persona:clear-chat', function() {"," localStorage.removeItem(STORAGE_KEY);"," localStorage.removeItem(PROCESSED_ACTIONS_KEY);"," });"," };",""," // Wait for framework hydration to complete (Next.js, Nuxt, etc.)"," // This prevents the framework from removing dynamically added CSS during reconciliation"," var waitForHydration = function(callback) {"," var executed = false;"," "," var execute = function() {"," if (executed) return;"," executed = true;"," callback();"," };",""," var afterDom = function() {"," // Strategy 1: Use requestIdleCallback if available (best for detecting idle after hydration)"," if (typeof requestIdleCallback !== 'undefined') {"," requestIdleCallback(function() {"," // Double requestAnimationFrame ensures at least one full paint cycle completed"," requestAnimationFrame(function() {"," requestAnimationFrame(execute);"," });"," }, { timeout: 3000 }); // Max wait 3 seconds, then proceed anyway"," } else {"," // Strategy 2: Fallback for Safari (no requestIdleCallback)"," // 300ms is typically enough for hydration on most pages"," setTimeout(execute, 300);"," }"," };",""," if (document.readyState === 'loading') {"," document.addEventListener('DOMContentLoaded', afterDom);"," } else {"," // DOM already ready, but still wait for potential hydration"," afterDom();"," }"," };",""," // Boot sequence: wait for hydration, then load CSS and JS, then initialize"," // This prevents Next.js/Nuxt/etc. from removing dynamically added CSS during reconciliation"," waitForHydration(function() {"," loadCSS();"," loadJS(function() {"," init();"," });"," });","})();","</script>"),s.join(`
233
- `)}var IS=require("lucide");var ES={desktop:{w:1280,h:800},mobile:{w:390,h:844}},TS=.1,PS=.15,kS=1.5,zf=24,LS=40,m0=`
232
+ `)};`,""," // Constants",` var CDN_BASE = '${Vf(t)}';`," var STORAGE_KEY = 'chat-widget-state';"," var PROCESSED_ACTIONS_KEY = 'chat-widget-processed-actions';",""," // DOM context provider - extracts page elements for AI context"," var domContextProvider = function() {"," var selectors = {",` products: '[data-product-id], .product-card, .product-item, [role="article"]',`,` buttons: 'button, [role="button"], .btn',`," links: 'a[href]',"," inputs: 'input, textarea, select'"," };",""," var elements = [];"," Object.entries(selectors).forEach(function(entry) {"," var type = entry[0], selector = entry[1];"," document.querySelectorAll(selector).forEach(function(element) {"," if (!(element instanceof HTMLElement)) return;"," var widgetHost = element.closest('.persona-host');"," if (widgetHost) return;"," var text = element.innerText ? element.innerText.trim() : '';"," if (!text) return;",""," var selectorString = element.id ? '#' + element.id :",` element.getAttribute('data-testid') ? '[data-testid="' + element.getAttribute('data-testid') + '"]' :`,` element.getAttribute('data-product-id') ? '[data-product-id="' + element.getAttribute('data-product-id') + '"]' :`," element.tagName.toLowerCase();",""," var elementData = {"," type: type,"," tagName: element.tagName.toLowerCase(),"," selector: selectorString,"," innerText: text.substring(0, 200)"," };",""," if (type === 'links' && element instanceof HTMLAnchorElement && element.href) {"," elementData.href = element.href;"," }"," elements.push(elementData);"," });"," });",""," var counts = elements.reduce(function(acc, el) {"," acc[el.type] = (acc[el.type] || 0) + 1;"," return acc;"," }, {});",""," return {"," page_elements: elements.slice(0, 50),"," page_element_count: elements.length,"," element_types: counts,"," page_url: window.location.href,"," page_title: document.title,"," timestamp: new Date().toISOString()"," };"," };",""," // Load CSS dynamically"," var loadCSS = function() {"," if (document.querySelector('link[data-persona]')) return;"," var link = document.createElement('link');"," link.rel = 'stylesheet';"," link.href = CDN_BASE + '/widget.css';"," link.setAttribute('data-persona', 'true');"," document.head.appendChild(link);"," };",""," // Load JS dynamically"," var loadJS = function(callback) {"," if (window.AgentWidget) { callback(); return; }"," var script = document.createElement('script');"," script.src = CDN_BASE + '/index.global.js';"," script.onload = callback;"," script.onerror = function() { console.error('Failed to load AgentWidget'); };"," document.head.appendChild(script);"," };",""," // Create widget config with advanced features"," var createWidgetConfig = function(agentWidget) {"," var widgetConfig = Object.assign({}, CONFIG);",""];return n?.getHeaders&&(s.push(` widgetConfig.getHeaders = ${n.getHeaders};`),s.push("")),n?.contextProviders&&(s.push(` widgetConfig.contextProviders = ${n.contextProviders};`),s.push("")),n?.streamParser?s.push(` widgetConfig.streamParser = ${n.streamParser};`):(s.push(" // Flexible JSON stream parser for handling structured actions"),s.push(" widgetConfig.streamParser = function() {"),s.push(` return agentWidget.createFlexibleJsonStreamParser(${d0});`),s.push(" };")),s.push(""),n?.actionParsers?(s.push(" // Action parsers (custom merged with defaults)"),s.push(` var customParsers = ${n.actionParsers};`),s.push(" widgetConfig.actionParsers = customParsers.concat(["),s.push(" agentWidget.defaultJsonActionParser,"),s.push(` ${SS}`),s.push(" ]);")):(s.push(" // Action parsers to detect JSON actions in responses"),s.push(" widgetConfig.actionParsers = ["),s.push(" agentWidget.defaultJsonActionParser,"),s.push(` ${SS}`),s.push(" ];")),s.push(""),n?.actionHandlers?(s.push(" // Action handlers (custom merged with defaults)"),s.push(` var customHandlers = ${n.actionHandlers};`),s.push(" widgetConfig.actionHandlers = customHandlers.concat(["),s.push(" agentWidget.defaultActionHandlers.message,"),s.push(" agentWidget.defaultActionHandlers.messageAndClick,"),s.push(` ${MS}`),s.push(" ]);")):(s.push(" // Action handlers for navigation and other actions"),s.push(" widgetConfig.actionHandlers = ["),s.push(" agentWidget.defaultActionHandlers.message,"),s.push(" agentWidget.defaultActionHandlers.messageAndClick,"),s.push(` ${MS}`),s.push(" ];")),s.push(""),n?.requestMiddleware?(s.push(" // Request middleware (custom merged with DOM context)"),s.push(" widgetConfig.requestMiddleware = function(ctx) {"),s.push(` var customResult = (${n.requestMiddleware})(ctx);`),s.push(" var merged = customResult || ctx.payload;"),s.push(" return Object.assign({}, merged, { metadata: Object.assign({}, merged.metadata, domContextProvider()) });"),s.push(" };")):(s.push(" // Send DOM context with each request"),s.push(" widgetConfig.requestMiddleware = function(ctx) {"),s.push(" return Object.assign({}, ctx.payload, { metadata: domContextProvider() });"),s.push(" };")),s.push(""),n?.postprocessMessage?s.push(` widgetConfig.postprocessMessage = ${n.postprocessMessage};`):(s.push(" // Markdown postprocessor"),s.push(" widgetConfig.postprocessMessage = function(ctx) {"),s.push(" return agentWidget.markdownPostprocessor(ctx.text);"),s.push(" };")),s.push(""),(n?.onFeedback||n?.onCopy)&&(s.push(" // Message action callbacks"),s.push(" widgetConfig.messageActions = widgetConfig.messageActions || {};"),n?.onFeedback&&s.push(` widgetConfig.messageActions.onFeedback = ${n.onFeedback};`),n?.onCopy&&s.push(` widgetConfig.messageActions.onCopy = ${n.onCopy};`),s.push("")),s.push(" return widgetConfig;"," };",""," // Initialize widget"," var init = function() {"," var agentWidget = window.AgentWidget;"," if (!agentWidget) {"," console.error('AgentWidget not loaded');"," return;"," }",""," var widgetConfig = createWidgetConfig(agentWidget);",""," // Load saved state"," var savedState = localStorage.getItem(STORAGE_KEY);"," if (savedState) {"," try {"," var parsed = JSON.parse(savedState);"," widgetConfig.initialMessages = parsed.messages || [];"," } catch (e) {"," console.error('Failed to load saved state:', e);"," }"," }",""," // Initialize widget"," var handle = agentWidget.initAgentWidget({",` target: '${ql(t)}',`," useShadowDom: false,",...t?.windowKey?[` windowKey: '${t.windowKey}',`]:[]," config: widgetConfig"," });",""," // Save state on message events"," window.addEventListener('persona:message', function() {"," var session = handle.getSession ? handle.getSession() : null;"," if (session) {"," localStorage.setItem(STORAGE_KEY, JSON.stringify({"," messages: session.messages,"," timestamp: new Date().toISOString()"," }));"," }"," });",""," // Clear state on clear chat"," window.addEventListener('persona:clear-chat', function() {"," localStorage.removeItem(STORAGE_KEY);"," localStorage.removeItem(PROCESSED_ACTIONS_KEY);"," });"," };",""," // Wait for framework hydration to complete (Next.js, Nuxt, etc.)"," // This prevents the framework from removing dynamically added CSS during reconciliation"," var waitForHydration = function(callback) {"," var executed = false;"," "," var execute = function() {"," if (executed) return;"," executed = true;"," callback();"," };",""," var afterDom = function() {"," // Strategy 1: Use requestIdleCallback if available (best for detecting idle after hydration)"," if (typeof requestIdleCallback !== 'undefined') {"," requestIdleCallback(function() {"," // Double requestAnimationFrame ensures at least one full paint cycle completed"," requestAnimationFrame(function() {"," requestAnimationFrame(execute);"," });"," }, { timeout: 3000 }); // Max wait 3 seconds, then proceed anyway"," } else {"," // Strategy 2: Fallback for Safari (no requestIdleCallback)"," // 300ms is typically enough for hydration on most pages"," setTimeout(execute, 300);"," }"," };",""," if (document.readyState === 'loading') {"," document.addEventListener('DOMContentLoaded', afterDom);"," } else {"," // DOM already ready, but still wait for potential hydration"," afterDom();"," }"," };",""," // Boot sequence: wait for hydration, then load CSS and JS, then initialize"," // This prevents Next.js/Nuxt/etc. from removing dynamically added CSS during reconciliation"," waitForHydration(function() {"," loadCSS();"," loadJS(function() {"," init();"," });"," });","})();","</script>"),s.join(`
233
+ `)}var WS=require("lucide");var kS={desktop:{w:1280,h:800},mobile:{w:390,h:844}},LS=.1,IS=.15,RS=1.5,Gf=24,HS=40,b0=`
234
234
  /* \u2500\u2500 Root \u2500\u2500 */
235
235
  .persona-dc-root {
236
236
  display: flex;
@@ -381,7 +381,7 @@ ${s.join(`
381
381
  .persona-dc-stage {
382
382
  height: 550px;
383
383
  min-height: 400px;
384
- padding: ${zf}px;
384
+ padding: ${Gf}px;
385
385
  overflow: auto;
386
386
  background: #f0f1f3;
387
387
  background-image: radial-gradient(circle, #e0e1e5 1px, transparent 1px);
@@ -471,10 +471,10 @@ ${s.join(`
471
471
  min-height: 300px;
472
472
  }
473
473
  }
474
- `;function f0(){if(document.querySelector("style[data-persona-dc-styles]"))return;let e=document.createElement("style");e.setAttribute("data-persona-dc-styles",""),e.textContent=m0,document.head.appendChild(e)}function h0(e,t){let n=e.clientWidth-zf*2-LS,o=e.clientHeight-zf*2-LS;return n<=0||o<=0?1:Math.min(n/t.w,o/t.h,1)}function y0(e,t,n,o,r){e.style.width=`${n.w*o}px`,e.style.height=`${n.h*o}px`,e.style.borderRadius=r==="mobile"?`${32*o}px`:"10px",t.style.width=`${n.w}px`,t.style.height=`${n.h}px`,t.style.transformOrigin="top left",t.style.transform=`scale(${o})`}function RS(e,t){let{items:n,initialIndex:o=0,initialDevice:r="desktop",initialColorScheme:s="light",showZoomControls:a=!0,showDeviceToggle:l=!0,showColorSchemeToggle:d=!0,onChange:p}=t;if(n.length===0)throw new Error("createDemoCarousel: items array must not be empty");f0();let u=Math.max(0,Math.min(o,n.length-1)),m=r,y=s,h=null,C=1,x=!1,S=M("div","persona-dc-root"),k=M("div","persona-dc-toolbar"),B=M("div","persona-dc-toolbar-lead"),$=M("div","persona-dc-toolbar-trail"),T=Bn({icon:"chevron-left",label:"Previous demo",size:14,onClick:()=>$e(-1)}),I=M("div");I.style.position="relative";let A=M("button","persona-dc-title-btn");A.type="button",A.setAttribute("aria-expanded","false"),A.setAttribute("aria-haspopup","listbox");let D=M("span","persona-dc-title-text"),Q=M("span","persona-dc-title-chevron"),le=Ot(IS.ChevronDown,12,"currentColor",2);le&&Q.appendChild(le),A.append(D,Q);let re=M("div","persona-dc-dropdown");re.setAttribute("role","listbox"),re.style.display="none";let E=!1;function _(){re.innerHTML="";for(let He=0;He<n.length;He++){let qt=n[He],ct=M("button","persona-dc-dropdown-item");ct.type="button",ct.setAttribute("role","option"),ct.setAttribute("aria-current",He===u?"true":"false");let rn=M("span");if(rn.textContent=qt.title,ct.appendChild(rn),qt.description){let An=M("span","persona-dc-dropdown-desc");An.textContent=qt.description,ct.appendChild(An)}ct.addEventListener("click",()=>{L(),Se(He)}),re.appendChild(ct)}}function W(){E=!E,re.style.display=E?"":"none",A.setAttribute("aria-expanded",E?"true":"false"),E&&_()}function L(){E&&(E=!1,re.style.display="none",A.setAttribute("aria-expanded","false"))}A.addEventListener("click",He=>{He.stopPropagation(),W()});let X=()=>L();document.addEventListener("click",X),I.append(A,re);let K=Bn({icon:"chevron-right",label:"Next demo",size:14,onClick:()=>$e(1)}),de=M("span","persona-dc-counter");B.append(T,I,K,de);let ue=null;l&&(ue=Hl({items:[{id:"desktop",icon:"monitor",label:"Desktop"},{id:"mobile",icon:"smartphone",label:"Mobile"}],selectedId:m,onSelect:He=>{m=He,lt.dataset.device=m,h=null,Ie()}}),$.appendChild(ue.element));let fe=null;if(a){let He=M("div","persona-dc-zoom-controls"),qt=Bn({icon:"minus",label:"Zoom out",size:14,onClick:()=>{h=Math.max(PS,(h??C)-TS),Ie()}});fe=M("span","persona-dc-zoom-level"),fe.title="Reset to 100%",fe.style.cursor="pointer",fe.addEventListener("click",()=>{h=1,Ie()});let ct=Bn({icon:"plus",label:"Zoom in",size:14,onClick:()=>{h=Math.min(kS,(h??C)+TS),Ie()}}),rn=Bn({icon:"maximize",label:"Fit to view",size:14,onClick:()=>{h=null,Ie()}});He.append(qt,fe,ct,rn),$.appendChild(He)}if(d){let He=M("div","persona-dc-separator");$.appendChild(He);let qt=Hl({items:[{id:"light",icon:"sun",label:"Light"},{id:"dark",icon:"moon",label:"Dark"}],selectedId:y,onSelect:ct=>{y=ct,lt.dataset.colorScheme=y,j()}});$.appendChild(qt.element)}let Me=M("div","persona-dc-separator");$.appendChild(Me);let ye=Bn({icon:"external-link",label:"Open in new tab",size:14,onClick:()=>{window.open(n[u].url,"_blank")}});$.appendChild(ye),k.append(B,$);let Ne=M("div","persona-dc-stage"),lt=M("div","persona-dc-iframe-wrapper");lt.dataset.device=m,lt.dataset.colorScheme=y;let Ce=M("iframe","persona-dc-iframe");Ce.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),Ce.setAttribute("loading","lazy"),Ce.title=n[u].title,lt.appendChild(Ce),Ne.appendChild(lt),S.append(k,Ne),e.appendChild(S);function j(){try{let He=Ce.contentDocument?.body;if(!He)return;y==="dark"?He.classList.add("theme-dark"):He.classList.remove("theme-dark")}catch{}}Ce.addEventListener("load",()=>j());function Fe(){let He=n[u];D.textContent=He.title,de.textContent=`${u+1} / ${n.length}`,Ce.title=He.title}function $e(He){let qt=((u+He)%n.length+n.length)%n.length;Se(qt)}function Se(He){He<0||He>=n.length||(u=He,Ce.src=n[u].url,Fe(),p?.(u,n[u]))}function Ie(){if(x)return;let He=ES[m]??ES.desktop;C=h0(Ne,He);let qt=Math.max(PS,Math.min(kS,h??C));y0(lt,Ce,He,qt,m),fe&&(fe.textContent=`${Math.round(qt*100)}%`)}let be=new ResizeObserver(()=>Ie());be.observe(Ne),Fe(),Ce.src=n[u].url,requestAnimationFrame(()=>Ie());function ut(){x||(x=!0,be.disconnect(),document.removeEventListener("click",X),S.remove())}return{element:S,goTo:Se,next:()=>$e(1),prev:()=>$e(-1),getIndex:()=>u,setDevice(He){m=He,lt.dataset.device=He,ue?.setSelected(He),h=null,Ie()},setColorScheme(He){y=He,lt.dataset.colorScheme=He},setZoom(He){h=He,Ie()},destroy:ut}}rm();var HS=16e3,b0=24e3,v0=4096,C0=4,w0=1380533830;function x0(e){return e.byteLength>=44&&new DataView(e).getUint32(0,!1)===w0?new Uint8Array(e,44):new Uint8Array(e)}function S0(e){let t=e.replace(/\/+$/,"");return/^wss?:\/\//i.test(t)?t:/^https?:\/\//i.test(t)?t.replace(/^http/i,"ws"):`${typeof window<"u"&&window.location?.protocol==="https:"?"wss:":"ws:"}//${t}`}var ql=class{constructor(t){this.config=t;this.type="runtype";this.ws=null;this.captureContext=null;this.levelCallbacks=[];this.mediaStream=null;this.sourceNode=null;this.processor=null;this.playback=null;this.callLive=!1;this.isSpeaking=!1;this.callGeneration=0;this.intentionalClose=!1;this.resultCallbacks=[];this.errorCallbacks=[];this.statusCallbacks=[];this.transcriptCallbacks=[];this.metricsCallbacks=[]}async connect(){}async startListening(){if(this.callLive)return;let t=this.config?.agentId,n=this.config?.clientToken,o=this.config?.host;if(!t)throw new Error("Runtype voice requires an agentId");if(!n)throw new Error("Runtype voice requires a clientToken");if(!o)throw new Error("Runtype voice requires a host (or widget apiUrl)");let r=++this.callGeneration;this.intentionalClose=!1,this.callLive=!0;try{let s=await navigator.mediaDevices.getUserMedia({audio:{sampleRate:HS,channelCount:1,echoCancellation:!0}});if(r!==this.callGeneration){s.getTracks().forEach(m=>m.stop());return}this.mediaStream=s;let a=window.AudioContext||window.webkitAudioContext,l=new a({sampleRate:HS});l.state==="suspended"&&await l.resume().catch(()=>{}),this.captureContext=l;let d=this.config?.createPlaybackEngine?await this.config.createPlaybackEngine():new qi(b0);if(r!==this.callGeneration){d.destroy(),s.getTracks().forEach(m=>m.stop()),l.close().catch(()=>{});return}this.playback=d,d.onFinished(()=>{r===this.callGeneration&&(this.isSpeaking=!1,this.ws&&this.ws.readyState===WebSocket.OPEN&&this.emitStatus("listening"))});let p=`${S0(o)}/ws/agents/${encodeURIComponent(t)}/voice`,u=new WebSocket(p,["runtype.bearer",n]);u.binaryType="arraybuffer",this.ws=u,u.onopen=()=>{r===this.callGeneration&&(this.emitStatus("listening"),this.startCapture(l,s,u,r))},u.onmessage=m=>this.handleMessage(m,r),u.onerror=()=>{r===this.callGeneration&&(this.emitError(new Error("Voice connection failed")),this.emitStatus("error"),this.cleanup())},u.onclose=m=>{if(this.intentionalClose){this.intentionalClose=!1;return}if(r===this.callGeneration){if(m.code!==1e3){let y=m.code?` (code ${m.code})`:"";this.emitError(new Error(`Voice connection closed${y}`)),this.emitStatus("error")}else this.emitStatus("idle");this.cleanup()}}}catch(s){throw this.cleanup(),this.emitError(s),this.emitStatus("error"),s}}async stopListening(){this.cleanup(),this.emitStatus("idle")}async disconnect(){this.cleanup(),this.emitStatus("disconnected"),this.resultCallbacks=[],this.errorCallbacks=[],this.statusCallbacks=[],this.transcriptCallbacks=[],this.metricsCallbacks=[]}stopPlayback(){this.playback&&this.playback.flush(),this.isSpeaking=!1,this.ws&&this.ws.readyState===WebSocket.OPEN&&this.emitStatus("listening")}getInterruptionMode(){return"barge-in"}isBargeInActive(){return this.callLive}onLevel(t){this.levelCallbacks.push(t)}async deactivateBargeIn(){this.cleanup(),this.emitStatus("idle")}startCapture(t,n,o,r){let s=t.createMediaStreamSource(n);this.sourceNode=s;let a=t.createScriptProcessor(v0,1,1);this.processor=a,a.onaudioprocess=l=>{if(r!==this.callGeneration||o.readyState!==WebSocket.OPEN)return;let d=l.inputBuffer.getChannelData(0),p=new Int16Array(d.length),u=0;for(let m=0;m<d.length;m++){let y=Math.max(-1,Math.min(1,d[m]));u+=y*y,p[m]=y<0?y*32768:y*32767}if(o.send(p.buffer),this.levelCallbacks.length>0){let m=Math.sqrt(u/d.length),y=Math.max(0,Math.min(1,m*C0));for(let h of this.levelCallbacks)h(y)}},s.connect(a),a.connect(t.destination)}handleMessage(t,n){if(n!==this.callGeneration)return;if(t.data instanceof ArrayBuffer){this.handleAudioFrame(t.data,n);return}let o;try{o=JSON.parse(t.data)}catch{return}switch(o.type){case"transcript_interim":this.emitStatus("listening"),this.emitTranscript("user",o.text??"",!1);break;case"transcript_final":{let r=o.role==="assistant"?"assistant":"user";this.emitStatus(r==="user"?"processing":"speaking"),this.emitTranscript(r,o.text??"",!0);break}case"audio_end":this.playback?this.playback.markStreamEnd():(this.isSpeaking=!1,this.emitStatus("listening"));break;case"metrics":this.emitMetrics({llmMs:o.llm_ms,ttsMs:o.tts_ms,firstAudioMs:o.first_audio_ms,totalMs:o.total_ms});break;case"error":this.emitError(new Error(o.error||"Voice error")),this.emitStatus("error");break}}handleAudioFrame(t,n){if(n!==this.callGeneration||!this.playback)return;let o=x0(t);o.length!==0&&(this.isSpeaking||(this.isSpeaking=!0,this.emitStatus("speaking")),this.playback.enqueue(o))}cleanup(){if(this.callGeneration+=1,this.callLive=!1,this.isSpeaking=!1,this.processor&&(this.processor.onaudioprocess=null,this.processor.disconnect(),this.processor=null),this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=null),this.mediaStream&&(this.mediaStream.getTracks().forEach(t=>t.stop()),this.mediaStream=null),this.captureContext&&(this.captureContext.close().catch(()=>{}),this.captureContext=null),this.playback&&(this.playback.destroy(),this.playback=null),this.ws){this.intentionalClose=!0;try{this.ws.close(1e3,"client ended call")}catch{}this.ws=null}}onResult(t){this.resultCallbacks.push(t)}onError(t){this.errorCallbacks.push(t)}onStatusChange(t){this.statusCallbacks.push(t)}onTranscript(t){this.transcriptCallbacks.push(t)}onMetrics(t){this.metricsCallbacks.push(t)}emitStatus(t){this.statusCallbacks.forEach(n=>n(t))}emitError(t){this.errorCallbacks.forEach(n=>n(t))}emitTranscript(t,n,o){this.transcriptCallbacks.forEach(r=>r(t,n,o))}emitMetrics(t){this.metricsCallbacks.forEach(n=>n(t))}};var ni=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<"u"?window:void 0}async connect(){this.statusCallbacks.forEach(t=>t("connected"))}async startListening(){try{if(this.isListening)throw new Error("Already listening");if(!this.w)throw new Error("Window object not available");let t=this.w.SpeechRecognition||this.w.webkitSpeechRecognition;if(!t)throw new Error("Browser speech recognition not supported");this.recognition=new t,this.recognition.lang=this.config?.language||"en-US",this.recognition.continuous=this.config?.continuous||!1,this.recognition.interimResults=!0,this.recognition.onresult=n=>{let o=Array.from(n.results).map(s=>s[0]).map(s=>s.transcript).join(""),r=n.results[n.results.length-1].isFinal;this.resultCallbacks.forEach(s=>s({text:o,confidence:r?.8:.5,provider:"browser"})),r&&!this.config?.continuous&&this.stopListening()},this.recognition.onerror=n=>{this.errorCallbacks.forEach(o=>o(new Error(n.error))),this.statusCallbacks.forEach(o=>o("error"))},this.recognition.onstart=()=>{this.isListening=!0,this.statusCallbacks.forEach(n=>n("listening"))},this.recognition.onend=()=>{this.isListening=!1,this.statusCallbacks.forEach(n=>n("idle"))},this.recognition.start()}catch(t){throw this.errorCallbacks.forEach(n=>n(t)),this.statusCallbacks.forEach(n=>n("error")),t}}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 pa(e){switch(e.type){case"runtype":if(!e.runtype)throw new Error("Runtype voice provider requires configuration");return new ql(e.runtype);case"browser":if(!ni.isSupported())throw new Error("Browser speech recognition not supported");return new ni(e.browser||{});case"custom":{let t=e.custom;if(!t)throw new Error("Custom voice provider requires a `custom` provider instance or factory");let n=typeof t=="function"?t():t;if(!n||typeof n.startListening!="function")throw new Error("Custom voice provider `custom` must be a VoiceProvider (or a factory returning one)");return n}default:throw new Error(`Unknown voice provider type: ${e.type}`)}}function Gp(e){if(e?.type==="custom"&&e.custom)return pa({type:"custom",custom:e.custom});if(e?.type==="runtype"&&e.runtype)return pa({type:"runtype",runtype:e.runtype});if(ni.isSupported())return pa({type:"browser",browser:e?.browser||{language:"en-US"}});throw new Error("No supported voice providers available")}function Vf(e){try{return Gp(e),!0}catch{return!1}}var WS="webmcp:",A0=e=>e.startsWith(WS)?e.slice(WS.length):e,Qp={warn(e,...t){typeof console<"u"&&typeof console.warn=="function"&&console.warn(`[Persona/WebMCP] ${e}`,...t)}},Yp=class{constructor(t,n){this.config=t;this.deps=n;this.installed=!1;this.readyPromise=null;this.incompatibleContextWarned=!1;this.confirmHandler=t.onConfirm??null,this.timeoutMs=3e4}setConfirmHandler(t){this.confirmHandler=t}isOperational(){return this.config.enabled!==!0||!this.installed?!1:this.getModelContext()!==null}async snapshotForDispatch(){if(await this.ensureReady(),this.config.enabled!==!0)return[];let t=this.getModelContext();if(!t)return[];let n;try{n=await t.getTools()}catch(r){return Qp.warn("getTools() threw: shipping an empty WebMCP snapshot.",r),[]}this.deps.recordToolDisplayTitles(n);let o=typeof location<"u"?location.origin:"";return n.filter(r=>this.passesClientAllowlist(r.name)).map(r=>{let s={name:r.name,description:r.description,origin:"webmcp",...o?{pageOrigin:o}:{}},a=E0(r.inputSchema);return a&&(s.parametersSchema=a),s})}async executeToolCall(t,n,o){if(await this.ensureReady(),this.config.enabled!==!0)return So("WebMCP is not enabled on this widget.");let r=this.getModelContext();if(!r){let C=typeof document<"u"&&!!document.modelContext;return So(C?"WebMCP is not operational: document.modelContext is present but does not expose the strict getTools()/executeTool() surface (likely a different or older WebMCP polyfill).":"WebMCP bridge is not operational on this page (document.modelContext not available).")}let s=A0(t),a;try{a=await r.getTools()}catch(C){let x=C instanceof Error?C.message:String(C);return So(`Failed to read WebMCP registry: ${x}`)}this.deps.recordToolDisplayTitles(a);let l=a.find(C=>C.name===s);if(!l)return So(`WebMCP tool not registered on this page: ${s}`);if(!this.passesClientAllowlist(s))return So(`WebMCP tool not allowed by client allowlist: ${s}`);if(o?.aborted)return So("Aborted by cancel()");let d=this.deps.getToolDisplayTitle(s),p={toolName:s,args:n,description:l.description,...d?{title:d}:{},reason:"gate"};if(!await this.requestConfirm(p))return So("User declined the tool call.");if(o?.aborted)return So("Aborted by cancel()");let u=new AbortController,m=!1,y=setTimeout(()=>{m=!0,u.abort()},this.timeoutMs),h=()=>u.abort();o&&(o.aborted?u.abort():o.addEventListener("abort",h,{once:!0}));try{let C=await r.executeTool(l,L0(n),{signal:u.signal});return T0(C)}catch(C){if(m)return So(`WebMCP tool '${s}' timed out after ${this.timeoutMs}ms`);if(o?.aborted)return So("Aborted by cancel()");let x=C instanceof Error?C.message:String(C);return So(x)}finally{clearTimeout(y),o&&o.removeEventListener("abort",h)}}ensureReady(){return this.config.enabled!==!0?Promise.resolve():(this.readyPromise||(this.readyPromise=this.install()),this.readyPromise)}async install(){try{if(this.getModelContext()){this.installed=!0;return}(await this.deps.loadPolyfill()).initializeWebMCPPolyfill(),this.installed=!0}catch(t){Qp.warn("Failed to load @mcp-b/webmcp-polyfill: WebMCP consumption disabled.",t),this.installed=!1}}getModelContext(){if(typeof document>"u")return null;let t=document.modelContext;if(!t||typeof t!="object")return null;let n=t;return typeof n.getTools!="function"||typeof n.executeTool!="function"?(this.incompatibleContextWarned||(this.incompatibleContextWarned=!0,Qp.warn("document.modelContext is present but does not expose getTools()/executeTool(): WebMCP consumption is disabled. Another (incompatible or older) WebMCP polyfill likely installed document.modelContext before Persona. Remove it, or use a polyfill implementing the strict standard surface (e.g. @mcp-b/webmcp-polyfill).")),null):t}async requestConfirm(t){let n=this.confirmHandler??P0;try{return await n(t)}catch(o){return Qp.warn(`Confirm handler threw for WebMCP tool '${t.toolName}'; declining.`,o),!1}}passesClientAllowlist(t){let n=this.config.allowlist;return!n||n.length===0?!0:n.some(o=>M0(t,o))}},M0=(e,t)=>{if(t==="*")return!0;let n=t.replace(/[.+?^${}()|[\]\\]/g,"\\$&");return new RegExp("^"+n.replace(/\*/g,".*")+"$").test(e)},E0=e=>{if(!(e===void 0||e===""))try{let t=JSON.parse(e);return t!==null&&typeof t=="object"?t:void 0}catch{return}},T0=e=>{if(e==null)return{content:[{type:"text",text:""}]};let t;try{t=JSON.parse(e)}catch{return{content:[{type:"text",text:e}]}}return t!==null&&typeof t=="object"&&Array.isArray(t.content)?t:{content:[{type:"text",text:typeof t=="string"?t:I0(t)}]}},So=e=>({isError:!0,content:[{type:"text",text:e}]}),P0=async e=>{if(typeof window>"u"||typeof window.confirm!="function")return!1;let t=k0(e.args),n=`Allow the AI to call ${e.toolName}`+(t?`
474
+ `;function v0(){if(document.querySelector("style[data-persona-dc-styles]"))return;let e=document.createElement("style");e.setAttribute("data-persona-dc-styles",""),e.textContent=b0,document.head.appendChild(e)}function C0(e,t){let n=e.clientWidth-Gf*2-HS,o=e.clientHeight-Gf*2-HS;return n<=0||o<=0?1:Math.min(n/t.w,o/t.h,1)}function w0(e,t,n,o,r){e.style.width=`${n.w*o}px`,e.style.height=`${n.h*o}px`,e.style.borderRadius=r==="mobile"?`${32*o}px`:"10px",t.style.width=`${n.w}px`,t.style.height=`${n.h}px`,t.style.transformOrigin="top left",t.style.transform=`scale(${o})`}function OS(e,t){let{items:n,initialIndex:o=0,initialDevice:r="desktop",initialColorScheme:s="light",showZoomControls:a=!0,showDeviceToggle:l=!0,showColorSchemeToggle:d=!0,onChange:p}=t;if(n.length===0)throw new Error("createDemoCarousel: items array must not be empty");v0();let u=Math.max(0,Math.min(o,n.length-1)),m=r,y=s,h=null,C=1,S=!1,x=M("div","persona-dc-root"),k=M("div","persona-dc-toolbar"),O=M("div","persona-dc-toolbar-lead"),$=M("div","persona-dc-toolbar-trail"),T=Hn({icon:"chevron-left",label:"Previous demo",size:14,onClick:()=>je(-1)}),I=M("div");I.style.position="relative";let A=M("button","persona-dc-title-btn");A.type="button",A.setAttribute("aria-expanded","false"),A.setAttribute("aria-haspopup","listbox");let N=M("span","persona-dc-title-text"),Q=M("span","persona-dc-title-chevron"),ce=Wt(WS.ChevronDown,12,"currentColor",2);ce&&Q.appendChild(ce),A.append(N,Q);let Y=M("div","persona-dc-dropdown");Y.setAttribute("role","listbox"),Y.style.display="none";let E=!1;function B(){Y.innerHTML="";for(let Re=0;Re<n.length;Re++){let Mt=n[Re],Xt=M("button","persona-dc-dropdown-item");Xt.type="button",Xt.setAttribute("role","option"),Xt.setAttribute("aria-current",Re===u?"true":"false");let ft=M("span");if(ft.textContent=Mt.title,Xt.appendChild(ft),Mt.description){let un=M("span","persona-dc-dropdown-desc");un.textContent=Mt.description,Xt.appendChild(un)}Xt.addEventListener("click",()=>{L(),mt(Re)}),Y.appendChild(Xt)}}function H(){E=!E,Y.style.display=E?"":"none",A.setAttribute("aria-expanded",E?"true":"false"),E&&B()}function L(){E&&(E=!1,Y.style.display="none",A.setAttribute("aria-expanded","false"))}A.addEventListener("click",Re=>{Re.stopPropagation(),H()});let te=()=>L();document.addEventListener("click",te),I.append(A,Y);let K=Hn({icon:"chevron-right",label:"Next demo",size:14,onClick:()=>je(1)}),me=M("span","persona-dc-counter");O.append(T,I,K,me);let de=null;l&&(de=Wl({items:[{id:"desktop",icon:"monitor",label:"Desktop"},{id:"mobile",icon:"smartphone",label:"Mobile"}],selectedId:m,onSelect:Re=>{m=Re,Xe.dataset.device=m,h=null,Ae()}}),$.appendChild(de.element));let he=null;if(a){let Re=M("div","persona-dc-zoom-controls"),Mt=Hn({icon:"minus",label:"Zoom out",size:14,onClick:()=>{h=Math.max(IS,(h??C)-LS),Ae()}});he=M("span","persona-dc-zoom-level"),he.title="Reset to 100%",he.style.cursor="pointer",he.addEventListener("click",()=>{h=1,Ae()});let Xt=Hn({icon:"plus",label:"Zoom in",size:14,onClick:()=>{h=Math.min(RS,(h??C)+LS),Ae()}}),ft=Hn({icon:"maximize",label:"Fit to view",size:14,onClick:()=>{h=null,Ae()}});Re.append(Mt,he,Xt,ft),$.appendChild(Re)}if(d){let Re=M("div","persona-dc-separator");$.appendChild(Re);let Mt=Wl({items:[{id:"light",icon:"sun",label:"Light"},{id:"dark",icon:"moon",label:"Dark"}],selectedId:y,onSelect:Xt=>{y=Xt,Xe.dataset.colorScheme=y,j()}});$.appendChild(Mt.element)}let We=M("div","persona-dc-separator");$.appendChild(We);let Oe=Hn({icon:"external-link",label:"Open in new tab",size:14,onClick:()=>{window.open(n[u].url,"_blank")}});$.appendChild(Oe),k.append(O,$);let Se=M("div","persona-dc-stage"),Xe=M("div","persona-dc-iframe-wrapper");Xe.dataset.device=m,Xe.dataset.colorScheme=y;let we=M("iframe","persona-dc-iframe");we.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),we.setAttribute("loading","lazy"),we.title=n[u].title,Xe.appendChild(we),Se.appendChild(Xe),x.append(k,Se),e.appendChild(x);function j(){try{let Re=we.contentDocument?.body;if(!Re)return;y==="dark"?Re.classList.add("theme-dark"):Re.classList.remove("theme-dark")}catch{}}we.addEventListener("load",()=>j());function $e(){let Re=n[u];N.textContent=Re.title,me.textContent=`${u+1} / ${n.length}`,we.title=Re.title}function je(Re){let Mt=((u+Re)%n.length+n.length)%n.length;mt(Mt)}function mt(Re){Re<0||Re>=n.length||(u=Re,we.src=n[u].url,$e(),p?.(u,n[u]))}function Ae(){if(S)return;let Re=kS[m]??kS.desktop;C=C0(Se,Re);let Mt=Math.max(IS,Math.min(RS,h??C));w0(Xe,we,Re,Mt,m),he&&(he.textContent=`${Math.round(Mt*100)}%`)}let ke=new ResizeObserver(()=>Ae());ke.observe(Se),$e(),we.src=n[u].url,requestAnimationFrame(()=>Ae());function ve(){S||(S=!0,ke.disconnect(),document.removeEventListener("click",te),x.remove())}return{element:x,goTo:mt,next:()=>je(1),prev:()=>je(-1),getIndex:()=>u,setDevice(Re){m=Re,Xe.dataset.device=Re,de?.setSelected(Re),h=null,Ae()},setColorScheme(Re){y=Re,Xe.dataset.colorScheme=Re},setZoom(Re){h=Re,Ae()},destroy:ve}}am();var BS=16e3,x0=24e3,S0=4096,A0=4,M0=1380533830;function E0(e){return e.byteLength>=44&&new DataView(e).getUint32(0,!1)===M0?new Uint8Array(e,44):new Uint8Array(e)}function T0(e){let t=e.replace(/\/+$/,"");return/^wss?:\/\//i.test(t)?t:/^https?:\/\//i.test(t)?t.replace(/^http/i,"ws"):`${typeof window<"u"&&window.location?.protocol==="https:"?"wss:":"ws:"}//${t}`}var zl=class{constructor(t){this.config=t;this.type="runtype";this.ws=null;this.captureContext=null;this.levelCallbacks=[];this.mediaStream=null;this.sourceNode=null;this.processor=null;this.playback=null;this.callLive=!1;this.isSpeaking=!1;this.callGeneration=0;this.intentionalClose=!1;this.resultCallbacks=[];this.errorCallbacks=[];this.statusCallbacks=[];this.transcriptCallbacks=[];this.metricsCallbacks=[]}async connect(){}async startListening(){if(this.callLive)return;let t=this.config?.agentId,n=this.config?.clientToken,o=this.config?.host;if(!t)throw new Error("Runtype voice requires an agentId");if(!n)throw new Error("Runtype voice requires a clientToken");if(!o)throw new Error("Runtype voice requires a host (or widget apiUrl)");let r=++this.callGeneration;this.intentionalClose=!1,this.callLive=!0;try{let s=await navigator.mediaDevices.getUserMedia({audio:{sampleRate:BS,channelCount:1,echoCancellation:!0}});if(r!==this.callGeneration){s.getTracks().forEach(m=>m.stop());return}this.mediaStream=s;let a=window.AudioContext||window.webkitAudioContext,l=new a({sampleRate:BS});l.state==="suspended"&&await l.resume().catch(()=>{}),this.captureContext=l;let d=this.config?.createPlaybackEngine?await this.config.createPlaybackEngine():new Qi(x0);if(r!==this.callGeneration){d.destroy(),s.getTracks().forEach(m=>m.stop()),l.close().catch(()=>{});return}this.playback=d,d.onFinished(()=>{r===this.callGeneration&&(this.isSpeaking=!1,this.ws&&this.ws.readyState===WebSocket.OPEN&&this.emitStatus("listening"))});let p=`${T0(o)}/ws/agents/${encodeURIComponent(t)}/voice`,u=new WebSocket(p,["runtype.bearer",n]);u.binaryType="arraybuffer",this.ws=u,u.onopen=()=>{r===this.callGeneration&&(this.emitStatus("listening"),this.startCapture(l,s,u,r))},u.onmessage=m=>this.handleMessage(m,r),u.onerror=()=>{r===this.callGeneration&&(this.emitError(new Error("Voice connection failed")),this.emitStatus("error"),this.cleanup())},u.onclose=m=>{if(this.intentionalClose){this.intentionalClose=!1;return}if(r===this.callGeneration){if(m.code!==1e3){let y=m.code?` (code ${m.code})`:"";this.emitError(new Error(`Voice connection closed${y}`)),this.emitStatus("error")}else this.emitStatus("idle");this.cleanup()}}}catch(s){throw this.cleanup(),this.emitError(s),this.emitStatus("error"),s}}async stopListening(){this.cleanup(),this.emitStatus("idle")}async disconnect(){this.cleanup(),this.emitStatus("disconnected"),this.resultCallbacks=[],this.errorCallbacks=[],this.statusCallbacks=[],this.transcriptCallbacks=[],this.metricsCallbacks=[]}stopPlayback(){this.playback&&this.playback.flush(),this.isSpeaking=!1,this.ws&&this.ws.readyState===WebSocket.OPEN&&this.emitStatus("listening")}getInterruptionMode(){return"barge-in"}isBargeInActive(){return this.callLive}onLevel(t){this.levelCallbacks.push(t)}async deactivateBargeIn(){this.cleanup(),this.emitStatus("idle")}startCapture(t,n,o,r){let s=t.createMediaStreamSource(n);this.sourceNode=s;let a=t.createScriptProcessor(S0,1,1);this.processor=a,a.onaudioprocess=l=>{if(r!==this.callGeneration||o.readyState!==WebSocket.OPEN)return;let d=l.inputBuffer.getChannelData(0),p=new Int16Array(d.length),u=0;for(let m=0;m<d.length;m++){let y=Math.max(-1,Math.min(1,d[m]));u+=y*y,p[m]=y<0?y*32768:y*32767}if(o.send(p.buffer),this.levelCallbacks.length>0){let m=Math.sqrt(u/d.length),y=Math.max(0,Math.min(1,m*A0));for(let h of this.levelCallbacks)h(y)}},s.connect(a),a.connect(t.destination)}handleMessage(t,n){if(n!==this.callGeneration)return;if(t.data instanceof ArrayBuffer){this.handleAudioFrame(t.data,n);return}let o;try{o=JSON.parse(t.data)}catch{return}switch(o.type){case"transcript_interim":this.emitStatus("listening"),this.emitTranscript("user",o.text??"",!1);break;case"transcript_final":{let r=o.role==="assistant"?"assistant":"user";this.emitStatus(r==="user"?"processing":"speaking"),this.emitTranscript(r,o.text??"",!0);break}case"audio_end":this.playback?this.playback.markStreamEnd():(this.isSpeaking=!1,this.emitStatus("listening"));break;case"metrics":this.emitMetrics({llmMs:o.llm_ms,ttsMs:o.tts_ms,firstAudioMs:o.first_audio_ms,totalMs:o.total_ms});break;case"error":this.emitError(new Error(o.error||"Voice error")),this.emitStatus("error");break}}handleAudioFrame(t,n){if(n!==this.callGeneration||!this.playback)return;let o=E0(t);o.length!==0&&(this.isSpeaking||(this.isSpeaking=!0,this.emitStatus("speaking")),this.playback.enqueue(o))}cleanup(){if(this.callGeneration+=1,this.callLive=!1,this.isSpeaking=!1,this.processor&&(this.processor.onaudioprocess=null,this.processor.disconnect(),this.processor=null),this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=null),this.mediaStream&&(this.mediaStream.getTracks().forEach(t=>t.stop()),this.mediaStream=null),this.captureContext&&(this.captureContext.close().catch(()=>{}),this.captureContext=null),this.playback&&(this.playback.destroy(),this.playback=null),this.ws){this.intentionalClose=!0;try{this.ws.close(1e3,"client ended call")}catch{}this.ws=null}}onResult(t){this.resultCallbacks.push(t)}onError(t){this.errorCallbacks.push(t)}onStatusChange(t){this.statusCallbacks.push(t)}onTranscript(t){this.transcriptCallbacks.push(t)}onMetrics(t){this.metricsCallbacks.push(t)}emitStatus(t){this.statusCallbacks.forEach(n=>n(t))}emitError(t){this.errorCallbacks.forEach(n=>n(t))}emitTranscript(t,n,o){this.transcriptCallbacks.forEach(r=>r(t,n,o))}emitMetrics(t){this.metricsCallbacks.forEach(n=>n(t))}};var ri=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<"u"?window:void 0}async connect(){this.statusCallbacks.forEach(t=>t("connected"))}async startListening(){try{if(this.isListening)throw new Error("Already listening");if(!this.w)throw new Error("Window object not available");let t=this.w.SpeechRecognition||this.w.webkitSpeechRecognition;if(!t)throw new Error("Browser speech recognition not supported");this.recognition=new t,this.recognition.lang=this.config?.language||"en-US",this.recognition.continuous=this.config?.continuous||!1,this.recognition.interimResults=!0,this.recognition.onresult=n=>{let o=Array.from(n.results).map(s=>s[0]).map(s=>s.transcript).join(""),r=n.results[n.results.length-1].isFinal;this.resultCallbacks.forEach(s=>s({text:o,confidence:r?.8:.5,provider:"browser"})),r&&!this.config?.continuous&&this.stopListening()},this.recognition.onerror=n=>{this.errorCallbacks.forEach(o=>o(new Error(n.error))),this.statusCallbacks.forEach(o=>o("error"))},this.recognition.onstart=()=>{this.isListening=!0,this.statusCallbacks.forEach(n=>n("listening"))},this.recognition.onend=()=>{this.isListening=!1,this.statusCallbacks.forEach(n=>n("idle"))},this.recognition.start()}catch(t){throw this.errorCallbacks.forEach(n=>n(t)),this.statusCallbacks.forEach(n=>n("error")),t}}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 ha(e){switch(e.type){case"runtype":if(!e.runtype)throw new Error("Runtype voice provider requires configuration");return new zl(e.runtype);case"browser":if(!ri.isSupported())throw new Error("Browser speech recognition not supported");return new ri(e.browser||{});case"custom":{let t=e.custom;if(!t)throw new Error("Custom voice provider requires a `custom` provider instance or factory");let n=typeof t=="function"?t():t;if(!n||typeof n.startListening!="function")throw new Error("Custom voice provider `custom` must be a VoiceProvider (or a factory returning one)");return n}default:throw new Error(`Unknown voice provider type: ${e.type}`)}}function Qp(e){if(e?.type==="custom"&&e.custom)return ha({type:"custom",custom:e.custom});if(e?.type==="runtype"&&e.runtype)return ha({type:"runtype",runtype:e.runtype});if(ri.isSupported())return ha({type:"browser",browser:e?.browser||{language:"en-US"}});throw new Error("No supported voice providers available")}function Qf(e){try{return Qp(e),!0}catch{return!1}}var _S="webmcp:",P0=e=>e.startsWith(_S)?e.slice(_S.length):e,Yp={warn(e,...t){typeof console<"u"&&typeof console.warn=="function"&&console.warn(`[Persona/WebMCP] ${e}`,...t)}},Xp=class{constructor(t,n){this.config=t;this.deps=n;this.installed=!1;this.readyPromise=null;this.incompatibleContextWarned=!1;this.confirmHandler=t.onConfirm??null,this.timeoutMs=3e4}setConfirmHandler(t){this.confirmHandler=t}isOperational(){return this.config.enabled!==!0||!this.installed?!1:this.getModelContext()!==null}async snapshotForDispatch(){if(await this.ensureReady(),this.config.enabled!==!0)return[];let t=this.getModelContext();if(!t)return[];let n;try{n=await t.getTools()}catch(r){return Yp.warn("getTools() threw: shipping an empty WebMCP snapshot.",r),[]}this.deps.recordToolDisplayTitles(n);let o=typeof location<"u"?location.origin:"";return n.filter(r=>this.passesClientAllowlist(r.name)).map(r=>{let s={name:r.name,description:r.description,origin:"webmcp",...o?{pageOrigin:o}:{}},a=L0(r.inputSchema);return a&&(s.parametersSchema=a),s})}async executeToolCall(t,n,o){if(await this.ensureReady(),this.config.enabled!==!0)return Ao("WebMCP is not enabled on this widget.");let r=this.getModelContext();if(!r){let C=typeof document<"u"&&!!document.modelContext;return Ao(C?"WebMCP is not operational: document.modelContext is present but does not expose the strict getTools()/executeTool() surface (likely a different or older WebMCP polyfill).":"WebMCP bridge is not operational on this page (document.modelContext not available).")}let s=P0(t),a;try{a=await r.getTools()}catch(C){let S=C instanceof Error?C.message:String(C);return Ao(`Failed to read WebMCP registry: ${S}`)}this.deps.recordToolDisplayTitles(a);let l=a.find(C=>C.name===s);if(!l)return Ao(`WebMCP tool not registered on this page: ${s}`);if(!this.passesClientAllowlist(s))return Ao(`WebMCP tool not allowed by client allowlist: ${s}`);if(o?.aborted)return Ao("Aborted by cancel()");let d=this.deps.getToolDisplayTitle(s),p={toolName:s,args:n,description:l.description,...d?{title:d}:{},reason:"gate"};if(!await this.requestConfirm(p))return Ao("User declined the tool call.");if(o?.aborted)return Ao("Aborted by cancel()");let u=new AbortController,m=!1,y=setTimeout(()=>{m=!0,u.abort()},this.timeoutMs),h=()=>u.abort();o&&(o.aborted?u.abort():o.addEventListener("abort",h,{once:!0}));try{let C=await r.executeTool(l,W0(n),{signal:u.signal});return I0(C)}catch(C){if(m)return Ao(`WebMCP tool '${s}' timed out after ${this.timeoutMs}ms`);if(o?.aborted)return Ao("Aborted by cancel()");let S=C instanceof Error?C.message:String(C);return Ao(S)}finally{clearTimeout(y),o&&o.removeEventListener("abort",h)}}ensureReady(){return this.config.enabled!==!0?Promise.resolve():(this.readyPromise||(this.readyPromise=this.install()),this.readyPromise)}async install(){try{if(this.getModelContext()){this.installed=!0;return}(await this.deps.loadPolyfill()).initializeWebMCPPolyfill(),this.installed=!0}catch(t){Yp.warn("Failed to load @mcp-b/webmcp-polyfill: WebMCP consumption disabled.",t),this.installed=!1}}getModelContext(){if(typeof document>"u")return null;let t=document.modelContext;if(!t||typeof t!="object")return null;let n=t;return typeof n.getTools!="function"||typeof n.executeTool!="function"?(this.incompatibleContextWarned||(this.incompatibleContextWarned=!0,Yp.warn("document.modelContext is present but does not expose getTools()/executeTool(): WebMCP consumption is disabled. Another (incompatible or older) WebMCP polyfill likely installed document.modelContext before Persona. Remove it, or use a polyfill implementing the strict standard surface (e.g. @mcp-b/webmcp-polyfill).")),null):t}async requestConfirm(t){let n=this.confirmHandler??R0;try{return await n(t)}catch(o){return Yp.warn(`Confirm handler threw for WebMCP tool '${t.toolName}'; declining.`,o),!1}}passesClientAllowlist(t){let n=this.config.allowlist;return!n||n.length===0?!0:n.some(o=>k0(t,o))}},k0=(e,t)=>{if(t==="*")return!0;let n=t.replace(/[.+?^${}()|[\]\\]/g,"\\$&");return new RegExp("^"+n.replace(/\*/g,".*")+"$").test(e)},L0=e=>{if(!(e===void 0||e===""))try{let t=JSON.parse(e);return t!==null&&typeof t=="object"?t:void 0}catch{return}},I0=e=>{if(e==null)return{content:[{type:"text",text:""}]};let t;try{t=JSON.parse(e)}catch{return{content:[{type:"text",text:e}]}}return t!==null&&typeof t=="object"&&Array.isArray(t.content)?t:{content:[{type:"text",text:typeof t=="string"?t:O0(t)}]}},Ao=e=>({isError:!0,content:[{type:"text",text:e}]}),R0=async e=>{if(typeof window>"u"||typeof window.confirm!="function")return!1;let t=H0(e.args),n=`Allow the AI to call ${e.toolName}`+(t?`
475
475
 
476
476
  Arguments:
477
477
  ${t}`:"")+(e.description?`
478
478
 
479
- ${e.description}`:"");return window.confirm(n)},k0=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)}},L0=e=>{if(e===void 0)return"{}";try{let t=JSON.stringify(e);return t===void 0?"{}":t}catch{return"{}"}},I0=e=>{if(e===void 0)return"";try{return JSON.stringify(e)}catch{return String(e)}};var Xp=class extends Yp{constructor(t){super(t,{recordToolDisplayTitles:pd,getToolDisplayTitle:Oi,loadPolyfill:ud})}};function R0(e,t){if(!e)return!0;let n=0;for(let o=0;o<t.length&&n<e.length;o++)t[o]===e[n]&&n++;return n===e.length}function H0(e,t){let n=e.toLowerCase(),o=t.toLowerCase();return n.startsWith(o)?0:e.replace(/([a-z])([A-Z])/g,"$1 $2").split(/[\s\-_/.]+/).some(s=>s.toLowerCase().startsWith(o))?1:R0(o,n)?2:3}function OS(e,t){let n=e.recencyScore??0,o=t.recencyScore??0;return o!==n?o-n:e.label.localeCompare(t.label)}function Jp(e,t){let n=t.trim();if(!n)return[...e].sort(OS);let o=[];for(let r of e){let s=H0(r.label,n);s!==3&&o.push({item:r,tier:s})}return o.sort((r,s)=>r.tier!==s.tier?r.tier-s.tier:OS(r.item,s.item)),o.map(r=>r.item)}function W0(e){let t=e.replace(/^\s+/,""),n=t.search(/\s/);return n===-1?{name:t,args:""}:{name:t.slice(0,n),args:t.slice(n+1).trim()}}function BS(e){return{id:e.id,label:e.label,resolveOn:e.resolveOn,search:t=>Jp(e.items,t),resolve:e.resolve}}function _S(e){let t=e.commands.map(r=>({id:r.name,label:r.name,description:r.description,iconName:r.iconName,command:r.kind??"prompt",insertMode:r.insertMode,submitOnSelect:r.submitOnSelect,action:r.action,commandArgsPlaceholder:r.argsPlaceholder})),n=new Map(e.commands.map(r=>[r.name,r])),o=new Map(t.map(r=>[r.id,r]));return{id:e.id,label:e.label,matchCommand:r=>o.get(r),resolveOn:"submit",search:r=>Jp(t,W0(r).name),resolve:(r,s)=>{let a=n.get(r.id);return a?a.kind==="server"?{context:(typeof a.data=="function"?a.data(s.args):a.data)??{}}:{insertText:typeof a.prompt=="function"?a.prompt(s.args):a.prompt??""}:{}}}}function DS(e,t){let n=t.orientation??"horizontal",o=n==="vertical"?"ArrowUp":"ArrowLeft",r=n==="vertical"?"ArrowDown":"ArrowRight";e.setAttribute("role","tablist");let s=[],a=!1,l=m=>{typeof m.scrollIntoView=="function"&&m.scrollIntoView({block:"nearest",inline:"nearest"})},d=m=>{let y=m;return s.findIndex(h=>h===y||h.contains(y))},p=m=>{let y=d(m.target);if(y<0)return;let h=y;if(m.key===r)h=Math.min(y+1,s.length-1);else if(m.key===o)h=Math.max(y-1,0);else if(m.key==="Home")h=0;else if(m.key==="End")h=s.length-1;else return;m.preventDefault(),h!==y&&t.onSelect(h)},u=m=>{let y=d(m.target);y>=0&&l(s[y])};return e.addEventListener("keydown",p),e.addEventListener("focusin",u),{beforeRender(){a=typeof document<"u"&&e.contains(document.activeElement)},render(m,y){if(s=m,m.forEach((h,C)=>{h.setAttribute("role","tab");let x=C===y;h.setAttribute("aria-selected",x?"true":"false"),h.tabIndex=x||y<0&&C===0?0:-1}),a){let h=(y>=0?m[y]:void 0)??m[0];h&&typeof h.focus=="function"&&(l(h),h.focus())}},destroy(){e.removeEventListener("keydown",p),e.removeEventListener("focusin",u)}}}0&&(module.exports={ASK_USER_QUESTION_CLIENT_TOOL,ASK_USER_QUESTION_PARAMETERS_SCHEMA,ASK_USER_QUESTION_TOOL_NAME,AgentWidgetClient,AgentWidgetSession,AttachmentManager,BrowserSpeechEngine,DEFAULT_COMPONENTS,DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH,DEFAULT_FLOATING_LAUNCHER_WIDTH,DEFAULT_PALETTE,DEFAULT_SEMANTIC,DEFAULT_WIDGET_CONFIG,HistoryProviderError,PRESETS,PRESET_FULLSCREEN,PRESET_MINIMAL,PRESET_SHOP,ReadAloudController,SUGGEST_REPLIES_CLIENT_TOOL,SUGGEST_REPLIES_PARAMETERS_SCHEMA,SUGGEST_REPLIES_TOOL_NAME,THEME_ZONES,VERSION,WEBMCP_TOOL_PREFIX,WebMcpBridge,accessibilityPlugin,animationsPlugin,applyFeaturePreferences,applyThemeVariables,attachHeaderToContainer,brandPlugin,buildComposer,buildDefaultHeader,buildHeader,buildHeaderWithLayout,buildMinimalHeader,builtInClientToolsForDispatch,canonicalArtifactDisplayMode,collectEnrichedPageContext,componentRegistry,createActionManager,createAgentExperience,createAskUserQuestionBubble,createBestAvailableVoiceProvider,createBubbleWithLayout,createCSATFeedback,createComboButton,createComponentMiddleware,createComponentStreamParser,createDefaultSanitizer,createDemoCarousel,createDirectivePostprocessor,createDropdownMenu,createFlexibleJsonStreamParser,createIconButton,createImagePart,createJsonStreamParser,createLabelButton,createLocalStorageAdapter,createMarkdownProcessor,createMarkdownProcessorFromConfig,createMessageActions,createNPSFeedback,createPlainTextParser,createPlugin,createRegexJsonParser,createRovingTablist,createSlashCommandsSource,createSplitButton,createStandardBubble,createStaticMentionSource,createTextPart,createTheme,createThemeObserver,createToggleGroup,createTypingIndicator,createVoiceProvider,createWidgetHostLayout,createXmlParser,defaultActionHandlers,defaultJsonActionParser,defaultMentionFilter,defaultParseRules,detectColorScheme,directivePostprocessor,ensureAskUserQuestionSheet,escapeHtml,extractComponentDirectiveFromMessage,fileToImagePart,formatEnrichedContext,generateAssistantMessageId,generateCodeSnippet,generateMessageId,generateStableSelector,generateUserMessageId,getActiveTheme,getColorScheme,getDisplayText,getHeaderLayout,getImageParts,getPreset,hasComponentDirective,hasImages,headerLayouts,highContrastPlugin,initAgentWidget,isAskUserQuestionMessage,isComponentDirectiveType,isDockedMountMode,isHistoryProviderError,isSuggestRepliesMessage,isVoiceSupported,isWebMcpToolName,isWelcomeVisible,latestAgentSuggestions,listRegisteredStreamAnimations,loadMarkdownParsers,markdownPostprocessor,mergeWithDefaults,normalizeContent,normalizeMediaType,onMarkdownParsersReady,parseAskUserQuestionPayload,parseSuggestRepliesPayload,parseWidgetPreferenceSlice,pickBestVoice,pluginRegistry,reducedMotionPlugin,registerIcons,registerStreamAnimationPlugin,removeAskUserQuestionSheet,renderComponentDirective,renderLoadingIndicatorWithFallback,renderLucideIcon,resolveArtifactDisplay,resolveArtifactDisplayMode,resolveConfigPreferences,resolveDockConfig,resolveSanitizer,resolveTokens,resolveWelcomeConfig,stripWebMcpPrefix,themeToCssVariables,unregisterStreamAnimationPlugin,validateImageFile,validateTheme});
479
+ ${e.description}`:"");return window.confirm(n)},H0=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)}},W0=e=>{if(e===void 0)return"{}";try{let t=JSON.stringify(e);return t===void 0?"{}":t}catch{return"{}"}},O0=e=>{if(e===void 0)return"";try{return JSON.stringify(e)}catch{return String(e)}};var Jp=class extends Xp{constructor(t){super(t,{recordToolDisplayTitles:ud,getToolDisplayTitle:Fi,loadPolyfill:gd})}};function B0(e,t){if(!e)return!0;let n=0;for(let o=0;o<t.length&&n<e.length;o++)t[o]===e[n]&&n++;return n===e.length}function _0(e,t){let n=e.toLowerCase(),o=t.toLowerCase();return n.startsWith(o)?0:e.replace(/([a-z])([A-Z])/g,"$1 $2").split(/[\s\-_/.]+/).some(s=>s.toLowerCase().startsWith(o))?1:B0(o,n)?2:3}function DS(e,t){let n=e.recencyScore??0,o=t.recencyScore??0;return o!==n?o-n:e.label.localeCompare(t.label)}function Zp(e,t){let n=t.trim();if(!n)return[...e].sort(DS);let o=[];for(let r of e){let s=_0(r.label,n);s!==3&&o.push({item:r,tier:s})}return o.sort((r,s)=>r.tier!==s.tier?r.tier-s.tier:DS(r.item,s.item)),o.map(r=>r.item)}function D0(e){let t=e.replace(/^\s+/,""),n=t.search(/\s/);return n===-1?{name:t,args:""}:{name:t.slice(0,n),args:t.slice(n+1).trim()}}function NS(e){return{id:e.id,label:e.label,resolveOn:e.resolveOn,search:t=>Zp(e.items,t),resolve:e.resolve}}function FS(e){let t=e.commands.map(r=>({id:r.name,label:r.name,description:r.description,iconName:r.iconName,command:r.kind??"prompt",insertMode:r.insertMode,submitOnSelect:r.submitOnSelect,action:r.action,commandArgsPlaceholder:r.argsPlaceholder})),n=new Map(e.commands.map(r=>[r.name,r])),o=new Map(t.map(r=>[r.id,r]));return{id:e.id,label:e.label,matchCommand:r=>o.get(r),resolveOn:"submit",search:r=>Zp(t,D0(r).name),resolve:(r,s)=>{let a=n.get(r.id);return a?a.kind==="server"?{context:(typeof a.data=="function"?a.data(s.args):a.data)??{}}:{insertText:typeof a.prompt=="function"?a.prompt(s.args):a.prompt??""}:{}}}}function $S(e,t){let n=t.orientation??"horizontal",o=n==="vertical"?"ArrowUp":"ArrowLeft",r=n==="vertical"?"ArrowDown":"ArrowRight";e.setAttribute("role","tablist");let s=[],a=!1,l=m=>{typeof m.scrollIntoView=="function"&&m.scrollIntoView({block:"nearest",inline:"nearest"})},d=m=>{let y=m;return s.findIndex(h=>h===y||h.contains(y))},p=m=>{let y=d(m.target);if(y<0)return;let h=y;if(m.key===r)h=Math.min(y+1,s.length-1);else if(m.key===o)h=Math.max(y-1,0);else if(m.key==="Home")h=0;else if(m.key==="End")h=s.length-1;else return;m.preventDefault(),h!==y&&t.onSelect(h)},u=m=>{let y=d(m.target);y>=0&&l(s[y])};return e.addEventListener("keydown",p),e.addEventListener("focusin",u),{beforeRender(){a=typeof document<"u"&&e.contains(document.activeElement)},render(m,y){if(s=m,m.forEach((h,C)=>{h.setAttribute("role","tab");let S=C===y;h.setAttribute("aria-selected",S?"true":"false"),h.tabIndex=S||y<0&&C===0?0:-1}),a){let h=(y>=0?m[y]:void 0)??m[0];h&&typeof h.focus=="function"&&(l(h),h.focus())}},destroy(){e.removeEventListener("keydown",p),e.removeEventListener("focusin",u)}}}0&&(module.exports={ASK_USER_QUESTION_CLIENT_TOOL,ASK_USER_QUESTION_PARAMETERS_SCHEMA,ASK_USER_QUESTION_TOOL_NAME,AgentWidgetClient,AgentWidgetSession,AttachmentManager,BrowserSpeechEngine,DEFAULT_COMPONENTS,DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH,DEFAULT_FLOATING_LAUNCHER_WIDTH,DEFAULT_PALETTE,DEFAULT_SEMANTIC,DEFAULT_WIDGET_CONFIG,HistoryProviderError,PRESETS,PRESET_FULLSCREEN,PRESET_MINIMAL,PRESET_SHOP,ReadAloudController,SUGGEST_REPLIES_CLIENT_TOOL,SUGGEST_REPLIES_PARAMETERS_SCHEMA,SUGGEST_REPLIES_TOOL_NAME,THEME_ZONES,VERSION,WEBMCP_TOOL_PREFIX,WebMcpBridge,accessibilityPlugin,animationsPlugin,applyFeaturePreferences,applyThemeVariables,attachHeaderToContainer,brandPlugin,buildComposer,buildDefaultHeader,buildHeader,buildHeaderWithLayout,buildMinimalHeader,builtInClientToolsForDispatch,canonicalArtifactDisplayMode,collectEnrichedPageContext,componentRegistry,createActionManager,createAgentExperience,createAskUserQuestionBubble,createBestAvailableVoiceProvider,createBubbleWithLayout,createCSATFeedback,createComboButton,createComponentMiddleware,createComponentStreamParser,createDefaultSanitizer,createDemoCarousel,createDirectivePostprocessor,createDropdownMenu,createFlexibleJsonStreamParser,createIconButton,createImagePart,createJsonStreamParser,createLabelButton,createLocalStorageAdapter,createMarkdownProcessor,createMarkdownProcessorFromConfig,createMessageActions,createNPSFeedback,createPlainTextParser,createPlugin,createRegexJsonParser,createRovingTablist,createSlashCommandsSource,createSplitButton,createStandardBubble,createStaticMentionSource,createTextPart,createTheme,createThemeObserver,createToggleGroup,createTypingIndicator,createVoiceProvider,createWidgetHostLayout,createXmlParser,defaultActionHandlers,defaultJsonActionParser,defaultMentionFilter,defaultParseRules,detectColorScheme,directivePostprocessor,ensureAskUserQuestionSheet,escapeHtml,extractComponentDirectiveFromMessage,fileToImagePart,formatEnrichedContext,generateAssistantMessageId,generateCodeSnippet,generateMessageId,generateStableSelector,generateUserMessageId,getActiveTheme,getColorScheme,getDisplayText,getHeaderLayout,getImageParts,getPreset,hasComponentDirective,hasImages,headerLayouts,highContrastPlugin,initAgentWidget,isAskUserQuestionMessage,isComponentDirectiveType,isDockedMountMode,isHistoryProviderError,isSuggestRepliesMessage,isVoiceSupported,isWebMcpToolName,isWelcomeVisible,latestAgentSuggestions,listRegisteredStreamAnimations,loadMarkdownParsers,markdownPostprocessor,mergeWithDefaults,normalizeContent,normalizeMediaType,onMarkdownParsersReady,parseAskUserQuestionPayload,parseSuggestRepliesPayload,parseWidgetPreferenceSlice,pickBestVoice,pluginRegistry,reducedMotionPlugin,registerIcons,registerStreamAnimationPlugin,removeAskUserQuestionSheet,renderComponentDirective,renderLoadingIndicatorWithFallback,renderLucideIcon,resolveArtifactDisplay,resolveArtifactDisplayMode,resolveConfigPreferences,resolveDockConfig,resolveSanitizer,resolveTokens,resolveWelcomeConfig,stripWebMcpPrefix,themeToCssVariables,unregisterStreamAnimationPlugin,validateImageFile,validateTheme});
480
480
  //# sourceMappingURL=index.cjs.map