@recombine-ai/bosun 0.20.0 → 0.20.2
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/build/_app/immutable/assets/0.970vvoDj.css +1 -0
- package/build/_app/immutable/assets/0.970vvoDj.css.br +0 -0
- package/build/_app/immutable/assets/0.970vvoDj.css.gz +0 -0
- package/build/_app/immutable/chunks/{BSnTSnag.js → BOZLjogl.js} +1 -1
- package/build/_app/immutable/chunks/BOZLjogl.js.br +2 -0
- package/build/_app/immutable/chunks/BOZLjogl.js.gz +0 -0
- package/build/_app/immutable/chunks/CCtAgMW8.js +64 -0
- package/build/_app/immutable/chunks/CCtAgMW8.js.br +0 -0
- package/build/_app/immutable/chunks/CCtAgMW8.js.gz +0 -0
- package/build/_app/immutable/chunks/{Dne1wF_T.js → U2g-17s7.js} +1 -1
- package/build/_app/immutable/chunks/U2g-17s7.js.br +0 -0
- package/build/_app/immutable/chunks/U2g-17s7.js.gz +0 -0
- package/build/_app/immutable/chunks/{Xth-LXaZ.js → jbAfpNOj.js} +1 -1
- package/build/_app/immutable/chunks/jbAfpNOj.js.br +0 -0
- package/build/_app/immutable/chunks/jbAfpNOj.js.gz +0 -0
- package/build/_app/immutable/chunks/vxN0p6wG.js +1 -0
- package/build/_app/immutable/chunks/vxN0p6wG.js.br +2 -0
- package/build/_app/immutable/chunks/vxN0p6wG.js.gz +0 -0
- package/build/_app/immutable/entry/{app.B73YVKlJ.js → app.Nx0-kikH.js} +2 -2
- package/build/_app/immutable/entry/app.Nx0-kikH.js.br +0 -0
- package/build/_app/immutable/entry/app.Nx0-kikH.js.gz +0 -0
- package/build/_app/immutable/entry/start.t9PGFpmm.js +1 -0
- package/build/_app/immutable/entry/start.t9PGFpmm.js.br +1 -0
- package/build/_app/immutable/entry/start.t9PGFpmm.js.gz +0 -0
- package/build/_app/immutable/nodes/{0.CRuATwoa.js → 0.B5_ukjYU.js} +1 -1
- package/build/_app/immutable/nodes/0.B5_ukjYU.js.br +0 -0
- package/build/_app/immutable/nodes/0.B5_ukjYU.js.gz +0 -0
- package/build/_app/immutable/nodes/{1.BwTYt1ri.js → 1.BnET9__M.js} +1 -1
- package/build/_app/immutable/nodes/1.BnET9__M.js.br +0 -0
- package/build/_app/immutable/nodes/1.BnET9__M.js.gz +0 -0
- package/build/_app/immutable/nodes/16.C0hAGH9Y.js +3 -0
- package/build/_app/immutable/nodes/16.C0hAGH9Y.js.br +0 -0
- package/build/_app/immutable/nodes/16.C0hAGH9Y.js.gz +0 -0
- package/build/_app/immutable/nodes/{17.BW7FjO0Q.js → 17.DHifdmRv.js} +1 -1
- package/build/_app/immutable/nodes/17.DHifdmRv.js.br +0 -0
- package/build/_app/immutable/nodes/17.DHifdmRv.js.gz +0 -0
- package/build/_app/immutable/nodes/{2.Dzsy2J7Q.js → 2.0cl8Jw4o.js} +1 -1
- package/build/_app/immutable/nodes/2.0cl8Jw4o.js.br +0 -0
- package/build/_app/immutable/nodes/2.0cl8Jw4o.js.gz +0 -0
- package/build/_app/immutable/nodes/3.CxkjPmTD.js +1 -0
- package/build/_app/immutable/nodes/3.CxkjPmTD.js.br +0 -0
- package/build/_app/immutable/nodes/3.CxkjPmTD.js.gz +0 -0
- package/build/_app/immutable/nodes/{4.DfbxAWaw.js → 4.h7GzNdQ-.js} +1 -1
- package/build/_app/immutable/nodes/4.h7GzNdQ-.js.br +0 -0
- package/build/_app/immutable/nodes/4.h7GzNdQ-.js.gz +0 -0
- package/build/_app/immutable/nodes/{6.Bq16_9w3.js → 6.MjSRR3jo.js} +1 -1
- package/build/_app/immutable/nodes/6.MjSRR3jo.js.br +0 -0
- package/build/_app/immutable/nodes/6.MjSRR3jo.js.gz +0 -0
- package/build/_app/immutable/nodes/{9.C2W2D2GW.js → 9.BFI7-HIR.js} +1 -1
- package/build/_app/immutable/nodes/9.BFI7-HIR.js.br +0 -0
- package/build/_app/immutable/nodes/{9.C2W2D2GW.js.gz → 9.BFI7-HIR.js.gz} +0 -0
- package/build/_app/version.json +1 -1
- package/build/_app/version.json.br +0 -0
- package/build/_app/version.json.gz +0 -0
- package/build/index.html +10 -10
- package/build/index.html.br +0 -0
- package/build/index.html.gz +0 -0
- package/dist/index.js +61 -17
- package/dist/index.js.map +2 -2
- package/dist/types/backend/server.d.ts +1 -1
- package/dist/types/backend/telescope/router.d.ts +1 -1
- package/dist/types/lib/api-telescope/types.d.ts +29 -0
- package/package.json +1 -1
- package/build/_app/immutable/assets/0.CDmx-FLf.css +0 -1
- package/build/_app/immutable/assets/0.CDmx-FLf.css.br +0 -0
- package/build/_app/immutable/assets/0.CDmx-FLf.css.gz +0 -0
- package/build/_app/immutable/chunks/BSnTSnag.js.br +0 -0
- package/build/_app/immutable/chunks/BSnTSnag.js.gz +0 -0
- package/build/_app/immutable/chunks/Dne1wF_T.js.br +0 -0
- package/build/_app/immutable/chunks/Dne1wF_T.js.gz +0 -0
- package/build/_app/immutable/chunks/DoM_ZOrs.js +0 -1
- package/build/_app/immutable/chunks/DoM_ZOrs.js.br +0 -2
- package/build/_app/immutable/chunks/DoM_ZOrs.js.gz +0 -0
- package/build/_app/immutable/chunks/MIEISUXS.js +0 -64
- package/build/_app/immutable/chunks/MIEISUXS.js.br +0 -0
- package/build/_app/immutable/chunks/MIEISUXS.js.gz +0 -0
- package/build/_app/immutable/chunks/Xth-LXaZ.js.br +0 -0
- package/build/_app/immutable/chunks/Xth-LXaZ.js.gz +0 -0
- package/build/_app/immutable/entry/app.B73YVKlJ.js.br +0 -0
- package/build/_app/immutable/entry/app.B73YVKlJ.js.gz +0 -0
- package/build/_app/immutable/entry/start.59SUcW9F.js +0 -1
- package/build/_app/immutable/entry/start.59SUcW9F.js.br +0 -0
- package/build/_app/immutable/entry/start.59SUcW9F.js.gz +0 -0
- package/build/_app/immutable/nodes/0.CRuATwoa.js.br +0 -0
- package/build/_app/immutable/nodes/0.CRuATwoa.js.gz +0 -0
- package/build/_app/immutable/nodes/1.BwTYt1ri.js.br +0 -1
- package/build/_app/immutable/nodes/1.BwTYt1ri.js.gz +0 -0
- package/build/_app/immutable/nodes/16.CyAJjPYI.js +0 -3
- package/build/_app/immutable/nodes/16.CyAJjPYI.js.br +0 -0
- package/build/_app/immutable/nodes/16.CyAJjPYI.js.gz +0 -0
- package/build/_app/immutable/nodes/17.BW7FjO0Q.js.br +0 -0
- package/build/_app/immutable/nodes/17.BW7FjO0Q.js.gz +0 -0
- package/build/_app/immutable/nodes/2.Dzsy2J7Q.js.br +0 -0
- package/build/_app/immutable/nodes/2.Dzsy2J7Q.js.gz +0 -0
- package/build/_app/immutable/nodes/3.Cu2n_SuU.js +0 -1
- package/build/_app/immutable/nodes/3.Cu2n_SuU.js.br +0 -0
- package/build/_app/immutable/nodes/3.Cu2n_SuU.js.gz +0 -0
- package/build/_app/immutable/nodes/4.DfbxAWaw.js.br +0 -0
- package/build/_app/immutable/nodes/4.DfbxAWaw.js.gz +0 -0
- package/build/_app/immutable/nodes/6.Bq16_9w3.js.br +0 -0
- package/build/_app/immutable/nodes/6.Bq16_9w3.js.gz +0 -0
- package/build/_app/immutable/nodes/9.C2W2D2GW.js.br +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{B as e,Dt as t,F as n,G as r,H as i,I as a,L as o,N as s,Nt as c,O as l,Ot as u,Pt as d,S as f,V as ee,at as te,b as p,dt as m,et as h,gt as g,it as _,j as v,k as ne,l as y,n as re,ot as b,pt as x,q as ie,st as S,tt as C,x as ae,z as w}from"../chunks/CPCsWwEy.js";import"../chunks/xihTtKlq.js";import{t as oe}from"../chunks/BSnTSnag.js";import{t as T}from"../chunks/6OCsQ6r7.js";import{t as se}from"../chunks/B9YnyJ2j.js";import{n as ce,r as le,s as ue}from"../chunks/MIEISUXS.js";import{n as de,t as E}from"../chunks/DkJi5BM4.js";import{t as fe}from"../chunks/CGV7fMmX.js";import{i as pe,n as me,r as he,t as ge}from"../chunks/Dne1wF_T.js";var _e=`bosun.traces.latencyTimelineViewports.v2`,ve=new Map,ye=!1;function D(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.startMs==`number`&&Number.isFinite(t.startMs)&&typeof t.endMs==`number`&&Number.isFinite(t.endMs)&&t.endMs>t.startMs&&typeof t.originMs==`number`&&Number.isFinite(t.originMs)}function be(e,t){if(!Number.isFinite(t))return{...e};let n=t-e.originMs;return{startMs:e.startMs+n,endMs:e.endMs+n,originMs:t}}function xe(){if(!ye&&(ye=!0,!(typeof window>`u`)))try{let e=window.sessionStorage.getItem(_e);if(!e)return;let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return;for(let[e,n]of Object.entries(t))!e||!D(n)||ve.set(e,n)}catch{}}function Se(){if(!(typeof window>`u`))try{window.sessionStorage.setItem(_e,JSON.stringify(Object.fromEntries(ve.entries())))}catch{}}function Ce(e){if(!e)return null;xe();let t=ve.get(e);return t?{...t}:null}function we(e,t){!e||!D(t)||(xe(),ve.set(e,{...t}),Se())}var Te=`bosun.latency`,Ee=1,De=`recordings`,O=`bosun.traces.latencyAlignmentMs.`;function Oe(e,t){return`${e||`default`}:${t}`}function ke(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`IndexedDB request failed`))})}function Ae(){return typeof indexedDB>`u`?Promise.reject(Error(`This browser has no IndexedDB, so recordings cannot be kept`)):new Promise((e,t)=>{let n=indexedDB.open(Te,Ee);n.onupgradeneeded=()=>{n.result.objectStoreNames.contains(De)||n.result.createObjectStore(De)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??Error(`Failed to open the recordings database`))})}async function je(e,t){let n=await Ae();try{return await t(n.transaction(De,e).objectStore(De))}finally{n.close()}}async function Me(e){let t=await je(`readonly`,t=>ke(t.get(e)));return t instanceof Blob?t:null}async function Ne(e,t){await je(`readwrite`,n=>ke(n.put(t,e)))}function Pe(e){try{let t=window.localStorage.getItem(O+e),n=t==null?NaN:Number(t);return Number.isFinite(n)?n:0}catch{return 0}}function Fe(e,t){try{window.localStorage.setItem(O+e,String(Math.round(t)))}catch{}}var Ie=o(`<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200"> </span>`,1),Le=o(`<div><span class="text-rc-gray-400">Playhead:</span> <span class="font-mono text-rc-gray-100"> </span></div>`),Re=o(`<div><span class="text-rc-gray-400">Viewport:</span> <span class="font-mono text-rc-gray-100"> </span></div>`),ze=o(`<div class="mt-2 text-sm text-rc-gray-400"> </div>`),Be=o(`<div class="mt-2 text-sm text-red-300"> </div>`),Ve=o(`<div class="text-sm text-rc-gray-300">Loading latency events…</div>`),He=o(`<div class="text-sm text-rc-gray-300">No latency events were found on this call.</div>`),Ue=o(`<div class="text-sm text-rc-gray-300">Preparing timeline…</div>`),We=o(`<div class="flex items-center text-xs text-rc-gray-300"> </div>`),Ge=o(`<div class="flex items-center text-xs text-rc-gray-300">Waveform</div>`),Ke=o(`<div aria-hidden="true" class="absolute overflow-hidden"><div data-dictation-mode-overlay="" class="absolute inset-0"></div> <span data-dictation-mode-label="" class="absolute left-2 top-1 text-sm text-rc-blue">Dictation</span></div>`),qe=o(`<div class="absolute -translate-x-1/2 border-l border-rc-gray-300/40"></div>`),Je=o(`<div class="absolute -translate-x-1/2 border-l border-dashed"></div>`),Ye=o(`<div class="absolute border-l border-rc-gray-200/80"></div>`),Xe=o(`<div class="absolute -translate-x-1/2 border-l-2 border-rc-green-200/90"></div> <div class="absolute h-2 w-2 -translate-x-1/2 rounded-full bg-rc-green-200"></div>`,1),Ze=o(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/70"></div> <div> </div>`,1),Qe=o(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div>`),$e=o(`<span class="block truncate"> </span>`),et=o(`<div><!></div>`),tt=o(`<div class="relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60"><!> <!></div>`),nt=o(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/45"></div>`),rt=o(`<div> </div>`),it=o(`<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Decoding waveform…</div>`),at=o(`<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-red-300"> </div>`),ot=o(`<canvas class="absolute inset-0 h-full w-full"></canvas>`),st=o(`<div class="relative z-0 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60"><!> <!></div>`),ct=o(`<div class="grid grid-cols-[140px_minmax(0,1fr)] gap-x-3"><div class="flex flex-col"><div class="h-8"></div> <!> <div class="flex items-center text-xs text-rc-gray-300">Human</div> <!></div> <div class="relative"><div class="pointer-events-none absolute inset-0 z-10 overflow-hidden"><!> <!> <!> <!> <!></div> <div class="relative z-0 h-8 overflow-hidden rounded-t border border-b-0 border-rc-gray-700/60"></div> <!> <div><div class="absolute inset-x-0 top-0 border-b border-rc-gray-700/50"></div> <!> <!></div> <!></div></div>`),lt=o(`<div class="pointer-events-none z-popover max-w-[28rem] rounded-md border border-rc-gray-500/80 bg-rc-gray-900/95 px-3 py-2 text-xs text-rc-gray-100 shadow-2xl backdrop-blur-sm"></div>`),ut=o(`<div><div class="whitespace-pre-wrap break-words"> </div></div>`),dt=o(`<div class="flex h-full min-h-0 flex-col bg-rc-gray-700"><div class="flex-none border-b border-rc-gray-300/40 p-4"><div class="flex flex-wrap items-start justify-between gap-3"><div><h2 class="text-lg font-semibold text-rc-gray-100">Latency <!></h2> <div class="mt-2 flex flex-wrap gap-x-5 gap-y-1 text-xs text-rc-gray-300"><div><span class="text-rc-gray-400">Latency events:</span> <span class="font-mono text-rc-gray-100"> </span></div> <div><span class="text-rc-gray-400">Timeline items:</span> <span class="font-mono text-rc-gray-100"> </span></div> <div><span class="text-rc-gray-400">Recording offset:</span> <span class="font-mono text-rc-gray-100"> </span></div> <!> <!></div></div> <div class="flex flex-wrap items-center gap-2"><input type="file" accept=".wav,audio/wav,audio/x-wav" class="hidden"/> <!> <!> <!> <!> <!> <!> <!></div></div> <!> <!> <!> <!> <!></div> <div class="rc-scroll min-h-0 flex-1 overflow-auto p-4"><div class="flex flex-col gap-4"><div class="rounded-md border border-rc-gray-650 p-3"><!></div></div></div></div> <!> <!>`,1);function k(e,o){u(o,!0);let _e=3e4,ve=new Set([`VAD`,`Playback`]),ye=new ue,D={blue:`#569cd6`,green:`#93FF6D`,greenDark:`#00B58A`,orange:`#ce9178`,purple:`#81147D`,red:`#FF6666`,gray:`#767676`},xe=[{label:`VAD`,eventTypes:[`vad.activated`,`vad.deactivated`]},{label:`STT`,eventTypes:[`stt.started`,`stt.interim`,`stt.final`,`stt.final_transcript`]},{label:`Trigger`,eventTypes:[`speech.created`]},{label:`Reply Pending`,eventTypes:[`reply.pending.started`,`reply.pending.completed`]},{label:`LLM Transport`,eventTypes:[`llm.connect_tcp.started`,`llm.connect_tcp.completed`,`llm.connect_tcp.failed`,`llm.start_tls.started`,`llm.start_tls.completed`,`llm.start_tls.failed`]},{label:`LLM Wait`,eventTypes:[`llm.wait.started`,`llm.requested`,`llm.wait.completed`]},{label:`LLM Stream`,eventTypes:[`llm.stream.started`,`llm.first_token`,`llm.completed`,`llm.stream.completed`]},{label:`TTS Text`,eventTypes:[`tts.text.first_sent`,`tts.text.completed`]},{label:`Provider`,eventTypes:[`tts.provider.started`,`tts.audio.first_received`,`tts.audio.last_received`,`tts.provider.completed`]},{label:`Decode`,eventTypes:[`tts.decode.started`,`tts.decode.completed`]},{label:`Output Queue`,eventTypes:[`audio.output.wait.started`,`audio.output.wait.completed`]},{label:`Playback`,eventTypes:[`audio.playback.started`,`audio.playback.stopped`,`audio.playback.ended`]},{label:`Response Latency`},{label:`Interruptions`,eventTypes:[`interruption.detected`,`audio.playback.interrupted`]},{label:`Other`}],Se=new Set(xe.map(e=>e.label)),Te={call:Z(D.gray,.2),vad:Z(D.purple,.35),stt:Z(D.purple,.2),trigger:D.greenDark,"response.latency.ok":D.green,"response.latency.high":D.red,"reply.pending":Z(D.greenDark,.18),"llm.transport":Z(D.blue,.18),"llm.wait":Z(D.blue,-.25),"llm.stream":D.blue,"tts.text":D.orange,"tts.provider.lifecycle":Z(D.purple,-.18),"tts.provider":Z(D.purple,.12),"tts.decode":Z(D.orange,-.12),"audio.output.wait":D.orange,playback:Z(D.greenDark,-.08),interruption:D.orange,other:D.gray},Ee=new Map([{startEventType:`reply.pending.started`,endEventType:`reply.pending.completed`,row:`Reply Pending`,colorKey:`reply.pending`,label:`Reply pending`,description:`Derived from adjacent reply-pending lifecycle events`},{startEventType:`llm.connect_tcp.started`,endEventType:`llm.connect_tcp.completed`,row:`LLM Transport`,colorKey:`llm.transport`,label:`Connect TCP`,description:`Derived from adjacent TCP connect lifecycle events`},{startEventType:`llm.start_tls.started`,endEventType:`llm.start_tls.completed`,row:`LLM Transport`,colorKey:`llm.transport`,label:`Start TLS`,description:`Derived from adjacent TLS lifecycle events`},{startEventType:`llm.wait.started`,endEventType:`llm.wait.completed`,row:`LLM Wait`,colorKey:`llm.wait`,label:`LLM wait`,description:`Derived from adjacent LLM wait lifecycle events`},{startEventType:`llm.stream.started`,endEventType:`llm.stream.completed`,row:`LLM Stream`,colorKey:`llm.stream`,label:`LLM stream`,description:`Derived from adjacent LLM stream lifecycle events`},{startEventType:`tts.text.first_sent`,endEventType:`tts.text.completed`,row:`TTS Text`,colorKey:`tts.text`,label:`TTS text send`,description:`Derived from adjacent TTS text send and completion events`},{startEventType:`tts.provider.started`,endEventType:`tts.audio.first_received`,row:`Provider`,colorKey:`tts.provider.lifecycle`,label:`Provider wait`,description:`Derived from adjacent provider start and first-audio events`},{startEventType:`tts.audio.first_received`,endEventType:`tts.provider.completed`,row:`Provider`,colorKey:`tts.provider`,label:`Provider audio`,description:`Derived from adjacent provider first-audio and completion events`},{startEventType:`tts.decode.started`,endEventType:`tts.decode.completed`,row:`Decode`,colorKey:`tts.decode`,label:`Decode`,description:`Derived from adjacent local decode lifecycle events`},{startEventType:`audio.output.wait.started`,endEventType:`audio.output.wait.completed`,row:`Output Queue`,colorKey:`audio.output.wait`,label:`Output queue`,description:`Derived from adjacent audio-output wait lifecycle events`},{startEventType:`audio.playback.started`,endEventType:`audio.playback.stopped`,row:`Playback`,colorKey:`playback`,label:`Playback`,description:`Derived from adjacent playback start and playback stop events`}].map(e=>[e.startEventType,e]));function De(){return{exists:!1,blob:null,alignmentOffsetMs:0}}let O=de(),ke=le(oe.url)??ce()??``,Ae=oe.params.conversationId??``,je=E(Ae,ke),k=O.latency.get(je);ye.setSourceId(ke||void 0);let ft=x(S(ke)),pt=x(S(k?.conversation??null)),A=x(S(k?.traces??[])),j=x(S(k?.conversationTraces??[])),M=x(S(k?.dataLoaded??!1)),mt=x(!1),ht=x(S(k?.error??null)),N=x(S(k?.recording??De())),gt=x(S(k?.recordingLoaded??!1)),_t=x(!1),P=x(S(k?.recordingError??null)),vt=x(!1),F=x(S(k?.waveform??null)),yt=x(!1),bt=x(S(k?.waveformError??null)),I=x(S(k?.playbackPositionMs??0)),L=x(!1),R=x(null),xt=x(null),z=x(S(k?.viewDirty??!1)),B=x(null),V=x(null),H=x(null),St=x(null),U=x(0),Ct=x(null),wt=x(null),Tt=x(0),Et=x(0),Dt=x(null),Ot=x(null),kt=x(null),At=x(null),jt=x(null),Mt=x(null),Nt=x(null),Pt=x(S(k?.humanSpeechBubbleReservedLevels??1)),Ft=x(`idle`),W=x(``),It=x(null),Lt=0,Rt=0,zt=0,Bt=null,Vt=0,G=k?.playbackAudioBuffer??null,K=null,Ht=null,Ut=null,Wt=null,Gt=null,Kt=g(()=>oe.params.conversationId);function qt(e,t){return Oe(t,e)}let Jt=g(()=>r(Kt)?qt(r(Kt),r(ft)):``),q=g(()=>{let e=1/0;for(let t of r(A))typeof t.atMs!=`number`||!Number.isFinite(t.atMs)||(e=Math.min(e,t.atMs));return Number.isFinite(e)?e:typeof r(pt)?.createdAt==`number`&&Number.isFinite(r(pt).createdAt)?r(pt).createdAt:Number.isFinite(e)?e:0}),Yt=g(()=>jr(r(A))),Xt=g(()=>r(A).length),Zt=g(()=>nr()),Qt=g(()=>or(r(Yt))),$t=g(()=>[...r(Yt).map(e=>{let t=r(Qt).get(e.id);return!t||e.row!==`Playback`||e.durationMs<=0?e:{...e,speechText:t.text,speechFullText:t.fullText,speechTraceLabel:t.traceLabel}}),...sr(r(Zt))]),en=g(()=>{let e=new Map;for(let t of r($t)){let n=e.get(t.row);n?n.push(t):e.set(t.row,[t])}return[...xe].reverse().map(t=>({label:t.label,segments:e.get(t.label)??[]})).filter(e=>e.segments.length>0)}),tn=g(()=>vr()),nn=g(()=>Math.max(r(Pt),mr(r(tn),`human`))),rn=g(()=>gr(r(tn))),an=g(()=>hr(r(nn))),on=g(()=>r(an)),sn=g(()=>r(en).length*30+Math.max(0,r(en).length-1)*5),cn=g(()=>r(en).length>0?5:0),ln=g(()=>32+r(sn)+r(cn)),un=g(()=>r(N).exists),dn=g(()=>r(un)?165:0),fn=g(()=>Kr(r(en))),J=g(()=>r(F)?r(q)+r(N).alignmentOffsetMs:null),pn=g(()=>32+r(sn)+r(cn)+r(on)+r(dn)),mn=g(()=>r(J)==null?null:r(J)+r(I)),hn=g(()=>{let e=r(mn);if(e==null||r(B)==null||r(V)==null)return null;let t=r(V)-r(B);return!Number.isFinite(t)||t<=0||e<r(B)||e>r(V)?null:{leftPercent:X((e-r(B))/t*100,0,100),topPx:32,heightPx:Math.max(1,r(pn)-32)}}),gn=g(()=>{if(r(B)==null||r(V)==null)return null;let e=r(V)-r(B);return!Number.isFinite(e)||e<=0||r(q)<r(B)||r(q)>r(V)?null:{leftPercent:(r(q)-r(B))/e*100,topPx:32,heightPx:Math.max(1,r(pn)-32)}}),_n=g(()=>{let e=1/0,t=-1/0;for(let n of r(Yt))e=Math.min(e,n.start),t=Math.max(t,n.end);return r(F)&&r(J)!=null&&(e=Math.min(e,r(J)),t=Math.max(t,r(J)+r(F).durationMs)),!Number.isFinite(e)||!Number.isFinite(t)?null:(t<=e&&(t=e+1),{min:e,max:t})}),vn=g(()=>{let e=null;for(let t of r(A))t.eventType!==`call.ended`||!Number.isFinite(t.atMs)||(e=Math.max(e??-1/0,t.atMs));if(e!=null)return e;let t=r(_n)?.max??r(q);for(let e of r(j))Number.isFinite(e.createdAt)&&(t=Math.max(t,e.createdAt));return t}),yn=g(()=>me(r(j),r(vn))),bn=g(()=>{let e=1/0,t=-1/0;for(let n of r(Yt))Se.has(n.row)&&(e=Math.min(e,n.start),t=Math.max(t,n.end));return!Number.isFinite(e)||!Number.isFinite(t)?null:(t<=e&&(t=e+1),{min:e,max:t})}),xn=g(()=>{if(r(B)==null||r(V)==null)return null;let e=r(V)-r(B);return e>0?e:null}),Sn=g(()=>r(B)==null||r(V)==null?[]:Jr(r(B),r(V),r(q))),Cn=g(()=>r(Ot)?Rr(r(Ot)).split(`
|
|
2
|
-
`):[]);C(()=>{let e=r(At),t=r(kt),n=r(Ot);r(B),r(V),!(!e||!t||!n)&&e.update()}),C(()=>{let e=r(Nt),t=r(Mt),n=r(jt);r(B),r(V),!(!e||!t||!n)&&e.update()}),C(()=>{let e=mr(r(tn),`human`);e>r(Pt)&&m(Pt,e,!0)});function wn(e=r(W)){if(!e)return;let t=O.latency.get(e),n={conversation:r(pt),traces:r(A),conversationTraces:r(j),dataLoaded:r(M),error:r(ht),recording:r(N),recordingLoaded:r(gt),recordingError:r(P),waveform:r(F),waveformError:r(bt),playbackAudioBuffer:G,playbackPositionMs:r(I),viewportStartMs:r(B),viewportEndMs:r(V),viewportOriginMs:r(q),viewDirty:r(z),humanSpeechBubbleReservedLevels:r(Pt),scrollTop:t?.scrollTop??r(H)?.scrollTop??0,scrollLeft:t?.scrollLeft??r(H)?.scrollLeft??0};O.latency.set(e,n);let i=r(Kt),a=le(oe.url)??ce()??``;i&&a&&e===E(i,``)&&O.latency.set(E(i,a),n)}async function Tn(e){e&&(await ie(),r(H)&&(r(H).scrollTop=e.scrollTop,r(H).scrollLeft=e.scrollLeft))}function En(){if(!r(W)||!r(H))return;let e=O.latency.get(r(W));if(!e){wn();return}e.scrollTop=r(H).scrollTop,e.scrollLeft=r(H).scrollLeft}re(()=>{Pn(),wn(),Bt?.(),Cr(),ri(!1),ei()}),C(()=>{let e=r(Kt),t=le(oe.url)??ce()??``;if(t!==r(ft)&&m(ft,t,!0),!e)return;let n=E(e,t);if(n===r(W))return;Pn(),wn(),m(W,n,!0);let i=O.latency.get(n),a=(i?.viewportStartMs!=null&&i.viewportEndMs!=null&&typeof i.viewportOriginMs==`number`&&Number.isFinite(i.viewportOriginMs)?{startMs:i.viewportStartMs,endMs:i.viewportEndMs,originMs:i.viewportOriginMs}:null)??Ce(n);m(It,a,!0),m(z,a?i?.viewDirty??!0:!1,!0),m(ht,i?.error??null,!0),m(P,i?.recordingError??null,!0),m(xt,null),m(bt,i?.waveformError??null,!0),ri(!1),G=i?.recordingLoaded?i.playbackAudioBuffer:null,m(I,i?.playbackPositionMs??0,!0),m(R,null),m(F,i?.recordingLoaded?i.waveform:null,!0),m(pt,i?.dataLoaded?i.conversation:null,!0),m(A,i?.dataLoaded?i.traces:[],!0),m(j,i?.dataLoaded?i.conversationTraces:[],!0),m(M,i?.dataLoaded??!1,!0),m(N,i?.recordingLoaded?i.recording:De(),!0),m(gt,i?.recordingLoaded??!1,!0),m(B,null),m(V,null),m(Pt,i?.humanSpeechBubbleReservedLevels??1,!0),ye.setSourceId(t||void 0),r(M)?m(mt,!1):gi(e),r(gt)?m(_t,!1):vi(qt(e,t)),Tn(i)}),C(()=>{let e=r(It),t=r(M),n=r(bn)??r(_n),i=r(q);if(!e||!t||!n)return;m(It,null),m(z,!0);let a=be(e,i);xi(a.startMs,a.endMs)}),C(()=>{r(M)&&(r(bn)??r(_n))&&(r(z)||yi(!1))}),C(()=>{let e=r(W),t=r(B),n=r(V);!e||t==null||n==null||we(e,{startMs:t,endMs:n,originMs:r(q)})}),C(()=>{let e=r(St);if(!e||typeof ResizeObserver>`u`)return;m(U,e.clientWidth,!0);let t=new ResizeObserver(e=>{let t=e[0];t&&m(U,t.contentRect.width,!0)});return t.observe(e),()=>t.disconnect()}),C(()=>{let e=r(Ct);if(!e||typeof ResizeObserver>`u`)return;m(Tt,e.clientWidth,!0),m(Et,e.clientHeight,!0);let t=new ResizeObserver(e=>{let t=e[0];t&&(m(Tt,t.contentRect.width,!0),m(Et,t.contentRect.height,!0))});return t.observe(e),()=>t.disconnect()}),C(()=>{if(!r(N).exists||typeof window>`u`)return;let e=e=>{e.code===`Space`&&(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||ci(e.target)||(e.preventDefault(),li()))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)}),C(()=>{let e=r(wt),t=r(F),n=r(J),i=r(B),a=r(V),o=r(Tt),s=r(Et);!e||!t||n==null||i==null||a==null||Qr(e,{peaks:t,recordingStartMs:n,viewportStartMs:i,viewportEndMs:a,width:o,height:s})});function Y(e){return typeof e==`string`&&e.trim()||null}function Dn(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function On(e){return Math.max(0,Math.min(255,Math.round(e)))}function X(e,t,n){return Math.min(n,Math.max(t,e))}function Z(e,t){let n=(e??``).trim().replace(/^#/,``),r=n.length===3?n.split(``).map(e=>`${e}${e}`).join(``):n;if(r.length!==6||!/^[0-9a-fA-F]+$/.test(r))return e;let i=parseInt(r.slice(0,2),16),a=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),s=Math.abs(Math.max(-1,Math.min(1,t))),c=t>=0?255:0;return`#${On(i+(c-i)*s).toString(16).padStart(2,`0`)}${On(a+(c-a)*s).toString(16).padStart(2,`0`)}${On(o+(c-o)*s).toString(16).padStart(2,`0`)}`}function kn(e){let t=Dn(e);return t==null?`—`:`${Math.round(t)} ms`}function An(e){if(e==null||!Number.isFinite(e))return`0 ms`;let t=Math.round(e);return t===0?`0 ms`:`${t>0?`+`:``}${t} ms`}function jn(e){if(!Number.isFinite(e))return`—`;let t=e<0?`-`:``,n=Math.abs(e);if(n<1e4)return`${t}${(n/1e3).toFixed(1)}s`;if(n<6e4)return`${t}${(n/1e3).toFixed(2)}s`;let r=n/1e3,i=Math.floor(r/60);return`${t}${i}:${(r-i*60).toFixed(1).padStart(4,`0`)}`}function Mn(e){try{return JSON.stringify(e??null,null,2)}catch{return String(e)}}async function Nn(){try{await navigator.clipboard.writeText(Mn(r(A))),m(Ft,`ok`),window.setTimeout(()=>{m(Ft,`idle`)},2e3)}catch(e){console.error(`Failed to copy latency stream`,e),m(Ft,`error`),window.setTimeout(()=>{m(Ft,`idle`)},3e3)}}function Pn(){!r(W)||r(B)==null||r(V)==null||we(r(W),{startMs:r(B),endMs:r(V),originMs:r(q)})}function Q(e){let t=typeof e.createdAt==`number`&&Number.isFinite(e.createdAt)?new Date(e.createdAt).toLocaleTimeString():`unknown time`;return e.traceType===`LATENCY`?`Latency • #${e.seq??`?`} • ${e.eventType??`unknown`} • ${t}`:e.traceType===`CONVERSATIONAL`?`Conversational • ${e.eventName} • ${t}`:e.traceType===`STEP`?`Step • ${e.name??`unknown`} • ${t}`:`API • ${e.operationName} • ${t}`}function Fn(e){let t=e.payload;return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}function In(e){return e===`call.started`||e===`call.ended`?`Call`:e.startsWith(`vad.`)?`VAD`:e.startsWith(`stt.`)?`STT`:e===`speech.created`?`Trigger`:e.startsWith(`reply.pending.`)?`Reply Pending`:e.startsWith(`llm.connect_tcp.`)||e.startsWith(`llm.start_tls.`)?`LLM Transport`:e===`llm.requested`||e.startsWith(`llm.wait.`)?`LLM Wait`:e===`llm.first_token`||e===`llm.completed`||e.startsWith(`llm.stream.`)?`LLM Stream`:e.startsWith(`tts.text.`)?`TTS Text`:e.startsWith(`tts.provider.`)||e===`tts.audio.first_received`||e===`tts.audio.last_received`?`Provider`:e.startsWith(`tts.decode.`)?`Decode`:e.startsWith(`audio.output.wait.`)?`Output Queue`:e===`interruption.detected`||e===`audio.playback.interrupted`?`Interruptions`:e.startsWith(`audio.playback.`)?`Playback`:`Other`}function Ln(e){return e===`call.started`||e===`call.ended`?`call`:e.startsWith(`vad.`)?`vad`:e.startsWith(`stt.`)?`stt`:e===`speech.created`?`trigger`:e.startsWith(`reply.pending.`)?`reply.pending`:e.startsWith(`llm.connect_tcp.`)||e.startsWith(`llm.start_tls.`)?`llm.transport`:e===`llm.requested`||e.startsWith(`llm.wait.`)?`llm.wait`:e===`llm.first_token`||e===`llm.completed`||e.startsWith(`llm.stream.`)?`llm.stream`:e.startsWith(`tts.text.`)?`tts.text`:e.startsWith(`tts.provider.`)?`tts.provider.lifecycle`:e===`tts.audio.first_received`||e===`tts.audio.last_received`?`tts.provider`:e.startsWith(`tts.decode.`)?`tts.decode`:e.startsWith(`audio.output.wait.`)?`audio.output.wait`:e===`interruption.detected`||e===`audio.playback.interrupted`?`interruption`:e.startsWith(`audio.playback.`)?`playback`:`other`}function Rn(e){switch(e){case`vad.activated`:case`stt.started`:return`start`;case`vad.deactivated`:case`stt.final`:case`stt.final_transcript`:return`end`;default:return null}}function zn(e){switch(e.eventType){case`call.started`:return`Call started`;case`call.ended`:return`Call ended`;case`vad.activated`:return`VAD activated`;case`vad.deactivated`:return`VAD deactivated`;case`stt.started`:return`STT start`;case`stt.interim`:return`STT interim`;case`stt.final`:case`stt.final_transcript`:return`STT final`;case`speech.created`:return`Speech created`;case`reply.pending.started`:return`Reply pending start`;case`reply.pending.completed`:return`Reply pending end`;case`llm.connect_tcp.started`:return`Connect TCP start`;case`llm.connect_tcp.completed`:return`Connect TCP end`;case`llm.connect_tcp.failed`:return`Connect TCP failed`;case`llm.start_tls.started`:return`TLS start`;case`llm.start_tls.completed`:return`TLS end`;case`llm.start_tls.failed`:return`TLS failed`;case`llm.wait.started`:return`LLM wait start`;case`llm.wait.completed`:return`LLM wait end`;case`llm.stream.started`:return`LLM stream start`;case`llm.stream.completed`:return`LLM stream end`;case`llm.requested`:return`LLM request`;case`llm.first_token`:return`LLM first token`;case`llm.completed`:return`LLM end`;case`tts.text.first_sent`:return`TTS first text`;case`tts.text.completed`:return`TTS text end`;case`tts.provider.started`:return`Provider start`;case`tts.provider.completed`:return`Provider end`;case`tts.audio.first_received`:return`Provider audio received`;case`tts.audio.last_received`:return`Provider audio end`;case`tts.decode.started`:return`Decode start`;case`tts.decode.completed`:return`Decode end`;case`audio.output.wait.started`:return`Output queue start`;case`audio.output.wait.completed`:return`Output queue end`;case`interruption.detected`:return`Interruption detected`;case`audio.playback.started`:return`Playback start`;case`audio.playback.stopped`:return`Playback stop`;case`audio.playback.ended`:return`Playback end`;case`audio.playback.interrupted`:return`Playback interrupted`;default:return e.eventType}}function Bn(e){let t=Fn(e);switch(e.eventType){case`call.started`:return`Call-scoped latency stream started`;case`call.ended`:return`Call-scoped latency stream ended`;case`vad.activated`:return`Raw VAD activation event`;case`vad.deactivated`:return`Raw VAD deactivation event`;case`stt.started`:return`Speech-to-text detected speech start`;case`stt.interim`:return Y(t.originalType)===`preflight_transcript`?`Speech-to-text preflight transcript`:`Speech-to-text interim transcript`;case`stt.final`:case`stt.final_transcript`:return`Speech-to-text final transcript`;case`speech.created`:return`LiveKit created a speech handle`;case`reply.pending.started`:return`Reply generation was committed, but downstream generation has not started yet`;case`reply.pending.completed`:return`Reply generation moved from pending into the LLM request phase`;case`llm.connect_tcp.started`:return`httpcore started opening a new TCP connection for the LLM request`;case`llm.connect_tcp.completed`:return`httpcore finished opening a new TCP connection for the LLM request`;case`llm.connect_tcp.failed`:return`httpcore failed while opening a new TCP connection for the LLM request`;case`llm.start_tls.started`:return`httpcore started TLS negotiation for the LLM request`;case`llm.start_tls.completed`:return`httpcore finished TLS negotiation for the LLM request`;case`llm.start_tls.failed`:return`httpcore failed during TLS negotiation for the LLM request`;case`llm.wait.started`:return`LLM request is in flight and waiting for the first token`;case`llm.wait.completed`:return`The LLM wait phase ended when the first token arrived`;case`llm.stream.started`:return`LLM streaming phase started`;case`llm.stream.completed`:return`LLM streaming phase ended`;case`llm.requested`:return`AnyVan received an LLM request`;case`llm.first_token`:return`First LLM token received`;case`llm.completed`:return`LLM streaming completed`;case`tts.text.first_sent`:return`First text chunk sent to the TTS provider`;case`tts.text.completed`:return`Last non-empty text chunk observed for this TTS stream`;case`tts.provider.started`:return`Provider lifecycle started when the first non-empty TTS text chunk was sent`;case`tts.provider.completed`:return`Provider lifecycle ended when the provider stream reported completion`;case`tts.audio.first_received`:return`First audio chunk received from the TTS provider`;case`tts.audio.last_received`:return`Last audio chunk received from the TTS provider`;case`tts.decode.started`:return`First provider audio bytes were handed into the local decode path`;case`tts.decode.completed`:return`The first decoded audio frame left the local decode path`;case`audio.output.wait.started`:return`The first local audio frame was handed to the LiveKit audio output`;case`audio.output.wait.completed`:return`The audio-output wait phase ended when low-level playback actually started`;case`interruption.detected`:return`User speech overlapped active playback; this does not guarantee playback stopped`;case`audio.playback.started`:return`First played audio frame`;case`audio.playback.stopped`:return`Playback lifecycle ended on the Playback row`;case`audio.playback.ended`:return`Audio playback finished normally`;case`audio.playback.interrupted`:return`Audio playback ended because the output buffer was interrupted`;default:return null}}function Vn(e){return Y(Fn(e).text)}function Hn(e){return e.eventType===`stt.final`||e.eventType===`stt.final_transcript`}function $(e){let t=Y(e);return t&&t.replace(/\s+/g,` `).trim()||null}function Un(e){let t=Fn(e),n=$(t.text)??$(t.transcript)??$(t.finalTranscript)??$(t.final_transcript)??$(t.message);if(n)return n;let r=t.alternatives;if(Array.isArray(r))for(let e of r){if(!e||typeof e!=`object`)continue;let t=$(e.text);if(t)return t}return null}function Wn(e){return e.traceType===`CONVERSATIONAL`}function Gn(e){return Wn(e)&&e.role.toLowerCase()===`user`&&(e.eventName===`received-message`||e.eventName===`llm-handler-stream-requested`)}function Kn(e){return Wn(e)&&(e.eventName===`finished-main-streaming-step`||e.eventName===`sent-message`)}function qn(e){return Y(e.traceId)??`${e.createdAt}:${e.eventName}:${e.content}`}function Jn(){for(let e of r(A).slice().sort(Dr))if(e.eventType===`call.started`&&Number.isFinite(e.atMs))return e.atMs;return r(q)}function Yn(e,t){let n=t.filter(t=>t.start<=e).sort((e,t)=>t.start-e.start||t.end-e.end)[0];return n?n.end<=e?Math.min(n.end,e):Math.min(n.start,e):Math.min(Jn(),e)}function Xn(e){return/<WAIT\b[^>]*\/?\s*>/i.test(e)}function Zn(e){return e.traceType===`STEP`&&se(e.name)&&Y(e.response)!=null}function Qn(e){return e.replace(/<[^>]+>/g,` `).replace(/\s+/g,` `).trim()}function $n(e,t){if(e===t)return!0;let n=Qn(e),r=Qn(t);return n!==``&&n===r}function er(e){let t=e-_e,n=e+_e;for(let i of r(j))if(Gn(i)){if(i.createdAt<=e)t=i.createdAt;else{n=i.createdAt;break}}return{start:t,end:n}}function tr(e,t,n){let r=er(e.createdAt);return t.filter(e=>!n.has(rr(e))&&e.createdAt>=r.start&&e.createdAt<r.end).sort((t,n)=>Math.abs(t.createdAt-e.createdAt)-Math.abs(n.createdAt-e.createdAt))[0]??null}function nr(){let e=[],t=new Set,n=r(j).filter(Zn).sort(pi),i=r(j).filter(Kn).sort(pi);for(let r of i){let i=tr(r,n,t),a=(i?Y(i.response):null)??Y(r.content),o=$(a);if(!o||!a)continue;let s=e.find(e=>e.agentTraceIds.size>0&&Math.abs(e.createdAt-r.createdAt)<=1e3&&$n(e.fullText,a));if(s){s.agentTraceIds.add(qn(r)),i&&t.add(rr(i));continue}i&&t.add(rr(i)),e.push({id:i?`response:step:${rr(i)}`:`response:agent:${qn(r)}`,text:o,fullText:a,createdAt:r.createdAt,agentTraceIds:new Set([qn(r)]),traceLabel:Q(i??r)})}for(let r of n){let n=rr(r);if(t.has(n))continue;let i=Y(r.response),a=$(i);!a||!i||e.push({id:`response:step:${n}`,text:a,fullText:i,createdAt:r.createdAt,agentTraceIds:new Set,traceLabel:Q(r)})}return e.sort((e,t)=>e.createdAt-t.createdAt||e.id.localeCompare(t.id))}function rr(e){return Y(e.traceId)??`${e.seq??`?`}:${e.createdAt??`?`}`}function ir(){return r(A).slice().sort(Dr).flatMap(e=>{if(e.eventType!==`tts.text.first_sent`&&e.eventType!==`tts.text.completed`)return[];let t=$(Vn(e));return t?[{trace:e,text:t}]:[]})}function ar(e,t,n,r){let i=r-250,a=e.start+2e3;return t.filter(({trace:e})=>!n.has(rr(e))&&e.atMs>=i&&e.atMs<=a).sort((t,n)=>Math.abs(t.trace.atMs-e.start)-Math.abs(n.trace.atMs-e.start))[0]??null}function or(e){let t=new Map,n=e.filter(e=>e.row===`Playback`&&e.durationMs>0).sort((e,t)=>e.start-t.start||e.end-t.end),r=new Set,i=ir(),a=Jn();for(let e of n){let n=ar(e,i,r,a);a=Math.max(a,e.end),n&&(r.add(rr(n.trace)),t.set(e.id,{text:n.text,fullText:n.text,traceLabel:Q(n.trace)}))}return t}function sr(e){return e.flatMap(e=>{if(!Xn(e.fullText))return[];let t=cr(e.createdAt);return[{...Er({id:`playback:wait:${e.id}`,row:`Playback`,start:e.createdAt,end:t,colorKey:`playback`,label:`WAIT response`,traceLabel:e.traceLabel}),speechText:e.text,speechFullText:e.fullText,speechTraceLabel:e.traceLabel}]})}function cr(e){let t=r(A).filter(t=>t.atMs>e&&(t.eventType===`audio.playback.started`||t.eventType===`stt.started`||t.eventType===`vad.activated`||t.eventType===`call.ended`)).sort((e,t)=>e.atMs-t.atMs||e.seq-t.seq)[0];return t?t.atMs:e+1}function lr(){let e=[],t=r(Yt).filter(e=>e.row===`Playback`&&e.durationMs>0).sort((e,t)=>e.start-t.start||e.end-t.end);return r(A).slice().sort(Dr).forEach(n=>{if(!Hn(n))return;let r=Un(n);r&&e.push({id:`bubble:human:${n.traceId??n.seq}`,role:`human`,text:r,fullText:r,anchorTime:n.atMs,minStartTime:Yn(n.atMs,t),anchorRow:`STT`,traceLabel:Q(n)})}),e.sort((e,t)=>e.anchorTime-t.anchorTime||e.role.localeCompare(t.role)||e.id.localeCompare(t.id))}function ur(e){let t=r(en).findIndex(t=>t.label===e);return t===-1?32:32+t*35+15}function dr(e){let t=0;for(let n of e)n===` `?t+=4:`ilI.,:;!|`.includes(n)?t+=4.2:`mwMW@#%&`.includes(n)?t+=9.5:/[A-Z0-9]/.test(n)?t+=7.5:t+=6.8;return Math.ceil(t+24)}function fr(e,t){return X(dr(e),60,Math.max(60,t))}function pr(e,t){let n=new Set,r=[],i=Math.max(60,t);for(let t of[e,200,132,60]){let a=X(t,60,i);a>e||n.has(a)||(n.add(a),r.push(a))}return r}function mr(e,t){let n=-1;for(let r of e)r.role===t&&(n=Math.max(n,r.level));return n+1}function hr(e){return Math.max(0,e)*35}function gr(e){let t=r(ln);return e.map(e=>{let n=e.level*35,r=t+n,i=ur(e.anchorRow);return{...e,topPx:n,lineTopPx:i,lineHeightPx:Math.max(1,r-i)}})}function _r(e,t){if(r(B)==null||r(V)==null||r(U)<=0)return[];let n=r(B),i=r(V)-n;if(!Number.isFinite(i)||i<=0)return[];let a=t.filter(t=>t.role===e).map(e=>{let t=(e.anchorTime-n)/i*100,a=(e.minStartTime-n)/i*r(U),o=t/100*r(U);return{...e,anchorPercent:t,anchorPx:o,maxWidthPx:Math.max(60,o-a)}}).sort((e,t)=>e.anchorPx-t.anchorPx||e.anchorTime-t.anchorTime),o=Array.from({length:3},()=>-1/0),s=[];for(let e of a){let t=pr(fr(e.text,e.maxWidthPx),e.maxWidthPx),n=null;for(let r of t){let t=e.anchorPx,i=t-r;for(let a=0;a<3;a+=1)if(!(i<o[a]+8)){n={...e,leftPx:i,topPx:0,widthPx:r,level:a,lineTopPx:30,lineHeightPx:1},o[a]=t;break}if(n)break}n&&s.push(n)}return s}function vr(){return _r(`human`,lr())}function yr(e){return`left:${Math.round(e.leftPx)}px;top:${Math.round(e.topPx)}px;width:${Math.round(e.widthPx)}px;height:30px;`}function br(e){return`left:${e.anchorPercent}%;top:${Math.round(e.lineTopPx)}px;height:${Math.round(e.lineHeightPx)}px;`}function xr(e){let t=`absolute z-20 overflow-hidden truncate rounded-lg border-thin border-rc-gray-110 px-3 text-sm leading-[30px] text-rc-gray-100 backdrop-blur-md`;return e.role===`agent`?`${t} bg-rc-green-700`:`${t} bg-rc-gray-700`}function Sr(e){let t=`pointer-events-none max-h-56 max-w-[34rem] overflow-auto rounded-lg border-thin border-rc-gray-110 p-2 pt-1 text-sm text-rc-gray-100 shadow-2xl backdrop-blur-md`;return e.role===`agent`?`${t} bg-rc-green-700`:`${t} bg-rc-gray-700`}function Cr(){Gt!=null&&(window.clearTimeout(Gt),Gt=null)}function wr(e,t){let n=t.currentTarget;n instanceof HTMLElement&&(Cr(),Gt=window.setTimeout(()=>{m(jt,e,!0),m(Mt,n,!0),Gt=null},50))}function Tr(){Cr(),m(jt,null),m(Mt,null)}function Er(e){return{id:e.id,row:e.row,start:e.start,end:e.end,durationMs:Math.max(0,e.end-e.start),colorKey:e.colorKey,label:e.label,description:e.description??null,explain:e.explain??null,text:e.text??null,speechText:null,speechFullText:null,speechTraceLabel:null,traceLabel:e.traceLabel,eventMarker:e.eventMarker??null}}function Dr(e,t){return e.seq-t.seq||e.atMs-t.atMs||(e.createdAt??0)-(t.createdAt??0)||String(e.traceId??``).localeCompare(String(t.traceId??``))}function Or(e,t,n,r){for(let i=t+1;i<e.length;i+=1){let t=e[i];if(r(t))return null;if(n(t))return t}return null}function kr(e){return he(e).filter(e=>pe(r(j),e)!=null).map(e=>Er({id:`derived:${e.id}`,row:`Response Latency`,start:e.start,end:e.end,colorKey:e.isHigh?`response.latency.high`:`response.latency.ok`,label:`Final STT -> speech start`,description:e.speechCreatedTrace?`Final STT transcript -> first audio for the next uncancelled LiveKit speech`:`Final STT transcript -> next audio playback start`,explain:e.isHigh?`High latency (>${ge}ms)`:`OK`,text:e.text,traceLabel:e.speechCreatedTrace?`${Q(e.startTrace)} -> ${Q(e.speechCreatedTrace)} -> ${Q(e.endTrace)}`:`${Q(e.startTrace)} -> ${Q(e.endTrace)}`}))}function Ar(e){let t=kr(e);return e.forEach((n,r)=>{let i=Ee.get(n.eventType);if(!i)return;let a=Or(e,r,e=>e.eventType===i.endEventType,e=>e.eventType===i.startEventType);!a||a.atMs<n.atMs||t.push(Er({id:`derived:${i.row.toLowerCase().replaceAll(` `,`_`)}:${n.seq}:${a.seq}`,row:i.row,start:n.atMs,end:a.atMs,colorKey:i.colorKey,label:i.label,description:i.description,traceLabel:Q(n)}))}),t}function jr(e){let t=e.slice().filter(e=>typeof e.atMs==`number`&&Number.isFinite(e.atMs)&&typeof e.seq==`number`&&Number.isFinite(e.seq)).sort(Dr),n=t.map((e,t)=>Er({id:`point:${e.traceId??e.seq}:${t}`,row:In(e.eventType),start:e.atMs,end:e.atMs,colorKey:Ln(e.eventType),label:zn(e),description:Bn(e),text:Vn(e),traceLabel:Q(e),eventMarker:Rn(e.eventType)}));return[...Ar(t),...n].sort((e,t)=>e.start-t.start||+(e.durationMs===0)-(t.durationMs===0)||e.end-t.end||e.row.localeCompare(t.row))}function Mr(e){return e.row===`Playback`&&!e.eventMarker&&e.durationMs>0}function Nr(e){return!Mr(e)||!e.speechFullText?null:{role:`agent`,fullText:e.speechFullText}}function Pr(e){return Mr(e)?e.speechText:null}function Fr(e){if(r(B)==null||r(V)==null)return null;let t=r(V)-r(B);if(!Number.isFinite(t)||t<=0)return null;let n=Te[e.colorKey]??D.gray,i=Z(n,-.25);if(e.end===e.start){if(e.start<r(B)||e.start>r(V))return null;let a=X((e.start-r(B))/t*100,0,100);return e.eventMarker===`start`?`left:${a}%;width:7px;background:${n};border-color:${i};clip-path:polygon(0 0,100% 50%,0 100%);`:e.eventMarker===`end`?`left:calc(${a}% - 7px);width:7px;background:${n};border-color:${i};clip-path:polygon(100% 0,0 50%,100% 100%);`:`left:calc(${a}% - 2px);width:4px;background:${n};border-color:${i};`}let a=Math.max(e.start,r(B)),o=Math.min(e.end,r(V));if(o<a)return null;let s=(a-r(B))/t*100,c=(o-a)/t*100;return Mr(e)?`left:${s}%;width:max(${c}%,2px);`:`left:${s}%;width:max(${c}%,2px);background:${n};border-color:${i};`}function Ir(e){if(r(B)==null||r(V)==null)return null;let t=r(V)-r(B);if(!Number.isFinite(t)||t<=0)return null;let n=Math.max(e.start,r(B)),i=Math.min(e.end,r(V));return i<=n?null:`left:${(n-r(B))/t*100}%;width:${(i-n)/t*100}%;top:32px;bottom:0;`}function Lr(e){return e.eventMarker?`absolute inset-y-0 shadow-[0_0_0_1px_rgba(0,0,0,0.28)]`:Mr(e)?`absolute inset-y-0 overflow-hidden truncate rounded-lg border-thin border-rc-gray-110 bg-rc-green-700 px-3 text-sm leading-[30px] text-rc-gray-100 shadow-[0_0_0_1px_rgba(0,0,0,0.12)] backdrop-blur-md`:`absolute inset-y-0 rounded border shadow-[0_0_0_1px_rgba(0,0,0,0.12)]`}function Rr(e){return[e.label,e.row===e.label?``:e.row,`${jn(e.start-r(q))} → ${jn(e.end-r(q))} (${kn(e.durationMs)})`,e.description??``,e.text?`Text: ${e.text}`:``,e.explain??``,e.traceLabel].filter(e=>e.trim()!==``).join(`
|
|
3
|
-
`)}function zr(e,t){let n=t.currentTarget;n instanceof HTMLElement&&(m(Ot,e,!0),m(kt,n,!0))}function Br(){m(Ot,null),m(kt,null)}function Vr(e,t){let n=Nr(e);if(n){Br(),wr(n,t);return}Tr(),zr(e,t)}function Hr(){Br(),Tr()}function Ur(e){return`left:${e.leftPercent}%;top:${e.topPx}px;height:${e.heightPx}px;border-color:${e.color};opacity:${e.opacity};`}function Wr(e){return`left:${e.leftPercent}%;top:${e.topPx}px;height:${e.heightPx}px;`}function Gr(e){let t=`absolute top-1 whitespace-nowrap text-[11px] text-rc-gray-400`;return e.leftPercent<=.1?t:e.leftPercent>=99.9?`${t} -translate-x-full`:`${t} -translate-x-1/2`}function Kr(e){if(!r(N).exists||r(B)==null||r(V)==null)return[];let t=r(B),n=r(V),i=n-t;if(!Number.isFinite(i)||i<=0)return[];let a=r(pn),o=new Set,s=[];return e.forEach((e,r)=>{if(!ve.has(e.label))return;let c=32+r*35+15;e.segments.forEach(r=>{if(r.id.startsWith(`playback:wait:`))return;let l=Z(Te[r.colorKey]??D.gray,.15),u=r.end===r.start?r.start>=t&&r.start<=n?[r.start]:[]:(()=>{let e=Math.max(r.start,t),i=Math.min(r.end,n);return i<e?[]:[e,i]})();for(let n of u){let u=Math.round(n),d=`${e.label}:${u}`;if(o.has(d))continue;o.add(d);let f=X((n-t)/i*100,0,100);s.push({id:`${r.id}:${u}`,leftPercent:f,topPx:c,heightPx:Math.max(1,a-c),color:l,opacity:e.label===`VAD`?.62:.48})}})}),s}function qr(e){let t=e/7,n=10**Math.floor(Math.log10(Math.max(1,t))),r=t/n;return r<=1?1*n:r<=2?2*n:r<=5?5*n:10*n}function Jr(e,t,n){let r=t-e;if(!Number.isFinite(r)||r<=0)return[];let i=qr(r),a=Math.ceil((e-n)/i)*i+n,o=[];for(let s=a;s<=t;s+=i){let t=(s-e)/r*100;o.push({time:s,leftPercent:t,label:jn(s-n)})}return o}function Yr(){let e=window.AudioContext??window.webkitAudioContext;if(!e)throw Error(`Web Audio is not available in this browser`);return new e}function Xr(e){if(e.length===0||e.duration===0)return{durationMs:0,binDurationMs:0,minPeaks:new Float32Array,maxPeaks:new Float32Array,channelCount:e.numberOfChannels,sampleRate:e.sampleRate};let t=X(Math.round(e.duration*200),8e3,6e4),n=Math.max(1,Math.min(t,e.length)),r=Math.max(1,Math.floor(e.length/n)),i=new Float32Array(n),a=new Float32Array(n);for(let t=0;t<n;t+=1){let o=t*r,s=t===n-1?e.length:Math.min(e.length,o+r),c=1,l=-1;for(let t=0;t<e.numberOfChannels;t+=1){let n=e.getChannelData(t);for(let e=o;e<s;e+=1){let t=n[e]??0;t<c&&(c=t),t>l&&(l=t)}}l===-1&&c===1&&(c=0,l=0),i[t]=c,a[t]=l}return{durationMs:e.duration*1e3,binDurationMs:e.duration*1e3/n,minPeaks:i,maxPeaks:a,channelCount:e.numberOfChannels,sampleRate:e.sampleRate}}async function Zr(e){let t=await e.arrayBuffer(),n=Yr();try{let e=await n.decodeAudioData(t.slice(0));return{peaks:Xr(e),audioBuffer:e}}finally{await n.close().catch(()=>{})}}function Qr(e,t){let n=Math.max(1,Math.floor(t.width)),r=Math.max(1,Math.floor(t.height)),i=window.devicePixelRatio||1;e.width=Math.max(1,Math.round(n*i)),e.height=Math.max(1,Math.round(r*i)),e.style.width=`${n}px`,e.style.height=`${r}px`;let a=e.getContext(`2d`);if(!a)return;a.setTransform(i,0,0,i,0,0),a.clearRect(0,0,n,r),a.fillStyle=`rgba(10, 10, 10, 0.2)`,a.fillRect(0,0,n,r);let o=t.viewportEndMs-t.viewportStartMs;if(o<=0||t.peaks.minPeaks.length===0||t.peaks.binDurationMs<=0)return;let s=t.recordingStartMs+t.peaks.durationMs,c=Math.max(t.viewportStartMs,t.recordingStartMs),l=Math.min(t.viewportEndMs,s),u=r/2,d=r*.42;if(a.strokeStyle=`rgba(147, 255, 109, 0.95)`,a.lineWidth=1,a.beginPath(),l>c){let e=Math.max(0,Math.floor((c-t.recordingStartMs)/t.peaks.binDurationMs)),r=Math.min(t.peaks.minPeaks.length-1,Math.ceil((l-t.recordingStartMs)/t.peaks.binDurationMs));for(let i=e;i<=r;i+=1){let e=(t.recordingStartMs+i*t.peaks.binDurationMs-t.viewportStartMs)/o*n,r=t.peaks.minPeaks[i]??0,s=u-(t.peaks.maxPeaks[i]??0)*d,c=u-r*d;a.moveTo(e,s),a.lineTo(e,c)}}a.stroke(),a.strokeStyle=`rgba(255, 255, 255, 0.18)`,a.lineWidth=1,a.beginPath(),a.moveTo(0,u),a.lineTo(n,u),a.stroke()}function $r(){Vt&&=(window.cancelAnimationFrame(Vt),0)}async function ei(){let e=K;K=null,e&&await e.close().catch(()=>{})}async function ti(){return(!K||K.state===`closed`)&&(K=Yr()),K.state===`suspended`&&await K.resume(),K}function ni(){let e=ai();if(r(L)&&K&&Ut!=null&&Wt!=null){let t=(K.currentTime-Wt)*1e3,n=Ut+Math.max(0,t);return e>0?X(n,0,e):Math.max(0,n)}return e>0?X(r(I),0,e):Math.max(0,r(I))}function ri(e=!0){e&&m(I,ni(),!0);let t=Ht;if(Ht=null,Ut=null,Wt=null,m(L,!1),$r(),t){t.onended=null;try{t.stop()}catch{}t.disconnect()}}function ii(){$r();let e=()=>{if(!r(L)){Vt=0;return}m(I,ni(),!0),Vt=window.requestAnimationFrame(e)};Vt=window.requestAnimationFrame(e)}function ai(){return r(F)&&Number.isFinite(r(F).durationMs)?Math.max(0,r(F).durationMs):G&&Number.isFinite(G.duration)?Math.max(0,G.duration*1e3):0}function oi(e){let t=ai(),n=t>0?X(e,0,t):Math.max(0,e);m(I,n,!0),r(L)&&ui(n)}function si(e,t){if(r(B)==null||r(V)==null||r(J)==null)return;let n=t.getBoundingClientRect(),i=X((e-n.left)/Math.max(1,n.width),0,1),a=r(B)+i*(r(V)-r(B));m(R,null),oi(a-r(J))}function ci(e){let t=e instanceof HTMLElement?e:null;if(!t)return!1;let n=t.tagName;return t.isContentEditable||n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||n===`BUTTON`||n===`A`}async function li(){if(r(N).exists){if(m(R,null),r(L)){ri(!0);return}await ui(r(I))}}async function ui(e){let t=G;if(!t){m(R,r(yt)?`Recording is still decoding`:`Failed to decode recording for playback`,!0);return}let n=Math.max(0,t.duration*1e3),i=n>0?e>=n?0:X(e,0,n):Math.max(0,e);ri(!1),m(I,i,!0);try{let e=await ti(),r=e.createBufferSource();r.buffer=t,r.connect(e.destination),r.onended=()=>{Ht===r&&(Ht=null,Ut=null,Wt=null,m(L,!1),m(I,n,!0),$r())},Ht=r,Ut=i,Wt=e.currentTime,m(L,!0),m(R,null),ii(),r.start(0,i/1e3)}catch(e){ri(!1),m(L,!1),m(R,e instanceof Error?e.message:`Failed to play recording`,!0)}}function di(e){let t=new Set;return e.filter(e=>{let n=Y(e?.traceId);return!n||!t.has(n)&&(t.add(n),!0)})}function fi(e){let t=new Set;return e.filter(e=>{let n=Y(e?.traceId);return!n||!t.has(n)&&(t.add(n),!0)})}function pi(e,t){return e.createdAt-t.createdAt||String(e.traceId??``).localeCompare(String(t.traceId??``))}async function mi(e){let t=[],n;for(;;){let r=await ye.getLatencyTraces(e,500,n);if(t.push(...r.items??[]),n=r.lastTraceId,!n)break}return di(t).slice().sort(Dr)}async function hi(e){let t=[],n;for(;;){let r=await ye.getTraces(e,100,n);if(t.push(...r.items??[]),n=r.lastTraceId,!n)break}return fi(t).slice().sort(pi)}async function gi(e){let t=++Lt;m(M,!1),m(mt,!0),m(ht,null);try{let[n,r,i]=await Promise.all([ye.getConversation(e).catch(e=>(console.error(`Failed to load conversation details:`,e),null)),mi(e),hi(e).catch(e=>(console.error(`Failed to load conversation traces for latency matching:`,e),[]))]);if(t!==Lt)return;m(pt,n,!0),m(A,r,!0),m(j,i,!0),m(M,!0)}catch(e){if(t!==Lt)return;m(ht,e instanceof Error?e.message:String(e),!0),m(pt,null),m(A,[],!0),m(j,[],!0)}finally{if(t!==Lt)return;m(mt,!1),wn()}}async function _i(e){if(ri(!1),m(N,e,!0),m(xt,null),m(R,null),m(I,0),!e.exists||!e.blob){G=null,m(F,null),m(yt,!1),m(bt,null);return}let t=++zt;m(yt,!0),m(bt,null);try{let n=await Zr(e.blob);if(t!==zt)return;m(F,n.peaks,!0),G=n.audioBuffer}catch(e){if(t!==zt)return;G=null,m(F,null),m(bt,e instanceof Error?e.message:String(e),!0)}finally{if(t!==zt)return;m(yt,!1)}}async function vi(e=r(Jt)){if(!e)return;let t=++Rt;m(gt,!1),m(_t,!0),m(P,null);try{let n=await Me(e);if(t!==Rt||(await _i({exists:n!=null,blob:n,alignmentOffsetMs:n?Pe(e):0}),t!==Rt))return;m(gt,!0)}catch(e){if(t!==Rt)return;m(P,e instanceof Error?e.message:String(e),!0),m(N,De(),!0),m(F,null),m(yt,!1)}finally{if(t!==Rt)return;m(_t,!1),wn()}}function yi(e=!0){let t=r(bn)??r(_n);if(!t)return;let n=r(q);m(B,n,!0),m(V,Math.max(n+1e3,t.max),!0),m(z,e,!0)}function bi(e,t){let n=r(_n);if(!n)return{startMs:e,endMs:t};let i=t-e;if(i<=0)return{startMs:e,endMs:t};let a=Math.max(1e3,i*.25),o=n.min-a,s=n.max+a;return i>=s-o?{startMs:o,endMs:s}:(e<o&&(t+=o-e,e=o),t>s&&(e-=t-s,t=s),{startMs:e,endMs:t})}function xi(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||t<=e)return;let n=bi(e,t);m(B,n.startMs,!0),m(V,n.endMs,!0)}function Si(e,t=.5){if(r(B)==null||r(V)==null)return;let n=r(V)-r(B);if(!Number.isFinite(n)||n<=0)return;let i=r(_n),a=i?i.max-i.min:n,o=Math.min(100,n),s=Math.max(a+Math.max(2e3,a*.1),5e3),c=X(n*e,o,s),l=X(t,0,1),u=r(B)+n*l-c*l;m(z,!0),xi(u,u+c)}function Ci(e){let t=e.deltaY;return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=16:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=window.innerHeight),X(t,-137,137)}function wi(e){return Math.exp(Ci(e)*.00145)}function Ti(e){if(r(U)<=0)return;e.preventDefault();let t=e.currentTarget.getBoundingClientRect(),n=X((e.clientX-t.left)/Math.max(1,t.width),0,1);Si(wi(e),n)}function Ei(e){if(r(Tt)<=0)return;e.preventDefault();let t=e.currentTarget.getBoundingClientRect(),n=X((e.clientX-t.left)/Math.max(1,t.width),0,1);Si(wi(e),n)}function Di(e){Bt?.();let t=Math.max(0,e.activationDistancePx??0),n=t===0;n&&e.onStart?.();let r=r=>{if(n)return!0;let i=r.clientX-e.startEvent.clientX,a=r.clientY-e.startEvent.clientY;return Math.hypot(i,a)<t?!1:(n=!0,e.onStart?.(),!0)},i=t=>{r(t)&&e.onMove(t)},a=t=>{window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,o),window.removeEventListener(`pointercancel`,s),Bt=null,!n&&t&&e.onClick?.(t),e.onEnd?.({wasDrag:n,event:t})},o=e=>a(e),s=()=>a();window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,o),window.addEventListener(`pointercancel`,s),Bt=()=>a()}function Oi(e){if(e.button!==0||r(B)==null||r(V)==null||r(U)<=0)return;e.preventDefault(),m(z,!0);let t=e.clientX,n=r(B),i=r(V)-r(B);Di({startEvent:e,onMove:e=>{let a=(e.clientX-t)/r(U)*i;xi(n-a,n-a+i)}})}function ki(e){m(N,{...r(N),alignmentOffsetMs:Math.round(e)},!0)}function Ai(){!r(N).exists||!r(Jt)||Fe(r(Jt),r(N).alignmentOffsetMs)}function ji(e){if(e.button!==0||!r(N).exists||r(F)==null||r(B)==null||r(V)==null||r(Tt)<=0)return;e.preventDefault(),m(xt,null);let t=e.currentTarget,n=e.clientX,i=r(N).alignmentOffsetMs,a=r(V)-r(B);Di({startEvent:e,activationDistancePx:6,onStart:()=>{m(z,!0)},onMove:e=>{let t=(e.clientX-n)/r(Tt)*a;ki(i+t)},onClick:e=>{si(e.clientX,t)},onEnd:({wasDrag:e})=>{e&&Ai()}})}function Mi(){r(N).exists&&(m(z,!0),ki(0),Ai())}async function Ni(e){let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!(!n||!r(Jt))){m(vt,!0),m(P,null),m(xt,null);try{let e=r(Jt);await Ne(e,n),Fe(e,0),m(z,!1),await _i({exists:!0,blob:n,alignmentOffsetMs:0}),yi(!1),m(gt,!0),wn()}catch(e){m(P,e instanceof Error?e.message:String(e),!0)}finally{m(vt,!1)}}}var Pi=dt(),Fi=te(Pi),Ii=_(Fi),Li=_(Ii),Ri=_(Li),zi=_(Ri),Bi=b(_(zi)),Vi=e=>{var t=Ie(),i=b(te(t),2),a=_(i,!0);d(i),h(()=>s(a,r(Kt))),n(e,t)};v(Bi,e=>{r(Kt)&&e(Vi)}),d(zi);var Hi=b(zi,2),Ui=_(Hi),Wi=b(_(Ui),2),Gi=_(Wi,!0);d(Wi),d(Ui);var Ki=b(Ui,2),qi=b(_(Ki),2),Ji=_(qi,!0);d(qi),d(Ki);var Yi=b(Ki,2),Xi=b(_(Yi),2),Zi=_(Xi,!0);d(Xi),d(Yi);var Qi=b(Yi,2),$i=e=>{var t=Le(),i=b(_(t),2),a=_(i,!0);d(i),d(t),h(e=>s(a,e),[()=>jn(r(mn)-r(q))]),n(e,t)};v(Qi,e=>{r(N).exists&&r(mn)!=null&&e($i)});var ea=b(Qi,2),ta=e=>{var t=Re(),i=b(_(t),2),a=_(i);d(i),d(t),h((e,t)=>s(a,`${e??``} → ${t??``}`),[()=>jn(r(B)-r(q)),()=>jn(r(V)-r(q))]),n(e,t)};v(ea,e=>{r(B)!=null&&r(V)!=null&&e(ta)}),d(Hi),d(Ri);var na=b(Ri,2),ra=_(na);y(ra,e=>m(Dt,e),()=>r(Dt));var ia=b(ra,2);T(ia,{variant:`secondary`,size:`small`,get disabled(){return r(vt)},onclick:()=>r(Dt)?.click(),children:(e,t)=>{c();var i=w();h(()=>s(i,r(vt)?`Loading…`:r(N).exists?`Replace WAV`:`Load WAV`)),n(e,i)},$$slots:{default:!0}});var aa=b(ia,2);{let e=g(()=>!r(N).exists);T(aa,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:()=>void li(),children:(e,t)=>{c();var i=w();h(()=>s(i,r(L)?`Pause`:`Play`)),n(e,i)},$$slots:{default:!0}})}var oa=b(aa,2);{let e=g(()=>r(xn)==null);T(oa,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:()=>Si(.8),children:(e,t)=>{c();var r=w(`Zoom in`);n(e,r)},$$slots:{default:!0}})}var sa=b(oa,2);{let e=g(()=>r(xn)==null);T(sa,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:()=>Si(1.25),children:(e,t)=>{c();var r=w(`Zoom out`);n(e,r)},$$slots:{default:!0}})}var ca=b(sa,2);{let e=g(()=>!(r(bn)??r(_n)));T(ca,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:()=>yi(!0),children:(e,t)=>{c();var r=w(`Fit call`);n(e,r)},$$slots:{default:!0}})}var la=b(ca,2);{let e=g(()=>!r(N).exists);T(la,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:Mi,children:(e,t)=>{c();var r=w(`Reset alignment`);n(e,r)},$$slots:{default:!0}})}var ua=b(la,2);{let e=g(()=>!r(A).length);T(ua,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:Nn,children:(e,t)=>{c();var i=w();h(()=>s(i,r(Ft)===`ok`?`Copied`:r(Ft)===`error`?`Copy failed`:`Copy latency stream`)),n(e,i)},$$slots:{default:!0}})}d(na),d(Li);var da=b(Li,2),fa=e=>{var t=ze(),i=_(t,!0);d(t),h(()=>s(i,r(mt)?`Loading call latency…`:`Loading recording…`)),n(e,t)};v(da,e=>{(r(mt)||r(_t))&&e(fa)});var pa=b(da,2),ma=e=>{var t=Be(),i=_(t);d(t),h(()=>s(i,`Failed to load latency traces: ${r(ht)??``}`)),n(e,t)};v(pa,e=>{r(ht)&&e(ma)});var ha=b(pa,2),ga=e=>{var t=Be(),i=_(t);d(t),h(()=>s(i,`Recording error: ${r(P)??``}`)),n(e,t)};v(ha,e=>{r(P)&&e(ga)});var _a=b(ha,2),va=e=>{var t=Be(),i=_(t);d(t),h(()=>s(i,`Alignment error: ${r(xt)??``}`)),n(e,t)};v(_a,e=>{r(xt)&&e(va)});var ya=b(_a,2),ba=e=>{var t=Be(),i=_(t);d(t),h(()=>s(i,`Playback error: ${r(R)??``}`)),n(e,t)};v(ya,e=>{r(R)&&e(ba)}),d(Ii);var xa=b(Ii,2),Sa=_(xa),Ca=_(Sa),wa=_(Ca),Ta=e=>{var t=Ve();n(e,t)},Ea=e=>{var t=He();n(e,t)},Da=e=>{var t=Ue();n(e,t)},Oa=e=>{var t=ct(),o=_(t),u=b(_(o),2);l(u,19,()=>r(en),e=>e.label,(e,t,i)=>{var a=We(),o=_(a,!0);d(a),h(()=>{p(a,`height:30px;margin-top:${r(i)===0?0:5}px;`),s(o,r(t).label)}),n(e,a)});var ne=b(u,2),re=b(ne,2),x=e=>{var t=Ge();p(t,`height:160px;margin-top:5px;`),n(e,t)};v(re,e=>{r(un)&&e(x)}),d(o);var ie=b(o,2),S=_(ie),C=_(S);l(C,17,()=>r(yn),e=>e.id,(e,t)=>{let i=g(()=>Ir(r(t)));var o=a(),s=te(o),l=e=>{var t=Ke(),a=_(t);c(2),d(t),h(()=>{p(t,r(i)),p(a,`background:${D.blue};opacity:0.08;`)}),n(e,t)};v(s,e=>{r(i)&&e(l)}),n(e,o)});var w=b(C,2);l(w,17,()=>r(rn),e=>e.id,(e,t)=>{var i=qe();h(e=>p(i,e),[()=>br(r(t))]),n(e,i)});var oe=b(w,2);l(oe,17,()=>r(fn),e=>e.id,(e,t)=>{var i=Je();h(e=>p(i,e),[()=>Ur(r(t))]),n(e,i)});var T=b(oe,2),se=e=>{var t=Ye();h(e=>p(t,e),[()=>Wr(r(gn))]),n(e,t)};v(T,e=>{r(gn)&&e(se)});var ce=b(T,2),le=e=>{var t=Xe(),i=te(t),a=b(i,2);h(()=>{p(i,`left:${r(hn).leftPercent}%;top:${r(hn).topPx}px;height:${r(hn).heightPx}px;`),p(a,`left:${r(hn).leftPercent}%;top:${r(hn).topPx-4}px;`)}),n(e,t)};v(ce,e=>{r(hn)&&e(le)}),d(S);var ue=b(S,2);l(ue,21,()=>r(Sn),e=>e.time,(e,t,i,a)=>{var o=Ze(),c=te(o),l=b(c,2),u=_(l,!0);d(l),h(e=>{p(c,`left:${r(t).leftPercent}%;`),ae(l,1,e),p(l,`left:${r(t).leftPercent}%;`),s(u,r(t).label)},[()=>f(Gr(r(t)))]),n(e,o)}),d(ue),y(ue,e=>m(St,e),()=>r(St));var de=b(ue,2);l(de,19,()=>r(en),e=>e.label,(e,t,o)=>{var c=tt(),u=_(c);l(u,17,()=>r(Sn),e=>e.time,(e,t,i,a)=>{var o=Qe();h(()=>p(o,`left:${r(t).leftPercent}%;`)),n(e,o)});var m=b(u,2);l(m,17,()=>r(t).segments,e=>e.id,(e,t)=>{let o=g(()=>Fr(r(t))),c=g(()=>Pr(r(t)));var l=a(),u=te(l),m=e=>{var a=et(),l=_(a),u=e=>{var t=$e(),i=_(t,!0);d(t),h(()=>s(i,r(c))),n(e,t)};v(l,e=>{r(c)&&e(u)}),d(a),h(e=>{ae(a,1,e),p(a,r(o))},[()=>f(Lr(r(t)))]),i(`pointerenter`,a,e=>Vr(r(t),e)),i(`pointerleave`,a,Hr),ee(`pointerdown`,a,Hr),n(e,a)};v(u,e=>{r(o)&&e(m)}),n(e,l)}),d(c),h(()=>p(c,`height:30px;margin-top:${r(o)===0?0:5}px;`)),ee(`pointerdown`,c,Oi),i(`wheel`,c,Ti),n(e,c)});var E=b(de,2);let fe;var pe=_(E),me=b(pe,2);l(me,17,()=>r(Sn),e=>e.time,(e,t,i,a)=>{var o=nt();h(()=>p(o,`left:${r(t).leftPercent}%;`)),n(e,o)});var he=b(me,2);l(he,17,()=>r(rn),e=>e.id,(e,t)=>{var a=rt(),o=_(a,!0);d(a),h((e,n)=>{ae(a,1,e),p(a,n),s(o,r(t).text)},[()=>f(xr(r(t))),()=>yr(r(t))]),i(`pointerenter`,a,e=>wr(r(t),e)),i(`pointerleave`,a,Tr),ee(`pointerdown`,a,Tr),n(e,a)}),d(E);var ge=b(E,2),_e=e=>{var t=st();p(t,`height:160px;margin-top:5px;`);var a=_(t),o=e=>{var t=it();n(e,t)},c=e=>{var t=at(),i=_(t);d(t),h(()=>s(i,`Failed to decode waveform: ${r(bt)??``}`)),n(e,t)},u=e=>{var t=ot();y(t,e=>m(wt,e),()=>r(wt)),n(e,t)};v(a,e=>{r(yt)?e(o):r(bt)?e(c,1):e(u,-1)});var f=b(a,2);l(f,17,()=>r(Sn),e=>e.time,(e,t,i,a)=>{var o=Qe();h(()=>p(o,`left:${r(t).leftPercent}%;`)),n(e,o)}),d(t),y(t,e=>m(Ct,e),()=>r(Ct)),ee(`pointerdown`,t,ji),i(`wheel`,t,Ei),n(e,t)};v(ge,e=>{r(un)&&e(_e)}),d(ie),d(t),h(()=>{p(ne,`height:${r(an)}px;margin-top:${r(cn)}px;`),fe=ae(E,1,`relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60`,null,fe,{"rounded-b":!r(un),"border-b":!r(un)}),p(E,`height:${r(on)}px;margin-top:${r(cn)}px;`),p(pe,`height:${r(an)}px;`)}),i(`wheel`,ue,Ti),ee(`pointerdown`,E,Oi),i(`wheel`,E,Ti),n(e,t)};v(wa,e=>{r(mt)?e(Ta):r(Yt).length?r(B)==null||r(V)==null?e(Da,2):e(Oa,-1):e(Ea,1)}),d(Ca),d(Sa),d(xa),y(xa,e=>m(H,e),()=>r(H)),d(Fi);var ka=b(Fi,2),Aa=e=>{y(fe(e,{get referenceEl(){return r(kt)},placement:`top-start`,offset:[0,10],children:e=>{var t=lt();l(t,21,()=>r(Cn),ne,(e,t,i)=>{var a=rt();ae(a,1,f(i===0?`font-semibold text-rc-gray-050`:`mt-1 whitespace-pre-wrap break-words text-rc-gray-300`));var o=_(a,!0);d(a),h(()=>s(o,r(t))),n(e,a)}),d(t),n(e,t)},$$slots:{default:!0}}),e=>m(At,e,!0),()=>r(At))};v(ka,e=>{r(Ot)&&r(kt)&&e(Aa)});var ja=b(ka,2),Ma=e=>{let t=g(()=>r(jt));y(fe(e,{get referenceEl(){return r(Mt)},placement:`top-start`,offset:[0,-4],flip:!1,children:e=>{var i=ut(),a=_(i),o=_(a,!0);d(a),d(i),h(e=>{ae(i,1,e),s(o,r(t).fullText)},[()=>f(Sr(r(t)))]),n(e,i)},$$slots:{default:!0}}),e=>m(Nt,e,!0),()=>r(Nt))};v(ja,e=>{r(jt)&&r(Mt)&&e(Ma)}),h(e=>{s(Gi,r(Xt)),s(Ji,r(Yt).length),s(Zi,e)},[()=>An(r(N).alignmentOffsetMs)]),ee(`click`,Fi,e=>e.stopPropagation()),ee(`change`,ra,Ni),i(`scroll`,xa,En),n(e,Pi),t()}e([`click`,`change`,`pointerdown`]);export{k as component};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{B as e,Dt as t,E as n,F as r,G as i,I as a,L as o,N as s,Nt as c,O as l,Ot as u,Pt as d,V as f,X as p,_ as m,a as h,at as g,dt as _,et as v,gt as y,h as b,it as x,j as S,k as C,m as w,ot as T,p as ee,pt as E,r as D,rt as O,st as k,tt as te,v as ne,w as re,x as ie,y as A,z as j}from"../chunks/CPCsWwEy.js";import{t as M}from"../chunks/Xth-LXaZ.js";import"../chunks/xihTtKlq.js";import{t as ae}from"../chunks/DDZ8GqHh.js";import{t as N}from"../chunks/BSnTSnag.js";import"../chunks/DoM_ZOrs.js";import{t as P}from"../chunks/6OCsQ6r7.js";import{t as oe}from"../chunks/Cf3l6QEG.js";import{n as se,t as ce}from"../chunks/BJqZY8o2.js";import{t as F}from"../chunks/BP0Xadq7.js";import{t as le}from"../chunks/DWoqp3ac.js";import{t as ue}from"../chunks/D_MTg6YY.js";import{t as de}from"../chunks/D3fLfD-Y.js";import{t as fe}from"../chunks/UZ6smZpJ.js";import{a as pe,c as me,i as he,n as ge,o as _e,r as ve,s as ye,t as be}from"../chunks/MIEISUXS.js";var I=o(`<p class="text-sm text-rc-gray-200">There are no more analytics fields to filter.</p>`),L=o(`<option> </option>`),R=o(`<label class="flex flex-col gap-1.5 text-sm text-rc-gray-200"><span>Value</span> <!> <span class="text-xs text-rc-gray-400"> </span></label>`),z=o(`<label class="flex cursor-pointer items-center gap-3 rounded px-3 py-2 text-sm text-rc-gray-100 hover:bg-rc-gray-700"><input type="checkbox"/> <span class="min-w-0 flex-1 break-words"> </span> <span class="ml-auto text-[calc(0.875rem-1pt)] tabular-nums text-rc-gray-400"> </span></label>`),B=o(`<fieldset class="flex flex-col gap-1.5"><legend class="mb-1 text-sm text-rc-gray-200">Values</legend> <div class="rc-scroll max-h-72 overflow-y-auto rounded-lg border border-rc-gray-600 bg-rc-gray-900 p-1"></div></fieldset>`),V=o(`<label class="flex flex-col gap-1.5 text-sm text-rc-gray-200"><span>Field</span> <select class="rounded-lg border border-rc-gray-500 bg-rc-gray-900 px-3 py-2 text-rc-gray-100 focus:border-rc-gray-400 focus:outline-none focus:ring-0"></select></label> <!>`,1),H=o(`<div class="flex flex-col gap-4"><!></div>`),xe=o(`<!> <!>`,1);function Se(e,n){u(n,!0);let o=h(n,`open`,15,!1),p=E(``),m=E(k([])),w=E(``),D=!1,O=y(()=>n.fields.find(e=>e.key===i(p))),re=y(()=>(i(O)?.variantCount??0)>50),ie=y(()=>{let e=i(O),t=String(i(w)).trim();if(!(!e||!t)){if(e.type===`number`){let e=Number(t);return Number.isFinite(e)?e:void 0}return e.type===`boolean`?t.toLowerCase()===`true`||t.toLowerCase()!==`false`&&void 0:t}}),M=y(()=>!!i(O)&&(i(re)?i(ie)!==void 0:i(m).length>0));te(()=>{let e=o();e&&!D&&(_(p,n.fields[0]?.key??``,!0),_(m,[],!0),_(w,``)),D=e});function ae(e){_(p,e.currentTarget.value,!0),_(m,[],!0),_(w,``)}function N(e,t){return typeof e==typeof t&&e===t}function oe(e){return i(m).some(t=>N(t,e))}function se(e){_(m,oe(e)?i(m).filter(t=>!N(t,e)):[...i(m),e],!0)}function ce(e){return typeof e==`boolean`?e?`Yes`:`No`:String(e)}function le(){let e=i(O);!e||!i(M)||(n.onAdd({key:e.key,type:e.type,values:i(re)?[i(ie)]:i(m)}),o(!1))}F(e,{title:`Add analytics filter`,class:`!max-w-lg`,get open(){return o()},set open(e){o(e)},children:e=>{var t=H(),o=x(t),c=e=>{var t=I();r(e,t)},u=e=>{var t=V(),o=g(t),c=T(x(o),2);l(c,21,()=>n.fields,C,(e,t)=>{var n=L(),a=x(n,!0);d(n);var o={};v(()=>{s(a,i(t).key),o!==(o=i(t).key)&&(n.value=(n.__value=i(t).key)??``)}),r(e,n)}),d(c);var u;ne(c),d(o);var m=T(o,2),h=e=>{var t=a(),n=g(t),o=e=>{var t=R(),n=T(x(t),2);{let e=y(()=>i(O).type===`number`?`number`:`text`);de(n,{get type(){return i(e)},class:`w-full !border-rc-gray-500 !bg-rc-gray-900 !py-2`,onkeydown:e=>{e.key===`Enter`&&i(M)&&le()},get value(){return i(w)},set value(e){_(w,e,!0)}})}var a=T(n,2),o=x(a);d(a),d(t),v(()=>s(o,`This field has ${i(O).variantCount??``} distinct values.`)),r(e,t)},c=e=>{var t=B(),n=T(x(t),2);l(n,21,()=>i(O).values,C,(e,t)=>{var n=z(),a=x(n);ee(a);var o=T(a,2),c=x(o,!0);d(o);var l=T(o,2),u=x(l,!0);d(l),d(n),v((e,n)=>{b(a,e),s(c,n),s(u,i(t).count)},[()=>oe(i(t).value),()=>ce(i(t).value)]),f(`change`,a,()=>se(i(t).value)),r(e,n)}),d(n),d(t),r(e,t)};S(n,e=>{i(re)?e(o):e(c,-1)}),r(e,t)};S(m,e=>{i(O)&&e(h)}),v(()=>{u!==(u=i(p))&&(c.value=(c.__value=i(p))??``,A(c,i(p)))}),f(`change`,c,ae),r(e,t)};S(o,e=>{n.fields.length===0?e(c):e(u,-1)}),d(t),r(e,t)},footer:e=>{var t=xe(),n=g(t);P(n,{variant:`secondary`,onclick:()=>o(!1),children:(e,t)=>{c();var n=j(`Cancel`);r(e,n)},$$slots:{default:!0}});var a=T(n,2);{let e=y(()=>!i(M));P(a,{onclick:le,get disabled(){return i(e)},children:(e,t)=>{c();var n=j(`Add filter`);r(e,n)},$$slots:{default:!0}})}r(e,t)},$$slots:{default:!0,footer:!0}}),t()}e([`change`]);var Ce=o(`<!> <!>`,1),we=o(`<option> </option>`),Te=o(`<button type="button" aria-label="Clear search" class="absolute right-2 top-1/2 flex -translate-y-1/2 items-center justify-center rounded p-1 text-rc-gray-200 hover:bg-rc-gray-600 hover:text-rc-gray-100 focus:outline-none"><!></button>`),Ee=o(`<div class="flex max-w-80 items-center gap-1 rounded-lg border border-rc-gray-500 bg-rc-gray-700 py-1 pl-3 pr-1 text-sm text-rc-gray-100"><span class="truncate"> </span> <button type="button" class="flex-none rounded p-1 text-rc-gray-300 hover:bg-rc-gray-600 hover:text-rc-gray-100"><!></button></div>`),De=o(`<p class="py-8 text-center text-rc-gray-200">Loading...</p>`),Oe=o(`<p class="py-8 text-center text-rc-gray-300">No conversations found</p>`),ke=o(`<span class="text-rc-gray-200">, Agent Id:</span> <span class="text-rc-green-200"> </span>`,1),Ae=o(`<li><div class="flex w-full flex-col gap-2"><div class="flex w-full items-center justify-between"><div class="text-gray-300"> </div> <div class="flex items-center gap-2"><span class="text-xs text-rc-gray-300"> </span> <span class="font-semibold text-rc-gray-100"> </span></div></div> <div class="flex items-center justify-between gap-4"><div class="text-sm"><span class="text-rc-gray-200">Conversation Id:</span> <span class="text-rc-green-200"> </span> <!></div> <p class="text-sm text-gray-400"> </p></div></div></li>`),je=o(`<ul class="space-y-2"></ul>`),Me=o(`<div class="flex h-screen"><!> <div class="flex h-full min-w-0 flex-1 flex-col bg-rc-gray-980 pb-3 pr-4 pt-2"><nav class="flex flex-none flex-col bg-rc-gray-980"><div class="flex items-center justify-center"><!></div> <div class="flex flex-wrap items-center gap-4"><div class="flex-1"><label class="block"><div class="flex gap-2"><select class="select svelte-1uk1thp" aria-label="Telescope source"><!></select> <div class="relative"><!><!></div> <!> <!> <!></div></label></div> <div class="hidden items-center gap-2"><div class="text-rc-gray-200">Sort:</div> <!></div> <div class="hidden items-center gap-2"><div class="text-rc-gray-200">Page size:</div> <select class="rounded-sm border border-rc-gray-300 bg-rc-gray-700 p-2 pr-8 text-rc-gray-100"><option>5</option><option>10</option><option>20</option><option>50</option></select></div> <div class="flex items-center gap-3"><div class="flex items-center gap-2"><!> <!> <div class="text-sm text-rc-gray-200"> </div></div></div> <div class="ml-auto whitespace-nowrap text-sm"><span class="text-gray-400">API Mode:</span> <span class="font-semibold text-rc-green-200"> </span></div></div></nav> <main class="flex flex-1 overflow-hidden"><div class="flex h-full w-1/3 flex-col"><div class="flex-none border-b border-rc-gray-300/40 p-4"><h2 class="text-lg font-semibold text-rc-gray-100">Conversations</h2></div> <div class="rc-scroll min-h-0 flex-1 overflow-scroll px-3 py-4"><!></div></div> <div class="flex h-full w-2/3 flex-col bg-rc-gray-980"><!></div></main></div></div> <!>`,1);function U(e,o){u(o,!0);let b=new ye,ee=E(k([])),ne=E(void 0),A=E(null),F=y(()=>(N.url.searchParams.get(`agent`)??``).trim()),I=E(``),L=E(20),R=E(`20`),z=E(!0),B=E(k([])),V=E(null),H=E(!1),xe=E(null),U=E(k([])),W=E(``),Ne=E(!1),Pe=E(null),Fe=E(!1),Ie=E(null),Le=E(k([])),G=E(k([])),K=E(!1),Re=E(null),ze=E(!1),q=0,J=0,Be=y(()=>i(Le).filter(e=>!i(G).some(t=>t.key===e.key))),Ve=E(null),He=y(()=>JSON.stringify([i(F),i(W),i(G)])),Y=y(()=>i(Ve)===i(He)?i(ne):void 0),Ue=y(()=>i(Y)?.items.length??0),We=h(o,`useMock`,3,!1),{onError:Ge}=ae();function Ke(e){return new Date(e).toLocaleString()}function qe(e){let t=Math.round(e),n=Math.floor(t/60),r=t%60;return`${n}:${String(r).padStart(2,`0`)}`}function Je(){q+=1,J+=1,_(A,null),_(ne,void 0),_(Ve,null),_(Le,[],!0),_(G,[],!0),_(B,[],!0),_(V,null),_(H,!0),_(K,!0),_(Re,null),_(ze,!1)}function Ye(e=i(F)){let t=new URLSearchParams;e&&t.set(`agent`,e),i(W)&&t.set(be,i(W));let n=t.toString();return n?`?${n}`:``}function X(e=i(F)){return`${i(gt)}/conversations${Ye(e)}`}let Xe=y(()=>N.url.pathname.split(`/`).at(-1)===`latency`?`latency`:`traces`);function Ze(e,t=i(Xe),n=i(F)){return`${i(gt)}/conversations/${encodeURIComponent(e)}/${t}${Ye(n)}`}async function Qe(e,t=i(L),n,r,a=i(G)){return We()?fe.fetchConversations(t,e,n??void 0):b.getConversations({phoneNumber:e,agentId:r,analyticsFilters:a,limit:Number(t),lastConversationId:n??void 0})}async function Z(){_(B,[],!0),_(V,null),await nt()}async function $e(){_(Ne,!0),_(Pe,null);try{if(_(U,await me(),!0),!i(U).length)throw Error(`No sources returned`);let e=ve(N.url),t=pe(i(U),e,ge());if(!t)throw Error(`No sources returned`);if(_(W,t,!0),he(t),b.setSourceId(t),e!==t){let e=_e(N.url,t);await M(`${e.pathname}${e.search}`,{replaceState:!0})}}catch(e){console.error(`Failed to load Telescope sources:`,e),_(Pe,e?.message??`Failed to load Telescope sources`,!0),_(U,[],!0),_(W,``),b.setSourceId(void 0)}finally{_(Ne,!1)}}async function et(e){let t=e.target.value;_(W,t,!0),he(t),b.setSourceId(t),Je(),await M(X()),await Promise.all([rt(),Z()])}async function tt(){try{_(ee,await le.agents.catalog.query(),!0)}catch(e){let t=e instanceof Error?e.message:e?String(e):`Unknown error`;console.error(`Failed to load agents:`,e),Ge(`Failed to load agents: ${t}`)}}async function nt(){let e=++q,t=i(G).map(e=>({...e,values:[...e.values]})),n=i(F),r=JSON.stringify([n,i(W),t]);_(H,!0),_(xe,null);try{let a=await Qe(i(I)||void 0,i(L),i(V)??void 0,n||void 0,t);if(e!==q||r!==i(He))return;let o=Array.isArray(a.items)?a.items.slice():[];_(ne,{limit:a.limit,items:o,lastConversationId:a.lastConversationId},!0),_(Ve,r,!0),_(V,a.lastConversationId??null,!0)}catch(t){if(e!==q||r!==i(He))return;_(xe,`Conversations could not be loaded for this selection.`),Ge(i(xe)),console.error(`Load page error:`,t)}finally{e===q&&_(H,!1)}}async function rt(){let e=++J;if(_(K,!0),_(Re,null),_(Le,[],!0),We()){_(K,!1);return}try{let t=await b.getAnalyticsFields(i(F)||void 0);if(e!==J)return;_(Le,t.items,!0)}catch(t){if(e!==J)return;_(Re,`Filters are unavailable for this selection.`),console.error(`Failed to load analytics fields:`,t)}finally{e===J&&_(K,!1)}}function it(e){_(G,[...i(G),e],!0),Z()}function at(e){_(G,i(G).filter(t=>t.key!==e),!0),Z()}function ot(e){return typeof e==`boolean`?e?`Yes`:`No`:String(e)}function st(e){return`${e.key}: ${e.values.map(ot).join(`, `)}`}async function ct(){i(Y)?.lastConversationId&&(i(B).push(i(Y).lastConversationId),_(V,i(Y).lastConversationId,!0),await nt())}async function lt(){i(B).length&&(i(B).pop(),_(V,i(B).length?i(B)[i(B).length-1]:null,!0),await nt())}function ut(){_(z,!i(z)),i(Y)?.items&&i(Y).items.sort((e,t)=>i(z)?t.createdAt-e.createdAt:e.createdAt-t.createdAt)}async function dt(e,t){if(t?.stopPropagation(),N.params.conversationId&&N.params.conversationId===e.conversationId||!N.params.conversationId&&i(A)?.conversationId===e.conversationId){_(A,null),await M(X());return}_(A,e,!0),await M(Ze(e.conversationId))}function ft(e){let t=e.target.value;_(R,t,!0),_(L,parseInt(i(R),10)||20,!0)}async function pt(){await Z()}async function mt(e){e?.preventDefault(),e?.stopPropagation(),_(I,``),_(B,[],!0),_(V,null),await Z()}let ht=y(()=>{let e=N.url.pathname.split(`/`)[1];return e===`traces`?`view`:e}),gt=y(()=>N.url.pathname.startsWith(`/view`)?`/view`:`/traces`);function _t({value:e}){if(e!==i(ht)){if(e===`edit`)return i(F)?M(`/edit/${encodeURIComponent(i(F))}/roleplay`):M(`/edit`);if(e===`view`)return M(X());M(`/`+e)}}async function vt(e,t){t?.stopPropagation(),e!==i(F)&&(Je(),await M(X(e)))}async function yt(e){e?.stopPropagation(),i(F)&&(Je(),await M(X(``)))}te(()=>{let e=i(F);i(Fe)&&e!==i(Ie)&&(_(Ie,e,!0),Je(),Promise.all([rt(),Z()]))}),D(()=>{(async()=>{await Promise.all([tt(),$e()]),await Promise.all([rt(),Z()]),_(Ie,i(F),!0),_(Fe,!0)})()});var bt=Me();re(`1uk1thp`,e=>{p(()=>{O.title=`Bosun: Telescope`})});var xt=g(bt),St=x(xt);ue(St,{get agents(){return i(ee)},get currentAgent(){return i(F)},onAgentClick:vt,showAllAgentsOption:!0,onAllAgentsClick:yt,className:`flex-none`});var Ct=T(St,2),wt=x(Ct),Tt=x(wt),Et=x(Tt);se(Et,{get value(){return i(ht)},ariaLabel:`Top tabs`,onChange:_t,children:(e,t)=>{var n=Ce(),i=g(n);ce(i,{value:`edit`,children:(e,t)=>{c();var n=j(`Edit`);r(e,n)},$$slots:{default:!0}});var a=T(i,2);ce(a,{value:`view`,children:(e,t)=>{c();var n=j(`View`);r(e,n)},$$slots:{default:!0}}),r(e,n)},$$slots:{default:!0}}),d(Tt);var Dt=T(Tt,2),Ot=x(Dt),kt=x(Ot),At=x(kt),Q=x(At),jt=x(Q),Mt=e=>{var t=a(),n=g(t);l(n,17,()=>i(U),C,(e,t)=>{var n=we(),a=x(n,!0);d(n);var o={};v(()=>{s(a,i(t).label),o!==(o=i(t).id)&&(n.value=(n.__value=i(t).id)??``)}),r(e,n)}),r(e,t)},Nt=e=>{var t=we(),n=x(t,!0);d(t),t.value=t.__value=``,v(()=>s(n,i(Ne)?`Loading…`:`No sources`)),r(e,t)};S(jt,e=>{i(U).length?e(Mt):e(Nt,-1)}),d(Q);var Pt=T(Q,2),Ft=x(Pt);de(Ft,{class:`w-56 rounded-r-none !border !border-rc-gray-500 !p-2 !pr-8 hover:border-rc-gray-400`,placeholder:`Search by phone...`,onkeydown:e=>{e.key===`Enter`&&(e.preventDefault(),e.stopPropagation(),pt())},get value(){return i(I)},set value(e){_(I,e,!0)}});var It=T(Ft),Lt=e=>{var t=Te(),n=x(t);oe(n,{name:`close`,width:18,height:18}),d(t),f(`click`,t,mt),r(e,t)};S(It,e=>{i(I)&&e(Lt)}),d(Pt);var Rt=T(Pt,2);P(Rt,{onclick:pt,children:(e,t)=>{c();var n=j(`Search`);r(e,n)},$$slots:{default:!0}});var zt=T(Rt,2);l(zt,17,()=>i(G),e=>e.key,(e,t)=>{var n=Ee(),a=x(n),o=x(a,!0);d(a);var c=T(a,2),l=x(c);oe(l,{name:`close`,width:16,height:16}),d(c),d(n),v((e,r)=>{w(n,`title`,e),s(o,r),w(c,`aria-label`,`Remove ${i(t).key} filter`)},[()=>st(i(t)),()=>st(i(t))]),f(`click`,c,()=>at(i(t).key)),r(e,n)});var Bt=T(zt,2);{let e=y(()=>i(K)||i(Be).length===0),t=y(()=>i(Re)??`Add analytics filter`);P(Bt,{variant:`secondary`,get disabled(){return i(e)},get title(){return i(t)},onclick:()=>_(ze,!0),children:(e,t)=>{c();var n=j(`Add filter`);r(e,n)},$$slots:{default:!0}})}d(At),d(kt),d(Ot);var Vt=T(Ot,2),Ht=T(x(Vt),2);P(Ht,{onclick:ut,children:(e,t)=>{c();var n=j();v(()=>s(n,i(z)?`Newest first`:`Oldest first`)),r(e,n)},$$slots:{default:!0}}),d(Vt);var Ut=T(Vt,2),$=T(x(Ut),2),Wt=x($);Wt.value=Wt.__value=`5`;var Gt=T(Wt);Gt.value=Gt.__value=`10`;var Kt=T(Gt);Kt.value=Kt.__value=`20`;var qt=T(Kt);qt.value=qt.__value=`50`,d($),d(Ut);var Jt=T(Ut,2),Yt=x(Jt),Xt=x(Yt);{let e=y(()=>i(B).length===0&&!i(V));P(Xt,{onclick:lt,get disabled(){return i(e)},children:(e,t)=>{c();var n=j(`Prev`);r(e,n)},$$slots:{default:!0}})}var Zt=T(Xt,2);{let e=y(()=>!i(Y)?.items.length);P(Zt,{onclick:ct,get disabled(){return i(e)},children:(e,t)=>{c();var n=j(`Next`);r(e,n)},$$slots:{default:!0}})}var Qt=T(Zt,2),$t=x(Qt);d(Qt),d(Yt),d(Jt);var en=T(Jt,2),tn=T(x(en),2),nn=x(tn,!0);d(tn),d(en),d(Dt),d(wt);var rn=T(wt,2),an=x(rn),on=T(x(an),2),sn=x(on),cn=e=>{var t=De();r(e,t)},ln=e=>{var t=Oe();r(e,t)},un=e=>{var t=je();l(t,21,()=>i(Y).items,C,(e,t)=>{var n=Ae(),a=x(n),o=x(a),c=x(o),l=x(c,!0);d(c);var u=T(c,2),p=x(u),m=x(p,!0);d(p);var h=T(p,2),_=x(h,!0);d(h),d(u),d(o);var y=T(o,2),b=x(y),C=T(x(b),2),ee=x(C,!0);d(C);var E=T(C,2),D=e=>{var n=ke(),a=T(g(n),2),o=x(a,!0);d(a),v(()=>s(o,i(t).agentId)),r(e,n)};S(E,e=>{!i(F)&&i(t).agentId&&e(D)}),d(b);var O=T(b,2),k=x(O);d(O),d(y),d(a),d(n),v((e,r)=>{ie(n,1,`cursor-pointer rounded-lg p-3 transition-colors ${(N.params.conversationId?i(t).conversationId===N.params.conversationId:i(t).conversationId===i(A)?.conversationId)?`bg-rc-gray-600`:`bg-rc-gray-700 hover:bg-rc-gray-650`}`,`svelte-1uk1thp`),w(n,`aria-selected`,N.params.conversationId?i(t).conversationId===N.params.conversationId:i(t).conversationId===i(A)?.conversationId),s(l,e),s(m,i(t).medium),s(_,i(t).phoneNumber),s(ee,i(t).conversationId),s(k,`Duration: ${r??``}`)},[()=>Ke(i(t).createdAt),()=>qe(i(t).duration??0)]),f(`click`,n,e=>dt(i(t),e)),r(e,n)}),d(t),r(e,t)};S(sn,e=>{i(H)?e(cn):i(Y)?.items?.length?e(un,-1):e(ln,1)}),d(on),d(an);var dn=T(an,2),fn=x(dn);n(fn,()=>o.children),d(dn),d(rn),d(Ct),d(xt),Se(T(xt,2),{get fields(){return i(Be)},onAdd:it,get open(){return i(ze)},set open(e){_(ze,e,!0)}}),v(()=>{Q.disabled=i(Ne)||!i(U).length,w(Q,`title`,i(Pe)??`Telescope source`),s($t,`Items: ${i(Ue)??``}`),s(nn,We()?`Mock (local)`:`Live`)}),f(`change`,Q,et),m(Q,()=>i(W),e=>_(W,e)),f(`change`,$,ft),m($,()=>i(R),e=>_(R,e)),f(`click`,dn,e=>e.stopPropagation()),r(e,bt),t()}e([`change`,`click`]);export{U as component};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|