@runtypelabs/persona 4.15.0 → 4.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.js +1 -1
- package/dist/context-mentions.d.cts +283 -9
- package/dist/context-mentions.d.ts +283 -9
- package/dist/index.cjs +68 -68
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +299 -10
- package/dist/index.d.ts +299 -10
- package/dist/index.global.js +57 -57
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +69 -69
- package/dist/index.js.map +1 -1
- package/dist/launcher.global.js +2 -2
- package/dist/launcher.global.js.map +1 -1
- package/dist/smart-dom-reader.d.cts +283 -9
- package/dist/smart-dom-reader.d.ts +283 -9
- package/dist/testing.cjs +3 -3
- package/dist/testing.d.cts +7 -0
- package/dist/testing.d.ts +7 -0
- package/dist/testing.js +3 -3
- package/dist/theme-editor-preview.cjs +64 -64
- package/dist/theme-editor-preview.d.cts +283 -9
- package/dist/theme-editor-preview.d.ts +283 -9
- package/dist/theme-editor-preview.js +56 -56
- package/dist/theme-editor.cjs +10 -10
- package/dist/theme-editor.d.cts +283 -10
- package/dist/theme-editor.d.ts +283 -10
- package/dist/theme-editor.js +10 -10
- package/dist/theme-reference.cjs +1 -1
- package/dist/theme-reference.d.cts +66 -3
- package/dist/theme-reference.d.ts +66 -3
- package/dist/theme-reference.js +1 -1
- package/dist/widget.css +1 -1
- package/package.json +1 -1
- package/src/components/artifact-pane.test.ts +27 -0
- package/src/components/artifact-pane.ts +7 -3
- package/src/components/header-builder.ts +27 -2
- package/src/components/header-layouts.test.ts +56 -0
- package/src/components/header-layouts.ts +29 -9
- package/src/components/launcher-surface.test.ts +403 -0
- package/src/components/launcher.ts +297 -2
- package/src/components/panel.ts +69 -74
- package/src/components/suggestions.test.ts +40 -0
- package/src/components/suggestions.ts +213 -153
- package/src/components/welcome.test.ts +121 -0
- package/src/components/welcome.ts +305 -0
- package/src/components/widget-view.test.ts +5 -3
- package/src/components/widget-view.ts +14 -7
- package/src/defaults.ts +2 -2
- package/src/index-core.ts +12 -1
- package/src/launcher-global.ts +10 -7
- package/src/plugins/types.ts +66 -1
- package/src/styles/widget-styles.test.ts +220 -0
- package/src/styles/widget.css +353 -9
- package/src/testing/mock-stream.test.ts +19 -0
- package/src/testing/mock-stream.ts +20 -0
- package/src/theme-editor/sections.ts +30 -1
- package/src/theme-reference.ts +26 -4
- package/src/types/theme.ts +40 -3
- package/src/types.ts +164 -6
- package/src/ui.body-top-slot.test.ts +95 -0
- package/src/ui.content-width.test.ts +91 -0
- package/src/ui.docked.test.ts +7 -4
- package/src/ui.launcher-teaser.test.ts +162 -0
- package/src/ui.rebuild-composer.test.ts +491 -0
- package/src/ui.render-welcome.test.ts +505 -0
- package/src/ui.scroll-additive.test.ts +91 -21
- package/src/ui.scroll.test.ts +302 -14
- package/src/ui.suggest-replies.test.ts +46 -0
- package/src/ui.ts +747 -136
- package/src/ui.welcome.test.ts +504 -0
- package/src/utils/artifact-gate.test.ts +27 -0
- package/src/utils/artifact-gate.ts +9 -0
- package/src/utils/attachment-manager.test.ts +37 -0
- package/src/utils/attachment-manager.ts +15 -0
- package/src/utils/auto-follow.test.ts +23 -0
- package/src/utils/auto-follow.ts +11 -1
- package/src/utils/config-merge.ts +2 -0
- package/src/utils/content-width.test.ts +37 -0
- package/src/utils/content-width.ts +17 -0
- package/src/utils/plugin-storage.test.ts +94 -0
- package/src/utils/plugin-storage.ts +98 -0
- package/src/utils/theme.test.ts +137 -0
- package/src/utils/tokens.ts +49 -3
- package/src/welcome.test.ts +213 -0
- package/src/welcome.ts +130 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
"use strict";var rh=Object.create;var Ti=Object.defineProperty;var sh=Object.getOwnPropertyDescriptor;var ih=Object.getOwnPropertyNames;var ah=Object.getPrototypeOf,lh=Object.prototype.hasOwnProperty;var ht=(t,e)=>()=>(t&&(e=t(t=0)),e);var ar=(t,e)=>{for(var n in e)Ti(t,n,{get:e[n],enumerable:!0})},bp=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ih(e))!lh.call(t,r)&&r!==n&&Ti(t,r,{get:()=>e[r],enumerable:!(o=sh(e,r))||o.enumerable});return t};var vp=(t,e,n)=>(n=t!=null?rh(ah(t)):{},bp(e||!t||!t.__esModule?Ti(n,"default",{value:t,enumerable:!0}):n,t)),ch=t=>bp(Ti({},"__esModule",{value:!0}),t);var wp={};ar(wp,{DOMPurify:()=>Cp.default,Marked:()=>xp.Marked});var xp,Cp,Ap=ht(()=>{"use strict";xp=require("marked"),Cp=vp(require("dompurify"),1)});var v,Fp,Ce,Vn,Je=ht(()=>{"use strict";v=(t,e)=>{let n=document.createElement(t);return e&&(n.className=e),n},Fp=()=>document.createDocumentFragment(),Ce=(t,e={},...n)=>{let o=document.createElement(t);if(e.className&&(o.className=e.className),e.text!==void 0&&(o.textContent=e.text),e.attrs)for(let[s,i]of Object.entries(e.attrs))o.setAttribute(s,i);if(e.style){let s=o.style,i=e.style;for(let l of Object.keys(i)){let p=i[l];p!=null&&(s[l]=p)}}let r=n.filter(s=>s!=null);return r.length>0&&o.append(...r),o},Vn=(...t)=>t.filter(Boolean).join(" ")});var br,Bl=ht(()=>{"use strict";br=class{constructor(e=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=e;let o=Math.max(0,n.prebufferMs??0);this.waterlineSamples=Math.round(e*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 e=this.ctx;return e.state==="suspended"&&!this.userPaused&&e.resume(),e}enqueue(e){if(e.length===0)return;let n=e;if(this.remainder){let r=new Uint8Array(this.remainder.length+e.length);r.set(this.remainder),r.set(e,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 e of this.activeSources)try{e.stop(),e.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(e){this.finishedCallbacks.push(e)}onStarted(e){this.startedCallbacks.push(e)}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 e=this.pendingBuffers;this.pendingBuffers=[],this.pendingSamples=0;for(let n of e)this.scheduleSamples(n)}scheduleSamples(e){if(e.length===0)return;let n=this.ensureContext(),o=n.createBuffer(1,e.length,this.sampleRate);o.getChannelData(0).set(e);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 i=this.startedCallbacks.slice();this.startedCallbacks=[];for(let l of i)l()}r.onended=()=>{let i=this.activeSources.indexOf(r);i!==-1&&this.activeSources.splice(i,1),this.pendingCount--,this.checkFinished()}}checkFinished(){if(this.streamEnded&&this.pendingCount<=0&&this.pendingBuffers.length===0){this.playing=!1,this.streamEnded=!1;let e=this.finishedCallbacks.slice();this.finishedCallbacks=[];for(let n of e)n()}}pcmToFloat32(e){let n=Math.floor(e.length/2),o=new Float32Array(n),r=new DataView(e.buffer,e.byteOffset,e.byteLength);for(let s=0;s<n;s++){let i=r.getInt16(s*2,!0);o[s]=i/32768}return o}}});function wy(t){return t.replace(/\/+$/,"")}async function Ay(t){try{let e=await t.json();return e.detail?`${e.error??`Runtype TTS ${t.status}`}: ${e.detail}`:e.error??`Runtype TTS request failed (${t.status})`}catch{return`Runtype TTS request failed (${t.status})`}}var Vi,yu=ht(()=>{"use strict";Bl();Vi=class{constructor(e){this.opts=e;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 br(24e3,{prebufferMs:this.opts.prebufferMs??200})).then(e=>this.player=e))}speak(e,n){let o=++this.generation;this.run(o,e,n)}async run(e,n,o){try{let r=await this.ensurePlayer();if(e!==this.generation)return;r.flush(),r.resume(),r.onStarted(()=>{e===this.generation&&o.onStart?.()}),r.onFinished(()=>{e===this.generation&&o.onEnd?.()});let s=`${wy(this.opts.host)}/v1/agents/${encodeURIComponent(this.opts.agentId)}/speak`,i=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(e!==this.generation)return;if(!i.ok||!i.body)throw new Error(await Ay(i));let l=i.body.getReader();for(;;){let{done:p,value:c}=await l.read();if(e!==this.generation){await l.cancel().catch(()=>{});return}if(p)break;c&&c.byteLength>0&&r.enqueue(c)}r.markStreamEnd()}catch(r){if(e!==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 qi,bu=ht(()=>{"use strict";qi=class{constructor(e,n,o={}){this.primary=e;this.fallback=n;this.options=o;this.id="fallback";this.active=e}get supportsPause(){return this.active.supportsPause}speak(e,n){this.active=this.primary;let o=!1;this.primary.speak(e,{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(e,n)}})}pause(){this.active.pause()}resume(){this.active.resume()}stop(){this.active.stop()}destroy(){this.primary.destroy?.(),this.fallback.destroy?.()}}});var vu={};ar(vu,{FallbackSpeechEngine:()=>qi,RuntypeSpeechEngine:()=>Vi});var xu=ht(()=>{"use strict";yu();bu()});var wu={};ar(wu,{createReconnectController:()=>My});function My(t){let e=0,n=null,o=null,r=!1,s=()=>{if(o&&(clearTimeout(o),o=null),n){let h=n;n=null,h()}},i=()=>{let h=t.getStatus();h!=="resuming"&&h!=="paused"||s()},l=()=>{typeof document<"u"&&document.visibilityState==="hidden"||i()},p=()=>{i()},c=()=>{r||(typeof document<"u"&&document.addEventListener("visibilitychange",l),typeof window<"u"&&window.addEventListener("online",p),r=!0)},d=()=>{r&&(typeof document<"u"&&document.removeEventListener("visibilitychange",l),typeof window<"u"&&window.removeEventListener("online",p),r=!1)},u=h=>new Promise(C=>{n=C,o=setTimeout(()=>{o=null,n=null,C()},h)}),b=()=>{let h=t.getResumable();t.clearResumable(),t.setReconnecting(!1),e=0,d(),t.setAbortController(null);let C=!1;for(let B of t.getMessages())B.streaming&&(B.streaming=!1,C=!0);let L=t.buildErrorContent("Connection lost and the response could not be resumed.");L?t.appendMessage({id:`reconnect-failed-${h?.executionId??t.nextSequence()}`,role:"assistant",content:L,createdAt:new Date().toISOString(),streaming:!1,sequence:t.nextSequence()}):C&&t.notifyMessagesChanged(),t.setStreaming(!1),t.setStatus("idle"),t.onError(new Error("Durable session reconnect failed."))},g=async()=>{let h=t.config.reconnect?.backoffMs??Sy,C=t.config.reconnect?.maxAttempts??h.length,L=t.config.reconnectStream;if(!L){t.setReconnecting(!1);return}for(;t.getResumable()&&e<C;){e+=1,t.setStatus("resuming");let B=t.getResumable(),k=B.lastEventId,S=new AbortController;t.setAbortController(S),t.emitReconnect({phase:"resuming",handle:B,attempt:e});let E=null;try{let z=await L({executionId:B.executionId,after:B.lastEventId,signal:S.signal});z&&z.ok&&z.body&&(E=z.body)}catch{E=null}if(S.signal.aborted)return;if(E){let z=t.getMessages().find(A=>A.id===B.assistantMessageId)?.content,G=typeof z=="string"?z:"";try{await t.resumeConnect(E,B.assistantMessageId,G)}catch{}if(S.signal.aborted)return;if(!t.getResumable()){t.setReconnecting(!1),e=0,d(),t.emitReconnect({phase:"resumed",handle:B});return}t.getResumable().lastEventId!==k&&(e=0)}if(t.getResumable()&&e<C&&(t.setStatus("paused"),await u(h[Math.min(e-1,h.length-1)]??1e3),S.signal.aborted))return}t.getResumable()&&b()};return{begin(){e=0,c(),g()},teardown(){o&&(clearTimeout(o),o=null),n=null,e=0,d()},wake:s}}var Sy,Au=ht(()=>{"use strict";Sy=[1e3,2e3,4e3,8e3,8e3]});function Ly(t,e,n,o){if(!Array.isArray(t))return null;let r=document.createElementNS("http://www.w3.org/2000/svg","svg");return r.setAttribute("width",String(e)),r.setAttribute("height",String(e)),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"),t.forEach(s=>{if(!Array.isArray(s)||s.length<2)return;let i=s[0],l=s[1];if(!l)return;let p=document.createElementNS("http://www.w3.org/2000/svg",i);Object.entries(l).forEach(([c,d])=>{c!=="stroke"&&p.setAttribute(c,String(d))}),r.appendChild(p)}),r}var M,ky,ae,wt=ht(()=>{"use strict";M=require("lucide"),ky={activity:M.Activity,"arrow-down":M.ArrowDown,"arrow-up":M.ArrowUp,"arrow-up-right":M.ArrowUpRight,bot:M.Bot,"chevron-down":M.ChevronDown,"chevron-up":M.ChevronUp,"chevron-right":M.ChevronRight,"chevron-left":M.ChevronLeft,check:M.Check,clipboard:M.Clipboard,"clipboard-copy":M.ClipboardCopy,"code-xml":M.CodeXml,copy:M.Copy,file:M.File,"file-code":M.FileCode,"file-spreadsheet":M.FileSpreadsheet,"file-text":M.FileText,"image-plus":M.ImagePlus,loader:M.Loader,"loader-circle":M.LoaderCircle,mic:M.Mic,paperclip:M.Paperclip,"refresh-cw":M.RefreshCw,search:M.Search,send:M.Send,"shield-alert":M.ShieldAlert,"shield-check":M.ShieldCheck,"shield-x":M.ShieldX,square:M.Square,"thumbs-down":M.ThumbsDown,"thumbs-up":M.ThumbsUp,upload:M.Upload,"volume-2":M.Volume2,x:M.X,user:M.User,mail:M.Mail,phone:M.Phone,calendar:M.Calendar,clock:M.Clock,building:M.Building,"map-pin":M.MapPin,lock:M.Lock,key:M.Key,"credit-card":M.CreditCard,"at-sign":M.AtSign,hash:M.Hash,globe:M.Globe,link:M.Link,"circle-check":M.CircleCheck,"circle-x":M.CircleX,"triangle-alert":M.TriangleAlert,info:M.Info,ban:M.Ban,shield:M.Shield,"arrow-left":M.ArrowLeft,"arrow-right":M.ArrowRight,"external-link":M.ExternalLink,ellipsis:M.Ellipsis,"ellipsis-vertical":M.EllipsisVertical,menu:M.Menu,house:M.House,plus:M.Plus,minus:M.Minus,pencil:M.Pencil,"pen-line":M.PenLine,trash:M.Trash,"trash-2":M.Trash2,save:M.Save,download:M.Download,share:M.Share,funnel:M.Funnel,settings:M.Settings,"rotate-cw":M.RotateCw,maximize:M.Maximize,minimize:M.Minimize,"shopping-cart":M.ShoppingCart,"shopping-bag":M.ShoppingBag,package:M.Package,truck:M.Truck,tag:M.Tag,gift:M.Gift,receipt:M.Receipt,wallet:M.Wallet,store:M.Store,"dollar-sign":M.DollarSign,percent:M.Percent,play:M.Play,pause:M.Pause,"volume-x":M.VolumeX,camera:M.Camera,image:M.Image,film:M.Film,headphones:M.Headphones,"message-circle":M.MessageCircle,"message-square":M.MessageSquare,bell:M.Bell,heart:M.Heart,star:M.Star,eye:M.Eye,"eye-off":M.EyeOff,bookmark:M.Bookmark,"calendar-days":M.CalendarDays,history:M.History,timer:M.Timer,folder:M.Folder,"folder-open":M.FolderOpen,files:M.Files,"chart-column":M.ChartColumn,sparkles:M.Sparkles,zap:M.Zap,sun:M.Sun,moon:M.Moon,flag:M.Flag,lightbulb:M.Lightbulb,monitor:M.Monitor,smartphone:M.Smartphone},ae=(t,e=24,n="currentColor",o=2)=>{let r=ky[t];return r?Ly(r,e,n,o):(console.warn(`Lucide icon "${t}" is not in the Persona registry. Add it to packages/widget/src/utils/icons.ts (see docs/icon-registry-shortlist.md).`),null)}});function Ry(t,e,n){if(n==="input-start")return e===0;let o=e>0?t[e-1]:"";return n==="line-start"?o===""||o===`
|
|
2
|
-
`:o===""||
|
|
3
|
-
`||i==="\uFFFC"||!r&&
|
|
4
|
-
`)){let o=/^ {0,3}(`+)/.exec(n);o&&o[1].length>e&&(e=o[1].length)}return e}function
|
|
1
|
+
"use strict";var wb=Object.create;var qi=Object.defineProperty;var Cb=Object.getOwnPropertyDescriptor;var Ab=Object.getOwnPropertyNames;var Sb=Object.getPrototypeOf,Mb=Object.prototype.hasOwnProperty;var ht=(t,e)=>()=>(t&&(e=t(t=0)),e);var Tr=(t,e)=>{for(var n in e)qi(t,n,{get:e[n],enumerable:!0})},bu=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ab(e))!Mb.call(t,r)&&r!==n&&qi(t,r,{get:()=>e[r],enumerable:!(o=Cb(e,r))||o.enumerable});return t};var yu=(t,e,n)=>(n=t!=null?wb(Sb(t)):{},bu(e||!t||!t.__esModule?qi(n,"default",{value:t,enumerable:!0}):n,t)),Tb=t=>bu(qi({},"__esModule",{value:!0}),t);var wu={};Tr(wu,{DOMPurify:()=>xu.default,Marked:()=>vu.Marked});var vu,xu,Cu=ht(()=>{"use strict";vu=require("marked"),xu=yu(require("dompurify"),1)});var v,Nu,ye,Bn,Ye=ht(()=>{"use strict";v=(t,e)=>{let n=document.createElement(t);return e&&(n.className=e),n},Nu=()=>document.createDocumentFragment(),ye=(t,e={},...n)=>{let o=document.createElement(t);if(e.className&&(o.className=e.className),e.text!==void 0&&(o.textContent=e.text),e.attrs)for(let[s,i]of Object.entries(e.attrs))o.setAttribute(s,i);if(e.style){let s=o.style,i=e.style;for(let l of Object.keys(i)){let p=i[l];p!=null&&(s[l]=p)}}let r=n.filter(s=>s!=null);return r.length>0&&o.append(...r),o},Bn=(...t)=>t.filter(Boolean).join(" ")});var Or,yc=ht(()=>{"use strict";Or=class{constructor(e=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=e;let o=Math.max(0,n.prebufferMs??0);this.waterlineSamples=Math.round(e*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 e=this.ctx;return e.state==="suspended"&&!this.userPaused&&e.resume(),e}enqueue(e){if(e.length===0)return;let n=e;if(this.remainder){let r=new Uint8Array(this.remainder.length+e.length);r.set(this.remainder),r.set(e,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 e of this.activeSources)try{e.stop(),e.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(e){this.finishedCallbacks.push(e)}onStarted(e){this.startedCallbacks.push(e)}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 e=this.pendingBuffers;this.pendingBuffers=[],this.pendingSamples=0;for(let n of e)this.scheduleSamples(n)}scheduleSamples(e){if(e.length===0)return;let n=this.ensureContext(),o=n.createBuffer(1,e.length,this.sampleRate);o.getChannelData(0).set(e);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 i=this.startedCallbacks.slice();this.startedCallbacks=[];for(let l of i)l()}r.onended=()=>{let i=this.activeSources.indexOf(r);i!==-1&&this.activeSources.splice(i,1),this.pendingCount--,this.checkFinished()}}checkFinished(){if(this.streamEnded&&this.pendingCount<=0&&this.pendingBuffers.length===0){this.playing=!1,this.streamEnded=!1;let e=this.finishedCallbacks.slice();this.finishedCallbacks=[];for(let n of e)n()}}pcmToFloat32(e){let n=Math.floor(e.length/2),o=new Float32Array(n),r=new DataView(e.buffer,e.byteOffset,e.byteLength);for(let s=0;s<n;s++){let i=r.getInt16(s*2,!0);o[s]=i/32768}return o}}});function Fy(t){return t.replace(/\/+$/,"")}async function _y(t){try{let e=await t.json();return e.detail?`${e.error??`Runtype TTS ${t.status}`}: ${e.detail}`:e.error??`Runtype TTS request failed (${t.status})`}catch{return`Runtype TTS request failed (${t.status})`}}var pa,hg=ht(()=>{"use strict";yc();pa=class{constructor(e){this.opts=e;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 Or(24e3,{prebufferMs:this.opts.prebufferMs??200})).then(e=>this.player=e))}speak(e,n){let o=++this.generation;this.run(o,e,n)}async run(e,n,o){try{let r=await this.ensurePlayer();if(e!==this.generation)return;r.flush(),r.resume(),r.onStarted(()=>{e===this.generation&&o.onStart?.()}),r.onFinished(()=>{e===this.generation&&o.onEnd?.()});let s=`${Fy(this.opts.host)}/v1/agents/${encodeURIComponent(this.opts.agentId)}/speak`,i=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(e!==this.generation)return;if(!i.ok||!i.body)throw new Error(await _y(i));let l=i.body.getReader();for(;;){let{done:p,value:c}=await l.read();if(e!==this.generation){await l.cancel().catch(()=>{});return}if(p)break;c&&c.byteLength>0&&r.enqueue(c)}r.markStreamEnd()}catch(r){if(e!==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 ua,bg=ht(()=>{"use strict";ua=class{constructor(e,n,o={}){this.primary=e;this.fallback=n;this.options=o;this.id="fallback";this.active=e}get supportsPause(){return this.active.supportsPause}speak(e,n){this.active=this.primary;let o=!1;this.primary.speak(e,{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(e,n)}})}pause(){this.active.pause()}resume(){this.active.resume()}stop(){this.active.stop()}destroy(){this.primary.destroy?.(),this.fallback.destroy?.()}}});var yg={};Tr(yg,{FallbackSpeechEngine:()=>ua,RuntypeSpeechEngine:()=>pa});var vg=ht(()=>{"use strict";hg();bg()});var wg={};Tr(wg,{createReconnectController:()=>zy});function zy(t){let e=0,n=null,o=null,r=!1,s=()=>{if(o&&(clearTimeout(o),o=null),n){let y=n;n=null,y()}},i=()=>{let y=t.getStatus();y!=="resuming"&&y!=="paused"||s()},l=()=>{typeof document<"u"&&document.visibilityState==="hidden"||i()},p=()=>{i()},c=()=>{r||(typeof document<"u"&&document.addEventListener("visibilitychange",l),typeof window<"u"&&window.addEventListener("online",p),r=!0)},d=()=>{r&&(typeof document<"u"&&document.removeEventListener("visibilitychange",l),typeof window<"u"&&window.removeEventListener("online",p),r=!1)},g=y=>new Promise(C=>{n=C,o=setTimeout(()=>{o=null,n=null,C()},y)}),b=()=>{let y=t.getResumable();t.clearResumable(),t.setReconnecting(!1),e=0,d(),t.setAbortController(null);let C=!1;for(let I of t.getMessages())I.streaming&&(I.streaming=!1,C=!0);let M=t.buildErrorContent("Connection lost and the response could not be resumed.");M?t.appendMessage({id:`reconnect-failed-${y?.executionId??t.nextSequence()}`,role:"assistant",content:M,createdAt:new Date().toISOString(),streaming:!1,sequence:t.nextSequence()}):C&&t.notifyMessagesChanged(),t.setStreaming(!1),t.setStatus("idle"),t.onError(new Error("Durable session reconnect failed."))},f=async()=>{let y=t.config.reconnect?.backoffMs??$y,C=t.config.reconnect?.maxAttempts??y.length,M=t.config.reconnectStream;if(!M){t.setReconnecting(!1);return}for(;t.getResumable()&&e<C;){e+=1,t.setStatus("resuming");let I=t.getResumable(),S=I.lastEventId,E=new AbortController;t.setAbortController(E),t.emitReconnect({phase:"resuming",handle:I,attempt:e});let L=null;try{let D=await M({executionId:I.executionId,after:I.lastEventId,signal:E.signal});D&&D.ok&&D.body&&(L=D.body)}catch{L=null}if(E.signal.aborted)return;if(L){let D=t.getMessages().find($=>$.id===I.assistantMessageId)?.content,z=typeof D=="string"?D:"";try{await t.resumeConnect(L,I.assistantMessageId,z)}catch{}if(E.signal.aborted)return;if(!t.getResumable()){t.setReconnecting(!1),e=0,d(),t.emitReconnect({phase:"resumed",handle:I});return}t.getResumable().lastEventId!==S&&(e=0)}if(t.getResumable()&&e<C&&(t.setStatus("paused"),await g(y[Math.min(e-1,y.length-1)]??1e3),E.signal.aborted))return}t.getResumable()&&b()};return{begin(){e=0,c(),f()},teardown(){o&&(clearTimeout(o),o=null),n=null,e=0,d()},wake:s}}var $y,Cg=ht(()=>{"use strict";$y=[1e3,2e3,4e3,8e3,8e3]});function qy(t,e,n,o){if(!Array.isArray(t))return null;let r=document.createElementNS("http://www.w3.org/2000/svg","svg");return r.setAttribute("width",String(e)),r.setAttribute("height",String(e)),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"),t.forEach(s=>{if(!Array.isArray(s)||s.length<2)return;let i=s[0],l=s[1];if(!l)return;let p=document.createElementNS("http://www.w3.org/2000/svg",i);Object.entries(l).forEach(([c,d])=>{c!=="stroke"&&p.setAttribute(c,String(d))}),r.appendChild(p)}),r}var T,Vy,ie,xt=ht(()=>{"use strict";T=require("lucide"),Vy={activity:T.Activity,"arrow-down":T.ArrowDown,"arrow-up":T.ArrowUp,"arrow-up-right":T.ArrowUpRight,bot:T.Bot,"chevron-down":T.ChevronDown,"chevron-up":T.ChevronUp,"chevron-right":T.ChevronRight,"chevron-left":T.ChevronLeft,check:T.Check,clipboard:T.Clipboard,"clipboard-copy":T.ClipboardCopy,"code-xml":T.CodeXml,copy:T.Copy,file:T.File,"file-code":T.FileCode,"file-spreadsheet":T.FileSpreadsheet,"file-text":T.FileText,"image-plus":T.ImagePlus,loader:T.Loader,"loader-circle":T.LoaderCircle,mic:T.Mic,paperclip:T.Paperclip,"refresh-cw":T.RefreshCw,search:T.Search,send:T.Send,"shield-alert":T.ShieldAlert,"shield-check":T.ShieldCheck,"shield-x":T.ShieldX,square:T.Square,"thumbs-down":T.ThumbsDown,"thumbs-up":T.ThumbsUp,upload:T.Upload,"volume-2":T.Volume2,x:T.X,user:T.User,mail:T.Mail,phone:T.Phone,calendar:T.Calendar,clock:T.Clock,building:T.Building,"map-pin":T.MapPin,lock:T.Lock,key:T.Key,"credit-card":T.CreditCard,"at-sign":T.AtSign,hash:T.Hash,globe:T.Globe,link:T.Link,"circle-check":T.CircleCheck,"circle-x":T.CircleX,"triangle-alert":T.TriangleAlert,info:T.Info,ban:T.Ban,shield:T.Shield,"arrow-left":T.ArrowLeft,"arrow-right":T.ArrowRight,"external-link":T.ExternalLink,ellipsis:T.Ellipsis,"ellipsis-vertical":T.EllipsisVertical,menu:T.Menu,house:T.House,plus:T.Plus,minus:T.Minus,pencil:T.Pencil,"pen-line":T.PenLine,trash:T.Trash,"trash-2":T.Trash2,save:T.Save,download:T.Download,share:T.Share,funnel:T.Funnel,settings:T.Settings,"rotate-cw":T.RotateCw,maximize:T.Maximize,minimize:T.Minimize,"shopping-cart":T.ShoppingCart,"shopping-bag":T.ShoppingBag,package:T.Package,truck:T.Truck,tag:T.Tag,gift:T.Gift,receipt:T.Receipt,wallet:T.Wallet,store:T.Store,"dollar-sign":T.DollarSign,percent:T.Percent,play:T.Play,pause:T.Pause,"volume-x":T.VolumeX,camera:T.Camera,image:T.Image,film:T.Film,headphones:T.Headphones,"message-circle":T.MessageCircle,"message-square":T.MessageSquare,bell:T.Bell,heart:T.Heart,star:T.Star,eye:T.Eye,"eye-off":T.EyeOff,bookmark:T.Bookmark,"calendar-days":T.CalendarDays,history:T.History,timer:T.Timer,folder:T.Folder,"folder-open":T.FolderOpen,files:T.Files,"chart-column":T.ChartColumn,sparkles:T.Sparkles,zap:T.Zap,sun:T.Sun,moon:T.Moon,flag:T.Flag,lightbulb:T.Lightbulb,monitor:T.Monitor,smartphone:T.Smartphone},ie=(t,e=24,n="currentColor",o=2)=>{let r=Vy[t];return r?qy(r,e,n,o):(console.warn(`Lucide icon "${t}" is not in the Persona registry. Add it to packages/widget/src/utils/icons.ts (see docs/icon-registry-shortlist.md).`),null)}});function Qy(t,e,n){if(n==="input-start")return e===0;let o=e>0?t[e-1]:"";return n==="line-start"?o===""||o===`
|
|
2
|
+
`:o===""||Mg.test(o)}function Xy(t,e,n="@",o="anywhere",r=!1){if(!n||e<=0||e>t.length)return null;let s=e-1;for(;s>=0;){let i=t[s];if(i===n)return Qy(t,s,o)?{triggerIndex:s,query:t.slice(s+1,e)}:null;if(i===`
|
|
3
|
+
`||i==="\uFFFC"||!r&&Mg.test(i))return null;s--}return null}function zs(t,e,n){for(let o of n){let r=Xy(t,e,o.trigger,o.position??"anywhere",o.allowSpaces??!1);if(r)return{channel:o,match:r}}return null}function Tg(t){return t?t!=="insertFromPaste"&&t!=="insertFromDrop":!0}function Eg(t,e,n){return{value:t.slice(0,e.triggerIndex)+t.slice(n),caret:e.triggerIndex}}var Mg,ma=ht(()=>{"use strict";Mg=/\s/});function ha(t){let e={trigger:t.trigger??"@",position:t.triggerPosition??"anywhere",allowSpaces:!1,sources:Array.isArray(t.sources)?t.sources:[],searchPlaceholder:t.searchPlaceholder,showButton:t.showButton!==!1,buttonIconName:t.buttonIconName,buttonTooltipText:t.buttonTooltipText},n=(t.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[e,...n]}var Ac=ht(()=>{"use strict"});function Pg(t){let{ref:e,config:n,onRemove:o}=t;if(n.renderMentionChip){let f="resolving",y,C=n.renderMentionChip({ref:e,status:f,payload:y,remove:o});return{get el(){return C},setStatus:(I,S)=>{if(I===f&&S===y)return;f=I,y=S;let E=n.renderMentionChip({ref:e,status:f,payload:y,remove:o});C.replaceWith(E),C=E}}}let r=e.iconName??n.chipIconName??"at-sign",s=ye("div",{className:"persona-mention-chip",attrs:{"data-persona-mention-chip":"","data-status":"resolving",title:e.label}}),i=v("span","persona-mention-chip-icon"),l=f=>{i.replaceChildren();let y=ie(f,13,"currentColor",2);y&&i.appendChild(y)};l(r);let p=v("span","persona-mention-chip-spinner"),c=ye("span",{className:"persona-mention-chip-label",text:e.label}),d=ye("button",{className:"persona-mention-chip-remove",attrs:{type:"button","aria-label":`Remove ${e.label} context`}}),g=ie("x",11,"currentColor",2.5);return g?d.appendChild(g):d.textContent="\xD7",d.addEventListener("click",f=>{f.preventDefault(),f.stopPropagation(),o()}),s.appendChild(p),s.appendChild(c),s.appendChild(d),{el:s,setStatus:f=>{s.setAttribute("data-status",f),f==="resolving"?(p.parentNode!==s&&s.insertBefore(p,c),i.parentNode===s&&i.remove(),s.setAttribute("title",e.label)):(p.parentNode===s&&p.remove(),i.parentNode!==s&&s.insertBefore(i,c),f==="error"?(l("triangle-alert"),s.setAttribute("title",`Couldn't add ${e.label} to context`)):(l(r),s.setAttribute("title",e.label)))}}}var Ig=ht(()=>{"use strict";Ye();xt()});function ev(t){let e=0;for(let n of t.split(`
|
|
4
|
+
`)){let o=/^ {0,3}(`+)/.exec(n);o&&o[1].length>e&&(e=o[1].length)}return e}function Ec(t,e){let n="`".repeat(Math.max(3,ev(e)+1));return`${n}${t}
|
|
5
5
|
${e}
|
|
6
|
-
${n}`}function
|
|
6
|
+
${n}`}function tv(t,e,n){return e.includes("</document_content>")?Ec(t,e):`<document index="${n+1}">
|
|
7
7
|
<source>${t}</source>
|
|
8
8
|
<document_content>
|
|
9
9
|
${e}
|
|
10
10
|
</document_content>
|
|
11
|
-
</document>`}function
|
|
11
|
+
</document>`}function Rg(t,e,n="fenced"){if(typeof n=="function")try{return n(t,e)}catch(o){return console.warn("[persona] contextMentions.llmFormat threw; falling back to the fenced format for this mention",o),Ec(t.label,t.text)}return n==="document"?tv(t.label,t.text,e):Ec(t.label,t.text)}var Wg=ht(()=>{"use strict"});function ya(t,e){return{sourceId:t.id,itemId:e.id,label:e.label,iconName:e.iconName,color:e.color}}var Hg,va,kc=ht(()=>{"use strict";Ig();Wg();Hg=(t,e)=>`${t}\0${e}`,va=class{constructor(e){this.mentions=[];this.opts=e,this.updateRowVisibility()}get maxMentions(){return this.opts.mentionConfig.maxMentions??8}hasMentions(){return this.mentions.length>0}add(e,n,o=""){let r=Hg(e.id,n.id);if(this.mentions.some(l=>l.key===r))return this.reject(e,n,"duplicate");if(this.atLimit())return this.reject(e,n,"limit");let s=ya(e,n),i={key:r,source:e,item:n,ref:s,status:"resolving",args:o};return i.chip=Pg({ref:s,config:this.opts.mentionConfig,onRemove:()=>this.remove(r)}),this.opts.contextRow.appendChild(i.chip.el),this.startPending(i),this.updateRowVisibility(),!0}atLimit(){return this.mentions.length>=this.maxMentions}admit(e,n){return this.atLimit()?this.reject(e,n,"limit"):!0}track(e,n,o,r="",s){let i={key:e,source:n,item:o,ref:ya(n,o),status:"resolving",args:r,reportStatus:s};this.startPending(i)}reject(e,n,o){return this.opts.mentionConfig.onMentionRejected?.(n,o),this.opts.emit?.("rejected",{sourceId:e.id,itemId:n.id,reason:o}),!1}startPending(e){this.mentions.push(e),e.source.resolveOn==="submit"?(e.status="ready",e.chip?.setStatus("ready"),e.reportStatus?.("resolved")):e.resolvePromise=this.resolvePending(e),this.opts.announce(`Added ${e.ref.label} to context`)}buildResolveContext(e,n,o=this.opts.getComposerText()){return{messages:this.opts.getMessages(),config:this.opts.getConfig(),composerText:o,args:n,signal:e}}async resolvePending(e){let n=new AbortController;e.abort=n;try{let o=await e.source.resolve(e.item,this.buildResolveContext(n.signal,e.args));if(n.signal.aborted)return;e.payload=o,e.status="ready",e.chip?.setStatus("ready",o),e.reportStatus?.("resolved")}catch(o){if(n.signal.aborted)return;e.status="error",e.chip?.setStatus("error"),e.reportStatus?.("error"),(this.opts.announceError??this.opts.announce)(`Couldn't attach ${e.ref.label} to context`),this.opts.mentionConfig.onMentionResolveError?.(e.item,o),this.opts.emit?.("resolve-error",{sourceId:e.source.id,itemId:e.item.id})}}remove(e){let n=this.mentions.findIndex(r=>r.key===e);if(n===-1)return;let[o]=this.mentions.splice(n,1);o.abort?.abort(),o.chip?.el.remove(),this.updateRowVisibility(),this.opts.announce(`Removed ${o.ref.label} from context`)}removeLast(){let e=this.mentions[this.mentions.length-1];return e?(this.remove(e.key),!0):!1}clear(){for(let e of this.mentions)e.abort?.abort(),e.chip?.el.remove();this.mentions.length=0,this.updateRowVisibility()}collectForSubmit(){let e=[...this.mentions],n=e.map(s=>s.ref),o=this.opts.getComposerText();for(let s of e)s.chip?.el.remove();return this.mentions.length=0,this.updateRowVisibility(),{refs:n,finalize:async()=>{var d;let s=await Promise.all(e.map(async g=>{try{return g.source.resolveOn==="submit"?await g.source.resolve(g.item,this.buildResolveContext(new AbortController().signal,g.args,o)):(g.resolvePromise&&await g.resolvePromise,g.payload??null)}catch(b){try{this.opts.mentionConfig.onMentionResolveError?.(g.item,b)}catch(f){typeof console<"u"&&console.warn("[Persona] onMentionResolveError callback threw",f)}return this.opts.emit?.("resolve-error",{sourceId:g.source.id,itemId:g.item.id}),null}})),i=[],l=[],p={},c=new Set;for(let g=0;g<e.length;g++){let b=e[g],f=s[g];if(!f)continue;let y=Hg(b.source.id,b.item.id);if(!c.has(y)){if(c.add(y),f.llmAppend&&f.llmAppend.trim())try{i.push(Rg({label:b.ref.label,text:f.llmAppend,ref:b.ref,item:b.item},i.length,this.opts.mentionConfig.llmFormat))}catch(C){typeof console<"u"&&console.warn("[Persona] context-mention llmFormat threw",C)}f.contentParts?.length&&l.push(...f.contentParts),f.context&&((p[d=b.source.id]??(p[d]={}))[b.item.id]=f.context)}}return{blocks:i,contentParts:l,context:p}}}}updateRowVisibility(){this.opts.contextRow.style.display=this.mentions.length>0?"flex":"none"}}});function Bg(t){let e=t.getRootNode?.();return e instanceof ShadowRoot||e instanceof Document?e:t.ownerDocument??document}function xa(t,e,n){let o=t instanceof Document?t.head:t,r=e.replace(/["\\]/g,"\\$&");if(o.querySelector(`style[data-persona-plugin-style="${r}"]`))return;let i=(t instanceof Document?t:t.ownerDocument??document).createElement("style");i.setAttribute("data-persona-plugin-style",e),i.textContent=n,o.appendChild(i)}function Dg(t,e,n){if(t instanceof Document||t instanceof ShadowRoot){xa(t,e,n);return}let o=t;if(o.isConnected){xa(Bg(o),e,n);return}let r=o.ownerDocument??document;xa(r,e,n),queueMicrotask(()=>{let s=Bg(o);s!==r&&xa(s,e,n)})}function nv(t){let e=t.getRootNode?.();return e instanceof ShadowRoot?e:(t.ownerDocument??document).body}function wa(t){let{anchor:e,content:n,placement:o="bottom-start",offset:r=6,matchAnchorWidth:s=!1,horizontalOffset:i,verticalOffset:l,zIndex:p=2147483e3,onOpen:c,onDismiss:d}=t,g=t.container??nv(e),b=!1,f=null,y=()=>{if(!b)return;let I=e.getBoundingClientRect();n.style.position="fixed",s&&(n.style.minWidth=`${I.width}px`),i&&(n.style.maxWidth=`${I.width}px`);let S=n.getBoundingClientRect(),E=l?.()??null,L=E!=null?I.top+E:I.top,D=o==="top-start"||o==="top-end"?L-r-S.height:I.bottom+r,$=o==="bottom-end"||o==="top-end"?I.right-S.width:I.left,F=i?.()??null;if(F!=null){let B=Math.max(I.left,I.right-S.width);$=Math.min(Math.max(I.left+F,I.left),B)}n.style.top=`${D}px`,n.style.left=`${$}px`},C=()=>{b&&(b=!1,f&&(f(),f=null),n.remove())},M=()=>{if(b)return;b=!0,p!=null&&(n.style.zIndex=String(p)),g.appendChild(n),y();let I=(e.ownerDocument??document).defaultView??window,S=e.ownerDocument??document,E=()=>{if(!e.isConnected){C(),d?.("anchor-removed");return}y()},L=z=>{let $=typeof z.composedPath=="function"?z.composedPath():[];$.includes(n)||$.includes(e)||(C(),d?.("outside"))},D=I.setTimeout(()=>{S.addEventListener("pointerdown",L,!0)},0);I.addEventListener("scroll",E,!0),I.addEventListener("resize",E),f=()=>{I.clearTimeout(D),S.removeEventListener("pointerdown",L,!0),I.removeEventListener("scroll",E,!0),I.removeEventListener("resize",E)},c?.()};return{get isOpen(){return b},open:M,close:C,toggle:()=>b?C():M(),reposition:y,destroy:C}}function Og(t){return(typeof t.composedPath=="function"?t.composedPath():[]).some(n=>n instanceof HTMLElement&&(n.tagName==="INPUT"||n.tagName==="TEXTAREA"||n.isContentEditable))}var Lc=ht(()=>{"use strict"});var Ng,Fg=ht(()=>{"use strict";Ng=`
|
|
12
12
|
.persona-mention-menu {
|
|
13
13
|
box-sizing: border-box;
|
|
14
14
|
display: flex;
|
|
@@ -166,42 +166,42 @@ ${e}
|
|
|
166
166
|
min-height: 36px;
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
|
-
`});function na(t){let e=t.replace(/^\s+/,""),n=e.search(/\s/);return n===-1?{name:e,args:""}:{name:e.slice(0,n),args:e.slice(n+1).trim()}}var $u=ht(()=>{"use strict"});function Uu(t){let{config:e,listboxId:n}=t,o=Ce("div",{className:"persona-mention-menu",attrs:{"data-persona-mention-menu":""}}),r=Ce("div",{className:"persona-mention-search",style:{display:"none"}}),s=v("span","persona-mention-search-icon"),i=ae("search",15,"currentColor",2);i&&s.appendChild(i);let l=Ce("input",{className:"persona-mention-search-input",attrs:{type:"text",role:"combobox","aria-autocomplete":"list","aria-expanded":"false","aria-controls":n,"aria-label":e.searchPlaceholder??"Search context",placeholder:e.searchPlaceholder??"Search context\u2026",autocomplete:"off",autocapitalize:"off",spellcheck:"false"}});r.append(s,l),l.addEventListener("input",()=>t.onSearchInput?.(l.value)),l.addEventListener("keydown",W=>t.onSearchKeydown?.(W));let p=Ce("div",{className:"persona-mention-list",attrs:{role:"listbox",id:n,"aria-label":"Context mentions"}});o.append(r,p);let c=[],d=[],u=-1,b=new Map,g=(W,P)=>`${W}\0${P}`,h=W=>`${n}-opt-${W}`,C=W=>`${n}-grp-${W}`,L=(W,P)=>{let I=c[W];I&&(P?I.setAttribute("data-active","true"):I.removeAttribute("data-active"),I.setAttribute("aria-selected",P?"true":"false"),d[W]?.(P))},B=(W,P=!0)=>{u>=0&&u!==W&&L(u,!1),u=W;let I=c[W];I?(L(W,!0),P&&I.scrollIntoView?.({block:"nearest"}),p.setAttribute("aria-activedescendant",I.id),l.setAttribute("aria-activedescendant",I.id)):(p.removeAttribute("aria-activedescendant"),l.removeAttribute("aria-activedescendant"))},k=(W,P)=>{let I=C(P),j=Ce("div",{className:"persona-mention-group",attrs:{role:"group","aria-labelledby":I}});return j.appendChild(Ce("div",{className:"persona-mention-group-header",attrs:{id:I},text:W})),j},S=()=>{let W=Ce("div",{className:"persona-mention-option",attrs:{role:"option","aria-selected":"false"}}),P=v("span","persona-mention-option-icon");W.appendChild(P);let I="",j=v("span","persona-mention-option-text"),pe=v("span","persona-mention-option-labelline"),ge=v("span","persona-mention-option-label");pe.appendChild(ge),j.appendChild(pe),W.appendChild(j);let se=null,Y=null,oe={el:W,index:0,update:(J,ie,ee)=>{oe.index=ie,W.id=h(ie),W.setAttribute("aria-setsize",String(ee)),W.setAttribute("aria-posinset",String(ie+1)),W.removeAttribute("data-active"),W.setAttribute("aria-selected","false");let fe=J.iconName??e.chipIconName??"at-sign";if(fe!==I){I=fe;let he=_y(fe,15,2);P.replaceChildren(...he?[he]:[])}ge.textContent!==J.label&&(ge.textContent=J.label);let be=J.commandArgsPlaceholder?`\u2039${J.commandArgsPlaceholder}\u203A`:null;be?(se||(se=v("span","persona-mention-option-arghint"),pe.appendChild(se)),se.textContent!==be&&(se.textContent=be)):se&&(se.remove(),se=null),J.description?(Y||(Y=v("span","persona-mention-option-desc"),j.appendChild(Y)),Y.textContent!==J.description&&(Y.textContent=J.description)):Y&&(Y.remove(),Y=null)}};return W.addEventListener("mousedown",J=>{J.button===0&&(J.preventDefault(),t.onSelectIndex(oe.index))}),W.addEventListener("mouseenter",()=>t.onHoverIndex(oe.index)),oe},E=(W,P,I,j,pe)=>{let ge=Ce("div",{className:"persona-mention-option",attrs:{role:"option",id:h(j),"aria-selected":"false","aria-setsize":String(pe),"aria-posinset":String(j+1)}}),se=Y=>{ge.replaceChildren(e.renderMentionItem({item:W,source:P,query:I,active:Y,index:j}))};return se(!1),ge.addEventListener("mousedown",Y=>{Y.button===0&&(Y.preventDefault(),t.onSelectIndex(j))}),ge.addEventListener("mouseenter",()=>t.onHoverIndex(j)),{el:ge,paint:se}},z=W=>{let P=Ce("div",{className:"persona-mention-status persona-mention-error"});if(P.appendChild(Ce("span",{className:"persona-mention-error-text",text:`Couldn't load ${W.label}`})),t.onRetry){let I=Ce("button",{className:"persona-mention-retry",attrs:{type:"button"},text:"Retry"});I.addEventListener("mousedown",j=>j.preventDefault()),I.addEventListener("click",j=>{j.preventDefault(),t.onRetry(W.id)}),P.appendChild(I)}return P};return{el:o,render:W=>{p.replaceChildren(),c=[],d=[],u=-1;let P=new Set,I=0,j=0,pe=0,ge=0,se=0,Y=W.groups.reduce((oe,J)=>J.status==="ready"?oe+J.items.length:oe,0);for(let oe of W.groups)if(oe.status==="loading"){pe++;let J=k(oe.source.label,se++);J.appendChild(Ce("div",{className:"persona-mention-status persona-mention-loading",attrs:{role:"presentation"},text:"Loading\u2026"})),p.appendChild(J)}else if(oe.status==="error"){ge++;let J=k(oe.source.label,se++);J.appendChild(z(oe.source)),p.appendChild(J)}else if(oe.status==="ready"&&oe.items.length>0){let J=new Map;for(let ee of oe.items){let fe=ee.group??oe.source.label,be=J.get(fe);be?be.push(ee):J.set(fe,[ee])}let ie=Array.from(J.entries());ie.forEach(([ee,fe],be)=>{let he=k(ee,se++);for(let we of fe){let ve=I++,Te;if(e.renderMentionItem){let Me=E(we,oe.source,W.query,ve,Y);Te=Me.el,d.push(Me.paint)}else{let Me=g(oe.source.id,we.id),_e=P.has(Me)?void 0:b.get(Me);_e||(_e=S(),P.has(Me)||b.set(Me,_e)),P.add(Me),_e.update(we,ve,Y),Te=_e.el,d.push(null)}c.push(Te),he.appendChild(Te),j++}oe.truncated&&be===ie.length-1&&he.appendChild(Ce("div",{className:"persona-mention-hint",attrs:{role:"presentation"},text:"Keep typing to narrow\u2026"})),p.appendChild(he)})}for(let oe of b.keys())P.has(oe)||b.delete(oe);j===0&&pe===0&&ge===0&&p.appendChild(Ce("div",{className:"persona-mention-empty",attrs:{role:"presentation"},text:"No matches"})),c.length>0?B(Math.min(Math.max(0,W.activeIndex),c.length-1)):(p.removeAttribute("aria-activedescendant"),l.removeAttribute("aria-activedescendant"))},setActiveIndex:B,destroy:()=>{p.replaceChildren(),c=[],b.clear(),o.remove()},showSearch:(W,P)=>{l.value=W,P&&(l.placeholder=P),r.style.display="",l.setAttribute("aria-expanded","true"),l.focus(),typeof requestAnimationFrame=="function"&&requestAnimationFrame(()=>{r.style.display!=="none"&&l.focus()})},hideSearch:()=>{r.style.display="none",l.value="",l.setAttribute("aria-expanded","false"),l.removeAttribute("aria-activedescendant")}}}var zu,_y,ju=ht(()=>{"use strict";Je();wt();zu=new Map,_y=(t,e,n)=>{let o=`${t}|${e}|${n}`,r=zu.get(o);return r===void 0&&(r=ae(t,e,"currentColor",n),zu.set(o,r)),r?r.cloneNode(!0):null}});var $y,zy,oa,Vu=ht(()=>{"use strict";ql();_u();Qi();_l();$u();ju();Vl();$y=t=>!!t&&(typeof t=="object"||typeof t=="function")&&typeof t.then=="function",zy=0,oa=class{constructor(e){this.popover=null;this.resizeObserver=null;this.isOpenState=!1;this.query="";this.triggerMatch=null;this.activeIndex=0;this.activeKey=null;this.pickerMode=!1;this.pickerTrigger=null;this.groups=[];this.flat=[];this.searchToken=0;this.searchAbort=null;this.debounceTimer=null;this.knownAsync=new Set;this.invokedForToken=new Set;this.lastAnnouncedCount=-1;this.triggerAnchorOffset=null;this.measuredTriggerIndex=null;this.opts=e;let n=e.mentionConfig,o=Xi(n),r=o.filter(i=>i.sources.length>0);this.channels=r.length>0?r:[o[0]],this.activeChannel=this.channels[0],this.maxPerGroup=n.maxItemsPerGroup??6,this.debounceMs=n.searchDebounceMs??150,this.listboxId=`persona-mention-listbox-${++zy}`,this.menu=e.mentionConfig.renderMentionMenu?this.createHostMenu():Uu({config:e.mentionConfig,listboxId:this.listboxId,onSelectIndex:i=>this.selectIndex(i),onHoverIndex:i=>this.setActiveIndex(i,!1),onRetry:i=>this.retrySource(i),onSearchInput:i=>this.setQuery(i),onSearchKeydown:i=>{this.handleKeydown(i)}});let s=e.composerInput.element;s.setAttribute("aria-haspopup","listbox"),s.setAttribute("aria-controls",this.listboxId)}get input(){return this.opts.composerInput}createHostMenu(){let e=document.createElement("div");e.setAttribute("data-persona-mention-menu",""),e.setAttribute("role","listbox"),e.id=this.listboxId;let n=()=>{let o=this.opts.mentionConfig.renderMentionMenu({query:this.query,groups:this.groups.map(r=>({source:r.source,items:r.items})),status:Object.fromEntries(this.groups.map(r=>[r.source.id,r.status])),activeIndex:this.activeIndex,select:r=>{let s=this.groups.find(i=>i.items.includes(r));s&&this.commit(s.source,r)},close:()=>this.close()});e.replaceChildren(o)};return{el:e,render:n,setActiveIndex:n,destroy:()=>e.remove()}}isOpen(){return this.isOpenState}openFromButton(e){let n=e&&this.channels.find(i=>i.trigger===e)||this.channels[0],o=this.input.getSelection().start,r=As(this.input.getLogicalText(),o,[n]);if(r){this.pickerMode=!1,this.triggerMatch=r.match,this.isOpenState?(this.switchChannel(n),this.setQuery(r.match.query)):this.open(r.match.query,n),this.input.focus();return}let s=this.pickerTrigger;this.pickerMode=!0,this.pickerTrigger=n.trigger,this.triggerMatch=null,this.isOpenState?(s&&s!==n.trigger&&this.opts.onPickerOpenChange?.(!1,s,this.listboxId),this.switchChannel(n),this.setQuery("")):this.open("",n),this.menu.showSearch?this.menu.showSearch("",n.searchPlaceholder):this.input.focus(),this.opts.onPickerOpenChange?.(!0,n.trigger,this.listboxId)}onInput(){let e=this.input.getSelection().start,n=As(this.input.getLogicalText(),e,this.channels);if(!n){this.isOpenState&&this.close();return}if(this.isInlineArgTail(n.channel,n.match.query)){this.triggerMatch=null,this.isOpenState&&this.close(!1);return}this.triggerMatch=n.match,this.isOpenState?(this.switchChannel(n.channel),this.measuredTriggerIndex!==n.match.triggerIndex&&this.updateTriggerAnchor(),this.setQuery(n.match.query)):this.open(n.match.query,n.channel)}switchChannel(e){e!==this.activeChannel&&(this.activeChannel=e,this.groups=[],this.activeIndex=0)}open(e,n){if(this.isOpenState=!0,this.activeChannel=n,this.groups=[],this.activeIndex=0,this.lastAnnouncedCount=-1,!this.popover){let o=this.canAnchorMenu();if(this.popover=ta({anchor:this.opts.anchor,content:this.menu.el,placement:"top-start",matchAnchorWidth:!o,offset:6,container:this.opts.popoverContainer,horizontalOffset:o?()=>this.triggerAnchorOffset?.x??null:void 0,verticalOffset:o?()=>this.triggerAnchorOffset?.y??null:void 0,onDismiss:()=>this.close(!1)}),o){let r=this.opts.anchor.getBoundingClientRect().width;this.menu.el.style.minWidth=`${Math.min(220,r)}px`}}this.updateTriggerAnchor(),this.popover.open(),Nu(this.menu.el,"persona-mention-menu",Fu),this.observeComposerResize(),this.opts.emit?.("opened",{trigger:n.trigger}),this.setQuery(e)}observeComposerResize(){typeof ResizeObserver>"u"||this.resizeObserver||(this.resizeObserver=new ResizeObserver(()=>{this.isOpenState&&(this.updateTriggerAnchor(),this.popover?.reposition())}),this.resizeObserver.observe(this.opts.anchor))}disconnectComposerResize(){this.resizeObserver?.disconnect(),this.resizeObserver=null}canAnchorMenu(){return this.isInlineDisplay()&&!!this.input.getLogicalRangeRect}updateTriggerAnchor(){let e=this.triggerMatch,n=this.input.getLogicalRangeRect;if(this.measuredTriggerIndex=e?.triggerIndex??null,this.triggerAnchorOffset=null,!e||!n)return;let o=n(e.triggerIndex,e.triggerIndex+1);if(!o)return;let r=this.opts.anchor.getBoundingClientRect(),s=o.top-r.top,i=this.input.element,l=typeof getComputedStyle=="function"&&getComputedStyle(i).direction==="rtl";this.triggerAnchorOffset={x:l?null:o.left-r.left,y:s}}close(e=!0){this.isOpenState&&(this.isOpenState=!1,this.disconnectComposerResize(),this.debounceTimer&&clearTimeout(this.debounceTimer),this.searchAbort?.abort(),this.searchToken++,this.popover?.close(),this.input.element.removeAttribute("aria-activedescendant"),this.pickerMode&&(this.pickerMode=!1,this.menu.hideSearch?.(),this.opts.onPickerOpenChange?.(!1,this.pickerTrigger??this.activeChannel.trigger,this.listboxId),this.pickerTrigger=null,e&&this.input.focus()))}setQuery(e){this.query=e,this.activeIndex=0,this.activeKey=null;let n=++this.searchToken;this.invokedForToken.clear(),this.searchAbort?.abort(),this.searchAbort=new AbortController;for(let o of this.activeChannel.sources)this.knownAsync.has(o.id)?this.setGroupStatus(o.id,"loading"):(this.invokedForToken.add(o.id),this.invokeSource(o,n));this.render(),this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{if(n===this.searchToken)for(let o of this.activeChannel.sources)this.knownAsync.has(o.id)&&!this.invokedForToken.has(o.id)&&this.invokeSource(o,n)},this.debounceMs)}invokeSource(e,n){let o={messages:this.opts.getMessages(),config:this.opts.getConfig(),signal:this.searchAbort.signal},r;try{r=e.search(this.query,o)}catch{this.setGroupStatus(e.id,"error"),this.render();return}$y(r)?(this.knownAsync.add(e.id),this.setGroupStatus(e.id,"loading"),r.then(s=>{n===this.searchToken&&(this.setGroupItems(e.id,s),this.render())}).catch(()=>{n===this.searchToken&&(this.setGroupStatus(e.id,"error"),this.render())})):this.setGroupItems(e.id,r)}getOrCreateGroup(e){let n=this.groups.find(o=>o.source.id===e.id);if(!n){n={source:e,items:[],status:"loading",truncated:!1};let o=this.activeChannel.sources;this.groups.push(n),this.groups.sort((r,s)=>o.findIndex(i=>i.id===r.source.id)-o.findIndex(i=>i.id===s.source.id))}return n}setGroupStatus(e,n){let o=this.activeChannel.sources.find(r=>r.id===e);o&&(this.getOrCreateGroup(o).status=n)}setGroupItems(e,n){let o=this.activeChannel.sources.find(s=>s.id===e);if(!o)return;let r=this.getOrCreateGroup(o);r.truncated=n.length>this.maxPerGroup,r.items=n.slice(0,this.maxPerGroup),r.status=r.items.length===0?"empty":"ready"}keyOf(e){return JSON.stringify([e.source.id,e.item.id])}rebuildFlat(){this.flat=[];for(let e of this.groups)if(e.status==="ready")for(let n of e.items)this.flat.push({source:e.source,item:n});if(this.activeKey){let e=this.flat.findIndex(n=>this.keyOf(n)===this.activeKey);this.activeIndex=e>=0?e:Math.min(this.activeIndex,Math.max(0,this.flat.length-1))}else this.activeIndex>=this.flat.length&&(this.activeIndex=Math.max(0,this.flat.length-1))}viewModel(){return{query:this.query,groups:this.groups,activeIndex:this.activeIndex}}render(){this.rebuildFlat(),this.menu.render(this.viewModel()),this.syncActiveDescendant(),this.popover?.reposition();let e=this.groups.some(n=>n.status==="loading");this.flat.length===0&&e||this.flat.length!==this.lastAnnouncedCount&&(this.lastAnnouncedCount=this.flat.length,this.opts.announce(this.flat.length===0?"No matches":this.flat.length===1?"1 result":`${this.flat.length} results`),this.opts.emit?.("searched",{query:this.query,results:this.flat.length}))}setActiveIndex(e,n=!0){e<0||e>=this.flat.length||(this.activeIndex=e,this.activeKey=this.keyOf(this.flat[e]),this.menu.setActiveIndex(e,n),this.syncActiveDescendant())}syncActiveDescendant(){this.isOpenState&&!this.pickerMode&&this.activeIndex>=0&&this.activeIndex<this.flat.length?this.input.element.setAttribute("aria-activedescendant",`${this.listboxId}-opt-${this.activeIndex}`):this.input.element.removeAttribute("aria-activedescendant")}retrySource(e){let n=this.activeChannel.sources.find(o=>o.id===e);!n||!this.searchAbort||(this.setGroupStatus(e,"loading"),this.render(),this.invokeSource(n,this.searchToken),this.render())}handleKeydown(e){if(!this.isOpenState)return!1;switch(e.key){case"ArrowDown":return this.flat.length===0||(e.preventDefault(),this.setActiveIndex((this.activeIndex+1)%this.flat.length)),!0;case"ArrowUp":return this.flat.length===0||(e.preventDefault(),this.setActiveIndex((this.activeIndex-1+this.flat.length)%this.flat.length)),!0;case"Home":return this.flat.length===0||(e.preventDefault(),this.setActiveIndex(0)),!0;case"End":return this.flat.length===0||(e.preventDefault(),this.setActiveIndex(this.flat.length-1)),!0;case"Enter":case"Tab":return this.flat.length===0?(this.close(),!1):(e.preventDefault(),this.selectIndex(this.activeIndex),!0);case"Escape":return e.preventDefault(),this.close(),!0;case"Backspace":return this.query.length===0&&this.close(),!1;default:return!1}}selectIndex(e){let n=this.flat[e];n&&this.commit(n.source,n.item)}deriveArgs(e){return na(e).args}isInlineCommand(e){return e.command==="server"||e.commandArgsPlaceholder!=null}commit(e,n){let o=n.command;if(this.isInlineCommand(n)){this.completeCommandInline(e,n);return}if(o==="action"){let s=this.deriveArgs(this.query);this.stripQuery(),this.close(),this.runAction(n,s),this.opts.emit?.("command",{sourceId:e.id,itemId:n.id,kind:"action",args:s}),this.input.focus();return}if(o==="prompt"){let s=this.deriveArgs(this.query),i=this.captureStripTarget();this.close(),this.runPromptMacro(e,n,s,i),this.opts.emit?.("command",{sourceId:e.id,itemId:n.id,kind:"prompt",args:s});return}if(this.isInlineDisplay()){this.commitInlineMention(e,n);return}this.opts.onSelect(e,n,"")&&(this.stripQuery(),this.opts.emit?.("selected",{sourceId:e.id,itemId:n.id,label:n.label})),this.close(),this.input.focus()}isInlineDisplay(){return this.opts.mentionConfig.display==="inline"&&!!this.opts.onInsertMention&&!!this.input.insertMentionAtTrigger}commitInlineMention(e,n){if(this.opts.admitMention&&!this.opts.admitMention(e,n)){this.close(),this.input.focus();return}let o=Yi(e,n),r=this.triggerMatch?this.input.insertMentionAtTrigger(o,this.triggerMatch):this.input.insertMentionAtSelection?.(o)??null;r?(this.opts.onInsertMention(r,e,n,""),this.opts.emit?.("selected",{sourceId:e.id,itemId:n.id,label:n.label})):(this.opts.mentionConfig.onMentionRejected?.(n,"stale"),this.opts.emit?.("rejected",{sourceId:e.id,itemId:n.id,reason:"stale"})),this.triggerMatch=null,this.close(),this.input.focus()}completeCommandInline(e,n){let o=`${this.activeChannel.trigger}${n.label} `,r=this.input.getSelection().start,s=this.triggerMatch?this.triggerMatch.triggerIndex:r;if(this.input.replaceLogicalRange)this.input.replaceLogicalRange(s,r,o);else{let i=this.input.getValue();this.input.setValueWithCaret(i.slice(0,s)+o+i.slice(r),s+o.length)}this.triggerMatch=null,this.close(),this.opts.emit?.("command",{sourceId:e.id,itemId:n.id,kind:n.command??"prompt",phase:"armed"}),this.input.dispatchInput(),this.input.focus()}isInlineArgTail(e,n){let{name:o}=na(n);return!o||n.length<=o.length?!1:e.sources.some(r=>{let s=r.matchCommand?.(o);return!!s&&this.isInlineCommand(s)})}matchInlineCommand(e){for(let n of this.channels){if(!n.trigger)continue;let o=n.position==="anywhere"?[e]:n.position==="line-start"?e.split(`
|
|
169
|
+
`});function Ca(t){let e=t.replace(/^\s+/,""),n=e.search(/\s/);return n===-1?{name:e,args:""}:{name:e.slice(0,n),args:e.slice(n+1).trim()}}var _g=ht(()=>{"use strict"});function zg(t){let{config:e,listboxId:n}=t,o=ye("div",{className:"persona-mention-menu",attrs:{"data-persona-mention-menu":""}}),r=ye("div",{className:"persona-mention-search",style:{display:"none"}}),s=v("span","persona-mention-search-icon"),i=ie("search",15,"currentColor",2);i&&s.appendChild(i);let l=ye("input",{className:"persona-mention-search-input",attrs:{type:"text",role:"combobox","aria-autocomplete":"list","aria-expanded":"false","aria-controls":n,"aria-label":e.searchPlaceholder??"Search context",placeholder:e.searchPlaceholder??"Search context\u2026",autocomplete:"off",autocapitalize:"off",spellcheck:"false"}});r.append(s,l),l.addEventListener("input",()=>t.onSearchInput?.(l.value)),l.addEventListener("keydown",H=>t.onSearchKeydown?.(H));let p=ye("div",{className:"persona-mention-list",attrs:{role:"listbox",id:n,"aria-label":"Context mentions"}});o.append(r,p);let c=[],d=[],g=-1,b=new Map,f=(H,w)=>`${H}\0${w}`,y=H=>`${n}-opt-${H}`,C=H=>`${n}-grp-${H}`,M=(H,w)=>{let N=c[H];N&&(w?N.setAttribute("data-active","true"):N.removeAttribute("data-active"),N.setAttribute("aria-selected",w?"true":"false"),d[H]?.(w))},I=(H,w=!0)=>{g>=0&&g!==H&&M(g,!1),g=H;let N=c[H];N?(M(H,!0),w&&N.scrollIntoView?.({block:"nearest"}),p.setAttribute("aria-activedescendant",N.id),l.setAttribute("aria-activedescendant",N.id)):(p.removeAttribute("aria-activedescendant"),l.removeAttribute("aria-activedescendant"))},S=(H,w)=>{let N=C(w),K=ye("div",{className:"persona-mention-group",attrs:{role:"group","aria-labelledby":N}});return K.appendChild(ye("div",{className:"persona-mention-group-header",attrs:{id:N},text:H})),K},E=()=>{let H=ye("div",{className:"persona-mention-option",attrs:{role:"option","aria-selected":"false"}}),w=v("span","persona-mention-option-icon");H.appendChild(w);let N="",K=v("span","persona-mention-option-text"),te=v("span","persona-mention-option-labelline"),Q=v("span","persona-mention-option-label");te.appendChild(Q),K.appendChild(te),H.appendChild(K);let se=null,J=null,oe={el:H,index:0,update:(Y,pe,ne)=>{oe.index=pe,H.id=y(pe),H.setAttribute("aria-setsize",String(ne)),H.setAttribute("aria-posinset",String(pe+1)),H.removeAttribute("data-active"),H.setAttribute("aria-selected","false");let me=Y.iconName??e.chipIconName??"at-sign";if(me!==N){N=me;let be=ov(me,15,2);w.replaceChildren(...be?[be]:[])}Q.textContent!==Y.label&&(Q.textContent=Y.label);let ve=Y.commandArgsPlaceholder?`\u2039${Y.commandArgsPlaceholder}\u203A`:null;ve?(se||(se=v("span","persona-mention-option-arghint"),te.appendChild(se)),se.textContent!==ve&&(se.textContent=ve)):se&&(se.remove(),se=null),Y.description?(J||(J=v("span","persona-mention-option-desc"),K.appendChild(J)),J.textContent!==Y.description&&(J.textContent=Y.description)):J&&(J.remove(),J=null)}};return H.addEventListener("mousedown",Y=>{Y.button===0&&(Y.preventDefault(),t.onSelectIndex(oe.index))}),H.addEventListener("mouseenter",()=>t.onHoverIndex(oe.index)),oe},L=(H,w,N,K,te)=>{let Q=ye("div",{className:"persona-mention-option",attrs:{role:"option",id:y(K),"aria-selected":"false","aria-setsize":String(te),"aria-posinset":String(K+1)}}),se=J=>{Q.replaceChildren(e.renderMentionItem({item:H,source:w,query:N,active:J,index:K}))};return se(!1),Q.addEventListener("mousedown",J=>{J.button===0&&(J.preventDefault(),t.onSelectIndex(K))}),Q.addEventListener("mouseenter",()=>t.onHoverIndex(K)),{el:Q,paint:se}},D=H=>{let w=ye("div",{className:"persona-mention-status persona-mention-error"});if(w.appendChild(ye("span",{className:"persona-mention-error-text",text:`Couldn't load ${H.label}`})),t.onRetry){let N=ye("button",{className:"persona-mention-retry",attrs:{type:"button"},text:"Retry"});N.addEventListener("mousedown",K=>K.preventDefault()),N.addEventListener("click",K=>{K.preventDefault(),t.onRetry(H.id)}),w.appendChild(N)}return w};return{el:o,render:H=>{p.replaceChildren(),c=[],d=[],g=-1;let w=new Set,N=0,K=0,te=0,Q=0,se=0,J=H.groups.reduce((oe,Y)=>Y.status==="ready"?oe+Y.items.length:oe,0);for(let oe of H.groups)if(oe.status==="loading"){te++;let Y=S(oe.source.label,se++);Y.appendChild(ye("div",{className:"persona-mention-status persona-mention-loading",attrs:{role:"presentation"},text:"Loading\u2026"})),p.appendChild(Y)}else if(oe.status==="error"){Q++;let Y=S(oe.source.label,se++);Y.appendChild(D(oe.source)),p.appendChild(Y)}else if(oe.status==="ready"&&oe.items.length>0){let Y=new Map;for(let ne of oe.items){let me=ne.group??oe.source.label,ve=Y.get(me);ve?ve.push(ne):Y.set(me,[ne])}let pe=Array.from(Y.entries());pe.forEach(([ne,me],ve)=>{let be=S(ne,se++);for(let Te of me){let ze=N++,Oe;if(e.renderMentionItem){let Ne=L(Te,oe.source,H.query,ze,J);Oe=Ne.el,d.push(Ne.paint)}else{let Ne=f(oe.source.id,Te.id),Be=w.has(Ne)?void 0:b.get(Ne);Be||(Be=E(),w.has(Ne)||b.set(Ne,Be)),w.add(Ne),Be.update(Te,ze,J),Oe=Be.el,d.push(null)}c.push(Oe),be.appendChild(Oe),K++}oe.truncated&&ve===pe.length-1&&be.appendChild(ye("div",{className:"persona-mention-hint",attrs:{role:"presentation"},text:"Keep typing to narrow\u2026"})),p.appendChild(be)})}for(let oe of b.keys())w.has(oe)||b.delete(oe);K===0&&te===0&&Q===0&&p.appendChild(ye("div",{className:"persona-mention-empty",attrs:{role:"presentation"},text:"No matches"})),c.length>0?I(Math.min(Math.max(0,H.activeIndex),c.length-1)):(p.removeAttribute("aria-activedescendant"),l.removeAttribute("aria-activedescendant"))},setActiveIndex:I,destroy:()=>{p.replaceChildren(),c=[],b.clear(),o.remove()},showSearch:(H,w)=>{l.value=H,w&&(l.placeholder=w),r.style.display="",l.setAttribute("aria-expanded","true"),l.focus(),typeof requestAnimationFrame=="function"&&requestAnimationFrame(()=>{r.style.display!=="none"&&l.focus()})},hideSearch:()=>{r.style.display="none",l.value="",l.setAttribute("aria-expanded","false"),l.removeAttribute("aria-activedescendant")}}}var $g,ov,Ug=ht(()=>{"use strict";Ye();xt();$g=new Map,ov=(t,e,n)=>{let o=`${t}|${e}|${n}`,r=$g.get(o);return r===void 0&&(r=ie(t,e,"currentColor",n),$g.set(o,r)),r?r.cloneNode(!0):null}});var rv,sv,Aa,jg=ht(()=>{"use strict";Lc();Fg();ma();Ac();_g();Ug();kc();rv=t=>!!t&&(typeof t=="object"||typeof t=="function")&&typeof t.then=="function",sv=0,Aa=class{constructor(e){this.popover=null;this.resizeObserver=null;this.isOpenState=!1;this.query="";this.triggerMatch=null;this.activeIndex=0;this.activeKey=null;this.pickerMode=!1;this.pickerTrigger=null;this.groups=[];this.flat=[];this.searchToken=0;this.searchAbort=null;this.debounceTimer=null;this.knownAsync=new Set;this.invokedForToken=new Set;this.lastAnnouncedCount=-1;this.triggerAnchorOffset=null;this.measuredTriggerIndex=null;this.opts=e;let n=e.mentionConfig,o=ha(n),r=o.filter(i=>i.sources.length>0);this.channels=r.length>0?r:[o[0]],this.activeChannel=this.channels[0],this.maxPerGroup=n.maxItemsPerGroup??6,this.debounceMs=n.searchDebounceMs??150,this.listboxId=`persona-mention-listbox-${++sv}`,this.menu=e.mentionConfig.renderMentionMenu?this.createHostMenu():zg({config:e.mentionConfig,listboxId:this.listboxId,onSelectIndex:i=>this.selectIndex(i),onHoverIndex:i=>this.setActiveIndex(i,!1),onRetry:i=>this.retrySource(i),onSearchInput:i=>this.setQuery(i),onSearchKeydown:i=>{this.handleKeydown(i)}});let s=e.composerInput.element;s.setAttribute("aria-haspopup","listbox"),s.setAttribute("aria-controls",this.listboxId)}get input(){return this.opts.composerInput}createHostMenu(){let e=document.createElement("div");e.setAttribute("data-persona-mention-menu",""),e.setAttribute("role","listbox"),e.id=this.listboxId;let n=()=>{let o=this.opts.mentionConfig.renderMentionMenu({query:this.query,groups:this.groups.map(r=>({source:r.source,items:r.items})),status:Object.fromEntries(this.groups.map(r=>[r.source.id,r.status])),activeIndex:this.activeIndex,select:r=>{let s=this.groups.find(i=>i.items.includes(r));s&&this.commit(s.source,r)},close:()=>this.close()});e.replaceChildren(o)};return{el:e,render:n,setActiveIndex:n,destroy:()=>e.remove()}}isOpen(){return this.isOpenState}openFromButton(e){let n=e&&this.channels.find(i=>i.trigger===e)||this.channels[0],o=this.input.getSelection().start,r=zs(this.input.getLogicalText(),o,[n]);if(r){this.pickerMode=!1,this.triggerMatch=r.match,this.isOpenState?(this.switchChannel(n),this.setQuery(r.match.query)):this.open(r.match.query,n),this.input.focus();return}let s=this.pickerTrigger;this.pickerMode=!0,this.pickerTrigger=n.trigger,this.triggerMatch=null,this.isOpenState?(s&&s!==n.trigger&&this.opts.onPickerOpenChange?.(!1,s,this.listboxId),this.switchChannel(n),this.setQuery("")):this.open("",n),this.menu.showSearch?this.menu.showSearch("",n.searchPlaceholder):this.input.focus(),this.opts.onPickerOpenChange?.(!0,n.trigger,this.listboxId)}onInput(){let e=this.input.getSelection().start,n=zs(this.input.getLogicalText(),e,this.channels);if(!n){this.isOpenState&&this.close();return}if(this.isInlineArgTail(n.channel,n.match.query)){this.triggerMatch=null,this.isOpenState&&this.close(!1);return}this.triggerMatch=n.match,this.isOpenState?(this.switchChannel(n.channel),this.measuredTriggerIndex!==n.match.triggerIndex&&this.updateTriggerAnchor(),this.setQuery(n.match.query)):this.open(n.match.query,n.channel)}switchChannel(e){e!==this.activeChannel&&(this.activeChannel=e,this.groups=[],this.activeIndex=0)}open(e,n){if(this.isOpenState=!0,this.activeChannel=n,this.groups=[],this.activeIndex=0,this.lastAnnouncedCount=-1,!this.popover){let o=this.canAnchorMenu();if(this.popover=wa({anchor:this.opts.anchor,content:this.menu.el,placement:"top-start",matchAnchorWidth:!o,offset:6,container:this.opts.popoverContainer,horizontalOffset:o?()=>this.triggerAnchorOffset?.x??null:void 0,verticalOffset:o?()=>this.triggerAnchorOffset?.y??null:void 0,onDismiss:()=>this.close(!1)}),o){let r=this.opts.anchor.getBoundingClientRect().width;this.menu.el.style.minWidth=`${Math.min(220,r)}px`}}this.updateTriggerAnchor(),this.popover.open(),Dg(this.menu.el,"persona-mention-menu",Ng),this.observeComposerResize(),this.opts.emit?.("opened",{trigger:n.trigger}),this.setQuery(e)}observeComposerResize(){typeof ResizeObserver>"u"||this.resizeObserver||(this.resizeObserver=new ResizeObserver(()=>{this.isOpenState&&(this.updateTriggerAnchor(),this.popover?.reposition())}),this.resizeObserver.observe(this.opts.anchor))}disconnectComposerResize(){this.resizeObserver?.disconnect(),this.resizeObserver=null}canAnchorMenu(){return this.isInlineDisplay()&&!!this.input.getLogicalRangeRect}updateTriggerAnchor(){let e=this.triggerMatch,n=this.input.getLogicalRangeRect;if(this.measuredTriggerIndex=e?.triggerIndex??null,this.triggerAnchorOffset=null,!e||!n)return;let o=n(e.triggerIndex,e.triggerIndex+1);if(!o)return;let r=this.opts.anchor.getBoundingClientRect(),s=o.top-r.top,i=this.input.element,l=typeof getComputedStyle=="function"&&getComputedStyle(i).direction==="rtl";this.triggerAnchorOffset={x:l?null:o.left-r.left,y:s}}close(e=!0){this.isOpenState&&(this.isOpenState=!1,this.disconnectComposerResize(),this.debounceTimer&&clearTimeout(this.debounceTimer),this.searchAbort?.abort(),this.searchToken++,this.popover?.close(),this.input.element.removeAttribute("aria-activedescendant"),this.pickerMode&&(this.pickerMode=!1,this.menu.hideSearch?.(),this.opts.onPickerOpenChange?.(!1,this.pickerTrigger??this.activeChannel.trigger,this.listboxId),this.pickerTrigger=null,e&&this.input.focus()))}setQuery(e){this.query=e,this.activeIndex=0,this.activeKey=null;let n=++this.searchToken;this.invokedForToken.clear(),this.searchAbort?.abort(),this.searchAbort=new AbortController;for(let o of this.activeChannel.sources)this.knownAsync.has(o.id)?this.setGroupStatus(o.id,"loading"):(this.invokedForToken.add(o.id),this.invokeSource(o,n));this.render(),this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{if(n===this.searchToken)for(let o of this.activeChannel.sources)this.knownAsync.has(o.id)&&!this.invokedForToken.has(o.id)&&this.invokeSource(o,n)},this.debounceMs)}invokeSource(e,n){let o={messages:this.opts.getMessages(),config:this.opts.getConfig(),signal:this.searchAbort.signal},r;try{r=e.search(this.query,o)}catch{this.setGroupStatus(e.id,"error"),this.render();return}rv(r)?(this.knownAsync.add(e.id),this.setGroupStatus(e.id,"loading"),r.then(s=>{n===this.searchToken&&(this.setGroupItems(e.id,s),this.render())}).catch(()=>{n===this.searchToken&&(this.setGroupStatus(e.id,"error"),this.render())})):this.setGroupItems(e.id,r)}getOrCreateGroup(e){let n=this.groups.find(o=>o.source.id===e.id);if(!n){n={source:e,items:[],status:"loading",truncated:!1};let o=this.activeChannel.sources;this.groups.push(n),this.groups.sort((r,s)=>o.findIndex(i=>i.id===r.source.id)-o.findIndex(i=>i.id===s.source.id))}return n}setGroupStatus(e,n){let o=this.activeChannel.sources.find(r=>r.id===e);o&&(this.getOrCreateGroup(o).status=n)}setGroupItems(e,n){let o=this.activeChannel.sources.find(s=>s.id===e);if(!o)return;let r=this.getOrCreateGroup(o);r.truncated=n.length>this.maxPerGroup,r.items=n.slice(0,this.maxPerGroup),r.status=r.items.length===0?"empty":"ready"}keyOf(e){return JSON.stringify([e.source.id,e.item.id])}rebuildFlat(){this.flat=[];for(let e of this.groups)if(e.status==="ready")for(let n of e.items)this.flat.push({source:e.source,item:n});if(this.activeKey){let e=this.flat.findIndex(n=>this.keyOf(n)===this.activeKey);this.activeIndex=e>=0?e:Math.min(this.activeIndex,Math.max(0,this.flat.length-1))}else this.activeIndex>=this.flat.length&&(this.activeIndex=Math.max(0,this.flat.length-1))}viewModel(){return{query:this.query,groups:this.groups,activeIndex:this.activeIndex}}render(){this.rebuildFlat(),this.menu.render(this.viewModel()),this.syncActiveDescendant(),this.popover?.reposition();let e=this.groups.some(n=>n.status==="loading");this.flat.length===0&&e||this.flat.length!==this.lastAnnouncedCount&&(this.lastAnnouncedCount=this.flat.length,this.opts.announce(this.flat.length===0?"No matches":this.flat.length===1?"1 result":`${this.flat.length} results`),this.opts.emit?.("searched",{query:this.query,results:this.flat.length}))}setActiveIndex(e,n=!0){e<0||e>=this.flat.length||(this.activeIndex=e,this.activeKey=this.keyOf(this.flat[e]),this.menu.setActiveIndex(e,n),this.syncActiveDescendant())}syncActiveDescendant(){this.isOpenState&&!this.pickerMode&&this.activeIndex>=0&&this.activeIndex<this.flat.length?this.input.element.setAttribute("aria-activedescendant",`${this.listboxId}-opt-${this.activeIndex}`):this.input.element.removeAttribute("aria-activedescendant")}retrySource(e){let n=this.activeChannel.sources.find(o=>o.id===e);!n||!this.searchAbort||(this.setGroupStatus(e,"loading"),this.render(),this.invokeSource(n,this.searchToken),this.render())}handleKeydown(e){if(!this.isOpenState)return!1;switch(e.key){case"ArrowDown":return this.flat.length===0||(e.preventDefault(),this.setActiveIndex((this.activeIndex+1)%this.flat.length)),!0;case"ArrowUp":return this.flat.length===0||(e.preventDefault(),this.setActiveIndex((this.activeIndex-1+this.flat.length)%this.flat.length)),!0;case"Home":return this.flat.length===0||(e.preventDefault(),this.setActiveIndex(0)),!0;case"End":return this.flat.length===0||(e.preventDefault(),this.setActiveIndex(this.flat.length-1)),!0;case"Enter":case"Tab":return this.flat.length===0?(this.close(),!1):(e.preventDefault(),this.selectIndex(this.activeIndex),!0);case"Escape":return e.preventDefault(),this.close(),!0;case"Backspace":return this.query.length===0&&this.close(),!1;default:return!1}}selectIndex(e){let n=this.flat[e];n&&this.commit(n.source,n.item)}deriveArgs(e){return Ca(e).args}isInlineCommand(e){return e.command==="server"||e.commandArgsPlaceholder!=null}commit(e,n){let o=n.command;if(this.isInlineCommand(n)){this.completeCommandInline(e,n);return}if(o==="action"){let s=this.deriveArgs(this.query);this.stripQuery(),this.close(),this.runAction(n,s),this.opts.emit?.("command",{sourceId:e.id,itemId:n.id,kind:"action",args:s}),this.input.focus();return}if(o==="prompt"){let s=this.deriveArgs(this.query),i=this.captureStripTarget();this.close(),this.runPromptMacro(e,n,s,i),this.opts.emit?.("command",{sourceId:e.id,itemId:n.id,kind:"prompt",args:s});return}if(this.isInlineDisplay()){this.commitInlineMention(e,n);return}this.opts.onSelect(e,n,"")&&(this.stripQuery(),this.opts.emit?.("selected",{sourceId:e.id,itemId:n.id,label:n.label})),this.close(),this.input.focus()}isInlineDisplay(){return this.opts.mentionConfig.display==="inline"&&!!this.opts.onInsertMention&&!!this.input.insertMentionAtTrigger}commitInlineMention(e,n){if(this.opts.admitMention&&!this.opts.admitMention(e,n)){this.close(),this.input.focus();return}let o=ya(e,n),r=this.triggerMatch?this.input.insertMentionAtTrigger(o,this.triggerMatch):this.input.insertMentionAtSelection?.(o)??null;r?(this.opts.onInsertMention(r,e,n,""),this.opts.emit?.("selected",{sourceId:e.id,itemId:n.id,label:n.label})):(this.opts.mentionConfig.onMentionRejected?.(n,"stale"),this.opts.emit?.("rejected",{sourceId:e.id,itemId:n.id,reason:"stale"})),this.triggerMatch=null,this.close(),this.input.focus()}completeCommandInline(e,n){let o=`${this.activeChannel.trigger}${n.label} `,r=this.input.getSelection().start,s=this.triggerMatch?this.triggerMatch.triggerIndex:r;if(this.input.replaceLogicalRange)this.input.replaceLogicalRange(s,r,o);else{let i=this.input.getValue();this.input.setValueWithCaret(i.slice(0,s)+o+i.slice(r),s+o.length)}this.triggerMatch=null,this.close(),this.opts.emit?.("command",{sourceId:e.id,itemId:n.id,kind:n.command??"prompt",phase:"armed"}),this.input.dispatchInput(),this.input.focus()}isInlineArgTail(e,n){let{name:o}=Ca(n);return!o||n.length<=o.length?!1:e.sources.some(r=>{let s=r.matchCommand?.(o);return!!s&&this.isInlineCommand(s)})}matchInlineCommand(e){for(let n of this.channels){if(!n.trigger)continue;let o=n.position==="anywhere"?[e]:n.position==="line-start"?e.split(`
|
|
170
170
|
`):[e.split(`
|
|
171
|
-
`)[0]];for(let r of o){if(!r.startsWith(n.trigger))continue;let{name:s,args:i}=
|
|
172
|
-
`,c=
|
|
173
|
-
`?0:1);return{doc:{blocks:c},caret:d}}function
|
|
174
|
-
`});function
|
|
175
|
-
`),n=!1;for(let o=0;o<e.length-1;o++){let r=e[o],s=e[o+1];if(!
|
|
176
|
-
`):t};var
|
|
171
|
+
`)[0]];for(let r of o){if(!r.startsWith(n.trigger))continue;let{name:s,args:i}=Ca(r.slice(n.trigger.length));if(s)for(let l of n.sources){let p=l.matchCommand?.(s);if(p&&this.isInlineCommand(p))return{source:l,item:p,args:i}}}}return null}async dispatchInlineCommand(e){let n=this.matchInlineCommand(e);if(!n)return null;let{source:o,item:r,args:s}=n,i=r.command??"prompt";if(this.opts.emit?.("command",{sourceId:o.id,itemId:r.id,kind:i,args:s}),i==="action")return this.runAction(r,s),{kind:"action"};if(i==="prompt"){let p;try{p=await o.resolve(r,this.resolveContext(s,e))}catch(c){return typeof console<"u"&&console.warn("[Persona] inline prompt command resolve failed",c),null}return{kind:"prompt",sendText:p.insertText??p.llmAppend??e}}return{kind:"server",mentions:{refs:[],finalize:async()=>{let p=await o.resolve(r,this.resolveContext(s,e)),c={};return p.context&&(c[o.id]={[r.id]:p.context}),{blocks:[],contentParts:p.contentParts??[],context:c}}}}}resolveContext(e,n){return{messages:this.opts.getMessages(),config:this.opts.getConfig(),composerText:n,args:e,signal:new AbortController().signal}}runAction(e,n){if(e.action)try{Promise.resolve(e.action({args:n,config:this.opts.getConfig(),messages:this.opts.getMessages(),composer:this.input})).catch(o=>{typeof console<"u"&&console.warn("[Persona] context-mention command action failed",o)})}catch(o){typeof console<"u"&&console.warn("[Persona] context-mention command action failed",o)}}captureStripTarget(){return this.triggerMatch?{value:this.input.getValue(),start:this.triggerMatch.triggerIndex,end:this.input.getSelection().start}:null}async runPromptMacro(e,n,o,r){let s=this.input,i;try{i=await e.resolve(n,{messages:this.opts.getMessages(),config:this.opts.getConfig(),composerText:s.getValue(),args:o,signal:new AbortController().signal})}catch(p){typeof console<"u"&&console.warn("[Persona] context-mention prompt resolve failed",p);return}let l=i.insertText??i.llmAppend??"";n.insertMode==="insert-at-caret"&&r?s.replaceLogicalRange?(s.replaceLogicalRange(r.start,r.end,l),s.dispatchInput()):s.setValue(r.value.slice(0,r.start)+l+r.value.slice(r.end)):s.setValue(l),n.submitOnSelect&&s.submit()}stripQuery(){if(!this.triggerMatch)return;let e=this.input.getSelection().start;if(this.input.replaceLogicalRange)this.input.replaceLogicalRange(this.triggerMatch.triggerIndex,e,"");else{let n=Eg(this.input.getValue(),this.triggerMatch,e);this.input.setValueWithCaret(n.value,n.caret)}this.input.dispatchInput(),this.triggerMatch=null}destroy(){this.disconnectComposerResize(),this.debounceTimer&&clearTimeout(this.debounceTimer),this.searchAbort?.abort(),this.popover?.destroy(),this.menu.destroy();let e=this.input.element;e.removeAttribute("aria-haspopup"),e.removeAttribute("aria-controls"),e.removeAttribute("aria-activedescendant")}}});function Pc(t){t&&(typeof t.requestSubmit=="function"?t.requestSubmit():t.dispatchEvent(new Event("submit",{bubbles:!0,cancelable:!0})))}function Vg(t){let e=()=>{t.dispatchEvent(new Event("input",{bubbles:!0}))};return{element:t,getValue:()=>t.value,getLogicalText:()=>t.value,getSelection:()=>({start:t.selectionStart??0,end:t.selectionEnd??0}),setSelection:(n,o=n)=>{t.setSelectionRange(n,o)},setValueWithCaret:(n,o)=>{t.value=n,t.setSelectionRange(o,o)},setValue:n=>{t.value=n,t.setSelectionRange(n.length,n.length),e(),t.focus()},submit:()=>Pc(t.form),dispatchInput:e,focus:()=>t.focus()}}var Ic=ht(()=>{"use strict"});function Rc(t,e){let n=document.createElement("div");n.className="persona-sr-only",n.setAttribute("aria-live",t),n.setAttribute("aria-atomic","true"),n.setAttribute("role",t==="assertive"?"alert":"status"),n.setAttribute("data-persona-mention-live-region","");let o=e.getRootNode();typeof ShadowRoot<"u"&&o instanceof ShadowRoot?(Object.assign(n.style,iv),document.body.appendChild(n)):e.appendChild(n);let s;return{announce:i=>{s!==void 0&&clearTimeout(s),n.textContent="",s=setTimeout(()=>{s=void 0,n.textContent=i},0)},destroy:()=>{s!==void 0&&clearTimeout(s),n.remove()}}}var iv,qg=ht(()=>{"use strict";iv={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"}});function Kg(t){let e=t.composerInput??Vg(t.textarea),n=Rc("polite",t.liveRegionHost),o=Rc("assertive",t.liveRegionHost),r=c=>n.announce(c),s=c=>o.announce(c),i=new va({mentionConfig:t.mentionConfig,contextRow:t.contextRow,getMessages:t.getMessages,getConfig:t.getConfig,getComposerText:()=>e.getValue(),announce:r,announceError:s,emit:t.emit}),l=()=>new Aa({mentionConfig:t.mentionConfig,composerInput:e,anchor:t.anchor,getMessages:t.getMessages,getConfig:t.getConfig,onSelect:(c,d,g)=>i.add(c,d,g),onInsertMention:(c,d,g,b)=>i.track(c,d,g,b,f=>e.setMentionStatus?.(c,f)),admitMention:(c,d)=>i.admit(c,d),announce:r,popoverContainer:t.popoverContainer,onPickerOpenChange:t.onPickerOpenChange,emit:t.emit}),p=l();return{openMenu:c=>p.openFromButton(c),isMenuOpen:()=>p.isOpen(),handleInput:()=>p.onInput(),handleKeydown:c=>p.handleKeydown(c),hasMentions:()=>i.hasMentions(),removeLastChip:()=>i.removeLast(),dispatchInlineCommand:c=>p.dispatchInlineCommand(c),collectForSubmit:()=>i.hasMentions()?i.collectForSubmit():null,untrackMention:c=>i.remove(c),rebindComposer:c=>{c!==e&&(p.destroy(),e=c,p=l())},clear:()=>i.clear(),destroy:()=>{p.destroy(),i.clear(),n.destroy(),o.destroy()}}}var Gg=ht(()=>{"use strict";kc();jg();Ic();qg()});var Qg={};Tr(Qg,{mountContextMentions:()=>Kg});var Xg=ht(()=>{"use strict";Gg()});function Bc(t){return t.kind==="text"?t.value.length:1}function Dc(t){let e=[],n=r=>{let s=e[e.length-1];s&&s.kind==="text"?s.value+=r:e.push({kind:"text",value:r})};(t.length===0||t[0].kind!=="text")&&e.push({kind:"text",value:""});for(let r of t){if(r.kind==="text"){n(r.value);continue}let s=e[e.length-1];(!s||s.kind!=="text")&&e.push({kind:"text",value:""}),e.push({kind:"mention",id:r.id,ref:r.ref}),e.push({kind:"text",value:""})}let o=e[e.length-1];return(!o||o.kind!=="text")&&e.push({kind:"text",value:""}),e}function Yg(){return{blocks:[{kind:"text",value:""}]}}function Oc(t){return{blocks:[{kind:"text",value:t}]}}function Nc(t){return t.blocks.map(e=>e.kind==="text"?e.value:`${lv}${e.ref.label}`).join("")}function Ma(t){return t.blocks.map(e=>e.kind==="text"?e.value:"\uFFFC").join("")}function Ta(t){return t.blocks.reduce((e,n)=>e+Bc(n),0)}function cv(t){let e=[];for(let n of t.blocks)n.kind==="mention"&&e.push({id:n.id,ref:n.ref});return e}function Sa(t,e){let n=[],o=[],r=0;for(let s of t){let i=Bc(s),l=r+i;if(l<=e)n.push(s);else if(r>=e)o.push(s);else if(s.kind==="text"){let p=e-r;p>0&&n.push({kind:"text",value:s.value.slice(0,p)}),p<i&&o.push({kind:"text",value:s.value.slice(p)})}else o.push(s);r=l}return{left:n,right:o}}function Fc(t,e,n,o){let r=Sa(t.blocks,e.start).left,s=Sa(t.blocks,e.end).right,i=s[0],l=i?.kind==="text"?i.value.charAt(0):"",p=l!==" "&&l!==" "&&l!==`
|
|
172
|
+
`,c=Dc([...r,{kind:"mention",id:o,ref:n},...p?[{kind:"text",value:" "}]:[],...s]),d=e.start+1+(l===`
|
|
173
|
+
`?0:1);return{doc:{blocks:c},caret:d}}function Jg(t,e){let n=0,o=0,r=!1;for(let i of t.blocks)i.kind==="mention"&&i.id===e&&(n=o,r=!0),o+=Bc(i);return r?{doc:{blocks:Dc(t.blocks.filter(i=>!(i.kind==="mention"&&i.id===e)))},caret:n}:{doc:t,caret:o}}function Ea(t,e,n,o){let r=Ta(t),s=Math.max(0,Math.min(e,n,r)),i=Math.min(r,Math.max(e,n,0)),l=Sa(t.blocks,s).left,p=Sa(t.blocks,i).right;return{doc:{blocks:Dc([...l,{kind:"text",value:o},...p])},caret:s+o.length}}function Zg(t){let e=[];for(let n of t.blocks)n.kind==="text"?n.value.length>0&&e.push({kind:"text",text:n.value}):e.push({kind:"mention",ref:n.ref});return{content:Nc(t),contextMentions:cv(t).map(n=>n.ref),contentSegments:e}}var lv,_c=ht(()=>{"use strict";ma();lv="@"});function qs(t){return t.nodeType===1&&t.hasAttribute(Vs)}function nf(t){return t.nodeType===1&&t.tagName==="BR"}function ka(t){return t.nodeType===3?t.data.length:qs(t)||nf(t)?1:t.textContent?.length??0}function ef(t,e,n){let o=0;for(let r of Array.from(t.childNodes)){if(r===e)return r.nodeType===3?o+n:o+(n>0?ka(r):0);if(r.contains(e))return qs(r)?o+1:o+pv(r,e,n);o+=ka(r)}if(e===t){let r=0,s=Array.from(t.childNodes);for(let i=0;i<Math.min(n,s.length);i++)r+=ka(s[i]);return r}return o}function pv(t,e,n){let o=0,r=s=>{if(s===e)return o+=s.nodeType===3?n:0,!0;if(s.nodeType===3)return o+=s.data.length,!1;for(let i of Array.from(s.childNodes))if(r(i))return!0;return!1};return r(t),o}function js(t,e){let n=0,o=Array.from(t.childNodes);for(let r=0;r<o.length;r++){let s=o[r],i=ka(s);if(e<=n+i)return s.nodeType===3?{node:s,offset:e-n}:{node:t,offset:e<=n?r:r+1};n+=i}return{node:t,offset:o.length}}function uv(t,e){let n=[];for(let o of Array.from(t.childNodes))if(qs(o)){let r=o.getAttribute(Vs),s=e.get(r);s&&n.push({kind:"mention",id:r,ref:s})}else if(nf(o))n.push({kind:"text",value:tf});else if(o.nodeType===3)n.push({kind:"text",value:o.data});else{let r=o.textContent??"";r&&n.push({kind:"text",value:r})}return n.length===0&&n.push({kind:"text",value:""}),{blocks:n}}function of(t){let e=t.renderToken,n=new Map,o=t.element??document.createElement("div");o.setAttribute("contenteditable","true"),o.setAttribute("data-persona-composer-input",""),o.setAttribute("role","textbox"),o.setAttribute("aria-multiline","true"),o.classList.add("persona-composer-contenteditable"),t.placeholder!=null&&o.setAttribute("data-placeholder",t.placeholder);let r=!1,s=0,i=()=>uv(o,n),l=F=>{o.replaceChildren();for(let B of F.blocks)if(B.kind==="text")B.value.length>0&&o.appendChild(document.createTextNode(B.value));else{n.set(B.id,B.ref);let H=e(B.ref);H.setAttribute("contenteditable","false"),H.setAttribute(Vs,B.id),o.appendChild(H)}},p=()=>{let B=o.getRootNode().activeElement;return B===o||B!=null&&o.contains(B)},c=(F,B)=>{if(s=F,!B?.focus&&!p())return;let H=typeof window<"u"?window.getSelection():null;if(!H)return;let w=js(o,F);try{let N=document.createRange();N.setStart(w.node,w.offset),N.collapse(!0),H.removeAllRanges(),H.addRange(N)}catch{}},d=()=>{o.dispatchEvent(new Event("input",{bubbles:!0}))},g=()=>{let F={start:s,end:s},B=typeof window<"u"?window.getSelection():null;if(!B||B.rangeCount===0)return F;let H=B.getRangeAt(0);if(!o.contains(H.startContainer))return F;let w=ef(o,H.startContainer,H.startOffset),N=H.collapsed?w:ef(o,H.endContainer,H.endOffset);return{start:Math.min(w,N),end:Math.max(w,N)}},b=()=>{let F=new Set;for(let B of Array.from(o.childNodes))qs(B)&&F.add(B.getAttribute(Vs));for(let B of Array.from(n.keys()))F.has(B)||(n.delete(B),t.onMentionRemoved?.(B))},f=()=>{r||n.size!==0&&b()},y=()=>{r=!0},C=()=>{r=!1,b()},M=F=>{F.preventDefault();let B=F.clipboardData?.getData("text/plain")??"";if(typeof document.execCommand=="function")document.execCommand("insertText",!1,B);else{let{start:H,end:w}=g(),N=Ea(i(),H,w,B);l(N.doc),c(N.caret,{focus:!0}),b()}d()},I=F=>{if(r)return;let B=F.inputType;if(B==="insertParagraph"){F.preventDefault();let{start:oe,end:Y}=g(),pe=Ea(i(),oe,Y,tf);l(pe.doc),c(pe.caret,{focus:!0}),n.size>0&&b(),d();return}if(B!=="deleteContentBackward"&&B!=="deleteContentForward"||n.size===0)return;let{start:H,end:w}=g();if(H!==w)return;let N=i(),K=Ma(N),te=B==="deleteContentBackward"?H-1:H;if(te<0||te>=K.length||K[te]!=="\uFFFC")return;let Q=0,se=null;for(let oe of N.blocks){let Y=oe.kind==="text"?oe.value.length:1;if(oe.kind==="mention"&&te>=Q&&te<Q+Y){se=oe.id;break}Q+=Y}if(!se)return;F.preventDefault();let J=Jg(N,se);l(J.doc),c(J.caret,{focus:!0}),b(),d()},S=(F,B)=>{l(Oc(F)),c(B)},E=(F,B)=>{if(!Number.isFinite(F)||!Number.isFinite(B)||B<=F)return null;try{let H=js(o,F),w=js(o,B),N=document.createRange();N.setStart(H.node,H.offset),N.setEnd(w.node,w.offset);let K=N.getBoundingClientRect();return K.width===0&&K.height===0?null:K}catch{return null}},L=(F,B,H)=>{let w=Ea(i(),F,B,H);l(w.doc),c(w.caret,{focus:!0})},D=(F,B)=>{let H=i(),w=Ma(H),N=B.triggerIndex,K=B.triggerIndex+1+B.query.length;if(N<0||K>w.length||w.slice(N+1,K)!==B.query)return null;let te=t.generateId(),Q=Fc(H,{start:N,end:K},F,te);return l(Q.doc),c(Q.caret,{focus:!0}),t.onMentionInserted?.(te,F),d(),te},z=F=>{let B=i(),H=g(),N=typeof window<"u"&&!!window.getSelection()?.rangeCount&&o.contains(window.getSelection().getRangeAt(0).startContainer)?{start:H.start,end:H.end}:{start:Ta(B),end:Ta(B)},K=t.generateId(),te=Fc(B,N,F,K);return l(te.doc),c(te.caret,{focus:!0}),t.onMentionInserted?.(K,F),d(),K},$=(F,B)=>{for(let H of Array.from(o.childNodes))if(qs(H)&&H.getAttribute(Vs)===F){let w=B==="error";if(H.classList.toggle(dv,w),w){H.hasAttribute(Us)||(H.setAttribute(Us,H.getAttribute("aria-label")??""),H.setAttribute($c,H.getAttribute("title")??""));let N=n.get(F)?.label??"";H.setAttribute("title",`${N}: failed to attach context`),H.setAttribute("aria-label",`${N}, failed to attach context`)}else if(H.hasAttribute(Us)){let N=H.getAttribute(Us),K=H.getAttribute($c);N?H.setAttribute("aria-label",N):H.removeAttribute("aria-label"),K?H.setAttribute("title",K):H.removeAttribute("title"),H.removeAttribute(Us),H.removeAttribute($c)}return}};return o.addEventListener("input",f),o.addEventListener("compositionstart",y),o.addEventListener("compositionend",C),o.addEventListener("paste",M),o.addEventListener("beforeinput",I),l(Yg()),{element:o,getValue:()=>Nc(i()),getLogicalText:()=>Ma(i()),getDocument:i,getSelection:g,setSelection:(F,B=F)=>{let H=typeof window<"u"?window.getSelection():null;if(H)try{let w=js(o,F),N=js(o,B),K=document.createRange();K.setStart(w.node,w.offset),K.setEnd(N.node,N.offset),H.removeAllRanges(),H.addRange(K)}catch{}},setValueWithCaret:S,getLogicalRangeRect:E,setValue:F=>{l(Oc(F)),o.focus(),c(F.length,{focus:!0}),d()},replaceLogicalRange:L,insertMentionAtTrigger:D,insertMentionAtSelection:z,setMentionStatus:$,submit:()=>Pc(o.closest("form")),dispatchInput:d,focus:()=>o.focus(),destroy:()=>{o.removeEventListener("input",f),o.removeEventListener("compositionstart",y),o.removeEventListener("compositionend",C),o.removeEventListener("paste",M),o.removeEventListener("beforeinput",I)}}}var dv,Vs,Us,$c,tf,rf=ht(()=>{"use strict";_c();Ic();dv="persona-mention-token-error",Vs="data-mention-id",Us="data-mention-prev-label",$c="data-mention-prev-title",tf=`
|
|
174
|
+
`});function mv(t,e){e.className=`${t.className} persona-composer-contenteditable`.trim();for(let r=0;r<t.style.length;r++){let s=t.style.item(r);s!=="height"&&e.style.setProperty(s,t.style.getPropertyValue(s),t.style.getPropertyPriority(s))}let n=t.getAttribute("placeholder");n&&(e.setAttribute("data-placeholder",n),e.setAttribute("aria-placeholder",n));let o=t.getAttribute("aria-label")??n;o&&e.setAttribute("aria-label",o)}function hv(t,e,n){Object.defineProperty(t,"value",{configurable:!0,get:()=>e.getValue(),set:o=>{e.setValueWithCaret(o,o.length),e.dispatchInput()}}),Object.defineProperty(t,"placeholder",{configurable:!0,get:()=>t.getAttribute("data-placeholder")??"",set:o=>{o?(t.setAttribute("data-placeholder",o),t.setAttribute("aria-placeholder",o),n||t.setAttribute("aria-label",o)):(t.removeAttribute("data-placeholder"),t.removeAttribute("aria-placeholder"),n||t.removeAttribute("aria-label"))}}),Object.defineProperty(t,"selectionStart",{configurable:!0,get:()=>e.getSelection().start}),Object.defineProperty(t,"selectionEnd",{configurable:!0,get:()=>e.getSelection().end}),t.setSelectionRange=(o,r)=>e.setSelection(o??0,r??o??0)}function sf(t){let{textarea:e}=t,n={generateId:fv,renderToken:t.renderToken,onMentionRemoved:t.onMentionRemoved,placeholder:e.getAttribute("placeholder")??void 0},o=of(n),r=o.element,s=e.getAttribute("aria-label")!=null;mv(e,r),hv(r,o,s),r.getInlineMessageFields=()=>Zg(o.getDocument?.()??{blocks:[]});let i=e.selectionStart??e.value.length;return o.setValueWithCaret(e.value,i),{input:o,element:r,destroy:o.destroy}}var gv,fv,af=ht(()=>{"use strict";rf();_c();gv=0,fv=()=>`pmention-${++gv}`});var lf={};Tr(lf,{mountInlineComposer:()=>sf});var cf=ht(()=>{"use strict";af()});var FC={};Tr(FC,{createThemePreview:()=>bh});module.exports=Tb(FC);var Er=t=>{let{fallbackImport:e,resetOnSetLoader:n=!1}=t,o=null,r=null,s=null;return{setLoader:d=>{o=d,n&&(r=null,s=null)},load:()=>r?Promise.resolve(r):s||(s=(o??e)().then(g=>(r=g,g)).catch(g=>{throw s=null,g}),s),provide:d=>{r=d},getSync:()=>r}};var{setLoader:qC,load:Eb,provide:KC,getSync:rc}=Er({fallbackImport:()=>Promise.resolve().then(()=>(Cu(),wu))}),Ki=new Set,kb=()=>{let t=[...Ki];Ki.clear();for(let e of t)try{e()}catch{}};var Lb=()=>{let t=rc();return t?Promise.resolve(t):Eb().then(e=>(kb(),e))},Gi=t=>rc()?()=>{}:(Ki.add(t),Lb().catch(()=>{}),()=>{Ki.delete(t)});var Jn=rc;var Pb=t=>{if(t)return t},sc=t=>{let e=null;return n=>{let o=Jn();if(!o)return vo(n);if(!e){let{Marked:r}=o,s=t?.markedOptions;e=new r({gfm:s?.gfm??!0,breaks:s?.breaks??!0,pedantic:s?.pedantic,silent:s?.silent});let i=Pb(t?.renderer);i&&e.use({renderer:i})}return e.parse(n)}},Qi=t=>t?sc({markedOptions:t.options,renderer:t.renderer}):sc(),XC=sc();var vo=t=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'");var Ib={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"]},Rb=/^data:image\/(?:png|jpe?g|gif|webp|bmp|x-icon|avif)/i,Wb=()=>{let t=null;return e=>{let n=Jn();if(!n)return vo(e);if(!t){let{DOMPurify:o}=n;t=o(typeof window<"u"?window:void 0),t.addHook("uponSanitizeAttribute",(r,s)=>{if(s.attrName==="src"||s.attrName==="href"){let i=s.attrValue;i.toLowerCase().startsWith("data:")&&!Rb.test(i)&&(s.attrValue="",s.keepAttr=!1)}})}return t.sanitize(e,Ib)}},Xi=t=>t===!1?null:typeof t=="function"?t:Wb();var Au=/^\s*\|?[\s:|-]*-[\s:|-]*$/,Su=t=>t.includes("|"),Mu=t=>{let e=t.trim();return e.startsWith("|")&&(e=e.slice(1)),e.endsWith("|")&&(e=e.slice(0,-1)),e.split("|").map(n=>n.trim())},Hb=t=>`| ${t.join(" | ")} |`,Bb=t=>`| ${Array.from({length:t},()=>"---").join(" | ")} |`,Db=(t,e)=>t.length>=e?t.slice(0,e):t.concat(Array.from({length:e-t.length},()=>"")),Tu=t=>{if(!t||!t.includes("|"))return t;let e=t.split(`
|
|
175
|
+
`),n=!1;for(let o=0;o<e.length-1;o++){let r=e[o],s=e[o+1];if(!Su(r)||Au.test(r)||!Au.test(s))continue;let i=Mu(r).length;if(i<1)continue;let l=Bb(i);e[o+1]!==l&&(e[o+1]=l,n=!0);let p=o+2;for(;p<e.length;p++){let c=e[p];if(c.trim()===""||!Su(c))break;let d=Hb(Db(Mu(c),i));e[p]!==d&&(e[p]=d,n=!0)}o=p-1}return n?e.join(`
|
|
176
|
+
`):t};var Eu="var(--persona-md-table-scroll-fade, 24px)",ku=new WeakSet;function Pu(t){t.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 Lu(t){let e=t.scrollWidth-t.clientWidth;if(e<=1){t.removeAttribute("data-persona-scroll-x");return}t.setAttribute("data-persona-scroll-x","");let o=getComputedStyle(t).direction==="rtl"?e+t.scrollLeft:t.scrollLeft,r=e-o;t.style.setProperty("--persona-fade-l",o<=1?"0px":Eu),t.style.setProperty("--persona-fade-r",r<=1?"0px":Eu)}function ic(t){ku.has(t)||(ku.add(t),t.addEventListener("scroll",e=>{let n=e.target;n?.classList?.contains("persona-table-scroll")&&Lu(n)},!0)),t.querySelectorAll(".persona-table-scroll").forEach(Lu)}var Zn="webmcp:",ac=new Map,Iu=t=>{ac.clear();for(let e of t){let n=e.title?.trim();n&&ac.set(e.name,n)}},ks=t=>ac.get(Bu(t)),Yi={warn(t,...e){typeof console<"u"&&typeof console.warn=="function"&&console.warn(`[Persona/WebMCP] ${t}`,...e)}},Ru=null;function Hu(t){if(t.length===0)return"0:empty";let e=t.map(n=>[n.name,n.description??"",n.parametersSchema?JSON.stringify(n.parametersSchema):"",n.origin??"",n.annotations?JSON.stringify(n.annotations):""].join("")).sort();return`${t.length}:${Ob(e.join(""))}`}function Wu(t,e){let n=3735928559^e,o=1103547991^e;for(let r=0;r<t.length;r++){let s=t.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 Ob(t){let e=Wu(t,0).toString(36),n=Wu(t,2654435761).toString(36);return`${e}.${n}`}var Ji=class{constructor(e){this.config=e;this.installed=!1;this.readyPromise=null;this.incompatibleContextWarned=!1;this.confirmHandler=e.onConfirm??null,this.timeoutMs=3e4}setConfirmHandler(e){this.confirmHandler=e}isOperational(){return this.config.enabled!==!0||!this.installed?!1:this.getModelContext()!==null}async snapshotForDispatch(){if(await this.ensureReady(),this.config.enabled!==!0)return[];let e=this.getModelContext();if(!e)return[];let n;try{n=await e.getTools()}catch(r){return Yi.warn("getTools() threw: shipping an empty WebMCP snapshot.",r),[]}Iu(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}:{}},i=Fb(r.inputSchema);return i&&(s.parametersSchema=i),s})}async executeToolCall(e,n,o){if(await this.ensureReady(),this.config.enabled!==!0)return Hn("WebMCP is not enabled on this widget.");let r=this.getModelContext();if(!r){let y=typeof document<"u"&&!!document.modelContext;return Hn(y?"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=Bu(e),i;try{i=await r.getTools()}catch(y){let C=y instanceof Error?y.message:String(y);return Hn(`Failed to read WebMCP registry: ${C}`)}Iu(i);let l=i.find(y=>y.name===s);if(!l)return Hn(`WebMCP tool not registered on this page: ${s}`);if(!this.passesClientAllowlist(s))return Hn(`WebMCP tool not allowed by client allowlist: ${s}`);if(o?.aborted)return Hn("Aborted by cancel()");let p=ks(s),c={toolName:s,args:n,description:l.description,...p?{title:p}:{},reason:"gate"};if(!await this.requestConfirm(c))return Hn("User declined the tool call.");if(o?.aborted)return Hn("Aborted by cancel()");let d=new AbortController,g=!1,b=setTimeout(()=>{g=!0,d.abort()},this.timeoutMs),f=()=>d.abort();o&&(o.aborted?d.abort():o.addEventListener("abort",f,{once:!0}));try{let y=await r.executeTool(l,Ub(n),{signal:d.signal});return _b(y)}catch(y){if(g)return Hn(`WebMCP tool '${s}' timed out after ${this.timeoutMs}ms`);if(o?.aborted)return Hn("Aborted by cancel()");let C=y instanceof Error?y.message:String(y);return Hn(C)}finally{clearTimeout(b),o&&o.removeEventListener("abort",f)}}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}(Ru?await Ru():await import("@mcp-b/webmcp-polyfill")).initializeWebMCPPolyfill(),this.installed=!0}catch(e){Yi.warn("Failed to load @mcp-b/webmcp-polyfill: WebMCP consumption disabled.",e),this.installed=!1}}getModelContext(){if(typeof document>"u")return null;let e=document.modelContext;if(!e||typeof e!="object")return null;let n=e;return typeof n.getTools!="function"||typeof n.executeTool!="function"?(this.incompatibleContextWarned||(this.incompatibleContextWarned=!0,Yi.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):e}async requestConfirm(e){let n=this.confirmHandler??$b;try{return await n(e)}catch(o){return Yi.warn(`Confirm handler threw for WebMCP tool '${e.toolName}'; declining.`,o),!1}}passesClientAllowlist(e){let n=this.config.allowlist;return!n||n.length===0?!0:n.some(o=>Nb(e,o))}},Bu=t=>t.startsWith(Zn)?t.slice(Zn.length):t,kr=t=>t.startsWith(Zn),Nb=(t,e)=>{if(e==="*")return!0;let n=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&");return new RegExp("^"+n.replace(/\*/g,".*")+"$").test(t)},Fb=t=>{if(!(t===void 0||t===""))try{let e=JSON.parse(t);return e!==null&&typeof e=="object"?e:void 0}catch{return}},_b=t=>{if(t==null)return{content:[{type:"text",text:""}]};let e;try{e=JSON.parse(t)}catch{return{content:[{type:"text",text:t}]}}return e!==null&&typeof e=="object"&&Array.isArray(e.content)?e:{content:[{type:"text",text:typeof e=="string"?e:jb(e)}]}},Hn=t=>({isError:!0,content:[{type:"text",text:t}]}),$b=async t=>{if(typeof window>"u"||typeof window.confirm!="function")return!1;let e=zb(t.args),n=`Allow the AI to call ${t.toolName}`+(e?`
|
|
177
177
|
|
|
178
178
|
Arguments:
|
|
179
179
|
${e}`:"")+(t.description?`
|
|
180
180
|
|
|
181
|
-
${t.description}`:"");return window.confirm(n)},Mh=t=>{if(t==null)return"";try{let e=JSON.stringify(t,null,2);return e.length>500?e.slice(0,500)+"\u2026":e}catch{return String(t)}},Th=t=>{if(t===void 0)return"{}";try{let e=JSON.stringify(t);return e===void 0?"{}":e}catch{return"{}"}},Eh=t=>{if(t===void 0)return"";try{return JSON.stringify(t)}catch{return String(t)}};function bn(t){return t==="card"?"collapsed":t}function dr(t){return t.split(";",1)[0].trim().toLowerCase()}function kh(t,e){if(!t)return;let n=Object.entries(t);for(let[r,s]of n)if(dr(r)===e)return{mode:bn(s),selector:dr(r)};let o=`${e.split("/",1)[0]}/*`;for(let[r,s]of n)if(dr(r)===o)return{mode:bn(s),selector:o}}function Lh(t,e){let n=t?.display,o=typeof n=="string"?{default:n}:n??{};if(e.file&&o.files){if(typeof o.files=="string")return{mode:bn(o.files),matchedBy:{type:"files"}};let l=e.file.mimeType?dr(e.file.mimeType):void 0,p=l?kh(o.files.byMediaType,l):void 0;if(l&&p)return{mode:p.mode,matchedBy:{type:"mediaType",mediaType:l,selector:p.selector}};if(o.files.default)return{mode:bn(o.files.default),matchedBy:{type:"files"}}}let r=o.byKind?.[e.artifactType];if(r)return{mode:bn(r),matchedBy:{type:"kind",kind:e.artifactType,configuredBy:"byKind"}};let s=o.byType?.[e.artifactType];if(s)return{mode:bn(s),matchedBy:{type:"kind",kind:e.artifactType,configuredBy:"byType"}};let i=e.presentation?.preferredMode;return i?{mode:bn(i),matchedBy:{type:"preferredMode"}}:o.default?{mode:bn(o.default),matchedBy:{type:"default"}}:{mode:"panel",matchedBy:{type:"personaDefault"}}}function uo(t,e){return Lh(t,e).mode}function ds(t,e){return JSON.stringify({component:t==="inline"?"PersonaArtifactInline":"PersonaArtifactCard",props:{artifactId:e.artifactId,title:e.title,artifactType:e.artifactType,status:e.status,...e.file?{file:e.file}:{},...e.presentation?{presentation:e.presentation}:{},...t==="inline"&&e.component?{component:e.component}:{},...t==="inline"&&e.componentProps?{componentProps:e.componentProps}:{},...e.markdown!==void 0?{markdown:e.markdown}:{}}})}var Ph="agent_",Ih="flow_";function Np(t){return t.startsWith(Ph)?{kind:"agentId",agentId:t}:t.startsWith(Ih)?{kind:"flowId",flowId:t}:null}function Op(t,e){let n=t.trim();if(!n)throw new Error("[Persona] `target` is empty.");let o=n.indexOf(":");if(o>0){let i=n.slice(0,o),l=n.slice(o+1);if(i==="runtype"){let c=Np(l);if(c)return c;throw new Error(`[Persona] target "runtype:${l}" is not a valid Runtype agent_/flow_ id.`)}let p=e?.[i];if(!p)throw new Error(`[Persona] No target provider registered for "${i}". Add a \`targetProviders.${i}\` resolver, or use a Runtype agent_/flow_ id.`);return{kind:"payload",payload:p(l).payload}}let r=Np(n);if(r)return r;let s=e?.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.`)}var go=require("partial-json");Je();var Ml="ask_user_question",ps=8,pr="data-persona-ask-sheet-for",Rh="Other",Wh="Other\u2026",$p="Type your own answer here",zp="Send",Hh="Next",Bh="Back",Dh="Submit all",Nh="Skip",Oh=3,Tl="data-ask-current-index",El="data-ask-question-count",Up="data-ask-answers",kl="data-ask-grouped",jp="data-ask-layout",Fh=t=>t.layout==="pills"?"pills":"rows",_h=t=>t.getAttribute(jp)==="pills"?"pills":"rows",_p=!1,Vp=t=>t.replace(/["\\]/g,"\\$&"),Oo=t=>t.variant==="tool"&&!!t.toolCall&&t.toolCall.name===Ml,Ll=t=>t?.features?.askUserQuestion??{},ur=t=>{let e=t.toolCall;if(!e)return{payload:null,complete:!1};let n=e.status==="complete";if(e.args&&typeof e.args=="object")return{payload:e.args,complete:n};let o=e.chunks;if(!o||o.length===0)return{payload:null,complete:n};try{let r=o.join(""),s=(0,go.parse)(r,go.STR|go.OBJ|go.ARR);if(s&&typeof s=="object")return{payload:s,complete:n}}catch{}return{payload:null,complete:n}},us=t=>{let e=Array.isArray(t?.questions)?t.questions:[];return e.length>ps&&!_p&&(_p=!0,typeof console<"u"&&console.warn(`[AgentWidget] ask_user_question received ${e.length} questions; truncating to ${ps}.`)),e.slice(0,ps)},$h=t=>us(t)[0]??null,zh=(t,e)=>us(t)[e]??null,Uh=(t,e)=>{let n=e.styles;n&&(n.sheetBackground&&t.style.setProperty("--persona-ask-sheet-bg",n.sheetBackground),n.sheetBorder&&t.style.setProperty("--persona-ask-sheet-border",n.sheetBorder),n.sheetShadow&&t.style.setProperty("--persona-ask-sheet-shadow",n.sheetShadow),n.pillBackground&&t.style.setProperty("--persona-ask-pill-bg",n.pillBackground),n.pillBackgroundSelected&&t.style.setProperty("--persona-ask-pill-bg-selected",n.pillBackgroundSelected),n.pillTextColor&&t.style.setProperty("--persona-ask-pill-fg",n.pillTextColor),n.pillTextColorSelected&&t.style.setProperty("--persona-ask-pill-fg-selected",n.pillTextColorSelected),n.pillBorderRadius&&t.style.setProperty("--persona-ask-pill-radius",n.pillBorderRadius),n.customInputBackground&&t.style.setProperty("--persona-ask-input-bg",n.customInputBackground))},qp=(t,e,n)=>{if(t!=="rows")return null;let o=v("span","persona-ask-row-affordance");if(o.setAttribute("aria-hidden","true"),e){let r=v("span","persona-ask-row-check");o.appendChild(r)}else{let r=v("span","persona-ask-row-badge");r.textContent=String(n+1),o.appendChild(r)}return o},jh=(t,e,n,o)=>{let s=v("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(e)),s.setAttribute("data-option-label",t.label),n==="rows"){let i=v("span","persona-ask-row-content"),l=v("span","persona-ask-row-label");if(l.textContent=t.label,i.appendChild(l),t.description){let c=v("span","persona-ask-row-description");c.textContent=t.description,i.appendChild(c)}s.appendChild(i);let p=qp(n,o,e);p&&s.appendChild(p)}else s.textContent=t.label,t.description&&(s.title=t.description);return s},Vh=t=>{let n=v("span",t==="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},qh=(t,e,n,o)=>{let s=v("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 i=!!t?.multiSelect,p=(Array.isArray(t?.options)?t.options:[]).filter(d=>d&&typeof d.label=="string"&&d.label.length>0);if(p.length===0&&!n){for(let d=0;d<Oh;d++)s.appendChild(Vh(o));return s}if(p.forEach((d,u)=>{s.appendChild(jh(d,u,o,i))}),t?.allowFreeText!==!1){let d=o==="rows"?Rh:Wh;if(o==="rows"){let u=v("div","persona-ask-pill persona-ask-row persona-ask-row--other persona-ask-pill-custom persona-pointer-events-auto");u.setAttribute("data-ask-user-action","focus-free-text"),u.setAttribute("data-option-index",String(p.length)),u.setAttribute("data-ask-other-row","true");let b=v("span","persona-ask-row-content"),g=document.createElement("input");g.type="text",g.className="persona-ask-row-input persona-flex-1 persona-pointer-events-auto",g.placeholder=e.freeTextPlaceholder??$p,g.setAttribute("data-ask-free-text-input","true"),g.setAttribute("aria-label",e.freeTextLabel??d),b.appendChild(g),u.appendChild(b);let h=qp(o,i,p.length);h&&u.appendChild(h),s.appendChild(u)}else{let u=v("button","persona-ask-pill persona-ask-pill-custom persona-pointer-events-auto");u.type="button",u.setAttribute("data-ask-user-action","open-free-text"),u.textContent=e.freeTextLabel??d,s.appendChild(u)}}return s},Kp=(t,e)=>{let o=v("div",e==="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=t.freeTextPlaceholder??$p,r.setAttribute("data-ask-free-text-input","true"),o.appendChild(r),e!=="rows"){let s=v("button","persona-ask-free-text-submit persona-pointer-events-auto");s.type="button",s.textContent=t.submitLabel??zp,s.setAttribute("data-ask-user-action","submit-free-text"),o.appendChild(s)}return o},Kh=t=>{let e=v("div","persona-ask-multi-actions persona-flex persona-justify-end persona-mt-2");e.setAttribute("data-ask-multi-actions","true");let n=v("button","persona-ask-multi-submit persona-pointer-events-auto");return n.type="button",n.textContent=t.submitLabel??zp,n.setAttribute("data-ask-user-action","submit-multi"),n.disabled=!0,e.appendChild(n),e},Gh=(t,e,n)=>{let o=v("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=v("button","persona-ask-nav-back persona-pointer-events-auto");r.type="button",r.textContent=n.backLabel??Bh,r.setAttribute("data-ask-user-action","back"),r.disabled=t===0,o.appendChild(r);let s=v("div","persona-ask-nav-right persona-flex persona-items-center persona-gap-2"),i=v("button","persona-ask-nav-skip persona-pointer-events-auto");i.type="button",i.textContent=n.skipLabel??Nh,i.setAttribute("data-ask-user-action","skip"),s.appendChild(i);let l=v("button","persona-ask-nav-next persona-pointer-events-auto");l.type="button";let p=t===e-1;return l.textContent=p?n.submitAllLabel??Dh:n.nextLabel??Hh,l.setAttribute("data-ask-user-action",p?"submit-all":"next"),l.disabled=!0,s.appendChild(l),o.appendChild(s),o},Fo=t=>{let e=t.getAttribute(Up);if(!e)return{};try{let n=JSON.parse(e);return n&&typeof n=="object"?n:{}}catch{return{}}},Gp=(t,e)=>{t.setAttribute(Up,JSON.stringify(e))},vn=t=>{let e=Number(t.getAttribute(Tl)??"0");return Number.isFinite(e)?Math.max(0,Math.floor(e)):0},Qh=(t,e)=>{t.setAttribute(Tl,String(Math.max(0,Math.floor(e))))},gr=t=>{let e=Number(t.getAttribute(El)??"1");return Number.isFinite(e)?Math.max(1,Math.floor(e)):1},fo=t=>t.getAttribute(kl)==="true",Xh=(t,e)=>{let n=t.agentMetadata?.askUserQuestionAnswers;if(!n||typeof n!="object")return{};let o={};return e.forEach((r,s)=>{let i=typeof r?.question=="string"?r.question:"";if(i&&Object.prototype.hasOwnProperty.call(n,i)){let l=n[i];(typeof l=="string"||Array.isArray(l))&&(o[s]=l)}}),o},Jh=(t,e)=>{let n=t.agentMetadata?.askUserQuestionIndex;return typeof n!="number"||!Number.isFinite(n)?0:Math.max(0,Math.min(e-1,Math.floor(n)))},Wi=(t,e)=>{let{payload:n}=ur(e),o=us(n),r=Fo(t),s={},i=new Set;return o.forEach((l,p)=>{let c=typeof l?.question=="string"?l.question:"";c&&(i.has(c)&&typeof console<"u"&&console.warn(`[AgentWidget] ask_user_question has duplicate question text "${c}"; later answer wins.`),i.add(c),Object.prototype.hasOwnProperty.call(r,p)&&(s[c]=r[p]))}),s},Qp=t=>{let e=Fo(t),n=vn(t),o=e[n],r=new Set;typeof o=="string"?r.add(o):Array.isArray(o)&&o.forEach(p=>r.add(p));let s=t.querySelectorAll('[data-ask-user-action="pick"][data-option-label]');s.forEach(p=>{let c=p.getAttribute("data-option-label")??"",d=r.has(c);p.setAttribute("aria-pressed",d?"true":"false"),p.classList.toggle("persona-ask-pill-selected",d)});let i=new Set(Array.from(s).map(p=>p.getAttribute("data-option-label")??"")),l=t.querySelector('[data-ask-free-text-input="true"]');l&&(typeof o=="string"&&o.length>0&&!i.has(o)?(l.value=o,l.closest('[data-ask-free-text-row="true"]')?.classList.remove("persona-hidden")):l.value="")},Xp=t=>{if(!fo(t))return;let e=Fo(t),n=vn(t),o=e[n],r=typeof o=="string"&&o.length>0||Array.isArray(o)&&o.length>0,s=t.querySelector('[data-ask-user-action="next"], [data-ask-user-action="submit-all"]');s&&(s.disabled=!r);let i=t.querySelector('[data-ask-user-action="submit-multi"]');if(i){let l=Array.from(t.querySelectorAll('[aria-pressed="true"][data-option-label]'));i.disabled=l.length===0}},Pl=(t,e,n)=>{let o=Ll(n),r=_h(t),{payload:s,complete:i}=ur(e),l=fo(t),p=vn(t),c=gr(t),d=l?zh(s,p):$h(s),u=!!d?.multiSelect,b=t.querySelector('[data-ask-step-inline="true"]');b&&(b.textContent=l?`${p+1}/${c}`:"");let g=t.querySelector('[data-ask-stepper="true"]');g&&g.remove();let h=t.querySelector('[data-ask-question="true"]');if(h){let k=typeof d?.question=="string"?d.question:"";h.textContent=k,h.classList.toggle("persona-ask-question-skeleton",!k&&!i)}let C=t.querySelector('[data-ask-pill-list="true"]');if(C){let k=qh(d,o,i,r);C.replaceWith(k)}if(r!=="rows"){let k=t.querySelector('[data-ask-free-text-row="true"]');k&&k.replaceWith(Kp(o,r))}let L=t.querySelector('[data-ask-multi-actions="true"]');!l&&u&&!L?t.appendChild(Kh(o)):(!u||l)&&L&&L.remove(),t.setAttribute("data-multi-select",u?"true":"false");let B=t.querySelector('[data-ask-nav-row="true"]');if(l){let k=Gh(p,c,o);B?B.replaceWith(k):t.appendChild(k)}else B&&B.remove();Qp(t),Xp(t)},Yh=(t,e,n)=>{let o=Ll(e),r=Fh(o),s=t.toolCall.id,i=us(n),l=Math.max(1,i.length),p=l>1,c=Xh(t,i),d=p?Jh(t,l):0,u=v("div",["persona-ask-sheet",`persona-ask-sheet--${r}`,"persona-pointer-events-auto","persona-ask-sheet-enter"].join(" "));u.setAttribute(pr,s),u.setAttribute("data-tool-call-id",s),u.setAttribute("data-message-id",t.id),u.setAttribute(El,String(l)),u.setAttribute(Tl,String(d)),u.setAttribute(kl,p?"true":"false"),u.setAttribute(jp,r),Gp(u,c),u.setAttribute("role","group"),u.setAttribute("aria-label","Suggested answers"),o.slideInMs!==void 0&&u.style.setProperty("--persona-ask-sheet-duration",`${o.slideInMs}ms`),Uh(u,o);let b=v("div","persona-ask-sheet-header persona-flex persona-items-center persona-gap-3"),g=v("div","persona-ask-sheet-question persona-flex-1");g.setAttribute("data-ask-question","true"),g.textContent="",b.appendChild(g);let h=v("span","persona-ask-sheet-step-inline");h.setAttribute("data-ask-step-inline","true"),h.textContent="",b.appendChild(h),u.appendChild(b);let L=v("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 L.setAttribute("data-ask-pill-list","true"),L.setAttribute("role","group"),u.appendChild(L),r!=="rows"&&u.appendChild(Kp(o,r)),Pl(u,t,e),requestAnimationFrame(()=>{requestAnimationFrame(()=>u.classList.remove("persona-ask-sheet-enter"))}),u},Zh=(t,e,n)=>{let{payload:o}=ur(e),r=Math.max(1,us(o).length);r>gr(t)&&(t.setAttribute(El,String(r)),r>1&&!fo(t)&&t.setAttribute(kl,"true")),Pl(t,e,n)};var Hi=(t,e,n)=>{if(!n||!Oo(t)||Ll(e).enabled===!1)return;let r=t.toolCall.id;n.querySelectorAll(`[${pr}]`).forEach(c=>{c.getAttribute(pr)!==r&&c.remove()});let i=n.querySelector(`[${pr}="${Vp(r)}"]`);if(i){Zh(i,t,e);return}let{payload:l}=ur(t),p=Yh(t,e,l);n.appendChild(p)},fr=(t,e)=>{if(!t)return;let n=e?`[${pr}="${Vp(e)}"]`:`[${pr}]`;t.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)})},Il=t=>Array.from(t.querySelectorAll('[aria-pressed="true"][data-option-label]')).map(e=>e.getAttribute("data-option-label")).filter(e=>typeof e=="string"&&e.length>0),mo=(t,e)=>{let n=Fo(t),o=vn(t);typeof e=="string"&&e.length===0||Array.isArray(e)&&e.length===0?delete n[o]:n[o]=e,Gp(t,n),Qp(t),Xp(t)},Bi=(t,e,n,o)=>{let r=gr(t),s=Math.max(0,Math.min(r-1,o));Qh(t,s),Pl(t,e,n)};var qn="suggest_replies";var ey={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},Yp={name:qn,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:ey,origin:"sdk",annotations:{readOnlyHint:!0}},Rl=()=>({content:[{type:"text",text:"Suggestions shown to the user."}]}),gs=t=>t.variant==="tool"&&t.toolCall?.name===qn,ty=t=>{let e=t;if(typeof e=="string")try{e=JSON.parse(e)}catch{return[]}let n=e?.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 i={label:s.label.trim()};return typeof s.prompt=="string"&&s.prompt.trim()&&(i.prompt=s.prompt.trim()),typeof s.description=="string"&&s.description.trim()&&(i.description=s.description.trim()),[i]});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},Zp=t=>{for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.role==="user")return null;if(!gs(n))continue;let o=ty(n.toolCall?.args);return o.length>0?o:null}return null},Jp=new Set,ny=(t,e,n)=>{let o=`${t}:${e}:${n}`;Jp.has(o)||(Jp.add(o),console.warn(`[persona] suggestions.followUps.${t} and features.suggestReplies.${t} disagree; suggestions.followUps.${t} wins.`))},ho=t=>{let e=t?.suggestions?.followUps,n=t?.features?.suggestReplies,o=i=>{let l=e?.[i],p=n?.[i];l===void 0||p===void 0||l!==p&&ny(i,p,l)};t&&(o("enabled"),o("expose"));let r=e?.enabled??n?.enabled??!0,s=r?e?.expose??n?.expose??!1:!1;return{enabled:r,expose:s}};var oy={type:"object",properties:{questions:{type:"array",minItems:1,maxItems:ps,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},ry={name:Ml,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:oy,origin:"sdk",annotations:{readOnlyHint:!0}},Di=t=>{let e=[],n=t?.features?.askUserQuestion;return n?.expose===!0&&n.enabled!==!1&&e.push(ry),ho(t).expose&&e.push(Yp),e};var mr=require("partial-json"),eu=t=>t.replace(/\\n/g,`
|
|
182
|
-
`).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\"),
|
|
181
|
+
${t.description}`:"");return window.confirm(n)},zb=t=>{if(t==null)return"";try{let e=JSON.stringify(t,null,2);return e.length>500?e.slice(0,500)+"\u2026":e}catch{return String(t)}},Ub=t=>{if(t===void 0)return"{}";try{let e=JSON.stringify(t);return e===void 0?"{}":e}catch{return"{}"}},jb=t=>{if(t===void 0)return"";try{return JSON.stringify(t)}catch{return String(t)}};function wn(t){return t==="card"?"collapsed":t}function Lr(t){return t.split(";",1)[0].trim().toLowerCase()}function Vb(t,e){if(!t)return;let n=Object.entries(t);for(let[r,s]of n)if(Lr(r)===e)return{mode:wn(s),selector:Lr(r)};let o=`${e.split("/",1)[0]}/*`;for(let[r,s]of n)if(Lr(r)===o)return{mode:wn(s),selector:o}}function qb(t,e){let n=t?.display,o=typeof n=="string"?{default:n}:n??{};if(e.file&&o.files){if(typeof o.files=="string")return{mode:wn(o.files),matchedBy:{type:"files"}};let l=e.file.mimeType?Lr(e.file.mimeType):void 0,p=l?Vb(o.files.byMediaType,l):void 0;if(l&&p)return{mode:p.mode,matchedBy:{type:"mediaType",mediaType:l,selector:p.selector}};if(o.files.default)return{mode:wn(o.files.default),matchedBy:{type:"files"}}}let r=o.byKind?.[e.artifactType];if(r)return{mode:wn(r),matchedBy:{type:"kind",kind:e.artifactType,configuredBy:"byKind"}};let s=o.byType?.[e.artifactType];if(s)return{mode:wn(s),matchedBy:{type:"kind",kind:e.artifactType,configuredBy:"byType"}};let i=e.presentation?.preferredMode;return i?{mode:wn(i),matchedBy:{type:"preferredMode"}}:o.default?{mode:wn(o.default),matchedBy:{type:"default"}}:{mode:"panel",matchedBy:{type:"personaDefault"}}}function xo(t,e){return qb(t,e).mode}function Ls(t,e){return JSON.stringify({component:t==="inline"?"PersonaArtifactInline":"PersonaArtifactCard",props:{artifactId:e.artifactId,title:e.title,artifactType:e.artifactType,status:e.status,...e.file?{file:e.file}:{},...e.presentation?{presentation:e.presentation}:{},...t==="inline"&&e.component?{component:e.component}:{},...t==="inline"&&e.componentProps?{componentProps:e.componentProps}:{},...e.markdown!==void 0?{markdown:e.markdown}:{}}})}var Kb="agent_",Gb="flow_";function Du(t){return t.startsWith(Kb)?{kind:"agentId",agentId:t}:t.startsWith(Gb)?{kind:"flowId",flowId:t}:null}function Ou(t,e){let n=t.trim();if(!n)throw new Error("[Persona] `target` is empty.");let o=n.indexOf(":");if(o>0){let i=n.slice(0,o),l=n.slice(o+1);if(i==="runtype"){let c=Du(l);if(c)return c;throw new Error(`[Persona] target "runtype:${l}" is not a valid Runtype agent_/flow_ id.`)}let p=e?.[i];if(!p)throw new Error(`[Persona] No target provider registered for "${i}". Add a \`targetProviders.${i}\` resolver, or use a Runtype agent_/flow_ id.`);return{kind:"payload",payload:p(l).payload}}let r=Du(n);if(r)return r;let s=e?.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.`)}var wo=require("partial-json");Ye();var lc="ask_user_question",Ps=8,Pr="data-persona-ask-sheet-for",Qb="Other",Xb="Other\u2026",_u="Type your own answer here",$u="Send",Yb="Next",Jb="Back",Zb="Submit all",ey="Skip",ty=3,cc="data-ask-current-index",dc="data-ask-question-count",zu="data-ask-answers",pc="data-ask-grouped",Uu="data-ask-layout",ny=t=>t.layout==="pills"?"pills":"rows",oy=t=>t.getAttribute(Uu)==="pills"?"pills":"rows",Fu=!1,ju=t=>t.replace(/["\\]/g,"\\$&"),Yo=t=>t.variant==="tool"&&!!t.toolCall&&t.toolCall.name===lc,uc=t=>t?.features?.askUserQuestion??{},Ir=t=>{let e=t.toolCall;if(!e)return{payload:null,complete:!1};let n=e.status==="complete";if(e.args&&typeof e.args=="object")return{payload:e.args,complete:n};let o=e.chunks;if(!o||o.length===0)return{payload:null,complete:n};try{let r=o.join(""),s=(0,wo.parse)(r,wo.STR|wo.OBJ|wo.ARR);if(s&&typeof s=="object")return{payload:s,complete:n}}catch{}return{payload:null,complete:n}},Is=t=>{let e=Array.isArray(t?.questions)?t.questions:[];return e.length>Ps&&!Fu&&(Fu=!0,typeof console<"u"&&console.warn(`[AgentWidget] ask_user_question received ${e.length} questions; truncating to ${Ps}.`)),e.slice(0,Ps)},ry=t=>Is(t)[0]??null,sy=(t,e)=>Is(t)[e]??null,iy=(t,e)=>{let n=e.styles;n&&(n.sheetBackground&&t.style.setProperty("--persona-ask-sheet-bg",n.sheetBackground),n.sheetBorder&&t.style.setProperty("--persona-ask-sheet-border",n.sheetBorder),n.sheetShadow&&t.style.setProperty("--persona-ask-sheet-shadow",n.sheetShadow),n.pillBackground&&t.style.setProperty("--persona-ask-pill-bg",n.pillBackground),n.pillBackgroundSelected&&t.style.setProperty("--persona-ask-pill-bg-selected",n.pillBackgroundSelected),n.pillTextColor&&t.style.setProperty("--persona-ask-pill-fg",n.pillTextColor),n.pillTextColorSelected&&t.style.setProperty("--persona-ask-pill-fg-selected",n.pillTextColorSelected),n.pillBorderRadius&&t.style.setProperty("--persona-ask-pill-radius",n.pillBorderRadius),n.customInputBackground&&t.style.setProperty("--persona-ask-input-bg",n.customInputBackground))},Vu=(t,e,n)=>{if(t!=="rows")return null;let o=v("span","persona-ask-row-affordance");if(o.setAttribute("aria-hidden","true"),e){let r=v("span","persona-ask-row-check");o.appendChild(r)}else{let r=v("span","persona-ask-row-badge");r.textContent=String(n+1),o.appendChild(r)}return o},ay=(t,e,n,o)=>{let s=v("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(e)),s.setAttribute("data-option-label",t.label),n==="rows"){let i=v("span","persona-ask-row-content"),l=v("span","persona-ask-row-label");if(l.textContent=t.label,i.appendChild(l),t.description){let c=v("span","persona-ask-row-description");c.textContent=t.description,i.appendChild(c)}s.appendChild(i);let p=Vu(n,o,e);p&&s.appendChild(p)}else s.textContent=t.label,t.description&&(s.title=t.description);return s},ly=t=>{let n=v("span",t==="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},cy=(t,e,n,o)=>{let s=v("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 i=!!t?.multiSelect,p=(Array.isArray(t?.options)?t.options:[]).filter(d=>d&&typeof d.label=="string"&&d.label.length>0);if(p.length===0&&!n){for(let d=0;d<ty;d++)s.appendChild(ly(o));return s}if(p.forEach((d,g)=>{s.appendChild(ay(d,g,o,i))}),t?.allowFreeText!==!1){let d=o==="rows"?Qb:Xb;if(o==="rows"){let g=v("div","persona-ask-pill persona-ask-row persona-ask-row--other persona-ask-pill-custom persona-pointer-events-auto");g.setAttribute("data-ask-user-action","focus-free-text"),g.setAttribute("data-option-index",String(p.length)),g.setAttribute("data-ask-other-row","true");let b=v("span","persona-ask-row-content"),f=document.createElement("input");f.type="text",f.className="persona-ask-row-input persona-flex-1 persona-pointer-events-auto",f.placeholder=e.freeTextPlaceholder??_u,f.setAttribute("data-ask-free-text-input","true"),f.setAttribute("aria-label",e.freeTextLabel??d),b.appendChild(f),g.appendChild(b);let y=Vu(o,i,p.length);y&&g.appendChild(y),s.appendChild(g)}else{let g=v("button","persona-ask-pill persona-ask-pill-custom persona-pointer-events-auto");g.type="button",g.setAttribute("data-ask-user-action","open-free-text"),g.textContent=e.freeTextLabel??d,s.appendChild(g)}}return s},qu=(t,e)=>{let o=v("div",e==="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=t.freeTextPlaceholder??_u,r.setAttribute("data-ask-free-text-input","true"),o.appendChild(r),e!=="rows"){let s=v("button","persona-ask-free-text-submit persona-pointer-events-auto");s.type="button",s.textContent=t.submitLabel??$u,s.setAttribute("data-ask-user-action","submit-free-text"),o.appendChild(s)}return o},dy=t=>{let e=v("div","persona-ask-multi-actions persona-flex persona-justify-end persona-mt-2");e.setAttribute("data-ask-multi-actions","true");let n=v("button","persona-ask-multi-submit persona-pointer-events-auto");return n.type="button",n.textContent=t.submitLabel??$u,n.setAttribute("data-ask-user-action","submit-multi"),n.disabled=!0,e.appendChild(n),e},py=(t,e,n)=>{let o=v("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=v("button","persona-ask-nav-back persona-pointer-events-auto");r.type="button",r.textContent=n.backLabel??Jb,r.setAttribute("data-ask-user-action","back"),r.disabled=t===0,o.appendChild(r);let s=v("div","persona-ask-nav-right persona-flex persona-items-center persona-gap-2"),i=v("button","persona-ask-nav-skip persona-pointer-events-auto");i.type="button",i.textContent=n.skipLabel??ey,i.setAttribute("data-ask-user-action","skip"),s.appendChild(i);let l=v("button","persona-ask-nav-next persona-pointer-events-auto");l.type="button";let p=t===e-1;return l.textContent=p?n.submitAllLabel??Zb:n.nextLabel??Yb,l.setAttribute("data-ask-user-action",p?"submit-all":"next"),l.disabled=!0,s.appendChild(l),o.appendChild(s),o},Jo=t=>{let e=t.getAttribute(zu);if(!e)return{};try{let n=JSON.parse(e);return n&&typeof n=="object"?n:{}}catch{return{}}},Ku=(t,e)=>{t.setAttribute(zu,JSON.stringify(e))},Cn=t=>{let e=Number(t.getAttribute(cc)??"0");return Number.isFinite(e)?Math.max(0,Math.floor(e)):0},uy=(t,e)=>{t.setAttribute(cc,String(Math.max(0,Math.floor(e))))},Rr=t=>{let e=Number(t.getAttribute(dc)??"1");return Number.isFinite(e)?Math.max(1,Math.floor(e)):1},Co=t=>t.getAttribute(pc)==="true",gy=(t,e)=>{let n=t.agentMetadata?.askUserQuestionAnswers;if(!n||typeof n!="object")return{};let o={};return e.forEach((r,s)=>{let i=typeof r?.question=="string"?r.question:"";if(i&&Object.prototype.hasOwnProperty.call(n,i)){let l=n[i];(typeof l=="string"||Array.isArray(l))&&(o[s]=l)}}),o},fy=(t,e)=>{let n=t.agentMetadata?.askUserQuestionIndex;return typeof n!="number"||!Number.isFinite(n)?0:Math.max(0,Math.min(e-1,Math.floor(n)))},Zi=(t,e)=>{let{payload:n}=Ir(e),o=Is(n),r=Jo(t),s={},i=new Set;return o.forEach((l,p)=>{let c=typeof l?.question=="string"?l.question:"";c&&(i.has(c)&&typeof console<"u"&&console.warn(`[AgentWidget] ask_user_question has duplicate question text "${c}"; later answer wins.`),i.add(c),Object.prototype.hasOwnProperty.call(r,p)&&(s[c]=r[p]))}),s},Gu=t=>{let e=Jo(t),n=Cn(t),o=e[n],r=new Set;typeof o=="string"?r.add(o):Array.isArray(o)&&o.forEach(p=>r.add(p));let s=t.querySelectorAll('[data-ask-user-action="pick"][data-option-label]');s.forEach(p=>{let c=p.getAttribute("data-option-label")??"",d=r.has(c);p.setAttribute("aria-pressed",d?"true":"false"),p.classList.toggle("persona-ask-pill-selected",d)});let i=new Set(Array.from(s).map(p=>p.getAttribute("data-option-label")??"")),l=t.querySelector('[data-ask-free-text-input="true"]');l&&(typeof o=="string"&&o.length>0&&!i.has(o)?(l.value=o,l.closest('[data-ask-free-text-row="true"]')?.classList.remove("persona-hidden")):l.value="")},Qu=t=>{if(!Co(t))return;let e=Jo(t),n=Cn(t),o=e[n],r=typeof o=="string"&&o.length>0||Array.isArray(o)&&o.length>0,s=t.querySelector('[data-ask-user-action="next"], [data-ask-user-action="submit-all"]');s&&(s.disabled=!r);let i=t.querySelector('[data-ask-user-action="submit-multi"]');if(i){let l=Array.from(t.querySelectorAll('[aria-pressed="true"][data-option-label]'));i.disabled=l.length===0}},gc=(t,e,n)=>{let o=uc(n),r=oy(t),{payload:s,complete:i}=Ir(e),l=Co(t),p=Cn(t),c=Rr(t),d=l?sy(s,p):ry(s),g=!!d?.multiSelect,b=t.querySelector('[data-ask-step-inline="true"]');b&&(b.textContent=l?`${p+1}/${c}`:"");let f=t.querySelector('[data-ask-stepper="true"]');f&&f.remove();let y=t.querySelector('[data-ask-question="true"]');if(y){let S=typeof d?.question=="string"?d.question:"";y.textContent=S,y.classList.toggle("persona-ask-question-skeleton",!S&&!i)}let C=t.querySelector('[data-ask-pill-list="true"]');if(C){let S=cy(d,o,i,r);C.replaceWith(S)}if(r!=="rows"){let S=t.querySelector('[data-ask-free-text-row="true"]');S&&S.replaceWith(qu(o,r))}let M=t.querySelector('[data-ask-multi-actions="true"]');!l&&g&&!M?t.appendChild(dy(o)):(!g||l)&&M&&M.remove(),t.setAttribute("data-multi-select",g?"true":"false");let I=t.querySelector('[data-ask-nav-row="true"]');if(l){let S=py(p,c,o);I?I.replaceWith(S):t.appendChild(S)}else I&&I.remove();Gu(t),Qu(t)},my=(t,e,n)=>{let o=uc(e),r=ny(o),s=t.toolCall.id,i=Is(n),l=Math.max(1,i.length),p=l>1,c=gy(t,i),d=p?fy(t,l):0,g=v("div",["persona-ask-sheet",`persona-ask-sheet--${r}`,"persona-pointer-events-auto","persona-ask-sheet-enter"].join(" "));g.setAttribute(Pr,s),g.setAttribute("data-tool-call-id",s),g.setAttribute("data-message-id",t.id),g.setAttribute(dc,String(l)),g.setAttribute(cc,String(d)),g.setAttribute(pc,p?"true":"false"),g.setAttribute(Uu,r),Ku(g,c),g.setAttribute("role","group"),g.setAttribute("aria-label","Suggested answers"),o.slideInMs!==void 0&&g.style.setProperty("--persona-ask-sheet-duration",`${o.slideInMs}ms`),iy(g,o);let b=v("div","persona-ask-sheet-header persona-flex persona-items-center persona-gap-3"),f=v("div","persona-ask-sheet-question persona-flex-1");f.setAttribute("data-ask-question","true"),f.textContent="",b.appendChild(f);let y=v("span","persona-ask-sheet-step-inline");y.setAttribute("data-ask-step-inline","true"),y.textContent="",b.appendChild(y),g.appendChild(b);let M=v("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 M.setAttribute("data-ask-pill-list","true"),M.setAttribute("role","group"),g.appendChild(M),r!=="rows"&&g.appendChild(qu(o,r)),gc(g,t,e),requestAnimationFrame(()=>{requestAnimationFrame(()=>g.classList.remove("persona-ask-sheet-enter"))}),g},hy=(t,e,n)=>{let{payload:o}=Ir(e),r=Math.max(1,Is(o).length);r>Rr(t)&&(t.setAttribute(dc,String(r)),r>1&&!Co(t)&&t.setAttribute(pc,"true")),gc(t,e,n)};var ea=(t,e,n)=>{if(!n||!Yo(t)||uc(e).enabled===!1)return;let r=t.toolCall.id;n.querySelectorAll(`[${Pr}]`).forEach(c=>{c.getAttribute(Pr)!==r&&c.remove()});let i=n.querySelector(`[${Pr}="${ju(r)}"]`);if(i){hy(i,t,e);return}let{payload:l}=Ir(t),p=my(t,e,l);n.appendChild(p)},Wr=(t,e)=>{if(!t)return;let n=e?`[${Pr}="${ju(e)}"]`:`[${Pr}]`;t.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)})},fc=t=>Array.from(t.querySelectorAll('[aria-pressed="true"][data-option-label]')).map(e=>e.getAttribute("data-option-label")).filter(e=>typeof e=="string"&&e.length>0),Ao=(t,e)=>{let n=Jo(t),o=Cn(t);typeof e=="string"&&e.length===0||Array.isArray(e)&&e.length===0?delete n[o]:n[o]=e,Ku(t,n),Gu(t),Qu(t)},ta=(t,e,n,o)=>{let r=Rr(t),s=Math.max(0,Math.min(r-1,o));uy(t,s),gc(t,e,n)};var eo="suggest_replies";var by={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},Yu={name:eo,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:by,origin:"sdk",annotations:{readOnlyHint:!0}},mc=()=>({content:[{type:"text",text:"Suggestions shown to the user."}]}),Rs=t=>t.variant==="tool"&&t.toolCall?.name===eo,yy=t=>{let e=t;if(typeof e=="string")try{e=JSON.parse(e)}catch{return[]}let n=e?.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 i={label:s.label.trim()};return typeof s.prompt=="string"&&s.prompt.trim()&&(i.prompt=s.prompt.trim()),typeof s.description=="string"&&s.description.trim()&&(i.description=s.description.trim()),[i]});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},Ju=t=>{for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.role==="user")return null;if(!Rs(n))continue;let o=yy(n.toolCall?.args);return o.length>0?o:null}return null},Xu=new Set,vy=(t,e,n)=>{let o=`${t}:${e}:${n}`;Xu.has(o)||(Xu.add(o),console.warn(`[persona] suggestions.followUps.${t} and features.suggestReplies.${t} disagree; suggestions.followUps.${t} wins.`))},So=t=>{let e=t?.suggestions?.followUps,n=t?.features?.suggestReplies,o=i=>{let l=e?.[i],p=n?.[i];l===void 0||p===void 0||l!==p&&vy(i,p,l)};t&&(o("enabled"),o("expose"));let r=e?.enabled??n?.enabled??!0,s=r?e?.expose??n?.expose??!1:!1;return{enabled:r,expose:s}};var xy={type:"object",properties:{questions:{type:"array",minItems:1,maxItems:Ps,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},wy={name:lc,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:xy,origin:"sdk",annotations:{readOnlyHint:!0}},na=t=>{let e=[],n=t?.features?.askUserQuestion;return n?.expose===!0&&n.enabled!==!1&&e.push(wy),So(t).expose&&e.push(Yu),e};var Hr=require("partial-json"),Zu=t=>t.replace(/\\n/g,`
|
|
182
|
+
`).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\"),Mo=t=>{if(t===null)return"null";if(t===void 0)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return String(t);try{return JSON.stringify(t,null,2)}catch{return String(t)}},Cy=t=>{let e=t.completedAt??Date.now(),n=t.startedAt??e,r=(t.durationMs!==void 0?t.durationMs:Math.max(0,e-n))/1e3;return r<.1?"Thought for <0.1 seconds":`Thought for ${r>=10?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")} seconds`},eg=t=>t.status==="complete"?Cy(t):t.status==="pending"?"Waiting":"",Ay=t=>{let n=(typeof t.duration=="number"?t.duration:typeof t.durationMs=="number"?t.durationMs:Math.max(0,(t.completedAt??Date.now())-(t.startedAt??t.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 tg=t=>t.status==="complete"?Ay(t):"Using tool...",oa=t=>{let e=t/1e3;return e<.1?"<0.1s":e>=10?`${Math.round(e)}s`:`${e.toFixed(1).replace(/\.0$/,"")}s`},Hs=t=>{let e=typeof t.duration=="number"?t.duration:typeof t.durationMs=="number"?t.durationMs:Math.max(0,(t.completedAt??Date.now())-(t.startedAt??t.completedAt??Date.now()));return oa(e)},ra=t=>{let e=t.durationMs!==void 0?t.durationMs:Math.max(0,(t.completedAt??Date.now())-(t.startedAt??t.completedAt??Date.now()));return oa(e)},hc=(t,e,n)=>{if(!e)return n;let o=t.name?.trim()||"tool",r=Hs(t);return e.replace(/\{toolName\}/g,o).replace(/\{duration\}/g,r)},sa=(t,e)=>{let n=t.replace(/\{toolName\}/g,e),o=[],r=/\*\*(.+?)\*\*|\*(.+?)\*|~(.+?)~/g,s=0,i;for(;(i=r.exec(n))!==null;)i.index>s&&Ws(o,n.slice(s,i.index),[]),i[1]!==void 0?Ws(o,i[1],["bold"]):i[2]!==void 0?Ws(o,i[2],["italic"]):i[3]!==void 0&&Ws(o,i[3],["dim"]),s=i.index+i[0].length;return s<n.length&&Ws(o,n.slice(s),[]),o},Ws=(t,e,n)=>{let o=e.split("{duration}");for(let r=0;r<o.length;r++)o[r]&&t.push({text:o[r],styles:n}),r<o.length-1&&t.push({text:"{duration}",styles:n,isDuration:!0})},Sy=()=>{let t=null,e=0,n=o=>{let r=/"text"\s*:\s*"((?:[^"\\]|\\.|")*?)"/,s=o.match(r);if(s&&s[1])try{return s[1].replace(/\\n/g,`
|
|
183
183
|
`).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return s[1]}let i=/"text"\s*:\s*"((?:[^"\\]|\\.)*)/,l=o.match(i);if(l&&l[1])try{return l[1].replace(/\\n/g,`
|
|
184
|
-
`).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return l[1]}return null};return{getExtractedText:()=>t,processChunk:async o=>{if(o.length<=e)return t!==null?{text:t,raw:o}:null;let r=o.trim();if(!r.startsWith("{")&&!r.startsWith("["))return null;let s=n(o);return s!==null&&(t=s),e=o.length,t!==null?{text:t,raw:o}:null},close:async()=>{}}},hs=t=>{try{let e=JSON.parse(t);if(e&&typeof e=="object"&&typeof e.text=="string")return e.text}catch{return null}return null},ou=()=>{let t={processChunk:e=>null,getExtractedText:()=>null};return t.__isPlainTextParser=!0,t},ru=()=>{let t=ay();return{processChunk:async e=>{let n=e.trim();return!n.startsWith("{")&&!n.startsWith("[")?null:t.processChunk(e)},getExtractedText:t.getExtractedText.bind(t),close:t.close?.bind(t)}},su=()=>{let t=null,e=0;return{getExtractedText:()=>t,processChunk:n=>{let o=n.trim();if(!o.startsWith("{")&&!o.startsWith("["))return null;if(n.length<=e)return t!==null||t===""?{text:t||"",raw:n}:null;try{let r=(0,mr.parse)(n,mr.STR|mr.OBJ);r&&typeof r=="object"&&(r.component&&typeof r.component=="string"?t=typeof r.text=="string"?eu(r.text):"":r.type==="init"&&r.form?t="":typeof r.text=="string"&&(t=eu(r.text)))}catch{}return e=n.length,t!==null?{text:t,raw:n}:null},close:()=>{}}};var iu=()=>{let t=null;return{processChunk:e=>{if(!e.trim().startsWith("<"))return null;let o=e.match(/<text[^>]*>([\s\S]*?)<\/text>/);return o&&o[1]?(t=o[1],{text:t,raw:e}):null},getExtractedText:()=>t}};var au="4.15.0";var ys=au;var cy="https://api.runtype.com/v1/dispatch",_i="https://api.runtype.com";function dy(t){let e=t.toLowerCase(),o={"application/pdf":"pdf","application/json":"json","application/zip":"zip","text/plain":"txt","text/csv":"csv","text/markdown":"md"}[e];if(o)return`attachment.${o}`;let r=e.indexOf("/");if(r>0){let s=e.slice(r+1).split(";")[0]?.trim()??"";if(s&&s!=="octet-stream"&&/^[a-z0-9.+-]+$/i.test(s))return`attachment.${s}`}return"attachment"}var Hl=t=>!!(t.contentParts&&t.contentParts.length>0||t.llmContent&&t.llmContent.trim().length>0||t.rawContent&&t.rawContent.trim().length>0||t.content&&t.content.trim().length>0);function py(t){switch(t){case"json":return su;case"regex-json":return ru;case"xml":return iu;default:return ou}}var lu=t=>t.startsWith("{")||t.startsWith("[")||t.startsWith("<");function uy(t,e){if(!t)return e;let n=t.trim(),o=e.trim();if(n.length===0)return e;if(o.length===0)return t;let r=lu(n);if(!lu(o))return t;if(!r||o===n||o.startsWith(n))return e;let i=hs(t);return hs(e)!==null&&i===null?e:t}var bs=class{constructor(e={}){this.config=e;this.clientSession=null;this.sessionInitPromise=null;this.lastSentClientToolsFingerprint=null;this.clientToolsFingerprintSessionId=null;this.sentNonEmptyClientToolsSessionId=null;if(e.target&&(e.agentId||e.flowId||e.agent))throw new Error("[Persona] `target` is mutually exclusive with `agentId`, `flowId`, and `agent`. Set only one routing field.");this.apiUrl=e.apiUrl??cy,this.headers={"Content-Type":"application/json","X-Persona-Version":ys,...e.headers},this.debug=!!e.debug,this.createStreamParser=e.streamParser??py(e.parserType),this.contextProviders=e.contextProviders??[],this.requestMiddleware=e.requestMiddleware,this.customFetch=e.customFetch,this.parseSSEEvent=e.parseSSEEvent,this.getHeaders=e.getHeaders,this.webMcpBridge=e.webmcp?.enabled===!0?new Ri(e.webmcp):null}updateConfig(e){this.config=e}setSSEEventCallback(e){this.onSSEEvent=e}setWebMcpConfirmHandler(e){this.webMcpBridge?.setConfirmHandler(e)}isWebMcpOperational(){return this.webMcpBridge?.isOperational()===!0}executeWebMcpToolCall(e,n,o){return this.webMcpBridge?this.webMcpBridge.executeToolCall(e,n,o):null}getSSEEventCallback(){return this.onSSEEvent}isClientTokenMode(){return!!this.config.clientToken}routing(){let{agentId:e,flowId:n,target:o,targetProviders:r}=this.config;if(!o)return{agentId:e,flowId:n};let s=Op(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)}getClientApiUrl(e){return`${this.config.apiUrl?.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,"")||_i}/v1/client/${e}`}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 e=await this.sessionInitPromise;return this.clientSession=e,this.resetClientToolsFingerprint(),this.config.onSessionInit?.(e),e}finally{this.sessionInitPromise=null}}async _doInitSession(){let e=this.config.getStoredSessionId?.()||null,n=this.routing(),o=n.agentId??n.flowId,r={token:this.config.clientToken,...o&&{flowId:o},...e&&{sessionId:e}},s=await fetch(this.getClientApiUrl("init"),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":ys},body:JSON.stringify(r)});if(!s.ok){let l=await s.json().catch(()=>({error:"Session initialization failed"}));throw s.status===401?new Error(`Invalid client token: ${l.hint||l.error}`):s.status===403?new Error(`Origin not allowed: ${l.hint||l.error}`):new Error(l.error||"Failed to initialize session")}let i=await s.json();return this.config.setStoredSessionId&&this.config.setStoredSessionId(i.sessionId),{sessionId:i.sessionId,expiresAt:new Date(i.expiresAt),flow:i.flow,config:{welcomeMessage:i.config.welcomeMessage,placeholder:i.config.placeholder,theme:i.config.theme}}}clearClientSession(){this.clientSession=null,this.sessionInitPromise=null,this.resetClientToolsFingerprint()}resetClientToolsFingerprint(){this.lastSentClientToolsFingerprint=null,this.clientToolsFingerprintSessionId=null,this.sentNonEmptyClientToolsSessionId=null}getFeedbackApiUrl(){return`${this.config.apiUrl?.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,"")||_i}/v1/client/feedback`}async sendFeedback(e){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(e.type)&&!e.messageId)throw new Error(`messageId is required for ${e.type} feedback type`);if(e.type==="csat"&&(e.rating===void 0||e.rating<1||e.rating>5))throw new Error("CSAT rating must be between 1 and 5");if(e.type==="nps"&&(e.rating===void 0||e.rating<0||e.rating>10))throw new Error("NPS rating must be between 0 and 10");this.debug&&console.debug("[AgentWidgetClient] sending feedback",e);let r={...e,...this.config.clientToken&&{token:this.config.clientToken}},s=await fetch(this.getFeedbackApiUrl(),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":ys},body:JSON.stringify(r)});if(!s.ok){let i=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(i.error||"Failed to submit feedback")}}async submitMessageFeedback(e,n){let o=this.getClientSession();if(!o)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:o.sessionId,messageId:e,type:n})}async submitCSATFeedback(e,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:e,comment:n})}async submitNPSFeedback(e,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:e,comment:n})}async dispatch(e,n){return e.signal?.throwIfAborted(),this.isClientTokenMode()?this.dispatchClientToken(e,n):this.isAgentMode()?this.dispatchAgent(e,n):this.dispatchProxy(e,n)}async dispatchClientToken(e,n){n({type:"status",status:"connecting"});try{let o=await this.initSession();if(new Date>=new Date(o.expiresAt.getTime()-6e4)){this.clearClientSession(),this.config.onSessionExpired?.();let c=new Error("Session expired. Please refresh to continue.");throw n({type:"error",error:c}),c}let r=await this.buildPayload(e.messages),s=r.metadata?Object.fromEntries(Object.entries(r.metadata).filter(([c])=>c!=="sessionId"&&c!=="session_id")):void 0,i={sessionId:o.sessionId,messages:e.messages.filter(Hl).map(c=>({id:c.id,role:c.role,content:c.contentParts??c.llmContent??c.rawContent??c.content})),...e.assistantMessageId&&{assistantMessageId:e.assistantMessageId},...s&&Object.keys(s).length>0&&{metadata:s},...r.inputs&&Object.keys(r.inputs).length>0&&{inputs:r.inputs},...r.context&&{context:r.context}},{response:l,commit:p}=await this.sendWithClientToolsDiff(o.sessionId,r.clientTools,c=>{let d={...i,...c};return this.debug&&console.debug("[AgentWidgetClient] client token dispatch",d),fetch(this.getClientApiUrl("chat"),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":ys},body:JSON.stringify(d),signal:e.signal})});if(!l.ok){let c=await l.json().catch(()=>({error:"Chat request failed"}));if(l.status===401){this.clearClientSession(),this.config.onSessionExpired?.();let u=new Error("Session expired. Please refresh to continue.");throw n({type:"error",error:u}),u}if(l.status===429){let u=new Error(c.hint||"Message limit reached for this session.");throw n({type:"error",error:u}),u}let d=new Error(c.error||"Failed to send message");throw n({type:"error",error:d}),d}if(!l.body){let c=new Error("No response body received");throw n({type:"error",error:c}),c}p(),n({type:"status",status:"connected"});try{await this.streamResponse(l.body,n,e.assistantMessageId)}finally{n({type:"status",status:"idle"})}}catch(o){let r=o instanceof Error?o:new Error(String(o));throw!r.message.includes("Session expired")&&!r.message.includes("Message limit")&&n({type:"error",error:r}),r}}async dispatchProxy(e,n){n({type:"status",status:"connecting"});let o=await this.buildPayload(e.messages);this.debug&&console.debug("[AgentWidgetClient] dispatch payload",o);let r={...this.headers};if(this.getHeaders)try{let i=await this.getHeaders();r={...r,...i}}catch(i){typeof console<"u"&&console.error("[AgentWidget] getHeaders error:",i)}let s;if(this.customFetch)try{s=await this.customFetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:e.signal},o)}catch(i){let l=i instanceof Error?i:new Error(String(i));throw n({type:"error",error:l}),l}else s=await fetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:e.signal});if(!s.ok||!s.body){let i=new Error(`Chat backend request failed: ${s.status} ${s.statusText}`);throw n({type:"error",error:i}),i}n({type:"status",status:"connected"});try{await this.streamResponse(s.body,n)}finally{n({type:"status",status:"idle"})}}async dispatchAgent(e,n){n({type:"status",status:"connecting"});let o=await this.buildAgentPayload(e.messages);this.debug&&console.debug("[AgentWidgetClient] agent dispatch payload",o);let r={...this.headers};if(this.getHeaders)try{let i=await this.getHeaders();r={...r,...i}}catch(i){typeof console<"u"&&console.error("[AgentWidget] getHeaders error:",i)}let s;if(this.customFetch)try{s=await this.customFetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:e.signal},o)}catch(i){let l=i instanceof Error?i:new Error(String(i));throw n({type:"error",error:l}),l}else s=await fetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:e.signal});if(!s.ok||!s.body){let i=new Error(`Agent execution request failed: ${s.status} ${s.statusText}`);throw n({type:"error",error:i}),i}n({type:"status",status:"connected"});try{await this.streamResponse(s.body,n,e.assistantMessageId)}finally{n({type:"status",status:"idle"})}}async processStream(e,n,o,r){n({type:"status",status:"connected"});try{await this.streamResponse(e,n,o,r)}finally{n({type:"status",status:"idle"})}}async resolveApproval(e,n){let r=`${this.config.apiUrl?.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,"")||_i}/v1/agents/${e.agentId}/approve`,s={"Content-Type":"application/json",...this.headers};return this.getHeaders&&Object.assign(s,await this.getHeaders()),fetch(r,{method:"POST",headers:s,body:JSON.stringify({executionId:e.executionId,approvalId:e.approvalId,decision:n,streamResponse:!0})})}async sendWithClientToolsDiff(e,n,o,r){let s=!!(n&&n.length>0),i=s?Bp(n):void 0,l=this.clientToolsFingerprintSessionId===e,p=s&&l&&this.lastSentClientToolsFingerprint===i,c=!s&&r?.emptyMeansReplace===!0&&this.sentNonEmptyClientToolsSessionId===e,d=!1,u;for(let b=0;;b++){if(u=await o({...s&&(d||!p)&&n?{clientTools:n}:{},...c?{clientTools:[]}:{},...i?{clientToolsFingerprint:i}:{}}),u.status===409&&b===0&&s&&(await u.clone().json().catch(()=>null))?.error==="client_tools_resend_required"){d=!0,this.lastSentClientToolsFingerprint=null;continue}break}return{response:u,commit:()=>{this.lastSentClientToolsFingerprint=i??null,this.clientToolsFingerprintSessionId=e,s?this.sentNonEmptyClientToolsSessionId=e:c&&(this.sentNonEmptyClientToolsSessionId=null)}}}async resumeFlow(e,n,o){let r=this.isClientTokenMode(),s=r?this.getClientApiUrl("resume"):`${this.config.apiUrl?.replace(/\/+$/,"")||_i}/resume`,i;r&&(i=(await this.initSession()).sessionId);let l={"Content-Type":"application/json",...this.headers};this.getHeaders&&Object.assign(l,await this.getHeaders());let p={executionId:e,toolOutputs:n,streamResponse:o?.streamResponse??!0};if(i&&(p.sessionId=i),r&&i){let c=[...Di(this.config),...await this.webMcpBridge?.snapshotForDispatch()??[]],{response:d,commit:u}=await this.sendWithClientToolsDiff(i,c,b=>{let g={...p,...b};return this.debug&&console.debug("[AgentWidgetClient] client token resume",g),fetch(s,{method:"POST",headers:l,body:JSON.stringify(g),signal:o?.signal})},{emptyMeansReplace:!0});return d.ok&&u(),d}return fetch(s,{method:"POST",headers:l,body:JSON.stringify(p),signal:o?.signal})}latestMentionContext(e){for(let n=e.length-1;n>=0;n--){let o=e[n];if(o.role==="user")return o.mentionContext&&Object.keys(o.mentionContext).length>0?{mentions:o.mentionContext}:null}return null}async buildContextAggregate(e){let n={};this.contextProviders.length&&await Promise.all(this.contextProviders.map(async r=>{try{let s=await r({messages:e,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(e);return o&&Object.assign(n,o),Object.keys(n).length?n:null}async buildAgentPayload(e){let n=this.routing().agentId;if(!this.config.agent&&!n)throw new Error("Agent configuration required for agent mode");let o=e.slice().filter(Hl).filter(l=>l.role==="user"||l.role==="assistant"||l.role==="system").filter(l=>!l.variant||l.variant==="assistant").sort((l,p)=>{let c=new Date(l.createdAt).getTime(),d=new Date(p.createdAt).getTime();return c-d}).map(l=>({role:l.role,content:l.contentParts??l.llmContent??l.rawContent??l.content,createdAt:l.createdAt})),r={agent:this.config.agent??{agentId:n},messages:o,options:{streamResponse:!0,recordMode:"virtual",...this.config.agentOptions}},s=[...Di(this.config),...await this.webMcpBridge?.snapshotForDispatch()??[]];s.length>0&&(r.clientTools=s);let i=await this.buildContextAggregate(e);return i&&(r.context=i),r}async buildPayload(e){let n=e.slice().filter(Hl).sort((l,p)=>{let c=new Date(l.createdAt).getTime(),d=new Date(p.createdAt).getTime();return c-d}).map(l=>({role:l.role,content:l.contentParts??l.llmContent??l.rawContent??l.content,createdAt:l.createdAt})),o=this.routing(),r={messages:n,...o.agentId?{agent:{agentId:o.agentId}}:o.flowId?{flowId:o.flowId}:{}};if(o.targetPayload)for(let[l,p]of Object.entries(o.targetPayload))l!=="messages"&&(r[l]=p);let s=[...Di(this.config),...await this.webMcpBridge?.snapshotForDispatch()??[]];s.length>0&&(r.clientTools=s);let i=await this.buildContextAggregate(e);if(i&&(r.context=i),this.requestMiddleware)try{let l=await this.requestMiddleware({payload:{...r},config:this.config});if(l&&typeof l=="object"){let p=l;return r.clientTools!==void 0&&!("clientTools"in p)&&(p.clientTools=r.clientTools),p}}catch(l){typeof console<"u"&&console.error("[AgentWidget] Request middleware error:",l)}return r}async handleCustomSSEEvent(e,n,o,r,s,i){if(!this.parseSSEEvent)return!1;try{let l=await this.parseSSEEvent(e);if(l===null)return!1;let p=d=>{let u={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"assistant",sequence:s(),...d!==void 0&&{partId:d}};return o.current=u,r(u),u},c=d=>o.current?o.current:p(d);if(l.text!==void 0){l.partId!==void 0&&i.current!==null&&l.partId!==i.current&&(o.current&&(o.current.streaming=!1,r(o.current)),p(l.partId)),l.partId!==void 0&&(i.current=l.partId);let d=c(l.partId);l.partId!==void 0&&!d.partId&&(d.partId=l.partId),d.content+=l.text,r(d)}return l.done&&(o.current&&(o.current.streaming=!1,r(o.current)),i.current=null,n({type:"status",status:"idle"})),l.error&&(i.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(e,n,o,r){let s=e.getReader(),i=new TextDecoder,l="",p=Date.now(),c=0,d=()=>p+c++,u=w=>{let K=w.reasoning?{...w.reasoning,chunks:[...w.reasoning.chunks]}:void 0,y=w.toolCall?{...w.toolCall,chunks:w.toolCall.chunks?[...w.toolCall.chunks]:void 0}:void 0,H=w.tools?w.tools.map(N=>({...N,chunks:N.chunks?[...N.chunks]:void 0})):void 0;return{...w,reasoning:K,toolCall:y,tools:H}},b=w=>{if(w.role!=="assistant"||w.variant)return!0;let K=Array.isArray(w.contentParts)&&w.contentParts.length>0,y=typeof w.rawContent=="string"&&w.rawContent.trim()!=="";return typeof w.content=="string"&&w.content.trim()!==""||K||y||!!w.stopReason},g=w=>{b(w)&&n({type:"message",message:u(w)})},h=null,C=null,L={current:null},B={current:null},k=null,S="",E=new Map,z=new Map,G=new Map,A=new Map,O=new Map,D={lastId:null,byStep:new Map},W={lastId:null,byCall:new Map},P=w=>{if(w==null)return null;try{return String(w)}catch{return null}},I=w=>P(w.stepId??w.step_id??w.step??w.parentId??w.flowStepId??w.flow_step_id),j=w=>P(w.callId??w.call_id??w.requestId??w.request_id??w.toolCallId??w.tool_call_id??w.stepId??w.step_id),pe=o,ge=!1,se=()=>{if(h)return h;let w,K="",y=k;return!ge&&pe?(w=pe,ge=!0,K=r??""):pe&&y?w=`${pe}_${y}`:w=`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,h={id:w,role:"assistant",content:K,createdAt:new Date().toISOString(),streaming:!0,sequence:d()},g(h),h},Y=(w,K)=>{D.lastId=K,w&&D.byStep.set(w,K)},oe=(w,K)=>{let y=w.reasoningId??w.id,H=I(w);if(y){let $=String(y);return Y(H,$),$}if(H){let $=D.byStep.get(H);if($)return D.lastId=$,$}if(D.lastId&&!K)return D.lastId;if(!K)return null;let N=`reason-${d()}`;return Y(H,N),N},J=w=>{let K=A.get(w);if(K)return K;let y={id:`reason-${w}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"reasoning",sequence:d(),reasoning:{id:w,status:"streaming",chunks:[]}};return A.set(w,y),g(y),y},ie=(w,K)=>{W.lastId=K,w&&W.byCall.set(w,K)},ee=new Set,fe=new Map,be=new Set,he=new Map,we=w=>{if(!w)return!1;let K=w.replace(/_+/g,"_").replace(/^_|_$/g,"");return K==="emit_artifact_markdown"||K==="emit_artifact_component"},ve=(w,K)=>{let y=w.toolId??w.id,H=j(w);if(y){let $=String(y);return ie(H,$),$}if(H){let $=W.byCall.get(H);if($)return W.lastId=$,$}if(W.lastId&&!K)return W.lastId;if(!K)return null;let N=`tool-${d()}`;return ie(H,N),N},Te=w=>{let K=O.get(w);if(K)return K;let y={id:`tool-${w}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"tool",sequence:d(),toolCall:{id:w,status:"pending"}};return O.set(w,y),g(y),y},Me=w=>{if(typeof w=="number"&&Number.isFinite(w))return w;if(typeof w=="string"){let K=Number(w);if(!Number.isNaN(K)&&Number.isFinite(K))return K;let y=Date.parse(w);if(!Number.isNaN(y))return y}return Date.now()},_e=w=>{if(typeof w=="string")return w;if(w==null)return"";try{return JSON.stringify(w)}catch{return String(w)}},Ve=new Map,ke=new Map,Re=new Map,Ge=(w,K,y)=>{let H=Re.get(w);H||(H=[],Re.set(w,H));let N=0,$=H.length;for(;N<$;){let F=N+$>>>1;H[F].seq<K?N=F+1:$=F}H[N]?.seq===K?H[N]={seq:K,text:y}:H.splice(N,0,{seq:K,text:y});let U="";for(let F=0;F<H.length;F++)U+=H[F].text;return U},Nt=(w,K)=>{let y=_e(K),H=ke.get(w.id),N=uy(H,y);w.rawContent=N;let $=Ve.get(w.id),U=Se=>{let rt=w.content??"";Se.trim()!==""&&(rt.trim().length===0||Se.startsWith(rt)||Se.trimStart().startsWith(rt.trim()))&&(w.content=Se)},F=()=>{if($){let Se=$.close?.();Se instanceof Promise&&Se.catch(()=>{})}Ve.delete(w.id),ke.delete(w.id),w.streaming=!1,g(w)};if(!$){U(y),F();return}let te=hs(N);if(te!==null&&te.trim()!==""){U(te),F();return}let de=Se=>{let rt=typeof Se=="string"?Se:Se?.text??null;if(rt!==null&&rt.trim()!=="")return rt;let ot=$.getExtractedText();return ot!==null&&ot.trim()!==""?ot:y},Le;try{Le=$.processChunk(N)}catch{U(y),F();return}if(Le instanceof Promise){Le.then(Se=>{U(de(Se)),F()}).catch(()=>{U(y),F()});return}U(de(Le)),F()},Bt=null,Xt=(w,K,y,H)=>{w.rawContent=K,Ve.has(w.id)||Ve.set(w.id,this.createStreamParser());let N=Ve.get(w.id),$=K.trim().startsWith("{")||K.trim().startsWith("[");if($&&ke.set(w.id,K),N.__isPlainTextParser===!0){w.content=H!==void 0?K:w.content+y,ke.delete(w.id),Ve.delete(w.id),w.rawContent=void 0,g(w);return}let F=N.processChunk(K);if(F instanceof Promise)F.then(te=>{let de=typeof te=="string"?te:te?.text??null;de!==null&&de.trim()!==""?(w.content=de,g(w)):!$&&!K.trim().startsWith("<")&&(w.content=H!==void 0?K:w.content+y,ke.delete(w.id),Ve.delete(w.id),w.rawContent=void 0,g(w))}).catch(()=>{w.content=H!==void 0?K:w.content+y,ke.delete(w.id),Ve.delete(w.id),w.rawContent=void 0,g(w)});else{let te=typeof F=="string"?F:F?.text??null;te!==null&&te.trim()!==""?(w.content=te,g(w)):!$&&!K.trim().startsWith("<")&&(w.content=H!==void 0?K:w.content+y,ke.delete(w.id),Ve.delete(w.id),w.rawContent=void 0,g(w))}},Mt=(w,K)=>{let y=K??w.content;if(y==null||y===""){w.streaming=!1,g(w);return}let N=ke.get(w.id)??_e(y);w.rawContent=N;let $=Ve.get(w.id),U=null,F=!1;if($&&(U=$.getExtractedText(),U===null&&(U=hs(N)),U===null)){let te=$.processChunk(N);te instanceof Promise?(F=!0,te.then(de=>{let Le=typeof de=="string"?de:de?.text??null;Le!==null&&(w.content=Le,w.streaming=!1,Ve.delete(w.id),ke.delete(w.id),g(w))}).catch(()=>{})):U=typeof te=="string"?te:te?.text??null}if(!F){U!==null&&U.trim()!==""?w.content=U:ke.has(w.id)||(w.content=_e(y));let te=Ve.get(w.id);if(te){let de=te.close?.();de instanceof Promise&&de.catch(()=>{}),Ve.delete(w.id)}ke.delete(w.id),w.streaming=!1,g(w)}},De=(w,K,y)=>{let H=z.get(w);if(H)return H;let N={id:`nested-${K}-${w}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:d(),...y?{variant:y}:{},...y==="reasoning"?{reasoning:{id:w,status:"streaming",chunks:[]}}:{},agentMetadata:{parentToolId:K}};return z.set(w,N),g(N),N},ye=[],Ye,He=new Map,xe=0,ue="agent",We=!1,Jt=null,gt=null,bt=new Map,Q=this.config.iterationDisplay??"separate";for(Ye=()=>{for(let w=0;w<ye.length;w++){let K=ye[w].payloadType,y=ye[w].payload;if(!We&&ue!=="flow"&&typeof y.stepType=="string"&&(ue="flow"),K==="reasoning_start"){let H=typeof y.id=="string"?y.id:null,N=typeof y.parentToolCallId=="string"&&y.parentToolCallId?y.parentToolCallId:null;if(H&&N){E.set(H,N),De(H,N,"reasoning");continue}let $=oe(y,!0)??`reason-${d()}`,U=J($);U.reasoning=U.reasoning??{id:$,status:"streaming",chunks:[]},U.reasoning.startedAt=U.reasoning.startedAt??Me(y.startedAt??y.timestamp),U.reasoning.completedAt=void 0,U.reasoning.durationMs=void 0,(y.scope==="loop"||y.scope==="turn")&&(U.reasoning.scope=y.scope),U.streaming=!0,U.reasoning.status="streaming",g(U)}else if(K==="reasoning_delta"){let H=typeof y.id=="string"?y.id:null;if(H&&E.has(H)&&z.has(H)){let F=z.get(H),te=y.reasoningText??y.text??y.delta??"";te&&y.hidden!==!0&&F.reasoning&&(F.reasoning.chunks.push(String(te)),g(F));continue}let N=oe(y,!1)??oe(y,!0)??`reason-${d()}`,$=J(N);$.reasoning=$.reasoning??{id:N,status:"streaming",chunks:[]},$.reasoning.startedAt=$.reasoning.startedAt??Me(y.startedAt??y.timestamp);let U=y.reasoningText??y.text??y.delta??"";if(U&&y.hidden!==!0){let F=typeof y.sequenceIndex=="number"?y.sequenceIndex:void 0;if(F!==void 0){let te=Ge(N,F,String(U));$.reasoning.chunks=[te]}else $.reasoning.chunks.push(String(U))}if($.reasoning.status=y.done?"complete":"streaming",y.done){$.reasoning.completedAt=Me(y.completedAt??y.timestamp);let F=$.reasoning.startedAt??Date.now();$.reasoning.durationMs=Math.max(0,($.reasoning.completedAt??Date.now())-F)}$.streaming=$.reasoning.status!=="complete",g($)}else if(K==="reasoning_complete"){let H=typeof y.id=="string"?y.id:null;if(H&&E.has(H)&&z.has(H)){let te=z.get(H);if(te.reasoning){let de=typeof y.text=="string"?y.text:"";de&&te.reasoning.chunks.length===0&&te.reasoning.chunks.push(de),te.reasoning.status="complete",te.streaming=!1,g(te)}E.delete(H),z.delete(H);continue}let N=oe(y,!1)??oe(y,!0)??`reason-${d()}`,$=typeof y.text=="string"?y.text:"";!A.get(N)&&($||y.scope==="loop")&&J(N);let U=A.get(N);if(U?.reasoning){(y.scope==="loop"||y.scope==="turn")&&(U.reasoning.scope=y.scope),$&&U.reasoning.chunks.length===0&&U.reasoning.chunks.push($),U.reasoning.status="complete",U.reasoning.completedAt=Me(y.completedAt??y.timestamp);let te=U.reasoning.startedAt??Date.now();U.reasoning.durationMs=Math.max(0,(U.reasoning.completedAt??Date.now())-te),U.streaming=!1,g(U)}let F=I(y);F&&D.byStep.delete(F)}else if(K==="tool_start"){h&&(h.streaming=!1,g(h),h=null),typeof y.iteration=="number"&&(xe=y.iteration);let H=(typeof y.toolCallId=="string"?y.toolCallId:void 0)??ve(y,!0)??`tool-${d()}`,N=y.toolName??y.name;if(we(N)){ee.add(H);continue}ie(j(y),H);let $=Te(H),U=$.toolCall??{id:H,status:"pending"};U.name=N??U.name,U.status="running",y.parameters!==void 0?U.args=y.parameters:y.args!==void 0&&(U.args=y.args),U.startedAt=U.startedAt??Me(y.startedAt??y.timestamp),U.completedAt=void 0,U.durationMs=void 0,$.toolCall=U,$.streaming=!0,y.executionId&&($.agentMetadata={executionId:y.executionId,iteration:y.iteration}),g($)}else if(K==="tool_output_delta"){let H=ve(y,!1)??ve(y,!0)??`tool-${d()}`;if(ee.has(H))continue;let N=Te(H),$=N.toolCall??{id:H,status:"running"};$.startedAt=$.startedAt??Me(y.startedAt??y.timestamp);let U=y.text??y.delta??y.message??"";U&&($.chunks=$.chunks??[],$.chunks.push(String(U))),$.status="running",N.toolCall=$,N.streaming=!0;let F=y.agentContext;(F||y.executionId)&&(N.agentMetadata=N.agentMetadata??{executionId:F?.executionId??y.executionId,iteration:F?.iteration??y.iteration}),g(N)}else if(K==="tool_complete"){let H=ve(y,!1)??ve(y,!0)??`tool-${d()}`;if(ee.has(H)){ee.delete(H);continue}let N=Te(H),$=N.toolCall??{id:H,status:"running"};$.status="complete",y.result!==void 0&&($.result=y.result),typeof y.duration=="number"&&($.duration=y.duration),$.completedAt=Me(y.completedAt??y.timestamp);let U=y.duration??y.executionTime;if(typeof U=="number")$.durationMs=U;else{let de=$.startedAt??Date.now();$.durationMs=Math.max(0,($.completedAt??Date.now())-de)}N.toolCall=$,N.streaming=!1;let F=y.agentContext;(F||y.executionId)&&(N.agentMetadata=N.agentMetadata??{executionId:F?.executionId??y.executionId,iteration:F?.iteration??y.iteration}),g(N);let te=j(y);te&&W.byCall.delete(te)}else if(K==="await"&&y.toolName){let H=typeof y.toolCallId=="string"&&y.toolCallId.length>0?y.toolCallId:void 0,N=H??y.toolId??`local-${d()}`,$=Te(N),U=y.toolName,F=y.origin==="webmcp"&&!cr(U)?`webmcp:${U}`:U,te=cr(F),de=$.toolCall??{id:N,status:"pending"};de.name=F,de.args=y.parameters,de.status=te?"running":"complete",de.chunks=de.chunks??[],de.startedAt=de.startedAt??Me(y.startedAt??y.timestamp??y.awaitedAt),te?(de.completedAt=void 0,de.duration=void 0,de.durationMs=void 0):de.completedAt=de.completedAt??de.startedAt,$.toolCall=de,$.streaming=!1,$.agentMetadata={...$.agentMetadata,executionId:y.executionId??$.agentMetadata?.executionId,awaitingLocalTool:!0,...H?{webMcpToolCallId:H}:{}},g($)}else if(K==="text_start"){let H=typeof y.id=="string"?y.id:null,N=typeof y.parentToolCallId=="string"&&y.parentToolCallId?y.parentToolCallId:null;if(H&&N){E.set(H,N);continue}let $=h;$&&(ue==="flow"?(Mt($),Bt=$):($.streaming=!1,g($)),h=null),k=typeof y.id=="string"?y.id:k,S=""}else if(K==="text_delta"){let H=typeof y.id=="string"?y.id:null,N=H?E.get(H):void 0;if(H&&N){let U=typeof y.delta=="string"?y.delta:"",F=(G.get(H)??"")+U;if(G.set(H,F),F.trim()==="")continue;let te=De(H,N);te.agentMetadata={...te.agentMetadata,executionId:y.executionId,parentToolId:N},Xt(te,F,U,void 0);continue}if(k=typeof y.id=="string"?y.id:k,ue==="flow"){let U=typeof y.delta=="string"?y.delta:"";if(S+=U,S.trim()==="")continue;let F=se();F.agentMetadata={executionId:y.executionId,iteration:y.iteration},Xt(F,S,U,void 0),C=F;continue}let $=se();$.content+=y.delta??"",$.agentMetadata={executionId:y.executionId,iteration:y.iteration,turnId:Jt??void 0,agentName:gt?.agentName},C=$,g($)}else if(K==="text_complete"){let H=typeof y.id=="string"?y.id:null;if(H&&E.has(H)){let $=z.get(H);$&&Mt($),E.delete(H),G.delete(H),z.delete(H);continue}let N=h;N&&(ue==="flow"?(Mt(N),Bt=N):((N.content??"")===""&&typeof y.text=="string"&&(N.content=y.text),N.streaming=!1,g(N)),h=null),k=null,S=""}else if(K==="step_complete"){let H=y.stepType,N=y.executionType;if(H==="tool"||N==="context")continue;if(y.success===!1){let $=y.error,U=typeof $=="string"&&$!==""?$:$!=null&&typeof $=="object"&&Reflect.has($,"message")?String($.message??"Step failed"):"Step failed";n({type:"error",error:new Error(U)});let F=h;F&&F.streaming&&(F.streaming=!1,g(F)),n({type:"status",status:"idle"});continue}{let $=Bt;Bt=null;let U=y.stopReason,F=y.result?.response;if($)U&&($.stopReason=U),F!=null?Nt($,F):$.streaming!==!1&&(Ve.delete($.id),ke.delete($.id),$.streaming=!1,g($));else{let te=F!=null&&F!=="";if(te||U){let de=se();U&&(de.stopReason=U),te?Mt(de,F):(de.streaming=!1,g(de))}}continue}}else if(K==="execution_start")ue=y.kind==="flow"?"flow":"agent",We=!0,ue==="agent"&&(gt={executionId:y.executionId,agentId:y.agentId??"virtual",agentName:y.agentName??"",status:"running",currentIteration:0,maxTurns:y.maxTurns??1,startedAt:Me(y.startedAt)});else if(K==="turn_start"){let H=typeof y.iteration=="number"?y.iteration:xe;if(H!==xe){if(gt&&(gt.currentIteration=H),Q==="separate"&&H>1){let N=h;N&&(N.streaming=!1,g(N),bt.set(H-1,N),h=null)}xe=H}Jt=typeof y.id=="string"?y.id:null,C=null}else if(K==="tool_input_delta"){let H=y.toolCallId??W.lastId;if(H){let N=O.get(H);N?.toolCall&&(N.toolCall.chunks=N.toolCall.chunks??[],N.toolCall.chunks.push(y.delta??""),g(N))}}else{if(K==="tool_input_complete")continue;if(K==="turn_complete"){let H=y.stopReason,N=h??C;if(H&&N!==null){let $=y.id;(!$||N.agentMetadata?.turnId===$)&&(N.stopReason=H,g(N))}Jt===y.id&&(Jt=null)}else if(K==="media_start"){let H=String(y.id);He.set(H,{mediaType:typeof y.mediaType=="string"?y.mediaType:void 0,role:typeof y.role=="string"?y.role:void 0,toolCallId:y.toolCallId,parts:[]})}else if(K==="media_delta"){let H=He.get(String(y.id));H&&typeof y.delta=="string"&&H.parts.push(y.delta)}else if(K==="media_complete"){let H=String(y.id),N=He.get(H);He.delete(H);let $=(typeof y.mediaType=="string"?y.mediaType:void 0)??N?.mediaType??"application/octet-stream",U=typeof y.data=="string"?y.data:void 0,F=typeof y.url=="string"?y.url:N&&N.parts.length>0?N.parts.join(""):void 0,te=null;if(U)te={type:"media",data:U,mediaType:$};else if(F){let rt=$.toLowerCase();te={type:rt==="image"||rt.startsWith("image/")?"image-url":"file-url",url:F,mediaType:$}}let de=y.toolCallId??N?.toolCallId,Le=te?[te]:[],Se=[];for(let rt of Le){if(!rt||typeof rt!="object")continue;let ot=rt,ze=typeof ot.type=="string"?ot.type:void 0,Ze=typeof ot.mediaType=="string"?ot.mediaType.toLowerCase():"",X=null,Ue="";if(ze==="media"){let Ne=typeof ot.data=="string"?ot.data:void 0;if(!Ne)continue;Ue=Ze.length>0?Ze:"application/octet-stream",X=`data:${Ue};base64,${Ne}`}else if(ze==="image-url"){let Ne=typeof ot.url=="string"?ot.url:void 0;if(!Ne)continue;Ue=Ze,X=Ne}else if(ze==="file-url"){let Ne=typeof ot.url=="string"?ot.url:void 0;if(!Ne)continue;Ue=Ze,X=Ne}else continue;if(X)if(ze==="image-url"||Ue.startsWith("image/"))Se.push({type:"image",image:X,...Ue.includes("/")?{mimeType:Ue}:{}});else if(Ue.startsWith("audio/"))Se.push({type:"audio",audio:X,mimeType:Ue});else if(Ue.startsWith("video/"))Se.push({type:"video",video:X,mimeType:Ue});else{let Ne=Ue||"application/octet-stream";Se.push({type:"file",data:X,mimeType:Ne,filename:dy(Ne)})}}if(Se.length>0){let rt=d(),ot=de,Ze={id:`agent-media-${typeof ot=="string"&&ot.length>0?`${ot}-${rt}`:String(rt)}`,role:"assistant",content:"",contentParts:Se,createdAt:new Date().toISOString(),streaming:!1,sequence:rt,agentMetadata:{executionId:y.executionId,iteration:typeof y.iteration=="number"?y.iteration:xe}};g(Ze);let X=h;X&&(X.streaming=!1,g(X)),h=null,L.current=null}}else if(K==="execution_complete"){let H=y.kind??ue;H==="agent"&>&&(gt.status=y.success?"complete":"error",gt.completedAt=Me(y.completedAt),gt.stopReason=y.stopReason);let N=h;N&&(H==="flow"&&N.streaming!==!1?Mt(N):(N.streaming=!1,g(N)),h=null),k=null,S="",Bt=null,n({type:"status",status:"idle",terminal:!0})}else if(K==="execution_error"){let H=typeof y.error=="string"?y.error:y.error?.message??"Execution error";n({type:"error",error:new Error(H)})}else if(K!=="ping"){if(K==="approval_start"){let H=y.approvalId??`approval-${d()}`,N={id:`approval-${H}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:d(),approval:{id:H,status:"pending",agentId:gt?.agentId??"virtual",executionId:y.executionId??gt?.executionId??"",toolName:y.toolName??"",toolType:y.toolType,description:y.description??`Execute ${y.toolName??"tool"}`,...typeof y.reason=="string"&&y.reason?{reason:y.reason}:{},parameters:y.parameters}};g(N)}else if(K==="step_await"&&y.awaitReason==="approval_required"){let H=y.approvalId??`approval-${d()}`,N={id:`approval-${H}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:d(),approval:{id:H,status:"pending",agentId:gt?.agentId??"virtual",executionId:y.executionId??gt?.executionId??"",toolName:y.toolName??"",toolType:y.toolType,description:y.description??`Execute ${y.toolName??"tool"}`,...typeof y.reason=="string"&&y.reason?{reason:y.reason}:{},parameters:y.parameters}};g(N)}else if(K==="approval_complete"){let H=y.approvalId;if(H){let $={id:`approval-${H}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:d(),approval:{id:H,status:y.decision??"approved",agentId:gt?.agentId??"virtual",executionId:y.executionId??gt?.executionId??"",toolName:y.toolName??"",description:y.description??"",resolvedAt:Date.now()}};g($)}}else if(K==="artifact_start"||K==="artifact_delta"||K==="artifact_update"||K==="artifact_complete"){if(K==="artifact_start"){let H=y.artifactType,N=String(y.id),$=typeof y.title=="string"?y.title:void 0,U=y.file,F;U&&typeof U=="object"&&!Array.isArray(U)&&typeof U.path=="string"&&typeof U.mimeType=="string"&&(F={path:U.path,mimeType:U.mimeType,...typeof U.language=="string"?{language:U.language}:{}}),n({type:"artifact_start",id:N,artifactType:H,title:$,component:typeof y.component=="string"?y.component:void 0,...F?{file:F}:{}});let te=y.props&&typeof y.props=="object"&&!Array.isArray(y.props)?{...y.props}:void 0;if(he.set(N,{markdown:"",title:$,file:F,...te?{props:te}:{}}),!be.has(N)){be.add(N);let de=uo(this.config.features?.artifacts,{artifactType:H,...F?{file:F}:{}}),Le=typeof y.component=="string"?y.component:void 0,Se={id:`artifact-ref-${N}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:d(),rawContent:ds(de,{artifactId:N,title:$,artifactType:H,status:"streaming",...F?{file:F}:{},...Le?{component:Le}:{}})};fe.set(N,Se),g(Se)}}else if(K==="artifact_delta"){let H=String(y.id),N=typeof y.delta=="string"?y.delta:String(y.delta??"");n({type:"artifact_delta",id:H,artDelta:N});let $=he.get(H);$&&($.markdown+=N)}else if(K==="artifact_update"){let H=y.props&&typeof y.props=="object"&&!Array.isArray(y.props)?y.props:{};n({type:"artifact_update",id:String(y.id),props:H,component:typeof y.component=="string"?y.component:void 0});let N=he.get(String(y.id));N&&(N.props={...N.props??{},...H})}else if(K==="artifact_complete"){let H=String(y.id);n({type:"artifact_complete",id:H});let N=fe.get(H);if(N){N.streaming=!1;try{let $=JSON.parse(N.rawContent??"{}");if($.props){$.props.status="complete";let U=he.get(H);U?.markdown&&($.props.markdown=U.markdown),U?.file&&($.props.file=U.file),$.component==="PersonaArtifactInline"&&U?.props&&Object.keys(U.props).length>0&&($.props.componentProps=U.props)}N.rawContent=JSON.stringify($)}catch{}he.delete(H),g(N),fe.delete(H)}}}else if(K==="transcript_insert"){let H=y.message;if(!H||typeof H!="object")continue;let N=String(H.id??`msg-${d()}`),$=H.role,F={id:N,role:$==="user"?"user":$==="system"?"system":"assistant",content:typeof H.content=="string"?H.content:"",rawContent:typeof H.rawContent=="string"?H.rawContent:void 0,createdAt:typeof H.createdAt=="string"?H.createdAt:new Date().toISOString(),streaming:H.streaming===!0,...typeof H.variant=="string"?{variant:H.variant}:{},sequence:d()};if(g(F),F.rawContent)try{let de=JSON.parse(F.rawContent)?.props?.artifactId;typeof de=="string"&&be.add(de)}catch{}h=null,L.current=null,Ve.delete(N),ke.delete(N)}else if(K==="error"){if(y.recoverable===!1&&y.error!=null&&y.error!==""){let H=typeof y.error=="string"?y.error:y.error?.message!=null?String(y.error.message):"Execution error";n({type:"error",error:new Error(H)});let N=h;N&&N.streaming&&(N.streaming=!1,g(N)),n({type:"status",status:"idle"})}}else if(K==="step_error"||K==="dispatch_error"||K==="flow_error"){let H=null;if(y.error instanceof Error)H=y.error;else if(K==="dispatch_error"){let N=y.message??y.error;N!=null&&N!==""&&(H=new Error(String(N)))}else{let N=y.error;typeof N=="string"&&N!==""?H=new Error(N):N!=null&&typeof N=="object"&&Reflect.has(N,"message")&&(H=new Error(String(N.message??N)))}if(H){n({type:"error",error:H});let N=h;N&&N.streaming&&(N.streaming=!1,g(N)),n({type:"status",status:"idle"})}}}}}ye.length=0};;){let{done:w,value:K}=await s.read();if(w)break;l+=i.decode(K,{stream:!0});let y=l.split(`
|
|
184
|
+
`).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(/\\\\/g,"\\")}catch{return l[1]}return null};return{getExtractedText:()=>t,processChunk:async o=>{if(o.length<=e)return t!==null?{text:t,raw:o}:null;let r=o.trim();if(!r.startsWith("{")&&!r.startsWith("["))return null;let s=n(o);return s!==null&&(t=s),e=o.length,t!==null?{text:t,raw:o}:null},close:async()=>{}}},Bs=t=>{try{let e=JSON.parse(t);if(e&&typeof e=="object"&&typeof e.text=="string")return e.text}catch{return null}return null},ng=()=>{let t={processChunk:e=>null,getExtractedText:()=>null};return t.__isPlainTextParser=!0,t},og=()=>{let t=Sy();return{processChunk:async e=>{let n=e.trim();return!n.startsWith("{")&&!n.startsWith("[")?null:t.processChunk(e)},getExtractedText:t.getExtractedText.bind(t),close:t.close?.bind(t)}},rg=()=>{let t=null,e=0;return{getExtractedText:()=>t,processChunk:n=>{let o=n.trim();if(!o.startsWith("{")&&!o.startsWith("["))return null;if(n.length<=e)return t!==null||t===""?{text:t||"",raw:n}:null;try{let r=(0,Hr.parse)(n,Hr.STR|Hr.OBJ);r&&typeof r=="object"&&(r.component&&typeof r.component=="string"?t=typeof r.text=="string"?Zu(r.text):"":r.type==="init"&&r.form?t="":typeof r.text=="string"&&(t=Zu(r.text)))}catch{}return e=n.length,t!==null?{text:t,raw:n}:null},close:()=>{}}};var sg=()=>{let t=null;return{processChunk:e=>{if(!e.trim().startsWith("<"))return null;let o=e.match(/<text[^>]*>([\s\S]*?)<\/text>/);return o&&o[1]?(t=o[1],{text:t,raw:e}):null},getExtractedText:()=>t}};var ig="4.16.0";var Ds=ig;var Ty="https://api.runtype.com/v1/dispatch",ia="https://api.runtype.com";function Ey(t){let e=t.toLowerCase(),o={"application/pdf":"pdf","application/json":"json","application/zip":"zip","text/plain":"txt","text/csv":"csv","text/markdown":"md"}[e];if(o)return`attachment.${o}`;let r=e.indexOf("/");if(r>0){let s=e.slice(r+1).split(";")[0]?.trim()??"";if(s&&s!=="octet-stream"&&/^[a-z0-9.+-]+$/i.test(s))return`attachment.${s}`}return"attachment"}var bc=t=>!!(t.contentParts&&t.contentParts.length>0||t.llmContent&&t.llmContent.trim().length>0||t.rawContent&&t.rawContent.trim().length>0||t.content&&t.content.trim().length>0);function ky(t){switch(t){case"json":return rg;case"regex-json":return og;case"xml":return sg;default:return ng}}var ag=t=>t.startsWith("{")||t.startsWith("[")||t.startsWith("<");function Ly(t,e){if(!t)return e;let n=t.trim(),o=e.trim();if(n.length===0)return e;if(o.length===0)return t;let r=ag(n);if(!ag(o))return t;if(!r||o===n||o.startsWith(n))return e;let i=Bs(t);return Bs(e)!==null&&i===null?e:t}var Os=class{constructor(e={}){this.config=e;this.clientSession=null;this.sessionInitPromise=null;this.lastSentClientToolsFingerprint=null;this.clientToolsFingerprintSessionId=null;this.sentNonEmptyClientToolsSessionId=null;if(e.target&&(e.agentId||e.flowId||e.agent))throw new Error("[Persona] `target` is mutually exclusive with `agentId`, `flowId`, and `agent`. Set only one routing field.");this.apiUrl=e.apiUrl??Ty,this.headers={"Content-Type":"application/json","X-Persona-Version":Ds,...e.headers},this.debug=!!e.debug,this.createStreamParser=e.streamParser??ky(e.parserType),this.contextProviders=e.contextProviders??[],this.requestMiddleware=e.requestMiddleware,this.customFetch=e.customFetch,this.parseSSEEvent=e.parseSSEEvent,this.getHeaders=e.getHeaders,this.webMcpBridge=e.webmcp?.enabled===!0?new Ji(e.webmcp):null}updateConfig(e){this.config=e}setSSEEventCallback(e){this.onSSEEvent=e}setWebMcpConfirmHandler(e){this.webMcpBridge?.setConfirmHandler(e)}isWebMcpOperational(){return this.webMcpBridge?.isOperational()===!0}executeWebMcpToolCall(e,n,o){return this.webMcpBridge?this.webMcpBridge.executeToolCall(e,n,o):null}getSSEEventCallback(){return this.onSSEEvent}isClientTokenMode(){return!!this.config.clientToken}routing(){let{agentId:e,flowId:n,target:o,targetProviders:r}=this.config;if(!o)return{agentId:e,flowId:n};let s=Ou(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)}getClientApiUrl(e){return`${this.config.apiUrl?.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,"")||ia}/v1/client/${e}`}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 e=await this.sessionInitPromise;return this.clientSession=e,this.resetClientToolsFingerprint(),this.config.onSessionInit?.(e),e}finally{this.sessionInitPromise=null}}async _doInitSession(){let e=this.config.getStoredSessionId?.()||null,n=this.routing(),o=n.agentId??n.flowId,r={token:this.config.clientToken,...o&&{flowId:o},...e&&{sessionId:e}},s=await fetch(this.getClientApiUrl("init"),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":Ds},body:JSON.stringify(r)});if(!s.ok){let l=await s.json().catch(()=>({error:"Session initialization failed"}));throw s.status===401?new Error(`Invalid client token: ${l.hint||l.error}`):s.status===403?new Error(`Origin not allowed: ${l.hint||l.error}`):new Error(l.error||"Failed to initialize session")}let i=await s.json();return this.config.setStoredSessionId&&this.config.setStoredSessionId(i.sessionId),{sessionId:i.sessionId,expiresAt:new Date(i.expiresAt),flow:i.flow,config:{welcomeMessage:i.config.welcomeMessage,placeholder:i.config.placeholder,theme:i.config.theme}}}clearClientSession(){this.clientSession=null,this.sessionInitPromise=null,this.resetClientToolsFingerprint()}resetClientToolsFingerprint(){this.lastSentClientToolsFingerprint=null,this.clientToolsFingerprintSessionId=null,this.sentNonEmptyClientToolsSessionId=null}getFeedbackApiUrl(){return`${this.config.apiUrl?.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,"")||ia}/v1/client/feedback`}async sendFeedback(e){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(e.type)&&!e.messageId)throw new Error(`messageId is required for ${e.type} feedback type`);if(e.type==="csat"&&(e.rating===void 0||e.rating<1||e.rating>5))throw new Error("CSAT rating must be between 1 and 5");if(e.type==="nps"&&(e.rating===void 0||e.rating<0||e.rating>10))throw new Error("NPS rating must be between 0 and 10");this.debug&&console.debug("[AgentWidgetClient] sending feedback",e);let r={...e,...this.config.clientToken&&{token:this.config.clientToken}},s=await fetch(this.getFeedbackApiUrl(),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":Ds},body:JSON.stringify(r)});if(!s.ok){let i=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(i.error||"Failed to submit feedback")}}async submitMessageFeedback(e,n){let o=this.getClientSession();if(!o)throw new Error("No active session. Please initialize session first.");return this.sendFeedback({sessionId:o.sessionId,messageId:e,type:n})}async submitCSATFeedback(e,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:e,comment:n})}async submitNPSFeedback(e,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:e,comment:n})}async dispatch(e,n){return e.signal?.throwIfAborted(),this.isClientTokenMode()?this.dispatchClientToken(e,n):this.isAgentMode()?this.dispatchAgent(e,n):this.dispatchProxy(e,n)}async dispatchClientToken(e,n){n({type:"status",status:"connecting"});try{let o=await this.initSession();if(new Date>=new Date(o.expiresAt.getTime()-6e4)){this.clearClientSession(),this.config.onSessionExpired?.();let c=new Error("Session expired. Please refresh to continue.");throw n({type:"error",error:c}),c}let r=await this.buildPayload(e.messages),s=r.metadata?Object.fromEntries(Object.entries(r.metadata).filter(([c])=>c!=="sessionId"&&c!=="session_id")):void 0,i={sessionId:o.sessionId,messages:e.messages.filter(bc).map(c=>({id:c.id,role:c.role,content:c.contentParts??c.llmContent??c.rawContent??c.content})),...e.assistantMessageId&&{assistantMessageId:e.assistantMessageId},...s&&Object.keys(s).length>0&&{metadata:s},...r.inputs&&Object.keys(r.inputs).length>0&&{inputs:r.inputs},...r.context&&{context:r.context}},{response:l,commit:p}=await this.sendWithClientToolsDiff(o.sessionId,r.clientTools,c=>{let d={...i,...c};return this.debug&&console.debug("[AgentWidgetClient] client token dispatch",d),fetch(this.getClientApiUrl("chat"),{method:"POST",headers:{"Content-Type":"application/json","X-Persona-Version":Ds},body:JSON.stringify(d),signal:e.signal})});if(!l.ok){let c=await l.json().catch(()=>({error:"Chat request failed"}));if(l.status===401){this.clearClientSession(),this.config.onSessionExpired?.();let g=new Error("Session expired. Please refresh to continue.");throw n({type:"error",error:g}),g}if(l.status===429){let g=new Error(c.hint||"Message limit reached for this session.");throw n({type:"error",error:g}),g}let d=new Error(c.error||"Failed to send message");throw n({type:"error",error:d}),d}if(!l.body){let c=new Error("No response body received");throw n({type:"error",error:c}),c}p(),n({type:"status",status:"connected"});try{await this.streamResponse(l.body,n,e.assistantMessageId)}finally{n({type:"status",status:"idle"})}}catch(o){let r=o instanceof Error?o:new Error(String(o));throw!r.message.includes("Session expired")&&!r.message.includes("Message limit")&&n({type:"error",error:r}),r}}async dispatchProxy(e,n){n({type:"status",status:"connecting"});let o=await this.buildPayload(e.messages);this.debug&&console.debug("[AgentWidgetClient] dispatch payload",o);let r={...this.headers};if(this.getHeaders)try{let i=await this.getHeaders();r={...r,...i}}catch(i){typeof console<"u"&&console.error("[AgentWidget] getHeaders error:",i)}let s;if(this.customFetch)try{s=await this.customFetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:e.signal},o)}catch(i){let l=i instanceof Error?i:new Error(String(i));throw n({type:"error",error:l}),l}else s=await fetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:e.signal});if(!s.ok||!s.body){let i=new Error(`Chat backend request failed: ${s.status} ${s.statusText}`);throw n({type:"error",error:i}),i}n({type:"status",status:"connected"});try{await this.streamResponse(s.body,n)}finally{n({type:"status",status:"idle"})}}async dispatchAgent(e,n){n({type:"status",status:"connecting"});let o=await this.buildAgentPayload(e.messages);this.debug&&console.debug("[AgentWidgetClient] agent dispatch payload",o);let r={...this.headers};if(this.getHeaders)try{let i=await this.getHeaders();r={...r,...i}}catch(i){typeof console<"u"&&console.error("[AgentWidget] getHeaders error:",i)}let s;if(this.customFetch)try{s=await this.customFetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:e.signal},o)}catch(i){let l=i instanceof Error?i:new Error(String(i));throw n({type:"error",error:l}),l}else s=await fetch(this.apiUrl,{method:"POST",headers:r,body:JSON.stringify(o),signal:e.signal});if(!s.ok||!s.body){let i=new Error(`Agent execution request failed: ${s.status} ${s.statusText}`);throw n({type:"error",error:i}),i}n({type:"status",status:"connected"});try{await this.streamResponse(s.body,n,e.assistantMessageId)}finally{n({type:"status",status:"idle"})}}async processStream(e,n,o,r){n({type:"status",status:"connected"});try{await this.streamResponse(e,n,o,r)}finally{n({type:"status",status:"idle"})}}async resolveApproval(e,n){let r=`${this.config.apiUrl?.replace(/\/+$/,"").replace(/\/v1\/dispatch$/,"")||ia}/v1/agents/${e.agentId}/approve`,s={"Content-Type":"application/json",...this.headers};return this.getHeaders&&Object.assign(s,await this.getHeaders()),fetch(r,{method:"POST",headers:s,body:JSON.stringify({executionId:e.executionId,approvalId:e.approvalId,decision:n,streamResponse:!0})})}async sendWithClientToolsDiff(e,n,o,r){let s=!!(n&&n.length>0),i=s?Hu(n):void 0,l=this.clientToolsFingerprintSessionId===e,p=s&&l&&this.lastSentClientToolsFingerprint===i,c=!s&&r?.emptyMeansReplace===!0&&this.sentNonEmptyClientToolsSessionId===e,d=!1,g;for(let b=0;;b++){if(g=await o({...s&&(d||!p)&&n?{clientTools:n}:{},...c?{clientTools:[]}:{},...i?{clientToolsFingerprint:i}:{}}),g.status===409&&b===0&&s&&(await g.clone().json().catch(()=>null))?.error==="client_tools_resend_required"){d=!0,this.lastSentClientToolsFingerprint=null;continue}break}return{response:g,commit:()=>{this.lastSentClientToolsFingerprint=i??null,this.clientToolsFingerprintSessionId=e,s?this.sentNonEmptyClientToolsSessionId=e:c&&(this.sentNonEmptyClientToolsSessionId=null)}}}async resumeFlow(e,n,o){let r=this.isClientTokenMode(),s=r?this.getClientApiUrl("resume"):`${this.config.apiUrl?.replace(/\/+$/,"")||ia}/resume`,i;r&&(i=(await this.initSession()).sessionId);let l={"Content-Type":"application/json",...this.headers};this.getHeaders&&Object.assign(l,await this.getHeaders());let p={executionId:e,toolOutputs:n,streamResponse:o?.streamResponse??!0};if(i&&(p.sessionId=i),r&&i){let c=[...na(this.config),...await this.webMcpBridge?.snapshotForDispatch()??[]],{response:d,commit:g}=await this.sendWithClientToolsDiff(i,c,b=>{let f={...p,...b};return this.debug&&console.debug("[AgentWidgetClient] client token resume",f),fetch(s,{method:"POST",headers:l,body:JSON.stringify(f),signal:o?.signal})},{emptyMeansReplace:!0});return d.ok&&g(),d}return fetch(s,{method:"POST",headers:l,body:JSON.stringify(p),signal:o?.signal})}latestMentionContext(e){for(let n=e.length-1;n>=0;n--){let o=e[n];if(o.role==="user")return o.mentionContext&&Object.keys(o.mentionContext).length>0?{mentions:o.mentionContext}:null}return null}async buildContextAggregate(e){let n={};this.contextProviders.length&&await Promise.all(this.contextProviders.map(async r=>{try{let s=await r({messages:e,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(e);return o&&Object.assign(n,o),Object.keys(n).length?n:null}async buildAgentPayload(e){let n=this.routing().agentId;if(!this.config.agent&&!n)throw new Error("Agent configuration required for agent mode");let o=e.slice().filter(bc).filter(l=>l.role==="user"||l.role==="assistant"||l.role==="system").filter(l=>!l.variant||l.variant==="assistant").sort((l,p)=>{let c=new Date(l.createdAt).getTime(),d=new Date(p.createdAt).getTime();return c-d}).map(l=>({role:l.role,content:l.contentParts??l.llmContent??l.rawContent??l.content,createdAt:l.createdAt})),r={agent:this.config.agent??{agentId:n},messages:o,options:{streamResponse:!0,recordMode:"virtual",...this.config.agentOptions}},s=[...na(this.config),...await this.webMcpBridge?.snapshotForDispatch()??[]];s.length>0&&(r.clientTools=s);let i=await this.buildContextAggregate(e);return i&&(r.context=i),r}async buildPayload(e){let n=e.slice().filter(bc).sort((l,p)=>{let c=new Date(l.createdAt).getTime(),d=new Date(p.createdAt).getTime();return c-d}).map(l=>({role:l.role,content:l.contentParts??l.llmContent??l.rawContent??l.content,createdAt:l.createdAt})),o=this.routing(),r={messages:n,...o.agentId?{agent:{agentId:o.agentId}}:o.flowId?{flowId:o.flowId}:{}};if(o.targetPayload)for(let[l,p]of Object.entries(o.targetPayload))l!=="messages"&&(r[l]=p);let s=[...na(this.config),...await this.webMcpBridge?.snapshotForDispatch()??[]];s.length>0&&(r.clientTools=s);let i=await this.buildContextAggregate(e);if(i&&(r.context=i),this.requestMiddleware)try{let l=await this.requestMiddleware({payload:{...r},config:this.config});if(l&&typeof l=="object"){let p=l;return r.clientTools!==void 0&&!("clientTools"in p)&&(p.clientTools=r.clientTools),p}}catch(l){typeof console<"u"&&console.error("[AgentWidget] Request middleware error:",l)}return r}async handleCustomSSEEvent(e,n,o,r,s,i){if(!this.parseSSEEvent)return!1;try{let l=await this.parseSSEEvent(e);if(l===null)return!1;let p=d=>{let g={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"assistant",sequence:s(),...d!==void 0&&{partId:d}};return o.current=g,r(g),g},c=d=>o.current?o.current:p(d);if(l.text!==void 0){l.partId!==void 0&&i.current!==null&&l.partId!==i.current&&(o.current&&(o.current.streaming=!1,r(o.current)),p(l.partId)),l.partId!==void 0&&(i.current=l.partId);let d=c(l.partId);l.partId!==void 0&&!d.partId&&(d.partId=l.partId),d.content+=l.text,r(d)}return l.done&&(o.current&&(o.current.streaming=!1,r(o.current)),i.current=null,n({type:"status",status:"idle"})),l.error&&(i.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(e,n,o,r){let s=e.getReader(),i=new TextDecoder,l="",p=Date.now(),c=0,d=()=>p+c++,g=k=>{let W=k.reasoning?{...k.reasoning,chunks:[...k.reasoning.chunks]}:void 0,h=k.toolCall?{...k.toolCall,chunks:k.toolCall.chunks?[...k.toolCall.chunks]:void 0}:void 0,O=k.tools?k.tools.map(R=>({...R,chunks:R.chunks?[...R.chunks]:void 0})):void 0;return{...k,reasoning:W,toolCall:h,tools:O}},b=k=>{if(k.role!=="assistant"||k.variant)return!0;let W=Array.isArray(k.contentParts)&&k.contentParts.length>0,h=typeof k.rawContent=="string"&&k.rawContent.trim()!=="";return typeof k.content=="string"&&k.content.trim()!==""||W||h||!!k.stopReason},f=k=>{b(k)&&n({type:"message",message:g(k)})},y=null,C=null,M={current:null},I={current:null},S=null,E="",L=new Map,D=new Map,z=new Map,$=new Map,F=new Map,B={lastId:null,byStep:new Map},H={lastId:null,byCall:new Map},w=k=>{if(k==null)return null;try{return String(k)}catch{return null}},N=k=>w(k.stepId??k.step_id??k.step??k.parentId??k.flowStepId??k.flow_step_id),K=k=>w(k.callId??k.call_id??k.requestId??k.request_id??k.toolCallId??k.tool_call_id??k.stepId??k.step_id),te=o,Q=!1,se=()=>{if(y)return y;let k,W="",h=S;return!Q&&te?(k=te,Q=!0,W=r??""):te&&h?k=`${te}_${h}`:k=`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,y={id:k,role:"assistant",content:W,createdAt:new Date().toISOString(),streaming:!0,sequence:d()},f(y),y},J=(k,W)=>{B.lastId=W,k&&B.byStep.set(k,W)},oe=(k,W)=>{let h=k.reasoningId??k.id,O=N(k);if(h){let _=String(h);return J(O,_),_}if(O){let _=B.byStep.get(O);if(_)return B.lastId=_,_}if(B.lastId&&!W)return B.lastId;if(!W)return null;let R=`reason-${d()}`;return J(O,R),R},Y=k=>{let W=$.get(k);if(W)return W;let h={id:`reason-${k}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"reasoning",sequence:d(),reasoning:{id:k,status:"streaming",chunks:[]}};return $.set(k,h),f(h),h},pe=(k,W)=>{H.lastId=W,k&&H.byCall.set(k,W)},ne=new Set,me=new Map,ve=new Set,be=new Map,Te=k=>{if(!k)return!1;let W=k.replace(/_+/g,"_").replace(/^_|_$/g,"");return W==="emit_artifact_markdown"||W==="emit_artifact_component"},ze=(k,W)=>{let h=k.toolId??k.id,O=K(k);if(h){let _=String(h);return pe(O,_),_}if(O){let _=H.byCall.get(O);if(_)return H.lastId=_,_}if(H.lastId&&!W)return H.lastId;if(!W)return null;let R=`tool-${d()}`;return pe(O,R),R},Oe=k=>{let W=F.get(k);if(W)return W;let h={id:`tool-${k}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,variant:"tool",sequence:d(),toolCall:{id:k,status:"pending"}};return F.set(k,h),f(h),h},Ne=k=>{if(typeof k=="number"&&Number.isFinite(k))return k;if(typeof k=="string"){let W=Number(k);if(!Number.isNaN(W)&&Number.isFinite(W))return W;let h=Date.parse(k);if(!Number.isNaN(h))return h}return Date.now()},Be=k=>{if(typeof k=="string")return k;if(k==null)return"";try{return JSON.stringify(k)}catch{return String(k)}},Ue=new Map,Me=new Map,Ee=new Map,Ve=(k,W,h)=>{let O=Ee.get(k);O||(O=[],Ee.set(k,O));let R=0,_=O.length;for(;R<_;){let q=R+_>>>1;O[q].seq<W?R=q+1:_=q}O[R]?.seq===W?O[R]={seq:W,text:h}:O.splice(R,0,{seq:W,text:h});let Z="";for(let q=0;q<O.length;q++)Z+=O[q].text;return Z},Jt=(k,W)=>{let h=Be(W),O=Me.get(k.id),R=Ly(O,h);k.rawContent=R;let _=Ue.get(k.id),Z=fe=>{let Ie=k.content??"";fe.trim()!==""&&(Ie.trim().length===0||fe.startsWith(Ie)||fe.trimStart().startsWith(Ie.trim()))&&(k.content=fe)},q=()=>{if(_){let fe=_.close?.();fe instanceof Promise&&fe.catch(()=>{})}Ue.delete(k.id),Me.delete(k.id),k.streaming=!1,f(k)};if(!_){Z(h),q();return}let ee=Bs(R);if(ee!==null&&ee.trim()!==""){Z(ee),q();return}let ge=fe=>{let Ie=typeof fe=="string"?fe:fe?.text??null;if(Ie!==null&&Ie.trim()!=="")return Ie;let Ke=_.getExtractedText();return Ke!==null&&Ke.trim()!==""?Ke:h},qe;try{qe=_.processChunk(R)}catch{Z(h),q();return}if(qe instanceof Promise){qe.then(fe=>{Z(ge(fe)),q()}).catch(()=>{Z(h),q()});return}Z(ge(qe)),q()},bt=null,Nt=(k,W,h,O)=>{k.rawContent=W,Ue.has(k.id)||Ue.set(k.id,this.createStreamParser());let R=Ue.get(k.id),_=W.trim().startsWith("{")||W.trim().startsWith("[");if(_&&Me.set(k.id,W),R.__isPlainTextParser===!0){k.content=O!==void 0?W:k.content+h,Me.delete(k.id),Ue.delete(k.id),k.rawContent=void 0,f(k);return}let q=R.processChunk(W);if(q instanceof Promise)q.then(ee=>{let ge=typeof ee=="string"?ee:ee?.text??null;ge!==null&&ge.trim()!==""?(k.content=ge,f(k)):!_&&!W.trim().startsWith("<")&&(k.content=O!==void 0?W:k.content+h,Me.delete(k.id),Ue.delete(k.id),k.rawContent=void 0,f(k))}).catch(()=>{k.content=O!==void 0?W:k.content+h,Me.delete(k.id),Ue.delete(k.id),k.rawContent=void 0,f(k)});else{let ee=typeof q=="string"?q:q?.text??null;ee!==null&&ee.trim()!==""?(k.content=ee,f(k)):!_&&!W.trim().startsWith("<")&&(k.content=O!==void 0?W:k.content+h,Me.delete(k.id),Ue.delete(k.id),k.rawContent=void 0,f(k))}},Mn=(k,W)=>{let h=W??k.content;if(h==null||h===""){k.streaming=!1,f(k);return}let R=Me.get(k.id)??Be(h);k.rawContent=R;let _=Ue.get(k.id),Z=null,q=!1;if(_&&(Z=_.getExtractedText(),Z===null&&(Z=Bs(R)),Z===null)){let ee=_.processChunk(R);ee instanceof Promise?(q=!0,ee.then(ge=>{let qe=typeof ge=="string"?ge:ge?.text??null;qe!==null&&(k.content=qe,k.streaming=!1,Ue.delete(k.id),Me.delete(k.id),f(k))}).catch(()=>{})):Z=typeof ee=="string"?ee:ee?.text??null}if(!q){Z!==null&&Z.trim()!==""?k.content=Z:Me.has(k.id)||(k.content=Be(h));let ee=Ue.get(k.id);if(ee){let ge=ee.close?.();ge instanceof Promise&&ge.catch(()=>{}),Ue.delete(k.id)}Me.delete(k.id),k.streaming=!1,f(k)}},Tn=(k,W,h)=>{let O=D.get(k);if(O)return O;let R={id:`nested-${W}-${k}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:d(),...h?{variant:h}:{},...h==="reasoning"?{reasoning:{id:k,status:"streaming",chunks:[]}}:{},agentMetadata:{parentToolId:W}};return D.set(k,R),f(R),R},nt=[],Pe,xe=new Map,ot=0,ke="agent",Ce=!1,ce=null,Ae=null,En=new Map,ae=this.config.iterationDisplay??"separate";for(Pe=()=>{for(let k=0;k<nt.length;k++){let W=nt[k].payloadType,h=nt[k].payload;if(!Ce&&ke!=="flow"&&typeof h.stepType=="string"&&(ke="flow"),W==="reasoning_start"){let O=typeof h.id=="string"?h.id:null,R=typeof h.parentToolCallId=="string"&&h.parentToolCallId?h.parentToolCallId:null;if(O&&R){L.set(O,R),Tn(O,R,"reasoning");continue}let _=oe(h,!0)??`reason-${d()}`,Z=Y(_);Z.reasoning=Z.reasoning??{id:_,status:"streaming",chunks:[]},Z.reasoning.startedAt=Z.reasoning.startedAt??Ne(h.startedAt??h.timestamp),Z.reasoning.completedAt=void 0,Z.reasoning.durationMs=void 0,(h.scope==="loop"||h.scope==="turn")&&(Z.reasoning.scope=h.scope),Z.streaming=!0,Z.reasoning.status="streaming",f(Z)}else if(W==="reasoning_delta"){let O=typeof h.id=="string"?h.id:null;if(O&&L.has(O)&&D.has(O)){let q=D.get(O),ee=h.reasoningText??h.text??h.delta??"";ee&&h.hidden!==!0&&q.reasoning&&(q.reasoning.chunks.push(String(ee)),f(q));continue}let R=oe(h,!1)??oe(h,!0)??`reason-${d()}`,_=Y(R);_.reasoning=_.reasoning??{id:R,status:"streaming",chunks:[]},_.reasoning.startedAt=_.reasoning.startedAt??Ne(h.startedAt??h.timestamp);let Z=h.reasoningText??h.text??h.delta??"";if(Z&&h.hidden!==!0){let q=typeof h.sequenceIndex=="number"?h.sequenceIndex:void 0;if(q!==void 0){let ee=Ve(R,q,String(Z));_.reasoning.chunks=[ee]}else _.reasoning.chunks.push(String(Z))}if(_.reasoning.status=h.done?"complete":"streaming",h.done){_.reasoning.completedAt=Ne(h.completedAt??h.timestamp);let q=_.reasoning.startedAt??Date.now();_.reasoning.durationMs=Math.max(0,(_.reasoning.completedAt??Date.now())-q)}_.streaming=_.reasoning.status!=="complete",f(_)}else if(W==="reasoning_complete"){let O=typeof h.id=="string"?h.id:null;if(O&&L.has(O)&&D.has(O)){let ee=D.get(O);if(ee.reasoning){let ge=typeof h.text=="string"?h.text:"";ge&&ee.reasoning.chunks.length===0&&ee.reasoning.chunks.push(ge),ee.reasoning.status="complete",ee.streaming=!1,f(ee)}L.delete(O),D.delete(O);continue}let R=oe(h,!1)??oe(h,!0)??`reason-${d()}`,_=typeof h.text=="string"?h.text:"";!$.get(R)&&(_||h.scope==="loop")&&Y(R);let Z=$.get(R);if(Z?.reasoning){(h.scope==="loop"||h.scope==="turn")&&(Z.reasoning.scope=h.scope),_&&Z.reasoning.chunks.length===0&&Z.reasoning.chunks.push(_),Z.reasoning.status="complete",Z.reasoning.completedAt=Ne(h.completedAt??h.timestamp);let ee=Z.reasoning.startedAt??Date.now();Z.reasoning.durationMs=Math.max(0,(Z.reasoning.completedAt??Date.now())-ee),Z.streaming=!1,f(Z)}let q=N(h);q&&B.byStep.delete(q)}else if(W==="tool_start"){y&&(y.streaming=!1,f(y),y=null),typeof h.iteration=="number"&&(ot=h.iteration);let O=(typeof h.toolCallId=="string"?h.toolCallId:void 0)??ze(h,!0)??`tool-${d()}`,R=h.toolName??h.name;if(Te(R)){ne.add(O);continue}pe(K(h),O);let _=Oe(O),Z=_.toolCall??{id:O,status:"pending"};Z.name=R??Z.name,Z.status="running",h.parameters!==void 0?Z.args=h.parameters:h.args!==void 0&&(Z.args=h.args),Z.startedAt=Z.startedAt??Ne(h.startedAt??h.timestamp),Z.completedAt=void 0,Z.durationMs=void 0,_.toolCall=Z,_.streaming=!0,h.executionId&&(_.agentMetadata={executionId:h.executionId,iteration:h.iteration}),f(_)}else if(W==="tool_output_delta"){let O=ze(h,!1)??ze(h,!0)??`tool-${d()}`;if(ne.has(O))continue;let R=Oe(O),_=R.toolCall??{id:O,status:"running"};_.startedAt=_.startedAt??Ne(h.startedAt??h.timestamp);let Z=h.text??h.delta??h.message??"";Z&&(_.chunks=_.chunks??[],_.chunks.push(String(Z))),_.status="running",R.toolCall=_,R.streaming=!0;let q=h.agentContext;(q||h.executionId)&&(R.agentMetadata=R.agentMetadata??{executionId:q?.executionId??h.executionId,iteration:q?.iteration??h.iteration}),f(R)}else if(W==="tool_complete"){let O=ze(h,!1)??ze(h,!0)??`tool-${d()}`;if(ne.has(O)){ne.delete(O);continue}let R=Oe(O),_=R.toolCall??{id:O,status:"running"};_.status="complete",h.result!==void 0&&(_.result=h.result),typeof h.duration=="number"&&(_.duration=h.duration),_.completedAt=Ne(h.completedAt??h.timestamp);let Z=h.duration??h.executionTime;if(typeof Z=="number")_.durationMs=Z;else{let ge=_.startedAt??Date.now();_.durationMs=Math.max(0,(_.completedAt??Date.now())-ge)}R.toolCall=_,R.streaming=!1;let q=h.agentContext;(q||h.executionId)&&(R.agentMetadata=R.agentMetadata??{executionId:q?.executionId??h.executionId,iteration:q?.iteration??h.iteration}),f(R);let ee=K(h);ee&&H.byCall.delete(ee)}else if(W==="await"&&h.toolName){let O=typeof h.toolCallId=="string"&&h.toolCallId.length>0?h.toolCallId:void 0,R=O??h.toolId??`local-${d()}`,_=Oe(R),Z=h.toolName,q=h.origin==="webmcp"&&!kr(Z)?`webmcp:${Z}`:Z,ee=kr(q),ge=_.toolCall??{id:R,status:"pending"};ge.name=q,ge.args=h.parameters,ge.status=ee?"running":"complete",ge.chunks=ge.chunks??[],ge.startedAt=ge.startedAt??Ne(h.startedAt??h.timestamp??h.awaitedAt),ee?(ge.completedAt=void 0,ge.duration=void 0,ge.durationMs=void 0):ge.completedAt=ge.completedAt??ge.startedAt,_.toolCall=ge,_.streaming=!1,_.agentMetadata={..._.agentMetadata,executionId:h.executionId??_.agentMetadata?.executionId,awaitingLocalTool:!0,...O?{webMcpToolCallId:O}:{}},f(_)}else if(W==="text_start"){let O=typeof h.id=="string"?h.id:null,R=typeof h.parentToolCallId=="string"&&h.parentToolCallId?h.parentToolCallId:null;if(O&&R){L.set(O,R);continue}let _=y;_&&(ke==="flow"?(Mn(_),bt=_):(_.streaming=!1,f(_)),y=null),S=typeof h.id=="string"?h.id:S,E=""}else if(W==="text_delta"){let O=typeof h.id=="string"?h.id:null,R=O?L.get(O):void 0;if(O&&R){let Z=typeof h.delta=="string"?h.delta:"",q=(z.get(O)??"")+Z;if(z.set(O,q),q.trim()==="")continue;let ee=Tn(O,R);ee.agentMetadata={...ee.agentMetadata,executionId:h.executionId,parentToolId:R},Nt(ee,q,Z,void 0);continue}if(S=typeof h.id=="string"?h.id:S,ke==="flow"){let Z=typeof h.delta=="string"?h.delta:"";if(E+=Z,E.trim()==="")continue;let q=se();q.agentMetadata={executionId:h.executionId,iteration:h.iteration},Nt(q,E,Z,void 0),C=q;continue}let _=se();_.content+=h.delta??"",_.agentMetadata={executionId:h.executionId,iteration:h.iteration,turnId:ce??void 0,agentName:Ae?.agentName},C=_,f(_)}else if(W==="text_complete"){let O=typeof h.id=="string"?h.id:null;if(O&&L.has(O)){let _=D.get(O);_&&Mn(_),L.delete(O),z.delete(O),D.delete(O);continue}let R=y;R&&(ke==="flow"?(Mn(R),bt=R):((R.content??"")===""&&typeof h.text=="string"&&(R.content=h.text),R.streaming=!1,f(R)),y=null),S=null,E=""}else if(W==="step_complete"){let O=h.stepType,R=h.executionType;if(O==="tool"||R==="context")continue;if(h.success===!1){let _=h.error,Z=typeof _=="string"&&_!==""?_:_!=null&&typeof _=="object"&&Reflect.has(_,"message")?String(_.message??"Step failed"):"Step failed";n({type:"error",error:new Error(Z)});let q=y;q&&q.streaming&&(q.streaming=!1,f(q)),n({type:"status",status:"idle"});continue}{let _=bt;bt=null;let Z=h.stopReason,q=h.result?.response;if(_)Z&&(_.stopReason=Z),q!=null?Jt(_,q):_.streaming!==!1&&(Ue.delete(_.id),Me.delete(_.id),_.streaming=!1,f(_));else{let ee=q!=null&&q!=="";if(ee||Z){let ge=se();Z&&(ge.stopReason=Z),ee?Mn(ge,q):(ge.streaming=!1,f(ge))}}continue}}else if(W==="execution_start")ke=h.kind==="flow"?"flow":"agent",Ce=!0,ke==="agent"&&(Ae={executionId:h.executionId,agentId:h.agentId??"virtual",agentName:h.agentName??"",status:"running",currentIteration:0,maxTurns:h.maxTurns??1,startedAt:Ne(h.startedAt)});else if(W==="turn_start"){let O=typeof h.iteration=="number"?h.iteration:ot;if(O!==ot){if(Ae&&(Ae.currentIteration=O),ae==="separate"&&O>1){let R=y;R&&(R.streaming=!1,f(R),En.set(O-1,R),y=null)}ot=O}ce=typeof h.id=="string"?h.id:null,C=null}else if(W==="tool_input_delta"){let O=h.toolCallId??H.lastId;if(O){let R=F.get(O);R?.toolCall&&(R.toolCall.chunks=R.toolCall.chunks??[],R.toolCall.chunks.push(h.delta??""),f(R))}}else{if(W==="tool_input_complete")continue;if(W==="turn_complete"){let O=h.stopReason,R=y??C;if(O&&R!==null){let _=h.id;(!_||R.agentMetadata?.turnId===_)&&(R.stopReason=O,f(R))}ce===h.id&&(ce=null)}else if(W==="media_start"){let O=String(h.id);xe.set(O,{mediaType:typeof h.mediaType=="string"?h.mediaType:void 0,role:typeof h.role=="string"?h.role:void 0,toolCallId:h.toolCallId,parts:[]})}else if(W==="media_delta"){let O=xe.get(String(h.id));O&&typeof h.delta=="string"&&O.parts.push(h.delta)}else if(W==="media_complete"){let O=String(h.id),R=xe.get(O);xe.delete(O);let _=(typeof h.mediaType=="string"?h.mediaType:void 0)??R?.mediaType??"application/octet-stream",Z=typeof h.data=="string"?h.data:void 0,q=typeof h.url=="string"?h.url:R&&R.parts.length>0?R.parts.join(""):void 0,ee=null;if(Z)ee={type:"media",data:Z,mediaType:_};else if(q){let Ie=_.toLowerCase();ee={type:Ie==="image"||Ie.startsWith("image/")?"image-url":"file-url",url:q,mediaType:_}}let ge=h.toolCallId??R?.toolCallId,qe=ee?[ee]:[],fe=[];for(let Ie of qe){if(!Ie||typeof Ie!="object")continue;let Ke=Ie,je=typeof Ke.type=="string"?Ke.type:void 0,He=typeof Ke.mediaType=="string"?Ke.mediaType.toLowerCase():"",Se=null,rt="";if(je==="media"){let Mt=typeof Ke.data=="string"?Ke.data:void 0;if(!Mt)continue;rt=He.length>0?He:"application/octet-stream",Se=`data:${rt};base64,${Mt}`}else if(je==="image-url"){let Mt=typeof Ke.url=="string"?Ke.url:void 0;if(!Mt)continue;rt=He,Se=Mt}else if(je==="file-url"){let Mt=typeof Ke.url=="string"?Ke.url:void 0;if(!Mt)continue;rt=He,Se=Mt}else continue;if(Se)if(je==="image-url"||rt.startsWith("image/"))fe.push({type:"image",image:Se,...rt.includes("/")?{mimeType:rt}:{}});else if(rt.startsWith("audio/"))fe.push({type:"audio",audio:Se,mimeType:rt});else if(rt.startsWith("video/"))fe.push({type:"video",video:Se,mimeType:rt});else{let Mt=rt||"application/octet-stream";fe.push({type:"file",data:Se,mimeType:Mt,filename:Ey(Mt)})}}if(fe.length>0){let Ie=d(),Ke=ge,He={id:`agent-media-${typeof Ke=="string"&&Ke.length>0?`${Ke}-${Ie}`:String(Ie)}`,role:"assistant",content:"",contentParts:fe,createdAt:new Date().toISOString(),streaming:!1,sequence:Ie,agentMetadata:{executionId:h.executionId,iteration:typeof h.iteration=="number"?h.iteration:ot}};f(He);let Se=y;Se&&(Se.streaming=!1,f(Se)),y=null,M.current=null}}else if(W==="execution_complete"){let O=h.kind??ke;O==="agent"&&Ae&&(Ae.status=h.success?"complete":"error",Ae.completedAt=Ne(h.completedAt),Ae.stopReason=h.stopReason);let R=y;R&&(O==="flow"&&R.streaming!==!1?Mn(R):(R.streaming=!1,f(R)),y=null),S=null,E="",bt=null,n({type:"status",status:"idle",terminal:!0})}else if(W==="execution_error"){let O=typeof h.error=="string"?h.error:h.error?.message??"Execution error";n({type:"error",error:new Error(O)})}else if(W!=="ping"){if(W==="approval_start"){let O=h.approvalId??`approval-${d()}`,R={id:`approval-${O}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:d(),approval:{id:O,status:"pending",agentId:Ae?.agentId??"virtual",executionId:h.executionId??Ae?.executionId??"",toolName:h.toolName??"",toolType:h.toolType,description:h.description??`Execute ${h.toolName??"tool"}`,...typeof h.reason=="string"&&h.reason?{reason:h.reason}:{},parameters:h.parameters}};f(R)}else if(W==="step_await"&&h.awaitReason==="approval_required"){let O=h.approvalId??`approval-${d()}`,R={id:`approval-${O}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:d(),approval:{id:O,status:"pending",agentId:Ae?.agentId??"virtual",executionId:h.executionId??Ae?.executionId??"",toolName:h.toolName??"",toolType:h.toolType,description:h.description??`Execute ${h.toolName??"tool"}`,...typeof h.reason=="string"&&h.reason?{reason:h.reason}:{},parameters:h.parameters}};f(R)}else if(W==="approval_complete"){let O=h.approvalId;if(O){let _={id:`approval-${O}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!1,variant:"approval",sequence:d(),approval:{id:O,status:h.decision??"approved",agentId:Ae?.agentId??"virtual",executionId:h.executionId??Ae?.executionId??"",toolName:h.toolName??"",description:h.description??"",resolvedAt:Date.now()}};f(_)}}else if(W==="artifact_start"||W==="artifact_delta"||W==="artifact_update"||W==="artifact_complete"){if(W==="artifact_start"){let O=h.artifactType,R=String(h.id),_=typeof h.title=="string"?h.title:void 0,Z=h.file,q;Z&&typeof Z=="object"&&!Array.isArray(Z)&&typeof Z.path=="string"&&typeof Z.mimeType=="string"&&(q={path:Z.path,mimeType:Z.mimeType,...typeof Z.language=="string"?{language:Z.language}:{}}),n({type:"artifact_start",id:R,artifactType:O,title:_,component:typeof h.component=="string"?h.component:void 0,...q?{file:q}:{}});let ee=h.props&&typeof h.props=="object"&&!Array.isArray(h.props)?{...h.props}:void 0;if(be.set(R,{markdown:"",title:_,file:q,...ee?{props:ee}:{}}),!ve.has(R)){ve.add(R);let ge=xo(this.config.features?.artifacts,{artifactType:O,...q?{file:q}:{}}),qe=typeof h.component=="string"?h.component:void 0,fe={id:`artifact-ref-${R}`,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:d(),rawContent:Ls(ge,{artifactId:R,title:_,artifactType:O,status:"streaming",...q?{file:q}:{},...qe?{component:qe}:{}})};me.set(R,fe),f(fe)}}else if(W==="artifact_delta"){let O=String(h.id),R=typeof h.delta=="string"?h.delta:String(h.delta??"");n({type:"artifact_delta",id:O,artDelta:R});let _=be.get(O);_&&(_.markdown+=R)}else if(W==="artifact_update"){let O=h.props&&typeof h.props=="object"&&!Array.isArray(h.props)?h.props:{};n({type:"artifact_update",id:String(h.id),props:O,component:typeof h.component=="string"?h.component:void 0});let R=be.get(String(h.id));R&&(R.props={...R.props??{},...O})}else if(W==="artifact_complete"){let O=String(h.id);n({type:"artifact_complete",id:O});let R=me.get(O);if(R){R.streaming=!1;try{let _=JSON.parse(R.rawContent??"{}");if(_.props){_.props.status="complete";let Z=be.get(O);Z?.markdown&&(_.props.markdown=Z.markdown),Z?.file&&(_.props.file=Z.file),_.component==="PersonaArtifactInline"&&Z?.props&&Object.keys(Z.props).length>0&&(_.props.componentProps=Z.props)}R.rawContent=JSON.stringify(_)}catch{}be.delete(O),f(R),me.delete(O)}}}else if(W==="transcript_insert"){let O=h.message;if(!O||typeof O!="object")continue;let R=String(O.id??`msg-${d()}`),_=O.role,q={id:R,role:_==="user"?"user":_==="system"?"system":"assistant",content:typeof O.content=="string"?O.content:"",rawContent:typeof O.rawContent=="string"?O.rawContent:void 0,createdAt:typeof O.createdAt=="string"?O.createdAt:new Date().toISOString(),streaming:O.streaming===!0,...typeof O.variant=="string"?{variant:O.variant}:{},sequence:d()};if(f(q),q.rawContent)try{let ge=JSON.parse(q.rawContent)?.props?.artifactId;typeof ge=="string"&&ve.add(ge)}catch{}y=null,M.current=null,Ue.delete(R),Me.delete(R)}else if(W==="error"){if(h.recoverable===!1&&h.error!=null&&h.error!==""){let O=typeof h.error=="string"?h.error:h.error?.message!=null?String(h.error.message):"Execution error";n({type:"error",error:new Error(O)});let R=y;R&&R.streaming&&(R.streaming=!1,f(R)),n({type:"status",status:"idle"})}}else if(W==="step_error"||W==="dispatch_error"||W==="flow_error"){let O=null;if(h.error instanceof Error)O=h.error;else if(W==="dispatch_error"){let R=h.message??h.error;R!=null&&R!==""&&(O=new Error(String(R)))}else{let R=h.error;typeof R=="string"&&R!==""?O=new Error(R):R!=null&&typeof R=="object"&&Reflect.has(R,"message")&&(O=new Error(String(R.message??R)))}if(O){n({type:"error",error:O});let R=y;R&&R.streaming&&(R.streaming=!1,f(R)),n({type:"status",status:"idle"})}}}}}nt.length=0};;){let{done:k,value:W}=await s.read();if(k)break;l+=i.decode(W,{stream:!0});let h=l.split(`
|
|
185
185
|
|
|
186
|
-
`);l=
|
|
187
|
-
`),$="message",U="",F=null;for(let Se of N)Se.startsWith("event:")?$=Se.replace("event:","").trim():Se.startsWith("data:")?U+=Se.replace("data:","").trim():Se.startsWith("id:")&&(F=Se.slice(3).trim());let te=()=>{F!==null&&F!==""&&n({type:"cursor",id:F})};if(!U){te();continue}let de;try{de=JSON.parse(U)}catch(Se){n({type:"error",error:Se instanceof Error?Se:new Error("Failed to parse chat stream payload")});continue}let Le=$!=="message"?$:de.type??"message";if(this.onSSEEvent?.(Le,de),this.parseSSEEvent){L.current=h;let Se=await this.handleCustomSSEEvent(de,n,L,g,d,B);if(L.current&&L.current!==h&&(h=L.current),Se){te();continue}}ye.push({payloadType:Le,payload:de}),Ye(),te()}}Ye()}};function $i(){let t=Date.now().toString(36),e=Math.random().toString(36).substring(2,10);return`usr_${t}_${e}`}function hr(){let t=Date.now().toString(36),e=Math.random().toString(36).substring(2,10);return`ast_${t}_${e}`}var zi="[Image]";function cu(t){return typeof t=="string"?!1:t.some(e=>e.type==="image")}function yr(t){return{type:"text",text:t}}var du=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml","image/bmp"],gy=["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"],Kn=[...du,...gy];function fy(t){return du.includes(t)||t.startsWith("image/")}function Ui(t){return fy(t.type)}async function pu(t){return new Promise((e,n)=>{let o=new FileReader;o.onload=()=>{let r=o.result;Ui(t)?e({type:"image",image:r,mimeType:t.type,alt:t.name}):e({type:"file",data:r,mimeType:t.type,filename:t.name})},o.onerror=()=>n(new Error("Failed to read file")),o.readAsDataURL(t)})}function uu(t,e=Kn,n=10*1024*1024){return e.includes(t.type)?t.size>n?{valid:!1,error:`File too large. Maximum size: ${Math.round(n/1048576)}MB`}:{valid:!0}:{valid:!1,error:`Invalid file type "${t.type}". Accepted types: ${e.join(", ")}`}}function my(t){let e=t.split(".");return e.length>1?e.pop().toLowerCase():""}function gu(t,e){let n=my(e).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"}[t]||n||"FILE"}Bl();var fu=16e3,hy=24e3,yy=4096,by=1380533830;function vy(t){return t.byteLength>=44&&new DataView(t).getUint32(0,!1)===by?new Uint8Array(t,44):new Uint8Array(t)}function xy(t){let e=t.replace(/\/+$/,"");return/^wss?:\/\//i.test(e)?e:/^https?:\/\//i.test(e)?e.replace(/^http/i,"ws"):`${typeof window<"u"&&window.location?.protocol==="https:"?"wss:":"ws:"}//${e}`}var vs=class{constructor(e){this.config=e;this.type="runtype";this.ws=null;this.captureContext=null;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 e=this.config?.agentId,n=this.config?.clientToken,o=this.config?.host;if(!e)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:fu,channelCount:1,echoCancellation:!0}});if(r!==this.callGeneration){s.getTracks().forEach(u=>u.stop());return}this.mediaStream=s;let i=window.AudioContext||window.webkitAudioContext,l=new i({sampleRate:fu});l.state==="suspended"&&await l.resume().catch(()=>{}),this.captureContext=l;let p=this.config?.createPlaybackEngine?await this.config.createPlaybackEngine():new br(hy);if(r!==this.callGeneration){p.destroy(),s.getTracks().forEach(u=>u.stop()),l.close().catch(()=>{});return}this.playback=p,p.onFinished(()=>{r===this.callGeneration&&(this.isSpeaking=!1,this.ws&&this.ws.readyState===WebSocket.OPEN&&this.emitStatus("listening"))});let c=`${xy(o)}/ws/agents/${encodeURIComponent(e)}/voice`,d=new WebSocket(c,["runtype.bearer",n]);d.binaryType="arraybuffer",this.ws=d,d.onopen=()=>{r===this.callGeneration&&(this.emitStatus("listening"),this.startCapture(l,s,d,r))},d.onmessage=u=>this.handleMessage(u,r),d.onerror=()=>{r===this.callGeneration&&(this.emitError(new Error("Voice connection failed")),this.emitStatus("error"),this.cleanup())},d.onclose=u=>{if(this.intentionalClose){this.intentionalClose=!1;return}if(r===this.callGeneration){if(u.code!==1e3){let b=u.code?` (code ${u.code})`:"";this.emitError(new Error(`Voice connection closed${b}`)),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}async deactivateBargeIn(){this.cleanup(),this.emitStatus("idle")}startCapture(e,n,o,r){let s=e.createMediaStreamSource(n);this.sourceNode=s;let i=e.createScriptProcessor(yy,1,1);this.processor=i,i.onaudioprocess=l=>{if(r!==this.callGeneration||o.readyState!==WebSocket.OPEN)return;let p=l.inputBuffer.getChannelData(0),c=new Int16Array(p.length);for(let d=0;d<p.length;d++){let u=Math.max(-1,Math.min(1,p[d]));c[d]=u<0?u*32768:u*32767}o.send(c.buffer)},s.connect(i),i.connect(e.destination)}handleMessage(e,n){if(n!==this.callGeneration)return;if(e.data instanceof ArrayBuffer){this.handleAudioFrame(e.data,n);return}let o;try{o=JSON.parse(e.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(e,n){if(n!==this.callGeneration||!this.playback)return;let o=vy(e);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(e=>e.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(e){this.resultCallbacks.push(e)}onError(e){this.errorCallbacks.push(e)}onStatusChange(e){this.statusCallbacks.push(e)}onTranscript(e){this.transcriptCallbacks.push(e)}onMetrics(e){this.metricsCallbacks.push(e)}emitStatus(e){this.statusCallbacks.forEach(n=>n(e))}emitError(e){this.errorCallbacks.forEach(n=>n(e))}emitTranscript(e,n,o){this.transcriptCallbacks.forEach(r=>r(e,n,o))}emitMetrics(e){this.metricsCallbacks.forEach(n=>n(e))}};var _o=class{constructor(e={}){this.config=e;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(e=>e("connected"))}async startListening(){try{if(this.isListening)throw new Error("Already listening");if(!this.w)throw new Error("Window object not available");let e=this.w.SpeechRecognition||this.w.webkitSpeechRecognition;if(!e)throw new Error("Browser speech recognition not supported");this.recognition=new e,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(e){throw this.errorCallbacks.forEach(n=>n(e)),this.statusCallbacks.forEach(n=>n("error")),e}}async stopListening(){this.recognition&&(this.recognition.stop(),this.recognition=null),this.isListening=!1,this.statusCallbacks.forEach(e=>e("idle"))}onResult(e){this.resultCallbacks.push(e)}onError(e){this.errorCallbacks.push(e)}onStatusChange(e){this.statusCallbacks.push(e)}async disconnect(){await this.stopListening(),this.statusCallbacks.forEach(e=>e("disconnected"))}static isSupported(){return"SpeechRecognition"in window||"webkitSpeechRecognition"in window}};function vr(t){switch(t.type){case"runtype":if(!t.runtype)throw new Error("Runtype voice provider requires configuration");return new vs(t.runtype);case"browser":if(!_o.isSupported())throw new Error("Browser speech recognition not supported");return new _o(t.browser||{});case"custom":{let e=t.custom;if(!e)throw new Error("Custom voice provider requires a `custom` provider instance or factory");let n=typeof e=="function"?e():e;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: ${t.type}`)}}function mu(t){if(t?.type==="custom"&&t.custom)return vr({type:"custom",custom:t.custom});if(t?.type==="runtype"&&t.runtype)return vr({type:"runtype",runtype:t.runtype});if(_o.isSupported())return vr({type:"browser",browser:t?.browser||{language:"en-US"}});throw new Error("No supported voice providers available")}function Dl(t){try{return mu(t),!0}catch{return!1}}function ji(t){let e=["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 e){let o=t.find(r=>r.name===n);if(o)return o}return t.find(n=>n.lang.startsWith("en"))??t[0]}var xr=class t{constructor(e={}){this.options=e;this.id="browser";this.supportsPause=!0}static isSupported(){return typeof window<"u"&&"speechSynthesis"in window}speak(e,n){if(!t.isSupported()){n.onError?.(new Error("Web Speech API is unavailable"));return}let o=window.speechSynthesis;o.cancel();let r=new SpeechSynthesisUtterance(e.text),s=o.getVoices();if(e.voice){let i=s.find(l=>l.name===e.voice);i&&(r.voice=i)}else s.length>0&&(r.voice=this.options.pickVoice?this.options.pickVoice(s):ji(s));e.rate!==void 0&&(r.rate=e.rate),e.pitch!==void 0&&(r.pitch=e.pitch),r.onend=()=>n.onEnd?.(),r.onerror=i=>{let l=i.error;l==="canceled"||l==="interrupted"?n.onEnd?.():n.onError?.(new Error(l||"Speech synthesis failed"))},setTimeout(()=>{o.speak(r),n.onStart?.()},50)}pause(){t.isSupported()&&window.speechSynthesis.pause()}resume(){t.isSupported()&&window.speechSynthesis.resume()}stop(){t.isSupported()&&window.speechSynthesis.cancel()}};var xs=class{constructor(e){this.resolveEngine=e;this.engine=null;this.activeId=null;this.state="idle";this.listeners=new Set;this.generation=0}get supportsPause(){return this.engine?.supportsPause??!0}stateFor(e){return this.activeId===e?this.state:"idle"}activeMessageId(){return this.activeId}onChange(e){return this.listeners.add(e),()=>this.listeners.delete(e)}toggle(e,n){if(this.activeId===e){if(this.state==="playing"){this.engine?.supportsPause?(this.engine.pause(),this.set(e,"paused")):this.stop();return}if(this.state==="paused"){this.engine?.resume(),this.set(e,"playing");return}if(this.state==="loading"){this.stop();return}}this.play(e,n)}async play(e,n){let o=++this.generation;this.engine?.stop(),this.set(e,"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(e,"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(e,n){this.activeId=n==="idle"?null:e,this.state=n;for(let o of this.listeners)o(this.activeId,this.state)}};function Nl(t){if(!t)return"";let e=Cy(t);return hu(e!==null?e:t)}function Cy(t){let e=t.trim(),n=e.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i);if(n&&(e=n[1].trim()),!e.startsWith("{"))return null;try{let o=JSON.parse(e);if(o&&typeof o=="object"&&typeof o.text=="string")return o.text}catch{}return null}function hu(t){if(!t)return"";let e=t;return e=e.replace(/```[\s\S]*?```/g," "),e=e.replace(/~~~[\s\S]*?~~~/g," "),e=e.replace(/`([^`]+)`/g,"$1"),e=e.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),e=e.replace(/\[([^\]]+)\]\([^)]*\)/g,"$1"),e=e.replace(/\[([^\]]+)\]\[[^\]]*\]/g,"$1"),e=e.replace(/<\/?[a-zA-Z][^>]*>/g," "),e=e.replace(/^[ \t]*#{1,6}[ \t]+/gm,""),e=e.replace(/^[ \t]*>[ \t]?/gm,""),e=e.replace(/^[ \t]*[-*+][ \t]+/gm,""),e=e.replace(/^[ \t]*\d+\.[ \t]+/gm,""),e=e.replace(/^[ \t]*([-*_])([ \t]*\1){2,}[ \t]*$/gm," "),e=e.replace(/(\*\*|__)(.*?)\1/g,"$2"),e=e.replace(/(\*|_)(.*?)\1/g,"$2"),e=e.replace(/~~(.*?)~~/g,"$1"),e=e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/ /g," "),e=e.replace(/[ \t]+/g," "),e=e.replace(/[ \t]*\n[ \t]*/g,`
|
|
186
|
+
`);l=h.pop()??"";for(let O of h){let R=O.split(`
|
|
187
|
+
`),_="message",Z="",q=null;for(let fe of R)fe.startsWith("event:")?_=fe.replace("event:","").trim():fe.startsWith("data:")?Z+=fe.replace("data:","").trim():fe.startsWith("id:")&&(q=fe.slice(3).trim());let ee=()=>{q!==null&&q!==""&&n({type:"cursor",id:q})};if(!Z){ee();continue}let ge;try{ge=JSON.parse(Z)}catch(fe){n({type:"error",error:fe instanceof Error?fe:new Error("Failed to parse chat stream payload")});continue}let qe=_!=="message"?_:ge.type??"message";if(this.onSSEEvent?.(qe,ge),this.parseSSEEvent){M.current=y;let fe=await this.handleCustomSSEEvent(ge,n,M,f,d,I);if(M.current&&M.current!==y&&(y=M.current),fe){ee();continue}}nt.push({payloadType:qe,payload:ge}),Pe(),ee()}}Pe()}};function aa(){let t=Date.now().toString(36),e=Math.random().toString(36).substring(2,10);return`usr_${t}_${e}`}function Br(){let t=Date.now().toString(36),e=Math.random().toString(36).substring(2,10);return`ast_${t}_${e}`}var la="[Image]";function lg(t){return typeof t=="string"?!1:t.some(e=>e.type==="image")}function Dr(t){return{type:"text",text:t}}var cg=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml","image/bmp"],Py=["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"],to=[...cg,...Py];function Iy(t){return cg.includes(t)||t.startsWith("image/")}function ca(t){return Iy(t.type)}async function dg(t){return new Promise((e,n)=>{let o=new FileReader;o.onload=()=>{let r=o.result;ca(t)?e({type:"image",image:r,mimeType:t.type,alt:t.name}):e({type:"file",data:r,mimeType:t.type,filename:t.name})},o.onerror=()=>n(new Error("Failed to read file")),o.readAsDataURL(t)})}function pg(t,e=to,n=10*1024*1024){return e.includes(t.type)?t.size>n?{valid:!1,error:`File too large. Maximum size: ${Math.round(n/1048576)}MB`}:{valid:!0}:{valid:!1,error:`Invalid file type "${t.type}". Accepted types: ${e.join(", ")}`}}function Ry(t){let e=t.split(".");return e.length>1?e.pop().toLowerCase():""}function ug(t,e){let n=Ry(e).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"}[t]||n||"FILE"}yc();var gg=16e3,Wy=24e3,Hy=4096,By=1380533830;function Dy(t){return t.byteLength>=44&&new DataView(t).getUint32(0,!1)===By?new Uint8Array(t,44):new Uint8Array(t)}function Oy(t){let e=t.replace(/\/+$/,"");return/^wss?:\/\//i.test(e)?e:/^https?:\/\//i.test(e)?e.replace(/^http/i,"ws"):`${typeof window<"u"&&window.location?.protocol==="https:"?"wss:":"ws:"}//${e}`}var Ns=class{constructor(e){this.config=e;this.type="runtype";this.ws=null;this.captureContext=null;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 e=this.config?.agentId,n=this.config?.clientToken,o=this.config?.host;if(!e)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:gg,channelCount:1,echoCancellation:!0}});if(r!==this.callGeneration){s.getTracks().forEach(g=>g.stop());return}this.mediaStream=s;let i=window.AudioContext||window.webkitAudioContext,l=new i({sampleRate:gg});l.state==="suspended"&&await l.resume().catch(()=>{}),this.captureContext=l;let p=this.config?.createPlaybackEngine?await this.config.createPlaybackEngine():new Or(Wy);if(r!==this.callGeneration){p.destroy(),s.getTracks().forEach(g=>g.stop()),l.close().catch(()=>{});return}this.playback=p,p.onFinished(()=>{r===this.callGeneration&&(this.isSpeaking=!1,this.ws&&this.ws.readyState===WebSocket.OPEN&&this.emitStatus("listening"))});let c=`${Oy(o)}/ws/agents/${encodeURIComponent(e)}/voice`,d=new WebSocket(c,["runtype.bearer",n]);d.binaryType="arraybuffer",this.ws=d,d.onopen=()=>{r===this.callGeneration&&(this.emitStatus("listening"),this.startCapture(l,s,d,r))},d.onmessage=g=>this.handleMessage(g,r),d.onerror=()=>{r===this.callGeneration&&(this.emitError(new Error("Voice connection failed")),this.emitStatus("error"),this.cleanup())},d.onclose=g=>{if(this.intentionalClose){this.intentionalClose=!1;return}if(r===this.callGeneration){if(g.code!==1e3){let b=g.code?` (code ${g.code})`:"";this.emitError(new Error(`Voice connection closed${b}`)),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}async deactivateBargeIn(){this.cleanup(),this.emitStatus("idle")}startCapture(e,n,o,r){let s=e.createMediaStreamSource(n);this.sourceNode=s;let i=e.createScriptProcessor(Hy,1,1);this.processor=i,i.onaudioprocess=l=>{if(r!==this.callGeneration||o.readyState!==WebSocket.OPEN)return;let p=l.inputBuffer.getChannelData(0),c=new Int16Array(p.length);for(let d=0;d<p.length;d++){let g=Math.max(-1,Math.min(1,p[d]));c[d]=g<0?g*32768:g*32767}o.send(c.buffer)},s.connect(i),i.connect(e.destination)}handleMessage(e,n){if(n!==this.callGeneration)return;if(e.data instanceof ArrayBuffer){this.handleAudioFrame(e.data,n);return}let o;try{o=JSON.parse(e.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(e,n){if(n!==this.callGeneration||!this.playback)return;let o=Dy(e);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(e=>e.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(e){this.resultCallbacks.push(e)}onError(e){this.errorCallbacks.push(e)}onStatusChange(e){this.statusCallbacks.push(e)}onTranscript(e){this.transcriptCallbacks.push(e)}onMetrics(e){this.metricsCallbacks.push(e)}emitStatus(e){this.statusCallbacks.forEach(n=>n(e))}emitError(e){this.errorCallbacks.forEach(n=>n(e))}emitTranscript(e,n,o){this.transcriptCallbacks.forEach(r=>r(e,n,o))}emitMetrics(e){this.metricsCallbacks.forEach(n=>n(e))}};var Zo=class{constructor(e={}){this.config=e;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(e=>e("connected"))}async startListening(){try{if(this.isListening)throw new Error("Already listening");if(!this.w)throw new Error("Window object not available");let e=this.w.SpeechRecognition||this.w.webkitSpeechRecognition;if(!e)throw new Error("Browser speech recognition not supported");this.recognition=new e,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(e){throw this.errorCallbacks.forEach(n=>n(e)),this.statusCallbacks.forEach(n=>n("error")),e}}async stopListening(){this.recognition&&(this.recognition.stop(),this.recognition=null),this.isListening=!1,this.statusCallbacks.forEach(e=>e("idle"))}onResult(e){this.resultCallbacks.push(e)}onError(e){this.errorCallbacks.push(e)}onStatusChange(e){this.statusCallbacks.push(e)}async disconnect(){await this.stopListening(),this.statusCallbacks.forEach(e=>e("disconnected"))}static isSupported(){return"SpeechRecognition"in window||"webkitSpeechRecognition"in window}};function Nr(t){switch(t.type){case"runtype":if(!t.runtype)throw new Error("Runtype voice provider requires configuration");return new Ns(t.runtype);case"browser":if(!Zo.isSupported())throw new Error("Browser speech recognition not supported");return new Zo(t.browser||{});case"custom":{let e=t.custom;if(!e)throw new Error("Custom voice provider requires a `custom` provider instance or factory");let n=typeof e=="function"?e():e;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: ${t.type}`)}}function fg(t){if(t?.type==="custom"&&t.custom)return Nr({type:"custom",custom:t.custom});if(t?.type==="runtype"&&t.runtype)return Nr({type:"runtype",runtype:t.runtype});if(Zo.isSupported())return Nr({type:"browser",browser:t?.browser||{language:"en-US"}});throw new Error("No supported voice providers available")}function vc(t){try{return fg(t),!0}catch{return!1}}function da(t){let e=["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 e){let o=t.find(r=>r.name===n);if(o)return o}return t.find(n=>n.lang.startsWith("en"))??t[0]}var Fr=class t{constructor(e={}){this.options=e;this.id="browser";this.supportsPause=!0}static isSupported(){return typeof window<"u"&&"speechSynthesis"in window}speak(e,n){if(!t.isSupported()){n.onError?.(new Error("Web Speech API is unavailable"));return}let o=window.speechSynthesis;o.cancel();let r=new SpeechSynthesisUtterance(e.text),s=o.getVoices();if(e.voice){let i=s.find(l=>l.name===e.voice);i&&(r.voice=i)}else s.length>0&&(r.voice=this.options.pickVoice?this.options.pickVoice(s):da(s));e.rate!==void 0&&(r.rate=e.rate),e.pitch!==void 0&&(r.pitch=e.pitch),r.onend=()=>n.onEnd?.(),r.onerror=i=>{let l=i.error;l==="canceled"||l==="interrupted"?n.onEnd?.():n.onError?.(new Error(l||"Speech synthesis failed"))},setTimeout(()=>{o.speak(r),n.onStart?.()},50)}pause(){t.isSupported()&&window.speechSynthesis.pause()}resume(){t.isSupported()&&window.speechSynthesis.resume()}stop(){t.isSupported()&&window.speechSynthesis.cancel()}};var Fs=class{constructor(e){this.resolveEngine=e;this.engine=null;this.activeId=null;this.state="idle";this.listeners=new Set;this.generation=0}get supportsPause(){return this.engine?.supportsPause??!0}stateFor(e){return this.activeId===e?this.state:"idle"}activeMessageId(){return this.activeId}onChange(e){return this.listeners.add(e),()=>this.listeners.delete(e)}toggle(e,n){if(this.activeId===e){if(this.state==="playing"){this.engine?.supportsPause?(this.engine.pause(),this.set(e,"paused")):this.stop();return}if(this.state==="paused"){this.engine?.resume(),this.set(e,"playing");return}if(this.state==="loading"){this.stop();return}}this.play(e,n)}async play(e,n){let o=++this.generation;this.engine?.stop(),this.set(e,"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(e,"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(e,n){this.activeId=n==="idle"?null:e,this.state=n;for(let o of this.listeners)o(this.activeId,this.state)}};function xc(t){if(!t)return"";let e=Ny(t);return mg(e!==null?e:t)}function Ny(t){let e=t.trim(),n=e.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i);if(n&&(e=n[1].trim()),!e.startsWith("{"))return null;try{let o=JSON.parse(e);if(o&&typeof o=="object"&&typeof o.text=="string")return o.text}catch{}return null}function mg(t){if(!t)return"";let e=t;return e=e.replace(/```[\s\S]*?```/g," "),e=e.replace(/~~~[\s\S]*?~~~/g," "),e=e.replace(/`([^`]+)`/g,"$1"),e=e.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),e=e.replace(/\[([^\]]+)\]\([^)]*\)/g,"$1"),e=e.replace(/\[([^\]]+)\]\[[^\]]*\]/g,"$1"),e=e.replace(/<\/?[a-zA-Z][^>]*>/g," "),e=e.replace(/^[ \t]*#{1,6}[ \t]+/gm,""),e=e.replace(/^[ \t]*>[ \t]?/gm,""),e=e.replace(/^[ \t]*[-*+][ \t]+/gm,""),e=e.replace(/^[ \t]*\d+\.[ \t]+/gm,""),e=e.replace(/^[ \t]*([-*_])([ \t]*\1){2,}[ \t]*$/gm," "),e=e.replace(/(\*\*|__)(.*?)\1/g,"$2"),e=e.replace(/(\*|_)(.*?)\1/g,"$2"),e=e.replace(/~~(.*?)~~/g,"$1"),e=e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/ /g," "),e=e.replace(/[ \t]+/g," "),e=e.replace(/[ \t]*\n[ \t]*/g,`
|
|
188
188
|
`),e=e.replace(/\n{2,}/g,`
|
|
189
|
-
`),e.trim()}var
|
|
189
|
+
`),e.trim()}var xg=null;var wc=()=>xg?xg():Promise.resolve().then(()=>(vg(),yg));var Uy=["apiUrl","clientToken","flowId","agentId","target","targetProviders","agent","agentOptions","headers","getHeaders","webmcp","streamParser","parserType","contextProviders","requestMiddleware","customFetch","parseSSEEvent","onSessionInit","onSessionExpired","getStoredSessionId","setStoredSessionId"];function jy(t,e){return Uy.some(n=>t[n]!==e[n])}function Cc(t,e){let n=t instanceof Error?t:new Error(String(t));if(typeof e=="string")return e;if(typeof e=="function")return e(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}
|
|
190
190
|
|
|
191
|
-
_Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]}),Su=(t,e="WebMCP tool execution failed.")=>t instanceof Error&&t.message?t.message:typeof t=="string"&&t?t:e,Mu=t=>cr(t)||t===qn,Ki=class{constructor(e={},n){this.config=e;this.callbacks=n;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.voiceActive=!1;this.voiceStatus="disconnected";this.pendingVoiceUserMessageId=null;this.pendingVoiceAssistantMessageId=null;this.ttsSpokenMessageIds=new Set;this.readAloud=new xs(()=>this.createSpeechEngine());this.handleEvent=e=>{if(e.type==="message"){this.upsertMessage(e.message),e.message.role==="assistant"&&!e.message.variant&&e.message.streaming&&(this.activeAssistantMessageId=e.message.id);let n=e.message.toolCall,o=!!n?.name&&(cr(n.name)||n.name===qn&&ho(this.config).enabled);e.message.agentMetadata?.awaitingLocalTool===!0&&o&&this.enqueueWebMcpAwait(e.message),e.message.agentMetadata?.executionId&&(this.agentExecution?e.message.agentMetadata.iteration!==void 0&&(this.agentExecution.currentIteration=e.message.agentMetadata.iteration):this.agentExecution={executionId:e.message.agentMetadata.executionId,agentId:"",agentName:e.message.agentMetadata.agentName??"",status:"running",currentIteration:e.message.agentMetadata.iteration??0,maxTurns:0})}else if(e.type==="cursor")this.trackCursor(e.id);else if(e.type==="status"){if(e.status==="idle"&&!e.terminal&&this.isDurableDrop()){this.beginReconnect();return}if(this.setStatus(e.status),e.status==="connecting")this.setStreaming(!0);else if(e.status==="idle"||e.status==="error"){this.clearResumable(),this.webMcpResolveControllers.size===0&&(this.setStreaming(!1),this.abortController=null);let n=this.webMcpAwaitBatches.size>0||this.webMcpResolveControllers.size>0;this.agentExecution?.status==="running"&&(e.status==="error"?this.agentExecution.status="error":n||(this.agentExecution.status="complete")),this.scheduleWebMcpBatchFlush()}}else e.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?.(e.error)):(e.type==="artifact_start"||e.type==="artifact_delta"||e.type==="artifact_update"||e.type==="artifact_complete")&&this.applyArtifactStreamEvent(e)};this.messages=[...e.initialMessages??[]].map(o=>({...o,sequence:o.sequence??this.nextSequence()})),this.messages=this.sortMessages(this.messages),this.client=new bs(e),this.wireDefaultWebMcpConfirm();for(let o of e.initialArtifacts??[])this.artifacts.set(o.id,{...o,status:"complete"});e.initialSelectedArtifactId!=null&&(this.selectedArtifactId=e.initialSelectedArtifactId),this.messages.length&&this.callbacks.onMessagesChanged([...this.messages]),this.artifacts.size>0&&this.emitArtifactsState(),this.callbacks.onStatusChanged(this.status),this.prefetchRuntypeTts()}prefetchRuntypeTts(){let e=this.config.textToSpeech;if(e?.provider!=="runtype"||e.createEngine)return;let n=e.host??this.config.apiUrl,o=e.agentId??this.config.voiceRecognition?.provider?.runtype?.agentId??this.config.agentId;!n||!o||!this.config.clientToken||Ol().catch(()=>{})}setSSEEventCallback(e){this.client.setSSEEventCallback(e)}isClientTokenMode(){return this.client.isClientTokenMode()}isAgentMode(){return this.client.isAgentMode()}getAgentExecution(){return this.agentExecution}isAgentExecuting(){return this.agentExecution?.status==="running"}isVoiceSupported(){return Dl(this.config.voiceRecognition?.provider)}isVoiceActive(){return this.voiceActive}getVoiceStatus(){return this.voiceStatus}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 e=this.config.textToSpeech;if(e?.createEngine)return e.createEngine();let n=xr.isSupported()?new xr({pickVoice:e?.pickVoice}):null;if(e?.provider==="runtype"){let o=e.host??this.config.apiUrl,r=e.agentId??this.config.voiceRecognition?.provider?.runtype?.agentId??this.config.agentId,s=this.config.clientToken,i=e.browserFallback!==!1;if(o&&r&&s)return Ol().then(({RuntypeSpeechEngine:l,FallbackSpeechEngine:p})=>{let c=new l({host:o,agentId:r,clientToken:s,voice:e.voice,prebufferMs:e.prebufferMs,createPlaybackEngine:e.createPlaybackEngine});return i&&n?new p(c,n,{onFallback:d=>console.warn(`[persona] Runtype read-aloud failed; using browser voice. ${d.message}`)}):c});if(i&&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(e){try{let n=e||this.getVoiceConfigFromConfig();if(!n)throw new Error("Voice configuration not provided");this.voiceProvider=vr(n);let r=(this.config.voiceRecognition??{}).processingErrorText??"Voice processing failed. Please try again.";this.voiceProvider.onResult(s=>{s.provider!=="runtype"&&s.text&&s.text.trim()&&this.sendMessage(s.text,{viaVoice:!0})}),this.voiceProvider.onTranscript&&this.voiceProvider.onTranscript((s,i,l)=>{if(s==="user"){if(this.pendingVoiceUserMessageId)this.upsertMessage({id:this.pendingVoiceUserMessageId,role:"user",content:i,createdAt:new Date().toISOString(),streaming:!1,voiceProcessing:!l});else{let p=this.injectMessage({role:"user",content:i,streaming:!1,voiceProcessing:!l});this.pendingVoiceUserMessageId=p.id}if(l){this.pendingVoiceUserMessageId=null;let p=this.injectMessage({role:"assistant",content:"",streaming:!0,voiceProcessing:!0});this.pendingVoiceAssistantMessageId=p.id,this.setStreaming(!0)}}else{if(this.pendingVoiceAssistantMessageId)this.upsertMessage({id:this.pendingVoiceAssistantMessageId,role:"assistant",content:i,createdAt:new Date().toISOString(),streaming:!l,voiceProcessing:!l});else{let p=this.injectMessage({role:"assistant",content:i,streaming:!l,voiceProcessing:!l});this.pendingVoiceAssistantMessageId=p.id}l&&(this.pendingVoiceAssistantMessageId&&this.ttsSpokenMessageIds.add(this.pendingVoiceAssistantMessageId),this.setStreaming(!1),this.pendingVoiceAssistantMessageId=null)}}),this.voiceProvider.onMetrics&&this.voiceProvider.onMetrics(s=>{this.config.voiceRecognition?.onMetrics?.(s)}),this.voiceProvider.onError(s=>{console.error("Voice error:",s),this.pendingVoiceAssistantMessageId&&(this.upsertMessage({id:this.pendingVoiceAssistantMessageId,role:"assistant",content:r,createdAt:new Date().toISOString(),streaming:!1,voiceProcessing:!1}),this.setStreaming(!1),this.pendingVoiceUserMessageId=null,this.pendingVoiceAssistantMessageId=null)}),this.voiceProvider.onStatusChange(s=>{this.voiceStatus=s,this.voiceActive=s==="listening",this.callbacks.onVoiceStatusChanged?.(s)}),this.voiceProvider.connect()}catch(n){console.error("Failed to setup voice:",n)}}async toggleVoice(){if(!this.voiceProvider){console.error("Voice not configured");return}if(this.voiceActive)await this.voiceProvider.stopListening();else{this.stopSpeaking();try{await this.voiceProvider.startListening()}catch(e){console.error("Failed to start voice:",e)}}}cleanupVoice(){this.voiceProvider&&(this.voiceProvider.disconnect(),this.voiceProvider=null),this.voiceActive=!1,this.voiceStatus="disconnected"}getVoiceConfigFromConfig(){if(!this.config.voiceRecognition?.provider)return;let e=this.config.voiceRecognition.provider;switch(e.type){case"runtype":return{type:"runtype",runtype:{agentId:e.runtype?.agentId??this.config.agentId??"",clientToken:e.runtype?.clientToken??this.config.clientToken,host:e.runtype?.host??this.config.apiUrl,voiceId:e.runtype?.voiceId,createPlaybackEngine:e.runtype?.createPlaybackEngine}};case"browser":return{type:"browser",browser:{language:e.browser?.language||"en-US",continuous:e.browser?.continuous}};case"custom":return{type:"custom",custom:e.custom};default:return}}async initClientSession(){if(!this.isClientTokenMode())return null;try{let e=await this.client.initSession();return this.setClientSession(e),e}catch(e){return this.callbacks.onError?.(e instanceof Error?e:new Error(String(e))),null}}setClientSession(e){if(this.clientSession=e,e.config.welcomeMessage&&this.messages.length===0){let n={id:`welcome-${Date.now()}`,role:"assistant",content:e.config.welcomeMessage,createdAt:new Date().toISOString(),sequence:this.nextSequence()};this.appendMessage(n)}}getClientSession(){return this.clientSession??this.client.getClientSession()}isSessionValid(){let e=this.getClientSession();return e?new Date<e.expiresAt:!1}clearClientSession(){this.clientSession=null,this.client.clearClientSession()}getClient(){return this.client}async submitMessageFeedback(e,n){return this.client.submitMessageFeedback(e,n)}async submitCSATFeedback(e,n){return this.client.submitCSATFeedback(e,n)}async submitNPSFeedback(e,n){return this.client.submitNPSFeedback(e,n)}updateConfig(e){let n=this.config.features?.artifacts?.display,o={...this.config,...e},r=JSON.stringify(n)!==JSON.stringify(o.features?.artifacts?.display);if(!Ey(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 bs(this.config),r&&this.refreshArtifactReferenceBlocks(),this.wireDefaultWebMcpConfirm(),s&&this.client.setSSEEventCallback(s)}getMessages(){return[...this.messages]}getStatus(){return this.status}isStreaming(){return this.streaming}injectTestEvent(e){this.handleEvent(e)}injectMessage(e){let{role:n,content:o,llmContent:r,contentParts:s,id:i,createdAt:l,sequence:p,streaming:c=!1,voiceProcessing:d,rawContent:u}=e,g={id:i??(n==="user"?$i():n==="assistant"?hr():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`),role:n,content:o,createdAt:l??new Date().toISOString(),sequence:p??this.nextSequence(),streaming:c,...r!==void 0&&{llmContent:r},...s!==void 0&&{contentParts:s},...d!==void 0&&{voiceProcessing:d},...u!==void 0&&{rawContent:u}};return this.upsertMessage(g),g}injectAssistantMessage(e){return this.injectMessage({...e,role:"assistant"})}injectUserMessage(e){return this.injectMessage({...e,role:"user"})}injectSystemMessage(e){return this.injectMessage({...e,role:"system"})}injectMessageBatch(e){let n=[];for(let o of e){let{role:r,content:s,llmContent:i,contentParts:l,id:p,createdAt:c,sequence:d,streaming:u=!1,voiceProcessing:b,rawContent:g}=o,C={id:p??(r==="user"?$i():r==="assistant"?hr():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`),role:r,content:s,createdAt:c??new Date().toISOString(),sequence:d??this.nextSequence(),streaming:u,...i!==void 0&&{llmContent:i},...l!==void 0&&{contentParts:l},...b!==void 0&&{voiceProcessing:b},...g!==void 0&&{rawContent:g}};n.push(C)}return this.messages=this.sortMessages([...this.messages,...n]),this.callbacks.onMessagesChanged([...this.messages]),n}injectComponentDirective(e){let{component:n,props:o={},text:r="",llmContent:s,id:i,createdAt:l,sequence:p}=e,c={text:r,component:n,props:o};return this.injectMessage({role:"assistant",content:r,rawContent:JSON.stringify(c),...s!==void 0&&{llmContent:s},...i!==void 0&&{id:i},...l!==void 0&&{createdAt:l},...p!==void 0&&{sequence:p}})}async applyMentionBundle(e,n,o){let r;try{r=await o()}catch{return}let s=r.blocks.join(`
|
|
191
|
+
_Details: ${n.message}_`:o}var _s=t=>({isError:!0,content:[{type:"text",text:t}]}),Ag=(t,e="WebMCP tool execution failed.")=>t instanceof Error&&t.message?t.message:typeof t=="string"&&t?t:e,Sg=t=>kr(t)||t===eo,ga=class{constructor(e={},n){this.config=e;this.callbacks=n;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.voiceActive=!1;this.voiceStatus="disconnected";this.pendingVoiceUserMessageId=null;this.pendingVoiceAssistantMessageId=null;this.ttsSpokenMessageIds=new Set;this.readAloud=new Fs(()=>this.createSpeechEngine());this.handleEvent=e=>{if(e.type==="message"){this.upsertMessage(e.message),e.message.role==="assistant"&&!e.message.variant&&e.message.streaming&&(this.activeAssistantMessageId=e.message.id);let n=e.message.toolCall,o=!!n?.name&&(kr(n.name)||n.name===eo&&So(this.config).enabled);e.message.agentMetadata?.awaitingLocalTool===!0&&o&&this.enqueueWebMcpAwait(e.message),e.message.agentMetadata?.executionId&&(this.agentExecution?e.message.agentMetadata.iteration!==void 0&&(this.agentExecution.currentIteration=e.message.agentMetadata.iteration):this.agentExecution={executionId:e.message.agentMetadata.executionId,agentId:"",agentName:e.message.agentMetadata.agentName??"",status:"running",currentIteration:e.message.agentMetadata.iteration??0,maxTurns:0})}else if(e.type==="cursor")this.trackCursor(e.id);else if(e.type==="status"){if(e.status==="idle"&&!e.terminal&&this.isDurableDrop()){this.beginReconnect();return}if(this.setStatus(e.status),e.status==="connecting")this.setStreaming(!0);else if(e.status==="idle"||e.status==="error"){this.clearResumable(),this.webMcpResolveControllers.size===0&&(this.setStreaming(!1),this.abortController=null);let n=this.webMcpAwaitBatches.size>0||this.webMcpResolveControllers.size>0;this.agentExecution?.status==="running"&&(e.status==="error"?this.agentExecution.status="error":n||(this.agentExecution.status="complete")),this.scheduleWebMcpBatchFlush()}}else e.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?.(e.error)):(e.type==="artifact_start"||e.type==="artifact_delta"||e.type==="artifact_update"||e.type==="artifact_complete")&&this.applyArtifactStreamEvent(e)};this.messages=[...e.initialMessages??[]].map(o=>({...o,sequence:o.sequence??this.nextSequence()})),this.messages=this.sortMessages(this.messages),this.client=new Os(e),this.wireDefaultWebMcpConfirm();for(let o of e.initialArtifacts??[])this.artifacts.set(o.id,{...o,status:"complete"});e.initialSelectedArtifactId!=null&&(this.selectedArtifactId=e.initialSelectedArtifactId),this.messages.length&&this.callbacks.onMessagesChanged([...this.messages]),this.artifacts.size>0&&this.emitArtifactsState(),this.callbacks.onStatusChanged(this.status),this.prefetchRuntypeTts()}prefetchRuntypeTts(){let e=this.config.textToSpeech;if(e?.provider!=="runtype"||e.createEngine)return;let n=e.host??this.config.apiUrl,o=e.agentId??this.config.voiceRecognition?.provider?.runtype?.agentId??this.config.agentId;!n||!o||!this.config.clientToken||wc().catch(()=>{})}setSSEEventCallback(e){this.client.setSSEEventCallback(e)}isClientTokenMode(){return this.client.isClientTokenMode()}isAgentMode(){return this.client.isAgentMode()}getAgentExecution(){return this.agentExecution}isAgentExecuting(){return this.agentExecution?.status==="running"}isVoiceSupported(){return vc(this.config.voiceRecognition?.provider)}isVoiceActive(){return this.voiceActive}getVoiceStatus(){return this.voiceStatus}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 e=this.config.textToSpeech;if(e?.createEngine)return e.createEngine();let n=Fr.isSupported()?new Fr({pickVoice:e?.pickVoice}):null;if(e?.provider==="runtype"){let o=e.host??this.config.apiUrl,r=e.agentId??this.config.voiceRecognition?.provider?.runtype?.agentId??this.config.agentId,s=this.config.clientToken,i=e.browserFallback!==!1;if(o&&r&&s)return wc().then(({RuntypeSpeechEngine:l,FallbackSpeechEngine:p})=>{let c=new l({host:o,agentId:r,clientToken:s,voice:e.voice,prebufferMs:e.prebufferMs,createPlaybackEngine:e.createPlaybackEngine});return i&&n?new p(c,n,{onFallback:d=>console.warn(`[persona] Runtype read-aloud failed; using browser voice. ${d.message}`)}):c});if(i&&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(e){try{let n=e||this.getVoiceConfigFromConfig();if(!n)throw new Error("Voice configuration not provided");this.voiceProvider=Nr(n);let r=(this.config.voiceRecognition??{}).processingErrorText??"Voice processing failed. Please try again.";this.voiceProvider.onResult(s=>{s.provider!=="runtype"&&s.text&&s.text.trim()&&this.sendMessage(s.text,{viaVoice:!0})}),this.voiceProvider.onTranscript&&this.voiceProvider.onTranscript((s,i,l)=>{if(s==="user"){if(this.pendingVoiceUserMessageId)this.upsertMessage({id:this.pendingVoiceUserMessageId,role:"user",content:i,createdAt:new Date().toISOString(),streaming:!1,voiceProcessing:!l});else{let p=this.injectMessage({role:"user",content:i,streaming:!1,voiceProcessing:!l});this.pendingVoiceUserMessageId=p.id}if(l){this.pendingVoiceUserMessageId=null;let p=this.injectMessage({role:"assistant",content:"",streaming:!0,voiceProcessing:!0});this.pendingVoiceAssistantMessageId=p.id,this.setStreaming(!0)}}else{if(this.pendingVoiceAssistantMessageId)this.upsertMessage({id:this.pendingVoiceAssistantMessageId,role:"assistant",content:i,createdAt:new Date().toISOString(),streaming:!l,voiceProcessing:!l});else{let p=this.injectMessage({role:"assistant",content:i,streaming:!l,voiceProcessing:!l});this.pendingVoiceAssistantMessageId=p.id}l&&(this.pendingVoiceAssistantMessageId&&this.ttsSpokenMessageIds.add(this.pendingVoiceAssistantMessageId),this.setStreaming(!1),this.pendingVoiceAssistantMessageId=null)}}),this.voiceProvider.onMetrics&&this.voiceProvider.onMetrics(s=>{this.config.voiceRecognition?.onMetrics?.(s)}),this.voiceProvider.onError(s=>{console.error("Voice error:",s),this.pendingVoiceAssistantMessageId&&(this.upsertMessage({id:this.pendingVoiceAssistantMessageId,role:"assistant",content:r,createdAt:new Date().toISOString(),streaming:!1,voiceProcessing:!1}),this.setStreaming(!1),this.pendingVoiceUserMessageId=null,this.pendingVoiceAssistantMessageId=null)}),this.voiceProvider.onStatusChange(s=>{this.voiceStatus=s,this.voiceActive=s==="listening",this.callbacks.onVoiceStatusChanged?.(s)}),this.voiceProvider.connect()}catch(n){console.error("Failed to setup voice:",n)}}async toggleVoice(){if(!this.voiceProvider){console.error("Voice not configured");return}if(this.voiceActive)await this.voiceProvider.stopListening();else{this.stopSpeaking();try{await this.voiceProvider.startListening()}catch(e){console.error("Failed to start voice:",e)}}}cleanupVoice(){this.voiceProvider&&(this.voiceProvider.disconnect(),this.voiceProvider=null),this.voiceActive=!1,this.voiceStatus="disconnected"}getVoiceConfigFromConfig(){if(!this.config.voiceRecognition?.provider)return;let e=this.config.voiceRecognition.provider;switch(e.type){case"runtype":return{type:"runtype",runtype:{agentId:e.runtype?.agentId??this.config.agentId??"",clientToken:e.runtype?.clientToken??this.config.clientToken,host:e.runtype?.host??this.config.apiUrl,voiceId:e.runtype?.voiceId,createPlaybackEngine:e.runtype?.createPlaybackEngine}};case"browser":return{type:"browser",browser:{language:e.browser?.language||"en-US",continuous:e.browser?.continuous}};case"custom":return{type:"custom",custom:e.custom};default:return}}async initClientSession(){if(!this.isClientTokenMode())return null;try{let e=await this.client.initSession();return this.setClientSession(e),e}catch(e){return this.callbacks.onError?.(e instanceof Error?e:new Error(String(e))),null}}setClientSession(e){if(this.clientSession=e,e.config.welcomeMessage&&this.messages.length===0){let n={id:`welcome-${Date.now()}`,role:"assistant",content:e.config.welcomeMessage,createdAt:new Date().toISOString(),sequence:this.nextSequence()};this.appendMessage(n)}}getClientSession(){return this.clientSession??this.client.getClientSession()}isSessionValid(){let e=this.getClientSession();return e?new Date<e.expiresAt:!1}clearClientSession(){this.clientSession=null,this.client.clearClientSession()}getClient(){return this.client}async submitMessageFeedback(e,n){return this.client.submitMessageFeedback(e,n)}async submitCSATFeedback(e,n){return this.client.submitCSATFeedback(e,n)}async submitNPSFeedback(e,n){return this.client.submitNPSFeedback(e,n)}updateConfig(e){let n=this.config.features?.artifacts?.display,o={...this.config,...e},r=JSON.stringify(n)!==JSON.stringify(o.features?.artifacts?.display);if(!jy(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 Os(this.config),r&&this.refreshArtifactReferenceBlocks(),this.wireDefaultWebMcpConfirm(),s&&this.client.setSSEEventCallback(s)}getMessages(){return[...this.messages]}getStatus(){return this.status}isStreaming(){return this.streaming}injectTestEvent(e){this.handleEvent(e)}injectMessage(e){let{role:n,content:o,llmContent:r,contentParts:s,id:i,createdAt:l,sequence:p,streaming:c=!1,voiceProcessing:d,rawContent:g}=e,f={id:i??(n==="user"?aa():n==="assistant"?Br():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`),role:n,content:o,createdAt:l??new Date().toISOString(),sequence:p??this.nextSequence(),streaming:c,...r!==void 0&&{llmContent:r},...s!==void 0&&{contentParts:s},...d!==void 0&&{voiceProcessing:d},...g!==void 0&&{rawContent:g}};return this.upsertMessage(f),f}injectAssistantMessage(e){return this.injectMessage({...e,role:"assistant"})}injectUserMessage(e){return this.injectMessage({...e,role:"user"})}injectSystemMessage(e){return this.injectMessage({...e,role:"system"})}injectMessageBatch(e){let n=[];for(let o of e){let{role:r,content:s,llmContent:i,contentParts:l,id:p,createdAt:c,sequence:d,streaming:g=!1,voiceProcessing:b,rawContent:f}=o,C={id:p??(r==="user"?aa():r==="assistant"?Br():`system-${Date.now()}-${Math.random().toString(16).slice(2)}`),role:r,content:s,createdAt:c??new Date().toISOString(),sequence:d??this.nextSequence(),streaming:g,...i!==void 0&&{llmContent:i},...l!==void 0&&{contentParts:l},...b!==void 0&&{voiceProcessing:b},...f!==void 0&&{rawContent:f}};n.push(C)}return this.messages=this.sortMessages([...this.messages,...n]),this.callbacks.onMessagesChanged([...this.messages]),n}injectComponentDirective(e){let{component:n,props:o={},text:r="",llmContent:s,id:i,createdAt:l,sequence:p}=e,c={text:r,component:n,props:o};return this.injectMessage({role:"assistant",content:r,rawContent:JSON.stringify(c),...s!==void 0&&{llmContent:s},...i!==void 0&&{id:i},...l!==void 0&&{createdAt:l},...p!==void 0&&{sequence:p}})}async applyMentionBundle(e,n,o){let r;try{r=await o()}catch{return}let s=r.blocks.join(`
|
|
192
192
|
|
|
193
193
|
`),i=[s,n].filter(Boolean).join(`
|
|
194
194
|
|
|
195
|
-
`),l=Array.isArray(e.contentParts)&&e.contentParts.length>0,p=r.contentParts.length>0;if(l){let c=[];s&&c.push(yr(s)),c.push(...r.contentParts),c.push(...e.contentParts),e.contentParts=c}else if(p){let c=[];i&&c.push(yr(i)),c.push(...r.contentParts),e.contentParts=c}else s&&(e.llmContent=i);Object.keys(r.context).length>0&&(e.mentionContext=r.context)}async sendMessage(e,n){let o=e.trim();if(!o&&(!n?.contentParts||n.contentParts.length===0)&&(!n?.mentions||n.mentions.refs.length===0))return;this.stopSpeaking(),this.abortController?.abort(),this.abortWebMcpResolves(),this.teardownReconnect();let r=$i(),s=hr();this.activeAssistantMessageId=null;let i=n?.contentParts&&cu(n.contentParts)?zi:"",l={id:r,role:"user",content:o||i,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}};this.appendMessage(l),this.setStreaming(!0);let p=new AbortController;if(this.abortController=p,n?.mentions){let d=this.messages.find(u=>u.id===r)??l;if(await this.applyMentionBundle(d,o,n.mentions.finalize),p.signal.aborted||this.abortController!==p)return;this.callbacks.onMessagesChanged([...this.messages])}let c=[...this.messages];try{await this.client.dispatch({messages:c,signal:p.signal,assistantMessageId:s},this.handleEvent)}catch(d){if(this.status==="resuming"||this.reconnecting)return;let u=d instanceof Error&&(d.name==="AbortError"||d.message.includes("aborted")||d.message.includes("abort"));if(!u){let b=Fl(d,this.config.errorMessage);if(b){let g={id:s,role:"assistant",createdAt:new Date().toISOString(),content:b,sequence:this.nextSequence()};this.appendMessage(g)}}this.setStatus("idle"),this.setStreaming(!1),this.abortController=null,u||(d instanceof Error?this.callbacks.onError?.(d):this.callbacks.onError?.(new Error(String(d))))}}async continueConversation(){if(this.streaming)return;this.abortController?.abort(),this.teardownReconnect();let e=hr();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:e},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 i=Fl(r,this.config.errorMessage);if(i){let l={id:e,role:"assistant",createdAt:new Date().toISOString(),content:i,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(e,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(e,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 e=this.config.webmcp;e?.enabled===!0&&!e.onConfirm&&this.client.setWebMcpConfirmHandler(n=>this.requestWebMcpApproval(n))}requestWebMcpApproval(e){try{if(this.config.webmcp?.autoApprove?.(e)===!0)return Promise.resolve(!0)}catch{}let n={id:`webmcp-${++this.webMcpApprovalSeq}`,status:"pending",agentId:"",executionId:"",toolName:e.toolName,toolType:"webmcp",description:e.description??`Allow the assistant to run ${e.toolName}?`,parameters:e.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(e,n){let o=this.webMcpApprovalResolvers.get(e);if(!o)return;this.webMcpApprovalResolvers.delete(e);let r=this.messages.find(s=>s.id===e);r?.approval&&this.upsertMessage({...r,approval:{...r.approval,status:n,resolvedAt:Date.now()}}),o(n==="approved")}async resolveApproval(e,n,o){let r=`approval-${e.id}`,s={...e,status:n,resolvedAt:Date.now()},i=this.messages.find(d=>d.id===r),l={id:r,role:"assistant",content:"",createdAt:i?.createdAt??new Date().toISOString(),...i?.sequence!==void 0?{sequence:i.sequence}:{},streaming:!1,variant:"approval",approval:s};this.upsertMessage(l),this.abortController?.abort(),this.abortController=new AbortController,this.setStreaming(!0);let p=this.config.approval,c=p&&typeof p=="object"?p.onDecision:void 0;try{let d;if(c?d=await c({approvalId:e.id,executionId:e.executionId,agentId:e.agentId,toolName:e.toolName},n,o):d=await this.client.resolveApproval({agentId:e.agentId,executionId:e.executionId,approvalId:e.id},n),d){let u=null;if(d instanceof Response){if(!d.ok){let b=await d.json().catch(()=>null);throw new Error(b?.error??`Approval request failed: ${d.status}`)}u=d.body}else d instanceof ReadableStream&&(u=d);u?await this.connectStream(u,{allowReentry:!0}):(n==="denied"&&this.appendMessage({id:`denial-${e.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(d){let u=d instanceof Error&&(d.name==="AbortError"||d.message.includes("aborted")||d.message.includes("abort"));this.setStreaming(!1),this.abortController=null,u||this.callbacks.onError?.(d instanceof Error?d:new Error(String(d)))}}persistAskUserQuestionProgress(e,n){let o=this.messages.find(r=>r.id===e.id);o&&this.upsertMessage({...o,agentMetadata:{...o.agentMetadata,askUserQuestionAnswers:n.answers,askUserQuestionIndex:n.currentIndex}})}markAskUserQuestionResolved(e,n){let o=this.messages.find(r=>r.id===e.id);o&&this.upsertMessage({...o,agentMetadata:{...o.agentMetadata,awaitingLocalTool:!1,askUserQuestionAnswered:!0,...n?{askUserQuestionAnswers:n}:{}}})}async resolveAskUserQuestion(e,n){if(this.messages.find(d=>d.id===e.id)?.agentMetadata?.askUserQuestionAnswered===!0)return;let r=e.agentMetadata?.executionId,s=e.toolCall?.name;if(!r||!s){this.callbacks.onError?.(new Error("resolveAskUserQuestion: message is missing executionId or toolCall.name"));return}let i=typeof n=="string"?void 0:n;if(i===void 0&&typeof n=="string"){let d=e.toolCall?.args,u=Array.isArray(d?.questions)?d.questions:[];if(u.length===1){let b=typeof u[0]?.question=="string"?u[0].question:"";b&&(i={[b]:n})}}this.markAskUserQuestionResolved(e,i),this.abortController?.abort(),this.abortController=new AbortController,this.setStreaming(!0);let l=e.toolCall.id,p=e.toolCall?.args,c=Array.isArray(p?.questions)?p.questions:[];if(c.length===0){let d=typeof n=="string"?n:Object.entries(n).map(([u,b])=>`${u}: ${Array.isArray(b)?b.join(", "):b}`).join(" | ");this.appendMessage({id:`ask-user-answer-${l}`,role:"user",content:d,createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()})}else{let d=i??{};c.forEach((u,b)=>{let g=typeof u?.question=="string"?u.question:"";if(!g)return;let h=d[g],C=Array.isArray(h)?h.join(", "):typeof h=="string"?h:"";this.appendMessage({id:`ask-user-q-${l}-${b}`,role:"assistant",content:g,createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()}),this.appendMessage({id:`ask-user-a-${l}-${b}`,role:"user",content:C||"*Skipped*",createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()})})}try{let d=await this.client.resumeFlow(r,{[s]:n});if(!d.ok){let u=await d.json().catch(()=>null);throw new Error(u?.error??`Resume failed: ${d.status}`)}d.body?await this.connectStream(d.body,{allowReentry:!0}):(this.setStreaming(!1),this.abortController=null)}catch(d){let u=d instanceof Error&&(d.name==="AbortError"||d.message.includes("aborted")||d.message.includes("abort"));this.setStreaming(!1),this.abortController=null,u||this.callbacks.onError?.(d instanceof Error?d:new Error(String(d)))}}enqueueWebMcpAwait(e){let n=e.agentMetadata?.executionId,o=e.toolCall?.id;if(!n||!o){let s=this.webMcpEpoch;queueMicrotask(()=>{s===this.webMcpEpoch&&this.resolveWebMcpToolCall(e)});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(e))}scheduleWebMcpBatchFlush(){if(this.webMcpAwaitBatches.size===0)return;let e=this.webMcpEpoch;queueMicrotask(()=>{if(e===this.webMcpEpoch)for(let n of[...this.webMcpAwaitBatches.keys()])this.flushWebMcpAwaitBatch(n)})}flushWebMcpAwaitBatch(e){let n=this.webMcpAwaitBatches.get(e);if(!n)return;this.webMcpAwaitBatches.delete(e);let{snapshots:o}=n;o.length===1?this.resolveWebMcpToolCall(o[0]):o.length>1&&this.resolveWebMcpToolCallBatch(e,o)}resolveWebMcpToolStartedAt(e){let o=[this.messages.find(r=>r.id===e.id)?.toolCall?.startedAt,e.toolCall?.startedAt];for(let r of o)if(typeof r=="number"&&Number.isFinite(r))return r;return Date.now()}isSuggestRepliesAlreadyResolved(e){return e.toolCall?.name!==qn?!1:(this.messages.find(o=>o.id===e.id)??e).agentMetadata?.suggestRepliesResolved===!0}markWebMcpToolRunning(e){let n=this.resolveWebMcpToolStartedAt(e);return this.upsertMessage({...e,streaming:!0,agentMetadata:{...e.agentMetadata,awaitingLocalTool:!1},toolCall:e.toolCall?{...e.toolCall,status:"running",startedAt:n,completedAt:void 0,duration:void 0,durationMs:void 0}:e.toolCall}),n}markWebMcpToolComplete(e,n,o,r=Date.now(),s){this.messages.some(i=>i.id===e.id)&&this.upsertMessage({...e,streaming:!1,agentMetadata:{...e.agentMetadata,awaitingLocalTool:!1,...s},toolCall:e.toolCall?{...e.toolCall,status:"complete",result:n,startedAt:o,completedAt:r,duration:void 0,durationMs:Math.max(0,r-o)}:e.toolCall})}async resolveWebMcpToolCallBatch(e,n){let o=[],r=[],s=new AbortController;this.webMcpResolveControllers.add(s),this.setStreaming(!0);let i=await Promise.all(n.map(async p=>{let c=p.toolCall?.name,d=p.toolCall?.id;if(!c||!d)return null;let u=`${e}:${d}`;if(this.webMcpInflightKeys.has(u)||this.webMcpResolvedKeys.has(u)||this.isSuggestRepliesAlreadyResolved(p))return null;this.webMcpInflightKeys.add(u),o.push(u);let b=this.markWebMcpToolRunning(p),g=p.agentMetadata?.webMcpToolCallId??c;if(c===qn)return{dedupeKey:u,resumeKey:g,output:Rl(),toolMessage:p,startedAt:b,completedAt:Date.now()};let h=new AbortController;this.webMcpResolveControllers.add(h),r.push(h);let C=this.client.executeWebMcpToolCall(c,p.toolCall?.args,h.signal),L;if(!C)L={isError:!0,content:[{type:"text",text:"WebMCP not enabled on this widget."}]};else try{L=await C}catch(B){let k=B instanceof Error&&(B.name==="AbortError"||B.message.includes("aborted")||B.message.includes("abort"));return k||this.callbacks.onError?.(B instanceof Error?B:new Error(String(B))),this.markWebMcpToolComplete(p,Cs(k?"Aborted by cancel()":Su(B)),b),this.webMcpInflightKeys.delete(u),null}return h.signal.aborted?(this.markWebMcpToolComplete(p,Cs("Aborted by cancel()"),b),this.webMcpInflightKeys.delete(u),null):{dedupeKey:u,resumeKey:g,output:L,toolMessage:p,startedAt:b,completedAt:Date.now()}})),l=[];try{if(l=i.filter(d=>d!==null),l.length===0)return;let p={};for(let d of l)p[d.resumeKey]=d.output;let c=await this.client.resumeFlow(e,p,{signal:s.signal});if(!c.ok){let d=await c.json().catch(()=>null);throw new Error(d?.error??`Resume failed: ${c.status}`)}for(let d of l)this.webMcpResolvedKeys.add(d.dedupeKey),this.markWebMcpToolComplete(d.toolMessage,d.output,d.startedAt,d.completedAt,d.toolMessage.toolCall?.name===qn?{suggestRepliesResolved:!0}:void 0);c.body&&await this.connectStream(c.body,{allowReentry:!0})}catch(p){if(!(p instanceof Error&&(p.name==="AbortError"||p.message.includes("aborted")||p.message.includes("abort"))))this.callbacks.onError?.(p instanceof Error?p:new Error(String(p)));else for(let d of l)this.markWebMcpToolComplete(d.toolMessage,Cs("Aborted by cancel()"),d.startedAt)}finally{for(let p of o)this.webMcpInflightKeys.delete(p);for(let p of r)this.webMcpResolveControllers.delete(p);this.webMcpResolveControllers.delete(s),this.webMcpResolveControllers.size===0&&!this.abortController&&this.setStreaming(!1)}}async resolveWebMcpToolCall(e){let n=e.agentMetadata?.executionId,o=e.toolCall?.name,r=e.toolCall?.id;if(!n){this.callbacks.onError?.(new Error("WebMCP step_await missing executionId: dispatch left paused."));return}if(!o)return;if(!r){let h=`${n}:__no_tool_id__:${o}`;if(this.webMcpInflightKeys.has(h)||this.webMcpResolvedKeys.has(h))return;this.webMcpInflightKeys.add(h);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(h)}catch(C){this.callbacks.onError?.(C instanceof Error?C:new Error(String(C)))}finally{this.webMcpInflightKeys.delete(h)}return}let s=`${n}:${r}`;if(this.webMcpInflightKeys.has(s)||this.webMcpResolvedKeys.has(s)||this.isSuggestRepliesAlreadyResolved(e))return;this.webMcpInflightKeys.add(s);let i=this.markWebMcpToolRunning(e),l=new AbortController;this.webMcpResolveControllers.add(l);let{signal:p}=l;this.setStreaming(!0);let c=o===qn,d=e.toolCall?.args,u=c?null:this.client.executeWebMcpToolCall(o,d,p),b="execute",g=i;try{let h;if(c?h=Rl():u?h=await u:h={isError:!0,content:[{type:"text",text:"WebMCP not enabled on this widget."}]},g=Date.now(),p.aborted){this.markWebMcpToolComplete(e,Cs("Aborted by cancel()"),i);return}let C=e.agentMetadata?.webMcpToolCallId??o;b="resume",await this.resumeWithToolOutput(n,C,h,{onHttpOk:()=>{this.webMcpResolvedKeys.add(s),this.markWebMcpToolComplete(e,h,i,g,c?{suggestRepliesResolved:!0}:void 0)},signal:p})}catch(h){let C=h instanceof Error&&(h.name==="AbortError"||h.message.includes("aborted")||h.message.includes("abort"));(b==="execute"||C||p.aborted)&&this.markWebMcpToolComplete(e,Cs(C||p.aborted?"Aborted by cancel()":Su(h)),i),C||this.callbacks.onError?.(h instanceof Error?h:new Error(String(h)))}finally{this.webMcpInflightKeys.delete(s),this.webMcpResolveControllers.delete(l),this.webMcpResolveControllers.size===0&&!this.abortController&&this.setStreaming(!1)}}async resumeWithToolOutput(e,n,o,r){let s=await this.client.resumeFlow(e,{[n]:o},{signal:r?.signal});if(!s.ok){let i=await s.json().catch(()=>null);throw new Error(i?.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 e of this.webMcpResolveControllers)e.abort();this.webMcpResolveControllers.clear();for(let e of[...this.webMcpApprovalResolvers.keys()])this.resolveWebMcpApproval(e,"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(e){return this.artifacts.get(e)}getSelectedArtifactId(){return this.selectedArtifactId}selectArtifact(e){this.selectedArtifactId=e,this.emitArtifactsState()}clearArtifacts(){this.clearArtifactState()}upsertArtifact(e){let n=e.id||`art_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`,o=e.artifactType==="markdown"?{id:n,artifactType:"markdown",title:e.title,status:"complete",markdown:e.content,...e.file?{file:e.file}:{},...e.presentation?{presentation:e.presentation}:{}}:{id:n,artifactType:"component",title:e.title,status:"complete",component:e.component,props:e.props??{},...e.presentation?{presentation:e.presentation}:{}};return this.artifacts.set(n,o),this.selectedArtifactId=n,this.emitArtifactsState(),e.transcript!==!1&&this.injectArtifactRefBlock(o),o}injectArtifactRefBlock(e){let n=`artifact-ref-${e.id}`,o=uo(this.config.features?.artifacts,e),r=ds(o,{artifactId:e.id,title:e.title,artifactType:e.artifactType,status:"complete",...e.file?{file:e.file}:{},...e.presentation?{presentation:e.presentation}:{},...e.component?{component:e.component}:{},...e.props?{componentProps:e.props}:{},...e.markdown!==void 0?{markdown:e.markdown}:{}}),s=this.messages.find(i=>i.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 e=!1;for(let n of this.artifacts.values()){let o=this.messages.find(i=>i.id===`artifact-ref-${n.id}`);if(!o)continue;let r=uo(this.config.features?.artifacts,n),s=ds(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",e=!0)}e&&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(e){switch(e.type){case"artifact_start":{e.artifactType==="markdown"?this.artifacts.set(e.id,{id:e.id,artifactType:"markdown",title:e.title,status:"streaming",markdown:"",...e.file?{file:e.file}:{}}):this.artifacts.set(e.id,{id:e.id,artifactType:"component",title:e.title,status:"streaming",component:e.component??"",props:{}}),this.selectedArtifactId=e.id;break}case"artifact_delta":{let n=this.artifacts.get(e.id);n?.artifactType==="markdown"&&(n.markdown=(n.markdown??"")+e.artDelta);break}case"artifact_update":{let n=this.artifacts.get(e.id);n?.artifactType==="component"&&(n.props={...n.props,...e.props},e.component&&(n.component=e.component));break}case"artifact_complete":{let n=this.artifacts.get(e.id);n&&(n.status="complete");break}default:return}this.emitArtifactsState()}hydrateMessages(e){this.abortController?.abort(),this.abortController=null,this.teardownReconnect(),this.abortWebMcpResolves(),this.webMcpInflightKeys.clear(),this.webMcpResolvedKeys.clear(),this.messages=this.sortMessages(e.map(n=>({...n,streaming:!1,sequence:n.sequence??this.nextSequence()}))),this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}hydrateArtifacts(e,n=null){this.artifacts.clear();for(let o of e)this.artifacts.set(o.id,{...o,status:"complete"});this.selectedArtifactId=n,this.emitArtifactsState()}trackCursor(e){let n=this.agentExecution?.executionId;if(!n||!this.activeAssistantMessageId||this.agentExecution?.status!=="running")return;let o=this.resumable===null;this.resumable={executionId:n,lastEventId:e,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(e=>e.agentMetadata?.awaitingLocalTool===!0&&e.agentMetadata?.askUserQuestionAnswered!==!0||e.variant==="approval"&&e.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(e=>{this.reconnecting&&this.resumable&&e.begin()}))}loadReconnectController(){return this.reconnectController?Promise.resolve(this.reconnectController):(this.reconnectControllerPromise||(this.reconnectControllerPromise=Promise.resolve().then(()=>(Au(),wu)).then(({createReconnectController:e})=>{let n=e(this.buildReconnectHost());return this.reconnectController=n,n})),this.reconnectControllerPromise)}buildReconnectHost(){let e=this;return{get config(){return e.config},getResumable:()=>e.resumable,clearResumable:()=>e.clearResumable(),getStatus:()=>e.status,setStatus:n=>e.setStatus(n),setStreaming:n=>e.setStreaming(n),setReconnecting:n=>{e.reconnecting=n},setAbortController:n=>{e.abortController=n},getMessages:()=>e.messages,notifyMessagesChanged:()=>e.callbacks.onMessagesChanged([...e.messages]),resumeConnect:(n,o,r)=>e.connectStream(n,{assistantMessageId:o,allowReentry:!0,preserveAssistantId:!0,seedContent:r}),appendMessage:n=>e.appendMessage(n),nextSequence:()=>e.nextSequence(),emitReconnect:n=>e.callbacks.onReconnect?.(n),buildErrorContent:n=>Fl(new Error(n),e.config.errorMessage),onError:n=>e.callbacks.onError?.(n)}}reconnectNow(){if(this.reconnecting){this.reconnectController?.wake();return}this.beginReconnect()}resumeFromHandle(e){if(typeof this.config.reconnectStream!="function"||this.reconnecting)return;let n=this.reopenTrailingAssistant();n||(n=hr(),this.appendMessage({id:n,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:this.nextSequence()})),this.activeAssistantMessageId=n,this.agentExecution||(this.agentExecution={executionId:e.executionId,agentId:"",agentName:"",status:"running",currentIteration:0,maxTurns:0}),this.resumable={executionId:e.executionId,lastEventId:e.after,assistantMessageId:n,status:"running"},this.beginReconnect()}reopenTrailingAssistant(){for(let e=this.messages.length-1;e>=0;e--){let n=this.messages[e];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 e=this.resumable!==null;this.resumable=null,e&&this.config.onExecutionState?.(null)}notifyExecutionState(e){let n=this.config.onExecutionState;if(n){if(e){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(e){this.status!==e&&(this.status=e,this.callbacks.onStatusChanged(e))}setStreaming(e){if(this.streaming===e)return;let n=this.streaming;this.streaming=e,this.callbacks.onStreamingChanged(e),n&&!e&&this.speakLatestAssistantMessage()}speakLatestAssistantMessage(){let e=this.config.textToSpeech;if(!e?.enabled||!(!e.provider||e.provider==="browser"||e.provider==="runtype"&&e.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=Nl(o.content);r.trim()&&this.readAloud.play(o.id,{text:r,voice:e.voice,rate:e.rate,pitch:e.pitch})}static pickBestVoice(e){return ji(e)}toggleReadAloud(e){let n=this.messages.find(s=>s.id===e);if(!n||n.role!=="assistant")return;let o=Nl(n.content||"");if(!o.trim())return;let r=this.config.textToSpeech;this.readAloud.toggle(e,{text:o,voice:r?.voice,rate:r?.rate,pitch:r?.pitch})}getReadAloudState(e){return this.readAloud.stateFor(e)}onReadAloudChange(e){return this.readAloud.onChange(e)}stopSpeaking(){this.readAloud.stop(),typeof window<"u"&&"speechSynthesis"in window&&window.speechSynthesis.cancel()}appendMessage(e){let n=this.ensureSequence(e);this.messages=this.sortMessages([...this.messages,n]),this.callbacks.onMessagesChanged([...this.messages])}upsertMessage(e){let n=this.ensureSequence(e),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 i={...r,...n};if(r.agentMetadata?.askUserQuestionAnswered===!0&&n.agentMetadata&&(i.agentMetadata={...n.agentMetadata,askUserQuestionAnswered:!0,...r.agentMetadata.askUserQuestionAnswers?{askUserQuestionAnswers:r.agentMetadata.askUserQuestionAnswers}:{},awaitingLocalTool:!1}),r.agentMetadata?.suggestRepliesResolved===!0&&n.agentMetadata&&(i.agentMetadata={...i.agentMetadata??n.agentMetadata,suggestRepliesResolved:!0,awaitingLocalTool:!1}),r.approval&&n.approval&&r.approval.id===n.approval.id){let d=r.approval,u=n.approval;i.approval={...d,...u,executionId:u.executionId||d.executionId,toolName:u.toolName||d.toolName,description:u.description||d.description,toolType:u.toolType??d.toolType,reason:u.reason??d.reason,parameters:u.parameters??d.parameters}}let l=n.toolCall?.name,p=n.agentMetadata?.executionId,c=n.toolCall?.id;if(l&&Mu(l)&&p&&c&&n.agentMetadata?.awaitingLocalTool===!0){let d=`${p}:${c}`,u=this.webMcpInflightKeys.has(d),b=this.webMcpResolvedKeys.has(d),g=r.toolCall?.name,h=r.agentMetadata?.executionId===p&&r.toolCall?.id===c&&g!==void 0&&Mu(g)&&r.toolCall?.status==="complete";(u||b||h)&&(i.agentMetadata={...i.agentMetadata??{},awaitingLocalTool:!1},i.toolCall=r.toolCall,i.streaming=r.streaming)}return i}),this.messages=this.sortMessages(this.messages),this.callbacks.onMessagesChanged([...this.messages])}ensureSequence(e){return e.sequence!==void 0?{...e}:{...e,sequence:this.nextSequence()}}nextSequence(){return this.sequenceCounter++}sortMessages(e){return[...e].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 i=n.sequence??0,l=o.sequence??0;return i!==l?i-l:n.id.localeCompare(o.id)})}};Je();wt();var Gi={allowedTypes:Kn,maxFileSize:10*1024*1024,maxFiles:4};function Py(){return`attach_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function Iy(t){return t==="application/pdf"||t.startsWith("text/")||t.includes("word")?"file-text":t.includes("excel")||t.includes("spreadsheet")?"file-spreadsheet":t==="application/json"?"file-code":"file"}var ws=class t{constructor(e={}){this.attachments=[];this.previewsContainer=null;this.config={allowedTypes:e.allowedTypes??Gi.allowedTypes,maxFileSize:e.maxFileSize??Gi.maxFileSize,maxFiles:e.maxFiles??Gi.maxFiles,onFileRejected:e.onFileRejected,onAttachmentsChange:e.onAttachmentsChange}}setPreviewsContainer(e){this.previewsContainer=e}updateConfig(e){e.allowedTypes!==void 0&&(this.config.allowedTypes=e.allowedTypes.length>0?e.allowedTypes:Gi.allowedTypes),e.maxFileSize!==void 0&&(this.config.maxFileSize=e.maxFileSize),e.maxFiles!==void 0&&(this.config.maxFiles=e.maxFiles),e.onFileRejected!==void 0&&(this.config.onFileRejected=e.onFileRejected),e.onAttachmentsChange!==void 0&&(this.config.onAttachmentsChange=e.onAttachmentsChange)}getAttachments(){return[...this.attachments]}getContentParts(){return this.attachments.map(e=>e.contentPart)}hasAttachments(){return this.attachments.length>0}count(){return this.attachments.length}async handleFileSelect(e){!e||e.length===0||await this.handleFiles(Array.from(e))}async handleFiles(e){if(e.length){for(let n of e){if(this.attachments.length>=this.config.maxFiles){this.config.onFileRejected?.(n,"count");continue}let o=uu(n,this.config.allowedTypes,this.config.maxFileSize);if(!o.valid){let r=o.error?.includes("type")?"type":"size";this.config.onFileRejected?.(n,r);continue}try{let r=await pu(n),s=Ui(n)?URL.createObjectURL(n):null,i={id:Py(),file:n,previewUrl:s,contentPart:r};this.attachments.push(i),this.renderPreview(i)}catch(r){console.error("[AttachmentManager] Failed to process file:",r)}}this.updatePreviewsVisibility(),this.config.onAttachmentsChange?.(this.getAttachments())}}removeAttachment(e){let n=this.attachments.findIndex(s=>s.id===e);if(n===-1)return;let o=this.attachments[n];o.previewUrl&&URL.revokeObjectURL(o.previewUrl),this.attachments.splice(n,1);let r=this.previewsContainer?.querySelector(`[data-attachment-id="${e}"]`);r&&r.remove(),this.updatePreviewsVisibility(),this.config.onAttachmentsChange?.(this.getAttachments())}clearAttachments(){for(let e of this.attachments)e.previewUrl&&URL.revokeObjectURL(e.previewUrl);this.attachments=[],this.previewsContainer&&(this.previewsContainer.innerHTML=""),this.updatePreviewsVisibility(),this.config.onAttachmentsChange?.(this.getAttachments())}renderPreview(e){if(!this.previewsContainer)return;let n=Ui(e.file),o=v("div","persona-attachment-preview persona-relative persona-inline-block");if(o.setAttribute("data-attachment-id",e.id),o.style.width="48px",o.style.height="48px",n&&e.previewUrl){let i=v("img");i.src=e.previewUrl,i.alt=e.file.name,i.className="persona-w-full persona-h-full persona-object-cover persona-rounded-lg persona-border persona-border-gray-200",i.style.width="48px",i.style.height="48px",i.style.objectFit="cover",i.style.borderRadius="8px",o.appendChild(i)}else{let i=v("div");i.style.width="48px",i.style.height="48px",i.style.borderRadius="8px",i.style.backgroundColor="var(--persona-container, #f3f4f6)",i.style.border="1px solid var(--persona-border, #e5e7eb)",i.style.display="flex",i.style.flexDirection="column",i.style.alignItems="center",i.style.justifyContent="center",i.style.gap="2px",i.style.overflow="hidden";let l=Iy(e.file.type),p=ae(l,20,"var(--persona-muted, #6b7280)",1.5);p&&i.appendChild(p);let c=v("span");c.textContent=gu(e.file.type,e.file.name),c.style.fontSize="8px",c.style.fontWeight="600",c.style.color="var(--persona-muted, #6b7280)",c.style.textTransform="uppercase",c.style.lineHeight="1",i.appendChild(c),o.appendChild(i)}let r=v("button","persona-attachment-remove persona-absolute persona-flex persona-items-center persona-justify-center");r.type="button",r.setAttribute("aria-label","Remove attachment"),r.style.position="absolute",r.style.top="-4px",r.style.right="-4px",r.style.width="18px",r.style.height="18px",r.style.borderRadius="50%",r.style.backgroundColor="var(--persona-palette-colors-black-alpha-60, rgba(0, 0, 0, 0.6))",r.style.border="none",r.style.cursor="pointer",r.style.display="flex",r.style.alignItems="center",r.style.justifyContent="center",r.style.padding="0";let s=ae("x",10,"var(--persona-text-inverse, #ffffff)",2);s?r.appendChild(s):(r.textContent="\xD7",r.style.color="var(--persona-text-inverse, #ffffff)",r.style.fontSize="14px",r.style.lineHeight="1"),r.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),this.removeAttachment(e.id)}),o.appendChild(r),this.previewsContainer.appendChild(o)}updatePreviewsVisibility(){this.previewsContainer&&(this.previewsContainer.style.display=this.attachments.length>0?"flex":"none")}static fromConfig(e,n){return new t({allowedTypes:e?.allowedTypes,maxFileSize:e?.maxFileSize,maxFiles:e?.maxFiles,onFileRejected:e?.onFileRejected,onAttachmentsChange:n})}};Je();Qi();_l();Je();wt();var Wt={idle:"Online",connecting:"Connecting\u2026",connected:"Streaming\u2026",error:"Offline",paused:"Connection lost\u2026",resuming:"Reconnecting\u2026"},Qt=1e5,Ji=Qt+1;var Hy=8,By=8,$l=10,zl=new WeakMap,Lu=t=>t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in t,Dy=t=>{let e=t.getRootNode?.();return Lu(e)?e:t.ownerDocument.body},Ul=(t,e,n)=>Math.min(Math.max(t,e),Math.max(e,n));function Ut(t){zl.get(t.anchor)?.destroy();let{anchor:e,trigger:n=e,text:o,enabled:r=!0,gap:s=Hy,viewportPadding:i=By}=t,l=()=>e.ownerDocument,p=()=>l().defaultView??window,c=null,d=null,u=null,b=!1,g=!1,h=!1,C=()=>(typeof o=="function"?o():o).trim(),L=()=>{u?.(),u=null,c?.remove(),c=null,d=null},B=()=>{if(!c)return;let W=l(),P=p(),I=e.getBoundingClientRect(),j=c.getBoundingClientRect(),pe=W.documentElement.clientWidth||P.innerWidth,ge=W.documentElement.clientHeight||P.innerHeight,se=pe-i-j.width,Y=I.left+I.width/2-j.width/2,oe=Ul(Y,i,se),J=I.top-i,ie=ge-i-I.bottom,ee=j.height+s,fe=J>=ee||J>=ie?"top":"bottom",be=fe==="top"?I.top-s-j.height:I.bottom+s,he=ge-i-j.height,we=Ul(be,i,he),ve=I.left+I.width/2,Te=Math.max($l,j.width-$l),Me=Ul(ve-oe,$l,Te);c.dataset.placement=fe,c.style.left=`${oe}px`,c.style.top=`${we}px`,c.style.setProperty("--persona-tooltip-arrow-x",`${Me}px`)},k=()=>{if(h||!r||c||!e.isConnected)return;let W=C(),P=Dy(e);if(!W||!P)return;let I=l(),j=p();c=I.createElement("div"),c.className="persona-control-tooltip",c.setAttribute("role","tooltip"),c.dataset.state="measuring",c.style.zIndex=String(Ji),d=I.createElement("span"),d.className="persona-control-tooltip__label",d.textContent=W,c.appendChild(d);let pe=I.createElement("span");pe.className="persona-control-tooltip__arrow",c.appendChild(pe),P.appendChild(c),B(),c.dataset.state="open";let ge=()=>{if(!e.isConnected){L();return}d&&(d.textContent=C()),B()};j.addEventListener("scroll",ge,!0),j.addEventListener("resize",ge);let se=e.getRootNode(),Y=Lu(se)?se:I.documentElement,oe=typeof MutationObserver>"u"?null:new MutationObserver(()=>{e.isConnected||L()});oe?.observe(Y,{childList:!0,subtree:!0}),u=()=>{j.removeEventListener("scroll",ge,!0),j.removeEventListener("resize",ge),oe?.disconnect()}},S=()=>{b||g?k():L()},E=()=>{let W=p();(!W.matchMedia||!W.matchMedia("(hover: none)").matches)&&(b=!0,S())},z=()=>{b=!1,S()},G=()=>{g=!0,S()},A=()=>{g=!1,S()},O=W=>{W.key==="Escape"&&(b=!1,g=!1,L())};n.addEventListener("mouseenter",E),n.addEventListener("mouseleave",z),e.addEventListener("focus",G),e.addEventListener("blur",A),e.addEventListener("keydown",O);let D={get isOpen(){return c!==null},show:k,hide:L,reposition:B,destroy:()=>{h||(h=!0,L(),n.removeEventListener("mouseenter",E),n.removeEventListener("mouseleave",z),e.removeEventListener("focus",G),e.removeEventListener("blur",A),e.removeEventListener("keydown",O),zl.delete(e))}};return zl.set(e,D),D}function Pu(t){let{config:e,onOpen:n}=t,o=t.buttonSize??"40px",r=parseFloat(o)||40,s=Math.round(r*.6),i=e.buttonIconName??"plus",l=e.buttonTooltipText??"Add context",p=v("div","persona-send-button-wrapper"),c=Ce("button",{className:"persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-mention-button",attrs:{type:"button","data-persona-composer-mention-button":"","aria-label":l,"aria-haspopup":"listbox","aria-expanded":"false"},style:{width:o,height:o,minWidth:o,minHeight:o,fontSize:"18px",lineHeight:"1"}}),d=ae(i,s,"currentColor",1.5);return d?c.appendChild(d):c.textContent="+",c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),n()}),p.appendChild(c),Ut({anchor:c,trigger:p,text:()=>c.getAttribute("aria-label")??l}),{button:c,wrapper:p}}var{setLoader:yA,load:jy}=lr({fallbackImport:()=>Promise.resolve().then(()=>(Ju(),Xu))});var Xl=jy;var{setLoader:LA,load:eb}=lr({fallbackImport:()=>Promise.resolve().then(()=>(cg(),lg)),resetOnSetLoader:!0});var dg=eb;Je();wt();function ks(t,e={}){if(e.render)return e.render({ref:t,readonly:!!e.readonly});let n=Ce("span",{className:Vn("persona-mention-token",e.readonly&&"persona-mention-token-readonly"),attrs:{"data-mention-source":t.sourceId,title:t.label,role:"img","aria-label":`${t.label} mention`}});t.color&&n.style.setProperty("--persona-mention-token-accent",t.color);let o=ae(t.iconName??"at-sign",13,"currentColor",2);if(o){let r=v("span","persona-mention-token-icon");r.appendChild(o),n.appendChild(r)}return n.appendChild(Ce("span",{className:"persona-mention-token-label",text:`@${t.label}`})),n}function pg(t){let e=t.config.contextMentions;if(!e?.enabled)return null;let n=Xi(e).filter(S=>S.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(S=>S.sources.some(E=>typeof E.matchCommand=="function")),r=S=>o.some(E=>E.trigger?E.position==="line-start"?S.split(`
|
|
196
|
-
`).some(
|
|
197
|
-
`)[0]).startsWith(E.trigger):!1),s=(S,E)=>{if(!(typeof window>"u"))try{window.dispatchEvent(new CustomEvent(`persona:mention:${S}`,{detail:E}))}catch{}},i=Ce("div",{className:"persona-mention-context-row",attrs:{"data-persona-mention-context-row":""}}),l=null,p=null,c=t.textarea,d=null,u=null,b=null,g=null,h=()=>{if(l)return Promise.resolve(l);if(p)return p;let S=Xl().then(E=>(l=E.mountContextMentions({mentionConfig:e,textarea:t.textarea,composerInput:d??void 0,anchor:t.anchor,contextRow:i,getMessages:t.getMessages,getConfig:()=>t.config,liveRegionHost:t.liveRegionHost,popoverContainer:t.popoverContainer,onPickerOpenChange:k,emit:s}),l)).catch(E=>(typeof console<"u"&&console.warn("[Persona] Failed to load context mentions runtime",E),p===S&&(p=null),null));return p=S,S},C=()=>{dg().then(S=>{let E=S.mountInlineComposer({textarea:t.textarea,renderToken:G=>ks(G,{render:e.renderMentionToken}),onMentionRemoved:G=>l?.untrackMention(G)});d=E.input,u=E.destroy;let z=c;z.replaceWith(E.element),c=E.element,g={next:E.element,prev:z},b?.(E.element,z),l?l.rebindComposer(E.input):p&&p.then(G=>G?.rebindComposer(E.input))}).catch(S=>{typeof console<"u"&&console.warn("[Persona] Failed to load inline mention composer",S)})};e.display==="inline"&&C();let L=[],B=new Map;for(let S of n){if(!S.showButton)continue;let E=Pu({config:{...e,buttonIconName:S.buttonIconName,buttonTooltipText:S.buttonTooltipText},buttonSize:t.config.sendButton?.size,onOpen:()=>{h().then(z=>z?.openMenu(S.trigger))}});L.push(E),B.set(S.trigger,E.button)}let k=(S,E,z)=>{let G=B.get(E);G&&(G.setAttribute("aria-expanded",S?"true":"false"),S?G.setAttribute("aria-controls",z):G.removeAttribute("aria-controls"))};return{affordanceButtons:L.map(S=>S.wrapper),contextRow:i,handleInput:S=>{if(l){l.handleInput();return}if(!Eu(S))return;let E=c,z=E.selectionStart??0;As(E.value,z,n)&&h().then(G=>G?.handleInput())},handleKeydown:S=>{if(l?.isMenuOpen())return l.handleKeydown(S);if(S.key==="Backspace"&&l?.hasMentions()&&!g){let E=c,z=E.selectionStart===0&&E.selectionEnd===0;if((E.value.length===0||z)&&l.removeLastChip())return S.preventDefault(),!0}return!1},isMenuOpen:()=>l?.isMenuOpen()??!1,hasMentions:()=>l?.hasMentions()??!1,collectForSubmit:()=>l?.collectForSubmit()??null,takeInlineCommand:async S=>r(S)?(l??await h())?.dispatchInlineCommand(S)??null:null,clear:()=>l?.clear(),prefetch:()=>{Xl().catch(()=>{})},onComposerSwap:S=>{b=S,g&&S(g.next,g.prev)},destroy:()=>{l?.destroy(),u?.();for(let S of L)S.wrapper.remove();i.remove()}}}var ug=t=>typeof t=="object"&&t!==null&&!Array.isArray(t);function Ls(t,e){if(!t)return e;if(!e)return t;let n={...t};for(let[o,r]of Object.entries(e)){let s=n[o];ug(s)&&ug(r)?n[o]=Ls(s,r):n[o]=r}return n}var Gn="min(440px, calc(100vw - 24px))",fg="440px",tb={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",closeButtonSize:"32px",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",size:"32px",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)"},it={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",launcher:tb,copy:{welcomeTitle:"Hello \u{1F44B}",welcomeSubtitle:"Ask anything about your account or products.",inputPlaceholder:"How can I help...",sendButtonLabel:"Send"},sendButton:{borderWidth:"0px",paddingX:"12px",paddingY:"10px",borderColor:void 0,useIcon:!0,iconText:"\u2191",size:"40px",showTooltip:!0,tooltipText:"Send message",iconName:"send"},statusIndicator:{visible:!0,idleText:"Online",connectingText:"Connecting\u2026",connectedText:"Streaming\u2026",errorText:"Offline"},voiceRecognition:{enabled:!0,pauseDuration:2e3,iconName:"mic",iconSize:"39px",borderWidth:"0px",paddingX:"9px",paddingY:"14px",iconColor: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"}},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 gg(t,e){if(!(!t&&!e))return t?e?Ls(t,e):t:e}function ca(t){return t?{...it,...t,theme:gg(it.theme,t.theme),darkTheme:gg(it.darkTheme,t.darkTheme),launcher:{...it.launcher,...t.launcher,dock:{...it.launcher?.dock,...t.launcher?.dock},clearChat:{...it.launcher?.clearChat,...t.launcher?.clearChat}},copy:{...it.copy,...t.copy},sendButton:{...it.sendButton,...t.sendButton},statusIndicator:{...it.statusIndicator,...t.statusIndicator},voiceRecognition:{...it.voiceRecognition,...t.voiceRecognition},features:(()=>{let e=it.features?.artifacts,n=t.features?.artifacts,o=it.features?.scrollToBottom,r=t.features?.scrollToBottom,s=it.features?.scrollBehavior,i=t.features?.scrollBehavior,l=it.features?.streamAnimation,p=t.features?.streamAnimation,c=it.features?.askUserQuestion,d=t.features?.askUserQuestion,u=e===void 0&&n===void 0?void 0:{...e,...n,layout:{...e?.layout,...n?.layout}},b=o===void 0&&r===void 0?void 0:{...o,...r},g=s===void 0&&i===void 0?void 0:{...s,...i},h=l===void 0&&p===void 0?void 0:{...l,...p},C=c===void 0&&d===void 0?void 0:{...c,...d,styles:{...c?.styles,...d?.styles}};return{...it.features,...t.features,...b!==void 0?{scrollToBottom:b}:{},...g!==void 0?{scrollBehavior:g}:{},...u!==void 0?{artifacts:u}:{},...h!==void 0?{streamAnimation:h}:{},...C!==void 0?{askUserQuestion:C}:{}}})(),suggestionChips:t.suggestionChips??it.suggestionChips,suggestionChipsConfig:{...it.suggestionChipsConfig,...t.suggestionChipsConfig},layout:{...it.layout,...t.layout,header:{...it.layout?.header,...t.layout?.header},messages:{...it.layout?.messages,...t.layout?.messages,avatar:{...it.layout?.messages?.avatar,...t.layout?.messages?.avatar},timestamp:{...it.layout?.messages?.timestamp,...t.layout?.messages?.timestamp}},slots:{...it.layout?.slots,...t.layout?.slots}},markdown:{...it.markdown,...t.markdown,options:{...it.markdown?.options,...t.markdown?.options}},messageActions:{...it.messageActions,...t.messageActions}}:it}var da="16px",pa="transparent",nb={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:{0:"0px",1:"0.25rem",2:"0.5rem",3:"0.75rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem",20:"5rem",24:"6rem",32:"8rem",40:"10rem",48:"12rem",56:"14rem",64:"16rem"},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"}},ob={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"}},rb={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:"palette.colors.primary.500",foreground:"palette.colors.primary.50",border:"palette.colors.gray.200",size:"60px",iconSize:"28px",borderRadius:"palette.radius.full",shadow:"palette.shadows.lg"},panel:{width:Gn,maxWidth:fg,height:"600px",maxHeight:"calc(100vh - 80px)",borderRadius:"palette.radius.xl",shadow:"palette.shadows.xl",inset:da,canvasBackground:pa},header:{background:"palette.colors.primary.500",border:"palette.colors.primary.600",borderRadius:"palette.radius.xl palette.radius.xl 0 0",padding:"semantic.spacing.md",iconBackground:"palette.colors.primary.600",iconForeground:"palette.colors.primary.50",titleForeground:"palette.colors.primary.50",subtitleForeground:"palette.colors.primary.200",actionIconForeground:"palette.colors.primary.200"},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",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",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",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"},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"},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 en(t,e){if(!e.startsWith("palette.")&&!e.startsWith("semantic.")&&!e.startsWith("components."))return e;let n=e.split("."),o=t;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."))?en(t,o):o}function mg(t){let e={};function n(o,r){for(let[s,i]of Object.entries(o)){let l=`${r}.${s}`;if(typeof i=="string"){let p=en(t,i);p!==void 0&&(e[l]={path:l,value:p,type:r.includes("color")?"color":r.includes("spacing")?"spacing":r.includes("typography")?"typography":r.includes("shadow")?"shadow":r.includes("border")?"border":"color"})}else typeof i=="object"&&i!==null&&n(i,l)}}return n(t.palette,"palette"),n(t.semantic,"semantic"),n(t.components,"components"),e}function sb(t){let e=[],n=[];return t.palette||e.push({path:"palette",message:"Theme must include a palette",severity:"error"}),t.semantic||n.push({path:"semantic",message:"No semantic tokens defined - defaults will be used",severity:"warning"}),t.components||n.push({path:"components",message:"No component tokens defined - defaults will be used",severity:"warning"}),{valid:e.length===0,errors:e,warnings:n}}function hg(t,e){let n={...t};for(let[o,r]of Object.entries(e)){let s=n[o];s&&typeof s=="object"&&!Array.isArray(s)&&r&&typeof r=="object"&&!Array.isArray(r)?n[o]=hg(s,r):n[o]=r}return n}function ib(t,e){return e?hg(t,e):t}function Cr(t,e={}){let n={palette:nb,semantic:ob,components:rb},o={palette:{...n.palette,...t?.palette,colors:{...n.palette.colors,...t?.palette?.colors},spacing:{...n.palette.spacing,...t?.palette?.spacing},typography:{...n.palette.typography,...t?.palette?.typography},shadows:{...n.palette.shadows,...t?.palette?.shadows},borders:{...n.palette.borders,...t?.palette?.borders},radius:{...n.palette.radius,...t?.palette?.radius}},semantic:{...n.semantic,...t?.semantic,colors:{...n.semantic.colors,...t?.semantic?.colors,interactive:{...n.semantic.colors.interactive,...t?.semantic?.colors?.interactive},feedback:{...n.semantic.colors.feedback,...t?.semantic?.colors?.feedback}},spacing:{...n.semantic.spacing,...t?.semantic?.spacing},typography:{...n.semantic.typography,...t?.semantic?.typography}},components:ib(n.components,t?.components)};if(e.validate!==!1){let r=sb(o);if(!r.valid)throw new Error(`Theme validation failed: ${r.errors.map(s=>s.message).join(", ")}`)}if(e.plugins)for(let r of e.plugins)o=r.transform(o);return o}function yg(t){let e=mg(t),n={};for(let[A,O]of Object.entries(e)){let D=A.replace(/\./g,"-");n[`--persona-${D}`]=O.value}n["--persona-primary"]=n["--persona-semantic-colors-primary"]??n["--persona-palette-colors-primary-500"],n["--persona-secondary"]=n["--persona-semantic-colors-secondary"]??n["--persona-palette-colors-secondary-500"],n["--persona-accent"]=n["--persona-semantic-colors-accent"]??n["--persona-palette-colors-accent-500"],n["--persona-surface"]=n["--persona-semantic-colors-surface"]??n["--persona-palette-colors-gray-50"],n["--persona-background"]=n["--persona-semantic-colors-background"]??n["--persona-palette-colors-gray-50"],n["--persona-container"]=n["--persona-semantic-colors-container"]??n["--persona-palette-colors-gray-100"],n["--persona-text"]=n["--persona-semantic-colors-text"]??n["--persona-palette-colors-gray-900"],n["--persona-text-muted"]=n["--persona-semantic-colors-text-muted"]??n["--persona-palette-colors-gray-500"],n["--persona-text-inverse"]=n["--persona-semantic-colors-text-inverse"]??n["--persona-palette-colors-gray-50"],n["--persona-border"]=n["--persona-semantic-colors-border"]??n["--persona-palette-colors-gray-200"],n["--persona-divider"]=n["--persona-semantic-colors-divider"]??n["--persona-palette-colors-gray-200"],n["--persona-muted"]=n["--persona-text-muted"],n["--persona-voice-recording-indicator"]=n["--persona-components-voice-recording-indicator"]??n["--persona-palette-colors-error-500"],n["--persona-voice-recording-bg"]=n["--persona-components-voice-recording-background"]??n["--persona-palette-colors-error-50"],n["--persona-voice-processing-icon"]=n["--persona-components-voice-processing-icon"]??n["--persona-palette-colors-primary-500"],n["--persona-voice-speaking-icon"]=n["--persona-components-voice-speaking-icon"]??n["--persona-palette-colors-success-500"],n["--persona-approval-bg"]=n["--persona-components-approval-requested-background"]??n["--persona-surface"],n["--persona-approval-border"]=n["--persona-components-approval-requested-border"]??n["--persona-border"],n["--persona-approval-text"]=n["--persona-components-approval-requested-text"]??n["--persona-palette-colors-gray-900"],n["--persona-approval-shadow"]=n["--persona-components-approval-requested-shadow"]??"0 1px 2px 0 rgba(11, 11, 11, 0.06), 0 2px 8px 0 rgba(11, 11, 11, 0.04)",n["--persona-approval-approve-bg"]=n["--persona-components-approval-approve-background"]??n["--persona-button-primary-bg"],n["--persona-approval-deny-bg"]=n["--persona-components-approval-deny-background"]??n["--persona-container"],n["--persona-attachment-image-bg"]=n["--persona-components-attachment-image-background"]??n["--persona-palette-colors-gray-100"],n["--persona-attachment-image-border"]=n["--persona-components-attachment-image-border"]??n["--persona-palette-colors-gray-200"],n["--persona-font-family"]=n["--persona-semantic-typography-fontFamily"]??n["--persona-palette-typography-fontFamily-sans"],n["--persona-font-size"]=n["--persona-semantic-typography-fontSize"]??n["--persona-palette-typography-fontSize-base"],n["--persona-font-weight"]=n["--persona-semantic-typography-fontWeight"]??n["--persona-palette-typography-fontWeight-normal"],n["--persona-line-height"]=n["--persona-semantic-typography-lineHeight"]??n["--persona-palette-typography-lineHeight-normal"],n["--persona-input-font-family"]=n["--persona-font-family"],n["--persona-input-font-weight"]=n["--persona-font-weight"],n["--persona-radius-sm"]=n["--persona-palette-radius-sm"]??"0.125rem",n["--persona-radius-md"]=n["--persona-palette-radius-md"]??"0.375rem",n["--persona-radius-lg"]=n["--persona-palette-radius-lg"]??"0.5rem",n["--persona-radius-xl"]=n["--persona-palette-radius-xl"]??"0.75rem",n["--persona-radius-full"]=n["--persona-palette-radius-full"]??"9999px",n["--persona-launcher-radius"]=n["--persona-components-launcher-borderRadius"]??n["--persona-palette-radius-full"]??"9999px",n["--persona-launcher-bg"]=n["--persona-components-launcher-background"]??n["--persona-primary"],n["--persona-launcher-fg"]=n["--persona-components-launcher-foreground"]??n["--persona-text-inverse"],n["--persona-launcher-border"]=n["--persona-components-launcher-border"]??n["--persona-border"],n["--persona-button-primary-bg"]=n["--persona-components-button-primary-background"]??n["--persona-primary"],n["--persona-button-primary-fg"]=n["--persona-components-button-primary-foreground"]??n["--persona-text-inverse"],n["--persona-button-radius"]=n["--persona-components-button-primary-borderRadius"]??n["--persona-palette-radius-full"]??"9999px",n["--persona-button-ghost-bg"]=n["--persona-components-button-ghost-background"]??"transparent",n["--persona-button-ghost-fg"]=n["--persona-components-button-ghost-foreground"]??n["--persona-text"],n["--persona-button-ghost-radius"]=n["--persona-components-button-ghost-borderRadius"]??n["--persona-radius-md"]??"0.375rem",n["--persona-button-ghost-hover-bg"]=n["--persona-components-button-ghost-hoverBackground"]??"rgba(0, 0, 0, 0.05)",n["--persona-panel-radius"]=n["--persona-components-panel-borderRadius"]??n["--persona-radius-xl"]??"0.75rem",n["--persona-panel-border"]=n["--persona-components-panel-border"]??`1px solid ${n["--persona-border"]}`,n["--persona-panel-shadow"]=n["--persona-components-panel-shadow"]??n["--persona-palette-shadows-xl"]??"0 25px 50px -12px rgba(0, 0, 0, 0.25)",n["--persona-panel-inset"]=n["--persona-components-panel-inset"]??da,n["--persona-panel-canvas-bg"]=n["--persona-components-panel-canvasBackground"]??pa,n["--persona-launcher-shadow"]=n["--persona-components-launcher-shadow"]??"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)",n["--persona-input-radius"]=n["--persona-components-input-borderRadius"]??n["--persona-radius-lg"]??"0.5rem",n["--persona-message-user-radius"]=n["--persona-components-message-user-borderRadius"]??n["--persona-radius-lg"]??"0.5rem",n["--persona-message-assistant-radius"]=n["--persona-components-message-assistant-borderRadius"]??n["--persona-radius-lg"]??"0.5rem",n["--persona-header-bg"]=n["--persona-components-header-background"]??n["--persona-surface"],n["--persona-header-border"]=n["--persona-components-header-border"]??n["--persona-divider"],n["--persona-header-icon-bg"]=n["--persona-components-header-iconBackground"]??n["--persona-primary"],n["--persona-header-icon-fg"]=n["--persona-components-header-iconForeground"]??n["--persona-text-inverse"],n["--persona-header-title-fg"]=n["--persona-components-header-titleForeground"]??n["--persona-primary"],n["--persona-header-subtitle-fg"]=n["--persona-components-header-subtitleForeground"]??n["--persona-text-muted"],n["--persona-header-action-icon-fg"]=n["--persona-components-header-actionIconForeground"]??n["--persona-muted"];let o=t.components?.header;o?.shadow&&(n["--persona-header-shadow"]=o.shadow),o?.borderBottom&&(n["--persona-header-border-bottom"]=o.borderBottom),n["--persona-intro-card-bg"]=n["--persona-components-introCard-background"]??"transparent",n["--persona-intro-card-radius"]=n["--persona-components-introCard-borderRadius"]??"1rem",n["--persona-intro-card-padding"]=n["--persona-components-introCard-padding"]??"1.5rem",n["--persona-intro-card-shadow"]=n["--persona-components-introCard-shadow"]??"none",n["--persona-input-background"]=n["--persona-components-input-background"]??n["--persona-surface"],n["--persona-input-placeholder"]=n["--persona-components-input-placeholder"]??n["--persona-text-muted"],n["--persona-message-user-bg"]=n["--persona-components-message-user-background"]??n["--persona-accent"],n["--persona-message-user-text"]=n["--persona-components-message-user-text"]??n["--persona-text-inverse"],n["--persona-message-user-shadow"]=n["--persona-components-message-user-shadow"]??"0 5px 15px rgba(15, 23, 42, 0.08)",n["--persona-message-assistant-bg"]=n["--persona-components-message-assistant-background"]??n["--persona-surface"],n["--persona-message-assistant-text"]=n["--persona-components-message-assistant-text"]??n["--persona-text"],n["--persona-message-assistant-border"]=n["--persona-components-message-assistant-border"]??n["--persona-border"],n["--persona-message-assistant-shadow"]=n["--persona-components-message-assistant-shadow"]??"0 1px 2px 0 rgb(0 0 0 / 0.05)",n["--persona-scroll-to-bottom-bg"]=n["--persona-components-scrollToBottom-background"]??n["--persona-button-primary-bg"]??n["--persona-accent"],n["--persona-scroll-to-bottom-fg"]=n["--persona-components-scrollToBottom-foreground"]??n["--persona-button-primary-fg"]??n["--persona-text-inverse"],n["--persona-scroll-to-bottom-border"]=n["--persona-components-scrollToBottom-border"]??n["--persona-primary"],n["--persona-scroll-to-bottom-size"]=n["--persona-components-scrollToBottom-size"]??"40px",n["--persona-scroll-to-bottom-radius"]=n["--persona-components-scrollToBottom-borderRadius"]??n["--persona-button-radius"]??n["--persona-radius-full"]??"9999px",n["--persona-scroll-to-bottom-shadow"]=n["--persona-components-scrollToBottom-shadow"]??n["--persona-palette-shadows-sm"]??"0 1px 2px 0 rgb(0 0 0 / 0.05)",n["--persona-scroll-to-bottom-padding"]=n["--persona-components-scrollToBottom-padding"]??"0.5rem 0.875rem",n["--persona-scroll-to-bottom-gap"]=n["--persona-components-scrollToBottom-gap"]??"0.5rem",n["--persona-scroll-to-bottom-font-size"]=n["--persona-components-scrollToBottom-fontSize"]??n["--persona-palette-typography-fontSize-sm"]??"0.875rem",n["--persona-scroll-to-bottom-icon-size"]=n["--persona-components-scrollToBottom-iconSize"]??"14px",n["--persona-tool-bubble-shadow"]=n["--persona-components-toolBubble-shadow"]??"0 5px 15px rgba(15, 23, 42, 0.08)",n["--persona-reasoning-bubble-shadow"]=n["--persona-components-reasoningBubble-shadow"]??"0 5px 15px rgba(15, 23, 42, 0.08)",n["--persona-composer-shadow"]=n["--persona-components-composer-shadow"]??"none",n["--persona-composer-padding"]=n["--persona-components-composer-padding"]??"0.75rem 1rem",n["--persona-composer-gap"]=n["--persona-components-composer-gap"]??"0.5rem",n["--persona-composer-font-size"]=n["--persona-components-composer-fontSize"]??"0.875rem",n["--persona-composer-line-height"]=n["--persona-components-composer-lineHeight"]??"1.25rem",n["--persona-md-inline-code-bg"]=n["--persona-components-markdown-inlineCode-background"]??n["--persona-container"],n["--persona-md-inline-code-color"]=n["--persona-components-markdown-inlineCode-foreground"]??n["--persona-text"],n["--persona-md-link-color"]=n["--persona-components-markdown-link-foreground"]??n["--persona-accent"]??"#0f0f0f";let r=n["--persona-components-markdown-heading-h1-fontSize"];r&&(n["--persona-md-h1-size"]=r);let s=n["--persona-components-markdown-heading-h1-fontWeight"];s&&(n["--persona-md-h1-weight"]=s);let i=n["--persona-components-markdown-heading-h2-fontSize"];i&&(n["--persona-md-h2-size"]=i);let l=n["--persona-components-markdown-heading-h2-fontWeight"];l&&(n["--persona-md-h2-weight"]=l);let p=n["--persona-components-markdown-prose-fontFamily"];p&&p!=="inherit"&&(n["--persona-md-prose-font-family"]=p),n["--persona-md-code-block-bg"]=n["--persona-components-markdown-codeBlock-background"]??n["--persona-container"],n["--persona-md-code-block-border-color"]=n["--persona-components-markdown-codeBlock-borderColor"]??n["--persona-border"],n["--persona-md-code-block-text-color"]=n["--persona-components-markdown-codeBlock-textColor"]??"inherit",n["--persona-md-table-header-bg"]=n["--persona-components-markdown-table-headerBackground"]??n["--persona-container"],n["--persona-md-table-border-color"]=n["--persona-components-markdown-table-borderColor"]??n["--persona-border"],n["--persona-md-hr-color"]=n["--persona-components-markdown-hr-color"]??n["--persona-divider"],n["--persona-md-blockquote-border-color"]=n["--persona-components-markdown-blockquote-borderColor"]??n["--persona-palette-colors-gray-900"],n["--persona-md-blockquote-bg"]=n["--persona-components-markdown-blockquote-background"]??"transparent",n["--persona-md-blockquote-text-color"]=n["--persona-components-markdown-blockquote-textColor"]??n["--persona-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"],n["--persona-message-border"]=n["--persona-components-message-border"]??n["--persona-border"];let c=t.components,d=c?.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 u=c?.labelButton;u&&(u.background&&(n["--persona-label-btn-bg"]=u.background),u.border&&(n["--persona-label-btn-border"]=u.border),u.color&&(n["--persona-label-btn-color"]=u.color),u.padding&&(n["--persona-label-btn-padding"]=u.padding),u.borderRadius&&(n["--persona-label-btn-radius"]=u.borderRadius),u.hoverBackground&&(n["--persona-label-btn-hover-bg"]=u.hoverBackground),u.fontSize&&(n["--persona-label-btn-font-size"]=u.fontSize),u.gap&&(n["--persona-label-btn-gap"]=u.gap));let b=c?.toggleGroup;b&&(b.gap&&(n["--persona-toggle-group-gap"]=b.gap),b.borderRadius&&(n["--persona-toggle-group-radius"]=b.borderRadius));let g=c?.artifact;if(g?.toolbar){let A=g.toolbar;A.iconHoverColor&&(n["--persona-artifact-toolbar-icon-hover-color"]=A.iconHoverColor),A.iconHoverBackground&&(n["--persona-artifact-toolbar-icon-hover-bg"]=A.iconHoverBackground),A.iconPadding&&(n["--persona-artifact-toolbar-icon-padding"]=A.iconPadding),A.iconBorderRadius&&(n["--persona-artifact-toolbar-icon-radius"]=A.iconBorderRadius),A.iconBorder&&(n["--persona-artifact-toolbar-icon-border"]=A.iconBorder),A.toggleGroupGap&&(n["--persona-artifact-toolbar-toggle-group-gap"]=A.toggleGroupGap),A.toggleBorderRadius&&(n["--persona-artifact-toolbar-toggle-radius"]=A.toggleBorderRadius),A.toggleGroupPadding&&(n["--persona-artifact-toolbar-toggle-group-padding"]=A.toggleGroupPadding),A.toggleGroupBorder&&(n["--persona-artifact-toolbar-toggle-group-border"]=A.toggleGroupBorder),A.toggleGroupBorderRadius&&(n["--persona-artifact-toolbar-toggle-group-radius"]=A.toggleGroupBorderRadius),A.toggleGroupBackground&&(n["--persona-artifact-toolbar-toggle-group-bg"]=en(t,A.toggleGroupBackground)??A.toggleGroupBackground),A.copyBackground&&(n["--persona-artifact-toolbar-copy-bg"]=A.copyBackground),A.copyBorder&&(n["--persona-artifact-toolbar-copy-border"]=A.copyBorder),A.copyColor&&(n["--persona-artifact-toolbar-copy-color"]=A.copyColor),A.copyBorderRadius&&(n["--persona-artifact-toolbar-copy-radius"]=A.copyBorderRadius),A.copyPadding&&(n["--persona-artifact-toolbar-copy-padding"]=A.copyPadding),A.copyMenuBackground&&(n["--persona-artifact-toolbar-copy-menu-bg"]=A.copyMenuBackground,n["--persona-dropdown-bg"]=n["--persona-dropdown-bg"]??A.copyMenuBackground),A.copyMenuBorder&&(n["--persona-artifact-toolbar-copy-menu-border"]=A.copyMenuBorder,n["--persona-dropdown-border"]=n["--persona-dropdown-border"]??A.copyMenuBorder),A.copyMenuShadow&&(n["--persona-artifact-toolbar-copy-menu-shadow"]=A.copyMenuShadow,n["--persona-dropdown-shadow"]=n["--persona-dropdown-shadow"]??A.copyMenuShadow),A.copyMenuBorderRadius&&(n["--persona-artifact-toolbar-copy-menu-radius"]=A.copyMenuBorderRadius,n["--persona-dropdown-radius"]=n["--persona-dropdown-radius"]??A.copyMenuBorderRadius),A.copyMenuItemHoverBackground&&(n["--persona-artifact-toolbar-copy-menu-item-hover-bg"]=A.copyMenuItemHoverBackground,n["--persona-dropdown-item-hover-bg"]=n["--persona-dropdown-item-hover-bg"]??A.copyMenuItemHoverBackground),A.iconBackground&&(n["--persona-artifact-toolbar-icon-bg"]=A.iconBackground),A.toolbarBorder&&(n["--persona-artifact-toolbar-border"]=A.toolbarBorder)}if(g?.tab){let A=g.tab;A.background&&(n["--persona-artifact-tab-bg"]=A.background),A.activeBackground&&(n["--persona-artifact-tab-active-bg"]=A.activeBackground),A.activeBorder&&(n["--persona-artifact-tab-active-border"]=A.activeBorder),A.borderRadius&&(n["--persona-artifact-tab-radius"]=A.borderRadius),A.textColor&&(n["--persona-artifact-tab-color"]=A.textColor),A.hoverBackground&&(n["--persona-artifact-tab-hover-bg"]=A.hoverBackground),A.listBackground&&(n["--persona-artifact-tab-list-bg"]=A.listBackground),A.listBorderColor&&(n["--persona-artifact-tab-list-border-color"]=A.listBorderColor),A.listPadding&&(n["--persona-artifact-tab-list-padding"]=A.listPadding)}if(g?.pane){let A=g.pane;if(A.toolbarBackground){let O=en(t,A.toolbarBackground)??A.toolbarBackground;n["--persona-artifact-toolbar-bg"]=O}}if(g?.card){let A=g.card;A.background&&(n["--persona-artifact-card-bg"]=A.background),A.border&&(n["--persona-artifact-card-border"]=A.border),A.borderRadius&&(n["--persona-artifact-card-radius"]=A.borderRadius),A.hoverBackground&&(n["--persona-artifact-card-hover-bg"]=A.hoverBackground),A.hoverBorderColor&&(n["--persona-artifact-card-hover-border"]=A.hoverBorderColor)}if(g?.inline){let A=g.inline;A.background&&(n["--persona-artifact-inline-bg"]=en(t,A.background)??A.background),A.border&&(n["--persona-artifact-inline-border"]=A.border),A.borderRadius&&(n["--persona-artifact-inline-radius"]=A.borderRadius),A.chromeBackground&&(n["--persona-artifact-inline-chrome-bg"]=en(t,A.chromeBackground)??A.chromeBackground),A.chromeBorder&&(n["--persona-artifact-inline-chrome-border"]=en(t,A.chromeBorder)??A.chromeBorder),A.titleColor&&(n["--persona-artifact-inline-title-color"]=en(t,A.titleColor)??A.titleColor),A.mutedColor&&(n["--persona-artifact-inline-muted-color"]=en(t,A.mutedColor)??A.mutedColor),A.frameHeight&&(n["--persona-artifact-inline-frame-height"]=A.frameHeight)}let h=c?.code;h&&(h.keywordColor&&(n["--persona-code-keyword-color"]=h.keywordColor),h.stringColor&&(n["--persona-code-string-color"]=h.stringColor),h.commentColor&&(n["--persona-code-comment-color"]=h.commentColor),h.numberColor&&(n["--persona-code-number-color"]=h.numberColor),h.tagColor&&(n["--persona-code-tag-color"]=h.tagColor),h.attrColor&&(n["--persona-code-attr-color"]=h.attrColor),h.propertyColor&&(n["--persona-code-property-color"]=h.propertyColor),h.lineNumberColor&&(n["--persona-code-line-number-color"]=h.lineNumberColor),h.gutterBorderColor&&(n["--persona-code-gutter-border-color"]=h.gutterBorderColor),h.background&&(n["--persona-code-bg"]=en(t,h.background)??h.background));let C=n["--persona-surface"],L=n["--persona-container"],B=n["--persona-palette-colors-gray-100"]??"#f3f4f6",k=n["--persona-palette-colors-gray-200"]??"#e5e7eb",S=n["--persona-palette-colors-gray-300"]??"#d1d5db",E=!L||L===C,z=E?B:L,G=E?k:L;return n["--persona-icon-btn-hover-bg"]=n["--persona-icon-btn-hover-bg"]??z,n["--persona-icon-btn-active-bg"]=n["--persona-icon-btn-active-bg"]??G,E&&(n["--persona-icon-btn-active-border"]=n["--persona-icon-btn-active-border"]??S),n["--persona-label-btn-hover-bg"]=n["--persona-label-btn-hover-bg"]??z,n["--persona-artifact-tab-hover-bg"]=n["--persona-artifact-tab-hover-bg"]??z,n["--persona-artifact-card-hover-bg"]=n["--persona-artifact-card-hover-bg"]??z,n}var ab={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"}}},bg=t=>{if(!(!t||typeof t!="object"||Array.isArray(t)))return t},sc=()=>typeof document<"u"&&document.documentElement.classList.contains("dark")||typeof window<"u"&&window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light",lb=t=>{let e=t?.colorScheme??"light";return e==="light"?"light":e==="dark"?"dark":sc()},vg=t=>lb(t),cb=t=>Cr(t),db=t=>Cr({...t,palette:{...t?.palette,colors:{...ab.colors,...t?.palette?.colors}}},{validate:!1}),wr=t=>{let e=vg(t),n=bg(t?.theme),o=bg(t?.darkTheme);return e==="dark"?db(Ls(n??{},o??{})):cb(n)},pb=t=>yg(t),Ps=(t,e)=>{let n=wr(e),o=pb(n);for(let[r,s]of Object.entries(o))t.style.setProperty(r,s);t.setAttribute("data-persona-color-scheme",vg(e))},ua=t=>{let e=[];if(typeof document<"u"&&typeof MutationObserver<"u"){let n=new MutationObserver(()=>{t(sc())});n.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),e.push(()=>n.disconnect())}if(typeof window<"u"&&window.matchMedia){let n=window.matchMedia("(prefers-color-scheme: dark)"),o=()=>t(sc());n.addEventListener?(n.addEventListener("change",o),e.push(()=>n.removeEventListener("change",o))):n.addListener&&(n.addListener(o),e.push(()=>n.removeListener(o)))}return()=>{e.forEach(n=>n())}};wt();Je();function Wn(t){let e=String(t).split(/[\\/]/);return e[e.length-1]??""}function xg(t){let e=Wn(t),n=e.lastIndexOf(".");return n<=0?"":e.slice(n+1).toLowerCase()}function ga(t){if(typeof t!="string")return"";let e=t.indexOf(`
|
|
195
|
+
`),l=Array.isArray(e.contentParts)&&e.contentParts.length>0,p=r.contentParts.length>0;if(l){let c=[];s&&c.push(Dr(s)),c.push(...r.contentParts),c.push(...e.contentParts),e.contentParts=c}else if(p){let c=[];i&&c.push(Dr(i)),c.push(...r.contentParts),e.contentParts=c}else s&&(e.llmContent=i);Object.keys(r.context).length>0&&(e.mentionContext=r.context)}async sendMessage(e,n){let o=e.trim();if(!o&&(!n?.contentParts||n.contentParts.length===0)&&(!n?.mentions||n.mentions.refs.length===0))return;this.stopSpeaking(),this.abortController?.abort(),this.abortWebMcpResolves(),this.teardownReconnect();let r=aa(),s=Br();this.activeAssistantMessageId=null;let i=n?.contentParts&&lg(n.contentParts)?la:"",l={id:r,role:"user",content:o||i,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}};this.appendMessage(l),this.setStreaming(!0);let p=new AbortController;if(this.abortController=p,n?.mentions){let d=this.messages.find(g=>g.id===r)??l;if(await this.applyMentionBundle(d,o,n.mentions.finalize),p.signal.aborted||this.abortController!==p)return;this.callbacks.onMessagesChanged([...this.messages])}let c=[...this.messages];try{await this.client.dispatch({messages:c,signal:p.signal,assistantMessageId:s},this.handleEvent)}catch(d){if(this.status==="resuming"||this.reconnecting)return;let g=d instanceof Error&&(d.name==="AbortError"||d.message.includes("aborted")||d.message.includes("abort"));if(!g){let b=Cc(d,this.config.errorMessage);if(b){let f={id:s,role:"assistant",createdAt:new Date().toISOString(),content:b,sequence:this.nextSequence()};this.appendMessage(f)}}this.setStatus("idle"),this.setStreaming(!1),this.abortController=null,g||(d instanceof Error?this.callbacks.onError?.(d):this.callbacks.onError?.(new Error(String(d))))}}async continueConversation(){if(this.streaming)return;this.abortController?.abort(),this.teardownReconnect();let e=Br();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:e},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 i=Cc(r,this.config.errorMessage);if(i){let l={id:e,role:"assistant",createdAt:new Date().toISOString(),content:i,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(e,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(e,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 e=this.config.webmcp;e?.enabled===!0&&!e.onConfirm&&this.client.setWebMcpConfirmHandler(n=>this.requestWebMcpApproval(n))}requestWebMcpApproval(e){try{if(this.config.webmcp?.autoApprove?.(e)===!0)return Promise.resolve(!0)}catch{}let n={id:`webmcp-${++this.webMcpApprovalSeq}`,status:"pending",agentId:"",executionId:"",toolName:e.toolName,toolType:"webmcp",description:e.description??`Allow the assistant to run ${e.toolName}?`,parameters:e.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(e,n){let o=this.webMcpApprovalResolvers.get(e);if(!o)return;this.webMcpApprovalResolvers.delete(e);let r=this.messages.find(s=>s.id===e);r?.approval&&this.upsertMessage({...r,approval:{...r.approval,status:n,resolvedAt:Date.now()}}),o(n==="approved")}async resolveApproval(e,n,o){let r=`approval-${e.id}`,s={...e,status:n,resolvedAt:Date.now()},i=this.messages.find(d=>d.id===r),l={id:r,role:"assistant",content:"",createdAt:i?.createdAt??new Date().toISOString(),...i?.sequence!==void 0?{sequence:i.sequence}:{},streaming:!1,variant:"approval",approval:s};this.upsertMessage(l),this.abortController?.abort(),this.abortController=new AbortController,this.setStreaming(!0);let p=this.config.approval,c=p&&typeof p=="object"?p.onDecision:void 0;try{let d;if(c?d=await c({approvalId:e.id,executionId:e.executionId,agentId:e.agentId,toolName:e.toolName},n,o):d=await this.client.resolveApproval({agentId:e.agentId,executionId:e.executionId,approvalId:e.id},n),d){let g=null;if(d instanceof Response){if(!d.ok){let b=await d.json().catch(()=>null);throw new Error(b?.error??`Approval request failed: ${d.status}`)}g=d.body}else d instanceof ReadableStream&&(g=d);g?await this.connectStream(g,{allowReentry:!0}):(n==="denied"&&this.appendMessage({id:`denial-${e.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(d){let g=d instanceof Error&&(d.name==="AbortError"||d.message.includes("aborted")||d.message.includes("abort"));this.setStreaming(!1),this.abortController=null,g||this.callbacks.onError?.(d instanceof Error?d:new Error(String(d)))}}persistAskUserQuestionProgress(e,n){let o=this.messages.find(r=>r.id===e.id);o&&this.upsertMessage({...o,agentMetadata:{...o.agentMetadata,askUserQuestionAnswers:n.answers,askUserQuestionIndex:n.currentIndex}})}markAskUserQuestionResolved(e,n){let o=this.messages.find(r=>r.id===e.id);o&&this.upsertMessage({...o,agentMetadata:{...o.agentMetadata,awaitingLocalTool:!1,askUserQuestionAnswered:!0,...n?{askUserQuestionAnswers:n}:{}}})}async resolveAskUserQuestion(e,n){if(this.messages.find(d=>d.id===e.id)?.agentMetadata?.askUserQuestionAnswered===!0)return;let r=e.agentMetadata?.executionId,s=e.toolCall?.name;if(!r||!s){this.callbacks.onError?.(new Error("resolveAskUserQuestion: message is missing executionId or toolCall.name"));return}let i=typeof n=="string"?void 0:n;if(i===void 0&&typeof n=="string"){let d=e.toolCall?.args,g=Array.isArray(d?.questions)?d.questions:[];if(g.length===1){let b=typeof g[0]?.question=="string"?g[0].question:"";b&&(i={[b]:n})}}this.markAskUserQuestionResolved(e,i),this.abortController?.abort(),this.abortController=new AbortController,this.setStreaming(!0);let l=e.toolCall.id,p=e.toolCall?.args,c=Array.isArray(p?.questions)?p.questions:[];if(c.length===0){let d=typeof n=="string"?n:Object.entries(n).map(([g,b])=>`${g}: ${Array.isArray(b)?b.join(", "):b}`).join(" | ");this.appendMessage({id:`ask-user-answer-${l}`,role:"user",content:d,createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()})}else{let d=i??{};c.forEach((g,b)=>{let f=typeof g?.question=="string"?g.question:"";if(!f)return;let y=d[f],C=Array.isArray(y)?y.join(", "):typeof y=="string"?y:"";this.appendMessage({id:`ask-user-q-${l}-${b}`,role:"assistant",content:f,createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()}),this.appendMessage({id:`ask-user-a-${l}-${b}`,role:"user",content:C||"*Skipped*",createdAt:new Date().toISOString(),streaming:!1,sequence:this.nextSequence()})})}try{let d=await this.client.resumeFlow(r,{[s]:n});if(!d.ok){let g=await d.json().catch(()=>null);throw new Error(g?.error??`Resume failed: ${d.status}`)}d.body?await this.connectStream(d.body,{allowReentry:!0}):(this.setStreaming(!1),this.abortController=null)}catch(d){let g=d instanceof Error&&(d.name==="AbortError"||d.message.includes("aborted")||d.message.includes("abort"));this.setStreaming(!1),this.abortController=null,g||this.callbacks.onError?.(d instanceof Error?d:new Error(String(d)))}}enqueueWebMcpAwait(e){let n=e.agentMetadata?.executionId,o=e.toolCall?.id;if(!n||!o){let s=this.webMcpEpoch;queueMicrotask(()=>{s===this.webMcpEpoch&&this.resolveWebMcpToolCall(e)});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(e))}scheduleWebMcpBatchFlush(){if(this.webMcpAwaitBatches.size===0)return;let e=this.webMcpEpoch;queueMicrotask(()=>{if(e===this.webMcpEpoch)for(let n of[...this.webMcpAwaitBatches.keys()])this.flushWebMcpAwaitBatch(n)})}flushWebMcpAwaitBatch(e){let n=this.webMcpAwaitBatches.get(e);if(!n)return;this.webMcpAwaitBatches.delete(e);let{snapshots:o}=n;o.length===1?this.resolveWebMcpToolCall(o[0]):o.length>1&&this.resolveWebMcpToolCallBatch(e,o)}resolveWebMcpToolStartedAt(e){let o=[this.messages.find(r=>r.id===e.id)?.toolCall?.startedAt,e.toolCall?.startedAt];for(let r of o)if(typeof r=="number"&&Number.isFinite(r))return r;return Date.now()}isSuggestRepliesAlreadyResolved(e){return e.toolCall?.name!==eo?!1:(this.messages.find(o=>o.id===e.id)??e).agentMetadata?.suggestRepliesResolved===!0}markWebMcpToolRunning(e){let n=this.resolveWebMcpToolStartedAt(e);return this.upsertMessage({...e,streaming:!0,agentMetadata:{...e.agentMetadata,awaitingLocalTool:!1},toolCall:e.toolCall?{...e.toolCall,status:"running",startedAt:n,completedAt:void 0,duration:void 0,durationMs:void 0}:e.toolCall}),n}markWebMcpToolComplete(e,n,o,r=Date.now(),s){this.messages.some(i=>i.id===e.id)&&this.upsertMessage({...e,streaming:!1,agentMetadata:{...e.agentMetadata,awaitingLocalTool:!1,...s},toolCall:e.toolCall?{...e.toolCall,status:"complete",result:n,startedAt:o,completedAt:r,duration:void 0,durationMs:Math.max(0,r-o)}:e.toolCall})}async resolveWebMcpToolCallBatch(e,n){let o=[],r=[],s=new AbortController;this.webMcpResolveControllers.add(s),this.setStreaming(!0);let i=await Promise.all(n.map(async p=>{let c=p.toolCall?.name,d=p.toolCall?.id;if(!c||!d)return null;let g=`${e}:${d}`;if(this.webMcpInflightKeys.has(g)||this.webMcpResolvedKeys.has(g)||this.isSuggestRepliesAlreadyResolved(p))return null;this.webMcpInflightKeys.add(g),o.push(g);let b=this.markWebMcpToolRunning(p),f=p.agentMetadata?.webMcpToolCallId??c;if(c===eo)return{dedupeKey:g,resumeKey:f,output:mc(),toolMessage:p,startedAt:b,completedAt:Date.now()};let y=new AbortController;this.webMcpResolveControllers.add(y),r.push(y);let C=this.client.executeWebMcpToolCall(c,p.toolCall?.args,y.signal),M;if(!C)M={isError:!0,content:[{type:"text",text:"WebMCP not enabled on this widget."}]};else try{M=await C}catch(I){let S=I instanceof Error&&(I.name==="AbortError"||I.message.includes("aborted")||I.message.includes("abort"));return S||this.callbacks.onError?.(I instanceof Error?I:new Error(String(I))),this.markWebMcpToolComplete(p,_s(S?"Aborted by cancel()":Ag(I)),b),this.webMcpInflightKeys.delete(g),null}return y.signal.aborted?(this.markWebMcpToolComplete(p,_s("Aborted by cancel()"),b),this.webMcpInflightKeys.delete(g),null):{dedupeKey:g,resumeKey:f,output:M,toolMessage:p,startedAt:b,completedAt:Date.now()}})),l=[];try{if(l=i.filter(d=>d!==null),l.length===0)return;let p={};for(let d of l)p[d.resumeKey]=d.output;let c=await this.client.resumeFlow(e,p,{signal:s.signal});if(!c.ok){let d=await c.json().catch(()=>null);throw new Error(d?.error??`Resume failed: ${c.status}`)}for(let d of l)this.webMcpResolvedKeys.add(d.dedupeKey),this.markWebMcpToolComplete(d.toolMessage,d.output,d.startedAt,d.completedAt,d.toolMessage.toolCall?.name===eo?{suggestRepliesResolved:!0}:void 0);c.body&&await this.connectStream(c.body,{allowReentry:!0})}catch(p){if(!(p instanceof Error&&(p.name==="AbortError"||p.message.includes("aborted")||p.message.includes("abort"))))this.callbacks.onError?.(p instanceof Error?p:new Error(String(p)));else for(let d of l)this.markWebMcpToolComplete(d.toolMessage,_s("Aborted by cancel()"),d.startedAt)}finally{for(let p of o)this.webMcpInflightKeys.delete(p);for(let p of r)this.webMcpResolveControllers.delete(p);this.webMcpResolveControllers.delete(s),this.webMcpResolveControllers.size===0&&!this.abortController&&this.setStreaming(!1)}}async resolveWebMcpToolCall(e){let n=e.agentMetadata?.executionId,o=e.toolCall?.name,r=e.toolCall?.id;if(!n){this.callbacks.onError?.(new Error("WebMCP step_await missing executionId: dispatch left paused."));return}if(!o)return;if(!r){let y=`${n}:__no_tool_id__:${o}`;if(this.webMcpInflightKeys.has(y)||this.webMcpResolvedKeys.has(y))return;this.webMcpInflightKeys.add(y);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(y)}catch(C){this.callbacks.onError?.(C instanceof Error?C:new Error(String(C)))}finally{this.webMcpInflightKeys.delete(y)}return}let s=`${n}:${r}`;if(this.webMcpInflightKeys.has(s)||this.webMcpResolvedKeys.has(s)||this.isSuggestRepliesAlreadyResolved(e))return;this.webMcpInflightKeys.add(s);let i=this.markWebMcpToolRunning(e),l=new AbortController;this.webMcpResolveControllers.add(l);let{signal:p}=l;this.setStreaming(!0);let c=o===eo,d=e.toolCall?.args,g=c?null:this.client.executeWebMcpToolCall(o,d,p),b="execute",f=i;try{let y;if(c?y=mc():g?y=await g:y={isError:!0,content:[{type:"text",text:"WebMCP not enabled on this widget."}]},f=Date.now(),p.aborted){this.markWebMcpToolComplete(e,_s("Aborted by cancel()"),i);return}let C=e.agentMetadata?.webMcpToolCallId??o;b="resume",await this.resumeWithToolOutput(n,C,y,{onHttpOk:()=>{this.webMcpResolvedKeys.add(s),this.markWebMcpToolComplete(e,y,i,f,c?{suggestRepliesResolved:!0}:void 0)},signal:p})}catch(y){let C=y instanceof Error&&(y.name==="AbortError"||y.message.includes("aborted")||y.message.includes("abort"));(b==="execute"||C||p.aborted)&&this.markWebMcpToolComplete(e,_s(C||p.aborted?"Aborted by cancel()":Ag(y)),i),C||this.callbacks.onError?.(y instanceof Error?y:new Error(String(y)))}finally{this.webMcpInflightKeys.delete(s),this.webMcpResolveControllers.delete(l),this.webMcpResolveControllers.size===0&&!this.abortController&&this.setStreaming(!1)}}async resumeWithToolOutput(e,n,o,r){let s=await this.client.resumeFlow(e,{[n]:o},{signal:r?.signal});if(!s.ok){let i=await s.json().catch(()=>null);throw new Error(i?.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 e of this.webMcpResolveControllers)e.abort();this.webMcpResolveControllers.clear();for(let e of[...this.webMcpApprovalResolvers.keys()])this.resolveWebMcpApproval(e,"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(e){return this.artifacts.get(e)}getSelectedArtifactId(){return this.selectedArtifactId}selectArtifact(e){this.selectedArtifactId=e,this.emitArtifactsState()}clearArtifacts(){this.clearArtifactState()}upsertArtifact(e){let n=e.id||`art_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`,o=e.artifactType==="markdown"?{id:n,artifactType:"markdown",title:e.title,status:"complete",markdown:e.content,...e.file?{file:e.file}:{},...e.presentation?{presentation:e.presentation}:{}}:{id:n,artifactType:"component",title:e.title,status:"complete",component:e.component,props:e.props??{},...e.presentation?{presentation:e.presentation}:{}};return this.artifacts.set(n,o),this.selectedArtifactId=n,this.emitArtifactsState(),e.transcript!==!1&&this.injectArtifactRefBlock(o),o}injectArtifactRefBlock(e){let n=`artifact-ref-${e.id}`,o=xo(this.config.features?.artifacts,e),r=Ls(o,{artifactId:e.id,title:e.title,artifactType:e.artifactType,status:"complete",...e.file?{file:e.file}:{},...e.presentation?{presentation:e.presentation}:{},...e.component?{component:e.component}:{},...e.props?{componentProps:e.props}:{},...e.markdown!==void 0?{markdown:e.markdown}:{}}),s=this.messages.find(i=>i.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 e=!1;for(let n of this.artifacts.values()){let o=this.messages.find(i=>i.id===`artifact-ref-${n.id}`);if(!o)continue;let r=xo(this.config.features?.artifacts,n),s=Ls(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",e=!0)}e&&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(e){switch(e.type){case"artifact_start":{e.artifactType==="markdown"?this.artifacts.set(e.id,{id:e.id,artifactType:"markdown",title:e.title,status:"streaming",markdown:"",...e.file?{file:e.file}:{}}):this.artifacts.set(e.id,{id:e.id,artifactType:"component",title:e.title,status:"streaming",component:e.component??"",props:{}}),this.selectedArtifactId=e.id;break}case"artifact_delta":{let n=this.artifacts.get(e.id);n?.artifactType==="markdown"&&(n.markdown=(n.markdown??"")+e.artDelta);break}case"artifact_update":{let n=this.artifacts.get(e.id);n?.artifactType==="component"&&(n.props={...n.props,...e.props},e.component&&(n.component=e.component));break}case"artifact_complete":{let n=this.artifacts.get(e.id);n&&(n.status="complete");break}default:return}this.emitArtifactsState()}hydrateMessages(e){this.abortController?.abort(),this.abortController=null,this.teardownReconnect(),this.abortWebMcpResolves(),this.webMcpInflightKeys.clear(),this.webMcpResolvedKeys.clear(),this.messages=this.sortMessages(e.map(n=>({...n,streaming:!1,sequence:n.sequence??this.nextSequence()}))),this.setStreaming(!1),this.setStatus("idle"),this.callbacks.onMessagesChanged([...this.messages])}hydrateArtifacts(e,n=null){this.artifacts.clear();for(let o of e)this.artifacts.set(o.id,{...o,status:"complete"});this.selectedArtifactId=n,this.emitArtifactsState()}trackCursor(e){let n=this.agentExecution?.executionId;if(!n||!this.activeAssistantMessageId||this.agentExecution?.status!=="running")return;let o=this.resumable===null;this.resumable={executionId:n,lastEventId:e,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(e=>e.agentMetadata?.awaitingLocalTool===!0&&e.agentMetadata?.askUserQuestionAnswered!==!0||e.variant==="approval"&&e.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(e=>{this.reconnecting&&this.resumable&&e.begin()}))}loadReconnectController(){return this.reconnectController?Promise.resolve(this.reconnectController):(this.reconnectControllerPromise||(this.reconnectControllerPromise=Promise.resolve().then(()=>(Cg(),wg)).then(({createReconnectController:e})=>{let n=e(this.buildReconnectHost());return this.reconnectController=n,n})),this.reconnectControllerPromise)}buildReconnectHost(){let e=this;return{get config(){return e.config},getResumable:()=>e.resumable,clearResumable:()=>e.clearResumable(),getStatus:()=>e.status,setStatus:n=>e.setStatus(n),setStreaming:n=>e.setStreaming(n),setReconnecting:n=>{e.reconnecting=n},setAbortController:n=>{e.abortController=n},getMessages:()=>e.messages,notifyMessagesChanged:()=>e.callbacks.onMessagesChanged([...e.messages]),resumeConnect:(n,o,r)=>e.connectStream(n,{assistantMessageId:o,allowReentry:!0,preserveAssistantId:!0,seedContent:r}),appendMessage:n=>e.appendMessage(n),nextSequence:()=>e.nextSequence(),emitReconnect:n=>e.callbacks.onReconnect?.(n),buildErrorContent:n=>Cc(new Error(n),e.config.errorMessage),onError:n=>e.callbacks.onError?.(n)}}reconnectNow(){if(this.reconnecting){this.reconnectController?.wake();return}this.beginReconnect()}resumeFromHandle(e){if(typeof this.config.reconnectStream!="function"||this.reconnecting)return;let n=this.reopenTrailingAssistant();n||(n=Br(),this.appendMessage({id:n,role:"assistant",content:"",createdAt:new Date().toISOString(),streaming:!0,sequence:this.nextSequence()})),this.activeAssistantMessageId=n,this.agentExecution||(this.agentExecution={executionId:e.executionId,agentId:"",agentName:"",status:"running",currentIteration:0,maxTurns:0}),this.resumable={executionId:e.executionId,lastEventId:e.after,assistantMessageId:n,status:"running"},this.beginReconnect()}reopenTrailingAssistant(){for(let e=this.messages.length-1;e>=0;e--){let n=this.messages[e];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 e=this.resumable!==null;this.resumable=null,e&&this.config.onExecutionState?.(null)}notifyExecutionState(e){let n=this.config.onExecutionState;if(n){if(e){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(e){this.status!==e&&(this.status=e,this.callbacks.onStatusChanged(e))}setStreaming(e){if(this.streaming===e)return;let n=this.streaming;this.streaming=e,this.callbacks.onStreamingChanged(e),n&&!e&&this.speakLatestAssistantMessage()}speakLatestAssistantMessage(){let e=this.config.textToSpeech;if(!e?.enabled||!(!e.provider||e.provider==="browser"||e.provider==="runtype"&&e.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=xc(o.content);r.trim()&&this.readAloud.play(o.id,{text:r,voice:e.voice,rate:e.rate,pitch:e.pitch})}static pickBestVoice(e){return da(e)}toggleReadAloud(e){let n=this.messages.find(s=>s.id===e);if(!n||n.role!=="assistant")return;let o=xc(n.content||"");if(!o.trim())return;let r=this.config.textToSpeech;this.readAloud.toggle(e,{text:o,voice:r?.voice,rate:r?.rate,pitch:r?.pitch})}getReadAloudState(e){return this.readAloud.stateFor(e)}onReadAloudChange(e){return this.readAloud.onChange(e)}stopSpeaking(){this.readAloud.stop(),typeof window<"u"&&"speechSynthesis"in window&&window.speechSynthesis.cancel()}appendMessage(e){let n=this.ensureSequence(e);this.messages=this.sortMessages([...this.messages,n]),this.callbacks.onMessagesChanged([...this.messages])}upsertMessage(e){let n=this.ensureSequence(e),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 i={...r,...n};if(r.agentMetadata?.askUserQuestionAnswered===!0&&n.agentMetadata&&(i.agentMetadata={...n.agentMetadata,askUserQuestionAnswered:!0,...r.agentMetadata.askUserQuestionAnswers?{askUserQuestionAnswers:r.agentMetadata.askUserQuestionAnswers}:{},awaitingLocalTool:!1}),r.agentMetadata?.suggestRepliesResolved===!0&&n.agentMetadata&&(i.agentMetadata={...i.agentMetadata??n.agentMetadata,suggestRepliesResolved:!0,awaitingLocalTool:!1}),r.approval&&n.approval&&r.approval.id===n.approval.id){let d=r.approval,g=n.approval;i.approval={...d,...g,executionId:g.executionId||d.executionId,toolName:g.toolName||d.toolName,description:g.description||d.description,toolType:g.toolType??d.toolType,reason:g.reason??d.reason,parameters:g.parameters??d.parameters}}let l=n.toolCall?.name,p=n.agentMetadata?.executionId,c=n.toolCall?.id;if(l&&Sg(l)&&p&&c&&n.agentMetadata?.awaitingLocalTool===!0){let d=`${p}:${c}`,g=this.webMcpInflightKeys.has(d),b=this.webMcpResolvedKeys.has(d),f=r.toolCall?.name,y=r.agentMetadata?.executionId===p&&r.toolCall?.id===c&&f!==void 0&&Sg(f)&&r.toolCall?.status==="complete";(g||b||y)&&(i.agentMetadata={...i.agentMetadata??{},awaitingLocalTool:!1},i.toolCall=r.toolCall,i.streaming=r.streaming)}return i}),this.messages=this.sortMessages(this.messages),this.callbacks.onMessagesChanged([...this.messages])}ensureSequence(e){return e.sequence!==void 0?{...e}:{...e,sequence:this.nextSequence()}}nextSequence(){return this.sequenceCounter++}sortMessages(e){return[...e].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 i=n.sequence??0,l=o.sequence??0;return i!==l?i-l:n.id.localeCompare(o.id)})}};Ye();xt();var fa={allowedTypes:to,maxFileSize:10*1024*1024,maxFiles:4};function Ky(){return`attach_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function Gy(t){return t==="application/pdf"||t.startsWith("text/")||t.includes("word")?"file-text":t.includes("excel")||t.includes("spreadsheet")?"file-spreadsheet":t==="application/json"?"file-code":"file"}var $s=class t{constructor(e={}){this.attachments=[];this.previewsContainer=null;this.config={allowedTypes:e.allowedTypes??fa.allowedTypes,maxFileSize:e.maxFileSize??fa.maxFileSize,maxFiles:e.maxFiles??fa.maxFiles,onFileRejected:e.onFileRejected,onAttachmentsChange:e.onAttachmentsChange}}setPreviewsContainer(e){this.previewsContainer=e}remountPreviews(e){if(this.previewsContainer=e,e){e.innerHTML="";for(let n of this.attachments)this.renderPreview(n)}this.updatePreviewsVisibility()}updateConfig(e){e.allowedTypes!==void 0&&(this.config.allowedTypes=e.allowedTypes.length>0?e.allowedTypes:fa.allowedTypes),e.maxFileSize!==void 0&&(this.config.maxFileSize=e.maxFileSize),e.maxFiles!==void 0&&(this.config.maxFiles=e.maxFiles),e.onFileRejected!==void 0&&(this.config.onFileRejected=e.onFileRejected),e.onAttachmentsChange!==void 0&&(this.config.onAttachmentsChange=e.onAttachmentsChange)}getAttachments(){return[...this.attachments]}getContentParts(){return this.attachments.map(e=>e.contentPart)}hasAttachments(){return this.attachments.length>0}count(){return this.attachments.length}async handleFileSelect(e){!e||e.length===0||await this.handleFiles(Array.from(e))}async handleFiles(e){if(e.length){for(let n of e){if(this.attachments.length>=this.config.maxFiles){this.config.onFileRejected?.(n,"count");continue}let o=pg(n,this.config.allowedTypes,this.config.maxFileSize);if(!o.valid){let r=o.error?.includes("type")?"type":"size";this.config.onFileRejected?.(n,r);continue}try{let r=await dg(n),s=ca(n)?URL.createObjectURL(n):null,i={id:Ky(),file:n,previewUrl:s,contentPart:r};this.attachments.push(i),this.renderPreview(i)}catch(r){console.error("[AttachmentManager] Failed to process file:",r)}}this.updatePreviewsVisibility(),this.config.onAttachmentsChange?.(this.getAttachments())}}removeAttachment(e){let n=this.attachments.findIndex(s=>s.id===e);if(n===-1)return;let o=this.attachments[n];o.previewUrl&&URL.revokeObjectURL(o.previewUrl),this.attachments.splice(n,1);let r=this.previewsContainer?.querySelector(`[data-attachment-id="${e}"]`);r&&r.remove(),this.updatePreviewsVisibility(),this.config.onAttachmentsChange?.(this.getAttachments())}clearAttachments(){for(let e of this.attachments)e.previewUrl&&URL.revokeObjectURL(e.previewUrl);this.attachments=[],this.previewsContainer&&(this.previewsContainer.innerHTML=""),this.updatePreviewsVisibility(),this.config.onAttachmentsChange?.(this.getAttachments())}renderPreview(e){if(!this.previewsContainer)return;let n=ca(e.file),o=v("div","persona-attachment-preview persona-relative persona-inline-block");if(o.setAttribute("data-attachment-id",e.id),o.style.width="48px",o.style.height="48px",n&&e.previewUrl){let i=v("img");i.src=e.previewUrl,i.alt=e.file.name,i.className="persona-w-full persona-h-full persona-object-cover persona-rounded-lg persona-border persona-border-gray-200",i.style.width="48px",i.style.height="48px",i.style.objectFit="cover",i.style.borderRadius="8px",o.appendChild(i)}else{let i=v("div");i.style.width="48px",i.style.height="48px",i.style.borderRadius="8px",i.style.backgroundColor="var(--persona-container, #f3f4f6)",i.style.border="1px solid var(--persona-border, #e5e7eb)",i.style.display="flex",i.style.flexDirection="column",i.style.alignItems="center",i.style.justifyContent="center",i.style.gap="2px",i.style.overflow="hidden";let l=Gy(e.file.type),p=ie(l,20,"var(--persona-muted, #6b7280)",1.5);p&&i.appendChild(p);let c=v("span");c.textContent=ug(e.file.type,e.file.name),c.style.fontSize="8px",c.style.fontWeight="600",c.style.color="var(--persona-muted, #6b7280)",c.style.textTransform="uppercase",c.style.lineHeight="1",i.appendChild(c),o.appendChild(i)}let r=v("button","persona-attachment-remove persona-absolute persona-flex persona-items-center persona-justify-center");r.type="button",r.setAttribute("aria-label","Remove attachment"),r.style.position="absolute",r.style.top="-4px",r.style.right="-4px",r.style.width="18px",r.style.height="18px",r.style.borderRadius="50%",r.style.backgroundColor="var(--persona-palette-colors-black-alpha-60, rgba(0, 0, 0, 0.6))",r.style.border="none",r.style.cursor="pointer",r.style.display="flex",r.style.alignItems="center",r.style.justifyContent="center",r.style.padding="0";let s=ie("x",10,"var(--persona-text-inverse, #ffffff)",2);s?r.appendChild(s):(r.textContent="\xD7",r.style.color="var(--persona-text-inverse, #ffffff)",r.style.fontSize="14px",r.style.lineHeight="1"),r.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),this.removeAttachment(e.id)}),o.appendChild(r),this.previewsContainer.appendChild(o)}updatePreviewsVisibility(){this.previewsContainer&&(this.previewsContainer.style.display=this.attachments.length>0?"flex":"none")}static fromConfig(e,n){return new t({allowedTypes:e?.allowedTypes,maxFileSize:e?.maxFileSize,maxFiles:e?.maxFiles,onFileRejected:e?.onFileRejected,onAttachmentsChange:n})}};Ye();ma();Ac();Ye();xt();var Bt={idle:"Online",connecting:"Connecting\u2026",connected:"Streaming\u2026",error:"Offline",paused:"Connection lost\u2026",resuming:"Reconnecting\u2026"},Ut=1e5,ba=Ut+1;var Yy=8,Jy=8,Sc=10,Mc=new WeakMap,kg=t=>t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in t,Zy=t=>{let e=t.getRootNode?.();return kg(e)?e:t.ownerDocument.body},Tc=(t,e,n)=>Math.min(Math.max(t,e),Math.max(e,n));function jt(t){Mc.get(t.anchor)?.destroy();let{anchor:e,trigger:n=e,text:o,enabled:r=!0,gap:s=Yy,viewportPadding:i=Jy}=t,l=()=>e.ownerDocument,p=()=>l().defaultView??window,c=null,d=null,g=null,b=!1,f=!1,y=!1,C=()=>(typeof o=="function"?o():o).trim(),M=()=>{g?.(),g=null,c?.remove(),c=null,d=null},I=()=>{if(!c)return;let H=l(),w=p(),N=e.getBoundingClientRect(),K=c.getBoundingClientRect(),te=H.documentElement.clientWidth||w.innerWidth,Q=H.documentElement.clientHeight||w.innerHeight,se=te-i-K.width,J=N.left+N.width/2-K.width/2,oe=Tc(J,i,se),Y=N.top-i,pe=Q-i-N.bottom,ne=K.height+s,me=Y>=ne||Y>=pe?"top":"bottom",ve=me==="top"?N.top-s-K.height:N.bottom+s,be=Q-i-K.height,Te=Tc(ve,i,be),ze=N.left+N.width/2,Oe=Math.max(Sc,K.width-Sc),Ne=Tc(ze-oe,Sc,Oe);c.dataset.placement=me,c.style.left=`${oe}px`,c.style.top=`${Te}px`,c.style.setProperty("--persona-tooltip-arrow-x",`${Ne}px`)},S=()=>{if(y||!r||c||!e.isConnected)return;let H=C(),w=Zy(e);if(!H||!w)return;let N=l(),K=p();c=N.createElement("div"),c.className="persona-control-tooltip",c.setAttribute("role","tooltip"),c.dataset.state="measuring",c.style.zIndex=String(ba),d=N.createElement("span"),d.className="persona-control-tooltip__label",d.textContent=H,c.appendChild(d);let te=N.createElement("span");te.className="persona-control-tooltip__arrow",c.appendChild(te),w.appendChild(c),I(),c.dataset.state="open";let Q=()=>{if(!e.isConnected){M();return}d&&(d.textContent=C()),I()};K.addEventListener("scroll",Q,!0),K.addEventListener("resize",Q);let se=e.getRootNode(),J=kg(se)?se:N.documentElement,oe=typeof MutationObserver>"u"?null:new MutationObserver(()=>{e.isConnected||M()});oe?.observe(J,{childList:!0,subtree:!0}),g=()=>{K.removeEventListener("scroll",Q,!0),K.removeEventListener("resize",Q),oe?.disconnect()}},E=()=>{b||f?S():M()},L=()=>{let H=p();(!H.matchMedia||!H.matchMedia("(hover: none)").matches)&&(b=!0,E())},D=()=>{b=!1,E()},z=()=>{f=!0,E()},$=()=>{f=!1,E()},F=H=>{H.key==="Escape"&&(b=!1,f=!1,M())};n.addEventListener("mouseenter",L),n.addEventListener("mouseleave",D),e.addEventListener("focus",z),e.addEventListener("blur",$),e.addEventListener("keydown",F);let B={get isOpen(){return c!==null},show:S,hide:M,reposition:I,destroy:()=>{y||(y=!0,M(),n.removeEventListener("mouseenter",L),n.removeEventListener("mouseleave",D),e.removeEventListener("focus",z),e.removeEventListener("blur",$),e.removeEventListener("keydown",F),Mc.delete(e))}};return Mc.set(e,B),B}function Lg(t){let{config:e,onOpen:n}=t,o=t.buttonSize??"40px",r=parseFloat(o)||40,s=Math.round(r*.6),i=e.buttonIconName??"plus",l=e.buttonTooltipText??"Add context",p=v("div","persona-send-button-wrapper"),c=ye("button",{className:"persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-mention-button",attrs:{type:"button","data-persona-composer-mention-button":"","aria-label":l,"aria-haspopup":"listbox","aria-expanded":"false"},style:{width:o,height:o,minWidth:o,minHeight:o,fontSize:"18px",lineHeight:"1"}}),d=ie(i,s,"currentColor",1.5);return d?c.appendChild(d):c.textContent="+",c.addEventListener("click",g=>{g.preventDefault(),g.stopPropagation(),n()}),p.appendChild(c),jt({anchor:c,trigger:p,text:()=>c.getAttribute("aria-label")??l}),{button:c,wrapper:p}}var{setLoader:GS,load:av}=Er({fallbackImport:()=>Promise.resolve().then(()=>(Xg(),Qg))});var Wc=av;var{setLoader:iM,load:bv}=Er({fallbackImport:()=>Promise.resolve().then(()=>(cf(),lf)),resetOnSetLoader:!0});var df=bv;Ye();xt();function Ks(t,e={}){if(e.render)return e.render({ref:t,readonly:!!e.readonly});let n=ye("span",{className:Bn("persona-mention-token",e.readonly&&"persona-mention-token-readonly"),attrs:{"data-mention-source":t.sourceId,title:t.label,role:"img","aria-label":`${t.label} mention`}});t.color&&n.style.setProperty("--persona-mention-token-accent",t.color);let o=ie(t.iconName??"at-sign",13,"currentColor",2);if(o){let r=v("span","persona-mention-token-icon");r.appendChild(o),n.appendChild(r)}return n.appendChild(ye("span",{className:"persona-mention-token-label",text:`@${t.label}`})),n}function pf(t){let e=t.config.contextMentions;if(!e?.enabled)return null;let n=ha(e).filter(E=>E.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(E=>E.sources.some(L=>typeof L.matchCommand=="function")),r=E=>o.some(L=>L.trigger?L.position==="line-start"?E.split(`
|
|
196
|
+
`).some(z=>z.startsWith(L.trigger)):(L.position==="anywhere"?E:E.split(`
|
|
197
|
+
`)[0]).startsWith(L.trigger):!1),s=(E,L)=>{if(!(typeof window>"u"))try{window.dispatchEvent(new CustomEvent(`persona:mention:${E}`,{detail:L}))}catch{}},i=ye("div",{className:"persona-mention-context-row",attrs:{"data-persona-mention-context-row":""}}),l=null,p=null,c=t.textarea,d=null,g=null,b=null,f=null,y=()=>{if(l)return Promise.resolve(l);if(p)return p;let E=Wc().then(L=>(l=L.mountContextMentions({mentionConfig:e,textarea:t.textarea,composerInput:d??void 0,anchor:t.anchor,contextRow:i,getMessages:t.getMessages,getConfig:()=>t.config,liveRegionHost:t.liveRegionHost,popoverContainer:t.popoverContainer,onPickerOpenChange:S,emit:s}),l)).catch(L=>(typeof console<"u"&&console.warn("[Persona] Failed to load context mentions runtime",L),p===E&&(p=null),null));return p=E,E},C=()=>{df().then(E=>{let L=E.mountInlineComposer({textarea:t.textarea,renderToken:z=>Ks(z,{render:e.renderMentionToken}),onMentionRemoved:z=>l?.untrackMention(z)});d=L.input,g=L.destroy;let D=c;D.replaceWith(L.element),c=L.element,f={next:L.element,prev:D},b?.(L.element,D),l?l.rebindComposer(L.input):p&&p.then(z=>z?.rebindComposer(L.input))}).catch(E=>{typeof console<"u"&&console.warn("[Persona] Failed to load inline mention composer",E)})};e.display==="inline"&&C();let M=[],I=new Map;for(let E of n){if(!E.showButton)continue;let L=Lg({config:{...e,buttonIconName:E.buttonIconName,buttonTooltipText:E.buttonTooltipText},buttonSize:t.config.sendButton?.size,onOpen:()=>{y().then(D=>D?.openMenu(E.trigger))}});M.push(L),I.set(E.trigger,L.button)}let S=(E,L,D)=>{let z=I.get(L);z&&(z.setAttribute("aria-expanded",E?"true":"false"),E?z.setAttribute("aria-controls",D):z.removeAttribute("aria-controls"))};return{affordanceButtons:M.map(E=>E.wrapper),contextRow:i,handleInput:E=>{if(l){l.handleInput();return}if(!Tg(E))return;let L=c,D=L.selectionStart??0;zs(L.value,D,n)&&y().then(z=>z?.handleInput())},handleKeydown:E=>{if(l?.isMenuOpen())return l.handleKeydown(E);if(E.key==="Backspace"&&l?.hasMentions()&&!f){let L=c,D=L.selectionStart===0&&L.selectionEnd===0;if((L.value.length===0||D)&&l.removeLastChip())return E.preventDefault(),!0}return!1},isMenuOpen:()=>l?.isMenuOpen()??!1,hasMentions:()=>l?.hasMentions()??!1,collectForSubmit:()=>l?.collectForSubmit()??null,takeInlineCommand:async E=>r(E)?(l??await y())?.dispatchInlineCommand(E)??null:null,clear:()=>l?.clear(),prefetch:()=>{Wc().catch(()=>{})},onComposerSwap:E=>{b=E,f&&E(f.next,f.prev)},destroy:()=>{l?.destroy(),g?.();for(let E of M)E.wrapper.remove();i.remove()}}}var uf=t=>typeof t=="object"&&t!==null&&!Array.isArray(t);function Gs(t,e){if(!t)return e;if(!e)return t;let n={...t};for(let[o,r]of Object.entries(e)){let s=n[o];uf(s)&&uf(r)?n[o]=Gs(s,r):n[o]=r}return n}var no="min(440px, calc(100vw - 24px))",ff="440px",yv={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:no,heightOffset:0,autoExpand:!1,callToActionIconHidden:!1,agentIconSize:"40px",headerIconSize:"40px",closeButtonSize:"32px",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",size:"32px",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)"},it={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",launcher:yv,copy:{inputPlaceholder:"How can I help...",sendButtonLabel:"Send"},sendButton:{borderWidth:"0px",paddingX:"12px",paddingY:"10px",borderColor:void 0,useIcon:!0,iconText:"\u2191",size:"40px",showTooltip:!0,tooltipText:"Send message",iconName:"send"},statusIndicator:{visible:!0,idleText:"Online",connectingText:"Connecting\u2026",connectedText:"Streaming\u2026",errorText:"Offline"},voiceRecognition:{enabled:!0,pauseDuration:2e3,iconName:"mic",iconSize:"39px",borderWidth:"0px",paddingX:"9px",paddingY:"14px",iconColor: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"}},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 gf(t,e){if(!(!t&&!e))return t?e?Gs(t,e):t:e}function La(t){return t?{...it,...t,theme:gf(it.theme,t.theme),darkTheme:gf(it.darkTheme,t.darkTheme),launcher:{...it.launcher,...t.launcher,dock:{...it.launcher?.dock,...t.launcher?.dock},clearChat:{...it.launcher?.clearChat,...t.launcher?.clearChat}},copy:{...it.copy,...t.copy},sendButton:{...it.sendButton,...t.sendButton},statusIndicator:{...it.statusIndicator,...t.statusIndicator},voiceRecognition:{...it.voiceRecognition,...t.voiceRecognition},features:(()=>{let e=it.features?.artifacts,n=t.features?.artifacts,o=it.features?.scrollToBottom,r=t.features?.scrollToBottom,s=it.features?.scrollBehavior,i=t.features?.scrollBehavior,l=it.features?.streamAnimation,p=t.features?.streamAnimation,c=it.features?.askUserQuestion,d=t.features?.askUserQuestion,g=e===void 0&&n===void 0?void 0:{...e,...n,layout:{...e?.layout,...n?.layout}},b=o===void 0&&r===void 0?void 0:{...o,...r},f=s===void 0&&i===void 0?void 0:{...s,...i},y=l===void 0&&p===void 0?void 0:{...l,...p},C=c===void 0&&d===void 0?void 0:{...c,...d,styles:{...c?.styles,...d?.styles}};return{...it.features,...t.features,...b!==void 0?{scrollToBottom:b}:{},...f!==void 0?{scrollBehavior:f}:{},...g!==void 0?{artifacts:g}:{},...y!==void 0?{streamAnimation:y}:{},...C!==void 0?{askUserQuestion:C}:{}}})(),suggestionChips:t.suggestionChips??it.suggestionChips,suggestionChipsConfig:{...it.suggestionChipsConfig,...t.suggestionChipsConfig},layout:{...it.layout,...t.layout,header:{...it.layout?.header,...t.layout?.header},messages:{...it.layout?.messages,...t.layout?.messages,avatar:{...it.layout?.messages?.avatar,...t.layout?.messages?.avatar},timestamp:{...it.layout?.messages?.timestamp,...t.layout?.messages?.timestamp}},slots:{...it.layout?.slots,...t.layout?.slots}},markdown:{...it.markdown,...t.markdown,options:{...it.markdown?.options,...t.markdown?.options}},messageActions:{...it.messageActions,...t.messageActions}}:it}var Pa="16px",Ia="transparent",vv={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:{0:"0px",1:"0.25rem",2:"0.5rem",3:"0.75rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem",20:"5rem",24:"6rem",32:"8rem",40:"10rem",48:"12rem",56:"14rem",64:"16rem"},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"}},xv={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"}},wv={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:"palette.colors.primary.500",foreground:"palette.colors.primary.50",border:"palette.colors.gray.200",size:"60px",iconSize:"28px",borderRadius:"palette.radius.full",shadow:"palette.shadows.lg"},panel:{width:no,maxWidth:ff,height:"600px",maxHeight:"calc(100vh - 80px)",borderRadius:"palette.radius.xl",shadow:"palette.shadows.xl",inset:Pa,canvasBackground:Ia},header:{background:"palette.colors.primary.500",border:"palette.colors.primary.600",borderRadius:"palette.radius.xl palette.radius.xl 0 0",padding:"semantic.spacing.md",iconBackground:"palette.colors.primary.600",iconForeground:"palette.colors.primary.50",titleForeground:"palette.colors.primary.50",subtitleForeground:"palette.colors.primary.200",actionIconForeground:"palette.colors.primary.200"},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 tn(t,e){if(!e.startsWith("palette.")&&!e.startsWith("semantic.")&&!e.startsWith("components."))return e;let n=e.split("."),o=t;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."))?tn(t,o):o}function mf(t){let e={};function n(o,r){for(let[s,i]of Object.entries(o)){let l=`${r}.${s}`;if(typeof i=="string"){let p=tn(t,i);p!==void 0&&(e[l]={path:l,value:p,type:r.includes("color")?"color":r.includes("spacing")?"spacing":r.includes("typography")?"typography":r.includes("shadow")?"shadow":r.includes("border")?"border":"color"})}else typeof i=="object"&&i!==null&&n(i,l)}}return n(t.palette,"palette"),n(t.semantic,"semantic"),n(t.components,"components"),e}function Cv(t){let e=[],n=[];return t.palette||e.push({path:"palette",message:"Theme must include a palette",severity:"error"}),t.semantic||n.push({path:"semantic",message:"No semantic tokens defined - defaults will be used",severity:"warning"}),t.components||n.push({path:"components",message:"No component tokens defined - defaults will be used",severity:"warning"}),{valid:e.length===0,errors:e,warnings:n}}function hf(t,e){let n={...t};for(let[o,r]of Object.entries(e)){let s=n[o];s&&typeof s=="object"&&!Array.isArray(s)&&r&&typeof r=="object"&&!Array.isArray(r)?n[o]=hf(s,r):n[o]=r}return n}function Av(t,e){return e?hf(t,e):t}function _r(t,e={}){let n={palette:vv,semantic:xv,components:wv},o={palette:{...n.palette,...t?.palette,colors:{...n.palette.colors,...t?.palette?.colors},spacing:{...n.palette.spacing,...t?.palette?.spacing},typography:{...n.palette.typography,...t?.palette?.typography},shadows:{...n.palette.shadows,...t?.palette?.shadows},borders:{...n.palette.borders,...t?.palette?.borders},radius:{...n.palette.radius,...t?.palette?.radius}},semantic:{...n.semantic,...t?.semantic,colors:{...n.semantic.colors,...t?.semantic?.colors,interactive:{...n.semantic.colors.interactive,...t?.semantic?.colors?.interactive},feedback:{...n.semantic.colors.feedback,...t?.semantic?.colors?.feedback}},spacing:{...n.semantic.spacing,...t?.semantic?.spacing},typography:{...n.semantic.typography,...t?.semantic?.typography}},components:Av(n.components,t?.components)};if(e.validate!==!1){let r=Cv(o);if(!r.valid)throw new Error(`Theme validation failed: ${r.errors.map(s=>s.message).join(", ")}`)}if(e.plugins)for(let r of e.plugins)o=r.transform(o);return o}function bf(t){let e=mf(t),n={};for(let[w,N]of Object.entries(e)){let K=w.replace(/\./g,"-");n[`--persona-${K}`]=N.value}n["--persona-primary"]=n["--persona-semantic-colors-primary"]??n["--persona-palette-colors-primary-500"],n["--persona-secondary"]=n["--persona-semantic-colors-secondary"]??n["--persona-palette-colors-secondary-500"],n["--persona-accent"]=n["--persona-semantic-colors-accent"]??n["--persona-palette-colors-accent-500"],n["--persona-surface"]=n["--persona-semantic-colors-surface"]??n["--persona-palette-colors-gray-50"],n["--persona-background"]=n["--persona-semantic-colors-background"]??n["--persona-palette-colors-gray-50"],n["--persona-container"]=n["--persona-semantic-colors-container"]??n["--persona-palette-colors-gray-100"],n["--persona-text"]=n["--persona-semantic-colors-text"]??n["--persona-palette-colors-gray-900"],n["--persona-text-muted"]=n["--persona-semantic-colors-text-muted"]??n["--persona-palette-colors-gray-500"],n["--persona-text-inverse"]=n["--persona-semantic-colors-text-inverse"]??n["--persona-palette-colors-gray-50"],n["--persona-border"]=n["--persona-semantic-colors-border"]??n["--persona-palette-colors-gray-200"],n["--persona-divider"]=n["--persona-semantic-colors-divider"]??n["--persona-palette-colors-gray-200"],n["--persona-muted"]=n["--persona-text-muted"],n["--persona-voice-recording-indicator"]=n["--persona-components-voice-recording-indicator"]??n["--persona-palette-colors-error-500"],n["--persona-voice-recording-bg"]=n["--persona-components-voice-recording-background"]??n["--persona-palette-colors-error-50"],n["--persona-voice-processing-icon"]=n["--persona-components-voice-processing-icon"]??n["--persona-palette-colors-primary-500"],n["--persona-voice-speaking-icon"]=n["--persona-components-voice-speaking-icon"]??n["--persona-palette-colors-success-500"],n["--persona-approval-bg"]=n["--persona-components-approval-requested-background"]??n["--persona-surface"],n["--persona-approval-border"]=n["--persona-components-approval-requested-border"]??n["--persona-border"],n["--persona-approval-text"]=n["--persona-components-approval-requested-text"]??n["--persona-palette-colors-gray-900"],n["--persona-approval-shadow"]=n["--persona-components-approval-requested-shadow"]??"0 1px 2px 0 rgba(11, 11, 11, 0.06), 0 2px 8px 0 rgba(11, 11, 11, 0.04)",n["--persona-approval-approve-bg"]=n["--persona-components-approval-approve-background"]??n["--persona-button-primary-bg"],n["--persona-approval-deny-bg"]=n["--persona-components-approval-deny-background"]??n["--persona-container"],n["--persona-attachment-image-bg"]=n["--persona-components-attachment-image-background"]??n["--persona-palette-colors-gray-100"],n["--persona-attachment-image-border"]=n["--persona-components-attachment-image-border"]??n["--persona-palette-colors-gray-200"],n["--persona-font-family"]=n["--persona-semantic-typography-fontFamily"]??n["--persona-palette-typography-fontFamily-sans"],n["--persona-font-size"]=n["--persona-semantic-typography-fontSize"]??n["--persona-palette-typography-fontSize-base"],n["--persona-font-weight"]=n["--persona-semantic-typography-fontWeight"]??n["--persona-palette-typography-fontWeight-normal"],n["--persona-line-height"]=n["--persona-semantic-typography-lineHeight"]??n["--persona-palette-typography-lineHeight-normal"],n["--persona-input-font-family"]=n["--persona-font-family"],n["--persona-input-font-weight"]=n["--persona-font-weight"],n["--persona-radius-sm"]=n["--persona-palette-radius-sm"]??"0.125rem",n["--persona-radius-md"]=n["--persona-palette-radius-md"]??"0.375rem",n["--persona-radius-lg"]=n["--persona-palette-radius-lg"]??"0.5rem",n["--persona-radius-xl"]=n["--persona-palette-radius-xl"]??"0.75rem",n["--persona-radius-full"]=n["--persona-palette-radius-full"]??"9999px",n["--persona-launcher-radius"]=n["--persona-components-launcher-borderRadius"]??n["--persona-palette-radius-full"]??"9999px",n["--persona-launcher-bg"]=n["--persona-components-launcher-background"]??n["--persona-primary"],n["--persona-launcher-fg"]=n["--persona-components-launcher-foreground"]??n["--persona-text-inverse"],n["--persona-launcher-border"]=n["--persona-components-launcher-border"]??n["--persona-border"],n["--persona-button-primary-bg"]=n["--persona-components-button-primary-background"]??n["--persona-primary"],n["--persona-button-primary-fg"]=n["--persona-components-button-primary-foreground"]??n["--persona-text-inverse"],n["--persona-button-radius"]=n["--persona-components-button-primary-borderRadius"]??n["--persona-palette-radius-full"]??"9999px",n["--persona-button-ghost-bg"]=n["--persona-components-button-ghost-background"]??"transparent",n["--persona-button-ghost-fg"]=n["--persona-components-button-ghost-foreground"]??n["--persona-text"],n["--persona-button-ghost-radius"]=n["--persona-components-button-ghost-borderRadius"]??n["--persona-radius-md"]??"0.375rem",n["--persona-button-ghost-hover-bg"]=n["--persona-components-button-ghost-hoverBackground"]??"rgba(0, 0, 0, 0.05)",n["--persona-panel-radius"]=n["--persona-components-panel-borderRadius"]??n["--persona-radius-xl"]??"0.75rem",n["--persona-panel-border"]=n["--persona-components-panel-border"]??`1px solid ${n["--persona-border"]}`,n["--persona-panel-shadow"]=n["--persona-components-panel-shadow"]??n["--persona-palette-shadows-xl"]??"0 25px 50px -12px rgba(0, 0, 0, 0.25)",n["--persona-panel-inset"]=n["--persona-components-panel-inset"]??Pa,n["--persona-panel-canvas-bg"]=n["--persona-components-panel-canvasBackground"]??Ia,n["--persona-launcher-shadow"]=n["--persona-components-launcher-shadow"]??"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)",n["--persona-input-radius"]=n["--persona-components-input-borderRadius"]??n["--persona-radius-lg"]??"0.5rem",n["--persona-message-user-radius"]=n["--persona-components-message-user-borderRadius"]??n["--persona-radius-lg"]??"0.5rem",n["--persona-message-assistant-radius"]=n["--persona-components-message-assistant-borderRadius"]??n["--persona-radius-lg"]??"0.5rem",n["--persona-header-bg"]=n["--persona-components-header-background"]??n["--persona-surface"],n["--persona-header-border"]=n["--persona-components-header-border"]??n["--persona-divider"],n["--persona-header-icon-bg"]=n["--persona-components-header-iconBackground"]??n["--persona-primary"],n["--persona-header-icon-fg"]=n["--persona-components-header-iconForeground"]??n["--persona-text-inverse"],n["--persona-header-title-fg"]=n["--persona-components-header-title-color"]??n["--persona-components-header-titleForeground"]??n["--persona-primary"],n["--persona-header-subtitle-fg"]=n["--persona-components-header-subtitle-color"]??n["--persona-components-header-subtitleForeground"]??n["--persona-text-muted"],n["--persona-header-action-icon-fg"]=n["--persona-components-header-actionIconForeground"]??n["--persona-muted"];let o=t.components?.header;o?.shadow&&(n["--persona-header-shadow"]=o.shadow),o?.borderBottom&&(n["--persona-header-border-bottom"]=o.borderBottom),n["--persona-intro-card-bg"]=n["--persona-components-introCard-background"]??"transparent",n["--persona-intro-card-radius"]=n["--persona-components-introCard-borderRadius"]??"1rem";let r=n["--persona-components-introCard-background"],s=n["--persona-components-introCard-shadow"],i=(!r||r==="transparent"||r==="none")&&(!s||s==="none"),l=n["--persona-components-introCard-padding"]??"1.5rem";n["--persona-intro-card-padding"]=i&&l==="1.5rem"?"1.5rem 0":l,n["--persona-intro-card-shadow"]=n["--persona-components-introCard-shadow"]??"none",n["--persona-intro-card-border"]=n["--persona-components-introCard-border"]??"none",n["--persona-input-background"]=n["--persona-components-input-background"]??n["--persona-surface"],n["--persona-input-placeholder"]=n["--persona-components-input-placeholder"]??n["--persona-text-muted"],n["--persona-message-user-bg"]=n["--persona-components-message-user-background"]??n["--persona-accent"],n["--persona-message-user-text"]=n["--persona-components-message-user-text"]??n["--persona-text-inverse"],n["--persona-message-user-shadow"]=n["--persona-components-message-user-shadow"]??"0 5px 15px rgba(15, 23, 42, 0.08)",n["--persona-message-assistant-bg"]=n["--persona-components-message-assistant-background"]??n["--persona-surface"],n["--persona-message-assistant-text"]=n["--persona-components-message-assistant-text"]??n["--persona-text"],n["--persona-message-assistant-border"]=n["--persona-components-message-assistant-border"]??n["--persona-border"],n["--persona-message-assistant-shadow"]=n["--persona-components-message-assistant-shadow"]??"0 1px 2px 0 rgb(0 0 0 / 0.05)",n["--persona-scroll-to-bottom-bg"]=n["--persona-components-scrollToBottom-background"]??n["--persona-button-primary-bg"]??n["--persona-accent"],n["--persona-scroll-to-bottom-fg"]=n["--persona-components-scrollToBottom-foreground"]??n["--persona-button-primary-fg"]??n["--persona-text-inverse"],n["--persona-scroll-to-bottom-border"]=n["--persona-components-scrollToBottom-border"]??n["--persona-primary"],n["--persona-scroll-to-bottom-size"]=n["--persona-components-scrollToBottom-size"]??"40px",n["--persona-scroll-to-bottom-radius"]=n["--persona-components-scrollToBottom-borderRadius"]??n["--persona-button-radius"]??n["--persona-radius-full"]??"9999px",n["--persona-scroll-to-bottom-shadow"]=n["--persona-components-scrollToBottom-shadow"]??n["--persona-palette-shadows-sm"]??"0 1px 2px 0 rgb(0 0 0 / 0.05)",n["--persona-scroll-to-bottom-padding"]=n["--persona-components-scrollToBottom-padding"]??"0.5rem 0.875rem",n["--persona-scroll-to-bottom-gap"]=n["--persona-components-scrollToBottom-gap"]??"0.5rem",n["--persona-scroll-to-bottom-font-size"]=n["--persona-components-scrollToBottom-fontSize"]??n["--persona-palette-typography-fontSize-sm"]??"0.875rem",n["--persona-scroll-to-bottom-icon-size"]=n["--persona-components-scrollToBottom-iconSize"]??"14px",n["--persona-tool-bubble-shadow"]=n["--persona-components-toolBubble-shadow"]??"0 5px 15px rgba(15, 23, 42, 0.08)",n["--persona-reasoning-bubble-shadow"]=n["--persona-components-reasoningBubble-shadow"]??"0 5px 15px rgba(15, 23, 42, 0.08)",n["--persona-composer-shadow"]=n["--persona-components-composer-shadow"]??"none",n["--persona-composer-padding"]=n["--persona-components-composer-padding"]??"0.75rem 1rem",n["--persona-composer-gap"]=n["--persona-components-composer-gap"]??"0.5rem",n["--persona-composer-font-size"]=n["--persona-components-composer-fontSize"]??"0.875rem",n["--persona-composer-line-height"]=n["--persona-components-composer-lineHeight"]??"1.25rem",n["--persona-composer-border-color"]=n["--persona-components-composer-borderColor"]??n["--persona-border"]??"#e5e7eb",n["--persona-scrollbar-thumb"]=n["--persona-components-scrollbar-thumb"]??n["--persona-border"]??"#e5e7eb",n["--persona-scrollbar-track"]=n["--persona-components-scrollbar-track"]??"transparent",n["--persona-md-inline-code-bg"]=n["--persona-components-markdown-inlineCode-background"]??n["--persona-container"],n["--persona-md-inline-code-color"]=n["--persona-components-markdown-inlineCode-foreground"]??n["--persona-text"],n["--persona-md-link-color"]=n["--persona-components-markdown-link-foreground"]??n["--persona-accent"]??"#0f0f0f";let p=n["--persona-components-markdown-heading-h1-fontSize"];p&&(n["--persona-md-h1-size"]=p);let c=n["--persona-components-markdown-heading-h1-fontWeight"];c&&(n["--persona-md-h1-weight"]=c);let d=n["--persona-components-markdown-heading-h2-fontSize"];d&&(n["--persona-md-h2-size"]=d);let g=n["--persona-components-markdown-heading-h2-fontWeight"];g&&(n["--persona-md-h2-weight"]=g);let b=n["--persona-components-markdown-prose-fontFamily"];b&&b!=="inherit"&&(n["--persona-md-prose-font-family"]=b),n["--persona-md-code-block-bg"]=n["--persona-components-markdown-codeBlock-background"]??n["--persona-container"],n["--persona-md-code-block-border-color"]=n["--persona-components-markdown-codeBlock-borderColor"]??n["--persona-border"],n["--persona-md-code-block-text-color"]=n["--persona-components-markdown-codeBlock-textColor"]??"inherit",n["--persona-md-code-block-border-radius"]=n["--persona-components-markdown-codeBlock-borderRadius"]??n["--persona-radius-md"]??"0.375rem",n["--persona-md-table-header-bg"]=n["--persona-components-markdown-table-headerBackground"]??n["--persona-container"],n["--persona-md-table-border-color"]=n["--persona-components-markdown-table-borderColor"]??n["--persona-border"],n["--persona-md-hr-color"]=n["--persona-components-markdown-hr-color"]??n["--persona-divider"],n["--persona-md-blockquote-border-color"]=n["--persona-components-markdown-blockquote-borderColor"]??n["--persona-palette-colors-gray-900"],n["--persona-md-blockquote-bg"]=n["--persona-components-markdown-blockquote-background"]??"transparent",n["--persona-md-blockquote-text-color"]=n["--persona-components-markdown-blockquote-textColor"]??n["--persona-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"],n["--persona-message-border"]=n["--persona-components-message-border"]??n["--persona-border"];let f=t.components,y=f?.iconButton;y&&(y.background&&(n["--persona-icon-btn-bg"]=y.background),y.border&&(n["--persona-icon-btn-border"]=y.border),y.color&&(n["--persona-icon-btn-color"]=y.color),y.padding&&(n["--persona-icon-btn-padding"]=y.padding),y.borderRadius&&(n["--persona-icon-btn-radius"]=y.borderRadius),y.hoverBackground&&(n["--persona-icon-btn-hover-bg"]=y.hoverBackground),y.hoverColor&&(n["--persona-icon-btn-hover-color"]=y.hoverColor),y.activeBackground&&(n["--persona-icon-btn-active-bg"]=y.activeBackground),y.activeBorder&&(n["--persona-icon-btn-active-border"]=y.activeBorder));let C=f?.labelButton;C&&(C.background&&(n["--persona-label-btn-bg"]=C.background),C.border&&(n["--persona-label-btn-border"]=C.border),C.color&&(n["--persona-label-btn-color"]=C.color),C.padding&&(n["--persona-label-btn-padding"]=C.padding),C.borderRadius&&(n["--persona-label-btn-radius"]=C.borderRadius),C.hoverBackground&&(n["--persona-label-btn-hover-bg"]=C.hoverBackground),C.fontSize&&(n["--persona-label-btn-font-size"]=C.fontSize),C.gap&&(n["--persona-label-btn-gap"]=C.gap));let M=f?.toggleGroup;M&&(M.gap&&(n["--persona-toggle-group-gap"]=M.gap),M.borderRadius&&(n["--persona-toggle-group-radius"]=M.borderRadius));let I=f?.artifact;if(I?.toolbar){let w=I.toolbar;w.iconHoverColor&&(n["--persona-artifact-toolbar-icon-hover-color"]=w.iconHoverColor),w.iconHoverBackground&&(n["--persona-artifact-toolbar-icon-hover-bg"]=w.iconHoverBackground),w.iconPadding&&(n["--persona-artifact-toolbar-icon-padding"]=w.iconPadding),w.iconBorderRadius&&(n["--persona-artifact-toolbar-icon-radius"]=w.iconBorderRadius),w.iconBorder&&(n["--persona-artifact-toolbar-icon-border"]=w.iconBorder),w.toggleGroupGap&&(n["--persona-artifact-toolbar-toggle-group-gap"]=w.toggleGroupGap),w.toggleBorderRadius&&(n["--persona-artifact-toolbar-toggle-radius"]=w.toggleBorderRadius),w.toggleGroupPadding&&(n["--persona-artifact-toolbar-toggle-group-padding"]=w.toggleGroupPadding),w.toggleGroupBorder&&(n["--persona-artifact-toolbar-toggle-group-border"]=w.toggleGroupBorder),w.toggleGroupBorderRadius&&(n["--persona-artifact-toolbar-toggle-group-radius"]=w.toggleGroupBorderRadius),w.toggleGroupBackground&&(n["--persona-artifact-toolbar-toggle-group-bg"]=tn(t,w.toggleGroupBackground)??w.toggleGroupBackground),w.copyBackground&&(n["--persona-artifact-toolbar-copy-bg"]=w.copyBackground),w.copyBorder&&(n["--persona-artifact-toolbar-copy-border"]=w.copyBorder),w.copyColor&&(n["--persona-artifact-toolbar-copy-color"]=w.copyColor),w.copyBorderRadius&&(n["--persona-artifact-toolbar-copy-radius"]=w.copyBorderRadius),w.copyPadding&&(n["--persona-artifact-toolbar-copy-padding"]=w.copyPadding),w.copyMenuBackground&&(n["--persona-artifact-toolbar-copy-menu-bg"]=w.copyMenuBackground,n["--persona-dropdown-bg"]=n["--persona-dropdown-bg"]??w.copyMenuBackground),w.copyMenuBorder&&(n["--persona-artifact-toolbar-copy-menu-border"]=w.copyMenuBorder,n["--persona-dropdown-border"]=n["--persona-dropdown-border"]??w.copyMenuBorder),w.copyMenuShadow&&(n["--persona-artifact-toolbar-copy-menu-shadow"]=w.copyMenuShadow,n["--persona-dropdown-shadow"]=n["--persona-dropdown-shadow"]??w.copyMenuShadow),w.copyMenuBorderRadius&&(n["--persona-artifact-toolbar-copy-menu-radius"]=w.copyMenuBorderRadius,n["--persona-dropdown-radius"]=n["--persona-dropdown-radius"]??w.copyMenuBorderRadius),w.copyMenuItemHoverBackground&&(n["--persona-artifact-toolbar-copy-menu-item-hover-bg"]=w.copyMenuItemHoverBackground,n["--persona-dropdown-item-hover-bg"]=n["--persona-dropdown-item-hover-bg"]??w.copyMenuItemHoverBackground),w.iconBackground&&(n["--persona-artifact-toolbar-icon-bg"]=w.iconBackground),w.toolbarBorder&&(n["--persona-artifact-toolbar-border"]=w.toolbarBorder)}if(I?.tab){let w=I.tab;w.background&&(n["--persona-artifact-tab-bg"]=w.background),w.activeBackground&&(n["--persona-artifact-tab-active-bg"]=w.activeBackground),w.activeBorder&&(n["--persona-artifact-tab-active-border"]=w.activeBorder),w.borderRadius&&(n["--persona-artifact-tab-radius"]=w.borderRadius),w.textColor&&(n["--persona-artifact-tab-color"]=w.textColor),w.hoverBackground&&(n["--persona-artifact-tab-hover-bg"]=w.hoverBackground),w.listBackground&&(n["--persona-artifact-tab-list-bg"]=w.listBackground),w.listBorderColor&&(n["--persona-artifact-tab-list-border-color"]=w.listBorderColor),w.listPadding&&(n["--persona-artifact-tab-list-padding"]=w.listPadding)}if(I?.pane){let w=I.pane;if(w.toolbarBackground){let N=tn(t,w.toolbarBackground)??w.toolbarBackground;n["--persona-artifact-toolbar-bg"]=N}}if(I?.card){let w=I.card;w.background&&(n["--persona-artifact-card-bg"]=w.background),w.border&&(n["--persona-artifact-card-border"]=w.border),w.borderRadius&&(n["--persona-artifact-card-radius"]=w.borderRadius),w.hoverBackground&&(n["--persona-artifact-card-hover-bg"]=w.hoverBackground),w.hoverBorderColor&&(n["--persona-artifact-card-hover-border"]=w.hoverBorderColor)}if(I?.inline){let w=I.inline;w.background&&(n["--persona-artifact-inline-bg"]=tn(t,w.background)??w.background),w.border&&(n["--persona-artifact-inline-border"]=w.border),w.borderRadius&&(n["--persona-artifact-inline-radius"]=w.borderRadius),w.chromeBackground&&(n["--persona-artifact-inline-chrome-bg"]=tn(t,w.chromeBackground)??w.chromeBackground),w.chromeBorder&&(n["--persona-artifact-inline-chrome-border"]=tn(t,w.chromeBorder)??w.chromeBorder),w.titleColor&&(n["--persona-artifact-inline-title-color"]=tn(t,w.titleColor)??w.titleColor),w.mutedColor&&(n["--persona-artifact-inline-muted-color"]=tn(t,w.mutedColor)??w.mutedColor),w.frameHeight&&(n["--persona-artifact-inline-frame-height"]=w.frameHeight)}let S=f?.code;S&&(S.keywordColor&&(n["--persona-code-keyword-color"]=S.keywordColor),S.stringColor&&(n["--persona-code-string-color"]=S.stringColor),S.commentColor&&(n["--persona-code-comment-color"]=S.commentColor),S.numberColor&&(n["--persona-code-number-color"]=S.numberColor),S.tagColor&&(n["--persona-code-tag-color"]=S.tagColor),S.attrColor&&(n["--persona-code-attr-color"]=S.attrColor),S.propertyColor&&(n["--persona-code-property-color"]=S.propertyColor),S.lineNumberColor&&(n["--persona-code-line-number-color"]=S.lineNumberColor),S.gutterBorderColor&&(n["--persona-code-gutter-border-color"]=S.gutterBorderColor),S.background&&(n["--persona-code-bg"]=tn(t,S.background)??S.background));let E=n["--persona-surface"],L=n["--persona-container"],D=n["--persona-palette-colors-gray-100"]??"#f3f4f6",z=n["--persona-palette-colors-gray-200"]??"#e5e7eb",$=n["--persona-palette-colors-gray-300"]??"#d1d5db",F=!L||L===E,B=F?D:L,H=F?z:L;return n["--persona-icon-btn-hover-bg"]=n["--persona-icon-btn-hover-bg"]??B,n["--persona-icon-btn-active-bg"]=n["--persona-icon-btn-active-bg"]??H,F&&(n["--persona-icon-btn-active-border"]=n["--persona-icon-btn-active-border"]??$),n["--persona-label-btn-hover-bg"]=n["--persona-label-btn-hover-bg"]??B,n["--persona-artifact-tab-hover-bg"]=n["--persona-artifact-tab-hover-bg"]??B,n["--persona-artifact-card-hover-bg"]=n["--persona-artifact-card-hover-bg"]??B,n}var Sv={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"}}},yf=t=>{if(!(!t||typeof t!="object"||Array.isArray(t)))return t},zc=()=>typeof document<"u"&&document.documentElement.classList.contains("dark")||typeof window<"u"&&window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light",Mv=t=>{let e=t?.colorScheme??"light";return e==="light"?"light":e==="dark"?"dark":zc()},vf=t=>Mv(t),Tv=t=>_r(t),Ev=t=>_r({...t,palette:{...t?.palette,colors:{...Sv.colors,...t?.palette?.colors}}},{validate:!1}),$r=t=>{let e=vf(t),n=yf(t?.theme),o=yf(t?.darkTheme);return e==="dark"?Ev(Gs(n??{},o??{})):Tv(n)},kv=t=>bf(t),Qs=(t,e)=>{let n=$r(e),o=kv(n);for(let[r,s]of Object.entries(o))t.style.setProperty(r,s);t.setAttribute("data-persona-color-scheme",vf(e))},Ra=t=>{let e=[];if(typeof document<"u"&&typeof MutationObserver<"u"){let n=new MutationObserver(()=>{t(zc())});n.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),e.push(()=>n.disconnect())}if(typeof window<"u"&&window.matchMedia){let n=window.matchMedia("(prefers-color-scheme: dark)"),o=()=>t(zc());n.addEventListener?(n.addEventListener("change",o),e.push(()=>n.removeEventListener("change",o))):n.addListener&&(n.addListener(o),e.push(()=>n.removeListener(o)))}return()=>{e.forEach(n=>n())}};xt();Ye();var To=(t,e)=>t?.layout?.contentMaxWidth??(e?t?.launcher?.composerBar?.contentMaxWidth??"720px":"768px");function Fn(t){let e=String(t).split(/[\\/]/);return e[e.length-1]??""}function xf(t){let e=Fn(t),n=e.lastIndexOf(".");return n<=0?"":e.slice(n+1).toLowerCase()}function Wa(t){if(typeof t!="string")return"";let e=t.indexOf(`
|
|
198
198
|
`);if(e===-1||!t.slice(0,e).startsWith("```"))return t;let o=t.slice(e+1),r=o.lastIndexOf(`
|
|
199
|
-
`);return(r===-1?o:o.slice(0,r)).split("`\u200B``").join("```")}function
|
|
200
|
-
`).length,
|
|
199
|
+
`);return(r===-1?o:o.slice(0,r)).split("`\u200B``").join("```")}function er(t){let e=xf(t.path);if(e)return e==="html"||e==="htm"?"html":e==="svg"?"svg":e==="md"||e==="mdx"?"markdown":"other";let n=(t.mimeType||"").toLowerCase();return n.includes("html")?"html":n.includes("svg")?"svg":n.includes("markdown")?"markdown":"other"}function Eo(t){switch(er(t)){case"html":return"HTML";case"svg":return"SVG";case"markdown":return"Markdown";default:{let e=xf(t.path);return e?e.toUpperCase():"File"}}}function wf(t){let e=t.markdown??"";return t.file?{filename:Fn(t.file.path)||"artifact",mime:t.file.mimeType||"application/octet-stream",content:Wa(e)}:{filename:`${t.title||"artifact"}.md`,mime:"text/markdown",content:e}}Ye();Ye();var Uc="http://www.w3.org/2000/svg";function Cf(t){let e=document.createElementNS(Uc,"svg");e.setAttribute("class",Bn("persona-spinner",t)),e.setAttribute("viewBox","0 0 24 24"),e.setAttribute("aria-hidden","true"),e.setAttribute("focusable","false");let n=document.createElementNS(Uc,"circle");n.setAttribute("class","persona-spinner-track"),n.setAttribute("cx","12"),n.setAttribute("cy","12"),n.setAttribute("r","9");let o=document.createElementNS(Uc,"circle");return o.setAttribute("class","persona-spinner-arc"),o.setAttribute("cx","12"),o.setAttribute("cy","12"),o.setAttribute("r","9"),e.appendChild(n),e.appendChild(o),e}Ye();Ye();var ko=(t,e,n)=>{let o=n;for(let r of e){let s=v("span","persona-tool-char");s.style.setProperty("--char-index",String(o)),s.textContent=r===" "?"\xA0":r,t.appendChild(s),o++}return o};function Af(t,e,n){let o=n?.loadingAnimation??"shimmer",r=n?.loadingAnimationDuration??2e3;if(o==="none"){t.textContent=e;return}if(o==="pulse"){t.setAttribute("data-preserve-animation","true"),t.classList.add("persona-tool-loading-pulse"),t.style.setProperty("--persona-tool-anim-duration",`${r}ms`),t.textContent=e;return}t.setAttribute("data-preserve-animation","true"),t.classList.add(`persona-tool-loading-${o}`),t.style.setProperty("--persona-tool-anim-duration",`${r}ms`),o==="shimmer-color"&&(n?.loadingAnimationColor&&t.style.setProperty("--persona-tool-anim-color",n.loadingAnimationColor),n?.loadingAnimationSecondaryColor&&t.style.setProperty("--persona-tool-anim-secondary-color",n.loadingAnimationSecondaryColor)),ko(t,e,0)}var jc="persona-artifact-status-label",Sf="persona-artifact-status-detail",Mf="data-artifact-status-label",Vc=new Map,Tf=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now();function zr(t){t&&Vc.delete(t)}function Lv(t){let e=t.artifactType==="markdown"?t.file:void 0;return e?Eo(e):t.artifactType==="component"?"Component":"Document"}function Ur(t,e,n){let o=Lv(t),r=`Generating ${o.toLowerCase()}...`,s=e?.statusLabel;if(typeof s=="string")return{label:s};if(typeof s!="function")return{label:r};let i=t.id,l=Vc.get(i);t.status!=="complete"&&l===void 0&&(l=Tf(),Vc.set(i,l));let p=l===void 0?0:Math.max(0,Tf()-l),c=t.artifactType==="component",d=!c&&typeof t.markdown=="string"?t.markdown:"",g=c?0:d.length,b=c||d===""?0:d.split(`
|
|
200
|
+
`).length,f=t.artifactType==="markdown"?t.file:void 0,y={artifactId:i,artifactType:t.artifactType,title:t.title,typeLabel:o,file:f,chars:g,lines:b,elapsedMs:p,content:()=>c?"":d,surface:n};try{let C=s(y);return typeof C=="string"?{label:C}:C&&typeof C=="object"&&typeof C.label=="string"?{label:C.label,detail:typeof C.detail=="string"?C.detail:void 0}:{label:r}}catch{return{label:r}}}function Pv(t){t.className=jc,t.removeAttribute("data-preserve-animation"),t.style.removeProperty("--persona-tool-anim-duration"),t.style.removeProperty("--persona-tool-anim-color"),t.style.removeProperty("--persona-tool-anim-secondary-color"),t.replaceChildren()}function tr(t,e,n){let o=t.querySelector(`:scope > .${jc}`);o||(o=v("span",jc),t.appendChild(o)),o.getAttribute(Mf)!==e.label&&(Pv(o),Af(o,e.label,n),o.setAttribute(Mf,e.label));let r=t.querySelector(`:scope > .${Sf}`),s=e.detail;s?(r||(r=v("span",Sf),t.appendChild(r)),r.textContent!==s&&(r.textContent=s)):r&&r.remove()}Ye();var Iv={keyword:"persona-code-token-keyword",string:"persona-code-token-string",comment:"persona-code-token-comment",number:"persona-code-token-number",tag:"persona-code-token-tag",attr:"persona-code-token-attr",property:"persona-code-token-property"},Rv=15e4,Ha={html:"html",htm:"html",xhtml:"html",xml:"html",svg:"html",css:"css",js:"js",jsx:"js",mjs:"js",cjs:"js",ts:"js",tsx:"js",mts:"js",cts:"js",javascript:"js",typescript:"js",ecmascript:"js",json:"json",jsonc:"json",json5:"json"};function Wv(t,e){let n=(t||"").trim().toLowerCase();if(n&&Ha[n])return Ha[n];if(e){let o=e.lastIndexOf(".");if(o>=0){let r=e.slice(o+1).toLowerCase();if(Ha[r])return Ha[r]}}return null}function Ba(t,e){let n=[],o=0,r=0,s=i=>{i>r&&n.push({type:"plain",value:t.slice(r,i)})};for(;o<t.length;){let i=!1;for(let l of e){l.re.lastIndex=o;let p=l.re.exec(t);if(p&&p.index===o&&p[0].length>0){s(o);let c=l.map?l.map(p[0]):l.type;n.push({type:c,value:p[0]}),o+=p[0].length,r=o,i=!0;break}}i||(o+=1)}return s(t.length),n}var Hv=new Set(["abstract","any","as","async","await","boolean","break","case","catch","class","const","continue","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","instanceof","interface","keyof","let","namespace","never","new","null","number","object","of","private","protected","public","readonly","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unknown","var","void","while","yield"]),Bv=[{type:"comment",re:/\/\/[^\n]*/y},{type:"comment",re:/\/\*[\s\S]*?\*\//y},{type:"string",re:/`(?:\\[\s\S]|[^\\`])*`/y},{type:"string",re:/"(?:\\.|[^"\\\n])*"/y},{type:"string",re:/'(?:\\.|[^'\\\n])*'/y},{type:"number",re:/0[xX][0-9a-fA-F]+|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y},{type:"plain",re:/[A-Za-z_$][\w$]*/y,map:t=>Hv.has(t)?"keyword":"plain"}];function Ef(t){return Ba(t,Bv)}var Dv=[{type:"string",re:/"(?:\\.|[^"\\])*"/y},{type:"number",re:/-?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y},{type:"plain",re:/[A-Za-z_]\w*/y,map:t=>t==="true"||t==="false"||t==="null"?"keyword":"plain"}];function Ov(t){let e=Ba(t,Dv);for(let n=0;n<e.length;n+=1){if(e[n].type!=="string")continue;let o=n+1;for(;o<e.length&&e[o].value.trim()==="";)o+=1;let r=e[o];r&&r.value.replace(/^\s*/,"").startsWith(":")&&(e[n].type="property")}return e}var Nv=[{type:"comment",re:/\/\*[\s\S]*?\*\//y},{type:"string",re:/"(?:\\.|[^"\\\n])*"/y},{type:"string",re:/'(?:\\.|[^'\\\n])*'/y},{type:"keyword",re:/@[A-Za-z-]+/y},{type:"number",re:/#[0-9a-fA-F]{3,8}\b/y},{type:"number",re:/-?(?:\d+\.?\d*|\.\d+)(?:[a-z%]+)?/y},{type:"plain",re:/[A-Za-z_-][\w-]*/y}];function kf(t){let e=Ba(t,Nv),n="";for(let o=0;o<e.length;o+=1){let r=e[o];if(r.type==="plain"&&/^[A-Za-z_-][\w-]*$/.test(r.value)){let i=o+1;for(;i<e.length&&e[i].value.trim()==="";)i+=1;let l=e[i];l&&l.value.replace(/^\s*/,"").startsWith(":")&&(n===""||n==="{"||n==="}"||n===";"||n===",")&&(r.type="property")}let s=r.value.replace(/\s+$/,"");s&&(n=s[s.length-1])}return e}var Fv=[{type:"tag",re:/<\/?\s*[A-Za-z][\w:-]*/y},{type:"string",re:/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/y},{type:"attr",re:/[A-Za-z_:@][\w:.-]*(?=\s*=)/y},{type:"attr",re:/[A-Za-z_:@][\w:.-]*/y},{type:"tag",re:/\/?>/y}];function _v(t){let e=[],n=(s,i)=>{i&&e.push({type:s,value:i})},o=t.length,r=0;for(;r<o;){if(t.startsWith("<!--",r)){let i=t.indexOf("-->",r+4),l=i===-1?o:i+3;n("comment",t.slice(r,l)),r=l;continue}if(t[r]==="<"&&t[r+1]==="!"){let i=t.indexOf(">",r),l=i===-1?o:i+1;n("tag",t.slice(r,l)),r=l;continue}if(t[r]==="<"&&/[A-Za-z/]/.test(t[r+1]||"")){let i=t.indexOf(">",r),l=i===-1?o:i+1,p=t.slice(r,l);for(let d of Ba(p,Fv))e.push(d);r=l;let c=/^<\s*(script|style)\b/i.exec(p);if(c&&!/\/>\s*$/.test(p)){let d=c[1].toLowerCase(),b=new RegExp("</\\s*"+d+"\\s*>","i").exec(t.slice(r)),f=b?r+b.index:o,y=t.slice(r,f),C=d==="script"?Ef(y):kf(y);for(let M of C)e.push(M);r=f}continue}let s=t.indexOf("<",r);if(s===r)n("plain",t[r]),r+=1;else{let i=s===-1?o:s;n("plain",t.slice(r,i)),r=i}}return e}function $v(t,e){switch(e){case"html":return _v(t);case"css":return kf(t);case"js":return Ef(t);case"json":return Ov(t)}}function zv(t){let e=Nu(),n=v("span","persona-code-line"),o=(r,s)=>{if(!s)return;let i=Iv[r];if(i){let l=v("span",i);l.textContent=s,n.appendChild(l)}else n.appendChild(document.createTextNode(s))};for(let r of t){let s=r.value.split(`
|
|
201
201
|
`);for(let i=0;i<s.length;i+=1)i>0&&(e.appendChild(n),e.appendChild(document.createTextNode(`
|
|
202
|
-
`)),n=v("span","persona-code-line")),o(r.type,s[i])}return n.childNodes.length>0?e.appendChild(n):e.lastChild||e.appendChild(n),e}function Lg(t,e,n){let o=t.length<=mb?hb(e,n):null,r=o?Sb(t,o):[{type:"plain",value:t}];return Mb(r)}Je();wt();Je();wt();function Mr(t){let{items:e,onSelect:n,anchor:o,position:r="bottom-left",portal:s}=t,i=v("div","persona-dropdown-menu persona-hidden");i.setAttribute("role","menu"),i.setAttribute("data-persona-theme-zone","dropdown"),s?(i.style.position="fixed",i.style.zIndex=String(Ji)):(i.style.position="absolute",i.style.top="100%",i.style.marginTop="4px",r==="bottom-right"?i.style.right="0":i.style.left="0");for(let g of e){if(g.dividerBefore){let L=document.createElement("hr");i.appendChild(L)}let h=document.createElement("button");if(h.type="button",h.setAttribute("role","menuitem"),h.setAttribute("data-dropdown-item-id",g.id),g.destructive&&h.setAttribute("data-destructive",""),g.icon){let L=ae(g.icon,16,"currentColor",1.5);L&&h.appendChild(L)}let C=document.createElement("span");C.textContent=g.label,h.appendChild(C),h.addEventListener("click",L=>{L.stopPropagation(),d(),n(g.id)}),i.appendChild(h)}let l=null;function p(){if(!s)return;let g=o.getBoundingClientRect();i.style.top=`${g.bottom+4}px`,r==="bottom-right"?(i.style.right=`${window.innerWidth-g.right}px`,i.style.left="auto"):(i.style.left=`${g.left}px`,i.style.right="auto")}function c(){p(),i.classList.remove("persona-hidden"),requestAnimationFrame(()=>{let g=h=>{!i.contains(h.target)&&!o.contains(h.target)&&d()};document.addEventListener("click",g,!0),l=()=>document.removeEventListener("click",g,!0)})}function d(){i.classList.add("persona-hidden"),l?.(),l=null}function u(){i.classList.contains("persona-hidden")?c():d()}function b(){d(),i.remove()}return s&&s.appendChild(i),{element:i,show:c,hide:d,toggle:u,destroy:b}}function Ht(t){let{icon:e,label:n,size:o,strokeWidth:r,className:s,onClick:i,aria:l}=t,p=v("button","persona-icon-btn"+(s?" "+s:""));p.type="button",p.setAttribute("aria-label",n),p.title=n;let c=ae(e,o??16,"currentColor",r??2);if(c&&p.appendChild(c),i&&p.addEventListener("click",i),l)for(let[d,u]of Object.entries(l))p.setAttribute(d,u);return p}function zo(t){let{icon:e,label:n,variant:o="default",size:r="sm",iconSize:s,className:i,onClick:l,aria:p}=t,c="persona-label-btn";o!=="default"&&(c+=" persona-label-btn--"+o),c+=" persona-label-btn--"+r,i&&(c+=" "+i);let d=v("button",c);if(d.type="button",d.setAttribute("aria-label",n),e){let b=ae(e,s??14,"currentColor",2);b&&d.appendChild(b)}let u=v("span");if(u.textContent=n,d.appendChild(u),l&&d.addEventListener("click",l),p)for(let[b,g]of Object.entries(p))d.setAttribute(b,g);return d}function ha(t){let{items:e,selectedId:n,onSelect:o,className:r}=t,s=v("div","persona-toggle-group"+(r?" "+r:""));s.setAttribute("role","group");let i=n,l=[];function p(){for(let d of l)d.btn.setAttribute("aria-pressed",d.id===i?"true":"false")}for(let d of e){let u;d.icon?u=Ht({icon:d.icon,label:d.label,className:d.className,onClick:()=>{i=d.id,p(),o(d.id)}}):(u=v("button","persona-icon-btn"+(d.className?" "+d.className:"")),u.type="button",u.setAttribute("aria-label",d.label),u.title=d.label,u.textContent=d.label,u.addEventListener("click",()=>{i=d.id,p(),o(d.id)})),u.setAttribute("aria-pressed",d.id===i?"true":"false"),l.push({id:d.id,btn:u}),s.appendChild(u)}function c(d){i=d,p()}return{element:s,setSelected:c}}function Pg(t){let{label:e,icon:n="chevron-down",menuItems:o,onSelect:r,position:s="bottom-left",portal:i,className:l,hover:p}=t,c=v("div","persona-combo-btn"+(l?" "+l:""));c.style.position="relative",c.style.display="inline-flex",c.style.alignItems="center",c.style.cursor="pointer",c.setAttribute("role","button"),c.setAttribute("tabindex","0"),c.setAttribute("aria-haspopup","true"),c.setAttribute("aria-expanded","false"),c.setAttribute("aria-label",e);let d=v("span","persona-combo-btn-label");d.textContent=e,c.appendChild(d);let u=ae(n,14,"currentColor",2);u&&(u.style.marginLeft="4px",u.style.opacity="0.6",c.appendChild(u)),p&&(c.style.borderRadius=p.borderRadius??"10px",c.style.padding=p.padding??"6px 4px 6px 12px",c.style.border="1px solid transparent",c.style.transition="background-color 0.15s ease, border-color 0.15s ease",c.addEventListener("mouseenter",()=>{c.style.backgroundColor=p.background??"",c.style.borderColor=p.border??""}),c.addEventListener("mouseleave",()=>{c.style.backgroundColor="",c.style.borderColor="transparent"}));let b=Mr({items:o,onSelect:g=>{c.setAttribute("aria-expanded","false"),r(g)},anchor:c,position:s,portal:i});return i||c.appendChild(b.element),c.addEventListener("click",g=>{g.stopPropagation();let h=!b.element.classList.contains("persona-hidden");c.setAttribute("aria-expanded",h?"false":"true"),b.toggle()}),c.addEventListener("keydown",g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),c.click())}),{element:c,setLabel:g=>{d.textContent=g,c.setAttribute("aria-label",g)},open:()=>{c.setAttribute("aria-expanded","true"),b.show()},close:()=>{c.setAttribute("aria-expanded","false"),b.hide()},toggle:()=>{let g=!b.element.classList.contains("persona-hidden");c.setAttribute("aria-expanded",g?"false":"true"),b.toggle()},destroy:()=>{b.destroy(),c.remove()}}}Je();var ya="persona-artifact-custom-action-btn";function Tr(t,e){let n=e?.documentChrome??!1,o;if(typeof t.icon=="function"){if(t.showLabel){let r="persona-label-btn persona-label-btn--sm "+ya+(n?" persona-artifact-doc-copy-btn":"");o=v("button",r)}else{let r="persona-icon-btn "+ya+(n?" persona-artifact-doc-icon-btn":"");o=v("button",r)}o.type="button",o.setAttribute("aria-label",t.label),o.title=t.label;try{let r=t.icon();r&&o.appendChild(r)}catch{}if(t.showLabel){let r=v("span");r.textContent=t.label,o.appendChild(r)}}else t.showLabel||!t.icon?o=zo({icon:t.icon,label:t.label,className:ya+(n?" persona-artifact-doc-copy-btn":"")}):o=Ht({icon:t.icon,label:t.label,className:ya+(n?" persona-artifact-doc-icon-btn":"")});return e?.onClick&&o.addEventListener("click",e.onClick),o}function Rs(t){if(!t)return null;let e={artifactId:t.id,title:t.title??"",artifactType:t.artifactType};return t.artifactType==="markdown"?(e.markdown=t.markdown??"",t.file&&(e.file=t.file)):e.jsonPayload=JSON.stringify({component:t.component,props:t.props},null,2),e}function Ig(t,e){let n=t.file&&typeof t.file=="object"&&!Array.isArray(t.file)?t.file:void 0,o=typeof t.title=="string"&&t.title?t.title:"Untitled artifact",r=n?Wn(n.path):o,s=typeof t.artifactId=="string"?t.artifactId:"",i=t.status==="streaming"?"streaming":"complete",l=typeof t.artifactType=="string"?t.artifactType:"markdown",p=t.presentation&&typeof t.presentation=="object"&&!Array.isArray(t.presentation)?t.presentation:void 0,c=n?bo(n):l==="component"?"Component":"Document",d=document.createElement("div");d.className="persona-artifact-card persona-flex persona-w-full persona-max-w-full persona-items-center persona-gap-3 persona-px-4 persona-py-3",d.tabIndex=0,d.setAttribute("role","button"),d.setAttribute("aria-label",`Open ${r} in artifact panel`),s&&d.setAttribute("data-open-artifact",s);let u=document.createElement("div");u.className="persona-flex persona-h-10 persona-w-10 persona-flex-shrink-0 persona-items-center persona-justify-center persona-rounded-lg",u.style.border="1px solid var(--persona-border, #e5e7eb)",u.style.color="var(--persona-muted, #9ca3af)",u.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>';let b=document.createElement("div");b.className="persona-min-w-0 persona-flex-1 persona-flex persona-flex-col persona-gap-0.5";let g=document.createElement("div");g.className="persona-truncate persona-text-sm persona-font-medium",g.style.color="var(--persona-text, #1f2937)",g.textContent=r;let h=document.createElement("div");if(h.className="persona-text-xs persona-flex persona-items-center persona-gap-1.5",h.style.color="var(--persona-muted, #9ca3af)",i==="streaming"){let C=e?.config?.features?.artifacts,L={id:s,artifactType:l==="component"?"component":"markdown",title:o,status:"streaming",...typeof t.markdown=="string"?{markdown:t.markdown}:{},...n?{file:n}:{},...p?{presentation:p}:{}},B=Sr(L,C,"card");$o(h,B,C)}else s&&Ar(s),h.textContent=c;if(b.append(g,h),d.append(u,b),i==="complete"){let C=e?.config?.features?.artifacts?.cardActions;if(C&&C.length>0){let B={artifactId:s||null,title:r,artifactType:l,markdown:typeof t.markdown=="string"?t.markdown:void 0,file:n};for(let k of C)try{if(k.visible===void 0||k.visible(B)){let S=Tr(k);S.setAttribute("data-artifact-custom-action",k.id),S.className=`${S.className} persona-flex-shrink-0`,d.append(S)}}catch{}}let L=zo({label:"Download",className:"persona-flex-shrink-0"});L.title=`Download ${r}`,L.setAttribute("data-download-artifact",s),d.append(L)}return d}var ba=(t,e)=>{let n=e?.config?.features?.artifacts?.renderCard;if(n){let o=typeof t.title=="string"&&t.title?t.title:"Untitled artifact",r=typeof t.artifactId=="string"?t.artifactId:"",s=t.status==="streaming"?"streaming":"complete",i=typeof t.artifactType=="string"?t.artifactType:"markdown",l=n({artifact:{artifactId:r,title:o,artifactType:i,status:s},config:e.config,defaultRenderer:()=>Ig(t,e)});if(l)return l}return Ig(t,e)};Je();wt();var xo=new WeakMap;function cc(t,e,n){if(e.length===0)return;let o=new Map(e.map(r=>[r.id,r]));t.querySelectorAll("[data-artifact-inline]").forEach(r=>{let s=xo.get(r);if(!s)return;let i=o.get(r.getAttribute("data-artifact-inline")??"");i&&s(i,n)})}function Dg(t){return xo.has(t)}function Tb(t){let e=typeof t.artifactId=="string"?t.artifactId:"",n=typeof t.title=="string"&&t.title?t.title:void 0,o=t.status==="streaming"?"streaming":"complete",r=t.presentation&&typeof t.presentation=="object"&&!Array.isArray(t.presentation)?t.presentation:void 0;if(t.artifactType==="component"){let i=t.componentProps,l=i&&typeof i=="object"&&!Array.isArray(i)?i:{};return{id:e,artifactType:"component",title:n,status:o,component:typeof t.component=="string"?t.component:"",props:l,...r?{presentation:r}:{}}}let s=t.file&&typeof t.file=="object"&&!Array.isArray(t.file)?t.file:void 0;return{id:e,artifactType:"markdown",title:n,status:o,markdown:typeof t.markdown=="string"?t.markdown:"",...s?{file:s}:{},...r?{presentation:r}:{}}}function Rg(t){let e=t.artifactType==="markdown"?t.file:void 0,n=e?Wn(e.path):t.title&&t.title.trim()?t.title:"Untitled artifact",o=e?bo(e):t.artifactType==="component"?"Component":"Document";return{title:n,typeLabel:o}}function Eb(t){let e={artifactId:t.id,title:t.title??"",status:t.status,artifactType:t.artifactType};return t.artifactType==="markdown"&&(typeof t.markdown=="string"&&(e.markdown=t.markdown),t.file&&(e.file=t.file)),e}var Wg=180,kb=240,Lb=.8,Pb=300,Ib=500,Rb="cubic-bezier(0.2, 0, 0, 1)",Hg=240,Wb=.35;function Hb(t,e,n){let{swap:o,onSettled:r}=n,s=!1;try{s=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{s=!1}if(!e||!t.isConnected||s||typeof t.animate!="function"){o(),r();return}t.style.height=`${e}px`,t.style.overflow="hidden";let i=[];for(let l of Array.from(t.children))l instanceof HTMLElement&&i.push(l.animate([{opacity:1},{opacity:0}],{duration:Wg,easing:"ease-out",fill:"forwards"}));window.setTimeout(()=>{for(let B of i)B.cancel();o();let l=()=>{t.style.removeProperty("height"),t.style.removeProperty("overflow")};if(!t.isConnected){l(),r();return}t.style.height="auto";let p=t.getBoundingClientRect().height;if(t.style.height=`${e}px`,!p||Math.abs(p-e)<1){l(),r();return}let c=Math.abs(e-p),d=Math.round(Math.min(Ib,Math.max(Pb,kb+c*Lb))),u=Math.round(d*Wb),b=t.firstElementChild instanceof HTMLElement?t.firstElementChild:null,g=b?b.animate([{opacity:0},{opacity:1}],{duration:Hg,delay:u,easing:"ease-out",fill:"backwards"}):null,h=t.animate([{height:`${e}px`},{height:`${p}px`}],{duration:d,easing:Rb});t.style.height=`${p}px`;let C=!1,L=()=>{C||(C=!0,l(),r())};Promise.allSettled([h.finished,g?.finished].filter(Boolean)).then(L),window.setTimeout(L,Math.max(d,u+Hg)+120)},Wg)}function Bb(t){let e=t?.inlineChrome;if(e===!1)return{chromeEnabled:!1,showCopy:!1,showExpand:!1,showViewToggle:!1};let n=typeof e=="object"?e:void 0;return{chromeEnabled:!0,showCopy:n?.showCopy!==!1,showExpand:n?.showExpand!==!1,showViewToggle:n?.showViewToggle!==!1}}var Ws="--persona-artifact-inline-body-height";function Db(t){let e=t?.inlineBody,n=e?.streamingView==="status"?"status":"source",o=e?.viewMode==="source"?"source":"rendered",r=320,s=320,i=e?.height;typeof i=="number"||i==="auto"?(r=i,s=i):i&&typeof i=="object"&&(r=i.streaming??320,s=i.complete??320);let l=e?.overflow==="clip"?"clip":"scroll",p=l==="clip"?!1:e?.followOutput!==!1,c,d,u=e?.fadeMask;u===!0?(c=!0,d=!0):u===!1?(c=!1,d=!1):u&&typeof u=="object"?(c=u.top===!0,d=u.bottom===!0):l==="clip"?(c=!1,d=!0):(c=!0,d=!0);let b=e?.transition==="none"?"none":"auto",g=e?.completeDisplay==="card"?"card":"inline";return{streamingView:n,viewMode:o,streamingHeight:r,completeHeight:s,followOutput:p,overflow:l,fadeTop:c,fadeBottom:d,transition:b,completeDisplay:g}}function Bg(t,e){let n=Tb(t),o=e.config?.features?.artifacts,{chromeEnabled:r,showCopy:s,showExpand:i,showViewToggle:l}=Bb(o),p=o?.inlineActions??[],c=Db(o),d=c.completeDisplay==="card",u=null,b=n,g=v("div","persona-artifact-inline persona-w-full persona-max-w-full");g.setAttribute("data-persona-theme-zone","artifact-inline"),n.id&&g.setAttribute("data-artifact-inline",n.id);let h=J=>ba(Eb(J),e),C=J=>{g.classList.add("persona-artifact-inline--card"),g.style.removeProperty(Ws),g.replaceChildren(h(J)),xo.set(g,ie=>{g.replaceChildren(h(ie))})};if(d&&n.status==="complete")return C(n),g;let L=va(n,{config:e.config,bodyLayout:c,resolveViewMode:()=>u??c.viewMode}),B=v("div","persona-artifact-inline-body");B.appendChild(L.el);let k=J=>{let ie=J.status!=="complete",ee=ie?c.streamingHeight:c.completeHeight,fe=typeof ee=="number";fe?g.style.setProperty(Ws,`${ee}px`):g.style.removeProperty(Ws);let be=!!L.el.querySelector(".persona-code-pre"),he=!!L.el.querySelector("iframe, .persona-artifact-source-window--fixed, .persona-artifact-status-view");B.classList.toggle("persona-artifact-content-flush",be),B.classList.toggle("persona-artifact-inline-body--sized",fe&&he),B.classList.toggle("persona-artifact-inline-body--cap",!ie&&!he&&typeof c.completeHeight=="number")},S=n.status,E=(J,ie)=>{S!=="complete"&&J.status==="complete"?(typeof c.completeHeight=="number"?g.style.setProperty(Ws,`${c.completeHeight}px`):g.style.removeProperty(Ws),Og(B,ie?.suppressTransition?"none":c.transition,J.id,()=>{L.update(J),k(J)})):L.update(J),k(J),S=J.status};k(n);let z=c.overflow==="clip"&&i&&!!n.id;if(z&&(B.setAttribute("data-expand-artifact-inline",n.id),B.setAttribute("role","button"),B.setAttribute("tabindex","0"),B.classList.add("persona-cursor-pointer"),B.setAttribute("aria-label",`Open ${Rg(n).title} in panel`)),!r)return g.appendChild(B),xo.set(g,E),g;let G=v("div","persona-artifact-inline-chrome");G.setAttribute("data-persona-theme-zone","artifact-inline-chrome");let A=v("div","persona-artifact-inline-chrome-lead"),O=v("span","persona-flex persona-items-center persona-flex-shrink-0"),D=ae("file-text",16,"currentColor",2);D&&O.appendChild(D);let W=v("span","persona-artifact-inline-title persona-truncate persona-min-w-0"),P=v("span","persona-artifact-inline-type");A.append(O,W,P);let I=v("div","persona-artifact-inline-chrome-actions"),j=v("span","persona-flex persona-items-center persona-gap-1"),pe=()=>u??c.viewMode,ge=l?ha({items:[{id:"rendered",icon:"eye",label:"Rendered view",className:"persona-artifact-doc-icon-btn persona-artifact-view-btn"},{id:"source",icon:"code-xml",label:"Source",className:"persona-artifact-doc-icon-btn persona-artifact-code-btn"}],selectedId:pe(),className:"persona-artifact-toggle-group persona-flex-shrink-0",onSelect:J=>{let ie=J==="source"?"source":"rendered";ie!==pe()&&(u=ie,L.update(b),k(b))}}):null,se=s?Ht({icon:"copy",label:"Copy",className:"persona-artifact-doc-icon-btn persona-flex-shrink-0"}):null;se&&n.id&&se.setAttribute("data-copy-artifact",n.id);let Y=i?Ht({icon:"maximize",label:"Open in panel",className:"persona-artifact-doc-icon-btn persona-flex-shrink-0"}):null;Y&&n.id&&Y.setAttribute("data-expand-artifact-inline",n.id),I.appendChild(j),ge&&I.appendChild(ge.element),se&&I.appendChild(se),Y&&I.appendChild(Y),G.append(A,I),g.append(G,B);let oe=J=>{let{title:ie,typeLabel:ee}=Rg(J);W.textContent=ie,W.title=ie,z&&B.setAttribute("aria-label",`Open ${ie} in panel`);let fe=J.status!=="complete";if(fe){P.classList.contains("persona-artifact-inline-status")||(P.className="persona-artifact-inline-status",P.removeAttribute("data-preserve-animation"),P.replaceChildren());let be=Sr(J,o,"inline-chrome");$o(P,be,o)}else Ar(J.id),P.className="persona-artifact-inline-type",P.removeAttribute("data-preserve-animation"),P.replaceChildren(),P.textContent=ee;if(se&&se.classList.toggle("persona-hidden",fe),ge){let be=J.artifactType==="markdown"?J.file:void 0,he=!1;if(!fe&&be&&c.viewMode!=="source"){let we=Is(be);we==="markdown"?he=!0:(we==="html"||we==="svg")&&(he=o?.filePreview?.enabled!==!1)}ge.element.classList.toggle("persona-hidden",!he),ge.setSelected(pe())}if(j.replaceChildren(),!fe&&p.length>0){let be=Rs(J);if(be)for(let he of p)try{if(he.visible===void 0||he.visible(be)){let we=Tr(he,{documentChrome:!0});we.setAttribute("data-artifact-custom-action",he.id),we.classList.add("persona-flex-shrink-0"),j.appendChild(we)}}catch{}}};return oe(n),xo.set(g,(J,ie)=>{if(d&&S!=="complete"&&J.status==="complete"){let ee=g.isConnected?g.getBoundingClientRect().height:0;S="complete";let fe=J,be=!1,he=we=>{fe=we,be=!0};xo.set(g,he),Hb(g,ee,{swap:()=>{C(fe),be=!1,xo.set(g,he)},onSettled:()=>{be?C(fe):xo.set(g,we=>{g.replaceChildren(h(we))})}});return}(J.status!=="complete"||J.id!==b.id)&&(u=null),b=J,E(J,ie),oe(J)}),g}var Ng=(t,e)=>{let n=e?.config?.features?.artifacts?.renderInline;if(n){let o=typeof t.title=="string"&&t.title?t.title:"Untitled artifact",r=typeof t.artifactId=="string"?t.artifactId:"",s=t.status==="streaming"?"streaming":"complete",i=typeof t.artifactType=="string"?t.artifactType:"markdown",l=n({artifact:{artifactId:r,title:o,artifactType:i,status:s},config:e.config,defaultRenderer:()=>Bg(t,e)});if(l)return l}return Bg(t,e)};var dc=class{constructor(){this.components=new Map;this.options=new Map}register(e,n,o){this.components.has(e)&&console.warn(`[ComponentRegistry] Component "${e}" is already registered. Overwriting.`),this.components.set(e,n),o?this.options.set(e,o):this.options.delete(e)}unregister(e){this.components.delete(e),this.options.delete(e)}get(e){return this.components.get(e)}has(e){return this.components.has(e)}getOptions(e){return this.options.get(e)}getAllNames(){return Array.from(this.components.keys())}clear(){this.components.clear(),this.options.clear()}registerAll(e){Object.entries(e).forEach(([n,o])=>{this.register(n,o)})}},Qn=new dc;Qn.register("PersonaArtifactCard",ba,{bubbleChrome:!1});Qn.register("PersonaArtifactInline",Ng,{bubbleChrome:!1});function Hs(t){if(!t)return"";if(t.artifactType==="markdown"){let e=t.markdown??"";return t.file?ga(e):e}return JSON.stringify({component:t.component,props:t.props},null,2)}var pc=!1;function Nb(t){return"persona-artifact-vt-"+((t||"artifact").replace(/[^A-Za-z0-9_-]/g,"-").replace(/^-+/,"")||"artifact")}function Og(t,e,n,o){let r=typeof document<"u"?document.startViewTransition:void 0,s=!1;try{s=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{s=!1}if(e!=="auto"||!t||typeof r!="function"||pc||s){o();return}pc=!0;let i=Nb(n);t.style.setProperty("view-transition-name",i);let l=()=>{pc=!1,t.style.removeProperty("view-transition-name")};try{r.call(document,()=>{o()}).finished.then(l,l)}catch{l(),o()}}var Ob="persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-break-words persona-text-persona-primary",Fb="persona-text-sm persona-leading-relaxed persona-markdown-bubble";function _b(t){let e=v("div","persona-rounded-lg persona-border persona-border-persona-border persona-p-3 persona-text-persona-primary"),n=v("div","persona-font-semibold persona-text-sm persona-mb-2");n.textContent=t.component?`Component: ${t.component}`:"Component";let o=v("pre","persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-overflow-x-auto");return o.textContent=JSON.stringify(t.props??{},null,2),e.appendChild(n),e.appendChild(o),e}function $b(t){if(t===!1)return{enabled:!1,delayMs:0,minVisibleMs:0,timeoutMs:0,injectReadySignal:!1,label:"Starting preview...",labelDelayMs:2e3};let e=t&&typeof t=="object"?t:void 0;return{enabled:!0,delayMs:e?.delayMs??200,minVisibleMs:e?.minVisibleMs??300,timeoutMs:e?.timeoutMs??8e3,injectReadySignal:e?.injectReadySignal!==!1,label:e?.label===!1?!1:e?.label??"Starting preview...",labelDelayMs:e?.labelDelayMs??2e3,renderIndicator:e?.renderIndicator}}var zb=220;function Ub(){try{if(typeof crypto<"u"&&crypto.getRandomValues){let t=new Uint32Array(2);return crypto.getRandomValues(t),t[0].toString(36)+t[1].toString(36)}}catch{}return Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2)}function jb(t){return`
|
|
203
|
-
<script>(function(){var d=false;var t=`+JSON.stringify(t)+";function r(){if(d)return;d=true;try{parent.postMessage({persona:'artifact-preview-ready',token:t},'*');}catch(e){}}function s(){if(typeof requestAnimationFrame==='function'){requestAnimationFrame(function(){requestAnimationFrame(r);});}setTimeout(r,150);}if(document.readyState==='complete'){s();}else{window.addEventListener('load',s);}})();</script>"}function Vb(t,e,n){let o=v("div","persona-artifact-frame-loading");if(n.renderIndicator)try{let i=n.renderIndicator({artifactId:t,config:e});if(i)return o.appendChild(i),{el:o,revealLabel:()=>{}}}catch{}let r=v("div","persona-artifact-frame-loading-indicator");r.appendChild(wg());let s=null;return n.label!==!1&&(s=v("div","persona-artifact-frame-loading-text"),s.textContent=n.label,r.appendChild(s)),o.appendChild(r),{el:o,revealLabel:()=>{s&&s.classList.add("persona-artifact-frame-loading-text--visible")}}}function qb(t,e,n,o,r,s){let i=null,l=0,p=!1,c=new Set,d=()=>{c.forEach(S=>clearTimeout(S)),c.clear()},u=(S,E)=>{let z=setTimeout(()=>{c.delete(z),S()},E);c.add(z)},b=()=>{i&&i.parentElement&&i.remove(),i=null},g=()=>{if(i||p)return;let S=Vb(r,s,o);i=S.el,t.appendChild(i),l=Date.now(),o.label!==!1&&u(S.revealLabel,o.labelDelayMs)},h=()=>{i&&(i.classList.add("persona-artifact-frame-loading--out"),u(b,zb))},C=()=>{n!==null?typeof window<"u"&&window.removeEventListener("message",B):e.removeEventListener("load",k)},L=()=>{if(p||(p=!0,C(),d(),!i))return;let S=Math.max(0,o.minVisibleMs-(Date.now()-l));S>0?u(h,S):h()};function B(S){if(n===null)return;let E=S.data;!E||E.persona!=="artifact-preview-ready"||E.token!==n||S.source===e.contentWindow&&L()}function k(){let S=E=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>E()):setTimeout(E,0)};S(()=>S(()=>L()))}return u(g,o.delayMs),u(L,o.timeoutMs),n!==null?typeof window<"u"&&window.addEventListener("message",B):e.addEventListener("load",k),()=>{p=!0,d(),C(),b()}}function va(t,e){let{config:n}=e,o=e.registry??Qn,r=e.bodyLayout,s=n.markdown?Li(n.markdown):null,i=Pi(n.sanitize),l=t,p=!1,c=Y=>{let oe=Un()!==null;s&&!oe&&!p&&(p=!0,ki(()=>se(l)));let J=s?s(Y):po(Y);return s&&oe&&i?i(J):J},d=v("div","persona-artifact-preview-body"),u=null,b=null,g=null,h=()=>{g&&(g(),g=null),u=null,b=null},C=null,L=null,B=null,k=!1,S=()=>{C=null,L=null,B=null,k=!1},E=null,z=null,G=()=>{E=null,z=null},A=40,O=0,D=Y=>typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>Y()):setTimeout(Y,0),W=Y=>Y.scrollHeight-Y.clientHeight-Y.scrollTop<=A,P=Y=>{if(!r)return;let oe=Y.scrollHeight-Y.clientHeight>1,J=Y.scrollHeight-Y.clientHeight-Y.scrollTop;Y.classList.toggle("persona-artifact-fade-top",r.fadeTop&&oe&&Y.scrollTop>1),Y.classList.toggle("persona-artifact-fade-bottom",r.fadeBottom&&oe&&J>1)},I=Y=>{O||(O=D(()=>{O=0,Y.scrollTop=Y.scrollHeight,P(Y)}))},j=(Y,oe,J,ie)=>{let ee=!!r,fe=J.id+"|"+(ee?"w":"p");if(!C||B!==fe||C.parentElement!==d){h(),G(),d.replaceChildren();let we=v("pre",Ob+" persona-code-pre"),ve=v("code","persona-code");if(we.appendChild(ve),ee){let Te=v("div","persona-artifact-source-window");if(Te.appendChild(we),d.appendChild(Te),!(r?.overflow==="clip")&&typeof Te.addEventListener=="function"){let _e=()=>Te.scrollHeight-Te.clientHeight>1;Te.addEventListener("scroll",()=>{W(Te)&&(k=!1),P(Te)},{passive:!0}),Te.addEventListener("wheel",Ve=>{_e()&&Ve.deltaY<0&&(k=!0)},{passive:!0}),Te.addEventListener("touchmove",()=>{_e()&&(k=!0)},{passive:!0})}C=Te}else d.appendChild(we),C=we;L=ve,B=fe}let be=ee?C:null;be&&(be.classList.toggle("persona-artifact-source-window--fixed",ie),be.classList.toggle("persona-artifact-source-window--clip",ie&&r?.overflow==="clip"));let he=be?W(be):!0;if(L.replaceChildren(Lg(Y,oe?.language,oe?.path)),be){let we=J.status!=="complete";ie&&we&&r?.followOutput&&!k&&he?I(be):we||(k=!1),P(be)}},pe=Y=>{h(),S(),G(),d.replaceChildren();let oe=v("div",Fb);oe.innerHTML=c(Y),d.appendChild(oe)},ge=Y=>{let oe=Y.id,J=n.features?.artifacts,ie=Sr(Y,J,"status-body");if(E&&z===oe&&E.parentElement===d){let be=E.querySelector(".persona-artifact-status-view-text");be&&$o(be,ie,J);return}h(),S(),d.replaceChildren();let ee=v("div","persona-artifact-status-view"),fe=v("div","persona-artifact-status-view-text");$o(fe,ie,J),ee.appendChild(fe),d.appendChild(ee),E=ee,z=oe},se=Y=>{l=Y;let oe=e.resolveViewMode?.(Y)??r?.viewMode??"rendered",J=Y.artifactType==="markdown"?Y.file:void 0,ie=Y.status!=="complete";ie||Ar(Y.id);let ee=ie?r?.streamingHeight:r?.completeHeight,fe=!!r&&typeof ee=="number";if(r?.streamingView==="status"&&ie){ge(Y);return}if(J){let he=ga(Y.markdown??""),we=Is(J),ve=n.features?.artifacts?.filePreview?.enabled!==!1;if(!ie&&oe==="rendered"&&ve&&(we==="html"||we==="svg")){let Me=Y.id+"\0"+he;if(u&&b===Me&&u.parentElement===d)return;S(),G(),h(),d.replaceChildren();let _e=n.features?.artifacts?.filePreview,Ve=_e?.iframeSandbox??"allow-scripts";!_e?.dangerouslyAllowSameOrigin&&Ve.includes("allow-same-origin")&&(console.warn("[AgentWidget] Stripped allow-same-origin from filePreview.iframeSandbox: it lets artifact content run with the page origin. Set filePreview.dangerouslyAllowSameOrigin to keep it."),Ve=Ve.split(/\s+/).filter(Bt=>Bt&&Bt!=="allow-same-origin").join(" "));let ke=$b(_e?.loading),Re=v("div","persona-artifact-frame"),Ge=v("iframe","persona-artifact-iframe");Ge.setAttribute("sandbox",Ve),Ge.setAttribute("data-artifact-id",Y.id);let Nt=null;ke.enabled&&ke.injectReadySignal?(Nt=Ub(),Ge.srcdoc=he+jb(Nt)):Ge.srcdoc=he,Re.appendChild(Ge),d.appendChild(Re),ke.enabled&&(g=qb(Re,Ge,Nt,ke,Y.id,n)),u=Re,b=Me;return}if(h(),!ie&&we==="markdown"&&oe==="rendered"){pe(he);return}j(he,{language:J.language,path:J.path},Y,fe);return}if(Y.artifactType==="markdown"){if(oe==="source"){h(),j(Y.markdown??"",void 0,Y,fe);return}pe(Y.markdown??"");return}h(),S(),G(),d.replaceChildren();let be=Y.component?o.get(Y.component):void 0;if(be){let we={message:{id:Y.id,role:"assistant",content:"",createdAt:new Date().toISOString()},config:n,updateProps:()=>{}};try{let ve=be(Y.props??{},we);if(ve){d.appendChild(ve);return}}catch{}}d.appendChild(_b(Y))};return se(t),{el:d,update(Y){se(Y)}}}var Fg=require("idiomorph"),xa=(t,e,n={})=>{let{preserveTypingAnimation:o=!0}=n;Fg.Idiomorph.morph(t,e.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 i=r.textContent??"",l=s.textContent??"";if(i!==l)return}return!1}}}}})};var _g=t=>t.replace(/^\n+/,"").replace(/\s+$/,"");var uc={index:-1,draft:""};function $g(t){let{direction:e,history:n,currentValue:o,atStart:r,state:s}=t,i=s.index!==-1;if(n.length===0)return{handled:!1,state:s};if(e==="up"){if(!i&&!r)return{handled:!1,state:s};if(!i){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(!i)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 zg(t,e){return[t.id,t.role,t.content?.length??0,t.content?.slice(-32)??"",t.streaming?"1":"0",t.voiceProcessing?"1":"0",t.variant??"",t.rawContent?.length??0,t.llmContent?.length??0,t.approval?.status??"",t.toolCall?.status??"",t.toolCall?.name??"",t.toolCall?.chunks?.length??0,t.toolCall?.chunks?.[t.toolCall.chunks.length-1]?.slice(-32)??"",typeof t.toolCall?.args=="string"?t.toolCall.args.length:t.toolCall?.args?JSON.stringify(t.toolCall.args).length:0,t.reasoning?.chunks?.length??0,t.reasoning?.chunks?.[t.reasoning.chunks.length-1]?.length??0,t.reasoning?.chunks?.[t.reasoning.chunks.length-1]?.slice(-32)??"",t.contentParts?.length??0,t.stopReason??"",e].join("\0")}function Ug(){return new Map}function jg(t,e,n){let o=t.get(e);return o&&o.fingerprint===n?o.wrapper:null}function Vg(t,e,n,o){t.set(e,{fingerprint:n,wrapper:o})}function qg(t,e){for(let n of t.keys())e.has(n)||t.delete(n)}function Kg(t){return t.role!=="assistant"||t.variant==="tool"||t.variant==="reasoning"?!1:t.variant==="approval"?!0:!!(t.content?.trim()||t.rawContent?.trim()||t.contentParts?.length)}function Ca(t=!0){let e=t;return{isFollowing:()=>e,pause:()=>e?(e=!1,!0):!1,resume:()=>e?!1:(e=!0,!0)}}function Hn(t){return Math.max(0,t.scrollHeight-t.clientHeight)}function Co(t,e){return Hn(t)-t.scrollTop<=e}function wa(t){let{following:e,currentScrollTop:n,lastScrollTop:o,nearBottom:r,userScrollThreshold:s,isAutoScrolling:i=!1,pauseOnUpwardScroll:l=!1,pauseWhenAwayFromBottom:p=!0,resumeRequiresDownwardScroll:c=!1}=t,d=n-o;return i||Math.abs(d)<s?{action:"none",delta:d,nextLastScrollTop:n}:!e&&r&&(!c||d>0)?{action:"resume",delta:d,nextLastScrollTop:n}:e&&l&&d<0?{action:"pause",delta:d,nextLastScrollTop:n}:e&&p&&!r?{action:"pause",delta:d,nextLastScrollTop:n}:{action:"none",delta:d,nextLastScrollTop:n}}function Aa(t){let{following:e,deltaY:n,nearBottom:o=!1,resumeWhenNearBottom:r=!1}=t;return e&&n<0?"pause":!e&&r&&n>0&&o?"resume":"none"}function Gg(t,e){return!t||t.isCollapsed?!1:e.contains(t.anchorNode)||e.contains(t.focusNode)}function Qg(t){let e=Math.max(0,t.anchorOffsetTop-t.topOffset),n=Math.max(0,e+t.viewportHeight-t.contentHeight);return{targetScrollTop:e,spacerHeight:n}}function Xg(t){let e=Math.max(0,t.currentContentHeight-t.contentHeightAtAnchor);return Math.max(0,t.initialSpacerHeight-e)}var Bs={type:"none",placeholder:"none",speed:120,duration:1800,buffer:"none"},Kb=["pre","code","a","script","style"],Sa=t=>({type:t?.type??Bs.type,placeholder:t?.placeholder??Bs.placeholder,speed:t?.speed??Bs.speed,duration:t?.duration??Bs.duration,buffer:t?.buffer??Bs.buffer}),Gb=[{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"}],Yg=new Map;for(let t of Gb)Yg.set(t.name,t);var Er=(t,e)=>t==="none"?null:e&&Object.prototype.hasOwnProperty.call(e,t)?e[t]??null:Yg.get(t)??null,Ma=(t,e,n,o,r)=>{if(!r)return t;if(n?.bufferContent)return n.bufferContent(t,o);if(!t)return t;if(e==="word"){let s=t.search(/\s(?=\S*$)/);return s<0?"":t.slice(0,s)}if(e==="line"){let s=t.lastIndexOf(`
|
|
204
|
-
`);return s<0?"":t.slice(0,s)}return t},Qb=(t,e,n,o)=>{let r=t.createElement("span");return r.className="persona-stream-char",r.id=`stream-c-${n}-${o}`,r.style.setProperty("--char-index",String(o)),r.textContent=e,r},Xb=(t,e,n,o)=>{let r=t.createElement("span");return r.className="persona-stream-word",r.id=`stream-w-${n}-${o}`,r.style.setProperty("--word-index",String(o)),r.textContent=e,r},gc=/\s/,Jb=(t,e)=>{let n=t.parentNode;for(;n;){if(n.nodeType===1){let o=n;if(e.has(o.tagName.toLowerCase()))return!0}n=n.parentNode}return!1},Yb=(t,e,n)=>{let o=t.ownerDocument,r=t.parentNode;if(!o||!r)return;let s=t.nodeValue??"";if(!s)return;let i=o.createDocumentFragment(),l=0;for(;l<s.length;)if(gc.test(s[l])){let p=l;for(;p<s.length&&gc.test(s[p]);)p+=1;i.appendChild(o.createTextNode(s.slice(l,p))),l=p}else{let p=o.createElement("span");p.className="persona-stream-word-group";let c=l;for(;c<s.length&&!gc.test(s[c]);)p.appendChild(Qb(o,s[c],e,n.value)),n.value+=1,c+=1;i.appendChild(p),l=c}r.replaceChild(i,t)},Zb=(t,e,n)=>{let o=t.ownerDocument,r=t.parentNode;if(!o||!r)return;let s=t.nodeValue??"";if(!s)return;let i=o.createDocumentFragment(),l=s.split(/(\s+)/);for(let p of l)p&&(/^\s+$/.test(p)?i.appendChild(o.createTextNode(p)):(i.appendChild(Xb(o,p,e,n.value)),n.value+=1));r.replaceChild(i,t)},Ds=(t,e,n,o)=>{if(!t||typeof document>"u")return t;let r=document.createElement("div");r.innerHTML=t;let s=new Set((o?.skipTags??Kb).map(u=>u.toLowerCase())),i=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null),l=[],p=i.nextNode();for(;p;)Jb(p,s)||l.push(p),p=i.nextNode();let c={value:o?.startIndex??0},d=e==="char"?Yb:Zb;for(let u of l)d(u,n,c);return r.innerHTML},Ta=(t=document)=>{let e=t.createElement("span");return e.className="persona-stream-caret",e.setAttribute("aria-hidden","true"),e.setAttribute("data-preserve-animation","stream-caret"),e},Ns=(t=document)=>{let e=t.createElement("div");e.className="persona-stream-skeleton",e.setAttribute("data-preserve-animation","stream-skeleton"),e.setAttribute("aria-hidden","true");let n=t.createElement("div");return n.className="persona-stream-skeleton-line",e.appendChild(n),e},Jg=new WeakMap,ev=(t,e)=>{if(!t.styles)return;let n=Jg.get(e);if(n||(n=new Set,Jg.set(e,n)),n.has(t.name)){let s=t.name.replace(/["\\]/g,"\\$&");if(e.querySelector(`style[data-persona-animation="${s}"]`))return;n.delete(t.name)}n.add(t.name);let r=(e instanceof ShadowRoot?e.ownerDocument:e.ownerDocument??document).createElement("style");r.setAttribute("data-persona-animation",t.name),r.textContent=t.styles,e.appendChild(r)},fc=new WeakMap,tv=(t,e)=>{if(!t.onAttach)return;let n=fc.get(e);if(n||(n=new Map,fc.set(e,n)),n.has(t.name))return;let o=t.onAttach(e);n.set(t.name,o)},Zg=t=>{let e=fc.get(t);if(e){for(let n of e.values())typeof n=="function"&&n();e.clear()}},Ea=(t,e)=>{ev(t,e),tv(t,e)};function mc(t,e=Qt){let n=t.style.position,o=t.style.zIndex,r=t.style.isolation,s=getComputedStyle(t),i=s.position==="static"||s.position==="";return i&&(t.style.position="relative"),t.style.zIndex=String(e),t.style.isolation="isolate",()=>{i&&(t.style.position=n),t.style.zIndex=o,t.style.isolation=r}}var Os=0,wo=null;function hc(t=document){if(Os++,Os===1){let n=t.body,r=(t.defaultView??window).scrollY||t.documentElement.scrollTop;wo={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 e=!1;return()=>{if(!e&&(e=!0,Os=Math.max(0,Os-1),Os===0&&wo)){let n=t.body,o=t.defaultView??window;n.style.overflow=wo.originalOverflow,n.style.position=wo.originalPosition,n.style.top=wo.originalTop,n.style.width=wo.originalWidth,o.scrollTo(0,wo.scrollY),wo=null}}}var Fs={side:"right",width:"420px",animate:!0,reveal:"resize",maxHeight:"100dvh"},_t=t=>(t?.launcher?.mountMode??"floating")==="docked",_s=t=>(t?.launcher?.mountMode??"floating")==="composer-bar",xn=t=>{let e=t?.launcher?.dock;return{side:e?.side??Fs.side,width:e?.width??Fs.width,animate:e?.animate??Fs.animate,reveal:e?.reveal??Fs.reveal,maxHeight:e?.maxHeight??Fs.maxHeight}};Je();Je();wt();var yc=t=>t==="followUp"?"follow-up":t,nv=(t,e=0)=>{if(typeof t=="string"){let r=t.trim();return r?{id:r,label:r,prompt:r,emphasis:"default"}:null}let n=t.label.trim();if(!n)return null;let o=t.prompt?.trim()||n;return{id:t.id?.trim()||o||`suggestion-${e}`,label:n,prompt:o,description:t.description?.trim()||void 0,icon:t.icon,iconColor:t.iconColor?.trim()||void 0,behavior:t.behavior,emphasis:t.emphasis??"default"}},ov=t=>{switch(t){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'}},ef=new WeakSet,rv=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,sv=t=>{rv()||t.forEach((e,n)=>{typeof e.animate=="function"&&e.animate([{opacity:"0",transform:"translateY(4px)"},{opacity:"1",transform:"none"}],{duration:250,delay:n*60,easing:"ease-out",fill:"backwards"})})},ka=t=>{let e=[],n=[],o=null,r=null,s=()=>{t.removeAttribute("data-scroll-left"),t.removeAttribute("data-scroll-right")},i=()=>{if(r=null,t.hidden||t.dataset.variant!=="chip"||t.dataset.overflow!=="scroll"){s();return}let d=Math.max(0,t.scrollWidth-t.clientWidth);if(d<=1){s();return}let u=getComputedStyle(t).direction==="rtl",b=Math.min(d,Math.max(0,Math.abs(t.scrollLeft))),g=4,h=b<=g,C=b>=d-g,L=u?!C:!h,B=u?!h:!C;t.toggleAttribute("data-scroll-left",L),t.toggleAttribute("data-scroll-right",B)},l=()=>{if(r!==null||typeof requestAnimationFrame!="function"){typeof requestAnimationFrame!="function"&&i();return}r=requestAnimationFrame(i)};t.addEventListener("scroll",l,{passive:!0});let p=typeof ResizeObserver=="function"?new ResizeObserver(l):null;return p?.observe(t),{buttons:e,elements:n,destroy:()=>{t.removeEventListener("scroll",l),p?.disconnect(),r!==null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(r),r=null},render:(d,u,b,g,h,C)=>{t.replaceChildren(),e.length=0,n.length=0;let L=C?.source??"config",B=C?.surface??(L==="config"?"starter":"followUp"),k=B==="followUp",S=C?.variant??"chip",E=C?.behavior??"send",z=C?.overflow??"wrap",G=C?.config??{},A=C?.plugins??[],O=typeof C?.maxItems=="number"?Math.max(0,Math.floor(C.maxItems)):void 0,D=k?"followUps":"starters";!ef.has(G)&&G.debug===!0&&S!=="chip"&&G.suggestions?.[D]?.overflow!==void 0&&(ef.add(G),console.info(`[persona] suggestions.${D}.overflow applies to the "chip" variant only; the "${S}" variant manages its own stacking.`));let W=se=>se.map(nv).filter(Y=>Y!==null).map(Y=>({...Y,behavior:Y.behavior??E})),P=W(d??[]);A.forEach(se=>{se.transformSuggestions&&(P=W(se.transformSuggestions({suggestions:P.map(Y=>({...Y})),surface:B,source:L,config:G})))});let I=O===void 0?P:P.slice(0,O);if(!I.length){t.hidden=!0,o=null,s();return}if(!k&&(g??u.getMessages()).some(Y=>Y.role==="user")){t.hidden=!0,o=null;return}t.hidden=!1,t.classList.add("persona-suggestions"),t.dataset.personaSuggestionSurface=yc(B),t.dataset.variant=S,t.dataset.overflow=z;let j=document.createDocumentFragment(),pe=u.isStreaming();I.forEach((se,Y)=>{var be,he,we;let oe=se.behavior,J=()=>{if(u.isStreaming())return;let ve={suggestion:{...se},surface:B,source:L,behavior:oe},Te=t.dispatchEvent(new CustomEvent("persona:suggestion:selected",{detail:ve,bubbles:!0,composed:!0,cancelable:!0}));if(k&&t.dispatchEvent(new CustomEvent("persona:suggestReplies:selected",{detail:{suggestion:se.prompt},bubbles:!0,composed:!0})),!!Te){for(let Me of A)if(Me.onSuggestionSelect?.({suggestion:{...se},surface:B,source:L,variant:S,config:G})===!1)return;if(oe==="fill"){b.value=se.prompt,b.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),b.focus();return}b.value="",u.sendMessage(se.prompt)}},ie=()=>{let ve=v("button",`persona-suggestion persona-suggestion--${S}`);if(ve.type="button",ve.disabled=pe,ve.dataset.suggestionId=se.id,ve.dataset.emphasis=se.emphasis,ve.dataset.behavior=oe,S==="chip"&&(h?.fontFamily&&(ve.style.fontFamily=ov(h.fontFamily)),h?.fontWeight&&(ve.style.fontWeight=h.fontWeight),h?.paddingX&&(ve.style.paddingLeft=h.paddingX,ve.style.paddingRight=h.paddingX),h?.paddingY&&(ve.style.paddingTop=h.paddingY,ve.style.paddingBottom=h.paddingY)),se.icon){let Me=ae(se.icon,"var(--persona-suggestion-icon-size)","currentColor",1.8);Me&&(Me.classList.add("persona-suggestion__icon"),se.iconColor&&(Me.style.color=se.iconColor),ve.appendChild(Me))}let Te=v("span","persona-suggestion__copy");if(Te.appendChild(Ce("span",{className:"persona-suggestion__label",text:se.label})),se.description&&Te.appendChild(Ce("span",{className:"persona-suggestion__description",text:se.description})),ve.appendChild(Te),S!=="chip"){let Me=ae("arrow-right",16,"currentColor",1.8);Me&&(Me.classList.add("persona-suggestion__arrow"),ve.appendChild(Me))}return ve.addEventListener("click",J),ve},ee=null;for(let ve of A)if(ve.renderSuggestion&&(ee=ve.renderSuggestion({suggestion:{...se},index:Y,surface:B,source:L,variant:S,streaming:pe,config:G,defaultRenderer:ie,select:J}),ee))break;ee??(ee=ie()),(be=ee.dataset).suggestionId||(be.suggestionId=se.id),(he=ee.dataset).behavior||(he.behavior=oe),(we=ee.dataset).emphasis||(we.emphasis=se.emphasis),ee instanceof HTMLButtonElement||ee.setAttribute("aria-disabled",pe?"true":"false"),j.appendChild(ee),n.push(ee),[...ee instanceof HTMLButtonElement?[ee]:[],...Array.from(ee.querySelectorAll("button"))].forEach(ve=>{e.includes(ve)||(ve.disabled=pe,e.push(ve))})}),t.appendChild(j),i(),l();let ge=JSON.stringify({normalized:I,surface:B,variant:S,source:L});ge!==o&&(o=ge,sv(n),t.dispatchEvent(new CustomEvent("persona:suggestion:shown",{detail:{suggestions:I.map(se=>({...se})),surface:B,source:L,variant:S},bubbles:!0,composed:!0})),k&&t.dispatchEvent(new CustomEvent("persona:suggestReplies:shown",{detail:{suggestions:I.map(se=>se.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"};Je();wt();Je();wt();var iv="persona-relative persona-ml-auto persona-inline-flex persona-items-center persona-justify-center",La=(t,e={})=>{let{showClose:n=!0,wrapperClassName:o=iv,buttonSize:r,iconSize:s="28px"}=e,i=t?.launcher??{},l=r??i.closeButtonSize??"32px",p=v("div",o),c=i.closeButtonTooltipText??"Close chat",d=i.closeButtonShowTooltip??!0,u=i.closeButtonIconName??"x",b=i.closeButtonIconText??"\xD7",g=!!(i.closeButtonBorderWidth||i.closeButtonBorderColor),h=Ce("button",{className:Vn("persona-inline-flex persona-items-center persona-justify-center persona-cursor-pointer",!i.closeButtonBackgroundColor&&"hover:persona-bg-gray-100",!g&&"persona-border-none",!i.closeButtonBorderRadius&&"persona-rounded-full"),attrs:{type:"button","aria-label":c},style:{height:l,width:l,display:n?void 0:"none",color:i.closeButtonColor||tn.actionIconColor,backgroundColor:i.closeButtonBackgroundColor||void 0,border:g?`${i.closeButtonBorderWidth||"0px"} solid ${i.closeButtonBorderColor||"transparent"}`:void 0,borderRadius:i.closeButtonBorderRadius||void 0,paddingLeft:i.closeButtonPaddingX||void 0,paddingRight:i.closeButtonPaddingX||void 0,paddingTop:i.closeButtonPaddingY||void 0,paddingBottom:i.closeButtonPaddingY||void 0}}),C=ae(u,s,"currentColor",1);return C?(C.style.display="block",h.appendChild(C)):h.textContent=b,p.appendChild(h),Ut({anchor:h,trigger:p,text:()=>h.getAttribute("aria-label")??c,enabled:d}),{button:h,wrapper:p}},av="persona-relative persona-ml-auto persona-clear-chat-button-wrapper",Pa=(t,e={})=>{let{wrapperClassName:n=av,buttonSize:o,iconSize:r="20px"}=e,i=(t?.launcher??{}).clearChat??{},l=o??i.size??"32px",p=i.iconName??"refresh-cw",c=i.iconColor??"",d=i.backgroundColor??"",u=i.borderWidth??"",b=i.borderColor??"",g=i.borderRadius??"",h=i.paddingX??"",C=i.paddingY??"",L=i.tooltipText??"Clear chat",B=i.showTooltip??!0,k=v("div",n),S=!!(u||b),E=Ce("button",{className:Vn("persona-inline-flex persona-items-center persona-justify-center persona-cursor-pointer",!d&&"hover:persona-bg-gray-100",!S&&"persona-border-none",!g&&"persona-rounded-full"),attrs:{type:"button","aria-label":L},style:{height:l,width:l,color:c||tn.actionIconColor,backgroundColor:d||void 0,border:S?`${u||"0px"} solid ${b||"transparent"}`:void 0,borderRadius:g||void 0,paddingLeft:h||void 0,paddingRight:h||void 0,paddingTop:C||void 0,paddingBottom:C||void 0}}),z=ae(p,r,"currentColor",1);return z&&(z.style.display="block",E.appendChild(z)),k.appendChild(E),Ut({anchor:E,trigger:k,text:()=>E.getAttribute("aria-label")??L,enabled:B}),{button:E,wrapper:k}};var tn={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))"},Uo=t=>{let{config:e,showClose:n=!0}=t,o=Ce("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:{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=e?.launcher??{},s=r.headerIconSize??"48px",i=r.closeButtonPlacement??"inline",l=r.headerIconHidden??!1,p=r.headerIconName,c=Ce("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(p){let z=parseFloat(s)||24,G=ae(p,z*.6,"currentColor",1);G?c.replaceChildren(G):c.textContent=e?.launcher?.agentIconText??"\u{1F4AC}"}else if(e?.launcher?.iconUrl){let z=v("img");z.src=e.launcher.iconUrl,z.alt="",z.className="persona-rounded-xl persona-object-cover",z.style.height=s,z.style.width=s,c.replaceChildren(z)}else c.textContent=e?.launcher?.agentIconText??"\u{1F4AC}";let d=v("div","persona-flex persona-flex-col persona-flex-1 persona-min-w-0"),u=Ce("span",{className:"persona-text-base persona-font-semibold",text:e?.launcher?.title??"Chat Assistant",style:{color:tn.titleColor}}),b=Ce("span",{className:"persona-text-xs",text:e?.launcher?.subtitle??"Here to help you get answers fast",style:{color:tn.subtitleColor}});d.append(u,b),l?o.append(d):o.append(c,d);let g=r.clearChat??{},h=g.enabled??!0,C=g.placement??"inline",L=null,B=null;if(h){let G=Pa(e,{wrapperClassName:C==="top-right"?"persona-absolute persona-top-4 persona-z-50":"persona-relative persona-ml-auto persona-clear-chat-button-wrapper"});L=G.button,B=G.wrapper,C==="top-right"&&(B.style.right="48px"),C==="inline"&&o.appendChild(B)}let k=i==="top-right"?"persona-absolute persona-top-4 persona-right-4 persona-z-50":h&&C==="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:S,wrapper:E}=La(e,{showClose:n,wrapperClassName:k});return i!=="top-right"&&o.appendChild(E),{header:o,iconHolder:c,headerTitle:u,headerSubtitle:b,closeButton:S,closeButtonWrapper:E,clearChatButton:L,clearChatButtonWrapper:B}},$s=(t,e,n)=>{let o=n?.launcher??{},r=o.closeButtonPlacement??"inline",s=o.clearChat?.placement??"inline";t.appendChild(e.header),r==="top-right"&&(t.style.position="relative",t.appendChild(e.closeButtonWrapper)),e.clearChatButtonWrapper&&s==="top-right"&&(t.style.position="relative",t.appendChild(e.clearChatButtonWrapper))};Je();wt();var lv=t=>{let e=Uo({config:t.config,showClose:t.showClose,onClose:t.onClose,onClearChat:t.onClearChat}),n=t.layoutHeaderConfig?.onTitleClick;if(n){let o=e.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 e};function cv(t,e,n){if(e?.length)for(let o of e){let r=v("button","persona-inline-flex persona-items-center persona-justify-center persona-rounded-md persona-border-none persona-bg-transparent persona-p-0 persona-text-persona-muted hover:persona-opacity-80");if(r.type="button",r.setAttribute("aria-label",o.ariaLabel??o.label??o.id),o.icon){let s=ae(o.icon,14,"currentColor",2);s&&r.appendChild(s)}else o.label&&(r.textContent=o.label);if(o.menuItems?.length){let s=v("div","persona-relative");s.appendChild(r);let i=Mr({items:o.menuItems,onSelect:l=>n?.(l),anchor:s,position:"bottom-left"});s.appendChild(i.element),r.addEventListener("click",l=>{l.stopPropagation(),i.toggle()}),t.appendChild(s)}else r.addEventListener("click",()=>n?.(o.id)),t.appendChild(r)}}var dv=t=>{let{config:e,showClose:n=!0,onClose:o,layoutHeaderConfig:r,onHeaderAction:s}=t,i=e?.launcher??{},l=v("div","persona-flex persona-items-center persona-justify-between persona-px-6 persona-py-4");l.setAttribute("data-persona-theme-zone","header"),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 p=r?.titleMenu,c,d;if(p)c=Pg({label:i.title??"Chat Assistant",menuItems:p.menuItems,onSelect:p.onSelect,hover:p.hover,className:""}).element,c.style.color=tn.titleColor,d=c.querySelector(".persona-combo-btn-label")??c;else{if(c=v("div","persona-flex persona-min-w-0 persona-flex-1 persona-items-center persona-gap-1"),d=v("span","persona-text-base persona-font-semibold persona-truncate"),d.style.color=tn.titleColor,d.textContent=i.title??"Chat Assistant",c.appendChild(d),cv(c,r?.trailingActions,r?.onAction??s),r?.onTitleClick){c.style.cursor="pointer",c.setAttribute("role","button"),c.setAttribute("tabindex","0");let S=r.onTitleClick;c.addEventListener("click",E=>{E.target.closest("button")||S()}),c.addEventListener("keydown",E=>{(E.key==="Enter"||E.key===" ")&&(E.preventDefault(),S())})}let k=r?.titleRowHover;k&&(c.style.borderRadius=k.borderRadius??"10px",c.style.padding=k.padding??"6px 4px 6px 12px",c.style.margin="-6px 0 -6px -12px",c.style.border="1px solid transparent",c.style.transition="background-color 0.15s ease, border-color 0.15s ease",c.style.width="fit-content",c.style.flex="none",c.addEventListener("mouseenter",()=>{c.style.backgroundColor=k.background??"",c.style.borderColor=k.border??""}),c.addEventListener("mouseleave",()=>{c.style.backgroundColor="",c.style.borderColor="transparent"}))}l.appendChild(c);let u=i.closeButtonSize??"32px",b=v("div",""),g=v("button","persona-inline-flex persona-items-center persona-justify-center persona-rounded-full hover:persona-bg-gray-100 persona-cursor-pointer persona-border-none");g.style.height=u,g.style.width=u,g.type="button",g.setAttribute("aria-label","Close chat"),g.style.display=n?"":"none",g.style.color=i.closeButtonColor||tn.actionIconColor;let h=i.closeButtonIconName??"x",C=ae(h,"28px","currentColor",1);C?g.appendChild(C):g.textContent="\xD7",o&&g.addEventListener("click",o),b.appendChild(g),l.appendChild(b);let L=v("div");L.style.display="none";let B=v("span");return B.style.display="none",{header:l,iconHolder:L,headerTitle:d,headerSubtitle:B,closeButton:g,closeButtonWrapper:b,clearChatButton:null,clearChatButtonWrapper:null}},tf={default:lv,minimal:dv},pv=t=>tf[t]??tf.default,Ia=(t,e,n)=>{if(e?.render){let i=e.render({config:t,onClose:n?.onClose,onClearChat:n?.onClearChat,trailingActions:e.trailingActions,onAction:e.onAction}),l=v("div");l.style.display="none";let p=v("span"),c=v("span"),d=v("button");d.style.display="none";let u=v("div");return u.style.display="none",{header:i,iconHolder:l,headerTitle:p,headerSubtitle:c,closeButton:d,closeButtonWrapper:u,clearChatButton:null,clearChatButtonWrapper:null}}let o=e?.layout??"default",s=pv(o)({config:t,showClose:e?.showCloseButton??n?.showClose??!0,onClose:n?.onClose,onClearChat:n?.onClearChat,layoutHeaderConfig:e,onHeaderAction:e?.onAction});return e&&(e.showIcon===!1&&(s.iconHolder.style.display="none"),e.showTitle===!1&&(s.headerTitle.style.display="none"),e.showSubtitle===!1&&(s.headerSubtitle.style.display="none"),e.showCloseButton===!1&&(s.closeButton.style.display="none"),e.showClearChat===!1&&s.clearChatButtonWrapper&&(s.clearChatButtonWrapper.style.display="none")),s};Je();Je();wt();var Ra=t=>{let e=v("textarea");e.setAttribute("data-persona-composer-input",""),e.placeholder=t?.copy?.inputPlaceholder??"Type your message\u2026",e.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",e.rows=1,e.style.fontFamily='var(--persona-input-font-family, var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif))',e.style.fontWeight="var(--persona-input-font-weight, var(--persona-font-weight, 400))";let n=3,o=20,r=()=>{let p=e.ownerDocument?.defaultView;if(!p?.getComputedStyle)return o;let c=p.getComputedStyle(e).lineHeight;if(!c||!c.trim().endsWith("px"))return o;let d=parseFloat(c);return Number.isFinite(d)&&d>0?d:o},s=`${n*o}px`;e.style.maxHeight=s,e.style.overflowY="auto";let i=()=>{let p=e.style.maxHeight;if(p!==s){let d=parseFloat(p);if(Number.isFinite(d)&&d>0)return d}let c=n*r();return s=`${c}px`,e.style.maxHeight=s,c},l=()=>{e.addEventListener("input",()=>{e.style.height="auto";let p=Math.min(e.scrollHeight,i());e.style.height=`${p}px`})};return e.style.border="none",e.style.outline="none",e.style.borderWidth="0",e.style.borderStyle="none",e.style.borderColor="transparent",e.addEventListener("focus",()=>{e.style.border="none",e.style.outline="none",e.style.borderWidth="0",e.style.borderStyle="none",e.style.borderColor="transparent",e.style.boxShadow="none"}),e.addEventListener("blur",()=>{e.style.border="none",e.style.outline="none"}),{textarea:e,attachAutoResize:l}},Wa=t=>{let e=t?.sendButton??{},n=e.useIcon??!1,o=e.iconText??"\u2191",r=e.iconName,s=e.stopIconName??"square",i=e.tooltipText??"Send message",l=e.stopTooltipText??"Stop generating",p=t?.copy?.sendButtonLabel??"Send",c=t?.copy?.stopButtonLabel??"Stop",d=e.showTooltip??!1,u=e.size??"40px",b=e.backgroundColor,g=e.textColor,h=v("div","persona-send-button-wrapper"),C=Ce("button",{className:Vn("persona-rounded-button disabled:persona-opacity-50 persona-cursor-pointer",n?"persona-flex persona-items-center persona-justify-center":"persona-bg-persona-accent persona-px-4 persona-py-2 persona-text-sm persona-font-semibold",n&&!b&&"persona-bg-persona-primary",!n&&!g&&"persona-text-white"),attrs:{type:"submit","data-persona-composer-submit":""},style:{width:n?u:void 0,height:n?u:void 0,minWidth:n?u:void 0,minHeight:n?u:void 0,fontSize:n?"18px":void 0,lineHeight:n?"1":void 0,color:n?g||"var(--persona-button-primary-fg, #ffffff)":g||void 0,backgroundColor:n&&b||void 0,borderWidth:e.borderWidth||void 0,borderStyle:e.borderWidth?"solid":void 0,borderColor:e.borderColor||void 0,paddingLeft:n?"0":e.paddingX||void 0,paddingRight:n?"0":e.paddingX||void 0,paddingTop:n?"0":e.paddingY||void 0,paddingBottom:n?"0":e.paddingY||void 0}}),L=null,B=null;if(n){let E=parseFloat(e.iconSize??"")||Math.round((parseFloat(u)||24)*.5),z=e.iconStrokeWidth??2,G=g?.trim()||"currentColor";r?(L=ae(r,E,G,z),L?C.appendChild(L):C.textContent=o):C.textContent=o,B=ae(s,E,G,z)}else C.textContent=p;C.setAttribute("aria-label",i),h.appendChild(C),Ut({anchor:C,trigger:h,text:()=>C.getAttribute("aria-label")??"",enabled:d});let k="send";return{button:C,wrapper:h,setMode:E=>{if(E===k)return;k=E;let z=E==="stop"?l:i;if(C.setAttribute("aria-label",z),n){if(L&&B){let G=E==="stop"?B:L;C.replaceChildren(G)}}else C.textContent=E==="stop"?c:p}}},Ha=t=>{let e=t?.voiceRecognition??{};if(!(e.enabled===!0))return null;let o=typeof window<"u"&&(typeof window.webkitSpeechRecognition<"u"||typeof window.SpeechRecognition<"u"),r=e.provider?.type==="runtype";if(!(o||r))return null;let i=t?.sendButton?.size??"40px",l=e.iconName??"mic",p=e.iconSize??i,c=parseFloat(p)||24,d=e.backgroundColor??t?.sendButton?.backgroundColor,u=e.iconColor??t?.sendButton?.textColor,b=v("div","persona-send-button-wrapper"),g=Ce("button",{className:"persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer",attrs:{type:"button","data-persona-composer-mic":"","aria-label":e.tooltipText??"Start voice recognition"},style:{width:p,height:p,minWidth:p,minHeight:p,fontSize:"18px",lineHeight:"1",color:u||"var(--persona-text, #111827)",backgroundColor:d||void 0,borderWidth:e.borderWidth||void 0,borderStyle:e.borderWidth?"solid":void 0,borderColor:e.borderColor||void 0,paddingLeft:e.paddingX||void 0,paddingRight:e.paddingX||void 0,paddingTop:e.paddingY||void 0,paddingBottom:e.paddingY||void 0}}),C=ae(l,c,u||"currentColor",1.5);C?g.appendChild(C):g.textContent="\u{1F3A4}",b.appendChild(g);let L=e.tooltipText??"Start voice recognition",B=e.showTooltip??!1;return Ut({anchor:g,trigger:b,text:()=>g.getAttribute("aria-label")??L,enabled:B}),{button:g,wrapper:b}},Ba=t=>{let e=t?.attachments??{};if(e.enabled!==!0)return null;let n=t?.sendButton?.size??"40px",o=v("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2");o.setAttribute("data-persona-composer-attachment-previews",""),o.style.display="none";let r=v("input");r.type="file",r.setAttribute("data-persona-composer-attachment-input",""),r.accept=(e.allowedTypes??Kn).join(","),r.multiple=(e.maxFiles??4)>1,r.style.display="none",r.setAttribute("aria-label","Attach files");let s=e.buttonIconName??"paperclip",i=n,l=parseFloat(i)||40,p=Math.round(l*.6),c=v("div","persona-send-button-wrapper"),d=Ce("button",{className:"persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-attachment-button",attrs:{type:"button","data-persona-composer-attachment-button":"","aria-label":e.buttonTooltipText??"Attach file"},style:{width:i,height:i,minWidth:i,minHeight:i,fontSize:"18px",lineHeight:"1"}}),u=ae(s,p,"currentColor",1.5);u?d.appendChild(u):d.textContent="\u{1F4CE}",d.addEventListener("click",g=>{g.preventDefault(),r.click()}),c.appendChild(d);let b=e.buttonTooltipText??"Attach file";return Ut({anchor:d,trigger:c,text:()=>d.getAttribute("aria-label")??b}),{button:d,wrapper:c,input:r,previewsContainer:o}},Da=t=>{let e=t?.statusIndicator??{},n=e.align==="left"?"persona-text-left":e.align==="center"?"persona-text-center":"persona-text-right",o=v("div",`persona-mt-2 ${n} persona-text-xs persona-text-persona-muted`);o.setAttribute("data-persona-composer-status","");let r=e.visible??!0;o.style.display=r?"":"none";let s=e.idleText??"Online";if(e.idleLink){let i=v("a");i.href=e.idleLink,i.target="_blank",i.rel="noopener noreferrer",i.textContent=s,i.style.color="inherit",i.style.textDecoration="none",o.appendChild(i)}else o.textContent=s;return o},Na=()=>Ce("div",{className:"persona-mb-3 persona-flex persona-flex-wrap persona-gap-2",attrs:{"data-persona-composer-suggestions":""}});var Oa=t=>{let{config:e}=t,n=Ce("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=Na(),r=Ce("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:i}=Ra(e);i();let l=Wa(e),p=Ha(e),c=Ba(e),d=Da(e);c&&(c.previewsContainer.style.gap="8px",r.append(c.previewsContainer,c.input)),r.append(s);let u=Ce("div",{className:"persona-widget-composer__actions persona-flex persona-items-center persona-justify-between persona-w-full",attrs:{"data-persona-composer-actions":""}}),b=v("div","persona-widget-composer__left-actions persona-flex persona-items-center persona-gap-2"),g=v("div","persona-widget-composer__right-actions persona-flex persona-items-center persona-gap-1");return c&&b.append(c.wrapper),p&&g.append(p.wrapper),g.append(l.wrapper),u.append(b,g),r.append(u),r.addEventListener("click",h=>{h.target!==l.button&&h.target!==l.wrapper&&h.target!==p?.button&&h.target!==p?.wrapper&&h.target!==c?.button&&h.target!==c?.wrapper&&s.focus()}),n.append(o,r,d),{footer:n,suggestions:o,composerForm:r,textarea:s,sendButton:l.button,sendButtonWrapper:l.wrapper,micButton:p?.button??null,micButtonWrapper:p?.wrapper??null,statusText:d,attachmentButton:c?.button??null,attachmentButtonWrapper:c?.wrapper??null,attachmentInput:c?.input??null,attachmentPreviewsContainer:c?.previewsContainer??null,actionsRow:u,leftActions:b,rightActions:g,setSendButtonMode:l.setMode}};Je();wt();var nf=()=>{let t=Ce("button",{className:"persona-pill-peek",attrs:{type:"button","data-persona-pill-peek":"","aria-label":"Show conversation",tabindex:"-1"}}),e=v("span","persona-pill-peek__icon"),n=ae("message-square",16,"currentColor",1.5);n&&e.appendChild(n);let o=v("span","persona-pill-peek__text"),r=v("span","persona-pill-peek__caret"),s=ae("chevron-up",16,"currentColor",1.5);return s&&r.appendChild(s),t.append(e,o,r),{root:t,textNode:o}},of=t=>{let{config:e}=t,n=Ce("div",{className:"persona-widget-footer persona-widget-footer--pill",attrs:{"data-persona-theme-zone":"composer"}}),o=Na(),r=Da(e);r.style.display="none";let{textarea:s,attachAutoResize:i}=Ra(e);s.style.maxHeight="100px",i();let l=Wa(e),p=Ha(e),c=Ba(e);c&&c.previewsContainer.classList.add("persona-pill-composer__previews");let d=Ce("form",{className:"persona-widget-composer persona-pill-composer",attrs:{"data-persona-composer-form":""},style:{outline:"none"}}),u=v("div","persona-widget-composer__left-actions persona-pill-composer__left");c&&u.append(c.wrapper);let b=v("div","persona-widget-composer__right-actions persona-pill-composer__right");p&&b.append(p.wrapper),b.append(l.wrapper),d.addEventListener("click",h=>{h.target!==l.button&&h.target!==l.wrapper&&h.target!==p?.button&&h.target!==p?.wrapper&&h.target!==c?.button&&h.target!==c?.wrapper&&s.focus()}),c&&d.append(c.input),d.append(u,s,b),c&&n.append(c.previewsContainer),n.append(o,d,r);let g=d;return{footer:n,suggestions:o,composerForm:d,textarea:s,sendButton:l.button,sendButtonWrapper:l.wrapper,micButton:p?.button??null,micButtonWrapper:p?.wrapper??null,statusText:r,attachmentButton:c?.button??null,attachmentButtonWrapper:c?.wrapper??null,attachmentInput:c?.input??null,attachmentPreviewsContainer:c?.previewsContainer??null,actionsRow:g,leftActions:u,rightActions:b,setSendButtonMode:l.setMode}};var rf=t=>{let e=t?.launcher?.enabled??!0,n=_t(t);if(_s(t)){let d=t?.launcher?.composerBar??{},u=v("div","persona-widget-wrapper persona-fixed persona-transition");u.setAttribute("data-persona-composer-bar",""),u.dataset.state="collapsed",u.dataset.expandedSize=d.expandedSize??"anchored",u.style.zIndex=String(t?.launcher?.zIndex??Qt);let b=v("div","persona-widget-panel persona-relative persona-flex persona-flex-1 persona-min-h-0 persona-flex-col");b.style.width="100%",u.appendChild(b);let g=v("div","persona-widget-pill-root");return g.setAttribute("data-persona-composer-bar",""),g.dataset.state="collapsed",g.dataset.expandedSize=d.expandedSize??"anchored",g.style.zIndex=String(t?.launcher?.zIndex??Qt),{wrapper:u,panel:b,pillRoot:g}}if(n){let d=v("div","persona-relative persona-h-full persona-w-full persona-flex persona-flex-1 persona-min-h-0 persona-flex-col"),u=v("div","persona-relative persona-h-full persona-w-full persona-flex persona-flex-1 persona-min-h-0 persona-flex-col");return d.appendChild(u),{wrapper:d,panel:u}}if(!e){let d=v("div","persona-relative persona-h-full persona-flex persona-flex-col persona-flex-1 persona-min-h-0"),u=v("div","persona-relative persona-flex-1 persona-flex persona-flex-col persona-min-h-0"),b=t?.launcher?.width??"100%";return d.style.width=b,u.style.width="100%",d.appendChild(u),{wrapper:d,panel:u}}let r=t?.launcher??{},s=r.position&&kn[r.position]?kn[r.position]:kn["bottom-right"],i=v("div",`persona-widget-wrapper persona-fixed ${s} persona-transition`);i.style.zIndex=String(t?.launcher?.zIndex??Qt);let l=v("div","persona-widget-panel persona-relative persona-min-h-[320px]"),c=t?.launcher?.width??t?.launcherWidth??Gn;return l.style.width=c,l.style.maxWidth=c,i.appendChild(l),{wrapper:i,panel:l}},Fa=t=>{let e=Ce("div",{className:"persona-suggestions",attrs:{"data-persona-suggestions":yc(t)}});return e.hidden=!0,e},uv=(t,e)=>{let n=v("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}=La(t,{showClose:e,wrapperClassName:"persona-composer-bar-close",buttonSize:"16px",iconSize:"14px"});r.style.position="absolute",r.style.top="8px",r.style.right="8px",r.style.zIndex="10";let s=t?.launcher?.clearChat?.enabled??!0,i=null,l=null;if(s){let G=Pa(t,{wrapperClassName:"persona-composer-bar-clear-chat",buttonSize:"16px",iconSize:"14px"});i=G.button,l=G.wrapper,l.style.position="absolute",l.style.top="8px",l.style.right="32px",l.style.zIndex="10"}let p=Ce("span",{className:"persona-widget-header",attrs:{"data-persona-theme-zone":"header"},style:{display:"none"}}),c=Ce("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"}});c.style.setProperty("scrollbar-gutter","stable");let d=Ce("h2",{className:"persona-text-lg persona-font-semibold persona-text-persona-primary",text:t?.copy?.welcomeTitle??"Hello \u{1F44B}"}),u=Ce("p",{className:"persona-mt-2 persona-text-sm persona-text-persona-muted",text:t?.copy?.welcomeSubtitle??"Ask anything about your account or products."}),b=Fa("starter"),g=Ce("div",{className:"persona-rounded-2xl persona-p-6",attrs:{"data-persona-intro-card":""},style:{background:"var(--persona-intro-card-bg, transparent)",boxShadow:"var(--persona-intro-card-shadow, none)"}},d,u,b),h=v("div","persona-flex persona-flex-col persona-gap-3"),C=Fa("followUp"),L=t?.layout?.contentMaxWidth;L&&(h.style.maxWidth=L,h.style.marginLeft="auto",h.style.marginRight="auto",h.style.width="100%"),t?.copy?.showWelcomeCard!==!1||(g.style.display="none",c.classList.remove("persona-gap-6"),c.classList.add("persona-gap-3")),c.append(g,h,C);let k=Ce("div",{className:"persona-composer-overlay persona-pointer-events-none",attrs:{"data-persona-composer-overlay":""},style:{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20"}}),S=of({config:t}),{root:E,textNode:z}=nf();return n.append(p,r,c,k),l&&n.appendChild(l),{container:n,body:c,messagesWrapper:h,starterSuggestions:b,transcriptSuggestions:C,composerOverlay:k,suggestions:S.suggestions,textarea:S.textarea,sendButton:S.sendButton,sendButtonWrapper:S.sendButtonWrapper,micButton:S.micButton,micButtonWrapper:S.micButtonWrapper,composerForm:S.composerForm,statusText:S.statusText,introTitle:d,introSubtitle:u,closeButton:o,closeButtonWrapper:r,clearChatButton:i,clearChatButtonWrapper:l,iconHolder:v("span"),headerTitle:v("span"),headerSubtitle:v("span"),header:p,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,peekBanner:E,peekTextNode:z}},sf=(t,e=!0)=>{if(_s(t))return uv(t,e);let n=Ce("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=t?.layout?.header,r=t?.layout?.showHeader!==!1,s=o?Ia(t,o,{showClose:e}):Uo({config:t,showClose:e}),i=Ce("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"}});i.style.setProperty("scrollbar-gutter","stable");let l=Ce("h2",{className:"persona-text-lg persona-font-semibold persona-text-persona-primary",text:t?.copy?.welcomeTitle??"Hello \u{1F44B}"}),p=Ce("p",{className:"persona-mt-2 persona-text-sm persona-text-persona-muted",text:t?.copy?.welcomeSubtitle??"Ask anything about your account or products."}),c=Fa("starter"),d=Ce("div",{className:"persona-rounded-2xl persona-p-6",attrs:{"data-persona-intro-card":""},style:{background:"var(--persona-intro-card-bg, transparent)",boxShadow:_t(t)?"none":"var(--persona-intro-card-shadow, none)"}},l,p,c),u=v("div","persona-flex persona-flex-col persona-gap-3"),b=Fa("followUp"),g=t?.layout?.contentMaxWidth;g&&(u.style.maxWidth=g,u.style.marginLeft="auto",u.style.marginRight="auto",u.style.width="100%"),t?.copy?.showWelcomeCard!==!1||(d.style.display="none",i.classList.remove("persona-gap-6"),i.classList.add("persona-gap-3")),i.append(d,u,b);let C=Oa({config:t}),L=t?.layout?.showFooter!==!1;r?$s(n,s,t):(s.header.style.display="none",$s(n,s,t)),n.append(i);let B=Ce("div",{className:"persona-composer-overlay persona-pointer-events-none",attrs:{"data-persona-composer-overlay":""},style:{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20"}});return L||(C.footer.style.display="none"),n.append(C.footer),n.append(B),{container:n,body:i,messagesWrapper:u,starterSuggestions:c,transcriptSuggestions:b,composerOverlay:B,suggestions:C.suggestions,textarea:C.textarea,sendButton:C.sendButton,sendButtonWrapper:C.sendButtonWrapper,micButton:C.micButton,micButtonWrapper:C.micButtonWrapper,composerForm:C.composerForm,statusText:C.statusText,introTitle:l,introSubtitle:p,closeButton:s.closeButton,closeButtonWrapper:s.closeButtonWrapper,clearChatButton:s.clearChatButton,clearChatButtonWrapper:s.clearChatButtonWrapper,iconHolder:s.iconHolder,headerTitle:s.headerTitle,headerSubtitle:s.headerSubtitle,header:s.header,footer:C.footer,attachmentButton:C.attachmentButton,attachmentButtonWrapper:C.attachmentButtonWrapper,attachmentInput:C.attachmentInput,attachmentPreviewsContainer:C.attachmentPreviewsContainer,actionsRow:C.actionsRow,leftActions:C.leftActions,rightActions:C.rightActions,setSendButtonMode:C.setSendButtonMode}};Je();wt();var bc=(t,e)=>{let n=v("button");n.type="button",n.innerHTML=`
|
|
202
|
+
`)),n=v("span","persona-code-line")),o(r.type,s[i])}return n.childNodes.length>0?e.appendChild(n):e.lastChild||e.appendChild(n),e}function Lf(t,e,n){let o=t.length<=Rv?Wv(e,n):null,r=o?$v(t,o):[{type:"plain",value:t}];return zv(r)}Ye();xt();Ye();xt();function jr(t){let{items:e,onSelect:n,anchor:o,position:r="bottom-left",portal:s}=t,i=v("div","persona-dropdown-menu persona-hidden");i.setAttribute("role","menu"),i.setAttribute("data-persona-theme-zone","dropdown"),s?(i.style.position="fixed",i.style.zIndex=String(ba)):(i.style.position="absolute",i.style.top="100%",i.style.marginTop="4px",r==="bottom-right"?i.style.right="0":i.style.left="0");for(let f of e){if(f.dividerBefore){let M=document.createElement("hr");i.appendChild(M)}let y=document.createElement("button");if(y.type="button",y.setAttribute("role","menuitem"),y.setAttribute("data-dropdown-item-id",f.id),f.destructive&&y.setAttribute("data-destructive",""),f.icon){let M=ie(f.icon,16,"currentColor",1.5);M&&y.appendChild(M)}let C=document.createElement("span");C.textContent=f.label,y.appendChild(C),y.addEventListener("click",M=>{M.stopPropagation(),d(),n(f.id)}),i.appendChild(y)}let l=null;function p(){if(!s)return;let f=o.getBoundingClientRect();i.style.top=`${f.bottom+4}px`,r==="bottom-right"?(i.style.right=`${window.innerWidth-f.right}px`,i.style.left="auto"):(i.style.left=`${f.left}px`,i.style.right="auto")}function c(){p(),i.classList.remove("persona-hidden"),requestAnimationFrame(()=>{let f=y=>{!i.contains(y.target)&&!o.contains(y.target)&&d()};document.addEventListener("click",f,!0),l=()=>document.removeEventListener("click",f,!0)})}function d(){i.classList.add("persona-hidden"),l?.(),l=null}function g(){i.classList.contains("persona-hidden")?c():d()}function b(){d(),i.remove()}return s&&s.appendChild(i),{element:i,show:c,hide:d,toggle:g,destroy:b}}function Dt(t){let{icon:e,label:n,size:o,strokeWidth:r,className:s,onClick:i,aria:l}=t,p=v("button","persona-icon-btn"+(s?" "+s:""));p.type="button",p.setAttribute("aria-label",n),p.title=n;let c=ie(e,o??16,"currentColor",r??2);if(c&&p.appendChild(c),i&&p.addEventListener("click",i),l)for(let[d,g]of Object.entries(l))p.setAttribute(d,g);return p}function nr(t){let{icon:e,label:n,variant:o="default",size:r="sm",iconSize:s,className:i,onClick:l,aria:p}=t,c="persona-label-btn";o!=="default"&&(c+=" persona-label-btn--"+o),c+=" persona-label-btn--"+r,i&&(c+=" "+i);let d=v("button",c);if(d.type="button",d.setAttribute("aria-label",n),e){let b=ie(e,s??14,"currentColor",2);b&&d.appendChild(b)}let g=v("span");if(g.textContent=n,d.appendChild(g),l&&d.addEventListener("click",l),p)for(let[b,f]of Object.entries(p))d.setAttribute(b,f);return d}function Da(t){let{items:e,selectedId:n,onSelect:o,className:r}=t,s=v("div","persona-toggle-group"+(r?" "+r:""));s.setAttribute("role","group");let i=n,l=[];function p(){for(let d of l)d.btn.setAttribute("aria-pressed",d.id===i?"true":"false")}for(let d of e){let g;d.icon?g=Dt({icon:d.icon,label:d.label,className:d.className,onClick:()=>{i=d.id,p(),o(d.id)}}):(g=v("button","persona-icon-btn"+(d.className?" "+d.className:"")),g.type="button",g.setAttribute("aria-label",d.label),g.title=d.label,g.textContent=d.label,g.addEventListener("click",()=>{i=d.id,p(),o(d.id)})),g.setAttribute("aria-pressed",d.id===i?"true":"false"),l.push({id:d.id,btn:g}),s.appendChild(g)}function c(d){i=d,p()}return{element:s,setSelected:c}}function Pf(t){let{label:e,icon:n="chevron-down",menuItems:o,onSelect:r,position:s="bottom-left",portal:i,className:l,hover:p}=t,c=v("div","persona-combo-btn"+(l?" "+l:""));c.style.position="relative",c.style.display="inline-flex",c.style.alignItems="center",c.style.cursor="pointer",c.setAttribute("role","button"),c.setAttribute("tabindex","0"),c.setAttribute("aria-haspopup","true"),c.setAttribute("aria-expanded","false"),c.setAttribute("aria-label",e);let d=v("span","persona-combo-btn-label");d.textContent=e,c.appendChild(d);let g=ie(n,14,"currentColor",2);g&&(g.style.marginLeft="4px",g.style.opacity="0.6",c.appendChild(g)),p&&(c.style.borderRadius=p.borderRadius??"10px",c.style.padding=p.padding??"6px 4px 6px 12px",c.style.border="1px solid transparent",c.style.transition="background-color 0.15s ease, border-color 0.15s ease",c.addEventListener("mouseenter",()=>{c.style.backgroundColor=p.background??"",c.style.borderColor=p.border??""}),c.addEventListener("mouseleave",()=>{c.style.backgroundColor="",c.style.borderColor="transparent"}));let b=jr({items:o,onSelect:f=>{c.setAttribute("aria-expanded","false"),r(f)},anchor:c,position:s,portal:i});return i||c.appendChild(b.element),c.addEventListener("click",f=>{f.stopPropagation();let y=!b.element.classList.contains("persona-hidden");c.setAttribute("aria-expanded",y?"false":"true"),b.toggle()}),c.addEventListener("keydown",f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),c.click())}),{element:c,setLabel:f=>{d.textContent=f,c.setAttribute("aria-label",f)},open:()=>{c.setAttribute("aria-expanded","true"),b.show()},close:()=>{c.setAttribute("aria-expanded","false"),b.hide()},toggle:()=>{let f=!b.element.classList.contains("persona-hidden");c.setAttribute("aria-expanded",f?"false":"true"),b.toggle()},destroy:()=>{b.destroy(),c.remove()}}}Ye();var Oa="persona-artifact-custom-action-btn";function Vr(t,e){let n=e?.documentChrome??!1,o;if(typeof t.icon=="function"){if(t.showLabel){let r="persona-label-btn persona-label-btn--sm "+Oa+(n?" persona-artifact-doc-copy-btn":"");o=v("button",r)}else{let r="persona-icon-btn "+Oa+(n?" persona-artifact-doc-icon-btn":"");o=v("button",r)}o.type="button",o.setAttribute("aria-label",t.label),o.title=t.label;try{let r=t.icon();r&&o.appendChild(r)}catch{}if(t.showLabel){let r=v("span");r.textContent=t.label,o.appendChild(r)}}else t.showLabel||!t.icon?o=nr({icon:t.icon,label:t.label,className:Oa+(n?" persona-artifact-doc-copy-btn":"")}):o=Dt({icon:t.icon,label:t.label,className:Oa+(n?" persona-artifact-doc-icon-btn":"")});return e?.onClick&&o.addEventListener("click",e.onClick),o}function Xs(t){if(!t)return null;let e={artifactId:t.id,title:t.title??"",artifactType:t.artifactType};return t.artifactType==="markdown"?(e.markdown=t.markdown??"",t.file&&(e.file=t.file)):e.jsonPayload=JSON.stringify({component:t.component,props:t.props},null,2),e}function If(t,e){let n=t.file&&typeof t.file=="object"&&!Array.isArray(t.file)?t.file:void 0,o=typeof t.title=="string"&&t.title?t.title:"Untitled artifact",r=n?Fn(n.path):o,s=typeof t.artifactId=="string"?t.artifactId:"",i=t.status==="streaming"?"streaming":"complete",l=typeof t.artifactType=="string"?t.artifactType:"markdown",p=t.presentation&&typeof t.presentation=="object"&&!Array.isArray(t.presentation)?t.presentation:void 0,c=n?Eo(n):l==="component"?"Component":"Document",d=document.createElement("div");d.className="persona-artifact-card persona-flex persona-w-full persona-max-w-full persona-items-center persona-gap-3 persona-px-4 persona-py-3",d.tabIndex=0,d.setAttribute("role","button"),d.setAttribute("aria-label",`Open ${r} in artifact panel`),s&&d.setAttribute("data-open-artifact",s);let g=document.createElement("div");g.className="persona-flex persona-h-10 persona-w-10 persona-flex-shrink-0 persona-items-center persona-justify-center persona-rounded-lg",g.style.border="1px solid var(--persona-border, #e5e7eb)",g.style.color="var(--persona-muted, #9ca3af)",g.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>';let b=document.createElement("div");b.className="persona-min-w-0 persona-flex-1 persona-flex persona-flex-col persona-gap-0.5";let f=document.createElement("div");f.className="persona-truncate persona-text-sm persona-font-medium",f.style.color="var(--persona-text, #1f2937)",f.textContent=r;let y=document.createElement("div");if(y.className="persona-text-xs persona-flex persona-items-center persona-gap-1.5",y.style.color="var(--persona-muted, #9ca3af)",i==="streaming"){let C=e?.config?.features?.artifacts,M={id:s,artifactType:l==="component"?"component":"markdown",title:o,status:"streaming",...typeof t.markdown=="string"?{markdown:t.markdown}:{},...n?{file:n}:{},...p?{presentation:p}:{}},I=Ur(M,C,"card");tr(y,I,C)}else s&&zr(s),y.textContent=c;if(b.append(f,y),d.append(g,b),i==="complete"){let C=e?.config?.features?.artifacts?.cardActions;if(C&&C.length>0){let I={artifactId:s||null,title:r,artifactType:l,markdown:typeof t.markdown=="string"?t.markdown:void 0,file:n};for(let S of C)try{if(S.visible===void 0||S.visible(I)){let E=Vr(S);E.setAttribute("data-artifact-custom-action",S.id),E.className=`${E.className} persona-flex-shrink-0`,d.append(E)}}catch{}}let M=nr({label:"Download",className:"persona-flex-shrink-0"});M.title=`Download ${r}`,M.setAttribute("data-download-artifact",s),d.append(M)}return d}var Na=(t,e)=>{let n=e?.config?.features?.artifacts?.renderCard;if(n){let o=typeof t.title=="string"&&t.title?t.title:"Untitled artifact",r=typeof t.artifactId=="string"?t.artifactId:"",s=t.status==="streaming"?"streaming":"complete",i=typeof t.artifactType=="string"?t.artifactType:"markdown",l=n({artifact:{artifactId:r,title:o,artifactType:i,status:s},config:e.config,defaultRenderer:()=>If(t,e)});if(l)return l}return If(t,e)};Ye();xt();var Lo=new WeakMap;function qc(t,e,n){if(e.length===0)return;let o=new Map(e.map(r=>[r.id,r]));t.querySelectorAll("[data-artifact-inline]").forEach(r=>{let s=Lo.get(r);if(!s)return;let i=o.get(r.getAttribute("data-artifact-inline")??"");i&&s(i,n)})}function Df(t){return Lo.has(t)}function Uv(t){let e=typeof t.artifactId=="string"?t.artifactId:"",n=typeof t.title=="string"&&t.title?t.title:void 0,o=t.status==="streaming"?"streaming":"complete",r=t.presentation&&typeof t.presentation=="object"&&!Array.isArray(t.presentation)?t.presentation:void 0;if(t.artifactType==="component"){let i=t.componentProps,l=i&&typeof i=="object"&&!Array.isArray(i)?i:{};return{id:e,artifactType:"component",title:n,status:o,component:typeof t.component=="string"?t.component:"",props:l,...r?{presentation:r}:{}}}let s=t.file&&typeof t.file=="object"&&!Array.isArray(t.file)?t.file:void 0;return{id:e,artifactType:"markdown",title:n,status:o,markdown:typeof t.markdown=="string"?t.markdown:"",...s?{file:s}:{},...r?{presentation:r}:{}}}function Rf(t){let e=t.artifactType==="markdown"?t.file:void 0,n=e?Fn(e.path):t.title&&t.title.trim()?t.title:"Untitled artifact",o=e?Eo(e):t.artifactType==="component"?"Component":"Document";return{title:n,typeLabel:o}}function jv(t){let e={artifactId:t.id,title:t.title??"",status:t.status,artifactType:t.artifactType};return t.artifactType==="markdown"&&(typeof t.markdown=="string"&&(e.markdown=t.markdown),t.file&&(e.file=t.file)),e}var Wf=180,Vv=240,qv=.8,Kv=300,Gv=500,Qv="cubic-bezier(0.2, 0, 0, 1)",Hf=240,Xv=.35;function Yv(t,e,n){let{swap:o,onSettled:r}=n,s=!1;try{s=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{s=!1}if(!e||!t.isConnected||s||typeof t.animate!="function"){o(),r();return}t.style.height=`${e}px`,t.style.overflow="hidden";let i=[];for(let l of Array.from(t.children))l instanceof HTMLElement&&i.push(l.animate([{opacity:1},{opacity:0}],{duration:Wf,easing:"ease-out",fill:"forwards"}));window.setTimeout(()=>{for(let I of i)I.cancel();o();let l=()=>{t.style.removeProperty("height"),t.style.removeProperty("overflow")};if(!t.isConnected){l(),r();return}t.style.height="auto";let p=t.getBoundingClientRect().height;if(t.style.height=`${e}px`,!p||Math.abs(p-e)<1){l(),r();return}let c=Math.abs(e-p),d=Math.round(Math.min(Gv,Math.max(Kv,Vv+c*qv))),g=Math.round(d*Xv),b=t.firstElementChild instanceof HTMLElement?t.firstElementChild:null,f=b?b.animate([{opacity:0},{opacity:1}],{duration:Hf,delay:g,easing:"ease-out",fill:"backwards"}):null,y=t.animate([{height:`${e}px`},{height:`${p}px`}],{duration:d,easing:Qv});t.style.height=`${p}px`;let C=!1,M=()=>{C||(C=!0,l(),r())};Promise.allSettled([y.finished,f?.finished].filter(Boolean)).then(M),window.setTimeout(M,Math.max(d,g+Hf)+120)},Wf)}function Jv(t){let e=t?.inlineChrome;if(e===!1)return{chromeEnabled:!1,showCopy:!1,showExpand:!1,showViewToggle:!1};let n=typeof e=="object"?e:void 0;return{chromeEnabled:!0,showCopy:n?.showCopy!==!1,showExpand:n?.showExpand!==!1,showViewToggle:n?.showViewToggle!==!1}}var Ys="--persona-artifact-inline-body-height";function Zv(t){let e=t?.inlineBody,n=e?.streamingView==="status"?"status":"source",o=e?.viewMode==="source"?"source":"rendered",r=320,s=320,i=e?.height;typeof i=="number"||i==="auto"?(r=i,s=i):i&&typeof i=="object"&&(r=i.streaming??320,s=i.complete??320);let l=e?.overflow==="clip"?"clip":"scroll",p=l==="clip"?!1:e?.followOutput!==!1,c,d,g=e?.fadeMask;g===!0?(c=!0,d=!0):g===!1?(c=!1,d=!1):g&&typeof g=="object"?(c=g.top===!0,d=g.bottom===!0):l==="clip"?(c=!1,d=!0):(c=!0,d=!0);let b=e?.transition==="none"?"none":"auto",f=e?.completeDisplay==="card"?"card":"inline";return{streamingView:n,viewMode:o,streamingHeight:r,completeHeight:s,followOutput:p,overflow:l,fadeTop:c,fadeBottom:d,transition:b,completeDisplay:f}}function Bf(t,e){let n=Uv(t),o=e.config?.features?.artifacts,{chromeEnabled:r,showCopy:s,showExpand:i,showViewToggle:l}=Jv(o),p=o?.inlineActions??[],c=Zv(o),d=c.completeDisplay==="card",g=null,b=n,f=v("div","persona-artifact-inline persona-w-full persona-max-w-full");f.setAttribute("data-persona-theme-zone","artifact-inline"),n.id&&f.setAttribute("data-artifact-inline",n.id);let y=Y=>Na(jv(Y),e),C=Y=>{f.classList.add("persona-artifact-inline--card"),f.style.removeProperty(Ys),f.replaceChildren(y(Y)),Lo.set(f,pe=>{f.replaceChildren(y(pe))})};if(d&&n.status==="complete")return C(n),f;let M=Fa(n,{config:e.config,bodyLayout:c,resolveViewMode:()=>g??c.viewMode}),I=v("div","persona-artifact-inline-body");I.appendChild(M.el);let S=Y=>{let pe=Y.status!=="complete",ne=pe?c.streamingHeight:c.completeHeight,me=typeof ne=="number";me?f.style.setProperty(Ys,`${ne}px`):f.style.removeProperty(Ys);let ve=!!M.el.querySelector(".persona-code-pre"),be=!!M.el.querySelector("iframe, .persona-artifact-source-window--fixed, .persona-artifact-status-view");I.classList.toggle("persona-artifact-content-flush",ve),I.classList.toggle("persona-artifact-inline-body--sized",me&&be),I.classList.toggle("persona-artifact-inline-body--cap",!pe&&!be&&typeof c.completeHeight=="number")},E=n.status,L=(Y,pe)=>{E!=="complete"&&Y.status==="complete"?(typeof c.completeHeight=="number"?f.style.setProperty(Ys,`${c.completeHeight}px`):f.style.removeProperty(Ys),Nf(I,pe?.suppressTransition?"none":c.transition,Y.id,()=>{M.update(Y),S(Y)})):M.update(Y),S(Y),E=Y.status};S(n);let D=c.overflow==="clip"&&i&&!!n.id;if(D&&(I.setAttribute("data-expand-artifact-inline",n.id),I.setAttribute("role","button"),I.setAttribute("tabindex","0"),I.classList.add("persona-cursor-pointer"),I.setAttribute("aria-label",`Open ${Rf(n).title} in panel`)),!r)return f.appendChild(I),Lo.set(f,L),f;let z=v("div","persona-artifact-inline-chrome");z.setAttribute("data-persona-theme-zone","artifact-inline-chrome");let $=v("div","persona-artifact-inline-chrome-lead"),F=v("span","persona-flex persona-items-center persona-flex-shrink-0"),B=ie("file-text",16,"currentColor",2);B&&F.appendChild(B);let H=v("span","persona-artifact-inline-title persona-truncate persona-min-w-0"),w=v("span","persona-artifact-inline-type");$.append(F,H,w);let N=v("div","persona-artifact-inline-chrome-actions"),K=v("span","persona-flex persona-items-center persona-gap-1"),te=()=>g??c.viewMode,Q=l?Da({items:[{id:"rendered",icon:"eye",label:"Rendered view",className:"persona-artifact-doc-icon-btn persona-artifact-view-btn"},{id:"source",icon:"code-xml",label:"Source",className:"persona-artifact-doc-icon-btn persona-artifact-code-btn"}],selectedId:te(),className:"persona-artifact-toggle-group persona-flex-shrink-0",onSelect:Y=>{let pe=Y==="source"?"source":"rendered";pe!==te()&&(g=pe,M.update(b),S(b))}}):null,se=s?Dt({icon:"copy",label:"Copy",className:"persona-artifact-doc-icon-btn persona-flex-shrink-0"}):null;se&&n.id&&se.setAttribute("data-copy-artifact",n.id);let J=i?Dt({icon:"maximize",label:"Open in panel",className:"persona-artifact-doc-icon-btn persona-flex-shrink-0"}):null;J&&n.id&&J.setAttribute("data-expand-artifact-inline",n.id),N.appendChild(K),Q&&N.appendChild(Q.element),se&&N.appendChild(se),J&&N.appendChild(J),z.append($,N),f.append(z,I);let oe=Y=>{let{title:pe,typeLabel:ne}=Rf(Y);H.textContent=pe,H.title=pe,D&&I.setAttribute("aria-label",`Open ${pe} in panel`);let me=Y.status!=="complete";if(me){w.classList.contains("persona-artifact-inline-status")||(w.className="persona-artifact-inline-status",w.removeAttribute("data-preserve-animation"),w.replaceChildren());let ve=Ur(Y,o,"inline-chrome");tr(w,ve,o)}else zr(Y.id),w.className="persona-artifact-inline-type",w.removeAttribute("data-preserve-animation"),w.replaceChildren(),w.textContent=ne;if(se&&se.classList.toggle("persona-hidden",me),Q){let ve=Y.artifactType==="markdown"?Y.file:void 0,be=!1;if(!me&&ve&&c.viewMode!=="source"){let Te=er(ve);Te==="markdown"?be=!0:(Te==="html"||Te==="svg")&&(be=o?.filePreview?.enabled!==!1)}Q.element.classList.toggle("persona-hidden",!be),Q.setSelected(te())}if(K.replaceChildren(),!me&&p.length>0){let ve=Xs(Y);if(ve)for(let be of p)try{if(be.visible===void 0||be.visible(ve)){let Te=Vr(be,{documentChrome:!0});Te.setAttribute("data-artifact-custom-action",be.id),Te.classList.add("persona-flex-shrink-0"),K.appendChild(Te)}}catch{}}};return oe(n),Lo.set(f,(Y,pe)=>{if(d&&E!=="complete"&&Y.status==="complete"){let ne=f.isConnected?f.getBoundingClientRect().height:0;E="complete";let me=Y,ve=!1,be=Te=>{me=Te,ve=!0};Lo.set(f,be),Yv(f,ne,{swap:()=>{C(me),ve=!1,Lo.set(f,be)},onSettled:()=>{ve?C(me):Lo.set(f,Te=>{f.replaceChildren(y(Te))})}});return}(Y.status!=="complete"||Y.id!==b.id)&&(g=null),b=Y,L(Y,pe),oe(Y)}),f}var Of=(t,e)=>{let n=e?.config?.features?.artifacts?.renderInline;if(n){let o=typeof t.title=="string"&&t.title?t.title:"Untitled artifact",r=typeof t.artifactId=="string"?t.artifactId:"",s=t.status==="streaming"?"streaming":"complete",i=typeof t.artifactType=="string"?t.artifactType:"markdown",l=n({artifact:{artifactId:r,title:o,artifactType:i,status:s},config:e.config,defaultRenderer:()=>Bf(t,e)});if(l)return l}return Bf(t,e)};var Kc=class{constructor(){this.components=new Map;this.options=new Map}register(e,n,o){this.components.has(e)&&console.warn(`[ComponentRegistry] Component "${e}" is already registered. Overwriting.`),this.components.set(e,n),o?this.options.set(e,o):this.options.delete(e)}unregister(e){this.components.delete(e),this.options.delete(e)}get(e){return this.components.get(e)}has(e){return this.components.has(e)}getOptions(e){return this.options.get(e)}getAllNames(){return Array.from(this.components.keys())}clear(){this.components.clear(),this.options.clear()}registerAll(e){Object.entries(e).forEach(([n,o])=>{this.register(n,o)})}},oo=new Kc;oo.register("PersonaArtifactCard",Na,{bubbleChrome:!1});oo.register("PersonaArtifactInline",Of,{bubbleChrome:!1});function Js(t){if(!t)return"";if(t.artifactType==="markdown"){let e=t.markdown??"";return t.file?Wa(e):e}return JSON.stringify({component:t.component,props:t.props},null,2)}var Gc=!1;function ex(t){return"persona-artifact-vt-"+((t||"artifact").replace(/[^A-Za-z0-9_-]/g,"-").replace(/^-+/,"")||"artifact")}function Nf(t,e,n,o){let r=typeof document<"u"?document.startViewTransition:void 0,s=!1;try{s=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{s=!1}if(e!=="auto"||!t||typeof r!="function"||Gc||s){o();return}Gc=!0;let i=ex(n);t.style.setProperty("view-transition-name",i);let l=()=>{Gc=!1,t.style.removeProperty("view-transition-name")};try{r.call(document,()=>{o()}).finished.then(l,l)}catch{l(),o()}}var tx="persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-break-words persona-text-persona-primary",nx="persona-text-sm persona-leading-relaxed persona-markdown-bubble";function ox(t){let e=v("div","persona-rounded-lg persona-border persona-border-persona-border persona-p-3 persona-text-persona-primary"),n=v("div","persona-font-semibold persona-text-sm persona-mb-2");n.textContent=t.component?`Component: ${t.component}`:"Component";let o=v("pre","persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-overflow-x-auto");return o.textContent=JSON.stringify(t.props??{},null,2),e.appendChild(n),e.appendChild(o),e}function rx(t){if(t===!1)return{enabled:!1,delayMs:0,minVisibleMs:0,timeoutMs:0,injectReadySignal:!1,label:"Starting preview...",labelDelayMs:2e3};let e=t&&typeof t=="object"?t:void 0;return{enabled:!0,delayMs:e?.delayMs??200,minVisibleMs:e?.minVisibleMs??300,timeoutMs:e?.timeoutMs??8e3,injectReadySignal:e?.injectReadySignal!==!1,label:e?.label===!1?!1:e?.label??"Starting preview...",labelDelayMs:e?.labelDelayMs??2e3,renderIndicator:e?.renderIndicator}}var sx=220;function ix(){try{if(typeof crypto<"u"&&crypto.getRandomValues){let t=new Uint32Array(2);return crypto.getRandomValues(t),t[0].toString(36)+t[1].toString(36)}}catch{}return Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2)}function ax(t){return`
|
|
203
|
+
<script>(function(){var d=false;var t=`+JSON.stringify(t)+";function r(){if(d)return;d=true;try{parent.postMessage({persona:'artifact-preview-ready',token:t},'*');}catch(e){}}function s(){if(typeof requestAnimationFrame==='function'){requestAnimationFrame(function(){requestAnimationFrame(r);});}setTimeout(r,150);}if(document.readyState==='complete'){s();}else{window.addEventListener('load',s);}})();</script>"}function lx(t,e,n){let o=v("div","persona-artifact-frame-loading");if(n.renderIndicator)try{let i=n.renderIndicator({artifactId:t,config:e});if(i)return o.appendChild(i),{el:o,revealLabel:()=>{}}}catch{}let r=v("div","persona-artifact-frame-loading-indicator");r.appendChild(Cf());let s=null;return n.label!==!1&&(s=v("div","persona-artifact-frame-loading-text"),s.textContent=n.label,r.appendChild(s)),o.appendChild(r),{el:o,revealLabel:()=>{s&&s.classList.add("persona-artifact-frame-loading-text--visible")}}}function cx(t,e,n,o,r,s){let i=null,l=0,p=!1,c=new Set,d=()=>{c.forEach(E=>clearTimeout(E)),c.clear()},g=(E,L)=>{let D=setTimeout(()=>{c.delete(D),E()},L);c.add(D)},b=()=>{i&&i.parentElement&&i.remove(),i=null},f=()=>{if(i||p)return;let E=lx(r,s,o);i=E.el,t.appendChild(i),l=Date.now(),o.label!==!1&&g(E.revealLabel,o.labelDelayMs)},y=()=>{i&&(i.classList.add("persona-artifact-frame-loading--out"),g(b,sx))},C=()=>{n!==null?typeof window<"u"&&window.removeEventListener("message",I):e.removeEventListener("load",S)},M=()=>{if(p||(p=!0,C(),d(),!i))return;let E=Math.max(0,o.minVisibleMs-(Date.now()-l));E>0?g(y,E):y()};function I(E){if(n===null)return;let L=E.data;!L||L.persona!=="artifact-preview-ready"||L.token!==n||E.source===e.contentWindow&&M()}function S(){let E=L=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>L()):setTimeout(L,0)};E(()=>E(()=>M()))}return g(f,o.delayMs),g(M,o.timeoutMs),n!==null?typeof window<"u"&&window.addEventListener("message",I):e.addEventListener("load",S),()=>{p=!0,d(),C(),b()}}function Fa(t,e){let{config:n}=e,o=e.registry??oo,r=e.bodyLayout,s=n.markdown?Qi(n.markdown):null,i=Xi(n.sanitize),l=t,p=!1,c=J=>{let oe=Jn()!==null;s&&!oe&&!p&&(p=!0,Gi(()=>se(l)));let Y=s?s(J):vo(J);return s&&oe&&i?i(Y):Y},d=v("div","persona-artifact-preview-body"),g=null,b=null,f=null,y=()=>{f&&(f(),f=null),g=null,b=null},C=null,M=null,I=null,S=!1,E=()=>{C=null,M=null,I=null,S=!1},L=null,D=null,z=()=>{L=null,D=null},$=40,F=0,B=J=>typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>J()):setTimeout(J,0),H=J=>J.scrollHeight-J.clientHeight-J.scrollTop<=$,w=J=>{if(!r)return;let oe=J.scrollHeight-J.clientHeight>1,Y=J.scrollHeight-J.clientHeight-J.scrollTop;J.classList.toggle("persona-artifact-fade-top",r.fadeTop&&oe&&J.scrollTop>1),J.classList.toggle("persona-artifact-fade-bottom",r.fadeBottom&&oe&&Y>1)},N=J=>{F||(F=B(()=>{F=0,J.scrollTop=J.scrollHeight,w(J)}))},K=(J,oe,Y,pe)=>{let ne=!!r,me=Y.id+"|"+(ne?"w":"p");if(!C||I!==me||C.parentElement!==d){y(),z(),d.replaceChildren();let Te=v("pre",tx+" persona-code-pre"),ze=v("code","persona-code");if(Te.appendChild(ze),ne){let Oe=v("div","persona-artifact-source-window");if(Oe.appendChild(Te),d.appendChild(Oe),!(r?.overflow==="clip")&&typeof Oe.addEventListener=="function"){let Be=()=>Oe.scrollHeight-Oe.clientHeight>1;Oe.addEventListener("scroll",()=>{H(Oe)&&(S=!1),w(Oe)},{passive:!0}),Oe.addEventListener("wheel",Ue=>{Be()&&Ue.deltaY<0&&(S=!0)},{passive:!0}),Oe.addEventListener("touchmove",()=>{Be()&&(S=!0)},{passive:!0})}C=Oe}else d.appendChild(Te),C=Te;M=ze,I=me}let ve=ne?C:null;ve&&(ve.classList.toggle("persona-artifact-source-window--fixed",pe),ve.classList.toggle("persona-artifact-source-window--clip",pe&&r?.overflow==="clip"));let be=ve?H(ve):!0;if(M.replaceChildren(Lf(J,oe?.language,oe?.path)),ve){let Te=Y.status!=="complete";pe&&Te&&r?.followOutput&&!S&&be?N(ve):Te||(S=!1),w(ve)}},te=J=>{y(),E(),z(),d.replaceChildren();let oe=v("div",nx);oe.innerHTML=c(J),d.appendChild(oe)},Q=J=>{let oe=J.id,Y=n.features?.artifacts,pe=Ur(J,Y,"status-body");if(L&&D===oe&&L.parentElement===d){let ve=L.querySelector(".persona-artifact-status-view-text");ve&&tr(ve,pe,Y);return}y(),E(),d.replaceChildren();let ne=v("div","persona-artifact-status-view"),me=v("div","persona-artifact-status-view-text");tr(me,pe,Y),ne.appendChild(me),d.appendChild(ne),L=ne,D=oe},se=J=>{l=J;let oe=e.resolveViewMode?.(J)??r?.viewMode??"rendered",Y=J.artifactType==="markdown"?J.file:void 0,pe=J.status!=="complete";pe||zr(J.id);let ne=pe?r?.streamingHeight:r?.completeHeight,me=!!r&&typeof ne=="number";if(r?.streamingView==="status"&&pe){Q(J);return}if(Y){let be=Wa(J.markdown??""),Te=er(Y),ze=n.features?.artifacts?.filePreview?.enabled!==!1;if(!pe&&oe==="rendered"&&ze&&(Te==="html"||Te==="svg")){let Ne=J.id+"\0"+be;if(g&&b===Ne&&g.parentElement===d)return;E(),z(),y(),d.replaceChildren();let Be=n.features?.artifacts?.filePreview,Ue=Be?.iframeSandbox??"allow-scripts";!Be?.dangerouslyAllowSameOrigin&&Ue.includes("allow-same-origin")&&(console.warn("[AgentWidget] Stripped allow-same-origin from filePreview.iframeSandbox: it lets artifact content run with the page origin. Set filePreview.dangerouslyAllowSameOrigin to keep it."),Ue=Ue.split(/\s+/).filter(bt=>bt&&bt!=="allow-same-origin").join(" "));let Me=rx(Be?.loading),Ee=v("div","persona-artifact-frame"),Ve=v("iframe","persona-artifact-iframe");Ve.setAttribute("sandbox",Ue),Ve.setAttribute("data-artifact-id",J.id);let Jt=null;Me.enabled&&Me.injectReadySignal?(Jt=ix(),Ve.srcdoc=be+ax(Jt)):Ve.srcdoc=be,Ee.appendChild(Ve),d.appendChild(Ee),Me.enabled&&(f=cx(Ee,Ve,Jt,Me,J.id,n)),g=Ee,b=Ne;return}if(y(),!pe&&Te==="markdown"&&oe==="rendered"){te(be);return}K(be,{language:Y.language,path:Y.path},J,me);return}if(J.artifactType==="markdown"){if(oe==="source"){y(),K(J.markdown??"",void 0,J,me);return}te(J.markdown??"");return}y(),E(),z(),d.replaceChildren();let ve=J.component?o.get(J.component):void 0;if(ve){let Te={message:{id:J.id,role:"assistant",content:"",createdAt:new Date().toISOString()},config:n,updateProps:()=>{}};try{let ze=ve(J.props??{},Te);if(ze){d.appendChild(ze);return}}catch{}}d.appendChild(ox(J))};return se(t),{el:d,update(J){se(J)}}}var Ff=require("idiomorph"),_a=(t,e,n={})=>{let{preserveTypingAnimation:o=!0}=n;Ff.Idiomorph.morph(t,e.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 i=r.textContent??"",l=s.textContent??"";if(i!==l)return}return!1}}}}})};var _f=t=>t.replace(/^\n+/,"").replace(/\s+$/,"");var Qc={index:-1,draft:""};function $f(t){let{direction:e,history:n,currentValue:o,atStart:r,state:s}=t,i=s.index!==-1;if(n.length===0)return{handled:!1,state:s};if(e==="up"){if(!i&&!r)return{handled:!1,state:s};if(!i){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(!i)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 zf(t,e){return[t.id,t.role,t.content?.length??0,t.content?.slice(-32)??"",t.streaming?"1":"0",t.voiceProcessing?"1":"0",t.variant??"",t.rawContent?.length??0,t.llmContent?.length??0,t.approval?.status??"",t.toolCall?.status??"",t.toolCall?.name??"",t.toolCall?.chunks?.length??0,t.toolCall?.chunks?.[t.toolCall.chunks.length-1]?.slice(-32)??"",typeof t.toolCall?.args=="string"?t.toolCall.args.length:t.toolCall?.args?JSON.stringify(t.toolCall.args).length:0,t.reasoning?.chunks?.length??0,t.reasoning?.chunks?.[t.reasoning.chunks.length-1]?.length??0,t.reasoning?.chunks?.[t.reasoning.chunks.length-1]?.slice(-32)??"",t.contentParts?.length??0,t.stopReason??"",e].join("\0")}function Uf(){return new Map}function jf(t,e,n){let o=t.get(e);return o&&o.fingerprint===n?o.wrapper:null}function Vf(t,e,n,o){t.set(e,{fingerprint:n,wrapper:o})}function qf(t,e){for(let n of t.keys())e.has(n)||t.delete(n)}function Kf(t){return t.role!=="assistant"||t.variant==="tool"||t.variant==="reasoning"?!1:t.variant==="approval"?!0:!!(t.content?.trim()||t.rawContent?.trim()||t.contentParts?.length)}function $a(t=!0){let e=t;return{isFollowing:()=>e,pause:()=>e?(e=!1,!0):!1,resume:()=>e?!1:(e=!0,!0)}}function _n(t){return Math.max(0,t.scrollHeight-t.clientHeight)}function ro(t,e){return _n(t)-t.scrollTop<=e}function za(t){let{following:e,currentScrollTop:n,lastScrollTop:o,nearBottom:r,userScrollThreshold:s,isAutoScrolling:i=!1,pauseOnUpwardScroll:l=!1,pauseWhenAwayFromBottom:p=!0,resumeRequiresDownwardScroll:c=!1}=t,d=n-o;return i||Math.abs(d)<s?{action:"none",delta:d,nextLastScrollTop:n}:!e&&r&&(!c||d>0)?{action:"resume",delta:d,nextLastScrollTop:n}:e&&l&&d<0?{action:"pause",delta:d,nextLastScrollTop:n}:e&&p&&!r?{action:"pause",delta:d,nextLastScrollTop:n}:{action:"none",delta:d,nextLastScrollTop:n}}function Ua(t){let{following:e,deltaY:n,nearBottom:o=!1,resumeWhenNearBottom:r=!1}=t;return e&&n<0?"pause":!e&&r&&n>0&&o?"resume":"none"}function Gf(t,e){return!t||t.isCollapsed?!1:e.contains(t.anchorNode)||e.contains(t.focusNode)}function Xc(t){let e=Math.max(0,t.anchorOffsetTop-t.topOffset),n=Math.max(0,e+t.viewportHeight-t.contentHeight+(t.slack??0));return{targetScrollTop:e,spacerHeight:n}}function Qf(t){let e=Math.max(0,t.currentContentHeight-t.contentHeightAtAnchor);return Math.max(0,t.initialSpacerHeight-e)}var Zs={type:"none",placeholder:"none",speed:120,duration:1800,buffer:"none"},dx=["pre","code","a","script","style"],ja=t=>({type:t?.type??Zs.type,placeholder:t?.placeholder??Zs.placeholder,speed:t?.speed??Zs.speed,duration:t?.duration??Zs.duration,buffer:t?.buffer??Zs.buffer}),px=[{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"}],Yf=new Map;for(let t of px)Yf.set(t.name,t);var qr=(t,e)=>t==="none"?null:e&&Object.prototype.hasOwnProperty.call(e,t)?e[t]??null:Yf.get(t)??null,Va=(t,e,n,o,r)=>{if(!r)return t;if(n?.bufferContent)return n.bufferContent(t,o);if(!t)return t;if(e==="word"){let s=t.search(/\s(?=\S*$)/);return s<0?"":t.slice(0,s)}if(e==="line"){let s=t.lastIndexOf(`
|
|
204
|
+
`);return s<0?"":t.slice(0,s)}return t},ux=(t,e,n,o)=>{let r=t.createElement("span");return r.className="persona-stream-char",r.id=`stream-c-${n}-${o}`,r.style.setProperty("--char-index",String(o)),r.textContent=e,r},gx=(t,e,n,o)=>{let r=t.createElement("span");return r.className="persona-stream-word",r.id=`stream-w-${n}-${o}`,r.style.setProperty("--word-index",String(o)),r.textContent=e,r},Yc=/\s/,fx=(t,e)=>{let n=t.parentNode;for(;n;){if(n.nodeType===1){let o=n;if(e.has(o.tagName.toLowerCase()))return!0}n=n.parentNode}return!1},mx=(t,e,n)=>{let o=t.ownerDocument,r=t.parentNode;if(!o||!r)return;let s=t.nodeValue??"";if(!s)return;let i=o.createDocumentFragment(),l=0;for(;l<s.length;)if(Yc.test(s[l])){let p=l;for(;p<s.length&&Yc.test(s[p]);)p+=1;i.appendChild(o.createTextNode(s.slice(l,p))),l=p}else{let p=o.createElement("span");p.className="persona-stream-word-group";let c=l;for(;c<s.length&&!Yc.test(s[c]);)p.appendChild(ux(o,s[c],e,n.value)),n.value+=1,c+=1;i.appendChild(p),l=c}r.replaceChild(i,t)},hx=(t,e,n)=>{let o=t.ownerDocument,r=t.parentNode;if(!o||!r)return;let s=t.nodeValue??"";if(!s)return;let i=o.createDocumentFragment(),l=s.split(/(\s+)/);for(let p of l)p&&(/^\s+$/.test(p)?i.appendChild(o.createTextNode(p)):(i.appendChild(gx(o,p,e,n.value)),n.value+=1));r.replaceChild(i,t)},ei=(t,e,n,o)=>{if(!t||typeof document>"u")return t;let r=document.createElement("div");r.innerHTML=t;let s=new Set((o?.skipTags??dx).map(g=>g.toLowerCase())),i=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null),l=[],p=i.nextNode();for(;p;)fx(p,s)||l.push(p),p=i.nextNode();let c={value:o?.startIndex??0},d=e==="char"?mx:hx;for(let g of l)d(g,n,c);return r.innerHTML},qa=(t=document)=>{let e=t.createElement("span");return e.className="persona-stream-caret",e.setAttribute("aria-hidden","true"),e.setAttribute("data-preserve-animation","stream-caret"),e},ti=(t=document)=>{let e=t.createElement("div");e.className="persona-stream-skeleton",e.setAttribute("data-preserve-animation","stream-skeleton"),e.setAttribute("aria-hidden","true");let n=t.createElement("div");return n.className="persona-stream-skeleton-line",e.appendChild(n),e},Xf=new WeakMap,bx=(t,e)=>{if(!t.styles)return;let n=Xf.get(e);if(n||(n=new Set,Xf.set(e,n)),n.has(t.name)){let s=t.name.replace(/["\\]/g,"\\$&");if(e.querySelector(`style[data-persona-animation="${s}"]`))return;n.delete(t.name)}n.add(t.name);let r=(e instanceof ShadowRoot?e.ownerDocument:e.ownerDocument??document).createElement("style");r.setAttribute("data-persona-animation",t.name),r.textContent=t.styles,e.appendChild(r)},Jc=new WeakMap,yx=(t,e)=>{if(!t.onAttach)return;let n=Jc.get(e);if(n||(n=new Map,Jc.set(e,n)),n.has(t.name))return;let o=t.onAttach(e);n.set(t.name,o)},Jf=t=>{let e=Jc.get(t);if(e){for(let n of e.values())typeof n=="function"&&n();e.clear()}},Ka=(t,e)=>{bx(t,e),yx(t,e)};function Zc(t,e=Ut){let n=t.style.position,o=t.style.zIndex,r=t.style.isolation,s=getComputedStyle(t),i=s.position==="static"||s.position==="";return i&&(t.style.position="relative"),t.style.zIndex=String(e),t.style.isolation="isolate",()=>{i&&(t.style.position=n),t.style.zIndex=o,t.style.isolation=r}}var ni=0,Po=null;function ed(t=document){if(ni++,ni===1){let n=t.body,r=(t.defaultView??window).scrollY||t.documentElement.scrollTop;Po={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 e=!1;return()=>{if(!e&&(e=!0,ni=Math.max(0,ni-1),ni===0&&Po)){let n=t.body,o=t.defaultView??window;n.style.overflow=Po.originalOverflow,n.style.position=Po.originalPosition,n.style.top=Po.originalTop,n.style.width=Po.originalWidth,o.scrollTo(0,Po.scrollY),Po=null}}}var oi={side:"right",width:"420px",animate:!0,reveal:"resize",maxHeight:"100dvh"},Ot=t=>(t?.launcher?.mountMode??"floating")==="docked",ri=t=>(t?.launcher?.mountMode??"floating")==="composer-bar",An=t=>{let e=t?.launcher?.dock;return{side:e?.side??oi.side,width:e?.width??oi.width,animate:e?.animate??oi.animate,reveal:e?.reveal??oi.reveal,maxHeight:e?.maxHeight??oi.maxHeight}};Ye();Ye();xt();var td=t=>t==="followUp"?"follow-up":t,nd=(t,e=0)=>{if(typeof t=="string"){let r=t.trim();return r?{id:r,label:r,prompt:r,emphasis:"default"}:null}let n=t.label.trim();if(!n)return null;let o=t.prompt?.trim()||n;return{id:t.id?.trim()||o||`suggestion-${e}`,label:n,prompt:o,description:t.description?.trim()||void 0,icon:t.icon,iconColor:t.iconColor?.trim()||void 0,behavior:t.behavior,emphasis:t.emphasis??"default"}},vx=t=>{switch(t){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'}},Zf=new WeakSet,xx=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,wx=t=>{xx()||t.forEach((e,n)=>{typeof e.animate=="function"&&e.animate([{opacity:"0",transform:"translateY(4px)"},{opacity:"1",transform:"none"}],{duration:250,delay:n*60,easing:"ease-out",fill:"backwards"})})},od=t=>{var S,E,L;let{item:e,index:n,surface:o,source:r,variant:s,streaming:i,config:l,plugins:p,chipsConfig:c,session:d,getTextarea:g,eventTarget:b}=t,f=o==="followUp",y=e.behavior,C=()=>{if(d.isStreaming())return;let D={suggestion:{...e},surface:o,source:r,behavior:y},z=b.dispatchEvent(new CustomEvent("persona:suggestion:selected",{detail:D,bubbles:!0,composed:!0,cancelable:!0}));if(f&&b.dispatchEvent(new CustomEvent("persona:suggestReplies:selected",{detail:{suggestion:e.prompt},bubbles:!0,composed:!0})),!z)return;for(let F of p)if(F.onSuggestionSelect?.({suggestion:{...e},surface:o,source:r,variant:s,config:l})===!1)return;let $=g();if(y==="fill"){$.value=e.prompt,$.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),$.focus();return}$.value="",d.sendMessage(e.prompt)},M=()=>{let D=v("button",`persona-suggestion persona-suggestion--${s}`);if(D.type="button",D.disabled=i,D.dataset.suggestionId=e.id,D.dataset.emphasis=e.emphasis,D.dataset.behavior=y,s==="chip"&&(c?.fontFamily&&(D.style.fontFamily=vx(c.fontFamily)),c?.fontWeight&&(D.style.fontWeight=c.fontWeight),c?.paddingX&&(D.style.paddingLeft=c.paddingX,D.style.paddingRight=c.paddingX),c?.paddingY&&(D.style.paddingTop=c.paddingY,D.style.paddingBottom=c.paddingY)),e.icon){let $=ie(e.icon,"var(--persona-suggestion-icon-size)","currentColor",1.8);$&&($.classList.add("persona-suggestion__icon"),e.iconColor&&($.style.color=e.iconColor),D.appendChild($))}let z=v("span","persona-suggestion__copy");if(z.appendChild(ye("span",{className:"persona-suggestion__label",text:e.label})),e.description&&s!=="chip"&&z.appendChild(ye("span",{className:"persona-suggestion__description",text:e.description})),D.appendChild(z),s!=="chip"){let $=ie("arrow-right",16,"currentColor",1.8);$&&($.classList.add("persona-suggestion__arrow"),D.appendChild($))}return D.addEventListener("click",C),D},I=null;for(let D of p)if(D.renderSuggestion&&(I=D.renderSuggestion({suggestion:{...e},index:n,surface:o,source:r,variant:s,streaming:i,config:l,defaultRenderer:M,select:C}),I))break;return I??(I=M()),(S=I.dataset).suggestionId||(S.suggestionId=e.id),(E=I.dataset).behavior||(E.behavior=y),(L=I.dataset).emphasis||(L.emphasis=e.emphasis),I instanceof HTMLButtonElement||I.setAttribute("aria-disabled",i?"true":"false"),I},si=t=>{let e=[],n=[],o=null,r=null,s=()=>{t.removeAttribute("data-scroll-left"),t.removeAttribute("data-scroll-right")},i=()=>{if(r=null,t.hidden||t.dataset.variant!=="chip"||t.dataset.overflow!=="scroll"){s();return}let d=Math.max(0,t.scrollWidth-t.clientWidth);if(d<=1){s();return}let g=getComputedStyle(t).direction==="rtl",b=Math.min(d,Math.max(0,Math.abs(t.scrollLeft))),f=4,y=b<=f,C=b>=d-f,M=g?!C:!y,I=g?!y:!C;t.toggleAttribute("data-scroll-left",M),t.toggleAttribute("data-scroll-right",I)},l=()=>{if(r!==null||typeof requestAnimationFrame!="function"){typeof requestAnimationFrame!="function"&&i();return}r=requestAnimationFrame(i)};t.addEventListener("scroll",l,{passive:!0});let p=typeof ResizeObserver=="function"?new ResizeObserver(l):null;return p?.observe(t),{buttons:e,elements:n,destroy:()=>{t.removeEventListener("scroll",l),p?.disconnect(),r!==null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(r),r=null},render:(d,g,b,f,y,C)=>{t.replaceChildren(),e.length=0,n.length=0;let M=C?.source??"config",I=C?.surface??(M==="config"?"starter":"followUp"),S=I==="followUp",E=C?.variant??"chip",L=C?.behavior??"send",D=C?.overflow??"wrap",z=C?.config??{},$=C?.plugins??[],F=typeof C?.maxItems=="number"?Math.max(0,Math.floor(C.maxItems)):void 0,B=S?"followUps":"starters";!Zf.has(z)&&z.debug===!0&&E!=="chip"&&z.suggestions?.[B]?.overflow!==void 0&&(Zf.add(z),console.info(`[persona] suggestions.${B}.overflow applies to the "chip" variant only; the "${E}" variant manages its own stacking.`));let H=se=>se.map(nd).filter(J=>J!==null).map(J=>({...J,behavior:J.behavior??L})),w=H(d??[]);$.forEach(se=>{se.transformSuggestions&&(w=H(se.transformSuggestions({suggestions:w.map(J=>({...J})),surface:I,source:M,config:z})))});let N=F===void 0?w:w.slice(0,F);if(!N.length){t.hidden=!0,o=null,s();return}if(!S&&(f??g.getMessages()).some(J=>J.role==="user")){t.hidden=!0,o=null;return}t.hidden=!1,t.classList.add("persona-suggestions"),t.dataset.personaSuggestionSurface=td(I),t.dataset.variant=E,t.dataset.overflow=D;let K=document.createDocumentFragment(),te=g.isStreaming();N.forEach((se,J)=>{let oe=od({item:se,index:J,surface:I,source:M,variant:E,streaming:te,config:z,plugins:$,chipsConfig:y,session:g,getTextarea:()=>b,eventTarget:t});K.appendChild(oe),n.push(oe),[...oe instanceof HTMLButtonElement?[oe]:[],...Array.from(oe.querySelectorAll("button"))].forEach(pe=>{e.includes(pe)||(pe.disabled=te,e.push(pe))})}),t.appendChild(K),i(),l();let Q=JSON.stringify({normalized:N,surface:I,variant:E,source:M});Q!==o&&(o=Q,wx(n),t.dispatchEvent(new CustomEvent("persona:suggestion:shown",{detail:{suggestions:N.map(se=>({...se})),surface:I,source:M,variant:E},bubbles:!0,composed:!0})),S&&t.dispatchEvent(new CustomEvent("persona:suggestReplies:shown",{detail:{suggestions:N.map(se=>se.prompt)},bubbles:!0,composed:!0})))}}};var un={"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"};Ye();xt();Ye();xt();var Cx="persona-relative persona-ml-auto persona-inline-flex persona-items-center persona-justify-center",Ga=(t,e={})=>{let{showClose:n=!0,wrapperClassName:o=Cx,buttonSize:r,iconSize:s="28px"}=e,i=t?.launcher??{},l=r??i.closeButtonSize??"32px",p=v("div",o),c=i.closeButtonTooltipText??"Close chat",d=i.closeButtonShowTooltip??!0,g=i.closeButtonIconName??"x",b=i.closeButtonIconText??"\xD7",f=!!(i.closeButtonBorderWidth||i.closeButtonBorderColor),y=ye("button",{className:Bn("persona-inline-flex persona-items-center persona-justify-center persona-cursor-pointer",!i.closeButtonBackgroundColor&&"hover:persona-bg-gray-100",!f&&"persona-border-none",!i.closeButtonBorderRadius&&"persona-rounded-full"),attrs:{type:"button","aria-label":c},style:{height:l,width:l,display:n?void 0:"none",color:i.closeButtonColor||Yt.actionIconColor,backgroundColor:i.closeButtonBackgroundColor||void 0,border:f?`${i.closeButtonBorderWidth||"0px"} solid ${i.closeButtonBorderColor||"transparent"}`:void 0,borderRadius:i.closeButtonBorderRadius||void 0,paddingLeft:i.closeButtonPaddingX||void 0,paddingRight:i.closeButtonPaddingX||void 0,paddingTop:i.closeButtonPaddingY||void 0,paddingBottom:i.closeButtonPaddingY||void 0}}),C=ie(g,s,"currentColor",1);return C?(C.style.display="block",y.appendChild(C)):y.textContent=b,p.appendChild(y),jt({anchor:y,trigger:p,text:()=>y.getAttribute("aria-label")??c,enabled:d}),{button:y,wrapper:p}},Ax="persona-relative persona-ml-auto persona-clear-chat-button-wrapper",Qa=(t,e={})=>{let{wrapperClassName:n=Ax,buttonSize:o,iconSize:r="20px"}=e,i=(t?.launcher??{}).clearChat??{},l=o??i.size??"32px",p=i.iconName??"refresh-cw",c=i.iconColor??"",d=i.backgroundColor??"",g=i.borderWidth??"",b=i.borderColor??"",f=i.borderRadius??"",y=i.paddingX??"",C=i.paddingY??"",M=i.tooltipText??"Clear chat",I=i.showTooltip??!0,S=v("div",n),E=!!(g||b),L=ye("button",{className:Bn("persona-inline-flex persona-items-center persona-justify-center persona-cursor-pointer",!d&&"hover:persona-bg-gray-100",!E&&"persona-border-none",!f&&"persona-rounded-full"),attrs:{type:"button","aria-label":M},style:{height:l,width:l,color:c||Yt.actionIconColor,backgroundColor:d||void 0,border:E?`${g||"0px"} solid ${b||"transparent"}`:void 0,borderRadius:f||void 0,paddingLeft:y||void 0,paddingRight:y||void 0,paddingTop:C||void 0,paddingBottom:C||void 0}}),D=ie(p,r,"currentColor",1);return D&&(D.style.display="block",L.appendChild(D)),S.appendChild(L),jt({anchor:L,trigger:S,text:()=>L.getAttribute("aria-label")??M,enabled:I}),{button:L,wrapper:S}};var Yt={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))"},rd={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)"},Sx={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)"},or=t=>{let{config:e,showClose:n=!0}=t,o=ye("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:{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=e?.launcher??{},s=r.headerIconSize??"48px",i=r.closeButtonPlacement??"inline",l=r.headerIconHidden??!1,p=r.headerIconName,c=ye("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(p){let D=parseFloat(s)||24,z=ie(p,D*.6,"currentColor",1);z?c.replaceChildren(z):c.textContent=e?.launcher?.agentIconText??"\u{1F4AC}"}else if(e?.launcher?.iconUrl){let D=v("img");D.src=e.launcher.iconUrl,D.alt="",D.className="persona-rounded-xl persona-object-cover",D.style.height=s,D.style.width=s,c.replaceChildren(D)}else c.textContent=e?.launcher?.agentIconText??"\u{1F4AC}";let d=v("div","persona-flex persona-flex-col persona-flex-1 persona-min-w-0"),g=ye("span",{className:"persona-text-base persona-font-semibold",text:e?.launcher?.title??"Chat Assistant",style:{color:Yt.titleColor,...rd}}),b=ye("span",{className:"persona-text-xs",text:e?.launcher?.subtitle??"Here to help you get answers fast",style:{color:Yt.subtitleColor,...Sx}});d.append(g,b),l?o.append(d):o.append(c,d);let f=r.clearChat??{},y=f.enabled??!0,C=f.placement??"inline",M=null,I=null;if(y){let z=Qa(e,{wrapperClassName:C==="top-right"?"persona-absolute persona-top-4 persona-z-50":"persona-relative persona-ml-auto persona-clear-chat-button-wrapper"});M=z.button,I=z.wrapper,C==="top-right"&&(I.style.right="48px"),C==="inline"&&o.appendChild(I)}let S=i==="top-right"?"persona-absolute persona-top-4 persona-right-4 persona-z-50":y&&C==="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:E,wrapper:L}=Ga(e,{showClose:n,wrapperClassName:S});return i!=="top-right"&&o.appendChild(L),{header:o,iconHolder:c,headerTitle:g,headerSubtitle:b,closeButton:E,closeButtonWrapper:L,clearChatButton:M,clearChatButtonWrapper:I}},ii=(t,e,n)=>{let o=n?.launcher??{},r=o.closeButtonPlacement??"inline",s=o.clearChat?.placement??"inline";t.appendChild(e.header),r==="top-right"&&(t.style.position="relative",t.appendChild(e.closeButtonWrapper)),e.clearChatButtonWrapper&&s==="top-right"&&(t.style.position="relative",t.appendChild(e.clearChatButtonWrapper))};Ye();xt();var Mx=t=>{let e=or({config:t.config,showClose:t.showClose,onClose:t.onClose,onClearChat:t.onClearChat}),n=t.layoutHeaderConfig?.onTitleClick;if(n){let o=e.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 e};function Tx(t,e,n){if(e?.length)for(let o of e){let r=v("button","persona-inline-flex persona-items-center persona-justify-center persona-rounded-full hover:persona-bg-gray-100 persona-cursor-pointer persona-border-none persona-bg-transparent persona-p-0");if(r.type="button",r.style.height="32px",r.style.width="32px",r.style.color=Yt.actionIconColor,r.setAttribute("aria-label",o.ariaLabel??o.label??o.id),o.icon){let s=ie(o.icon,16,"currentColor",2);s&&r.appendChild(s)}else o.label&&(r.textContent=o.label);if(o.menuItems?.length){let s=v("div","persona-relative");s.appendChild(r);let i=jr({items:o.menuItems,onSelect:l=>n?.(l),anchor:s,position:"bottom-right"});s.appendChild(i.element),r.addEventListener("click",l=>{l.stopPropagation(),i.toggle()}),t.appendChild(s)}else r.addEventListener("click",()=>n?.(o.id)),t.appendChild(r)}}var Ex=t=>{let{config:e,showClose:n=!0,onClose:o,layoutHeaderConfig:r,onHeaderAction:s}=t,i=e?.launcher??{},l=v("div","persona-flex persona-items-center persona-justify-between persona-px-6 persona-py-4");l.setAttribute("data-persona-theme-zone","header"),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 p=r?.titleMenu,c,d;if(p)c=Pf({label:i.title??"Chat Assistant",menuItems:p.menuItems,onSelect:p.onSelect,hover:p.hover,className:""}).element,c.style.color=Yt.titleColor,d=c.querySelector(".persona-combo-btn-label")??c;else{if(c=v("div","persona-flex persona-min-w-0 persona-flex-1 persona-items-center persona-gap-1"),d=v("span","persona-text-base persona-font-semibold persona-truncate"),d.style.color=Yt.titleColor,Object.assign(d.style,rd),d.textContent=i.title??"Chat Assistant",c.appendChild(d),r?.onTitleClick){c.style.cursor="pointer",c.setAttribute("role","button"),c.setAttribute("tabindex","0");let L=r.onTitleClick;c.addEventListener("click",D=>{D.target.closest("button")||L()}),c.addEventListener("keydown",D=>{(D.key==="Enter"||D.key===" ")&&(D.preventDefault(),L())})}let E=r?.titleRowHover;E&&(c.style.borderRadius=E.borderRadius??"10px",c.style.padding=E.padding??"6px 4px 6px 12px",c.style.margin="-6px 0 -6px -12px",c.style.border="1px solid transparent",c.style.transition="background-color 0.15s ease, border-color 0.15s ease",c.style.width="fit-content",c.style.flex="none",c.addEventListener("mouseenter",()=>{c.style.backgroundColor=E.background??"",c.style.borderColor=E.border??""}),c.addEventListener("mouseleave",()=>{c.style.backgroundColor="",c.style.borderColor="transparent"}))}l.appendChild(c);let g=i.closeButtonSize??"32px",b=v("div",""),f=v("button","persona-inline-flex persona-items-center persona-justify-center persona-rounded-full hover:persona-bg-gray-100 persona-cursor-pointer persona-border-none");f.style.height=g,f.style.width=g,f.type="button",f.setAttribute("aria-label","Close chat"),f.style.display=n?"":"none",f.style.color=i.closeButtonColor||Yt.actionIconColor;let y=i.closeButtonIconName??"x",C=ie(y,"28px","currentColor",1);C?f.appendChild(C):f.textContent="\xD7",o&&f.addEventListener("click",o),b.appendChild(f);let M=v("div","persona-flex persona-items-center persona-gap-1");p||Tx(M,r?.trailingActions,r?.onAction??s),M.appendChild(b),l.appendChild(M);let I=v("div");I.style.display="none";let S=v("span");return S.style.display="none",{header:l,iconHolder:I,headerTitle:d,headerSubtitle:S,closeButton:f,closeButtonWrapper:b,clearChatButton:null,clearChatButtonWrapper:null}},em={default:Mx,minimal:Ex},kx=t=>em[t]??em.default,Xa=(t,e,n)=>{if(e?.render){let i=e.render({config:t,onClose:n?.onClose,onClearChat:n?.onClearChat,trailingActions:e.trailingActions,onAction:e.onAction}),l=v("div");l.style.display="none";let p=v("span"),c=v("span"),d=v("button");d.style.display="none";let g=v("div");return g.style.display="none",{header:i,iconHolder:l,headerTitle:p,headerSubtitle:c,closeButton:d,closeButtonWrapper:g,clearChatButton:null,clearChatButtonWrapper:null}}let o=e?.layout??"default",s=kx(o)({config:t,showClose:e?.showCloseButton??n?.showClose??!0,onClose:n?.onClose,onClearChat:n?.onClearChat,layoutHeaderConfig:e,onHeaderAction:e?.onAction});return e&&(e.showIcon===!1&&(s.iconHolder.style.display="none"),e.showTitle===!1&&(s.headerTitle.style.display="none"),e.showSubtitle===!1&&(s.headerSubtitle.style.display="none"),e.showCloseButton===!1&&(s.closeButton.style.display="none"),e.showClearChat===!1&&s.clearChatButtonWrapper&&(s.clearChatButtonWrapper.style.display="none")),s};Ye();Ye();xt();var Ya=t=>{let e=v("textarea");e.setAttribute("data-persona-composer-input",""),e.placeholder=t?.copy?.inputPlaceholder??"Type your message\u2026",e.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",e.rows=1,e.style.fontFamily='var(--persona-input-font-family, var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif))',e.style.fontWeight="var(--persona-input-font-weight, var(--persona-font-weight, 400))";let n=3,o=20,r=()=>{let p=e.ownerDocument?.defaultView;if(!p?.getComputedStyle)return o;let c=p.getComputedStyle(e).lineHeight;if(!c||!c.trim().endsWith("px"))return o;let d=parseFloat(c);return Number.isFinite(d)&&d>0?d:o},s=`${n*o}px`;e.style.maxHeight=s,e.style.overflowY="auto";let i=()=>{let p=e.style.maxHeight;if(p!==s){let d=parseFloat(p);if(Number.isFinite(d)&&d>0)return d}let c=n*r();return s=`${c}px`,e.style.maxHeight=s,c},l=()=>{e.addEventListener("input",()=>{e.style.height="auto";let p=Math.min(e.scrollHeight,i());e.style.height=`${p}px`})};return e.style.border="none",e.style.outline="none",e.style.borderWidth="0",e.style.borderStyle="none",e.style.borderColor="transparent",e.addEventListener("focus",()=>{e.style.border="none",e.style.outline="none",e.style.borderWidth="0",e.style.borderStyle="none",e.style.borderColor="transparent",e.style.boxShadow="none"}),e.addEventListener("blur",()=>{e.style.border="none",e.style.outline="none"}),{textarea:e,attachAutoResize:l}},Ja=t=>{let e=t?.sendButton??{},n=e.useIcon??!1,o=e.iconText??"\u2191",r=e.iconName,s=e.stopIconName??"square",i=e.tooltipText??"Send message",l=e.stopTooltipText??"Stop generating",p=t?.copy?.sendButtonLabel??"Send",c=t?.copy?.stopButtonLabel??"Stop",d=e.showTooltip??!1,g=e.size??"40px",b=e.backgroundColor,f=e.textColor,y=v("div","persona-send-button-wrapper"),C=ye("button",{className:Bn("persona-rounded-button disabled:persona-opacity-50 persona-cursor-pointer",n?"persona-flex persona-items-center persona-justify-center":"persona-bg-persona-accent persona-px-4 persona-py-2 persona-text-sm persona-font-semibold",n&&!b&&"persona-bg-persona-primary",!n&&!f&&"persona-text-white"),attrs:{type:"submit","data-persona-composer-submit":""},style:{width:n?g:void 0,height:n?g:void 0,minWidth:n?g:void 0,minHeight:n?g:void 0,fontSize:n?"18px":void 0,lineHeight:n?"1":void 0,color:n?f||"var(--persona-button-primary-fg, #ffffff)":f||void 0,backgroundColor:n&&b||void 0,borderWidth:e.borderWidth||void 0,borderStyle:e.borderWidth?"solid":void 0,borderColor:e.borderColor||void 0,paddingLeft:n?"0":e.paddingX||void 0,paddingRight:n?"0":e.paddingX||void 0,paddingTop:n?"0":e.paddingY||void 0,paddingBottom:n?"0":e.paddingY||void 0}}),M=null,I=null;if(n){let L=parseFloat(e.iconSize??"")||Math.round((parseFloat(g)||24)*.5),D=e.iconStrokeWidth??2,z=f?.trim()||"currentColor";r?(M=ie(r,L,z,D),M?C.appendChild(M):C.textContent=o):C.textContent=o,I=ie(s,L,z,D)}else C.textContent=p;C.setAttribute("aria-label",i),y.appendChild(C),jt({anchor:C,trigger:y,text:()=>C.getAttribute("aria-label")??"",enabled:d});let S="send";return{button:C,wrapper:y,setMode:L=>{if(L===S)return;S=L;let D=L==="stop"?l:i;if(C.setAttribute("aria-label",D),n){if(M&&I){let z=L==="stop"?I:M;C.replaceChildren(z)}}else C.textContent=L==="stop"?c:p}}},Za=t=>{let e=t?.voiceRecognition??{};if(!(e.enabled===!0))return null;let o=typeof window<"u"&&(typeof window.webkitSpeechRecognition<"u"||typeof window.SpeechRecognition<"u"),r=e.provider?.type==="runtype";if(!(o||r))return null;let i=t?.sendButton?.size??"40px",l=e.iconName??"mic",p=e.iconSize??i,c=parseFloat(p)||24,d=e.backgroundColor??t?.sendButton?.backgroundColor,g=e.iconColor??t?.sendButton?.textColor,b=v("div","persona-send-button-wrapper"),f=ye("button",{className:"persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer",attrs:{type:"button","data-persona-composer-mic":"","aria-label":e.tooltipText??"Start voice recognition"},style:{width:p,height:p,minWidth:p,minHeight:p,fontSize:"18px",lineHeight:"1",color:g||"var(--persona-text, #111827)",backgroundColor:d||void 0,borderWidth:e.borderWidth||void 0,borderStyle:e.borderWidth?"solid":void 0,borderColor:e.borderColor||void 0,paddingLeft:e.paddingX||void 0,paddingRight:e.paddingX||void 0,paddingTop:e.paddingY||void 0,paddingBottom:e.paddingY||void 0}}),C=ie(l,c,g||"currentColor",1.5);C?f.appendChild(C):f.textContent="\u{1F3A4}",b.appendChild(f);let M=e.tooltipText??"Start voice recognition",I=e.showTooltip??!1;return jt({anchor:f,trigger:b,text:()=>f.getAttribute("aria-label")??M,enabled:I}),{button:f,wrapper:b}},el=t=>{let e=t?.attachments??{};if(e.enabled!==!0)return null;let n=t?.sendButton?.size??"40px",o=v("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2");o.setAttribute("data-persona-composer-attachment-previews",""),o.style.display="none";let r=v("input");r.type="file",r.setAttribute("data-persona-composer-attachment-input",""),r.accept=(e.allowedTypes??to).join(","),r.multiple=(e.maxFiles??4)>1,r.style.display="none",r.setAttribute("aria-label","Attach files");let s=e.buttonIconName??"paperclip",i=n,l=parseFloat(i)||40,p=Math.round(l*.6),c=v("div","persona-send-button-wrapper"),d=ye("button",{className:"persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-attachment-button",attrs:{type:"button","data-persona-composer-attachment-button":"","aria-label":e.buttonTooltipText??"Attach file"},style:{width:i,height:i,minWidth:i,minHeight:i,fontSize:"18px",lineHeight:"1"}}),g=ie(s,p,"currentColor",1.5);g?d.appendChild(g):d.textContent="\u{1F4CE}",d.addEventListener("click",f=>{f.preventDefault(),r.click()}),c.appendChild(d);let b=e.buttonTooltipText??"Attach file";return jt({anchor:d,trigger:c,text:()=>d.getAttribute("aria-label")??b}),{button:d,wrapper:c,input:r,previewsContainer:o}},tl=t=>{let e=t?.statusIndicator??{},n=e.align==="left"?"persona-text-left":e.align==="center"?"persona-text-center":"persona-text-right",o=v("div",`persona-mt-2 ${n} persona-text-xs persona-text-persona-muted`);o.setAttribute("data-persona-composer-status","");let r=e.visible??!0;o.style.display=r?"":"none";let s=e.idleText??"Online";if(e.idleLink){let i=v("a");i.href=e.idleLink,i.target="_blank",i.rel="noopener noreferrer",i.textContent=s,i.style.color="inherit",i.style.textDecoration="none",o.appendChild(i)}else o.textContent=s;return o},nl=()=>ye("div",{className:"persona-mb-3 persona-flex persona-flex-wrap persona-gap-2",attrs:{"data-persona-composer-suggestions":""}});var ai=t=>{let{config:e}=t,n=ye("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=nl(),r=ye("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:i}=Ya(e);i();let l=Ja(e),p=Za(e),c=el(e),d=tl(e);c&&(c.previewsContainer.style.gap="8px",r.append(c.previewsContainer,c.input)),r.append(s);let g=ye("div",{className:"persona-widget-composer__actions persona-flex persona-items-center persona-justify-between persona-w-full",attrs:{"data-persona-composer-actions":""}}),b=v("div","persona-widget-composer__left-actions persona-flex persona-items-center persona-gap-2"),f=v("div","persona-widget-composer__right-actions persona-flex persona-items-center persona-gap-1");return c&&b.append(c.wrapper),p&&f.append(p.wrapper),f.append(l.wrapper),g.append(b,f),r.append(g),r.addEventListener("click",y=>{y.target!==l.button&&y.target!==l.wrapper&&y.target!==p?.button&&y.target!==p?.wrapper&&y.target!==c?.button&&y.target!==c?.wrapper&&s.focus()}),n.append(o,r,d),{footer:n,suggestions:o,composerForm:r,textarea:s,sendButton:l.button,sendButtonWrapper:l.wrapper,micButton:p?.button??null,micButtonWrapper:p?.wrapper??null,statusText:d,attachmentButton:c?.button??null,attachmentButtonWrapper:c?.wrapper??null,attachmentInput:c?.input??null,attachmentPreviewsContainer:c?.previewsContainer??null,actionsRow:g,leftActions:b,rightActions:f,setSendButtonMode:l.setMode}};Ye();xt();var tm=()=>{let t=ye("button",{className:"persona-pill-peek",attrs:{type:"button","data-persona-pill-peek":"","aria-label":"Show conversation",tabindex:"-1"}}),e=v("span","persona-pill-peek__icon"),n=ie("message-square",16,"currentColor",1.5);n&&e.appendChild(n);let o=v("span","persona-pill-peek__text"),r=v("span","persona-pill-peek__caret"),s=ie("chevron-up",16,"currentColor",1.5);return s&&r.appendChild(s),t.append(e,o,r),{root:t,textNode:o}},ol=t=>{let{config:e}=t,n=ye("div",{className:"persona-widget-footer persona-widget-footer--pill",attrs:{"data-persona-theme-zone":"composer"}}),o=nl(),r=tl(e);r.style.display="none";let{textarea:s,attachAutoResize:i}=Ya(e);s.style.maxHeight="100px",i();let l=Ja(e),p=Za(e),c=el(e);c&&c.previewsContainer.classList.add("persona-pill-composer__previews");let d=ye("form",{className:"persona-widget-composer persona-pill-composer",attrs:{"data-persona-composer-form":""},style:{outline:"none"}}),g=v("div","persona-widget-composer__left-actions persona-pill-composer__left");c&&g.append(c.wrapper);let b=v("div","persona-widget-composer__right-actions persona-pill-composer__right");p&&b.append(p.wrapper),b.append(l.wrapper),d.addEventListener("click",y=>{y.target!==l.button&&y.target!==l.wrapper&&y.target!==p?.button&&y.target!==p?.wrapper&&y.target!==c?.button&&y.target!==c?.wrapper&&s.focus()}),c&&d.append(c.input),d.append(g,s,b),c&&n.append(c.previewsContainer),n.append(o,d,r);let f=d;return{footer:n,suggestions:o,composerForm:d,textarea:s,sendButton:l.button,sendButtonWrapper:l.wrapper,micButton:p?.button??null,micButtonWrapper:p?.wrapper??null,statusText:r,attachmentButton:c?.button??null,attachmentButtonWrapper:c?.wrapper??null,attachmentInput:c?.input??null,attachmentPreviewsContainer:c?.previewsContainer??null,actionsRow:f,leftActions:g,rightActions:b,setSendButtonMode:l.setMode}};Ye();xt();Ye();xt();var Lx=t=>{switch(t){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}},Px=(t,e)=>{if(!t)return null;let n=Lx(t);if(n===null)return null;let o=e?.[t],r=o!==void 0?o:n;return r||null},Ix=(t,e)=>{let n=v("div","persona-message-stop-reason persona-text-xs persona-mt-2 persona-italic");return n.setAttribute("data-stop-reason",t),n.setAttribute("role","note"),n.style.opacity="0.75",n.textContent=e,n},Rx=t=>{let e=t.toLowerCase();return e.startsWith("data:image/svg+xml")?!1:!!(/^(?:https?|blob):/i.test(t)||e.startsWith("data:image/")||!t.includes(":"))},sd=t=>{let e=t.toLowerCase();return e.startsWith("javascript:")||e.startsWith("data:text/html")||e.startsWith("data:text/javascript")||e.startsWith("data:text/xml")||e.startsWith("data:application/xhtml")||e.startsWith("data:image/svg+xml")?!1:!!(/^(?:https?|blob):/i.test(t)||e.startsWith("data:")||!t.includes(":"))},id=320,sm=320,Wx=t=>!t.contentParts||t.contentParts.length===0?[]:t.contentParts.filter(e=>e.type==="image"&&typeof e.image=="string"&&e.image.trim().length>0),Hx=t=>!t.contentParts||t.contentParts.length===0?[]:t.contentParts.filter(e=>e.type==="audio"&&typeof e.audio=="string"&&e.audio.trim().length>0),Bx=t=>!t.contentParts||t.contentParts.length===0?[]:t.contentParts.filter(e=>e.type==="video"&&typeof e.video=="string"&&e.video.trim().length>0),Dx=t=>!t.contentParts||t.contentParts.length===0?[]:t.contentParts.filter(e=>e.type==="file"&&typeof e.data=="string"&&e.data.trim().length>0),Ox=t=>{if(!t||t.length===0)return null;let e=ye("div",{className:"persona-mention-context-row persona-message-mentions",attrs:{"data-message-mentions":""}});e.style.display="flex";for(let n of t){let o=ye("div",{className:"persona-mention-chip persona-mention-chip-readonly",attrs:{"data-status":"ready",title:n.label}}),r=v("span","persona-mention-chip-icon"),s=ie(n.iconName??"at-sign",13,"currentColor",2);s&&r.appendChild(s),o.appendChild(r),o.appendChild(ye("span",{className:"persona-mention-chip-label",text:n.label})),e.appendChild(o)}return e},Nx=(t,e)=>{let n=document.createDocumentFragment();for(let o of t){if(o.kind==="text"){n.appendChild(document.createTextNode(o.text));continue}n.appendChild(Ks(o.ref,{readonly:!0,render:e}))}return n},nm="\uE000",om="\uE001",Fx=(t,e,n,o)=>{let r=Math.random().toString(36).slice(2,8),s=b=>`${nm}${r}:${b}${om}`,i=e.map((b,f)=>b.kind==="text"?b.text:s(f)).join(""),l=n(i);if(!e.every((b,f)=>b.kind==="text"||l.includes(s(f)))){t.replaceChildren(Nx(e,o));return}t.innerHTML=l;let c=new RegExp(`${nm}${r}:(\\d+)${om}`),d=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),g=[];for(let b=d.nextNode();b;b=d.nextNode())g.push(b);for(let b of g){let f=b;for(let y=c.exec(f.data);y;y=c.exec(f.data)){let C=e[Number(y[1])],M=f.splitText(y.index);M.data=M.data.slice(y[0].length),C?.kind==="mention"&&M.parentNode?.insertBefore(Ks(C.ref,{readonly:!0,render:o}),M),f=M}}},_x=(t,e,n)=>{if(t.length===0)return null;try{let o=v("div","persona-flex persona-flex-col persona-gap-2");o.setAttribute("data-message-attachments","images"),e&&(o.style.marginBottom="8px");let r=0,s=!1,i=()=>{s||(s=!0,o.remove(),n?.())};return t.forEach((l,p)=>{let c=v("img");c.alt=l.alt?.trim()||`Attached image ${p+1}`,c.loading="lazy",c.decoding="async",c.referrerPolicy="no-referrer",c.style.display="block",c.style.width="100%",c.style.maxWidth=`${id}px`,c.style.maxHeight=`${sm}px`,c.style.height="auto",c.style.objectFit="contain",c.style.borderRadius="10px",c.style.backgroundColor="var(--persona-attachment-image-bg, var(--persona-container, #f3f4f6))",c.style.border="1px solid var(--persona-attachment-image-border, var(--persona-border, #e5e7eb))";let d=!1;r+=1,c.addEventListener("error",()=>{d||(d=!0,r=Math.max(0,r-1),c.remove(),r===0&&i())}),c.addEventListener("load",()=>{d=!0}),Rx(l.image)?(c.src=l.image,o.appendChild(c)):(d=!0,r=Math.max(0,r-1),c.remove())}),r===0?(i(),null):o}catch{return n?.(),null}},$x=t=>{if(t.length===0)return null;try{let e=v("div","persona-flex persona-flex-col persona-gap-2");e.setAttribute("data-message-attachments","audio");let n=0;return t.forEach(o=>{if(!sd(o.audio))return;let r=v("audio");r.controls=!0,r.preload="metadata",r.src=o.audio,r.style.display="block",r.style.width="100%",r.style.maxWidth=`${id}px`,e.appendChild(r),n+=1}),n===0?(e.remove(),null):e}catch{return null}},zx=t=>{if(t.length===0)return null;try{let e=v("div","persona-flex persona-flex-col persona-gap-2");e.setAttribute("data-message-attachments","video");let n=0;return t.forEach(o=>{if(!sd(o.video))return;let r=v("video");r.controls=!0,r.preload="metadata",r.src=o.video,r.style.display="block",r.style.width="100%",r.style.maxWidth=`${id}px`,r.style.maxHeight=`${sm}px`,r.style.borderRadius="10px",r.style.backgroundColor="var(--persona-attachment-image-bg, var(--persona-container, #f3f4f6))",e.appendChild(r),n+=1}),n===0?(e.remove(),null):e}catch{return null}},Ux=t=>{if(t.length===0)return null;try{let e=v("div","persona-flex persona-flex-col persona-gap-2");e.setAttribute("data-message-attachments","files");let n=0;return t.forEach(o=>{if(!sd(o.data))return;let r=v("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",e.appendChild(r),n+=1}),n===0?(e.remove(),null):e}catch{return null}},li=()=>{let t=document.createElement("div");t.className="persona-flex persona-items-center persona-space-x-1 persona-h-5 persona-mt-2";let e=document.createElement("div");e.className="persona-animate-typing persona-rounded-full persona-h-1.5 persona-w-1.5",e.style.backgroundColor="currentColor",e.style.opacity="0.4",e.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",t.appendChild(e),t.appendChild(n),t.appendChild(o),t.appendChild(r),t},jx=(t,e,n)=>{let o={config:n??{},streaming:!0,location:t,defaultRenderer:li};if(e){let r=e(o);if(r!==null)return r}return li()},Vx=(t,e)=>{let n=v("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=e==="user"?t.userAvatar:t.assistantAvatar;if(o)if(o.startsWith("http")||o.startsWith("/")||o.startsWith("data:")){let r=v("img");r.src=o,r.alt=e==="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(e==="user"?"persona-bg-persona-accent":"persona-bg-persona-primary","persona-text-white");else n.textContent=e==="user"?"U":"A",n.classList.add(e==="user"?"persona-bg-persona-accent":"persona-bg-persona-primary","persona-text-white");return n},rm=(t,e,n="div")=>{let o=v(n,"persona-text-xs persona-text-persona-muted"),r=new Date(t.createdAt);return e.format?o.textContent=e.format(r):o.textContent=r.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),o},ci=(t,e="bubble")=>{let n=["persona-message-bubble"];switch(e){case"flat":t==="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"),t==="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"),t==="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},qx=(t,e,n)=>{let o=e.showCopy??!0,r=e.showUpvote??!0,s=e.showDownvote??!0,i=e.showReadAloud??!1;if(!o&&!r&&!s&&!i){let y=v("div");return y.style.display="none",y.id=`actions-${t.id}`,y.setAttribute("data-actions-for",t.id),y}let l=e.visibility??"hover",p=e.align??"right",c=e.layout??"pill-inside",d={left:"persona-message-actions-left",center:"persona-message-actions-center",right:"persona-message-actions-right"}[p],g={"pill-inside":"persona-message-actions-pill","row-inside":"persona-message-actions-row"}[c],b=v("div",`persona-message-actions persona-flex persona-items-center persona-gap-1 persona-mt-2 ${d} ${g} ${l==="hover"?"persona-message-actions-hover":""}`);b.id=`actions-${t.id}`,b.setAttribute("data-actions-for",t.id);let f=(y,C,M)=>{let I=Dt({icon:y,label:C,size:14,className:"persona-message-action-btn"});return I.setAttribute("data-action",M),I};return o&&b.appendChild(f("copy","Copy message","copy")),i&&b.appendChild(f("volume-2","Read aloud","read-aloud")),r&&b.appendChild(f("thumbs-up","Upvote","upvote")),s&&b.appendChild(f("thumbs-down","Downvote","downvote")),b},ad=(t,e,n,o,r,s)=>{let i=n??{},l=i.layout??"bubble",p=i.avatar,c=i.timestamp,d=p?.show??!1,g=c?.show??!1,b=p?.position??"left",f=c?.position??"below",y=ci(t.role,l),C=v("div",y.join(" "));C.id=`bubble-${t.id}`,C.setAttribute("data-message-id",t.id),C.setAttribute("data-persona-theme-zone",t.role==="user"?"user-message":"assistant-message"),l==="flat"?(C.style.backgroundColor="transparent",C.style.color=t.role==="user"?"var(--persona-primary, var(--persona-text))":"var(--persona-message-assistant-text, var(--persona-text))"):t.role==="user"?(C.style.backgroundColor="var(--persona-message-user-bg, var(--persona-accent))",C.style.color="var(--persona-message-user-text, white)"):t.role==="assistant"&&(C.style.backgroundColor="var(--persona-message-assistant-bg, var(--persona-container))",C.style.color="var(--persona-message-assistant-text, var(--persona-text))");let M=Wx(t),I=t.content?.trim()??"",E=M.length>0&&I===la,L=ja(s?.widgetConfig?.features?.streamAnimation),D=s?.widgetConfig?.features?.streamAnimation?.plugins,z=t.role==="assistant"&&L.type!=="none"?qr(L.type,D):null,$=t.role==="assistant"&&z?.isAnimating?.(t)===!0,F=t.role==="assistant"&&z!==null&&(!!t.streaming||$);F&&z?.bubbleClass&&C.classList.add(z.bubbleClass);let B=document.createElement("div");B.classList.add("persona-message-content"),t.streaming&&B.classList.add("persona-content-streaming"),F&&z&&(z.containerClass&&B.classList.add(z.containerClass),B.style.setProperty("--persona-stream-step",`${L.speed}ms`),B.style.setProperty("--persona-stream-duration",`${L.duration}ms`));let H=F?Va(t.content??"",L.buffer,z,t,!!t.streaming):t.content??"",w=()=>{let ne=e({text:H,message:t,streaming:!!t.streaming,raw:t.rawContent});return F&&z?.wrap==="char"?ei(ne,"char",t.id,{skipTags:z.skipTags}):F&&z?.wrap==="word"?ei(ne,"word",t.id,{skipTags:z.skipTags}):ne},N=null;if(E?(N=document.createElement("div"),N.innerHTML=w(),N.style.display="none",B.appendChild(N)):t.contentSegments?.length?Fx(B,t.contentSegments,ne=>e({text:ne,message:t,streaming:!!t.streaming,raw:t.rawContent}),s?.widgetConfig?.contextMentions?.renderMentionToken):B.innerHTML=w(),F&&z?.useCaret&&!E&&I){let ne=qa(),me=B.querySelectorAll(".persona-stream-char, .persona-stream-word"),ve=me[me.length-1];if(ve?.parentNode)ve.parentNode.insertBefore(ne,ve.nextSibling);else{let be=B.lastElementChild;be?be.appendChild(ne):B.appendChild(ne)}}if(g&&f==="inline"&&t.createdAt){let ne=rm(t,c,"span");ne.classList.add("persona-timestamp-inline");let me=B.lastElementChild;me?me.appendChild(ne):B.appendChild(ne)}if(M.length>0){let ne=_x(M,!E&&!!I,()=>{E&&N&&(N.style.display="")});ne?C.appendChild(ne):E&&N&&(N.style.display="")}let K=Hx(t);if(K.length>0){let ne=$x(K);ne&&C.appendChild(ne)}let te=Bx(t);if(te.length>0){let ne=zx(te);ne&&C.appendChild(ne)}let Q=Dx(t);if(Q.length>0){let ne=Ux(Q);ne&&C.appendChild(ne)}let se=t.contentSegments?.length?null:Ox(t.contextMentions);if(se&&C.appendChild(se),C.appendChild(B),g&&f==="below"&&t.createdAt){let ne=rm(t,c);ne.classList.add("persona-mt-1"),C.appendChild(ne)}let J=t.role==="assistant"?Px(t.stopReason,s?.widgetConfig?.copy?.stopReasonNotice):null;if(t.streaming&&t.role==="assistant"){let ne=!!(H&&H.trim()),me=L.placeholder==="skeleton",ve=me&&L.buffer==="line"&≠if(ne)ve&&C.appendChild(ti());else if(me)C.appendChild(ti());else{let be=jx("inline",s?.loadingIndicatorRenderer,s?.widgetConfig);be&&C.appendChild(be)}}if(J&&t.stopReason&&!t.streaming&&(I||(B.style.display="none"),C.appendChild(Ix(t.stopReason,J))),t.role==="assistant"&&!t.streaming&&t.content&&t.content.trim()&&o?.enabled!==!1&&o){let ne=qx(t,o,r);C.appendChild(ne)}if(!d||t.role==="system")return C;let Y=v("div",`persona-message-with-avatar persona-flex persona-gap-2 ${t.role==="user"?"persona-flex-row-reverse":""}`),pe=Vx(p,t.role);return b==="right"||b==="left"&&t.role==="user"?Y.append(C,pe):Y.append(pe,C),Y};var Kx=40,Gx=(t,e)=>{if(t.replaceChildren(),!e){t.hidden=!0;return}if(typeof e=="function"){let n=null;try{n=e()}catch(o){console.warn("[persona] welcome.icon renderer threw",o)}if(!n){t.hidden=!0;return}t.appendChild(n),t.hidden=!1;return}if(e.type==="lucide"){let n=ie(e.name,Kx);if(!n){t.hidden=!0;return}t.appendChild(n)}else e.type==="image"?t.appendChild(ye("img",{className:"persona-welcome-icon-image",attrs:{src:e.url,alt:e.alt}})):t.appendChild(ye("span",{className:"persona-welcome-icon-text",text:e.text}));t.hidden=!1},im=(t,e,n={})=>{let o=ye("div",{className:"persona-welcome-icon",attrs:{"data-persona-welcome-icon":""}});o.hidden=!0;let r=v("h2","persona-welcome-title"),s=v("p","persona-welcome-subtitle");return{host:ye("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)"}},o,r,s,e),iconHolder:o,title:r,subtitle:s,starterSuggestions:e}},Kr=(t,e,n)=>{e.hidden=!n,e.style.display=n?"":"none",t.classList.toggle("persona-gap-6",n),t.classList.toggle("persona-gap-3",!n)},sl=(t,e)=>{t.title.textContent=e.title,t.subtitle.textContent=e.subtitle,t.subtitle.hidden=e.subtitle==="",Gx(t.iconHolder,e.icon),t.host.setAttribute("data-persona-welcome-variant",e.variant),t.host.setAttribute("data-persona-welcome-dismiss",e.dismiss)},Qx="data-persona-welcome-plugin",am="data-persona-welcome-overlay",rl="persona-welcome-overlay-active",ld=new WeakMap,lm=(t,e,n)=>{n.setAttribute(Qx,""),e.appendChild(n),e.setAttribute("data-persona-welcome-content","plugin"),e.setAttribute(am,""),t.classList.contains(rl)||(ld.set(t,t.scrollTop),t.classList.add(rl),t.scrollTop=0)},cm=(t,e,n)=>{n&&n!==e&&n.remove(),e.removeAttribute("data-persona-welcome-content"),e.removeAttribute(am),t.classList.contains(rl)&&(t.classList.remove(rl),t.scrollTop=ld.get(t)??t.scrollTop,ld.delete(t))},dm=()=>{let t=ye("div",{className:"persona-welcome-greeting persona-flex persona-flex-col",attrs:{"data-persona-welcome-greeting":""}});return t.hidden=!0,t},il=(t,e,n)=>{if(t.replaceChildren(),!e){t.hidden=!0;return}let o=n?.layout?.messages?.layout??"bubble",r=ye("div",{className:ci("assistant",o).join(" "),attrs:{"data-persona-theme-zone":"assistant-message"},text:e,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))"}});t.appendChild(ye("div",{className:"persona-flex"},r)),t.hidden=!1},Xx=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,pm=(t,e)=>{if(Xx()||typeof t.animate!="function"||!t.isConnected)return e(null),null;let n=t.animate([{opacity:"1",transform:"none"},{opacity:"0",transform:"translateY(-4px)"}],{duration:180,easing:"ease-out",fill:"forwards"}),o=!1,r=()=>{o||(o=!0,e(n))};return n.finished.then(r).catch(r),n};var Yx="Hello \u{1F44B}",Jx="I can answer questions and help you get things done here.",um=new WeakSet,Sn=(t,e)=>!!t&&t[e]!==void 0,Zx=(t,e)=>{!t||t.debug!==!0||!e.length||um.has(t)||(um.add(t),e.forEach(n=>console.warn(`[persona] ${n}`)))},rr=t=>{let e=t?.welcome,n=t?.copy,o=Sn(e,"variant")?e.variant:n?.showWelcomeCard===!1?"none":"card",r=o==="hero"?"on-first-message":Sn(e,"dismiss")?e.dismiss:"never",s=[];return Sn(e,"title")&&Sn(n,"welcomeTitle")&&s.push("welcome.title and copy.welcomeTitle are both set; welcome.title wins. copy.welcomeTitle is deprecated."),Sn(e,"subtitle")&&Sn(n,"welcomeSubtitle")&&s.push("welcome.subtitle and copy.welcomeSubtitle are both set; welcome.subtitle wins. copy.welcomeSubtitle is deprecated."),Sn(e,"variant")&&Sn(n,"showWelcomeCard")&&s.push("welcome.variant and copy.showWelcomeCard are both set; welcome.variant wins. copy.showWelcomeCard is deprecated."),o==="hero"&&Sn(e,"message")&&s.push('welcome.message is ignored when welcome.variant is "hero": the hero is the greeting.'),o==="hero"&&Sn(e,"dismiss")&&e.dismiss!=="on-first-message"&&s.push('welcome.dismiss is pinned to "on-first-message" when welcome.variant is "hero".'),Zx(t,s),{title:Sn(e,"title")?e.title:n?.welcomeTitle??Yx,subtitle:Sn(e,"subtitle")?e.subtitle:n?.welcomeSubtitle??Jx,icon:e?.icon,variant:o,dismiss:r,message:o==="hero"?void 0:e?.message}},Gr=(t,e)=>t.variant==="none"?!1:t.dismiss==="never"?!0:!(e??[]).some(n=>n.role==="user");var gm=t=>{let e=t?.launcher?.enabled??!0,n=Ot(t);if(ri(t)){let d=t?.launcher?.composerBar??{},g=v("div","persona-widget-wrapper persona-fixed persona-transition");g.setAttribute("data-persona-composer-bar",""),g.dataset.state="collapsed",g.dataset.expandedSize=d.expandedSize??"anchored",g.style.zIndex=String(t?.launcher?.zIndex??Ut);let b=v("div","persona-widget-panel persona-relative persona-flex persona-flex-1 persona-min-h-0 persona-flex-col");b.style.width="100%",g.appendChild(b);let f=v("div","persona-widget-pill-root");return f.setAttribute("data-persona-composer-bar",""),f.dataset.state="collapsed",f.dataset.expandedSize=d.expandedSize??"anchored",f.style.zIndex=String(t?.launcher?.zIndex??Ut),{wrapper:g,panel:b,pillRoot:f}}if(n){let d=v("div","persona-relative persona-h-full persona-w-full persona-flex persona-flex-1 persona-min-h-0 persona-flex-col"),g=v("div","persona-relative persona-h-full persona-w-full persona-flex persona-flex-1 persona-min-h-0 persona-flex-col");return d.appendChild(g),{wrapper:d,panel:g}}if(!e){let d=v("div","persona-relative persona-h-full persona-flex persona-flex-col persona-flex-1 persona-min-h-0"),g=v("div","persona-relative persona-flex-1 persona-flex persona-flex-col persona-min-h-0"),b=t?.launcher?.width??"100%";return d.style.width=b,g.style.width="100%",d.appendChild(g),{wrapper:d,panel:g}}let r=t?.launcher??{},s=r.position&&un[r.position]?un[r.position]:un["bottom-right"],i=v("div",`persona-widget-wrapper persona-fixed ${s} persona-transition`);i.style.zIndex=String(t?.launcher?.zIndex??Ut);let l=v("div","persona-widget-panel persona-relative persona-min-h-[320px]"),c=t?.launcher?.width??t?.launcherWidth??no;return l.style.width=c,l.style.maxWidth=c,i.appendChild(l),{wrapper:i,panel:l}},cd=t=>{let e=ye("div",{className:"persona-suggestions",attrs:{"data-persona-suggestions":td(t)}});return e.hidden=!0,e},fm=(t,e)=>{let n=cd("starter"),o=im(t,n,{flatShadow:Ot(t)}),r=rr(t);sl(o,r),Kr(e,o.host,Gr(r,t?.initialMessages));let s=dm();return il(s,r.message,t),{welcome:o,greetingHost:s}},ew=(t,e)=>{let n=v("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}=Ga(t,{showClose:e,wrapperClassName:"persona-composer-bar-close",buttonSize:"16px",iconSize:"14px"});r.style.position="absolute",r.style.top="8px",r.style.right="8px",r.style.zIndex="10";let s=t?.launcher?.clearChat?.enabled??!0,i=null,l=null;if(s){let $=Qa(t,{wrapperClassName:"persona-composer-bar-clear-chat",buttonSize:"16px",iconSize:"14px"});i=$.button,l=$.wrapper,l.style.position="absolute",l.style.top="8px",l.style.right="32px",l.style.zIndex="10"}let p=ye("span",{className:"persona-widget-header",attrs:{"data-persona-theme-zone":"header"},style:{display:"none"}}),c=ye("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"}});c.style.setProperty("scrollbar-gutter","stable");let{welcome:d,greetingHost:g}=fm(t,c),{host:b,title:f,subtitle:y}=d,C=d.starterSuggestions,M=v("div","persona-widget-messages persona-flex persona-flex-col persona-gap-3"),I=cd("followUp"),S=To(t,!0);S&&(M.style.maxWidth=S,M.style.marginLeft="auto",M.style.marginRight="auto",M.style.width="100%"),c.append(b,g,M,I);let E=ye("div",{className:"persona-composer-overlay persona-pointer-events-none",attrs:{"data-persona-composer-overlay":""},style:{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20"}}),L=ol({config:t}),{root:D,textNode:z}=tm();return n.append(p,r,c,E),l&&n.appendChild(l),{container:n,body:c,messagesWrapper:M,starterSuggestions:C,transcriptSuggestions:I,composerOverlay:E,suggestions:L.suggestions,textarea:L.textarea,sendButton:L.sendButton,sendButtonWrapper:L.sendButtonWrapper,micButton:L.micButton,micButtonWrapper:L.micButtonWrapper,composerForm:L.composerForm,statusText:L.statusText,welcomeHost:b,welcomeIconHolder:d.iconHolder,greetingHost:g,introTitle:f,introSubtitle:y,closeButton:o,closeButtonWrapper:r,clearChatButton:i,clearChatButtonWrapper:l,iconHolder:v("span"),headerTitle:v("span"),headerSubtitle:v("span"),header:p,footer:L.footer,attachmentButton:L.attachmentButton,attachmentButtonWrapper:L.attachmentButtonWrapper,attachmentInput:L.attachmentInput,attachmentPreviewsContainer:L.attachmentPreviewsContainer,actionsRow:L.actionsRow,leftActions:L.leftActions,rightActions:L.rightActions,setSendButtonMode:L.setSendButtonMode,peekBanner:D,peekTextNode:z}},mm=(t,e=!0)=>{if(ri(t))return ew(t,e);let n=ye("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=t?.layout?.header,r=t?.layout?.showHeader!==!1,s=o?Xa(t,o,{showClose:e}):or({config:t,showClose:e}),i=ye("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"}});i.style.setProperty("scrollbar-gutter","stable");let{welcome:l,greetingHost:p}=fm(t,i),{host:c,title:d,subtitle:g}=l,b=l.starterSuggestions,f=v("div","persona-widget-messages persona-flex persona-flex-col persona-gap-3"),y=cd("followUp"),C=To(t,!1);C&&(f.style.maxWidth=C,f.style.marginLeft="auto",f.style.marginRight="auto",f.style.width="100%"),i.append(c,p,f,y);let M=ai({config:t}),I=t?.layout?.showFooter!==!1;r?ii(n,s,t):(s.header.style.display="none",ii(n,s,t)),n.append(i);let S=ye("div",{className:"persona-composer-overlay persona-pointer-events-none",attrs:{"data-persona-composer-overlay":""},style:{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20"}});return I||(M.footer.style.display="none"),n.append(M.footer),n.append(S),{container:n,body:i,messagesWrapper:f,starterSuggestions:b,transcriptSuggestions:y,composerOverlay:S,suggestions:M.suggestions,textarea:M.textarea,sendButton:M.sendButton,sendButtonWrapper:M.sendButtonWrapper,micButton:M.micButton,micButtonWrapper:M.micButtonWrapper,composerForm:M.composerForm,statusText:M.statusText,welcomeHost:c,welcomeIconHolder:l.iconHolder,greetingHost:p,introTitle:d,introSubtitle:g,closeButton:s.closeButton,closeButtonWrapper:s.closeButtonWrapper,clearChatButton:s.clearChatButton,clearChatButtonWrapper:s.clearChatButtonWrapper,iconHolder:s.iconHolder,headerTitle:s.headerTitle,headerSubtitle:s.headerSubtitle,header:s.header,footer:M.footer,attachmentButton:M.attachmentButton,attachmentButtonWrapper:M.attachmentButtonWrapper,attachmentInput:M.attachmentInput,attachmentPreviewsContainer:M.attachmentPreviewsContainer,actionsRow:M.actionsRow,leftActions:M.leftActions,rightActions:M.rightActions,setSendButtonMode:M.setSendButtonMode}};Ye();xt();var dd=(t,e)=>{let n=v("button");n.type="button",n.innerHTML=`
|
|
205
205
|
<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>
|
|
206
206
|
<img data-role="launcher-image" class="persona-rounded-full persona-object-cover" alt="" style="display:none" />
|
|
207
207
|
<span class="persona-flex persona-min-w-0 persona-flex-1 persona-flex-col persona-items-start persona-text-left">
|
|
@@ -209,14 +209,14 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
209
209
|
<span class="persona-block persona-w-full persona-truncate persona-text-xs persona-text-persona-muted" data-role="launcher-subtitle"></span>
|
|
210
210
|
</span>
|
|
211
211
|
<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>
|
|
212
|
-
`,n.addEventListener("click",e);let o=s=>{let i=s.launcher??{},l=_t(s),p=n.querySelector("[data-role='launcher-title']");if(p){let S=i.title??"Chat Assistant";p.textContent=S,p.setAttribute("title",S)}let c=n.querySelector("[data-role='launcher-subtitle']");if(c){let S=i.subtitle??"Here to help you get answers fast";c.textContent=S,c.setAttribute("title",S)}let d=n.querySelector(".persona-flex-col");d&&(i.textHidden||l?d.style.display="none":d.style.display="");let u=n.querySelector("[data-role='launcher-icon']");if(u)if(i.agentIconHidden)u.style.display="none";else{let S=i.agentIconSize??"40px";if(u.style.height=S,u.style.width=S,i.agentIconBackgroundColor?(u.style.backgroundColor=i.agentIconBackgroundColor,u.classList.remove("persona-bg-persona-primary")):(u.style.backgroundColor="",u.classList.add("persona-bg-persona-primary")),u.innerHTML="",i.agentIconName){let E=parseFloat(S)||24,z=ae(i.agentIconName,E*.6,"var(--persona-text-inverse, #ffffff)",2);z?(u.appendChild(z),u.style.display=""):(u.textContent=i.agentIconText??"\u{1F4AC}",u.style.display="")}else i.iconUrl?u.style.display="none":(u.textContent=i.agentIconText??"\u{1F4AC}",u.style.display="")}let b=n.querySelector("[data-role='launcher-image']");if(b){let S=i.agentIconSize??"40px";b.style.height=S,b.style.width=S,i.iconUrl&&!i.agentIconName&&!i.agentIconHidden?(b.src=i.iconUrl,b.style.display="block"):b.style.display="none"}let g=n.querySelector("[data-role='launcher-call-to-action-icon']");if(g){let S=i.callToActionIconSize??"32px";g.style.height=S,g.style.width=S,i.callToActionIconBackgroundColor?(g.style.backgroundColor=i.callToActionIconBackgroundColor,g.classList.remove("persona-bg-persona-primary")):(g.style.backgroundColor="",g.classList.add("persona-bg-persona-primary")),i.callToActionIconColor?(g.style.color=i.callToActionIconColor,g.classList.remove("persona-text-persona-call-to-action")):(g.style.color="",g.classList.add("persona-text-persona-call-to-action"));let E=0;if(i.callToActionIconPadding?(g.style.boxSizing="border-box",g.style.padding=i.callToActionIconPadding,E=(parseFloat(i.callToActionIconPadding)||0)*2):(g.style.boxSizing="",g.style.padding=""),i.callToActionIconHidden)g.style.display="none";else if(g.style.display=l?"none":"",g.innerHTML="",i.callToActionIconName){let z=parseFloat(S)||24,G=Math.max(z-E,8),A=ae(i.callToActionIconName,G,"currentColor",2);A?g.appendChild(A):g.textContent=i.callToActionIconText??"\u2197"}else g.textContent=i.callToActionIconText??"\u2197"}let h=i.position&&kn[i.position]?kn[i.position]:kn["bottom-right"],C="persona-fixed persona-flex persona-items-center persona-gap-3 persona-rounded-launcher persona-bg-persona-surface persona-py-2.5 persona-pl-3 persona-pr-3 persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer",L="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-surface persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer";n.className=l?L:`${C} ${h}`,l||(n.style.zIndex=String(i.zIndex??Qt));let B="1px solid var(--persona-border, #e5e7eb)",k="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=i.border??B,n.style.boxShadow=i.shadow!==void 0?i.shadow.trim()===""?"none":i.shadow:k,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=i.collapsedMaxWidth??"",n.style.justifyContent="",n.style.padding="",n.style.overflow="")},r=()=>{n.removeEventListener("click",e),n.remove()};return t&&o(t),{element:n,update:o,destroy:r}};var af=({config:t,showClose:e})=>{let{wrapper:n,panel:o,pillRoot:r}=rf(t),s=sf(t,e),i={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,introTitle:s.introTitle,introSubtitle:s.introSubtitle},p={element:s.header,iconHolder:s.iconHolder,headerTitle:s.headerTitle,headerSubtitle:s.headerSubtitle,closeButton:s.closeButton,closeButtonWrapper:s.closeButtonWrapper,clearChatButton:s.clearChatButton,clearChatButtonWrapper:s.clearChatButtonWrapper},c={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:i,panelElements:s,transcript:l,header:p,composer:c,replaceHeader:b=>(p.element.replaceWith(b.header),p.element=b.header,p.iconHolder=b.iconHolder,p.headerTitle=b.headerTitle,p.headerSubtitle=b.headerSubtitle,p.closeButton=b.closeButton,p.closeButtonWrapper=b.closeButtonWrapper,p.clearChatButton=b.clearChatButton,p.clearChatButtonWrapper=b.clearChatButtonWrapper,b),replaceComposer:b=>{c.footer.replaceWith(b),c.footer=b}}},vc=({config:t,plugins:e,onToggle:n})=>{let o=e.find(s=>s.renderLauncher);if(o?.renderLauncher){let s=o.renderLauncher({config:t,defaultRenderer:()=>bc(t,n).element,onToggle:n});if(s)return{instance:null,element:s}}let r=bc(t,n);return{instance:r,element:r.element}};Je();wt();var gv=t=>{switch(t){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}},fv=(t,e)=>{if(!t)return null;let n=gv(t);if(n===null)return null;let o=e?.[t],r=o!==void 0?o:n;return r||null},mv=(t,e)=>{let n=v("div","persona-message-stop-reason persona-text-xs persona-mt-2 persona-italic");return n.setAttribute("data-stop-reason",t),n.setAttribute("role","note"),n.style.opacity="0.75",n.textContent=e,n},hv=t=>{let e=t.toLowerCase();return e.startsWith("data:image/svg+xml")?!1:!!(/^(?:https?|blob):/i.test(t)||e.startsWith("data:image/")||!t.includes(":"))},xc=t=>{let e=t.toLowerCase();return e.startsWith("javascript:")||e.startsWith("data:text/html")||e.startsWith("data:text/javascript")||e.startsWith("data:text/xml")||e.startsWith("data:application/xhtml")||e.startsWith("data:image/svg+xml")?!1:!!(/^(?:https?|blob):/i.test(t)||e.startsWith("data:")||!t.includes(":"))},Cc=320,pf=320,yv=t=>!t.contentParts||t.contentParts.length===0?[]:t.contentParts.filter(e=>e.type==="image"&&typeof e.image=="string"&&e.image.trim().length>0),bv=t=>!t.contentParts||t.contentParts.length===0?[]:t.contentParts.filter(e=>e.type==="audio"&&typeof e.audio=="string"&&e.audio.trim().length>0),vv=t=>!t.contentParts||t.contentParts.length===0?[]:t.contentParts.filter(e=>e.type==="video"&&typeof e.video=="string"&&e.video.trim().length>0),xv=t=>!t.contentParts||t.contentParts.length===0?[]:t.contentParts.filter(e=>e.type==="file"&&typeof e.data=="string"&&e.data.trim().length>0),Cv=t=>{if(!t||t.length===0)return null;let e=Ce("div",{className:"persona-mention-context-row persona-message-mentions",attrs:{"data-message-mentions":""}});e.style.display="flex";for(let n of t){let o=Ce("div",{className:"persona-mention-chip persona-mention-chip-readonly",attrs:{"data-status":"ready",title:n.label}}),r=v("span","persona-mention-chip-icon"),s=ae(n.iconName??"at-sign",13,"currentColor",2);s&&r.appendChild(s),o.appendChild(r),o.appendChild(Ce("span",{className:"persona-mention-chip-label",text:n.label})),e.appendChild(o)}return e},wv=(t,e)=>{let n=document.createDocumentFragment();for(let o of t){if(o.kind==="text"){n.appendChild(document.createTextNode(o.text));continue}n.appendChild(ks(o.ref,{readonly:!0,render:e}))}return n},lf="\uE000",cf="\uE001",Av=(t,e,n,o)=>{let r=Math.random().toString(36).slice(2,8),s=b=>`${lf}${r}:${b}${cf}`,i=e.map((b,g)=>b.kind==="text"?b.text:s(g)).join(""),l=n(i);if(!e.every((b,g)=>b.kind==="text"||l.includes(s(g)))){t.replaceChildren(wv(e,o));return}t.innerHTML=l;let c=new RegExp(`${lf}${r}:(\\d+)${cf}`),d=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),u=[];for(let b=d.nextNode();b;b=d.nextNode())u.push(b);for(let b of u){let g=b;for(let h=c.exec(g.data);h;h=c.exec(g.data)){let C=e[Number(h[1])],L=g.splitText(h.index);L.data=L.data.slice(h[0].length),C?.kind==="mention"&&L.parentNode?.insertBefore(ks(C.ref,{readonly:!0,render:o}),L),g=L}}},Sv=(t,e,n)=>{if(t.length===0)return null;try{let o=v("div","persona-flex persona-flex-col persona-gap-2");o.setAttribute("data-message-attachments","images"),e&&(o.style.marginBottom="8px");let r=0,s=!1,i=()=>{s||(s=!0,o.remove(),n?.())};return t.forEach((l,p)=>{let c=v("img");c.alt=l.alt?.trim()||`Attached image ${p+1}`,c.loading="lazy",c.decoding="async",c.referrerPolicy="no-referrer",c.style.display="block",c.style.width="100%",c.style.maxWidth=`${Cc}px`,c.style.maxHeight=`${pf}px`,c.style.height="auto",c.style.objectFit="contain",c.style.borderRadius="10px",c.style.backgroundColor="var(--persona-attachment-image-bg, var(--persona-container, #f3f4f6))",c.style.border="1px solid var(--persona-attachment-image-border, var(--persona-border, #e5e7eb))";let d=!1;r+=1,c.addEventListener("error",()=>{d||(d=!0,r=Math.max(0,r-1),c.remove(),r===0&&i())}),c.addEventListener("load",()=>{d=!0}),hv(l.image)?(c.src=l.image,o.appendChild(c)):(d=!0,r=Math.max(0,r-1),c.remove())}),r===0?(i(),null):o}catch{return n?.(),null}},Mv=t=>{if(t.length===0)return null;try{let e=v("div","persona-flex persona-flex-col persona-gap-2");e.setAttribute("data-message-attachments","audio");let n=0;return t.forEach(o=>{if(!xc(o.audio))return;let r=v("audio");r.controls=!0,r.preload="metadata",r.src=o.audio,r.style.display="block",r.style.width="100%",r.style.maxWidth=`${Cc}px`,e.appendChild(r),n+=1}),n===0?(e.remove(),null):e}catch{return null}},Tv=t=>{if(t.length===0)return null;try{let e=v("div","persona-flex persona-flex-col persona-gap-2");e.setAttribute("data-message-attachments","video");let n=0;return t.forEach(o=>{if(!xc(o.video))return;let r=v("video");r.controls=!0,r.preload="metadata",r.src=o.video,r.style.display="block",r.style.width="100%",r.style.maxWidth=`${Cc}px`,r.style.maxHeight=`${pf}px`,r.style.borderRadius="10px",r.style.backgroundColor="var(--persona-attachment-image-bg, var(--persona-container, #f3f4f6))",e.appendChild(r),n+=1}),n===0?(e.remove(),null):e}catch{return null}},Ev=t=>{if(t.length===0)return null;try{let e=v("div","persona-flex persona-flex-col persona-gap-2");e.setAttribute("data-message-attachments","files");let n=0;return t.forEach(o=>{if(!xc(o.data))return;let r=v("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",e.appendChild(r),n+=1}),n===0?(e.remove(),null):e}catch{return null}},zs=()=>{let t=document.createElement("div");t.className="persona-flex persona-items-center persona-space-x-1 persona-h-5 persona-mt-2";let e=document.createElement("div");e.className="persona-animate-typing persona-rounded-full persona-h-1.5 persona-w-1.5",e.style.backgroundColor="currentColor",e.style.opacity="0.4",e.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",t.appendChild(e),t.appendChild(n),t.appendChild(o),t.appendChild(r),t},kv=(t,e,n)=>{let o={config:n??{},streaming:!0,location:t,defaultRenderer:zs};if(e){let r=e(o);if(r!==null)return r}return zs()},Lv=(t,e)=>{let n=v("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=e==="user"?t.userAvatar:t.assistantAvatar;if(o)if(o.startsWith("http")||o.startsWith("/")||o.startsWith("data:")){let r=v("img");r.src=o,r.alt=e==="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(e==="user"?"persona-bg-persona-accent":"persona-bg-persona-primary","persona-text-white");else n.textContent=e==="user"?"U":"A",n.classList.add(e==="user"?"persona-bg-persona-accent":"persona-bg-persona-primary","persona-text-white");return n},df=(t,e,n="div")=>{let o=v(n,"persona-text-xs persona-text-persona-muted"),r=new Date(t.createdAt);return e.format?o.textContent=e.format(r):o.textContent=r.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),o},wc=(t,e="bubble")=>{let n=["persona-message-bubble"];switch(e){case"flat":t==="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"),t==="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"),t==="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},Pv=(t,e,n)=>{let o=e.showCopy??!0,r=e.showUpvote??!0,s=e.showDownvote??!0,i=e.showReadAloud??!1;if(!o&&!r&&!s&&!i){let h=v("div");return h.style.display="none",h.id=`actions-${t.id}`,h.setAttribute("data-actions-for",t.id),h}let l=e.visibility??"hover",p=e.align??"right",c=e.layout??"pill-inside",d={left:"persona-message-actions-left",center:"persona-message-actions-center",right:"persona-message-actions-right"}[p],u={"pill-inside":"persona-message-actions-pill","row-inside":"persona-message-actions-row"}[c],b=v("div",`persona-message-actions persona-flex persona-items-center persona-gap-1 persona-mt-2 ${d} ${u} ${l==="hover"?"persona-message-actions-hover":""}`);b.id=`actions-${t.id}`,b.setAttribute("data-actions-for",t.id);let g=(h,C,L)=>{let B=Ht({icon:h,label:C,size:14,className:"persona-message-action-btn"});return B.setAttribute("data-action",L),B};return o&&b.appendChild(g("copy","Copy message","copy")),i&&b.appendChild(g("volume-2","Read aloud","read-aloud")),r&&b.appendChild(g("thumbs-up","Upvote","upvote")),s&&b.appendChild(g("thumbs-down","Downvote","downvote")),b},Ac=(t,e,n,o,r,s)=>{let i=n??{},l=i.layout??"bubble",p=i.avatar,c=i.timestamp,d=p?.show??!1,u=c?.show??!1,b=p?.position??"left",g=c?.position??"below",h=wc(t.role,l),C=v("div",h.join(" "));C.id=`bubble-${t.id}`,C.setAttribute("data-message-id",t.id),C.setAttribute("data-persona-theme-zone",t.role==="user"?"user-message":"assistant-message"),l==="flat"?(C.style.backgroundColor="transparent",C.style.color=t.role==="user"?"var(--persona-primary, var(--persona-text))":"var(--persona-message-assistant-text, var(--persona-text))"):t.role==="user"?(C.style.backgroundColor="var(--persona-message-user-bg, var(--persona-accent))",C.style.color="var(--persona-message-user-text, white)"):t.role==="assistant"&&(C.style.backgroundColor="var(--persona-message-assistant-bg, var(--persona-container))",C.style.color="var(--persona-message-assistant-text, var(--persona-text))");let L=yv(t),B=t.content?.trim()??"",S=L.length>0&&B===zi,E=Sa(s?.widgetConfig?.features?.streamAnimation),z=s?.widgetConfig?.features?.streamAnimation?.plugins,G=t.role==="assistant"&&E.type!=="none"?Er(E.type,z):null,A=t.role==="assistant"&&G?.isAnimating?.(t)===!0,O=t.role==="assistant"&&G!==null&&(!!t.streaming||A);O&&G?.bubbleClass&&C.classList.add(G.bubbleClass);let D=document.createElement("div");D.classList.add("persona-message-content"),t.streaming&&D.classList.add("persona-content-streaming"),O&&G&&(G.containerClass&&D.classList.add(G.containerClass),D.style.setProperty("--persona-stream-step",`${E.speed}ms`),D.style.setProperty("--persona-stream-duration",`${E.duration}ms`));let W=O?Ma(t.content??"",E.buffer,G,t,!!t.streaming):t.content??"",P=()=>{let ee=e({text:W,message:t,streaming:!!t.streaming,raw:t.rawContent});return O&&G?.wrap==="char"?Ds(ee,"char",t.id,{skipTags:G.skipTags}):O&&G?.wrap==="word"?Ds(ee,"word",t.id,{skipTags:G.skipTags}):ee},I=null;if(S?(I=document.createElement("div"),I.innerHTML=P(),I.style.display="none",D.appendChild(I)):t.contentSegments?.length?Av(D,t.contentSegments,ee=>e({text:ee,message:t,streaming:!!t.streaming,raw:t.rawContent}),s?.widgetConfig?.contextMentions?.renderMentionToken):D.innerHTML=P(),O&&G?.useCaret&&!S&&B){let ee=Ta(),fe=D.querySelectorAll(".persona-stream-char, .persona-stream-word"),be=fe[fe.length-1];if(be?.parentNode)be.parentNode.insertBefore(ee,be.nextSibling);else{let he=D.lastElementChild;he?he.appendChild(ee):D.appendChild(ee)}}if(u&&g==="inline"&&t.createdAt){let ee=df(t,c,"span");ee.classList.add("persona-timestamp-inline");let fe=D.lastElementChild;fe?fe.appendChild(ee):D.appendChild(ee)}if(L.length>0){let ee=Sv(L,!S&&!!B,()=>{S&&I&&(I.style.display="")});ee?C.appendChild(ee):S&&I&&(I.style.display="")}let j=bv(t);if(j.length>0){let ee=Mv(j);ee&&C.appendChild(ee)}let pe=vv(t);if(pe.length>0){let ee=Tv(pe);ee&&C.appendChild(ee)}let ge=xv(t);if(ge.length>0){let ee=Ev(ge);ee&&C.appendChild(ee)}let se=t.contentSegments?.length?null:Cv(t.contextMentions);if(se&&C.appendChild(se),C.appendChild(D),u&&g==="below"&&t.createdAt){let ee=df(t,c);ee.classList.add("persona-mt-1"),C.appendChild(ee)}let Y=t.role==="assistant"?fv(t.stopReason,s?.widgetConfig?.copy?.stopReasonNotice):null;if(t.streaming&&t.role==="assistant"){let ee=!!(W&&W.trim()),fe=E.placeholder==="skeleton",be=fe&&E.buffer==="line"&ⅇif(ee)be&&C.appendChild(Ns());else if(fe)C.appendChild(Ns());else{let he=kv("inline",s?.loadingIndicatorRenderer,s?.widgetConfig);he&&C.appendChild(he)}}if(Y&&t.stopReason&&!t.streaming&&(B||(D.style.display="none"),C.appendChild(mv(t.stopReason,Y))),t.role==="assistant"&&!t.streaming&&t.content&&t.content.trim()&&o?.enabled!==!1&&o){let ee=Pv(t,o,r);C.appendChild(ee)}if(!d||t.role==="system")return C;let J=v("div",`persona-message-with-avatar persona-flex persona-gap-2 ${t.role==="user"?"persona-flex-row-reverse":""}`),ie=Lv(p,t.role);return b==="right"||b==="left"&&t.role==="user"?J.append(C,ie):J.append(ie,C),J};Je();wt();var kr=new Set,Iv=(t,e)=>e==null?!1:typeof e=="string"?(t.textContent=e,!0):(t.appendChild(e),!0),Rv=(t,e)=>{let n=t.reasoning?.chunks.join("").trim()??"";return n?n.split(/\r?\n/).map(o=>o.trim()).filter(Boolean).slice(0,e).join(`
|
|
213
|
-
`):""},
|
|
214
|
-
`);let r=
|
|
215
|
-
`):""},Mc=(t,e)=>{t.style.backgroundColor=e.codeBlockBackgroundColor??"var(--persona-container, #f3f4f6)",t.style.borderColor=e.codeBlockBorderColor??"var(--persona-border, #e5e7eb)",t.style.color=e.codeBlockTextColor??"var(--persona-text, #171717)"},Bv=(t,e)=>{let n=t.toolCall,o=e?.features?.toolCallDisplay,r=o?.collapsedMode??"tool-call",s=Hv(t,o?.previewMaxLines??3),i=n?nu(n):"";if(!n)return{summary:i,previewText:s,isActive:!1};let l=n.status!=="complete",p=e?.toolCall??{},c=i;return r==="tool-name"?c=n.name?.trim()||i:r==="tool-preview"&&s&&(c=s),l&&p.activeTextTemplate?c=Wl(n,p.activeTextTemplate,c):!l&&p.completeTextTemplate&&(c=Wl(n,p.completeTextTemplate,c)),{summary:c,previewText:s,isActive:l}},gf=(t,e,n)=>{let o=Lr.has(t),r=n?.toolCall??{},s=e.querySelector('button[data-expand-header="true"]'),i=e.querySelector(".persona-border-t"),l=e.querySelector('[data-persona-collapsed-preview="tool"]');if(!s||!i)return;s.setAttribute("aria-expanded",o?"true":"false");let c=s.querySelector(".persona-ml-auto")?.querySelector(":scope > .persona-flex.persona-items-center");if(c){c.innerHTML="";let d=r.toggleTextColor||r.headerTextColor||"var(--persona-primary, #171717)",u=ae(o?"chevron-up":"chevron-down",16,d,2);u?c.appendChild(u):c.textContent=o?"Hide":"Show"}i.style.display=o?"":"none",l&&(l.style.display=o?"none":l.textContent||l.childNodes.length?"":"none")},Tc=(t,e)=>{let n=t.toolCall,o=e?.toolCall??{},r=v("div",["persona-message-bubble","persona-tool-bubble","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"].join(" "));if(r.id=`bubble-${t.id}`,r.setAttribute("data-message-id",t.id),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=e?.features?.toolCallDisplay??{},i=s.expandable!==!1,l=i&&Lr.has(t.id),{summary:p,previewText:c,isActive:d}=Bv(t,e),u=v("button",i?"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":"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");u.type="button",i&&(u.setAttribute("aria-expanded",l?"true":"false"),u.setAttribute("data-expand-header","true")),u.setAttribute("data-bubble-type","tool"),o.headerBackgroundColor&&(u.style.backgroundColor=o.headerBackgroundColor),o.headerPaddingX&&(u.style.paddingLeft=o.headerPaddingX,u.style.paddingRight=o.headerPaddingX),o.headerPaddingY&&(u.style.paddingTop=o.headerPaddingY,u.style.paddingBottom=o.headerPaddingY);let b=v("div","persona-flex persona-flex-col persona-text-left"),g=v("span","persona-text-xs persona-text-persona-primary");o.headerTextColor&&(g.style.color=o.headerTextColor);let h=String(n.startedAt??Date.now()),C=()=>{let P=v("span","");return P.setAttribute("data-tool-elapsed",h),P.textContent=ms(n),P},L=o.renderCollapsedSummary?.({message:t,toolCall:n,defaultSummary:p,previewText:c,collapsedMode:s.collapsedMode??"tool-call",isActive:d,config:e??{},elapsed:ms(n),createElapsedElement:C});typeof L=="string"&&L.trim()?(g.textContent=L,b.appendChild(g)):L instanceof HTMLElement?b.appendChild(L):(g.textContent=p,b.appendChild(g));let B=s.loadingAnimation??"none",k=o.activeTextTemplate,S=o.completeTextTemplate,E=d?k:S,z=L instanceof HTMLElement,G=(P,I)=>{g.textContent="";let j=n.name?.trim()||"tool",pe=Fi(P,j),ge=0;for(let se of pe){let Y=se.styles.length>0?(()=>{let oe=v("span",se.styles.map(J=>`persona-tool-text-${J}`).join(" "));return g.appendChild(oe),oe})():g;if(se.isDuration&&d)Y.appendChild(C());else{let oe=se.isDuration?ms(n):se.text;I?ge=vo(Y,oe,ge):Y.appendChild(document.createTextNode(oe))}}};if(!z)if(d&&B!=="none"){let P=o.loadingAnimationDuration??2e3;if(g.setAttribute("data-preserve-animation","true"),B==="pulse")g.classList.add("persona-tool-loading-pulse"),g.style.setProperty("--persona-tool-anim-duration",`${P}ms`),E&&G(E,!1);else if(g.classList.add(`persona-tool-loading-${B}`),g.style.setProperty("--persona-tool-anim-duration",`${P}ms`),B==="shimmer-color"&&(o.loadingAnimationColor&&g.style.setProperty("--persona-tool-anim-color",o.loadingAnimationColor),o.loadingAnimationSecondaryColor&&g.style.setProperty("--persona-tool-anim-secondary-color",o.loadingAnimationSecondaryColor)),E)G(E,!0);else{let I=g.textContent||p;g.textContent="",vo(g,I,0)}}else E&&G(E,!1);let A=null;if(i){A=v("div","persona-flex persona-items-center");let P=o.toggleTextColor||o.headerTextColor||"var(--persona-primary, #171717)",I=ae(l?"chevron-up":"chevron-down",16,P,2);I?A.appendChild(I):A.textContent=l?"Hide":"Show";let j=v("div","persona-flex persona-items-center persona-gap-2 persona-ml-auto");j.append(A),u.append(b,j)}else u.append(b);let O=v("div","persona-px-4 persona-py-3 persona-text-xs persona-leading-snug persona-text-persona-muted");if(O.setAttribute("data-persona-collapsed-preview","tool"),O.style.display="none",O.style.whiteSpace="pre-wrap",!l&&d&&s.activePreview&&c){let P=o.renderCollapsedPreview?.({message:t,toolCall:n,defaultPreview:c,isActive:d,config:e??{}});Wv(O,P)||(O.textContent=c),O.style.display=""}if(!l&&d&&s.activeMinHeight&&(r.style.minHeight=s.activeMinHeight),!i)return r.append(u,O),r;let D=v("div","persona-border-t persona-border-gray-200 persona-bg-gray-50 persona-space-y-3 persona-px-4 persona-py-3");if(D.style.display=l?"":"none",o.contentBackgroundColor&&(D.style.backgroundColor=o.contentBackgroundColor),o.contentTextColor&&(D.style.color=o.contentTextColor),o.contentPaddingX&&(D.style.paddingLeft=o.contentPaddingX,D.style.paddingRight=o.contentPaddingX),o.contentPaddingY&&(D.style.paddingTop=o.contentPaddingY,D.style.paddingBottom=o.contentPaddingY),n.name){let P=v("div","persona-text-xs persona-text-persona-muted persona-italic");o.contentTextColor?P.style.color=o.contentTextColor:o.headerTextColor&&(P.style.color=o.headerTextColor),P.textContent=n.name,D.appendChild(P)}if(n.args!==void 0){let P=v("div","persona-space-y-1"),I=v("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(I.style.color=o.labelTextColor),I.textContent="Arguments";let j=v("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");j.style.fontSize="0.75rem",j.style.lineHeight="1rem",Mc(j,o),j.textContent=yo(n.args),P.append(I,j),D.appendChild(P)}if(n.chunks&&n.chunks.length){let P=v("div","persona-space-y-1"),I=v("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(I.style.color=o.labelTextColor),I.textContent="Activity";let j=v("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");j.style.fontSize="0.75rem",j.style.lineHeight="1rem",Mc(j,o),j.textContent=n.chunks.join(""),P.append(I,j),D.appendChild(P)}if(n.status==="complete"&&n.result!==void 0){let P=v("div","persona-space-y-1"),I=v("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(I.style.color=o.labelTextColor),I.textContent="Result";let j=v("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");j.style.fontSize="0.75rem",j.style.lineHeight="1rem",Mc(j,o),j.textContent=yo(n.result),P.append(I,j),D.appendChild(P)}if(n.status==="complete"&&typeof n.duration=="number"){let P=v("div","persona-text-xs persona-text-persona-muted");o.contentTextColor&&(P.style.color=o.contentTextColor),P.textContent=`Duration: ${n.duration}ms`,D.appendChild(P)}return(()=>{if(u.setAttribute("aria-expanded",l?"true":"false"),A){A.innerHTML="";let P=o.toggleTextColor||o.headerTextColor||"var(--persona-primary, #171717)",I=ae(l?"chevron-up":"chevron-down",16,P,2);I?A.appendChild(I):A.textContent=l?"Hide":"Show"}D.style.display=l?"":"none",O.style.display=l?"none":O.textContent||O.childNodes.length?"":"none"})(),r.append(u,O,D),r};Je();wt();var jo=new Map,_a=t=>{let n=(t.startsWith(jn)?t.slice(jn.length):t).replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[_\-\s.]+/).filter(Boolean);if(n.length===0)return t;let o=n.join(" ").toLowerCase();return o.charAt(0).toUpperCase()+o.slice(1)},ff=t=>t?.approval!==!1?t?.approval:void 0,mf=(t,e)=>{let n=ff(e)?.detailsDisplay??"collapsed";return jo.get(t)??n==="expanded"},hf=(t,e,n)=>{let o=ff(n);t.setAttribute("aria-expanded",e?"true":"false");let r=t.querySelector("[data-approval-details-label]");r&&(r.textContent=e?o?.hideDetailsLabel??"Hide details":o?.showDetailsLabel??"Show details");let s=t.querySelector("[data-approval-details-chevron]");if(s){s.innerHTML="";let i=ae(e?"chevron-up":"chevron-down",14,"currentColor",2);i&&s.appendChild(i)}},yf=(t,e,n)=>{let o=e.querySelector('button[data-bubble-type="approval"]'),r=e.querySelector("[data-approval-details]");if(!o||!r)return;let s=mf(t,n);hf(o,s,n),r.style.display=s?"":"none"};var $a=(t,e)=>{let n=t.approval,o=e?.approval!==!1?e?.approval:void 0,r=n?.status==="pending",s=v("div",["persona-approval-bubble","persona-w-full","persona-rounded-2xl","persona-border","persona-shadow-sm","persona-overflow-hidden"].join(" "));if(s.id=`bubble-${t.id}`,s.setAttribute("data-message-id",t.id),s.style.backgroundColor=o?.backgroundColor??"var(--persona-approval-bg, #fefce8)",s.style.borderColor=o?.borderColor??"var(--persona-approval-border, #fef08a)",s.style.boxShadow=o?.shadow!==void 0?o.shadow.trim()===""?"none":o.shadow:"var(--persona-approval-shadow, 0 5px 15px rgba(15, 23, 42, 0.08))",!n)return s;let i=v("div","persona-flex persona-items-start persona-gap-3 persona-px-4 persona-py-3"),l=v("div","persona-flex-shrink-0 persona-mt-0.5");l.setAttribute("data-approval-icon","true");let p=n.status==="denied"?"shield-x":n.status==="timeout"?"shield-alert":"shield-check",c=n.status==="approved"?"var(--persona-feedback-success, #16a34a)":n.status==="denied"?"var(--persona-feedback-error, #dc2626)":n.status==="timeout"?"var(--persona-feedback-warning, #ca8a04)":o?.titleColor??"currentColor",d=ae(p,20,c,2);d&&l.appendChild(d);let u=v("div","persona-flex-1 persona-min-w-0"),b=v("div","persona-flex persona-items-center persona-gap-2"),g=v("span","persona-text-sm persona-font-medium persona-text-persona-primary");if(o?.titleColor&&(g.style.color=o.titleColor),g.textContent=o?.title??"Approval Required",b.appendChild(g),!r){let A=v("span","persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded-full persona-text-xs persona-font-medium");A.setAttribute("data-approval-status",n.status),n.status==="approved"?(A.style.backgroundColor="var(--persona-palette-colors-success-100, #dcfce7)",A.style.color="var(--persona-palette-colors-success-700, #15803d)",A.textContent="Approved"):n.status==="denied"?(A.style.backgroundColor="var(--persona-palette-colors-error-100, #fee2e2)",A.style.color="var(--persona-palette-colors-error-700, #b91c1c)",A.textContent="Denied"):n.status==="timeout"&&(A.style.backgroundColor="var(--persona-palette-colors-warning-100, #fef3c7)",A.style.color="var(--persona-palette-colors-warning-700, #b45309)",A.textContent="Timeout"),b.appendChild(A)}u.appendChild(b);let C=n.toolType==="webmcp"||n.toolName.startsWith(jn)?cs(n.toolName):void 0,L=o?.formatDescription?.({toolName:n.toolName,toolType:n.toolType,description:n.description,parameters:n.parameters,...C?{displayTitle:C}:{},...n.reason?{reason:n.reason}:{}}),B=!n.toolName,k=L||(B?n.description:`The assistant wants to use \u201C${C??_a(n.toolName)}\u201D.`),S=v("p","persona-text-sm persona-mt-0.5 persona-text-persona-muted");if(S.setAttribute("data-approval-summary","true"),o?.descriptionColor&&(S.style.color=o.descriptionColor),S.textContent=k,u.appendChild(S),n.reason){let A=v("p","persona-text-sm persona-mt-1 persona-text-persona-muted");A.setAttribute("data-approval-reason","true"),o?.reasonColor?A.style.color=o.reasonColor:o?.descriptionColor&&(A.style.color=o.descriptionColor);let O=v("span","persona-font-medium");O.textContent=`${o?.reasonLabel??"Agent's stated reason:"} `,A.appendChild(O),A.appendChild(document.createTextNode(n.reason)),u.appendChild(A)}let E=o?.detailsDisplay??"collapsed",z=!!n.description&&!B,G=z||!!n.parameters;if(E!=="hidden"&&G){let A=mf(t.id,e),O=v("button","persona-inline-flex persona-items-center persona-gap-1 persona-mt-1 persona-p-0 persona-border-none persona-bg-transparent persona-text-xs persona-font-medium persona-cursor-pointer persona-text-persona-muted");O.type="button",O.setAttribute("data-expand-header","true"),O.setAttribute("data-bubble-type","approval"),o?.descriptionColor&&(O.style.color=o.descriptionColor);let D=v("span");D.setAttribute("data-approval-details-label","true");let W=v("span","persona-inline-flex persona-items-center");W.setAttribute("data-approval-details-chevron","true"),O.append(D,W),hf(O,A,e),u.appendChild(O);let P=v("div");if(P.setAttribute("data-approval-details","true"),P.style.display=A?"":"none",z){let I=v("p","persona-text-sm persona-mt-1 persona-text-persona-muted");o?.descriptionColor&&(I.style.color=o.descriptionColor),I.textContent=n.description,P.appendChild(I)}if(n.parameters){let I=v("pre","persona-mt-2 persona-text-xs persona-p-2 persona-rounded persona-overflow-x-auto persona-max-h-32 persona-bg-persona-container persona-text-persona-primary");o?.parameterBackgroundColor&&(I.style.backgroundColor=o.parameterBackgroundColor),o?.parameterTextColor&&(I.style.color=o.parameterTextColor),I.style.fontSize="0.75rem",I.style.lineHeight="1rem",I.textContent=yo(n.parameters),P.appendChild(I)}u.appendChild(P)}if(r){let A=v("div","persona-flex persona-gap-2 persona-mt-2");A.setAttribute("data-approval-buttons","true");let O=v("button","persona-inline-flex persona-items-center persona-px-3 persona-py-1.5 persona-rounded-md persona-text-xs persona-font-medium persona-border-none persona-cursor-pointer");O.type="button",O.style.backgroundColor=o?.approveButtonColor??"var(--persona-approval-approve-bg, #22c55e)",O.style.color=o?.approveButtonTextColor??"#ffffff",O.setAttribute("data-approval-action","approve");let D=ae("shield-check",14,o?.approveButtonTextColor??"#ffffff",2);D&&(D.style.marginRight="4px",O.appendChild(D));let W=document.createTextNode(o?.approveLabel??"Approve");O.appendChild(W);let P=v("button","persona-inline-flex persona-items-center persona-px-3 persona-py-1.5 persona-rounded-md persona-text-xs persona-font-medium persona-cursor-pointer");P.type="button",P.style.backgroundColor=o?.denyButtonColor??"transparent",P.style.color=o?.denyButtonTextColor??"var(--persona-feedback-error, #dc2626)",P.style.border=`1px solid ${o?.denyButtonTextColor?o.denyButtonTextColor:"var(--persona-palette-colors-error-200, #fca5a5)"}`,P.setAttribute("data-approval-action","deny");let I=ae("shield-x",14,o?.denyButtonTextColor??"var(--persona-feedback-error, #dc2626)",2);I&&(I.style.marginRight="4px",P.appendChild(I));let j=document.createTextNode(o?.denyLabel??"Deny");P.appendChild(j),A.append(O,P),u.appendChild(A)}return i.append(l,u),s.appendChild(i),s};Je();wt();ql();var Dv=()=>({keyHandlers:new Map,popovers:new Map,pendingOrder:[],latestPendingApprovalId:null}),bf=(t,e)=>{let n=t.keyHandlers.get(e);n&&(document.removeEventListener("keydown",n),t.keyHandlers.delete(e));let o=t.popovers.get(e);o&&(o.destroy(),t.popovers.delete(e))},Vo=(t,e)=>{bf(t,e);let n=t.pendingOrder.indexOf(e);n!==-1&&t.pendingOrder.splice(n,1),t.latestPendingApprovalId===e&&(t.latestPendingApprovalId=t.pendingOrder.length?t.pendingOrder[t.pendingOrder.length-1]:null)},Nv=t=>t?.approval!==!1?t?.approval:void 0,Ov=(t,e)=>{let n=e?.detailsDisplay??"collapsed";return jo.get(t)??n==="expanded"},Ec=t=>{let e=v("span","persona-approval-kbd");return e.textContent=t,e},Fv=(t,e)=>{let n=v("span","persona-approval-title");e?.titleColor&&(n.style.color=e.titleColor);let r=t.toolType==="webmcp"||t.toolName.startsWith(jn)?cs(t.toolName):void 0,s=e?.formatDescription?.({toolName:t.toolName,toolType:t.toolType,description:t.description??"",parameters:t.parameters,...r?{displayTitle:r}:{},...t.reason?{reason:t.reason}:{}});if(s)return n.textContent=s,n;let i=r??_a(t.toolName),l=t.toolType&&t.toolType!=="webmcp"?t.toolType:null;n.append("The assistant wants to use ");let p=document.createElement("strong");if(p.textContent=i,n.appendChild(p),l){n.append(" from ");let c=document.createElement("strong");c.textContent=l,n.appendChild(c)}return n},_v=t=>{let e=v("div","persona-approval-resolved"),n=ae("ban",15,"currentColor",2);n&&e.appendChild(n);let o=v("span","persona-approval-resolved-name");return o.textContent=t.toolName?_a(t.toolName):"Tool",e.append(o,document.createTextNode(t.status==="timeout"?" timed out":" denied")),e},$v=(t,e,n,o,r,s,i)=>{let l=v("div","persona-approval-card persona-shadow-sm");l.id=`bubble-${e.id}`,l.setAttribute("data-message-id",e.id),l.setAttribute("data-bubble-type","approval"),o?.backgroundColor&&(l.style.background=o.backgroundColor),o?.borderColor&&(l.style.borderColor=o.borderColor),o?.shadow!==void 0&&(l.style.boxShadow=o.shadow.trim()===""?"none":o.shadow);let p=o?.detailsDisplay??"collapsed",c=!!n.description&&p!=="hidden",d=n.parameters!=null&&p!=="hidden",u=c||d,b=u&&Ov(e.id,o),g=o?.showDetailsLabel??"Show details",h=o?.hideDetailsLabel??"Hide details",C=v("button","persona-approval-head");C.type="button",u?(C.setAttribute("data-action","toggle-params"),C.setAttribute("aria-expanded",b?"true":"false"),C.setAttribute("aria-label",b?h:g)):C.setAttribute("data-static","true");let L=v("span","persona-approval-logo"),B=ae("shield-check",16,"currentColor",2);B&&L.appendChild(B),C.appendChild(L);let k=Fv(n,o);if(u){let O=v("span","persona-approval-toggle");O.setAttribute("aria-hidden","true");let D=ae("chevron-down",14,"currentColor",2);D&&O.appendChild(D),k.append(" "),k.appendChild(O)}C.appendChild(k),l.appendChild(C);let S=v("div","persona-approval-body");if(u){let O=v("div","persona-approval-details");if(O.setAttribute("data-role","params"),O.hidden=!b,c){let D=v("p","persona-approval-desc");o?.descriptionColor&&(D.style.color=o.descriptionColor),D.textContent=n.description,O.appendChild(D)}if(d){let D=v("pre","persona-approval-params");o?.parameterBackgroundColor&&(D.style.background=o.parameterBackgroundColor),o?.parameterTextColor&&(D.style.color=o.parameterTextColor),D.textContent=yo(n.parameters),O.appendChild(D)}S.appendChild(O)}if(n.reason){let O=v("p","persona-approval-reason");o?.reasonColor?O.style.color=o.reasonColor:o?.descriptionColor&&(O.style.color=o.descriptionColor);let D=v("span","persona-approval-reason-label");D.textContent=`${o?.reasonLabel??"Agent's stated reason:"} `,O.append(D,document.createTextNode(n.reason)),S.appendChild(O)}let E=v("div","persona-approval-actions"),z=null,G=O=>{o?.approveButtonColor&&(O.style.background=o.approveButtonColor),o?.approveButtonTextColor&&(O.style.color=o.approveButtonTextColor)},A=v("button","persona-approval-deny");if(A.type="button",A.setAttribute("data-action","deny"),o?.denyButtonColor&&(A.style.background=o.denyButtonColor),o?.denyButtonTextColor&&(A.style.color=o.denyButtonTextColor),A.append(o?.denyLabel??"Deny"),i){let O=v("div","persona-approval-split"),D=v("button","persona-approval-primary");D.type="button",D.setAttribute("data-action","always"),G(D),D.append(o?.approveLabel??"Always allow",Ec("\u23CE"));let W=v("button","persona-approval-caret");W.type="button",W.setAttribute("data-action","toggle-menu"),W.setAttribute("aria-label","More options"),G(W);let P=ae("chevron-down",15,"currentColor",2);P&&W.appendChild(P),O.append(D,W),E.append(O,A),A.append(Ec("Esc"));let I=v("div","persona-approval-menu"),j=v("button","persona-approval-menu-item");j.type="button",j.append("Allow once",Ec("\u2318\u23CE")),I.appendChild(j),z=ta({anchor:O,content:I,placement:"bottom-start",matchAnchorWidth:!0}),t.popovers.set(e.id,z),j.addEventListener("click",()=>{Vo(t,e.id),r()})}else{let O=v("button","persona-approval-primary persona-approval-primary--solo");O.type="button",O.setAttribute("data-action","allow"),G(O),O.append(o?.approveLabel??"Allow"),E.append(O,A)}return S.appendChild(E),l.appendChild(S),l.addEventListener("click",O=>{let D=O.target instanceof Element?O.target.closest("[data-action]"):null;if(!D)return;let W=D.getAttribute("data-action");if(W==="toggle-params"){let P=l.querySelector('[data-role="params"]');if(P){let I=P.hidden;P.hidden=!I,C.setAttribute("aria-expanded",I?"true":"false"),C.setAttribute("aria-label",I?h:g),jo.set(e.id,I)}return}if(W==="toggle-menu"){z?.toggle();return}if(W==="always"){Vo(t,e.id),r({remember:!0});return}if(W==="allow"){Vo(t,e.id),r();return}if(W==="deny"){Vo(t,e.id),s();return}}),l},vf=()=>{let t=Dv();return{plugin:{id:"persona-built-in-approval",renderApproval:({message:o,approve:r,deny:s,config:i})=>{let l=o?.approval;if(!l)return null;let p=Nv(i);if(l.status!=="pending"){if(Vo(t,o.id),l.status==="approved"){let u=document.createElement("div");return u.style.display="none",u}return _v(l)}bf(t,o.id);let c=p?.enableAlwaysAllow===!0,d=$v(t,o,l,p,r,s,c);if(c){t.pendingOrder.includes(o.id)||t.pendingOrder.push(o.id),t.latestPendingApprovalId=t.pendingOrder[t.pendingOrder.length-1];let u=b=>{Ou(b)||o.id===t.latestPendingApprovalId&&(b.key!=="Escape"&&b.key!=="Enter"||(b.preventDefault(),b.stopImmediatePropagation(),Vo(t,o.id),b.key==="Escape"?s():b.metaKey||b.ctrlKey?r():r({remember:!0})))};t.keyHandlers.set(o.id,u),document.addEventListener("keydown",u)}return d}},teardown:()=>{for(let o of[...t.keyHandlers.keys(),...t.popovers.keys()])Vo(t,o);t.latestPendingApprovalId=null}}};var Us=class{constructor(e=2e3,n=null){this.head=0;this.count=0;this.totalCaptured=0;this.eventTypesSet=new Set;this.maxSize=e,this.buffer=new Array(e),this.store=n}push(e){this.buffer[this.head]=e,this.head=(this.head+1)%this.maxSize,this.count<this.maxSize&&this.count++,this.totalCaptured++,this.eventTypesSet.add(e.type),this.store?.put(e)}getAll(){return this.count===0?[]:this.count<this.maxSize?this.buffer.slice(0,this.count):[...this.buffer.slice(this.head,this.maxSize),...this.buffer.slice(0,this.head)]}async restore(){if(!this.store)return 0;let e=await this.store.getAll();if(e.length===0)return 0;let n=e.length>this.maxSize?e.slice(e.length-this.maxSize):e;for(let o of n)this.buffer[this.head]=o,this.head=(this.head+1)%this.maxSize,this.count<this.maxSize&&this.count++,this.eventTypesSet.add(o.type);return this.totalCaptured=e.length,n.length}getAllFromStore(){return this.store?this.store.getAll():Promise.resolve(this.getAll())}getRecent(e){let n=this.getAll();return e>=n.length?n:n.slice(n.length-e)}getSize(){return this.count}getTotalCaptured(){return this.totalCaptured}getEvictedCount(){return this.totalCaptured-this.count}clear(){this.buffer=new Array(this.maxSize),this.head=0,this.count=0,this.totalCaptured=0,this.eventTypesSet.clear(),this.store?.clear()}destroy(){this.buffer=[],this.head=0,this.count=0,this.totalCaptured=0,this.eventTypesSet.clear(),this.store?.destroy()}getEventTypes(){return Array.from(this.eventTypesSet)}};var js=class{constructor(e="persona-event-stream",n="events"){this.db=null;this.pendingWrites=[];this.flushScheduled=!1;this.isDestroyed=!1;this.dbName=e,this.storeName=n}open(){return new Promise((e,n)=>{try{let o=indexedDB.open(this.dbName,1);o.onupgradeneeded=()=>{let r=o.result;r.objectStoreNames.contains(this.storeName)||r.createObjectStore(this.storeName,{keyPath:"id"}).createIndex("timestamp","timestamp",{unique:!1})},o.onsuccess=()=>{this.db=o.result,e()},o.onerror=()=>{n(o.error)}}catch(o){n(o)}})}put(e){!this.db||this.isDestroyed||(this.pendingWrites.push(e),this.flushScheduled||(this.flushScheduled=!0,queueMicrotask(()=>this.flushWrites())))}putBatch(e){if(!(!this.db||this.isDestroyed||e.length===0))try{let o=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName);for(let r of e)o.put(r)}catch{}}getAll(){return new Promise((e,n)=>{if(!this.db){e([]);return}try{let i=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).index("timestamp").getAll();i.onsuccess=()=>{e(i.result)},i.onerror=()=>{n(i.error)}}catch(o){n(o)}})}getCount(){return new Promise((e,n)=>{if(!this.db){e(0);return}try{let s=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).count();s.onsuccess=()=>{e(s.result)},s.onerror=()=>{n(s.error)}}catch(o){n(o)}})}clear(){return new Promise((e,n)=>{if(!this.db){e();return}this.pendingWrites=[];try{let s=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).clear();s.onsuccess=()=>{e()},s.onerror=()=>{n(s.error)}}catch(o){n(o)}})}close(){this.db&&(this.db.close(),this.db=null)}destroy(){return this.isDestroyed=!0,this.pendingWrites=[],this.close(),new Promise((e,n)=>{try{let o=indexedDB.deleteDatabase(this.dbName);o.onsuccess=()=>{e()},o.onerror=()=>{n(o.error)}}catch(o){n(o)}})}flushWrites(){if(this.flushScheduled=!1,!this.db||this.isDestroyed||this.pendingWrites.length===0)return;let e=this.pendingWrites;this.pendingWrites=[];try{let o=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName);for(let r of e)o.put(r)}catch{}}};var zv=new Set(["flow_start","flow_run_start","agent_start","dispatch_start","run_start"]),Uv=new Set(["step_start","execution_start"]),jv=new Set(["step_delta","step_chunk","chunk","agent_turn_delta"]),Vv=new Set(["step_complete","agent_turn_complete"]),qv=new Set(["flow_complete","agent_complete"]),xf=new Set(["step_error","flow_error","agent_error","dispatch_error","error"]),wf=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),pn=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,qo=(t,e)=>{let n=t[e];return wf(n)?n:void 0};function kc(t){return t>0?Math.max(1,Math.ceil(t/4)):0}function za(t,e){if(!(t<=0||e===void 0||e<250))return t/(e/1e3)}function Kv(t,e){return typeof e.type=="string"?e.type:t}function Gv(t){return typeof t.text=="string"?t.text:typeof t.delta=="string"?t.delta:typeof t.content=="string"?t.content:typeof t.chunk=="string"?t.chunk:""}function Qv(t,e){return t==="step_delta"||t==="step_chunk"?e.stepType!=="tool"&&e.executionType!=="context":t!=="agent_turn_delta"?!0:(typeof e.contentType=="string"?e.contentType:typeof e.content_type=="string"?e.content_type:void 0)==="text"}function Cf(t){let e=qo(t,"result"),n=[qo(t,"tokens"),qo(t,"totalTokens"),e?qo(e,"tokens"):void 0,qo(t,"usage"),e?qo(e,"usage"):void 0];for(let o of n){if(!o)continue;let r=pn(o.output)??pn(o.outputTokens)??pn(o.completionTokens);if(r!==void 0)return r}return pn(t.outputTokens)??pn(t.completionTokens)??(e?pn(e.outputTokens)??pn(e.completionTokens):void 0)}function Xv(t){let e=qo(t,"result");return pn(t.executionTime)??pn(t.executionTimeMs)??pn(t.execution_time)??pn(t.duration)??(e?pn(e.executionTime)??pn(e.executionTimeMs):void 0)}function Jv(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var Vs=class{constructor(e=Jv){this.metric={status:"idle"};this.run=null;this.now=e}getMetric(){let e=this.run;if(e&&this.metric.status==="running"&&e.firstDeltaAt!==void 0&&this.metric.outputTokens!==void 0){let n=this.now()-e.firstDeltaAt;return{...this.metric,durationMs:n,tokensPerSecond:za(this.metric.outputTokens,n)}}return this.metric}reset(){this.run=null,this.metric={status:"idle"}}startRun(e){this.run={startedAt:e,visibleCharCount:0,exactOutputTokens:0},this.metric={status:"running"}}processEvent(e,n){if(!wf(n)){xf.has(e)&&this.run&&(this.run=null,this.metric={status:"error"});return}let o=Kv(e,n),r=this.now();if(zv.has(o)){this.startRun(r);return}if(Uv.has(o)){this.run||this.startRun(r);return}if(jv.has(o)){if(!Qv(o,n))return;let s=Gv(n);if(!s)return;this.run||this.startRun(r);let i=this.run;i.firstDeltaAt??(i.firstDeltaAt=r),i.visibleCharCount+=s.length;let l=i.exactOutputTokens+kc(i.visibleCharCount),p=r-i.firstDeltaAt;this.metric={status:"running",tokensPerSecond:za(l,p),outputTokens:l,durationMs:p,source:i.exactOutputTokens>0?"usage":"estimate"};return}if(Vv.has(o)){if(!this.run)return;let s=this.run,i=Cf(n);i!==void 0&&(s.exactOutputTokens+=i,s.visibleCharCount=0);let l=s.exactOutputTokens>0,p=s.exactOutputTokens+kc(s.visibleCharCount),c=this.resolveDuration(s,n,r);this.metric={status:"running",tokensPerSecond:za(p,c),outputTokens:p,durationMs:c,source:l?"usage":"estimate"};return}if(qv.has(o)){if(!this.run)return;let s=this.run,i=Cf(n),l=i??s.exactOutputTokens+kc(s.visibleCharCount),p=i!==void 0||s.exactOutputTokens>0?"usage":"estimate",c=this.resolveDuration(s,n,r);this.metric={status:"complete",tokensPerSecond:za(l,c),outputTokens:l,durationMs:c,source:p},this.run=null;return}if(xf.has(o)){if(!this.run)return;this.run=null,this.metric={status:"error"}}}resolveDuration(e,n,o){let r=e.firstDeltaAt!==void 0?o-e.firstDeltaAt:void 0;return r!==void 0&&r>=250?r:Xv(n)??o-e.startedAt}};Je();wt();function Pr(t,e){e&&e.split(/\s+/).forEach(n=>n&&t.classList.add(n))}var Yv={flow_:{bg:"var(--persona-palette-colors-success-100, #dcfce7)",text:"var(--persona-palette-colors-success-700, #166534)"},step_:{bg:"var(--persona-palette-colors-primary-100, #f5f5f5)",text:"var(--persona-palette-colors-primary-700, #0a0a0a)"},reason_:{bg:"var(--persona-palette-colors-warning-100, #ffedd5)",text:"var(--persona-palette-colors-warning-700, #9a3412)"},tool_:{bg:"var(--persona-palette-colors-purple-100, #f3e8ff)",text:"var(--persona-palette-colors-purple-700, #6b21a8)"},agent_:{bg:"var(--persona-palette-colors-teal-100, #ccfbf1)",text:"var(--persona-palette-colors-teal-700, #115e59)"},error:{bg:"var(--persona-palette-colors-error-100, #fecaca)",text:"var(--persona-palette-colors-error-700, #991b1b)"}},Zv={bg:"var(--persona-palette-colors-gray-100, #f3f4f6)",text:"var(--persona-palette-colors-gray-600, #4b5563)"},ex=["flowName","stepName","reasoningText","text","name","tool","toolName"],tx=100;function nx(t,e){let n={...Yv,...e};if(n[t])return n[t];for(let o of Object.keys(n))if(o.endsWith("_")&&t.startsWith(o))return n[o];return Zv}function ox(t,e){return`+${((t-e)/1e3).toFixed(3)}s`}function rx(t){let e=new Date(t),n=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),r=String(e.getSeconds()).padStart(2,"0"),s=String(e.getMilliseconds()).padStart(3,"0");return`${n}:${o}:${r}.${s}`}function sx(t,e){try{let n=JSON.parse(t);if(typeof n!="object"||n===null)return null;for(let o of e){let r=o.split("."),s=n;for(let i of r)if(s&&typeof s=="object"&&s!==null)s=s[i];else{s=void 0;break}if(typeof s=="string"&&s.trim())return s.trim()}}catch{}return null}function ix(t){return navigator.clipboard?.writeText?navigator.clipboard.writeText(t):new Promise(e=>{let n=document.createElement("textarea");n.value=t,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n),e()})}function ax(t){let e;try{e=JSON.parse(t.payload)}catch{e=t.payload}return JSON.stringify({type:t.type,timestamp:new Date(t.timestamp).toISOString(),payload:e},null,2)}function lx(t){return t.tokensPerSecond===void 0||!Number.isFinite(t.tokensPerSecond)?"-- tok/s":`${t.tokensPerSecond.toFixed(1)} tok/s`}function cx(t){let e=[];return t.outputTokens!==void 0&&e.push(`${t.outputTokens.toLocaleString()} tok`),t.durationMs!==void 0&&e.push(`${(t.durationMs/1e3).toFixed(2)}s`),t.source&&e.push(t.source),e.join(" \xB7 ")}function dx(t,e,n){let o,r;try{r=JSON.parse(t.payload),o=JSON.stringify(r,null,2)}catch{r=t.payload,o=t.payload}let s=e.find(l=>l.renderEventStreamPayload);if(s?.renderEventStreamPayload&&n){let l=s.renderEventStreamPayload({event:t,config:n,defaultRenderer:()=>i(),parsedPayload:r});if(l)return l}return i();function i(){let l=v("div","persona-bg-persona-container persona-border-t persona-border-persona-divider persona-px-3 persona-py-2 persona-ml-4 persona-mr-3 persona-mb-1 persona-rounded-b persona-overflow-auto persona-max-h-[300px]"),p=v("pre","persona-m-0 persona-whitespace-pre-wrap persona-break-all persona-text-[11px] persona-text-persona-secondary persona-font-mono");return p.textContent=o,l.appendChild(p),l}}function Lc(t,e,n,o,r,s,i,l){let p=r.has(t.id),c=v("div","persona-border-b persona-border-persona-divider persona-text-xs");Pr(c,o.classNames?.eventRow);let d=i.find(b=>b.renderEventStreamRow);if(d?.renderEventStreamRow&&l){let b=d.renderEventStreamRow({event:t,index:e,config:l,defaultRenderer:()=>u(),isExpanded:p,onToggleExpand:()=>s(t.id)});if(b)return c.appendChild(b),c}return c.appendChild(u()),c;function u(){let b=v("div",""),g=v("div","persona-flex persona-items-center persona-gap-2 persona-px-3 persona-py-3 hover:persona-bg-persona-container persona-cursor-pointer persona-group");g.setAttribute("data-event-id",t.id);let h=v("span","persona-flex-shrink-0 persona-text-persona-muted persona-w-4 persona-text-center persona-flex persona-items-center persona-justify-center"),C=ae(p?"chevron-down":"chevron-right","14px","currentColor",2);C&&h.appendChild(C);let L=v("span","persona-text-[11px] persona-text-persona-muted persona-whitespace-nowrap persona-flex-shrink-0 persona-font-mono persona-w-[70px]"),B=o.timestampFormat??"relative";L.textContent=B==="relative"?ox(t.timestamp,n):rx(t.timestamp);let k=null;o.showSequenceNumbers!==!1&&(k=v("span","persona-text-[11px] persona-text-persona-muted persona-font-mono persona-flex-shrink-0 persona-w-[28px] persona-text-right"),k.textContent=String(e+1));let S=nx(t.type,o.badgeColors),E=v("span","persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded persona-text-[11px] persona-font-mono persona-font-medium persona-whitespace-nowrap persona-flex-shrink-0 persona-border");E.style.backgroundColor=S.bg,E.style.color=S.text,E.style.borderColor=S.text+"50",E.textContent=t.type;let z=o.descriptionFields??ex,G=sx(t.payload,z),A=null;G&&(A=v("span","persona-text-[11px] persona-text-persona-secondary persona-truncate persona-min-w-0"),A.textContent=G);let O=v("div","persona-flex-1 persona-min-w-0"),D=v("button","persona-text-persona-muted hover:persona-text-persona-primary persona-cursor-pointer persona-flex-shrink-0 persona-border-none persona-bg-transparent persona-p-0"),W=ae("clipboard","12px","currentColor",1.5);return W&&D.appendChild(W),D.addEventListener("click",async P=>{P.stopPropagation(),await ix(ax(t)),D.innerHTML="";let I=ae("check","12px","currentColor",1.5);I&&D.appendChild(I),setTimeout(()=>{D.innerHTML="";let j=ae("clipboard","12px","currentColor",1.5);j&&D.appendChild(j)},1500)}),g.appendChild(h),g.appendChild(L),k&&g.appendChild(k),g.appendChild(E),A&&g.appendChild(A),g.appendChild(O),g.appendChild(D),b.appendChild(g),p&&b.appendChild(dx(t,i,l)),b}}function Af(t){let{buffer:e,getFullHistory:n,onClose:o,config:r,plugins:s=[],getThroughput:i}=t,l=r?.features?.scrollToBottom,p=l?.enabled!==!1,c=l?.iconName??"arrow-down",d=l?.label??"",u=r?.features?.eventStream??{},b=s.find(h=>h.renderEventStreamView);if(b?.renderEventStreamView&&r){let h=b.renderEventStreamView({config:r,events:e.getAll(),defaultRenderer:()=>g().element,onClose:o});if(h)return{element:h,update:()=>{},destroy:()=>{}}}return g();function g(){let h=u.classNames,C=v("div","persona-event-stream-view persona-flex persona-flex-col persona-flex-1 persona-min-h-0");Pr(C,h?.panel);let L=[],B="",k="",S=null,E=[],z={},G=0,A=Ca(),O=0,D=0,W=!1,P=null,I=!1,j=0,pe=new Set,ge=new Map,se="",Y="",oe=null,J,ie,ee,fe,be=null,he=null,we=null;function ve(){let F=v("div","persona-event-toolbar persona-relative persona-flex persona-flex-col persona-flex-shrink-0"),te=v("div","persona-flex persona-items-center persona-gap-2 persona-px-4 persona-py-3 persona-pb-0 persona-border-persona-divider persona-bg-persona-surface persona-overflow-hidden");if(Pr(te,h?.headerBar),i){he=v("div","persona-relative persona-flex persona-items-center persona-gap-1.5 persona-whitespace-nowrap"),he.style.cursor="help",be=v("span","persona-text-[11px] persona-font-mono persona-bg-persona-container persona-text-persona-muted persona-px-2 persona-py-0.5 persona-rounded persona-border persona-border-persona-border persona-tabular-nums"),be.textContent="-- tok/s",we=v("div","persona-absolute persona-z-50 persona-whitespace-nowrap persona-rounded persona-border persona-border-persona-border persona-bg-persona-container persona-text-persona-primary persona-text-[11px] persona-font-mono persona-px-2 persona-py-1 persona-shadow"),we.style.display="none",we.style.pointerEvents="none";let Ne=he,Ot=we,At=()=>{if(!Ot.textContent)return;let Xs=Ne.getBoundingClientRect(),Jn=F.getBoundingClientRect();Ot.style.left=`${Xs.left-Jn.left}px`,Ot.style.top=`${Xs.bottom-Jn.top+4}px`,Ot.style.display="block"},Yt=()=>{Ot.style.display="none"};he.addEventListener("mouseenter",At),he.addEventListener("mouseleave",Yt),he.appendChild(be)}let de=v("div","persona-flex-1");J=v("select","persona-text-xs persona-bg-persona-surface persona-border persona-border-persona-border persona-rounded persona-px-2.5 persona-py-1 persona-text-persona-primary persona-cursor-pointer");let Le=v("option","");Le.value="",Le.textContent="All events (0)",J.appendChild(Le),ie=v("button","persona-inline-flex persona-items-center persona-gap-1.5 persona-rounded persona-text-xs persona-text-persona-muted hover:persona-bg-persona-container hover:persona-text-persona-primary persona-cursor-pointer persona-border persona-border-persona-border persona-bg-persona-surface persona-flex-shrink-0 persona-px-2.5 persona-py-1"),ie.type="button",ie.title="Copy All";let rt=ae("clipboard-copy","12px","currentColor",1.5);rt&&ie.appendChild(rt);let ot=v("span","persona-event-copy-all persona-text-xs");ot.textContent="Copy All",ie.appendChild(ot),he&&te.appendChild(he),te.appendChild(de),te.appendChild(J),te.appendChild(ie);let ze=v("div","persona-relative persona-px-4 persona-py-2.5 persona-border-b persona-border-persona-divider persona-bg-persona-surface");Pr(ze,h?.searchBar);let Ze=ae("search","14px","var(--persona-muted, #9ca3af)",1.5),X=v("span","persona-absolute persona-left-6 persona-top-1/2 persona--translate-y-1/2 persona-pointer-events-none persona-flex persona-items-center");Ze&&X.appendChild(Ze),ee=v("input","persona-text-sm persona-bg-persona-surface persona-border persona-border-persona-border persona-rounded-md persona-pl-8 persona-pr-3 persona-py-1 persona-w-full persona-text-persona-primary"),Pr(ee,h?.searchInput),ee.type="text",ee.placeholder="Search event payloads...",fe=v("button","persona-absolute persona-right-5 persona-top-1/2 persona--translate-y-1/2 persona-text-persona-muted hover:persona-text-persona-primary persona-cursor-pointer persona-border-none persona-bg-transparent persona-p-0 persona-leading-none"),fe.type="button",fe.style.display="none";let Ue=ae("x","12px","currentColor",2);return Ue&&fe.appendChild(Ue),ze.appendChild(X),ze.appendChild(ee),ze.appendChild(fe),F.appendChild(te),F.appendChild(ze),we&&F.appendChild(we),F}let Te,Me=s.find(F=>F.renderEventStreamToolbar);Me?.renderEventStreamToolbar&&r?Te=Me.renderEventStreamToolbar({config:r,defaultRenderer:()=>ve(),eventCount:e.getSize(),filteredCount:0,onFilterChange:te=>{B=te,Ye(),ue()},onSearchChange:te=>{k=te,Ye(),ue()}})??ve():Te=ve();let _e=v("div","persona-text-xs persona-text-persona-muted persona-text-center persona-py-0.5 persona-px-4 persona-bg-persona-container persona-border-b persona-border-persona-divider persona-italic persona-flex-shrink-0");_e.style.display="none";function Ve(){if(!i||!be||!he)return;let F=i(),te=lx(F);be.textContent=te;let de=cx(F);we&&(we.textContent=de,de||(we.style.display="none")),he.setAttribute("aria-label",de?`Throughput: ${te}, ${de}`:`Throughput: ${te}`)}let ke=v("div","persona-flex-1 persona-min-h-0 persona-relative"),Re=v("div","persona-event-stream-list persona-overflow-y-auto persona-min-h-0");Re.style.height="100%";let Ge=v("div","persona-scroll-to-bottom-indicator persona-absolute persona-bottom-3 persona-left-1/2 persona-transform persona--translate-x-1/2 persona-cursor-pointer persona-z-10 persona-text-xs");Pr(Ge,h?.scrollIndicator),Ge.style.display="none",Ge.setAttribute("data-persona-scroll-to-bottom-has-label",d?"true":"false");let Nt=ae(c,"14px","currentColor",2);Nt&&Ge.appendChild(Nt);let Bt=v("span","");Bt.textContent=d,Ge.appendChild(Bt);let Xt=v("div","persona-flex persona-items-center persona-justify-center persona-h-full persona-text-sm persona-text-persona-muted");Xt.style.display="none",ke.appendChild(Re),ke.appendChild(Xt),ke.appendChild(Ge),C.setAttribute("tabindex","0"),C.appendChild(Te),C.appendChild(_e),C.appendChild(ke);function Mt(){let F=e.getAll(),te={};for(let ze of F)te[ze.type]=(te[ze.type]||0)+1;let de=Object.keys(te).sort(),Le=de.length!==E.length||!de.every((ze,Ze)=>ze===E[Ze]),Se=!Le&&de.some(ze=>te[ze]!==z[ze]),rt=F.length!==Object.values(z).reduce((ze,Ze)=>ze+Ze,0);if(!Le&&!Se&&!rt||(E=de,z=te,!J))return;let ot=J.value;if(J.options[0].textContent=`All events (${F.length})`,Le){for(;J.options.length>1;)J.remove(1);for(let ze of de){let Ze=v("option","");Ze.value=ze,Ze.textContent=`${ze} (${te[ze]||0})`,J.appendChild(Ze)}ot&&de.includes(ot)?J.value=ot:ot&&(J.value="",B="")}else for(let ze=1;ze<J.options.length;ze++){let Ze=J.options[ze];Ze.textContent=`${Ze.value} (${te[Ze.value]||0})`}}function De(){let F=e.getAll();if(B&&(F=F.filter(te=>te.type===B)),k){let te=k.toLowerCase();F=F.filter(de=>de.type.toLowerCase().includes(te)||de.payload.toLowerCase().includes(te))}return F}function ye(){return B!==""||k!==""}function Ye(){G=0,O=0,A.resume(),Ge.style.display="none"}function He(F){pe.has(F)?pe.delete(F):pe.add(F),oe=F;let te=Re.scrollTop,de=A.isFollowing();I=!0,A.pause(),ue(),Re.scrollTop=te,de&&A.resume(),I=!1}function xe(){return Co(Re,50)}function ue(){D=Date.now(),W=!1,Ve(),Mt();let F=e.getEvictedCount();F>0?(_e.textContent=`${F.toLocaleString()} older events truncated`,_e.style.display=""):_e.style.display="none",L=De();let te=L.length,de=e.getSize()>0;te===0&&de&&ye()?(Xt.textContent=k?`No events matching '${k}'`:"No events matching filter",Xt.style.display="",Re.style.display="none"):(Xt.style.display="none",Re.style.display=""),ie&&(ie.title=ye()?`Copy Filtered (${te})`:"Copy All"),p&&!A.isFollowing()&&te>G&&(O+=te-G,Bt.textContent=d?`${d}${O>0?` (${O})`:""}`:"",Ge.style.display=""),G=te;let Le=e.getAll(),Se=Le.length>0?Le[0].timestamp:0,rt=new Set(L.map(Ze=>Ze.id));for(let Ze of pe)rt.has(Ze)||pe.delete(Ze);let ot=B!==se||k!==Y,ze=ge.size===0&&L.length>0;if(ot||ze||L.length===0){Re.innerHTML="",ge.clear();let Ze=document.createDocumentFragment();for(let X=0;X<L.length;X++){let Ue=Lc(L[X],X,Se,u,pe,He,s,r);ge.set(L[X].id,Ue),Ze.appendChild(Ue)}Re.appendChild(Ze),se=B,Y=k,oe=null}else{if(oe!==null){let X=ge.get(oe);if(X&&X.parentNode===Re){let Ue=L.findIndex(Ne=>Ne.id===oe);if(Ue>=0){let Ne=Lc(L[Ue],Ue,Se,u,pe,He,s,r);Re.insertBefore(Ne,X),X.remove(),ge.set(oe,Ne)}}oe=null}let Ze=new Set(L.map(X=>X.id));for(let[X,Ue]of ge)Ze.has(X)||(Ue.remove(),ge.delete(X));for(let X=0;X<L.length;X++){let Ue=L[X];if(!ge.has(Ue.id)){let Ne=Lc(Ue,X,Se,u,pe,He,s,r);ge.set(Ue.id,Ne),Re.appendChild(Ne)}}}A.isFollowing()&&(Re.scrollTop=Re.scrollHeight)}function We(){if(Date.now()-D>=tx){P!==null&&(cancelAnimationFrame(P),P=null),ue();return}W||(W=!0,P=requestAnimationFrame(()=>{P=null,ue()}))}let Jt=(F,te)=>{if(!ie)return;ie.innerHTML="";let de=ae(F,"12px","currentColor",1.5);de&&ie.appendChild(de);let Le=v("span","persona-text-xs");Le.textContent="Copy All",ie.appendChild(Le),setTimeout(()=>{ie.innerHTML="";let Se=ae("clipboard-copy","12px","currentColor",1.5);Se&&ie.appendChild(Se);let rt=v("span","persona-text-xs");rt.textContent="Copy All",ie.appendChild(rt),ie.disabled=!1},te)},gt=async()=>{if(ie){ie.disabled=!0;try{let F;ye()?F=L:n?(F=await n(),F.length===0&&(F=e.getAll())):F=e.getAll();let te=F.map(de=>{try{return JSON.parse(de.payload)}catch{return de.payload}});await navigator.clipboard.writeText(JSON.stringify(te,null,2)),Jt("check",1500)}catch{Jt("x",1500)}}},bt=()=>{J&&(B=J.value,Ye(),ue())},Q=()=>{!ee||!fe||(fe.style.display=ee.value?"":"none",S&&clearTimeout(S),S=setTimeout(()=>{k=ee.value,Ye(),ue()},150))},w=()=>{!ee||!fe||(ee.value="",k="",fe.style.display="none",S&&clearTimeout(S),Ye(),ue())},K=()=>{if(I)return;let F=Re.scrollTop,{action:te,nextLastScrollTop:de}=wa({following:A.isFollowing(),currentScrollTop:F,lastScrollTop:j,nearBottom:xe(),userScrollThreshold:1,resumeRequiresDownwardScroll:!0});j=de,te==="resume"?(A.resume(),O=0,Ge.style.display="none"):te==="pause"&&(A.pause(),p&&(Bt.textContent=d,Ge.style.display=""))},y=F=>{let te=Aa({following:A.isFollowing(),deltaY:F.deltaY,nearBottom:xe(),resumeWhenNearBottom:!0});te==="pause"?(A.pause(),p&&(Bt.textContent=d,Ge.style.display="")):te==="resume"&&(A.resume(),O=0,Ge.style.display="none")},H=()=>{p&&(Re.scrollTop=Re.scrollHeight,A.resume(),O=0,Ge.style.display="none")},N=F=>{let te=F.target;if(!te||te.closest("button"))return;let de=te.closest("[data-event-id]");if(!de)return;let Le=de.getAttribute("data-event-id");Le&&He(Le)},$=F=>{if((F.metaKey||F.ctrlKey)&&F.key==="f"){F.preventDefault(),ee?.focus(),ee?.select();return}F.key==="Escape"&&(ee&&document.activeElement===ee?(w(),ee.blur(),C.focus()):o&&o())};ie&&ie.addEventListener("click",gt),J&&J.addEventListener("change",bt),ee&&ee.addEventListener("input",Q),fe&&fe.addEventListener("click",w),Re.addEventListener("scroll",K),Re.addEventListener("wheel",y,{passive:!0}),Re.addEventListener("click",N),Ge.addEventListener("click",H),C.addEventListener("keydown",$);function U(){S&&clearTimeout(S),P!==null&&(cancelAnimationFrame(P),P=null),W=!1,ge.clear(),ie&&ie.removeEventListener("click",gt),J&&J.removeEventListener("change",bt),ee&&ee.removeEventListener("input",Q),fe&&fe.removeEventListener("click",w),Re.removeEventListener("scroll",K),Re.removeEventListener("wheel",y),Re.removeEventListener("click",N),Ge.removeEventListener("click",H),C.removeEventListener("keydown",$)}return{element:C,update:We,destroy:U}}}Je();wt();function Sf(t,e){let n=e.orientation??"horizontal",o=n==="vertical"?"ArrowUp":"ArrowLeft",r=n==="vertical"?"ArrowDown":"ArrowRight";t.setAttribute("role","tablist");let s=[],i=!1,l=u=>{typeof u.scrollIntoView=="function"&&u.scrollIntoView({block:"nearest",inline:"nearest"})},p=u=>{let b=u;return s.findIndex(g=>g===b||g.contains(b))},c=u=>{let b=p(u.target);if(b<0)return;let g=b;if(u.key===r)g=Math.min(b+1,s.length-1);else if(u.key===o)g=Math.max(b-1,0);else if(u.key==="Home")g=0;else if(u.key==="End")g=s.length-1;else return;u.preventDefault(),g!==b&&e.onSelect(g)},d=u=>{let b=p(u.target);b>=0&&l(s[b])};return t.addEventListener("keydown",c),t.addEventListener("focusin",d),{beforeRender(){i=typeof document<"u"&&t.contains(document.activeElement)},render(u,b){if(s=u,u.forEach((g,h)=>{g.setAttribute("role","tab");let C=h===b;g.setAttribute("aria-selected",C?"true":"false"),g.tabIndex=C||b<0&&h===0?0:-1}),i){let g=(b>=0?u[b]:void 0)??u[0];g&&typeof g.focus=="function"&&(l(g),g.focus())}},destroy(){t.removeEventListener("keydown",c),t.removeEventListener("focusin",d)}}}function Mf(t,e){let n=t.features?.artifacts?.layout,r=(n?.toolbarPreset??"default")==="document",s=n?.toolbarTitle??"Artifacts",i=n?.closeButtonLabel??"Close",l=n?.panePadding?.trim(),p=n?.tabFadeSize?.trim(),c=Q=>({start:Q===!1?!1:typeof Q=="object"&&Q?Q.start!==!1:!0,end:Q===!1?!1:typeof Q=="object"&&Q?Q.end!==!1:!0}),{start:d,end:u}=c(n?.tabFade),b=typeof document<"u"?v("div","persona-artifact-backdrop persona-fixed persona-inset-0 persona-z-[55] persona-bg-black/30 persona-hidden md:persona-hidden"):null,g=()=>{b?.classList.add("persona-hidden"),h.classList.remove("persona-artifact-drawer-open"),I?.hide()};b&&b.addEventListener("click",()=>{g(),e.onDismiss?.()});let h=v("aside","persona-artifact-pane persona-flex persona-flex-col persona-min-h-0 persona-min-w-0 persona-bg-persona-surface persona-text-persona-primary persona-border-l persona-border-persona-border");h.setAttribute("data-persona-theme-zone","artifact-pane"),r&&h.classList.add("persona-artifact-pane-document");let C=v("div","persona-artifact-toolbar persona-flex persona-items-center persona-justify-between persona-gap-2 persona-px-2 persona-py-2 persona-border-b persona-border-persona-border persona-shrink-0");C.setAttribute("data-persona-theme-zone","artifact-toolbar"),r&&C.classList.add("persona-artifact-toolbar-document");let L=v("span","persona-text-xs persona-font-medium persona-truncate");L.textContent=s;let B=Ht({icon:"x",label:i});B.addEventListener("click",()=>{g(),e.onDismiss?.()});let k="rendered",S=ha({items:[{id:"rendered",icon:"eye",label:"Rendered view",className:r?"persona-artifact-doc-icon-btn persona-artifact-view-btn":void 0},{id:"source",icon:"code-xml",label:"Source",className:r?"persona-artifact-doc-icon-btn persona-artifact-code-btn":void 0}],selectedId:"rendered",className:"persona-artifact-toggle-group persona-shrink-0",onSelect:Q=>{k=Q==="source"?"source":"rendered",Jt()}}),E=v("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0"),z=n?.documentToolbarShowCopyLabel===!0,G=n?.documentToolbarShowCopyChevron===!0,A=n?.documentToolbarCopyMenuItems,O=!!(G&&A&&A.length>0),D=null,W,P=null,I=null;if(r&&(z||G)&&!O){if(W=z?zo({icon:"copy",label:"Copy",iconSize:14,className:"persona-artifact-doc-copy-btn"}):Ht({icon:"copy",label:"Copy",className:"persona-artifact-doc-copy-btn"}),G){let Q=ae("chevron-down",14,"currentColor",2);Q&&W.appendChild(Q)}}else r&&O?(D=v("div","persona-relative persona-inline-flex persona-items-center persona-gap-0 persona-rounded-md"),W=z?zo({icon:"copy",label:"Copy",iconSize:14,className:"persona-artifact-doc-copy-btn"}):Ht({icon:"copy",label:"Copy",className:"persona-artifact-doc-copy-btn"}),P=Ht({icon:"chevron-down",label:"More copy options",size:14,className:"persona-artifact-doc-copy-menu-chevron persona-artifact-doc-icon-btn",aria:{"aria-haspopup":"true","aria-expanded":"false"}}),D.append(W,P)):r?W=Ht({icon:"copy",label:"Copy",className:"persona-artifact-doc-icon-btn"}):(W=Ht({icon:"copy",label:"Copy"}),n?.showCopyButton!==!0&&W.classList.add("persona-hidden"));let j=r?Ht({icon:"refresh-cw",label:"Refresh",className:"persona-artifact-doc-icon-btn"}):Ht({icon:"refresh-cw",label:"Refresh"}),pe=r?Ht({icon:"x",label:i,className:"persona-artifact-doc-icon-btn"}):Ht({icon:"x",label:i}),ge=Ht({icon:"maximize",label:"Expand artifacts panel",className:"persona-artifact-expand-btn"+(r?" persona-artifact-doc-icon-btn":""),onClick:()=>e.onToggleExpand?.()});n?.showExpandToggle!==!0&&ge.classList.add("persona-hidden");let se=v("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0 persona-artifact-toolbar-custom-actions"),Y=t.features?.artifacts?.toolbarActions??[],oe=()=>{let Q=ke.find(H=>H.id===Re)??ke[ke.length-1],w=Q?.id??null,K=Q?.artifactType==="markdown"?Q.markdown??"":"",y=Q?JSON.stringify({component:Q.component,props:Q.props},null,2):"";return{markdown:K,jsonPayload:y,id:w}},J=async()=>{let Q=ke.find(w=>w.id===Re)??ke[ke.length-1];try{await navigator.clipboard.writeText(Hs(Q))}catch{}};if(W.addEventListener("click",async()=>{let Q=n?.onDocumentToolbarCopyMenuSelect;if(Q&&O){let{markdown:w,jsonPayload:K,id:y}=oe();try{await Q({actionId:"primary",artifactId:y,markdown:w,jsonPayload:K})}catch{}return}await J()}),P&&A?.length){let Q=()=>h.closest("[data-persona-root]")??document.body,w=()=>{I=Mr({items:A.map(K=>({id:K.id,label:K.label})),onSelect:async K=>{let{markdown:y,jsonPayload:H,id:N}=oe(),$=n?.onDocumentToolbarCopyMenuSelect;try{$?await $({actionId:K,artifactId:N,markdown:y,jsonPayload:H}):K==="markdown"||K==="md"?await navigator.clipboard.writeText(y):K==="json"||K==="source"?await navigator.clipboard.writeText(H):await navigator.clipboard.writeText(y||H)}catch{}},anchor:D??P,position:"bottom-right",portal:Q()})};h.isConnected?w():requestAnimationFrame(w),P.addEventListener("click",K=>{K.stopPropagation(),I?.toggle()})}j.addEventListener("click",async()=>{try{await n?.onDocumentToolbarRefresh?.()}catch{}Jt()}),pe.addEventListener("click",()=>{g(),e.onDismiss?.()});let ie=v("span","persona-min-w-0 persona-flex-1 persona-text-xs persona-font-medium persona-text-persona-primary persona-truncate persona-text-center md:persona-text-left");if(r)C.replaceChildren(),D?E.append(D,j,pe):E.append(W,j,pe),E.insertBefore(se,pe),E.insertBefore(ge,pe),C.append(S.element,ie,E);else{let Q=v("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0");Q.append(W,se,ge,B),C.appendChild(L),C.appendChild(Q)}l&&(C.style.paddingLeft=l,C.style.paddingRight=l);let ee=v("div","persona-artifact-list persona-shrink-0 persona-flex persona-gap-1 persona-overflow-x-auto persona-p-2 persona-border-b persona-border-persona-border");p&&ee.style.setProperty("--persona-artifact-tab-fade-size",p);let fe=t.features?.artifacts?.renderTabBar,be=v("div","persona-artifact-tab-custom persona-shrink-0 persona-border-b persona-border-persona-border persona-hidden"),he=Sf(ee,{onSelect:Q=>e.onSelect(ke[Q].id)}),we=Q=>{let w=Q.scrollWidth-Q.clientWidth,K=w>1,y=Math.abs(Q.scrollLeft);Q.classList.toggle("persona-artifact-tab-fade-start",d&&K&&y>1),Q.classList.toggle("persona-artifact-tab-fade-end",u&&K&&y<w-1)},ve=0,Te=()=>{if(ve)return;let Q=()=>{ve=0,we(ee)};ve=typeof requestAnimationFrame=="function"?requestAnimationFrame(Q):setTimeout(Q,0)};ee.addEventListener("scroll",()=>Te(),{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(()=>we(ee)).observe(ee);let Me=v("div","persona-artifact-content persona-flex-1 persona-min-h-0 persona-overflow-y-auto persona-p-3"),_e=()=>{Me.scrollLeft=0},Ve=()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(_e):setTimeout(_e,0)};if(l){for(let Q of[ee,be])Q.style.paddingLeft=l,Q.style.paddingRight=l;Me.style.padding=l}h.appendChild(C),h.appendChild(ee),h.appendChild(be),h.appendChild(Me);let ke=[],Re=null,Ge=!1,Nt=!1,Bt=!0,Xt=!1,Mt=null,De="",ye=null,Ye=!1,He=Q=>Q.artifactType==="markdown"&&!!Q.file||r?k:"rendered",xe=Q=>{r||(Q&&!Ye?(C.insertBefore(S.element,L),Ye=!0):!Q&&Ye&&(S.element.remove(),Ye=!1))},ue=()=>Re&&ke.find(Q=>Q.id===Re)||ke[ke.length-1],We=()=>{let Q=Rs(ue());if(!Q){se.replaceChildren();return}let w=Y.filter(K=>K.visible===void 0||K.visible(Q)).map(K=>Tr(K,{documentChrome:r,onClick:()=>{let y=Rs(ue());if(y)try{Promise.resolve(K.onClick(y)).catch(()=>{})}catch{}}}));se.replaceChildren(...w)},Jt=()=>{We();let Q=r&&ke.length<=1,w=!!fe;if(ee.classList.toggle("persona-hidden",Q||w),be.classList.toggle("persona-hidden",Q||!w),w&&fe){let H=ke.map(N=>N.id).join("|")+" "+(Re??"");if(H!==De){De=H;let N=fe({records:ke,selectedId:Re,onSelect:e.onSelect});be.firstElementChild!==N&&be.replaceChildren(N)}}else{he.beforeRender(),ee.replaceChildren();let H=[],N=-1;for(let[$,U]of ke.entries()){let F=v("button","persona-artifact-tab persona-shrink-0 persona-rounded-lg persona-px-2 persona-py-1 persona-text-xs persona-border persona-border-transparent persona-text-persona-primary");F.type="button";let te=U.artifactType==="markdown"?U.file:void 0,de=te?Wn(te.path):U.title||U.id.slice(0,8),Le=te?.path||U.title||de;F.textContent=de,F.title=Le,F.setAttribute("aria-label",Le),U.id===Re&&(F.classList.add("persona-bg-persona-container","persona-border-persona-border"),N=$),F.addEventListener("click",()=>e.onSelect(U.id)),ee.appendChild(F),H.push(F)}if(he.render(H,N),N>=0&&Re!==Mt){Mt=Re;let $=H[N];typeof $.scrollIntoView=="function"&&$.scrollIntoView({block:"nearest",inline:"nearest"})}we(ee)}let K=Re&&ke.find(H=>H.id===Re)||ke[ke.length-1];if(!K){Me.replaceChildren(),ye=null,xe(!1);return}let y=K.artifactType==="markdown"?K.file:void 0;if(xe(!!y),r){let H=y?bo(y):K.artifactType==="markdown"?"MD":K.component??"Component",N=(K.title||"Document").trim(),$=y?Wn(y.path):N.replace(/\s*·\s*MD\s*$/i,"").trim()||"Document";ie.textContent=`${$} \xB7 ${H}`}else L.textContent=y?Wn(y.path):s;ye?(ye.el.parentElement!==Me&&Me.replaceChildren(ye.el),ye.update(K)):(ye=va(K,{config:t,resolveViewMode:He}),Me.replaceChildren(ye.el)),Me.classList.toggle("persona-artifact-content-flush",!!Me.querySelector(".persona-code-pre"))},gt=()=>{let Q=ke.length>0;if(h.classList.toggle("persona-hidden",!Q),b){let y=((typeof h.closest=="function"?h.closest("[data-persona-root]"):null)?.classList.contains("persona-artifact-narrow-host")??!1)||typeof window<"u"&&window.matchMedia("(max-width: 640px)").matches;Q&&y&&Ge?(b.classList.remove("persona-hidden"),h.classList.add("persona-artifact-drawer-open")):(b.classList.add("persona-hidden"),h.classList.remove("persona-artifact-drawer-open"))}},bt=()=>{Xt=!1,Jt(),gt()};return{element:h,backdrop:b,update(Q){let w=Q.selectedId??Q.artifacts[Q.artifacts.length-1]?.id??null,K=w!==Re;ke=Q.artifacts,Re=w,ke.length>0&&(Ge=!0),Xt=!0,Bt&&bt(),K&&_e()},setMobileOpen(Q){Ge=Q,!Q&&b?(b.classList.add("persona-hidden"),h.classList.remove("persona-artifact-drawer-open")):gt()},setExpanded(Q){Q!==Nt&&(Nt=Q,Ve());let w=ae(Q?"minimize":"maximize",16,"currentColor",2);w&&ge.replaceChildren(w);let K=Q?"Collapse artifacts panel":"Expand artifacts panel";ge.setAttribute("aria-label",K),ge.title=K},setExpandToggleVisible(Q){ge.classList.toggle("persona-hidden",!Q)},setCopyButtonVisible(Q){r||W.classList.toggle("persona-hidden",!Q)},setCustomActions(Q){Y=Q,We()},setTabFade(Q){let w=c(Q);w.start===d&&w.end===u||(d=w.start,u=w.end,we(ee))},setRenderTabBar(Q){Q!==fe&&(fe=Q,De="",Jt())},setVisible(Q){Q!==Bt&&(Bt=Q,Q&&Xt&&bt())}}}function nn(t){return t?.features?.artifacts?.enabled===!0}function Tf(t,e){if(t.classList.remove("persona-artifact-border-full","persona-artifact-border-left"),t.style.removeProperty("--persona-artifact-pane-border"),t.style.removeProperty("--persona-artifact-pane-border-left"),!nn(e))return;let n=e.features?.artifacts?.layout,o=n?.paneBorder?.trim(),r=n?.paneBorderLeft?.trim();o?(t.classList.add("persona-artifact-border-full"),t.style.setProperty("--persona-artifact-pane-border",o)):r&&(t.classList.add("persona-artifact-border-left"),t.style.setProperty("--persona-artifact-pane-border-left",r))}function px(t){t.style.removeProperty("--persona-artifact-doc-toolbar-icon-color"),t.style.removeProperty("--persona-artifact-doc-toggle-active-bg"),t.style.removeProperty("--persona-artifact-doc-toggle-active-border")}var Ef=["panel","seamless","detached"];function Pc(t){let e=t.features?.artifacts?.layout?.paneAppearance;return e&&Ef.includes(e)?e:e?"panel":t.launcher?.detachedPanel?"detached":"panel"}function Ic(t){return!t||!nn(t)?!1:Pc(t)==="detached"}function qs(t,e){if(!nn(e)){t.style.removeProperty("--persona-artifact-split-gap"),t.style.removeProperty("--persona-artifact-pane-width"),t.style.removeProperty("--persona-artifact-pane-max-width"),t.style.removeProperty("--persona-artifact-pane-min-width"),t.style.removeProperty("--persona-artifact-pane-bg"),t.style.removeProperty("--persona-artifact-pane-padding"),px(t),Tf(t,e);return}let n=e.features?.artifacts?.layout,o=Pc(e)==="detached"?"var(--persona-panel-inset)":"0";t.style.setProperty("--persona-artifact-split-gap",n?.splitGap??o),t.style.setProperty("--persona-artifact-pane-width",n?.paneWidth??"40%"),t.style.setProperty("--persona-artifact-pane-max-width",n?.paneMaxWidth??"28rem"),n?.paneMinWidth?t.style.setProperty("--persona-artifact-pane-min-width",n.paneMinWidth):t.style.removeProperty("--persona-artifact-pane-min-width");let r=n?.paneBackground?.trim();r?t.style.setProperty("--persona-artifact-pane-bg",r):t.style.removeProperty("--persona-artifact-pane-bg");let s=n?.panePadding?.trim();s?t.style.setProperty("--persona-artifact-pane-padding",s):t.style.removeProperty("--persona-artifact-pane-padding");let i=n?.documentToolbarIconColor?.trim();i?t.style.setProperty("--persona-artifact-doc-toolbar-icon-color",i):t.style.removeProperty("--persona-artifact-doc-toolbar-icon-color");let l=n?.documentToolbarToggleActiveBackground?.trim();l?t.style.setProperty("--persona-artifact-doc-toggle-active-bg",l):t.style.removeProperty("--persona-artifact-doc-toggle-active-bg");let p=n?.documentToolbarToggleActiveBorderColor?.trim();p?t.style.setProperty("--persona-artifact-doc-toggle-active-border",p):t.style.removeProperty("--persona-artifact-doc-toggle-active-border"),Tf(t,e)}function Ks(t,e){for(let l of Ef)t.classList.remove(`persona-artifact-appearance-${l}`);if(t.style.removeProperty("--persona-artifact-pane-radius"),t.style.removeProperty("--persona-artifact-pane-shadow"),t.style.removeProperty("--persona-artifact-chat-shadow"),!nn(e))return;let n=e.features?.artifacts?.layout,o=Pc(e);t.classList.add(`persona-artifact-appearance-${o}`);let r=n?.paneBorderRadius?.trim();r&&t.style.setProperty("--persona-artifact-pane-radius",r);let s=n?.paneShadow?.trim();s&&t.style.setProperty("--persona-artifact-pane-shadow",s);let i=n?.chatShadow?.trim();i&&t.style.setProperty("--persona-artifact-chat-shadow",i)}function kf(t,e){return!e||!nn(t)?!1:t.features?.artifacts?.layout?.expandLauncherPanelWhenOpen!==!1}var ux=new Set(["__proto__","prototype","constructor"]),gx=new Set(["collapsed","card","panel","inline"]),Lf=new Set(["markdown","component"]),fx=/^[a-z0-9][a-z0-9!#$&^_.+-]*\/(\*|[a-z0-9!#$&^_.+-]+)$/,Ko=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),ja=t=>!ux.has(t),Rc=t=>typeof t=="string"&&gx.has(t),Go=t=>Object.keys(t).length>0;function Bn(t,e,n,o){t.push({path:e,code:n,message:o})}var mx="Ignored because this key is not part of the persisted preference schema.",Ua="Ignored an unsupported value.",hx="Expected collapsed, panel, or inline.",yx='Expected a MIME type such as "text/html" or a wildcard such as "image/*".',Pf={kind:"mode",message:Ua},Ir={kind:"string",message:"Expected a CSS length string."},Xn={kind:"boolean"},bx={paneWidth:Ir,paneMaxWidth:Ir,paneMinWidth:Ir,expandedPanelWidth:Ir,resizableMinWidth:Ir,resizableMaxWidth:Ir,expandLauncherPanelWhenOpen:Xn,resizable:Xn},vx={kind:"object",message:"Expected a preference object.",children:{showToolCalls:Xn,showReasoning:Xn,toolCallDisplay:{kind:"object",children:{collapsedMode:{kind:"enum",values:new Set(["tool-call","tool-name","tool-preview"]),message:Ua},groupedMode:{kind:"enum",values:new Set(["stack","summary"]),message:Ua},loadingAnimation:{kind:"enum",values:new Set(["none","pulse","shimmer","shimmer-color","rainbow"]),message:Ua},expandable:Xn,grouped:Xn}},reasoningDisplay:{kind:"object",children:{expandable:Xn,activePreview:Xn}},artifacts:{kind:"object",children:{display:{kind:"object",bareMode:!0,message:"Expected an artifact display rules object.",children:{default:Pf,files:{kind:"object",bareMode:!0,message:"Expected collapsed, panel, inline, or a file display rules object.",children:{default:Pf,byMediaType:{kind:"modeMap",keys:"mediaType"}}},byType:{kind:"modeMap",keys:Lf,alias:"byKind",deprecated:"Use byKind. The legacy selector was normalized automatically."},byKind:{kind:"modeMap",keys:Lf}}},filePreview:{kind:"object",children:{enabled:Xn}},layout:{kind:"object",children:bx}}}}};function If(t,e,n,o){if(t!==void 0)switch(e.kind){case"boolean":return typeof t=="boolean"?t:Bn(o,n,"invalid_type","Expected a boolean.");case"string":return typeof t=="string"?t:Bn(o,n,"invalid_type",e.message);case"enum":return typeof t=="string"&&e.values.has(t)?t:Bn(o,n,"invalid_value",e.message);case"mode":return Rc(t)?bn(t):Bn(o,n,"invalid_value",e.message);case"modeMap":{if(!Ko(t))return Bn(o,n,"invalid_type","Expected an object.");let r=e.keys==="mediaType"?void 0:e.keys,s={};for(let[i,l]of Object.entries(t)){let p=r?i:dr(i);ja(i)&&(r?r.has(i):fx.test(p))?Rc(l)?s[p]=bn(l):Bn(o,`${n}.${i}`,"invalid_value",hx):Bn(o,`${n}.${i}`,r?"unknown_key":"invalid_value",r?"Ignored an unsupported selector.":yx)}return Go(s)?s:void 0}case"object":{if(e.bareMode&&Rc(t))return bn(t);if(!Ko(t))return Bn(o,n,"invalid_type",e.message??"Expected an object.");let r=Object.keys(e.children),s=l=>n?`${n}.${l}`:l;for(let l of Object.keys(t))(!ja(l)||!r.includes(l))&&Bn(o,s(l),"unknown_key",mx);let i={};for(let l of r){let p=e.children[l],c=If(t[l],p,s(l),o);if(p.deprecated&&t[l]!==void 0&&Bn(o,s(l),"deprecated_key",p.deprecated),c===void 0)continue;let d=p.alias??l,u=i[d];i[d]=Ko(u)&&Ko(c)?{...u,...c}:c}return Go(i)?i:void 0}}}function xx(t){let e=[];return{preferences:(t===null?void 0:If(t,vx,"",e))??{},issues:e}}function Rr(t){if(Array.isArray(t))return t.map(Rr);if(!Ko(t))return t;let e={};for(let[n,o]of Object.entries(t))ja(n)&&o!==void 0&&(e[n]=Rr(o));return e}function Rf(t,e){let n=Rr(t);for(let[o,r]of Object.entries(e)){if(!ja(o)||r===void 0)continue;let s=n[o];n[o]=Ko(s)&&Ko(r)?Rf(s,r):Rr(r)}return n}function Cx(t){let e={},n;for(let r of t){let s=xx(r).preferences;n=Wf(n,s.artifacts?.display),e=Rf(e,s)}let o=e;return o.artifacts&&(n!==void 0?o.artifacts.display=n:delete o.artifacts.display),o}function wx(t,e){if(e===void 0)return t===void 0?void 0:Rr(t);if(typeof e=="string")return e;let n=typeof t=="string"?{default:t}:t??{},o=e.default??n.default,r={...n.byMediaType,...e.byMediaType},s={...o?{default:o}:{},...Go(r)?{byMediaType:r}:{}};return Go(s)?s:void 0}function Wf(t,e){if(e===void 0)return t===void 0?void 0:Rr(t);if(typeof e=="string")return e;let n=typeof t=="string"?{default:t}:t??{},o=e.default??n.default,r={...n.byType,...n.byKind,...e.byType,...e.byKind},s=wx(n.files,e.files),i={...o?{default:o}:{},...Go(r)?{byKind:r}:{},...s!==void 0?{files:s}:{}};return Go(i)?i:void 0}function Ax(t={},e){let n=Cx(e),o={...t};if(n.showToolCalls!==void 0&&(o.showToolCalls=n.showToolCalls),n.showReasoning!==void 0&&(o.showReasoning=n.showReasoning),n.toolCallDisplay&&(o.toolCallDisplay={...t.toolCallDisplay,...n.toolCallDisplay}),n.reasoningDisplay&&(o.reasoningDisplay={...t.reasoningDisplay,...n.reasoningDisplay}),n.artifacts){let r=t.artifacts??{},s={...r};if(n.artifacts.display!==void 0){let i=Wf(r.display,n.artifacts.display);i!==void 0&&(s.display=i)}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 Wc(t){let e=t.preferences;return!e||!Go(e)?t:{...t,features:Ax(t.features??{},[e])}}function Sx(t,e){if(!t?.trim())return e;let n=/^(\d+(?:\.\d+)?)px\s*$/i.exec(t.trim());return n?Math.max(0,Number(n[1])):e}function Mx(t){if(!t?.trim())return null;let e=/^(\d+(?:\.\d+)?)px\s*$/i.exec(t.trim());return e?Math.max(0,Number(e[1])):null}function Tx(t,e,n){return n<e?e:Math.min(n,Math.max(e,t))}function Ex(t,e,n,o){let r=t-o-2*e-n;return Math.max(0,r)}function Hc(t,e){let o=(e.getComputedStyle(t).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 Hf(t,e,n,o,r,s){let i=Sx(r,200),l=Ex(e,n,o,200);l=Math.max(i,l);let p=Mx(s);return p!==null&&(l=Math.min(l,p)),Tx(t,i,l)}Je();var Bf={init:{title:"Schedule a Demo",description:"Share the basics and we'll follow up with a confirmation.",fields:[{name:"name",label:"Full name",placeholder:"Jane Doe",required:!0},{name:"email",label:"Work email",placeholder:"jane@example.com",type:"email",required:!0},{name:"notes",label:"What would you like to cover?",type:"textarea"}],submitLabel:"Submit details"},followup:{title:"Additional Information",description:"Provide any extra details to tailor the next steps.",fields:[{name:"company",label:"Company",placeholder:"Acme Inc."},{name:"context",label:"Context",type:"textarea",placeholder:"Share more about your use case"}],submitLabel:"Send"}},Bc=(t,e,n,o)=>{let r=t.querySelectorAll("[data-tv-form]");r.length&&r.forEach(s=>{if(s.dataset.enhanced==="true")return;let i=s.dataset.tvForm??"init";s.dataset.enhanced="true";let l=Bf[i]??Bf.init;s.classList.add("persona-form-card","persona-space-y-4");let p=v("div","persona-space-y-1"),c=v("h3","persona-text-base persona-font-semibold persona-text-persona-primary");if(c.textContent=l.title,p.appendChild(c),l.description){let h=v("p","persona-text-sm persona-text-persona-muted");h.textContent=l.description,p.appendChild(h)}let d=document.createElement("form");d.className="persona-form-grid persona-space-y-3",l.fields.forEach(h=>{let C=v("label","persona-form-field persona-flex persona-flex-col persona-gap-1");C.htmlFor=`${e.id}-${i}-${h.name}`;let L=v("span","persona-text-xs persona-font-medium persona-text-persona-muted");L.textContent=h.label,C.appendChild(L);let B=h.type??"text",k;B==="textarea"?(k=document.createElement("textarea"),k.rows=3):(k=document.createElement("input"),k.type=B),k.className="persona-rounded-xl persona-border persona-border-gray-200 persona-bg-white persona-px-3 persona-py-2 persona-text-sm persona-text-persona-primary focus:persona-outline-none focus:persona-border-persona-primary",k.id=`${e.id}-${i}-${h.name}`,k.name=h.name,k.placeholder=h.placeholder??"",h.required&&(k.required=!0),C.appendChild(k),d.appendChild(C)});let u=v("div","persona-flex persona-items-center persona-justify-between persona-gap-2"),b=v("div","persona-text-xs persona-text-persona-muted persona-min-h-[1.5rem]"),g=v("button","persona-inline-flex persona-items-center persona-rounded-full persona-bg-persona-primary persona-px-4 persona-py-2 persona-text-sm persona-font-semibold persona-text-white disabled:persona-opacity-60 persona-cursor-pointer");g.type="submit",g.textContent=l.submitLabel??"Submit",u.appendChild(b),u.appendChild(g),d.appendChild(u),s.replaceChildren(p,d),d.addEventListener("submit",async h=>{h.preventDefault();let C=n.formEndpoint??"/form",L=new FormData(d),B={};L.forEach((k,S)=>{B[S]=k}),B.type=i,g.disabled=!0,b.textContent="Submitting\u2026";try{let k=await fetch(C,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(B)});if(!k.ok)throw new Error(`Form submission failed (${k.status})`);let S=await k.json();b.textContent=S.message??"Thanks! We'll be in touch soon.",S.success&&S.nextPrompt&&await o.sendMessage(String(S.nextPrompt))}catch(k){b.textContent=k instanceof Error?k.message:"Something went wrong. Please try again."}finally{g.disabled=!1}})})};var Dc=class{constructor(){this.plugins=new Map}register(e){this.plugins.has(e.id)&&console.warn(`Plugin "${e.id}" is already registered. Overwriting.`),this.plugins.set(e.id,e),e.onRegister?.()}unregister(e){let n=this.plugins.get(e);n&&(n.onUnregister?.(),this.plugins.delete(e))}getAll(){return Array.from(this.plugins.values()).sort((e,n)=>(n.priority??0)-(e.priority??0))}getForInstance(e){let n=this.getAll();if(!e||e.length===0)return n;let o=new Set(e.map(s=>s.id));return[...n.filter(s=>!o.has(s.id)),...e].sort((s,i)=>(i.priority??0)-(s.priority??0))}clear(){this.plugins.forEach(e=>e.onUnregister?.()),this.plugins.clear()}},Nc=new Dc;var Df=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),kx=new Set(["headers","agent","storageAdapter","components","targetProviders","voiceRecognition.provider.custom","features.artifacts.display","features.streamAnimation.plugins","preferences"]),Nf=(t,e,n)=>{if(!Df(t)||!Df(e)||kx.has(n))return e;let o={...t};for(let r of Object.keys(e)){if(e[r]===void 0){delete o[r];continue}let s=n?`${n}.${r}`:r;o[r]=Nf(t[r],e[r],s)}return o};function Of(t,e){let n=Nf(t,e,"");return ca(n)}var Ff=()=>{let t=new Map,e=(r,s)=>(t.has(r)||t.set(r,new Set),t.get(r).add(s),()=>n(r,s)),n=(r,s)=>{t.get(r)?.delete(s)};return{on:e,off:n,emit:(r,s)=>{t.get(r)?.forEach(i=>{try{i(s)}catch(l){typeof console<"u"&&console.error("[AgentWidget] Event handler error:",l)}})}}};var Lx=t=>{let e=t.match(/```(?:json)?\s*([\s\S]*?)```/i);return e?e[1]:t},Px=t=>{let e=t.trim(),n=e.indexOf("{");if(n===-1)return null;let o=0;for(let r=n;r<e.length;r+=1){let s=e[r];if(s==="{"&&(o+=1),s==="}"&&(o-=1,o===0))return e.slice(n,r+1)}return null},Fc=({text:t})=>{if(!t||!t.includes("{"))return null;try{let e=Lx(t),n=Px(e);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}},Oc=t=>typeof t=="string"?t:t==null?"":String(t),Gs={message:t=>t.type!=="message"?void 0:{handled:!0,displayText:Oc(t.payload.text)},messageAndClick:(t,e)=>{if(t.type!=="message_and_click")return;let n=t.payload,o=Oc(n.element);if(o&&e.document?.querySelector){let r=e.document.querySelector(o);r?setTimeout(()=>{r.click()},400):typeof console<"u"&&console.warn("[AgentWidget] Element not found for selector:",o)}return{handled:!0,displayText:Oc(n.text)}}},_f=t=>Array.isArray(t)?t.map(e=>String(e)):[],_c=t=>{let e=new Set(_f(t.getSessionMetadata().processedActionMessageIds)),n=()=>{e=new Set(_f(t.getSessionMetadata().processedActionMessageIds))},o=()=>{let s=Array.from(e);t.updateSessionMetadata(i=>({...i,processedActionMessageIds:s}))};return{process:s=>{if(s.streaming||s.message.role!=="assistant"||!s.text||e.has(s.message.id))return null;let i=typeof s.raw=="string"&&s.raw||typeof s.message.rawContent=="string"&&s.message.rawContent||typeof s.text=="string"&&s.text||null;!i&&typeof s.text=="string"&&s.text.trim().startsWith("{")&&typeof console<"u"&&console.warn("[AgentWidget] Structured response detected but no raw payload was provided. Ensure your stream parser returns { text, raw }.");let l=i?t.parsers.reduce((c,d)=>c||d?.({text:i,message:s.message})||null,null):null;if(!l)return null;e.add(s.message.id),o();let p={action:l,message:s.message};t.emit("action:detected",p);for(let c of t.handlers)if(c)try{let d=()=>{t.emit("action:resubmit",p)},u=c(l,{message:s.message,metadata:t.getSessionMetadata(),updateMetadata:t.updateSessionMetadata,document:t.documentRef,triggerResubmit:d});if(!u)continue;if(u.handled){let b=u.persistMessage!==!1;return{text:u.displayText!==void 0?u.displayText:"",persist:b,resubmit:u.resubmit}}}catch(d){typeof console<"u"&&console.error("[AgentWidget] Action handler error:",d)}return{text:"",persist:!0}},syncFromMetadata:n}};var Ix=t=>{if(!t)return null;try{return JSON.parse(t)}catch(e){return typeof console<"u"&&console.error("[AgentWidget] Failed to parse stored state:",e),null}},Rx=t=>t.map(e=>({...e,streaming:!1})),Wx=t=>t.map(e=>({...e,status:"complete"})),$f=(t="persona-state")=>{let e=()=>typeof window>"u"||!window.localStorage?null:window.localStorage;return{load:()=>{let n=e();return n?Ix(n.getItem(t)):null},save:n=>{let o=e();if(o)try{let r={...n,messages:n.messages?Rx(n.messages):void 0,artifacts:n.artifacts?Wx(n.artifacts):void 0};o.setItem(t,JSON.stringify(r))}catch(r){typeof console<"u"&&console.error("[AgentWidget] Failed to persist state:",r)}},clear:()=>{let n=e();if(n)try{n.removeItem(t)}catch(o){typeof console<"u"&&console.error("[AgentWidget] Failed to clear stored state:",o)}}}};var $c=require("partial-json");function zf(t,e){let{config:n,message:o,onPropsUpdate:r}=e,s=Qn.get(t.component);if(!s)return console.warn(`[ComponentMiddleware] Component "${t.component}" not found in registry. Falling back to default rendering.`),null;let i={message:o,config:n,updateProps:l=>{r&&r(l)}};try{return s(t.props,i)}catch(l){return console.error(`[ComponentMiddleware] Error rendering component "${t.component}":`,l),null}}function Uf(t){if(typeof t.rawContent=="string"&&t.rawContent.length>0)return t.rawContent;if(typeof t.content=="string"){let e=t.content.trim();if(e.startsWith("{")||e.startsWith("["))return t.content}return null}function zc(t){let e=Uf(t);if(!e)return!1;try{let n=JSON.parse(e);return typeof n=="object"&&n!==null&&"component"in n&&typeof n.component=="string"}catch{return!1}}function jf(t){let e=Uf(t);if(!e)return null;try{let n=JSON.parse(e);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:e}}}catch{}return null}var Hx=["Very dissatisfied","Dissatisfied","Neutral","Satisfied","Very satisfied"];function Vf(t){let{onSubmit:e,onDismiss:n,title:o="How satisfied are you?",subtitle:r="Please rate your experience",commentPlaceholder:s="Share your thoughts (optional)...",submitText:i="Submit",skipText:l="Skip",showComment:p=!0,ratingLabels:c=Hx}=t,d=document.createElement("div");d.className="persona-feedback-container persona-feedback-csat",d.setAttribute("role","dialog"),d.setAttribute("aria-label","Customer satisfaction feedback");let u=null,b=document.createElement("div");b.className="persona-feedback-content";let g=document.createElement("div");g.className="persona-feedback-header";let h=document.createElement("h3");h.className="persona-feedback-title",h.textContent=o,g.appendChild(h);let C=document.createElement("p");C.className="persona-feedback-subtitle",C.textContent=r,g.appendChild(C),b.appendChild(g);let L=document.createElement("div");L.className="persona-feedback-rating persona-feedback-rating-csat",L.setAttribute("role","radiogroup"),L.setAttribute("aria-label","Satisfaction rating from 1 to 5");let B=[];for(let G=1;G<=5;G++){let A=document.createElement("button");A.type="button",A.className="persona-feedback-rating-btn persona-feedback-star-btn",A.setAttribute("role","radio"),A.setAttribute("aria-checked","false"),A.setAttribute("aria-label",`${G} star${G>1?"s":""}: ${c[G-1]}`),A.title=c[G-1],A.dataset.rating=String(G),A.innerHTML=`
|
|
212
|
+
`,n.addEventListener("click",e);let o=s=>{let i=s.launcher??{},l=Ot(s),p=n.querySelector("[data-role='launcher-title']");if(p){let E=i.title??"Chat Assistant";p.textContent=E,p.setAttribute("title",E)}let c=n.querySelector("[data-role='launcher-subtitle']");if(c){let E=i.subtitle??"Here to help you get answers fast";c.textContent=E,c.setAttribute("title",E)}let d=n.querySelector(".persona-flex-col");d&&(i.textHidden||l?d.style.display="none":d.style.display="");let g=n.querySelector("[data-role='launcher-icon']");if(g)if(i.agentIconHidden)g.style.display="none";else{let E=i.agentIconSize??"40px";if(g.style.height=E,g.style.width=E,i.agentIconBackgroundColor?(g.style.backgroundColor=i.agentIconBackgroundColor,g.classList.remove("persona-bg-persona-primary")):(g.style.backgroundColor="",g.classList.add("persona-bg-persona-primary")),g.innerHTML="",i.agentIconName){let L=parseFloat(E)||24,D=ie(i.agentIconName,L*.6,"var(--persona-text-inverse, #ffffff)",2);D?(g.appendChild(D),g.style.display=""):(g.textContent=i.agentIconText??"\u{1F4AC}",g.style.display="")}else i.iconUrl?g.style.display="none":(g.textContent=i.agentIconText??"\u{1F4AC}",g.style.display="")}let b=n.querySelector("[data-role='launcher-image']");if(b){let E=i.agentIconSize??"40px";b.style.height=E,b.style.width=E,i.iconUrl&&!i.agentIconName&&!i.agentIconHidden?(b.src=i.iconUrl,b.style.display="block"):b.style.display="none"}let f=n.querySelector("[data-role='launcher-call-to-action-icon']");if(f){let E=i.callToActionIconSize??"32px";f.style.height=E,f.style.width=E,i.callToActionIconBackgroundColor?(f.style.backgroundColor=i.callToActionIconBackgroundColor,f.classList.remove("persona-bg-persona-primary")):(f.style.backgroundColor="",f.classList.add("persona-bg-persona-primary")),i.callToActionIconColor?(f.style.color=i.callToActionIconColor,f.classList.remove("persona-text-persona-call-to-action")):(f.style.color="",f.classList.add("persona-text-persona-call-to-action"));let L=0;if(i.callToActionIconPadding?(f.style.boxSizing="border-box",f.style.padding=i.callToActionIconPadding,L=(parseFloat(i.callToActionIconPadding)||0)*2):(f.style.boxSizing="",f.style.padding=""),i.callToActionIconHidden)f.style.display="none";else if(f.style.display=l?"none":"",f.innerHTML="",i.callToActionIconName){let D=parseFloat(E)||24,z=Math.max(D-L,8),$=ie(i.callToActionIconName,z,"currentColor",2);$?f.appendChild($):f.textContent=i.callToActionIconText??"\u2197"}else f.textContent=i.callToActionIconText??"\u2197"}let y=i.position&&un[i.position]?un[i.position]:un["bottom-right"],C="persona-fixed persona-flex persona-items-center persona-gap-3 persona-rounded-launcher persona-bg-persona-surface persona-py-2.5 persona-pl-3 persona-pr-3 persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer",M="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-surface persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer";n.className=l?M:`${C} ${y}`,l||(n.style.zIndex=String(i.zIndex??Ut));let I="1px solid var(--persona-border, #e5e7eb)",S="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=i.border??I,n.style.boxShadow=i.shadow!==void 0?i.shadow.trim()===""?"none":i.shadow:S,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=i.collapsedMaxWidth??"",n.style.justifyContent="",n.style.padding="",n.style.overflow="")},r=()=>{n.removeEventListener("click",e),n.remove()};return t&&o(t),{element:n,update:o,destroy:r}},tw="teaser-dismissed",bm=new Set,hm=t=>{let e=t?.persistState;return`${(typeof e=="object"?e?.keyPrefix:void 0)??"persona-"}${tw}`},nw=(t,e)=>{if(bm.has(t))return!0;if(!e)return!1;try{return window.localStorage.getItem(t)==="1"}catch{return!1}},ow=(t,e)=>{if(bm.add(t),!!e)try{window.localStorage.setItem(t,"1")}catch{}},rw=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,sw=t=>{let e=t?.launcher?.teaser;return!e||!e.text||t?.launcher?.enabled===!1||Ot(t??{})?null:e},ym=(t,e)=>{let n=v("div","persona-launcher-surface");n.setAttribute("data-persona-launcher-surface","true");let o=t??{},r=null,s=null,i=null,l=null,p=null,c=!1,d=!1,g=!1,b=!1,f=()=>(r?.frequency??"once")==="once"&&o.persistState!==!1,y=()=>{p!==null&&(clearTimeout(p),p=null)},C=()=>{!s||!c||(c=!1,s.hidden=!0)},M=Q=>{y(),g=!0,C(),ow(hm(o),Q&&f())},I=Q=>{!r||g||M(Q==="user"&&c)},S=()=>{p=null,!(!s||g||b)&&(d=!0,c=!0,s.hidden=!1,!(rw()||typeof s.animate!="function")&&s.animate([{opacity:"0",transform:"translateY(6px)"},{opacity:"1",transform:"none"}],{duration:220,easing:"ease-out",fill:"backwards"}))},E=()=>{!r||!s||g||d||b||nw(hm(o),f())||(y(),p=setTimeout(S,Math.max(0,r.delayMs??0)))},L=()=>{M(f()),e()},D=Q=>{Q.stopPropagation(),M(f())},$=dd(t,()=>{I("user"),e()}),F=()=>{y(),l?.removeEventListener("click",L),i?.removeEventListener("click",D),s?.remove(),s=null,l=null,i=null,c=!1},B=()=>{l=ye("button",{className:"persona-launcher-teaser-text",attrs:{type:"button"}}),l.addEventListener("click",L),i=ye("button",{className:"persona-launcher-teaser-dismiss",attrs:{type:"button"},text:"\xD7"}),i.addEventListener("click",D),s=ye("div",{className:"persona-launcher-teaser",attrs:{"data-persona-launcher-teaser":"true",role:"status","aria-live":"polite",hidden:""}},l,i),n.insertBefore(s,$.element)},H=()=>{let Q=o.launcher?.position??"bottom-right",se=un[Q]??un["bottom-right"];if(!s){n.className="persona-launcher-surface",n.removeAttribute("data-teaser"),n.style.zIndex="",$.element.style.position="";return}n.className=Bn("persona-launcher-surface",se),n.setAttribute("data-teaser",Q),n.style.zIndex=String(o.launcher?.zIndex??Ut),$.element.style.position="static"},w=Q=>{let se=sw(Q);if(r=se,!se){F();return}s||B(),l.textContent=se.text,i.hidden=se.dismissible===!1,i.setAttribute("aria-label",se.dismissLabel??"Dismiss message"),E()},N=Q=>{o=Q,$.update(Q),w(Q),H()},K=(Q,se="user")=>{b=Q,Q&&I(se)},te=()=>{F(),$.destroy(),n.remove()};return n.appendChild($.element),t&&(w(t),H()),{element:n,launcher:$,get teaser(){return s?{element:s,show:S,dismiss:M}:null},setPanelOpen:K,update:N,destroy:te}};var vm=({config:t,showClose:e})=>{let{wrapper:n,panel:o,pillRoot:r}=gm(t),s=mm(t,e),i={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},p={element:s.header,iconHolder:s.iconHolder,headerTitle:s.headerTitle,headerSubtitle:s.headerSubtitle,closeButton:s.closeButton,closeButtonWrapper:s.closeButtonWrapper,clearChatButton:s.clearChatButton,clearChatButtonWrapper:s.clearChatButtonWrapper},c={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:i,panelElements:s,transcript:l,header:p,composer:c,replaceHeader:b=>(p.element.replaceWith(b.header),p.element=b.header,p.iconHolder=b.iconHolder,p.headerTitle=b.headerTitle,p.headerSubtitle=b.headerSubtitle,p.closeButton=b.closeButton,p.closeButtonWrapper=b.closeButtonWrapper,p.clearChatButton=b.clearChatButton,p.clearChatButtonWrapper=b.clearChatButtonWrapper,b),replaceComposer:b=>{c.footer.replaceWith(b),c.footer=b}}},pd=({config:t,plugins:e,onToggle:n})=>{let o=e.find(s=>s.renderLauncher);if(o?.renderLauncher){let s=o.renderLauncher({config:t,defaultRenderer:()=>dd(t,n).element,onToggle:n});if(s)return{instance:null,element:s}}let r=ym(t,n);return{instance:r,element:r.element}};var iw=t=>{let e=t?.persistState;return(typeof e=="object"?e?.keyPrefix:void 0)??"persona-"},aw=(t,e,n)=>`${iw(t)}plugin:${e}:${n}`,xm=t=>{let e=new Map,n=!1,o=()=>{if(n||t()?.persistState===!1)return null;try{return typeof window>"u"||!window.localStorage?null:window.localStorage}catch{return n=!0,null}};return r=>{let s=i=>aw(t(),r,i);return{get:i=>{let l=s(i),p=o();if(p)try{return p.getItem(l)}catch{n=!0}return e.get(l)??null},set:(i,l)=>{let p=s(i),c=o();if(c)try{c.setItem(p,l);return}catch{n=!0}e.set(p,l)},remove:i=>{let l=s(i);e.delete(l);let p=o();if(p)try{p.removeItem(l)}catch{n=!0}}}}};Ye();xt();var Qr=new Set,lw=(t,e)=>e==null?!1:typeof e=="string"?(t.textContent=e,!0):(t.appendChild(e),!0),cw=(t,e)=>{let n=t.reasoning?.chunks.join("").trim()??"";return n?n.split(/\r?\n/).map(o=>o.trim()).filter(Boolean).slice(0,e).join(`
|
|
213
|
+
`):""},wm=(t,e)=>{let n=Qr.has(t),o=e.querySelector('button[data-expand-header="true"]'),r=e.querySelector(".persona-border-t"),s=e.querySelector('[data-persona-collapsed-preview="reasoning"]');if(!o||!r)return;o.setAttribute("aria-expanded",n?"true":"false");let l=o.querySelector(".persona-ml-auto")?.querySelector(":scope > .persona-flex.persona-items-center");if(l){l.innerHTML="";let c=ie(n?"chevron-up":"chevron-down",16,"currentColor",2);c?l.appendChild(c):l.textContent=n?"Hide":"Show"}r.style.display=n?"":"none",s&&(s.style.display=n?"none":s.textContent||s.childNodes.length?"":"none")},ud=(t,e)=>{let n=t.reasoning,o=v("div",["persona-message-bubble","persona-reasoning-bubble","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"].join(" "));if(o.id=`bubble-${t.id}`,o.setAttribute("data-message-id",t.id),!n)return o;let r=e?.features?.reasoningDisplay??{},s=r.expandable!==!1,i=s&&Qr.has(t.id),l=n.status!=="complete",p=cw(t,r.previewMaxLines??3),c=v("button",s?"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":"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");c.type="button",s&&(c.setAttribute("aria-expanded",i?"true":"false"),c.setAttribute("data-expand-header","true")),c.setAttribute("data-bubble-type","reasoning");let d=v("div","persona-flex persona-flex-col persona-text-left"),g=v("span","persona-text-xs persona-text-persona-primary"),b="Thinking...",f=e?.reasoning??{},y=String(n.startedAt??Date.now()),C=()=>{let te=v("span","");return te.setAttribute("data-tool-elapsed",y),te.textContent=ra(n),te},M=f.renderCollapsedSummary?.({message:t,reasoning:n,defaultSummary:b,previewText:p,isActive:l,config:e??{},elapsed:ra(n),createElapsedElement:C});typeof M=="string"&&M.trim()?(g.textContent=M,d.appendChild(g)):M instanceof HTMLElement?d.appendChild(M):(g.textContent=b,d.appendChild(g));let I=v("span","persona-text-xs persona-text-persona-primary");I.textContent=eg(n),d.appendChild(I);let S=r.loadingAnimation??"none",E=f.activeTextTemplate,L=f.completeTextTemplate,D=l?E:L,z=M instanceof HTMLElement,$=(te,Q)=>{g.textContent="";let se=sa(te,""),J=0;for(let oe of se){let Y=oe.styles.length>0?(()=>{let pe=v("span",oe.styles.map(ne=>`persona-tool-text-${ne}`).join(" "));return g.appendChild(pe),pe})():g;if(oe.isDuration&&l)Y.appendChild(C());else{let pe=oe.isDuration?ra(n):oe.text;Q?J=ko(Y,pe,J):Y.appendChild(document.createTextNode(pe))}}};if(!z&&D)if(I.style.display="none",g.style.display="",l&&S!=="none"){let te=f.loadingAnimationDuration??2e3;g.setAttribute("data-preserve-animation","true"),S==="pulse"?(g.classList.add("persona-tool-loading-pulse"),g.style.setProperty("--persona-tool-anim-duration",`${te}ms`),$(D,!1)):(g.classList.add(`persona-tool-loading-${S}`),g.style.setProperty("--persona-tool-anim-duration",`${te}ms`),S==="shimmer-color"&&(f.loadingAnimationColor&&g.style.setProperty("--persona-tool-anim-color",f.loadingAnimationColor),f.loadingAnimationSecondaryColor&&g.style.setProperty("--persona-tool-anim-secondary-color",f.loadingAnimationSecondaryColor)),$(D,!0))}else $(D,!1);else if(!z&&l&&S!=="none"){g.style.display="";let te=f.loadingAnimationDuration??2e3;if(g.setAttribute("data-preserve-animation","true"),S==="pulse")g.classList.add("persona-tool-loading-pulse"),g.style.setProperty("--persona-tool-anim-duration",`${te}ms`);else{g.classList.add(`persona-tool-loading-${S}`),g.style.setProperty("--persona-tool-anim-duration",`${te}ms`),S==="shimmer-color"&&(f.loadingAnimationColor&&g.style.setProperty("--persona-tool-anim-color",f.loadingAnimationColor),f.loadingAnimationSecondaryColor&&g.style.setProperty("--persona-tool-anim-secondary-color",f.loadingAnimationSecondaryColor));let Q=g.textContent||b;g.textContent="",ko(g,Q,0)}n.status==="complete"&&(g.style.display="none")}else z||(n.status==="complete"?g.style.display="none":g.style.display="");let F=null;if(s){F=v("div","persona-flex persona-items-center");let Q=ie(i?"chevron-up":"chevron-down",16,"currentColor",2);Q?F.appendChild(Q):F.textContent=i?"Hide":"Show";let se=v("div","persona-flex persona-items-center persona-ml-auto");se.append(F),c.append(d,se)}else c.append(d);let B=v("div","persona-px-4 persona-py-3 persona-text-xs persona-leading-snug persona-text-persona-muted");if(B.setAttribute("data-persona-collapsed-preview","reasoning"),B.style.display="none",B.style.whiteSpace="pre-wrap",!i&&l&&r.activePreview&&p){let te=e?.reasoning?.renderCollapsedPreview?.({message:t,reasoning:n,defaultPreview:p,isActive:l,config:e??{}});lw(B,te)||(B.textContent=p),B.style.display=""}if(!i&&l&&r.activeMinHeight&&(o.style.minHeight=r.activeMinHeight),!s)return o.append(c,B),o;let H=v("div","persona-border-t persona-border-gray-200 persona-bg-gray-50 persona-px-4 persona-py-3");H.style.display=i?"":"none";let w=n.chunks.join(""),N=v("div","persona-whitespace-pre-wrap persona-text-xs persona-leading-snug persona-text-persona-muted");return N.textContent=w||(n.status==="complete"?"No additional context was shared.":"Waiting for details\u2026"),H.appendChild(N),(()=>{if(c.setAttribute("aria-expanded",i?"true":"false"),F){F.innerHTML="";let Q=ie(i?"chevron-up":"chevron-down",16,"currentColor",2);Q?F.appendChild(Q):F.textContent=i?"Hide":"Show"}H.style.display=i?"":"none",B.style.display=i?"none":B.textContent||B.childNodes.length?"":"none"})(),o.append(c,B,H),o};Ye();xt();var Xr=new Set,dw=(t,e)=>e==null?!1:typeof e=="string"?(t.textContent=e,!0):(t.appendChild(e),!0),pw=(t,e)=>{let n=t.toolCall;if(!n)return"";let o=(n.chunks??[]).join("").trim();if(o)return o.split(/\r?\n/).map(i=>i.trim()).filter(Boolean).slice(-e).join(`
|
|
214
|
+
`);let r=Mo(n.args).trim();return r?r.split(/\r?\n/).map(s=>s.trim()).filter(Boolean).slice(0,e).join(`
|
|
215
|
+
`):""},gd=(t,e)=>{t.style.backgroundColor=e.codeBlockBackgroundColor??"var(--persona-container, #f3f4f6)",t.style.borderColor=e.codeBlockBorderColor??"var(--persona-border, #e5e7eb)",t.style.color=e.codeBlockTextColor??"var(--persona-text, #171717)"},uw=(t,e)=>{let n=t.toolCall,o=e?.features?.toolCallDisplay,r=o?.collapsedMode??"tool-call",s=pw(t,o?.previewMaxLines??3),i=n?tg(n):"";if(!n)return{summary:i,previewText:s,isActive:!1};let l=n.status!=="complete",p=e?.toolCall??{},c=i;return r==="tool-name"?c=n.name?.trim()||i:r==="tool-preview"&&s&&(c=s),l&&p.activeTextTemplate?c=hc(n,p.activeTextTemplate,c):!l&&p.completeTextTemplate&&(c=hc(n,p.completeTextTemplate,c)),{summary:c,previewText:s,isActive:l}},Cm=(t,e,n)=>{let o=Xr.has(t),r=n?.toolCall??{},s=e.querySelector('button[data-expand-header="true"]'),i=e.querySelector(".persona-border-t"),l=e.querySelector('[data-persona-collapsed-preview="tool"]');if(!s||!i)return;s.setAttribute("aria-expanded",o?"true":"false");let c=s.querySelector(".persona-ml-auto")?.querySelector(":scope > .persona-flex.persona-items-center");if(c){c.innerHTML="";let d=r.toggleTextColor||r.headerTextColor||"var(--persona-primary, #171717)",g=ie(o?"chevron-up":"chevron-down",16,d,2);g?c.appendChild(g):c.textContent=o?"Hide":"Show"}i.style.display=o?"":"none",l&&(l.style.display=o?"none":l.textContent||l.childNodes.length?"":"none")},fd=(t,e)=>{let n=t.toolCall,o=e?.toolCall??{},r=v("div",["persona-message-bubble","persona-tool-bubble","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"].join(" "));if(r.id=`bubble-${t.id}`,r.setAttribute("data-message-id",t.id),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=e?.features?.toolCallDisplay??{},i=s.expandable!==!1,l=i&&Xr.has(t.id),{summary:p,previewText:c,isActive:d}=uw(t,e),g=v("button",i?"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":"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");g.type="button",i&&(g.setAttribute("aria-expanded",l?"true":"false"),g.setAttribute("data-expand-header","true")),g.setAttribute("data-bubble-type","tool"),o.headerBackgroundColor&&(g.style.backgroundColor=o.headerBackgroundColor),o.headerPaddingX&&(g.style.paddingLeft=o.headerPaddingX,g.style.paddingRight=o.headerPaddingX),o.headerPaddingY&&(g.style.paddingTop=o.headerPaddingY,g.style.paddingBottom=o.headerPaddingY);let b=v("div","persona-flex persona-flex-col persona-text-left"),f=v("span","persona-text-xs persona-text-persona-primary");o.headerTextColor&&(f.style.color=o.headerTextColor);let y=String(n.startedAt??Date.now()),C=()=>{let w=v("span","");return w.setAttribute("data-tool-elapsed",y),w.textContent=Hs(n),w},M=o.renderCollapsedSummary?.({message:t,toolCall:n,defaultSummary:p,previewText:c,collapsedMode:s.collapsedMode??"tool-call",isActive:d,config:e??{},elapsed:Hs(n),createElapsedElement:C});typeof M=="string"&&M.trim()?(f.textContent=M,b.appendChild(f)):M instanceof HTMLElement?b.appendChild(M):(f.textContent=p,b.appendChild(f));let I=s.loadingAnimation??"none",S=o.activeTextTemplate,E=o.completeTextTemplate,L=d?S:E,D=M instanceof HTMLElement,z=(w,N)=>{f.textContent="";let K=n.name?.trim()||"tool",te=sa(w,K),Q=0;for(let se of te){let J=se.styles.length>0?(()=>{let oe=v("span",se.styles.map(Y=>`persona-tool-text-${Y}`).join(" "));return f.appendChild(oe),oe})():f;if(se.isDuration&&d)J.appendChild(C());else{let oe=se.isDuration?Hs(n):se.text;N?Q=ko(J,oe,Q):J.appendChild(document.createTextNode(oe))}}};if(!D)if(d&&I!=="none"){let w=o.loadingAnimationDuration??2e3;if(f.setAttribute("data-preserve-animation","true"),I==="pulse")f.classList.add("persona-tool-loading-pulse"),f.style.setProperty("--persona-tool-anim-duration",`${w}ms`),L&&z(L,!1);else if(f.classList.add(`persona-tool-loading-${I}`),f.style.setProperty("--persona-tool-anim-duration",`${w}ms`),I==="shimmer-color"&&(o.loadingAnimationColor&&f.style.setProperty("--persona-tool-anim-color",o.loadingAnimationColor),o.loadingAnimationSecondaryColor&&f.style.setProperty("--persona-tool-anim-secondary-color",o.loadingAnimationSecondaryColor)),L)z(L,!0);else{let N=f.textContent||p;f.textContent="",ko(f,N,0)}}else L&&z(L,!1);let $=null;if(i){$=v("div","persona-flex persona-items-center");let w=o.toggleTextColor||o.headerTextColor||"var(--persona-primary, #171717)",N=ie(l?"chevron-up":"chevron-down",16,w,2);N?$.appendChild(N):$.textContent=l?"Hide":"Show";let K=v("div","persona-flex persona-items-center persona-gap-2 persona-ml-auto");K.append($),g.append(b,K)}else g.append(b);let F=v("div","persona-px-4 persona-py-3 persona-text-xs persona-leading-snug persona-text-persona-muted");if(F.setAttribute("data-persona-collapsed-preview","tool"),F.style.display="none",F.style.whiteSpace="pre-wrap",!l&&d&&s.activePreview&&c){let w=o.renderCollapsedPreview?.({message:t,toolCall:n,defaultPreview:c,isActive:d,config:e??{}});dw(F,w)||(F.textContent=c),F.style.display=""}if(!l&&d&&s.activeMinHeight&&(r.style.minHeight=s.activeMinHeight),!i)return r.append(g,F),r;let B=v("div","persona-border-t persona-border-gray-200 persona-bg-gray-50 persona-space-y-3 persona-px-4 persona-py-3");if(B.style.display=l?"":"none",o.contentBackgroundColor&&(B.style.backgroundColor=o.contentBackgroundColor),o.contentTextColor&&(B.style.color=o.contentTextColor),o.contentPaddingX&&(B.style.paddingLeft=o.contentPaddingX,B.style.paddingRight=o.contentPaddingX),o.contentPaddingY&&(B.style.paddingTop=o.contentPaddingY,B.style.paddingBottom=o.contentPaddingY),n.name){let w=v("div","persona-text-xs persona-text-persona-muted persona-italic");o.contentTextColor?w.style.color=o.contentTextColor:o.headerTextColor&&(w.style.color=o.headerTextColor),w.textContent=n.name,B.appendChild(w)}if(n.args!==void 0){let w=v("div","persona-space-y-1"),N=v("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(N.style.color=o.labelTextColor),N.textContent="Arguments";let K=v("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");K.style.fontSize="0.75rem",K.style.lineHeight="1rem",gd(K,o),K.textContent=Mo(n.args),w.append(N,K),B.appendChild(w)}if(n.chunks&&n.chunks.length){let w=v("div","persona-space-y-1"),N=v("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(N.style.color=o.labelTextColor),N.textContent="Activity";let K=v("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");K.style.fontSize="0.75rem",K.style.lineHeight="1rem",gd(K,o),K.textContent=n.chunks.join(""),w.append(N,K),B.appendChild(w)}if(n.status==="complete"&&n.result!==void 0){let w=v("div","persona-space-y-1"),N=v("div","persona-text-xs persona-text-persona-muted");o.labelTextColor&&(N.style.color=o.labelTextColor),N.textContent="Result";let K=v("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");K.style.fontSize="0.75rem",K.style.lineHeight="1rem",gd(K,o),K.textContent=Mo(n.result),w.append(N,K),B.appendChild(w)}if(n.status==="complete"&&typeof n.duration=="number"){let w=v("div","persona-text-xs persona-text-persona-muted");o.contentTextColor&&(w.style.color=o.contentTextColor),w.textContent=`Duration: ${n.duration}ms`,B.appendChild(w)}return(()=>{if(g.setAttribute("aria-expanded",l?"true":"false"),$){$.innerHTML="";let w=o.toggleTextColor||o.headerTextColor||"var(--persona-primary, #171717)",N=ie(l?"chevron-up":"chevron-down",16,w,2);N?$.appendChild(N):$.textContent=l?"Hide":"Show"}B.style.display=l?"":"none",F.style.display=l?"none":F.textContent||F.childNodes.length?"":"none"})(),r.append(g,F,B),r};Ye();xt();var sr=new Map,al=t=>{let n=(t.startsWith(Zn)?t.slice(Zn.length):t).replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[_\-\s.]+/).filter(Boolean);if(n.length===0)return t;let o=n.join(" ").toLowerCase();return o.charAt(0).toUpperCase()+o.slice(1)},Am=t=>t?.approval!==!1?t?.approval:void 0,Sm=(t,e)=>{let n=Am(e)?.detailsDisplay??"collapsed";return sr.get(t)??n==="expanded"},Mm=(t,e,n)=>{let o=Am(n);t.setAttribute("aria-expanded",e?"true":"false");let r=t.querySelector("[data-approval-details-label]");r&&(r.textContent=e?o?.hideDetailsLabel??"Hide details":o?.showDetailsLabel??"Show details");let s=t.querySelector("[data-approval-details-chevron]");if(s){s.innerHTML="";let i=ie(e?"chevron-up":"chevron-down",14,"currentColor",2);i&&s.appendChild(i)}},Tm=(t,e,n)=>{let o=e.querySelector('button[data-bubble-type="approval"]'),r=e.querySelector("[data-approval-details]");if(!o||!r)return;let s=Sm(t,n);Mm(o,s,n),r.style.display=s?"":"none"};var ll=(t,e)=>{let n=t.approval,o=e?.approval!==!1?e?.approval:void 0,r=n?.status==="pending",s=v("div",["persona-approval-bubble","persona-w-full","persona-rounded-2xl","persona-border","persona-shadow-sm","persona-overflow-hidden"].join(" "));if(s.id=`bubble-${t.id}`,s.setAttribute("data-message-id",t.id),s.style.backgroundColor=o?.backgroundColor??"var(--persona-approval-bg, #fefce8)",s.style.borderColor=o?.borderColor??"var(--persona-approval-border, #fef08a)",s.style.boxShadow=o?.shadow!==void 0?o.shadow.trim()===""?"none":o.shadow:"var(--persona-approval-shadow, 0 5px 15px rgba(15, 23, 42, 0.08))",!n)return s;let i=v("div","persona-flex persona-items-start persona-gap-3 persona-px-4 persona-py-3"),l=v("div","persona-flex-shrink-0 persona-mt-0.5");l.setAttribute("data-approval-icon","true");let p=n.status==="denied"?"shield-x":n.status==="timeout"?"shield-alert":"shield-check",c=n.status==="approved"?"var(--persona-feedback-success, #16a34a)":n.status==="denied"?"var(--persona-feedback-error, #dc2626)":n.status==="timeout"?"var(--persona-feedback-warning, #ca8a04)":o?.titleColor??"currentColor",d=ie(p,20,c,2);d&&l.appendChild(d);let g=v("div","persona-flex-1 persona-min-w-0"),b=v("div","persona-flex persona-items-center persona-gap-2"),f=v("span","persona-text-sm persona-font-medium persona-text-persona-primary");if(o?.titleColor&&(f.style.color=o.titleColor),f.textContent=o?.title??"Approval Required",b.appendChild(f),!r){let $=v("span","persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded-full persona-text-xs persona-font-medium");$.setAttribute("data-approval-status",n.status),n.status==="approved"?($.style.backgroundColor="var(--persona-palette-colors-success-100, #dcfce7)",$.style.color="var(--persona-palette-colors-success-700, #15803d)",$.textContent="Approved"):n.status==="denied"?($.style.backgroundColor="var(--persona-palette-colors-error-100, #fee2e2)",$.style.color="var(--persona-palette-colors-error-700, #b91c1c)",$.textContent="Denied"):n.status==="timeout"&&($.style.backgroundColor="var(--persona-palette-colors-warning-100, #fef3c7)",$.style.color="var(--persona-palette-colors-warning-700, #b45309)",$.textContent="Timeout"),b.appendChild($)}g.appendChild(b);let C=n.toolType==="webmcp"||n.toolName.startsWith(Zn)?ks(n.toolName):void 0,M=o?.formatDescription?.({toolName:n.toolName,toolType:n.toolType,description:n.description,parameters:n.parameters,...C?{displayTitle:C}:{},...n.reason?{reason:n.reason}:{}}),I=!n.toolName,S=M||(I?n.description:`The assistant wants to use \u201C${C??al(n.toolName)}\u201D.`),E=v("p","persona-text-sm persona-mt-0.5 persona-text-persona-muted");if(E.setAttribute("data-approval-summary","true"),o?.descriptionColor&&(E.style.color=o.descriptionColor),E.textContent=S,g.appendChild(E),n.reason){let $=v("p","persona-text-sm persona-mt-1 persona-text-persona-muted");$.setAttribute("data-approval-reason","true"),o?.reasonColor?$.style.color=o.reasonColor:o?.descriptionColor&&($.style.color=o.descriptionColor);let F=v("span","persona-font-medium");F.textContent=`${o?.reasonLabel??"Agent's stated reason:"} `,$.appendChild(F),$.appendChild(document.createTextNode(n.reason)),g.appendChild($)}let L=o?.detailsDisplay??"collapsed",D=!!n.description&&!I,z=D||!!n.parameters;if(L!=="hidden"&&z){let $=Sm(t.id,e),F=v("button","persona-inline-flex persona-items-center persona-gap-1 persona-mt-1 persona-p-0 persona-border-none persona-bg-transparent persona-text-xs persona-font-medium persona-cursor-pointer persona-text-persona-muted");F.type="button",F.setAttribute("data-expand-header","true"),F.setAttribute("data-bubble-type","approval"),o?.descriptionColor&&(F.style.color=o.descriptionColor);let B=v("span");B.setAttribute("data-approval-details-label","true");let H=v("span","persona-inline-flex persona-items-center");H.setAttribute("data-approval-details-chevron","true"),F.append(B,H),Mm(F,$,e),g.appendChild(F);let w=v("div");if(w.setAttribute("data-approval-details","true"),w.style.display=$?"":"none",D){let N=v("p","persona-text-sm persona-mt-1 persona-text-persona-muted");o?.descriptionColor&&(N.style.color=o.descriptionColor),N.textContent=n.description,w.appendChild(N)}if(n.parameters){let N=v("pre","persona-mt-2 persona-text-xs persona-p-2 persona-rounded persona-overflow-x-auto persona-max-h-32 persona-bg-persona-container persona-text-persona-primary");o?.parameterBackgroundColor&&(N.style.backgroundColor=o.parameterBackgroundColor),o?.parameterTextColor&&(N.style.color=o.parameterTextColor),N.style.fontSize="0.75rem",N.style.lineHeight="1rem",N.textContent=Mo(n.parameters),w.appendChild(N)}g.appendChild(w)}if(r){let $=v("div","persona-flex persona-gap-2 persona-mt-2");$.setAttribute("data-approval-buttons","true");let F=v("button","persona-inline-flex persona-items-center persona-px-3 persona-py-1.5 persona-rounded-md persona-text-xs persona-font-medium persona-border-none persona-cursor-pointer");F.type="button",F.style.backgroundColor=o?.approveButtonColor??"var(--persona-approval-approve-bg, #22c55e)",F.style.color=o?.approveButtonTextColor??"#ffffff",F.setAttribute("data-approval-action","approve");let B=ie("shield-check",14,o?.approveButtonTextColor??"#ffffff",2);B&&(B.style.marginRight="4px",F.appendChild(B));let H=document.createTextNode(o?.approveLabel??"Approve");F.appendChild(H);let w=v("button","persona-inline-flex persona-items-center persona-px-3 persona-py-1.5 persona-rounded-md persona-text-xs persona-font-medium persona-cursor-pointer");w.type="button",w.style.backgroundColor=o?.denyButtonColor??"transparent",w.style.color=o?.denyButtonTextColor??"var(--persona-feedback-error, #dc2626)",w.style.border=`1px solid ${o?.denyButtonTextColor?o.denyButtonTextColor:"var(--persona-palette-colors-error-200, #fca5a5)"}`,w.setAttribute("data-approval-action","deny");let N=ie("shield-x",14,o?.denyButtonTextColor??"var(--persona-feedback-error, #dc2626)",2);N&&(N.style.marginRight="4px",w.appendChild(N));let K=document.createTextNode(o?.denyLabel??"Deny");w.appendChild(K),$.append(F,w),g.appendChild($)}return i.append(l,g),s.appendChild(i),s};Ye();xt();Lc();var gw=()=>({keyHandlers:new Map,popovers:new Map,pendingOrder:[],latestPendingApprovalId:null}),Em=(t,e)=>{let n=t.keyHandlers.get(e);n&&(document.removeEventListener("keydown",n),t.keyHandlers.delete(e));let o=t.popovers.get(e);o&&(o.destroy(),t.popovers.delete(e))},ir=(t,e)=>{Em(t,e);let n=t.pendingOrder.indexOf(e);n!==-1&&t.pendingOrder.splice(n,1),t.latestPendingApprovalId===e&&(t.latestPendingApprovalId=t.pendingOrder.length?t.pendingOrder[t.pendingOrder.length-1]:null)},fw=t=>t?.approval!==!1?t?.approval:void 0,mw=(t,e)=>{let n=e?.detailsDisplay??"collapsed";return sr.get(t)??n==="expanded"},md=t=>{let e=v("span","persona-approval-kbd");return e.textContent=t,e},hw=(t,e)=>{let n=v("span","persona-approval-title");e?.titleColor&&(n.style.color=e.titleColor);let r=t.toolType==="webmcp"||t.toolName.startsWith(Zn)?ks(t.toolName):void 0,s=e?.formatDescription?.({toolName:t.toolName,toolType:t.toolType,description:t.description??"",parameters:t.parameters,...r?{displayTitle:r}:{},...t.reason?{reason:t.reason}:{}});if(s)return n.textContent=s,n;let i=r??al(t.toolName),l=t.toolType&&t.toolType!=="webmcp"?t.toolType:null;n.append("The assistant wants to use ");let p=document.createElement("strong");if(p.textContent=i,n.appendChild(p),l){n.append(" from ");let c=document.createElement("strong");c.textContent=l,n.appendChild(c)}return n},bw=t=>{let e=v("div","persona-approval-resolved"),n=ie("ban",15,"currentColor",2);n&&e.appendChild(n);let o=v("span","persona-approval-resolved-name");return o.textContent=t.toolName?al(t.toolName):"Tool",e.append(o,document.createTextNode(t.status==="timeout"?" timed out":" denied")),e},yw=(t,e,n,o,r,s,i)=>{let l=v("div","persona-approval-card persona-shadow-sm");l.id=`bubble-${e.id}`,l.setAttribute("data-message-id",e.id),l.setAttribute("data-bubble-type","approval"),o?.backgroundColor&&(l.style.background=o.backgroundColor),o?.borderColor&&(l.style.borderColor=o.borderColor),o?.shadow!==void 0&&(l.style.boxShadow=o.shadow.trim()===""?"none":o.shadow);let p=o?.detailsDisplay??"collapsed",c=!!n.description&&p!=="hidden",d=n.parameters!=null&&p!=="hidden",g=c||d,b=g&&mw(e.id,o),f=o?.showDetailsLabel??"Show details",y=o?.hideDetailsLabel??"Hide details",C=v("button","persona-approval-head");C.type="button",g?(C.setAttribute("data-action","toggle-params"),C.setAttribute("aria-expanded",b?"true":"false"),C.setAttribute("aria-label",b?y:f)):C.setAttribute("data-static","true");let M=v("span","persona-approval-logo"),I=ie("shield-check",16,"currentColor",2);I&&M.appendChild(I),C.appendChild(M);let S=hw(n,o);if(g){let F=v("span","persona-approval-toggle");F.setAttribute("aria-hidden","true");let B=ie("chevron-down",14,"currentColor",2);B&&F.appendChild(B),S.append(" "),S.appendChild(F)}C.appendChild(S),l.appendChild(C);let E=v("div","persona-approval-body");if(g){let F=v("div","persona-approval-details");if(F.setAttribute("data-role","params"),F.hidden=!b,c){let B=v("p","persona-approval-desc");o?.descriptionColor&&(B.style.color=o.descriptionColor),B.textContent=n.description,F.appendChild(B)}if(d){let B=v("pre","persona-approval-params");o?.parameterBackgroundColor&&(B.style.background=o.parameterBackgroundColor),o?.parameterTextColor&&(B.style.color=o.parameterTextColor),B.textContent=Mo(n.parameters),F.appendChild(B)}E.appendChild(F)}if(n.reason){let F=v("p","persona-approval-reason");o?.reasonColor?F.style.color=o.reasonColor:o?.descriptionColor&&(F.style.color=o.descriptionColor);let B=v("span","persona-approval-reason-label");B.textContent=`${o?.reasonLabel??"Agent's stated reason:"} `,F.append(B,document.createTextNode(n.reason)),E.appendChild(F)}let L=v("div","persona-approval-actions"),D=null,z=F=>{o?.approveButtonColor&&(F.style.background=o.approveButtonColor),o?.approveButtonTextColor&&(F.style.color=o.approveButtonTextColor)},$=v("button","persona-approval-deny");if($.type="button",$.setAttribute("data-action","deny"),o?.denyButtonColor&&($.style.background=o.denyButtonColor),o?.denyButtonTextColor&&($.style.color=o.denyButtonTextColor),$.append(o?.denyLabel??"Deny"),i){let F=v("div","persona-approval-split"),B=v("button","persona-approval-primary");B.type="button",B.setAttribute("data-action","always"),z(B),B.append(o?.approveLabel??"Always allow",md("\u23CE"));let H=v("button","persona-approval-caret");H.type="button",H.setAttribute("data-action","toggle-menu"),H.setAttribute("aria-label","More options"),z(H);let w=ie("chevron-down",15,"currentColor",2);w&&H.appendChild(w),F.append(B,H),L.append(F,$),$.append(md("Esc"));let N=v("div","persona-approval-menu"),K=v("button","persona-approval-menu-item");K.type="button",K.append("Allow once",md("\u2318\u23CE")),N.appendChild(K),D=wa({anchor:F,content:N,placement:"bottom-start",matchAnchorWidth:!0}),t.popovers.set(e.id,D),K.addEventListener("click",()=>{ir(t,e.id),r()})}else{let F=v("button","persona-approval-primary persona-approval-primary--solo");F.type="button",F.setAttribute("data-action","allow"),z(F),F.append(o?.approveLabel??"Allow"),L.append(F,$)}return E.appendChild(L),l.appendChild(E),l.addEventListener("click",F=>{let B=F.target instanceof Element?F.target.closest("[data-action]"):null;if(!B)return;let H=B.getAttribute("data-action");if(H==="toggle-params"){let w=l.querySelector('[data-role="params"]');if(w){let N=w.hidden;w.hidden=!N,C.setAttribute("aria-expanded",N?"true":"false"),C.setAttribute("aria-label",N?y:f),sr.set(e.id,N)}return}if(H==="toggle-menu"){D?.toggle();return}if(H==="always"){ir(t,e.id),r({remember:!0});return}if(H==="allow"){ir(t,e.id),r();return}if(H==="deny"){ir(t,e.id),s();return}}),l},km=()=>{let t=gw();return{plugin:{id:"persona-built-in-approval",renderApproval:({message:o,approve:r,deny:s,config:i})=>{let l=o?.approval;if(!l)return null;let p=fw(i);if(l.status!=="pending"){if(ir(t,o.id),l.status==="approved"){let g=document.createElement("div");return g.style.display="none",g}return bw(l)}Em(t,o.id);let c=p?.enableAlwaysAllow===!0,d=yw(t,o,l,p,r,s,c);if(c){t.pendingOrder.includes(o.id)||t.pendingOrder.push(o.id),t.latestPendingApprovalId=t.pendingOrder[t.pendingOrder.length-1];let g=b=>{Og(b)||o.id===t.latestPendingApprovalId&&(b.key!=="Escape"&&b.key!=="Enter"||(b.preventDefault(),b.stopImmediatePropagation(),ir(t,o.id),b.key==="Escape"?s():b.metaKey||b.ctrlKey?r():r({remember:!0})))};t.keyHandlers.set(o.id,g),document.addEventListener("keydown",g)}return d}},teardown:()=>{for(let o of[...t.keyHandlers.keys(),...t.popovers.keys()])ir(t,o);t.latestPendingApprovalId=null}}};var di=class{constructor(e=2e3,n=null){this.head=0;this.count=0;this.totalCaptured=0;this.eventTypesSet=new Set;this.maxSize=e,this.buffer=new Array(e),this.store=n}push(e){this.buffer[this.head]=e,this.head=(this.head+1)%this.maxSize,this.count<this.maxSize&&this.count++,this.totalCaptured++,this.eventTypesSet.add(e.type),this.store?.put(e)}getAll(){return this.count===0?[]:this.count<this.maxSize?this.buffer.slice(0,this.count):[...this.buffer.slice(this.head,this.maxSize),...this.buffer.slice(0,this.head)]}async restore(){if(!this.store)return 0;let e=await this.store.getAll();if(e.length===0)return 0;let n=e.length>this.maxSize?e.slice(e.length-this.maxSize):e;for(let o of n)this.buffer[this.head]=o,this.head=(this.head+1)%this.maxSize,this.count<this.maxSize&&this.count++,this.eventTypesSet.add(o.type);return this.totalCaptured=e.length,n.length}getAllFromStore(){return this.store?this.store.getAll():Promise.resolve(this.getAll())}getRecent(e){let n=this.getAll();return e>=n.length?n:n.slice(n.length-e)}getSize(){return this.count}getTotalCaptured(){return this.totalCaptured}getEvictedCount(){return this.totalCaptured-this.count}clear(){this.buffer=new Array(this.maxSize),this.head=0,this.count=0,this.totalCaptured=0,this.eventTypesSet.clear(),this.store?.clear()}destroy(){this.buffer=[],this.head=0,this.count=0,this.totalCaptured=0,this.eventTypesSet.clear(),this.store?.destroy()}getEventTypes(){return Array.from(this.eventTypesSet)}};var pi=class{constructor(e="persona-event-stream",n="events"){this.db=null;this.pendingWrites=[];this.flushScheduled=!1;this.isDestroyed=!1;this.dbName=e,this.storeName=n}open(){return new Promise((e,n)=>{try{let o=indexedDB.open(this.dbName,1);o.onupgradeneeded=()=>{let r=o.result;r.objectStoreNames.contains(this.storeName)||r.createObjectStore(this.storeName,{keyPath:"id"}).createIndex("timestamp","timestamp",{unique:!1})},o.onsuccess=()=>{this.db=o.result,e()},o.onerror=()=>{n(o.error)}}catch(o){n(o)}})}put(e){!this.db||this.isDestroyed||(this.pendingWrites.push(e),this.flushScheduled||(this.flushScheduled=!0,queueMicrotask(()=>this.flushWrites())))}putBatch(e){if(!(!this.db||this.isDestroyed||e.length===0))try{let o=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName);for(let r of e)o.put(r)}catch{}}getAll(){return new Promise((e,n)=>{if(!this.db){e([]);return}try{let i=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).index("timestamp").getAll();i.onsuccess=()=>{e(i.result)},i.onerror=()=>{n(i.error)}}catch(o){n(o)}})}getCount(){return new Promise((e,n)=>{if(!this.db){e(0);return}try{let s=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).count();s.onsuccess=()=>{e(s.result)},s.onerror=()=>{n(s.error)}}catch(o){n(o)}})}clear(){return new Promise((e,n)=>{if(!this.db){e();return}this.pendingWrites=[];try{let s=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).clear();s.onsuccess=()=>{e()},s.onerror=()=>{n(s.error)}}catch(o){n(o)}})}close(){this.db&&(this.db.close(),this.db=null)}destroy(){return this.isDestroyed=!0,this.pendingWrites=[],this.close(),new Promise((e,n)=>{try{let o=indexedDB.deleteDatabase(this.dbName);o.onsuccess=()=>{e()},o.onerror=()=>{n(o.error)}}catch(o){n(o)}})}flushWrites(){if(this.flushScheduled=!1,!this.db||this.isDestroyed||this.pendingWrites.length===0)return;let e=this.pendingWrites;this.pendingWrites=[];try{let o=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName);for(let r of e)o.put(r)}catch{}}};var vw=new Set(["flow_start","flow_run_start","agent_start","dispatch_start","run_start"]),xw=new Set(["step_start","execution_start"]),ww=new Set(["step_delta","step_chunk","chunk","agent_turn_delta"]),Cw=new Set(["step_complete","agent_turn_complete"]),Aw=new Set(["flow_complete","agent_complete"]),Lm=new Set(["step_error","flow_error","agent_error","dispatch_error","error"]),Im=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),gn=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,ar=(t,e)=>{let n=t[e];return Im(n)?n:void 0};function hd(t){return t>0?Math.max(1,Math.ceil(t/4)):0}function cl(t,e){if(!(t<=0||e===void 0||e<250))return t/(e/1e3)}function Sw(t,e){return typeof e.type=="string"?e.type:t}function Mw(t){return typeof t.text=="string"?t.text:typeof t.delta=="string"?t.delta:typeof t.content=="string"?t.content:typeof t.chunk=="string"?t.chunk:""}function Tw(t,e){return t==="step_delta"||t==="step_chunk"?e.stepType!=="tool"&&e.executionType!=="context":t!=="agent_turn_delta"?!0:(typeof e.contentType=="string"?e.contentType:typeof e.content_type=="string"?e.content_type:void 0)==="text"}function Pm(t){let e=ar(t,"result"),n=[ar(t,"tokens"),ar(t,"totalTokens"),e?ar(e,"tokens"):void 0,ar(t,"usage"),e?ar(e,"usage"):void 0];for(let o of n){if(!o)continue;let r=gn(o.output)??gn(o.outputTokens)??gn(o.completionTokens);if(r!==void 0)return r}return gn(t.outputTokens)??gn(t.completionTokens)??(e?gn(e.outputTokens)??gn(e.completionTokens):void 0)}function Ew(t){let e=ar(t,"result");return gn(t.executionTime)??gn(t.executionTimeMs)??gn(t.execution_time)??gn(t.duration)??(e?gn(e.executionTime)??gn(e.executionTimeMs):void 0)}function kw(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var ui=class{constructor(e=kw){this.metric={status:"idle"};this.run=null;this.now=e}getMetric(){let e=this.run;if(e&&this.metric.status==="running"&&e.firstDeltaAt!==void 0&&this.metric.outputTokens!==void 0){let n=this.now()-e.firstDeltaAt;return{...this.metric,durationMs:n,tokensPerSecond:cl(this.metric.outputTokens,n)}}return this.metric}reset(){this.run=null,this.metric={status:"idle"}}startRun(e){this.run={startedAt:e,visibleCharCount:0,exactOutputTokens:0},this.metric={status:"running"}}processEvent(e,n){if(!Im(n)){Lm.has(e)&&this.run&&(this.run=null,this.metric={status:"error"});return}let o=Sw(e,n),r=this.now();if(vw.has(o)){this.startRun(r);return}if(xw.has(o)){this.run||this.startRun(r);return}if(ww.has(o)){if(!Tw(o,n))return;let s=Mw(n);if(!s)return;this.run||this.startRun(r);let i=this.run;i.firstDeltaAt??(i.firstDeltaAt=r),i.visibleCharCount+=s.length;let l=i.exactOutputTokens+hd(i.visibleCharCount),p=r-i.firstDeltaAt;this.metric={status:"running",tokensPerSecond:cl(l,p),outputTokens:l,durationMs:p,source:i.exactOutputTokens>0?"usage":"estimate"};return}if(Cw.has(o)){if(!this.run)return;let s=this.run,i=Pm(n);i!==void 0&&(s.exactOutputTokens+=i,s.visibleCharCount=0);let l=s.exactOutputTokens>0,p=s.exactOutputTokens+hd(s.visibleCharCount),c=this.resolveDuration(s,n,r);this.metric={status:"running",tokensPerSecond:cl(p,c),outputTokens:p,durationMs:c,source:l?"usage":"estimate"};return}if(Aw.has(o)){if(!this.run)return;let s=this.run,i=Pm(n),l=i??s.exactOutputTokens+hd(s.visibleCharCount),p=i!==void 0||s.exactOutputTokens>0?"usage":"estimate",c=this.resolveDuration(s,n,r);this.metric={status:"complete",tokensPerSecond:cl(l,c),outputTokens:l,durationMs:c,source:p},this.run=null;return}if(Lm.has(o)){if(!this.run)return;this.run=null,this.metric={status:"error"}}}resolveDuration(e,n,o){let r=e.firstDeltaAt!==void 0?o-e.firstDeltaAt:void 0;return r!==void 0&&r>=250?r:Ew(n)??o-e.startedAt}};Ye();xt();function Yr(t,e){e&&e.split(/\s+/).forEach(n=>n&&t.classList.add(n))}var Lw={flow_:{bg:"var(--persona-palette-colors-success-100, #dcfce7)",text:"var(--persona-palette-colors-success-700, #166534)"},step_:{bg:"var(--persona-palette-colors-primary-100, #f5f5f5)",text:"var(--persona-palette-colors-primary-700, #0a0a0a)"},reason_:{bg:"var(--persona-palette-colors-warning-100, #ffedd5)",text:"var(--persona-palette-colors-warning-700, #9a3412)"},tool_:{bg:"var(--persona-palette-colors-purple-100, #f3e8ff)",text:"var(--persona-palette-colors-purple-700, #6b21a8)"},agent_:{bg:"var(--persona-palette-colors-teal-100, #ccfbf1)",text:"var(--persona-palette-colors-teal-700, #115e59)"},error:{bg:"var(--persona-palette-colors-error-100, #fecaca)",text:"var(--persona-palette-colors-error-700, #991b1b)"}},Pw={bg:"var(--persona-palette-colors-gray-100, #f3f4f6)",text:"var(--persona-palette-colors-gray-600, #4b5563)"},Iw=["flowName","stepName","reasoningText","text","name","tool","toolName"],Rw=100;function Ww(t,e){let n={...Lw,...e};if(n[t])return n[t];for(let o of Object.keys(n))if(o.endsWith("_")&&t.startsWith(o))return n[o];return Pw}function Hw(t,e){return`+${((t-e)/1e3).toFixed(3)}s`}function Bw(t){let e=new Date(t),n=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),r=String(e.getSeconds()).padStart(2,"0"),s=String(e.getMilliseconds()).padStart(3,"0");return`${n}:${o}:${r}.${s}`}function Dw(t,e){try{let n=JSON.parse(t);if(typeof n!="object"||n===null)return null;for(let o of e){let r=o.split("."),s=n;for(let i of r)if(s&&typeof s=="object"&&s!==null)s=s[i];else{s=void 0;break}if(typeof s=="string"&&s.trim())return s.trim()}}catch{}return null}function Ow(t){return navigator.clipboard?.writeText?navigator.clipboard.writeText(t):new Promise(e=>{let n=document.createElement("textarea");n.value=t,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n),e()})}function Nw(t){let e;try{e=JSON.parse(t.payload)}catch{e=t.payload}return JSON.stringify({type:t.type,timestamp:new Date(t.timestamp).toISOString(),payload:e},null,2)}function Fw(t){return t.tokensPerSecond===void 0||!Number.isFinite(t.tokensPerSecond)?"-- tok/s":`${t.tokensPerSecond.toFixed(1)} tok/s`}function _w(t){let e=[];return t.outputTokens!==void 0&&e.push(`${t.outputTokens.toLocaleString()} tok`),t.durationMs!==void 0&&e.push(`${(t.durationMs/1e3).toFixed(2)}s`),t.source&&e.push(t.source),e.join(" \xB7 ")}function $w(t,e,n){let o,r;try{r=JSON.parse(t.payload),o=JSON.stringify(r,null,2)}catch{r=t.payload,o=t.payload}let s=e.find(l=>l.renderEventStreamPayload);if(s?.renderEventStreamPayload&&n){let l=s.renderEventStreamPayload({event:t,config:n,defaultRenderer:()=>i(),parsedPayload:r});if(l)return l}return i();function i(){let l=v("div","persona-bg-persona-container persona-border-t persona-border-persona-divider persona-px-3 persona-py-2 persona-ml-4 persona-mr-3 persona-mb-1 persona-rounded-b persona-overflow-auto persona-max-h-[300px]"),p=v("pre","persona-m-0 persona-whitespace-pre-wrap persona-break-all persona-text-[11px] persona-text-persona-secondary persona-font-mono");return p.textContent=o,l.appendChild(p),l}}function bd(t,e,n,o,r,s,i,l){let p=r.has(t.id),c=v("div","persona-border-b persona-border-persona-divider persona-text-xs");Yr(c,o.classNames?.eventRow);let d=i.find(b=>b.renderEventStreamRow);if(d?.renderEventStreamRow&&l){let b=d.renderEventStreamRow({event:t,index:e,config:l,defaultRenderer:()=>g(),isExpanded:p,onToggleExpand:()=>s(t.id)});if(b)return c.appendChild(b),c}return c.appendChild(g()),c;function g(){let b=v("div",""),f=v("div","persona-flex persona-items-center persona-gap-2 persona-px-3 persona-py-3 hover:persona-bg-persona-container persona-cursor-pointer persona-group");f.setAttribute("data-event-id",t.id);let y=v("span","persona-flex-shrink-0 persona-text-persona-muted persona-w-4 persona-text-center persona-flex persona-items-center persona-justify-center"),C=ie(p?"chevron-down":"chevron-right","14px","currentColor",2);C&&y.appendChild(C);let M=v("span","persona-text-[11px] persona-text-persona-muted persona-whitespace-nowrap persona-flex-shrink-0 persona-font-mono persona-w-[70px]"),I=o.timestampFormat??"relative";M.textContent=I==="relative"?Hw(t.timestamp,n):Bw(t.timestamp);let S=null;o.showSequenceNumbers!==!1&&(S=v("span","persona-text-[11px] persona-text-persona-muted persona-font-mono persona-flex-shrink-0 persona-w-[28px] persona-text-right"),S.textContent=String(e+1));let E=Ww(t.type,o.badgeColors),L=v("span","persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded persona-text-[11px] persona-font-mono persona-font-medium persona-whitespace-nowrap persona-flex-shrink-0 persona-border");L.style.backgroundColor=E.bg,L.style.color=E.text,L.style.borderColor=E.text+"50",L.textContent=t.type;let D=o.descriptionFields??Iw,z=Dw(t.payload,D),$=null;z&&($=v("span","persona-text-[11px] persona-text-persona-secondary persona-truncate persona-min-w-0"),$.textContent=z);let F=v("div","persona-flex-1 persona-min-w-0"),B=v("button","persona-text-persona-muted hover:persona-text-persona-primary persona-cursor-pointer persona-flex-shrink-0 persona-border-none persona-bg-transparent persona-p-0"),H=ie("clipboard","12px","currentColor",1.5);return H&&B.appendChild(H),B.addEventListener("click",async w=>{w.stopPropagation(),await Ow(Nw(t)),B.innerHTML="";let N=ie("check","12px","currentColor",1.5);N&&B.appendChild(N),setTimeout(()=>{B.innerHTML="";let K=ie("clipboard","12px","currentColor",1.5);K&&B.appendChild(K)},1500)}),f.appendChild(y),f.appendChild(M),S&&f.appendChild(S),f.appendChild(L),$&&f.appendChild($),f.appendChild(F),f.appendChild(B),b.appendChild(f),p&&b.appendChild($w(t,i,l)),b}}function Rm(t){let{buffer:e,getFullHistory:n,onClose:o,config:r,plugins:s=[],getThroughput:i}=t,l=r?.features?.scrollToBottom,p=l?.enabled!==!1,c=l?.iconName??"arrow-down",d=l?.label??"",g=r?.features?.eventStream??{},b=s.find(y=>y.renderEventStreamView);if(b?.renderEventStreamView&&r){let y=b.renderEventStreamView({config:r,events:e.getAll(),defaultRenderer:()=>f().element,onClose:o});if(y)return{element:y,update:()=>{},destroy:()=>{}}}return f();function f(){let y=g.classNames,C=v("div","persona-event-stream-view persona-flex persona-flex-col persona-flex-1 persona-min-h-0");Yr(C,y?.panel);let M=[],I="",S="",E=null,L=[],D={},z=0,$=$a(),F=0,B=0,H=!1,w=null,N=!1,K=0,te=new Set,Q=new Map,se="",J="",oe=null,Y,pe,ne,me,ve=null,be=null,Te=null;function ze(){let q=v("div","persona-event-toolbar persona-relative persona-flex persona-flex-col persona-flex-shrink-0"),ee=v("div","persona-flex persona-items-center persona-gap-2 persona-px-4 persona-py-3 persona-pb-0 persona-border-persona-divider persona-bg-persona-surface persona-overflow-hidden");if(Yr(ee,y?.headerBar),i){be=v("div","persona-relative persona-flex persona-items-center persona-gap-1.5 persona-whitespace-nowrap"),be.style.cursor="help",ve=v("span","persona-text-[11px] persona-font-mono persona-bg-persona-container persona-text-persona-muted persona-px-2 persona-py-0.5 persona-rounded persona-border persona-border-persona-border persona-tabular-nums"),ve.textContent="-- tok/s",Te=v("div","persona-absolute persona-z-50 persona-whitespace-nowrap persona-rounded persona-border persona-border-persona-border persona-bg-persona-container persona-text-persona-primary persona-text-[11px] persona-font-mono persona-px-2 persona-py-1 persona-shadow"),Te.style.display="none",Te.style.pointerEvents="none";let Mt=be,fn=Te,bi=()=>{if(!fn.textContent)return;let mn=Mt.getBoundingClientRect(),ct=q.getBoundingClientRect();fn.style.left=`${mn.left-ct.left}px`,fn.style.top=`${mn.bottom-ct.top+4}px`,fn.style.display="block"},le=()=>{fn.style.display="none"};be.addEventListener("mouseenter",bi),be.addEventListener("mouseleave",le),be.appendChild(ve)}let ge=v("div","persona-flex-1");Y=v("select","persona-text-xs persona-bg-persona-surface persona-border persona-border-persona-border persona-rounded persona-px-2.5 persona-py-1 persona-text-persona-primary persona-cursor-pointer");let qe=v("option","");qe.value="",qe.textContent="All events (0)",Y.appendChild(qe),pe=v("button","persona-inline-flex persona-items-center persona-gap-1.5 persona-rounded persona-text-xs persona-text-persona-muted hover:persona-bg-persona-container hover:persona-text-persona-primary persona-cursor-pointer persona-border persona-border-persona-border persona-bg-persona-surface persona-flex-shrink-0 persona-px-2.5 persona-py-1"),pe.type="button",pe.title="Copy All";let Ie=ie("clipboard-copy","12px","currentColor",1.5);Ie&&pe.appendChild(Ie);let Ke=v("span","persona-event-copy-all persona-text-xs");Ke.textContent="Copy All",pe.appendChild(Ke),be&&ee.appendChild(be),ee.appendChild(ge),ee.appendChild(Y),ee.appendChild(pe);let je=v("div","persona-relative persona-px-4 persona-py-2.5 persona-border-b persona-border-persona-divider persona-bg-persona-surface");Yr(je,y?.searchBar);let He=ie("search","14px","var(--persona-muted, #9ca3af)",1.5),Se=v("span","persona-absolute persona-left-6 persona-top-1/2 persona--translate-y-1/2 persona-pointer-events-none persona-flex persona-items-center");He&&Se.appendChild(He),ne=v("input","persona-text-sm persona-bg-persona-surface persona-border persona-border-persona-border persona-rounded-md persona-pl-8 persona-pr-3 persona-py-1 persona-w-full persona-text-persona-primary"),Yr(ne,y?.searchInput),ne.type="text",ne.placeholder="Search event payloads...",me=v("button","persona-absolute persona-right-5 persona-top-1/2 persona--translate-y-1/2 persona-text-persona-muted hover:persona-text-persona-primary persona-cursor-pointer persona-border-none persona-bg-transparent persona-p-0 persona-leading-none"),me.type="button",me.style.display="none";let rt=ie("x","12px","currentColor",2);return rt&&me.appendChild(rt),je.appendChild(Se),je.appendChild(ne),je.appendChild(me),q.appendChild(ee),q.appendChild(je),Te&&q.appendChild(Te),q}let Oe,Ne=s.find(q=>q.renderEventStreamToolbar);Ne?.renderEventStreamToolbar&&r?Oe=Ne.renderEventStreamToolbar({config:r,defaultRenderer:()=>ze(),eventCount:e.getSize(),filteredCount:0,onFilterChange:ee=>{I=ee,Pe(),ke()},onSearchChange:ee=>{S=ee,Pe(),ke()}})??ze():Oe=ze();let Be=v("div","persona-text-xs persona-text-persona-muted persona-text-center persona-py-0.5 persona-px-4 persona-bg-persona-container persona-border-b persona-border-persona-divider persona-italic persona-flex-shrink-0");Be.style.display="none";function Ue(){if(!i||!ve||!be)return;let q=i(),ee=Fw(q);ve.textContent=ee;let ge=_w(q);Te&&(Te.textContent=ge,ge||(Te.style.display="none")),be.setAttribute("aria-label",ge?`Throughput: ${ee}, ${ge}`:`Throughput: ${ee}`)}let Me=v("div","persona-flex-1 persona-min-h-0 persona-relative"),Ee=v("div","persona-event-stream-list persona-overflow-y-auto persona-min-h-0");Ee.style.height="100%";let Ve=v("div","persona-scroll-to-bottom-indicator persona-absolute persona-bottom-3 persona-left-1/2 persona-transform persona--translate-x-1/2 persona-cursor-pointer persona-z-10 persona-text-xs");Yr(Ve,y?.scrollIndicator),Ve.style.display="none",Ve.setAttribute("data-persona-scroll-to-bottom-has-label",d?"true":"false");let Jt=ie(c,"14px","currentColor",2);Jt&&Ve.appendChild(Jt);let bt=v("span","");bt.textContent=d,Ve.appendChild(bt);let Nt=v("div","persona-flex persona-items-center persona-justify-center persona-h-full persona-text-sm persona-text-persona-muted");Nt.style.display="none",Me.appendChild(Ee),Me.appendChild(Nt),Me.appendChild(Ve),C.setAttribute("tabindex","0"),C.appendChild(Oe),C.appendChild(Be),C.appendChild(Me);function Mn(){let q=e.getAll(),ee={};for(let je of q)ee[je.type]=(ee[je.type]||0)+1;let ge=Object.keys(ee).sort(),qe=ge.length!==L.length||!ge.every((je,He)=>je===L[He]),fe=!qe&&ge.some(je=>ee[je]!==D[je]),Ie=q.length!==Object.values(D).reduce((je,He)=>je+He,0);if(!qe&&!fe&&!Ie||(L=ge,D=ee,!Y))return;let Ke=Y.value;if(Y.options[0].textContent=`All events (${q.length})`,qe){for(;Y.options.length>1;)Y.remove(1);for(let je of ge){let He=v("option","");He.value=je,He.textContent=`${je} (${ee[je]||0})`,Y.appendChild(He)}Ke&&ge.includes(Ke)?Y.value=Ke:Ke&&(Y.value="",I="")}else for(let je=1;je<Y.options.length;je++){let He=Y.options[je];He.textContent=`${He.value} (${ee[He.value]||0})`}}function Tn(){let q=e.getAll();if(I&&(q=q.filter(ee=>ee.type===I)),S){let ee=S.toLowerCase();q=q.filter(ge=>ge.type.toLowerCase().includes(ee)||ge.payload.toLowerCase().includes(ee))}return q}function nt(){return I!==""||S!==""}function Pe(){z=0,F=0,$.resume(),Ve.style.display="none"}function xe(q){te.has(q)?te.delete(q):te.add(q),oe=q;let ee=Ee.scrollTop,ge=$.isFollowing();N=!0,$.pause(),ke(),Ee.scrollTop=ee,ge&&$.resume(),N=!1}function ot(){return ro(Ee,50)}function ke(){B=Date.now(),H=!1,Ue(),Mn();let q=e.getEvictedCount();q>0?(Be.textContent=`${q.toLocaleString()} older events truncated`,Be.style.display=""):Be.style.display="none",M=Tn();let ee=M.length,ge=e.getSize()>0;ee===0&&ge&&nt()?(Nt.textContent=S?`No events matching '${S}'`:"No events matching filter",Nt.style.display="",Ee.style.display="none"):(Nt.style.display="none",Ee.style.display=""),pe&&(pe.title=nt()?`Copy Filtered (${ee})`:"Copy All"),p&&!$.isFollowing()&&ee>z&&(F+=ee-z,bt.textContent=d?`${d}${F>0?` (${F})`:""}`:"",Ve.style.display=""),z=ee;let qe=e.getAll(),fe=qe.length>0?qe[0].timestamp:0,Ie=new Set(M.map(He=>He.id));for(let He of te)Ie.has(He)||te.delete(He);let Ke=I!==se||S!==J,je=Q.size===0&&M.length>0;if(Ke||je||M.length===0){Ee.innerHTML="",Q.clear();let He=document.createDocumentFragment();for(let Se=0;Se<M.length;Se++){let rt=bd(M[Se],Se,fe,g,te,xe,s,r);Q.set(M[Se].id,rt),He.appendChild(rt)}Ee.appendChild(He),se=I,J=S,oe=null}else{if(oe!==null){let Se=Q.get(oe);if(Se&&Se.parentNode===Ee){let rt=M.findIndex(Mt=>Mt.id===oe);if(rt>=0){let Mt=bd(M[rt],rt,fe,g,te,xe,s,r);Ee.insertBefore(Mt,Se),Se.remove(),Q.set(oe,Mt)}}oe=null}let He=new Set(M.map(Se=>Se.id));for(let[Se,rt]of Q)He.has(Se)||(rt.remove(),Q.delete(Se));for(let Se=0;Se<M.length;Se++){let rt=M[Se];if(!Q.has(rt.id)){let Mt=bd(rt,Se,fe,g,te,xe,s,r);Q.set(rt.id,Mt),Ee.appendChild(Mt)}}}$.isFollowing()&&(Ee.scrollTop=Ee.scrollHeight)}function Ce(){if(Date.now()-B>=Rw){w!==null&&(cancelAnimationFrame(w),w=null),ke();return}H||(H=!0,w=requestAnimationFrame(()=>{w=null,ke()}))}let ce=(q,ee)=>{if(!pe)return;pe.innerHTML="";let ge=ie(q,"12px","currentColor",1.5);ge&&pe.appendChild(ge);let qe=v("span","persona-text-xs");qe.textContent="Copy All",pe.appendChild(qe),setTimeout(()=>{pe.innerHTML="";let fe=ie("clipboard-copy","12px","currentColor",1.5);fe&&pe.appendChild(fe);let Ie=v("span","persona-text-xs");Ie.textContent="Copy All",pe.appendChild(Ie),pe.disabled=!1},ee)},Ae=async()=>{if(pe){pe.disabled=!0;try{let q;nt()?q=M:n?(q=await n(),q.length===0&&(q=e.getAll())):q=e.getAll();let ee=q.map(ge=>{try{return JSON.parse(ge.payload)}catch{return ge.payload}});await navigator.clipboard.writeText(JSON.stringify(ee,null,2)),ce("check",1500)}catch{ce("x",1500)}}},En=()=>{Y&&(I=Y.value,Pe(),ke())},ae=()=>{!ne||!me||(me.style.display=ne.value?"":"none",E&&clearTimeout(E),E=setTimeout(()=>{S=ne.value,Pe(),ke()},150))},k=()=>{!ne||!me||(ne.value="",S="",me.style.display="none",E&&clearTimeout(E),Pe(),ke())},W=()=>{if(N)return;let q=Ee.scrollTop,{action:ee,nextLastScrollTop:ge}=za({following:$.isFollowing(),currentScrollTop:q,lastScrollTop:K,nearBottom:ot(),userScrollThreshold:1,resumeRequiresDownwardScroll:!0});K=ge,ee==="resume"?($.resume(),F=0,Ve.style.display="none"):ee==="pause"&&($.pause(),p&&(bt.textContent=d,Ve.style.display=""))},h=q=>{let ee=Ua({following:$.isFollowing(),deltaY:q.deltaY,nearBottom:ot(),resumeWhenNearBottom:!0});ee==="pause"?($.pause(),p&&(bt.textContent=d,Ve.style.display="")):ee==="resume"&&($.resume(),F=0,Ve.style.display="none")},O=()=>{p&&(Ee.scrollTop=Ee.scrollHeight,$.resume(),F=0,Ve.style.display="none")},R=q=>{let ee=q.target;if(!ee||ee.closest("button"))return;let ge=ee.closest("[data-event-id]");if(!ge)return;let qe=ge.getAttribute("data-event-id");qe&&xe(qe)},_=q=>{if((q.metaKey||q.ctrlKey)&&q.key==="f"){q.preventDefault(),ne?.focus(),ne?.select();return}q.key==="Escape"&&(ne&&document.activeElement===ne?(k(),ne.blur(),C.focus()):o&&o())};pe&&pe.addEventListener("click",Ae),Y&&Y.addEventListener("change",En),ne&&ne.addEventListener("input",ae),me&&me.addEventListener("click",k),Ee.addEventListener("scroll",W),Ee.addEventListener("wheel",h,{passive:!0}),Ee.addEventListener("click",R),Ve.addEventListener("click",O),C.addEventListener("keydown",_);function Z(){E&&clearTimeout(E),w!==null&&(cancelAnimationFrame(w),w=null),H=!1,Q.clear(),pe&&pe.removeEventListener("click",Ae),Y&&Y.removeEventListener("change",En),ne&&ne.removeEventListener("input",ae),me&&me.removeEventListener("click",k),Ee.removeEventListener("scroll",W),Ee.removeEventListener("wheel",h),Ee.removeEventListener("click",R),Ve.removeEventListener("click",O),C.removeEventListener("keydown",_)}return{element:C,update:Ce,destroy:Z}}}Ye();xt();function Wm(t,e){let n=e.orientation??"horizontal",o=n==="vertical"?"ArrowUp":"ArrowLeft",r=n==="vertical"?"ArrowDown":"ArrowRight";t.setAttribute("role","tablist");let s=[],i=!1,l=g=>{typeof g.scrollIntoView=="function"&&g.scrollIntoView({block:"nearest",inline:"nearest"})},p=g=>{let b=g;return s.findIndex(f=>f===b||f.contains(b))},c=g=>{let b=p(g.target);if(b<0)return;let f=b;if(g.key===r)f=Math.min(b+1,s.length-1);else if(g.key===o)f=Math.max(b-1,0);else if(g.key==="Home")f=0;else if(g.key==="End")f=s.length-1;else return;g.preventDefault(),f!==b&&e.onSelect(f)},d=g=>{let b=p(g.target);b>=0&&l(s[b])};return t.addEventListener("keydown",c),t.addEventListener("focusin",d),{beforeRender(){i=typeof document<"u"&&t.contains(document.activeElement)},render(g,b){if(s=g,g.forEach((f,y)=>{f.setAttribute("role","tab");let C=y===b;f.setAttribute("aria-selected",C?"true":"false"),f.tabIndex=C||b<0&&y===0?0:-1}),i){let f=(b>=0?g[b]:void 0)??g[0];f&&typeof f.focus=="function"&&(l(f),f.focus())}},destroy(){t.removeEventListener("keydown",c),t.removeEventListener("focusin",d)}}}function Hm(t,e){let n=t.features?.artifacts?.layout,r=(n?.toolbarPreset??"default")==="document",s=n?.toolbarTitle??"Artifacts",i=n?.closeButtonLabel??"Close",l=n?.panePadding?.trim(),p=n?.tabFadeSize?.trim(),c=ae=>({start:ae===!1?!1:typeof ae=="object"&&ae?ae.start!==!1:!0,end:ae===!1?!1:typeof ae=="object"&&ae?ae.end!==!1:!0}),{start:d,end:g}=c(n?.tabFade),b=typeof document<"u"?v("div","persona-artifact-backdrop persona-fixed persona-inset-0 persona-z-[55] persona-bg-black/30 persona-hidden md:persona-hidden"):null,f=()=>{b?.classList.add("persona-hidden"),y.classList.remove("persona-artifact-drawer-open"),N?.hide()};b&&b.addEventListener("click",()=>{f(),e.onDismiss?.()});let y=v("aside","persona-artifact-pane persona-flex persona-flex-col persona-min-h-0 persona-min-w-0 persona-bg-persona-surface persona-text-persona-primary persona-border-l persona-border-persona-border");y.setAttribute("data-persona-theme-zone","artifact-pane"),r&&y.classList.add("persona-artifact-pane-document");let C=v("div","persona-artifact-toolbar persona-flex persona-items-center persona-justify-between persona-gap-2 persona-px-2 persona-py-2 persona-border-b persona-border-persona-border persona-shrink-0");C.setAttribute("data-persona-theme-zone","artifact-toolbar"),r&&C.classList.add("persona-artifact-toolbar-document");let M=v("span","persona-text-xs persona-font-medium persona-truncate");M.textContent=s;let I=Dt({icon:"x",label:i});I.addEventListener("click",()=>{f(),e.onDismiss?.()});let S="rendered",E=Da({items:[{id:"rendered",icon:"eye",label:"Rendered view",className:r?"persona-artifact-doc-icon-btn persona-artifact-view-btn":void 0},{id:"source",icon:"code-xml",label:"Source",className:r?"persona-artifact-doc-icon-btn persona-artifact-code-btn":void 0}],selectedId:"rendered",className:"persona-artifact-toggle-group persona-shrink-0",onSelect:ae=>{S=ae==="source"?"source":"rendered",ce()}}),L=v("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0"),D=n?.documentToolbarShowCopyLabel===!0,z=n?.documentToolbarShowCopyChevron===!0,$=n?.documentToolbarCopyMenuItems,F=!!(z&&$&&$.length>0),B=null,H,w=null,N=null;if(r&&(D||z)&&!F){if(H=D?nr({icon:"copy",label:"Copy",iconSize:14,className:"persona-artifact-doc-copy-btn"}):Dt({icon:"copy",label:"Copy",className:"persona-artifact-doc-copy-btn"}),z){let ae=ie("chevron-down",14,"currentColor",2);ae&&H.appendChild(ae)}}else r&&F?(B=v("div","persona-relative persona-inline-flex persona-items-center persona-gap-0 persona-rounded-md"),H=D?nr({icon:"copy",label:"Copy",iconSize:14,className:"persona-artifact-doc-copy-btn"}):Dt({icon:"copy",label:"Copy",className:"persona-artifact-doc-copy-btn"}),w=Dt({icon:"chevron-down",label:"More copy options",size:14,className:"persona-artifact-doc-copy-menu-chevron persona-artifact-doc-icon-btn",aria:{"aria-haspopup":"true","aria-expanded":"false"}}),B.append(H,w)):r?H=Dt({icon:"copy",label:"Copy",className:"persona-artifact-doc-icon-btn"}):(H=Dt({icon:"copy",label:"Copy"}),n?.showCopyButton!==!0&&H.classList.add("persona-hidden"));let K=r?Dt({icon:"refresh-cw",label:"Refresh",className:"persona-artifact-doc-icon-btn"}):Dt({icon:"refresh-cw",label:"Refresh"}),te=r?Dt({icon:"x",label:i,className:"persona-artifact-doc-icon-btn"}):Dt({icon:"x",label:i}),Q=Dt({icon:"maximize",label:"Expand artifacts panel",className:"persona-artifact-expand-btn"+(r?" persona-artifact-doc-icon-btn":""),onClick:()=>e.onToggleExpand?.()});n?.showExpandToggle!==!0&&Q.classList.add("persona-hidden");let se=v("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0 persona-artifact-toolbar-custom-actions"),J=t.features?.artifacts?.toolbarActions??[],oe=()=>{let ae=Me.find(O=>O.id===Ee)??Me[Me.length-1],k=ae?.id??null,W=ae?.artifactType==="markdown"?ae.markdown??"":"",h=ae?JSON.stringify({component:ae.component,props:ae.props},null,2):"";return{markdown:W,jsonPayload:h,id:k}},Y=async()=>{let ae=Me.find(k=>k.id===Ee)??Me[Me.length-1];try{await navigator.clipboard.writeText(Js(ae))}catch{}};if(H.addEventListener("click",async()=>{let ae=n?.onDocumentToolbarCopyMenuSelect;if(ae&&F){let{markdown:k,jsonPayload:W,id:h}=oe();try{await ae({actionId:"primary",artifactId:h,markdown:k,jsonPayload:W})}catch{}return}await Y()}),w&&$?.length){let ae=()=>y.closest("[data-persona-root]")??document.body,k=()=>{N=jr({items:$.map(W=>({id:W.id,label:W.label})),onSelect:async W=>{let{markdown:h,jsonPayload:O,id:R}=oe(),_=n?.onDocumentToolbarCopyMenuSelect;try{_?await _({actionId:W,artifactId:R,markdown:h,jsonPayload:O}):W==="markdown"||W==="md"?await navigator.clipboard.writeText(h):W==="json"||W==="source"?await navigator.clipboard.writeText(O):await navigator.clipboard.writeText(h||O)}catch{}},anchor:B??w,position:"bottom-right",portal:ae()})};y.isConnected?k():requestAnimationFrame(k),w.addEventListener("click",W=>{W.stopPropagation(),N?.toggle()})}K.addEventListener("click",async()=>{try{await n?.onDocumentToolbarRefresh?.()}catch{}ce()}),te.addEventListener("click",()=>{f(),e.onDismiss?.()});let pe=v("span","persona-min-w-0 persona-flex-1 persona-text-xs persona-font-medium persona-text-persona-primary persona-truncate persona-text-center md:persona-text-left");if(r)C.replaceChildren(),B?L.append(B,K,te):L.append(H,K,te),L.insertBefore(se,te),L.insertBefore(Q,te),C.append(E.element,pe,L);else{let ae=v("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0");ae.append(H,se,Q,I),C.appendChild(M),C.appendChild(ae)}l&&(C.style.paddingLeft=l,C.style.paddingRight=l);let ne=v("div","persona-artifact-list persona-shrink-0 persona-flex persona-gap-1 persona-overflow-x-auto persona-p-2 persona-border-b persona-border-persona-border");p&&ne.style.setProperty("--persona-artifact-tab-fade-size",p);let me=t.features?.artifacts?.renderTabBar,ve=v("div","persona-artifact-tab-custom persona-shrink-0 persona-border-b persona-border-persona-border persona-hidden"),be=Wm(ne,{onSelect:ae=>e.onSelect(Me[ae].id)}),Te=ae=>{let k=ae.scrollWidth-ae.clientWidth,W=k>1,h=Math.abs(ae.scrollLeft);ae.classList.toggle("persona-artifact-tab-fade-start",d&&W&&h>1),ae.classList.toggle("persona-artifact-tab-fade-end",g&&W&&h<k-1)},ze=0,Oe=()=>{if(ze)return;let ae=()=>{ze=0,Te(ne)};ze=typeof requestAnimationFrame=="function"?requestAnimationFrame(ae):setTimeout(ae,0)};ne.addEventListener("scroll",()=>Oe(),{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(()=>Te(ne)).observe(ne);let Ne=v("div","persona-artifact-content persona-flex-1 persona-min-h-0 persona-overflow-y-auto persona-p-3"),Be=()=>{Ne.scrollLeft=0},Ue=()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(Be):setTimeout(Be,0)};if(l){for(let ae of[ne,ve])ae.style.paddingLeft=l,ae.style.paddingRight=l;Ne.style.padding=l}y.appendChild(C),y.appendChild(ne),y.appendChild(ve),y.appendChild(Ne);let Me=[],Ee=null,Ve=!1,Jt=!1,bt=!0,Nt=!1,Mn=null,Tn="",nt=null,Pe=!1,xe=ae=>ae.artifactType==="markdown"&&!!ae.file||r?S:"rendered",ot=ae=>{r||(ae&&!Pe?(C.insertBefore(E.element,M),Pe=!0):!ae&&Pe&&(E.element.remove(),Pe=!1))},ke=()=>Ee&&Me.find(ae=>ae.id===Ee)||Me[Me.length-1],Ce=()=>{let ae=Xs(ke());if(!ae){se.replaceChildren();return}let k=J.filter(W=>W.visible===void 0||W.visible(ae)).map(W=>Vr(W,{documentChrome:r,onClick:()=>{let h=Xs(ke());if(h)try{Promise.resolve(W.onClick(h)).catch(()=>{})}catch{}}}));se.replaceChildren(...k)},ce=()=>{Ce();let ae=r&&Me.length<=1,k=!!me;if(ne.classList.toggle("persona-hidden",ae||k),ve.classList.toggle("persona-hidden",ae||!k),k&&me){let O=Me.map(R=>R.id).join("|")+" "+(Ee??"");if(O!==Tn){Tn=O;let R=me({records:Me,selectedId:Ee,onSelect:e.onSelect});ve.firstElementChild!==R&&ve.replaceChildren(R)}}else{be.beforeRender(),ne.replaceChildren();let O=[],R=-1;for(let[_,Z]of Me.entries()){let q=v("button","persona-artifact-tab persona-shrink-0 persona-rounded-lg persona-px-2 persona-py-1 persona-text-xs persona-border persona-border-transparent persona-text-persona-primary");q.type="button";let ee=Z.artifactType==="markdown"?Z.file:void 0,ge=ee?Fn(ee.path):Z.title||Z.id.slice(0,8),qe=ee?.path||Z.title||ge;q.textContent=ge,q.title=qe,q.setAttribute("aria-label",qe),Z.id===Ee&&(q.classList.add("persona-bg-persona-container","persona-border-persona-border"),R=_),q.addEventListener("click",()=>e.onSelect(Z.id)),ne.appendChild(q),O.push(q)}if(be.render(O,R),R>=0&&Ee!==Mn){Mn=Ee;let _=O[R];typeof _.scrollIntoView=="function"&&_.scrollIntoView({block:"nearest",inline:"nearest"})}Te(ne)}let W=Ee&&Me.find(O=>O.id===Ee)||Me[Me.length-1];if(!W){Ne.replaceChildren(),nt=null,ot(!1);return}let h=W.artifactType==="markdown"?W.file:void 0;if(ot(!!h&&er(h)!=="other"),r){let O=h?Eo(h):W.artifactType==="markdown"?"MD":W.component??"Component",R=(W.title||"Document").trim(),_=h?Fn(h.path):R.replace(/\s*·\s*MD\s*$/i,"").trim()||"Document";pe.textContent=`${_} \xB7 ${O}`}else M.textContent=h?Fn(h.path):s;nt?(nt.el.parentElement!==Ne&&Ne.replaceChildren(nt.el),nt.update(W)):(nt=Fa(W,{config:t,resolveViewMode:xe}),Ne.replaceChildren(nt.el)),Ne.classList.toggle("persona-artifact-content-flush",!!Ne.querySelector(".persona-code-pre"))},Ae=()=>{let ae=Me.length>0;if(y.classList.toggle("persona-hidden",!ae),b){let h=((typeof y.closest=="function"?y.closest("[data-persona-root]"):null)?.classList.contains("persona-artifact-narrow-host")??!1)||typeof window<"u"&&window.matchMedia("(max-width: 640px)").matches;ae&&h&&Ve?(b.classList.remove("persona-hidden"),y.classList.add("persona-artifact-drawer-open")):(b.classList.add("persona-hidden"),y.classList.remove("persona-artifact-drawer-open"))}},En=()=>{Nt=!1,ce(),Ae()};return{element:y,backdrop:b,update(ae){let k=ae.selectedId??ae.artifacts[ae.artifacts.length-1]?.id??null,W=k!==Ee;Me=ae.artifacts,Ee=k,Me.length>0&&(Ve=!0),Nt=!0,bt&&En(),W&&Be()},setMobileOpen(ae){Ve=ae,!ae&&b?(b.classList.add("persona-hidden"),y.classList.remove("persona-artifact-drawer-open")):Ae()},setExpanded(ae){ae!==Jt&&(Jt=ae,Ue());let k=ie(ae?"minimize":"maximize",16,"currentColor",2);k&&Q.replaceChildren(k);let W=ae?"Collapse artifacts panel":"Expand artifacts panel";Q.setAttribute("aria-label",W),Q.title=W},setExpandToggleVisible(ae){Q.classList.toggle("persona-hidden",!ae)},setCopyButtonVisible(ae){r||H.classList.toggle("persona-hidden",!ae)},setCustomActions(ae){J=ae,Ce()},setTabFade(ae){let k=c(ae);k.start===d&&k.end===g||(d=k.start,g=k.end,Te(ne))},setRenderTabBar(ae){ae!==me&&(me=ae,Tn="",ce())},setVisible(ae){ae!==bt&&(bt=ae,ae&&Nt&&En())}}}function nn(t){return t?.features?.artifacts?.enabled===!0}function Bm(t,e){if(t.classList.remove("persona-artifact-border-full","persona-artifact-border-left"),t.style.removeProperty("--persona-artifact-pane-border"),t.style.removeProperty("--persona-artifact-pane-border-left"),!nn(e))return;let n=e.features?.artifacts?.layout,o=n?.paneBorder?.trim(),r=n?.paneBorderLeft?.trim();o?(t.classList.add("persona-artifact-border-full"),t.style.setProperty("--persona-artifact-pane-border",o)):r&&(t.classList.add("persona-artifact-border-left"),t.style.setProperty("--persona-artifact-pane-border-left",r))}function zw(t){t.style.removeProperty("--persona-artifact-doc-toolbar-icon-color"),t.style.removeProperty("--persona-artifact-doc-toggle-active-bg"),t.style.removeProperty("--persona-artifact-doc-toggle-active-border")}var Dm=["panel","seamless","detached"];function yd(t){let e=t.features?.artifacts?.layout?.paneAppearance;return e&&Dm.includes(e)?e:e?"panel":t.launcher?.detachedPanel?"detached":"panel"}function vd(t){return!t||!nn(t)?!1:yd(t)==="detached"}function gi(t,e){if(!nn(e)){t.style.removeProperty("--persona-artifact-split-gap"),t.style.removeProperty("--persona-artifact-pane-width"),t.style.removeProperty("--persona-artifact-pane-max-width"),t.style.removeProperty("--persona-artifact-pane-min-width"),t.style.removeProperty("--persona-artifact-drawer-width"),t.style.removeProperty("--persona-artifact-pane-bg"),t.style.removeProperty("--persona-artifact-pane-padding"),zw(t),Bm(t,e);return}let n=e.features?.artifacts?.layout,o=yd(e)==="detached"?"var(--persona-panel-inset)":"0";t.style.setProperty("--persona-artifact-split-gap",n?.splitGap??o),t.style.setProperty("--persona-artifact-pane-width",n?.paneWidth??"40%"),t.style.setProperty("--persona-artifact-pane-max-width",n?.paneMaxWidth??"28rem"),n?.drawerWidth?t.style.setProperty("--persona-artifact-drawer-width",n.drawerWidth):t.style.removeProperty("--persona-artifact-drawer-width"),n?.paneMinWidth?t.style.setProperty("--persona-artifact-pane-min-width",n.paneMinWidth):t.style.removeProperty("--persona-artifact-pane-min-width");let r=n?.paneBackground?.trim();r?t.style.setProperty("--persona-artifact-pane-bg",r):t.style.removeProperty("--persona-artifact-pane-bg");let s=n?.panePadding?.trim();s?t.style.setProperty("--persona-artifact-pane-padding",s):t.style.removeProperty("--persona-artifact-pane-padding");let i=n?.documentToolbarIconColor?.trim();i?t.style.setProperty("--persona-artifact-doc-toolbar-icon-color",i):t.style.removeProperty("--persona-artifact-doc-toolbar-icon-color");let l=n?.documentToolbarToggleActiveBackground?.trim();l?t.style.setProperty("--persona-artifact-doc-toggle-active-bg",l):t.style.removeProperty("--persona-artifact-doc-toggle-active-bg");let p=n?.documentToolbarToggleActiveBorderColor?.trim();p?t.style.setProperty("--persona-artifact-doc-toggle-active-border",p):t.style.removeProperty("--persona-artifact-doc-toggle-active-border"),Bm(t,e)}function fi(t,e){for(let l of Dm)t.classList.remove(`persona-artifact-appearance-${l}`);if(t.style.removeProperty("--persona-artifact-pane-radius"),t.style.removeProperty("--persona-artifact-pane-shadow"),t.style.removeProperty("--persona-artifact-chat-shadow"),!nn(e))return;let n=e.features?.artifacts?.layout,o=yd(e);t.classList.add(`persona-artifact-appearance-${o}`);let r=n?.paneBorderRadius?.trim();r&&t.style.setProperty("--persona-artifact-pane-radius",r);let s=n?.paneShadow?.trim();s&&t.style.setProperty("--persona-artifact-pane-shadow",s);let i=n?.chatShadow?.trim();i&&t.style.setProperty("--persona-artifact-chat-shadow",i)}function Om(t,e){return!e||!nn(t)?!1:t.features?.artifacts?.layout?.expandLauncherPanelWhenOpen!==!1}var Uw=new Set(["__proto__","prototype","constructor"]),jw=new Set(["collapsed","card","panel","inline"]),Nm=new Set(["markdown","component"]),Vw=/^[a-z0-9][a-z0-9!#$&^_.+-]*\/(\*|[a-z0-9!#$&^_.+-]+)$/,lr=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),pl=t=>!Uw.has(t),xd=t=>typeof t=="string"&&jw.has(t),cr=t=>Object.keys(t).length>0;function $n(t,e,n,o){t.push({path:e,code:n,message:o})}var qw="Ignored because this key is not part of the persisted preference schema.",dl="Ignored an unsupported value.",Kw="Expected collapsed, panel, or inline.",Gw='Expected a MIME type such as "text/html" or a wildcard such as "image/*".',Fm={kind:"mode",message:dl},Jr={kind:"string",message:"Expected a CSS length string."},so={kind:"boolean"},Qw={paneWidth:Jr,paneMaxWidth:Jr,paneMinWidth:Jr,expandedPanelWidth:Jr,resizableMinWidth:Jr,resizableMaxWidth:Jr,expandLauncherPanelWhenOpen:so,resizable:so},Xw={kind:"object",message:"Expected a preference object.",children:{showToolCalls:so,showReasoning:so,toolCallDisplay:{kind:"object",children:{collapsedMode:{kind:"enum",values:new Set(["tool-call","tool-name","tool-preview"]),message:dl},groupedMode:{kind:"enum",values:new Set(["stack","summary"]),message:dl},loadingAnimation:{kind:"enum",values:new Set(["none","pulse","shimmer","shimmer-color","rainbow"]),message:dl},expandable:so,grouped:so}},reasoningDisplay:{kind:"object",children:{expandable:so,activePreview:so}},artifacts:{kind:"object",children:{display:{kind:"object",bareMode:!0,message:"Expected an artifact display rules object.",children:{default:Fm,files:{kind:"object",bareMode:!0,message:"Expected collapsed, panel, inline, or a file display rules object.",children:{default:Fm,byMediaType:{kind:"modeMap",keys:"mediaType"}}},byType:{kind:"modeMap",keys:Nm,alias:"byKind",deprecated:"Use byKind. The legacy selector was normalized automatically."},byKind:{kind:"modeMap",keys:Nm}}},filePreview:{kind:"object",children:{enabled:so}},layout:{kind:"object",children:Qw}}}}};function _m(t,e,n,o){if(t!==void 0)switch(e.kind){case"boolean":return typeof t=="boolean"?t:$n(o,n,"invalid_type","Expected a boolean.");case"string":return typeof t=="string"?t:$n(o,n,"invalid_type",e.message);case"enum":return typeof t=="string"&&e.values.has(t)?t:$n(o,n,"invalid_value",e.message);case"mode":return xd(t)?wn(t):$n(o,n,"invalid_value",e.message);case"modeMap":{if(!lr(t))return $n(o,n,"invalid_type","Expected an object.");let r=e.keys==="mediaType"?void 0:e.keys,s={};for(let[i,l]of Object.entries(t)){let p=r?i:Lr(i);pl(i)&&(r?r.has(i):Vw.test(p))?xd(l)?s[p]=wn(l):$n(o,`${n}.${i}`,"invalid_value",Kw):$n(o,`${n}.${i}`,r?"unknown_key":"invalid_value",r?"Ignored an unsupported selector.":Gw)}return cr(s)?s:void 0}case"object":{if(e.bareMode&&xd(t))return wn(t);if(!lr(t))return $n(o,n,"invalid_type",e.message??"Expected an object.");let r=Object.keys(e.children),s=l=>n?`${n}.${l}`:l;for(let l of Object.keys(t))(!pl(l)||!r.includes(l))&&$n(o,s(l),"unknown_key",qw);let i={};for(let l of r){let p=e.children[l],c=_m(t[l],p,s(l),o);if(p.deprecated&&t[l]!==void 0&&$n(o,s(l),"deprecated_key",p.deprecated),c===void 0)continue;let d=p.alias??l,g=i[d];i[d]=lr(g)&&lr(c)?{...g,...c}:c}return cr(i)?i:void 0}}}function Yw(t){let e=[];return{preferences:(t===null?void 0:_m(t,Xw,"",e))??{},issues:e}}function Zr(t){if(Array.isArray(t))return t.map(Zr);if(!lr(t))return t;let e={};for(let[n,o]of Object.entries(t))pl(n)&&o!==void 0&&(e[n]=Zr(o));return e}function $m(t,e){let n=Zr(t);for(let[o,r]of Object.entries(e)){if(!pl(o)||r===void 0)continue;let s=n[o];n[o]=lr(s)&&lr(r)?$m(s,r):Zr(r)}return n}function Jw(t){let e={},n;for(let r of t){let s=Yw(r).preferences;n=zm(n,s.artifacts?.display),e=$m(e,s)}let o=e;return o.artifacts&&(n!==void 0?o.artifacts.display=n:delete o.artifacts.display),o}function Zw(t,e){if(e===void 0)return t===void 0?void 0:Zr(t);if(typeof e=="string")return e;let n=typeof t=="string"?{default:t}:t??{},o=e.default??n.default,r={...n.byMediaType,...e.byMediaType},s={...o?{default:o}:{},...cr(r)?{byMediaType:r}:{}};return cr(s)?s:void 0}function zm(t,e){if(e===void 0)return t===void 0?void 0:Zr(t);if(typeof e=="string")return e;let n=typeof t=="string"?{default:t}:t??{},o=e.default??n.default,r={...n.byType,...n.byKind,...e.byType,...e.byKind},s=Zw(n.files,e.files),i={...o?{default:o}:{},...cr(r)?{byKind:r}:{},...s!==void 0?{files:s}:{}};return cr(i)?i:void 0}function eC(t={},e){let n=Jw(e),o={...t};if(n.showToolCalls!==void 0&&(o.showToolCalls=n.showToolCalls),n.showReasoning!==void 0&&(o.showReasoning=n.showReasoning),n.toolCallDisplay&&(o.toolCallDisplay={...t.toolCallDisplay,...n.toolCallDisplay}),n.reasoningDisplay&&(o.reasoningDisplay={...t.reasoningDisplay,...n.reasoningDisplay}),n.artifacts){let r=t.artifacts??{},s={...r};if(n.artifacts.display!==void 0){let i=zm(r.display,n.artifacts.display);i!==void 0&&(s.display=i)}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 wd(t){let e=t.preferences;return!e||!cr(e)?t:{...t,features:eC(t.features??{},[e])}}function tC(t,e){if(!t?.trim())return e;let n=/^(\d+(?:\.\d+)?)px\s*$/i.exec(t.trim());return n?Math.max(0,Number(n[1])):e}function nC(t){if(!t?.trim())return null;let e=/^(\d+(?:\.\d+)?)px\s*$/i.exec(t.trim());return e?Math.max(0,Number(e[1])):null}function oC(t,e,n){return n<e?e:Math.min(n,Math.max(e,t))}function rC(t,e,n,o){let r=t-o-2*e-n;return Math.max(0,r)}function Cd(t,e){let o=(e.getComputedStyle(t).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 Um(t,e,n,o,r,s){let i=tC(r,200),l=rC(e,n,o,200);l=Math.max(i,l);let p=nC(s);return p!==null&&(l=Math.min(l,p)),oC(t,i,l)}Ye();var jm={init:{title:"Schedule a Demo",description:"Share the basics and we'll follow up with a confirmation.",fields:[{name:"name",label:"Full name",placeholder:"Jane Doe",required:!0},{name:"email",label:"Work email",placeholder:"jane@example.com",type:"email",required:!0},{name:"notes",label:"What would you like to cover?",type:"textarea"}],submitLabel:"Submit details"},followup:{title:"Additional Information",description:"Provide any extra details to tailor the next steps.",fields:[{name:"company",label:"Company",placeholder:"Acme Inc."},{name:"context",label:"Context",type:"textarea",placeholder:"Share more about your use case"}],submitLabel:"Send"}},Ad=(t,e,n,o)=>{let r=t.querySelectorAll("[data-tv-form]");r.length&&r.forEach(s=>{if(s.dataset.enhanced==="true")return;let i=s.dataset.tvForm??"init";s.dataset.enhanced="true";let l=jm[i]??jm.init;s.classList.add("persona-form-card","persona-space-y-4");let p=v("div","persona-space-y-1"),c=v("h3","persona-text-base persona-font-semibold persona-text-persona-primary");if(c.textContent=l.title,p.appendChild(c),l.description){let y=v("p","persona-text-sm persona-text-persona-muted");y.textContent=l.description,p.appendChild(y)}let d=document.createElement("form");d.className="persona-form-grid persona-space-y-3",l.fields.forEach(y=>{let C=v("label","persona-form-field persona-flex persona-flex-col persona-gap-1");C.htmlFor=`${e.id}-${i}-${y.name}`;let M=v("span","persona-text-xs persona-font-medium persona-text-persona-muted");M.textContent=y.label,C.appendChild(M);let I=y.type??"text",S;I==="textarea"?(S=document.createElement("textarea"),S.rows=3):(S=document.createElement("input"),S.type=I),S.className="persona-rounded-xl persona-border persona-border-gray-200 persona-bg-white persona-px-3 persona-py-2 persona-text-sm persona-text-persona-primary focus:persona-outline-none focus:persona-border-persona-primary",S.id=`${e.id}-${i}-${y.name}`,S.name=y.name,S.placeholder=y.placeholder??"",y.required&&(S.required=!0),C.appendChild(S),d.appendChild(C)});let g=v("div","persona-flex persona-items-center persona-justify-between persona-gap-2"),b=v("div","persona-text-xs persona-text-persona-muted persona-min-h-[1.5rem]"),f=v("button","persona-inline-flex persona-items-center persona-rounded-full persona-bg-persona-primary persona-px-4 persona-py-2 persona-text-sm persona-font-semibold persona-text-white disabled:persona-opacity-60 persona-cursor-pointer");f.type="submit",f.textContent=l.submitLabel??"Submit",g.appendChild(b),g.appendChild(f),d.appendChild(g),s.replaceChildren(p,d),d.addEventListener("submit",async y=>{y.preventDefault();let C=n.formEndpoint??"/form",M=new FormData(d),I={};M.forEach((S,E)=>{I[E]=S}),I.type=i,f.disabled=!0,b.textContent="Submitting\u2026";try{let S=await fetch(C,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(I)});if(!S.ok)throw new Error(`Form submission failed (${S.status})`);let E=await S.json();b.textContent=E.message??"Thanks! We'll be in touch soon.",E.success&&E.nextPrompt&&await o.sendMessage(String(E.nextPrompt))}catch(S){b.textContent=S instanceof Error?S.message:"Something went wrong. Please try again."}finally{f.disabled=!1}})})};var Sd=class{constructor(){this.plugins=new Map}register(e){this.plugins.has(e.id)&&console.warn(`Plugin "${e.id}" is already registered. Overwriting.`),this.plugins.set(e.id,e),e.onRegister?.()}unregister(e){let n=this.plugins.get(e);n&&(n.onUnregister?.(),this.plugins.delete(e))}getAll(){return Array.from(this.plugins.values()).sort((e,n)=>(n.priority??0)-(e.priority??0))}getForInstance(e){let n=this.getAll();if(!e||e.length===0)return n;let o=new Set(e.map(s=>s.id));return[...n.filter(s=>!o.has(s.id)),...e].sort((s,i)=>(i.priority??0)-(s.priority??0))}clear(){this.plugins.forEach(e=>e.onUnregister?.()),this.plugins.clear()}},Md=new Sd;var Vm=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),sC=new Set(["headers","agent","storageAdapter","components","targetProviders","voiceRecognition.provider.custom","features.artifacts.display","features.streamAnimation.plugins","preferences","welcome.icon"]),qm=(t,e,n)=>{if(!Vm(t)||!Vm(e)||sC.has(n))return e;let o={...t};for(let r of Object.keys(e)){if(e[r]===void 0){delete o[r];continue}let s=n?`${n}.${r}`:r;o[r]=qm(t[r],e[r],s)}return o};function Km(t,e){let n=qm(t,e,"");return La(n)}var Gm=()=>{let t=new Map,e=(r,s)=>(t.has(r)||t.set(r,new Set),t.get(r).add(s),()=>n(r,s)),n=(r,s)=>{t.get(r)?.delete(s)};return{on:e,off:n,emit:(r,s)=>{t.get(r)?.forEach(i=>{try{i(s)}catch(l){typeof console<"u"&&console.error("[AgentWidget] Event handler error:",l)}})}}};var iC=t=>{let e=t.match(/```(?:json)?\s*([\s\S]*?)```/i);return e?e[1]:t},aC=t=>{let e=t.trim(),n=e.indexOf("{");if(n===-1)return null;let o=0;for(let r=n;r<e.length;r+=1){let s=e[r];if(s==="{"&&(o+=1),s==="}"&&(o-=1,o===0))return e.slice(n,r+1)}return null},Ed=({text:t})=>{if(!t||!t.includes("{"))return null;try{let e=iC(t),n=aC(e);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}},Td=t=>typeof t=="string"?t:t==null?"":String(t),mi={message:t=>t.type!=="message"?void 0:{handled:!0,displayText:Td(t.payload.text)},messageAndClick:(t,e)=>{if(t.type!=="message_and_click")return;let n=t.payload,o=Td(n.element);if(o&&e.document?.querySelector){let r=e.document.querySelector(o);r?setTimeout(()=>{r.click()},400):typeof console<"u"&&console.warn("[AgentWidget] Element not found for selector:",o)}return{handled:!0,displayText:Td(n.text)}}},Qm=t=>Array.isArray(t)?t.map(e=>String(e)):[],kd=t=>{let e=new Set(Qm(t.getSessionMetadata().processedActionMessageIds)),n=()=>{e=new Set(Qm(t.getSessionMetadata().processedActionMessageIds))},o=()=>{let s=Array.from(e);t.updateSessionMetadata(i=>({...i,processedActionMessageIds:s}))};return{process:s=>{if(s.streaming||s.message.role!=="assistant"||!s.text||e.has(s.message.id))return null;let i=typeof s.raw=="string"&&s.raw||typeof s.message.rawContent=="string"&&s.message.rawContent||typeof s.text=="string"&&s.text||null;!i&&typeof s.text=="string"&&s.text.trim().startsWith("{")&&typeof console<"u"&&console.warn("[AgentWidget] Structured response detected but no raw payload was provided. Ensure your stream parser returns { text, raw }.");let l=i?t.parsers.reduce((c,d)=>c||d?.({text:i,message:s.message})||null,null):null;if(!l)return null;e.add(s.message.id),o();let p={action:l,message:s.message};t.emit("action:detected",p);for(let c of t.handlers)if(c)try{let d=()=>{t.emit("action:resubmit",p)},g=c(l,{message:s.message,metadata:t.getSessionMetadata(),updateMetadata:t.updateSessionMetadata,document:t.documentRef,triggerResubmit:d});if(!g)continue;if(g.handled){let b=g.persistMessage!==!1;return{text:g.displayText!==void 0?g.displayText:"",persist:b,resubmit:g.resubmit}}}catch(d){typeof console<"u"&&console.error("[AgentWidget] Action handler error:",d)}return{text:"",persist:!0}},syncFromMetadata:n}};var lC=t=>{if(!t)return null;try{return JSON.parse(t)}catch(e){return typeof console<"u"&&console.error("[AgentWidget] Failed to parse stored state:",e),null}},cC=t=>t.map(e=>({...e,streaming:!1})),dC=t=>t.map(e=>({...e,status:"complete"})),Xm=(t="persona-state")=>{let e=()=>typeof window>"u"||!window.localStorage?null:window.localStorage;return{load:()=>{let n=e();return n?lC(n.getItem(t)):null},save:n=>{let o=e();if(o)try{let r={...n,messages:n.messages?cC(n.messages):void 0,artifacts:n.artifacts?dC(n.artifacts):void 0};o.setItem(t,JSON.stringify(r))}catch(r){typeof console<"u"&&console.error("[AgentWidget] Failed to persist state:",r)}},clear:()=>{let n=e();if(n)try{n.removeItem(t)}catch(o){typeof console<"u"&&console.error("[AgentWidget] Failed to clear stored state:",o)}}}};var Ld=require("partial-json");function Ym(t,e){let{config:n,message:o,onPropsUpdate:r}=e,s=oo.get(t.component);if(!s)return console.warn(`[ComponentMiddleware] Component "${t.component}" not found in registry. Falling back to default rendering.`),null;let i={message:o,config:n,updateProps:l=>{r&&r(l)}};try{return s(t.props,i)}catch(l){return console.error(`[ComponentMiddleware] Error rendering component "${t.component}":`,l),null}}function Jm(t){if(typeof t.rawContent=="string"&&t.rawContent.length>0)return t.rawContent;if(typeof t.content=="string"){let e=t.content.trim();if(e.startsWith("{")||e.startsWith("["))return t.content}return null}function Pd(t){let e=Jm(t);if(!e)return!1;try{let n=JSON.parse(e);return typeof n=="object"&&n!==null&&"component"in n&&typeof n.component=="string"}catch{return!1}}function Zm(t){let e=Jm(t);if(!e)return null;try{let n=JSON.parse(e);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:e}}}catch{}return null}var pC=["Very dissatisfied","Dissatisfied","Neutral","Satisfied","Very satisfied"];function eh(t){let{onSubmit:e,onDismiss:n,title:o="How satisfied are you?",subtitle:r="Please rate your experience",commentPlaceholder:s="Share your thoughts (optional)...",submitText:i="Submit",skipText:l="Skip",showComment:p=!0,ratingLabels:c=pC}=t,d=document.createElement("div");d.className="persona-feedback-container persona-feedback-csat",d.setAttribute("role","dialog"),d.setAttribute("aria-label","Customer satisfaction feedback");let g=null,b=document.createElement("div");b.className="persona-feedback-content";let f=document.createElement("div");f.className="persona-feedback-header";let y=document.createElement("h3");y.className="persona-feedback-title",y.textContent=o,f.appendChild(y);let C=document.createElement("p");C.className="persona-feedback-subtitle",C.textContent=r,f.appendChild(C),b.appendChild(f);let M=document.createElement("div");M.className="persona-feedback-rating persona-feedback-rating-csat",M.setAttribute("role","radiogroup"),M.setAttribute("aria-label","Satisfaction rating from 1 to 5");let I=[];for(let z=1;z<=5;z++){let $=document.createElement("button");$.type="button",$.className="persona-feedback-rating-btn persona-feedback-star-btn",$.setAttribute("role","radio"),$.setAttribute("aria-checked","false"),$.setAttribute("aria-label",`${z} star${z>1?"s":""}: ${c[z-1]}`),$.title=c[z-1],$.dataset.rating=String(z),$.innerHTML=`
|
|
216
216
|
<svg class="persona-feedback-star" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
217
217
|
<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>
|
|
218
218
|
</svg>
|
|
219
|
-
`,A.addEventListener("click",()=>{u=G,B.forEach((O,D)=>{let W=D<G;O.classList.toggle("selected",W),O.setAttribute("aria-checked",D===G-1?"true":"false")})}),B.push(A),L.appendChild(A)}b.appendChild(L);let k=null;if(p){let G=document.createElement("div");G.className="persona-feedback-comment-container",k=document.createElement("textarea"),k.className="persona-feedback-comment",k.placeholder=s,k.rows=3,k.setAttribute("aria-label","Additional comments"),G.appendChild(k),b.appendChild(G)}let S=document.createElement("div");S.className="persona-feedback-actions";let E=document.createElement("button");E.type="button",E.className="persona-feedback-btn persona-feedback-btn-skip",E.textContent=l,E.addEventListener("click",()=>{n?.(),d.remove()});let z=document.createElement("button");return z.type="button",z.className="persona-feedback-btn persona-feedback-btn-submit",z.textContent=i,z.addEventListener("click",async()=>{if(u===null){L.classList.add("persona-feedback-shake"),setTimeout(()=>L.classList.remove("persona-feedback-shake"),500);return}z.disabled=!0,z.textContent="Submitting...";try{let G=k?.value.trim()||void 0;await e(u,G),d.remove()}catch(G){z.disabled=!1,z.textContent=i,console.error("[CSAT Feedback] Failed to submit:",G)}}),S.appendChild(E),S.appendChild(z),b.appendChild(S),d.appendChild(b),d}function qf(t){let{onSubmit:e,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:i="Submit",skipText:l="Skip",showComment:p=!0,lowLabel:c="Not likely",highLabel:d="Very likely"}=t,u=document.createElement("div");u.className="persona-feedback-container persona-feedback-nps",u.setAttribute("role","dialog"),u.setAttribute("aria-label","Net Promoter Score feedback");let b=null,g=document.createElement("div");g.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 L=document.createElement("p");L.className="persona-feedback-subtitle",L.textContent=r,h.appendChild(L),g.appendChild(h);let B=document.createElement("div");B.className="persona-feedback-rating persona-feedback-rating-nps",B.setAttribute("role","radiogroup"),B.setAttribute("aria-label","Likelihood rating from 0 to 10");let k=document.createElement("div");k.className="persona-feedback-labels";let S=document.createElement("span");S.className="persona-feedback-label-low",S.textContent=c;let E=document.createElement("span");E.className="persona-feedback-label-high",E.textContent=d,k.appendChild(S),k.appendChild(E);let z=document.createElement("div");z.className="persona-feedback-numbers";let G=[];for(let P=0;P<=10;P++){let I=document.createElement("button");I.type="button",I.className="persona-feedback-rating-btn persona-feedback-number-btn",I.setAttribute("role","radio"),I.setAttribute("aria-checked","false"),I.setAttribute("aria-label",`Rating ${P} out of 10`),I.textContent=String(P),I.dataset.rating=String(P),P<=6?I.classList.add("persona-feedback-detractor"):P<=8?I.classList.add("persona-feedback-passive"):I.classList.add("persona-feedback-promoter"),I.addEventListener("click",()=>{b=P,G.forEach((j,pe)=>{j.classList.toggle("selected",pe===P),j.setAttribute("aria-checked",pe===P?"true":"false")})}),G.push(I),z.appendChild(I)}B.appendChild(k),B.appendChild(z),g.appendChild(B);let A=null;if(p){let P=document.createElement("div");P.className="persona-feedback-comment-container",A=document.createElement("textarea"),A.className="persona-feedback-comment",A.placeholder=s,A.rows=3,A.setAttribute("aria-label","Additional comments"),P.appendChild(A),g.appendChild(P)}let O=document.createElement("div");O.className="persona-feedback-actions";let D=document.createElement("button");D.type="button",D.className="persona-feedback-btn persona-feedback-btn-skip",D.textContent=l,D.addEventListener("click",()=>{n?.(),u.remove()});let W=document.createElement("button");return W.type="button",W.className="persona-feedback-btn persona-feedback-btn-submit",W.textContent=i,W.addEventListener("click",async()=>{if(b===null){z.classList.add("persona-feedback-shake"),setTimeout(()=>z.classList.remove("persona-feedback-shake"),500);return}W.disabled=!0,W.textContent="Submitting...";try{let P=A?.value.trim()||void 0;await e(b,P),u.remove()}catch(P){W.disabled=!1,W.textContent=i,console.error("[NPS Feedback] Failed to submit:",P)}}),O.appendChild(D),O.appendChild(W),g.appendChild(O),u.appendChild(g),u}var Wr="persona-chat-history",Bx=30*1e3,Dx=641,Nx={"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 Ox(t){if(!t)return[];let e=[],n=Array.from(t.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){e.push(r);continue}let s=Nx[r.type]??"png";e.push(new File([r],`clipboard-image-${Date.now()}.${s}`,{type:r.type,lastModified:Date.now()}))}if(e.length>0)return e;for(let o of Array.from(t.files??[]))o.type.startsWith("image/")&&e.push(o);return e}function Va(t){if(!t)return!1;let e=t.types;return e?typeof e.contains=="function"?e.contains("Files"):Array.from(e).includes("Files"):!1}function Fx(t){return t?t===!0?{storage:"session",keyPrefix:"persona-",persist:{openState:!0,voiceState:!0,focusInput:!0},clearOnChatClear:!0}:{storage:t.storage??"session",keyPrefix:t.keyPrefix??"persona-",persist:{openState:t.persist?.openState??!0,voiceState:t.persist?.voiceState??!0,focusInput:t.persist?.focusInput??!0},clearOnChatClear:t.clearOnChatClear??!0}:null}function _x(t){try{let e=t==="local"?localStorage:sessionStorage,n="__persist_test__";return e.setItem(n,"1"),e.removeItem(n),e}catch{return null}}var Uc=t=>!t||typeof t!="object"?{}:{...t},Kf=t=>t.map(e=>({...e,streaming:!1})),Gf=(t,e,n)=>{let o=t?.markdown?Li(t.markdown):null,r=Pi(t?.sanitize);return t?.postprocessMessage&&r&&t?.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."),s=>{let i=s.text??"",l=s.message.rawContent??null;if(e){let d=e.process({text:i,raw:l??i,message:s.message,streaming:s.streaming});d!==null&&(i=d.text,d.persist||(s.message.__skipPersist=!0),d.resubmit&&!s.streaming&&n&&n())}let p=Un()!==null,c;if(t?.postprocessMessage){let d=t.postprocessMessage({...s,text:i,raw:l??s.text??""});c=r?r(d):d}else if(o){let d=s.streaming?Ep(i):i,u=o(d);c=r&&p?r(u):u}else c=po(i);return c}};function Qf(t){let e=v("div","persona-attachment-drop-overlay");t?.background&&e.style.setProperty("--persona-drop-overlay-bg",t.background),t?.backdropBlur!==void 0&&e.style.setProperty("--persona-drop-overlay-blur",t.backdropBlur),t?.border&&e.style.setProperty("--persona-drop-overlay-border",t.border),t?.borderRadius&&e.style.setProperty("--persona-drop-overlay-radius",t.borderRadius),t?.inset&&e.style.setProperty("--persona-drop-overlay-inset",t.inset),t?.labelSize&&e.style.setProperty("--persona-drop-overlay-label-size",t.labelSize),t?.labelColor&&e.style.setProperty("--persona-drop-overlay-label-color",t.labelColor);let n=t?.iconName??"upload",o=t?.iconSize??"48px",r=t?.iconColor??"rgba(59, 130, 246, 0.6)",s=t?.iconStrokeWidth??.5,i=ae(n,o,r,s);if(i&&e.appendChild(i),t?.label){let l=v("span","persona-drop-overlay-label");l.textContent=t.label,e.appendChild(l)}return e}var $x=(t,e)=>{let n={...t};for(let[o,r]of Object.entries(e)){let s=n[o];n[o]=s?{...s,...r}:r}return n},zx=t=>t.reduce((e,n)=>({blocks:[...e.blocks,...n.blocks],contentParts:[...e.contentParts,...n.contentParts],context:$x(e.context,n.context)}),{blocks:[],contentParts:[],context:{}}),Xf=(t,e,n)=>{if(t==null)throw new Error('createAgentExperience: mount must be a non-null HTMLElement (e.g. pass document.getElementById("my-root") after the node exists).');t.id&&!t.getAttribute("data-persona-instance")&&t.setAttribute("data-persona-instance",t.id),t.hasAttribute("data-persona-root")||t.setAttribute("data-persona-root","true");let o=ca(e),r=o.features;o=Wc(o);let s=Nc.getForInstance(o.plugins),{plugin:i,teardown:l}=vf();o.components&&Qn.registerAll(o.components);let p=Ff(),d=o.persistState===!1?null:o.storageAdapter??$f(),u={},b=null,g=!1,h=a=>{if(o.onStateLoaded)try{let f=o.onStateLoaded(a);if(f&&typeof f=="object"&&"state"in f){let{state:m,open:x}=f;return x&&(g=!0),m}return f}catch(f){typeof console<"u"&&console.error("[AgentWidget] onStateLoaded hook failed:",f)}return a};if(d?.load)try{let a=d.load();if(a&&typeof a.then=="function")b=a.then(f=>h(f??{messages:[],metadata:{}}));else{let m=h(a??{messages:[],metadata:{}});m.metadata&&(u=Uc(m.metadata)),m.messages?.length&&(o={...o,initialMessages:m.messages}),m.artifacts?.length&&(o={...o,initialArtifacts:m.artifacts,initialSelectedArtifactId:m.selectedArtifactId??null})}}catch(a){typeof console<"u"&&console.error("[AgentWidget] Failed to load stored state:",a)}else if(o.onStateLoaded)try{let a=h({messages:[],metadata:{}});a.messages?.length&&(o={...o,initialMessages:a.messages})}catch(a){typeof console<"u"&&console.error("[AgentWidget] onStateLoaded hook failed:",a)}let C=()=>u,L=a=>{u=a({...u})??{},sl()},B=o.actionParsers&&o.actionParsers.length?o.actionParsers:[Fc],k=o.actionHandlers&&o.actionHandlers.length?o.actionHandlers:[Gs.message,Gs.messageAndClick],S=_c({parsers:B,handlers:k,getSessionMetadata:C,updateSessionMetadata:L,emit:p.emit,documentRef:typeof document<"u"?document:null});S.syncFromMetadata();let E=o.launcher?.enabled??!0,z=o.launcher?.autoExpand??!1,G=o.autoFocusInput??!1,A=z,O=E,D=o.layout?.header?.layout,W=!1,P=()=>_s(o),I=()=>E||P(),j=P()?!1:E?z:!0,pe=!1,ge=null,se=()=>{pe=!0,ge&&clearTimeout(ge),ge=setTimeout(()=>{pe&&(typeof console<"u"&&console.warn("[AgentWidget] Resubmit requested but no injection occurred within 10s"),pe=!1)},1e4)},Y=Gf(o,S,se),oe=o.features?.showReasoning??!0,J=o.features?.showToolCalls??!0,ie=o.features?.showEventStreamToggle??!1,ee=o.features?.scrollToBottom??{},fe=o.features?.scrollBehavior??{},he=`${(typeof o.persistState=="object"?o.persistState?.keyPrefix:void 0)??"persona-"}event-stream`,we=ie?new js(he):null,ve=o.features?.eventStream?.maxEvents??2e3,Te=ie?new Us(ve,we):null,Me=ie?new Vs:null,_e=null,Ve=!1,ke=null,Re=0;we?.open().then(()=>Te?.restore()).catch(a=>{o.debug&&console.warn("[AgentWidget] IndexedDB not available for event stream:",a)});let Ge={onCopy:a=>{p.emit("message:copy",a),V?.isClientTokenMode()&&V.submitMessageFeedback(a.id,"copy").catch(f=>{o.debug&&console.error("[AgentWidget] Failed to submit copy feedback:",f)}),o.messageActions?.onCopy?.(a)},onFeedback:a=>{p.emit("message:feedback",a),V?.isClientTokenMode()&&V.submitMessageFeedback(a.messageId,a.type).catch(f=>{o.debug&&console.error("[AgentWidget] Failed to submit feedback:",f)}),o.messageActions?.onFeedback?.(a)}},Nt=o.statusIndicator??{},Bt=a=>a==="idle"?Nt.idleText??Wt.idle:a==="connecting"?Nt.connectingText??Wt.connecting:a==="connected"?Nt.connectedText??Wt.connected:a==="error"?Nt.errorText??Wt.error:a==="paused"?Nt.pausedText??Wt.paused:a==="resuming"?Nt.resumingText??Wt.resuming:Wt[a];function Xt(a,f,m,x){if(x==="idle"&&m.idleLink){a.textContent="";let T=document.createElement("a");T.href=m.idleLink,T.target="_blank",T.rel="noopener noreferrer",T.textContent=f,T.style.color="inherit",T.style.textDecoration="none",a.appendChild(T)}else a.textContent=f}let Mt=af({config:o,showClose:I()}),{wrapper:De,panel:ye,pillRoot:Ye}=Mt.shell,He=Mt.panelElements,{container:xe,body:ue,messagesWrapper:We,starterSuggestions:Jt,transcriptSuggestions:gt,suggestions:bt,textarea:Q,sendButton:w,sendButtonWrapper:K,composerForm:y,statusText:H,introTitle:N,introSubtitle:$,closeButton:U,iconHolder:F,headerTitle:te,headerSubtitle:de,header:Le,footer:Se,actionsRow:rt,rightActions:ot}=He,ze=He.leftActions,Ze=He.setSendButtonMode,X=He.micButton,Ue=He.micButtonWrapper,Ne=He.attachmentButton,Ot=He.attachmentButtonWrapper,At=He.attachmentInput,Yt=He.attachmentPreviewsContainer;xe.classList.add("persona-relative"),ue.classList.add("persona-relative");let Xs=12,Jn=()=>ee.label??"",cm=()=>ee.iconName??"arrow-down",dm=()=>ee.enabled!==!1,un=()=>fe.mode??"anchor-top",Yn=()=>un()==="follow"||un()==="anchor-top"&&Kr,Xc=()=>fe.anchorTopOffset??16,pm=()=>fe.restorePosition??"bottom",Jc=()=>fe.pauseOnInteraction===!0,Yc=()=>fe.showActivityWhilePinned!==!1,Zc=()=>fe.announce===!0,Lt=v("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");Lt.type="button",Lt.style.display="none",Lt.setAttribute("data-persona-scroll-to-bottom","true");let Br=v("span","persona-flex persona-items-center"),Ka=v("span",""),Ao=v("span","");Ao.setAttribute("data-persona-scroll-to-bottom-count",""),Ao.style.display="none",Lt.append(Br,Ka,Ao),xe.appendChild(Lt);let Zn=v("div","persona-stream-anchor-spacer");Zn.setAttribute("aria-hidden","true"),Zn.setAttribute("data-persona-anchor-spacer",""),Zn.style.flexShrink="0",Zn.style.pointerEvents="none",Zn.style.height="0px",ue.appendChild(Zn);let So=v("div","persona-sr-only");So.setAttribute("aria-live","polite"),So.setAttribute("aria-atomic","true"),So.setAttribute("role","status"),So.setAttribute("data-persona-live-region",""),Object.assign(So.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"}),xe.appendChild(So);let Dr=null,Js=null,ed=a=>{!Zc()||!a||(Js=a,Dr===null&&(Dr=setTimeout(()=>{Dr=null,Js&&Zc()&&(So.textContent=Js),Js=null},400)))},Qo=()=>{let f=Se.style.display==="none"?0:Se.offsetHeight;Lt.style.bottom=`${f+Xs}px`};Qo();let td=()=>{let a=!!Jn();Lt.setAttribute("aria-label",Jn()||"Jump to latest"),Lt.title=Jn(),Lt.setAttribute("data-persona-scroll-to-bottom-has-label",a?"true":"false"),Br.innerHTML="";let f=ae(cm(),"14px","currentColor",2);f?(Br.appendChild(f),Br.style.display=""):Br.style.display="none",Ka.textContent=Jn(),Ka.style.display=a?"":"none"};td();let Tt=null,sn=null,nd=null,od=s.find(a=>a.renderHeader);if(od?.renderHeader){let a=od.renderHeader({config:o,defaultRenderer:()=>{let f=Uo({config:o,showClose:I()});return $s(xe,f,o),f.header},onClose:()=>ct(!1,"user")});if(a){let f=xe.querySelector(".persona-border-b-persona-divider");f&&(f.replaceWith(a),Le=a,Mt.header.element=a)}}let Ga=()=>{if(!Te)return;if(Ve=!0,!_e&&Te&&(_e=Af({buffer:Te,getFullHistory:()=>Te.getAllFromStore(),onClose:()=>Nr(),config:o,plugins:s,getThroughput:()=>Me?.getMetric()??{status:"idle"}})),_e&&(ue.style.display="none",Se.parentNode?.insertBefore(_e.element,Se),_e.update()),et){et.style.boxShadow=`inset 0 0 0 1.5px ${tn.actionIconColor}`;let f=o.features?.eventStream?.classNames?.toggleButtonActive;f&&f.split(/\s+/).forEach(m=>m&&et.classList.add(m))}let a=()=>{if(!Ve)return;let f=Date.now();f-Re>=200&&(_e?.update(),Re=f),ke=requestAnimationFrame(a)};Re=0,ke=requestAnimationFrame(a),ln(),p.emit("eventStream:opened",{timestamp:Date.now()})},Nr=()=>{if(Ve){if(Ve=!1,_e&&_e.element.remove(),ue.style.display="",et){et.style.boxShadow="";let a=o.features?.eventStream?.classNames?.toggleButtonActive;a&&a.split(/\s+/).forEach(f=>f&&et.classList.remove(f))}ke!==null&&(cancelAnimationFrame(ke),ke=null),ln(),p.emit("eventStream:closed",{timestamp:Date.now()})}},et=null;if(ie){let a=o.features?.eventStream?.classNames,f="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"+(a?.toggleButton?" "+a.toggleButton:"");et=v("button",f),et.style.width="28px",et.style.height="28px",et.style.color=tn.actionIconColor,et.type="button",et.setAttribute("aria-label","Event Stream"),et.title="Event Stream";let m=ae("activity","18px","currentColor",1.5);m&&et.appendChild(m);let x=He.clearChatButtonWrapper,T=He.closeButtonWrapper,R=x||T;R&&R.parentNode===Le?Le.insertBefore(et,R):Le.appendChild(et),et.addEventListener("click",()=>{Ve?Nr():Ga()})}let um=a=>{let f=o.attachments;if(!f?.enabled)return;let m=a.querySelector("[data-persona-composer-attachment-previews]")??a.querySelector(".persona-attachment-previews");if(!m){m=v("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2"),m.setAttribute("data-persona-composer-attachment-previews",""),m.style.display="none";let T=a.querySelector("[data-persona-composer-form]");T?.parentNode?T.parentNode.insertBefore(m,T):a.insertBefore(m,a.firstChild)}if(!(a.querySelector("[data-persona-composer-attachment-input]")??a.querySelector('input[type="file"]'))){let T=v("input");T.type="file",T.setAttribute("data-persona-composer-attachment-input",""),T.accept=(f.allowedTypes??Kn).join(","),T.multiple=(f.maxFiles??4)>1,T.style.display="none",T.setAttribute("aria-label",f.buttonTooltipText??"Attach files"),a.appendChild(T)}},rd=s.find(a=>a.renderComposer);if(rd?.renderComposer){let a=o.composer,f=rd.renderComposer({config:o,defaultRenderer:()=>Oa({config:o}).footer,onSubmit:m=>{if(!V||V.isStreaming())return;let x=m.trim(),T=Tt?.hasAttachments()??!1;if(!x&&!T)return;qd();let R;T&&(R=[],R.push(...Tt.getContentParts()),x&&R.push(yr(x))),V.sendMessage(x,{contentParts:R}),T&&Tt.clearAttachments()},streaming:!1,disabled:!1,openAttachmentPicker:()=>{At?.click()},models:a?.models,selectedModelId:a?.selectedModelId,onModelChange:m=>{o.composer={...o.composer,selectedModelId:m},o.agent&&(o.agent={...o.agent,model:m})},onVoiceToggle:o.voiceRecognition?.enabled===!0?()=>{nd?.()}:void 0});f&&(Mt.replaceComposer(f),Se=Mt.composer.footer)}let gm=a=>{let f=(...me)=>{for(let ce of me){let Ae=a.querySelector(ce);if(Ae)return Ae}return null},m=a.querySelector("[data-persona-composer-form]"),x=a.querySelector("[data-persona-composer-input]"),T=a.querySelector("[data-persona-composer-submit]"),R=a.querySelector("[data-persona-composer-mic]"),ne=a.querySelector("[data-persona-composer-status]");m&&(y=m),x&&(Q=x),T&&(w=T),R&&(X=R,Ue=R.parentElement),ne&&(H=ne);let q=f("[data-persona-composer-suggestions]",".persona-mb-3.persona-flex.persona-flex-wrap.persona-gap-2");q&&(bt=q);let Z=f("[data-persona-composer-attachment-button]",".persona-attachment-button");Z&&(Ne=Z,Ot=Z.parentElement),At=f("[data-persona-composer-attachment-input]",'input[type="file"]'),Yt=f("[data-persona-composer-attachment-previews]",".persona-attachment-previews");let re=f("[data-persona-composer-actions]",".persona-widget-composer .persona-flex.persona-items-center.persona-justify-between");re&&(rt=re),ze=f(".persona-widget-composer__left-actions")};um(Se),gm(Se);let Ln=o.layout?.contentMaxWidth??(P()?o.launcher?.composerBar?.contentMaxWidth??"720px":void 0);if(Ln&&(We.style.maxWidth=Ln,We.style.marginLeft="auto",We.style.marginRight="auto",We.style.width="100%",Jt.style.maxWidth=Ln,gt.style.maxWidth=Ln,gt.style.marginLeft="auto",gt.style.marginRight="auto",gt.style.width="100%"),Ln&&y&&!P()&&(y.style.maxWidth=Ln,y.style.marginLeft="auto",y.style.marginRight="auto"),Ln&&bt&&!P()&&(bt.style.maxWidth=Ln,bt.style.marginLeft="auto",bt.style.marginRight="auto"),Ln&&Yt&&!P()&&(Yt.style.maxWidth=Ln,Yt.style.marginLeft="auto",Yt.style.marginRight="auto"),o.attachments?.enabled&&At&&Yt){Tt=ws.fromConfig(o.attachments),Tt.setPreviewsContainer(Yt),At.addEventListener("change",m=>{let x=m.target;Tt?.handleFileSelect(x.files),x.value=""});let a=o.attachments.dropOverlay,f=Qf(a);xe.appendChild(f)}let fm=()=>sn?.prefetch();if(o.contextMentions?.enabled&&Q&&(sn=pg({config:o,textarea:Q,anchor:y??Q,getMessages:()=>V.getMessages(),liveRegionHost:xe}),sn)){let a=Q;a.parentElement?.insertBefore(sn.contextRow,a);let f=sn.affordanceButtons;for(let m=f.length-1;m>=0;m--){let x=f[m];ze?ze.insertBefore(x,ze.firstChild):y?.appendChild(x)}}(()=>{let a=o.layout?.slots??{},f=x=>{switch(x){case"body-top":return xe.querySelector(".persona-rounded-2xl.persona-bg-persona-surface.persona-p-6")||null;case"messages":return We;case"footer-top":return bt;case"composer":return y;case"footer-bottom":return H;default:return null}},m=(x,T)=>{switch(x){case"header-left":case"header-center":case"header-right":if(x==="header-left")Le.insertBefore(T,Le.firstChild);else if(x==="header-right")Le.appendChild(T);else{let R=Le.querySelector(".persona-flex-col");R?R.parentNode?.insertBefore(T,R.nextSibling):Le.appendChild(T)}break;case"body-top":{let R=ue.querySelector(".persona-rounded-2xl.persona-bg-persona-surface.persona-p-6");R?R.replaceWith(T):ue.insertBefore(T,ue.firstChild);break}case"body-bottom":ue.appendChild(T);break;case"footer-top":bt.replaceWith(T);break;case"footer-bottom":H.replaceWith(T);break;default:break}};for(let[x,T]of Object.entries(a))if(T)try{let R=T({config:o,defaultContent:()=>f(x)});R&&m(x,R)}catch(R){typeof console<"u"&&console.error(`[AgentWidget] Error rendering slot "${x}":`,R)}})();let sd=a=>{let m=a.target.closest('button[data-expand-header="true"]');if(!m)return;let x=m.closest(".persona-reasoning-bubble, .persona-tool-bubble, .persona-approval-bubble");if(!x)return;let T=x.getAttribute("data-message-id");if(!T)return;let R=m.getAttribute("data-bubble-type");if(R==="reasoning")kr.has(T)?kr.delete(T):kr.add(T),uf(T,x);else if(R==="tool")Lr.has(T)?Lr.delete(T):Lr.add(T),gf(T,x,o);else if(R==="approval"){let q=((o.approval!==!1?o.approval:void 0)?.detailsDisplay??"collapsed")==="expanded",Z=jo.get(T)??q;jo.set(T,!Z),yf(T,x,o)}Lo.delete(T)};We.addEventListener("pointerdown",a=>{a.target.closest('button[data-expand-header="true"]')&&(a.preventDefault(),sd(a))}),We.addEventListener("keydown",a=>{let f=a.target;(a.key==="Enter"||a.key===" ")&&f.closest('button[data-expand-header="true"]')&&(a.preventDefault(),sd(a))}),We.addEventListener("copy",a=>{let{clipboardData:f}=a;if(!f)return;let m=We.getRootNode(),x=typeof m.getSelection=="function"?m.getSelection():window.getSelection();if(!x||x.isCollapsed)return;let T=x.toString(),R=_g(T);!R||R===T||(f.setData("text/plain",R),a.preventDefault())});let Qa=new Map,id=null,ad="idle",mm={idle:{icon:"volume-2",label:"Read aloud"},loading:{icon:"loader-circle",label:"Loading\u2026"},playing:{icon:"pause",label:"Pause"},paused:{icon:"play",label:"Resume"}},hm=(a,f)=>{let{icon:m,label:x}=mm[f];a.setAttribute("aria-label",x),a.title=x,a.setAttribute("aria-pressed",f==="idle"?"false":"true"),a.classList.toggle("persona-message-action-active",f!=="idle"),a.classList.toggle("persona-message-action-loading",f==="loading");let T=ae(m,14,"currentColor",2);T&&(a.innerHTML="",a.appendChild(T))},ld=()=>{We.querySelectorAll('[data-action="read-aloud"]').forEach(f=>{let x=f.closest("[data-actions-for]")?.getAttribute("data-actions-for")??null;hm(f,x&&x===id?ad:"idle")})};We.addEventListener("click",a=>{let m=a.target.closest(".persona-message-action-btn[data-action]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.closest("[data-actions-for]");if(!x)return;let T=x.getAttribute("data-actions-for");if(!T)return;let R=m.getAttribute("data-action");if(R==="copy"){let q=V.getMessages().find(Z=>Z.id===T);if(q&&Ge.onCopy){let Z=q.content||"";navigator.clipboard.writeText(Z).then(()=>{m.classList.add("persona-message-action-success");let re=ae("check",14,"currentColor",2);re&&(m.innerHTML="",m.appendChild(re)),setTimeout(()=>{m.classList.remove("persona-message-action-success");let me=ae("copy",14,"currentColor",2);me&&(m.innerHTML="",m.appendChild(me))},2e3)}).catch(re=>{typeof console<"u"&&console.error("[AgentWidget] Failed to copy message:",re)}),Ge.onCopy(q)}}else if(R==="read-aloud")V.toggleReadAloud(T);else if(R==="upvote"||R==="downvote"){let q=(Qa.get(T)??null)===R,Z=R==="upvote"?"thumbs-up":"thumbs-down";if(q){Qa.delete(T),m.classList.remove("persona-message-action-active");let re=ae(Z,14,"currentColor",2);re&&(m.innerHTML="",m.appendChild(re))}else{let re=R==="upvote"?"downvote":"upvote",me=x.querySelector(`[data-action="${re}"]`);if(me){me.classList.remove("persona-message-action-active");let tt=ae(re==="upvote"?"thumbs-up":"thumbs-down",14,"currentColor",2);tt&&(me.innerHTML="",me.appendChild(tt))}Qa.set(T,R),m.classList.add("persona-message-action-active");let ce=ae(Z,14,"currentColor",2);ce&&(ce.setAttribute("fill","currentColor"),m.innerHTML="",m.appendChild(ce)),m.classList.remove("persona-message-action-pop"),m.offsetWidth,m.classList.add("persona-message-action-pop");let je=V.getMessages().find(dt=>dt.id===T);je&&Ge.onFeedback&&Ge.onFeedback({type:R,messageId:je.id,message:je})}}}),We.addEventListener("click",a=>{let m=a.target.closest("button[data-approval-action]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.closest(".persona-approval-bubble");if(!x)return;let T=x.getAttribute("data-message-id");if(!T)return;let R=m.getAttribute("data-approval-action");if(!R)return;let ne=R==="approve"?"approved":"denied",Z=V.getMessages().find(me=>me.id===T);if(!Z?.approval)return;let re=x.querySelector("[data-approval-buttons]");re&&re.querySelectorAll("button").forEach(ce=>{ce.disabled=!0,ce.style.opacity="0.5",ce.style.cursor="not-allowed"}),Z.approval.toolType==="webmcp"?V.resolveWebMcpApproval(T,ne):V.resolveApproval(Z.approval,ne)});let Qe=null,Or=null,Fr=()=>{},_r="none",Ys=null,Cn={artifacts:[],selectedId:null},Dn=!1,wn=!1,$r=!1,Xo=!1,cd=()=>Xo||Cn.artifacts.some(a=>uo(o.features?.artifacts,a)==="panel"),Zs=()=>Cn.artifacts.length>0&&!Dn&&cd(),at={current:null},Xa=(a,f)=>{let m=V.getArtifactById(f),x=m?.markdown,T=m?.title||"artifact",R=m?.file,ne=m?.artifactType??"markdown";if(!x){let re=a.closest("[data-open-artifact], [data-artifact-inline]")?.closest("[data-message-id]")?.getAttribute("data-message-id");if(re){let ce=V.getMessages().find(Ae=>Ae.id===re);if(ce?.rawContent)try{let Ae=JSON.parse(ce.rawContent);x=Ae?.props?.markdown,T=Ae?.props?.title||T,Ae?.props?.file&&typeof Ae.props.file=="object"&&(R=Ae.props.file),!m&&typeof Ae?.props?.artifactType=="string"&&(ne=Ae.props.artifactType)}catch{}}}return{markdown:x,title:T,file:R,artifactType:ne}};We.addEventListener("click",a=>{let m=a.target.closest("[data-download-artifact]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.getAttribute("data-download-artifact");if(!x||o.features?.artifacts?.onArtifactAction?.({type:"download",artifactId:x})===!0)return;let{markdown:R,title:ne,file:q}=Xa(m,x);if(!R)return;let{filename:Z,mime:re,content:me}=Cg({title:ne,markdown:R,file:q}),ce=new Blob([me],{type:re}),Ae=URL.createObjectURL(ce),je=document.createElement("a");je.href=Ae,je.download=Z,je.click(),URL.revokeObjectURL(Ae)}),We.addEventListener("click",a=>{let m=a.target.closest("[data-artifact-custom-action]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.getAttribute("data-artifact-custom-action");if(!x)return;let T=m.closest("[data-artifact-inline]"),R=T?null:m.closest("[data-open-artifact]"),ne=T?T.getAttribute("data-artifact-inline"):R?.getAttribute("data-open-artifact")??null,Z=(T?o.features?.artifacts?.inlineActions:o.features?.artifacts?.cardActions)?.find(dt=>dt.id===x);if(!Z)return;let{markdown:re,title:me,file:ce,artifactType:Ae}=Xa(m,ne??""),je={artifactId:ne,title:me,artifactType:Ae,markdown:re,file:ce};try{Promise.resolve(Z.onClick(je)).catch(()=>{})}catch{}}),We.addEventListener("click",a=>{let m=a.target.closest("[data-copy-artifact]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.getAttribute("data-copy-artifact");if(!x)return;let T=V.getArtifactById(x),R="";if(T)R=Hs(T);else{let{markdown:ne,file:q,artifactType:Z}=Xa(m,x);Z==="markdown"&&(R=Hs({id:x,artifactType:"markdown",status:"complete",markdown:ne??"",...q?{file:q}:{}}))}R&&navigator.clipboard.writeText(R).then(()=>{let ne=ae("check",16,"currentColor",2);ne&&(m.replaceChildren(ne),setTimeout(()=>{let q=ae("copy",16,"currentColor",2);q&&m.replaceChildren(q)},1500))}).catch(()=>{})}),We.addEventListener("click",a=>{let m=a.target.closest("[data-expand-artifact-inline]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.getAttribute("data-expand-artifact-inline");!x||o.features?.artifacts?.onArtifactAction?.({type:"open",artifactId:x})===!0||(Dn=!1,Xo=!0,wn=!0,$r=!0,V.selectArtifact(x),Nn())}),We.addEventListener("click",a=>{let f=a.target;if(f.closest("[data-download-artifact]")||f.closest("[data-artifact-custom-action]"))return;let m=f.closest("[data-open-artifact]");if(!m)return;let x=m.getAttribute("data-open-artifact");!x||o.features?.artifacts?.onArtifactAction?.({type:"open",artifactId:x})===!0||(a.preventDefault(),a.stopPropagation(),Dn=!1,Xo=!0,V.selectArtifact(x),Nn())}),We.addEventListener("keydown",a=>{if(a.key!=="Enter"&&a.key!==" ")return;let f=a.target;!f.hasAttribute("data-open-artifact")&&!f.hasAttribute("data-expand-artifact-inline")||(a.preventDefault(),f.click())});let Jo=He.composerOverlay,Yo=(a,f,m)=>{let x=f.trim();if(!x||!at.current)return;let T=a.getAttribute("data-tool-call-id")??"",R=m.source==="free-text";t.dispatchEvent(new CustomEvent("persona:askUserQuestion:answered",{detail:{toolUseId:T,answer:x,answers:m.structured,values:m.values??(m.source==="multi"?x.split(", "):[x]),isFreeText:R,source:m.source},bubbles:!0,composed:!0})),fr(Jo,T);let ne=at.current.getMessages().find(q=>q.toolCall?.id===T);ne?.agentMetadata?.awaitingLocalTool?at.current.resolveAskUserQuestion(ne,m.structured??x):at.current.sendMessage(x)},Mo=a=>{let f=at.current;if(!f)return;let m=a.getAttribute("data-tool-call-id")??"",x=f.getMessages().find(T=>T.toolCall?.id===m);x&&f.persistAskUserQuestionProgress(x,{answers:Wi(a,x),currentIndex:vn(a)})},dd=a=>Object.entries(a).map(([f,m])=>`${f}: ${Array.isArray(m)?m.join(", "):m}`).join(" | "),Ja=a=>{if(o.features?.askUserQuestion?.groupedAutoAdvance===!1)return;let f=vn(a),m=gr(a);if(f>=m-1)return;let x=at.current?.getMessages().find(T=>T.toolCall?.id===a.getAttribute("data-tool-call-id"));x&&(Bi(a,x,o,f+1),Mo(a))};Jo.addEventListener("click",a=>{let m=a.target.closest("[data-ask-user-action]");if(!m)return;let x=m.closest("[data-persona-ask-sheet-for]");if(!x)return;let T=m.getAttribute("data-ask-user-action");if(a.preventDefault(),a.stopPropagation(),T==="dismiss"){let R=x.getAttribute("data-tool-call-id")??"";t.dispatchEvent(new CustomEvent("persona:askUserQuestion:dismissed",{detail:{toolUseId:R},bubbles:!0,composed:!0})),fr(Jo,R);let ne=at.current?.getMessages().find(q=>q.toolCall?.id===R);ne?.agentMetadata?.awaitingLocalTool&&(at.current?.markAskUserQuestionResolved(ne),at.current?.resolveAskUserQuestion(ne,"(dismissed)"));return}if(T==="pick"){let R=m.getAttribute("data-option-label");if(!R)return;let ne=x.getAttribute("data-multi-select")==="true",q=fo(x);if(q&&ne){let Z=Fo(x)[vn(x)],re=new Set(Array.isArray(Z)?Z:[]);re.has(R)?re.delete(R):re.add(R),mo(x,Array.from(re)),Mo(x);return}if(q){mo(x,R),Mo(x),Ja(x);return}if(ne){let Z=m.getAttribute("aria-pressed")==="true";m.setAttribute("aria-pressed",Z?"false":"true"),m.classList.toggle("persona-ask-pill-selected",!Z);let re=x.querySelector('[data-ask-user-action="submit-multi"]');re&&(re.disabled=Il(x).length===0);return}Yo(x,R,{source:"pick",values:[R]});return}if(T==="submit-multi"){let R=Il(x);if(R.length===0)return;Yo(x,R.join(", "),{source:"multi",values:R});return}if(T==="open-free-text"){let R=x.querySelector('[data-ask-free-text-row="true"]');R&&(R.classList.remove("persona-hidden"),R.querySelector('[data-ask-free-text-input="true"]')?.focus());return}if(T==="focus-free-text"){x.querySelector('[data-ask-free-text-input="true"]')?.focus();return}if(T==="submit-free-text"){let ne=x.querySelector('[data-ask-free-text-input="true"]')?.value??"";if(!ne.trim())return;if(fo(x)){mo(x,ne.trim()),Mo(x),Ja(x);return}Yo(x,ne,{source:"free-text"});return}if(T==="next"||T==="back"){if(!at.current)return;let R=x.getAttribute("data-tool-call-id")??"",ne=at.current.getMessages().find(ce=>ce.toolCall?.id===R);if(!ne)return;let Z=x.querySelector('[data-ask-free-text-input="true"]')?.value?.trim()??"";if(Z){let ce=Fo(x)[vn(x)];(typeof ce!="string"||ce!==Z)&&mo(x,Z)}let re=T==="next"?1:-1,me=vn(x)+re;Bi(x,ne,o,me),Mo(x);return}if(T==="submit-all"){if(!at.current)return;let R=x.getAttribute("data-tool-call-id")??"",ne=at.current.getMessages().find(ce=>ce.toolCall?.id===R);if(!ne)return;let Z=x.querySelector('[data-ask-free-text-input="true"]')?.value?.trim()??"";Z&&mo(x,Z);let re=Wi(x,ne);at.current.persistAskUserQuestionProgress(ne,{answers:re,currentIndex:vn(x)});let me=dd(re);Yo(x,me||"(submitted)",{source:"submit-all",structured:re});return}if(T==="skip"){if(!at.current)return;let R=x.getAttribute("data-tool-call-id")??"",ne=at.current.getMessages().find(Ae=>Ae.toolCall?.id===R);if(!ne)return;let q=fo(x),Z=vn(x),re=gr(x),me=Z>=re-1;if(!q){t.dispatchEvent(new CustomEvent("persona:askUserQuestion:dismissed",{detail:{toolUseId:R},bubbles:!0,composed:!0})),fr(Jo,R),ne.agentMetadata?.awaitingLocalTool&&(at.current.markAskUserQuestionResolved(ne),at.current.resolveAskUserQuestion(ne,"(dismissed)"));return}mo(x,"");let ce=x.querySelector('[data-ask-free-text-input="true"]');if(ce&&(ce.value=""),me){let Ae=Wi(x,ne),je=dd(Ae);Yo(x,je||"(skipped)",{source:"submit-all",structured:Ae});return}Bi(x,ne,o,Z+1),Mo(x);return}}),Jo.addEventListener("keydown",a=>{if(a.key!=="Enter")return;let m=a.target;if(!m.matches?.('[data-ask-free-text-input="true"]'))return;let x=m.closest("[data-persona-ask-sheet-for]");if(!x)return;a.preventDefault();let T=m.value;if(T.trim()){if(fo(x)){mo(x,T.trim()),Mo(x),Ja(x);return}Yo(x,T,{source:"free-text"})}});let pd=a=>{if(!/^[1-9]$/.test(a.key)||a.metaKey||a.ctrlKey||a.altKey)return;let f=a.target;if(f?.tagName==="INPUT"||f?.tagName==="TEXTAREA"||f?.isContentEditable)return;let m=Jo.querySelector("[data-persona-ask-sheet-for]");if(!m||m.getAttribute("data-ask-layout")!=="rows"||m.getAttribute("data-multi-select")==="true")return;let x=Number(a.key),R=m.querySelectorAll('[data-ask-pill-list="true"] [data-ask-user-action="pick"], [data-ask-pill-list="true"] [data-ask-user-action="focus-free-text"]')[x-1];R&&(a.preventDefault(),R.click())};document.addEventListener("keydown",pd);let eo=null,vt=null,zr=null,ei=null,Ya=()=>{},ud=!1,ti="",ni="";function Za(){ei?.(),ei=null}let gd=()=>{if(!eo||!vt)return;let a=t.classList.contains("persona-artifact-welded-split"),f=t.ownerDocument.defaultView??window,m=f.innerWidth<=640;if(!a||t.classList.contains("persona-artifact-narrow-host")||m){vt.style.removeProperty("position"),vt.style.removeProperty("left"),vt.style.removeProperty("top"),vt.style.removeProperty("bottom"),vt.style.removeProperty("width"),vt.style.removeProperty("z-index");return}let x=eo.firstElementChild;if(!x||x===vt)return;let T=10;vt.style.position="absolute",vt.style.top="0",vt.style.bottom="0",vt.style.width=`${T}px`,vt.style.zIndex="5";let R=Hc(eo,f),ne=x.offsetWidth+R/2-T/2;vt.style.left=`${Math.max(0,ne)}px`},oi=()=>{},ym=()=>{let a=t.ownerDocument.defaultView??window,f=o.launcher?.mobileFullscreen??!0,m=o.launcher?.mobileBreakpoint??640;return!f||a.innerWidth>m?!1:E||_t(o)},ri=()=>!nn(o)||!Zs()||t.classList.contains("persona-artifact-narrow-host")||ym()||(t.ownerDocument.defaultView??window).innerWidth<Dx?"none":Ic(o)?"detached":"welded",Nn=()=>{if(!Qe||!nn(o))return;qs(t,o),Ks(t,o),oi();let a=o.features?.artifacts?.layout?.narrowHostMaxWidth??520,f=ye.getBoundingClientRect().width||0;t.classList.toggle("persona-artifact-narrow-host",f>0&&f<=a);let m=Zs();Qe.setVisible(m),Qe.update(Cn),Dn?(Qe.setMobileOpen(!1),Qe.element.classList.add("persona-hidden"),Qe.backdrop?.classList.add("persona-hidden"),wn=!1,$r=!1):Cn.artifacts.length>0&&cd()?(Qe.element.classList.remove("persona-hidden"),Qe.setMobileOpen(!0)):(Qe.setMobileOpen(!1),Qe.element.classList.add("persona-hidden"),Qe.backdrop?.classList.add("persona-hidden"),wn=!1,$r=!1);let x=o.features?.artifacts?.layout?.showExpandToggle===!0;if(Qe.setExpandToggleVisible(x),Qe.setCopyButtonVisible(o.features?.artifacts?.layout?.showCopyButton===!0),Qe.setCustomActions(o.features?.artifacts?.toolbarActions??[]),Qe.setTabFade(o.features?.artifacts?.layout?.tabFade),Qe.setRenderTabBar(o.features?.artifacts?.renderTabBar),!x&&!$r&&(wn=!1),wn!==ud){let R=Qe.element;wn?(ti=R.style.width,ni=R.style.maxWidth,R.style.removeProperty("width"),R.style.removeProperty("max-width")):(ti&&(R.style.width=ti),ni&&(R.style.maxWidth=ni),ti="",ni=""),ud=wn}t.classList.toggle("persona-artifact-expanded",wn),Qe.setExpanded(wn);let T=ri();T!==_r&&(_r=T,Fr()),Ya()};if(nn(o)){ye.style.position="relative";let a=v("div","persona-flex persona-flex-1 persona-flex-col persona-min-w-0 persona-min-h-0"),f=v("div","persona-flex persona-h-full persona-w-full persona-min-h-0 persona-artifact-split-root");a.appendChild(xe),Qe=Mf(o,{onSelect:m=>at.current?.selectArtifact(m),onDismiss:()=>{Dn=!0,Nn()},onToggleExpand:()=>{let m=!wn,x=Cn.selectedId??Cn.artifacts[Cn.artifacts.length-1]?.id??null;o.features?.artifacts?.onArtifactAction?.({type:"expand",artifactId:x,expanded:m})!==!0&&(wn=m,m||($r=!1),Nn())}}),Qe.element.classList.add("persona-hidden"),eo=f,f.appendChild(a),f.appendChild(Qe.element),Qe.backdrop&&ye.appendChild(Qe.backdrop),ye.appendChild(f),Ya=()=>{if(!eo||!Qe)return;if(!(o.features?.artifacts?.layout?.resizable===!0)){zr?.(),zr=null,Za(),vt&&(vt.remove(),vt=null),Qe.element.style.removeProperty("width"),Qe.element.style.removeProperty("maxWidth");return}if(!vt){let x=v("div","persona-artifact-split-handle persona-shrink-0 persona-h-full");x.setAttribute("role","separator"),x.setAttribute("aria-orientation","vertical"),x.setAttribute("aria-label","Resize artifacts panel"),x.tabIndex=0;let T=t.ownerDocument,R=T.defaultView??window,ne=q=>{if(!Qe||q.button!==0||t.classList.contains("persona-artifact-narrow-host")||t.classList.contains("persona-artifact-expanded")||R.innerWidth<=640)return;q.preventDefault(),Za();let Z=q.clientX,re=Qe.element.getBoundingClientRect().width,me=o.features?.artifacts?.layout,ce=je=>{let dt=eo.getBoundingClientRect().width,tt=t.classList.contains("persona-artifact-welded-split"),cn=Hc(eo,R),Et=tt?0:x.getBoundingClientRect().width||6,It=re-(je.clientX-Z),_=Hf(It,dt,cn,Et,me?.resizableMinWidth,me?.resizableMaxWidth);Qe.element.style.width=`${_}px`,Qe.element.style.maxWidth="none",gd()},Ae=()=>{T.removeEventListener("pointermove",ce),T.removeEventListener("pointerup",Ae),T.removeEventListener("pointercancel",Ae),ei=null;try{x.releasePointerCapture(q.pointerId)}catch{}};ei=Ae,T.addEventListener("pointermove",ce),T.addEventListener("pointerup",Ae),T.addEventListener("pointercancel",Ae);try{x.setPointerCapture(q.pointerId)}catch{}};x.addEventListener("pointerdown",ne),vt=x,eo.insertBefore(x,Qe.element),zr=()=>{x.removeEventListener("pointerdown",ne)}}if(vt){let x=Zs();vt.classList.toggle("persona-hidden",!x),gd()}},oi=()=>{if(!E||!Qe||(o.launcher?.sidebarMode??!1)||_t(o)&&xn(o).reveal==="emerge")return;let x=t.ownerDocument.defaultView??window,T=o.launcher?.mobileFullscreen??!0,R=o.launcher?.mobileBreakpoint??640;if(T&&x.innerWidth<=R||!kf(o,E))return;let ne=o.launcher?.width??o.launcherWidth??Gn,q=o.features?.artifacts?.layout?.expandedPanelWidth??"min(720px, calc(100vw - 24px))";Zs()?(ye.style.width=q,ye.style.maxWidth=q):(ye.style.width=ne,ye.style.maxWidth=ne)},typeof ResizeObserver<"u"&&(Or=new ResizeObserver(()=>{Nn()}),Or.observe(ye))}else ye.appendChild(xe);P()&&Ye&&(He.peekBanner&&Ye.appendChild(He.peekBanner),Ye.appendChild(Se)),t.appendChild(De),Ye&&t.appendChild(Ye);let si=()=>{if(P()){ye.style.width="100%",ye.style.maxWidth="100%";let kt=o.launcher?.composerBar??{},rn=De.dataset.state==="expanded",wi=kt.expandedSize??"anchored";if(!(rn&&wi!=="fullscreen")){xe.style.background="",xe.style.border="",xe.style.borderRadius="",xe.style.overflow="",xe.style.boxShadow="";return}let as=o.theme?.components?.panel,Ai=wr(o),ir=($n,No)=>$n==null||$n===""?No:en(Ai,$n)??$n,Si="1px solid var(--persona-border)",xl="var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25))",Do="var(--persona-panel-radius, var(--persona-radius-xl, 0.75rem))";xe.style.background="var(--persona-surface, #ffffff)",xe.style.border=ir(as?.border,Si),xe.style.borderRadius=ir(as?.borderRadius,Do),xe.style.boxShadow=ir(as?.shadow,xl),xe.style.overflow="hidden";return}let a=_t(o),f=o.launcher?.sidebarMode??!1,m=a||f||(o.launcher?.fullHeight??!1),x=o.launcher?.enabled===!1,T=o.launcher?.detachedPanel===!0,R=o.theme?.components?.panel,ne=wr(o),q=(kt,rn)=>kt==null||kt===""?rn:en(ne,kt)??kt,Z=t.ownerDocument.defaultView??window,re=o.launcher?.mobileFullscreen??!0,me=o.launcher?.mobileBreakpoint??640,ce=Z.innerWidth<=me,Ae=re&&ce&&E,je=a&&re&&ce,dt=o.launcher?.position??"bottom-left",tt=dt==="bottom-left"||dt==="top-left",cn=o.launcher?.zIndex??Qt,Et="var(--persona-panel-border, 1px solid var(--persona-border))",It="var(--persona-panel-shadow, var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25)))",_="var(--persona-panel-radius, var(--persona-radius-xl, 0.75rem))",Pe=T&&!Ae&&!je;Pe?t.setAttribute("data-persona-panel-detached","true"):t.removeAttribute("data-persona-panel-detached");let Oe=Pe?Et:f||Ae?"none":Et,Ee=Pe?It:Ae?"none":f?tt?"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))":x?"none":It;a&&!Ae&&!Pe&&(Ee="none",Oe="none");let St=Pe?_:f||Ae?"0":_,pt=q(R?.border,Oe),Ft=q(R?.shadow,Ee),ut=q(R?.borderRadius,St),on=ri(),Rt=on==="detached",Ie=on==="welded";t.classList.toggle("persona-artifact-detached-split",Rt),t.classList.toggle("persona-artifact-welded-split",Ie);let Fe="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)))))",Ct=(o.features?.artifacts?.layout?.chatSurface==="flush"?"flush":"card")==="flush"&&nn(o)&&Ic(o)&&x&&!a;t.classList.toggle("persona-artifact-chat-flush",Ct);let lt=Rt||Ct?"none":Ft,ft=Rt?Et:Ie?"none":pt,Xe=Rt?_:ut;Ct&&(ft="none",Xe="0");let Be=R?.borderRadius!=null&&R.borderRadius!=="",yt=Ct&&!Be?"0":ut,qt=ue.scrollTop;t.style.cssText="",De.style.cssText="",ye.style.cssText="",xe.style.cssText="",ue.style.cssText="",Se.style.cssText="",Ve&&(ue.style.display="none"),(m||x)&&(t.style.minWidth="0");let yn=()=>{if(qt<=0)return;(ue.ownerDocument.defaultView??window).requestAnimationFrame(()=>{if(ue.scrollTop===qt)return;let rn=ue.scrollHeight-ue.clientHeight;rn<=0||(ue.scrollTop=Math.min(qt,rn))})};if(Ae){De.classList.remove("persona-bottom-6","persona-right-6","persona-left-6","persona-top-6","persona-bottom-4","persona-right-4","persona-left-4","persona-top-4"),De.style.cssText=`
|
|
219
|
+
`,$.addEventListener("click",()=>{g=z,I.forEach((F,B)=>{let H=B<z;F.classList.toggle("selected",H),F.setAttribute("aria-checked",B===z-1?"true":"false")})}),I.push($),M.appendChild($)}b.appendChild(M);let S=null;if(p){let z=document.createElement("div");z.className="persona-feedback-comment-container",S=document.createElement("textarea"),S.className="persona-feedback-comment",S.placeholder=s,S.rows=3,S.setAttribute("aria-label","Additional comments"),z.appendChild(S),b.appendChild(z)}let E=document.createElement("div");E.className="persona-feedback-actions";let L=document.createElement("button");L.type="button",L.className="persona-feedback-btn persona-feedback-btn-skip",L.textContent=l,L.addEventListener("click",()=>{n?.(),d.remove()});let D=document.createElement("button");return D.type="button",D.className="persona-feedback-btn persona-feedback-btn-submit",D.textContent=i,D.addEventListener("click",async()=>{if(g===null){M.classList.add("persona-feedback-shake"),setTimeout(()=>M.classList.remove("persona-feedback-shake"),500);return}D.disabled=!0,D.textContent="Submitting...";try{let z=S?.value.trim()||void 0;await e(g,z),d.remove()}catch(z){D.disabled=!1,D.textContent=i,console.error("[CSAT Feedback] Failed to submit:",z)}}),E.appendChild(L),E.appendChild(D),b.appendChild(E),d.appendChild(b),d}function th(t){let{onSubmit:e,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:i="Submit",skipText:l="Skip",showComment:p=!0,lowLabel:c="Not likely",highLabel:d="Very likely"}=t,g=document.createElement("div");g.className="persona-feedback-container persona-feedback-nps",g.setAttribute("role","dialog"),g.setAttribute("aria-label","Net Promoter Score feedback");let b=null,f=document.createElement("div");f.className="persona-feedback-content";let y=document.createElement("div");y.className="persona-feedback-header";let C=document.createElement("h3");C.className="persona-feedback-title",C.textContent=o,y.appendChild(C);let M=document.createElement("p");M.className="persona-feedback-subtitle",M.textContent=r,y.appendChild(M),f.appendChild(y);let I=document.createElement("div");I.className="persona-feedback-rating persona-feedback-rating-nps",I.setAttribute("role","radiogroup"),I.setAttribute("aria-label","Likelihood rating from 0 to 10");let S=document.createElement("div");S.className="persona-feedback-labels";let E=document.createElement("span");E.className="persona-feedback-label-low",E.textContent=c;let L=document.createElement("span");L.className="persona-feedback-label-high",L.textContent=d,S.appendChild(E),S.appendChild(L);let D=document.createElement("div");D.className="persona-feedback-numbers";let z=[];for(let w=0;w<=10;w++){let N=document.createElement("button");N.type="button",N.className="persona-feedback-rating-btn persona-feedback-number-btn",N.setAttribute("role","radio"),N.setAttribute("aria-checked","false"),N.setAttribute("aria-label",`Rating ${w} out of 10`),N.textContent=String(w),N.dataset.rating=String(w),w<=6?N.classList.add("persona-feedback-detractor"):w<=8?N.classList.add("persona-feedback-passive"):N.classList.add("persona-feedback-promoter"),N.addEventListener("click",()=>{b=w,z.forEach((K,te)=>{K.classList.toggle("selected",te===w),K.setAttribute("aria-checked",te===w?"true":"false")})}),z.push(N),D.appendChild(N)}I.appendChild(S),I.appendChild(D),f.appendChild(I);let $=null;if(p){let w=document.createElement("div");w.className="persona-feedback-comment-container",$=document.createElement("textarea"),$.className="persona-feedback-comment",$.placeholder=s,$.rows=3,$.setAttribute("aria-label","Additional comments"),w.appendChild($),f.appendChild(w)}let F=document.createElement("div");F.className="persona-feedback-actions";let B=document.createElement("button");B.type="button",B.className="persona-feedback-btn persona-feedback-btn-skip",B.textContent=l,B.addEventListener("click",()=>{n?.(),g.remove()});let H=document.createElement("button");return H.type="button",H.className="persona-feedback-btn persona-feedback-btn-submit",H.textContent=i,H.addEventListener("click",async()=>{if(b===null){D.classList.add("persona-feedback-shake"),setTimeout(()=>D.classList.remove("persona-feedback-shake"),500);return}H.disabled=!0,H.textContent="Submitting...";try{let w=$?.value.trim()||void 0;await e(b,w),g.remove()}catch(w){H.disabled=!1,H.textContent=i,console.error("[NPS Feedback] Failed to submit:",w)}}),F.appendChild(B),F.appendChild(H),f.appendChild(F),g.appendChild(f),g}var es="persona-chat-history",uC=30*1e3,gC=641,fC={"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 mC(t){if(!t)return[];let e=[],n=Array.from(t.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){e.push(r);continue}let s=fC[r.type]??"png";e.push(new File([r],`clipboard-image-${Date.now()}.${s}`,{type:r.type,lastModified:Date.now()}))}if(e.length>0)return e;for(let o of Array.from(t.files??[]))o.type.startsWith("image/")&&e.push(o);return e}function ul(t){if(!t)return!1;let e=t.types;return e?typeof e.contains=="function"?e.contains("Files"):Array.from(e).includes("Files"):!1}function hC(t){return t?t===!0?{storage:"session",keyPrefix:"persona-",persist:{openState:!0,voiceState:!0,focusInput:!0},clearOnChatClear:!0}:{storage:t.storage??"session",keyPrefix:t.keyPrefix??"persona-",persist:{openState:t.persist?.openState??!0,voiceState:t.persist?.voiceState??!0,focusInput:t.persist?.focusInput??!0},clearOnChatClear:t.clearOnChatClear??!0}:null}function bC(t){try{let e=t==="local"?localStorage:sessionStorage,n="__persist_test__";return e.setItem(n,"1"),e.removeItem(n),e}catch{return null}}var Id=t=>!t||typeof t!="object"?{}:{...t},nh=t=>t.map(e=>({...e,streaming:!1})),oh=(t,e,n)=>{let o=t?.markdown?Qi(t.markdown):null,r=Xi(t?.sanitize);return t?.postprocessMessage&&r&&t?.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."),s=>{let i=s.text??"",l=s.message.rawContent??null;if(e){let d=e.process({text:i,raw:l??i,message:s.message,streaming:s.streaming});d!==null&&(i=d.text,d.persist||(s.message.__skipPersist=!0),d.resubmit&&!s.streaming&&n&&n())}let p=Jn()!==null,c;if(t?.postprocessMessage){let d=t.postprocessMessage({...s,text:i,raw:l??s.text??""});c=r?r(d):d}else if(o){let d=s.streaming?Tu(i):i,g=o(d);c=r&&p?r(g):g}else c=vo(i);return c}};function rh(t){let e=v("div","persona-attachment-drop-overlay");t?.background&&e.style.setProperty("--persona-drop-overlay-bg",t.background),t?.backdropBlur!==void 0&&e.style.setProperty("--persona-drop-overlay-blur",t.backdropBlur),t?.border&&e.style.setProperty("--persona-drop-overlay-border",t.border),t?.borderRadius&&e.style.setProperty("--persona-drop-overlay-radius",t.borderRadius),t?.inset&&e.style.setProperty("--persona-drop-overlay-inset",t.inset),t?.labelSize&&e.style.setProperty("--persona-drop-overlay-label-size",t.labelSize),t?.labelColor&&e.style.setProperty("--persona-drop-overlay-label-color",t.labelColor);let n=t?.iconName??"upload",o=t?.iconSize??"48px",r=t?.iconColor??"rgba(59, 130, 246, 0.6)",s=t?.iconStrokeWidth??.5,i=ie(n,o,r,s);if(i&&e.appendChild(i),t?.label){let l=v("span","persona-drop-overlay-label");l.textContent=t.label,e.appendChild(l)}return e}var yC=(t,e)=>{let n={...t};for(let[o,r]of Object.entries(e)){let s=n[o];n[o]=s?{...s,...r}:r}return n},vC=t=>t.reduce((e,n)=>({blocks:[...e.blocks,...n.blocks],contentParts:[...e.contentParts,...n.contentParts],context:yC(e.context,n.context)}),{blocks:[],contentParts:[],context:{}}),sh=(t,e,n)=>{if(t==null)throw new Error('createAgentExperience: mount must be a non-null HTMLElement (e.g. pass document.getElementById("my-root") after the node exists).');t.id&&!t.getAttribute("data-persona-instance")&&t.setAttribute("data-persona-instance",t.id),t.hasAttribute("data-persona-root")||t.setAttribute("data-persona-root","true");let o=La(e),r=o.features;o=wd(o);let s=Md.getForInstance(o.plugins),i=!1,l=xm(()=>o),{plugin:p,teardown:c}=km();o.components&&oo.registerAll(o.components);let d=Gm(),b=o.persistState===!1?null:o.storageAdapter??Xm(),f={},y=null,C=!1,M=a=>{if(o.onStateLoaded)try{let u=o.onStateLoaded(a);if(u&&typeof u=="object"&&"state"in u){let{state:m,open:x}=u;return x&&(C=!0),m}return u}catch(u){typeof console<"u"&&console.error("[AgentWidget] onStateLoaded hook failed:",u)}return a};if(b?.load)try{let a=b.load();if(a&&typeof a.then=="function")y=a.then(u=>M(u??{messages:[],metadata:{}}));else{let m=M(a??{messages:[],metadata:{}});m.metadata&&(f=Id(m.metadata)),m.messages?.length&&(o={...o,initialMessages:m.messages}),m.artifacts?.length&&(o={...o,initialArtifacts:m.artifacts,initialSelectedArtifactId:m.selectedArtifactId??null})}}catch(a){typeof console<"u"&&console.error("[AgentWidget] Failed to load stored state:",a)}else if(o.onStateLoaded)try{let a=M({messages:[],metadata:{}});a.messages?.length&&(o={...o,initialMessages:a.messages})}catch(a){typeof console<"u"&&console.error("[AgentWidget] onStateLoaded hook failed:",a)}let I=()=>f,S=a=>{f=a({...f})??{},Il()},E=o.actionParsers&&o.actionParsers.length?o.actionParsers:[Ed],L=o.actionHandlers&&o.actionHandlers.length?o.actionHandlers:[mi.message,mi.messageAndClick],D=kd({parsers:E,handlers:L,getSessionMetadata:I,updateSessionMetadata:S,emit:d.emit,documentRef:typeof document<"u"?document:null});D.syncFromMetadata();let z=o.launcher?.enabled??!0,$=o.launcher?.autoExpand??!1,F=o.autoFocusInput??!1,B=$,H=z,w=o.layout?.header?.layout,N=!1,K=()=>ri(o),te=()=>z||K(),Q=K()?!1:z?$:!0,se=!1,J=null,oe=()=>{se=!0,J&&clearTimeout(J),J=setTimeout(()=>{se&&(typeof console<"u"&&console.warn("[AgentWidget] Resubmit requested but no injection occurred within 10s"),se=!1)},1e4)},Y=oh(o,D,oe),pe=o.features?.showReasoning??!0,ne=o.features?.showToolCalls??!0,me=o.features?.showEventStreamToggle??!1,ve=o.features?.scrollToBottom??{},be=o.features?.scrollBehavior??{},ze=`${(typeof o.persistState=="object"?o.persistState?.keyPrefix:void 0)??"persona-"}event-stream`,Oe=me?new pi(ze):null,Ne=o.features?.eventStream?.maxEvents??2e3,Be=me?new di(Ne,Oe):null,Ue=me?new ui:null,Me=null,Ee=!1,Ve=null,Jt=0;Oe?.open().then(()=>Be?.restore()).catch(a=>{o.debug&&console.warn("[AgentWidget] IndexedDB not available for event stream:",a)});let bt={onCopy:a=>{d.emit("message:copy",a),V?.isClientTokenMode()&&V.submitMessageFeedback(a.id,"copy").catch(u=>{o.debug&&console.error("[AgentWidget] Failed to submit copy feedback:",u)}),o.messageActions?.onCopy?.(a)},onFeedback:a=>{d.emit("message:feedback",a),V?.isClientTokenMode()&&V.submitMessageFeedback(a.messageId,a.type).catch(u=>{o.debug&&console.error("[AgentWidget] Failed to submit feedback:",u)}),o.messageActions?.onFeedback?.(a)}},Nt=o.statusIndicator??{},Mn=a=>a==="idle"?Nt.idleText??Bt.idle:a==="connecting"?Nt.connectingText??Bt.connecting:a==="connected"?Nt.connectedText??Bt.connected:a==="error"?Nt.errorText??Bt.error:a==="paused"?Nt.pausedText??Bt.paused:a==="resuming"?Nt.resumingText??Bt.resuming:Bt[a];function Tn(a,u,m,x){if(x==="idle"&&m.idleLink){a.textContent="";let A=document.createElement("a");A.href=m.idleLink,A.target="_blank",A.rel="noopener noreferrer",A.textContent=u,A.style.color="inherit",A.style.textDecoration="none",a.appendChild(A)}else a.textContent=u}let nt=vm({config:o,showClose:te()}),{wrapper:Pe,panel:xe,pillRoot:ot}=nt.shell,ke=nt.panelElements,{container:Ce,body:ce,messagesWrapper:Ae,starterSuggestions:En,transcriptSuggestions:ae,suggestions:k,textarea:W,sendButton:h,sendButtonWrapper:O,composerForm:R,statusText:_,welcomeHost:Z,welcomeIconHolder:q,greetingHost:ee,introTitle:ge,introSubtitle:qe,closeButton:fe,iconHolder:Ie,headerTitle:Ke,headerSubtitle:je,header:He,footer:Se,actionsRow:rt,rightActions:Mt}=ke,fn=ke.leftActions,bi=ke.setSendButtonMode,le=ke.micButton,mn=ke.micButtonWrapper,ct=ke.attachmentButton,hn=ke.attachmentButtonWrapper,kt=ke.attachmentInput,kn=ke.attachmentPreviewsContainer;Ce.classList.add("persona-relative"),ce.classList.add("persona-relative");let yh=12,ns=()=>ve.label??"",vh=()=>ve.iconName??"arrow-down",xh=()=>ve.enabled!==!1,an=()=>be.mode??"anchor-top",io=()=>an()==="follow"||an()==="anchor-top"&&us,os=()=>be.anchorTopOffset??16,wh=()=>be.restorePosition??"bottom",Nd=()=>be.pauseOnInteraction===!0,Fd=()=>be.showActivityWhilePinned!==!1,_d=()=>be.announce===!0,fl=()=>be.scrollbar??"on-scroll",It=v("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");It.type="button",It.style.display="none",It.setAttribute("data-persona-scroll-to-bottom","true");let rs=v("span","persona-flex persona-items-center"),ml=v("span",""),Io=v("span","");Io.setAttribute("data-persona-scroll-to-bottom-count",""),Io.style.display="none",It.append(rs,ml,Io),Ce.appendChild(It);let bn=v("div","persona-stream-anchor-spacer");bn.setAttribute("aria-hidden","true"),bn.setAttribute("data-persona-anchor-spacer",""),bn.style.flexShrink="0",bn.style.pointerEvents="none",bn.style.height="0px",bn.style.display="none",ce.appendChild(bn);let Ro=v("div","persona-sr-only");Ro.setAttribute("aria-live","polite"),Ro.setAttribute("aria-atomic","true"),Ro.setAttribute("role","status"),Ro.setAttribute("data-persona-live-region",""),Object.assign(Ro.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"}),Ce.appendChild(Ro);let ss=null,yi=null,$d=a=>{!_d()||!a||(yi=a,ss===null&&(ss=setTimeout(()=>{ss=null,yi&&_d()&&(Ro.textContent=yi),yi=null},400)))},Wo=()=>{let u=Se.style.display==="none"?0:Se.offsetHeight;It.style.bottom=`${u+yh}px`};Wo();let zd=()=>{let a=!!ns();It.setAttribute("aria-label",ns()||"Jump to latest"),It.title=ns(),It.setAttribute("data-persona-scroll-to-bottom-has-label",a?"true":"false"),rs.innerHTML="";let u=ie(vh(),"14px","currentColor",2);u?(rs.appendChild(u),rs.style.display=""):rs.style.display="none",ml.textContent=ns(),ml.style.display=a?"":"none"};zd();let wt=null,Zt=null,Ud=null,jd=s.find(a=>a.renderHeader);if(jd?.renderHeader){let a=jd.renderHeader({config:o,defaultRenderer:()=>{let u=or({config:o,showClose:te()});return ii(Ce,u,o),u.header},onClose:()=>dt(!1,"user")});if(a){let u=Ce.querySelector(".persona-border-b-persona-divider");u&&(u.replaceWith(a),He=a,nt.header.element=a)}}let hl=()=>{if(!Be)return;if(Ee=!0,!Me&&Be&&(Me=Rm({buffer:Be,getFullHistory:()=>Be.getAllFromStore(),onClose:()=>is(),config:o,plugins:s,getThroughput:()=>Ue?.getMetric()??{status:"idle"}})),Me&&(ce.style.display="none",Se.parentNode?.insertBefore(Me.element,Se),Me.update()),et){et.style.boxShadow=`inset 0 0 0 1.5px ${Yt.actionIconColor}`;let u=o.features?.eventStream?.classNames?.toggleButtonActive;u&&u.split(/\s+/).forEach(m=>m&&et.classList.add(m))}let a=()=>{if(!Ee)return;let u=Date.now();u-Jt>=200&&(Me?.update(),Jt=u),Ve=requestAnimationFrame(a)};Jt=0,Ve=requestAnimationFrame(a),Vt(),d.emit("eventStream:opened",{timestamp:Date.now()})},is=()=>{if(Ee){if(Ee=!1,Me&&Me.element.remove(),ce.style.display="",et){et.style.boxShadow="";let a=o.features?.eventStream?.classNames?.toggleButtonActive;a&&a.split(/\s+/).forEach(u=>u&&et.classList.remove(u))}Ve!==null&&(cancelAnimationFrame(Ve),Ve=null),Vt(),d.emit("eventStream:closed",{timestamp:Date.now()})}},et=null;if(me){let a=o.features?.eventStream?.classNames,u="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"+(a?.toggleButton?" "+a.toggleButton:"");et=v("button",u),et.style.width="28px",et.style.height="28px",et.style.color=Yt.actionIconColor,et.type="button",et.setAttribute("aria-label","Event Stream"),et.title="Event Stream";let m=ie("activity","18px","currentColor",1.5);m&&et.appendChild(m);let x=ke.clearChatButtonWrapper,A=ke.closeButtonWrapper,P=x||A;P&&P.parentNode===He?He.insertBefore(et,P):He.appendChild(et),et.addEventListener("click",()=>{Ee?is():hl()})}let Vd=a=>{let u=o.attachments;if(!u?.enabled)return;let m=a.querySelector("[data-persona-composer-attachment-previews]")??a.querySelector(".persona-attachment-previews");if(!m){m=v("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2"),m.setAttribute("data-persona-composer-attachment-previews",""),m.style.display="none";let A=a.querySelector("[data-persona-composer-form]");A?.parentNode?A.parentNode.insertBefore(m,A):a.insertBefore(m,a.firstChild)}if(!(a.querySelector("[data-persona-composer-attachment-input]")??a.querySelector('input[type="file"]'))){let A=v("input");A.type="file",A.setAttribute("data-persona-composer-attachment-input",""),A.accept=(u.allowedTypes??to).join(","),A.multiple=(u.maxFiles??4)>1,A.style.display="none",A.setAttribute("aria-label",u.buttonTooltipText??"Attach files"),a.appendChild(A)}},bl=s.find(a=>a.renderComposer),yl=!1,qd=a=>{if(!bl?.renderComposer)return null;let u=o.composer,m=i?V.isStreaming():!1;return bl.renderComposer({config:o,defaultRenderer:a,requestRender:()=>yb(),storage:l(bl.id),onSubmit:x=>{if(!V||V.isStreaming())return;let A=x.trim(),P=wt?.hasAttachments()??!1;if(!A&&!P)return;Kp();let G;P&&(G=[],G.push(...wt.getContentParts()),A&&G.push(Dr(A))),V.sendMessage(A,{contentParts:G}),P&&wt.clearAttachments()},streaming:m,disabled:m,openAttachmentPicker:()=>{kt?.click()},models:u?.models,selectedModelId:u?.selectedModelId,onModelChange:x=>{o.composer={...o.composer,selectedModelId:x},o.agent&&(o.agent={...o.agent,model:x})},onVoiceToggle:o.voiceRecognition?.enabled===!0?()=>{Ud?.()}:void 0})},Kd=qd(()=>ai({config:o}).footer);Kd&&(nt.replaceComposer(Kd),Se=nt.composer.footer,yl=!0);let Gd=a=>{let u=(...he)=>{for(let ue of he){let we=a.querySelector(ue);if(we)return we}return null},m=a.querySelector("[data-persona-composer-form]"),x=a.querySelector("[data-persona-composer-input]"),A=a.querySelector("[data-persona-composer-submit]"),P=a.querySelector("[data-persona-composer-mic]"),G=a.querySelector("[data-persona-composer-status]");m&&(R=m),x&&(W=x),A&&(h=A),P&&(le=P,mn=P.parentElement),G&&(_=G);let j=u("[data-persona-composer-suggestions]",".persona-mb-3.persona-flex.persona-flex-wrap.persona-gap-2");j&&(k=j);let X=u("[data-persona-composer-attachment-button]",".persona-attachment-button");X&&(ct=X,hn=X.parentElement),kt=u("[data-persona-composer-attachment-input]",'input[type="file"]'),kn=u("[data-persona-composer-attachment-previews]",".persona-attachment-previews");let re=u("[data-persona-composer-actions]",".persona-widget-composer .persona-flex.persona-items-center.persona-justify-between");re&&(rt=re),fn=u(".persona-widget-composer__left-actions")};Vd(Se),Gd(Se);let as=To(o,K());as&&(Ae.style.maxWidth=as,Ae.style.marginLeft="auto",Ae.style.marginRight="auto",Ae.style.width="100%",ee.style.maxWidth=as,ee.style.marginLeft="auto",ee.style.marginRight="auto",ee.style.width="100%",En.style.maxWidth=as,ae.style.maxWidth=as,ae.style.marginLeft="auto",ae.style.marginRight="auto",ae.style.width="100%");let Qd=()=>{let a=To(o,K());if(!(!a||K()))for(let u of[R,k,kn,_])u&&(u.style.maxWidth=a,u.style.marginLeft="auto",u.style.marginRight="auto")};Qd();let Xd=()=>{!o.attachments?.enabled||!kt||!kn||(wt?wt.remountPreviews(kn):(wt=$s.fromConfig(o.attachments),wt.setPreviewsContainer(kn)),kt.addEventListener("change",a=>{let u=a.target;wt?.handleFileSelect(u.files),u.value=""}),Ce.querySelector(".persona-attachment-drop-overlay")||Ce.appendChild(rh(o.attachments.dropOverlay)))};Xd();let Ch=()=>Zt?.prefetch(),Yd=()=>{if(!(!o.contextMentions?.enabled||!W)&&(Zt=pf({config:o,textarea:W,anchor:R??W,getMessages:()=>V.getMessages(),liveRegionHost:Ce}),Zt)){let a=W;a.parentElement?.insertBefore(Zt.contextRow,a);let u=Zt.affordanceButtons;for(let m=u.length-1;m>=0;m--){let x=u[m];fn?fn.insertBefore(x,fn.firstChild):R?.appendChild(x)}}};Yd(),(()=>{let a=o.layout?.slots??{},u=x=>{switch(x){case"body-top":return ce.querySelector("[data-persona-intro-card]");case"messages":return Ae;case"footer-top":return k;case"composer":return R;case"footer-bottom":return _;default:return null}},m=(x,A)=>{switch(x){case"header-left":case"header-center":case"header-right":if(x==="header-left")He.insertBefore(A,He.firstChild);else if(x==="header-right")He.appendChild(A);else{let P=He.querySelector(".persona-flex-col");P?P.parentNode?.insertBefore(A,P.nextSibling):He.appendChild(A)}break;case"body-top":{let P=ce.querySelector("[data-persona-intro-card]");P?P.replaceWith(A):ce.insertBefore(A,ce.firstChild);break}case"body-bottom":ce.appendChild(A);break;case"footer-top":k.replaceWith(A);break;case"footer-bottom":_.replaceWith(A);break;default:break}};for(let[x,A]of Object.entries(a))if(A)try{let P=A({config:o,defaultContent:()=>u(x)});P&&m(x,P)}catch(P){typeof console<"u"&&console.error(`[AgentWidget] Error rendering slot "${x}":`,P)}})();let Jd=a=>{let m=a.target.closest('button[data-expand-header="true"]');if(!m)return;let x=m.closest(".persona-reasoning-bubble, .persona-tool-bubble, .persona-approval-bubble");if(!x)return;let A=x.getAttribute("data-message-id");if(!A)return;let P=m.getAttribute("data-bubble-type");if(P==="reasoning")Qr.has(A)?Qr.delete(A):Qr.add(A),wm(A,x);else if(P==="tool")Xr.has(A)?Xr.delete(A):Xr.add(A),Cm(A,x,o);else if(P==="approval"){let j=((o.approval!==!1?o.approval:void 0)?.detailsDisplay??"collapsed")==="expanded",X=sr.get(A)??j;sr.set(A,!X),Tm(A,x,o)}_o.delete(A)};Ae.addEventListener("pointerdown",a=>{a.target.closest('button[data-expand-header="true"]')&&(a.preventDefault(),Jd(a))}),Ae.addEventListener("keydown",a=>{let u=a.target;(a.key==="Enter"||a.key===" ")&&u.closest('button[data-expand-header="true"]')&&(a.preventDefault(),Jd(a))}),Ae.addEventListener("copy",a=>{let{clipboardData:u}=a;if(!u)return;let m=Ae.getRootNode(),x=typeof m.getSelection=="function"?m.getSelection():window.getSelection();if(!x||x.isCollapsed)return;let A=x.toString(),P=_f(A);!P||P===A||(u.setData("text/plain",P),a.preventDefault())});let vl=new Map,Zd=null,ep="idle",Ah={idle:{icon:"volume-2",label:"Read aloud"},loading:{icon:"loader-circle",label:"Loading\u2026"},playing:{icon:"pause",label:"Pause"},paused:{icon:"play",label:"Resume"}},Sh=(a,u)=>{let{icon:m,label:x}=Ah[u];a.setAttribute("aria-label",x),a.title=x,a.setAttribute("aria-pressed",u==="idle"?"false":"true"),a.classList.toggle("persona-message-action-active",u!=="idle"),a.classList.toggle("persona-message-action-loading",u==="loading");let A=ie(m,14,"currentColor",2);A&&(a.innerHTML="",a.appendChild(A))},tp=()=>{Ae.querySelectorAll('[data-action="read-aloud"]').forEach(u=>{let x=u.closest("[data-actions-for]")?.getAttribute("data-actions-for")??null;Sh(u,x&&x===Zd?ep:"idle")})};Ae.addEventListener("click",a=>{let m=a.target.closest(".persona-message-action-btn[data-action]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.closest("[data-actions-for]");if(!x)return;let A=x.getAttribute("data-actions-for");if(!A)return;let P=m.getAttribute("data-action");if(P==="copy"){let j=V.getMessages().find(X=>X.id===A);if(j&&bt.onCopy){let X=j.content||"";navigator.clipboard.writeText(X).then(()=>{m.classList.add("persona-message-action-success");let re=ie("check",14,"currentColor",2);re&&(m.innerHTML="",m.appendChild(re)),setTimeout(()=>{m.classList.remove("persona-message-action-success");let he=ie("copy",14,"currentColor",2);he&&(m.innerHTML="",m.appendChild(he))},2e3)}).catch(re=>{typeof console<"u"&&console.error("[AgentWidget] Failed to copy message:",re)}),bt.onCopy(j)}}else if(P==="read-aloud")V.toggleReadAloud(A);else if(P==="upvote"||P==="downvote"){let j=(vl.get(A)??null)===P,X=P==="upvote"?"thumbs-up":"thumbs-down";if(j){vl.delete(A),m.classList.remove("persona-message-action-active");let re=ie(X,14,"currentColor",2);re&&(m.innerHTML="",m.appendChild(re))}else{let re=P==="upvote"?"downvote":"upvote",he=x.querySelector(`[data-action="${re}"]`);if(he){he.classList.remove("persona-message-action-active");let pt=ie(re==="upvote"?"thumbs-up":"thumbs-down",14,"currentColor",2);pt&&(he.innerHTML="",he.appendChild(pt))}vl.set(A,P),m.classList.add("persona-message-action-active");let ue=ie(X,14,"currentColor",2);ue&&(ue.setAttribute("fill","currentColor"),m.innerHTML="",m.appendChild(ue)),m.classList.remove("persona-message-action-pop"),m.offsetWidth,m.classList.add("persona-message-action-pop");let Xe=V.getMessages().find(yt=>yt.id===A);Xe&&bt.onFeedback&&bt.onFeedback({type:P,messageId:Xe.id,message:Xe})}}}),Ae.addEventListener("click",a=>{let m=a.target.closest("button[data-approval-action]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.closest(".persona-approval-bubble");if(!x)return;let A=x.getAttribute("data-message-id");if(!A)return;let P=m.getAttribute("data-approval-action");if(!P)return;let G=P==="approve"?"approved":"denied",X=V.getMessages().find(he=>he.id===A);if(!X?.approval)return;let re=x.querySelector("[data-approval-buttons]");re&&re.querySelectorAll("button").forEach(ue=>{ue.disabled=!0,ue.style.opacity="0.5",ue.style.cursor="not-allowed"}),X.approval.toolType==="webmcp"?V.resolveWebMcpApproval(A,G):V.resolveApproval(X.approval,G)});let Je=null,ls=null,Ho=()=>{},cs="none",vi=null,Ln={artifacts:[],selectedId:null},zn=!1,Pn=!1,ds=!1,dr=!1,np=()=>dr||Ln.artifacts.some(a=>xo(o.features?.artifacts,a)==="panel"),xi=()=>Ln.artifacts.length>0&&!zn&&np(),at={current:null},xl=(a,u)=>{let m=V.getArtifactById(u),x=m?.markdown,A=m?.title||"artifact",P=m?.file,G=m?.artifactType??"markdown";if(!x){let re=a.closest("[data-open-artifact], [data-artifact-inline]")?.closest("[data-message-id]")?.getAttribute("data-message-id");if(re){let ue=V.getMessages().find(we=>we.id===re);if(ue?.rawContent)try{let we=JSON.parse(ue.rawContent);x=we?.props?.markdown,A=we?.props?.title||A,we?.props?.file&&typeof we.props.file=="object"&&(P=we.props.file),!m&&typeof we?.props?.artifactType=="string"&&(G=we.props.artifactType)}catch{}}}return{markdown:x,title:A,file:P,artifactType:G}};Ae.addEventListener("click",a=>{let m=a.target.closest("[data-download-artifact]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.getAttribute("data-download-artifact");if(!x||o.features?.artifacts?.onArtifactAction?.({type:"download",artifactId:x})===!0)return;let{markdown:P,title:G,file:j}=xl(m,x);if(!P)return;let{filename:X,mime:re,content:he}=wf({title:G,markdown:P,file:j}),ue=new Blob([he],{type:re}),we=URL.createObjectURL(ue),Xe=document.createElement("a");Xe.href=we,Xe.download=X,Xe.click(),URL.revokeObjectURL(we)}),Ae.addEventListener("click",a=>{let m=a.target.closest("[data-artifact-custom-action]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.getAttribute("data-artifact-custom-action");if(!x)return;let A=m.closest("[data-artifact-inline]"),P=A?null:m.closest("[data-open-artifact]"),G=A?A.getAttribute("data-artifact-inline"):P?.getAttribute("data-open-artifact")??null,X=(A?o.features?.artifacts?.inlineActions:o.features?.artifacts?.cardActions)?.find(yt=>yt.id===x);if(!X)return;let{markdown:re,title:he,file:ue,artifactType:we}=xl(m,G??""),Xe={artifactId:G,title:he,artifactType:we,markdown:re,file:ue};try{Promise.resolve(X.onClick(Xe)).catch(()=>{})}catch{}}),Ae.addEventListener("click",a=>{let m=a.target.closest("[data-copy-artifact]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.getAttribute("data-copy-artifact");if(!x)return;let A=V.getArtifactById(x),P="";if(A)P=Js(A);else{let{markdown:G,file:j,artifactType:X}=xl(m,x);X==="markdown"&&(P=Js({id:x,artifactType:"markdown",status:"complete",markdown:G??"",...j?{file:j}:{}}))}P&&navigator.clipboard.writeText(P).then(()=>{let G=ie("check",16,"currentColor",2);G&&(m.replaceChildren(G),setTimeout(()=>{let j=ie("copy",16,"currentColor",2);j&&m.replaceChildren(j)},1500))}).catch(()=>{})}),Ae.addEventListener("click",a=>{let m=a.target.closest("[data-expand-artifact-inline]");if(!m)return;a.preventDefault(),a.stopPropagation();let x=m.getAttribute("data-expand-artifact-inline");!x||o.features?.artifacts?.onArtifactAction?.({type:"open",artifactId:x})===!0||(zn=!1,dr=!0,Pn=!0,ds=!0,V.selectArtifact(x),Un())}),Ae.addEventListener("click",a=>{let u=a.target;if(u.closest("[data-download-artifact]")||u.closest("[data-artifact-custom-action]"))return;let m=u.closest("[data-open-artifact]");if(!m)return;let x=m.getAttribute("data-open-artifact");!x||o.features?.artifacts?.onArtifactAction?.({type:"open",artifactId:x})===!0||(a.preventDefault(),a.stopPropagation(),zn=!1,dr=!0,V.selectArtifact(x),Un())}),Ae.addEventListener("keydown",a=>{if(a.key!=="Enter"&&a.key!==" ")return;let u=a.target;!u.hasAttribute("data-open-artifact")&&!u.hasAttribute("data-expand-artifact-inline")||(a.preventDefault(),u.click())});let pr=ke.composerOverlay,ur=(a,u,m)=>{let x=u.trim();if(!x||!at.current)return;let A=a.getAttribute("data-tool-call-id")??"",P=m.source==="free-text";t.dispatchEvent(new CustomEvent("persona:askUserQuestion:answered",{detail:{toolUseId:A,answer:x,answers:m.structured,values:m.values??(m.source==="multi"?x.split(", "):[x]),isFreeText:P,source:m.source},bubbles:!0,composed:!0})),Wr(pr,A);let G=at.current.getMessages().find(j=>j.toolCall?.id===A);G?.agentMetadata?.awaitingLocalTool?at.current.resolveAskUserQuestion(G,m.structured??x):at.current.sendMessage(x)},Bo=a=>{let u=at.current;if(!u)return;let m=a.getAttribute("data-tool-call-id")??"",x=u.getMessages().find(A=>A.toolCall?.id===m);x&&u.persistAskUserQuestionProgress(x,{answers:Zi(a,x),currentIndex:Cn(a)})},op=a=>Object.entries(a).map(([u,m])=>`${u}: ${Array.isArray(m)?m.join(", "):m}`).join(" | "),wl=a=>{if(o.features?.askUserQuestion?.groupedAutoAdvance===!1)return;let u=Cn(a),m=Rr(a);if(u>=m-1)return;let x=at.current?.getMessages().find(A=>A.toolCall?.id===a.getAttribute("data-tool-call-id"));x&&(ta(a,x,o,u+1),Bo(a))};pr.addEventListener("click",a=>{let m=a.target.closest("[data-ask-user-action]");if(!m)return;let x=m.closest("[data-persona-ask-sheet-for]");if(!x)return;let A=m.getAttribute("data-ask-user-action");if(a.preventDefault(),a.stopPropagation(),A==="dismiss"){let P=x.getAttribute("data-tool-call-id")??"";t.dispatchEvent(new CustomEvent("persona:askUserQuestion:dismissed",{detail:{toolUseId:P},bubbles:!0,composed:!0})),Wr(pr,P);let G=at.current?.getMessages().find(j=>j.toolCall?.id===P);G?.agentMetadata?.awaitingLocalTool&&(at.current?.markAskUserQuestionResolved(G),at.current?.resolveAskUserQuestion(G,"(dismissed)"));return}if(A==="pick"){let P=m.getAttribute("data-option-label");if(!P)return;let G=x.getAttribute("data-multi-select")==="true",j=Co(x);if(j&&G){let X=Jo(x)[Cn(x)],re=new Set(Array.isArray(X)?X:[]);re.has(P)?re.delete(P):re.add(P),Ao(x,Array.from(re)),Bo(x);return}if(j){Ao(x,P),Bo(x),wl(x);return}if(G){let X=m.getAttribute("aria-pressed")==="true";m.setAttribute("aria-pressed",X?"false":"true"),m.classList.toggle("persona-ask-pill-selected",!X);let re=x.querySelector('[data-ask-user-action="submit-multi"]');re&&(re.disabled=fc(x).length===0);return}ur(x,P,{source:"pick",values:[P]});return}if(A==="submit-multi"){let P=fc(x);if(P.length===0)return;ur(x,P.join(", "),{source:"multi",values:P});return}if(A==="open-free-text"){let P=x.querySelector('[data-ask-free-text-row="true"]');P&&(P.classList.remove("persona-hidden"),P.querySelector('[data-ask-free-text-input="true"]')?.focus());return}if(A==="focus-free-text"){x.querySelector('[data-ask-free-text-input="true"]')?.focus();return}if(A==="submit-free-text"){let G=x.querySelector('[data-ask-free-text-input="true"]')?.value??"";if(!G.trim())return;if(Co(x)){Ao(x,G.trim()),Bo(x),wl(x);return}ur(x,G,{source:"free-text"});return}if(A==="next"||A==="back"){if(!at.current)return;let P=x.getAttribute("data-tool-call-id")??"",G=at.current.getMessages().find(ue=>ue.toolCall?.id===P);if(!G)return;let X=x.querySelector('[data-ask-free-text-input="true"]')?.value?.trim()??"";if(X){let ue=Jo(x)[Cn(x)];(typeof ue!="string"||ue!==X)&&Ao(x,X)}let re=A==="next"?1:-1,he=Cn(x)+re;ta(x,G,o,he),Bo(x);return}if(A==="submit-all"){if(!at.current)return;let P=x.getAttribute("data-tool-call-id")??"",G=at.current.getMessages().find(ue=>ue.toolCall?.id===P);if(!G)return;let X=x.querySelector('[data-ask-free-text-input="true"]')?.value?.trim()??"";X&&Ao(x,X);let re=Zi(x,G);at.current.persistAskUserQuestionProgress(G,{answers:re,currentIndex:Cn(x)});let he=op(re);ur(x,he||"(submitted)",{source:"submit-all",structured:re});return}if(A==="skip"){if(!at.current)return;let P=x.getAttribute("data-tool-call-id")??"",G=at.current.getMessages().find(we=>we.toolCall?.id===P);if(!G)return;let j=Co(x),X=Cn(x),re=Rr(x),he=X>=re-1;if(!j){t.dispatchEvent(new CustomEvent("persona:askUserQuestion:dismissed",{detail:{toolUseId:P},bubbles:!0,composed:!0})),Wr(pr,P),G.agentMetadata?.awaitingLocalTool&&(at.current.markAskUserQuestionResolved(G),at.current.resolveAskUserQuestion(G,"(dismissed)"));return}Ao(x,"");let ue=x.querySelector('[data-ask-free-text-input="true"]');if(ue&&(ue.value=""),he){let we=Zi(x,G),Xe=op(we);ur(x,Xe||"(skipped)",{source:"submit-all",structured:we});return}ta(x,G,o,X+1),Bo(x);return}}),pr.addEventListener("keydown",a=>{if(a.key!=="Enter")return;let m=a.target;if(!m.matches?.('[data-ask-free-text-input="true"]'))return;let x=m.closest("[data-persona-ask-sheet-for]");if(!x)return;a.preventDefault();let A=m.value;if(A.trim()){if(Co(x)){Ao(x,A.trim()),Bo(x),wl(x);return}ur(x,A,{source:"free-text"})}});let rp=a=>{if(!/^[1-9]$/.test(a.key)||a.metaKey||a.ctrlKey||a.altKey)return;let u=a.target;if(u?.tagName==="INPUT"||u?.tagName==="TEXTAREA"||u?.isContentEditable)return;let m=pr.querySelector("[data-persona-ask-sheet-for]");if(!m||m.getAttribute("data-ask-layout")!=="rows"||m.getAttribute("data-multi-select")==="true")return;let x=Number(a.key),P=m.querySelectorAll('[data-ask-pill-list="true"] [data-ask-user-action="pick"], [data-ask-pill-list="true"] [data-ask-user-action="focus-free-text"]')[x-1];P&&(a.preventDefault(),P.click())};document.addEventListener("keydown",rp);let ao=null,Ct=null,ps=null,wi=null,Cl=()=>{},sp=!1,Ci="",Ai="";function Al(){wi?.(),wi=null}let ip=()=>{if(!ao||!Ct)return;let a=t.classList.contains("persona-artifact-welded-split"),u=t.ownerDocument.defaultView??window,m=u.innerWidth<=640;if(!a||t.classList.contains("persona-artifact-narrow-host")||m){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 x=ao.firstElementChild;if(!x||x===Ct)return;let A=10;Ct.style.position="absolute",Ct.style.top="0",Ct.style.bottom="0",Ct.style.width=`${A}px`,Ct.style.zIndex="5";let P=Cd(ao,u),G=x.offsetWidth+P/2-A/2;Ct.style.left=`${Math.max(0,G)}px`},Si=()=>{},Mh=()=>{let a=t.ownerDocument.defaultView??window,u=o.launcher?.mobileFullscreen??!0,m=o.launcher?.mobileBreakpoint??640;return!u||a.innerWidth>m?!1:z||Ot(o)},Mi=()=>!nn(o)||!xi()||t.classList.contains("persona-artifact-narrow-host")||Mh()||(t.ownerDocument.defaultView??window).innerWidth<gC?"none":vd(o)?"detached":"welded",Un=()=>{if(!Je||!nn(o))return;gi(t,o),fi(t,o),Si();let a=o.features?.artifacts?.layout?.narrowHostMaxWidth??520,u=xe.getBoundingClientRect().width||0;t.classList.toggle("persona-artifact-narrow-host",u>0&&u<=a);let m=xi();Je.setVisible(m),Je.update(Ln),zn?(Je.setMobileOpen(!1),Je.element.classList.add("persona-hidden"),Je.backdrop?.classList.add("persona-hidden"),Pn=!1,ds=!1):Ln.artifacts.length>0&&np()?(Je.element.classList.remove("persona-hidden"),Je.setMobileOpen(!0)):(Je.setMobileOpen(!1),Je.element.classList.add("persona-hidden"),Je.backdrop?.classList.add("persona-hidden"),Pn=!1,ds=!1);let x=o.features?.artifacts?.layout?.showExpandToggle===!0;if(Je.setExpandToggleVisible(x),Je.setCopyButtonVisible(o.features?.artifacts?.layout?.showCopyButton===!0),Je.setCustomActions(o.features?.artifacts?.toolbarActions??[]),Je.setTabFade(o.features?.artifacts?.layout?.tabFade),Je.setRenderTabBar(o.features?.artifacts?.renderTabBar),!x&&!ds&&(Pn=!1),Pn!==sp){let P=Je.element;Pn?(Ci=P.style.width,Ai=P.style.maxWidth,P.style.removeProperty("width"),P.style.removeProperty("max-width")):(Ci&&(P.style.width=Ci),Ai&&(P.style.maxWidth=Ai),Ci="",Ai=""),sp=Pn}t.classList.toggle("persona-artifact-expanded",Pn),Je.setExpanded(Pn);let A=Mi();A!==cs&&(cs=A,Ho()),Cl()};if(nn(o)){xe.style.position="relative";let a=v("div","persona-flex persona-flex-1 persona-flex-col persona-min-w-0 persona-min-h-0"),u=v("div","persona-flex persona-h-full persona-w-full persona-min-h-0 persona-artifact-split-root");a.appendChild(Ce),Je=Hm(o,{onSelect:m=>at.current?.selectArtifact(m),onDismiss:()=>{zn=!0,Un()},onToggleExpand:()=>{let m=!Pn,x=Ln.selectedId??Ln.artifacts[Ln.artifacts.length-1]?.id??null;o.features?.artifacts?.onArtifactAction?.({type:"expand",artifactId:x,expanded:m})!==!0&&(Pn=m,m||(ds=!1),Un())}}),Je.element.classList.add("persona-hidden"),ao=u,u.appendChild(a),u.appendChild(Je.element),Je.backdrop&&xe.appendChild(Je.backdrop),xe.appendChild(u),Cl=()=>{if(!ao||!Je)return;if(!(o.features?.artifacts?.layout?.resizable===!0)){ps?.(),ps=null,Al(),Ct&&(Ct.remove(),Ct=null),Je.element.style.removeProperty("width"),Je.element.style.removeProperty("maxWidth");return}if(!Ct){let x=v("div","persona-artifact-split-handle persona-shrink-0 persona-h-full");x.setAttribute("role","separator"),x.setAttribute("aria-orientation","vertical"),x.setAttribute("aria-label","Resize artifacts panel"),x.tabIndex=0;let A=t.ownerDocument,P=A.defaultView??window,G=j=>{if(!Je||j.button!==0||t.classList.contains("persona-artifact-narrow-host")||t.classList.contains("persona-artifact-expanded")||P.innerWidth<=640)return;j.preventDefault(),Al();let X=j.clientX,re=Je.element.getBoundingClientRect().width,he=o.features?.artifacts?.layout,ue=Xe=>{let yt=ao.getBoundingClientRect().width,pt=t.classList.contains("persona-artifact-welded-split"),dn=Cd(ao,P),Et=pt?0:x.getBoundingClientRect().width||6,Wt=re-(Xe.clientX-X),U=Um(Wt,yt,dn,Et,he?.resizableMinWidth,he?.resizableMaxWidth);Je.element.style.width=`${U}px`,Je.element.style.maxWidth="none",ip()},we=()=>{A.removeEventListener("pointermove",ue),A.removeEventListener("pointerup",we),A.removeEventListener("pointercancel",we),wi=null;try{x.releasePointerCapture(j.pointerId)}catch{}};wi=we,A.addEventListener("pointermove",ue),A.addEventListener("pointerup",we),A.addEventListener("pointercancel",we);try{x.setPointerCapture(j.pointerId)}catch{}};x.addEventListener("pointerdown",G),Ct=x,ao.insertBefore(x,Je.element),ps=()=>{x.removeEventListener("pointerdown",G)}}if(Ct){let x=xi();Ct.classList.toggle("persona-hidden",!x),ip()}},Si=()=>{if(!z||!Je||(o.launcher?.sidebarMode??!1)||Ot(o)&&An(o).reveal==="emerge")return;let x=t.ownerDocument.defaultView??window,A=o.launcher?.mobileFullscreen??!0,P=o.launcher?.mobileBreakpoint??640;if(A&&x.innerWidth<=P||!Om(o,z))return;let G=o.launcher?.width??o.launcherWidth??no,j=o.features?.artifacts?.layout?.expandedPanelWidth??"min(720px, calc(100vw - 24px))";xi()?(xe.style.width=j,xe.style.maxWidth=j):(xe.style.width=G,xe.style.maxWidth=G)},typeof ResizeObserver<"u"&&(ls=new ResizeObserver(()=>{Un()}),ls.observe(xe))}else xe.appendChild(Ce);K()&&ot&&(ke.peekBanner&&ot.appendChild(ke.peekBanner),ot.appendChild(Se)),t.appendChild(Pe),ot&&t.appendChild(ot);let Sl=()=>{if(K()){xe.style.width="100%",xe.style.maxWidth="100%";let Pt=o.launcher?.composerBar??{},sn=Pe.dataset.state==="expanded",Ui=Pt.expandedSize??"anchored";if(!(sn&&Ui!=="fullscreen")){Ce.style.background="",Ce.style.border="",Ce.style.borderRadius="",Ce.style.overflow="",Ce.style.boxShadow="";return}let Ts=o.theme?.components?.panel,ji=$r(o),Sr=(Xn,Xo)=>Xn==null||Xn===""?Xo:tn(ji,Xn)??Xn,Vi="1px solid var(--persona-border)",oc="var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25))",Qo="var(--persona-panel-radius, var(--persona-radius-xl, 0.75rem))";Ce.style.background="var(--persona-surface, #ffffff)",Ce.style.border=Sr(Ts?.border,Vi),Ce.style.borderRadius=Sr(Ts?.borderRadius,Qo),Ce.style.boxShadow=Sr(Ts?.shadow,oc),Ce.style.overflow="hidden";return}let a=Ot(o),u=o.launcher?.sidebarMode??!1,m=a||u||(o.launcher?.fullHeight??!1),x=o.launcher?.enabled===!1,A=o.launcher?.detachedPanel===!0,P=o.theme?.components?.panel,G=$r(o),j=(Pt,sn)=>Pt==null||Pt===""?sn:tn(G,Pt)??Pt,X=t.ownerDocument.defaultView??window,re=o.launcher?.mobileFullscreen??!0,he=o.launcher?.mobileBreakpoint??640,ue=X.innerWidth<=he,we=re&&ue&&z,Xe=a&&re&&ue,yt=o.launcher?.position??"bottom-left",pt=yt==="bottom-left"||yt==="top-left",dn=o.launcher?.zIndex??Ut,Et="var(--persona-panel-border, 1px solid var(--persona-border))",Wt="var(--persona-panel-shadow, var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25)))",U="var(--persona-panel-radius, var(--persona-radius-xl, 0.75rem))",Re=A&&!we&&!Xe;Re?t.setAttribute("data-persona-panel-detached","true"):t.removeAttribute("data-persona-panel-detached");let _e=Re?Et:u||we?"none":Et,Le=Re?Wt:we?"none":u?pt?"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))":x?"none":Wt;a&&!we&&!Re&&(Le="none",_e="none");let Tt=Re?U:u||we?"0":U,ut=j(P?.border,_e),$t=j(P?.shadow,Le),gt=j(P?.borderRadius,Tt),rn=Mi(),Ht=rn==="detached",We=rn==="welded";t.classList.toggle("persona-artifact-detached-split",Ht),t.classList.toggle("persona-artifact-welded-split",We);let $e="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)))))",St=(o.features?.artifacts?.layout?.chatSurface==="flush"?"flush":"card")==="flush"&&nn(o)&&vd(o)&&x&&!a;t.classList.toggle("persona-artifact-chat-flush",St);let lt=Ht||St?"none":$t,ft=Ht?Et:We?"none":ut,Ze=Ht?U:gt;St&&(ft="none",Ze="0");let De=P?.borderRadius!=null&&P.borderRadius!=="",vt=St&&!De?"0":gt,Gt=ce.scrollTop;t.style.cssText="",Pe.style.cssText="",xe.style.cssText="",Ce.style.cssText="",ce.style.cssText="",Se.style.cssText="",Ee&&(ce.style.display="none"),(m||x)&&(t.style.minWidth="0");let xn=()=>{if(Gt<=0)return;(ce.ownerDocument.defaultView??window).requestAnimationFrame(()=>{if(ce.scrollTop===Gt)return;let sn=ce.scrollHeight-ce.clientHeight;sn<=0||(ce.scrollTop=Math.min(Gt,sn))})};if(we){Pe.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"),Pe.style.cssText=`
|
|
220
220
|
position: fixed !important;
|
|
221
221
|
inset: 0 !important;
|
|
222
222
|
width: 100% !important;
|
|
@@ -226,9 +226,9 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
226
226
|
padding: 0 !important;
|
|
227
227
|
display: flex !important;
|
|
228
228
|
flex-direction: column !important;
|
|
229
|
-
z-index: ${
|
|
229
|
+
z-index: ${dn} !important;
|
|
230
230
|
background-color: var(--persona-surface, #ffffff) !important;
|
|
231
|
-
`,
|
|
231
|
+
`,xe.style.cssText=`
|
|
232
232
|
position: relative !important;
|
|
233
233
|
display: flex !important;
|
|
234
234
|
flex-direction: column !important;
|
|
@@ -241,7 +241,7 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
241
241
|
padding: 0 !important;
|
|
242
242
|
box-shadow: none !important;
|
|
243
243
|
border-radius: 0 !important;
|
|
244
|
-
`,
|
|
244
|
+
`,Ce.style.cssText=`
|
|
245
245
|
display: flex !important;
|
|
246
246
|
flex-direction: column !important;
|
|
247
247
|
flex: 1 1 0% !important;
|
|
@@ -252,33 +252,33 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
252
252
|
overflow: hidden !important;
|
|
253
253
|
border-radius: 0 !important;
|
|
254
254
|
border: none !important;
|
|
255
|
-
`,
|
|
255
|
+
`,ce.style.flex="1 1 0%",ce.style.minHeight="0",ce.style.overflowY="auto",Se.style.flexShrink="0",N=!0,xn();return}let zi=o?.launcher?.width??o?.launcherWidth??no;if(!u&&!a)x&&m?(xe.style.width="100%",xe.style.maxWidth="100%"):(xe.style.width=zi,xe.style.maxWidth=zi);else if(a)if(An(o).reveal==="emerge"&&!A){let sn=An(o).width;xe.style.width=sn,xe.style.maxWidth=sn}else xe.style.width="100%",xe.style.maxWidth="100%";if(Si(),xe.style.boxShadow=lt,xe.style.borderRadius=vt,Ht?xe.style.border="none":We&&(xe.style.border=ut),Ce.style.border=ft,Ce.style.borderRadius=Ze,Ce.style.boxShadow=Ht&&!St?$e:"",St&&(Ce.style.background="transparent",ce.style.background="transparent",Se.style.background="transparent",Se.style.borderTop="none"),We){let Pt=o.features?.artifacts?.layout;vi=Pt?.unifiedSplitOuterRadius?.trim()||Pt?.paneBorderRadius?.trim()||gt}else vi=null;if(a&&!we&&!Re&&!Ht&&!We&&P?.border===void 0&&(Ce.style.border="none",An(o).side==="right"?Ce.style.borderLeft="1px solid var(--persona-border)":Ce.style.borderRight="1px solid var(--persona-border)"),a&&!we&&We&&P?.border===void 0&&(An(o).side==="right"?xe.style.borderLeft="1px solid var(--persona-border)":xe.style.borderRight="1px solid var(--persona-border)"),m&&(t.style.display="flex",t.style.flexDirection="column",t.style.height="100%",t.style.minHeight="0",x&&(t.style.width="100%"),Pe.style.display="flex",Pe.style.flexDirection="column",Pe.style.flex="1 1 0%",Pe.style.minHeight="0",Pe.style.maxHeight="100%",Pe.style.height="100%",x&&(Pe.style.overflow="hidden"),xe.style.display="flex",xe.style.flexDirection="column",xe.style.flex="1 1 0%",xe.style.minHeight="0",xe.style.maxHeight="100%",xe.style.height="100%",Ht||(xe.style.overflow="hidden"),Ce.style.display="flex",Ce.style.flexDirection="column",Ce.style.flex="1 1 0%",Ce.style.minHeight="0",Ce.style.maxHeight="100%",Ce.style.overflow="hidden",ce.style.flex="1 1 0%",ce.style.minHeight="0",ce.style.overflowY="auto",Se.style.flexShrink="0"),x&&(Re||Ht||St)&&!a&&(St||(Pe.style.padding="var(--persona-panel-inset)"),Pe.style.background="var(--persona-panel-canvas-bg)"),Pe.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"),!u&&!x&&!a&&(un[yt]??un["bottom-right"]).split(" ").forEach(sn=>Pe.classList.add(sn)),u){let Pt=o.launcher?.sidebarWidth??"420px";A?Pe.style.cssText=`
|
|
256
256
|
position: fixed !important;
|
|
257
257
|
top: var(--persona-panel-inset) !important;
|
|
258
258
|
bottom: var(--persona-panel-inset) !important;
|
|
259
|
-
width: ${
|
|
259
|
+
width: ${Pt} !important;
|
|
260
260
|
height: calc(100vh - (2 * var(--persona-panel-inset))) !important;
|
|
261
261
|
max-height: calc(100vh - (2 * var(--persona-panel-inset))) !important;
|
|
262
262
|
margin: 0 !important;
|
|
263
263
|
padding: 0 !important;
|
|
264
264
|
display: flex !important;
|
|
265
265
|
flex-direction: column !important;
|
|
266
|
-
z-index: ${
|
|
267
|
-
${
|
|
268
|
-
`:
|
|
266
|
+
z-index: ${dn} !important;
|
|
267
|
+
${pt?"left: var(--persona-panel-inset) !important; right: auto !important;":"left: auto !important; right: var(--persona-panel-inset) !important;"}
|
|
268
|
+
`:Pe.style.cssText=`
|
|
269
269
|
position: fixed !important;
|
|
270
270
|
top: 0 !important;
|
|
271
271
|
bottom: 0 !important;
|
|
272
|
-
width: ${
|
|
272
|
+
width: ${Pt} !important;
|
|
273
273
|
height: 100vh !important;
|
|
274
274
|
max-height: 100vh !important;
|
|
275
275
|
margin: 0 !important;
|
|
276
276
|
padding: 0 !important;
|
|
277
277
|
display: flex !important;
|
|
278
278
|
flex-direction: column !important;
|
|
279
|
-
z-index: ${
|
|
280
|
-
${
|
|
281
|
-
`,
|
|
279
|
+
z-index: ${dn} !important;
|
|
280
|
+
${pt?"left: 0 !important; right: auto !important;":"left: auto !important; right: 0 !important;"}
|
|
281
|
+
`,xe.style.cssText=`
|
|
282
282
|
position: relative !important;
|
|
283
283
|
display: flex !important;
|
|
284
284
|
flex-direction: column !important;
|
|
@@ -290,9 +290,9 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
290
290
|
margin: 0 !important;
|
|
291
291
|
padding: 0 !important;
|
|
292
292
|
box-shadow: ${lt} !important;
|
|
293
|
-
border-radius: ${
|
|
294
|
-
${
|
|
295
|
-
`,
|
|
293
|
+
border-radius: ${vt} !important;
|
|
294
|
+
${Ht?"border: none !important;":We?`border: ${ut} !important;`:""}
|
|
295
|
+
`,xe.style.setProperty("width","100%","important"),xe.style.setProperty("max-width","100%","important"),Ce.style.cssText=`
|
|
296
296
|
display: flex !important;
|
|
297
297
|
flex-direction: column !important;
|
|
298
298
|
flex: 1 1 0% !important;
|
|
@@ -301,16 +301,16 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
301
301
|
min-height: 0 !important;
|
|
302
302
|
max-height: 100% !important;
|
|
303
303
|
overflow: hidden !important;
|
|
304
|
-
border-radius: ${
|
|
304
|
+
border-radius: ${Ze} !important;
|
|
305
305
|
border: ${ft} !important;
|
|
306
|
-
${
|
|
307
|
-
${
|
|
306
|
+
${Ht&&!St?`box-shadow: ${$e} !important;`:""}
|
|
307
|
+
${St?"background: transparent !important;":""}
|
|
308
308
|
`,Se.style.cssText=`
|
|
309
309
|
flex-shrink: 0 !important;
|
|
310
310
|
border-top: none !important;
|
|
311
311
|
padding: 8px 16px 12px 16px !important;
|
|
312
|
-
${
|
|
313
|
-
`}if(!x&&!a){let kt="max-height: -moz-available !important; max-height: stretch !important;",rn=f?"":"padding-top: 1.25em !important;",wi=f?"":`z-index: ${o.launcher?.zIndex??Qt} !important;`;De.style.cssText+=kt+rn+wi}yn()};si(),Ps(t,o),qs(t,o),Ks(t,o),Fr=()=>{si(),Ps(t,o),qs(t,o),Ks(t,o),Ys?t.style.setProperty("--persona-artifact-welded-outer-radius",Ys):t.style.removeProperty("--persona-artifact-welded-outer-radius")};let $e=[];$e.push(()=>{document.removeEventListener("keydown",pd)}),$e.push(()=>{Dr!==null&&clearTimeout(Dr)});let Pn=null,In=null;$e.push(()=>{Pn?.(),Pn=null,In?.(),In=null}),Or&&$e.push(()=>{Or?.disconnect(),Or=null}),$e.push(()=>{zr?.(),zr=null,Za(),vt&&(vt.remove(),vt=null),Qe?.element.style.removeProperty("width"),Qe?.element.style.removeProperty("maxWidth")}),ie&&$e.push(()=>{ke!==null&&(cancelAnimationFrame(ke),ke=null),_e?.destroy(),_e=null,Te?.destroy(),Te=null,we=null});let To=null,fd=()=>{To&&(To(),To=null),o.colorScheme==="auto"&&(To=ua(()=>{Ps(t,o)}))};fd(),$e.push(()=>{To&&(To(),To=null)}),$e.push(l);let ii=o.features?.streamAnimation;if(ii?.type&&ii.type!=="none"){let a=Er(ii.type,ii.plugins);a&&(Ea(a,t),$e.push(()=>Zg(t)))}let Ur=ka(bt),md=ka(Jt),hd=ka(gt),jr=[Ur,md,hd];$e.push(()=>{jr.forEach(a=>a.destroy())});let Eo=null,V,ko=null,yd=!1,bd=0,vd=null,xd=a=>a.reduce((f,m)=>m.role==="user"?f+1:f,0),Cd=a=>{for(let f=a.length-1;f>=0;f--)if(gs(a[f]))return a[f].id??null;return null},wd=!1,bm=()=>{wd||o.debug!==!0||(wd=!0,console.warn('[persona] suggestions.starters.placement is pinned to "welcome" but copy.showWelcomeCard is false, so no starters render. Use "auto" or "composer".'))},Ad=!1,Sd=!1,Md=(a,f)=>{Ad||o.debug!==!0||!f.enabled||f.expose||yd||Sd&&(V.isStreaming()||a.some(gs)||(Ad=!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.")))},Vr=a=>{if(!V)return;let f=a??V.getMessages(),m=re=>{re.render([],V,Q,f)},x=re=>{jr.forEach(me=>{me!==re&&m(me)})};ko&&(xd(f)>bd||Cd(f)!==vd)&&(ko=null);let T=ho(o);Md(f,T);let R=T.enabled?Zp(f):null,ne=ko??R,q=ko?"host":"agent";if(ne){let re=o.suggestions?.followUps,me=re?.placement??(re?"auto":"composer"),Ae=(me==="auto"?P()?"composer":"after-message":me)==="after-message"?hd:Ur;x(Ae),Ae.render(ne,V,Q,f,o.suggestionChipsConfig,{source:q,surface:"followUp",variant:re?.variant??"chip",behavior:re?.behavior??"send",overflow:re?.overflow??"scroll",maxItems:re?.maxItems??4,config:o,plugins:s});return}if(f.some(re=>re.role==="user")){jr.forEach(m);return}let Z=o.suggestions?.starters;if(Z){let re=o.copy?.showWelcomeCard!==!1,me=Z.placement??"auto",ce=me==="auto"?re?"welcome":"composer":me;if(ce==="welcome"&&!re){bm(),jr.forEach(m);return}let Ae=ce==="welcome"?md:Ur;x(Ae),Ae.render(Z.items??o.suggestionChips,V,Q,f,o.suggestionChipsConfig,{surface:"starter",variant:Z.variant??"card",behavior:Z.behavior??"send",overflow:Z.overflow??"wrap",maxItems:Z.maxItems??4,config:o,plugins:s});return}x(Ur),Ur.render(o.suggestionChips,V,Q,f,o.suggestionChipsConfig,{surface:"starter",variant:"chip",behavior:"send",overflow:"wrap",config:o,plugins:s})},Td=()=>{ko&&(ko=null,Vr())},vm=a=>{let f=Array.isArray(a)?[...a]:[];if(!f.length){Td();return}let m=V?V.getMessages():[];ko=f,yd=!0,bd=xd(m),vd=Cd(m),Vr(m)},An=!1,Lo=Ug(),Zo=new Map,Po=new Map,to=new Map,el=0,xm=Un()!==null,an=Ca(),gn=0,no=null,fn=!1,ai=!1,oo=0,Sn=null,Io=null,tl=!1,li=!1,qr=null,Kr=!0,ci=!1,di=null,pi=!1,Ro=()=>{pi=!0},nl=null,Cm=4,ui=24,wm=80,ol=new Map,Ke={active:!1,manuallyDeactivated:!1,lastUserMessageWasVoice:!1,lastUserMessageId:null},Ed=o.voiceRecognition?.autoResume??!1,On=a=>{p.emit("voice:state",{active:Ke.active,source:a,timestamp:Date.now()})},Mn=()=>{L(a=>({...a,voiceState:{active:Ke.active,timestamp:Date.now(),manuallyDeactivated:Ke.manuallyDeactivated}}))},Am=()=>{if(o.voiceRecognition?.enabled===!1)return;let a=Uc(u.voiceState),f=!!a.active,m=Number(a.timestamp??0);Ke.manuallyDeactivated=!!a.manuallyDeactivated,f&&Date.now()-m<Bx&&setTimeout(()=>{Ke.active||(Ke.manuallyDeactivated=!1,o.voiceRecognition?.provider?.type==="runtype"?V.toggleVoice().then(()=>{Ke.active=V.isVoiceActive(),On("restore"),V.isVoiceActive()&&rr()}):yi("restore"))},1e3)},Sm=()=>V?Kf(V.getMessages()).filter(a=>!a.__skipPersist):[],gi=null,kd=(a,f)=>{typeof console<"u"&&console.error(a,f)},rl=(a,f)=>{let m=()=>{try{let ne=a();return!ne||typeof ne.then!="function"?null:Promise.resolve(ne).catch(q=>{kd(f,q)})}catch(ne){return kd(f,ne),null}},x=gi,T=x?x.then(()=>m()??void 0):m();if(!T)return;let R=T.finally(()=>{gi===R&&(gi=null)});gi=R};function sl(a){if(!d?.save)return;let m={messages:a?Kf(a):V?Sm():[],metadata:u,artifacts:Cn.artifacts,selectedArtifactId:Cn.selectedId};rl(()=>d.save(m),"[AgentWidget] Failed to persist state:")}let er=null,Ld=()=>De.querySelector("#persona-scroll-container")||ue,Gr=()=>{er!==null&&(cancelAnimationFrame(er),er=null),fn=!1},Pd=()=>{no!==null&&(cancelAnimationFrame(no),no=null),ai=!1,Gr()},Mm=()=>An&&al()&&(un()!=="anchor-top"||Yc()),il=()=>{let a=Jn()||"Jump to latest",f=Mm();Lt.toggleAttribute("data-persona-scroll-to-bottom-streaming",f),oo>0?(Ao.textContent=String(oo),Ao.style.display="",Lt.setAttribute("aria-label",`${a} (${oo} new)`)):(Ao.textContent="",Ao.style.display="none",Lt.setAttribute("aria-label",f?`${a} (response streaming below)`:a))},Id=()=>{oo!==0&&(oo=0,il())},al=()=>Yn()?!an.isFollowing():!Co(ue,ui),ln=()=>{if(!dm()||Ve){Lt.parentNode&&Lt.remove(),Lt.style.display="none";return}Lt.parentNode!==xe&&xe.appendChild(Lt),Qo();let f=Hn(ue)>0&&al();f?il():Id(),Lt.style.display=f?"":"none"},Qr=()=>{an.pause()&&(Pd(),ln())},ro=()=>{an.resume(),Id(),ln()},so=(a=!1)=>{Yn()&&an.isFollowing()&&(!a&&!An||(no!==null&&(cancelAnimationFrame(no),no=null),ai=!0,no=requestAnimationFrame(()=>{no=null,ai=!1,an.isFollowing()&&Tm(Ld(),a?220:140)})))},Rd=(a,f,m,x=()=>!0)=>{let T=a.scrollTop,R=f(),ne=R-T;if(Gr(),Math.abs(ne)<1){fn=!0,a.scrollTop=R,gn=a.scrollTop,fn=!1;return}let q=performance.now();fn=!0;let Z=me=>1-Math.pow(1-me,3),re=me=>{if(!x()){Gr();return}let ce=f();ce!==R&&(R=ce,ne=R-T);let Ae=me-q,je=Math.min(Ae/m,1),dt=Z(je),tt=T+ne*dt;a.scrollTop=tt,gn=a.scrollTop,je<1?er=requestAnimationFrame(re):(a.scrollTop=R,gn=a.scrollTop,er=null,fn=!1)};er=requestAnimationFrame(re)},Tm=(a,f=500)=>{let m=Hn(a)-a.scrollTop;if(Math.abs(m)<1){gn=a.scrollTop;return}if(Math.abs(m)>=wm){Gr(),fn=!0,a.scrollTop=Hn(a),gn=a.scrollTop,fn=!1;return}Rd(a,()=>Hn(a),f,()=>an.isFollowing())},Wd=()=>{let a=Ld();fn=!0,a.scrollTop=Hn(a),gn=a.scrollTop,fn=!1,ln()},Hd=a=>{let f=0,m=a;for(;m&&m!==ue;)f+=m.offsetTop,m=m.offsetParent;return f},Em=()=>{let a=ue.getRootNode();return(typeof a.getSelection=="function"?a.getSelection():null)??ue.ownerDocument.getSelection()},fi=()=>Gg(Em(),ue),Bd=()=>{if(pm()!=="last-user-turn")return!1;let a=V?.getMessages()??[];if(a.length<2)return!1;let f=[...a].reverse().find(R=>R.role==="user");if(!f)return!1;let m=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(f.id):f.id.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),x=ue.querySelector(`[data-message-id="${m}"]`);if(!x)return!1;let T=Math.min(Math.max(0,Hd(x)-Xc()),Hn(ue));return fn=!0,ue.scrollTop=T,gn=ue.scrollTop,fn=!1,un()==="follow"&&!Co(ue,ui)&&an.pause(),ln(),!0},Dd=a=>{Zn.style.height=`${Math.max(0,Math.round(a))}px`,Sn&&(Sn.spacerHeight=Math.max(0,a))},Xr=()=>{Io!==null&&(cancelAnimationFrame(Io),Io=null),Gr(),Sn=null,Zn.style.height="0px"},Nd=a=>{Io!==null&&cancelAnimationFrame(Io),Io=requestAnimationFrame(()=>{Io=null;let f=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(a):a.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),m=ue.querySelector(`[data-message-id="${f}"]`);if(!m)return;let x=Hd(m),T=Sn?.spacerHeight??0,R=ue.scrollHeight-T,{targetScrollTop:ne,spacerHeight:q}=Qg({anchorOffsetTop:x,topOffset:Xc(),viewportHeight:ue.clientHeight,contentHeight:R});Sn={initialSpacerHeight:q,contentHeightAtAnchor:R,spacerHeight:q},Dd(q),Rd(ue,()=>ne,220)})},km=()=>{if(Yn()){if(!an.isFollowing()||Co(ue,1))return;so(!An);return}if(Sn&&Sn.initialSpacerHeight>0){let a=ue.scrollHeight-Sn.spacerHeight,f=Xg({initialSpacerHeight:Sn.initialSpacerHeight,contentHeightAtAnchor:Sn.contentHeightAtAnchor,currentContentHeight:a});f!==Sn.spacerHeight&&Dd(f)}ln()},Lm=a=>{let f=un();f==="follow"?(ro(),so(!0)):f==="anchor-top"&&(Kr=!1,ci=!0,pi=!1,di=a,Nd(a))},Pm=()=>{if(un()==="anchor-top"){if(ci){Kr=!1;return}Kr=!0,Xr(),ro(),so(!0)}},Im=a=>{if(un()!=="anchor-top"||!ci||pi||fi())return;let f=qr===null;for(let m of a){if(!f){m.id===qr&&(f=!0);continue}if(Kg(m)){if(m.id===di)return;di=m.id,Nd(m.id);return}}},Rm=a=>{let f=new Map;a.forEach(m=>{let x=ol.get(m.id);f.set(m.id,{streaming:m.streaming,role:m.role}),!x&&m.role==="assistant"&&(p.emit("assistant:message",m),!li&&(un()!=="anchor-top"||Yc())&&al()&&(oo+=1,il(),ln(),ed(oo===1?"1 new message below.":`${oo} new messages below.`))),m.role==="assistant"&&x?.streaming&&m.streaming===!1&&p.emit("assistant:complete",m),m.variant==="approval"&&m.approval&&(x?m.approval.status!=="pending"&&p.emit("approval:resolved",{approval:m.approval,decision:m.approval.status}):p.emit("approval:requested",{approval:m.approval,message:m}))}),ol.clear(),f.forEach((m,x)=>{ol.set(x,m)})},mi=(a,f)=>{let m=f==="user"?"user":"assistant",x=o.layout?.messages?.[m],T=x?.width??"content",R=x?.maxWidth??(T==="full"?"100%":"85%");a.classList.add("persona-message-row"),a.classList.remove("persona-message-row-user","persona-message-row-assistant","persona-message-row-system","persona-message-width-content","persona-message-width-full"),a.classList.add(`persona-message-row-${f}`,`persona-message-width-${T}`),a.classList.toggle("persona-justify-end",f==="user"),a.setAttribute("data-message-role",f),a.setAttribute("data-message-width",T),a.style.setProperty("--persona-message-row-max-width",R)},Wo=(a,f)=>{let m=document.createElement("div");return m.className="persona-flex",m.id=`wrapper-${a}`,m.setAttribute("data-wrapper-id",a),mi(m,f),m},Wm=(a,f,m)=>{let x=document.createElement("div"),R=(()=>{let _=s.find(Pe=>Pe.renderLoadingIndicator);if(_?.renderLoadingIndicator)return _.renderLoadingIndicator;if(o.loadingIndicator?.render)return o.loadingIndicator.render})(),ne=(_,Pe)=>Pe==null?!1:typeof Pe=="string"?(_.textContent=Pe,!0):(_.appendChild(Pe),!0),q=new Set,Z=new Map,re=new Set,me=s.some(_=>_.renderAskUserQuestion),ce=[],Ae=[],je=o.enableComponentStreaming!==!1,dt=o.approval!==!1,tt=[];if(f.forEach(_=>{q.add(_.id),Z.set(_.id,_.role);let Pe=me&&Oo(_),Oe=dt&&_.variant==="approval"&&!!_.approval,Ee=!Pe&&_.role==="assistant"&&!_.variant&&je&&zc(_);!Oe&&to.has(_.id)&&(a.querySelector(`#wrapper-${_.id}`)?.removeAttribute("data-preserve-runtime"),to.delete(_.id)),!Ee&&Po.has(_.id)&&(a.querySelector(`#wrapper-${_.id}`)?.removeAttribute("data-preserve-runtime"),Po.delete(_.id));let St=Oo(_)?`:${_.agentMetadata?.askUserQuestionAnswered?"a":"u"}:${_.agentMetadata?.askUserQuestionAnswers?Object.keys(_.agentMetadata.askUserQuestionAnswers).length:0}`:"",pt=zg(_,el)+St,Ft=Pe||Oe||Ee?null:jg(Lo,_.id,pt);if(Ft){x.appendChild(Ft.cloneNode(!0)),Oo(_)&&_.toolCall?.id&&_.agentMetadata?.awaitingLocalTool===!0&&!_.agentMetadata?.askUserQuestionAnswered&&(re.add(_.toolCall.id),Hi(_,o,He.composerOverlay));return}let ut=null,on=s.find(Fe=>!!(_.variant==="reasoning"&&Fe.renderReasoning||_.variant==="tool"&&Fe.renderToolCall||!_.variant&&Fe.renderMessage)),Rt=o.layout?.messages;if(Oo(_)&&_.agentMetadata?.askUserQuestionAnswered===!0){Zo.delete(_.id),a.querySelector(`#wrapper-${_.id}`)?.removeAttribute("data-preserve-runtime");return}if(gs(_)&&ho(o).enabled)return;if(Oo(_)&&o.features?.askUserQuestion?.enabled!==!1){let Fe=s.find(jt=>typeof jt.renderAskUserQuestion=="function");if(Fe&&at.current){let jt=Zo.get(_.id),Vt=jt!==pt,Ct=null;if(Vt){let{payload:Xe,complete:Be}=ur(_),yt=_.id,qt=()=>at.current?.getMessages().find(yn=>yn.id===yt);Ct=Fe.renderAskUserQuestion({message:_,payload:Xe,complete:Be,resolve:yn=>{let is=qt();is&&at.current?.resolveAskUserQuestion(is,yn)},dismiss:()=>{let yn=qt();yn?.agentMetadata?.awaitingLocalTool&&(at.current?.markAskUserQuestionResolved(yn),at.current?.resolveAskUserQuestion(yn,"(dismissed)"))},config:o})}let lt=jt!=null;if(Vt&&Ct===null&&!lt){_.agentMetadata?.awaitingLocalTool===!0&&!_.agentMetadata?.askUserQuestionAnswered&&(re.add(_.toolCall.id),Hi(_,o,He.composerOverlay));return}let ft=Wo(_.id,_.role);ft.setAttribute("data-ask-plugin-stub","true"),ft.setAttribute("data-preserve-runtime","true"),x.appendChild(ft),ce.push({messageId:_.id,fingerprint:pt,bubble:Ct});return}else{_.agentMetadata?.awaitingLocalTool===!0&&!_.agentMetadata?.askUserQuestionAnswered&&(re.add(_.toolCall.id),Hi(_,o,He.composerOverlay));return}}else if(Oe){let Fe=s.find(lt=>typeof lt.renderApproval=="function")??i,Vt=to.get(_.id)!==pt,Ct=null;if(Vt&&Fe?.renderApproval){let lt=_.id,ft=(Xe,Be)=>{let yt=at.current?.getMessages().find(qt=>qt.id===lt);yt?.approval&&(yt.approval.toolType==="webmcp"?at.current?.resolveWebMcpApproval(yt.id,Xe):at.current?.resolveApproval(yt.approval,Xe,Be))};Ct=Fe.renderApproval({message:_,defaultRenderer:()=>$a(_,o),config:o,approve:Xe=>ft("approved",Xe),deny:Xe=>ft("denied",Xe)})}if(Vt&&Ct===null)a.querySelector(`#wrapper-${_.id}`)?.removeAttribute("data-preserve-runtime"),to.delete(_.id),ut=$a(_,o);else{let lt=Wo(_.id,_.role);lt.setAttribute("data-approval-plugin-stub","true"),lt.setAttribute("data-preserve-runtime","true"),x.appendChild(lt),tt.push({messageId:_.id,fingerprint:pt,bubble:Ct});return}}else if(on)if(_.variant==="reasoning"&&_.reasoning&&on.renderReasoning){if(!oe)return;ut=on.renderReasoning({message:_,defaultRenderer:()=>Sc(_,o),config:o})}else if(_.variant==="tool"&&_.toolCall&&on.renderToolCall){if(!J)return;ut=on.renderToolCall({message:_,defaultRenderer:()=>Tc(_,o),config:o})}else on.renderMessage&&(ut=on.renderMessage({message:_,defaultRenderer:()=>{let Fe=Ac(_,m,Rt,o.messageActions,Ge,{loadingIndicatorRenderer:R,widgetConfig:o});return _.role!=="user"&&Bc(Fe,_,o,V),Fe},config:o}));if(!ut&&Ee){let Fe=jf(_);if(Fe){let jt=Po.get(_.id),Vt=jt!==pt,Ct=o.wrapComponentDirectiveInBubble!==!1&&Qn.getOptions(Fe.component)?.bubbleChrome!==!1,lt=null;if(Vt){let ft=zf(Fe,{config:o,message:_,transform:m});if(ft&&Fe.component==="PersonaArtifactInline"){let Xe=ft.hasAttribute("data-artifact-inline")?ft:ft.querySelector("[data-artifact-inline]"),Be=Xe?.getAttribute("data-artifact-inline")??"",yt=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(Be):Be,qt=Be?a.querySelector(`#wrapper-${_.id}`)?.querySelector(`[data-artifact-inline="${yt}"]`)??null:null;Xe&&qt&&qt!==Xe&&Dg(qt)&&(Xe===ft?ft=qt:Xe.replaceWith(qt))}if(ft)if(Ct){let Xe=document.createElement("div");if(Xe.className=["persona-message-bubble","persona-rounded-2xl","persona-bg-persona-surface","persona-border","persona-border-persona-message-border","persona-p-4"].join(" "),Xe.id=`bubble-${_.id}`,Xe.setAttribute("data-message-id",_.id),_.content&&_.content.trim()){let Be=document.createElement("div");Be.className="persona-mb-3 persona-text-sm persona-leading-relaxed",Be.innerHTML=m({text:_.content,message:_,streaming:!!_.streaming,raw:_.rawContent}),Xe.appendChild(Be)}Xe.appendChild(ft),lt=Xe}else{let Xe=document.createElement("div");if(Xe.className="persona-flex persona-flex-col persona-w-full persona-max-w-full persona-gap-3 persona-items-stretch",Xe.id=`bubble-${_.id}`,Xe.setAttribute("data-message-id",_.id),Xe.setAttribute("data-persona-component-directive","true"),_.content&&_.content.trim()){let Be=document.createElement("div");Be.className="persona-text-sm persona-leading-relaxed persona-text-persona-primary persona-w-full",Be.innerHTML=m({text:_.content,message:_,streaming:!!_.streaming,raw:_.rawContent}),Xe.appendChild(Be)}Xe.appendChild(ft),lt=Xe}}if(lt||jt!=null){let ft=Wo(_.id,_.role);ft.setAttribute("data-component-directive-stub","true"),ft.setAttribute("data-preserve-runtime","true"),x.appendChild(ft),Ae.push({messageId:_.id,fingerprint:pt,bubble:lt});return}}}if(!ut)if(_.variant==="reasoning"&&_.reasoning){if(!oe)return;ut=Sc(_,o)}else if(_.variant==="tool"&&_.toolCall){if(!J)return;ut=Tc(_,o)}else if(_.variant==="approval"&&_.approval){if(o.approval===!1)return;ut=$a(_,o)}else{let Fe=o.layout?.messages;Fe?.renderUserMessage&&_.role==="user"?ut=Fe.renderUserMessage({message:_,config:o,streaming:!!_.streaming}):Fe?.renderAssistantMessage&&_.role==="assistant"?ut=Fe.renderAssistantMessage({message:_,config:o,streaming:!!_.streaming}):ut=Ac(_,m,Fe,o.messageActions,Ge,{loadingIndicatorRenderer:R,widgetConfig:o}),_.role!=="user"&&ut&&Bc(ut,_,o,V)}let Ie=Wo(_.id,_.role);Ie.appendChild(ut),Vg(Lo,_.id,pt,Ie),x.appendChild(Ie)}),He.composerOverlay&&He.composerOverlay.querySelectorAll("[data-persona-ask-sheet-for]").forEach(Pe=>{let Oe=Pe.getAttribute("data-persona-ask-sheet-for");Oe&&!re.has(Oe)&&fr(He.composerOverlay,Oe)}),o.features?.toolCallDisplay?.grouped){let _=[],Pe=[],Oe=o.features.toolCallDisplay.groupedMode==="summary";f.forEach(Ee=>{if(Ee.variant==="tool"&&Ee.toolCall&&J){Pe.push(Ee);return}Ee.variant==="reasoning"&&!oe||((Pe.length>1||Oe&&Pe.length>0)&&_.push(Pe),Pe=[])}),(Pe.length>1||Oe&&Pe.length>0)&&_.push(Pe),_.forEach(Ee=>{let St=Ee.map(Fe=>Array.from(x.children).find(jt=>jt instanceof HTMLElement&&jt.getAttribute("data-wrapper-id")===Fe.id)).filter(Fe=>!!Fe);if(St.length<(Oe?1:2))return;let pt=Wo(`tool-group-${Ee[0].id}`,"assistant");pt.setAttribute("data-persona-tool-group-row","true");let Ft=document.createElement("div");Ft.className="persona-tool-group persona-flex persona-w-full persona-flex-col persona-gap-2",Ft.setAttribute("data-persona-tool-group","true");let ut=document.createElement("div");ut.className="persona-tool-group-summary persona-text-xs persona-text-persona-muted",ut.id=`tool-group-summary-${Ee[0].id}`;let on=`Called ${Ee.length} ${Ee.length===1?"tool":"tools"}`,Rt=o.toolCall?.renderGroupedSummary?.({messages:Ee,toolCalls:Ee.map(Fe=>Fe.toolCall).filter(Fe=>!!Fe),defaultSummary:on,config:o});ne(ut,Rt)||(ut.textContent=on);let Ie=document.createElement("div");Ie.className="persona-tool-group-stack persona-flex persona-flex-col",Ie.id=`tool-group-stack-${Ee[0].id}`,Ie.setAttribute("data-persona-tool-group-stack","true"),Ft.appendChild(ut),Oe||Ft.appendChild(Ie),pt.appendChild(Ft),St[0].before(pt),St.forEach((Fe,jt)=>{if(Oe){Fe.remove();return}Fe.style.setProperty("--persona-message-row-max-width","100%");let Vt=document.createElement("div");Vt.className="persona-tool-group-item persona-relative",Vt.setAttribute("data-persona-tool-group-item","true"),jt<St.length-1&&Vt.setAttribute("data-persona-tool-group-connector","true"),Vt.appendChild(Fe),Ie.appendChild(Vt)})})}qg(Lo,q);let cn=f.some(_=>_.role==="assistant"&&_.streaming),Et=f[f.length-1],It=Et?.role==="assistant"&&!Et.streaming&&Et.variant!=="approval";if(An&&f.some(_=>_.role==="user")&&!cn&&!It){let _={config:o,streaming:!0,location:"standalone",defaultRenderer:zs},Pe=s.find(Ee=>Ee.renderLoadingIndicator),Oe=null;if(Pe?.renderLoadingIndicator&&(Oe=Pe.renderLoadingIndicator(_)),Oe===null&&o.loadingIndicator?.render&&(Oe=o.loadingIndicator.render(_)),Oe===null&&(Oe=zs()),Oe){let Ee=document.createElement("div"),St=o.loadingIndicator?.showBubble!==!1,pt=o.layout?.messages?.layout??"bubble";Ee.className=St?wc("assistant",pt).join(" "):["persona-text-sm","persona-leading-relaxed","persona-text-persona-text"].join(" "),Ee.setAttribute("data-typing-indicator","true"),St&&(Ee.style.color="var(--persona-message-assistant-text, var(--persona-text))",pt!=="flat"&&(Ee.style.backgroundColor="var(--persona-message-assistant-bg, var(--persona-container))",Ee.style.borderColor="var(--persona-message-assistant-border, var(--persona-border, #e5e7eb))")),Ee.appendChild(Oe);let Ft=Wo("typing-indicator","assistant");Ft.appendChild(Ee),x.appendChild(Ft)}}if(!An&&f.length>0){let _=f[f.length-1],Pe={config:o,lastMessage:_,messageCount:f.length},Oe=s.find(St=>St.renderIdleIndicator),Ee=null;if(Oe?.renderIdleIndicator&&(Ee=Oe.renderIdleIndicator(Pe)),Ee===null&&o.loadingIndicator?.renderIdle&&(Ee=o.loadingIndicator.renderIdle(Pe)),Ee){let St=document.createElement("div"),pt=o.loadingIndicator?.showBubble!==!1;St.className=pt?["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(" "),St.setAttribute("data-idle-indicator","true"),St.appendChild(Ee);let Ft=Wo("idle-indicator","assistant");Ft.appendChild(St),x.appendChild(Ft)}}if(Ip(x),xa(a,x),Al(a),ce.length>0)for(let{messageId:_,fingerprint:Pe,bubble:Oe}of ce){let Ee=a.querySelector(`#wrapper-${_}`);Ee&&(mi(Ee,Z.get(_)??"assistant"),Oe!==null&&(Ee.replaceChildren(Oe),Ee.setAttribute("data-bubble-fp",Pe),Zo.set(_,Pe)))}if(Zo.size>0)for(let _ of Zo.keys())q.has(_)||Zo.delete(_);if(Ae.length>0)for(let{messageId:_,fingerprint:Pe,bubble:Oe}of Ae){let Ee=a.querySelector(`#wrapper-${_}`);Ee&&(mi(Ee,Z.get(_)??"assistant"),Oe!==null&&(Ee.replaceChildren(Oe),Ee.setAttribute("data-bubble-fp",Pe),Po.set(_,Pe)))}if(Po.size>0)for(let _ of Po.keys())q.has(_)||Po.delete(_);if(tt.length>0)for(let{messageId:_,fingerprint:Pe,bubble:Oe}of tt){let Ee=a.querySelector(`#wrapper-${_}`);Ee&&(mi(Ee,Z.get(_)??"assistant"),Oe!==null&&(Ee.replaceChildren(Oe),Ee.setAttribute("data-bubble-fp",Pe),to.set(_,Pe)))}if(to.size>0)for(let _ of to.keys())q.has(_)||to.delete(_)},Jr=(a,f,m)=>{Wm(a,f,m),ld()},Yr=null,Hm=()=>{if(Yr)return;let a=m=>{let x=m.composedPath();x.includes(De)||Ye&&x.includes(Ye)||ct(!1,"user")};Yr=a,(t.ownerDocument??document).addEventListener("pointerdown",a,!0)},Od=()=>{if(!Yr)return;(t.ownerDocument??document).removeEventListener("pointerdown",Yr,!0),Yr=null};$e.push(()=>Od());let Zr=null,Bm=()=>{if(Zr)return;let a=m=>{m.key==="Escape"&&(m.isComposing||ct(!1,"user"))};Zr=a,(t.ownerDocument??document).addEventListener("keydown",a,!0)},Fd=()=>{if(!Zr)return;(t.ownerDocument??document).removeEventListener("keydown",Zr,!0),Zr=null};$e.push(()=>Fd());let es=!1,_d=new Set,Dm=()=>{let a=o.launcher?.composerBar?.peek?.streamAnimation;return a||o.features?.streamAnimation},tr=()=>{if(!P())return;let a=He.peekBanner,f=He.peekTextNode;if(!a||!f)return;if(j){a.classList.remove("persona-pill-peek--visible");return}let m=V?.getMessages()??[],x;for(let Et=m.length-1;Et>=0;Et--){let It=m[Et];if(It.role==="assistant"&&It.content){x=It;break}}if(!x){a.classList.remove("persona-pill-peek--visible");return}let T=x.content,R=!!x.streaming,ne=Dm(),q=Sa(ne),Z=q.type!=="none"?Er(q.type,ne?.plugins):null,re=Z?.isAnimating?.(x)===!0,me=Z!==null&&(R||re);me&&Z&&!_d.has(Z.name)&&(Ea(Z,t),_d.add(Z.name));let ce=me&&Z?.containerClass?Z.containerClass:null,Ae=f.dataset.personaPeekStreamClass??null;Ae&&Ae!==ce&&(f.classList.remove(Ae),delete f.dataset.personaPeekStreamClass),ce&&Ae!==ce&&(f.classList.add(ce),f.dataset.personaPeekStreamClass=ce),me?(f.style.setProperty("--persona-stream-step",`${q.speed}ms`),f.style.setProperty("--persona-stream-duration",`${q.duration}ms`)):(f.style.removeProperty("--persona-stream-step"),f.style.removeProperty("--persona-stream-duration"));let je=me?Ma(T,q.buffer,Z,x,R):T;if(me&&q.placeholder==="skeleton"&&R&&(!je||!je.trim())){let Et=document.createElement("div"),It=Ns();It.classList.add("persona-pill-peek__skeleton"),Et.appendChild(It),xa(f,Et)}else{let Et=Math.max(0,je.length-100),It=je.length>100?je.slice(-100):je,_=po(It);if(!me||!Z){let Pe=je.length>100?`\u2026${It}`:It;f.textContent!==Pe&&(f.textContent=Pe)}else{let Pe=_;(Z.wrap==="char"||Z.wrap==="word")&&(Pe=Ds(_,Z.wrap,`peek-${x.id}`,{skipTags:Z.skipTags,startIndex:Et}));let Oe=document.createElement("div");if(Oe.innerHTML=Pe,Z.useCaret&&It.length>0){let Ee=Ta(),St=Oe.querySelectorAll(".persona-stream-char, .persona-stream-word"),pt=St[St.length-1];pt?.parentNode?pt.parentNode.insertBefore(Ee,pt.nextSibling):Oe.appendChild(Ee)}xa(f,Oe),Z.onAfterRender?.({container:f,bubble:a,messageId:x.id,message:x,speed:q.speed,duration:q.duration})}}let cn=An||es;a.classList.toggle("persona-pill-peek--visible",cn)};if(P()){let a=He.peekBanner;if(a){let x=T=>{T.preventDefault(),T.stopPropagation(),ct(!0,"user")};a.addEventListener("pointerdown",x),$e.push(()=>{a.removeEventListener("pointerdown",x)})}let f=()=>{es||(es=!0,tr())},m=()=>{es&&(es=!1,tr())};ye.addEventListener("pointerenter",f),ye.addEventListener("pointerleave",m),$e.push(()=>{ye.removeEventListener("pointerenter",f),ye.removeEventListener("pointerleave",m)}),Ye&&(Ye.addEventListener("pointerenter",f),Ye.addEventListener("pointerleave",m),$e.push(()=>{Ye.removeEventListener("pointerenter",f),Ye.removeEventListener("pointerleave",m)}))}let Nm=a=>{let f=o.launcher?.composerBar??{},m=f.expandedSize??"anchored",x=f.bottomOffset??"16px",T=f.collapsedMaxWidth,R=f.expandedMaxWidth??"880px",ne=f.expandedTopOffset??"5vh",q=f.modalMaxWidth??"880px",Z=f.modalMaxHeight??"min(90vh, 800px)",re="calc(100vw - 32px)",me="var(--persona-pill-area-height, 80px)",ce=De.style;if(ce.left="",ce.right="",ce.top="",ce.bottom="",ce.transform="",ce.width="",ce.maxWidth="",ce.height="",ce.maxHeight="",Ye){let Ae=Ye.style;Ae.bottom=x,Ae.width=T??""}if(a&&m!=="fullscreen"){if(m==="modal"){ce.top="50%",ce.left="50%",ce.transform="translate(-50%, -50%)",ce.bottom="auto",ce.right="auto",ce.width=q,ce.maxWidth=re,ce.maxHeight=Z,ce.height=Z;return}ce.left="50%",ce.transform="translateX(-50%)",ce.bottom=`calc(${x} + ${me})`,ce.top=ne,ce.width=R,ce.maxWidth=re}},ts=()=>{if(!I())return;if(P()){let re=(o.launcher?.composerBar??{}).expandedSize??"anchored",me=j?"expanded":"collapsed";De.dataset.state=me,De.dataset.expandedSize=re,Ye&&(Ye.dataset.state=me,Ye.dataset.expandedSize=re),De.style.removeProperty("display"),De.classList.remove("persona-pointer-events-none","persona-opacity-0"),ye.classList.remove("persona-scale-95","persona-opacity-0","persona-scale-100","persona-opacity-100"),Nm(j),xe.style.display=j?"flex":"none",si(),j?(Hm(),Bm()):(Od(),Fd()),tr();return}let a=_t(o),f=t.ownerDocument.defaultView??window,m=o.launcher?.mobileBreakpoint??640,x=o.launcher?.mobileFullscreen??!0,T=f.innerWidth<=m,R=x&&T&&E,ne=xn(o).reveal;j?(De.style.removeProperty("display"),De.style.display=a?"flex":"",De.classList.remove("persona-pointer-events-none","persona-opacity-0"),ye.classList.remove("persona-scale-95","persona-opacity-0"),ye.classList.add("persona-scale-100","persona-opacity-100"),$t?$t.element.style.display="none":Zt&&(Zt.style.display="none")):(a?a&&(ne==="overlay"||ne==="push")&&!R?(De.style.removeProperty("display"),De.style.display="flex",De.classList.remove("persona-pointer-events-none","persona-opacity-0"),ye.classList.remove("persona-scale-100","persona-opacity-100","persona-scale-95","persona-opacity-0")):(De.style.setProperty("display","none","important"),De.classList.remove("persona-pointer-events-none","persona-opacity-0"),ye.classList.remove("persona-scale-100","persona-opacity-100","persona-scale-95","persona-opacity-0")):(De.style.display="",De.classList.add("persona-pointer-events-none","persona-opacity-0"),ye.classList.remove("persona-scale-100","persona-opacity-100"),ye.classList.add("persona-scale-95","persona-opacity-0")),$t?$t.element.style.display=a?"none":"":Zt&&(Zt.style.display=a?"none":""))},ct=(a,f="user")=>{if(!I()||j===a)return;let m=j;j=a,ts();let x=(()=>{let R=o.launcher?.sidebarMode??!1,ne=t.ownerDocument.defaultView??window,q=o.launcher?.mobileFullscreen??!0,Z=o.launcher?.mobileBreakpoint??640,re=ne.innerWidth<=Z,me=_t(o)&&q&&re,ce=P()&&(o.launcher?.composerBar?.expandedSize??"fullscreen")==="fullscreen";return R||q&&re&&E||me||ce})();if(j&&x){if(!Pn){let R=t.getRootNode(),ne=R instanceof ShadowRoot?R.host:t.closest(".persona-host");ne&&(Pn=mc(ne,o.launcher?.zIndex??Qt))}In||(In=hc(t.ownerDocument))}else j||(Pn?.(),Pn=null,In?.(),In=null);j&&(rs(),Bd()||(un()==="follow"?so(!0):Wd()));let T={open:j,source:f,timestamp:Date.now()};j&&!m?p.emit("widget:opened",T):!j&&m&&p.emit("widget:closed",T),p.emit("widget:state",{open:j,launcherEnabled:E,voiceActive:Ke.active,streaming:V.isStreaming()})},ll=a=>{Ze(a?"stop":"send"),X&&(X.disabled=a),jr.forEach(f=>{f.elements.forEach(m=>{m.toggleAttribute("data-disabled",a),m instanceof HTMLButtonElement||m.setAttribute("aria-disabled",a?"true":"false")}),f.buttons.forEach(m=>{m.disabled=a})}),Se.dataset.personaComposerStreaming=a?"true":"false",Se.querySelectorAll("[data-persona-composer-disable-when-streaming]").forEach(f=>{(f instanceof HTMLButtonElement||f instanceof HTMLInputElement||f instanceof HTMLTextAreaElement||f instanceof HTMLSelectElement)&&(f.disabled=a)})},cl=()=>{Ke.active||Q&&Q.focus()};p.on("widget:opened",()=>{o.autoFocusInput&&setTimeout(()=>cl(),200)});let $d=()=>{N.textContent=o.copy?.welcomeTitle??"Hello \u{1F44B}",$.textContent=o.copy?.welcomeSubtitle??"Ask anything about your account or products.",Q.placeholder=o.copy?.inputPlaceholder??"How can I help...";let a=ue.querySelector("[data-persona-intro-card]");if(a){let m=o.copy?.showWelcomeCard!==!1;a.style.display=m?"":"none",m?(ue.classList.remove("persona-gap-3"),ue.classList.add("persona-gap-6")):(ue.classList.remove("persona-gap-6"),ue.classList.add("persona-gap-3"))}!(o.sendButton?.useIcon??!1)&&!V?.isStreaming()&&(w.textContent=o.copy?.sendButtonLabel??"Send"),Q.style.fontFamily='var(--persona-input-font-family, var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif))',Q.style.fontWeight="var(--persona-input-font-weight, var(--persona-font-weight, 400))"};o.clientToken&&(o={...o,getStoredSessionId:()=>{let a=u.sessionId;return typeof a=="string"?a:null},setStoredSessionId:a=>{L(f=>({...f,sessionId:a}))}});let Ho=null,Om=()=>{Ho==null&&(Ho=setInterval(()=>{let a=We.querySelectorAll("[data-tool-elapsed]");if(a.length===0){clearInterval(Ho),Ho=null;return}let f=Date.now();a.forEach(m=>{let x=Number(m.getAttribute("data-tool-elapsed"));x&&(m.textContent=Ni(f-x))})},100))},dl=(a,f)=>{if(Object.is(a,f))return!0;if(a===null||f===null||typeof a!="object"||typeof f!="object")return!1;if(Array.isArray(a)||Array.isArray(f))return!Array.isArray(a)||!Array.isArray(f)||a.length!==f.length?!1:a.every((ne,q)=>dl(ne,f[q]));let m=a,x=f,T=Object.keys(m),R=Object.keys(x);return T.length===R.length&&T.every(ne=>Object.prototype.hasOwnProperty.call(x,ne)&&dl(m[ne],x[ne]))},zd=a=>{let{content:f,rawContent:m,llmContent:x,...T}=a;return T},pl=a=>a.role==="assistant"&&a.streaming===!0&&!a.variant&&!a.toolCall&&!a.tools&&!a.approval&&!a.reasoning&&!a.contentParts&&!a.stopReason&&!zc(a),Fm=(a,f,m)=>{if(a.length!==f.length)return!1;let x=a[m.index],T=f[m.index];return!x||!T||x.id!==m.id||T.id!==m.id?!1:(!Object.is(x.content,T.content)||!Object.is(x.rawContent,T.rawContent)||!Object.is(x.llmContent,T.llmContent))&&pl(x)&&pl(T)&&dl(zd(x),zd(T))},Ud=null,nr=null,Bo=null,Fn=null,hi=a=>{Ud=a;let f,m;nr=null;for(let T=a.length-1;T>=0;T-=1){let R=a[T];if(!f&&R.role==="user"&&(f=R),!m&&R.role==="assistant"&&(m=R),!nr&&pl(R)&&(nr={index:T,id:R.id}),f&&m&&nr)break}Jr(We,a,Y),cc(We,Cn.artifacts,{suppressTransition:An}),Om(),Vr(a),so(!An),Rm(a),a.length===0&&(Xr(),Kr=!0,ci=!1,di=null,pi=!1),!tl||li?(tl=!0,qr=f?.id??null,nl=m?.id??null):f&&f.id!==qr?(qr=f.id,Lm(f.id)):m&&m.id!==nl&&Pm(),m&&(nl=m.id),Im(a);let x=Ke.lastUserMessageId;f&&f.id!==x&&(Ke.lastUserMessageId=f.id,p.emit("user:message",f)),Ke.lastUserMessageWasVoice=!!f?.viaVoice,sl(a),tr()},ul=()=>{Fn!==null&&(cancelAnimationFrame(Fn),Fn=null);let a=Bo;Bo=null,a&&hi(a)},jd=()=>{Fn!==null&&cancelAnimationFrame(Fn),Fn=null,Bo=null},_m=a=>{let f=Bo??Ud;if(An&&f&&nr&&Fm(f,a,nr)){Bo=a,Fn===null&&(Fn=requestAnimationFrame(()=>{Fn=null;let m=Bo;Bo=null,m&&hi(m)}));return}if(a.length===0){jd(),hi(a);return}ul(),hi(a)};V=new Ki(o,{onMessagesChanged(a){_m(a)},onStatusChanged(a){let f=o.statusIndicator??{};Xt(H,(x=>x==="idle"?f.idleText??Wt.idle:x==="connecting"?f.connectingText??Wt.connecting:x==="connected"?f.connectedText??Wt.connected:x==="error"?f.errorText??Wt.error:x==="paused"?f.pausedText??Wt.paused:x==="resuming"?f.resumingText??Wt.resuming:Wt[x])(a),f,a)},onStreamingChanged(a){a||(V?.getMessages().length===0?jd():ul()),An=a,ll(a),V&&Jr(We,V.getMessages(),Y),a||(so(!0),Sd=!0,V&&Md(V.getMessages(),ho(o))),ln(),ed(a?"Responding\u2026":"Response complete."),tr()},onVoiceStatusChanged(a){if(p.emit("voice:status",{status:a,timestamp:Date.now()}),o.voiceRecognition?.provider?.type==="runtype")switch(a){case"listening":_n(),rr();break;case"processing":_n(),Jm();break;case"speaking":_n(),Ym();break;default:a==="idle"&&V.isBargeInActive()?(_n(),rr(),X?.setAttribute("aria-label","End voice session")):(Ke.active=!1,_n(),On("system"),Mn());break}},onArtifactsState(a){Cn=a,a.artifacts.length===0&&(Xo=!1),cc(We,a.artifacts,{suppressTransition:An}),Nn(),sl()},onReconnect(a){let{executionId:f,lastEventId:m}=a.handle;a.phase==="paused"?p.emit("stream:paused",{executionId:f,after:m}):a.phase==="resuming"?p.emit("stream:resuming",{executionId:f,after:m,attempt:a.attempt??1}):p.emit("stream:resumed",{executionId:f,after:m})}}),at.current=V,$e.push(()=>V.cancel());let gl=null;if(V.onReadAloudChange((a,f)=>{id=a,ad=f,ld();let m=a??gl;a&&(gl=a);let x=m?V.getMessages().find(T=>T.id===m)??null:null;p.emit("message:read-aloud",{messageId:m,message:x,state:f,timestamp:Date.now()}),f==="idle"&&(gl=null)}),tl=!0,o.voiceRecognition?.provider?.type==="runtype")try{V.setupVoice()}catch(a){typeof console<"u"&&console.warn("[AgentWidget] Runtype voice setup failed:",a)}o.clientToken&&V.initClientSession().catch(a=>{o.debug&&console.warn("[AgentWidget] Pre-init client session failed:",a)}),(Te||o.onSSEEvent)&&V.setSSEEventCallback((a,f)=>{o.onSSEEvent?.(a,f),Me?.processEvent(a,f),Te?.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:a,timestamp:Date.now(),payload:JSON.stringify(f)})});let Vd=()=>{o.resume&&typeof o.reconnectStream=="function"&&V.resumeFromHandle(o.resume)};b?b.then(a=>{if(a){if(a.metadata&&(u=Uc(a.metadata),S.syncFromMetadata()),a.messages?.length){li=!0;try{V.hydrateMessages(a.messages)}finally{li=!1}}a.artifacts?.length&&V.hydrateArtifacts(a.artifacts,a.selectedArtifactId??null)}}).catch(a=>{typeof console<"u"&&console.error("[AgentWidget] Failed to hydrate stored state:",a)}).finally(()=>Vd()):Vd();let qd=()=>{!P()||j||!(o.launcher?.composerBar?.expandOnSubmit??!0)||ct(!0,"auto")},$m=(a,f)=>a?f?{refs:[...a.refs,...f.refs],finalize:async()=>{let[m,x]=await Promise.allSettled([a.finalize(),f.finalize()]),T=[];return m.status==="fulfilled"?T.push(m.value):console.warn("[Persona] a mention bundle failed to finalize; sending without it",m.reason),x.status==="fulfilled"?T.push(x.value):console.warn("[Persona] a mention bundle failed to finalize; sending without it",x.reason),zx(T)}}:a:f,zm=()=>{let f=Q.getInlineMessageFields?.();return f&&f.contentSegments.some(x=>x.kind==="mention")?f.contentSegments:void 0},ns=!1,Um=async a=>{let f=Q.value.trim(),m=Tt?.hasAttachments()??!1,x=f?await(sn?.takeInlineCommand(f)??Promise.resolve(null)):null;if(x?.kind==="action"){Q.value="",Q.style.height="auto",os(),sn?.clear();return}let T=sn?.collectForSubmit()??null,R=x?.kind==="server"?x.mentions:null,ne=$m(T,R),q=x?.kind==="prompt"?x.sendText:f,Z=!!T&&T.refs.length>0;if(!q&&!m&&!Z&&!R)return;qd();let re;m&&(re=[],re.push(...Tt.getContentParts()),q&&re.push(yr(q)));let me=x?.kind==="prompt"?void 0:zm();Q.value="",Q.style.height="auto",os(),V.sendMessage(q,{contentParts:re,mentions:ne??void 0,contentSegments:me,viaVoice:a?.viaVoice}),m&&Tt.clearAttachments(),T&&sn?.clear()},fl=async a=>{if(!ns){ns=!0;try{await Um(a)}finally{ns=!1}}},Kd=a=>{if(a.preventDefault(),V.isStreaming()){V.cancel(),Me?.reset(),_e?.update();return}ns||fl()},jm=()=>o.features?.composerHistory!==!1,ml={...uc},hl=!1,os=()=>{ml={...uc}},Vm=()=>V.getMessages().filter(a=>a.role==="user").map(a=>a.content??"").filter(a=>a.length>0),qm=a=>{if(!Q)return;hl=!0,Q.value=a,Q.dispatchEvent(new Event("input",{bubbles:!0})),hl=!1;let f=Q.value.length;Q.setSelectionRange(f,f)},Km=a=>{hl||(a.isComposing||sn?.handleInput(a.inputType??void 0),os())},Gm=a=>{if(Q&&!(!a.isComposing&&sn?.handleKeydown(a))){if(jm()&&(a.key==="ArrowUp"||a.key==="ArrowDown")&&!a.shiftKey&&!a.metaKey&&!a.ctrlKey&&!a.altKey&&!a.isComposing){let f=Q.selectionStart===0&&Q.selectionEnd===0,m=$g({direction:a.key==="ArrowUp"?"up":"down",history:Vm(),currentValue:Q.value,atStart:f,state:ml});if(ml=m.state,m.handled){a.preventDefault(),m.value!==void 0&&qm(m.value);return}}if(a.key==="Enter"&&!a.shiftKey){if(V.isStreaming()){a.preventDefault();return}if(ns){a.preventDefault();return}os(),a.preventDefault(),w.click()}}},Gd=a=>{a.key!=="Escape"||a.isComposing||V.isStreaming()&&a.composedPath().includes(xe)&&(V.cancel(),Me?.reset(),_e?.update(),os(),a.preventDefault(),a.stopImmediatePropagation())},Qm=async a=>{if(o.attachments?.enabled!==!0||!Tt)return;let f=Ox(a.clipboardData);f.length!==0&&(a.preventDefault(),await Tt.handleFiles(f))},mn=null,Rn=!1,or=null,xt=null,Qd=()=>typeof window>"u"?null:window.webkitSpeechRecognition||window.SpeechRecognition||null,yi=(a="user")=>{if(Rn||V.isStreaming())return;let f=Qd();if(!f)return;mn=new f;let x=(o.voiceRecognition??{}).pauseDuration??2e3;mn.continuous=!0,mn.interimResults=!0,mn.lang="en-US";let T=Q.value;mn.onresult=R=>{let ne="",q="";for(let re=0;re<R.results.length;re++){let me=R.results[re],ce=me[0].transcript;me.isFinal?ne+=ce+" ":q=ce}let Z=T+ne+q;Q.value=Z,or&&clearTimeout(or),(ne||q)&&(or=window.setTimeout(()=>{Q.value.trim()&&mn&&Rn&&(io(),fl({viaVoice:!0}))},x))},mn.onerror=R=>{R.error!=="no-speech"&&io()},mn.onend=()=>{if(Rn){let R=Q.value.trim();R&&R!==T.trim()&&fl({viaVoice:!0}),io()}};try{if(mn.start(),Rn=!0,Ke.active=!0,a!=="system"&&(Ke.manuallyDeactivated=!1),On(a),Mn(),X){let R=o.voiceRecognition??{};xt={backgroundColor:X.style.backgroundColor,color:X.style.color,borderColor:X.style.borderColor,iconName:R.iconName??"mic",iconSize:parseFloat(R.iconSize??o.sendButton?.size??"40")||24};let ne=R.recordingBackgroundColor,q=R.recordingIconColor,Z=R.recordingBorderColor;if(X.classList.add("persona-voice-recording"),X.style.backgroundColor=ne??"var(--persona-voice-recording-bg, #ef4444)",X.style.color=q??"var(--persona-voice-recording-indicator, #ffffff)",q){let re=X.querySelector("svg");re&&re.setAttribute("stroke",q)}Z&&(X.style.borderColor=Z),X.setAttribute("aria-label","Stop voice recognition")}}catch{io("system")}},io=(a="user")=>{if(Rn){if(Rn=!1,or&&(clearTimeout(or),or=null),mn){try{mn.stop()}catch{}mn=null}if(Ke.active=!1,On(a),Mn(),X){if(X.classList.remove("persona-voice-recording"),xt){X.style.backgroundColor=xt.backgroundColor,X.style.color=xt.color,X.style.borderColor=xt.borderColor;let f=X.querySelector("svg");f&&f.setAttribute("stroke",xt.color||"currentColor"),xt=null}X.setAttribute("aria-label","Start voice recognition")}}},Xm=(a,f)=>{let m=typeof window<"u"&&(typeof window.webkitSpeechRecognition<"u"||typeof window.SpeechRecognition<"u"),x=a?.provider?.type==="runtype",T=a?.provider?.type==="custom";if(!(m||x||T))return null;let ne=v("div","persona-send-button-wrapper"),q=v("button","persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer");q.type="button";let Z=a?.tooltipText??"Start voice recognition";q.setAttribute("aria-label",Z);let re=a?.iconName??"mic",me=f?.size??"40px",ce=a?.iconSize??me,Ae=parseFloat(ce)||24,je=a?.backgroundColor??f?.backgroundColor,dt=a?.iconColor??f?.textColor;q.style.width=ce,q.style.height=ce,q.style.minWidth=ce,q.style.minHeight=ce,q.style.fontSize="18px",q.style.lineHeight="1",dt?q.style.color=dt:q.style.color="var(--persona-text, #111827)";let cn=ae(re,Ae,dt||"currentColor",1.5);cn?q.appendChild(cn):q.textContent="\u{1F3A4}",je?q.style.backgroundColor=je:q.style.backgroundColor="",a?.borderWidth&&(q.style.borderWidth=a.borderWidth,q.style.borderStyle="solid"),a?.borderColor&&(q.style.borderColor=a.borderColor),a?.paddingX&&(q.style.paddingLeft=a.paddingX,q.style.paddingRight=a.paddingX),a?.paddingY&&(q.style.paddingTop=a.paddingY,q.style.paddingBottom=a.paddingY),ne.appendChild(q);let Et=a?.showTooltip??!1;return Ut({anchor:q,trigger:ne,text:()=>q.getAttribute("aria-label")??Z,enabled:Et}),{micButton:q,micButtonWrapper:ne}},yl=()=>{if(!X||xt)return;let a=o.voiceRecognition??{};xt={backgroundColor:X.style.backgroundColor,color:X.style.color,borderColor:X.style.borderColor,iconName:a.iconName??"mic",iconSize:parseFloat(a.iconSize??o.sendButton?.size??"40")||24}},bl=(a,f)=>{if(!X)return;let m=X.querySelector("svg");m&&m.remove();let x=xt?.iconSize??(parseFloat(o.voiceRecognition?.iconSize??o.sendButton?.size??"40")||24),T=ae(a,x,f,1.5);T&&X.appendChild(T)},bi=()=>{X&&X.classList.remove("persona-voice-recording","persona-voice-processing","persona-voice-speaking")},rr=()=>{if(!X)return;yl();let a=o.voiceRecognition??{},f=a.recordingBackgroundColor,m=a.recordingIconColor,x=a.recordingBorderColor;if(bi(),X.classList.add("persona-voice-recording"),X.style.backgroundColor=f??"var(--persona-voice-recording-bg, #ef4444)",X.style.color=m??"var(--persona-voice-recording-indicator, #ffffff)",m){let T=X.querySelector("svg");T&&T.setAttribute("stroke",m)}x&&(X.style.borderColor=x),X.setAttribute("aria-label","Stop voice recognition")},Jm=()=>{if(!X)return;yl();let a=o.voiceRecognition??{},f=V.getVoiceInterruptionMode(),m=a.processingIconName??"loader",x=a.processingIconColor??xt?.color??"",T=a.processingBackgroundColor??xt?.backgroundColor??"",R=a.processingBorderColor??xt?.borderColor??"";bi(),X.classList.add("persona-voice-processing"),X.style.backgroundColor=T,X.style.borderColor=R;let ne=x||"currentColor";X.style.color=ne,bl(m,ne),X.setAttribute("aria-label","Processing voice input"),f==="none"&&(X.style.cursor="default")},Ym=()=>{if(!X)return;yl();let a=o.voiceRecognition??{},f=V.getVoiceInterruptionMode(),m=f==="cancel"?"square":f==="barge-in"?"mic":"volume-2",x=a.speakingIconName??m,T=a.speakingIconColor??(f==="barge-in"?a.recordingIconColor??xt?.color??"":xt?.color??""),R=a.speakingBackgroundColor??(f==="barge-in"?a.recordingBackgroundColor??"var(--persona-voice-recording-bg, #ef4444)":xt?.backgroundColor??""),ne=a.speakingBorderColor??(f==="barge-in"?a.recordingBorderColor??"":xt?.borderColor??"");bi(),X.classList.add("persona-voice-speaking"),X.style.backgroundColor=R,X.style.borderColor=ne;let q=T||"currentColor";X.style.color=q,bl(x,q);let Z=f==="cancel"?"Stop playback and re-record":f==="barge-in"?"Speak to interrupt":"Agent is speaking";X.setAttribute("aria-label",Z),f==="none"&&(X.style.cursor="default"),f==="barge-in"&&X.classList.add("persona-voice-recording")},_n=()=>{X&&(bi(),xt&&(X.style.backgroundColor=xt.backgroundColor??"",X.style.color=xt.color??"",X.style.borderColor=xt.borderColor??"",bl(xt.iconName,xt.color||"currentColor"),xt=null),X.style.cursor="",X.setAttribute("aria-label","Start voice recognition"))},vi=()=>{if(o.voiceRecognition?.provider?.type==="runtype"){let a=V.getVoiceStatus(),f=V.getVoiceInterruptionMode();if(f==="none"&&(a==="processing"||a==="speaking"))return;if(f==="cancel"&&(a==="processing"||a==="speaking")){V.stopVoicePlayback();return}if(V.isBargeInActive()){V.stopVoicePlayback(),V.deactivateBargeIn().then(()=>{Ke.active=!1,Ke.manuallyDeactivated=!0,Mn(),On("user"),_n()});return}V.toggleVoice().then(()=>{Ke.active=V.isVoiceActive(),Ke.manuallyDeactivated=!V.isVoiceActive(),Mn(),On("user"),V.isVoiceActive()?rr():_n()});return}if(Rn){let a=Q.value.trim();Ke.manuallyDeactivated=!0,Mn(),io("user"),a&&(Q.value="",Q.style.height="auto",V.sendMessage(a))}else Ke.manuallyDeactivated=!1,Mn(),yi("user")};nd=vi,X&&(X.addEventListener("click",vi),$e.push(()=>{o.voiceRecognition?.provider?.type==="runtype"?(V.isVoiceActive()&&V.toggleVoice(),_n()):io("system"),X&&X.removeEventListener("click",vi)}));let Zm=p.on("assistant:complete",()=>{Ed&&(Ke.active||Ke.manuallyDeactivated||Ed==="assistant"&&!Ke.lastUserMessageWasVoice||setTimeout(()=>{!Ke.active&&!Ke.manuallyDeactivated&&(o.voiceRecognition?.provider?.type==="runtype"?V.toggleVoice().then(()=>{Ke.active=V.isVoiceActive(),On("auto"),V.isVoiceActive()&&rr()}):yi("auto"))},600))});$e.push(Zm);let eh=p.on("action:resubmit",()=>{setTimeout(()=>{V&&!V.isStreaming()&&V.continueConversation()},100)});$e.push(eh);let Xd=()=>{ct(!j,"user")},$t=null,Zt=null;if(E&&!P()){let{instance:a,element:f}=vc({config:o,plugins:s,onToggle:Xd});$t=a,a||(Zt=f)}$t?t.appendChild($t.element):Zt&&t.appendChild(Zt),ts(),Vr(),$d(),ll(V.isStreaming()),Bd()||(un()==="follow"?so(!0):Wd()),Am(),G&&(!E||P()?setTimeout(()=>cl(),0):j&&setTimeout(()=>cl(),200));let rs=()=>{if(P()){Qo(),ts();return}let a=_t(o),f=o.launcher?.sidebarMode??!1,m=a||f||(o.launcher?.fullHeight??!1),x=t.ownerDocument.defaultView??window,T=o.launcher?.mobileFullscreen??!0,R=o.launcher?.mobileBreakpoint??640,ne=x.innerWidth<=R,q=T&&ne&&E;try{if(q){Fr(),_r=ri();return}let Z=!1;W&&(W=!1,Fr(),Z=!0);let re=ri();if(!Z&&re!==_r&&(Fr(),Z=!0),_r=re,Z&&Ya(),!E&&!a){ye.style.height="",ye.style.width="";return}if(!f&&!a){let ce=o?.launcher?.width??o?.launcherWidth??Gn;ye.style.width=ce,ye.style.maxWidth=ce}if(oi(),!m){let me=x.innerHeight,ce=64,Ae=o.launcher?.heightOffset??0,je=Math.max(200,me-ce),dt=Math.min(640,je),tt=Math.max(200,dt-Ae);ye.style.height=`${tt}px`}}finally{if(Qo(),ts(),j&&E){let re=(t.ownerDocument.defaultView??window).innerWidth<=(o.launcher?.mobileBreakpoint??640),me=o.launcher?.sidebarMode??!1,ce=o.launcher?.mobileFullscreen??!0,Ae=_t(o)&&ce&&re,je=me||ce&&re&&E||Ae;if(je&&!In){let dt=t.getRootNode(),tt=dt instanceof ShadowRoot?dt.host:t.closest(".persona-host");tt&&!Pn&&(Pn=mc(tt,o.launcher?.zIndex??Qt)),In=hc(t.ownerDocument)}else je||(Pn?.(),Pn=null,In?.(),In=null)}}};rs();let Jd=t.ownerDocument.defaultView??window;if(Jd.addEventListener("resize",rs),$e.push(()=>Jd.removeEventListener("resize",rs)),typeof ResizeObserver<"u"){let a=new ResizeObserver(()=>{Qo()});a.observe(Se),$e.push(()=>a.disconnect())}gn=ue.scrollTop;let Yd=Hn(ue),Zd=()=>{let a=ue.scrollTop,f=Hn(ue),m=f<Yd;if(Yd=f,!Yn()){gn=a,ln();return}let{action:x,nextLastScrollTop:T}=wa({following:an.isFollowing(),currentScrollTop:a,lastScrollTop:gn,nearBottom:Co(ue,ui),userScrollThreshold:Cm,isAutoScrolling:fn||ai||m,pauseOnUpwardScroll:!0,pauseWhenAwayFromBottom:!1,resumeRequiresDownwardScroll:!0});if(gn=T,x==="resume"){fi()||ro();return}x==="pause"&&Qr()};if(ue.addEventListener("scroll",Zd,{passive:!0}),$e.push(()=>ue.removeEventListener("scroll",Zd)),typeof ResizeObserver<"u"){let a=new ResizeObserver(()=>{km(),Al(We)});a.observe(We),a.observe(ue),$e.push(()=>a.disconnect())}let ep=()=>{Yn()&&an.isFollowing()&&fi()&&Qr()},tp=ue.ownerDocument;tp.addEventListener("selectionchange",ep),$e.push(()=>{tp.removeEventListener("selectionchange",ep)});let th=new Set(["PageUp","PageDown","Home","End","ArrowUp","ArrowDown"]),np=a=>{th.has(a.key)&&(Ro(),Jc()&&Yn()&&an.isFollowing()&&Qr())},op=a=>{a.target?.closest("a, button, [tabindex], input, textarea, select")&&(Ro(),Jc()&&Yn()&&an.isFollowing()&&Qr())};ue.addEventListener("keydown",np),ue.addEventListener("focusin",op),$e.push(()=>{ue.removeEventListener("keydown",np),ue.removeEventListener("focusin",op)});let rp=a=>{if(a.deltaY!==0&&Ro(),!Yn())return;let f=Aa({following:an.isFollowing(),deltaY:a.deltaY,nearBottom:Co(ue,ui),resumeWhenNearBottom:!0});f==="pause"?Qr():f==="resume"&&!fi()&&ro()};ue.addEventListener("wheel",rp,{passive:!0}),ue.addEventListener("touchmove",Ro,{passive:!0}),ue.addEventListener("pointerdown",Ro,{passive:!0}),$e.push(()=>{ue.removeEventListener("touchmove",Ro),ue.removeEventListener("pointerdown",Ro)}),$e.push(()=>ue.removeEventListener("wheel",rp)),Lt.addEventListener("click",()=>{Xr(),ue.scrollTop=ue.scrollHeight,gn=ue.scrollTop,ro(),so(!0),ln()}),$e.push(()=>Lt.remove()),$e.push(()=>{Pd(),Xr()});let sp=()=>{U&&(Eo&&(U.removeEventListener("click",Eo),Eo=null),I()?(U.style.display="",Eo=()=>{ct(!1,"user")},U.addEventListener("click",Eo)):U.style.display="none")};sp(),(()=>{let{clearChatButton:a}=He;a&&a.addEventListener("click",()=>{V.clearMessages(),Lo.clear(),ro(),fr(He.composerOverlay);try{localStorage.removeItem(Wr),o.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${Wr}`)}catch(m){console.error("[AgentWidget] Failed to clear default localStorage:",m)}if(o.clearChatHistoryStorageKey&&o.clearChatHistoryStorageKey!==Wr)try{localStorage.removeItem(o.clearChatHistoryStorageKey),o.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${o.clearChatHistoryStorageKey}`)}catch(m){console.error("[AgentWidget] Failed to clear custom localStorage:",m)}let f=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});window.dispatchEvent(f),d?.clear&&rl(()=>d.clear(),"[AgentWidget] Failed to clear storage adapter:"),u={},S.syncFromMetadata(),Te?.clear(),Me?.reset(),_e?.update()})})(),y&&y.addEventListener("submit",Kd);let ip=[["keydown",Gm],["input",Km],["paste",Qm],["focus",fm]],ap=a=>{if(a)for(let[f,m]of ip)a.addEventListener(f,m)},lp=a=>{if(a)for(let[f,m]of ip)a.removeEventListener(f,m)};ap(Q),sn?.onComposerSwap((a,f)=>{lp(f),Q=a,ap(a)});let cp=t.ownerDocument??document;cp.addEventListener("keydown",Gd,!0);let dp="persona-attachment-drop-active",ss=0,vl=()=>{ss=0,xe.classList.remove(dp)},sr=()=>o.attachments?.enabled===!0&&Tt!==null,pp=a=>{!Va(a.dataTransfer)||!sr()||(ss++,ss===1&&xe.classList.add(dp))},up=a=>{!Va(a.dataTransfer)||!sr()||(ss--,ss<=0&&vl())},gp=a=>{!Va(a.dataTransfer)||!sr()||(a.preventDefault(),a.dataTransfer.dropEffect="copy")},fp=a=>{if(!Va(a.dataTransfer)||!sr())return;a.preventDefault(),a.stopPropagation(),vl();let f=Array.from(a.dataTransfer.files??[]);f.length!==0&&Tt.handleFiles(f)},ao=!0;xe.addEventListener("dragenter",pp,ao),xe.addEventListener("dragleave",up,ao),t.addEventListener("dragover",gp,ao),t.addEventListener("drop",fp,ao);let xi=t.ownerDocument,mp=a=>{sr()&&a.preventDefault()},hp=a=>{sr()&&a.preventDefault()};xi.addEventListener("dragover",mp),xi.addEventListener("drop",hp),$e.push(()=>{y&&y.removeEventListener("submit",Kd),lp(Q),cp.removeEventListener("keydown",Gd,!0),sn?.destroy()}),$e.push(()=>{xe.removeEventListener("dragenter",pp,ao),xe.removeEventListener("dragleave",up,ao),t.removeEventListener("dragover",gp,ao),t.removeEventListener("drop",fp,ao),xi.removeEventListener("dragover",mp),xi.removeEventListener("drop",hp),vl()}),$e.push(()=>{V.cancel()}),$t?$e.push(()=>{$t?.destroy()}):Zt&&$e.push(()=>{Zt?.remove()});let Pt={update(a){let f=o.toolCall,m=o.messageActions,x=o.layout?.messages,T=o.colorScheme,R=o.loadingIndicator,ne=o.iterationDisplay,q=o.features?.showReasoning,Z=o.features?.showToolCalls,re=o.features?.toolCallDisplay,me=o.features?.reasoningDisplay,ce=o.features?.streamAnimation?.type;o=Of({...o,features:r},a),r=o.features,o=Wc(o),si(),Ps(t,o),qs(t,o),Ks(t,o),Nn(),o.colorScheme!==T&&fd();let Ae=Nc.getForInstance(o.plugins);s.length=0,s.push(...Ae),E=o.launcher?.enabled??!0,z=o.launcher?.autoExpand??!1,oe=o.features?.showReasoning??!0,J=o.features?.showToolCalls??!0,ee=o.features?.scrollToBottom??{};let je=un();fe=o.features?.scrollBehavior??{},je!==un()&&(Xr(),ro()),td(),ln();let dt=ie;if(ie=o.features?.showEventStreamToggle??!1,ie&&!dt){if(Te||(we=new js(he),Te=new Us(ve,we),Me=Me??new Vs,we.open().then(()=>Te?.restore()).catch(()=>{}),V.setSSEEventCallback((le,qe)=>{o.onSSEEvent?.(le,qe),Me?.processEvent(le,qe),Te.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:le,timestamp:Date.now(),payload:JSON.stringify(qe)})})),!et&&Le){let le=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"+(le?.toggleButton?" "+le.toggleButton:"");et=v("button",qe),et.style.width="28px",et.style.height="28px",et.style.color=tn.actionIconColor,et.type="button",et.setAttribute("aria-label","Event Stream"),et.title="Event Stream";let mt=ae("activity","18px","currentColor",1.5);mt&&et.appendChild(mt);let nt=He.clearChatButtonWrapper,st=He.closeButtonWrapper,Kt=nt||st;Kt&&Kt.parentNode===Le?Le.insertBefore(et,Kt):Le.appendChild(et),et.addEventListener("click",()=>{Ve?Nr():Ga()})}}else!ie&&dt&&(Nr(),et&&(et.remove(),et=null),Te?.clear(),we?.destroy(),Te=null,we=null,Me?.reset(),Me=null);if(o.launcher?.enabled===!1&&$t&&($t.destroy(),$t=null),o.launcher?.enabled===!1&&Zt&&(Zt.remove(),Zt=null),o.launcher?.enabled!==!1&&!$t&&!Zt){let{instance:le,element:qe}=vc({config:o,plugins:s,onToggle:Xd});$t=le,le||(Zt=qe),t.appendChild(qe)}$t&&$t.update(o),te&&o.launcher?.title!==void 0&&(te.textContent=o.launcher.title),de&&o.launcher?.subtitle!==void 0&&(de.textContent=o.launcher.subtitle);let tt=o.layout?.header;if(tt?.layout!==D&&Le){let le=tt?Ia(o,tt,{showClose:I(),onClose:()=>ct(!1,"user")}):Uo({config:o,showClose:I(),onClose:()=>ct(!1,"user")});Mt.replaceHeader(le),Le=Mt.header.element,F=Mt.header.iconHolder,te=Mt.header.headerTitle,de=Mt.header.headerSubtitle,U=Mt.header.closeButton,D=tt?.layout}else if(tt){if(F&&(F.style.display=tt.showIcon===!1?"none":""),te&&(te.style.display=tt.showTitle===!1?"none":""),de&&(de.style.display=tt.showSubtitle===!1?"none":""),U){let le=I()&&tt.showCloseButton!==!1;U.style.display=le?"":"none"}if(He.clearChatButtonWrapper){let le=tt.showClearChat;if(le!==void 0){He.clearChatButtonWrapper.style.display=le?"":"none";let{closeButtonWrapper:qe}=He;qe&&!qe.classList.contains("persona-absolute")&&(le?qe.classList.remove("persona-ml-auto"):qe.classList.add("persona-ml-auto"))}}}let Et=o.layout?.showHeader!==!1;Le&&(Le.style.display=Et?"":"none");let It=o.layout?.showFooter!==!1;Se&&(Se.style.display=It?"":"none"),Qo(),ln(),E!==O?E?ct(z,"auto"):(j=!0,ts()):z!==A&&ct(z,"auto"),A=z,O=E,rs(),sp();let Oe=JSON.stringify(o.toolCall)!==JSON.stringify(f),Ee=JSON.stringify(o.messageActions)!==JSON.stringify(m),St=JSON.stringify(o.layout?.messages)!==JSON.stringify(x),pt=o.loadingIndicator?.render!==R?.render||o.loadingIndicator?.renderIdle!==R?.renderIdle||o.loadingIndicator?.showBubble!==R?.showBubble,Ft=o.iterationDisplay!==ne,ut=(o.features?.showReasoning??!0)!==(q??!0)||(o.features?.showToolCalls??!0)!==(Z??!0)||JSON.stringify(o.features?.toolCallDisplay)!==JSON.stringify(re)||JSON.stringify(o.features?.reasoningDisplay)!==JSON.stringify(me);(Oe||Ee||St||pt||Ft||ut)&&V&&(el++,Jr(We,V.getMessages(),Y));let Rt=o.features?.streamAnimation?.type;if(Rt!==ce&&Rt&&Rt!=="none"){let le=Er(Rt,o.features?.streamAnimation?.plugins);le&&Ea(le,t)}let Ie=o.launcher??{},Fe=Ie.headerIconHidden??!1,jt=o.layout?.header?.showIcon,Vt=Fe||jt===!1,Ct=Ie.headerIconName,lt=Ie.headerIconSize??"48px";if(F){let le=xe.querySelector(".persona-border-b-persona-divider"),qe=le?.querySelector(".persona-flex-col");if(Vt)F.style.display="none",le&&qe&&!le.contains(qe)&&le.insertBefore(qe,le.firstChild);else{if(F.style.display="",F.style.height=lt,F.style.width=lt,le&&qe&&(le.contains(F)?F.nextSibling!==qe&&(F.remove(),le.insertBefore(F,qe)):le.insertBefore(F,qe)),Ct){let nt=parseFloat(lt)||24,st=ae(Ct,nt*.6,"currentColor",1);st?F.replaceChildren(st):F.textContent=Ie.agentIconText??"\u{1F4AC}"}else if(Ie.iconUrl){let nt=F.querySelector("img");if(nt)nt.src=Ie.iconUrl,nt.style.height=lt,nt.style.width=lt;else{let st=document.createElement("img");st.src=Ie.iconUrl,st.alt="",st.className="persona-rounded-xl persona-object-cover",st.style.height=lt,st.style.width=lt,F.replaceChildren(st)}}else{let nt=F.querySelector("svg"),st=F.querySelector("img");(nt||st)&&F.replaceChildren(),F.textContent=Ie.agentIconText??"\u{1F4AC}"}let mt=F.querySelector("img");mt&&(mt.style.height=lt,mt.style.width=lt)}}let ft=o.layout?.header?.showTitle,Xe=o.layout?.header?.showSubtitle;if(te&&(te.style.display=ft===!1?"none":""),de&&(de.style.display=Xe===!1?"none":""),U){let le=I()&&o.layout?.header?.showCloseButton!==!1;U.style.display=le?"":"none";let qe=Ie.closeButtonSize??"32px",mt=Ie.closeButtonPlacement??"inline";U.style.height=qe,U.style.width=qe;let{closeButtonWrapper:nt}=He,st=mt==="top-right",Kt=nt?.classList.contains("persona-absolute");if(nt&&st!==Kt)if(nt.remove(),st)nt.className="persona-absolute persona-top-4 persona-right-4 persona-z-50",xe.style.position="relative",xe.appendChild(nt);else{let co=Ie.clearChat?.placement??"inline",ls=Ie.clearChat?.enabled??!0;nt.className=ls&&co==="inline"?"":"persona-ml-auto";let yp=xe.querySelector(".persona-border-b-persona-divider");yp&&yp.appendChild(nt)}if(U.style.color=Ie.closeButtonColor||tn.actionIconColor,Ie.closeButtonBackgroundColor?(U.style.backgroundColor=Ie.closeButtonBackgroundColor,U.classList.remove("hover:persona-bg-gray-100")):(U.style.backgroundColor="",U.classList.add("hover:persona-bg-gray-100")),Ie.closeButtonBorderWidth||Ie.closeButtonBorderColor){let co=Ie.closeButtonBorderWidth||"0px",ls=Ie.closeButtonBorderColor||"transparent";U.style.border=`${co} solid ${ls}`,U.classList.remove("persona-border-none")}else U.style.border="",U.classList.add("persona-border-none");Ie.closeButtonBorderRadius?(U.style.borderRadius=Ie.closeButtonBorderRadius,U.classList.remove("persona-rounded-full")):(U.style.borderRadius="",U.classList.add("persona-rounded-full")),Ie.closeButtonPaddingX?(U.style.paddingLeft=Ie.closeButtonPaddingX,U.style.paddingRight=Ie.closeButtonPaddingX):(U.style.paddingLeft="",U.style.paddingRight=""),Ie.closeButtonPaddingY?(U.style.paddingTop=Ie.closeButtonPaddingY,U.style.paddingBottom=Ie.closeButtonPaddingY):(U.style.paddingTop="",U.style.paddingBottom="");let dn=Ie.closeButtonIconName??"x",Tn=Ie.closeButtonIconText??"\xD7";U.innerHTML="";let zt=ae(dn,"28px","currentColor",1);zt?(zt.style.display="block",U.appendChild(zt)):U.textContent=Tn;let Gt=Ie.closeButtonTooltipText??"Close chat",zn=Ie.closeButtonShowTooltip??!0;U.setAttribute("aria-label",Gt),nt&&Ut({anchor:U,trigger:nt,text:()=>U?.getAttribute("aria-label")??Gt,enabled:zn})}let{clearChatButton:Be,clearChatButtonWrapper:yt}=He;if(Be){let le=Ie.clearChat??{},qe=le.enabled??!0,mt=o.layout?.header?.showClearChat,nt=mt!==void 0?mt:qe,st=le.placement??"inline";if(yt){yt.style.display=nt?"":"none";let{closeButtonWrapper:Kt}=He;!P()&&Kt&&!Kt.classList.contains("persona-absolute")&&(nt?Kt.classList.remove("persona-ml-auto"):Kt.classList.add("persona-ml-auto"));let dn=st==="top-right",Tn=yt.classList.contains("persona-absolute");if(!P()&&dn!==Tn&&nt){if(yt.remove(),dn)yt.className="persona-absolute persona-top-4 persona-z-50",yt.style.right="48px",xe.style.position="relative",xe.appendChild(yt);else{yt.className="persona-relative persona-ml-auto persona-clear-chat-button-wrapper",yt.style.right="";let Gt=xe.querySelector(".persona-border-b-persona-divider"),zn=He.closeButtonWrapper;Gt&&zn&&zn.parentElement===Gt?Gt.insertBefore(yt,zn):Gt&&Gt.appendChild(yt)}let zt=He.closeButtonWrapper;zt&&!zt.classList.contains("persona-absolute")&&(dn?zt.classList.add("persona-ml-auto"):zt.classList.remove("persona-ml-auto"))}}if(nt){if(!P()){let co=le.size??"32px";Be.style.height=co,Be.style.width=co}let Kt=le.iconName??"refresh-cw",dn=le.iconColor??"";Be.style.color=dn||tn.actionIconColor,Be.innerHTML="";let Tn=P()?"14px":"20px",zt=ae(Kt,Tn,"currentColor",1);if(zt&&(zt.style.display="block",Be.appendChild(zt)),le.backgroundColor?(Be.style.backgroundColor=le.backgroundColor,Be.classList.remove("hover:persona-bg-gray-100")):(Be.style.backgroundColor="",Be.classList.add("hover:persona-bg-gray-100")),le.borderWidth||le.borderColor){let co=le.borderWidth||"0px",ls=le.borderColor||"transparent";Be.style.border=`${co} solid ${ls}`,Be.classList.remove("persona-border-none")}else Be.style.border="",Be.classList.add("persona-border-none");le.borderRadius?(Be.style.borderRadius=le.borderRadius,Be.classList.remove("persona-rounded-full")):(Be.style.borderRadius="",Be.classList.add("persona-rounded-full")),le.paddingX?(Be.style.paddingLeft=le.paddingX,Be.style.paddingRight=le.paddingX):(Be.style.paddingLeft="",Be.style.paddingRight=""),le.paddingY?(Be.style.paddingTop=le.paddingY,Be.style.paddingBottom=le.paddingY):(Be.style.paddingTop="",Be.style.paddingBottom="");let Gt=le.tooltipText??"Clear chat",zn=le.showTooltip??!0;Be.setAttribute("aria-label",Gt),yt&&Ut({anchor:Be,trigger:yt,text:()=>Be?.getAttribute("aria-label")??Gt,enabled:zn})}}let qt=o.actionParsers&&o.actionParsers.length?o.actionParsers:[Fc],yn=o.actionHandlers&&o.actionHandlers.length?o.actionHandlers:[Gs.message,Gs.messageAndClick];S=_c({parsers:qt,handlers:yn,getSessionMetadata:C,updateSessionMetadata:L,emit:p.emit,documentRef:typeof document<"u"?document:null}),Y=Gf(o,S,se),V.updateConfig(o),Jr(We,V.getMessages(),Y),Vr(),$d(),ll(V.isStreaming());let is=o.voiceRecognition?.enabled===!0,Ci=typeof window<"u"&&(typeof window.webkitSpeechRecognition<"u"||typeof window.SpeechRecognition<"u"),kt=o.voiceRecognition?.provider?.type==="runtype";if(is&&(Ci||kt))if(!X||!Ue){let le=Xm(o.voiceRecognition,o.sendButton);le&&(X=le.micButton,Ue=le.micButtonWrapper,ot.insertBefore(Ue,K),X.addEventListener("click",vi),X.disabled=V.isStreaming())}else{let le=o.voiceRecognition??{},qe=o.sendButton??{},mt=le.iconName??"mic",nt=qe.size??"40px",st=le.iconSize??nt,Kt=parseFloat(st)||24;X.style.width=st,X.style.height=st,X.style.minWidth=st,X.style.minHeight=st;let dn=le.iconColor??qe.textColor;X.innerHTML="";let Tn=ae(mt,Kt,dn||"currentColor",1.5);Tn?X.appendChild(Tn):X.textContent="\u{1F3A4}";let zt=le.backgroundColor??qe.backgroundColor;zt?X.style.backgroundColor=zt:X.style.backgroundColor="",dn?X.style.color=dn:X.style.color="var(--persona-text, #111827)",le.borderWidth?(X.style.borderWidth=le.borderWidth,X.style.borderStyle="solid"):(X.style.borderWidth="",X.style.borderStyle=""),le.borderColor?X.style.borderColor=le.borderColor:X.style.borderColor="",le.paddingX?(X.style.paddingLeft=le.paddingX,X.style.paddingRight=le.paddingX):(X.style.paddingLeft="",X.style.paddingRight=""),le.paddingY?(X.style.paddingTop=le.paddingY,X.style.paddingBottom=le.paddingY):(X.style.paddingTop="",X.style.paddingBottom="");let Gt=le.tooltipText??"Start voice recognition",zn=le.showTooltip??!1;X.setAttribute("aria-label",Gt),Ue&&Ut({anchor:X,trigger:Ue,text:()=>X?.getAttribute("aria-label")??Gt,enabled:zn}),Ue.style.display="",X.disabled=V.isStreaming()}else X&&Ue&&(Ue.style.display="none",o.voiceRecognition?.provider?.type==="runtype"?V.isVoiceActive()&&V.toggleVoice():Rn&&io());if(o.attachments?.enabled===!0){if(!Ot||!Ne){let le=o.attachments??{},mt=(o.sendButton??{}).size??"40px";Yt||(Yt=v("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2"),Yt.style.display="none",y.insertBefore(Yt,Q)),At||(At=document.createElement("input"),At.type="file",At.accept=(le.allowedTypes??Kn).join(","),At.multiple=(le.maxFiles??4)>1,At.style.display="none",At.setAttribute("aria-label","Attach files"),y.insertBefore(At,Q)),Ot=v("div","persona-send-button-wrapper"),Ne=v("button","persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-attachment-button"),Ne.type="button",Ne.setAttribute("aria-label",le.buttonTooltipText??"Attach file");let nt=le.buttonIconName??"paperclip",st=mt,Kt=parseFloat(st)||40,dn=Math.round(Kt*.6);Ne.style.width=st,Ne.style.height=st,Ne.style.minWidth=st,Ne.style.minHeight=st,Ne.style.fontSize="18px",Ne.style.lineHeight="1";let Tn=ae(nt,dn,"currentColor",1.5);Tn?Ne.appendChild(Tn):Ne.textContent="\u{1F4CE}",Ne.addEventListener("click",Gt=>{Gt.preventDefault(),At?.click()}),Ot.appendChild(Ne);let zt=le.buttonTooltipText??"Attach file";Ut({anchor:Ne,trigger:Ot,text:()=>Ne?.getAttribute("aria-label")??zt}),ze?ze.append(Ot):y.appendChild(Ot),!Tt&&At&&Yt&&(Tt=ws.fromConfig(le),Tt.setPreviewsContainer(Yt),At.addEventListener("change",async()=>{Tt&&At?.files&&(await Tt.handleFileSelect(At.files),At.value="")}))}else{Ot.style.display="";let le=o.attachments??{};At&&(At.accept=(le.allowedTypes??Kn).join(","),At.multiple=(le.maxFiles??4)>1),Tt&&Tt.updateConfig({allowedTypes:le.allowedTypes,maxFileSize:le.maxFileSize,maxFiles:le.maxFiles})}if(xe.querySelector(".persona-attachment-drop-overlay")?.remove(),xe.appendChild(Qf(o.attachments?.dropOverlay)),Ne){let le=o.attachments??{},qe=le.buttonTooltipText??"Attach file";Ne.setAttribute("aria-label",qe),Ne.textContent="";let mt=parseFloat(o.sendButton?.size??"40px")||40,nt=ae(le.buttonIconName??"paperclip",Math.round(mt*.6),"currentColor",1.5);nt?Ne.appendChild(nt):Ne.textContent="\u{1F4CE}",Ot&&Ut({anchor:Ne,trigger:Ot,text:()=>Ne?.getAttribute("aria-label")??qe})}}else Ot&&(Ot.style.display="none"),Tt&&Tt.clearAttachments(),xe.querySelector(".persona-attachment-drop-overlay")?.remove();let Dt=o.sendButton??{},as=Dt.useIcon??!1,Ai=Dt.iconText??"\u2191",ir=Dt.iconName,Si=Dt.tooltipText??"Send message",xl=Dt.showTooltip??!1,Do=Dt.size??"40px",$n=Dt.backgroundColor,No=Dt.textColor;if(as){if(w.style.width=Do,w.style.height=Do,w.style.minWidth=Do,w.style.minHeight=Do,w.style.fontSize="18px",w.style.lineHeight="1",No?w.style.color=No:w.style.color="var(--persona-button-primary-fg, #ffffff)",!V.isStreaming())if(w.innerHTML="",ir){let le=parseFloat(Do)||24,qe=No?.trim()||"currentColor",mt=ae(ir,le,qe,2);mt?w.appendChild(mt):w.textContent=Ai}else w.textContent=Ai;w.className="persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer",$n?(w.style.backgroundColor=$n,w.classList.remove("persona-bg-persona-primary")):(w.style.backgroundColor="",w.classList.add("persona-bg-persona-primary"))}else w.textContent=o.copy?.sendButtonLabel??"Send",w.style.width="",w.style.height="",w.style.minWidth="",w.style.minHeight="",w.style.fontSize="",w.style.lineHeight="",w.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",$n?(w.style.backgroundColor=$n,w.classList.remove("persona-bg-persona-accent")):w.classList.add("persona-bg-persona-accent"),No?w.style.color=No:w.classList.add("persona-text-white");Dt.borderWidth?(w.style.borderWidth=Dt.borderWidth,w.style.borderStyle="solid"):(w.style.borderWidth="",w.style.borderStyle=""),Dt.borderColor?w.style.borderColor=Dt.borderColor:w.style.borderColor="",Dt.paddingX?(w.style.paddingLeft=Dt.paddingX,w.style.paddingRight=Dt.paddingX):(w.style.paddingLeft="",w.style.paddingRight=""),Dt.paddingY?(w.style.paddingTop=Dt.paddingY,w.style.paddingBottom=Dt.paddingY):(w.style.paddingTop="",w.style.paddingBottom=""),V.isStreaming()||w.setAttribute("aria-label",Si),K&&Ut({anchor:w,trigger:K,text:()=>w.getAttribute("aria-label")??Si,enabled:xl});let Mi=o.layout?.contentMaxWidth??(P()?o.launcher?.composerBar?.contentMaxWidth??"720px":void 0);Mi?(We.style.maxWidth=Mi,We.style.marginLeft="auto",We.style.marginRight="auto",We.style.width="100%",y&&(y.style.maxWidth=Mi,y.style.marginLeft="auto",y.style.marginRight="auto"),bt&&(bt.style.maxWidth=Mi,bt.style.marginLeft="auto",bt.style.marginRight="auto")):(We.style.maxWidth="",We.style.marginLeft="",We.style.marginRight="",We.style.width="",y&&(y.style.maxWidth="",y.style.marginLeft="",y.style.marginRight=""),bt&&(bt.style.maxWidth="",bt.style.marginLeft="",bt.style.marginRight=""));let lo=o.statusIndicator??{},nh=lo.visible??!0;if(H.style.display=nh?"":"none",V){let le=V.getStatus();Xt(H,(mt=>mt==="idle"?lo.idleText??Wt.idle:mt==="connecting"?lo.connectingText??Wt.connecting:mt==="connected"?lo.connectedText??Wt.connected:mt==="error"?lo.errorText??Wt.error:Wt[mt])(le),lo,le)}H.classList.remove("persona-text-left","persona-text-center","persona-text-right");let oh=lo.align==="left"?"persona-text-left":lo.align==="center"?"persona-text-center":"persona-text-right";H.classList.add(oh)},open(){I()&&ct(!0,"api")},close(){I()&&ct(!1,"api")},toggle(){I()&&ct(!j,"api")},reconnect(){V.reconnectNow()},clearChat(){Dn=!1,V.clearMessages(),Lo.clear(),ro();try{localStorage.removeItem(Wr),o.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${Wr}`)}catch(f){console.error("[AgentWidget] Failed to clear default localStorage:",f)}if(o.clearChatHistoryStorageKey&&o.clearChatHistoryStorageKey!==Wr)try{localStorage.removeItem(o.clearChatHistoryStorageKey),o.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${o.clearChatHistoryStorageKey}`)}catch(f){console.error("[AgentWidget] Failed to clear custom localStorage:",f)}let a=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});window.dispatchEvent(a),d?.clear&&rl(()=>d.clear(),"[AgentWidget] Failed to clear storage adapter:"),u={},S.syncFromMetadata(),Te?.clear(),Me?.reset(),_e?.update()},setMessage(a){return!Q||V.isStreaming()?!1:(!j&&I()&&ct(!0,"system"),Q.value=a,Q.dispatchEvent(new Event("input",{bubbles:!0})),!0)},submitMessage(a){if(V.isStreaming())return!1;let f=a?.trim()||Q.value.trim();return f?(!j&&I()&&ct(!0,"system"),Q.value="",Q.style.height="auto",V.sendMessage(f),!0):!1},startVoiceRecognition(){return V.isStreaming()?!1:o.voiceRecognition?.provider?.type==="runtype"?(V.isVoiceActive()||(!j&&I()&&ct(!0,"system"),Ke.manuallyDeactivated=!1,Mn(),V.toggleVoice().then(()=>{Ke.active=V.isVoiceActive(),On("user"),V.isVoiceActive()&&rr()})),!0):Rn?!0:Qd()?(!j&&I()&&ct(!0,"system"),Ke.manuallyDeactivated=!1,Mn(),yi("user"),!0):!1},stopVoiceRecognition(){return o.voiceRecognition?.provider?.type==="runtype"?V.isVoiceActive()?(V.toggleVoice().then(()=>{Ke.active=!1,Ke.manuallyDeactivated=!0,Mn(),On("user"),_n()}),!0):!1:Rn?(Ke.manuallyDeactivated=!0,Mn(),io("user"),!0):!1},injectMessage(a){return!j&&I()&&ct(!0,"system"),V.injectMessage(a)},injectAssistantMessage(a){!j&&I()&&ct(!0,"system");let f=V.injectAssistantMessage(a);return pe&&(pe=!1,ge&&(clearTimeout(ge),ge=null),setTimeout(()=>{V&&!V.isStreaming()&&V.continueConversation()},100)),f},injectUserMessage(a){return!j&&I()&&ct(!0,"system"),V.injectUserMessage(a)},injectSystemMessage(a){return!j&&I()&&ct(!0,"system"),V.injectSystemMessage(a)},injectMessageBatch(a){return!j&&I()&&ct(!0,"system"),V.injectMessageBatch(a)},injectComponentDirective(a){return!j&&I()&&ct(!0,"system"),V.injectComponentDirective(a)},injectTestMessage(a){!j&&I()&&ct(!0,"system"),V.injectTestEvent(a)},async connectStream(a,f){return V.connectStream(a,f)},__pushEventStreamEvent(a){Te&&(Me?.processEvent(a.type,a.payload),Te.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:a.type,timestamp:Date.now(),payload:JSON.stringify(a.payload)}))},showEventStream(){!ie||!Te||Ga()},hideEventStream(){Ve&&Nr()},isEventStreamVisible(){return Ve},showArtifacts(){nn(o)&&(Dn=!1,Xo=!0,Nn(),Qe?.setMobileOpen(!0))},hideArtifacts(){nn(o)&&(Dn=!0,Nn())},upsertArtifact(a){return nn(o)?(uo(o.features?.artifacts,{artifactType:a.artifactType,...a.artifactType==="markdown"&&a.file?{file:a.file}:{},...a.presentation?{presentation:a.presentation}:{}})==="panel"&&(Dn=!1,Xo=!0),V.upsertArtifact(a)):null},selectArtifact(a){nn(o)&&V.selectArtifact(a)},clearArtifacts(){nn(o)&&V.clearArtifacts()},getArtifacts(){return V?.getArtifacts()??[]},getSelectedArtifactId(){return V?.getSelectedArtifactId()??null},focusInput(){return E&&!j&&!P()||!Q?!1:(Q.focus(),!0)},async resolveApproval(a,f,m){let T=V.getMessages().find(R=>R.variant==="approval"&&R.approval?.id===a);if(!T?.approval)throw new Error(`Approval not found: ${a}`);if(T.approval.toolType==="webmcp"){V.resolveWebMcpApproval(T.id,f);return}return V.resolveApproval(T.approval,f,m)},setFollowUpSuggestions(a){vm(a)},clearFollowUpSuggestions(){Td()},getMessages(){return V.getMessages()},getStatus(){return V.getStatus()},getPersistentMetadata(){return{...u}},updatePersistentMetadata(a){L(a)},on(a,f){return p.on(a,f)},off(a,f){p.off(a,f)},isOpen(){return I()&&j},isVoiceActive(){return Ke.active},toggleReadAloud(a){V.toggleReadAloud(a)},stopReadAloud(){V.stopSpeaking()},getReadAloudState(a){return V.getReadAloudState(a)},onReadAloudChange(a){return V.onReadAloudChange(a)},getState(){return{open:I()&&j,launcherEnabled:E,voiceActive:Ke.active,streaming:V.isStreaming()}},showCSATFeedback(a){!j&&I()&&ct(!0,"system");let f=We.querySelector(".persona-feedback-container");f&&f.remove();let m=Vf({onSubmit:async(x,T)=>{V.isClientTokenMode()&&await V.submitCSATFeedback(x,T),a?.onSubmit?.(x,T)},onDismiss:a?.onDismiss,...a});We.appendChild(m),m.scrollIntoView({behavior:"smooth",block:"end"})},showNPSFeedback(a){!j&&I()&&ct(!0,"system");let f=We.querySelector(".persona-feedback-container");f&&f.remove();let m=qf({onSubmit:async(x,T)=>{V.isClientTokenMode()&&await V.submitNPSFeedback(x,T),a?.onSubmit?.(x,T)},onDismiss:a?.onDismiss,...a});We.appendChild(m),m.scrollIntoView({behavior:"smooth",block:"end"})},async submitCSATFeedback(a,f){return V.submitCSATFeedback(a,f)},async submitNPSFeedback(a,f){return V.submitNPSFeedback(a,f)},destroy(){ul(),Ho!=null&&(clearInterval(Ho),Ho=null),$e.forEach(a=>a()),De.remove(),Ye?.remove(),$t?.destroy(),Zt?.remove(),Eo&&U.removeEventListener("click",Eo)}};if(((n?.debugTools??!1)||!!o.debug)&&typeof window<"u"){let a=window.AgentWidgetBrowser,f={controller:Pt,getMessages:Pt.getMessages,getStatus:Pt.getStatus,getMetadata:Pt.getPersistentMetadata,updateMetadata:Pt.updatePersistentMetadata,clearHistory:()=>Pt.clearChat(),setVoiceActive:m=>m?Pt.startVoiceRecognition():Pt.stopVoiceRecognition()};window.AgentWidgetBrowser=f,$e.push(()=>{window.AgentWidgetBrowser===f&&(window.AgentWidgetBrowser=a)})}if(typeof window<"u"){let a=t.getAttribute("data-persona-instance")||t.id||"persona-"+Math.random().toString(36).slice(2,8),f=q=>{let Z=q.detail;(!Z?.instanceId||Z.instanceId===a)&&Pt.focusInput()};if(window.addEventListener("persona:focusInput",f),$e.push(()=>{window.removeEventListener("persona:focusInput",f)}),ie){let q=re=>{let me=re.detail;(!me?.instanceId||me.instanceId===a)&&Pt.showEventStream()},Z=re=>{let me=re.detail;(!me?.instanceId||me.instanceId===a)&&Pt.hideEventStream()};window.addEventListener("persona:showEventStream",q),window.addEventListener("persona:hideEventStream",Z),$e.push(()=>{window.removeEventListener("persona:showEventStream",q),window.removeEventListener("persona:hideEventStream",Z)})}let m=q=>{let Z=q.detail;(!Z?.instanceId||Z.instanceId===a)&&Pt.showArtifacts()},x=q=>{let Z=q.detail;(!Z?.instanceId||Z.instanceId===a)&&Pt.hideArtifacts()},T=q=>{let Z=q.detail;Z?.instanceId&&Z.instanceId!==a||Z?.artifact&&Pt.upsertArtifact(Z.artifact)},R=q=>{let Z=q.detail;Z?.instanceId&&Z.instanceId!==a||typeof Z?.id=="string"&&Pt.selectArtifact(Z.id)},ne=q=>{let Z=q.detail;(!Z?.instanceId||Z.instanceId===a)&&Pt.clearArtifacts()};window.addEventListener("persona:showArtifacts",m),window.addEventListener("persona:hideArtifacts",x),window.addEventListener("persona:upsertArtifact",T),window.addEventListener("persona:selectArtifact",R),window.addEventListener("persona:clearArtifacts",ne),$e.push(()=>{window.removeEventListener("persona:showArtifacts",m),window.removeEventListener("persona:hideArtifacts",x),window.removeEventListener("persona:upsertArtifact",T),window.removeEventListener("persona:selectArtifact",R),window.removeEventListener("persona:clearArtifacts",ne)})}let hn=Fx(o.persistState);if(hn&&I()){let a=_x(hn.storage),f=`${hn.keyPrefix}widget-open`,m=`${hn.keyPrefix}widget-voice`,x=`${hn.keyPrefix}widget-voice-mode`;if(a){let T=hn.persist?.openState&&a.getItem(f)==="true",R=hn.persist?.voiceState&&a.getItem(m)==="true",ne=hn.persist?.voiceState&&a.getItem(x)==="true";if(T&&setTimeout(()=>{Pt.open(),setTimeout(()=>{if(R||ne)Pt.startVoiceRecognition();else if(hn.persist?.focusInput){let q=t.querySelector("textarea");q&&q.focus()}},100)},0),hn.persist?.openState&&(p.on("widget:opened",()=>{a.setItem(f,"true")}),p.on("widget:closed",()=>{a.setItem(f,"false")})),hn.persist?.voiceState&&(p.on("voice:state",q=>{a.setItem(m,q.active?"true":"false")}),p.on("user:message",q=>{a.setItem(x,q.viaVoice?"true":"false")})),hn.clearOnChatClear){let q=()=>{a.removeItem(f),a.removeItem(m),a.removeItem(x)},Z=()=>q();window.addEventListener("persona:clear-chat",Z),$e.push(()=>{window.removeEventListener("persona:clear-chat",Z)})}}}if(g&&I()&&setTimeout(()=>{Pt.open()},0),tr(),!xm){let a=ki(()=>{V&&(el++,Lo.clear(),Jr(We,V.getMessages(),Y))});$e.push(a)}return Pt};var Jf=(t,e)=>{let n=t.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,e*parseFloat(r[1])/100):420},Ux=(t,e)=>{if(e===!1){t.style.maxHeight="";return}t.style.maxHeight="100vh",t.style.maxHeight=e},jx=(t,e)=>{e===!1?(t.style.position="relative",t.style.top=""):(t.style.position="sticky",t.style.top="0")},Vx=(t,e)=>{let n=t.parentElement;if(!n)return;let o=t.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."+(e.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 ${e.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.")},Yf=(t,e)=>{let n=e?.launcher?.enabled??!0;t.className="persona-host",t.style.height=n?"":"100%",t.style.display=n?"":"flex",t.style.flexDirection=n?"":"column",t.style.flex=n?"":"1 1 auto",t.style.minHeight=n?"":"0",t.style.minWidth=n?"":"0"},Kc=t=>{t.style.position="",t.style.top="",t.style.bottom="",t.style.left="",t.style.right="",t.style.zIndex="",t.style.transform="",t.style.pointerEvents=""},Zf=t=>{t.style.inset="",t.style.width="",t.style.height="",t.style.maxWidth="",t.style.maxHeight="",t.style.minWidth="",Kc(t)},jc=t=>{t.style.transition=""},Vc=t=>{t.style.display="",t.style.flexDirection="",t.style.flex="",t.style.minHeight="",t.style.minWidth="",t.style.width="",t.style.height="",t.style.alignItems="",t.style.transition="",t.style.transform="",t.style.marginLeft=""},qc=t=>{t.style.width="",t.style.maxWidth="",t.style.minWidth="",t.style.flex="1 1 auto"},qa=(t,e)=>{t.style.width="",t.style.minWidth="0",t.style.maxWidth="",t.style.boxSizing="",e.style.alignItems=""},qx=(t,e,n,o,r)=>{r?n.parentElement!==e&&(t.replaceChildren(),e.replaceChildren(n,o),t.appendChild(e)):n.parentElement===e&&(e.replaceChildren(),t.appendChild(n),t.appendChild(o))},Kx=(t,e,n,o,r,s)=>{let i=s?e:t;r==="left"?i.firstElementChild!==o&&i.replaceChildren(o,n):i.lastElementChild!==o&&i.replaceChildren(n,o)},Gx=t=>{let e=wr(t),n=e.components?.panel,o=(r,s)=>r==null||r===""?s:en(e,r)??r;return{inset:o(n?.inset,da),canvasBackground:o(n?.canvasBackground,pa)}},em=(t,e,n,o)=>{if(!e){t.style.padding="",t.style.background="",t.style.boxSizing="";return}t.style.boxSizing="border-box",t.style.padding=n,t.style.background=o},Qx=(t,e,n,o,r,s,i,l)=>{let p=xn(s),c=p.reveal==="push",d=l!=null,u=l?.inset??"",b=l?.canvasBackground??"";qx(t,e,n,o,c),Kx(t,e,n,o,p.side,c),t.dataset.personaHostLayout="docked",t.dataset.personaDockSide=p.side,t.dataset.personaDockOpen=i?"true":"false",t.style.width="100%",t.style.maxWidth="100%",t.style.minWidth="0",t.style.height="100%",t.style.minHeight="0",t.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 g=t.ownerDocument.defaultView,h=s?.launcher?.mobileFullscreen??!0,C=s?.launcher?.mobileBreakpoint??640,L=g!=null?g.innerWidth<=C:!1;if(h&&L&&i){t.dataset.personaDockMobileFullscreen="true",t.removeAttribute("data-persona-dock-reveal"),Vc(e),jc(o),Zf(o),qc(n),qa(r,o),em(o,!1,"",""),t.style.display="flex",t.style.flexDirection="column",t.style.alignItems="stretch",t.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??Qt),o.style.transform="none",o.style.transition="none",o.style.pointerEvents="auto",o.style.flex="none",c&&(e.style.display="flex",e.style.flexDirection="column",e.style.width="100%",e.style.height="100%",e.style.minHeight="0",e.style.minWidth="0",e.style.flex="1 1 auto",e.style.alignItems="stretch",e.style.transform="none",e.style.marginLeft="0",e.style.transition="none",n.style.flex="1 1 auto",n.style.width="100%",n.style.maxWidth="100%",n.style.minWidth="0");return}if(t.removeAttribute("data-persona-dock-mobile-fullscreen"),Zf(o),Ux(o,p.maxHeight),em(o,d&&i,u,b),p.reveal==="overlay"){t.style.display="flex",t.style.flexDirection="row",t.style.alignItems="stretch",t.style.overflow="hidden",t.dataset.personaDockReveal="overlay",Vc(e),jc(o),qc(n),qa(r,o);let k=p.animate?"transform 180ms ease":"none",S=p.side==="right"?"translateX(100%)":"translateX(-100%)",E=i?"translateX(0)":S;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=p.width,o.style.maxWidth=p.width,o.style.minWidth=p.width,o.style.minHeight="0",o.style.overflow="hidden",o.style.transition=k,o.style.transform=E,o.style.pointerEvents=i?"auto":"none",o.style.zIndex="2",p.side==="right"?(o.style.right="0",o.style.left=""):(o.style.left="0",o.style.right="")}else if(p.reveal==="push"){t.style.display="flex",t.style.flexDirection="row",t.style.alignItems="stretch",t.style.overflow="hidden",t.dataset.personaDockReveal="push",jc(o),Kc(o),qa(r,o);let k=Jf(p.width,t.clientWidth),S=Math.max(0,t.clientWidth),E=p.animate?"margin-left 180ms ease":"none",z=p.side==="right"?i?-k:0:i?0:-k;e.style.display="flex",e.style.flexDirection="row",e.style.flex="0 0 auto",e.style.minHeight="0",e.style.minWidth="0",e.style.alignItems="stretch",e.style.height="100%",e.style.width=`${S+k}px`,e.style.transition=E,e.style.marginLeft=`${z}px`,e.style.transform="",n.style.flex="0 0 auto",n.style.flexGrow="0",n.style.flexShrink="0",n.style.width=`${S}px`,n.style.maxWidth=`${S}px`,n.style.minWidth=`${S}px`,o.style.display="flex",o.style.flexDirection="column",o.style.flex="0 0 auto",o.style.flexShrink="0",o.style.width=p.width,o.style.minWidth=p.width,o.style.maxWidth=p.width,o.style.position="relative",o.style.top="",o.style.overflow="hidden",o.style.transition="none",o.style.pointerEvents=i?"auto":"none"}else{t.style.display="flex",t.style.flexDirection="row",t.style.alignItems="stretch",t.style.overflow="",Vc(e),Kc(o),qc(n),qa(r,o);let k=p.reveal==="emerge";k?t.dataset.personaDockReveal="emerge":t.removeAttribute("data-persona-dock-reveal");let S=i?p.width:"0px",E=p.animate?`width 180ms ease, min-width 180ms ease, max-width 180ms ease, flex-basis 180ms ease${d?", padding 180ms ease":""}`:"none",z=!i;if(o.style.display="flex",o.style.flexDirection="column",o.style.flex=`0 0 ${S}`,o.style.width=S,o.style.maxWidth=S,o.style.minWidth=S,o.style.minHeight="0",jx(o,p.maxHeight),o.style.overflow=k||z?"hidden":"visible",o.style.transition=E,k){o.style.alignItems=p.side==="right"?"flex-start":"flex-end";let G=d?`calc(${Jf(p.width,t.clientWidth)}px - (2 * ${u}))`:p.width;r.style.width=G,r.style.minWidth=G,r.style.maxWidth=G,r.style.boxSizing="border-box"}}},Xx=(t,e)=>{let n=t.ownerDocument.createElement("div");return Yf(n,e),t.appendChild(n),{mode:"direct",host:n,shell:null,syncWidgetState:()=>{},updateConfig(o){Yf(n,o)},destroy(){n.remove()}}},Jx=(t,e)=>{let{ownerDocument:n}=t,o=t.parentElement;if(!o)throw new Error("Docked widget target must be attached to the DOM");let r=t.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=t.nextSibling,i=n.createElement("div"),l=n.createElement("div"),p=n.createElement("div"),c=n.createElement("aside"),d=n.createElement("div"),u=e?.launcher?.enabled??!0?e?.launcher?.autoExpand??!1:!0;l.dataset.personaDockRole="push-track",p.dataset.personaDockRole="content",c.dataset.personaDockRole="panel",d.dataset.personaDockRole="host",c.appendChild(d),o.insertBefore(i,t),p.appendChild(t);let b=null,g=()=>{b?.disconnect(),b=null},h=null,C=()=>{h=e?.launcher?.detachedPanel===!0?Gx(e):null};C();let L=()=>{Qx(i,l,p,c,d,e,u,h)},B=null,k=()=>{B?.(),B=null,!(e?.launcher?.detachedPanel!==!0||e?.colorScheme!=="auto")&&(B=ua(()=>{C(),L()}))},S=()=>{g(),xn(e).reveal==="push"&&(typeof ResizeObserver>"u"||(b=new ResizeObserver(()=>{L()}),b.observe(i)))},E=!1,z=()=>{L(),S(),u&&!E&&i.dataset.personaDockMobileFullscreen!=="true"&&(E=!0,Vx(i,xn(e)))},G=i.ownerDocument.defaultView,A=()=>{z()};return G?.addEventListener("resize",A),xn(e).reveal==="push"?(l.appendChild(p),l.appendChild(c),i.appendChild(l)):(i.appendChild(p),i.appendChild(c)),z(),k(),{mode:"docked",host:d,shell:i,syncWidgetState(O){let D=O.launcherEnabled?O.open:!0;u!==D&&(u=D,z())},updateConfig(O){e=O,(e?.launcher?.enabled??!0)===!1&&(u=!0),C(),z(),k()},destroy(){G?.removeEventListener("resize",A),B?.(),B=null,g(),o.isConnected&&(s&&s.parentNode===o?o.insertBefore(t,s):o.appendChild(t)),i.remove()}}},tm=(t,e)=>_t(e)?Jx(t,e):Xx(t,e);var Qs={desktop:{w:1280,h:800},mobile:{w:390,h:844}},nm=.15,om=1.5,Gc="persona-preview-shell-theme",Yx={load:()=>null,save:()=>{},clear:()=>{}},Zx=["How do I get started?","Pricing & plans","Talk to support"];function Qc(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function eC(t){return t==="dark"?{pageBg:"linear-gradient(180deg, #0f172a 0%, #020617 100%)",chromeBg:"#111827",chromeBorder:"#1f2937",dot:"#475569",skeleton:"#334155",cardBg:"#1e293b",cardBorder:"rgba(148, 163, 184, 0.16)"}:{pageBg:"linear-gradient(180deg, #ffffff 0%, #f8fafc 100%)",chromeBg:"#ffffff",chromeBorder:"#e5e7eb",dot:"#cbd5e1",skeleton:"#e2e8f0",cardBg:"#e2e8f0",cardBorder:"rgba(148, 163, 184, 0.18)"}}function rm(t){let e=eC(t);return`* { box-sizing: border-box; }
|
|
312
|
+
${St?"background: transparent !important;":""}
|
|
313
|
+
`}if(!x&&!a){let Pt="max-height: -moz-available !important; max-height: stretch !important;",sn=u?"":"padding-top: 1.25em !important;",Ui=u?"":`z-index: ${o.launcher?.zIndex??Ut} !important;`;Pe.style.cssText+=Pt+sn+Ui}xn()},Ml=()=>{t.style.setProperty("--persona-content-max-width",To(o,K()))},ap=()=>{if(K())return;let a=Ot(o),u=o.launcher?.sidebarMode??!1;if(a||u||(o.launcher?.fullHeight??!1)||!z)return;let x=t.ownerDocument.defaultView??window,A=o.launcher?.mobileFullscreen??!0,P=o.launcher?.mobileBreakpoint??640;if(A&&x.innerWidth<=P)return;let G=x.innerHeight,j=64,X=o.launcher?.heightOffset??0,re=Math.max(200,G-j),he=Math.min(640,re);xe.style.height=`${Math.max(200,he-X)}px`};Sl(),Qs(t,o),gi(t,o),fi(t,o),Ml(),Ho=()=>{Sl(),ap(),Qs(t,o),gi(t,o),fi(t,o),Ml(),vi?t.style.setProperty("--persona-artifact-welded-outer-radius",vi):t.style.removeProperty("--persona-artifact-welded-outer-radius")};let Fe=[];Fe.push(()=>{document.removeEventListener("keydown",rp)}),Fe.push(()=>{ss!==null&&clearTimeout(ss)});let Dn=null,On=null;Fe.push(()=>{Dn?.(),Dn=null,On?.(),On=null}),ls&&Fe.push(()=>{ls?.disconnect(),ls=null}),Fe.push(()=>{ps?.(),ps=null,Al(),Ct&&(Ct.remove(),Ct=null),Je?.element.style.removeProperty("width"),Je?.element.style.removeProperty("maxWidth")}),me&&Fe.push(()=>{Ve!==null&&(cancelAnimationFrame(Ve),Ve=null),Me?.destroy(),Me=null,Be?.destroy(),Be=null,Oe=null});let Do=null,lp=()=>{Do&&(Do(),Do=null),o.colorScheme==="auto"&&(Do=Ra(()=>{Qs(t,o)}))};lp(),Fe.push(()=>{Do&&(Do(),Do=null)}),Fe.push(c);let Ti=o.features?.streamAnimation;if(Ti?.type&&Ti.type!=="none"){let a=qr(Ti.type,Ti.plugins);a&&(Ka(a,t),Fe.push(()=>Jf(t)))}let jn=si(k),cp=si(En),dp=si(ae),Oo=[jn,cp,dp];Fe.push(()=>{Oo.forEach(a=>a.destroy())});let No=null,V,Fo=null,pp=!1,up=0,gp=null,fp=a=>a.reduce((u,m)=>m.role==="user"?u+1:u,0),mp=a=>{for(let u=a.length-1;u>=0;u--)if(Rs(a[u]))return a[u].id??null;return null},hp=!1,Th=()=>{hp||o.debug!==!0||(hp=!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".'))},bp=!1,yp=!1,vp=(a,u)=>{bp||o.debug!==!0||!u.enabled||u.expose||pp||yp&&(V.isStreaming()||a.some(Rs)||(bp=!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.")))},gr=a=>{if(!V)return;let u=a??V.getMessages(),m=re=>{re.render([],V,W,u)},x=re=>{Oo.forEach(he=>{he!==re&&m(he)})};Fo&&(fp(u)>up||mp(u)!==gp)&&(Fo=null);let A=So(o);vp(u,A);let P=A.enabled?Ju(u):null,G=Fo??P,j=Fo?"host":"agent";if(G){let re=o.suggestions?.followUps,he=re?.placement??(re?"auto":"composer"),we=(he==="auto"?K()?"composer":"after-message":he)==="after-message"?dp:jn;x(we),we.render(G,V,W,u,o.suggestionChipsConfig,{source:j,surface:"followUp",variant:re?.variant??"chip",behavior:re?.behavior??"send",overflow:re?.overflow??"wrap",maxItems:re?.maxItems??4,config:o,plugins:s});return}if(u.some(re=>re.role==="user")){Oo.forEach(m);return}let X=o.suggestions?.starters;if(X){let re=Gr(rr(o),u),he=X.placement??"auto",ue=he==="auto"?re?"welcome":"composer":he;if(ue==="welcome"&&!re){Th(),Oo.forEach(m);return}let we=ue==="welcome"?cp:jn;x(we),we.render(X.items??o.suggestionChips,V,W,u,o.suggestionChipsConfig,{surface:"starter",variant:X.variant??"card",behavior:X.behavior??"send",overflow:X.overflow??"wrap",maxItems:X.maxItems??4,config:o,plugins:s});return}x(jn),jn.render(o.suggestionChips,V,W,u,o.suggestionChipsConfig,{surface:"starter",variant:"chip",behavior:"send",overflow:"wrap",config:o,plugins:s})},xp=()=>{Fo&&(Fo=null,gr())},Eh=a=>{let u=Array.isArray(a)?[...a]:[];if(!u.length){xp();return}let m=V?V.getMessages():[];Fo=u,pp=!0,up=fp(m),gp=mp(m),gr(m)},In=!1,_o=Uf(),fr=new Map,$o=new Map,lo=new Map,Tl=0,kh=Jn()!==null,ln=$a(),cn=0,co=null,on=!1,Ei=!1,po=0,Ft=null,zo=null,El=!1,ki=!1,Uo=null,us=!0,Li=!1,mr=null,Pi=!1,jo=()=>{Pi=!0,Rh()},kl=null,Lh=4,Vn=24,Ph=80,Ih=1e3,qn=null,wp=()=>{t.setAttribute("data-persona-scrollbar",fl()),fl()!=="on-scroll"&&(qn!==null&&clearTimeout(qn),qn=null,ce.removeAttribute("data-persona-scrollbar-visible"))},Rh=()=>{fl()==="on-scroll"&&(ce.setAttribute("data-persona-scrollbar-visible",""),qn!==null&&clearTimeout(qn),qn=setTimeout(()=>{qn=null,ro(ce,Vn)&&ce.removeAttribute("data-persona-scrollbar-visible")},Ih))};wp(),Fe.push(()=>{qn!==null&&clearTimeout(qn)});let Ll=new Map,Qe={active:!1,manuallyDeactivated:!1,lastUserMessageWasVoice:!1,lastUserMessageId:null},Cp=o.voiceRecognition?.autoResume??!1,Kn=a=>{d.emit("voice:state",{active:Qe.active,source:a,timestamp:Date.now()})},Rn=()=>{S(a=>({...a,voiceState:{active:Qe.active,timestamp:Date.now(),manuallyDeactivated:Qe.manuallyDeactivated}}))},Wh=()=>{if(o.voiceRecognition?.enabled===!1)return;let a=Id(f.voiceState),u=!!a.active,m=Number(a.timestamp??0);Qe.manuallyDeactivated=!!a.manuallyDeactivated,u&&Date.now()-m<uC&&setTimeout(()=>{Qe.active||(Qe.manuallyDeactivated=!1,o.voiceRecognition?.provider?.type==="runtype"?V.toggleVoice().then(()=>{Qe.active=V.isVoiceActive(),Kn("restore"),V.isVoiceActive()&&wr()}):Fi("restore"))},1e3)},Hh=()=>V?nh(V.getMessages()).filter(a=>!a.__skipPersist):[],Ii=null,Ap=(a,u)=>{typeof console<"u"&&console.error(a,u)},Pl=(a,u)=>{let m=()=>{try{let G=a();return!G||typeof G.then!="function"?null:Promise.resolve(G).catch(j=>{Ap(u,j)})}catch(G){return Ap(u,G),null}},x=Ii,A=x?x.then(()=>m()??void 0):m();if(!A)return;let P=A.finally(()=>{Ii===P&&(Ii=null)});Ii=P};function Il(a){if(!b?.save)return;let m={messages:a?nh(a):V?Hh():[],metadata:f,artifacts:Ln.artifacts,selectedArtifactId:Ln.selectedId};Pl(()=>b.save(m),"[AgentWidget] Failed to persist state:")}let hr=null,Sp=()=>Pe.querySelector("#persona-scroll-container")||ce,br=()=>{hr!==null&&(cancelAnimationFrame(hr),hr=null),on=!1},Mp=()=>{co!==null&&(cancelAnimationFrame(co),co=null),Ei=!1,br()},Bh=()=>In&&Wl()&&(an()!=="anchor-top"||Fd()),Rl=()=>{let a=ns()||"Jump to latest",u=Bh();It.toggleAttribute("data-persona-scroll-to-bottom-streaming",u),po>0?(Io.textContent=String(po),Io.style.display="",It.setAttribute("aria-label",`${a} (${po} new)`)):(Io.textContent="",Io.style.display="none",It.setAttribute("aria-label",u?`${a} (response streaming below)`:a))},Tp=()=>{po!==0&&(po=0,Rl())},Dh=()=>{let a=Ft?.spacerHeight??0;return a<=0?ro(ce,Vn):Hi(a)-ce.scrollTop-ce.clientHeight<=Vn},Wl=()=>io()?!ln.isFollowing():!Dh(),Hl=()=>!!V&&V.getMessages().length>0,Vt=()=>{if(!xh()||Ee){It.parentNode&&It.remove(),It.style.display="none";return}It.parentNode!==Ce&&Ce.appendChild(It),Wo();let u=_n(ce)>0&&Wl()&&Hl();u?Rl():Tp(),It.style.display=u?"":"none"},gs=()=>{ln.pause()&&(Mp(),Vt())},uo=()=>{ln.resume(),Tp(),Vt()},go=(a=!1)=>{io()&&Hl()&&ln.isFollowing()&&(!a&&!In||(co!==null&&(cancelAnimationFrame(co),co=null),Ei=!0,co=requestAnimationFrame(()=>{co=null,Ei=!1,ln.isFollowing()&&Oh(Sp(),a?220:140)})))},Ep=(a,u,m,x=()=>!0)=>{let A=a.scrollTop,P=u(),G=P-A;if(br(),Math.abs(G)<1){on=!0,a.scrollTop=P,cn=a.scrollTop,on=!1;return}let j=performance.now();on=!0;let X=he=>1-Math.pow(1-he,3),re=he=>{if(!x()){br();return}let ue=u();ue!==P&&(P=ue,G=P-A);let we=he-j,Xe=Math.min(we/m,1),yt=X(Xe),pt=A+G*yt;a.scrollTop=pt,cn=a.scrollTop,Xe<1?hr=requestAnimationFrame(re):(a.scrollTop=P,cn=a.scrollTop,hr=null,on=!1)};hr=requestAnimationFrame(re)},Oh=(a,u=500)=>{let m=_n(a)-a.scrollTop;if(Math.abs(m)<1){cn=a.scrollTop;return}if(Math.abs(m)>=Ph){br(),on=!0,a.scrollTop=_n(a),cn=a.scrollTop,on=!1;return}Ep(a,()=>_n(a),u,()=>ln.isFollowing())},kp=()=>{if(!Hl()){Vt();return}let a=Sp();on=!0,a.scrollTop=_n(a),cn=a.scrollTop,on=!1,Vt()},Vo=a=>{let u=0,m=a;for(;m&&m!==ce;)u+=m.offsetTop,m=m.offsetParent;return u},Nh=()=>{let a=ce.getRootNode();return(typeof a.getSelection=="function"?a.getSelection():null)??ce.ownerDocument.getSelection()},Ri=()=>Gf(Nh(),ce),Lp=()=>{if(wh()!=="last-user-turn")return!1;let a=V?.getMessages()??[];if(a.length<2)return!1;let u=[...a].reverse().find(P=>P.role==="user");if(!u)return!1;let m=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(u.id):u.id.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),x=ce.querySelector(`[data-message-id="${m}"]`);if(!x)return!1;let A=Math.min(Math.max(0,Vo(x)-os()),_n(ce));return on=!0,ce.scrollTop=A,cn=ce.scrollTop,on=!1,an()==="follow"&&!ro(ce,Vn)&&ln.pause(),Vt(),!0},Wi=a=>{let u=Math.max(0,Math.round(a));bn.style.height=`${u}px`,bn.style.display=u>0?"":"none",Ft&&(Ft.spacerHeight=Math.max(0,a))},Hi=a=>{let u=parseFloat(getComputedStyle(ce).paddingBottom)||0,m=0;for(let A of Array.from(ce.children)){if(A===bn||A.offsetHeight===0)continue;let P=Vo(A)+A.offsetHeight;P>m&&(m=P)}let x=ce.scrollHeight-a;return m>0?Math.min(m+u,x):x},Fh=()=>{if(!Ft||Ft.spacerHeight<=0)return;let a=Hi(Ft.spacerHeight),u=Math.max(0,Math.round(ce.scrollTop)+ce.clientHeight-a+Vn);u<Ft.spacerHeight&&(Wi(u),Vt())},fs=()=>{zo!==null&&(cancelAnimationFrame(zo),zo=null),br(),Ft=null,bn.style.height="0px",bn.style.display="none"},Pp=a=>typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(a):a.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),Bl=a=>ce.querySelector(`[data-message-id="${Pp(a)}"]`),Ip=a=>{zo!==null&&cancelAnimationFrame(zo),zo=requestAnimationFrame(()=>{zo=null;let u=Pp(a),m=ce.querySelector(`[data-message-id="${u}"]`);if(!m)return;let x=Vo(m),A=Ft?.spacerHeight??0,P=Hi(A),{targetScrollTop:G,spacerHeight:j}=Xc({anchorOffsetTop:x,topOffset:os(),viewportHeight:ce.clientHeight,contentHeight:P,slack:Vn});Ft={initialSpacerHeight:j,contentHeightAtAnchor:P,spacerHeight:j},Wi(j),Ep(ce,()=>m.isConnected?Math.max(0,Vo(m)-os()):G,220)})},Rp=()=>{if(an()!=="anchor-top"||!Ft||!mr)return;let a=Bl(mr);if(!a)return;br();let u=Ft.spacerHeight,m=Hi(u),{targetScrollTop:x,spacerHeight:A}=Xc({anchorOffsetTop:Vo(a),topOffset:os(),viewportHeight:ce.clientHeight,contentHeight:m,slack:Vn});Ft={initialSpacerHeight:A,contentHeightAtAnchor:m,spacerHeight:A},Wi(A),on=!0,ce.scrollTop=x,cn=ce.scrollTop,on=!1,Vt()},_h=()=>{if(io()){if(!ln.isFollowing()||ro(ce,1))return;go(!In);return}if(Ft&&Ft.initialSpacerHeight>0){let a=ce.scrollHeight-Ft.spacerHeight,u=Qf({initialSpacerHeight:Ft.initialSpacerHeight,contentHeightAtAnchor:Ft.contentHeightAtAnchor,currentContentHeight:a});u!==Ft.spacerHeight&&Wi(u)}Vt()},$h=a=>{let u=an();u==="follow"?(uo(),go(!0)):u==="anchor-top"&&(us=!1,Li=!0,Pi=!1,mr=a,Ip(a))},zh=()=>{if(an()==="anchor-top"){if(Li){us=!1;return}us=!0,fs(),uo(),go(!0)}},Uh=96,jh=a=>{if(Uo===null)return!0;let u=Bl(Uo),m=Bl(a);if(!u||!m)return!0;let x=Vo(m)-Vo(u);return os()+x>ce.clientHeight-Uh},Vh=a=>{if(an()!=="anchor-top"||!Li||Pi||Ri())return;let u=Uo===null;for(let m of a){if(!u){m.id===Uo&&(u=!0);continue}if(Kf(m)){if(m.id===mr||!jh(m.id))return;mr=m.id,Ip(m.id);return}}},qh=a=>{let u=new Map;a.forEach(m=>{let x=Ll.get(m.id);u.set(m.id,{streaming:m.streaming,role:m.role}),!x&&m.role==="assistant"&&(d.emit("assistant:message",m),!ki&&(an()!=="anchor-top"||Fd())&&Wl()&&(po+=1,Rl(),Vt(),$d(po===1?"1 new message below.":`${po} new messages below.`))),m.role==="assistant"&&x?.streaming&&m.streaming===!1&&d.emit("assistant:complete",m),m.variant==="approval"&&m.approval&&(x?m.approval.status!=="pending"&&d.emit("approval:resolved",{approval:m.approval,decision:m.approval.status}):d.emit("approval:requested",{approval:m.approval,message:m}))}),Ll.clear(),u.forEach((m,x)=>{Ll.set(x,m)})},Bi=(a,u)=>{let m=u==="user"?"user":"assistant",x=o.layout?.messages?.[m],A=x?.width??"content",P=x?.maxWidth??(A==="full"?"100%":"85%");a.classList.add("persona-message-row"),a.classList.remove("persona-message-row-user","persona-message-row-assistant","persona-message-row-system","persona-message-width-content","persona-message-width-full"),a.classList.add(`persona-message-row-${u}`,`persona-message-width-${A}`),a.classList.toggle("persona-justify-end",u==="user"),a.setAttribute("data-message-role",u),a.setAttribute("data-message-width",A),a.style.setProperty("--persona-message-row-max-width",P)},qo=(a,u)=>{let m=document.createElement("div");return m.className="persona-flex",m.id=`wrapper-${a}`,m.setAttribute("data-wrapper-id",a),Bi(m,u),m},Kh=(a,u,m)=>{let x=document.createElement("div"),P=(()=>{let U=s.find(Re=>Re.renderLoadingIndicator);if(U?.renderLoadingIndicator)return U.renderLoadingIndicator;if(o.loadingIndicator?.render)return o.loadingIndicator.render})(),G=(U,Re)=>Re==null?!1:typeof Re=="string"?(U.textContent=Re,!0):(U.appendChild(Re),!0),j=new Set,X=new Map,re=new Set,he=s.some(U=>U.renderAskUserQuestion),ue=[],we=[],Xe=o.enableComponentStreaming!==!1,yt=o.approval!==!1,pt=[];if(u.forEach(U=>{j.add(U.id),X.set(U.id,U.role);let Re=he&&Yo(U),_e=yt&&U.variant==="approval"&&!!U.approval,Le=!Re&&U.role==="assistant"&&!U.variant&&Xe&&Pd(U);!_e&&lo.has(U.id)&&(a.querySelector(`#wrapper-${U.id}`)?.removeAttribute("data-preserve-runtime"),lo.delete(U.id)),!Le&&$o.has(U.id)&&(a.querySelector(`#wrapper-${U.id}`)?.removeAttribute("data-preserve-runtime"),$o.delete(U.id));let Tt=Yo(U)?`:${U.agentMetadata?.askUserQuestionAnswered?"a":"u"}:${U.agentMetadata?.askUserQuestionAnswers?Object.keys(U.agentMetadata.askUserQuestionAnswers).length:0}`:"",ut=zf(U,Tl)+Tt,$t=Re||_e||Le?null:jf(_o,U.id,ut);if($t){x.appendChild($t.cloneNode(!0)),Yo(U)&&U.toolCall?.id&&U.agentMetadata?.awaitingLocalTool===!0&&!U.agentMetadata?.askUserQuestionAnswered&&(re.add(U.toolCall.id),ea(U,o,ke.composerOverlay));return}let gt=null,rn=s.find($e=>!!(U.variant==="reasoning"&&$e.renderReasoning||U.variant==="tool"&&$e.renderToolCall||!U.variant&&$e.renderMessage)),Ht=o.layout?.messages;if(Yo(U)&&U.agentMetadata?.askUserQuestionAnswered===!0){fr.delete(U.id),a.querySelector(`#wrapper-${U.id}`)?.removeAttribute("data-preserve-runtime");return}if(Rs(U)&&So(o).enabled)return;if(Yo(U)&&o.features?.askUserQuestion?.enabled!==!1){let $e=s.find(qt=>typeof qt.renderAskUserQuestion=="function");if($e&&at.current){let qt=fr.get(U.id),Kt=qt!==ut,St=null;if(Kt){let{payload:Ze,complete:De}=Ir(U),vt=U.id,Gt=()=>at.current?.getMessages().find(xn=>xn.id===vt);St=$e.renderAskUserQuestion({message:U,payload:Ze,complete:De,resolve:xn=>{let Ms=Gt();Ms&&at.current?.resolveAskUserQuestion(Ms,xn)},dismiss:()=>{let xn=Gt();xn?.agentMetadata?.awaitingLocalTool&&(at.current?.markAskUserQuestionResolved(xn),at.current?.resolveAskUserQuestion(xn,"(dismissed)"))},config:o})}let lt=qt!=null;if(Kt&&St===null&&!lt){U.agentMetadata?.awaitingLocalTool===!0&&!U.agentMetadata?.askUserQuestionAnswered&&(re.add(U.toolCall.id),ea(U,o,ke.composerOverlay));return}let ft=qo(U.id,U.role);ft.setAttribute("data-ask-plugin-stub","true"),ft.setAttribute("data-preserve-runtime","true"),x.appendChild(ft),ue.push({messageId:U.id,fingerprint:ut,bubble:St});return}else{U.agentMetadata?.awaitingLocalTool===!0&&!U.agentMetadata?.askUserQuestionAnswered&&(re.add(U.toolCall.id),ea(U,o,ke.composerOverlay));return}}else if(_e){let $e=s.find(lt=>typeof lt.renderApproval=="function")??p,Kt=lo.get(U.id)!==ut,St=null;if(Kt&&$e?.renderApproval){let lt=U.id,ft=(Ze,De)=>{let vt=at.current?.getMessages().find(Gt=>Gt.id===lt);vt?.approval&&(vt.approval.toolType==="webmcp"?at.current?.resolveWebMcpApproval(vt.id,Ze):at.current?.resolveApproval(vt.approval,Ze,De))};St=$e.renderApproval({message:U,defaultRenderer:()=>ll(U,o),config:o,approve:Ze=>ft("approved",Ze),deny:Ze=>ft("denied",Ze)})}if(Kt&&St===null)a.querySelector(`#wrapper-${U.id}`)?.removeAttribute("data-preserve-runtime"),lo.delete(U.id),gt=ll(U,o);else{let lt=qo(U.id,U.role);lt.setAttribute("data-approval-plugin-stub","true"),lt.setAttribute("data-preserve-runtime","true"),x.appendChild(lt),pt.push({messageId:U.id,fingerprint:ut,bubble:St});return}}else if(rn)if(U.variant==="reasoning"&&U.reasoning&&rn.renderReasoning){if(!pe)return;gt=rn.renderReasoning({message:U,defaultRenderer:()=>ud(U,o),config:o})}else if(U.variant==="tool"&&U.toolCall&&rn.renderToolCall){if(!ne)return;gt=rn.renderToolCall({message:U,defaultRenderer:()=>fd(U,o),config:o})}else rn.renderMessage&&(gt=rn.renderMessage({message:U,defaultRenderer:()=>{let $e=ad(U,m,Ht,o.messageActions,bt,{loadingIndicatorRenderer:P,widgetConfig:o});return U.role!=="user"&&Ad($e,U,o,V),$e},config:o}));if(!gt&&Le){let $e=Zm(U);if($e){let qt=$o.get(U.id),Kt=qt!==ut,St=o.wrapComponentDirectiveInBubble!==!1&&oo.getOptions($e.component)?.bubbleChrome!==!1,lt=null;if(Kt){let ft=Ym($e,{config:o,message:U,transform:m});if(ft&&$e.component==="PersonaArtifactInline"){let Ze=ft.hasAttribute("data-artifact-inline")?ft:ft.querySelector("[data-artifact-inline]"),De=Ze?.getAttribute("data-artifact-inline")??"",vt=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(De):De,Gt=De?a.querySelector(`#wrapper-${U.id}`)?.querySelector(`[data-artifact-inline="${vt}"]`)??null:null;Ze&&Gt&&Gt!==Ze&&Df(Gt)&&(Ze===ft?ft=Gt:Ze.replaceWith(Gt))}if(ft)if(St){let Ze=document.createElement("div");if(Ze.className=["persona-message-bubble","persona-rounded-2xl","persona-bg-persona-surface","persona-border","persona-border-persona-message-border","persona-p-4"].join(" "),Ze.id=`bubble-${U.id}`,Ze.setAttribute("data-message-id",U.id),U.content&&U.content.trim()){let De=document.createElement("div");De.className="persona-mb-3 persona-text-sm persona-leading-relaxed",De.innerHTML=m({text:U.content,message:U,streaming:!!U.streaming,raw:U.rawContent}),Ze.appendChild(De)}Ze.appendChild(ft),lt=Ze}else{let Ze=document.createElement("div");if(Ze.className="persona-flex persona-flex-col persona-w-full persona-max-w-full persona-gap-3 persona-items-stretch",Ze.id=`bubble-${U.id}`,Ze.setAttribute("data-message-id",U.id),Ze.setAttribute("data-persona-component-directive","true"),U.content&&U.content.trim()){let De=document.createElement("div");De.className="persona-text-sm persona-leading-relaxed persona-text-persona-primary persona-w-full",De.innerHTML=m({text:U.content,message:U,streaming:!!U.streaming,raw:U.rawContent}),Ze.appendChild(De)}Ze.appendChild(ft),lt=Ze}}if(lt||qt!=null){let ft=qo(U.id,U.role);ft.setAttribute("data-component-directive-stub","true"),ft.setAttribute("data-preserve-runtime","true"),x.appendChild(ft),we.push({messageId:U.id,fingerprint:ut,bubble:lt});return}}}if(!gt)if(U.variant==="reasoning"&&U.reasoning){if(!pe)return;gt=ud(U,o)}else if(U.variant==="tool"&&U.toolCall){if(!ne)return;gt=fd(U,o)}else if(U.variant==="approval"&&U.approval){if(o.approval===!1)return;gt=ll(U,o)}else{let $e=o.layout?.messages;$e?.renderUserMessage&&U.role==="user"?gt=$e.renderUserMessage({message:U,config:o,streaming:!!U.streaming}):$e?.renderAssistantMessage&&U.role==="assistant"?gt=$e.renderAssistantMessage({message:U,config:o,streaming:!!U.streaming}):gt=ad(U,m,$e,o.messageActions,bt,{loadingIndicatorRenderer:P,widgetConfig:o}),U.role!=="user"&>&&Ad(gt,U,o,V)}let We=qo(U.id,U.role);We.appendChild(gt),Vf(_o,U.id,ut,We),x.appendChild(We)}),ke.composerOverlay&&ke.composerOverlay.querySelectorAll("[data-persona-ask-sheet-for]").forEach(Re=>{let _e=Re.getAttribute("data-persona-ask-sheet-for");_e&&!re.has(_e)&&Wr(ke.composerOverlay,_e)}),o.features?.toolCallDisplay?.grouped){let U=[],Re=[],_e=o.features.toolCallDisplay.groupedMode==="summary";u.forEach(Le=>{if(Le.variant==="tool"&&Le.toolCall&&ne){Re.push(Le);return}Le.variant==="reasoning"&&!pe||((Re.length>1||_e&&Re.length>0)&&U.push(Re),Re=[])}),(Re.length>1||_e&&Re.length>0)&&U.push(Re),U.forEach(Le=>{let Tt=Le.map($e=>Array.from(x.children).find(qt=>qt instanceof HTMLElement&&qt.getAttribute("data-wrapper-id")===$e.id)).filter($e=>!!$e);if(Tt.length<(_e?1:2))return;let ut=qo(`tool-group-${Le[0].id}`,"assistant");ut.setAttribute("data-persona-tool-group-row","true");let $t=document.createElement("div");$t.className="persona-tool-group persona-flex persona-w-full persona-flex-col persona-gap-2",$t.setAttribute("data-persona-tool-group","true");let gt=document.createElement("div");gt.className="persona-tool-group-summary persona-text-xs persona-text-persona-muted",gt.id=`tool-group-summary-${Le[0].id}`;let rn=`Called ${Le.length} ${Le.length===1?"tool":"tools"}`,Ht=o.toolCall?.renderGroupedSummary?.({messages:Le,toolCalls:Le.map($e=>$e.toolCall).filter($e=>!!$e),defaultSummary:rn,config:o});G(gt,Ht)||(gt.textContent=rn);let We=document.createElement("div");We.className="persona-tool-group-stack persona-flex persona-flex-col",We.id=`tool-group-stack-${Le[0].id}`,We.setAttribute("data-persona-tool-group-stack","true"),$t.appendChild(gt),_e||$t.appendChild(We),ut.appendChild($t),Tt[0].before(ut),Tt.forEach(($e,qt)=>{if(_e){$e.remove();return}$e.style.setProperty("--persona-message-row-max-width","100%");let Kt=document.createElement("div");Kt.className="persona-tool-group-item persona-relative",Kt.setAttribute("data-persona-tool-group-item","true"),qt<Tt.length-1&&Kt.setAttribute("data-persona-tool-group-connector","true"),Kt.appendChild($e),We.appendChild(Kt)})})}qf(_o,j);let dn=u.some(U=>U.role==="assistant"&&U.streaming),Et=u[u.length-1],Wt=Et?.role==="assistant"&&!Et.streaming&&Et.variant!=="approval";if(In&&u.some(U=>U.role==="user")&&!dn&&!Wt){let U={config:o,streaming:!0,location:"standalone",defaultRenderer:li},Re=s.find(Le=>Le.renderLoadingIndicator),_e=null;if(Re?.renderLoadingIndicator&&(_e=Re.renderLoadingIndicator(U)),_e===null&&o.loadingIndicator?.render&&(_e=o.loadingIndicator.render(U)),_e===null&&(_e=li()),_e){let Le=document.createElement("div"),Tt=o.loadingIndicator?.showBubble!==!1,ut=o.layout?.messages?.layout??"bubble";Le.className=Tt?ci("assistant",ut).join(" "):["persona-text-sm","persona-leading-relaxed","persona-text-persona-text"].join(" "),Le.setAttribute("data-typing-indicator","true"),Tt&&(Le.style.color="var(--persona-message-assistant-text, var(--persona-text))",ut!=="flat"&&(Le.style.backgroundColor="var(--persona-message-assistant-bg, var(--persona-container))",Le.style.borderColor="var(--persona-message-assistant-border, var(--persona-border, #e5e7eb))")),Le.appendChild(_e);let $t=qo("typing-indicator","assistant");$t.appendChild(Le),x.appendChild($t)}}if(!In&&u.length>0){let U=u[u.length-1],Re={config:o,lastMessage:U,messageCount:u.length},_e=s.find(Tt=>Tt.renderIdleIndicator),Le=null;if(_e?.renderIdleIndicator&&(Le=_e.renderIdleIndicator(Re)),Le===null&&o.loadingIndicator?.renderIdle&&(Le=o.loadingIndicator.renderIdle(Re)),Le){let Tt=document.createElement("div"),ut=o.loadingIndicator?.showBubble!==!1;Tt.className=ut?["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(" "),Tt.setAttribute("data-idle-indicator","true"),Tt.appendChild(Le);let $t=qo("idle-indicator","assistant");$t.appendChild(Tt),x.appendChild($t)}}if(Pu(x),_a(a,x),ic(a),ue.length>0)for(let{messageId:U,fingerprint:Re,bubble:_e}of ue){let Le=a.querySelector(`#wrapper-${U}`);Le&&(Bi(Le,X.get(U)??"assistant"),_e!==null&&(Le.replaceChildren(_e),Le.setAttribute("data-bubble-fp",Re),fr.set(U,Re)))}if(fr.size>0)for(let U of fr.keys())j.has(U)||fr.delete(U);if(we.length>0)for(let{messageId:U,fingerprint:Re,bubble:_e}of we){let Le=a.querySelector(`#wrapper-${U}`);Le&&(Bi(Le,X.get(U)??"assistant"),_e!==null&&(Le.replaceChildren(_e),Le.setAttribute("data-bubble-fp",Re),$o.set(U,Re)))}if($o.size>0)for(let U of $o.keys())j.has(U)||$o.delete(U);if(pt.length>0)for(let{messageId:U,fingerprint:Re,bubble:_e}of pt){let Le=a.querySelector(`#wrapper-${U}`);Le&&(Bi(Le,X.get(U)??"assistant"),_e!==null&&(Le.replaceChildren(_e),Le.setAttribute("data-bubble-fp",Re),lo.set(U,Re)))}if(lo.size>0)for(let U of lo.keys())j.has(U)||lo.delete(U)},ms=(a,u,m)=>{Kh(a,u,m),tp()},hs=null,Gh=()=>{if(hs)return;let a=m=>{let x=m.composedPath();x.includes(Pe)||ot&&x.includes(ot)||dt(!1,"user")};hs=a,(t.ownerDocument??document).addEventListener("pointerdown",a,!0)},Wp=()=>{if(!hs)return;(t.ownerDocument??document).removeEventListener("pointerdown",hs,!0),hs=null};Fe.push(()=>Wp());let bs=null,Qh=()=>{if(bs)return;let a=m=>{m.key==="Escape"&&(m.isComposing||dt(!1,"user"))};bs=a,(t.ownerDocument??document).addEventListener("keydown",a,!0)},Hp=()=>{if(!bs)return;(t.ownerDocument??document).removeEventListener("keydown",bs,!0),bs=null};Fe.push(()=>Hp());let ys=!1,Bp=new Set,Xh=()=>{let a=o.launcher?.composerBar?.peek?.streamAnimation;return a||o.features?.streamAnimation},yr=()=>{if(!K())return;let a=ke.peekBanner,u=ke.peekTextNode;if(!a||!u)return;if(Q){a.classList.remove("persona-pill-peek--visible");return}let m=V?.getMessages()??[],x;for(let Et=m.length-1;Et>=0;Et--){let Wt=m[Et];if(Wt.role==="assistant"&&Wt.content){x=Wt;break}}if(!x){a.classList.remove("persona-pill-peek--visible");return}let A=x.content,P=!!x.streaming,G=Xh(),j=ja(G),X=j.type!=="none"?qr(j.type,G?.plugins):null,re=X?.isAnimating?.(x)===!0,he=X!==null&&(P||re);he&&X&&!Bp.has(X.name)&&(Ka(X,t),Bp.add(X.name));let ue=he&&X?.containerClass?X.containerClass:null,we=u.dataset.personaPeekStreamClass??null;we&&we!==ue&&(u.classList.remove(we),delete u.dataset.personaPeekStreamClass),ue&&we!==ue&&(u.classList.add(ue),u.dataset.personaPeekStreamClass=ue),he?(u.style.setProperty("--persona-stream-step",`${j.speed}ms`),u.style.setProperty("--persona-stream-duration",`${j.duration}ms`)):(u.style.removeProperty("--persona-stream-step"),u.style.removeProperty("--persona-stream-duration"));let Xe=he?Va(A,j.buffer,X,x,P):A;if(he&&j.placeholder==="skeleton"&&P&&(!Xe||!Xe.trim())){let Et=document.createElement("div"),Wt=ti();Wt.classList.add("persona-pill-peek__skeleton"),Et.appendChild(Wt),_a(u,Et)}else{let Et=Math.max(0,Xe.length-100),Wt=Xe.length>100?Xe.slice(-100):Xe,U=vo(Wt);if(!he||!X){let Re=Xe.length>100?`\u2026${Wt}`:Wt;u.textContent!==Re&&(u.textContent=Re)}else{let Re=U;(X.wrap==="char"||X.wrap==="word")&&(Re=ei(U,X.wrap,`peek-${x.id}`,{skipTags:X.skipTags,startIndex:Et}));let _e=document.createElement("div");if(_e.innerHTML=Re,X.useCaret&&Wt.length>0){let Le=qa(),Tt=_e.querySelectorAll(".persona-stream-char, .persona-stream-word"),ut=Tt[Tt.length-1];ut?.parentNode?ut.parentNode.insertBefore(Le,ut.nextSibling):_e.appendChild(Le)}_a(u,_e),X.onAfterRender?.({container:u,bubble:a,messageId:x.id,message:x,speed:j.speed,duration:j.duration})}}let dn=In||ys;a.classList.toggle("persona-pill-peek--visible",dn)};if(K()){let a=ke.peekBanner;if(a){let x=A=>{A.preventDefault(),A.stopPropagation(),dt(!0,"user")};a.addEventListener("pointerdown",x),Fe.push(()=>{a.removeEventListener("pointerdown",x)})}let u=()=>{ys||(ys=!0,yr())},m=()=>{ys&&(ys=!1,yr())};xe.addEventListener("pointerenter",u),xe.addEventListener("pointerleave",m),Fe.push(()=>{xe.removeEventListener("pointerenter",u),xe.removeEventListener("pointerleave",m)}),ot&&(ot.addEventListener("pointerenter",u),ot.addEventListener("pointerleave",m),Fe.push(()=>{ot.removeEventListener("pointerenter",u),ot.removeEventListener("pointerleave",m)}))}let Yh=a=>{let u=o.launcher?.composerBar??{},m=u.expandedSize??"anchored",x=u.bottomOffset??"16px",A=u.collapsedMaxWidth,P=u.expandedMaxWidth??"880px",G=u.expandedTopOffset??"5vh",j=u.modalMaxWidth??"880px",X=u.modalMaxHeight??"min(90vh, 800px)",re="calc(100vw - 32px)",he="var(--persona-pill-area-height, 80px)",ue=Pe.style;if(ue.left="",ue.right="",ue.top="",ue.bottom="",ue.transform="",ue.width="",ue.maxWidth="",ue.height="",ue.maxHeight="",ot){let we=ot.style;we.bottom=x,we.width=A??""}if(a&&m!=="fullscreen"){if(m==="modal"){ue.top="50%",ue.left="50%",ue.transform="translate(-50%, -50%)",ue.bottom="auto",ue.right="auto",ue.width=j,ue.maxWidth=re,ue.maxHeight=X,ue.height=X;return}ue.left="50%",ue.transform="translateX(-50%)",ue.bottom=`calc(${x} + ${he})`,ue.top=G,ue.width=P,ue.maxWidth=re}},vs=()=>{if(!te())return;if(K()){let re=(o.launcher?.composerBar??{}).expandedSize??"anchored",he=Q?"expanded":"collapsed";Pe.dataset.state=he,Pe.dataset.expandedSize=re,ot&&(ot.dataset.state=he,ot.dataset.expandedSize=re),Pe.style.removeProperty("display"),Pe.classList.remove("persona-pointer-events-none","persona-opacity-0"),xe.classList.remove("persona-scale-95","persona-opacity-0","persona-scale-100","persona-opacity-100"),Yh(Q),Ce.style.display=Q?"flex":"none",Ho(),Q?(Gh(),Qh()):(Wp(),Hp()),yr();return}let a=Ot(o),u=t.ownerDocument.defaultView??window,m=o.launcher?.mobileBreakpoint??640,x=o.launcher?.mobileFullscreen??!0,A=u.innerWidth<=m,P=x&&A&&z,G=An(o).reveal;Q?(Pe.style.removeProperty("display"),Pe.style.display=a?"flex":"",Pe.classList.remove("persona-pointer-events-none","persona-opacity-0"),xe.classList.remove("persona-scale-95","persona-opacity-0"),xe.classList.add("persona-scale-100","persona-opacity-100"),Lt?(Lt.setPanelOpen(!0),Lt.element.style.display="none"):en&&(en.style.display="none")):(a?a&&(G==="overlay"||G==="push")&&!P?(Pe.style.removeProperty("display"),Pe.style.display="flex",Pe.classList.remove("persona-pointer-events-none","persona-opacity-0"),xe.classList.remove("persona-scale-100","persona-opacity-100","persona-scale-95","persona-opacity-0")):(Pe.style.setProperty("display","none","important"),Pe.classList.remove("persona-pointer-events-none","persona-opacity-0"),xe.classList.remove("persona-scale-100","persona-opacity-100","persona-scale-95","persona-opacity-0")):(Pe.style.display="",Pe.classList.add("persona-pointer-events-none","persona-opacity-0"),xe.classList.remove("persona-scale-100","persona-opacity-100"),xe.classList.add("persona-scale-95","persona-opacity-0")),Lt?(Lt.setPanelOpen(!1),Lt.element.style.display=a?"none":""):en&&(en.style.display=a?"none":""))},dt=(a,u="user")=>{if(!te()||Q===a)return;let m=Q;Q=a,vs();let x=(()=>{let P=o.launcher?.sidebarMode??!1,G=t.ownerDocument.defaultView??window,j=o.launcher?.mobileFullscreen??!0,X=o.launcher?.mobileBreakpoint??640,re=G.innerWidth<=X,he=Ot(o)&&j&&re,ue=K()&&(o.launcher?.composerBar?.expandedSize??"fullscreen")==="fullscreen";return P||j&&re&&z||he||ue})();if(Q&&x){if(!Dn){let P=t.getRootNode(),G=P instanceof ShadowRoot?P.host:t.closest(".persona-host");G&&(Dn=Zc(G,o.launcher?.zIndex??Ut))}On||(On=ed(t.ownerDocument))}else Q||(Dn?.(),Dn=null,On?.(),On=null);Q&&(As(),Lp()||(an()==="follow"?go(!0):kp()));let A={open:Q,source:u,timestamp:Date.now()};Q&&!m?d.emit("widget:opened",A):!Q&&m&&d.emit("widget:closed",A),d.emit("widget:state",{open:Q,launcherEnabled:z,voiceActive:Qe.active,streaming:V.isStreaming()})},Di=a=>{bi(a?"stop":"send"),le&&(le.disabled=a),Oo.forEach(u=>{u.elements.forEach(m=>{m.toggleAttribute("data-disabled",a),m instanceof HTMLButtonElement||m.setAttribute("aria-disabled",a?"true":"false")}),u.buttons.forEach(m=>{m.disabled=a})}),_l.forEach(u=>{u.toggleAttribute("data-disabled",a),u instanceof HTMLButtonElement?u.disabled=a:u.setAttribute("aria-disabled",a?"true":"false"),u.querySelectorAll("button").forEach(m=>{m.disabled=a})}),Se.dataset.personaComposerStreaming=a?"true":"false",Se.querySelectorAll("[data-persona-composer-disable-when-streaming]").forEach(u=>{(u instanceof HTMLButtonElement||u instanceof HTMLInputElement||u instanceof HTMLTextAreaElement||u instanceof HTMLSelectElement)&&(u.disabled=a)})},Dl=()=>{Qe.active||W&&W.focus()};d.on("widget:opened",()=>{o.autoFocusInput&&setTimeout(()=>Dl(),200)});let Ol=!Z.hidden,fo=null,Dp=!y,Op=null,Np,Fp=null,xs=null,Nl=a=>{let u=rr(o),m=`${u.variant}|${u.dismiss}|${u.title}|${u.subtitle}`;(m!==Op||u.icon!==Np)&&(Op=m,Np=u.icon,sl({host:Z,iconHolder:q,title:ge,subtitle:qe,starterSuggestions:En},u));let x=u.message===void 0?null:`${o.layout?.messages?.layout??"bubble"}|${u.message}`;x!==Fp&&(Fp=x,il(ee,u.message,o));let A=a??(V?V.getMessages():o.initialMessages),P=Gr(u,A),G=P!==Ol;if(Ol=P,xs){fo?.cancel(),fo=null,Kr(ce,Z,!0);return}if(G&&!P&&u.dismiss==="on-first-message"&&Dp){fo=pm(Z,j=>{fo===j&&(fo=null),!Ol&&!xs&&(Kr(ce,Z,!1),Rp()),j?.cancel()});return}if(fo){if(!P)return;fo.cancel(),fo=null}Kr(ce,Z,P),G&&!P&&Rp()},Fl=[],_l=[],$l=!1,_p=null,$p,zp=()=>{_l.length=0;let a=Fl.splice(0,Fl.length);for(let u of a)try{u()}catch(m){console.warn("[persona] renderWelcome cleanup threw",m)}};Fe.push(zp);let Jh=(a,u)=>{let m=nd(a,u);if(!m)return o.debug===!0&&console.warn("[persona] renderStarter received a suggestion with no label"),v("span");let x=o.suggestions?.starters,A=od({item:{...m,behavior:m.behavior??x?.behavior??"send"},index:u,surface:"starter",source:"config",variant:x?.variant??"card",streaming:i?V.isStreaming():!1,config:o,plugins:s,chipsConfig:o.suggestionChipsConfig,session:V,getTextarea:()=>W,eventTarget:Z});return _l.push(A),A},zl=()=>{if($l)return;$l=!0;let a=rr(o);_p=`${a.variant}|${a.dismiss}|${a.title}|${a.subtitle}|${a.message??""}`,$p=a.icon;try{zp(),cm(ce,Z,xs),xs=null;let u=V?V.getMessages():o.initialMessages,m=Gr(a,u),x=0,A=null;for(let P of s)if(P.renderWelcome&&(A=P.renderWelcome({config:a,variant:a.variant,visible:m,defaultRenderer:()=>Z,sendMessage:G=>{if(!V||V.isStreaming())return;let j=G.trim();j&&V.sendMessage(j)},requestRender:()=>zl(),renderStarter:G=>Jh(G,x++),storage:l(P.id),onCleanup:G=>{Fl.push(G)}}),A))break;A&&A!==Z&&(xs=A,lm(ce,Z,A))}finally{$l=!1}Nl()},Zh=()=>{let a=rr(o);`${a.variant}|${a.dismiss}|${a.title}|${a.subtitle}|${a.message??""}`===_p&&a.icon===$p||zl()},Ul=()=>{Nl(),yl||(W.placeholder=o.copy?.inputPlaceholder??"How can I help...",!(o.sendButton?.useIcon??!1)&&!V?.isStreaming()&&(h.textContent=o.copy?.sendButtonLabel??"Send")),W.style.fontFamily='var(--persona-input-font-family, var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif))',W.style.fontWeight="var(--persona-input-font-weight, var(--persona-font-weight, 400))"};o.clientToken&&(o={...o,getStoredSessionId:()=>{let a=f.sessionId;return typeof a=="string"?a:null},setStoredSessionId:a=>{S(u=>({...u,sessionId:a}))}});let Ko=null,eb=()=>{Ko==null&&(Ko=setInterval(()=>{let a=Ae.querySelectorAll("[data-tool-elapsed]");if(a.length===0){clearInterval(Ko),Ko=null;return}let u=Date.now();a.forEach(m=>{let x=Number(m.getAttribute("data-tool-elapsed"));x&&(m.textContent=oa(u-x))})},100))},jl=(a,u)=>{if(Object.is(a,u))return!0;if(a===null||u===null||typeof a!="object"||typeof u!="object")return!1;if(Array.isArray(a)||Array.isArray(u))return!Array.isArray(a)||!Array.isArray(u)||a.length!==u.length?!1:a.every((G,j)=>jl(G,u[j]));let m=a,x=u,A=Object.keys(m),P=Object.keys(x);return A.length===P.length&&A.every(G=>Object.prototype.hasOwnProperty.call(x,G)&&jl(m[G],x[G]))},Up=a=>{let{content:u,rawContent:m,llmContent:x,...A}=a;return A},Vl=a=>a.role==="assistant"&&a.streaming===!0&&!a.variant&&!a.toolCall&&!a.tools&&!a.approval&&!a.reasoning&&!a.contentParts&&!a.stopReason&&!Pd(a),tb=(a,u,m)=>{if(a.length!==u.length)return!1;let x=a[m.index],A=u[m.index];return!x||!A||x.id!==m.id||A.id!==m.id?!1:(!Object.is(x.content,A.content)||!Object.is(x.rawContent,A.rawContent)||!Object.is(x.llmContent,A.llmContent))&&Vl(x)&&Vl(A)&&jl(Up(x),Up(A))},jp=null,vr=null,Go=null,Gn=null,Oi=a=>{jp=a;let u,m;vr=null;for(let A=a.length-1;A>=0;A-=1){let P=a[A];if(!u&&P.role==="user"&&(u=P),!m&&P.role==="assistant"&&(m=P),!vr&&Vl(P)&&(vr={index:A,id:P.id}),u&&m&&vr)break}ms(Ae,a,Y),qc(Ae,Ln.artifacts,{suppressTransition:In}),eb(),Nl(a),gr(a),go(!In),qh(a),a.length===0&&(fs(),us=!0,Li=!1,mr=null,Pi=!1),!El||ki?(El=!0,Uo=u?.id??null,kl=m?.id??null):u&&u.id!==Uo?(Uo=u.id,$h(u.id)):m&&m.id!==kl&&zh(),m&&(kl=m.id),Vh(a);let x=Qe.lastUserMessageId;u&&u.id!==x&&(Qe.lastUserMessageId=u.id,d.emit("user:message",u)),Qe.lastUserMessageWasVoice=!!u?.viaVoice,Il(a),yr()},ql=()=>{Gn!==null&&(cancelAnimationFrame(Gn),Gn=null);let a=Go;Go=null,a&&Oi(a)},Vp=()=>{Gn!==null&&cancelAnimationFrame(Gn),Gn=null,Go=null},nb=a=>{let u=Go??jp;if(In&&u&&vr&&tb(u,a,vr)){Go=a,Gn===null&&(Gn=requestAnimationFrame(()=>{Gn=null;let m=Go;Go=null,m&&Oi(m)}));return}if(a.length===0){Vp(),Oi(a);return}ql(),Oi(a)};V=new ga(o,{onMessagesChanged(a){nb(a)},onStatusChanged(a){let u=o.statusIndicator??{};Tn(_,(x=>x==="idle"?u.idleText??Bt.idle:x==="connecting"?u.connectingText??Bt.connecting:x==="connected"?u.connectedText??Bt.connected:x==="error"?u.errorText??Bt.error:x==="paused"?u.pausedText??Bt.paused:x==="resuming"?u.resumingText??Bt.resuming:Bt[x])(a),u,a)},onStreamingChanged(a){a||(V?.getMessages().length===0?Vp():ql()),In=a,Di(a),V&&ms(Ae,V.getMessages(),Y),a||(go(!0),Fh(),yp=!0,V&&vp(V.getMessages(),So(o))),Vt(),$d(a?"Responding\u2026":"Response complete."),yr()},onVoiceStatusChanged(a){if(d.emit("voice:status",{status:a,timestamp:Date.now()}),o.voiceRecognition?.provider?.type==="runtype")switch(a){case"listening":Qn(),wr();break;case"processing":Qn(),gb();break;case"speaking":Qn(),fb();break;default:a==="idle"&&V.isBargeInActive()?(Qn(),wr(),le?.setAttribute("aria-label","End voice session")):(Qe.active=!1,Qn(),Kn("system"),Rn());break}},onArtifactsState(a){Ln=a,a.artifacts.length===0&&(dr=!1),qc(Ae,a.artifacts,{suppressTransition:In}),Un(),Il()},onReconnect(a){let{executionId:u,lastEventId:m}=a.handle;a.phase==="paused"?d.emit("stream:paused",{executionId:u,after:m}):a.phase==="resuming"?d.emit("stream:resuming",{executionId:u,after:m,attempt:a.attempt??1}):d.emit("stream:resumed",{executionId:u,after:m})}}),at.current=V,Fe.push(()=>V.cancel());let Kl=null;if(V.onReadAloudChange((a,u)=>{Zd=a,ep=u,tp();let m=a??Kl;a&&(Kl=a);let x=m?V.getMessages().find(A=>A.id===m)??null:null;d.emit("message:read-aloud",{messageId:m,message:x,state:u,timestamp:Date.now()}),u==="idle"&&(Kl=null)}),i=!0,El=!0,o.voiceRecognition?.provider?.type==="runtype")try{V.setupVoice()}catch(a){typeof console<"u"&&console.warn("[AgentWidget] Runtype voice setup failed:",a)}o.clientToken&&V.initClientSession().catch(a=>{o.debug&&console.warn("[AgentWidget] Pre-init client session failed:",a)}),(Be||o.onSSEEvent)&&V.setSSEEventCallback((a,u)=>{o.onSSEEvent?.(a,u),Ue?.processEvent(a,u),Be?.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:a,timestamp:Date.now(),payload:JSON.stringify(u)})});let qp=()=>{o.resume&&typeof o.reconnectStream=="function"&&V.resumeFromHandle(o.resume)};y?y.then(a=>{if(a){if(a.metadata&&(f=Id(a.metadata),D.syncFromMetadata()),a.messages?.length){ki=!0;try{V.hydrateMessages(a.messages)}finally{ki=!1}}a.artifacts?.length&&V.hydrateArtifacts(a.artifacts,a.selectedArtifactId??null)}}).catch(a=>{typeof console<"u"&&console.error("[AgentWidget] Failed to hydrate stored state:",a)}).finally(()=>{Dp=!0,qp()}):qp();let Kp=()=>{!K()||Q||!(o.launcher?.composerBar?.expandOnSubmit??!0)||dt(!0,"auto")},ob=(a,u)=>a?u?{refs:[...a.refs,...u.refs],finalize:async()=>{let[m,x]=await Promise.allSettled([a.finalize(),u.finalize()]),A=[];return m.status==="fulfilled"?A.push(m.value):console.warn("[Persona] a mention bundle failed to finalize; sending without it",m.reason),x.status==="fulfilled"?A.push(x.value):console.warn("[Persona] a mention bundle failed to finalize; sending without it",x.reason),vC(A)}}:a:u,rb=()=>{let u=W.getInlineMessageFields?.();return u&&u.contentSegments.some(x=>x.kind==="mention")?u.contentSegments:void 0},ws=!1,sb=async a=>{let u=W.value.trim(),m=wt?.hasAttachments()??!1,x=u?await(Zt?.takeInlineCommand(u)??Promise.resolve(null)):null;if(x?.kind==="action"){W.value="",W.style.height="auto",Cs(),Zt?.clear();return}let A=Zt?.collectForSubmit()??null,P=x?.kind==="server"?x.mentions:null,G=ob(A,P),j=x?.kind==="prompt"?x.sendText:u,X=!!A&&A.refs.length>0;if(!j&&!m&&!X&&!P)return;Kp();let re;m&&(re=[],re.push(...wt.getContentParts()),j&&re.push(Dr(j)));let he=x?.kind==="prompt"?void 0:rb();W.value="",W.style.height="auto",Cs(),V.sendMessage(j,{contentParts:re,mentions:G??void 0,contentSegments:he,viaVoice:a?.viaVoice}),m&&wt.clearAttachments(),A&&Zt?.clear()},Gl=async a=>{if(!ws){ws=!0;try{await sb(a)}finally{ws=!1}}},Ni=a=>{if(a.preventDefault(),V.isStreaming()){V.cancel(),Ue?.reset(),Me?.update();return}ws||Gl()},ib=()=>o.features?.composerHistory!==!1,Ql={...Qc},Xl=!1,Cs=()=>{Ql={...Qc}},ab=()=>V.getMessages().filter(a=>a.role==="user").map(a=>a.content??"").filter(a=>a.length>0),lb=a=>{if(!W)return;Xl=!0,W.value=a,W.dispatchEvent(new Event("input",{bubbles:!0})),Xl=!1;let u=W.value.length;W.setSelectionRange(u,u)},cb=a=>{Xl||(a.isComposing||Zt?.handleInput(a.inputType??void 0),Cs())},db=a=>{if(W&&!(!a.isComposing&&Zt?.handleKeydown(a))){if(ib()&&(a.key==="ArrowUp"||a.key==="ArrowDown")&&!a.shiftKey&&!a.metaKey&&!a.ctrlKey&&!a.altKey&&!a.isComposing){let u=W.selectionStart===0&&W.selectionEnd===0,m=$f({direction:a.key==="ArrowUp"?"up":"down",history:ab(),currentValue:W.value,atStart:u,state:Ql});if(Ql=m.state,m.handled){a.preventDefault(),m.value!==void 0&&lb(m.value);return}}if(a.key==="Enter"&&!a.shiftKey){if(V.isStreaming()){a.preventDefault();return}if(ws){a.preventDefault();return}Cs(),a.preventDefault(),h.click()}}},Gp=a=>{a.key!=="Escape"||a.isComposing||V.isStreaming()&&a.composedPath().includes(Ce)&&(V.cancel(),Ue?.reset(),Me?.update(),Cs(),a.preventDefault(),a.stopImmediatePropagation())},pb=async a=>{if(o.attachments?.enabled!==!0||!wt)return;let u=mC(a.clipboardData);u.length!==0&&(a.preventDefault(),await wt.handleFiles(u))},yn=null,Nn=!1,xr=null,At=null,Qp=()=>typeof window>"u"?null:window.webkitSpeechRecognition||window.SpeechRecognition||null,Fi=(a="user")=>{if(Nn||V.isStreaming())return;let u=Qp();if(!u)return;yn=new u;let x=(o.voiceRecognition??{}).pauseDuration??2e3;yn.continuous=!0,yn.interimResults=!0,yn.lang="en-US";let A=W.value;yn.onresult=P=>{let G="",j="";for(let re=0;re<P.results.length;re++){let he=P.results[re],ue=he[0].transcript;he.isFinal?G+=ue+" ":j=ue}let X=A+G+j;W.value=X,xr&&clearTimeout(xr),(G||j)&&(xr=window.setTimeout(()=>{W.value.trim()&&yn&&Nn&&(mo(),Gl({viaVoice:!0}))},x))},yn.onerror=P=>{P.error!=="no-speech"&&mo()},yn.onend=()=>{if(Nn){let P=W.value.trim();P&&P!==A.trim()&&Gl({viaVoice:!0}),mo()}};try{if(yn.start(),Nn=!0,Qe.active=!0,a!=="system"&&(Qe.manuallyDeactivated=!1),Kn(a),Rn(),le){let P=o.voiceRecognition??{};At={backgroundColor:le.style.backgroundColor,color:le.style.color,borderColor:le.style.borderColor,iconName:P.iconName??"mic",iconSize:parseFloat(P.iconSize??o.sendButton?.size??"40")||24};let G=P.recordingBackgroundColor,j=P.recordingIconColor,X=P.recordingBorderColor;if(le.classList.add("persona-voice-recording"),le.style.backgroundColor=G??"var(--persona-voice-recording-bg, #ef4444)",le.style.color=j??"var(--persona-voice-recording-indicator, #ffffff)",j){let re=le.querySelector("svg");re&&re.setAttribute("stroke",j)}X&&(le.style.borderColor=X),le.setAttribute("aria-label","Stop voice recognition")}}catch{mo("system")}},mo=(a="user")=>{if(Nn){if(Nn=!1,xr&&(clearTimeout(xr),xr=null),yn){try{yn.stop()}catch{}yn=null}if(Qe.active=!1,Kn(a),Rn(),le){if(le.classList.remove("persona-voice-recording"),At){le.style.backgroundColor=At.backgroundColor,le.style.color=At.color,le.style.borderColor=At.borderColor;let u=le.querySelector("svg");u&&u.setAttribute("stroke",At.color||"currentColor"),At=null}le.setAttribute("aria-label","Start voice recognition")}}},ub=(a,u)=>{let m=typeof window<"u"&&(typeof window.webkitSpeechRecognition<"u"||typeof window.SpeechRecognition<"u"),x=a?.provider?.type==="runtype",A=a?.provider?.type==="custom";if(!(m||x||A))return null;let G=v("div","persona-send-button-wrapper"),j=v("button","persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer");j.type="button";let X=a?.tooltipText??"Start voice recognition";j.setAttribute("aria-label",X);let re=a?.iconName??"mic",he=u?.size??"40px",ue=a?.iconSize??he,we=parseFloat(ue)||24,Xe=a?.backgroundColor??u?.backgroundColor,yt=a?.iconColor??u?.textColor;j.style.width=ue,j.style.height=ue,j.style.minWidth=ue,j.style.minHeight=ue,j.style.fontSize="18px",j.style.lineHeight="1",yt?j.style.color=yt:j.style.color="var(--persona-text, #111827)";let dn=ie(re,we,yt||"currentColor",1.5);dn?j.appendChild(dn):j.textContent="\u{1F3A4}",Xe?j.style.backgroundColor=Xe:j.style.backgroundColor="",a?.borderWidth&&(j.style.borderWidth=a.borderWidth,j.style.borderStyle="solid"),a?.borderColor&&(j.style.borderColor=a.borderColor),a?.paddingX&&(j.style.paddingLeft=a.paddingX,j.style.paddingRight=a.paddingX),a?.paddingY&&(j.style.paddingTop=a.paddingY,j.style.paddingBottom=a.paddingY),G.appendChild(j);let Et=a?.showTooltip??!1;return jt({anchor:j,trigger:G,text:()=>j.getAttribute("aria-label")??X,enabled:Et}),{micButton:j,micButtonWrapper:G}},Yl=()=>{if(!le||At)return;let a=o.voiceRecognition??{};At={backgroundColor:le.style.backgroundColor,color:le.style.color,borderColor:le.style.borderColor,iconName:a.iconName??"mic",iconSize:parseFloat(a.iconSize??o.sendButton?.size??"40")||24}},Jl=(a,u)=>{if(!le)return;let m=le.querySelector("svg");m&&m.remove();let x=At?.iconSize??(parseFloat(o.voiceRecognition?.iconSize??o.sendButton?.size??"40")||24),A=ie(a,x,u,1.5);A&&le.appendChild(A)},_i=()=>{le&&le.classList.remove("persona-voice-recording","persona-voice-processing","persona-voice-speaking")},wr=()=>{if(!le)return;Yl();let a=o.voiceRecognition??{},u=a.recordingBackgroundColor,m=a.recordingIconColor,x=a.recordingBorderColor;if(_i(),le.classList.add("persona-voice-recording"),le.style.backgroundColor=u??"var(--persona-voice-recording-bg, #ef4444)",le.style.color=m??"var(--persona-voice-recording-indicator, #ffffff)",m){let A=le.querySelector("svg");A&&A.setAttribute("stroke",m)}x&&(le.style.borderColor=x),le.setAttribute("aria-label","Stop voice recognition")},gb=()=>{if(!le)return;Yl();let a=o.voiceRecognition??{},u=V.getVoiceInterruptionMode(),m=a.processingIconName??"loader",x=a.processingIconColor??At?.color??"",A=a.processingBackgroundColor??At?.backgroundColor??"",P=a.processingBorderColor??At?.borderColor??"";_i(),le.classList.add("persona-voice-processing"),le.style.backgroundColor=A,le.style.borderColor=P;let G=x||"currentColor";le.style.color=G,Jl(m,G),le.setAttribute("aria-label","Processing voice input"),u==="none"&&(le.style.cursor="default")},fb=()=>{if(!le)return;Yl();let a=o.voiceRecognition??{},u=V.getVoiceInterruptionMode(),m=u==="cancel"?"square":u==="barge-in"?"mic":"volume-2",x=a.speakingIconName??m,A=a.speakingIconColor??(u==="barge-in"?a.recordingIconColor??At?.color??"":At?.color??""),P=a.speakingBackgroundColor??(u==="barge-in"?a.recordingBackgroundColor??"var(--persona-voice-recording-bg, #ef4444)":At?.backgroundColor??""),G=a.speakingBorderColor??(u==="barge-in"?a.recordingBorderColor??"":At?.borderColor??"");_i(),le.classList.add("persona-voice-speaking"),le.style.backgroundColor=P,le.style.borderColor=G;let j=A||"currentColor";le.style.color=j,Jl(x,j);let X=u==="cancel"?"Stop playback and re-record":u==="barge-in"?"Speak to interrupt":"Agent is speaking";le.setAttribute("aria-label",X),u==="none"&&(le.style.cursor="default"),u==="barge-in"&&le.classList.add("persona-voice-recording")},Qn=()=>{le&&(_i(),At&&(le.style.backgroundColor=At.backgroundColor??"",le.style.color=At.color??"",le.style.borderColor=At.borderColor??"",Jl(At.iconName,At.color||"currentColor"),At=null),le.style.cursor="",le.setAttribute("aria-label","Start voice recognition"))},Cr=()=>{if(o.voiceRecognition?.provider?.type==="runtype"){let a=V.getVoiceStatus(),u=V.getVoiceInterruptionMode();if(u==="none"&&(a==="processing"||a==="speaking"))return;if(u==="cancel"&&(a==="processing"||a==="speaking")){V.stopVoicePlayback();return}if(V.isBargeInActive()){V.stopVoicePlayback(),V.deactivateBargeIn().then(()=>{Qe.active=!1,Qe.manuallyDeactivated=!0,Rn(),Kn("user"),Qn()});return}V.toggleVoice().then(()=>{Qe.active=V.isVoiceActive(),Qe.manuallyDeactivated=!V.isVoiceActive(),Rn(),Kn("user"),V.isVoiceActive()?wr():Qn()});return}if(Nn){let a=W.value.trim();Qe.manuallyDeactivated=!0,Rn(),mo("user"),a&&(W.value="",W.style.height="auto",V.sendMessage(a))}else Qe.manuallyDeactivated=!1,Rn(),Fi("user")};Ud=Cr,le&&(le.addEventListener("click",Cr),Fe.push(()=>{o.voiceRecognition?.provider?.type==="runtype"?(V.isVoiceActive()&&V.toggleVoice(),Qn()):mo("system"),le&&le.removeEventListener("click",Cr)}));let mb=d.on("assistant:complete",()=>{Cp&&(Qe.active||Qe.manuallyDeactivated||Cp==="assistant"&&!Qe.lastUserMessageWasVoice||setTimeout(()=>{!Qe.active&&!Qe.manuallyDeactivated&&(o.voiceRecognition?.provider?.type==="runtype"?V.toggleVoice().then(()=>{Qe.active=V.isVoiceActive(),Kn("auto"),V.isVoiceActive()&&wr()}):Fi("auto"))},600))});Fe.push(mb);let hb=d.on("action:resubmit",()=>{setTimeout(()=>{V&&!V.isStreaming()&&V.continueConversation()},100)});Fe.push(hb);let Xp=()=>{dt(!Q,"user")},Lt=null,en=null;if(z&&!K()){let{instance:a,element:u}=pd({config:o,plugins:s,onToggle:Xp});Lt=a,a||(en=u)}Lt?t.appendChild(Lt.element):en&&t.appendChild(en),vs(),gr(),Ul(),zl(),Di(V.isStreaming()),Lp()||(an()==="follow"?go(!0):kp()),Wh(),F&&(!z||K()?setTimeout(()=>Dl(),0):Q&&setTimeout(()=>Dl(),200));let As=()=>{if(K()){Wo(),vs();return}let a=Ot(o),u=o.launcher?.sidebarMode??!1,m=t.ownerDocument.defaultView??window,x=o.launcher?.mobileFullscreen??!0,A=o.launcher?.mobileBreakpoint??640,P=m.innerWidth<=A,G=x&&P&&z;try{if(G){Ho(),cs=Mi();return}let j=!1;N&&(N=!1,Ho(),j=!0);let X=Mi();if(!j&&X!==cs&&(Ho(),j=!0),cs=X,j&&Cl(),!z&&!a){xe.style.height="",xe.style.width="";return}if(!u&&!a){let he=o?.launcher?.width??o?.launcherWidth??no;xe.style.width=he,xe.style.maxWidth=he}Si(),ap()}finally{if(Wo(),vs(),Q&&z){let X=(t.ownerDocument.defaultView??window).innerWidth<=(o.launcher?.mobileBreakpoint??640),re=o.launcher?.sidebarMode??!1,he=o.launcher?.mobileFullscreen??!0,ue=Ot(o)&&he&&X,we=re||he&&X&&z||ue;if(we&&!On){let Xe=t.getRootNode(),yt=Xe instanceof ShadowRoot?Xe.host:t.closest(".persona-host");yt&&!Dn&&(Dn=Zc(yt,o.launcher?.zIndex??Ut)),On=ed(t.ownerDocument)}else we||(Dn?.(),Dn=null,On?.(),On=null)}}};As();let Yp=t.ownerDocument.defaultView??window;if(Yp.addEventListener("resize",As),Fe.push(()=>Yp.removeEventListener("resize",As)),typeof ResizeObserver<"u"){let a=new ResizeObserver(()=>{Wo()});a.observe(Se),Fe.push(()=>a.disconnect())}cn=ce.scrollTop;let Jp=_n(ce),Zp=()=>{let a=ce.scrollTop,u=_n(ce),m=u<Jp;if(Jp=u,!io()){cn=a,Vt();return}let{action:x,nextLastScrollTop:A}=za({following:ln.isFollowing(),currentScrollTop:a,lastScrollTop:cn,nearBottom:ro(ce,Vn),userScrollThreshold:Lh,isAutoScrolling:on||Ei||m,pauseOnUpwardScroll:!0,pauseWhenAwayFromBottom:!1,resumeRequiresDownwardScroll:!0});if(cn=A,x==="resume"){Ri()||uo();return}x==="pause"&&gs()};if(ce.addEventListener("scroll",Zp,{passive:!0}),Fe.push(()=>ce.removeEventListener("scroll",Zp)),typeof ResizeObserver<"u"){let a=new ResizeObserver(()=>{_h(),ic(Ae)});a.observe(Ae),a.observe(ce),Fe.push(()=>a.disconnect())}let eu=()=>{io()&&ln.isFollowing()&&Ri()&&gs()},tu=ce.ownerDocument;tu.addEventListener("selectionchange",eu),Fe.push(()=>{tu.removeEventListener("selectionchange",eu)});let bb=new Set(["PageUp","PageDown","Home","End","ArrowUp","ArrowDown"]),nu=a=>{bb.has(a.key)&&(jo(),Nd()&&io()&&ln.isFollowing()&&gs())},ou=a=>{a.target?.closest("a, button, [tabindex], input, textarea, select")&&(jo(),Nd()&&io()&&ln.isFollowing()&&gs())};ce.addEventListener("keydown",nu),ce.addEventListener("focusin",ou),Fe.push(()=>{ce.removeEventListener("keydown",nu),ce.removeEventListener("focusin",ou)});let ru=a=>{if(a.deltaY!==0&&jo(),!io())return;let u=Ua({following:ln.isFollowing(),deltaY:a.deltaY,nearBottom:ro(ce,Vn),resumeWhenNearBottom:!0});u==="pause"?gs():u==="resume"&&!Ri()&&uo()};ce.addEventListener("wheel",ru,{passive:!0}),ce.addEventListener("touchmove",jo,{passive:!0}),ce.addEventListener("pointerdown",jo,{passive:!0}),Fe.push(()=>{ce.removeEventListener("touchmove",jo),ce.removeEventListener("pointerdown",jo)}),Fe.push(()=>ce.removeEventListener("wheel",ru)),It.addEventListener("click",()=>{fs(),ce.scrollTop=ce.scrollHeight,cn=ce.scrollTop,uo(),go(!0),Vt()}),Fe.push(()=>It.remove()),Fe.push(()=>{Mp(),fs()});let su=()=>{fe&&(No&&(fe.removeEventListener("click",No),No=null),te()?(fe.style.display="",No=()=>{dt(!1,"user")},fe.addEventListener("click",No)):fe.style.display="none")};su(),(()=>{let{clearChatButton:a}=ke;a&&a.addEventListener("click",()=>{V.clearMessages(),_o.clear(),uo(),Wr(ke.composerOverlay);try{localStorage.removeItem(es),o.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${es}`)}catch(m){console.error("[AgentWidget] Failed to clear default localStorage:",m)}if(o.clearChatHistoryStorageKey&&o.clearChatHistoryStorageKey!==es)try{localStorage.removeItem(o.clearChatHistoryStorageKey),o.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${o.clearChatHistoryStorageKey}`)}catch(m){console.error("[AgentWidget] Failed to clear custom localStorage:",m)}let u=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});window.dispatchEvent(u),b?.clear&&Pl(()=>b.clear(),"[AgentWidget] Failed to clear storage adapter:"),f={},D.syncFromMetadata(),Be?.clear(),Ue?.reset(),Me?.update()})})(),R&&R.addEventListener("submit",Ni);let iu=[["keydown",db],["input",cb],["paste",pb],["focus",Ch]],Zl=a=>{if(a)for(let[u,m]of iu)a.addEventListener(u,m)},ec=a=>{if(a)for(let[u,m]of iu)a.removeEventListener(u,m)};Zl(W);let au=()=>{Zt?.onComposerSwap((a,u)=>{ec(u),W=a,Zl(a)})};au();let tc=!1;function yb(){if(!tc){tc=!0;try{let a=W?.value??"",u=Se.ownerDocument??document,m=W?u.activeElement===W:!1;ec(W),R?.removeEventListener("submit",Ni),le?.removeEventListener("click",Cr),Zt?.destroy(),Zt=null;let x=null,A=()=>(x=K()?ol({config:o}):ai({config:o}),x.footer),P=qd(A)??A();nt.replaceComposer(P),Se=nt.composer.footer;let G=x!==null&&P===x.footer;yl=!G,bi=G?x.setSendButtonMode:()=>{},Vd(Se),Gd(Se),Qd(),Xd(),Yd(),au(),R&&R.addEventListener("submit",Ni),Zl(W),le?.addEventListener("click",Cr);let j=Oo.indexOf(jn);jn.destroy(),jn=si(k),j>=0&&(Oo[j]=jn),W&&(W.value=a),Ul(),gr(),Di(V.isStreaming()),Ho(),Wo(),m&&W?.focus()}finally{tc=!1}}}let lu=t.ownerDocument??document;lu.addEventListener("keydown",Gp,!0);let cu="persona-attachment-drop-active",Ss=0,nc=()=>{Ss=0,Ce.classList.remove(cu)},Ar=()=>o.attachments?.enabled===!0&&wt!==null,du=a=>{!ul(a.dataTransfer)||!Ar()||(Ss++,Ss===1&&Ce.classList.add(cu))},pu=a=>{!ul(a.dataTransfer)||!Ar()||(Ss--,Ss<=0&&nc())},uu=a=>{!ul(a.dataTransfer)||!Ar()||(a.preventDefault(),a.dataTransfer.dropEffect="copy")},gu=a=>{if(!ul(a.dataTransfer)||!Ar())return;a.preventDefault(),a.stopPropagation(),nc();let u=Array.from(a.dataTransfer.files??[]);u.length!==0&&wt.handleFiles(u)},ho=!0;Ce.addEventListener("dragenter",du,ho),Ce.addEventListener("dragleave",pu,ho),t.addEventListener("dragover",uu,ho),t.addEventListener("drop",gu,ho);let $i=t.ownerDocument,fu=a=>{Ar()&&a.preventDefault()},mu=a=>{Ar()&&a.preventDefault()};$i.addEventListener("dragover",fu),$i.addEventListener("drop",mu),Fe.push(()=>{R&&R.removeEventListener("submit",Ni),ec(W),lu.removeEventListener("keydown",Gp,!0),Zt?.destroy()}),Fe.push(()=>{Ce.removeEventListener("dragenter",du,ho),Ce.removeEventListener("dragleave",pu,ho),t.removeEventListener("dragover",uu,ho),t.removeEventListener("drop",gu,ho),$i.removeEventListener("dragover",fu),$i.removeEventListener("drop",mu),nc()}),Fe.push(()=>{V.cancel()}),Lt?Fe.push(()=>{Lt?.destroy()}):en&&Fe.push(()=>{en?.remove()});let Rt={update(a){let u=o.toolCall,m=o.messageActions,x=o.layout?.messages,A=o.colorScheme,P=o.loadingIndicator,G=o.iterationDisplay,j=o.features?.showReasoning,X=o.features?.showToolCalls,re=o.features?.toolCallDisplay,he=o.features?.reasoningDisplay,ue=o.features?.streamAnimation?.type;o=Km({...o,features:r},a),r=o.features,o=wd(o),Sl(),Qs(t,o),gi(t,o),fi(t,o),Un(),o.colorScheme!==A&&lp();let we=Md.getForInstance(o.plugins);s.length=0,s.push(...we),z=o.launcher?.enabled??!0,$=o.launcher?.autoExpand??!1,pe=o.features?.showReasoning??!0,ne=o.features?.showToolCalls??!0,ve=o.features?.scrollToBottom??{};let Xe=an();be=o.features?.scrollBehavior??{},Xe!==an()&&(fs(),uo()),wp(),zd(),Vt();let yt=me;if(me=o.features?.showEventStreamToggle??!1,me&&!yt){if(Be||(Oe=new pi(ze),Be=new di(Ne,Oe),Ue=Ue??new ui,Oe.open().then(()=>Be?.restore()).catch(()=>{}),V.setSSEEventCallback((de,Ge)=>{o.onSSEEvent?.(de,Ge),Ue?.processEvent(de,Ge),Be.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:de,timestamp:Date.now(),payload:JSON.stringify(Ge)})})),!et&&He){let de=o.features?.eventStream?.classNames,Ge="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"+(de?.toggleButton?" "+de.toggleButton:"");et=v("button",Ge),et.style.width="28px",et.style.height="28px",et.style.color=Yt.actionIconColor,et.type="button",et.setAttribute("aria-label","Event Stream"),et.title="Event Stream";let mt=ie("activity","18px","currentColor",1.5);mt&&et.appendChild(mt);let tt=ke.clearChatButtonWrapper,st=ke.closeButtonWrapper,Qt=tt||st;Qt&&Qt.parentNode===He?He.insertBefore(et,Qt):He.appendChild(et),et.addEventListener("click",()=>{Ee?is():hl()})}}else!me&&yt&&(is(),et&&(et.remove(),et=null),Be?.clear(),Oe?.destroy(),Be=null,Oe=null,Ue?.reset(),Ue=null);if(o.launcher?.enabled===!1&&Lt&&(Lt.destroy(),Lt=null),o.launcher?.enabled===!1&&en&&(en.remove(),en=null),o.launcher?.enabled!==!1&&!Lt&&!en){let{instance:de,element:Ge}=pd({config:o,plugins:s,onToggle:Xp});Lt=de,de||(en=Ge),t.appendChild(Ge)}Lt&&Lt.update(o),Ke&&o.launcher?.title!==void 0&&(Ke.textContent=o.launcher.title),je&&o.launcher?.subtitle!==void 0&&(je.textContent=o.launcher.subtitle);let pt=o.layout?.header;if(pt?.layout!==w&&He){let de=pt?Xa(o,pt,{showClose:te(),onClose:()=>dt(!1,"user")}):or({config:o,showClose:te(),onClose:()=>dt(!1,"user")});nt.replaceHeader(de),He=nt.header.element,Ie=nt.header.iconHolder,Ke=nt.header.headerTitle,je=nt.header.headerSubtitle,fe=nt.header.closeButton,w=pt?.layout}else if(pt){if(Ie&&(Ie.style.display=pt.showIcon===!1?"none":""),Ke&&(Ke.style.display=pt.showTitle===!1?"none":""),je&&(je.style.display=pt.showSubtitle===!1?"none":""),fe){let de=te()&&pt.showCloseButton!==!1;fe.style.display=de?"":"none"}if(ke.clearChatButtonWrapper){let de=pt.showClearChat;if(de!==void 0){ke.clearChatButtonWrapper.style.display=de?"":"none";let{closeButtonWrapper:Ge}=ke;Ge&&!Ge.classList.contains("persona-absolute")&&(de?Ge.classList.remove("persona-ml-auto"):Ge.classList.add("persona-ml-auto"))}}}let Et=o.layout?.showHeader!==!1;He&&(He.style.display=Et?"":"none");let Wt=o.layout?.showFooter!==!1;Se&&(Se.style.display=Wt?"":"none"),Wo(),Vt(),z!==H?z?dt($,"auto"):(Q=!0,vs()):$!==B&&dt($,"auto"),B=$,H=z,As(),su();let _e=JSON.stringify(o.toolCall)!==JSON.stringify(u),Le=JSON.stringify(o.messageActions)!==JSON.stringify(m),Tt=JSON.stringify(o.layout?.messages)!==JSON.stringify(x),ut=o.loadingIndicator?.render!==P?.render||o.loadingIndicator?.renderIdle!==P?.renderIdle||o.loadingIndicator?.showBubble!==P?.showBubble,$t=o.iterationDisplay!==G,gt=(o.features?.showReasoning??!0)!==(j??!0)||(o.features?.showToolCalls??!0)!==(X??!0)||JSON.stringify(o.features?.toolCallDisplay)!==JSON.stringify(re)||JSON.stringify(o.features?.reasoningDisplay)!==JSON.stringify(he);(_e||Le||Tt||ut||$t||gt)&&V&&(Tl++,ms(Ae,V.getMessages(),Y));let Ht=o.features?.streamAnimation?.type;if(Ht!==ue&&Ht&&Ht!=="none"){let de=qr(Ht,o.features?.streamAnimation?.plugins);de&&Ka(de,t)}let We=o.launcher??{},$e=We.headerIconHidden??!1,qt=o.layout?.header?.showIcon,Kt=$e||qt===!1,St=We.headerIconName,lt=We.headerIconSize??"48px";if(Ie){let de=Ce.querySelector(".persona-border-b-persona-divider"),Ge=de?.querySelector(".persona-flex-col");if(Kt)Ie.style.display="none",de&&Ge&&!de.contains(Ge)&&de.insertBefore(Ge,de.firstChild);else{if(Ie.style.display="",Ie.style.height=lt,Ie.style.width=lt,de&&Ge&&(de.contains(Ie)?Ie.nextSibling!==Ge&&(Ie.remove(),de.insertBefore(Ie,Ge)):de.insertBefore(Ie,Ge)),St){let tt=parseFloat(lt)||24,st=ie(St,tt*.6,"currentColor",1);st?Ie.replaceChildren(st):Ie.textContent=We.agentIconText??"\u{1F4AC}"}else if(We.iconUrl){let tt=Ie.querySelector("img");if(tt)tt.src=We.iconUrl,tt.style.height=lt,tt.style.width=lt;else{let st=document.createElement("img");st.src=We.iconUrl,st.alt="",st.className="persona-rounded-xl persona-object-cover",st.style.height=lt,st.style.width=lt,Ie.replaceChildren(st)}}else{let tt=Ie.querySelector("svg"),st=Ie.querySelector("img");(tt||st)&&Ie.replaceChildren(),Ie.textContent=We.agentIconText??"\u{1F4AC}"}let mt=Ie.querySelector("img");mt&&(mt.style.height=lt,mt.style.width=lt)}}let ft=o.layout?.header?.showTitle,Ze=o.layout?.header?.showSubtitle;if(Ke&&(Ke.style.display=ft===!1?"none":""),je&&(je.style.display=Ze===!1?"none":""),fe){let de=te()&&o.layout?.header?.showCloseButton!==!1;fe.style.display=de?"":"none";let Ge=We.closeButtonSize??"32px",mt=We.closeButtonPlacement??"inline";fe.style.height=Ge,fe.style.width=Ge;let{closeButtonWrapper:tt}=ke,st=mt==="top-right",Qt=tt?.classList.contains("persona-absolute");if(tt&&st!==Qt)if(tt.remove(),st)tt.className="persona-absolute persona-top-4 persona-right-4 persona-z-50",Ce.style.position="relative",Ce.appendChild(tt);else{let yo=We.clearChat?.placement??"inline",Es=We.clearChat?.enabled??!0;tt.className=Es&&yo==="inline"?"":"persona-ml-auto";let hu=Ce.querySelector(".persona-border-b-persona-divider");hu&&hu.appendChild(tt)}if(fe.style.color=We.closeButtonColor||Yt.actionIconColor,We.closeButtonBackgroundColor?(fe.style.backgroundColor=We.closeButtonBackgroundColor,fe.classList.remove("hover:persona-bg-gray-100")):(fe.style.backgroundColor="",fe.classList.add("hover:persona-bg-gray-100")),We.closeButtonBorderWidth||We.closeButtonBorderColor){let yo=We.closeButtonBorderWidth||"0px",Es=We.closeButtonBorderColor||"transparent";fe.style.border=`${yo} solid ${Es}`,fe.classList.remove("persona-border-none")}else fe.style.border="",fe.classList.add("persona-border-none");We.closeButtonBorderRadius?(fe.style.borderRadius=We.closeButtonBorderRadius,fe.classList.remove("persona-rounded-full")):(fe.style.borderRadius="",fe.classList.add("persona-rounded-full")),We.closeButtonPaddingX?(fe.style.paddingLeft=We.closeButtonPaddingX,fe.style.paddingRight=We.closeButtonPaddingX):(fe.style.paddingLeft="",fe.style.paddingRight=""),We.closeButtonPaddingY?(fe.style.paddingTop=We.closeButtonPaddingY,fe.style.paddingBottom=We.closeButtonPaddingY):(fe.style.paddingTop="",fe.style.paddingBottom="");let pn=We.closeButtonIconName??"x",Wn=We.closeButtonIconText??"\xD7";fe.innerHTML="";let zt=ie(pn,"28px","currentColor",1);zt?(zt.style.display="block",fe.appendChild(zt)):fe.textContent=Wn;let Xt=We.closeButtonTooltipText??"Close chat",Yn=We.closeButtonShowTooltip??!0;fe.setAttribute("aria-label",Xt),tt&&jt({anchor:fe,trigger:tt,text:()=>fe?.getAttribute("aria-label")??Xt,enabled:Yn})}let{clearChatButton:De,clearChatButtonWrapper:vt}=ke;if(De){let de=We.clearChat??{},Ge=de.enabled??!0,mt=o.layout?.header?.showClearChat,tt=mt!==void 0?mt:Ge,st=de.placement??"inline";if(vt){vt.style.display=tt?"":"none";let{closeButtonWrapper:Qt}=ke;!K()&&Qt&&!Qt.classList.contains("persona-absolute")&&(tt?Qt.classList.remove("persona-ml-auto"):Qt.classList.add("persona-ml-auto"));let pn=st==="top-right",Wn=vt.classList.contains("persona-absolute");if(!K()&&pn!==Wn&&tt){if(vt.remove(),pn)vt.className="persona-absolute persona-top-4 persona-z-50",vt.style.right="48px",Ce.style.position="relative",Ce.appendChild(vt);else{vt.className="persona-relative persona-ml-auto persona-clear-chat-button-wrapper",vt.style.right="";let Xt=Ce.querySelector(".persona-border-b-persona-divider"),Yn=ke.closeButtonWrapper;Xt&&Yn&&Yn.parentElement===Xt?Xt.insertBefore(vt,Yn):Xt&&Xt.appendChild(vt)}let zt=ke.closeButtonWrapper;zt&&!zt.classList.contains("persona-absolute")&&(pn?zt.classList.add("persona-ml-auto"):zt.classList.remove("persona-ml-auto"))}}if(tt){if(!K()){let yo=de.size??"32px";De.style.height=yo,De.style.width=yo}let Qt=de.iconName??"refresh-cw",pn=de.iconColor??"";De.style.color=pn||Yt.actionIconColor,De.innerHTML="";let Wn=K()?"14px":"20px",zt=ie(Qt,Wn,"currentColor",1);if(zt&&(zt.style.display="block",De.appendChild(zt)),de.backgroundColor?(De.style.backgroundColor=de.backgroundColor,De.classList.remove("hover:persona-bg-gray-100")):(De.style.backgroundColor="",De.classList.add("hover:persona-bg-gray-100")),de.borderWidth||de.borderColor){let yo=de.borderWidth||"0px",Es=de.borderColor||"transparent";De.style.border=`${yo} solid ${Es}`,De.classList.remove("persona-border-none")}else De.style.border="",De.classList.add("persona-border-none");de.borderRadius?(De.style.borderRadius=de.borderRadius,De.classList.remove("persona-rounded-full")):(De.style.borderRadius="",De.classList.add("persona-rounded-full")),de.paddingX?(De.style.paddingLeft=de.paddingX,De.style.paddingRight=de.paddingX):(De.style.paddingLeft="",De.style.paddingRight=""),de.paddingY?(De.style.paddingTop=de.paddingY,De.style.paddingBottom=de.paddingY):(De.style.paddingTop="",De.style.paddingBottom="");let Xt=de.tooltipText??"Clear chat",Yn=de.showTooltip??!0;De.setAttribute("aria-label",Xt),vt&&jt({anchor:De,trigger:vt,text:()=>De?.getAttribute("aria-label")??Xt,enabled:Yn})}}let Gt=o.actionParsers&&o.actionParsers.length?o.actionParsers:[Ed],xn=o.actionHandlers&&o.actionHandlers.length?o.actionHandlers:[mi.message,mi.messageAndClick];D=kd({parsers:Gt,handlers:xn,getSessionMetadata:I,updateSessionMetadata:S,emit:d.emit,documentRef:typeof document<"u"?document:null}),Y=oh(o,D,oe),V.updateConfig(o),ms(Ae,V.getMessages(),Y),gr(),Ul(),Zh(),Di(V.isStreaming());let Ms=o.voiceRecognition?.enabled===!0,zi=typeof window<"u"&&(typeof window.webkitSpeechRecognition<"u"||typeof window.SpeechRecognition<"u"),Pt=o.voiceRecognition?.provider?.type==="runtype";if(Ms&&(zi||Pt))if(!le||!mn){let de=ub(o.voiceRecognition,o.sendButton);de&&(le=de.micButton,mn=de.micButtonWrapper,Mt.insertBefore(mn,O),le.addEventListener("click",Cr),le.disabled=V.isStreaming())}else{let de=o.voiceRecognition??{},Ge=o.sendButton??{},mt=de.iconName??"mic",tt=Ge.size??"40px",st=de.iconSize??tt,Qt=parseFloat(st)||24;le.style.width=st,le.style.height=st,le.style.minWidth=st,le.style.minHeight=st;let pn=de.iconColor??Ge.textColor;le.innerHTML="";let Wn=ie(mt,Qt,pn||"currentColor",1.5);Wn?le.appendChild(Wn):le.textContent="\u{1F3A4}";let zt=de.backgroundColor??Ge.backgroundColor;zt?le.style.backgroundColor=zt:le.style.backgroundColor="",pn?le.style.color=pn:le.style.color="var(--persona-text, #111827)",de.borderWidth?(le.style.borderWidth=de.borderWidth,le.style.borderStyle="solid"):(le.style.borderWidth="",le.style.borderStyle=""),de.borderColor?le.style.borderColor=de.borderColor:le.style.borderColor="",de.paddingX?(le.style.paddingLeft=de.paddingX,le.style.paddingRight=de.paddingX):(le.style.paddingLeft="",le.style.paddingRight=""),de.paddingY?(le.style.paddingTop=de.paddingY,le.style.paddingBottom=de.paddingY):(le.style.paddingTop="",le.style.paddingBottom="");let Xt=de.tooltipText??"Start voice recognition",Yn=de.showTooltip??!1;le.setAttribute("aria-label",Xt),mn&&jt({anchor:le,trigger:mn,text:()=>le?.getAttribute("aria-label")??Xt,enabled:Yn}),mn.style.display="",le.disabled=V.isStreaming()}else le&&mn&&(mn.style.display="none",o.voiceRecognition?.provider?.type==="runtype"?V.isVoiceActive()&&V.toggleVoice():Nn&&mo());if(o.attachments?.enabled===!0){if(!hn||!ct){let de=o.attachments??{},mt=(o.sendButton??{}).size??"40px";kn||(kn=v("div","persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2"),kn.style.display="none",R.insertBefore(kn,W)),kt||(kt=document.createElement("input"),kt.type="file",kt.accept=(de.allowedTypes??to).join(","),kt.multiple=(de.maxFiles??4)>1,kt.style.display="none",kt.setAttribute("aria-label","Attach files"),R.insertBefore(kt,W)),hn=v("div","persona-send-button-wrapper"),ct=v("button","persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-attachment-button"),ct.type="button",ct.setAttribute("aria-label",de.buttonTooltipText??"Attach file");let tt=de.buttonIconName??"paperclip",st=mt,Qt=parseFloat(st)||40,pn=Math.round(Qt*.6);ct.style.width=st,ct.style.height=st,ct.style.minWidth=st,ct.style.minHeight=st,ct.style.fontSize="18px",ct.style.lineHeight="1";let Wn=ie(tt,pn,"currentColor",1.5);Wn?ct.appendChild(Wn):ct.textContent="\u{1F4CE}",ct.addEventListener("click",Xt=>{Xt.preventDefault(),kt?.click()}),hn.appendChild(ct);let zt=de.buttonTooltipText??"Attach file";jt({anchor:ct,trigger:hn,text:()=>ct?.getAttribute("aria-label")??zt}),fn?fn.append(hn):R.appendChild(hn),!wt&&kt&&kn&&(wt=$s.fromConfig(de),wt.setPreviewsContainer(kn),kt.addEventListener("change",async()=>{wt&&kt?.files&&(await wt.handleFileSelect(kt.files),kt.value="")}))}else{hn.style.display="";let de=o.attachments??{};kt&&(kt.accept=(de.allowedTypes??to).join(","),kt.multiple=(de.maxFiles??4)>1),wt&&wt.updateConfig({allowedTypes:de.allowedTypes,maxFileSize:de.maxFileSize,maxFiles:de.maxFiles})}if(Ce.querySelector(".persona-attachment-drop-overlay")?.remove(),Ce.appendChild(rh(o.attachments?.dropOverlay)),ct){let de=o.attachments??{},Ge=de.buttonTooltipText??"Attach file";ct.setAttribute("aria-label",Ge),ct.textContent="";let mt=parseFloat(o.sendButton?.size??"40px")||40,tt=ie(de.buttonIconName??"paperclip",Math.round(mt*.6),"currentColor",1.5);tt?ct.appendChild(tt):ct.textContent="\u{1F4CE}",hn&&jt({anchor:ct,trigger:hn,text:()=>ct?.getAttribute("aria-label")??Ge})}}else hn&&(hn.style.display="none"),wt&&wt.clearAttachments(),Ce.querySelector(".persona-attachment-drop-overlay")?.remove();let _t=o.sendButton??{},Ts=_t.useIcon??!1,ji=_t.iconText??"\u2191",Sr=_t.iconName,Vi=_t.tooltipText??"Send message",oc=_t.showTooltip??!1,Qo=_t.size??"40px",Xn=_t.backgroundColor,Xo=_t.textColor;if(Ts){if(h.style.width=Qo,h.style.height=Qo,h.style.minWidth=Qo,h.style.minHeight=Qo,h.style.fontSize="18px",h.style.lineHeight="1",Xo?h.style.color=Xo:h.style.color="var(--persona-button-primary-fg, #ffffff)",!V.isStreaming())if(h.innerHTML="",Sr){let de=parseFloat(Qo)||24,Ge=Xo?.trim()||"currentColor",mt=ie(Sr,de,Ge,2);mt?h.appendChild(mt):h.textContent=ji}else h.textContent=ji;h.className="persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer",Xn?(h.style.backgroundColor=Xn,h.classList.remove("persona-bg-persona-primary")):(h.style.backgroundColor="",h.classList.add("persona-bg-persona-primary"))}else h.textContent=o.copy?.sendButtonLabel??"Send",h.style.width="",h.style.height="",h.style.minWidth="",h.style.minHeight="",h.style.fontSize="",h.style.lineHeight="",h.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",Xn?(h.style.backgroundColor=Xn,h.classList.remove("persona-bg-persona-accent")):h.classList.add("persona-bg-persona-accent"),Xo?h.style.color=Xo:h.classList.add("persona-text-white");_t.borderWidth?(h.style.borderWidth=_t.borderWidth,h.style.borderStyle="solid"):(h.style.borderWidth="",h.style.borderStyle=""),_t.borderColor?h.style.borderColor=_t.borderColor:h.style.borderColor="",_t.paddingX?(h.style.paddingLeft=_t.paddingX,h.style.paddingRight=_t.paddingX):(h.style.paddingLeft="",h.style.paddingRight=""),_t.paddingY?(h.style.paddingTop=_t.paddingY,h.style.paddingBottom=_t.paddingY):(h.style.paddingTop="",h.style.paddingBottom=""),V.isStreaming()||h.setAttribute("aria-label",Vi),O&&jt({anchor:h,trigger:O,text:()=>h.getAttribute("aria-label")??Vi,enabled:oc});let Mr=To(o,K());Ml(),Mr?(Ae.style.maxWidth=Mr,Ae.style.marginLeft="auto",Ae.style.marginRight="auto",Ae.style.width="100%",ee.style.maxWidth=Mr,ee.style.marginLeft="auto",ee.style.marginRight="auto",ee.style.width="100%",R&&(R.style.maxWidth=Mr,R.style.marginLeft="auto",R.style.marginRight="auto"),k&&(k.style.maxWidth=Mr,k.style.marginLeft="auto",k.style.marginRight="auto"),_.style.maxWidth=Mr,_.style.marginLeft="auto",_.style.marginRight="auto"):(Ae.style.maxWidth="",Ae.style.marginLeft="",Ae.style.marginRight="",Ae.style.width="",ee.style.maxWidth="",ee.style.marginLeft="",ee.style.marginRight="",ee.style.width="",R&&(R.style.maxWidth="",R.style.marginLeft="",R.style.marginRight=""),k&&(k.style.maxWidth="",k.style.marginLeft="",k.style.marginRight=""),_.style.maxWidth="",_.style.marginLeft="",_.style.marginRight="");let bo=o.statusIndicator??{},vb=bo.visible??!0;if(_.style.display=vb?"":"none",V){let de=V.getStatus();Tn(_,(mt=>mt==="idle"?bo.idleText??Bt.idle:mt==="connecting"?bo.connectingText??Bt.connecting:mt==="connected"?bo.connectedText??Bt.connected:mt==="error"?bo.errorText??Bt.error:Bt[mt])(de),bo,de)}_.classList.remove("persona-text-left","persona-text-center","persona-text-right");let xb=bo.align==="left"?"persona-text-left":bo.align==="center"?"persona-text-center":"persona-text-right";_.classList.add(xb)},open(){te()&&dt(!0,"api")},close(){te()&&dt(!1,"api")},toggle(){te()&&dt(!Q,"api")},reconnect(){V.reconnectNow()},clearChat(){zn=!1,V.clearMessages(),_o.clear(),uo();try{localStorage.removeItem(es),o.debug&&console.log(`[AgentWidget] Cleared default localStorage key: ${es}`)}catch(u){console.error("[AgentWidget] Failed to clear default localStorage:",u)}if(o.clearChatHistoryStorageKey&&o.clearChatHistoryStorageKey!==es)try{localStorage.removeItem(o.clearChatHistoryStorageKey),o.debug&&console.log(`[AgentWidget] Cleared custom localStorage key: ${o.clearChatHistoryStorageKey}`)}catch(u){console.error("[AgentWidget] Failed to clear custom localStorage:",u)}let a=new CustomEvent("persona:clear-chat",{detail:{timestamp:new Date().toISOString()}});window.dispatchEvent(a),b?.clear&&Pl(()=>b.clear(),"[AgentWidget] Failed to clear storage adapter:"),f={},D.syncFromMetadata(),Be?.clear(),Ue?.reset(),Me?.update()},setMessage(a){return!W||V.isStreaming()?!1:(!Q&&te()&&dt(!0,"system"),W.value=a,W.dispatchEvent(new Event("input",{bubbles:!0})),!0)},submitMessage(a){if(V.isStreaming())return!1;let u=a?.trim()||W.value.trim();return u?(!Q&&te()&&dt(!0,"system"),W.value="",W.style.height="auto",V.sendMessage(u),!0):!1},startVoiceRecognition(){return V.isStreaming()?!1:o.voiceRecognition?.provider?.type==="runtype"?(V.isVoiceActive()||(!Q&&te()&&dt(!0,"system"),Qe.manuallyDeactivated=!1,Rn(),V.toggleVoice().then(()=>{Qe.active=V.isVoiceActive(),Kn("user"),V.isVoiceActive()&&wr()})),!0):Nn?!0:Qp()?(!Q&&te()&&dt(!0,"system"),Qe.manuallyDeactivated=!1,Rn(),Fi("user"),!0):!1},stopVoiceRecognition(){return o.voiceRecognition?.provider?.type==="runtype"?V.isVoiceActive()?(V.toggleVoice().then(()=>{Qe.active=!1,Qe.manuallyDeactivated=!0,Rn(),Kn("user"),Qn()}),!0):!1:Nn?(Qe.manuallyDeactivated=!0,Rn(),mo("user"),!0):!1},injectMessage(a){return!Q&&te()&&dt(!0,"system"),V.injectMessage(a)},injectAssistantMessage(a){!Q&&te()&&dt(!0,"system");let u=V.injectAssistantMessage(a);return se&&(se=!1,J&&(clearTimeout(J),J=null),setTimeout(()=>{V&&!V.isStreaming()&&V.continueConversation()},100)),u},injectUserMessage(a){return!Q&&te()&&dt(!0,"system"),V.injectUserMessage(a)},injectSystemMessage(a){return!Q&&te()&&dt(!0,"system"),V.injectSystemMessage(a)},injectMessageBatch(a){return!Q&&te()&&dt(!0,"system"),V.injectMessageBatch(a)},injectComponentDirective(a){return!Q&&te()&&dt(!0,"system"),V.injectComponentDirective(a)},injectTestMessage(a){!Q&&te()&&dt(!0,"system"),V.injectTestEvent(a)},async connectStream(a,u){return V.connectStream(a,u)},__pushEventStreamEvent(a){Be&&(Ue?.processEvent(a.type,a.payload),Be.push({id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:a.type,timestamp:Date.now(),payload:JSON.stringify(a.payload)}))},showEventStream(){!me||!Be||hl()},hideEventStream(){Ee&&is()},isEventStreamVisible(){return Ee},showArtifacts(){nn(o)&&(zn=!1,dr=!0,Un(),Je?.setMobileOpen(!0))},hideArtifacts(){nn(o)&&(zn=!0,Un())},upsertArtifact(a){return nn(o)?(xo(o.features?.artifacts,{artifactType:a.artifactType,...a.artifactType==="markdown"&&a.file?{file:a.file}:{},...a.presentation?{presentation:a.presentation}:{}})==="panel"&&(zn=!1,dr=!0),V.upsertArtifact(a)):null},selectArtifact(a){nn(o)&&V.selectArtifact(a)},clearArtifacts(){nn(o)&&V.clearArtifacts()},getArtifacts(){return V?.getArtifacts()??[]},getSelectedArtifactId(){return V?.getSelectedArtifactId()??null},focusInput(){return z&&!Q&&!K()||!W?!1:(W.focus(),!0)},async resolveApproval(a,u,m){let A=V.getMessages().find(P=>P.variant==="approval"&&P.approval?.id===a);if(!A?.approval)throw new Error(`Approval not found: ${a}`);if(A.approval.toolType==="webmcp"){V.resolveWebMcpApproval(A.id,u);return}return V.resolveApproval(A.approval,u,m)},setFollowUpSuggestions(a){Eh(a)},clearFollowUpSuggestions(){xp()},getMessages(){return V.getMessages()},getStatus(){return V.getStatus()},getPersistentMetadata(){return{...f}},updatePersistentMetadata(a){S(a)},on(a,u){return d.on(a,u)},off(a,u){d.off(a,u)},isOpen(){return te()&&Q},isVoiceActive(){return Qe.active},toggleReadAloud(a){V.toggleReadAloud(a)},stopReadAloud(){V.stopSpeaking()},getReadAloudState(a){return V.getReadAloudState(a)},onReadAloudChange(a){return V.onReadAloudChange(a)},getState(){return{open:te()&&Q,launcherEnabled:z,voiceActive:Qe.active,streaming:V.isStreaming()}},showCSATFeedback(a){!Q&&te()&&dt(!0,"system");let u=Ae.querySelector(".persona-feedback-container");u&&u.remove();let m=eh({onSubmit:async(x,A)=>{V.isClientTokenMode()&&await V.submitCSATFeedback(x,A),a?.onSubmit?.(x,A)},onDismiss:a?.onDismiss,...a});Ae.appendChild(m),m.scrollIntoView({behavior:"smooth",block:"end"})},showNPSFeedback(a){!Q&&te()&&dt(!0,"system");let u=Ae.querySelector(".persona-feedback-container");u&&u.remove();let m=th({onSubmit:async(x,A)=>{V.isClientTokenMode()&&await V.submitNPSFeedback(x,A),a?.onSubmit?.(x,A)},onDismiss:a?.onDismiss,...a});Ae.appendChild(m),m.scrollIntoView({behavior:"smooth",block:"end"})},async submitCSATFeedback(a,u){return V.submitCSATFeedback(a,u)},async submitNPSFeedback(a,u){return V.submitNPSFeedback(a,u)},destroy(){ql(),Ko!=null&&(clearInterval(Ko),Ko=null),Fe.forEach(a=>a()),Pe.remove(),ot?.remove(),Lt?.destroy(),en?.remove(),No&&fe.removeEventListener("click",No)}};if(((n?.debugTools??!1)||!!o.debug)&&typeof window<"u"){let a=window.AgentWidgetBrowser,u={controller:Rt,getMessages:Rt.getMessages,getStatus:Rt.getStatus,getMetadata:Rt.getPersistentMetadata,updateMetadata:Rt.updatePersistentMetadata,clearHistory:()=>Rt.clearChat(),setVoiceActive:m=>m?Rt.startVoiceRecognition():Rt.stopVoiceRecognition()};window.AgentWidgetBrowser=u,Fe.push(()=>{window.AgentWidgetBrowser===u&&(window.AgentWidgetBrowser=a)})}if(typeof window<"u"){let a=t.getAttribute("data-persona-instance")||t.id||"persona-"+Math.random().toString(36).slice(2,8),u=j=>{let X=j.detail;(!X?.instanceId||X.instanceId===a)&&Rt.focusInput()};if(window.addEventListener("persona:focusInput",u),Fe.push(()=>{window.removeEventListener("persona:focusInput",u)}),me){let j=re=>{let he=re.detail;(!he?.instanceId||he.instanceId===a)&&Rt.showEventStream()},X=re=>{let he=re.detail;(!he?.instanceId||he.instanceId===a)&&Rt.hideEventStream()};window.addEventListener("persona:showEventStream",j),window.addEventListener("persona:hideEventStream",X),Fe.push(()=>{window.removeEventListener("persona:showEventStream",j),window.removeEventListener("persona:hideEventStream",X)})}let m=j=>{let X=j.detail;(!X?.instanceId||X.instanceId===a)&&Rt.showArtifacts()},x=j=>{let X=j.detail;(!X?.instanceId||X.instanceId===a)&&Rt.hideArtifacts()},A=j=>{let X=j.detail;X?.instanceId&&X.instanceId!==a||X?.artifact&&Rt.upsertArtifact(X.artifact)},P=j=>{let X=j.detail;X?.instanceId&&X.instanceId!==a||typeof X?.id=="string"&&Rt.selectArtifact(X.id)},G=j=>{let X=j.detail;(!X?.instanceId||X.instanceId===a)&&Rt.clearArtifacts()};window.addEventListener("persona:showArtifacts",m),window.addEventListener("persona:hideArtifacts",x),window.addEventListener("persona:upsertArtifact",A),window.addEventListener("persona:selectArtifact",P),window.addEventListener("persona:clearArtifacts",G),Fe.push(()=>{window.removeEventListener("persona:showArtifacts",m),window.removeEventListener("persona:hideArtifacts",x),window.removeEventListener("persona:upsertArtifact",A),window.removeEventListener("persona:selectArtifact",P),window.removeEventListener("persona:clearArtifacts",G)})}let vn=hC(o.persistState);if(vn&&te()){let a=bC(vn.storage),u=`${vn.keyPrefix}widget-open`,m=`${vn.keyPrefix}widget-voice`,x=`${vn.keyPrefix}widget-voice-mode`;if(a){let A=vn.persist?.openState&&a.getItem(u)==="true",P=vn.persist?.voiceState&&a.getItem(m)==="true",G=vn.persist?.voiceState&&a.getItem(x)==="true";if(A&&(Lt?.setPanelOpen(!0,"auto"),setTimeout(()=>{Rt.open(),setTimeout(()=>{if(P||G)Rt.startVoiceRecognition();else if(vn.persist?.focusInput){let j=t.querySelector("textarea");j&&j.focus()}},100)},0)),vn.persist?.openState&&(d.on("widget:opened",()=>{a.setItem(u,"true")}),d.on("widget:closed",()=>{a.setItem(u,"false")})),vn.persist?.voiceState&&(d.on("voice:state",j=>{a.setItem(m,j.active?"true":"false")}),d.on("user:message",j=>{a.setItem(x,j.viaVoice?"true":"false")})),vn.clearOnChatClear){let j=()=>{a.removeItem(u),a.removeItem(m),a.removeItem(x)},X=()=>j();window.addEventListener("persona:clear-chat",X),Fe.push(()=>{window.removeEventListener("persona:clear-chat",X)})}}}if(C&&te()&&(Lt?.setPanelOpen(!0,"auto"),setTimeout(()=>{Rt.open()},0)),yr(),!kh){let a=Gi(()=>{V&&(Tl++,_o.clear(),ms(Ae,V.getMessages(),Y))});Fe.push(a)}return Rt};var ih=(t,e)=>{let n=t.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,e*parseFloat(r[1])/100):420},xC=(t,e)=>{if(e===!1){t.style.maxHeight="";return}t.style.maxHeight="100vh",t.style.maxHeight=e},wC=(t,e)=>{e===!1?(t.style.position="relative",t.style.top=""):(t.style.position="sticky",t.style.top="0")},CC=(t,e)=>{let n=t.parentElement;if(!n)return;let o=t.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."+(e.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 ${e.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.")},ah=(t,e)=>{let n=e?.launcher?.enabled??!0;t.className="persona-host",t.style.height=n?"":"100%",t.style.display=n?"":"flex",t.style.flexDirection=n?"":"column",t.style.flex=n?"":"1 1 auto",t.style.minHeight=n?"":"0",t.style.minWidth=n?"":"0"},Bd=t=>{t.style.position="",t.style.top="",t.style.bottom="",t.style.left="",t.style.right="",t.style.zIndex="",t.style.transform="",t.style.pointerEvents=""},lh=t=>{t.style.inset="",t.style.width="",t.style.height="",t.style.maxWidth="",t.style.maxHeight="",t.style.minWidth="",Bd(t)},Rd=t=>{t.style.transition=""},Wd=t=>{t.style.display="",t.style.flexDirection="",t.style.flex="",t.style.minHeight="",t.style.minWidth="",t.style.width="",t.style.height="",t.style.alignItems="",t.style.transition="",t.style.transform="",t.style.marginLeft=""},Hd=t=>{t.style.width="",t.style.maxWidth="",t.style.minWidth="",t.style.flex="1 1 auto"},gl=(t,e)=>{t.style.width="",t.style.minWidth="0",t.style.maxWidth="",t.style.boxSizing="",e.style.alignItems=""},AC=(t,e,n,o,r)=>{r?n.parentElement!==e&&(t.replaceChildren(),e.replaceChildren(n,o),t.appendChild(e)):n.parentElement===e&&(e.replaceChildren(),t.appendChild(n),t.appendChild(o))},SC=(t,e,n,o,r,s)=>{let i=s?e:t;r==="left"?i.firstElementChild!==o&&i.replaceChildren(o,n):i.lastElementChild!==o&&i.replaceChildren(n,o)},MC=t=>{let e=$r(t),n=e.components?.panel,o=(r,s)=>r==null||r===""?s:tn(e,r)??r;return{inset:o(n?.inset,Pa),canvasBackground:o(n?.canvasBackground,Ia)}},ch=(t,e,n,o)=>{if(!e){t.style.padding="",t.style.background="",t.style.boxSizing="";return}t.style.boxSizing="border-box",t.style.padding=n,t.style.background=o},TC=(t,e,n,o,r,s,i,l)=>{let p=An(s),c=p.reveal==="push",d=l!=null,g=l?.inset??"",b=l?.canvasBackground??"";AC(t,e,n,o,c),SC(t,e,n,o,p.side,c),t.dataset.personaHostLayout="docked",t.dataset.personaDockSide=p.side,t.dataset.personaDockOpen=i?"true":"false",t.style.width="100%",t.style.maxWidth="100%",t.style.minWidth="0",t.style.height="100%",t.style.minHeight="0",t.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 f=t.ownerDocument.defaultView,y=s?.launcher?.mobileFullscreen??!0,C=s?.launcher?.mobileBreakpoint??640,M=f!=null?f.innerWidth<=C:!1;if(y&&M&&i){t.dataset.personaDockMobileFullscreen="true",t.removeAttribute("data-persona-dock-reveal"),Wd(e),Rd(o),lh(o),Hd(n),gl(r,o),ch(o,!1,"",""),t.style.display="flex",t.style.flexDirection="column",t.style.alignItems="stretch",t.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??Ut),o.style.transform="none",o.style.transition="none",o.style.pointerEvents="auto",o.style.flex="none",c&&(e.style.display="flex",e.style.flexDirection="column",e.style.width="100%",e.style.height="100%",e.style.minHeight="0",e.style.minWidth="0",e.style.flex="1 1 auto",e.style.alignItems="stretch",e.style.transform="none",e.style.marginLeft="0",e.style.transition="none",n.style.flex="1 1 auto",n.style.width="100%",n.style.maxWidth="100%",n.style.minWidth="0");return}if(t.removeAttribute("data-persona-dock-mobile-fullscreen"),lh(o),xC(o,p.maxHeight),ch(o,d&&i,g,b),p.reveal==="overlay"){t.style.display="flex",t.style.flexDirection="row",t.style.alignItems="stretch",t.style.overflow="hidden",t.dataset.personaDockReveal="overlay",Wd(e),Rd(o),Hd(n),gl(r,o);let S=p.animate?"transform 180ms ease":"none",E=p.side==="right"?"translateX(100%)":"translateX(-100%)",L=i?"translateX(0)":E;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=p.width,o.style.maxWidth=p.width,o.style.minWidth=p.width,o.style.minHeight="0",o.style.overflow="hidden",o.style.transition=S,o.style.transform=L,o.style.pointerEvents=i?"auto":"none",o.style.zIndex="2",p.side==="right"?(o.style.right="0",o.style.left=""):(o.style.left="0",o.style.right="")}else if(p.reveal==="push"){t.style.display="flex",t.style.flexDirection="row",t.style.alignItems="stretch",t.style.overflow="hidden",t.dataset.personaDockReveal="push",Rd(o),Bd(o),gl(r,o);let S=ih(p.width,t.clientWidth),E=Math.max(0,t.clientWidth),L=p.animate?"margin-left 180ms ease":"none",D=p.side==="right"?i?-S:0:i?0:-S;e.style.display="flex",e.style.flexDirection="row",e.style.flex="0 0 auto",e.style.minHeight="0",e.style.minWidth="0",e.style.alignItems="stretch",e.style.height="100%",e.style.width=`${E+S}px`,e.style.transition=L,e.style.marginLeft=`${D}px`,e.style.transform="",n.style.flex="0 0 auto",n.style.flexGrow="0",n.style.flexShrink="0",n.style.width=`${E}px`,n.style.maxWidth=`${E}px`,n.style.minWidth=`${E}px`,o.style.display="flex",o.style.flexDirection="column",o.style.flex="0 0 auto",o.style.flexShrink="0",o.style.width=p.width,o.style.minWidth=p.width,o.style.maxWidth=p.width,o.style.position="relative",o.style.top="",o.style.overflow="hidden",o.style.transition="none",o.style.pointerEvents=i?"auto":"none"}else{t.style.display="flex",t.style.flexDirection="row",t.style.alignItems="stretch",t.style.overflow="",Wd(e),Bd(o),Hd(n),gl(r,o);let S=p.reveal==="emerge";S?t.dataset.personaDockReveal="emerge":t.removeAttribute("data-persona-dock-reveal");let E=i?p.width:"0px",L=p.animate?`width 180ms ease, min-width 180ms ease, max-width 180ms ease, flex-basis 180ms ease${d?", padding 180ms ease":""}`:"none",D=!i;if(o.style.display="flex",o.style.flexDirection="column",o.style.flex=`0 0 ${E}`,o.style.width=E,o.style.maxWidth=E,o.style.minWidth=E,o.style.minHeight="0",wC(o,p.maxHeight),o.style.overflow=S||D?"hidden":"visible",o.style.transition=L,S){o.style.alignItems=p.side==="right"?"flex-start":"flex-end";let z=d?`calc(${ih(p.width,t.clientWidth)}px - (2 * ${g}))`:p.width;r.style.width=z,r.style.minWidth=z,r.style.maxWidth=z,r.style.boxSizing="border-box"}}},EC=(t,e)=>{let n=t.ownerDocument.createElement("div");return ah(n,e),t.appendChild(n),{mode:"direct",host:n,shell:null,syncWidgetState:()=>{},updateConfig(o){ah(n,o)},destroy(){n.remove()}}},kC=(t,e)=>{let{ownerDocument:n}=t,o=t.parentElement;if(!o)throw new Error("Docked widget target must be attached to the DOM");let r=t.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=t.nextSibling,i=n.createElement("div"),l=n.createElement("div"),p=n.createElement("div"),c=n.createElement("aside"),d=n.createElement("div"),g=e?.launcher?.enabled??!0?e?.launcher?.autoExpand??!1:!0;l.dataset.personaDockRole="push-track",p.dataset.personaDockRole="content",c.dataset.personaDockRole="panel",d.dataset.personaDockRole="host",c.appendChild(d),o.insertBefore(i,t),p.appendChild(t);let b=null,f=()=>{b?.disconnect(),b=null},y=null,C=()=>{y=e?.launcher?.detachedPanel===!0?MC(e):null};C();let M=()=>{TC(i,l,p,c,d,e,g,y)},I=null,S=()=>{I?.(),I=null,!(e?.launcher?.detachedPanel!==!0||e?.colorScheme!=="auto")&&(I=Ra(()=>{C(),M()}))},E=()=>{f(),An(e).reveal==="push"&&(typeof ResizeObserver>"u"||(b=new ResizeObserver(()=>{M()}),b.observe(i)))},L=!1,D=()=>{M(),E(),g&&!L&&i.dataset.personaDockMobileFullscreen!=="true"&&(L=!0,CC(i,An(e)))},z=i.ownerDocument.defaultView,$=()=>{D()};return z?.addEventListener("resize",$),An(e).reveal==="push"?(l.appendChild(p),l.appendChild(c),i.appendChild(l)):(i.appendChild(p),i.appendChild(c)),D(),S(),{mode:"docked",host:d,shell:i,syncWidgetState(F){let B=F.launcherEnabled?F.open:!0;g!==B&&(g=B,D())},updateConfig(F){e=F,(e?.launcher?.enabled??!0)===!1&&(g=!0),C(),D(),S()},destroy(){z?.removeEventListener("resize",$),I?.(),I=null,f(),o.isConnected&&(s&&s.parentNode===o?o.insertBefore(t,s):o.appendChild(t)),i.remove()}}},dh=(t,e)=>Ot(e)?kC(t,e):EC(t,e);var hi={desktop:{w:1280,h:800},mobile:{w:390,h:844}},ph=.15,uh=1.5,Dd="persona-preview-shell-theme",LC={load:()=>null,save:()=>{},clear:()=>{}},PC=["How do I get started?","Pricing & plans","Talk to support"];function Od(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function IC(t){return t==="dark"?{pageBg:"linear-gradient(180deg, #0f172a 0%, #020617 100%)",chromeBg:"#111827",chromeBorder:"#1f2937",dot:"#475569",skeleton:"#334155",cardBg:"#1e293b",cardBorder:"rgba(148, 163, 184, 0.16)"}:{pageBg:"linear-gradient(180deg, #ffffff 0%, #f8fafc 100%)",chromeBg:"#ffffff",chromeBorder:"#e5e7eb",dot:"#cbd5e1",skeleton:"#e2e8f0",cardBg:"#e2e8f0",cardBorder:"rgba(148, 163, 184, 0.18)"}}function gh(t){let e=IC(t);return`* { box-sizing: border-box; }
|
|
314
314
|
html, body { margin: 0; padding: 0; height: 100%; overflow: hidden; }
|
|
315
315
|
html { color-scheme: ${t}; }
|
|
316
316
|
body { font-family: system-ui, sans-serif; background: ${e.pageBg}; }
|
|
@@ -334,7 +334,7 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
334
334
|
.preview-workspace-content-shell { position: relative; z-index: 1; flex: 1 1 auto; min-height: 100%; padding: 24px; }
|
|
335
335
|
.preview-workspace-row { display: flex; gap: 16px; margin-top: 20px; }
|
|
336
336
|
.preview-workspace-card { flex: 1; min-width: 0; height: 168px; border-radius: 18px; background: ${e.cardBg}; box-shadow: inset 0 0 0 1px ${e.cardBorder}; }
|
|
337
|
-
.preview-workspace-card.short { height: 96px; }`}function
|
|
337
|
+
.preview-workspace-card.short { height: 96px; }`}function fh(t,e){let n=t.contentDocument;if(!n?.documentElement)return;let o=n.getElementById(Dd);o||(o=n.createElement("style"),o.id=Dd,n.head.appendChild(o)),o.textContent=gh(e)}var RC=`
|
|
338
338
|
<div class="preview-iframe-mock" aria-hidden="true">
|
|
339
339
|
<div class="preview-iframe-chrome">
|
|
340
340
|
<span class="preview-iframe-dot"></span>
|
|
@@ -353,7 +353,7 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
353
353
|
<div class="preview-iframe-line body"></div>
|
|
354
354
|
<div class="preview-iframe-line body"></div>
|
|
355
355
|
</div>
|
|
356
|
-
</div>`,
|
|
356
|
+
</div>`,WC=`
|
|
357
357
|
<div class="preview-workspace-content-shell" aria-hidden="true">
|
|
358
358
|
<div class="preview-iframe-line hero"></div>
|
|
359
359
|
<div class="preview-iframe-line body"></div>
|
|
@@ -366,8 +366,8 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
366
366
|
<div class="preview-workspace-card short"></div>
|
|
367
367
|
<div class="preview-workspace-card short"></div>
|
|
368
368
|
</div>
|
|
369
|
-
</div>`;function
|
|
370
|
-
${
|
|
369
|
+
</div>`;function mh(t,e,n,o){let r=`
|
|
370
|
+
${RC}
|
|
371
371
|
<div style="position:fixed;inset:0;z-index:9999;"><div id="${t}" data-mount-id="${t}"></div></div>`,s=`
|
|
372
372
|
<div class="preview-workspace-shell">
|
|
373
373
|
<div class="preview-workspace-topbar">
|
|
@@ -379,7 +379,7 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
379
379
|
</div>
|
|
380
380
|
<div class="preview-workspace-body">
|
|
381
381
|
<div id="preview-content-${t}" class="preview-workspace-content" data-mount-id="${t}">
|
|
382
|
-
${
|
|
382
|
+
${WC}
|
|
383
383
|
</div>
|
|
384
384
|
</div>
|
|
385
385
|
</div>`;return`<!DOCTYPE html>
|
|
@@ -387,16 +387,16 @@ _Details: ${n.message}_`:o}var Cs=t=>({isError:!0,content:[{type:"text",text:t}]
|
|
|
387
387
|
<head>
|
|
388
388
|
<meta charset="UTF-8">
|
|
389
389
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
390
|
-
<link rel="stylesheet" href="${
|
|
391
|
-
<style id="${
|
|
390
|
+
<link rel="stylesheet" href="${Od(o)}">
|
|
391
|
+
<style id="${Dd}">${gh(e)}</style>
|
|
392
392
|
</head>
|
|
393
393
|
<body>
|
|
394
394
|
${n?s:r}
|
|
395
395
|
</body>
|
|
396
|
-
</html>`}var
|
|
397
|
-
${
|
|
396
|
+
</html>`}var HC=()=>[{id:"preview-adv-1",role:"user",content:"Can you create the product and gather the docs?",createdAt:new Date(Date.now()-18e4).toISOString()},{id:"preview-adv-2",role:"assistant",content:"",createdAt:new Date(Date.now()-15e4).toISOString(),streaming:!0,variant:"reasoning",reasoning:{id:"preview-reasoning",status:"streaming",chunks:["Now let me get the Persona embed documentation and builtin tools catalog."]}},{id:"preview-adv-3",role:"assistant",content:"",createdAt:new Date(Date.now()-12e4).toISOString(),streaming:!0,variant:"tool",toolCall:{id:"preview-tool-1",name:"Load tools",status:"running",chunks:["Loaded tools, used Runtype integration"]}},{id:"preview-adv-4",role:"assistant",content:"",createdAt:new Date(Date.now()-9e4).toISOString(),streaming:!0,variant:"tool",toolCall:{id:"preview-tool-2",name:"Get platform documentation",status:"running",chunks:["Get platform documentation"]}},{id:"preview-adv-5",role:"assistant",content:"I loaded the tools and fetched the docs. Next I can assemble the product details.",createdAt:new Date(Date.now()-3e4).toISOString()}],BC=t=>!!(t?.features?.toolCallDisplay?.activePreview||t?.features?.toolCallDisplay?.grouped||t?.features?.toolCallDisplay?.collapsedMode&&t.features.toolCallDisplay.collapsedMode!=="tool-call"||t?.features?.reasoningDisplay?.activePreview);function DC(t,e,n=[]){if(t==="follow-ups"){let o=Date.now();return[{id:"preview-follow-up-user",role:"user",content:"What can Persona help me build?",createdAt:new Date(o-12e4).toISOString()},{id:"preview-follow-up-assistant",role:"assistant",content:"Persona gives you a themeable streaming chat interface with flexible integrations and interaction patterns. Where would you like to go next?",createdAt:new Date(o-6e4).toISOString()},{id:"preview-follow-up-suggestions",role:"assistant",content:"",createdAt:new Date(o-59e3).toISOString(),streaming:!1,variant:"tool",toolCall:{id:"preview-follow-up-suggestions",name:"suggest_replies",status:"complete",args:{suggestions:[{id:"preview-implementation",label:"Show me an implementation",prompt:"Show me a practical implementation",description:"See a complete integration example",icon:"code-2",emphasis:"primary"},{id:"preview-theming",label:"Explore theming",prompt:"Tell me how theming works",description:"Customize colors, type, and component styles",icon:"palette"},{id:"preview-security",label:"Review security",prompt:"Explain the security model",description:"Learn about isolation and safe rendering",icon:"shield-check"},{id:"preview-support",label:"Talk to support",prompt:"Help me contact support",description:"Get help choosing the right approach",icon:"messages-square"}]},chunks:[]}},...n]}return t==="home"?[]:t==="minimized"?[{id:"preview-min-1",role:"assistant",content:"We are here whenever you are ready.",createdAt:new Date().toISOString()}]:t==="artifact"?[{id:"preview-art-1",role:"user",content:"Can you draft a quick overview of the project?",createdAt:new Date(Date.now()-12e4).toISOString()},{id:"preview-art-2",role:"assistant",content:"Here\u2019s a project overview document for you.",createdAt:new Date(Date.now()-6e4).toISOString()}]:t==="conversation"&&BC(e)?[...HC(),...n]:[{id:"preview-conv-1",role:"assistant",content:"Hello! How can I help you today?",createdAt:new Date(Date.now()-18e4).toISOString()},{id:"preview-conv-2",role:"user",content:"I want to customize the theme editor preview.",createdAt:new Date(Date.now()-12e4).toISOString()},{id:"preview-conv-3",role:"assistant",content:"Absolutely. Check out the [getting started guide](https://example.com) to see what\u2019s possible, then adjust colors and tokens to match your brand.",createdAt:new Date(Date.now()-6e4).toISOString()},...n]}function OC(t,e,n=[]){let o={...t.launcher,enabled:!0,autoExpand:e!=="minimized"},r={...t,launcher:o,suggestionChips:e==="home"?t.suggestionChips?.length?t.suggestionChips:PC:t.suggestionChips,initialMessages:DC(e,t,n),storageAdapter:LC};return e==="artifact"&&(r.features={...r.features,artifacts:{...r.features?.artifacts,enabled:!0}}),r}function NC(t,e){let n=t.theme?_r(t.theme,{validate:!1}):_r();return{...it,...t.config,theme:n,darkTheme:t.darkTheme,colorScheme:e??t.config?.colorScheme??"light"}}function ts(t,e){let n=t.scene??"conversation";return OC(NC(t,e),n,t.appendedMessages??[])}function hh(t){let e=t.compareMode??"off",n=t.shellMode??"light";if(e==="themes")return[{mountId:"preview-light",label:"Light",config:ts(t,"light"),shellMode:"light"},{mountId:"preview-dark",label:"Dark",config:ts(t,"dark"),shellMode:"dark"}];if(e==="baseline"&&(t.baselineConfig||t.baselineTheme)){let o={...t,config:t.baselineConfig??t.config,theme:t.baselineTheme??t.theme,darkTheme:t.baselineDarkTheme??t.darkTheme};return[{mountId:"preview-baseline",label:"Baseline",config:ts(o,n),shellMode:n},{mountId:"preview-current",label:"Current",config:ts(t,n),shellMode:n}]}return[{mountId:"preview-current",label:"Current",config:ts(t,n),shellMode:n}]}function bh(t,e){let n={...e},o=[],r=[],s=null,i=!1,l=1,p=1,c=0;function d(){return n.device??"desktop"}function g(){return n.zoom??l}function b(){let S=getComputedStyle(t),E=parseFloat(S.paddingLeft)+parseFloat(S.paddingRight),L=parseFloat(S.paddingTop)+parseFloat(S.paddingBottom),D=40,z=(n.compareMode??"off")!=="off",$=(t.clientWidth-E-D)/(z?2:1),F=t.clientHeight-L-D;if($<=0||F<=0)return 1;let B=hi[d()]??hi.desktop;return Math.min($/B.w,F/B.h,1)}function f(){l=b();let S=Math.max(ph,Math.min(uh,g()));p=S;let E=Array.from(t.querySelectorAll(".preview-iframe-wrapper"));for(let L of E){let D=L.dataset.device??"desktop",z=hi[D]??hi.desktop;L.style.width=`${z.w*S}px`,L.style.height=`${z.h*S}px`,D==="mobile"&&(L.style.borderRadius=`${32*S}px`);let $=L.querySelector("iframe");$&&($.style.width=`${z.w}px`,$.style.height=`${z.h}px`,$.style.transformOrigin="top left",$.style.transition="none",$.style.transform=`scale(${S})`)}n.onScaleChange?.(S)}function y(){n.onBeforeDestroy?.();for(let S of o)S.destroy();for(let S of r)S();o=[],r=[]}function C(){return Array.from(t.querySelectorAll("iframe[data-mount-id]"))}function M(){if(i)return;y();let S=++c,E=hh(n),L=d(),D=(n.compareMode??"off")!=="off",z=(n.scene??"conversation")==="minimized",$=n.widgetCssPath??"/widget-dist/widget.css",F=n.buildSrcdoc??mh,B=L==="mobile"?"preview-iframe-wrapper preview-iframe-wrapper-mobile":"preview-iframe-wrapper",H=se=>`<div class="${B}" data-mount-id="${se.mountId}" data-device="${L}" data-shell-mode="${se.shellMode}">
|
|
397
|
+
${D?`<div class="preview-frame-meta"><span class="preview-frame-label">${Od(se.label)}</span></div>`:""}
|
|
398
398
|
<iframe class="preview-iframe" sandbox="allow-scripts allow-same-origin" data-mount-id="${se.mountId}"></iframe>
|
|
399
|
-
</div>`,
|
|
399
|
+
</div>`,w=D?`<div class="preview-compare-grid">${E.map(se=>`<div class="preview-compare-cell">${H(se)}</div>`).join("")}</div>`:`<div class="preview-single">${H(E[0])}</div>`;n.morphContainer?n.morphContainer(t,w):t.innerHTML=w,f();let N=C(),K=0,te=N.length,Q=()=>{if(i||S!==c)return;for(let J of N){let oe=J.dataset.mountId;if(!oe||!J.contentDocument)continue;let Y=E.find(be=>be.mountId===oe);if(!Y)continue;let pe=()=>{},ne=Ot(Y.config),me=ne?(()=>{let be=J.contentDocument?.getElementById(`preview-content-${oe}`);if(!be)return null;let Te=dh(be,Y.config),ze=J.contentDocument.createElement("div");ze.id=oe,ze.style.height="100%",ze.style.display="flex",ze.style.flexDirection="column",ze.style.flex="1",ze.style.minHeight="0",Te.host.appendChild(ze);let Oe=()=>Te.syncWidgetState(ve.getState()),Ne=pe;return pe=()=>{Te.destroy(),Ne()},ze.__syncDock=Oe,ze.__hostLayout=Te,ze})():J.contentDocument.getElementById(oe);if(!me)continue;let ve=sh(me,Y.config);if(o.push(ve),ne&&me.__syncDock){let be=me.__syncDock,Te=ve.on("widget:opened",be),ze=ve.on("widget:closed",be),Oe=pe;pe=()=>{Te(),ze(),Oe()},be()}r.push(pe),z&&ve.close()}if((n.scene??"conversation")==="artifact"||n.config?.features?.artifacts?.enabled)for(let J of o)J.upsertArtifact({id:"preview-sample",artifactType:"markdown",title:"Sample Document",content:`# Sample Artifact
|
|
400
400
|
|
|
401
401
|
This is a preview of the artifact sidebar.
|
|
402
402
|
|
|
@@ -404,4 +404,4 @@ This is a preview of the artifact sidebar.
|
|
|
404
404
|
|
|
405
405
|
- Markdown rendering
|
|
406
406
|
- Document toolbar
|
|
407
|
-
- Resizable panes`,transcript:!1});n.onAfterMount?.({iframes:
|
|
407
|
+
- Resizable panes`,transcript:!1});n.onAfterMount?.({iframes:N,controllers:[...o]})};for(let se of N){let J=se.dataset.mountId;if(!J)continue;let oe=E.find(Y=>Y.mountId===J);oe&&(se.addEventListener("load",()=>{K++,K>=te&&Q()},{once:!0}),se.srcdoc=F(J,oe.shellMode,Ot(oe.config),$))}te===0&&Q()}function I(){if(i)return;let S=hh(n);if(o.length!==S.length){M();return}if(S.some(L=>{let D=t.querySelector(`.preview-iframe-wrapper[data-mount-id="${L.mountId}"]`);return!D||D.dataset.shellMode!==L.shellMode})){M();return}o.forEach((L,D)=>{L.update(S[D].config),(n.scene??"conversation")==="minimized"&&L.close()});for(let L of S){let D=t.querySelector(`iframe[data-mount-id="${L.mountId}"]`);D&&fh(D,L.shellMode)}n.onAfterUpdate?.({iframes:C(),controllers:[...o]})}return typeof ResizeObserver<"u"&&(s=new ResizeObserver(()=>{i||f()}),s.observe(t)),M(),{update(S){if(i)return;let E=S.device!==void 0&&S.device!==n.device||S.scene!==void 0&&S.scene!==n.scene||S.compareMode!==void 0&&S.compareMode!==n.compareMode||S.widgetCssPath!==void 0&&S.widgetCssPath!==n.widgetCssPath;n={...n,...S},E?M():I()},destroy(){i||(i=!0,y(),s?.disconnect(),t.innerHTML="")},getControllers(){return[...o]},fitToContainer(){i||(n={...n,zoom:void 0},f())},getIframes(){return C()},getScale(){return p},setZoom(S){i||(n={...n,zoom:S},f())}}}0&&(module.exports={createThemePreview});
|