@runtypelabs/persona 4.22.0 → 4.23.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/animations/glyph-cycle.d.cts +1 -1
- package/dist/animations/glyph-cycle.d.ts +1 -1
- package/dist/animations/{types-B_JdVK9o.d.cts → types-9Vxm-PPz.d.cts} +136 -6
- package/dist/animations/{types-B_JdVK9o.d.ts → types-9Vxm-PPz.d.ts} +136 -6
- package/dist/animations/wipe.d.cts +1 -1
- package/dist/animations/wipe.d.ts +1 -1
- package/dist/animations-extra.d.cts +136 -6
- package/dist/animations-extra.d.ts +136 -6
- package/dist/approval-ui.d.cts +148 -14
- package/dist/approval-ui.d.ts +148 -14
- package/dist/artifacts-ui.d.cts +148 -14
- package/dist/artifacts-ui.d.ts +148 -14
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.js +1 -1
- package/dist/context-mentions.d.cts +148 -14
- package/dist/context-mentions.d.ts +148 -14
- package/dist/event-stream-view-GL3ADRY2.js +1 -0
- package/dist/event-stream-view.cjs +1 -1
- package/dist/event-stream-view.d.cts +148 -14
- package/dist/event-stream-view.d.ts +148 -14
- package/dist/event-stream-view.js +1 -1
- package/dist/forms-ui.d.cts +161 -23
- package/dist/forms-ui.d.ts +161 -23
- package/dist/history-view.d.cts +136 -6
- package/dist/history-view.d.ts +136 -6
- package/dist/index.cjs +67 -67
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +172 -27
- package/dist/index.d.ts +172 -27
- package/dist/index.global.js +51 -51
- 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.map +1 -1
- package/dist/session-reconnect.d.cts +148 -14
- package/dist/session-reconnect.d.ts +148 -14
- package/dist/smart-dom-reader.d.cts +148 -14
- package/dist/smart-dom-reader.d.ts +148 -14
- package/dist/testing.cjs +3 -3
- package/dist/testing.d.cts +3 -4
- package/dist/testing.d.ts +3 -4
- package/dist/testing.js +3 -3
- package/dist/theme-editor-preview.cjs +71 -71
- package/dist/theme-editor-preview.d.cts +154 -14
- package/dist/theme-editor-preview.d.ts +154 -14
- package/dist/theme-editor-preview.js +48 -48
- package/dist/theme-editor.d.cts +148 -14
- package/dist/theme-editor.d.ts +148 -14
- package/dist/voice-runtime.d.cts +6 -2
- package/dist/voice-runtime.d.ts +6 -2
- package/package.json +1 -1
- package/src/ask-user-question-tool.ts +1 -1
- package/src/client-history-rest.test.ts +2 -1
- package/src/client-visitor-history.test.ts +106 -4
- package/src/client.composer-options.test.ts +1 -1
- package/src/client.interrupt.test.ts +2 -2
- package/src/client.test.ts +477 -915
- package/src/client.ts +134 -494
- package/src/client.unified-tools.test.ts +76 -0
- package/src/components/event-stream-badge-theming.test.ts +3 -0
- package/src/components/event-stream-view.test.ts +76 -76
- package/src/components/event-stream-view.ts +5 -0
- package/src/components/tool-bubble.test.ts +12 -0
- package/src/components/tool-bubble.ts +13 -2
- package/src/event-stream-view-bundle.test.ts +2 -2
- package/src/generated/runtype-openapi-contract.ts +129 -1
- package/src/internal/runtype-history-provider.test.ts +2 -2
- package/src/launcher-global.ts +1 -1
- package/src/session-history.test.ts +1 -1
- package/src/session.quote.test.ts +1 -1
- package/src/session.resubmit-from.test.ts +1 -1
- package/src/session.test.ts +5 -5
- package/src/session.ts +95 -36
- package/src/suggest-replies-tool.ts +1 -1
- package/src/testing/mock-stream.test.ts +37 -16
- package/src/testing/mock-stream.ts +14 -9
- package/src/types.ts +19 -14
- package/src/ui.ask-user-question-plugin.test.ts +7 -7
- package/src/ui.composer-defer-one.test.ts +6 -34
- package/src/ui.composer-draft-persistence.test.ts +1 -1
- package/src/ui.composer-quote.test.ts +1 -1
- package/src/ui.message-history-actions.test.ts +1 -1
- package/src/ui.streaming-coalescing.test.ts +10 -13
- package/src/ui.ts +80 -32
- package/src/ui.typing-indicator.test.ts +216 -0
- package/src/ui.voice-custom-provider.test.ts +211 -0
- package/src/utils/event-stream-buffer.test.ts +13 -13
- package/src/utils/event-stream-capture.test.ts +20 -20
- package/src/utils/throughput-tracker.test.ts +100 -142
- package/src/utils/throughput-tracker.ts +18 -132
- package/src/utils/voice-support.ts +18 -1
- package/src/voice/voice-turn-tracker.ts +18 -0
- package/src/webmcp-bridge.ts +1 -1
- package/dist/event-stream-view-FKWDY3UB.js +0 -1
- package/src/utils/__fixtures__/unified-translator.oracle.ts +0 -717
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as _e,d as We,e as $e,f as Ve}from"./chunk-VK6JOIYJ.js";import{a as O}from"./chunk-7NQ4ZTHF.js";import{a as l}from"./chunk-76IELU7F.js";import{Check as Je,ChevronDown as at,ChevronRight as it,Clipboard as ze,ClipboardCopy as Ue,Search as lt,X as je}from"lucide";function Z(t,e){e&&e.split(/\s+/).forEach(n=>n&&t.classList.add(n))}var q={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)"}};q.execution_error=q.error;q.execution_=q.flow_;q.turn_=q.agent_;q.text_=q.agent_;var pt={bg:"var(--persona-event-badge-default-bg, #f3f4f6)",text:"var(--persona-event-badge-default-fg, #4b5563)"},ut=["flowName","stepName","reasoningText","text","name","tool","toolName"],dt=100;function qe(t,e){if(e[t])return e[t];for(let n of Object.keys(e))if(n.endsWith("_")&&t.startsWith(n))return e[n]}function ct(t,e){return(e&&qe(t,e))??qe(t,q)??pt}function ft(t){return/^#[0-9a-fA-F]{6}$/.test(t)?`${t}50`:`color-mix(in srgb, ${t} 31%, transparent)`}function mt(t,e){return`+${((t-e)/1e3).toFixed(3)}s`}function ht(t){let e=new Date(t),n=String(e.getHours()).padStart(2,"0"),r=String(e.getMinutes()).padStart(2,"0"),i=String(e.getSeconds()).padStart(2,"0"),a=String(e.getMilliseconds()).padStart(3,"0");return`${n}:${r}:${i}.${a}`}function gt(t,e){try{let n=JSON.parse(t);if(typeof n!="object"||n===null)return null;for(let r of e){let i=r.split("."),a=n;for(let p of i)if(a&&typeof a=="object"&&a!==null)a=a[p];else{a=void 0;break}if(typeof a=="string"&&a.trim())return a.trim()}}catch{}return null}function vt(t){return navigator.clipboard?.writeText?navigator.clipboard.writeText(t):new Promise(e=>{let n=document.createElement("textarea");n.value=t,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n),e()})}function bt(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 yt(t){return t.tokensPerSecond===void 0||!Number.isFinite(t.tokensPerSecond)?"-- tok/s":`${t.tokensPerSecond.toFixed(1)} tok/s`}function xt(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 St(t,e,n){let r,i;try{i=JSON.parse(t.payload),r=JSON.stringify(i,null,2)}catch{i=t.payload,r=t.payload}let a=e.find(g=>g.renderEventStreamPayload);if(a?.renderEventStreamPayload&&n){let g=a.renderEventStreamPayload({event:t,config:n,defaultRenderer:()=>p(),parsedPayload:i});if(g)return g}return p();function p(){let g=l("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]"),y=l("pre","persona-m-0 persona-whitespace-pre-wrap persona-break-all persona-text-[11px] persona-text-persona-secondary persona-font-mono");return y.textContent=r,g.appendChild(y),g}}function xe(t,e,n,r,i,a,p,g){let y=i.has(t.id),x=l("div","persona-border-b persona-border-persona-divider persona-text-xs");Z(x,r.classNames?.eventRow);let pe=p.find(L=>L.renderEventStreamRow);if(pe?.renderEventStreamRow&&g){let L=pe.renderEventStreamRow({event:t,index:e,config:g,defaultRenderer:()=>_(),isExpanded:y,onToggleExpand:()=>a(t.id)});if(L)return x.appendChild(L),x}return x.appendChild(_()),x;function _(){let L=l("div",""),B=l("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");B.setAttribute("data-event-id",t.id);let ee=l("span","persona-flex-shrink-0 persona-text-persona-muted persona-w-4 persona-text-center persona-flex persona-items-center persona-justify-center"),M=O(y?at:it,"14px","currentColor",2);M&&ee.appendChild(M);let D=l("span","persona-text-[11px] persona-text-persona-muted persona-whitespace-nowrap persona-flex-shrink-0 persona-font-mono persona-w-[70px]"),S=r.timestampFormat??"relative";D.textContent=S==="relative"?mt(t.timestamp,n):ht(t.timestamp);let A=null;r.showSequenceNumbers!==!1&&(A=l("span","persona-text-[11px] persona-text-persona-muted persona-font-mono persona-flex-shrink-0 persona-w-[28px] persona-text-right"),A.textContent=String(e+1));let R=ct(t.type,r.badgeColors),N=l("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");N.style.backgroundColor=R.bg,N.style.color=R.text,N.style.borderColor=ft(R.text),N.textContent=t.type;let te=r.descriptionFields??ut,Y=gt(t.payload,te),W=null;Y&&(W=l("span","persona-text-[11px] persona-text-persona-secondary persona-truncate persona-min-w-0"),W.textContent=Y);let E=l("div","persona-flex-1 persona-min-w-0"),T=l("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"),ne=O(ze,"12px","currentColor",1.5);return ne&&T.appendChild(ne),T.addEventListener("click",async X=>{X.stopPropagation(),await vt(bt(t)),T.innerHTML="";let H=O(Je,"12px","currentColor",1.5);H&&T.appendChild(H),setTimeout(()=>{T.innerHTML="";let Q=O(ze,"12px","currentColor",1.5);Q&&T.appendChild(Q)},1500)}),B.appendChild(ee),B.appendChild(D),A&&B.appendChild(A),B.appendChild(N),W&&B.appendChild(W),B.appendChild(E),B.appendChild(T),L.appendChild(B),y&&L.appendChild(St(t,p,g)),L}}function Ge(t){let{buffer:e,getFullHistory:n,onClose:r,config:i,plugins:a=[],getThroughput:p}=t,g=t.renderIconByName??(()=>null),y=i?.features?.scrollToBottom,x=y?.enabled!==!1,pe=y?.iconName??"arrow-down",_=y?.label??"",L=i?.features?.eventStream??{},B=a.find(M=>M.renderEventStreamView);if(B?.renderEventStreamView&&i){let M=B.renderEventStreamView({config:i,events:e.getAll(),defaultRenderer:()=>ee().element,onClose:r});if(M)return{element:M,update:()=>{},destroy:()=>{}}}return ee();function ee(){let M=L.classNames,D=l("div","persona-event-stream-view persona-flex persona-flex-col persona-flex-1 persona-min-h-0");Z(D,M?.panel);let S=[],A="",R="",N=null,te=[],Y={},W=0,E=_e(),T=0,ne=0,X=!1,H=null,Q=!1,Ce=0,J=new Set,F=new Map,Ee="",Te="",K=null,v,h,b,P,re=null,I=null,$=null;function ge(){let o=l("div","persona-event-toolbar persona-relative persona-flex persona-flex-col persona-flex-shrink-0"),s=l("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(Z(s,M?.headerBar),p){I=l("div","persona-relative persona-flex persona-items-center persona-gap-1.5 persona-whitespace-nowrap"),I.style.cursor="help",re=l("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"),re.textContent="-- tok/s",$=l("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"),$.style.display="none",$.style.pointerEvents="none";let j=I,le=$,ot=()=>{if(!le.textContent)return;let Ie=j.getBoundingClientRect(),Oe=o.getBoundingClientRect();le.style.left=`${Ie.left-Oe.left}px`,le.style.top=`${Ie.bottom-Oe.top+4}px`,le.style.display="block"},st=()=>{le.style.display="none"};I.addEventListener("mouseenter",ot),I.addEventListener("mouseleave",st),I.appendChild(re)}let u=l("div","persona-flex-1");v=l("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 C=l("option","");C.value="",C.textContent="All events (0)",v.appendChild(C),h=l("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"),h.type="button",h.title="Copy All";let z=O(Ue,"12px","currentColor",1.5);z&&h.appendChild(z);let U=l("span","persona-event-copy-all persona-text-xs");U.textContent="Copy All",h.appendChild(U),I&&s.appendChild(I),s.appendChild(u),s.appendChild(v),s.appendChild(h);let d=l("div","persona-relative persona-px-4 persona-py-2.5 persona-border-b persona-border-persona-divider persona-bg-persona-surface");Z(d,M?.searchBar);let c=O(lt,"14px","var(--persona-muted, #9ca3af)",1.5),m=l("span","persona-absolute persona-left-6 persona-top-1/2 persona--translate-y-1/2 persona-pointer-events-none persona-flex persona-items-center");c&&m.appendChild(c),b=l("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"),Z(b,M?.searchInput),b.type="text",b.placeholder="Search event payloads...",P=l("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"),P.type="button",P.style.display="none";let k=O(je,"12px","currentColor",2);return k&&P.appendChild(k),d.appendChild(m),d.appendChild(b),d.appendChild(P),o.appendChild(s),o.appendChild(d),$&&o.appendChild($),o}let ve,we=a.find(o=>o.renderEventStreamToolbar);we?.renderEventStreamToolbar&&i?ve=we.renderEventStreamToolbar({config:i,defaultRenderer:()=>ge(),eventCount:e.getSize(),filteredCount:0,onFilterChange:s=>{A=s,ie(),G()},onSearchChange:s=>{R=s,ie(),G()}})??ge():ve=ge();let oe=l("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");oe.style.display="none";function Ze(){if(!p||!re||!I)return;let o=p(),s=yt(o);re.textContent=s;let u=xt(o);$&&($.textContent=u,u||($.style.display="none")),I.setAttribute("aria-label",u?`Throughput: ${s}, ${u}`:`Throughput: ${s}`)}let ue=l("div","persona-flex-1 persona-min-h-0 persona-relative"),f=l("div","persona-event-stream-list persona-overflow-y-auto persona-min-h-0");f.style.height="100%";let w=l("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");Z(w,M?.scrollIndicator),w.style.display="none",w.setAttribute("data-persona-scroll-to-bottom-has-label",_?"true":"false");let ke=g(pe,"14px","currentColor",2);ke&&w.appendChild(ke);let se=l("span","");se.textContent=_,w.appendChild(se);let ae=l("div","persona-flex persona-items-center persona-justify-center persona-h-full persona-text-sm persona-text-persona-muted");ae.style.display="none",ue.appendChild(f),ue.appendChild(ae),ue.appendChild(w),D.setAttribute("tabindex","0"),D.appendChild(ve),D.appendChild(oe),D.appendChild(ue);function et(){let o=e.getAll(),s={};for(let d of o)s[d.type]=(s[d.type]||0)+1;let u=Object.keys(s).sort(),C=u.length!==te.length||!u.every((d,c)=>d===te[c]),V=!C&&u.some(d=>s[d]!==Y[d]),z=o.length!==Object.values(Y).reduce((d,c)=>d+c,0);if(!C&&!V&&!z||(te=u,Y=s,!v))return;let U=v.value;if(v.options[0].textContent=`All events (${o.length})`,C){for(;v.options.length>1;)v.remove(1);for(let d of u){let c=l("option","");c.value=d,c.textContent=`${d} (${s[d]||0})`,v.appendChild(c)}U&&u.includes(U)?v.value=U:U&&(v.value="",A="")}else for(let d=1;d<v.options.length;d++){let c=v.options[d];c.textContent=`${c.value} (${s[c.value]||0})`}}function tt(){let o=e.getAll();if(A&&(o=o.filter(s=>s.type===A)),R){let s=R.toLowerCase();o=o.filter(u=>u.type.toLowerCase().includes(s)||u.payload.toLowerCase().includes(s))}return o}function be(){return A!==""||R!==""}function ie(){W=0,T=0,E.resume(),w.style.display="none"}function de(o){J.has(o)?J.delete(o):J.add(o),K=o;let s=f.scrollTop,u=E.isFollowing();Q=!0,E.pause(),G(),f.scrollTop=s,u&&E.resume(),Q=!1}function Re(){return We(f,50)}function G(){ne=Date.now(),X=!1,Ze(),et();let o=e.getEvictedCount();o>0?(oe.textContent=`${o.toLocaleString()} older events truncated`,oe.style.display=""):oe.style.display="none",S=tt();let s=S.length,u=e.getSize()>0;s===0&&u&&be()?(ae.textContent=R?`No events matching '${R}'`:"No events matching filter",ae.style.display="",f.style.display="none"):(ae.style.display="none",f.style.display=""),h&&(h.title=be()?`Copy Filtered (${s})`:"Copy All"),x&&!E.isFollowing()&&s>W&&(T+=s-W,se.textContent=_?`${_}${T>0?` (${T})`:""}`:"",w.style.display=""),W=s;let C=e.getAll(),V=C.length>0?C[0].timestamp:0,z=new Set(S.map(c=>c.id));for(let c of J)z.has(c)||J.delete(c);let U=A!==Ee||R!==Te,d=F.size===0&&S.length>0;if(U||d||S.length===0){f.innerHTML="",F.clear();let c=document.createDocumentFragment();for(let m=0;m<S.length;m++){let k=xe(S[m],m,V,L,J,de,a,i);F.set(S[m].id,k),c.appendChild(k)}f.appendChild(c),Ee=A,Te=R,K=null}else{if(K!==null){let m=F.get(K);if(m&&m.parentNode===f){let k=S.findIndex(j=>j.id===K);if(k>=0){let j=xe(S[k],k,V,L,J,de,a,i);f.insertBefore(j,m),m.remove(),F.set(K,j)}}K=null}let c=new Set(S.map(m=>m.id));for(let[m,k]of F)c.has(m)||(k.remove(),F.delete(m));for(let m=0;m<S.length;m++){let k=S[m];if(!F.has(k.id)){let j=xe(k,m,V,L,J,de,a,i);F.set(k.id,j),f.appendChild(j)}}}E.isFollowing()&&(f.scrollTop=f.scrollHeight)}function nt(){if(Date.now()-ne>=dt){H!==null&&(cancelAnimationFrame(H),H=null),G();return}X||(X=!0,H=requestAnimationFrame(()=>{H=null,G()}))}let Le=(o,s)=>{if(!h)return;h.innerHTML="";let u=O(o,"12px","currentColor",1.5);u&&h.appendChild(u);let C=l("span","persona-text-xs");C.textContent="Copy All",h.appendChild(C),setTimeout(()=>{h.innerHTML="";let V=O(Ue,"12px","currentColor",1.5);V&&h.appendChild(V);let z=l("span","persona-text-xs");z.textContent="Copy All",h.appendChild(z),h.disabled=!1},s)},Me=async()=>{if(h){h.disabled=!0;try{let o;be()?o=S:n?(o=await n(),o.length===0&&(o=e.getAll())):o=e.getAll();let s=o.map(u=>{try{return JSON.parse(u.payload)}catch{return u.payload}});await navigator.clipboard.writeText(JSON.stringify(s,null,2)),Le(Je,1500)}catch{Le(je,1500)}}},Ae=()=>{v&&(A=v.value,ie(),G())},Ne=()=>{!b||!P||(P.style.display=b.value?"":"none",N&&clearTimeout(N),N=setTimeout(()=>{R=b.value,ie(),G()},150))},ye=()=>{!b||!P||(b.value="",R="",P.style.display="none",N&&clearTimeout(N),ie(),G())},Pe=()=>{if(Q)return;let o=f.scrollTop,{action:s,nextLastScrollTop:u}=$e({following:E.isFollowing(),currentScrollTop:o,lastScrollTop:Ce,nearBottom:Re(),userScrollThreshold:1,resumeRequiresDownwardScroll:!0});Ce=u,s==="resume"?(E.resume(),T=0,w.style.display="none"):s==="pause"&&(E.pause(),x&&(se.textContent=_,w.style.display=""))},Be=o=>{let s=Ve({following:E.isFollowing(),deltaY:o.deltaY,nearBottom:Re(),resumeWhenNearBottom:!0});s==="pause"?(E.pause(),x&&(se.textContent=_,w.style.display="")):s==="resume"&&(E.resume(),T=0,w.style.display="none")},De=()=>{x&&(f.scrollTop=f.scrollHeight,E.resume(),T=0,w.style.display="none")},He=o=>{let s=o.target;if(!s||s.closest("button"))return;let u=s.closest("[data-event-id]");if(!u)return;let C=u.getAttribute("data-event-id");C&&de(C)},Fe=o=>{if((o.metaKey||o.ctrlKey)&&o.key==="f"){o.preventDefault(),b?.focus(),b?.select();return}o.key==="Escape"&&(b&&document.activeElement===b?(ye(),b.blur(),D.focus()):r&&r())};h&&h.addEventListener("click",Me),v&&v.addEventListener("change",Ae),b&&b.addEventListener("input",Ne),P&&P.addEventListener("click",ye),f.addEventListener("scroll",Pe),f.addEventListener("wheel",Be,{passive:!0}),f.addEventListener("click",He),w.addEventListener("click",De),D.addEventListener("keydown",Fe);function rt(){N&&clearTimeout(N),H!==null&&(cancelAnimationFrame(H),H=null),X=!1,F.clear(),h&&h.removeEventListener("click",Me),v&&v.removeEventListener("change",Ae),b&&b.removeEventListener("input",Ne),P&&P.removeEventListener("click",ye),f.removeEventListener("scroll",Pe),f.removeEventListener("wheel",Be),f.removeEventListener("click",He),w.removeEventListener("click",De),D.removeEventListener("keydown",Fe)}return{element:D,update:nt,destroy:rt}}}var ce=class{constructor(e=2e3,n=null){this.head=0;this.count=0;this.totalCaptured=0;this.eventTypesSet=new Set;this.maxSize=e,this.buffer=new Array(e),this.store=n}push(e){this.buffer[this.head]=e,this.head=(this.head+1)%this.maxSize,this.count<this.maxSize&&this.count++,this.totalCaptured++,this.eventTypesSet.add(e.type),this.store?.put(e)}getAll(){return this.count===0?[]:this.count<this.maxSize?this.buffer.slice(0,this.count):[...this.buffer.slice(this.head,this.maxSize),...this.buffer.slice(0,this.head)]}async restore(){if(!this.store)return 0;let e=await this.store.getAll();if(e.length===0)return 0;let n=e.length>this.maxSize?e.slice(e.length-this.maxSize):e;for(let r of n)this.buffer[this.head]=r,this.head=(this.head+1)%this.maxSize,this.count<this.maxSize&&this.count++,this.eventTypesSet.add(r.type);return this.totalCaptured=e.length,n.length}getAllFromStore(){return this.store?this.store.getAll():Promise.resolve(this.getAll())}getRecent(e){let n=this.getAll();return e>=n.length?n:n.slice(n.length-e)}getSize(){return this.count}getTotalCaptured(){return this.totalCaptured}getEvictedCount(){return this.totalCaptured-this.count}clear(){this.buffer=new Array(this.maxSize),this.head=0,this.count=0,this.totalCaptured=0,this.eventTypesSet.clear(),this.store?.clear()}destroy(){this.buffer=[],this.head=0,this.count=0,this.totalCaptured=0,this.eventTypesSet.clear(),this.store?.destroy()}getEventTypes(){return Array.from(this.eventTypesSet)}};var fe=class{constructor(e="persona-event-stream",n="events"){this.db=null;this.pendingWrites=[];this.flushScheduled=!1;this.isDestroyed=!1;this.dbName=e,this.storeName=n}open(){return new Promise((e,n)=>{try{let r=indexedDB.open(this.dbName,1);r.onupgradeneeded=()=>{let i=r.result;i.objectStoreNames.contains(this.storeName)||i.createObjectStore(this.storeName,{keyPath:"id"}).createIndex("timestamp","timestamp",{unique:!1})},r.onsuccess=()=>{this.db=r.result,e()},r.onerror=()=>{n(r.error)}}catch(r){n(r)}})}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 r=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName);for(let i of e)r.put(i)}catch{}}getAll(){return new Promise((e,n)=>{if(!this.db){e([]);return}try{let p=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).index("timestamp").getAll();p.onsuccess=()=>{e(p.result)},p.onerror=()=>{n(p.error)}}catch(r){n(r)}})}getCount(){return new Promise((e,n)=>{if(!this.db){e(0);return}try{let a=this.db.transaction(this.storeName,"readonly").objectStore(this.storeName).count();a.onsuccess=()=>{e(a.result)},a.onerror=()=>{n(a.error)}}catch(r){n(r)}})}clear(){return new Promise((e,n)=>{if(!this.db){e();return}this.pendingWrites=[];try{let a=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).clear();a.onsuccess=()=>{e()},a.onerror=()=>{n(a.error)}}catch(r){n(r)}})}close(){this.db&&(this.db.close(),this.db=null)}destroy(){return this.isDestroyed=!0,this.pendingWrites=[],this.close(),new Promise((e,n)=>{try{let r=indexedDB.deleteDatabase(this.dbName);r.onsuccess=()=>{e()},r.onerror=()=>{n(r.error)}}catch(r){n(r)}})}flushWrites(){if(this.flushScheduled=!1,!this.db||this.isDestroyed||this.pendingWrites.length===0)return;let e=this.pendingWrites;this.pendingWrites=[];try{let r=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName);for(let i of e)r.put(i)}catch{}}};var Ct=new Set(["step_start","turn_start"]),Et=new Set(["step_complete","turn_complete"]),Xe=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),Qe=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,Ke=(t,e)=>{let n=t[e];return Xe(n)?n:void 0};function Se(t){return t>0?Math.max(1,Math.ceil(t/4)):0}function me(t,e){if(!(t<=0||e===void 0||e<250))return t/(e/1e3)}function Tt(t,e){return typeof e.type=="string"?e.type:t}function Ye(t){let e=Ke(t,"tokens")??Ke(t,"totalTokens");return e?Qe(e.output):void 0}function wt(t){return Qe(t.durationMs)}function kt(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var he=class{constructor(e=kt){this.metric={status:"idle"};this.run=null;this.now=e}getMetric(){let e=this.run;if(e&&this.metric.status==="running"&&e.firstDeltaAt!==void 0&&this.metric.outputTokens!==void 0){let n=this.now()-e.firstDeltaAt;return{...this.metric,durationMs:n,tokensPerSecond:me(this.metric.outputTokens,n)}}return this.metric}reset(){this.run=null,this.metric={status:"idle"}}startRun(e){this.run={startedAt:e,visibleCharCount:0,exactOutputTokens:0},this.metric={status:"running"}}processEvent(e,n){if(!Xe(n)){e==="execution_error"&&this.run&&(this.run=null,this.metric={status:"error"});return}let r=Tt(e,n),i=this.now();if(r==="execution_start"){this.startRun(i);return}if(Ct.has(r)){this.run||this.startRun(i);return}if(r==="text_delta"){let a=typeof n.delta=="string"?n.delta:"";if(!a)return;this.run||this.startRun(i);let p=this.run;p.firstDeltaAt??(p.firstDeltaAt=i),p.visibleCharCount+=a.length;let g=p.exactOutputTokens+Se(p.visibleCharCount),y=i-p.firstDeltaAt;this.metric={status:"running",tokensPerSecond:me(g,y),outputTokens:g,durationMs:y,source:p.exactOutputTokens>0?"usage":"estimate"};return}if(Et.has(r)){if(!this.run)return;let a=this.run,p=Ye(n);p!==void 0&&(a.exactOutputTokens+=p,a.visibleCharCount=0);let g=a.exactOutputTokens>0,y=a.exactOutputTokens+Se(a.visibleCharCount),x=this.resolveDuration(a,n,i);this.metric={status:"running",tokensPerSecond:me(y,x),outputTokens:y,durationMs:x,source:g?"usage":"estimate"};return}if(r==="execution_complete"){if(!this.run)return;let a=this.run,p=Ye(n),g=p??a.exactOutputTokens+Se(a.visibleCharCount),y=p!==void 0||a.exactOutputTokens>0?"usage":"estimate",x=this.resolveDuration(a,n,i);this.metric={status:"complete",tokensPerSecond:me(g,x),outputTokens:g,durationMs:x,source:y},this.run=null;return}if(r==="execution_error"||r==="error"&&n.recoverable===!1){if(!this.run)return;this.run=null,this.metric={status:"error"}}}resolveDuration(e,n,r){let i=e.firstDeltaAt!==void 0?r-e.firstDeltaAt:void 0;return i!==void 0&&i>=250?i:wt(n)??r-e.startedAt}};export{ce as EventStreamBuffer,fe as EventStreamStore,he as ThroughputTracker,Ge as createEventStreamView};
|
|
@@ -1,4 +1,4 @@
|
|
|
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});
|
|
1
|
+
"use strict";var ke=Object.defineProperty;var dt=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames;var it=Object.prototype.hasOwnProperty;var mt=(t,e)=>{for(var r in e)ke(t,r,{get:e[r],enumerable:!0})},xt=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of pt(e))!it.call(t,o)&&o!==r&&ke(t,o,{get:()=>e[o],enumerable:!(a=dt(e,o))||a.enumerable});return t};var ct=t=>xt(ke({},"__esModule",{value:!0}),t);var Ht={};mt(Ht,{EventStreamBuffer:()=>de,EventStreamStore:()=>pe,ThroughputTracker:()=>ie,createEventStreamView:()=>Be});module.exports=ct(Ht);var u=(t,e)=>{let r=document.createElement(t);return e&&(r.className=e),r};var ce=[["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 he=[["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 ge=[["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 Ce=[["path",{d:"M18 6 6 18"}],["path",{d:"m6 6 12 12"}]];var N=(t,e=24,r="currentColor",a=2)=>{if(!Array.isArray(t))return null;let o=document.createElementNS("http://www.w3.org/2000/svg","svg");return o.setAttribute("width",String(e)),o.setAttribute("height",String(e)),o.setAttribute("viewBox","0 0 24 24"),o.setAttribute("fill","none"),o.setAttribute("stroke",r),o.setAttribute("stroke-width",String(a)),o.setAttribute("stroke-linecap","round"),o.setAttribute("stroke-linejoin","round"),o.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))}),o.appendChild(x)}),o};function Ze(t=!0){let e=t;return{isFollowing:()=>e,pause:()=>e?(e=!1,!0):!1,resume:()=>e?!1:(e=!0,!0)}}function ht(t){return Math.max(0,t.scrollHeight-t.clientHeight)}function $e(t,e){return ht(t)-t.scrollTop<=e}function Je(t){let{following:e,currentScrollTop:r,lastScrollTop:a,nearBottom:o,userScrollThreshold:f,isAutoScrolling:n=!1,pauseOnUpwardScroll:p=!1,pauseWhenAwayFromBottom:x=!0,resumeRequiresDownwardScroll:C=!1}=t,v=r-a;return n||Math.abs(v)<f?{action:"none",delta:v,nextLastScrollTop:r}:!e&&o&&(!C||v>0)?{action:"resume",delta:v,nextLastScrollTop:r}:e&&p&&v<0?{action:"pause",delta:v,nextLastScrollTop:r}:e&&x&&!o?{action:"pause",delta:v,nextLastScrollTop:r}:{action:"none",delta:v,nextLastScrollTop:r}}function je(t){let{following:e,deltaY:r,nearBottom:a=!1,resumeWhenNearBottom:o=!1}=t;return e&&r<0?"pause":!e&&o&&r>0&&a?"resume":"none"}function ee(t,e){e&&e.split(/\s+/).forEach(r=>r&&t.classList.add(r))}var _={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)"}};_.execution_error=_.error;_.execution_=_.flow_;_.turn_=_.agent_;_.text_=_.agent_;var gt={bg:"var(--persona-event-badge-default-bg, #f3f4f6)",text:"var(--persona-event-badge-default-fg, #4b5563)"},Ct=["flowName","stepName","reasoningText","text","name","tool","toolName"],St=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 wt(t,e){return(e&&Qe(t,e))??Qe(t,_)??gt}function bt(t){return/^#[0-9a-fA-F]{6}$/.test(t)?`${t}50`:`color-mix(in srgb, ${t} 31%, transparent)`}function yt(t,e){return`+${((t-e)/1e3).toFixed(3)}s`}function vt(t){let e=new Date(t),r=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0"),o=String(e.getSeconds()).padStart(2,"0"),f=String(e.getMilliseconds()).padStart(3,"0");return`${r}:${a}:${o}.${f}`}function kt(t,e){try{let r=JSON.parse(t);if(typeof r!="object"||r===null)return null;for(let a of e){let o=a.split("."),f=r;for(let n of o)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 Tt(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 At(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 Pt(t){return t.tokensPerSecond===void 0||!Number.isFinite(t.tokensPerSecond)?"-- tok/s":`${t.tokensPerSecond.toFixed(1)} tok/s`}function Mt(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 Bt(t,e,r){let a,o;try{o=JSON.parse(t.payload),a=JSON.stringify(o,null,2)}catch{o=t.payload,a=t.payload}let f=e.find(p=>p.renderEventStreamPayload);if(f?.renderEventStreamPayload&&r){let p=f.renderEventStreamPayload({event:t,config:r,defaultRenderer:()=>n(),parsedPayload:o});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=a,p.appendChild(x),p}}function Me(t,e,r,a,o,f,n,p){let x=o.has(t.id),C=u("div","persona-border-b persona-border-persona-divider persona-text-xs");ee(C,a.classNames?.eventRow);let v=n.find(B=>B.renderEventStreamRow);if(v?.renderEventStreamRow&&p){let B=v.renderEventStreamRow({event:t,index:e,config:p,defaultRenderer:()=>I(),isExpanded:x,onToggleExpand:()=>f(t.id)});if(B)return C.appendChild(B),C}return C.appendChild(I()),C;function I(){let B=u("div",""),D=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");D.setAttribute("data-event-id",t.id);let te=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=N(x?Te:Ae,"14px","currentColor",2);L&&te.appendChild(L);let H=u("span","persona-text-[11px] persona-text-persona-muted persona-whitespace-nowrap persona-flex-shrink-0 persona-font-mono persona-w-[70px]"),b=a.timestampFormat??"relative";H.textContent=b==="relative"?yt(t.timestamp,r):vt(t.timestamp);let F=null;a.showSequenceNumbers!==!1&&(F=u("span","persona-text-[11px] persona-text-persona-muted persona-font-mono persona-flex-shrink-0 persona-w-[28px] persona-text-right"),F.textContent=String(e+1));let M=wt(t.type,a.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=bt(M.text),R.textContent=t.type;let re=a.descriptionFields??Ct,j=kt(t.payload,re),W=null;j&&(W=u("span","persona-text-[11px] persona-text-persona-secondary persona-truncate persona-min-w-0"),W.textContent=j);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=N(ge,"12px","currentColor",1.5);return ae&&T.appendChild(ae),T.addEventListener("click",async Q=>{Q.stopPropagation(),await Tt(At(t)),T.innerHTML="";let q=N(ce,"12px","currentColor",1.5);q&&T.appendChild(q),setTimeout(()=>{T.innerHTML="";let Y=N(ge,"12px","currentColor",1.5);Y&&T.appendChild(Y)},1500)}),D.appendChild(te),D.appendChild(H),F&&D.appendChild(F),D.appendChild(R),W&&D.appendChild(W),D.appendChild(k),D.appendChild(T),B.appendChild(D),x&&B.appendChild(Bt(t,n,p)),B}}function Be(t){let{buffer:e,getFullHistory:r,onClose:a,config:o,plugins:f=[],getThroughput:n}=t,p=t.renderIconByName??(()=>null),x=o?.features?.scrollToBottom,C=x?.enabled!==!1,v=x?.iconName??"arrow-down",I=x?.label??"",B=o?.features?.eventStream??{},D=f.find(L=>L.renderEventStreamView);if(D?.renderEventStreamView&&o){let L=D.renderEventStreamView({config:o,events:e.getAll(),defaultRenderer:()=>te().element,onClose:a});if(L)return{element:L,update:()=>{},destroy:()=>{}}}return te();function te(){let L=B.classNames,H=u("div","persona-event-stream-view persona-flex persona-flex-col persona-flex-1 persona-min-h-0");ee(H,L?.panel);let b=[],F="",M="",R=null,re=[],j={},W=0,k=Ze(),T=0,ae=0,Q=!1,q=null,Y=!1,Fe=0,Z=new Set,O=new Map,Re="",Ee="",J=null,S,g,w,E,oe=null,U=null,V=null;function we(){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(ee(l,L?.headerBar),n){U=u("div","persona-relative persona-flex persona-items-center persona-gap-1.5 persona-whitespace-nowrap"),U.style.cursor="help",oe=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"),oe.textContent="-- tok/s",V=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"),V.style.display="none",V.style.pointerEvents="none";let K=U,ne=V,ut=()=>{if(!ne.textContent)return;let Ke=K.getBoundingClientRect(),_e=s.getBoundingClientRect();ne.style.left=`${Ke.left-_e.left}px`,ne.style.top=`${Ke.bottom-_e.top+4}px`,ne.style.display="block"},nt=()=>{ne.style.display="none"};U.addEventListener("mouseenter",ut),U.addEventListener("mouseleave",nt),U.appendChild(oe)}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 z=N(he,"12px","currentColor",1.5);z&&g.appendChild(z);let X=u("span","persona-event-copy-all persona-text-xs");X.textContent="Copy All",g.appendChild(X),U&&l.appendChild(U),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");ee(i,L?.searchBar);let m=N(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"),ee(w,L?.searchInput),w.type="text",w.placeholder="Search event payloads...",E=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"),E.type="button",E.style.display="none";let P=N(Ce,"12px","currentColor",2);return P&&E.appendChild(P),i.appendChild(h),i.appendChild(w),i.appendChild(E),s.appendChild(l),s.appendChild(i),V&&s.appendChild(V),s}let be,De=f.find(s=>s.renderEventStreamToolbar);De?.renderEventStreamToolbar&&o?be=De.renderEventStreamToolbar({config:o,defaultRenderer:()=>we(),eventCount:e.getSize(),filteredCount:0,onFilterChange:l=>{F=l,ue(),$()},onSearchChange:l=>{M=l,ue(),$()}})??we():be=we();let fe=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");fe.style.display="none";function at(){if(!n||!oe||!U)return;let s=n(),l=Pt(s);oe.textContent=l;let d=Mt(s);V&&(V.textContent=d,d||(V.style.display="none")),U.setAttribute("aria-label",d?`Throughput: ${l}, ${d}`:`Throughput: ${l}`)}let me=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");ee(A,L?.scrollIndicator),A.style.display="none",A.setAttribute("data-persona-scroll-to-bottom-has-label",I?"true":"false");let He=p(v,"14px","currentColor",2);He&&A.appendChild(He);let se=u("span","");se.textContent=I,A.appendChild(se);let le=u("div","persona-flex persona-items-center persona-justify-center persona-h-full persona-text-sm persona-text-persona-muted");le.style.display="none",me.appendChild(c),me.appendChild(le),me.appendChild(A),H.setAttribute("tabindex","0"),H.appendChild(be),H.appendChild(fe),H.appendChild(me);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(),y=d.length!==re.length||!d.every((i,m)=>i===re[m]),G=!y&&d.some(i=>l[i]!==j[i]),z=s.length!==Object.values(j).reduce((i,m)=>i+m,0);if(!y&&!G&&!z||(re=d,j=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="",F="")}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(F&&(s=s.filter(l=>l.type===F)),M){let l=M.toLowerCase();s=s.filter(d=>d.type.toLowerCase().includes(l)||d.payload.toLowerCase().includes(l))}return s}function ye(){return F!==""||M!==""}function ue(){W=0,T=0,k.resume(),A.style.display="none"}function xe(s){Z.has(s)?Z.delete(s):Z.add(s),J=s;let l=c.scrollTop,d=k.isFollowing();Y=!0,k.pause(),$(),c.scrollTop=l,d&&k.resume(),Y=!1}function qe(){return $e(c,50)}function $(){ae=Date.now(),Q=!1,at(),ot();let s=e.getEvictedCount();s>0?(fe.textContent=`${s.toLocaleString()} older events truncated`,fe.style.display=""):fe.style.display="none",b=ft();let l=b.length,d=e.getSize()>0;l===0&&d&&ye()?(le.textContent=M?`No events matching '${M}'`:"No events matching filter",le.style.display="",c.style.display="none"):(le.style.display="none",c.style.display=""),g&&(g.title=ye()?`Copy Filtered (${l})`:"Copy All"),C&&!k.isFollowing()&&l>W&&(T+=l-W,se.textContent=I?`${I}${T>0?` (${T})`:""}`:"",A.style.display=""),W=l;let y=e.getAll(),G=y.length>0?y[0].timestamp:0,z=new Set(b.map(m=>m.id));for(let m of Z)z.has(m)||Z.delete(m);let X=F!==Re||M!==Ee,i=O.size===0&&b.length>0;if(X||i||b.length===0){c.innerHTML="",O.clear();let m=document.createDocumentFragment();for(let h=0;h<b.length;h++){let P=Me(b[h],h,G,B,Z,xe,f,o);O.set(b[h].id,P),m.appendChild(P)}c.appendChild(m),Re=F,Ee=M,J=null}else{if(J!==null){let h=O.get(J);if(h&&h.parentNode===c){let P=b.findIndex(K=>K.id===J);if(P>=0){let K=Me(b[P],P,G,B,Z,xe,f,o);c.insertBefore(K,h),h.remove(),O.set(J,K)}}J=null}let m=new Set(b.map(h=>h.id));for(let[h,P]of O)m.has(h)||(P.remove(),O.delete(h));for(let h=0;h<b.length;h++){let P=b[h];if(!O.has(P.id)){let K=Me(P,h,G,B,Z,xe,f,o);O.set(P.id,K),c.appendChild(K)}}}k.isFollowing()&&(c.scrollTop=c.scrollHeight)}function st(){if(Date.now()-ae>=St){q!==null&&(cancelAnimationFrame(q),q=null),$();return}Q||(Q=!0,q=requestAnimationFrame(()=>{q=null,$()}))}let Oe=(s,l)=>{if(!g)return;g.innerHTML="";let d=N(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 G=N(he,"12px","currentColor",1.5);G&&g.appendChild(G);let z=u("span","persona-text-xs");z.textContent="Copy All",g.appendChild(z),g.disabled=!1},l)},Ue=async()=>{if(g){g.disabled=!0;try{let s;ye()?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)),Oe(ce,1500)}catch{Oe(Ce,1500)}}},Ne=()=>{S&&(F=S.value,ue(),$())},Ie=()=>{!w||!E||(E.style.display=w.value?"":"none",R&&clearTimeout(R),R=setTimeout(()=>{M=w.value,ue(),$()},150))},ve=()=>{!w||!E||(w.value="",M="",E.style.display="none",R&&clearTimeout(R),ue(),$())},We=()=>{if(Y)return;let s=c.scrollTop,{action:l,nextLastScrollTop:d}=Je({following:k.isFollowing(),currentScrollTop:s,lastScrollTop:Fe,nearBottom:qe(),userScrollThreshold:1,resumeRequiresDownwardScroll:!0});Fe=d,l==="resume"?(k.resume(),T=0,A.style.display="none"):l==="pause"&&(k.pause(),C&&(se.textContent=I,A.style.display=""))},Ve=s=>{let l=je({following:k.isFollowing(),deltaY:s.deltaY,nearBottom:qe(),resumeWhenNearBottom:!0});l==="pause"?(k.pause(),C&&(se.textContent=I,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&&xe(y)},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(),H.focus()):a&&a())};g&&g.addEventListener("click",Ue),S&&S.addEventListener("change",Ne),w&&w.addEventListener("input",Ie),E&&E.addEventListener("click",ve),c.addEventListener("scroll",We),c.addEventListener("wheel",Ve,{passive:!0}),c.addEventListener("click",ze),A.addEventListener("click",Ge),H.addEventListener("keydown",Xe);function lt(){R&&clearTimeout(R),q!==null&&(cancelAnimationFrame(q),q=null),Q=!1,O.clear(),g&&g.removeEventListener("click",Ue),S&&S.removeEventListener("change",Ne),w&&w.removeEventListener("input",Ie),E&&E.removeEventListener("click",ve),c.removeEventListener("scroll",We),c.removeEventListener("wheel",Ve),c.removeEventListener("click",ze),A.removeEventListener("click",Ge),H.removeEventListener("keydown",Xe)}return{element:H,update:st,destroy:lt}}}var de=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 a of r)this.buffer[this.head]=a,this.head=(this.head+1)%this.maxSize,this.count<this.maxSize&&this.count++,this.eventTypesSet.add(a.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 pe=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 a=indexedDB.open(this.dbName,1);a.onupgradeneeded=()=>{let o=a.result;o.objectStoreNames.contains(this.storeName)||o.createObjectStore(this.storeName,{keyPath:"id"}).createIndex("timestamp","timestamp",{unique:!1})},a.onsuccess=()=>{this.db=a.result,e()},a.onerror=()=>{r(a.error)}}catch(a){r(a)}})}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 a=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName);for(let o of e)a.put(o)}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(a){r(a)}})}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(a){r(a)}})}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(a){r(a)}})}close(){this.db&&(this.db.close(),this.db=null)}destroy(){return this.isDestroyed=!0,this.pendingWrites=[],this.close(),new Promise((e,r)=>{try{let a=indexedDB.deleteDatabase(this.dbName);a.onsuccess=()=>{e()},a.onerror=()=>{r(a.error)}}catch(a){r(a)}})}flushWrites(){if(this.flushScheduled=!1,!this.db||this.isDestroyed||this.pendingWrites.length===0)return;let e=this.pendingWrites;this.pendingWrites=[];try{let a=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName);for(let o of e)a.put(o)}catch{}}};var Lt=new Set(["step_start","turn_start"]),Ft=new Set(["step_complete","turn_complete"]),tt=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),rt=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,Ye=(t,e)=>{let r=t[e];return tt(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 Rt(t,e){return typeof e.type=="string"?e.type:t}function et(t){let e=Ye(t,"tokens")??Ye(t,"totalTokens");return e?rt(e.output):void 0}function Et(t){return rt(t.durationMs)}function Dt(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var ie=class{constructor(e=Dt){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(!tt(r)){e==="execution_error"&&this.run&&(this.run=null,this.metric={status:"error"});return}let a=Rt(e,r),o=this.now();if(a==="execution_start"){this.startRun(o);return}if(Lt.has(a)){this.run||this.startRun(o);return}if(a==="text_delta"){let f=typeof r.delta=="string"?r.delta:"";if(!f)return;this.run||this.startRun(o);let n=this.run;n.firstDeltaAt??(n.firstDeltaAt=o),n.visibleCharCount+=f.length;let p=n.exactOutputTokens+Le(n.visibleCharCount),x=o-n.firstDeltaAt;this.metric={status:"running",tokensPerSecond:Se(p,x),outputTokens:p,durationMs:x,source:n.exactOutputTokens>0?"usage":"estimate"};return}if(Ft.has(a)){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+Le(f.visibleCharCount),C=this.resolveDuration(f,r,o);this.metric={status:"running",tokensPerSecond:Se(x,C),outputTokens:x,durationMs:C,source:p?"usage":"estimate"};return}if(a==="execution_complete"){if(!this.run)return;let f=this.run,n=et(r),p=n??f.exactOutputTokens+Le(f.visibleCharCount),x=n!==void 0||f.exactOutputTokens>0?"usage":"estimate",C=this.resolveDuration(f,r,o);this.metric={status:"complete",tokensPerSecond:Se(p,C),outputTokens:p,durationMs:C,source:x},this.run=null;return}if(a==="execution_error"||a==="error"&&r.recoverable===!1){if(!this.run)return;this.run=null,this.metric={status:"error"}}}resolveDuration(e,r,a){let o=e.firstDeltaAt!==void 0?a-e.firstDeltaAt:void 0;return o!==void 0&&o>=250?o:Et(r)??a-e.startedAt}};0&&(module.exports={EventStreamBuffer,EventStreamStore,ThroughputTracker,createEventStreamView});
|
|
2
2
|
/*! Bundled license information:
|
|
3
3
|
|
|
4
4
|
lucide/dist/esm/icons/check.mjs:
|
|
@@ -1694,6 +1694,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1694
1694
|
iteration?: number;
|
|
1695
1695
|
role: "user" | "assistant" | "system";
|
|
1696
1696
|
seq: number;
|
|
1697
|
+
subagent?: {
|
|
1698
|
+
agentName?: string;
|
|
1699
|
+
parentToolCallId?: string;
|
|
1700
|
+
toolName: string;
|
|
1701
|
+
};
|
|
1697
1702
|
turnIndex?: number;
|
|
1698
1703
|
type: "turn_start";
|
|
1699
1704
|
}) | ({
|
|
@@ -1728,12 +1733,61 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1728
1733
|
role: "user" | "assistant" | "system";
|
|
1729
1734
|
seq: number;
|
|
1730
1735
|
stopReason?: "end_turn" | "max_tool_calls" | "length" | "content_filter" | "error" | "unknown";
|
|
1736
|
+
subagent?: {
|
|
1737
|
+
agentName?: string;
|
|
1738
|
+
parentToolCallId?: string;
|
|
1739
|
+
toolName: string;
|
|
1740
|
+
};
|
|
1731
1741
|
tokens?: {
|
|
1732
1742
|
input: number;
|
|
1733
1743
|
output: number;
|
|
1734
1744
|
};
|
|
1735
1745
|
type: "turn_complete";
|
|
1736
1746
|
}) | {
|
|
1747
|
+
executionId: string;
|
|
1748
|
+
id: string;
|
|
1749
|
+
iteration?: number;
|
|
1750
|
+
model?: string;
|
|
1751
|
+
ordinal: number;
|
|
1752
|
+
provider?: string;
|
|
1753
|
+
seq: number;
|
|
1754
|
+
startedAt?: string;
|
|
1755
|
+
stepId?: string;
|
|
1756
|
+
subagent?: {
|
|
1757
|
+
agentName?: string;
|
|
1758
|
+
parentToolCallId?: string;
|
|
1759
|
+
toolName: string;
|
|
1760
|
+
};
|
|
1761
|
+
turnId?: string;
|
|
1762
|
+
type: "model_call_start";
|
|
1763
|
+
} | {
|
|
1764
|
+
completedAt?: string;
|
|
1765
|
+
cost?: number;
|
|
1766
|
+
durationMs?: number;
|
|
1767
|
+
executionId: string;
|
|
1768
|
+
finishReason?: string;
|
|
1769
|
+
id: string;
|
|
1770
|
+
iteration?: number;
|
|
1771
|
+
model?: string;
|
|
1772
|
+
ordinal: number;
|
|
1773
|
+
provider?: string;
|
|
1774
|
+
responseModel?: string;
|
|
1775
|
+
seq: number;
|
|
1776
|
+
subagent?: {
|
|
1777
|
+
agentName?: string;
|
|
1778
|
+
parentToolCallId?: string;
|
|
1779
|
+
toolName: string;
|
|
1780
|
+
};
|
|
1781
|
+
success?: boolean;
|
|
1782
|
+
tokens?: {
|
|
1783
|
+
cacheRead?: number;
|
|
1784
|
+
cacheWrite?: number;
|
|
1785
|
+
input: number;
|
|
1786
|
+
output: number;
|
|
1787
|
+
};
|
|
1788
|
+
turnId?: string;
|
|
1789
|
+
type: "model_call_complete";
|
|
1790
|
+
} | {
|
|
1737
1791
|
executionId: string;
|
|
1738
1792
|
id: string;
|
|
1739
1793
|
index?: number;
|
|
@@ -1742,6 +1796,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1742
1796
|
seq: number;
|
|
1743
1797
|
startedAt?: string;
|
|
1744
1798
|
stepType?: string;
|
|
1799
|
+
subagent?: {
|
|
1800
|
+
agentName?: string;
|
|
1801
|
+
parentToolCallId?: string;
|
|
1802
|
+
toolName: string;
|
|
1803
|
+
};
|
|
1745
1804
|
totalSteps?: number;
|
|
1746
1805
|
type: "step_start";
|
|
1747
1806
|
} | ({
|
|
@@ -1769,6 +1828,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1769
1828
|
seq: number;
|
|
1770
1829
|
stepType?: string;
|
|
1771
1830
|
stopReason?: "end_turn" | "max_tool_calls" | "length" | "content_filter" | "error" | "unknown";
|
|
1831
|
+
subagent?: {
|
|
1832
|
+
agentName?: string;
|
|
1833
|
+
parentToolCallId?: string;
|
|
1834
|
+
toolName: string;
|
|
1835
|
+
};
|
|
1772
1836
|
success?: boolean;
|
|
1773
1837
|
tokensUsed?: number;
|
|
1774
1838
|
type: "step_complete";
|
|
@@ -1791,6 +1855,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1791
1855
|
role?: "user" | "assistant" | "system";
|
|
1792
1856
|
seq: number;
|
|
1793
1857
|
stepId?: string;
|
|
1858
|
+
subagent?: {
|
|
1859
|
+
agentName?: string;
|
|
1860
|
+
parentToolCallId?: string;
|
|
1861
|
+
toolName: string;
|
|
1862
|
+
};
|
|
1794
1863
|
turnId?: string;
|
|
1795
1864
|
type: "text_start";
|
|
1796
1865
|
}) | {
|
|
@@ -1798,11 +1867,21 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1798
1867
|
executionId: string;
|
|
1799
1868
|
id: string;
|
|
1800
1869
|
seq: number;
|
|
1870
|
+
subagent?: {
|
|
1871
|
+
agentName?: string;
|
|
1872
|
+
parentToolCallId?: string;
|
|
1873
|
+
toolName: string;
|
|
1874
|
+
};
|
|
1801
1875
|
type: "text_delta";
|
|
1802
1876
|
} | {
|
|
1803
1877
|
executionId: string;
|
|
1804
1878
|
id: string;
|
|
1805
1879
|
seq: number;
|
|
1880
|
+
subagent?: {
|
|
1881
|
+
agentName?: string;
|
|
1882
|
+
parentToolCallId?: string;
|
|
1883
|
+
toolName: string;
|
|
1884
|
+
};
|
|
1806
1885
|
text?: string;
|
|
1807
1886
|
type: "text_complete";
|
|
1808
1887
|
} | ({
|
|
@@ -1811,18 +1890,33 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1811
1890
|
parentToolCallId?: string;
|
|
1812
1891
|
scope?: "turn" | "loop";
|
|
1813
1892
|
seq: number;
|
|
1893
|
+
subagent?: {
|
|
1894
|
+
agentName?: string;
|
|
1895
|
+
parentToolCallId?: string;
|
|
1896
|
+
toolName: string;
|
|
1897
|
+
};
|
|
1814
1898
|
type: "reasoning_start";
|
|
1815
1899
|
}) | {
|
|
1816
1900
|
delta: string;
|
|
1817
1901
|
executionId: string;
|
|
1818
1902
|
id: string;
|
|
1819
1903
|
seq: number;
|
|
1904
|
+
subagent?: {
|
|
1905
|
+
agentName?: string;
|
|
1906
|
+
parentToolCallId?: string;
|
|
1907
|
+
toolName: string;
|
|
1908
|
+
};
|
|
1820
1909
|
type: "reasoning_delta";
|
|
1821
1910
|
} | ({
|
|
1822
1911
|
executionId: string;
|
|
1823
1912
|
id: string;
|
|
1824
1913
|
scope?: "turn" | "loop";
|
|
1825
1914
|
seq: number;
|
|
1915
|
+
subagent?: {
|
|
1916
|
+
agentName?: string;
|
|
1917
|
+
parentToolCallId?: string;
|
|
1918
|
+
toolName: string;
|
|
1919
|
+
};
|
|
1826
1920
|
text?: string;
|
|
1827
1921
|
type: "reasoning_complete";
|
|
1828
1922
|
}) | ({
|
|
@@ -1915,6 +2009,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1915
2009
|
seq: number;
|
|
1916
2010
|
startedAt?: string;
|
|
1917
2011
|
stepId?: string;
|
|
2012
|
+
subagent?: {
|
|
2013
|
+
agentName?: string;
|
|
2014
|
+
parentToolCallId?: string;
|
|
2015
|
+
toolName: string;
|
|
2016
|
+
};
|
|
1918
2017
|
toolCallId: string;
|
|
1919
2018
|
toolName: string;
|
|
1920
2019
|
toolType: string;
|
|
@@ -1923,6 +2022,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1923
2022
|
delta: string;
|
|
1924
2023
|
executionId: string;
|
|
1925
2024
|
seq: number;
|
|
2025
|
+
subagent?: {
|
|
2026
|
+
agentName?: string;
|
|
2027
|
+
parentToolCallId?: string;
|
|
2028
|
+
toolName: string;
|
|
2029
|
+
};
|
|
1926
2030
|
toolCallId: string;
|
|
1927
2031
|
type: "tool_input_delta";
|
|
1928
2032
|
} | {
|
|
@@ -1930,6 +2034,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1930
2034
|
hiddenParameterNames?: Array<string>;
|
|
1931
2035
|
parameters: Record<string, unknown>;
|
|
1932
2036
|
seq: number;
|
|
2037
|
+
subagent?: {
|
|
2038
|
+
agentName?: string;
|
|
2039
|
+
parentToolCallId?: string;
|
|
2040
|
+
toolName: string;
|
|
2041
|
+
};
|
|
1933
2042
|
toolCallId: string;
|
|
1934
2043
|
toolName?: string;
|
|
1935
2044
|
type: "tool_input_complete";
|
|
@@ -1947,6 +2056,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1947
2056
|
result?: unknown;
|
|
1948
2057
|
seq: number;
|
|
1949
2058
|
stepId?: string;
|
|
2059
|
+
subagent?: {
|
|
2060
|
+
agentName?: string;
|
|
2061
|
+
parentToolCallId?: string;
|
|
2062
|
+
toolName: string;
|
|
2063
|
+
};
|
|
1950
2064
|
success: boolean;
|
|
1951
2065
|
toolCallId: string;
|
|
1952
2066
|
toolCost?: number;
|
|
@@ -2026,6 +2140,19 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
2026
2140
|
recoverable?: boolean;
|
|
2027
2141
|
seq: number;
|
|
2028
2142
|
type: "error";
|
|
2143
|
+
}) | ({
|
|
2144
|
+
epoch: number;
|
|
2145
|
+
executionId: string;
|
|
2146
|
+
kind: "compaction";
|
|
2147
|
+
outcome?: "ok" | "failed" | "gap" | "skipped";
|
|
2148
|
+
phase: "start" | "complete";
|
|
2149
|
+
reason: "threshold" | "overflow" | "manual" | "surface_policy" | "provider_mismatch";
|
|
2150
|
+
seq: number;
|
|
2151
|
+
strategy: "provider_native" | "summary";
|
|
2152
|
+
tier: number;
|
|
2153
|
+
tokensAfter?: number;
|
|
2154
|
+
tokensBefore?: number;
|
|
2155
|
+
type: "context_notice";
|
|
2029
2156
|
}) | {
|
|
2030
2157
|
executionId: string;
|
|
2031
2158
|
seq: number;
|
|
@@ -3085,15 +3212,15 @@ type AgentMessageMetadata = {
|
|
|
3085
3212
|
*/
|
|
3086
3213
|
parentStepId?: string;
|
|
3087
3214
|
/**
|
|
3088
|
-
* Set to `true` on a tool-variant message produced from
|
|
3215
|
+
* Set to `true` on a tool-variant message produced from an `await`
|
|
3089
3216
|
* event (`awaitReason: "local_tool_required"`). Signals to UI code that
|
|
3090
3217
|
* the tool call is a LOCAL tool and the server is paused waiting for a
|
|
3091
3218
|
* `POST /v1/dispatch/resume` with the user's answer keyed by tool name.
|
|
3092
3219
|
*/
|
|
3093
3220
|
awaitingLocalTool?: boolean;
|
|
3094
3221
|
/**
|
|
3095
|
-
* The provider per-call id (`toolu_…`) carried on the `
|
|
3096
|
-
*
|
|
3222
|
+
* The provider per-call id (`toolu_…`) carried on the `await`
|
|
3223
|
+
* event for a LOCAL tool (core#3878). Present only when the
|
|
3097
3224
|
* server emits it. Two PARALLEL calls to the same tool in one turn share a
|
|
3098
3225
|
* `toolName` (and a collapsed `toolId`) but get DISTINCT `webMcpToolCallId`s,
|
|
3099
3226
|
* so this is the key the widget batches a single `/resume` on: preferred
|
|
@@ -5243,7 +5370,7 @@ type EventStreamConfig = {
|
|
|
5243
5370
|
/**
|
|
5244
5371
|
* Custom badge color mappings by event type prefix or exact type.
|
|
5245
5372
|
* Keys are matched as exact match first, then prefix match (keys ending with "_").
|
|
5246
|
-
* @example { "
|
|
5373
|
+
* @example { "execution_": { bg: "#dcfce7", text: "#166534" }, "error": { bg: "#fecaca", text: "#991b1b" } }
|
|
5247
5374
|
*/
|
|
5248
5375
|
badgeColors?: Record<string, EventStreamBadgeColor>;
|
|
5249
5376
|
/**
|
|
@@ -6664,9 +6791,13 @@ interface VoiceProvider {
|
|
|
6664
6791
|
* `isFinal=false` is a live interim update (user partials, or assistant deltas
|
|
6665
6792
|
* on providers that stream them); `isFinal=true` finalizes that role's text.
|
|
6666
6793
|
* On the realtime `runtype` path, interim updates fire for the `user` only and
|
|
6667
|
-
* the `assistant` arrives as a single final.
|
|
6794
|
+
* the `assistant` arrives as a single final. Providers with overlapping turns
|
|
6795
|
+
* must include the same turnId on user and assistant finals; without IDs,
|
|
6796
|
+
* providers must discard cancelled output before emitting the next user final.
|
|
6668
6797
|
*/
|
|
6669
|
-
onTranscript?(callback: (role: 'user' | 'assistant', text: string, isFinal: boolean
|
|
6798
|
+
onTranscript?(callback: (role: 'user' | 'assistant', text: string, isFinal: boolean, metadata?: {
|
|
6799
|
+
turnId?: string;
|
|
6800
|
+
}) => void): void;
|
|
6670
6801
|
/** Register a callback for per-turn latency metrics (realtime path). */
|
|
6671
6802
|
onMetrics?(callback: (metrics: VoiceMetrics) => void): void;
|
|
6672
6803
|
/**
|
|
@@ -8979,16 +9110,16 @@ type AgentWidgetConfig = {
|
|
|
8979
9110
|
*
|
|
8980
9111
|
* @example
|
|
8981
9112
|
* ```typescript
|
|
8982
|
-
* // For Runtype
|
|
9113
|
+
* // For a custom backend (Runtype unified events are handled natively)
|
|
8983
9114
|
* config: {
|
|
8984
9115
|
* parseSSEEvent: (data) => {
|
|
8985
|
-
* if (
|
|
8986
|
-
* return { text: data.
|
|
9116
|
+
* if (data.type === 'token' && typeof data.value === 'string') {
|
|
9117
|
+
* return { text: data.value };
|
|
8987
9118
|
* }
|
|
8988
|
-
* if (data.type === '
|
|
9119
|
+
* if (data.type === 'done') {
|
|
8989
9120
|
* return { done: true };
|
|
8990
9121
|
* }
|
|
8991
|
-
* if (data.type === '
|
|
9122
|
+
* if (data.type === 'failure') {
|
|
8992
9123
|
* return { error: data.error };
|
|
8993
9124
|
* }
|
|
8994
9125
|
* return null; // Ignore other events
|
|
@@ -9179,7 +9310,7 @@ type AgentWidgetReasoning = {
|
|
|
9179
9310
|
/**
|
|
9180
9311
|
* Reasoning channel scope (wire spec). `"turn"` is ordinary per-turn
|
|
9181
9312
|
* thinking; `"loop"` is a cross-iteration agent reflection (the fold that
|
|
9182
|
-
* replaced the legacy `agent_reflection` event).
|
|
9313
|
+
* replaced the legacy `agent_reflection` event). Optional when the stream does not specify a scope.
|
|
9183
9314
|
*/
|
|
9184
9315
|
scope?: "turn" | "loop";
|
|
9185
9316
|
startedAt?: number;
|
|
@@ -9193,6 +9324,9 @@ type AgentWidgetToolCall = {
|
|
|
9193
9324
|
args?: unknown;
|
|
9194
9325
|
chunks?: string[];
|
|
9195
9326
|
result?: unknown;
|
|
9327
|
+
/** Whether the tool succeeded; failure does not necessarily end the execution. */
|
|
9328
|
+
success?: boolean;
|
|
9329
|
+
error?: string;
|
|
9196
9330
|
duration?: number;
|
|
9197
9331
|
startedAt?: number;
|
|
9198
9332
|
completedAt?: number;
|
|
@@ -9223,7 +9357,7 @@ type AgentWidgetApproval = {
|
|
|
9223
9357
|
type AgentWidgetMessageVariant = "assistant" | "reasoning" | "tool" | "approval";
|
|
9224
9358
|
/**
|
|
9225
9359
|
* Per-turn / per-step stop reason emitted by the runtime on
|
|
9226
|
-
* `
|
|
9360
|
+
* `turn_complete` and `step_complete` SSE events. The vocabulary is
|
|
9227
9361
|
* owned by the upstream Runtype API: do not extend without coordination.
|
|
9228
9362
|
*
|
|
9229
9363
|
* - `end_turn`: natural completion (no affordance needed)
|
|
@@ -9354,7 +9488,7 @@ type AgentWidgetMessage = {
|
|
|
9354
9488
|
*/
|
|
9355
9489
|
agentMetadata?: AgentMessageMetadata;
|
|
9356
9490
|
/**
|
|
9357
|
-
* Per-turn stop reason reported by the runtime on `
|
|
9491
|
+
* Per-turn stop reason reported by the runtime on `turn_complete`
|
|
9358
9492
|
* (agent-loop path) or the last `step_complete` for a prompt step
|
|
9359
9493
|
* (dispatch / flow path). Absent when the API did not report a value.
|
|
9360
9494
|
*
|