@runtypelabs/persona 4.21.0 → 4.22.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/{approval-ui-RNNBR5R3.js → approval-ui-K7R5Q5OC.js} +1 -1
- package/dist/approval-ui.cjs +2 -2
- package/dist/approval-ui.d.cts +73 -2
- package/dist/approval-ui.d.ts +73 -2
- package/dist/approval-ui.js +2 -2
- package/dist/artifacts-ui-F4N6VMKF.js +7 -0
- package/dist/artifacts-ui.cjs +1 -1
- package/dist/artifacts-ui.d.cts +73 -2
- package/dist/artifacts-ui.d.ts +73 -2
- package/dist/artifacts-ui.js +1 -1
- package/dist/chunk-NQLDCJAP.js +4 -0
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.js +1 -1
- package/dist/context-mentions.d.cts +73 -2
- package/dist/context-mentions.d.ts +73 -2
- package/dist/event-stream-view-FKWDY3UB.js +1 -0
- package/dist/event-stream-view.cjs +1 -1
- package/dist/event-stream-view.d.cts +73 -2
- package/dist/event-stream-view.d.ts +73 -2
- package/dist/event-stream-view.js +1 -1
- package/dist/forms-ui.d.cts +73 -2
- package/dist/forms-ui.d.ts +73 -2
- package/dist/index.cjs +66 -66
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +136 -5
- package/dist/index.d.ts +136 -5
- package/dist/index.global.js +50 -50
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +67 -67
- package/dist/index.js.map +1 -1
- package/dist/launcher.global.js +2 -2
- package/dist/launcher.global.js.map +1 -1
- package/dist/session-reconnect.d.cts +73 -2
- package/dist/session-reconnect.d.ts +73 -2
- package/dist/smart-dom-reader.d.cts +73 -2
- package/dist/smart-dom-reader.d.ts +73 -2
- package/dist/theme-editor-preview.cjs +65 -65
- package/dist/theme-editor-preview.d.cts +73 -2
- package/dist/theme-editor-preview.d.ts +73 -2
- package/dist/theme-editor-preview.js +49 -49
- package/dist/theme-editor.cjs +4 -4
- package/dist/theme-editor.d.cts +73 -2
- package/dist/theme-editor.d.ts +73 -2
- package/dist/theme-editor.js +2 -2
- package/dist/theme-reference.cjs +1 -1
- package/dist/theme-reference.d.cts +65 -1
- package/dist/theme-reference.d.ts +65 -1
- package/dist/theme-reference.js +1 -1
- package/dist/webmcp-polyfill.js +1 -4
- package/dist/webmcp-runtime-JI7T4QYF.js +6 -0
- package/dist/webmcp-runtime.cjs +2 -2
- package/dist/webmcp-runtime.d.cts +34 -2
- package/dist/webmcp-runtime.d.ts +34 -2
- package/dist/webmcp-runtime.js +2 -2
- package/package.json +2 -2
- package/src/client-visitor-history.test.ts +131 -0
- package/src/components/artifact-preview.ts +5 -0
- package/src/components/event-stream-badge-theming.test.ts +159 -0
- package/src/components/event-stream-view.ts +50 -20
- package/src/generated/runtype-openapi-contract.ts +8 -0
- package/src/index-core.ts +2 -0
- package/src/runtime/init.registry.test.ts +56 -0
- package/src/runtime/init.ts +17 -0
- package/src/types/theme.ts +41 -1
- package/src/types.ts +38 -1
- package/src/ui.reasoning-display.test.ts +136 -2
- package/src/ui.ts +69 -21
- package/src/utils/__snapshots__/tokens-parity.test.ts.snap +1740 -0
- package/src/utils/formatting.ts +22 -0
- package/src/utils/theme.ts +16 -0
- package/src/utils/tokens.ts +59 -0
- package/src/webmcp-bridge.test.ts +132 -23
- package/src/webmcp-bridge.ts +26 -2
- package/src/webmcp-runtime-entry.ts +71 -11
- package/dist/artifacts-ui-J6AKUGTS.js +0 -7
- package/dist/chunk-HBE7LFNT.js +0 -4
- package/dist/event-stream-view-73NWKWVQ.js +0 -1
- package/dist/webmcp-runtime-P3CHZRHF.js +0 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Te=Object.defineProperty;var nt=Object.getOwnPropertyDescriptor;var dt=Object.getOwnPropertyNames;var pt=Object.prototype.hasOwnProperty;var it=(t,e)=>{for(var r in e)Te(t,r,{get:e[r],enumerable:!0})},mt=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of dt(e))!pt.call(t,a)&&a!==r&&Te(t,a,{get:()=>e[a],enumerable:!(o=nt(e,a))||o.enumerable});return t};var xt=t=>mt(Te({},"__esModule",{value:!0}),t);var Nt={};it(Nt,{EventStreamBuffer:()=>pe,EventStreamStore:()=>ie,ThroughputTracker:()=>me,createEventStreamView:()=>Le});module.exports=xt(Nt);var u=(t,e)=>{let r=document.createElement(t);return e&&(r.className=e),r};var he=[["path",{d:"M20 6 9 17l-5-5"}]];var Ae=[["path",{d:"m6 9 6 6 6-6"}]];var Pe=[["path",{d:"m9 18 6-6-6-6"}]];var ge=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4"}],["path",{d:"M21 14H11"}],["path",{d:"m15 10-4 4 4 4"}]];var Ce=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"}]];var Me=[["path",{d:"m21 21-4.34-4.34"}],["circle",{cx:"11",cy:"11",r:"8"}]];var Se=[["path",{d:"M18 6 6 18"}],["path",{d:"m6 6 12 12"}]];var I=(t,e=24,r="currentColor",o=2)=>{if(!Array.isArray(t))return null;let a=document.createElementNS("http://www.w3.org/2000/svg","svg");return a.setAttribute("width",String(e)),a.setAttribute("height",String(e)),a.setAttribute("viewBox","0 0 24 24"),a.setAttribute("fill","none"),a.setAttribute("stroke",r),a.setAttribute("stroke-width",String(o)),a.setAttribute("stroke-linecap","round"),a.setAttribute("stroke-linejoin","round"),a.setAttribute("aria-hidden","true"),t.forEach(f=>{if(!Array.isArray(f)||f.length<2)return;let n=f[0],p=f[1];if(!p)return;let x=document.createElementNS("http://www.w3.org/2000/svg",n);Object.entries(p).forEach(([C,k])=>{C!=="stroke"&&x.setAttribute(C,String(k))}),a.appendChild(x)}),a};function $e(t=!0){let e=t;return{isFollowing:()=>e,pause:()=>e?(e=!1,!0):!1,resume:()=>e?!1:(e=!0,!0)}}function ct(t){return Math.max(0,t.scrollHeight-t.clientHeight)}function Je(t,e){return ct(t)-t.scrollTop<=e}function je(t){let{following:e,currentScrollTop:r,lastScrollTop:o,nearBottom:a,userScrollThreshold:f,isAutoScrolling:n=!1,pauseOnUpwardScroll:p=!1,pauseWhenAwayFromBottom:x=!0,resumeRequiresDownwardScroll:C=!1}=t,k=r-o;return n||Math.abs(k)<f?{action:"none",delta:k,nextLastScrollTop:r}:!e&&a&&(!C||k>0)?{action:"resume",delta:k,nextLastScrollTop:r}:e&&p&&k<0?{action:"pause",delta:k,nextLastScrollTop:r}:e&&x&&!a?{action:"pause",delta:k,nextLastScrollTop:r}:{action:"none",delta:k,nextLastScrollTop:r}}function Qe(t){let{following:e,deltaY:r,nearBottom:o=!1,resumeWhenNearBottom:a=!1}=t;return e&&r<0?"pause":!e&&a&&r>0&&o?"resume":"none"}function te(t,e){e&&e.split(/\s+/).forEach(r=>r&&t.classList.add(r))}var ht={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)"}},gt={bg:"var(--persona-palette-colors-gray-100, #f3f4f6)",text:"var(--persona-palette-colors-gray-600, #4b5563)"},Ct=["flowName","stepName","reasoningText","text","name","tool","toolName"],St=100;function wt(t,e){let r={...ht,...e};if(r[t])return r[t];for(let o of Object.keys(r))if(o.endsWith("_")&&t.startsWith(o))return r[o];return gt}function yt(t,e){return`+${((t-e)/1e3).toFixed(3)}s`}function bt(t){let e=new Date(t),r=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),a=String(e.getSeconds()).padStart(2,"0"),f=String(e.getMilliseconds()).padStart(3,"0");return`${r}:${o}:${a}.${f}`}function kt(t,e){try{let r=JSON.parse(t);if(typeof r!="object"||r===null)return null;for(let o of e){let a=o.split("."),f=r;for(let n of a)if(f&&typeof f=="object"&&f!==null)f=f[n];else{f=void 0;break}if(typeof f=="string"&&f.trim())return f.trim()}}catch{}return null}function vt(t){return navigator.clipboard?.writeText?navigator.clipboard.writeText(t):new Promise(e=>{let r=document.createElement("textarea");r.value=t,r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r),e()})}function Tt(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 At(t){return t.tokensPerSecond===void 0||!Number.isFinite(t.tokensPerSecond)?"-- tok/s":`${t.tokensPerSecond.toFixed(1)} tok/s`}function Pt(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 Mt(t,e,r){let o,a;try{a=JSON.parse(t.payload),o=JSON.stringify(a,null,2)}catch{a=t.payload,o=t.payload}let f=e.find(p=>p.renderEventStreamPayload);if(f?.renderEventStreamPayload&&r){let p=f.renderEventStreamPayload({event:t,config:r,defaultRenderer:()=>n(),parsedPayload:a});if(p)return p}return n();function n(){let p=u("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]"),x=u("pre","persona-m-0 persona-whitespace-pre-wrap persona-break-all persona-text-[11px] persona-text-persona-secondary persona-font-mono");return x.textContent=o,p.appendChild(x),p}}function Be(t,e,r,o,a,f,n,p){let x=a.has(t.id),C=u("div","persona-border-b persona-border-persona-divider persona-text-xs");te(C,o.classNames?.eventRow);let k=n.find(B=>B.renderEventStreamRow);if(k?.renderEventStreamRow&&p){let B=k.renderEventStreamRow({event:t,index:e,config:p,defaultRenderer:()=>W(),isExpanded:x,onToggleExpand:()=>f(t.id)});if(B)return C.appendChild(B),C}return C.appendChild(W()),C;function W(){let B=u("div",""),H=u("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");H.setAttribute("data-event-id",t.id);let re=u("span","persona-flex-shrink-0 persona-text-persona-muted persona-w-4 persona-text-center persona-flex persona-items-center persona-justify-center"),L=I(x?Ae:Pe,"14px","currentColor",2);L&&re.appendChild(L);let O=u("span","persona-text-[11px] persona-text-persona-muted persona-whitespace-nowrap persona-flex-shrink-0 persona-font-mono persona-w-[70px]"),y=o.timestampFormat??"relative";O.textContent=y==="relative"?yt(t.timestamp,r):bt(t.timestamp);let E=null;o.showSequenceNumbers!==!1&&(E=u("span","persona-text-[11px] persona-text-persona-muted persona-font-mono persona-flex-shrink-0 persona-w-[28px] persona-text-right"),E.textContent=String(e+1));let M=wt(t.type,o.badgeColors),R=u("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");R.style.backgroundColor=M.bg,R.style.color=M.text,R.style.borderColor=M.text+"50",R.textContent=t.type;let oe=o.descriptionFields??Ct,Q=kt(t.payload,oe),V=null;Q&&(V=u("span","persona-text-[11px] persona-text-persona-secondary persona-truncate persona-min-w-0"),V.textContent=Q);let v=u("div","persona-flex-1 persona-min-w-0"),T=u("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"),ae=I(Ce,"12px","currentColor",1.5);return ae&&T.appendChild(ae),T.addEventListener("click",async Y=>{Y.stopPropagation(),await vt(Tt(t)),T.innerHTML="";let q=I(he,"12px","currentColor",1.5);q&&T.appendChild(q),setTimeout(()=>{T.innerHTML="";let ee=I(Ce,"12px","currentColor",1.5);ee&&T.appendChild(ee)},1500)}),H.appendChild(re),H.appendChild(O),E&&H.appendChild(E),H.appendChild(R),V&&H.appendChild(V),H.appendChild(v),H.appendChild(T),B.appendChild(H),x&&B.appendChild(Mt(t,n,p)),B}}function Le(t){let{buffer:e,getFullHistory:r,onClose:o,config:a,plugins:f=[],getThroughput:n}=t,p=t.renderIconByName??(()=>null),x=a?.features?.scrollToBottom,C=x?.enabled!==!1,k=x?.iconName??"arrow-down",W=x?.label??"",B=a?.features?.eventStream??{},H=f.find(L=>L.renderEventStreamView);if(H?.renderEventStreamView&&a){let L=H.renderEventStreamView({config:a,events:e.getAll(),defaultRenderer:()=>re().element,onClose:o});if(L)return{element:L,update:()=>{},destroy:()=>{}}}return re();function re(){let L=B.classNames,O=u("div","persona-event-stream-view persona-flex persona-flex-col persona-flex-1 persona-min-h-0");te(O,L?.panel);let y=[],E="",M="",R=null,oe=[],Q={},V=0,v=$e(),T=0,ae=0,Y=!1,q=null,ee=!1,Re=0,Z=new Set,U=new Map,Fe="",De="",J=null,S,g,w,F,fe=null,N=null,G=null;function ye(){let s=u("div","persona-event-toolbar persona-relative persona-flex persona-flex-col persona-flex-shrink-0"),l=u("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(te(l,L?.headerBar),n){N=u("div","persona-relative persona-flex persona-items-center persona-gap-1.5 persona-whitespace-nowrap"),N.style.cursor="help",fe=u("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"),fe.textContent="-- tok/s",G=u("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"),G.style.display="none",G.style.pointerEvents="none";let K=N,de=G,lt=()=>{if(!de.textContent)return;let Ke=K.getBoundingClientRect(),Ze=s.getBoundingClientRect();de.style.left=`${Ke.left-Ze.left}px`,de.style.top=`${Ke.bottom-Ze.top+4}px`,de.style.display="block"},ut=()=>{de.style.display="none"};N.addEventListener("mouseenter",lt),N.addEventListener("mouseleave",ut),N.appendChild(fe)}let d=u("div","persona-flex-1");S=u("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 b=u("option","");b.value="",b.textContent="All events (0)",S.appendChild(b),g=u("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"),g.type="button",g.title="Copy All";let _=I(ge,"12px","currentColor",1.5);_&&g.appendChild(_);let X=u("span","persona-event-copy-all persona-text-xs");X.textContent="Copy All",g.appendChild(X),N&&l.appendChild(N),l.appendChild(d),l.appendChild(S),l.appendChild(g);let i=u("div","persona-relative persona-px-4 persona-py-2.5 persona-border-b persona-border-persona-divider persona-bg-persona-surface");te(i,L?.searchBar);let m=I(Me,"14px","var(--persona-muted, #9ca3af)",1.5),h=u("span","persona-absolute persona-left-6 persona-top-1/2 persona--translate-y-1/2 persona-pointer-events-none persona-flex persona-items-center");m&&h.appendChild(m),w=u("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"),te(w,L?.searchInput),w.type="text",w.placeholder="Search event payloads...",F=u("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"),F.type="button",F.style.display="none";let P=I(Se,"12px","currentColor",2);return P&&F.appendChild(P),i.appendChild(h),i.appendChild(w),i.appendChild(F),s.appendChild(l),s.appendChild(i),G&&s.appendChild(G),s}let be,He=f.find(s=>s.renderEventStreamToolbar);He?.renderEventStreamToolbar&&a?be=He.renderEventStreamToolbar({config:a,defaultRenderer:()=>ye(),eventCount:e.getSize(),filteredCount:0,onFilterChange:l=>{E=l,ne(),$()},onSearchChange:l=>{M=l,ne(),$()}})??ye():be=ye();let se=u("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");se.style.display="none";function rt(){if(!n||!fe||!N)return;let s=n(),l=At(s);fe.textContent=l;let d=Pt(s);G&&(G.textContent=d,d||(G.style.display="none")),N.setAttribute("aria-label",d?`Throughput: ${l}, ${d}`:`Throughput: ${l}`)}let xe=u("div","persona-flex-1 persona-min-h-0 persona-relative"),c=u("div","persona-event-stream-list persona-overflow-y-auto persona-min-h-0");c.style.height="100%";let A=u("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");te(A,L?.scrollIndicator),A.style.display="none",A.setAttribute("data-persona-scroll-to-bottom-has-label",W?"true":"false");let Oe=p(k,"14px","currentColor",2);Oe&&A.appendChild(Oe);let le=u("span","");le.textContent=W,A.appendChild(le);let ue=u("div","persona-flex persona-items-center persona-justify-center persona-h-full persona-text-sm persona-text-persona-muted");ue.style.display="none",xe.appendChild(c),xe.appendChild(ue),xe.appendChild(A),O.setAttribute("tabindex","0"),O.appendChild(be),O.appendChild(se),O.appendChild(xe);function ot(){let s=e.getAll(),l={};for(let i of s)l[i.type]=(l[i.type]||0)+1;let d=Object.keys(l).sort(),b=d.length!==oe.length||!d.every((i,m)=>i===oe[m]),z=!b&&d.some(i=>l[i]!==Q[i]),_=s.length!==Object.values(Q).reduce((i,m)=>i+m,0);if(!b&&!z&&!_||(oe=d,Q=l,!S))return;let X=S.value;if(S.options[0].textContent=`All events (${s.length})`,b){for(;S.options.length>1;)S.remove(1);for(let i of d){let m=u("option","");m.value=i,m.textContent=`${i} (${l[i]||0})`,S.appendChild(m)}X&&d.includes(X)?S.value=X:X&&(S.value="",E="")}else for(let i=1;i<S.options.length;i++){let m=S.options[i];m.textContent=`${m.value} (${l[m.value]||0})`}}function at(){let s=e.getAll();if(E&&(s=s.filter(l=>l.type===E)),M){let l=M.toLowerCase();s=s.filter(d=>d.type.toLowerCase().includes(l)||d.payload.toLowerCase().includes(l))}return s}function ke(){return E!==""||M!==""}function ne(){V=0,T=0,v.resume(),A.style.display="none"}function ce(s){Z.has(s)?Z.delete(s):Z.add(s),J=s;let l=c.scrollTop,d=v.isFollowing();ee=!0,v.pause(),$(),c.scrollTop=l,d&&v.resume(),ee=!1}function qe(){return Je(c,50)}function $(){ae=Date.now(),Y=!1,rt(),ot();let s=e.getEvictedCount();s>0?(se.textContent=`${s.toLocaleString()} older events truncated`,se.style.display=""):se.style.display="none",y=at();let l=y.length,d=e.getSize()>0;l===0&&d&&ke()?(ue.textContent=M?`No events matching '${M}'`:"No events matching filter",ue.style.display="",c.style.display="none"):(ue.style.display="none",c.style.display=""),g&&(g.title=ke()?`Copy Filtered (${l})`:"Copy All"),C&&!v.isFollowing()&&l>V&&(T+=l-V,le.textContent=W?`${W}${T>0?` (${T})`:""}`:"",A.style.display=""),V=l;let b=e.getAll(),z=b.length>0?b[0].timestamp:0,_=new Set(y.map(m=>m.id));for(let m of Z)_.has(m)||Z.delete(m);let X=E!==Fe||M!==De,i=U.size===0&&y.length>0;if(X||i||y.length===0){c.innerHTML="",U.clear();let m=document.createDocumentFragment();for(let h=0;h<y.length;h++){let P=Be(y[h],h,z,B,Z,ce,f,a);U.set(y[h].id,P),m.appendChild(P)}c.appendChild(m),Fe=E,De=M,J=null}else{if(J!==null){let h=U.get(J);if(h&&h.parentNode===c){let P=y.findIndex(K=>K.id===J);if(P>=0){let K=Be(y[P],P,z,B,Z,ce,f,a);c.insertBefore(K,h),h.remove(),U.set(J,K)}}J=null}let m=new Set(y.map(h=>h.id));for(let[h,P]of U)m.has(h)||(P.remove(),U.delete(h));for(let h=0;h<y.length;h++){let P=y[h];if(!U.has(P.id)){let K=Be(P,h,z,B,Z,ce,f,a);U.set(P.id,K),c.appendChild(K)}}}v.isFollowing()&&(c.scrollTop=c.scrollHeight)}function ft(){if(Date.now()-ae>=St){q!==null&&(cancelAnimationFrame(q),q=null),$();return}Y||(Y=!0,q=requestAnimationFrame(()=>{q=null,$()}))}let Ue=(s,l)=>{if(!g)return;g.innerHTML="";let d=I(s,"12px","currentColor",1.5);d&&g.appendChild(d);let b=u("span","persona-text-xs");b.textContent="Copy All",g.appendChild(b),setTimeout(()=>{g.innerHTML="";let z=I(ge,"12px","currentColor",1.5);z&&g.appendChild(z);let _=u("span","persona-text-xs");_.textContent="Copy All",g.appendChild(_),g.disabled=!1},l)},Ne=async()=>{if(g){g.disabled=!0;try{let s;ke()?s=y:r?(s=await r(),s.length===0&&(s=e.getAll())):s=e.getAll();let l=s.map(d=>{try{return JSON.parse(d.payload)}catch{return d.payload}});await navigator.clipboard.writeText(JSON.stringify(l,null,2)),Ue(he,1500)}catch{Ue(Se,1500)}}},Ie=()=>{S&&(E=S.value,ne(),$())},We=()=>{!w||!F||(F.style.display=w.value?"":"none",R&&clearTimeout(R),R=setTimeout(()=>{M=w.value,ne(),$()},150))},ve=()=>{!w||!F||(w.value="",M="",F.style.display="none",R&&clearTimeout(R),ne(),$())},Ve=()=>{if(ee)return;let s=c.scrollTop,{action:l,nextLastScrollTop:d}=je({following:v.isFollowing(),currentScrollTop:s,lastScrollTop:Re,nearBottom:qe(),userScrollThreshold:1,resumeRequiresDownwardScroll:!0});Re=d,l==="resume"?(v.resume(),T=0,A.style.display="none"):l==="pause"&&(v.pause(),C&&(le.textContent=W,A.style.display=""))},Ge=s=>{let l=Qe({following:v.isFollowing(),deltaY:s.deltaY,nearBottom:qe(),resumeWhenNearBottom:!0});l==="pause"?(v.pause(),C&&(le.textContent=W,A.style.display="")):l==="resume"&&(v.resume(),T=0,A.style.display="none")},ze=()=>{C&&(c.scrollTop=c.scrollHeight,v.resume(),T=0,A.style.display="none")},_e=s=>{let l=s.target;if(!l||l.closest("button"))return;let d=l.closest("[data-event-id]");if(!d)return;let b=d.getAttribute("data-event-id");b&&ce(b)},Xe=s=>{if((s.metaKey||s.ctrlKey)&&s.key==="f"){s.preventDefault(),w?.focus(),w?.select();return}s.key==="Escape"&&(w&&document.activeElement===w?(ve(),w.blur(),O.focus()):o&&o())};g&&g.addEventListener("click",Ne),S&&S.addEventListener("change",Ie),w&&w.addEventListener("input",We),F&&F.addEventListener("click",ve),c.addEventListener("scroll",Ve),c.addEventListener("wheel",Ge,{passive:!0}),c.addEventListener("click",_e),A.addEventListener("click",ze),O.addEventListener("keydown",Xe);function st(){R&&clearTimeout(R),q!==null&&(cancelAnimationFrame(q),q=null),Y=!1,U.clear(),g&&g.removeEventListener("click",Ne),S&&S.removeEventListener("change",Ie),w&&w.removeEventListener("input",We),F&&F.removeEventListener("click",ve),c.removeEventListener("scroll",Ve),c.removeEventListener("wheel",Ge),c.removeEventListener("click",_e),A.removeEventListener("click",ze),O.removeEventListener("keydown",Xe)}return{element:O,update:ft,destroy:st}}}var pe=class{constructor(e=2e3,r=null){this.head=0;this.count=0;this.totalCaptured=0;this.eventTypesSet=new Set;this.maxSize=e,this.buffer=new Array(e),this.store=r}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 r=e.length>this.maxSize?e.slice(e.length-this.maxSize):e;for(let o of r)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,r.length}getAllFromStore(){return this.store?this.store.getAll():Promise.resolve(this.getAll())}getRecent(e){let r=this.getAll();return e>=r.length?r:r.slice(r.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 ie=class{constructor(e="persona-event-stream",r="events"){this.db=null;this.pendingWrites=[];this.flushScheduled=!1;this.isDestroyed=!1;this.dbName=e,this.storeName=r}open(){return new Promise((e,r)=>{try{let o=indexedDB.open(this.dbName,1);o.onupgradeneeded=()=>{let a=o.result;a.objectStoreNames.contains(this.storeName)||a.createObjectStore(this.storeName,{keyPath:"id"}).createIndex("timestamp","timestamp",{unique:!1})},o.onsuccess=()=>{this.db=o.result,e()},o.onerror=()=>{r(o.error)}}catch(o){r(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 a of e)o.put(a)}catch{}}getAll(){return new Promise((e,r)=>{if(!this.db){e([]);return}try{let n=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).index("timestamp").getAll();n.onsuccess=()=>{e(n.result)},n.onerror=()=>{r(n.error)}}catch(o){r(o)}})}getCount(){return new Promise((e,r)=>{if(!this.db){e(0);return}try{let f=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).count();f.onsuccess=()=>{e(f.result)},f.onerror=()=>{r(f.error)}}catch(o){r(o)}})}clear(){return new Promise((e,r)=>{if(!this.db){e();return}this.pendingWrites=[];try{let f=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).clear();f.onsuccess=()=>{e()},f.onerror=()=>{r(f.error)}}catch(o){r(o)}})}close(){this.db&&(this.db.close(),this.db=null)}destroy(){return this.isDestroyed=!0,this.pendingWrites=[],this.close(),new Promise((e,r)=>{try{let o=indexedDB.deleteDatabase(this.dbName);o.onsuccess=()=>{e()},o.onerror=()=>{r(o.error)}}catch(o){r(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 a of e)o.put(a)}catch{}}};var Bt=new Set(["flow_start","flow_run_start","agent_start","dispatch_start","run_start"]),Lt=new Set(["step_start","execution_start"]),Et=new Set(["step_delta","step_chunk","chunk","agent_turn_delta"]),Rt=new Set(["step_complete","agent_turn_complete"]),Ft=new Set(["flow_complete","agent_complete"]),Ye=new Set(["step_error","flow_error","agent_error","dispatch_error","error"]),tt=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),D=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,j=(t,e)=>{let r=t[e];return tt(r)?r:void 0};function Ee(t){return t>0?Math.max(1,Math.ceil(t/4)):0}function we(t,e){if(!(t<=0||e===void 0||e<250))return t/(e/1e3)}function Dt(t,e){return typeof e.type=="string"?e.type:t}function Ht(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 Ot(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 et(t){let e=j(t,"result"),r=[j(t,"tokens"),j(t,"totalTokens"),e?j(e,"tokens"):void 0,j(t,"usage"),e?j(e,"usage"):void 0];for(let o of r){if(!o)continue;let a=D(o.output)??D(o.outputTokens)??D(o.completionTokens);if(a!==void 0)return a}return D(t.outputTokens)??D(t.completionTokens)??(e?D(e.outputTokens)??D(e.completionTokens):void 0)}function qt(t){let e=j(t,"result");return D(t.executionTime)??D(t.executionTimeMs)??D(t.execution_time)??D(t.duration)??(e?D(e.executionTime)??D(e.executionTimeMs):void 0)}function Ut(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var me=class{constructor(e=Ut){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 r=this.now()-e.firstDeltaAt;return{...this.metric,durationMs:r,tokensPerSecond:we(this.metric.outputTokens,r)}}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,r){if(!tt(r)){Ye.has(e)&&this.run&&(this.run=null,this.metric={status:"error"});return}let o=Dt(e,r),a=this.now();if(Bt.has(o)){this.startRun(a);return}if(Lt.has(o)){this.run||this.startRun(a);return}if(Et.has(o)){if(!Ot(o,r))return;let f=Ht(r);if(!f)return;this.run||this.startRun(a);let n=this.run;n.firstDeltaAt??(n.firstDeltaAt=a),n.visibleCharCount+=f.length;let p=n.exactOutputTokens+Ee(n.visibleCharCount),x=a-n.firstDeltaAt;this.metric={status:"running",tokensPerSecond:we(p,x),outputTokens:p,durationMs:x,source:n.exactOutputTokens>0?"usage":"estimate"};return}if(Rt.has(o)){if(!this.run)return;let f=this.run,n=et(r);n!==void 0&&(f.exactOutputTokens+=n,f.visibleCharCount=0);let p=f.exactOutputTokens>0,x=f.exactOutputTokens+Ee(f.visibleCharCount),C=this.resolveDuration(f,r,a);this.metric={status:"running",tokensPerSecond:we(x,C),outputTokens:x,durationMs:C,source:p?"usage":"estimate"};return}if(Ft.has(o)){if(!this.run)return;let f=this.run,n=et(r),p=n??f.exactOutputTokens+Ee(f.visibleCharCount),x=n!==void 0||f.exactOutputTokens>0?"usage":"estimate",C=this.resolveDuration(f,r,a);this.metric={status:"complete",tokensPerSecond:we(p,C),outputTokens:p,durationMs:C,source:x},this.run=null;return}if(Ye.has(o)){if(!this.run)return;this.run=null,this.metric={status:"error"}}}resolveDuration(e,r,o){let a=e.firstDeltaAt!==void 0?o-e.firstDeltaAt:void 0;return a!==void 0&&a>=250?a:qt(r)??o-e.startedAt}};0&&(module.exports={EventStreamBuffer,EventStreamStore,ThroughputTracker,createEventStreamView});
|
|
1
|
+
"use strict";var Te=Object.defineProperty;var pt=Object.getOwnPropertyDescriptor;var it=Object.getOwnPropertyNames;var mt=Object.prototype.hasOwnProperty;var xt=(t,e)=>{for(var r in e)Te(t,r,{get:e[r],enumerable:!0})},ct=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of it(e))!mt.call(t,a)&&a!==r&&Te(t,a,{get:()=>e[a],enumerable:!(o=pt(e,a))||o.enumerable});return t};var ht=t=>ct(Te({},"__esModule",{value:!0}),t);var Wt={};xt(Wt,{EventStreamBuffer:()=>pe,EventStreamStore:()=>ie,ThroughputTracker:()=>me,createEventStreamView:()=>Ee});module.exports=ht(Wt);var u=(t,e)=>{let r=document.createElement(t);return e&&(r.className=e),r};var he=[["path",{d:"M20 6 9 17l-5-5"}]];var Ae=[["path",{d:"m6 9 6 6 6-6"}]];var Pe=[["path",{d:"m9 18 6-6-6-6"}]];var ge=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4"}],["path",{d:"M21 14H11"}],["path",{d:"m15 10-4 4 4 4"}]];var Ce=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"}]];var Me=[["path",{d:"m21 21-4.34-4.34"}],["circle",{cx:"11",cy:"11",r:"8"}]];var Se=[["path",{d:"M18 6 6 18"}],["path",{d:"m6 6 12 12"}]];var I=(t,e=24,r="currentColor",o=2)=>{if(!Array.isArray(t))return null;let a=document.createElementNS("http://www.w3.org/2000/svg","svg");return a.setAttribute("width",String(e)),a.setAttribute("height",String(e)),a.setAttribute("viewBox","0 0 24 24"),a.setAttribute("fill","none"),a.setAttribute("stroke",r),a.setAttribute("stroke-width",String(o)),a.setAttribute("stroke-linecap","round"),a.setAttribute("stroke-linejoin","round"),a.setAttribute("aria-hidden","true"),t.forEach(f=>{if(!Array.isArray(f)||f.length<2)return;let n=f[0],p=f[1];if(!p)return;let x=document.createElementNS("http://www.w3.org/2000/svg",n);Object.entries(p).forEach(([C,v])=>{C!=="stroke"&&x.setAttribute(C,String(v))}),a.appendChild(x)}),a};function Je(t=!0){let e=t;return{isFollowing:()=>e,pause:()=>e?(e=!1,!0):!1,resume:()=>e?!1:(e=!0,!0)}}function gt(t){return Math.max(0,t.scrollHeight-t.clientHeight)}function je(t,e){return gt(t)-t.scrollTop<=e}function Qe(t){let{following:e,currentScrollTop:r,lastScrollTop:o,nearBottom:a,userScrollThreshold:f,isAutoScrolling:n=!1,pauseOnUpwardScroll:p=!1,pauseWhenAwayFromBottom:x=!0,resumeRequiresDownwardScroll:C=!1}=t,v=r-o;return n||Math.abs(v)<f?{action:"none",delta:v,nextLastScrollTop:r}:!e&&a&&(!C||v>0)?{action:"resume",delta:v,nextLastScrollTop:r}:e&&p&&v<0?{action:"pause",delta:v,nextLastScrollTop:r}:e&&x&&!a?{action:"pause",delta:v,nextLastScrollTop:r}:{action:"none",delta:v,nextLastScrollTop:r}}function Ye(t){let{following:e,deltaY:r,nearBottom:o=!1,resumeWhenNearBottom:a=!1}=t;return e&&r<0?"pause":!e&&a&&r>0&&o?"resume":"none"}function te(t,e){e&&e.split(/\s+/).forEach(r=>r&&t.classList.add(r))}var Le={flow_:{bg:"var(--persona-event-badge-flow-bg, #dcfce7)",text:"var(--persona-event-badge-flow-fg, #15803d)"},step_:{bg:"var(--persona-event-badge-step-bg, #f5f5f5)",text:"var(--persona-event-badge-step-fg, #0a0a0a)"},reasoning_:{bg:"var(--persona-event-badge-reasoning-bg, #fef9c3)",text:"var(--persona-event-badge-reasoning-fg, #a16207)"},tool_:{bg:"var(--persona-event-badge-tool-bg, #f3e8ff)",text:"var(--persona-event-badge-tool-fg, #6b21a8)"},agent_:{bg:"var(--persona-event-badge-agent-bg, #ccfbf1)",text:"var(--persona-event-badge-agent-fg, #115e59)"},error:{bg:"var(--persona-event-badge-error-bg, #fee2e2)",text:"var(--persona-event-badge-error-fg, #b91c1c)"}};Le.execution_error=Le.error;var Ct={bg:"var(--persona-event-badge-default-bg, #f3f4f6)",text:"var(--persona-event-badge-default-fg, #4b5563)"},St=["flowName","stepName","reasoningText","text","name","tool","toolName"],wt=100;function et(t,e){if(e[t])return e[t];for(let r of Object.keys(e))if(r.endsWith("_")&&t.startsWith(r))return e[r]}function bt(t,e){return(e&&et(t,e))??et(t,Le)??Ct}function yt(t){return/^#[0-9a-fA-F]{6}$/.test(t)?`${t}50`:`color-mix(in srgb, ${t} 31%, transparent)`}function vt(t,e){return`+${((t-e)/1e3).toFixed(3)}s`}function kt(t){let e=new Date(t),r=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),a=String(e.getSeconds()).padStart(2,"0"),f=String(e.getMilliseconds()).padStart(3,"0");return`${r}:${o}:${a}.${f}`}function Tt(t,e){try{let r=JSON.parse(t);if(typeof r!="object"||r===null)return null;for(let o of e){let a=o.split("."),f=r;for(let n of a)if(f&&typeof f=="object"&&f!==null)f=f[n];else{f=void 0;break}if(typeof f=="string"&&f.trim())return f.trim()}}catch{}return null}function At(t){return navigator.clipboard?.writeText?navigator.clipboard.writeText(t):new Promise(e=>{let r=document.createElement("textarea");r.value=t,r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r),e()})}function Pt(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 Mt(t){return t.tokensPerSecond===void 0||!Number.isFinite(t.tokensPerSecond)?"-- tok/s":`${t.tokensPerSecond.toFixed(1)} tok/s`}function Bt(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 Lt(t,e,r){let o,a;try{a=JSON.parse(t.payload),o=JSON.stringify(a,null,2)}catch{a=t.payload,o=t.payload}let f=e.find(p=>p.renderEventStreamPayload);if(f?.renderEventStreamPayload&&r){let p=f.renderEventStreamPayload({event:t,config:r,defaultRenderer:()=>n(),parsedPayload:a});if(p)return p}return n();function n(){let p=u("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]"),x=u("pre","persona-m-0 persona-whitespace-pre-wrap persona-break-all persona-text-[11px] persona-text-persona-secondary persona-font-mono");return x.textContent=o,p.appendChild(x),p}}function Be(t,e,r,o,a,f,n,p){let x=a.has(t.id),C=u("div","persona-border-b persona-border-persona-divider persona-text-xs");te(C,o.classNames?.eventRow);let v=n.find(B=>B.renderEventStreamRow);if(v?.renderEventStreamRow&&p){let B=v.renderEventStreamRow({event:t,index:e,config:p,defaultRenderer:()=>W(),isExpanded:x,onToggleExpand:()=>f(t.id)});if(B)return C.appendChild(B),C}return C.appendChild(W()),C;function W(){let B=u("div",""),H=u("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");H.setAttribute("data-event-id",t.id);let re=u("span","persona-flex-shrink-0 persona-text-persona-muted persona-w-4 persona-text-center persona-flex persona-items-center persona-justify-center"),L=I(x?Ae:Pe,"14px","currentColor",2);L&&re.appendChild(L);let O=u("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";O.textContent=b==="relative"?vt(t.timestamp,r):kt(t.timestamp);let E=null;o.showSequenceNumbers!==!1&&(E=u("span","persona-text-[11px] persona-text-persona-muted persona-font-mono persona-flex-shrink-0 persona-w-[28px] persona-text-right"),E.textContent=String(e+1));let M=bt(t.type,o.badgeColors),R=u("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");R.style.backgroundColor=M.bg,R.style.color=M.text,R.style.borderColor=yt(M.text),R.textContent=t.type;let oe=o.descriptionFields??St,Q=Tt(t.payload,oe),V=null;Q&&(V=u("span","persona-text-[11px] persona-text-persona-secondary persona-truncate persona-min-w-0"),V.textContent=Q);let k=u("div","persona-flex-1 persona-min-w-0"),T=u("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"),ae=I(Ce,"12px","currentColor",1.5);return ae&&T.appendChild(ae),T.addEventListener("click",async Y=>{Y.stopPropagation(),await At(Pt(t)),T.innerHTML="";let q=I(he,"12px","currentColor",1.5);q&&T.appendChild(q),setTimeout(()=>{T.innerHTML="";let ee=I(Ce,"12px","currentColor",1.5);ee&&T.appendChild(ee)},1500)}),H.appendChild(re),H.appendChild(O),E&&H.appendChild(E),H.appendChild(R),V&&H.appendChild(V),H.appendChild(k),H.appendChild(T),B.appendChild(H),x&&B.appendChild(Lt(t,n,p)),B}}function Ee(t){let{buffer:e,getFullHistory:r,onClose:o,config:a,plugins:f=[],getThroughput:n}=t,p=t.renderIconByName??(()=>null),x=a?.features?.scrollToBottom,C=x?.enabled!==!1,v=x?.iconName??"arrow-down",W=x?.label??"",B=a?.features?.eventStream??{},H=f.find(L=>L.renderEventStreamView);if(H?.renderEventStreamView&&a){let L=H.renderEventStreamView({config:a,events:e.getAll(),defaultRenderer:()=>re().element,onClose:o});if(L)return{element:L,update:()=>{},destroy:()=>{}}}return re();function re(){let L=B.classNames,O=u("div","persona-event-stream-view persona-flex persona-flex-col persona-flex-1 persona-min-h-0");te(O,L?.panel);let b=[],E="",M="",R=null,oe=[],Q={},V=0,k=Je(),T=0,ae=0,Y=!1,q=null,ee=!1,Fe=0,Z=new Set,U=new Map,De="",He="",J=null,S,g,w,F,fe=null,N=null,G=null;function be(){let s=u("div","persona-event-toolbar persona-relative persona-flex persona-flex-col persona-flex-shrink-0"),l=u("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(te(l,L?.headerBar),n){N=u("div","persona-relative persona-flex persona-items-center persona-gap-1.5 persona-whitespace-nowrap"),N.style.cursor="help",fe=u("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"),fe.textContent="-- tok/s",G=u("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"),G.style.display="none",G.style.pointerEvents="none";let K=N,de=G,nt=()=>{if(!de.textContent)return;let Ze=K.getBoundingClientRect(),$e=s.getBoundingClientRect();de.style.left=`${Ze.left-$e.left}px`,de.style.top=`${Ze.bottom-$e.top+4}px`,de.style.display="block"},dt=()=>{de.style.display="none"};N.addEventListener("mouseenter",nt),N.addEventListener("mouseleave",dt),N.appendChild(fe)}let d=u("div","persona-flex-1");S=u("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 y=u("option","");y.value="",y.textContent="All events (0)",S.appendChild(y),g=u("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"),g.type="button",g.title="Copy All";let _=I(ge,"12px","currentColor",1.5);_&&g.appendChild(_);let X=u("span","persona-event-copy-all persona-text-xs");X.textContent="Copy All",g.appendChild(X),N&&l.appendChild(N),l.appendChild(d),l.appendChild(S),l.appendChild(g);let i=u("div","persona-relative persona-px-4 persona-py-2.5 persona-border-b persona-border-persona-divider persona-bg-persona-surface");te(i,L?.searchBar);let m=I(Me,"14px","var(--persona-muted, #9ca3af)",1.5),h=u("span","persona-absolute persona-left-6 persona-top-1/2 persona--translate-y-1/2 persona-pointer-events-none persona-flex persona-items-center");m&&h.appendChild(m),w=u("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"),te(w,L?.searchInput),w.type="text",w.placeholder="Search event payloads...",F=u("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"),F.type="button",F.style.display="none";let P=I(Se,"12px","currentColor",2);return P&&F.appendChild(P),i.appendChild(h),i.appendChild(w),i.appendChild(F),s.appendChild(l),s.appendChild(i),G&&s.appendChild(G),s}let ye,Oe=f.find(s=>s.renderEventStreamToolbar);Oe?.renderEventStreamToolbar&&a?ye=Oe.renderEventStreamToolbar({config:a,defaultRenderer:()=>be(),eventCount:e.getSize(),filteredCount:0,onFilterChange:l=>{E=l,ne(),$()},onSearchChange:l=>{M=l,ne(),$()}})??be():ye=be();let se=u("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");se.style.display="none";function at(){if(!n||!fe||!N)return;let s=n(),l=Mt(s);fe.textContent=l;let d=Bt(s);G&&(G.textContent=d,d||(G.style.display="none")),N.setAttribute("aria-label",d?`Throughput: ${l}, ${d}`:`Throughput: ${l}`)}let xe=u("div","persona-flex-1 persona-min-h-0 persona-relative"),c=u("div","persona-event-stream-list persona-overflow-y-auto persona-min-h-0");c.style.height="100%";let A=u("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");te(A,L?.scrollIndicator),A.style.display="none",A.setAttribute("data-persona-scroll-to-bottom-has-label",W?"true":"false");let qe=p(v,"14px","currentColor",2);qe&&A.appendChild(qe);let le=u("span","");le.textContent=W,A.appendChild(le);let ue=u("div","persona-flex persona-items-center persona-justify-center persona-h-full persona-text-sm persona-text-persona-muted");ue.style.display="none",xe.appendChild(c),xe.appendChild(ue),xe.appendChild(A),O.setAttribute("tabindex","0"),O.appendChild(ye),O.appendChild(se),O.appendChild(xe);function ft(){let s=e.getAll(),l={};for(let i of s)l[i.type]=(l[i.type]||0)+1;let d=Object.keys(l).sort(),y=d.length!==oe.length||!d.every((i,m)=>i===oe[m]),z=!y&&d.some(i=>l[i]!==Q[i]),_=s.length!==Object.values(Q).reduce((i,m)=>i+m,0);if(!y&&!z&&!_||(oe=d,Q=l,!S))return;let X=S.value;if(S.options[0].textContent=`All events (${s.length})`,y){for(;S.options.length>1;)S.remove(1);for(let i of d){let m=u("option","");m.value=i,m.textContent=`${i} (${l[i]||0})`,S.appendChild(m)}X&&d.includes(X)?S.value=X:X&&(S.value="",E="")}else for(let i=1;i<S.options.length;i++){let m=S.options[i];m.textContent=`${m.value} (${l[m.value]||0})`}}function st(){let s=e.getAll();if(E&&(s=s.filter(l=>l.type===E)),M){let l=M.toLowerCase();s=s.filter(d=>d.type.toLowerCase().includes(l)||d.payload.toLowerCase().includes(l))}return s}function ve(){return E!==""||M!==""}function ne(){V=0,T=0,k.resume(),A.style.display="none"}function ce(s){Z.has(s)?Z.delete(s):Z.add(s),J=s;let l=c.scrollTop,d=k.isFollowing();ee=!0,k.pause(),$(),c.scrollTop=l,d&&k.resume(),ee=!1}function Ue(){return je(c,50)}function $(){ae=Date.now(),Y=!1,at(),ft();let s=e.getEvictedCount();s>0?(se.textContent=`${s.toLocaleString()} older events truncated`,se.style.display=""):se.style.display="none",b=st();let l=b.length,d=e.getSize()>0;l===0&&d&&ve()?(ue.textContent=M?`No events matching '${M}'`:"No events matching filter",ue.style.display="",c.style.display="none"):(ue.style.display="none",c.style.display=""),g&&(g.title=ve()?`Copy Filtered (${l})`:"Copy All"),C&&!k.isFollowing()&&l>V&&(T+=l-V,le.textContent=W?`${W}${T>0?` (${T})`:""}`:"",A.style.display=""),V=l;let y=e.getAll(),z=y.length>0?y[0].timestamp:0,_=new Set(b.map(m=>m.id));for(let m of Z)_.has(m)||Z.delete(m);let X=E!==De||M!==He,i=U.size===0&&b.length>0;if(X||i||b.length===0){c.innerHTML="",U.clear();let m=document.createDocumentFragment();for(let h=0;h<b.length;h++){let P=Be(b[h],h,z,B,Z,ce,f,a);U.set(b[h].id,P),m.appendChild(P)}c.appendChild(m),De=E,He=M,J=null}else{if(J!==null){let h=U.get(J);if(h&&h.parentNode===c){let P=b.findIndex(K=>K.id===J);if(P>=0){let K=Be(b[P],P,z,B,Z,ce,f,a);c.insertBefore(K,h),h.remove(),U.set(J,K)}}J=null}let m=new Set(b.map(h=>h.id));for(let[h,P]of U)m.has(h)||(P.remove(),U.delete(h));for(let h=0;h<b.length;h++){let P=b[h];if(!U.has(P.id)){let K=Be(P,h,z,B,Z,ce,f,a);U.set(P.id,K),c.appendChild(K)}}}k.isFollowing()&&(c.scrollTop=c.scrollHeight)}function lt(){if(Date.now()-ae>=wt){q!==null&&(cancelAnimationFrame(q),q=null),$();return}Y||(Y=!0,q=requestAnimationFrame(()=>{q=null,$()}))}let Ne=(s,l)=>{if(!g)return;g.innerHTML="";let d=I(s,"12px","currentColor",1.5);d&&g.appendChild(d);let y=u("span","persona-text-xs");y.textContent="Copy All",g.appendChild(y),setTimeout(()=>{g.innerHTML="";let z=I(ge,"12px","currentColor",1.5);z&&g.appendChild(z);let _=u("span","persona-text-xs");_.textContent="Copy All",g.appendChild(_),g.disabled=!1},l)},Ie=async()=>{if(g){g.disabled=!0;try{let s;ve()?s=b:r?(s=await r(),s.length===0&&(s=e.getAll())):s=e.getAll();let l=s.map(d=>{try{return JSON.parse(d.payload)}catch{return d.payload}});await navigator.clipboard.writeText(JSON.stringify(l,null,2)),Ne(he,1500)}catch{Ne(Se,1500)}}},We=()=>{S&&(E=S.value,ne(),$())},Ve=()=>{!w||!F||(F.style.display=w.value?"":"none",R&&clearTimeout(R),R=setTimeout(()=>{M=w.value,ne(),$()},150))},ke=()=>{!w||!F||(w.value="",M="",F.style.display="none",R&&clearTimeout(R),ne(),$())},Ge=()=>{if(ee)return;let s=c.scrollTop,{action:l,nextLastScrollTop:d}=Qe({following:k.isFollowing(),currentScrollTop:s,lastScrollTop:Fe,nearBottom:Ue(),userScrollThreshold:1,resumeRequiresDownwardScroll:!0});Fe=d,l==="resume"?(k.resume(),T=0,A.style.display="none"):l==="pause"&&(k.pause(),C&&(le.textContent=W,A.style.display=""))},ze=s=>{let l=Ye({following:k.isFollowing(),deltaY:s.deltaY,nearBottom:Ue(),resumeWhenNearBottom:!0});l==="pause"?(k.pause(),C&&(le.textContent=W,A.style.display="")):l==="resume"&&(k.resume(),T=0,A.style.display="none")},_e=()=>{C&&(c.scrollTop=c.scrollHeight,k.resume(),T=0,A.style.display="none")},Xe=s=>{let l=s.target;if(!l||l.closest("button"))return;let d=l.closest("[data-event-id]");if(!d)return;let y=d.getAttribute("data-event-id");y&&ce(y)},Ke=s=>{if((s.metaKey||s.ctrlKey)&&s.key==="f"){s.preventDefault(),w?.focus(),w?.select();return}s.key==="Escape"&&(w&&document.activeElement===w?(ke(),w.blur(),O.focus()):o&&o())};g&&g.addEventListener("click",Ie),S&&S.addEventListener("change",We),w&&w.addEventListener("input",Ve),F&&F.addEventListener("click",ke),c.addEventListener("scroll",Ge),c.addEventListener("wheel",ze,{passive:!0}),c.addEventListener("click",Xe),A.addEventListener("click",_e),O.addEventListener("keydown",Ke);function ut(){R&&clearTimeout(R),q!==null&&(cancelAnimationFrame(q),q=null),Y=!1,U.clear(),g&&g.removeEventListener("click",Ie),S&&S.removeEventListener("change",We),w&&w.removeEventListener("input",Ve),F&&F.removeEventListener("click",ke),c.removeEventListener("scroll",Ge),c.removeEventListener("wheel",ze),c.removeEventListener("click",Xe),A.removeEventListener("click",_e),O.removeEventListener("keydown",Ke)}return{element:O,update:lt,destroy:ut}}}var pe=class{constructor(e=2e3,r=null){this.head=0;this.count=0;this.totalCaptured=0;this.eventTypesSet=new Set;this.maxSize=e,this.buffer=new Array(e),this.store=r}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 r=e.length>this.maxSize?e.slice(e.length-this.maxSize):e;for(let o of r)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,r.length}getAllFromStore(){return this.store?this.store.getAll():Promise.resolve(this.getAll())}getRecent(e){let r=this.getAll();return e>=r.length?r:r.slice(r.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 ie=class{constructor(e="persona-event-stream",r="events"){this.db=null;this.pendingWrites=[];this.flushScheduled=!1;this.isDestroyed=!1;this.dbName=e,this.storeName=r}open(){return new Promise((e,r)=>{try{let o=indexedDB.open(this.dbName,1);o.onupgradeneeded=()=>{let a=o.result;a.objectStoreNames.contains(this.storeName)||a.createObjectStore(this.storeName,{keyPath:"id"}).createIndex("timestamp","timestamp",{unique:!1})},o.onsuccess=()=>{this.db=o.result,e()},o.onerror=()=>{r(o.error)}}catch(o){r(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 a of e)o.put(a)}catch{}}getAll(){return new Promise((e,r)=>{if(!this.db){e([]);return}try{let n=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).index("timestamp").getAll();n.onsuccess=()=>{e(n.result)},n.onerror=()=>{r(n.error)}}catch(o){r(o)}})}getCount(){return new Promise((e,r)=>{if(!this.db){e(0);return}try{let f=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).count();f.onsuccess=()=>{e(f.result)},f.onerror=()=>{r(f.error)}}catch(o){r(o)}})}clear(){return new Promise((e,r)=>{if(!this.db){e();return}this.pendingWrites=[];try{let f=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).clear();f.onsuccess=()=>{e()},f.onerror=()=>{r(f.error)}}catch(o){r(o)}})}close(){this.db&&(this.db.close(),this.db=null)}destroy(){return this.isDestroyed=!0,this.pendingWrites=[],this.close(),new Promise((e,r)=>{try{let o=indexedDB.deleteDatabase(this.dbName);o.onsuccess=()=>{e()},o.onerror=()=>{r(o.error)}}catch(o){r(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 a of e)o.put(a)}catch{}}};var Et=new Set(["flow_start","flow_run_start","agent_start","dispatch_start","run_start"]),Rt=new Set(["step_start","execution_start"]),Ft=new Set(["step_delta","step_chunk","chunk","agent_turn_delta"]),Dt=new Set(["step_complete","agent_turn_complete"]),Ht=new Set(["flow_complete","agent_complete"]),tt=new Set(["step_error","flow_error","agent_error","dispatch_error","error"]),ot=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),D=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,j=(t,e)=>{let r=t[e];return ot(r)?r:void 0};function Re(t){return t>0?Math.max(1,Math.ceil(t/4)):0}function we(t,e){if(!(t<=0||e===void 0||e<250))return t/(e/1e3)}function Ot(t,e){return typeof e.type=="string"?e.type:t}function qt(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 Ut(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 rt(t){let e=j(t,"result"),r=[j(t,"tokens"),j(t,"totalTokens"),e?j(e,"tokens"):void 0,j(t,"usage"),e?j(e,"usage"):void 0];for(let o of r){if(!o)continue;let a=D(o.output)??D(o.outputTokens)??D(o.completionTokens);if(a!==void 0)return a}return D(t.outputTokens)??D(t.completionTokens)??(e?D(e.outputTokens)??D(e.completionTokens):void 0)}function Nt(t){let e=j(t,"result");return D(t.executionTime)??D(t.executionTimeMs)??D(t.execution_time)??D(t.duration)??(e?D(e.executionTime)??D(e.executionTimeMs):void 0)}function It(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var me=class{constructor(e=It){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 r=this.now()-e.firstDeltaAt;return{...this.metric,durationMs:r,tokensPerSecond:we(this.metric.outputTokens,r)}}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,r){if(!ot(r)){tt.has(e)&&this.run&&(this.run=null,this.metric={status:"error"});return}let o=Ot(e,r),a=this.now();if(Et.has(o)){this.startRun(a);return}if(Rt.has(o)){this.run||this.startRun(a);return}if(Ft.has(o)){if(!Ut(o,r))return;let f=qt(r);if(!f)return;this.run||this.startRun(a);let n=this.run;n.firstDeltaAt??(n.firstDeltaAt=a),n.visibleCharCount+=f.length;let p=n.exactOutputTokens+Re(n.visibleCharCount),x=a-n.firstDeltaAt;this.metric={status:"running",tokensPerSecond:we(p,x),outputTokens:p,durationMs:x,source:n.exactOutputTokens>0?"usage":"estimate"};return}if(Dt.has(o)){if(!this.run)return;let f=this.run,n=rt(r);n!==void 0&&(f.exactOutputTokens+=n,f.visibleCharCount=0);let p=f.exactOutputTokens>0,x=f.exactOutputTokens+Re(f.visibleCharCount),C=this.resolveDuration(f,r,a);this.metric={status:"running",tokensPerSecond:we(x,C),outputTokens:x,durationMs:C,source:p?"usage":"estimate"};return}if(Ht.has(o)){if(!this.run)return;let f=this.run,n=rt(r),p=n??f.exactOutputTokens+Re(f.visibleCharCount),x=n!==void 0||f.exactOutputTokens>0?"usage":"estimate",C=this.resolveDuration(f,r,a);this.metric={status:"complete",tokensPerSecond:we(p,C),outputTokens:p,durationMs:C,source:x},this.run=null;return}if(tt.has(o)){if(!this.run)return;this.run=null,this.metric={status:"error"}}}resolveDuration(e,r,o){let a=e.firstDeltaAt!==void 0?o-e.firstDeltaAt:void 0;return a!==void 0&&a>=250?a:Nt(r)??o-e.startedAt}};0&&(module.exports={EventStreamBuffer,EventStreamStore,ThroughputTracker,createEventStreamView});
|
|
2
2
|
/*! Bundled license information:
|
|
3
3
|
|
|
4
4
|
lucide/dist/esm/icons/check.mjs:
|
|
@@ -619,7 +619,11 @@ interface ColorPalette {
|
|
|
619
619
|
warning: ColorShade;
|
|
620
620
|
error: ColorShade;
|
|
621
621
|
info: ColorShade;
|
|
622
|
-
|
|
622
|
+
/** Event-stream tool badge family. */
|
|
623
|
+
purple?: ColorShade;
|
|
624
|
+
/** Event-stream agent badge family. */
|
|
625
|
+
teal?: ColorShade;
|
|
626
|
+
[key: string]: ColorShade | undefined;
|
|
623
627
|
}
|
|
624
628
|
interface SpacingScale {
|
|
625
629
|
0: string;
|
|
@@ -1191,6 +1195,38 @@ interface ToolBubbleTokens {
|
|
|
1191
1195
|
interface ReasoningBubbleTokens {
|
|
1192
1196
|
shadow: string;
|
|
1193
1197
|
}
|
|
1198
|
+
/** One event-stream badge chip: fill + text pair. The chip border derives
|
|
1199
|
+
* from `foreground` at ~31% alpha. */
|
|
1200
|
+
interface EventStreamBadgePairTokens {
|
|
1201
|
+
background: TokenReference<'color'>;
|
|
1202
|
+
foreground: TokenReference<'color'>;
|
|
1203
|
+
}
|
|
1204
|
+
/**
|
|
1205
|
+
* Event-stream inspector badge chips (`features.eventStream`), one pair per
|
|
1206
|
+
* unified event family. Materialized into every theme and emitted as
|
|
1207
|
+
* `--persona-event-badge-<family>-{bg,fg}`, with scheme-appropriate defaults:
|
|
1208
|
+
* light themes pair a 100-tone fill with a 700-tone text, the built-in dark
|
|
1209
|
+
* layer flips to a 900-tone fill with a 300-tone text. `badge.default` colors
|
|
1210
|
+
* event types no family matches.
|
|
1211
|
+
*/
|
|
1212
|
+
interface EventStreamTokens {
|
|
1213
|
+
badge: {
|
|
1214
|
+
/** `flow_*` events. */
|
|
1215
|
+
flow: EventStreamBadgePairTokens;
|
|
1216
|
+
/** `step_*` events. */
|
|
1217
|
+
step: EventStreamBadgePairTokens;
|
|
1218
|
+
/** `reasoning_*` events. */
|
|
1219
|
+
reasoning: EventStreamBadgePairTokens;
|
|
1220
|
+
/** `tool_*` events. */
|
|
1221
|
+
tool: EventStreamBadgePairTokens;
|
|
1222
|
+
/** `agent_*` events. */
|
|
1223
|
+
agent: EventStreamBadgePairTokens;
|
|
1224
|
+
/** `error` / `execution_error` events. */
|
|
1225
|
+
error: EventStreamBadgePairTokens;
|
|
1226
|
+
/** Any event type no other family matches. */
|
|
1227
|
+
default: EventStreamBadgePairTokens;
|
|
1228
|
+
};
|
|
1229
|
+
}
|
|
1194
1230
|
/** Scrollbar appearance shared by every scroller in the widget. */
|
|
1195
1231
|
interface ScrollbarTokens {
|
|
1196
1232
|
/** Thumb color. @default semantic.colors.border */
|
|
@@ -1539,6 +1575,8 @@ interface ComponentTokens {
|
|
|
1539
1575
|
attachment: AttachmentTokens;
|
|
1540
1576
|
toolBubble: ToolBubbleTokens;
|
|
1541
1577
|
reasoningBubble: ReasoningBubbleTokens;
|
|
1578
|
+
/** Event-stream inspector badge chips. */
|
|
1579
|
+
eventStream?: EventStreamTokens;
|
|
1542
1580
|
composer: ComposerChromeTokens;
|
|
1543
1581
|
/** Shared motion timing for composer chrome animation. */
|
|
1544
1582
|
motion?: MotionTokens;
|
|
@@ -2919,6 +2957,14 @@ type ClientToolDefinition = {
|
|
|
2919
2957
|
readOnlyHint?: boolean;
|
|
2920
2958
|
untrustedContentHint?: boolean;
|
|
2921
2959
|
};
|
|
2960
|
+
/**
|
|
2961
|
+
* Hoisted copy of `annotations.untrustedContentHint`. This is the field the
|
|
2962
|
+
* server actually acts on (`InlineClientToolSchema`): it spotlights the
|
|
2963
|
+
* tool's output before the model reads it, so instructions embedded in
|
|
2964
|
+
* page-provided content (reviews, comments, emails) are not treated as
|
|
2965
|
+
* instructions. `annotations` itself is trace/dashboard metadata only.
|
|
2966
|
+
*/
|
|
2967
|
+
untrustedContentHint?: boolean;
|
|
2922
2968
|
};
|
|
2923
2969
|
/**
|
|
2924
2970
|
* Information passed to the confirm-bubble handler before a `webmcp:*` tool
|
|
@@ -4110,6 +4156,16 @@ type AgentWidgetToolCallDisplayFeature = {
|
|
|
4110
4156
|
* @default "stack"
|
|
4111
4157
|
*/
|
|
4112
4158
|
groupedMode?: "stack" | "summary";
|
|
4159
|
+
/**
|
|
4160
|
+
* What happens to a tool call row once it completes.
|
|
4161
|
+
*
|
|
4162
|
+
* - `"kept"` (default): the finished row stays in the transcript.
|
|
4163
|
+
* - `"removed"`: no row is rendered at all, so the transcript gap closes with
|
|
4164
|
+
* it. The tool call stays on the message and in `getMessages()`.
|
|
4165
|
+
*
|
|
4166
|
+
* @default "kept"
|
|
4167
|
+
*/
|
|
4168
|
+
completedVisibility?: AgentWidgetToolCallCompletedVisibility;
|
|
4113
4169
|
/**
|
|
4114
4170
|
* When false, tool call bubbles show only the collapsed summary with no
|
|
4115
4171
|
* expand/collapse toggle. Users see tool awareness without full details.
|
|
@@ -4127,6 +4183,8 @@ type AgentWidgetToolCallDisplayFeature = {
|
|
|
4127
4183
|
*/
|
|
4128
4184
|
loadingAnimation?: AgentWidgetToolCallLoadingAnimation;
|
|
4129
4185
|
};
|
|
4186
|
+
/** See `features.toolCallDisplay.completedVisibility`. */
|
|
4187
|
+
type AgentWidgetToolCallCompletedVisibility = "kept" | "removed";
|
|
4130
4188
|
type AgentWidgetReasoningDisplayFeature = {
|
|
4131
4189
|
/**
|
|
4132
4190
|
* When true, active collapsed reasoning rows can render a lightweight preview block.
|
|
@@ -4172,13 +4230,26 @@ type AgentWidgetReasoningDisplayFeature = {
|
|
|
4172
4230
|
* - `"kept"` (default): the finished row stays in the transcript.
|
|
4173
4231
|
* - `"removed"`: no row is rendered at all, so the transcript gap closes with
|
|
4174
4232
|
* it. The reasoning text stays on the message and in `getMessages()`.
|
|
4233
|
+
* - `"removed-when-short"`: behaves as `"removed"` when the completed trace
|
|
4234
|
+
* is short (see `shortThinkThreshold`), and as `"kept"` otherwise.
|
|
4175
4235
|
*
|
|
4176
4236
|
* @default "kept"
|
|
4177
4237
|
*/
|
|
4178
4238
|
completedVisibility?: AgentWidgetReasoningCompletedVisibility;
|
|
4239
|
+
/**
|
|
4240
|
+
* Thresholds used by `completedVisibility: "removed-when-short"` to decide
|
|
4241
|
+
* whether a completed trace counts as short. Duration is checked first when
|
|
4242
|
+
* the reasoning reports one; the character count is a fallback for traces
|
|
4243
|
+
* with no reported duration.
|
|
4244
|
+
* @default { durationMs: 15000, chars: 1200 }
|
|
4245
|
+
*/
|
|
4246
|
+
shortThinkThreshold?: {
|
|
4247
|
+
durationMs?: number;
|
|
4248
|
+
chars?: number;
|
|
4249
|
+
};
|
|
4179
4250
|
};
|
|
4180
4251
|
/** See `features.reasoningDisplay.completedVisibility`. */
|
|
4181
|
-
type AgentWidgetReasoningCompletedVisibility = "kept" | "removed";
|
|
4252
|
+
type AgentWidgetReasoningCompletedVisibility = "kept" | "removed" | "removed-when-short";
|
|
4182
4253
|
/**
|
|
4183
4254
|
* Reveal animation applied to assistant message text while it is streaming.
|
|
4184
4255
|
*
|
|
@@ -619,7 +619,11 @@ interface ColorPalette {
|
|
|
619
619
|
warning: ColorShade;
|
|
620
620
|
error: ColorShade;
|
|
621
621
|
info: ColorShade;
|
|
622
|
-
|
|
622
|
+
/** Event-stream tool badge family. */
|
|
623
|
+
purple?: ColorShade;
|
|
624
|
+
/** Event-stream agent badge family. */
|
|
625
|
+
teal?: ColorShade;
|
|
626
|
+
[key: string]: ColorShade | undefined;
|
|
623
627
|
}
|
|
624
628
|
interface SpacingScale {
|
|
625
629
|
0: string;
|
|
@@ -1191,6 +1195,38 @@ interface ToolBubbleTokens {
|
|
|
1191
1195
|
interface ReasoningBubbleTokens {
|
|
1192
1196
|
shadow: string;
|
|
1193
1197
|
}
|
|
1198
|
+
/** One event-stream badge chip: fill + text pair. The chip border derives
|
|
1199
|
+
* from `foreground` at ~31% alpha. */
|
|
1200
|
+
interface EventStreamBadgePairTokens {
|
|
1201
|
+
background: TokenReference<'color'>;
|
|
1202
|
+
foreground: TokenReference<'color'>;
|
|
1203
|
+
}
|
|
1204
|
+
/**
|
|
1205
|
+
* Event-stream inspector badge chips (`features.eventStream`), one pair per
|
|
1206
|
+
* unified event family. Materialized into every theme and emitted as
|
|
1207
|
+
* `--persona-event-badge-<family>-{bg,fg}`, with scheme-appropriate defaults:
|
|
1208
|
+
* light themes pair a 100-tone fill with a 700-tone text, the built-in dark
|
|
1209
|
+
* layer flips to a 900-tone fill with a 300-tone text. `badge.default` colors
|
|
1210
|
+
* event types no family matches.
|
|
1211
|
+
*/
|
|
1212
|
+
interface EventStreamTokens {
|
|
1213
|
+
badge: {
|
|
1214
|
+
/** `flow_*` events. */
|
|
1215
|
+
flow: EventStreamBadgePairTokens;
|
|
1216
|
+
/** `step_*` events. */
|
|
1217
|
+
step: EventStreamBadgePairTokens;
|
|
1218
|
+
/** `reasoning_*` events. */
|
|
1219
|
+
reasoning: EventStreamBadgePairTokens;
|
|
1220
|
+
/** `tool_*` events. */
|
|
1221
|
+
tool: EventStreamBadgePairTokens;
|
|
1222
|
+
/** `agent_*` events. */
|
|
1223
|
+
agent: EventStreamBadgePairTokens;
|
|
1224
|
+
/** `error` / `execution_error` events. */
|
|
1225
|
+
error: EventStreamBadgePairTokens;
|
|
1226
|
+
/** Any event type no other family matches. */
|
|
1227
|
+
default: EventStreamBadgePairTokens;
|
|
1228
|
+
};
|
|
1229
|
+
}
|
|
1194
1230
|
/** Scrollbar appearance shared by every scroller in the widget. */
|
|
1195
1231
|
interface ScrollbarTokens {
|
|
1196
1232
|
/** Thumb color. @default semantic.colors.border */
|
|
@@ -1539,6 +1575,8 @@ interface ComponentTokens {
|
|
|
1539
1575
|
attachment: AttachmentTokens;
|
|
1540
1576
|
toolBubble: ToolBubbleTokens;
|
|
1541
1577
|
reasoningBubble: ReasoningBubbleTokens;
|
|
1578
|
+
/** Event-stream inspector badge chips. */
|
|
1579
|
+
eventStream?: EventStreamTokens;
|
|
1542
1580
|
composer: ComposerChromeTokens;
|
|
1543
1581
|
/** Shared motion timing for composer chrome animation. */
|
|
1544
1582
|
motion?: MotionTokens;
|
|
@@ -2919,6 +2957,14 @@ type ClientToolDefinition = {
|
|
|
2919
2957
|
readOnlyHint?: boolean;
|
|
2920
2958
|
untrustedContentHint?: boolean;
|
|
2921
2959
|
};
|
|
2960
|
+
/**
|
|
2961
|
+
* Hoisted copy of `annotations.untrustedContentHint`. This is the field the
|
|
2962
|
+
* server actually acts on (`InlineClientToolSchema`): it spotlights the
|
|
2963
|
+
* tool's output before the model reads it, so instructions embedded in
|
|
2964
|
+
* page-provided content (reviews, comments, emails) are not treated as
|
|
2965
|
+
* instructions. `annotations` itself is trace/dashboard metadata only.
|
|
2966
|
+
*/
|
|
2967
|
+
untrustedContentHint?: boolean;
|
|
2922
2968
|
};
|
|
2923
2969
|
/**
|
|
2924
2970
|
* Information passed to the confirm-bubble handler before a `webmcp:*` tool
|
|
@@ -4110,6 +4156,16 @@ type AgentWidgetToolCallDisplayFeature = {
|
|
|
4110
4156
|
* @default "stack"
|
|
4111
4157
|
*/
|
|
4112
4158
|
groupedMode?: "stack" | "summary";
|
|
4159
|
+
/**
|
|
4160
|
+
* What happens to a tool call row once it completes.
|
|
4161
|
+
*
|
|
4162
|
+
* - `"kept"` (default): the finished row stays in the transcript.
|
|
4163
|
+
* - `"removed"`: no row is rendered at all, so the transcript gap closes with
|
|
4164
|
+
* it. The tool call stays on the message and in `getMessages()`.
|
|
4165
|
+
*
|
|
4166
|
+
* @default "kept"
|
|
4167
|
+
*/
|
|
4168
|
+
completedVisibility?: AgentWidgetToolCallCompletedVisibility;
|
|
4113
4169
|
/**
|
|
4114
4170
|
* When false, tool call bubbles show only the collapsed summary with no
|
|
4115
4171
|
* expand/collapse toggle. Users see tool awareness without full details.
|
|
@@ -4127,6 +4183,8 @@ type AgentWidgetToolCallDisplayFeature = {
|
|
|
4127
4183
|
*/
|
|
4128
4184
|
loadingAnimation?: AgentWidgetToolCallLoadingAnimation;
|
|
4129
4185
|
};
|
|
4186
|
+
/** See `features.toolCallDisplay.completedVisibility`. */
|
|
4187
|
+
type AgentWidgetToolCallCompletedVisibility = "kept" | "removed";
|
|
4130
4188
|
type AgentWidgetReasoningDisplayFeature = {
|
|
4131
4189
|
/**
|
|
4132
4190
|
* When true, active collapsed reasoning rows can render a lightweight preview block.
|
|
@@ -4172,13 +4230,26 @@ type AgentWidgetReasoningDisplayFeature = {
|
|
|
4172
4230
|
* - `"kept"` (default): the finished row stays in the transcript.
|
|
4173
4231
|
* - `"removed"`: no row is rendered at all, so the transcript gap closes with
|
|
4174
4232
|
* it. The reasoning text stays on the message and in `getMessages()`.
|
|
4233
|
+
* - `"removed-when-short"`: behaves as `"removed"` when the completed trace
|
|
4234
|
+
* is short (see `shortThinkThreshold`), and as `"kept"` otherwise.
|
|
4175
4235
|
*
|
|
4176
4236
|
* @default "kept"
|
|
4177
4237
|
*/
|
|
4178
4238
|
completedVisibility?: AgentWidgetReasoningCompletedVisibility;
|
|
4239
|
+
/**
|
|
4240
|
+
* Thresholds used by `completedVisibility: "removed-when-short"` to decide
|
|
4241
|
+
* whether a completed trace counts as short. Duration is checked first when
|
|
4242
|
+
* the reasoning reports one; the character count is a fallback for traces
|
|
4243
|
+
* with no reported duration.
|
|
4244
|
+
* @default { durationMs: 15000, chars: 1200 }
|
|
4245
|
+
*/
|
|
4246
|
+
shortThinkThreshold?: {
|
|
4247
|
+
durationMs?: number;
|
|
4248
|
+
chars?: number;
|
|
4249
|
+
};
|
|
4179
4250
|
};
|
|
4180
4251
|
/** See `features.reasoningDisplay.completedVisibility`. */
|
|
4181
|
-
type AgentWidgetReasoningCompletedVisibility = "kept" | "removed";
|
|
4252
|
+
type AgentWidgetReasoningCompletedVisibility = "kept" | "removed" | "removed-when-short";
|
|
4182
4253
|
/**
|
|
4183
4254
|
* Reveal animation applied to assistant message text while it is streaming.
|
|
4184
4255
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var u=(t,e)=>{let r=document.createElement(t);return e&&(r.className=e),r};var me=[["path",{d:"M20 6 9 17l-5-5"}]];var Te=[["path",{d:"m6 9 6 6 6-6"}]];var Ae=[["path",{d:"m9 18 6-6-6-6"}]];var xe=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4"}],["path",{d:"M21 14H11"}],["path",{d:"m15 10-4 4 4 4"}]];var ce=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"}]];var Pe=[["path",{d:"m21 21-4.34-4.34"}],["circle",{cx:"11",cy:"11",r:"8"}]];var he=[["path",{d:"M18 6 6 18"}],["path",{d:"m6 6 12 12"}]];var I=(t,e=24,r="currentColor",o=2)=>{if(!Array.isArray(t))return null;let a=document.createElementNS("http://www.w3.org/2000/svg","svg");return a.setAttribute("width",String(e)),a.setAttribute("height",String(e)),a.setAttribute("viewBox","0 0 24 24"),a.setAttribute("fill","none"),a.setAttribute("stroke",r),a.setAttribute("stroke-width",String(o)),a.setAttribute("stroke-linecap","round"),a.setAttribute("stroke-linejoin","round"),a.setAttribute("aria-hidden","true"),t.forEach(f=>{if(!Array.isArray(f)||f.length<2)return;let n=f[0],p=f[1];if(!p)return;let x=document.createElementNS("http://www.w3.org/2000/svg",n);Object.entries(p).forEach(([C,k])=>{C!=="stroke"&&x.setAttribute(C,String(k))}),a.appendChild(x)}),a};function Ke(t=!0){let e=t;return{isFollowing:()=>e,pause:()=>e?(e=!1,!0):!1,resume:()=>e?!1:(e=!0,!0)}}function ut(t){return Math.max(0,t.scrollHeight-t.clientHeight)}function Ze(t,e){return ut(t)-t.scrollTop<=e}function $e(t){let{following:e,currentScrollTop:r,lastScrollTop:o,nearBottom:a,userScrollThreshold:f,isAutoScrolling:n=!1,pauseOnUpwardScroll:p=!1,pauseWhenAwayFromBottom:x=!0,resumeRequiresDownwardScroll:C=!1}=t,k=r-o;return n||Math.abs(k)<f?{action:"none",delta:k,nextLastScrollTop:r}:!e&&a&&(!C||k>0)?{action:"resume",delta:k,nextLastScrollTop:r}:e&&p&&k<0?{action:"pause",delta:k,nextLastScrollTop:r}:e&&x&&!a?{action:"pause",delta:k,nextLastScrollTop:r}:{action:"none",delta:k,nextLastScrollTop:r}}function Je(t){let{following:e,deltaY:r,nearBottom:o=!1,resumeWhenNearBottom:a=!1}=t;return e&&r<0?"pause":!e&&a&&r>0&&o?"resume":"none"}function te(t,e){e&&e.split(/\s+/).forEach(r=>r&&t.classList.add(r))}var nt={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)"}},dt={bg:"var(--persona-palette-colors-gray-100, #f3f4f6)",text:"var(--persona-palette-colors-gray-600, #4b5563)"},pt=["flowName","stepName","reasoningText","text","name","tool","toolName"],it=100;function mt(t,e){let r={...nt,...e};if(r[t])return r[t];for(let o of Object.keys(r))if(o.endsWith("_")&&t.startsWith(o))return r[o];return dt}function xt(t,e){return`+${((t-e)/1e3).toFixed(3)}s`}function ct(t){let e=new Date(t),r=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),a=String(e.getSeconds()).padStart(2,"0"),f=String(e.getMilliseconds()).padStart(3,"0");return`${r}:${o}:${a}.${f}`}function ht(t,e){try{let r=JSON.parse(t);if(typeof r!="object"||r===null)return null;for(let o of e){let a=o.split("."),f=r;for(let n of a)if(f&&typeof f=="object"&&f!==null)f=f[n];else{f=void 0;break}if(typeof f=="string"&&f.trim())return f.trim()}}catch{}return null}function gt(t){return navigator.clipboard?.writeText?navigator.clipboard.writeText(t):new Promise(e=>{let r=document.createElement("textarea");r.value=t,r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r),e()})}function Ct(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 St(t){return t.tokensPerSecond===void 0||!Number.isFinite(t.tokensPerSecond)?"-- tok/s":`${t.tokensPerSecond.toFixed(1)} tok/s`}function wt(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 yt(t,e,r){let o,a;try{a=JSON.parse(t.payload),o=JSON.stringify(a,null,2)}catch{a=t.payload,o=t.payload}let f=e.find(p=>p.renderEventStreamPayload);if(f?.renderEventStreamPayload&&r){let p=f.renderEventStreamPayload({event:t,config:r,defaultRenderer:()=>n(),parsedPayload:a});if(p)return p}return n();function n(){let p=u("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]"),x=u("pre","persona-m-0 persona-whitespace-pre-wrap persona-break-all persona-text-[11px] persona-text-persona-secondary persona-font-mono");return x.textContent=o,p.appendChild(x),p}}function Me(t,e,r,o,a,f,n,p){let x=a.has(t.id),C=u("div","persona-border-b persona-border-persona-divider persona-text-xs");te(C,o.classNames?.eventRow);let k=n.find(B=>B.renderEventStreamRow);if(k?.renderEventStreamRow&&p){let B=k.renderEventStreamRow({event:t,index:e,config:p,defaultRenderer:()=>W(),isExpanded:x,onToggleExpand:()=>f(t.id)});if(B)return C.appendChild(B),C}return C.appendChild(W()),C;function W(){let B=u("div",""),H=u("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");H.setAttribute("data-event-id",t.id);let re=u("span","persona-flex-shrink-0 persona-text-persona-muted persona-w-4 persona-text-center persona-flex persona-items-center persona-justify-center"),L=I(x?Te:Ae,"14px","currentColor",2);L&&re.appendChild(L);let O=u("span","persona-text-[11px] persona-text-persona-muted persona-whitespace-nowrap persona-flex-shrink-0 persona-font-mono persona-w-[70px]"),y=o.timestampFormat??"relative";O.textContent=y==="relative"?xt(t.timestamp,r):ct(t.timestamp);let E=null;o.showSequenceNumbers!==!1&&(E=u("span","persona-text-[11px] persona-text-persona-muted persona-font-mono persona-flex-shrink-0 persona-w-[28px] persona-text-right"),E.textContent=String(e+1));let M=mt(t.type,o.badgeColors),R=u("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");R.style.backgroundColor=M.bg,R.style.color=M.text,R.style.borderColor=M.text+"50",R.textContent=t.type;let oe=o.descriptionFields??pt,Q=ht(t.payload,oe),V=null;Q&&(V=u("span","persona-text-[11px] persona-text-persona-secondary persona-truncate persona-min-w-0"),V.textContent=Q);let v=u("div","persona-flex-1 persona-min-w-0"),T=u("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"),ae=I(ce,"12px","currentColor",1.5);return ae&&T.appendChild(ae),T.addEventListener("click",async Y=>{Y.stopPropagation(),await gt(Ct(t)),T.innerHTML="";let q=I(me,"12px","currentColor",1.5);q&&T.appendChild(q),setTimeout(()=>{T.innerHTML="";let ee=I(ce,"12px","currentColor",1.5);ee&&T.appendChild(ee)},1500)}),H.appendChild(re),H.appendChild(O),E&&H.appendChild(E),H.appendChild(R),V&&H.appendChild(V),H.appendChild(v),H.appendChild(T),B.appendChild(H),x&&B.appendChild(yt(t,n,p)),B}}function je(t){let{buffer:e,getFullHistory:r,onClose:o,config:a,plugins:f=[],getThroughput:n}=t,p=t.renderIconByName??(()=>null),x=a?.features?.scrollToBottom,C=x?.enabled!==!1,k=x?.iconName??"arrow-down",W=x?.label??"",B=a?.features?.eventStream??{},H=f.find(L=>L.renderEventStreamView);if(H?.renderEventStreamView&&a){let L=H.renderEventStreamView({config:a,events:e.getAll(),defaultRenderer:()=>re().element,onClose:o});if(L)return{element:L,update:()=>{},destroy:()=>{}}}return re();function re(){let L=B.classNames,O=u("div","persona-event-stream-view persona-flex persona-flex-col persona-flex-1 persona-min-h-0");te(O,L?.panel);let y=[],E="",M="",R=null,oe=[],Q={},V=0,v=Ke(),T=0,ae=0,Y=!1,q=null,ee=!1,Le=0,Z=new Set,U=new Map,Ee="",Re="",J=null,S,g,w,F,fe=null,N=null,G=null;function ye(){let s=u("div","persona-event-toolbar persona-relative persona-flex persona-flex-col persona-flex-shrink-0"),l=u("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(te(l,L?.headerBar),n){N=u("div","persona-relative persona-flex persona-items-center persona-gap-1.5 persona-whitespace-nowrap"),N.style.cursor="help",fe=u("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"),fe.textContent="-- tok/s",G=u("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"),G.style.display="none",G.style.pointerEvents="none";let K=N,de=G,st=()=>{if(!de.textContent)return;let _e=K.getBoundingClientRect(),Xe=s.getBoundingClientRect();de.style.left=`${_e.left-Xe.left}px`,de.style.top=`${_e.bottom-Xe.top+4}px`,de.style.display="block"},lt=()=>{de.style.display="none"};N.addEventListener("mouseenter",st),N.addEventListener("mouseleave",lt),N.appendChild(fe)}let d=u("div","persona-flex-1");S=u("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 b=u("option","");b.value="",b.textContent="All events (0)",S.appendChild(b),g=u("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"),g.type="button",g.title="Copy All";let _=I(xe,"12px","currentColor",1.5);_&&g.appendChild(_);let X=u("span","persona-event-copy-all persona-text-xs");X.textContent="Copy All",g.appendChild(X),N&&l.appendChild(N),l.appendChild(d),l.appendChild(S),l.appendChild(g);let i=u("div","persona-relative persona-px-4 persona-py-2.5 persona-border-b persona-border-persona-divider persona-bg-persona-surface");te(i,L?.searchBar);let m=I(Pe,"14px","var(--persona-muted, #9ca3af)",1.5),h=u("span","persona-absolute persona-left-6 persona-top-1/2 persona--translate-y-1/2 persona-pointer-events-none persona-flex persona-items-center");m&&h.appendChild(m),w=u("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"),te(w,L?.searchInput),w.type="text",w.placeholder="Search event payloads...",F=u("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"),F.type="button",F.style.display="none";let P=I(he,"12px","currentColor",2);return P&&F.appendChild(P),i.appendChild(h),i.appendChild(w),i.appendChild(F),s.appendChild(l),s.appendChild(i),G&&s.appendChild(G),s}let be,Fe=f.find(s=>s.renderEventStreamToolbar);Fe?.renderEventStreamToolbar&&a?be=Fe.renderEventStreamToolbar({config:a,defaultRenderer:()=>ye(),eventCount:e.getSize(),filteredCount:0,onFilterChange:l=>{E=l,ne(),$()},onSearchChange:l=>{M=l,ne(),$()}})??ye():be=ye();let se=u("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");se.style.display="none";function tt(){if(!n||!fe||!N)return;let s=n(),l=St(s);fe.textContent=l;let d=wt(s);G&&(G.textContent=d,d||(G.style.display="none")),N.setAttribute("aria-label",d?`Throughput: ${l}, ${d}`:`Throughput: ${l}`)}let pe=u("div","persona-flex-1 persona-min-h-0 persona-relative"),c=u("div","persona-event-stream-list persona-overflow-y-auto persona-min-h-0");c.style.height="100%";let A=u("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");te(A,L?.scrollIndicator),A.style.display="none",A.setAttribute("data-persona-scroll-to-bottom-has-label",W?"true":"false");let De=p(k,"14px","currentColor",2);De&&A.appendChild(De);let le=u("span","");le.textContent=W,A.appendChild(le);let ue=u("div","persona-flex persona-items-center persona-justify-center persona-h-full persona-text-sm persona-text-persona-muted");ue.style.display="none",pe.appendChild(c),pe.appendChild(ue),pe.appendChild(A),O.setAttribute("tabindex","0"),O.appendChild(be),O.appendChild(se),O.appendChild(pe);function rt(){let s=e.getAll(),l={};for(let i of s)l[i.type]=(l[i.type]||0)+1;let d=Object.keys(l).sort(),b=d.length!==oe.length||!d.every((i,m)=>i===oe[m]),z=!b&&d.some(i=>l[i]!==Q[i]),_=s.length!==Object.values(Q).reduce((i,m)=>i+m,0);if(!b&&!z&&!_||(oe=d,Q=l,!S))return;let X=S.value;if(S.options[0].textContent=`All events (${s.length})`,b){for(;S.options.length>1;)S.remove(1);for(let i of d){let m=u("option","");m.value=i,m.textContent=`${i} (${l[i]||0})`,S.appendChild(m)}X&&d.includes(X)?S.value=X:X&&(S.value="",E="")}else for(let i=1;i<S.options.length;i++){let m=S.options[i];m.textContent=`${m.value} (${l[m.value]||0})`}}function ot(){let s=e.getAll();if(E&&(s=s.filter(l=>l.type===E)),M){let l=M.toLowerCase();s=s.filter(d=>d.type.toLowerCase().includes(l)||d.payload.toLowerCase().includes(l))}return s}function ke(){return E!==""||M!==""}function ne(){V=0,T=0,v.resume(),A.style.display="none"}function ie(s){Z.has(s)?Z.delete(s):Z.add(s),J=s;let l=c.scrollTop,d=v.isFollowing();ee=!0,v.pause(),$(),c.scrollTop=l,d&&v.resume(),ee=!1}function He(){return Ze(c,50)}function $(){ae=Date.now(),Y=!1,tt(),rt();let s=e.getEvictedCount();s>0?(se.textContent=`${s.toLocaleString()} older events truncated`,se.style.display=""):se.style.display="none",y=ot();let l=y.length,d=e.getSize()>0;l===0&&d&&ke()?(ue.textContent=M?`No events matching '${M}'`:"No events matching filter",ue.style.display="",c.style.display="none"):(ue.style.display="none",c.style.display=""),g&&(g.title=ke()?`Copy Filtered (${l})`:"Copy All"),C&&!v.isFollowing()&&l>V&&(T+=l-V,le.textContent=W?`${W}${T>0?` (${T})`:""}`:"",A.style.display=""),V=l;let b=e.getAll(),z=b.length>0?b[0].timestamp:0,_=new Set(y.map(m=>m.id));for(let m of Z)_.has(m)||Z.delete(m);let X=E!==Ee||M!==Re,i=U.size===0&&y.length>0;if(X||i||y.length===0){c.innerHTML="",U.clear();let m=document.createDocumentFragment();for(let h=0;h<y.length;h++){let P=Me(y[h],h,z,B,Z,ie,f,a);U.set(y[h].id,P),m.appendChild(P)}c.appendChild(m),Ee=E,Re=M,J=null}else{if(J!==null){let h=U.get(J);if(h&&h.parentNode===c){let P=y.findIndex(K=>K.id===J);if(P>=0){let K=Me(y[P],P,z,B,Z,ie,f,a);c.insertBefore(K,h),h.remove(),U.set(J,K)}}J=null}let m=new Set(y.map(h=>h.id));for(let[h,P]of U)m.has(h)||(P.remove(),U.delete(h));for(let h=0;h<y.length;h++){let P=y[h];if(!U.has(P.id)){let K=Me(P,h,z,B,Z,ie,f,a);U.set(P.id,K),c.appendChild(K)}}}v.isFollowing()&&(c.scrollTop=c.scrollHeight)}function at(){if(Date.now()-ae>=it){q!==null&&(cancelAnimationFrame(q),q=null),$();return}Y||(Y=!0,q=requestAnimationFrame(()=>{q=null,$()}))}let Oe=(s,l)=>{if(!g)return;g.innerHTML="";let d=I(s,"12px","currentColor",1.5);d&&g.appendChild(d);let b=u("span","persona-text-xs");b.textContent="Copy All",g.appendChild(b),setTimeout(()=>{g.innerHTML="";let z=I(xe,"12px","currentColor",1.5);z&&g.appendChild(z);let _=u("span","persona-text-xs");_.textContent="Copy All",g.appendChild(_),g.disabled=!1},l)},qe=async()=>{if(g){g.disabled=!0;try{let s;ke()?s=y:r?(s=await r(),s.length===0&&(s=e.getAll())):s=e.getAll();let l=s.map(d=>{try{return JSON.parse(d.payload)}catch{return d.payload}});await navigator.clipboard.writeText(JSON.stringify(l,null,2)),Oe(me,1500)}catch{Oe(he,1500)}}},Ue=()=>{S&&(E=S.value,ne(),$())},Ne=()=>{!w||!F||(F.style.display=w.value?"":"none",R&&clearTimeout(R),R=setTimeout(()=>{M=w.value,ne(),$()},150))},ve=()=>{!w||!F||(w.value="",M="",F.style.display="none",R&&clearTimeout(R),ne(),$())},Ie=()=>{if(ee)return;let s=c.scrollTop,{action:l,nextLastScrollTop:d}=$e({following:v.isFollowing(),currentScrollTop:s,lastScrollTop:Le,nearBottom:He(),userScrollThreshold:1,resumeRequiresDownwardScroll:!0});Le=d,l==="resume"?(v.resume(),T=0,A.style.display="none"):l==="pause"&&(v.pause(),C&&(le.textContent=W,A.style.display=""))},We=s=>{let l=Je({following:v.isFollowing(),deltaY:s.deltaY,nearBottom:He(),resumeWhenNearBottom:!0});l==="pause"?(v.pause(),C&&(le.textContent=W,A.style.display="")):l==="resume"&&(v.resume(),T=0,A.style.display="none")},Ve=()=>{C&&(c.scrollTop=c.scrollHeight,v.resume(),T=0,A.style.display="none")},Ge=s=>{let l=s.target;if(!l||l.closest("button"))return;let d=l.closest("[data-event-id]");if(!d)return;let b=d.getAttribute("data-event-id");b&&ie(b)},ze=s=>{if((s.metaKey||s.ctrlKey)&&s.key==="f"){s.preventDefault(),w?.focus(),w?.select();return}s.key==="Escape"&&(w&&document.activeElement===w?(ve(),w.blur(),O.focus()):o&&o())};g&&g.addEventListener("click",qe),S&&S.addEventListener("change",Ue),w&&w.addEventListener("input",Ne),F&&F.addEventListener("click",ve),c.addEventListener("scroll",Ie),c.addEventListener("wheel",We,{passive:!0}),c.addEventListener("click",Ge),A.addEventListener("click",Ve),O.addEventListener("keydown",ze);function ft(){R&&clearTimeout(R),q!==null&&(cancelAnimationFrame(q),q=null),Y=!1,U.clear(),g&&g.removeEventListener("click",qe),S&&S.removeEventListener("change",Ue),w&&w.removeEventListener("input",Ne),F&&F.removeEventListener("click",ve),c.removeEventListener("scroll",Ie),c.removeEventListener("wheel",We),c.removeEventListener("click",Ge),A.removeEventListener("click",Ve),O.removeEventListener("keydown",ze)}return{element:O,update:at,destroy:ft}}}var ge=class{constructor(e=2e3,r=null){this.head=0;this.count=0;this.totalCaptured=0;this.eventTypesSet=new Set;this.maxSize=e,this.buffer=new Array(e),this.store=r}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 r=e.length>this.maxSize?e.slice(e.length-this.maxSize):e;for(let o of r)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,r.length}getAllFromStore(){return this.store?this.store.getAll():Promise.resolve(this.getAll())}getRecent(e){let r=this.getAll();return e>=r.length?r:r.slice(r.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 Ce=class{constructor(e="persona-event-stream",r="events"){this.db=null;this.pendingWrites=[];this.flushScheduled=!1;this.isDestroyed=!1;this.dbName=e,this.storeName=r}open(){return new Promise((e,r)=>{try{let o=indexedDB.open(this.dbName,1);o.onupgradeneeded=()=>{let a=o.result;a.objectStoreNames.contains(this.storeName)||a.createObjectStore(this.storeName,{keyPath:"id"}).createIndex("timestamp","timestamp",{unique:!1})},o.onsuccess=()=>{this.db=o.result,e()},o.onerror=()=>{r(o.error)}}catch(o){r(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 a of e)o.put(a)}catch{}}getAll(){return new Promise((e,r)=>{if(!this.db){e([]);return}try{let n=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).index("timestamp").getAll();n.onsuccess=()=>{e(n.result)},n.onerror=()=>{r(n.error)}}catch(o){r(o)}})}getCount(){return new Promise((e,r)=>{if(!this.db){e(0);return}try{let f=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).count();f.onsuccess=()=>{e(f.result)},f.onerror=()=>{r(f.error)}}catch(o){r(o)}})}clear(){return new Promise((e,r)=>{if(!this.db){e();return}this.pendingWrites=[];try{let f=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).clear();f.onsuccess=()=>{e()},f.onerror=()=>{r(f.error)}}catch(o){r(o)}})}close(){this.db&&(this.db.close(),this.db=null)}destroy(){return this.isDestroyed=!0,this.pendingWrites=[],this.close(),new Promise((e,r)=>{try{let o=indexedDB.deleteDatabase(this.dbName);o.onsuccess=()=>{e()},o.onerror=()=>{r(o.error)}}catch(o){r(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 a of e)o.put(a)}catch{}}};var bt=new Set(["flow_start","flow_run_start","agent_start","dispatch_start","run_start"]),kt=new Set(["step_start","execution_start"]),vt=new Set(["step_delta","step_chunk","chunk","agent_turn_delta"]),Tt=new Set(["step_complete","agent_turn_complete"]),At=new Set(["flow_complete","agent_complete"]),Qe=new Set(["step_error","flow_error","agent_error","dispatch_error","error"]),et=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),D=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,j=(t,e)=>{let r=t[e];return et(r)?r:void 0};function Be(t){return t>0?Math.max(1,Math.ceil(t/4)):0}function Se(t,e){if(!(t<=0||e===void 0||e<250))return t/(e/1e3)}function Pt(t,e){return typeof e.type=="string"?e.type:t}function Mt(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 Bt(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 Ye(t){let e=j(t,"result"),r=[j(t,"tokens"),j(t,"totalTokens"),e?j(e,"tokens"):void 0,j(t,"usage"),e?j(e,"usage"):void 0];for(let o of r){if(!o)continue;let a=D(o.output)??D(o.outputTokens)??D(o.completionTokens);if(a!==void 0)return a}return D(t.outputTokens)??D(t.completionTokens)??(e?D(e.outputTokens)??D(e.completionTokens):void 0)}function Lt(t){let e=j(t,"result");return D(t.executionTime)??D(t.executionTimeMs)??D(t.execution_time)??D(t.duration)??(e?D(e.executionTime)??D(e.executionTimeMs):void 0)}function Et(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var we=class{constructor(e=Et){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 r=this.now()-e.firstDeltaAt;return{...this.metric,durationMs:r,tokensPerSecond:Se(this.metric.outputTokens,r)}}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,r){if(!et(r)){Qe.has(e)&&this.run&&(this.run=null,this.metric={status:"error"});return}let o=Pt(e,r),a=this.now();if(bt.has(o)){this.startRun(a);return}if(kt.has(o)){this.run||this.startRun(a);return}if(vt.has(o)){if(!Bt(o,r))return;let f=Mt(r);if(!f)return;this.run||this.startRun(a);let n=this.run;n.firstDeltaAt??(n.firstDeltaAt=a),n.visibleCharCount+=f.length;let p=n.exactOutputTokens+Be(n.visibleCharCount),x=a-n.firstDeltaAt;this.metric={status:"running",tokensPerSecond:Se(p,x),outputTokens:p,durationMs:x,source:n.exactOutputTokens>0?"usage":"estimate"};return}if(Tt.has(o)){if(!this.run)return;let f=this.run,n=Ye(r);n!==void 0&&(f.exactOutputTokens+=n,f.visibleCharCount=0);let p=f.exactOutputTokens>0,x=f.exactOutputTokens+Be(f.visibleCharCount),C=this.resolveDuration(f,r,a);this.metric={status:"running",tokensPerSecond:Se(x,C),outputTokens:x,durationMs:C,source:p?"usage":"estimate"};return}if(At.has(o)){if(!this.run)return;let f=this.run,n=Ye(r),p=n??f.exactOutputTokens+Be(f.visibleCharCount),x=n!==void 0||f.exactOutputTokens>0?"usage":"estimate",C=this.resolveDuration(f,r,a);this.metric={status:"complete",tokensPerSecond:Se(p,C),outputTokens:p,durationMs:C,source:x},this.run=null;return}if(Qe.has(o)){if(!this.run)return;this.run=null,this.metric={status:"error"}}}resolveDuration(e,r,o){let a=e.firstDeltaAt!==void 0?o-e.firstDeltaAt:void 0;return a!==void 0&&a>=250?a:Lt(r)??o-e.startedAt}};export{ge as EventStreamBuffer,Ce as EventStreamStore,we as ThroughputTracker,je as createEventStreamView};
|
|
1
|
+
var u=(t,e)=>{let r=document.createElement(t);return e&&(r.className=e),r};var me=[["path",{d:"M20 6 9 17l-5-5"}]];var Te=[["path",{d:"m6 9 6 6 6-6"}]];var Ae=[["path",{d:"m9 18 6-6-6-6"}]];var xe=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4"}],["path",{d:"M21 14H11"}],["path",{d:"m15 10-4 4 4 4"}]];var ce=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"}]];var Pe=[["path",{d:"m21 21-4.34-4.34"}],["circle",{cx:"11",cy:"11",r:"8"}]];var he=[["path",{d:"M18 6 6 18"}],["path",{d:"m6 6 12 12"}]];var I=(t,e=24,r="currentColor",o=2)=>{if(!Array.isArray(t))return null;let a=document.createElementNS("http://www.w3.org/2000/svg","svg");return a.setAttribute("width",String(e)),a.setAttribute("height",String(e)),a.setAttribute("viewBox","0 0 24 24"),a.setAttribute("fill","none"),a.setAttribute("stroke",r),a.setAttribute("stroke-width",String(o)),a.setAttribute("stroke-linecap","round"),a.setAttribute("stroke-linejoin","round"),a.setAttribute("aria-hidden","true"),t.forEach(f=>{if(!Array.isArray(f)||f.length<2)return;let n=f[0],p=f[1];if(!p)return;let x=document.createElementNS("http://www.w3.org/2000/svg",n);Object.entries(p).forEach(([C,v])=>{C!=="stroke"&&x.setAttribute(C,String(v))}),a.appendChild(x)}),a};function Ze(t=!0){let e=t;return{isFollowing:()=>e,pause:()=>e?(e=!1,!0):!1,resume:()=>e?!1:(e=!0,!0)}}function dt(t){return Math.max(0,t.scrollHeight-t.clientHeight)}function $e(t,e){return dt(t)-t.scrollTop<=e}function Je(t){let{following:e,currentScrollTop:r,lastScrollTop:o,nearBottom:a,userScrollThreshold:f,isAutoScrolling:n=!1,pauseOnUpwardScroll:p=!1,pauseWhenAwayFromBottom:x=!0,resumeRequiresDownwardScroll:C=!1}=t,v=r-o;return n||Math.abs(v)<f?{action:"none",delta:v,nextLastScrollTop:r}:!e&&a&&(!C||v>0)?{action:"resume",delta:v,nextLastScrollTop:r}:e&&p&&v<0?{action:"pause",delta:v,nextLastScrollTop:r}:e&&x&&!a?{action:"pause",delta:v,nextLastScrollTop:r}:{action:"none",delta:v,nextLastScrollTop:r}}function je(t){let{following:e,deltaY:r,nearBottom:o=!1,resumeWhenNearBottom:a=!1}=t;return e&&r<0?"pause":!e&&a&&r>0&&o?"resume":"none"}function te(t,e){e&&e.split(/\s+/).forEach(r=>r&&t.classList.add(r))}var Be={flow_:{bg:"var(--persona-event-badge-flow-bg, #dcfce7)",text:"var(--persona-event-badge-flow-fg, #15803d)"},step_:{bg:"var(--persona-event-badge-step-bg, #f5f5f5)",text:"var(--persona-event-badge-step-fg, #0a0a0a)"},reasoning_:{bg:"var(--persona-event-badge-reasoning-bg, #fef9c3)",text:"var(--persona-event-badge-reasoning-fg, #a16207)"},tool_:{bg:"var(--persona-event-badge-tool-bg, #f3e8ff)",text:"var(--persona-event-badge-tool-fg, #6b21a8)"},agent_:{bg:"var(--persona-event-badge-agent-bg, #ccfbf1)",text:"var(--persona-event-badge-agent-fg, #115e59)"},error:{bg:"var(--persona-event-badge-error-bg, #fee2e2)",text:"var(--persona-event-badge-error-fg, #b91c1c)"}};Be.execution_error=Be.error;var pt={bg:"var(--persona-event-badge-default-bg, #f3f4f6)",text:"var(--persona-event-badge-default-fg, #4b5563)"},it=["flowName","stepName","reasoningText","text","name","tool","toolName"],mt=100;function Qe(t,e){if(e[t])return e[t];for(let r of Object.keys(e))if(r.endsWith("_")&&t.startsWith(r))return e[r]}function xt(t,e){return(e&&Qe(t,e))??Qe(t,Be)??pt}function ct(t){return/^#[0-9a-fA-F]{6}$/.test(t)?`${t}50`:`color-mix(in srgb, ${t} 31%, transparent)`}function ht(t,e){return`+${((t-e)/1e3).toFixed(3)}s`}function gt(t){let e=new Date(t),r=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),a=String(e.getSeconds()).padStart(2,"0"),f=String(e.getMilliseconds()).padStart(3,"0");return`${r}:${o}:${a}.${f}`}function Ct(t,e){try{let r=JSON.parse(t);if(typeof r!="object"||r===null)return null;for(let o of e){let a=o.split("."),f=r;for(let n of a)if(f&&typeof f=="object"&&f!==null)f=f[n];else{f=void 0;break}if(typeof f=="string"&&f.trim())return f.trim()}}catch{}return null}function St(t){return navigator.clipboard?.writeText?navigator.clipboard.writeText(t):new Promise(e=>{let r=document.createElement("textarea");r.value=t,r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r),e()})}function wt(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 bt(t){return t.tokensPerSecond===void 0||!Number.isFinite(t.tokensPerSecond)?"-- tok/s":`${t.tokensPerSecond.toFixed(1)} tok/s`}function yt(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 vt(t,e,r){let o,a;try{a=JSON.parse(t.payload),o=JSON.stringify(a,null,2)}catch{a=t.payload,o=t.payload}let f=e.find(p=>p.renderEventStreamPayload);if(f?.renderEventStreamPayload&&r){let p=f.renderEventStreamPayload({event:t,config:r,defaultRenderer:()=>n(),parsedPayload:a});if(p)return p}return n();function n(){let p=u("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]"),x=u("pre","persona-m-0 persona-whitespace-pre-wrap persona-break-all persona-text-[11px] persona-text-persona-secondary persona-font-mono");return x.textContent=o,p.appendChild(x),p}}function Me(t,e,r,o,a,f,n,p){let x=a.has(t.id),C=u("div","persona-border-b persona-border-persona-divider persona-text-xs");te(C,o.classNames?.eventRow);let v=n.find(B=>B.renderEventStreamRow);if(v?.renderEventStreamRow&&p){let B=v.renderEventStreamRow({event:t,index:e,config:p,defaultRenderer:()=>W(),isExpanded:x,onToggleExpand:()=>f(t.id)});if(B)return C.appendChild(B),C}return C.appendChild(W()),C;function W(){let B=u("div",""),H=u("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");H.setAttribute("data-event-id",t.id);let re=u("span","persona-flex-shrink-0 persona-text-persona-muted persona-w-4 persona-text-center persona-flex persona-items-center persona-justify-center"),L=I(x?Te:Ae,"14px","currentColor",2);L&&re.appendChild(L);let O=u("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";O.textContent=b==="relative"?ht(t.timestamp,r):gt(t.timestamp);let E=null;o.showSequenceNumbers!==!1&&(E=u("span","persona-text-[11px] persona-text-persona-muted persona-font-mono persona-flex-shrink-0 persona-w-[28px] persona-text-right"),E.textContent=String(e+1));let M=xt(t.type,o.badgeColors),R=u("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");R.style.backgroundColor=M.bg,R.style.color=M.text,R.style.borderColor=ct(M.text),R.textContent=t.type;let oe=o.descriptionFields??it,Q=Ct(t.payload,oe),V=null;Q&&(V=u("span","persona-text-[11px] persona-text-persona-secondary persona-truncate persona-min-w-0"),V.textContent=Q);let k=u("div","persona-flex-1 persona-min-w-0"),T=u("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"),ae=I(ce,"12px","currentColor",1.5);return ae&&T.appendChild(ae),T.addEventListener("click",async Y=>{Y.stopPropagation(),await St(wt(t)),T.innerHTML="";let q=I(me,"12px","currentColor",1.5);q&&T.appendChild(q),setTimeout(()=>{T.innerHTML="";let ee=I(ce,"12px","currentColor",1.5);ee&&T.appendChild(ee)},1500)}),H.appendChild(re),H.appendChild(O),E&&H.appendChild(E),H.appendChild(R),V&&H.appendChild(V),H.appendChild(k),H.appendChild(T),B.appendChild(H),x&&B.appendChild(vt(t,n,p)),B}}function Ye(t){let{buffer:e,getFullHistory:r,onClose:o,config:a,plugins:f=[],getThroughput:n}=t,p=t.renderIconByName??(()=>null),x=a?.features?.scrollToBottom,C=x?.enabled!==!1,v=x?.iconName??"arrow-down",W=x?.label??"",B=a?.features?.eventStream??{},H=f.find(L=>L.renderEventStreamView);if(H?.renderEventStreamView&&a){let L=H.renderEventStreamView({config:a,events:e.getAll(),defaultRenderer:()=>re().element,onClose:o});if(L)return{element:L,update:()=>{},destroy:()=>{}}}return re();function re(){let L=B.classNames,O=u("div","persona-event-stream-view persona-flex persona-flex-col persona-flex-1 persona-min-h-0");te(O,L?.panel);let b=[],E="",M="",R=null,oe=[],Q={},V=0,k=Ze(),T=0,ae=0,Y=!1,q=null,ee=!1,Ee=0,Z=new Set,U=new Map,Re="",Fe="",J=null,S,g,w,F,fe=null,N=null,G=null;function be(){let s=u("div","persona-event-toolbar persona-relative persona-flex persona-flex-col persona-flex-shrink-0"),l=u("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(te(l,L?.headerBar),n){N=u("div","persona-relative persona-flex persona-items-center persona-gap-1.5 persona-whitespace-nowrap"),N.style.cursor="help",fe=u("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"),fe.textContent="-- tok/s",G=u("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"),G.style.display="none",G.style.pointerEvents="none";let K=N,de=G,ut=()=>{if(!de.textContent)return;let Xe=K.getBoundingClientRect(),Ke=s.getBoundingClientRect();de.style.left=`${Xe.left-Ke.left}px`,de.style.top=`${Xe.bottom-Ke.top+4}px`,de.style.display="block"},nt=()=>{de.style.display="none"};N.addEventListener("mouseenter",ut),N.addEventListener("mouseleave",nt),N.appendChild(fe)}let d=u("div","persona-flex-1");S=u("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 y=u("option","");y.value="",y.textContent="All events (0)",S.appendChild(y),g=u("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"),g.type="button",g.title="Copy All";let _=I(xe,"12px","currentColor",1.5);_&&g.appendChild(_);let X=u("span","persona-event-copy-all persona-text-xs");X.textContent="Copy All",g.appendChild(X),N&&l.appendChild(N),l.appendChild(d),l.appendChild(S),l.appendChild(g);let i=u("div","persona-relative persona-px-4 persona-py-2.5 persona-border-b persona-border-persona-divider persona-bg-persona-surface");te(i,L?.searchBar);let m=I(Pe,"14px","var(--persona-muted, #9ca3af)",1.5),h=u("span","persona-absolute persona-left-6 persona-top-1/2 persona--translate-y-1/2 persona-pointer-events-none persona-flex persona-items-center");m&&h.appendChild(m),w=u("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"),te(w,L?.searchInput),w.type="text",w.placeholder="Search event payloads...",F=u("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"),F.type="button",F.style.display="none";let P=I(he,"12px","currentColor",2);return P&&F.appendChild(P),i.appendChild(h),i.appendChild(w),i.appendChild(F),s.appendChild(l),s.appendChild(i),G&&s.appendChild(G),s}let ye,De=f.find(s=>s.renderEventStreamToolbar);De?.renderEventStreamToolbar&&a?ye=De.renderEventStreamToolbar({config:a,defaultRenderer:()=>be(),eventCount:e.getSize(),filteredCount:0,onFilterChange:l=>{E=l,ne(),$()},onSearchChange:l=>{M=l,ne(),$()}})??be():ye=be();let se=u("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");se.style.display="none";function ot(){if(!n||!fe||!N)return;let s=n(),l=bt(s);fe.textContent=l;let d=yt(s);G&&(G.textContent=d,d||(G.style.display="none")),N.setAttribute("aria-label",d?`Throughput: ${l}, ${d}`:`Throughput: ${l}`)}let pe=u("div","persona-flex-1 persona-min-h-0 persona-relative"),c=u("div","persona-event-stream-list persona-overflow-y-auto persona-min-h-0");c.style.height="100%";let A=u("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");te(A,L?.scrollIndicator),A.style.display="none",A.setAttribute("data-persona-scroll-to-bottom-has-label",W?"true":"false");let He=p(v,"14px","currentColor",2);He&&A.appendChild(He);let le=u("span","");le.textContent=W,A.appendChild(le);let ue=u("div","persona-flex persona-items-center persona-justify-center persona-h-full persona-text-sm persona-text-persona-muted");ue.style.display="none",pe.appendChild(c),pe.appendChild(ue),pe.appendChild(A),O.setAttribute("tabindex","0"),O.appendChild(ye),O.appendChild(se),O.appendChild(pe);function at(){let s=e.getAll(),l={};for(let i of s)l[i.type]=(l[i.type]||0)+1;let d=Object.keys(l).sort(),y=d.length!==oe.length||!d.every((i,m)=>i===oe[m]),z=!y&&d.some(i=>l[i]!==Q[i]),_=s.length!==Object.values(Q).reduce((i,m)=>i+m,0);if(!y&&!z&&!_||(oe=d,Q=l,!S))return;let X=S.value;if(S.options[0].textContent=`All events (${s.length})`,y){for(;S.options.length>1;)S.remove(1);for(let i of d){let m=u("option","");m.value=i,m.textContent=`${i} (${l[i]||0})`,S.appendChild(m)}X&&d.includes(X)?S.value=X:X&&(S.value="",E="")}else for(let i=1;i<S.options.length;i++){let m=S.options[i];m.textContent=`${m.value} (${l[m.value]||0})`}}function ft(){let s=e.getAll();if(E&&(s=s.filter(l=>l.type===E)),M){let l=M.toLowerCase();s=s.filter(d=>d.type.toLowerCase().includes(l)||d.payload.toLowerCase().includes(l))}return s}function ve(){return E!==""||M!==""}function ne(){V=0,T=0,k.resume(),A.style.display="none"}function ie(s){Z.has(s)?Z.delete(s):Z.add(s),J=s;let l=c.scrollTop,d=k.isFollowing();ee=!0,k.pause(),$(),c.scrollTop=l,d&&k.resume(),ee=!1}function Oe(){return $e(c,50)}function $(){ae=Date.now(),Y=!1,ot(),at();let s=e.getEvictedCount();s>0?(se.textContent=`${s.toLocaleString()} older events truncated`,se.style.display=""):se.style.display="none",b=ft();let l=b.length,d=e.getSize()>0;l===0&&d&&ve()?(ue.textContent=M?`No events matching '${M}'`:"No events matching filter",ue.style.display="",c.style.display="none"):(ue.style.display="none",c.style.display=""),g&&(g.title=ve()?`Copy Filtered (${l})`:"Copy All"),C&&!k.isFollowing()&&l>V&&(T+=l-V,le.textContent=W?`${W}${T>0?` (${T})`:""}`:"",A.style.display=""),V=l;let y=e.getAll(),z=y.length>0?y[0].timestamp:0,_=new Set(b.map(m=>m.id));for(let m of Z)_.has(m)||Z.delete(m);let X=E!==Re||M!==Fe,i=U.size===0&&b.length>0;if(X||i||b.length===0){c.innerHTML="",U.clear();let m=document.createDocumentFragment();for(let h=0;h<b.length;h++){let P=Me(b[h],h,z,B,Z,ie,f,a);U.set(b[h].id,P),m.appendChild(P)}c.appendChild(m),Re=E,Fe=M,J=null}else{if(J!==null){let h=U.get(J);if(h&&h.parentNode===c){let P=b.findIndex(K=>K.id===J);if(P>=0){let K=Me(b[P],P,z,B,Z,ie,f,a);c.insertBefore(K,h),h.remove(),U.set(J,K)}}J=null}let m=new Set(b.map(h=>h.id));for(let[h,P]of U)m.has(h)||(P.remove(),U.delete(h));for(let h=0;h<b.length;h++){let P=b[h];if(!U.has(P.id)){let K=Me(P,h,z,B,Z,ie,f,a);U.set(P.id,K),c.appendChild(K)}}}k.isFollowing()&&(c.scrollTop=c.scrollHeight)}function st(){if(Date.now()-ae>=mt){q!==null&&(cancelAnimationFrame(q),q=null),$();return}Y||(Y=!0,q=requestAnimationFrame(()=>{q=null,$()}))}let qe=(s,l)=>{if(!g)return;g.innerHTML="";let d=I(s,"12px","currentColor",1.5);d&&g.appendChild(d);let y=u("span","persona-text-xs");y.textContent="Copy All",g.appendChild(y),setTimeout(()=>{g.innerHTML="";let z=I(xe,"12px","currentColor",1.5);z&&g.appendChild(z);let _=u("span","persona-text-xs");_.textContent="Copy All",g.appendChild(_),g.disabled=!1},l)},Ue=async()=>{if(g){g.disabled=!0;try{let s;ve()?s=b:r?(s=await r(),s.length===0&&(s=e.getAll())):s=e.getAll();let l=s.map(d=>{try{return JSON.parse(d.payload)}catch{return d.payload}});await navigator.clipboard.writeText(JSON.stringify(l,null,2)),qe(me,1500)}catch{qe(he,1500)}}},Ne=()=>{S&&(E=S.value,ne(),$())},Ie=()=>{!w||!F||(F.style.display=w.value?"":"none",R&&clearTimeout(R),R=setTimeout(()=>{M=w.value,ne(),$()},150))},ke=()=>{!w||!F||(w.value="",M="",F.style.display="none",R&&clearTimeout(R),ne(),$())},We=()=>{if(ee)return;let s=c.scrollTop,{action:l,nextLastScrollTop:d}=Je({following:k.isFollowing(),currentScrollTop:s,lastScrollTop:Ee,nearBottom:Oe(),userScrollThreshold:1,resumeRequiresDownwardScroll:!0});Ee=d,l==="resume"?(k.resume(),T=0,A.style.display="none"):l==="pause"&&(k.pause(),C&&(le.textContent=W,A.style.display=""))},Ve=s=>{let l=je({following:k.isFollowing(),deltaY:s.deltaY,nearBottom:Oe(),resumeWhenNearBottom:!0});l==="pause"?(k.pause(),C&&(le.textContent=W,A.style.display="")):l==="resume"&&(k.resume(),T=0,A.style.display="none")},Ge=()=>{C&&(c.scrollTop=c.scrollHeight,k.resume(),T=0,A.style.display="none")},ze=s=>{let l=s.target;if(!l||l.closest("button"))return;let d=l.closest("[data-event-id]");if(!d)return;let y=d.getAttribute("data-event-id");y&&ie(y)},_e=s=>{if((s.metaKey||s.ctrlKey)&&s.key==="f"){s.preventDefault(),w?.focus(),w?.select();return}s.key==="Escape"&&(w&&document.activeElement===w?(ke(),w.blur(),O.focus()):o&&o())};g&&g.addEventListener("click",Ue),S&&S.addEventListener("change",Ne),w&&w.addEventListener("input",Ie),F&&F.addEventListener("click",ke),c.addEventListener("scroll",We),c.addEventListener("wheel",Ve,{passive:!0}),c.addEventListener("click",ze),A.addEventListener("click",Ge),O.addEventListener("keydown",_e);function lt(){R&&clearTimeout(R),q!==null&&(cancelAnimationFrame(q),q=null),Y=!1,U.clear(),g&&g.removeEventListener("click",Ue),S&&S.removeEventListener("change",Ne),w&&w.removeEventListener("input",Ie),F&&F.removeEventListener("click",ke),c.removeEventListener("scroll",We),c.removeEventListener("wheel",Ve),c.removeEventListener("click",ze),A.removeEventListener("click",Ge),O.removeEventListener("keydown",_e)}return{element:O,update:st,destroy:lt}}}var ge=class{constructor(e=2e3,r=null){this.head=0;this.count=0;this.totalCaptured=0;this.eventTypesSet=new Set;this.maxSize=e,this.buffer=new Array(e),this.store=r}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 r=e.length>this.maxSize?e.slice(e.length-this.maxSize):e;for(let o of r)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,r.length}getAllFromStore(){return this.store?this.store.getAll():Promise.resolve(this.getAll())}getRecent(e){let r=this.getAll();return e>=r.length?r:r.slice(r.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 Ce=class{constructor(e="persona-event-stream",r="events"){this.db=null;this.pendingWrites=[];this.flushScheduled=!1;this.isDestroyed=!1;this.dbName=e,this.storeName=r}open(){return new Promise((e,r)=>{try{let o=indexedDB.open(this.dbName,1);o.onupgradeneeded=()=>{let a=o.result;a.objectStoreNames.contains(this.storeName)||a.createObjectStore(this.storeName,{keyPath:"id"}).createIndex("timestamp","timestamp",{unique:!1})},o.onsuccess=()=>{this.db=o.result,e()},o.onerror=()=>{r(o.error)}}catch(o){r(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 a of e)o.put(a)}catch{}}getAll(){return new Promise((e,r)=>{if(!this.db){e([]);return}try{let n=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).index("timestamp").getAll();n.onsuccess=()=>{e(n.result)},n.onerror=()=>{r(n.error)}}catch(o){r(o)}})}getCount(){return new Promise((e,r)=>{if(!this.db){e(0);return}try{let f=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).count();f.onsuccess=()=>{e(f.result)},f.onerror=()=>{r(f.error)}}catch(o){r(o)}})}clear(){return new Promise((e,r)=>{if(!this.db){e();return}this.pendingWrites=[];try{let f=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).clear();f.onsuccess=()=>{e()},f.onerror=()=>{r(f.error)}}catch(o){r(o)}})}close(){this.db&&(this.db.close(),this.db=null)}destroy(){return this.isDestroyed=!0,this.pendingWrites=[],this.close(),new Promise((e,r)=>{try{let o=indexedDB.deleteDatabase(this.dbName);o.onsuccess=()=>{e()},o.onerror=()=>{r(o.error)}}catch(o){r(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 a of e)o.put(a)}catch{}}};var kt=new Set(["flow_start","flow_run_start","agent_start","dispatch_start","run_start"]),Tt=new Set(["step_start","execution_start"]),At=new Set(["step_delta","step_chunk","chunk","agent_turn_delta"]),Pt=new Set(["step_complete","agent_turn_complete"]),Mt=new Set(["flow_complete","agent_complete"]),et=new Set(["step_error","flow_error","agent_error","dispatch_error","error"]),rt=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),D=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,j=(t,e)=>{let r=t[e];return rt(r)?r:void 0};function Le(t){return t>0?Math.max(1,Math.ceil(t/4)):0}function Se(t,e){if(!(t<=0||e===void 0||e<250))return t/(e/1e3)}function Bt(t,e){return typeof e.type=="string"?e.type:t}function Lt(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 Et(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 tt(t){let e=j(t,"result"),r=[j(t,"tokens"),j(t,"totalTokens"),e?j(e,"tokens"):void 0,j(t,"usage"),e?j(e,"usage"):void 0];for(let o of r){if(!o)continue;let a=D(o.output)??D(o.outputTokens)??D(o.completionTokens);if(a!==void 0)return a}return D(t.outputTokens)??D(t.completionTokens)??(e?D(e.outputTokens)??D(e.completionTokens):void 0)}function Rt(t){let e=j(t,"result");return D(t.executionTime)??D(t.executionTimeMs)??D(t.execution_time)??D(t.duration)??(e?D(e.executionTime)??D(e.executionTimeMs):void 0)}function Ft(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var we=class{constructor(e=Ft){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 r=this.now()-e.firstDeltaAt;return{...this.metric,durationMs:r,tokensPerSecond:Se(this.metric.outputTokens,r)}}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,r){if(!rt(r)){et.has(e)&&this.run&&(this.run=null,this.metric={status:"error"});return}let o=Bt(e,r),a=this.now();if(kt.has(o)){this.startRun(a);return}if(Tt.has(o)){this.run||this.startRun(a);return}if(At.has(o)){if(!Et(o,r))return;let f=Lt(r);if(!f)return;this.run||this.startRun(a);let n=this.run;n.firstDeltaAt??(n.firstDeltaAt=a),n.visibleCharCount+=f.length;let p=n.exactOutputTokens+Le(n.visibleCharCount),x=a-n.firstDeltaAt;this.metric={status:"running",tokensPerSecond:Se(p,x),outputTokens:p,durationMs:x,source:n.exactOutputTokens>0?"usage":"estimate"};return}if(Pt.has(o)){if(!this.run)return;let f=this.run,n=tt(r);n!==void 0&&(f.exactOutputTokens+=n,f.visibleCharCount=0);let p=f.exactOutputTokens>0,x=f.exactOutputTokens+Le(f.visibleCharCount),C=this.resolveDuration(f,r,a);this.metric={status:"running",tokensPerSecond:Se(x,C),outputTokens:x,durationMs:C,source:p?"usage":"estimate"};return}if(Mt.has(o)){if(!this.run)return;let f=this.run,n=tt(r),p=n??f.exactOutputTokens+Le(f.visibleCharCount),x=n!==void 0||f.exactOutputTokens>0?"usage":"estimate",C=this.resolveDuration(f,r,a);this.metric={status:"complete",tokensPerSecond:Se(p,C),outputTokens:p,durationMs:C,source:x},this.run=null;return}if(et.has(o)){if(!this.run)return;this.run=null,this.metric={status:"error"}}}resolveDuration(e,r,o){let a=e.firstDeltaAt!==void 0?o-e.firstDeltaAt:void 0;return a!==void 0&&a>=250?a:Rt(r)??o-e.startedAt}};export{ge as EventStreamBuffer,Ce as EventStreamStore,we as ThroughputTracker,Ye as createEventStreamView};
|
|
2
2
|
/*! Bundled license information:
|
|
3
3
|
|
|
4
4
|
lucide/dist/esm/icons/check.mjs:
|