@recombine-ai/bosun 0.20.2 → 0.20.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/build/_app/immutable/assets/{0.970vvoDj.css → 0.CdQBFG7k.css} +1 -1
  2. package/build/_app/immutable/assets/0.CdQBFG7k.css.br +0 -0
  3. package/build/_app/immutable/assets/0.CdQBFG7k.css.gz +0 -0
  4. package/build/_app/immutable/chunks/{BOZLjogl.js → BFUe72xu.js} +1 -1
  5. package/build/_app/immutable/chunks/BFUe72xu.js.br +0 -0
  6. package/build/_app/immutable/chunks/BFUe72xu.js.gz +0 -0
  7. package/build/_app/immutable/chunks/Bmkwccsg.js +1 -0
  8. package/build/_app/immutable/chunks/Bmkwccsg.js.br +0 -0
  9. package/build/_app/immutable/chunks/Bmkwccsg.js.gz +0 -0
  10. package/build/_app/immutable/chunks/CZcJNBdK.js +1 -0
  11. package/build/_app/immutable/chunks/CZcJNBdK.js.br +2 -0
  12. package/build/_app/immutable/chunks/CZcJNBdK.js.gz +0 -0
  13. package/build/_app/immutable/chunks/DdNCOsWe.js +3 -0
  14. package/build/_app/immutable/chunks/DdNCOsWe.js.br +0 -0
  15. package/build/_app/immutable/chunks/DdNCOsWe.js.gz +0 -0
  16. package/build/_app/immutable/entry/{app.Nx0-kikH.js → app.L5djN6KO.js} +2 -2
  17. package/build/_app/immutable/entry/app.L5djN6KO.js.br +0 -0
  18. package/build/_app/immutable/entry/app.L5djN6KO.js.gz +0 -0
  19. package/build/_app/immutable/entry/start.CGCxa4r9.js +1 -0
  20. package/build/_app/immutable/entry/start.CGCxa4r9.js.br +0 -0
  21. package/build/_app/immutable/entry/start.CGCxa4r9.js.gz +0 -0
  22. package/build/_app/immutable/nodes/{0.B5_ukjYU.js → 0.DxT2ZCBH.js} +1 -1
  23. package/build/_app/immutable/nodes/0.DxT2ZCBH.js.br +0 -0
  24. package/build/_app/immutable/nodes/0.DxT2ZCBH.js.gz +0 -0
  25. package/build/_app/immutable/nodes/{1.BnET9__M.js → 1.CuGmyB-B.js} +1 -1
  26. package/build/_app/immutable/nodes/1.CuGmyB-B.js.br +2 -0
  27. package/build/_app/immutable/nodes/1.CuGmyB-B.js.gz +0 -0
  28. package/build/_app/immutable/nodes/{16.C0hAGH9Y.js → 16.RilBjs7p.js} +1 -1
  29. package/build/_app/immutable/nodes/16.RilBjs7p.js.br +0 -0
  30. package/build/_app/immutable/nodes/16.RilBjs7p.js.gz +0 -0
  31. package/build/_app/immutable/nodes/17.lZCHazN-.js +11 -0
  32. package/build/_app/immutable/nodes/17.lZCHazN-.js.br +0 -0
  33. package/build/_app/immutable/nodes/17.lZCHazN-.js.gz +0 -0
  34. package/build/_app/immutable/nodes/{2.0cl8Jw4o.js → 2.47DRuv-7.js} +1 -1
  35. package/build/_app/immutable/nodes/2.47DRuv-7.js.br +0 -0
  36. package/build/_app/immutable/nodes/2.47DRuv-7.js.gz +0 -0
  37. package/build/_app/immutable/nodes/{3.CxkjPmTD.js → 3.BTFj2TcK.js} +1 -1
  38. package/build/_app/immutable/nodes/3.BTFj2TcK.js.br +0 -0
  39. package/build/_app/immutable/nodes/3.BTFj2TcK.js.gz +0 -0
  40. package/build/_app/immutable/nodes/{4.h7GzNdQ-.js → 4.D7rKFBIq.js} +1 -1
  41. package/build/_app/immutable/nodes/4.D7rKFBIq.js.br +0 -0
  42. package/build/_app/immutable/nodes/4.D7rKFBIq.js.gz +0 -0
  43. package/build/_app/immutable/nodes/{6.MjSRR3jo.js → 6.C7VHMxJG.js} +1 -1
  44. package/build/_app/immutable/nodes/6.C7VHMxJG.js.br +0 -0
  45. package/build/_app/immutable/nodes/6.C7VHMxJG.js.gz +0 -0
  46. package/build/_app/immutable/nodes/{8.BCatMgwB.js → 8.B-2mfKlr.js} +1 -1
  47. package/build/_app/immutable/nodes/8.B-2mfKlr.js.br +0 -0
  48. package/build/_app/immutable/nodes/8.B-2mfKlr.js.gz +0 -0
  49. package/build/_app/immutable/nodes/{9.BFI7-HIR.js → 9.DGHLzn6-.js} +1 -1
  50. package/build/_app/immutable/nodes/9.DGHLzn6-.js.br +0 -0
  51. package/build/_app/immutable/nodes/9.DGHLzn6-.js.gz +0 -0
  52. package/build/_app/version.json +1 -1
  53. package/build/_app/version.json.br +0 -0
  54. package/build/_app/version.json.gz +0 -0
  55. package/build/index.html +10 -10
  56. package/build/index.html.br +0 -0
  57. package/build/index.html.gz +0 -0
  58. package/package.json +1 -1
  59. package/build/_app/immutable/assets/0.970vvoDj.css.br +0 -0
  60. package/build/_app/immutable/assets/0.970vvoDj.css.gz +0 -0
  61. package/build/_app/immutable/chunks/BOZLjogl.js.br +0 -2
  62. package/build/_app/immutable/chunks/BOZLjogl.js.gz +0 -0
  63. package/build/_app/immutable/chunks/Byx1piFp.js +0 -3
  64. package/build/_app/immutable/chunks/Byx1piFp.js.br +0 -0
  65. package/build/_app/immutable/chunks/Byx1piFp.js.gz +0 -0
  66. package/build/_app/immutable/chunks/jbAfpNOj.js +0 -1
  67. package/build/_app/immutable/chunks/jbAfpNOj.js.br +0 -0
  68. package/build/_app/immutable/chunks/jbAfpNOj.js.gz +0 -0
  69. package/build/_app/immutable/chunks/vxN0p6wG.js +0 -1
  70. package/build/_app/immutable/chunks/vxN0p6wG.js.br +0 -2
  71. package/build/_app/immutable/chunks/vxN0p6wG.js.gz +0 -0
  72. package/build/_app/immutable/entry/app.Nx0-kikH.js.br +0 -0
  73. package/build/_app/immutable/entry/app.Nx0-kikH.js.gz +0 -0
  74. package/build/_app/immutable/entry/start.t9PGFpmm.js +0 -1
  75. package/build/_app/immutable/entry/start.t9PGFpmm.js.br +0 -1
  76. package/build/_app/immutable/entry/start.t9PGFpmm.js.gz +0 -0
  77. package/build/_app/immutable/nodes/0.B5_ukjYU.js.br +0 -0
  78. package/build/_app/immutable/nodes/0.B5_ukjYU.js.gz +0 -0
  79. package/build/_app/immutable/nodes/1.BnET9__M.js.br +0 -0
  80. package/build/_app/immutable/nodes/1.BnET9__M.js.gz +0 -0
  81. package/build/_app/immutable/nodes/16.C0hAGH9Y.js.br +0 -0
  82. package/build/_app/immutable/nodes/16.C0hAGH9Y.js.gz +0 -0
  83. package/build/_app/immutable/nodes/17.DHifdmRv.js +0 -10
  84. package/build/_app/immutable/nodes/17.DHifdmRv.js.br +0 -0
  85. package/build/_app/immutable/nodes/17.DHifdmRv.js.gz +0 -0
  86. package/build/_app/immutable/nodes/2.0cl8Jw4o.js.br +0 -0
  87. package/build/_app/immutable/nodes/2.0cl8Jw4o.js.gz +0 -0
  88. package/build/_app/immutable/nodes/3.CxkjPmTD.js.br +0 -0
  89. package/build/_app/immutable/nodes/3.CxkjPmTD.js.gz +0 -0
  90. package/build/_app/immutable/nodes/4.h7GzNdQ-.js.br +0 -0
  91. package/build/_app/immutable/nodes/4.h7GzNdQ-.js.gz +0 -0
  92. package/build/_app/immutable/nodes/6.MjSRR3jo.js.br +0 -0
  93. package/build/_app/immutable/nodes/6.MjSRR3jo.js.gz +0 -0
  94. package/build/_app/immutable/nodes/8.BCatMgwB.js.br +0 -0
  95. package/build/_app/immutable/nodes/8.BCatMgwB.js.gz +0 -0
  96. package/build/_app/immutable/nodes/9.BFI7-HIR.js.br +0 -0
  97. package/build/_app/immutable/nodes/9.BFI7-HIR.js.gz +0 -0
@@ -1,3 +1,3 @@
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 ee,V as f,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 re,n as ie,ot as y,pt as b,q as ae,st as x,tt as S,x as oe,z as C}from"../chunks/CPCsWwEy.js";import"../chunks/xihTtKlq.js";import{t as w}from"../chunks/BOZLjogl.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/CCtAgMW8.js";import{n as de,t as E}from"../chunks/DkJi5BM4.js";import{t as fe}from"../chunks/CGV7fMmX.js";import{a as pe,i as me,n as he,r as ge,t as _e}from"../chunks/U2g-17s7.js";var ve=`bosun.traces.latencyTimelineViewports.v2`,ye=new Map,be=!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 xe(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 Se(){if(!be&&(be=!0,!(typeof window>`u`)))try{let e=window.sessionStorage.getItem(ve);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)||ye.set(e,n)}catch{}}function Ce(){if(!(typeof window>`u`))try{window.sessionStorage.setItem(ve,JSON.stringify(Object.fromEntries(ye.entries())))}catch{}}function we(e){if(!e)return null;Se();let t=ye.get(e);return t?{...t}:null}function Te(e,t){!e||!D(t)||(Se(),ye.set(e,{...t}),Ce())}var Ee=`bosun.latency`,De=1,Oe=`recordings`,O=`bosun.traces.latencyAlignmentMs.`;function ke(e,t){return`${e||`default`}:${t}`}function Ae(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`IndexedDB request failed`))})}function je(){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(Ee,De);n.onupgradeneeded=()=>{n.result.objectStoreNames.contains(Oe)||n.result.createObjectStore(Oe)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??Error(`Failed to open the recordings database`))})}async function Me(e,t){let n=await je();try{return await t(n.transaction(Oe,e).objectStore(Oe))}finally{n.close()}}async function Ne(e){let t=await Me(`readonly`,t=>Ae(t.get(e)));return t instanceof Blob?t:null}async function Pe(e,t){await Me(`readwrite`,n=>Ae(n.put(t,e)))}function Fe(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 Ie(e,t){try{window.localStorage.setItem(O+e,String(Math.round(t)))}catch{}}var Le=o(`<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200"> </span>`,1),Re=o(`<div><span class="text-rc-gray-400">Playhead:</span> <span class="font-mono text-rc-gray-100"> </span></div>`),ze=o(`<div><span class="text-rc-gray-400">Viewport:</span> <span class="font-mono text-rc-gray-100"> </span></div>`),Be=o(`<div class="mt-2 text-sm text-rc-gray-400"> </div>`),Ve=o(`<div class="mt-2 text-sm text-red-300"> </div>`),He=o(`<div class="text-sm text-rc-gray-300">Loading latency events…</div>`),Ue=o(`<div class="text-sm text-rc-gray-300">No latency events were found on this call.</div>`),We=o(`<div class="text-sm text-rc-gray-300">Preparing timeline…</div>`),Ge=o(`<div class="flex items-center text-xs text-rc-gray-300"> </div>`),Ke=o(`<div class="flex items-center text-xs text-rc-gray-300">Waveform</div>`),qe=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>`),Je=o(`<div class="absolute -translate-x-1/2 border-l border-rc-gray-300/40"></div>`),Ye=o(`<div class="absolute -translate-x-1/2 border-l border-dashed"></div>`),Xe=o(`<div class="absolute border-l border-rc-gray-200/80"></div>`),Ze=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),Qe=o(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/70"></div> <div> </div>`,1),$e=o(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div>`),et=o(`<span class="block truncate"> </span>`),tt=o(`<div><!></div>`),nt=o(`<div class="relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60"><!> <!></div>`),rt=o(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/45"></div>`),it=o(`<div> </div>`),at=o(`<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Decoding waveform…</div>`),ot=o(`<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-red-300"> </div>`),st=o(`<canvas class="absolute inset-0 h-full w-full"></canvas>`),ct=o(`<div class="relative z-0 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60"><!> <!></div>`),lt=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>`),ut=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>`),dt=o(`<div><div class="whitespace-pre-wrap break-words"> </div></div>`),ft=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 ve=3e4,ye=new Set([`VAD`,`User State`,`Playback`]),be=new ue,D={blue:`#569cd6`,green:`#93FF6D`,greenDark:`#00B58A`,orange:`#ce9178`,purple:`#81147D`,red:`#FF6666`,gray:`#767676`},Se=[{label:`VAD`,eventTypes:[`vad.activated`,`vad.deactivated`]},{label:`User State`,eventTypes:[`user.speaking.started`,`user.speaking.completed`]},{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`}],Ce=new Set(Se.map(e=>e.label)),Ee={call:Z(D.gray,.2),vad:Z(D.purple,.35),"user.state":Z(D.purple,.1),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},De=new Map([{startEventType:`user.speaking.started`,endEventType:`user.speaking.completed`,row:`User State`,colorKey:`user.state`,label:`User speaking`,description:`Derived from adjacent LiveKit user-state events`},{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.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 Oe(){return{exists:!1,blob:null,alignmentOffsetMs:0}}let O=de(),Ae=le(w.url)??ce()??``,je=w.params.conversationId??``,Me=E(je,Ae),k=O.latency.get(Me);be.setSourceId(Ae||void 0);let pt=b(x(Ae)),A=b(x(k?.conversation??null)),j=b(x(k?.traces??[])),M=b(x(k?.conversationTraces??[])),mt=b(x(k?.dataLoaded??!1)),ht=b(!1),gt=b(x(k?.error??null)),N=b(x(k?.recording??Oe())),_t=b(x(k?.recordingLoaded??!1)),vt=b(!1),P=b(x(k?.recordingError??null)),yt=b(!1),F=b(x(k?.waveform??null)),bt=b(!1),xt=b(x(k?.waveformError??null)),I=b(x(k?.playbackPositionMs??0)),L=b(!1),R=b(null),St=b(null),z=b(x(k?.viewDirty??!1)),B=b(null),V=b(null),H=b(null),Ct=b(null),U=b(0),wt=b(null),Tt=b(null),Et=b(0),Dt=b(0),Ot=b(null),kt=b(null),At=b(null),jt=b(null),Mt=b(null),Nt=b(null),Pt=b(null),Ft=b(x(k?.humanSpeechBubbleReservedLevels??1)),It=b(`idle`),W=b(``),Lt=b(null),Rt=0,zt=0,Bt=0,Vt=null,Ht=0,G=k?.playbackAudioBuffer??null,K=null,Ut=null,Wt=null,Gt=null,Kt=null,qt=g(()=>w.params.conversationId);function Jt(e,t){return ke(t,e)}let Yt=g(()=>r(qt)?Jt(r(qt),r(pt)):``),q=g(()=>{let e=1/0;for(let t of r(j))typeof t.atMs!=`number`||!Number.isFinite(t.atMs)||(e=Math.min(e,t.atMs));return Number.isFinite(e)?e:typeof r(A)?.createdAt==`number`&&Number.isFinite(r(A).createdAt)?r(A).createdAt:Number.isFinite(e)?e:0}),Xt=g(()=>Mr(r(j))),Zt=g(()=>r(j).length),Qt=g(()=>rr()),$t=g(()=>sr(r(Xt))),en=g(()=>[...r(Xt).map(e=>{let t=r($t).get(e.id);return!t||e.row!==`Playback`||e.durationMs<=0?e:{...e,speechText:t.text,speechFullText:t.fullText,speechTraceLabel:t.traceLabel}}),...cr(r(Qt))]),tn=g(()=>{let e=new Map;for(let t of r(en)){let n=e.get(t.row);n?n.push(t):e.set(t.row,[t])}return[...Se].reverse().map(t=>({label:t.label,segments:e.get(t.label)??[]})).filter(e=>e.segments.length>0)}),nn=g(()=>yr()),rn=g(()=>Math.max(r(Ft),hr(r(nn),`human`))),an=g(()=>_r(r(nn))),on=g(()=>gr(r(rn))),sn=g(()=>r(on)),cn=g(()=>r(tn).length*30+Math.max(0,r(tn).length-1)*5),ln=g(()=>r(tn).length>0?5:0),un=g(()=>32+r(cn)+r(ln)),dn=g(()=>r(N).exists),fn=g(()=>r(dn)?165:0),pn=g(()=>qr(r(tn))),J=g(()=>r(F)?r(q)+r(N).alignmentOffsetMs:null),mn=g(()=>32+r(cn)+r(ln)+r(sn)+r(fn)),hn=g(()=>r(J)==null?null:r(J)+r(I)),gn=g(()=>{let e=r(hn);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(mn)-32)}}),_n=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(mn)-32)}}),vn=g(()=>{let e=1/0,t=-1/0;for(let n of r(Xt))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})}),yn=g(()=>{let e=null;for(let t of r(j))t.eventType!==`call.ended`||!Number.isFinite(t.atMs)||(e=Math.max(e??-1/0,t.atMs));if(e!=null)return e;let t=r(vn)?.max??r(q);for(let e of r(M))Number.isFinite(e.createdAt)&&(t=Math.max(t,e.createdAt));return t}),bn=g(()=>he(r(M),r(yn))),xn=g(()=>{let e=1/0,t=-1/0;for(let n of r(Xt))Ce.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})}),Sn=g(()=>{if(r(B)==null||r(V)==null)return null;let e=r(V)-r(B);return e>0?e:null}),Cn=g(()=>r(B)==null||r(V)==null?[]:Yr(r(B),r(V),r(q))),wn=g(()=>r(kt)?zr(r(kt)).split(`
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 ee,V as f,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 re,n as ie,ot as y,pt as b,q as ae,st as x,tt as S,x as oe,z as C}from"../chunks/CPCsWwEy.js";import"../chunks/xihTtKlq.js";import{t as w}from"../chunks/BFUe72xu.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/CCtAgMW8.js";import{n as de,t as E}from"../chunks/DkJi5BM4.js";import{t as fe}from"../chunks/CGV7fMmX.js";import{a as pe,i as me,n as he,r as ge,t as _e}from"../chunks/U2g-17s7.js";var ve=`bosun.traces.latencyTimelineViewports.v2`,ye=new Map,be=!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 xe(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 Se(){if(!be&&(be=!0,!(typeof window>`u`)))try{let e=window.sessionStorage.getItem(ve);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)||ye.set(e,n)}catch{}}function Ce(){if(!(typeof window>`u`))try{window.sessionStorage.setItem(ve,JSON.stringify(Object.fromEntries(ye.entries())))}catch{}}function we(e){if(!e)return null;Se();let t=ye.get(e);return t?{...t}:null}function Te(e,t){!e||!D(t)||(Se(),ye.set(e,{...t}),Ce())}var Ee=`bosun.latency`,De=1,Oe=`recordings`,O=`bosun.traces.latencyAlignmentMs.`;function ke(e,t){return`${e||`default`}:${t}`}function Ae(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`IndexedDB request failed`))})}function je(){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(Ee,De);n.onupgradeneeded=()=>{n.result.objectStoreNames.contains(Oe)||n.result.createObjectStore(Oe)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??Error(`Failed to open the recordings database`))})}async function Me(e,t){let n=await je();try{return await t(n.transaction(Oe,e).objectStore(Oe))}finally{n.close()}}async function Ne(e){let t=await Me(`readonly`,t=>Ae(t.get(e)));return t instanceof Blob?t:null}async function Pe(e,t){await Me(`readwrite`,n=>Ae(n.put(t,e)))}function Fe(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 Ie(e,t){try{window.localStorage.setItem(O+e,String(Math.round(t)))}catch{}}var Le=o(`<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200"> </span>`,1),Re=o(`<div><span class="text-rc-gray-400">Playhead:</span> <span class="font-mono text-rc-gray-100"> </span></div>`),ze=o(`<div><span class="text-rc-gray-400">Viewport:</span> <span class="font-mono text-rc-gray-100"> </span></div>`),Be=o(`<div class="mt-2 text-sm text-rc-gray-400"> </div>`),Ve=o(`<div class="mt-2 text-sm text-red-300"> </div>`),He=o(`<div class="text-sm text-rc-gray-300">Loading latency events…</div>`),Ue=o(`<div class="text-sm text-rc-gray-300">No latency events were found on this call.</div>`),We=o(`<div class="text-sm text-rc-gray-300">Preparing timeline…</div>`),Ge=o(`<div class="flex items-center text-xs text-rc-gray-300"> </div>`),Ke=o(`<div class="flex items-center text-xs text-rc-gray-300">Waveform</div>`),qe=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>`),Je=o(`<div class="absolute -translate-x-1/2 border-l border-rc-gray-300/40"></div>`),Ye=o(`<div class="absolute -translate-x-1/2 border-l border-dashed"></div>`),Xe=o(`<div class="absolute border-l border-rc-gray-200/80"></div>`),Ze=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),Qe=o(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/70"></div> <div> </div>`,1),$e=o(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div>`),et=o(`<span class="block truncate"> </span>`),tt=o(`<div><!></div>`),nt=o(`<div class="relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60"><!> <!></div>`),rt=o(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/45"></div>`),it=o(`<div> </div>`),at=o(`<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Decoding waveform…</div>`),ot=o(`<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-red-300"> </div>`),st=o(`<canvas class="absolute inset-0 h-full w-full"></canvas>`),ct=o(`<div class="relative z-0 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60"><!> <!></div>`),lt=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>`),ut=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>`),dt=o(`<div><div class="whitespace-pre-wrap break-words"> </div></div>`),ft=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 ve=3e4,ye=new Set([`VAD`,`User State`,`Playback`]),be=new ue,D={blue:`#569cd6`,green:`#93FF6D`,greenDark:`#00B58A`,orange:`#ce9178`,purple:`#81147D`,red:`#FF6666`,gray:`#767676`},Se=[{label:`VAD`,eventTypes:[`vad.activated`,`vad.deactivated`]},{label:`User State`,eventTypes:[`user.speaking.started`,`user.speaking.completed`]},{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`}],Ce=new Set(Se.map(e=>e.label)),Ee={call:Z(D.gray,.2),vad:Z(D.purple,.35),"user.state":Z(D.purple,.1),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},De=new Map([{startEventType:`user.speaking.started`,endEventType:`user.speaking.completed`,row:`User State`,colorKey:`user.state`,label:`User speaking`,description:`Derived from adjacent LiveKit user-state events`},{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.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 Oe(){return{exists:!1,blob:null,alignmentOffsetMs:0}}let O=de(),Ae=le(w.url)??ce()??``,je=w.params.conversationId??``,Me=E(je,Ae),k=O.latency.get(Me);be.setSourceId(Ae||void 0);let pt=b(x(Ae)),A=b(x(k?.conversation??null)),j=b(x(k?.traces??[])),M=b(x(k?.conversationTraces??[])),mt=b(x(k?.dataLoaded??!1)),ht=b(!1),gt=b(x(k?.error??null)),N=b(x(k?.recording??Oe())),_t=b(x(k?.recordingLoaded??!1)),vt=b(!1),P=b(x(k?.recordingError??null)),yt=b(!1),F=b(x(k?.waveform??null)),bt=b(!1),xt=b(x(k?.waveformError??null)),I=b(x(k?.playbackPositionMs??0)),L=b(!1),R=b(null),St=b(null),z=b(x(k?.viewDirty??!1)),B=b(null),V=b(null),H=b(null),Ct=b(null),U=b(0),wt=b(null),Tt=b(null),Et=b(0),Dt=b(0),Ot=b(null),kt=b(null),At=b(null),jt=b(null),Mt=b(null),Nt=b(null),Pt=b(null),Ft=b(x(k?.humanSpeechBubbleReservedLevels??1)),It=b(`idle`),W=b(``),Lt=b(null),Rt=0,zt=0,Bt=0,Vt=null,Ht=0,G=k?.playbackAudioBuffer??null,K=null,Ut=null,Wt=null,Gt=null,Kt=null,qt=g(()=>w.params.conversationId);function Jt(e,t){return ke(t,e)}let Yt=g(()=>r(qt)?Jt(r(qt),r(pt)):``),q=g(()=>{let e=1/0;for(let t of r(j))typeof t.atMs!=`number`||!Number.isFinite(t.atMs)||(e=Math.min(e,t.atMs));return Number.isFinite(e)?e:typeof r(A)?.createdAt==`number`&&Number.isFinite(r(A).createdAt)?r(A).createdAt:Number.isFinite(e)?e:0}),Xt=g(()=>Mr(r(j))),Zt=g(()=>r(j).length),Qt=g(()=>rr()),$t=g(()=>sr(r(Xt))),en=g(()=>[...r(Xt).map(e=>{let t=r($t).get(e.id);return!t||e.row!==`Playback`||e.durationMs<=0?e:{...e,speechText:t.text,speechFullText:t.fullText,speechTraceLabel:t.traceLabel}}),...cr(r(Qt))]),tn=g(()=>{let e=new Map;for(let t of r(en)){let n=e.get(t.row);n?n.push(t):e.set(t.row,[t])}return[...Se].reverse().map(t=>({label:t.label,segments:e.get(t.label)??[]})).filter(e=>e.segments.length>0)}),nn=g(()=>yr()),rn=g(()=>Math.max(r(Ft),hr(r(nn),`human`))),an=g(()=>_r(r(nn))),on=g(()=>gr(r(rn))),sn=g(()=>r(on)),cn=g(()=>r(tn).length*30+Math.max(0,r(tn).length-1)*5),ln=g(()=>r(tn).length>0?5:0),un=g(()=>32+r(cn)+r(ln)),dn=g(()=>r(N).exists),fn=g(()=>r(dn)?165:0),pn=g(()=>qr(r(tn))),J=g(()=>r(F)?r(q)+r(N).alignmentOffsetMs:null),mn=g(()=>32+r(cn)+r(ln)+r(sn)+r(fn)),hn=g(()=>r(J)==null?null:r(J)+r(I)),gn=g(()=>{let e=r(hn);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(mn)-32)}}),_n=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(mn)-32)}}),vn=g(()=>{let e=1/0,t=-1/0;for(let n of r(Xt))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})}),yn=g(()=>{let e=null;for(let t of r(j))t.eventType!==`call.ended`||!Number.isFinite(t.atMs)||(e=Math.max(e??-1/0,t.atMs));if(e!=null)return e;let t=r(vn)?.max??r(q);for(let e of r(M))Number.isFinite(e.createdAt)&&(t=Math.max(t,e.createdAt));return t}),bn=g(()=>he(r(M),r(yn))),xn=g(()=>{let e=1/0,t=-1/0;for(let n of r(Xt))Ce.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})}),Sn=g(()=>{if(r(B)==null||r(V)==null)return null;let e=r(V)-r(B);return e>0?e:null}),Cn=g(()=>r(B)==null||r(V)==null?[]:Yr(r(B),r(V),r(q))),wn=g(()=>r(kt)?zr(r(kt)).split(`
2
2
  `):[]);S(()=>{let e=r(jt),t=r(At),n=r(kt);r(B),r(V),!(!e||!t||!n)&&e.update()}),S(()=>{let e=r(Pt),t=r(Nt),n=r(Mt);r(B),r(V),!(!e||!t||!n)&&e.update()}),S(()=>{let e=hr(r(nn),`human`);e>r(Ft)&&m(Ft,e,!0)});function Tn(e=r(W)){if(!e)return;let t=O.latency.get(e),n={conversation:r(A),traces:r(j),conversationTraces:r(M),dataLoaded:r(mt),error:r(gt),recording:r(N),recordingLoaded:r(_t),recordingError:r(P),waveform:r(F),waveformError:r(xt),playbackAudioBuffer:G,playbackPositionMs:r(I),viewportStartMs:r(B),viewportEndMs:r(V),viewportOriginMs:r(q),viewDirty:r(z),humanSpeechBubbleReservedLevels:r(Ft),scrollTop:t?.scrollTop??r(H)?.scrollTop??0,scrollLeft:t?.scrollLeft??r(H)?.scrollLeft??0};O.latency.set(e,n);let i=r(qt),a=le(w.url)??ce()??``;i&&a&&e===E(i,``)&&O.latency.set(E(i,a),n)}async function En(e){e&&(await ae(),r(H)&&(r(H).scrollTop=e.scrollTop,r(H).scrollLeft=e.scrollLeft))}function Dn(){if(!r(W)||!r(H))return;let e=O.latency.get(r(W));if(!e){Tn();return}e.scrollTop=r(H).scrollTop,e.scrollLeft=r(H).scrollLeft}ie(()=>{Fn(),Tn(),Vt?.(),wr(),ii(!1),ti()}),S(()=>{let e=r(qt),t=le(w.url)??ce()??``;if(t!==r(pt)&&m(pt,t,!0),!e)return;let n=E(e,t);if(n===r(W))return;Fn(),Tn(),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)??we(n);m(Lt,a,!0),m(z,a?i?.viewDirty??!0:!1,!0),m(gt,i?.error??null,!0),m(P,i?.recordingError??null,!0),m(St,null),m(xt,i?.waveformError??null,!0),ii(!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(A,i?.dataLoaded?i.conversation:null,!0),m(j,i?.dataLoaded?i.traces:[],!0),m(M,i?.dataLoaded?i.conversationTraces:[],!0),m(mt,i?.dataLoaded??!1,!0),m(N,i?.recordingLoaded?i.recording:Oe(),!0),m(_t,i?.recordingLoaded??!1,!0),m(B,null),m(V,null),m(Ft,i?.humanSpeechBubbleReservedLevels??1,!0),be.setSourceId(t||void 0),r(mt)?m(ht,!1):_i(e),r(_t)?m(vt,!1):yi(Jt(e,t)),En(i)}),S(()=>{let e=r(Lt),t=r(mt),n=r(xn)??r(vn),i=r(q);if(!e||!t||!n)return;m(Lt,null),m(z,!0);let a=xe(e,i);Si(a.startMs,a.endMs)}),S(()=>{r(mt)&&(r(xn)??r(vn))&&(r(z)||bi(!1))}),S(()=>{let e=r(W),t=r(B),n=r(V);!e||t==null||n==null||Te(e,{startMs:t,endMs:n,originMs:r(q)})}),S(()=>{let e=r(Ct);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()}),S(()=>{let e=r(wt);if(!e||typeof ResizeObserver>`u`)return;m(Et,e.clientWidth,!0),m(Dt,e.clientHeight,!0);let t=new ResizeObserver(e=>{let t=e[0];t&&(m(Et,t.contentRect.width,!0),m(Dt,t.contentRect.height,!0))});return t.observe(e),()=>t.disconnect()}),S(()=>{if(!r(N).exists||typeof window>`u`)return;let e=e=>{e.code===`Space`&&(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||li(e.target)||(e.preventDefault(),ui()))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)}),S(()=>{let e=r(Tt),t=r(F),n=r(J),i=r(B),a=r(V),o=r(Et),s=r(Dt);!e||!t||n==null||i==null||a==null||$r(e,{peaks:t,recordingStartMs:n,viewportStartMs:i,viewportEndMs:a,width:o,height:s})});function Y(e){return typeof e==`string`&&e.trim()||null}function On(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function kn(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`#${kn(i+(c-i)*s).toString(16).padStart(2,`0`)}${kn(a+(c-a)*s).toString(16).padStart(2,`0`)}${kn(o+(c-o)*s).toString(16).padStart(2,`0`)}`}function An(e){let t=On(e);return t==null?`—`:`${Math.round(t)} ms`}function jn(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 Mn(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 Nn(e){try{return JSON.stringify(e??null,null,2)}catch{return String(e)}}async function Pn(){try{await navigator.clipboard.writeText(Nn(r(j))),m(It,`ok`),window.setTimeout(()=>{m(It,`idle`)},2e3)}catch(e){console.error(`Failed to copy latency stream`,e),m(It,`error`),window.setTimeout(()=>{m(It,`idle`)},3e3)}}function Fn(){!r(W)||r(B)==null||r(V)==null||Te(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 In(e){let t=e.payload;return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}function Ln(e){return e===`call.started`||e===`call.ended`?`Call`:e.startsWith(`vad.`)?`VAD`:e.startsWith(`user.speaking.`)?`User State`: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 Rn(e){return e===`call.started`||e===`call.ended`?`call`:e.startsWith(`vad.`)?`vad`:e.startsWith(`user.speaking.`)?`user.state`: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 zn(e){switch(e){case`vad.activated`:case`user.speaking.started`:case`stt.started`:return`start`;case`vad.deactivated`:case`user.speaking.completed`:case`stt.final`:case`stt.final_transcript`:return`end`;default:return null}}function Bn(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`user.speaking.started`:return`User speaking start`;case`user.speaking.completed`:return`User speaking end`;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 Vn(e){let t=In(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`user.speaking.started`:return`LiveKit changed the session user state to speaking`;case`user.speaking.completed`:return`LiveKit changed the session user state from speaking`;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 Hn(e){return Y(In(e).text)}function Un(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 Wn(e){let t=In(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 Gn(e){return e.traceType===`CONVERSATIONAL`}function Kn(e){return Gn(e)&&e.role.toLowerCase()===`user`&&(e.eventName===`received-message`||e.eventName===`llm-handler-stream-requested`)}function qn(e){return Gn(e)&&(e.eventName===`finished-main-streaming-step`||e.eventName===`sent-message`)}function Jn(e){return Y(e.traceId)??`${e.createdAt}:${e.eventName}:${e.content}`}function Yn(){for(let e of r(j).slice().sort(Or))if(e.eventType===`call.started`&&Number.isFinite(e.atMs))return e.atMs;return r(q)}function Xn(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(Yn(),e)}function Zn(e){return/<WAIT\b[^>]*\/?\s*>/i.test(e)}function Qn(e){return e.traceType===`STEP`&&se(e.name)&&Y(e.response)!=null}function $n(e){return e.replace(/<[^>]+>/g,` `).replace(/\s+/g,` `).trim()}function er(e,t){if(e===t)return!0;let n=$n(e),r=$n(t);return n!==``&&n===r}function tr(e){let t=e-ve,n=e+ve;for(let i of r(M))if(Kn(i)){if(i.createdAt<=e)t=i.createdAt;else{n=i.createdAt;break}}return{start:t,end:n}}function nr(e,t,n){let r=tr(e.createdAt);return t.filter(e=>!n.has(ir(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 rr(){let e=[],t=new Set,n=r(M).filter(Qn).sort(mi),i=r(M).filter(qn).sort(mi);for(let r of i){let i=nr(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&&er(e.fullText,a));if(s){s.agentTraceIds.add(Jn(r)),i&&t.add(ir(i));continue}i&&t.add(ir(i)),e.push({id:i?`response:step:${ir(i)}`:`response:agent:${Jn(r)}`,text:o,fullText:a,createdAt:r.createdAt,agentTraceIds:new Set([Jn(r)]),traceLabel:Q(i??r)})}for(let r of n){let n=ir(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 ir(e){return Y(e.traceId)??`${e.seq??`?`}:${e.createdAt??`?`}`}function ar(){return r(j).slice().sort(Or).flatMap(e=>{if(e.eventType!==`tts.text.first_sent`&&e.eventType!==`tts.text.completed`)return[];let t=$(Hn(e));return t?[{trace:e,text:t}]:[]})}function or(e,t,n,r){let i=r-250,a=e.start+2e3;return t.filter(({trace:e})=>!n.has(ir(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 sr(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=ar(),a=Yn();for(let e of n){let n=or(e,i,r,a);a=Math.max(a,e.end),n&&(r.add(ir(n.trace)),t.set(e.id,{text:n.text,fullText:n.text,traceLabel:Q(n.trace)}))}return t}function cr(e){return e.flatMap(e=>{if(!Zn(e.fullText))return[];let t=lr(e.createdAt);return[{...Dr({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 lr(e){let t=r(j).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 ur(){let e=[],t=r(Xt).filter(e=>e.row===`Playback`&&e.durationMs>0).sort((e,t)=>e.start-t.start||e.end-t.end);return r(j).slice().sort(Or).forEach(n=>{if(!Un(n))return;let r=Wn(n);r&&e.push({id:`bubble:human:${n.traceId??n.seq}`,role:`human`,text:r,fullText:r,anchorTime:n.atMs,minStartTime:Xn(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 dr(e){let t=r(tn).findIndex(t=>t.label===e);return t===-1?32:32+t*35+15}function fr(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 pr(e,t){return X(fr(e),60,Math.max(60,t))}function mr(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 hr(e,t){let n=-1;for(let r of e)r.role===t&&(n=Math.max(n,r.level));return n+1}function gr(e){return Math.max(0,e)*35}function _r(e){let t=r(un);return e.map(e=>{let n=e.level*35,r=t+n,i=dr(e.anchorRow);return{...e,topPx:n,lineTopPx:i,lineHeightPx:Math.max(1,r-i)}})}function vr(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=mr(pr(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 yr(){return vr(`human`,ur())}function br(e){return`left:${Math.round(e.leftPx)}px;top:${Math.round(e.topPx)}px;width:${Math.round(e.widthPx)}px;height:30px;`}function xr(e){return`left:${e.anchorPercent}%;top:${Math.round(e.lineTopPx)}px;height:${Math.round(e.lineHeightPx)}px;`}function Sr(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 Cr(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 wr(){Kt!=null&&(window.clearTimeout(Kt),Kt=null)}function Tr(e,t){let n=t.currentTarget;n instanceof HTMLElement&&(wr(),Kt=window.setTimeout(()=>{m(Mt,e,!0),m(Nt,n,!0),Kt=null},50))}function Er(){wr(),m(Mt,null),m(Nt,null)}function Dr(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 Or(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 kr(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 Ar(e){return me(e).filter(e=>pe(r(M),e)!=null).map(e=>Dr({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 (>${_e}ms)`:`OK`,text:e.text,traceLabel:e.speechCreatedTrace?`${Q(e.startTrace)} -> ${Q(e.speechCreatedTrace)} -> ${Q(e.endTrace)}`:`${Q(e.startTrace)} -> ${Q(e.endTrace)}`}))}function jr(e){let t=[...Ar(e),...ge(e).map(e=>Dr({id:`derived:${e.id}`,row:`LLM Wait`,start:e.start,end:e.end,colorKey:`llm.wait`,label:e.outcome===`first-token`?`LLM wait`:`Superseded LLM wait`,description:e.outcome===`first-token`?`LLM request to first token`:`LLM request to replacement request`,explain:e.outcome===`superseded`?`A newer transcript started another response`:null,traceLabel:`${Q(e.startTrace)} -> ${Q(e.endTrace)}`}))];return e.forEach((n,r)=>{let i=De.get(n.eventType);if(!i)return;let a=kr(e,r,e=>e.eventType===i.endEventType,e=>e.eventType===i.startEventType);!a||a.atMs<n.atMs||t.push(Dr({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 Mr(e){let t=e.slice().filter(e=>typeof e.atMs==`number`&&Number.isFinite(e.atMs)&&typeof e.seq==`number`&&Number.isFinite(e.seq)).sort(Or),n=t.map((e,t)=>Dr({id:`point:${e.traceId??e.seq}:${t}`,row:Ln(e.eventType),start:e.atMs,end:e.atMs,colorKey:Rn(e.eventType),label:Bn(e),description:Vn(e),text:Hn(e),traceLabel:Q(e),eventMarker:zn(e.eventType)}));return[...jr(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 Nr(e){return e.row===`Playback`&&!e.eventMarker&&e.durationMs>0}function Pr(e){return!Nr(e)||!e.speechFullText?null:{role:`agent`,fullText:e.speechFullText}}function Fr(e){return Nr(e)?e.speechText:null}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=Ee[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 Nr(e)?`left:${s}%;width:max(${c}%,2px);`:`left:${s}%;width:max(${c}%,2px);background:${n};border-color:${i};`}function Lr(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 Rr(e){return e.eventMarker?`absolute inset-y-0 shadow-[0_0_0_1px_rgba(0,0,0,0.28)]`:Nr(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 zr(e){return[e.label,e.row===e.label?``:e.row,`${Mn(e.start-r(q))} → ${Mn(e.end-r(q))} (${An(e.durationMs)})`,e.description??``,e.text?`Text: ${e.text}`:``,e.explain??``,e.traceLabel].filter(e=>e.trim()!==``).join(`
3
3
  `)}function Br(e,t){let n=t.currentTarget;n instanceof HTMLElement&&(m(kt,e,!0),m(At,n,!0))}function Vr(){m(kt,null),m(At,null)}function Hr(e,t){let n=Pr(e);if(n){Vr(),Tr(n,t);return}Er(),Br(e,t)}function Ur(){Vr(),Er()}function Wr(e){return`left:${e.leftPercent}%;top:${e.topPx}px;height:${e.heightPx}px;border-color:${e.color};opacity:${e.opacity};`}function Gr(e){return`left:${e.leftPercent}%;top:${e.topPx}px;height:${e.heightPx}px;`}function Kr(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 qr(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(mn),o=new Set,s=[];return e.forEach((e,r)=>{if(!ye.has(e.label))return;let c=32+r*35+15;e.segments.forEach(r=>{if(r.id.startsWith(`playback:wait:`))return;let l=Z(Ee[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 ee=X((n-t)/i*100,0,100);s.push({id:`${r.id}:${u}`,leftPercent:ee,topPx:c,heightPx:Math.max(1,a-c),color:l,opacity:e.label===`VAD`?.62:.48})}})}),s}function Jr(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 Yr(e,t,n){let r=t-e;if(!Number.isFinite(r)||r<=0)return[];let i=Jr(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:Mn(s-n)})}return o}function Xr(){let e=window.AudioContext??window.webkitAudioContext;if(!e)throw Error(`Web Audio is not available in this browser`);return new e}function Zr(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 Qr(e){let t=await e.arrayBuffer(),n=Xr();try{let e=await n.decodeAudioData(t.slice(0));return{peaks:Zr(e),audioBuffer:e}}finally{await n.close().catch(()=>{})}}function $r(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 ei(){Ht&&=(window.cancelAnimationFrame(Ht),0)}async function ti(){let e=K;K=null,e&&await e.close().catch(()=>{})}async function ni(){return(!K||K.state===`closed`)&&(K=Xr()),K.state===`suspended`&&await K.resume(),K}function ri(){let e=oi();if(r(L)&&K&&Wt!=null&&Gt!=null){let t=(K.currentTime-Gt)*1e3,n=Wt+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 ii(e=!0){e&&m(I,ri(),!0);let t=Ut;if(Ut=null,Wt=null,Gt=null,m(L,!1),ei(),t){t.onended=null;try{t.stop()}catch{}t.disconnect()}}function ai(){ei();let e=()=>{if(!r(L)){Ht=0;return}m(I,ri(),!0),Ht=window.requestAnimationFrame(e)};Ht=window.requestAnimationFrame(e)}function oi(){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 si(e){let t=oi(),n=t>0?X(e,0,t):Math.max(0,e);m(I,n,!0),r(L)&&di(n)}function ci(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),si(a-r(J))}function li(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 ui(){if(r(N).exists){if(m(R,null),r(L)){ii(!0);return}await di(r(I))}}async function di(e){let t=G;if(!t){m(R,r(bt)?`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);ii(!1),m(I,i,!0);try{let e=await ni(),r=e.createBufferSource();r.buffer=t,r.connect(e.destination),r.onended=()=>{Ut===r&&(Ut=null,Wt=null,Gt=null,m(L,!1),m(I,n,!0),ei())},Ut=r,Wt=i,Gt=e.currentTime,m(L,!0),m(R,null),ai(),r.start(0,i/1e3)}catch(e){ii(!1),m(L,!1),m(R,e instanceof Error?e.message:`Failed to play recording`,!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){let t=new Set;return e.filter(e=>{let n=Y(e?.traceId);return!n||!t.has(n)&&(t.add(n),!0)})}function mi(e,t){return e.createdAt-t.createdAt||String(e.traceId??``).localeCompare(String(t.traceId??``))}async function hi(e){let t=[],n;for(;;){let r=await be.getLatencyTraces(e,500,n);if(t.push(...r.items??[]),n=r.lastTraceId,!n)break}return fi(t).slice().sort(Or)}async function gi(e){let t=[],n;for(;;){let r=await be.getTraces(e,100,n);if(t.push(...r.items??[]),n=r.lastTraceId,!n)break}return pi(t).slice().sort(mi)}async function _i(e){let t=++Rt;m(mt,!1),m(ht,!0),m(gt,null);try{let[n,r,i]=await Promise.all([be.getConversation(e).catch(e=>(console.error(`Failed to load conversation details:`,e),null)),hi(e),gi(e).catch(e=>(console.error(`Failed to load conversation traces for latency matching:`,e),[]))]);if(t!==Rt)return;m(A,n,!0),m(j,r,!0),m(M,i,!0),m(mt,!0)}catch(e){if(t!==Rt)return;m(gt,e instanceof Error?e.message:String(e),!0),m(A,null),m(j,[],!0),m(M,[],!0)}finally{if(t!==Rt)return;m(ht,!1),Tn()}}async function vi(e){if(ii(!1),m(N,e,!0),m(St,null),m(R,null),m(I,0),!e.exists||!e.blob){G=null,m(F,null),m(bt,!1),m(xt,null);return}let t=++Bt;m(bt,!0),m(xt,null);try{let n=await Qr(e.blob);if(t!==Bt)return;m(F,n.peaks,!0),G=n.audioBuffer}catch(e){if(t!==Bt)return;G=null,m(F,null),m(xt,e instanceof Error?e.message:String(e),!0)}finally{if(t!==Bt)return;m(bt,!1)}}async function yi(e=r(Yt)){if(!e)return;let t=++zt;m(_t,!1),m(vt,!0),m(P,null);try{let n=await Ne(e);if(t!==zt||(await vi({exists:n!=null,blob:n,alignmentOffsetMs:n?Fe(e):0}),t!==zt))return;m(_t,!0)}catch(e){if(t!==zt)return;m(P,e instanceof Error?e.message:String(e),!0),m(N,Oe(),!0),m(F,null),m(bt,!1)}finally{if(t!==zt)return;m(vt,!1),Tn()}}function bi(e=!0){let t=r(xn)??r(vn);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 xi(e,t){let n=r(vn);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 Si(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||t<=e)return;let n=xi(e,t);m(B,n.startMs,!0),m(V,n.endMs,!0)}function Ci(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(vn),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),Si(u,u+c)}function wi(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 Ti(e){return Math.exp(wi(e)*.00145)}function Ei(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);Ci(Ti(e),n)}function Di(e){if(r(Et)<=0)return;e.preventDefault();let t=e.currentTarget.getBoundingClientRect(),n=X((e.clientX-t.left)/Math.max(1,t.width),0,1);Ci(Ti(e),n)}function Oi(e){Vt?.();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),Vt=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),Vt=()=>a()}function ki(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);Oi({startEvent:e,onMove:e=>{let a=(e.clientX-t)/r(U)*i;Si(n-a,n-a+i)}})}function Ai(e){m(N,{...r(N),alignmentOffsetMs:Math.round(e)},!0)}function ji(){!r(N).exists||!r(Yt)||Ie(r(Yt),r(N).alignmentOffsetMs)}function Mi(e){if(e.button!==0||!r(N).exists||r(F)==null||r(B)==null||r(V)==null||r(Et)<=0)return;e.preventDefault(),m(St,null);let t=e.currentTarget,n=e.clientX,i=r(N).alignmentOffsetMs,a=r(V)-r(B);Oi({startEvent:e,activationDistancePx:6,onStart:()=>{m(z,!0)},onMove:e=>{let t=(e.clientX-n)/r(Et)*a;Ai(i+t)},onClick:e=>{ci(e.clientX,t)},onEnd:({wasDrag:e})=>{e&&ji()}})}function Ni(){r(N).exists&&(m(z,!0),Ai(0),ji())}async function Pi(e){let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!(!n||!r(Yt))){m(yt,!0),m(P,null),m(St,null);try{let e=r(Yt);await Pe(e,n),Ie(e,0),m(z,!1),await vi({exists:!0,blob:n,alignmentOffsetMs:0}),bi(!1),m(_t,!0),Tn()}catch(e){m(P,e instanceof Error?e.message:String(e),!0)}finally{m(yt,!1)}}}var Fi=ft(),Ii=te(Fi),Li=_(Ii),Ri=_(Li),zi=_(Ri),Bi=_(zi),Vi=y(_(Bi)),Hi=e=>{var t=Le(),i=y(te(t),2),a=_(i,!0);d(i),h(()=>s(a,r(qt))),n(e,t)};v(Vi,e=>{r(qt)&&e(Hi)}),d(Bi);var Ui=y(Bi,2),Wi=_(Ui),Gi=y(_(Wi),2),Ki=_(Gi,!0);d(Gi),d(Wi);var qi=y(Wi,2),Ji=y(_(qi),2),Yi=_(Ji,!0);d(Ji),d(qi);var Xi=y(qi,2),Zi=y(_(Xi),2),Qi=_(Zi,!0);d(Zi),d(Xi);var $i=y(Xi,2),ea=e=>{var t=Re(),i=y(_(t),2),a=_(i,!0);d(i),d(t),h(e=>s(a,e),[()=>Mn(r(hn)-r(q))]),n(e,t)};v($i,e=>{r(N).exists&&r(hn)!=null&&e(ea)});var ta=y($i,2),na=e=>{var t=ze(),i=y(_(t),2),a=_(i);d(i),d(t),h((e,t)=>s(a,`${e??``} → ${t??``}`),[()=>Mn(r(B)-r(q)),()=>Mn(r(V)-r(q))]),n(e,t)};v(ta,e=>{r(B)!=null&&r(V)!=null&&e(na)}),d(Ui),d(zi);var ra=y(zi,2),ia=_(ra);re(ia,e=>m(Ot,e),()=>r(Ot));var aa=y(ia,2);T(aa,{variant:`secondary`,size:`small`,get disabled(){return r(yt)},onclick:()=>r(Ot)?.click(),children:(e,t)=>{c();var i=C();h(()=>s(i,r(yt)?`Loading…`:r(N).exists?`Replace WAV`:`Load WAV`)),n(e,i)},$$slots:{default:!0}});var oa=y(aa,2);{let e=g(()=>!r(N).exists);T(oa,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:()=>void ui(),children:(e,t)=>{c();var i=C();h(()=>s(i,r(L)?`Pause`:`Play`)),n(e,i)},$$slots:{default:!0}})}var sa=y(oa,2);{let e=g(()=>r(Sn)==null);T(sa,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:()=>Ci(.8),children:(e,t)=>{c();var r=C(`Zoom in`);n(e,r)},$$slots:{default:!0}})}var ca=y(sa,2);{let e=g(()=>r(Sn)==null);T(ca,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:()=>Ci(1.25),children:(e,t)=>{c();var r=C(`Zoom out`);n(e,r)},$$slots:{default:!0}})}var la=y(ca,2);{let e=g(()=>!(r(xn)??r(vn)));T(la,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:()=>bi(!0),children:(e,t)=>{c();var r=C(`Fit call`);n(e,r)},$$slots:{default:!0}})}var ua=y(la,2);{let e=g(()=>!r(N).exists);T(ua,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:Ni,children:(e,t)=>{c();var r=C(`Reset alignment`);n(e,r)},$$slots:{default:!0}})}var da=y(ua,2);{let e=g(()=>!r(j).length);T(da,{variant:`secondary`,size:`small`,get disabled(){return r(e)},onclick:Pn,children:(e,t)=>{c();var i=C();h(()=>s(i,r(It)===`ok`?`Copied`:r(It)===`error`?`Copy failed`:`Copy latency stream`)),n(e,i)},$$slots:{default:!0}})}d(ra),d(Ri);var fa=y(Ri,2),pa=e=>{var t=Be(),i=_(t,!0);d(t),h(()=>s(i,r(ht)?`Loading call latency…`:`Loading recording…`)),n(e,t)};v(fa,e=>{(r(ht)||r(vt))&&e(pa)});var ma=y(fa,2),ha=e=>{var t=Ve(),i=_(t);d(t),h(()=>s(i,`Failed to load latency traces: ${r(gt)??``}`)),n(e,t)};v(ma,e=>{r(gt)&&e(ha)});var ga=y(ma,2),_a=e=>{var t=Ve(),i=_(t);d(t),h(()=>s(i,`Recording error: ${r(P)??``}`)),n(e,t)};v(ga,e=>{r(P)&&e(_a)});var va=y(ga,2),ya=e=>{var t=Ve(),i=_(t);d(t),h(()=>s(i,`Alignment error: ${r(St)??``}`)),n(e,t)};v(va,e=>{r(St)&&e(ya)});var ba=y(va,2),xa=e=>{var t=Ve(),i=_(t);d(t),h(()=>s(i,`Playback error: ${r(R)??``}`)),n(e,t)};v(ba,e=>{r(R)&&e(xa)}),d(Li);var Sa=y(Li,2),Ca=_(Sa),wa=_(Ca),Ta=_(wa),Ea=e=>{var t=He();n(e,t)},Da=e=>{var t=Ue();n(e,t)},Oa=e=>{var t=We();n(e,t)},ka=e=>{var t=lt(),o=_(t),u=y(_(o),2);l(u,19,()=>r(tn),e=>e.label,(e,t,i)=>{var a=Ge(),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=y(u,2),ie=y(ne,2),b=e=>{var t=Ke();p(t,`height:160px;margin-top:5px;`),n(e,t)};v(ie,e=>{r(dn)&&e(b)}),d(o);var ae=y(o,2),x=_(ae),S=_(x);l(S,17,()=>r(bn),e=>e.id,(e,t)=>{let i=g(()=>Lr(r(t)));var o=a(),s=te(o),l=e=>{var t=qe(),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 C=y(S,2);l(C,17,()=>r(an),e=>e.id,(e,t)=>{var i=Je();h(e=>p(i,e),[()=>xr(r(t))]),n(e,i)});var w=y(C,2);l(w,17,()=>r(pn),e=>e.id,(e,t)=>{var i=Ye();h(e=>p(i,e),[()=>Wr(r(t))]),n(e,i)});var T=y(w,2),se=e=>{var t=Xe();h(e=>p(t,e),[()=>Gr(r(_n))]),n(e,t)};v(T,e=>{r(_n)&&e(se)});var ce=y(T,2),le=e=>{var t=Ze(),i=te(t),a=y(i,2);h(()=>{p(i,`left:${r(gn).leftPercent}%;top:${r(gn).topPx}px;height:${r(gn).heightPx}px;`),p(a,`left:${r(gn).leftPercent}%;top:${r(gn).topPx-4}px;`)}),n(e,t)};v(ce,e=>{r(gn)&&e(le)}),d(x);var ue=y(x,2);l(ue,21,()=>r(Cn),e=>e.time,(e,t,i,a)=>{var o=Qe(),c=te(o),l=y(c,2),u=_(l,!0);d(l),h(e=>{p(c,`left:${r(t).leftPercent}%;`),oe(l,1,e),p(l,`left:${r(t).leftPercent}%;`),s(u,r(t).label)},[()=>ee(Kr(r(t)))]),n(e,o)}),d(ue),re(ue,e=>m(Ct,e),()=>r(Ct));var de=y(ue,2);l(de,19,()=>r(tn),e=>e.label,(e,t,o)=>{var c=nt(),u=_(c);l(u,17,()=>r(Cn),e=>e.time,(e,t,i,a)=>{var o=$e();h(()=>p(o,`left:${r(t).leftPercent}%;`)),n(e,o)});var m=y(u,2);l(m,17,()=>r(t).segments,e=>e.id,(e,t)=>{let o=g(()=>Ir(r(t))),c=g(()=>Fr(r(t)));var l=a(),u=te(l),m=e=>{var a=tt(),l=_(a),u=e=>{var t=et(),i=_(t,!0);d(t),h(()=>s(i,r(c))),n(e,t)};v(l,e=>{r(c)&&e(u)}),d(a),h(e=>{oe(a,1,e),p(a,r(o))},[()=>ee(Rr(r(t)))]),i(`pointerenter`,a,e=>Hr(r(t),e)),i(`pointerleave`,a,Ur),f(`pointerdown`,a,Ur),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;`)),f(`pointerdown`,c,ki),i(`wheel`,c,Ei),n(e,c)});var E=y(de,2);let fe;var pe=_(E),me=y(pe,2);l(me,17,()=>r(Cn),e=>e.time,(e,t,i,a)=>{var o=rt();h(()=>p(o,`left:${r(t).leftPercent}%;`)),n(e,o)});var he=y(me,2);l(he,17,()=>r(an),e=>e.id,(e,t)=>{var a=it(),o=_(a,!0);d(a),h((e,n)=>{oe(a,1,e),p(a,n),s(o,r(t).text)},[()=>ee(Sr(r(t))),()=>br(r(t))]),i(`pointerenter`,a,e=>Tr(r(t),e)),i(`pointerleave`,a,Er),f(`pointerdown`,a,Er),n(e,a)}),d(E);var ge=y(E,2),_e=e=>{var t=ct();p(t,`height:160px;margin-top:5px;`);var a=_(t),o=e=>{var t=at();n(e,t)},c=e=>{var t=ot(),i=_(t);d(t),h(()=>s(i,`Failed to decode waveform: ${r(xt)??``}`)),n(e,t)},u=e=>{var t=st();re(t,e=>m(Tt,e),()=>r(Tt)),n(e,t)};v(a,e=>{r(bt)?e(o):r(xt)?e(c,1):e(u,-1)});var ee=y(a,2);l(ee,17,()=>r(Cn),e=>e.time,(e,t,i,a)=>{var o=$e();h(()=>p(o,`left:${r(t).leftPercent}%;`)),n(e,o)}),d(t),re(t,e=>m(wt,e),()=>r(wt)),f(`pointerdown`,t,Mi),i(`wheel`,t,Di),n(e,t)};v(ge,e=>{r(dn)&&e(_e)}),d(ae),d(t),h(()=>{p(ne,`height:${r(on)}px;margin-top:${r(ln)}px;`),fe=oe(E,1,`relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60`,null,fe,{"rounded-b":!r(dn),"border-b":!r(dn)}),p(E,`height:${r(sn)}px;margin-top:${r(ln)}px;`),p(pe,`height:${r(on)}px;`)}),i(`wheel`,ue,Ei),f(`pointerdown`,E,ki),i(`wheel`,E,Ei),n(e,t)};v(Ta,e=>{r(ht)?e(Ea):r(Xt).length?r(B)==null||r(V)==null?e(Oa,2):e(ka,-1):e(Da,1)}),d(wa),d(Ca),d(Sa),re(Sa,e=>m(H,e),()=>r(H)),d(Ii);var Aa=y(Ii,2),ja=e=>{re(fe(e,{get referenceEl(){return r(At)},placement:`top-start`,offset:[0,10],children:e=>{var t=ut();l(t,21,()=>r(wn),ne,(e,t,i)=>{var a=it();oe(a,1,ee(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(jt,e,!0),()=>r(jt))};v(Aa,e=>{r(kt)&&r(At)&&e(ja)});var Ma=y(Aa,2),Na=e=>{let t=g(()=>r(Mt));re(fe(e,{get referenceEl(){return r(Nt)},placement:`top-start`,offset:[0,-4],flip:!1,children:e=>{var i=dt(),a=_(i),o=_(a,!0);d(a),d(i),h(e=>{oe(i,1,e),s(o,r(t).fullText)},[()=>ee(Cr(r(t)))]),n(e,i)},$$slots:{default:!0}}),e=>m(Pt,e,!0),()=>r(Pt))};v(Ma,e=>{r(Mt)&&r(Nt)&&e(Na)}),h(e=>{s(Ki,r(Zt)),s(Yi,r(Xt).length),s(Qi,e)},[()=>jn(r(N).alignmentOffsetMs)]),f(`click`,Ii,e=>e.stopPropagation()),f(`change`,ia,Pi),i(`scroll`,Sa,Dn),n(e,Fi),t()}e([`click`,`change`,`pointerdown`]);export{k as component};
@@ -0,0 +1,11 @@
1
+ import{$ as e,B as t,D as n,Dt as r,F as i,G as a,H as o,I as s,J as c,L as l,N as u,Nt as d,O as f,Ot as p,Pt as m,Q as h,V as g,W as _,X as v,_ as ee,a as y,at as b,bt as te,c as ne,dt as x,et as S,gt as C,ht as w,it as T,j as E,k as re,l as ie,lt as D,m as ae,n as oe,ot as O,pt as k,q as se,r as ce,rt as le,tt as A,ut as ue,w as de,x as j,yt as fe,z as M}from"../chunks/CPCsWwEy.js";import{i as N}from"../chunks/Bmkwccsg.js";import"../chunks/xihTtKlq.js";import{t as P}from"../chunks/6OCsQ6r7.js";import{t as pe}from"../chunks/Cf3l6QEG.js";import{t as me}from"../chunks/BP0Xadq7.js";import"../chunks/CfzHeBbL.js";import{t as he}from"../chunks/DWoqp3ac.js";import{t as ge}from"../chunks/B9YnyJ2j.js";import{t as _e}from"../chunks/UZ6smZpJ.js";import{n as ve,r as ye,s as be}from"../chunks/CCtAgMW8.js";import{n as xe,t as Se}from"../chunks/DkJi5BM4.js";import{i as Ce,n as we,o as Te,r as Ee,s as De,t as Oe}from"../chunks/DdNCOsWe.js";import{a as ke,i as Ae}from"../chunks/U2g-17s7.js";var F=()=>{let e=N;return{page:{subscribe:e.page.subscribe},navigating:{subscribe:e.navigating.subscribe},updated:e.updated}},je={subscribe(e){return F().page.subscribe(e)}},Me=l(`<!> <!>`,1),I=l(`<div class="mt-1 overflow-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 shadow-inner-white-soft backdrop-blur-2xl" role="listbox"><!> <!></div>`),L=l(`<div><!> <!></div>`);function Ne(e,t){p(t,!0);let n=y(t,`disabled`,3,!1),o=y(t,`dropdownId`,3,`copy-traces-dropdown`),s=k(!1),c=k(null),l=k(null),u=k(null);A(()=>{n()&&a(s)&&x(s,!1)});async function f(e){try{let n=e===`with-prompts`?t.getWithPromptsText():t.getWithoutPromptsText();await navigator.clipboard.writeText(n),x(l,e,!0),a(u)&&clearTimeout(a(u)),x(u,window.setTimeout(()=>{x(l,null),x(u,null)},2e3),!0)}catch(e){console.error(`Failed to copy traces`,e)}}var h=L(),g=T(h);P(g,{variant:`secondary`,size:`small`,get disabled(){return n()},get"aria-expanded"(){return a(s)},"aria-haspopup":`listbox`,get"aria-controls"(){return o()},onclick:e=>{e.stopPropagation(),x(s,!a(s))},class:`flex items-center gap-1`,get el(){return a(c)},set el(e){x(c,e,!0)},children:(e,t)=>{var n=Me(),r=b(n),o=e=>{var t=M(`Copied traces (without prompts)`);i(e,t)},c=e=>{var t=M(`Copied traces (with prompts)`);i(e,t)},u=e=>{var t=M(`Copy traces`);i(e,t)};E(r,e=>{a(l)===`without-prompts`?e(o):a(l)===`with-prompts`?e(c,1):e(u,-1)});var d=O(r,2);{let e=C(()=>`size-5 text-rc-gray-400 transition-transform duration-200 `+(a(s)?`rotate-180`:``));pe(d,{name:`chevron-down`,get class(){return a(e)}})}i(e,n)},$$slots:{default:!0}});var _=O(g,2);De(_,{get id(){return o()},get open(){return a(s)},onClose:()=>x(s,!1),get anchorEl(){return a(c)},placement:`bottom-end`,offset:[0,1],children:e=>{var t=I(),n=T(t);P(n,{variant:`ghost`,size:`small`,role:`option`,onclick:e=>{e.stopPropagation(),x(s,!1),f(`without-prompts`)},class:`w-full rounded-none border-b border-rc-gray-110 py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400`,children:(e,t)=>{d();var n=M(`Without prompts`);i(e,n)},$$slots:{default:!0}});var r=O(n,2);P(r,{variant:`ghost`,size:`small`,role:`option`,onclick:e=>{e.stopPropagation(),x(s,!1),f(`with-prompts`)},class:`w-full rounded-none py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400`,children:(e,t)=>{d();var n=M(`With prompts`);i(e,n)},$$slots:{default:!0}}),m(t),i(e,t)},$$slots:{default:!0}}),m(h),i(e,h),r()}var R=l(`<div> </div>`),z=l(`<div class="mt-1 whitespace-pre-wrap break-words text-xs italic text-rc-gray-200"> </div>`),B=l(`<div><!> <!> <!></div>`),Pe=l(`<div><div><div> </div> <div><!> <!></div> <!></div></div>`),V=l(`<div class="space-y-3"></div>`),Fe=l(`<div class="whitespace-pre-wrap break-words"><!></div>`),H=l(`<button class="inline-flex text-sm text-rc-green-200 hover:text-rc-green-100"> </button>`),U=l(`<div><span class="whitespace-pre-wrap break-words"><!></span> <!></div>`);function Ie(e,t){p(t,!1);let o=y(t,`value`,8,``),l=y(t,`limit`,8,200),d=y(t,`maxLines`,8,null),h=y(t,`className`,8,``),v=y(t,`collapsedLabel`,8,`...more`),ee=y(t,`initiallyExpanded`,8,!1),te=y(t,`stopPropagation`,8,!0),x=y(t,`expanded`,28,ee),ie=y(t,`treatPlainText`,8,!1),D=y(t,`highlightPrompt`,8,!1);function ae(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function oe(e){let t=ae(k(e)),n=[];return t=t.replace(/(\{+[\s\S]*?\}+)/g,e=>{let t=n.length;return n.push(e),`__CURLY${t}__`}),t=t.replace(/^(\s*#.*)$/gm,`<span class="prompt-heading">$1</span>`),t=t.replace(/(&lt;[^&]*?&gt;)/g,`<span class="mtk8">$1</span>`),t=t.replace(/^(\s*)(\d+)([.)])(\s+)/gm,(e,t,n,r,i)=>`${t}<span class="mtk8">${n}${r}</span>${i}`),n.forEach((e,n)=>{let r=`<span class="mtk5">${e}</span>`;t=t.replace(`__CURLY${n}__`,r)}),t=t.replace(/\n/g,`<br/>`),t}function k(e){let t=e.replace(/\r\n/g,`
2
+ `);return t=t.replace(/\\n/g,`
3
+ `),t}function se(e){try{if(Array.isArray(e))return k(e.map(e=>e?.text??e?.content??JSON.stringify(e)).join(` `));if(typeof e==`string`)try{let t=JSON.parse(e);return k(Array.isArray(t)?t.map(e=>e?.text??e?.content??JSON.stringify(e)).join(` `):e)}catch{return k(e)}return k(JSON.stringify(e))}catch{return k(String(e??``))}}function ce(e){try{if(Array.isArray(e))return k(e.map(e=>e?.text??e?.content??JSON.stringify(e)).join(`
4
+ `));if(typeof e==`string`)try{let t=JSON.parse(e);return k(Array.isArray(t)?t.map(e=>e?.text??e?.content??JSON.stringify(e)).join(`
5
+ `):e)}catch{return k(e)}return k(JSON.stringify(e,null,2))}catch{return k(String(e??``))}}function le(e){let t=k(e).split(/\n+/).map(e=>e.trim()).filter(e=>e.length>0),n=[],r,i=``;for(let e of t){let t=e.match(/^(user|assistant|system|customer|caller|tool|model|agent)\s*[:\-]\s*(.*)$/i);t?(i&&n.push({text:i,role:r}),r=t[1].toLowerCase(),i=t[2]??``):i?i+=`
6
+ `+e:i=e}return i&&n.push({text:i,role:r}),n}function A(e){try{let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return ie()?le(e):[]}if(!Array.isArray(t)){if(Array.isArray(t?.messages))t=t.messages;else return[]}return t.map(e=>{let t;return t=e?.text==null?e?.content==null?typeof e==`string`?e:JSON.stringify(e):Array.isArray(e.content)?e.content.map(e=>typeof e==`string`?e:typeof e?.text==`string`?e.text:typeof e?.text?.value==`string`?e.text.value:JSON.stringify(e)).join(` `):typeof e.content==`string`?e.content:JSON.stringify(e.content):String(e.text),{text:k(t),role:e?.role,time:e?.time,duration:e?.duration}}).filter(e=>e.text&&String(e.text).trim().length>0)}catch{return[]}}let ue=()=>se(o()),de=()=>ce(o()),fe=()=>ue().split(`
7
+ `),N=()=>A(o()),P=()=>N().length>0,pe=()=>d()==null?ue().length>l():fe().length>d(),me=()=>{let e=ue();return pe()?d()==null?e.slice(0,l()):fe().slice(0,d()).join(`
8
+ `):e};function he(e){if(!e)return null;try{let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}catch{return e}}function ge(e){if(e==null||!Number.isFinite(e))return null;let t=Number(e),n=Math.floor(t),r=Math.floor(n/60),i=n%60;return`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`}function _e(e){if(!e)return`Assistant`;let t=e.trim();return t?t.charAt(0).toUpperCase()+t.slice(1):`Assistant`}function ve(e){let t=e?.toLowerCase()??``;return t===`user`||t===`customer`||t===`caller`}function ye(e){let t=[];return{main:e.replace(/<([^>]+)>/g,(e,n)=>{let r=String(n).trim();return r&&t.push(r),``}).trim(),system:t}}function be(e){te()&&e.stopPropagation(),x(!x())}function xe(e){te()&&e.stopPropagation()}ne();var Se=s(),Ce=b(Se),we=e=>{var t=s(),r=b(t),o=e=>{var t=V();f(t,5,()=>c(N),re,(e,t)=>{let n=w(()=>(a(t),c(()=>ve(a(t).role)))),r=w(()=>(a(t),c(()=>(a(t).role??``).toLowerCase()===`system`))),o=w(()=>(a(t),c(()=>ye(a(t).text)))),s=w(()=>(a(t),c(()=>he(a(t).time)))),l=w(()=>(a(t),c(()=>ge(a(t).duration))));var d=Pe(),p=T(d),h=T(p),g=T(h,!0);m(h);var v=O(h,2),ee=T(v),y=e=>{var t=R(),n=T(t,!0);m(t),S(()=>u(n,(_(a(o)),c(()=>a(o).main)))),i(e,t)};E(ee,e=>{_(a(o)),c(()=>a(o).main)&&e(y)});var b=O(ee,2);f(b,1,()=>(_(a(o)),c(()=>a(o).system)),re,(e,t)=>{var n=z(),r=T(n);m(n),S(()=>u(r,`<${a(t)??``}>`)),i(e,n)}),m(v);var te=O(v,2),ne=e=>{var t=B(),r=T(t),o=e=>{var t=M();S(()=>u(t,a(s))),i(e,t)};E(r,e=>{a(s)&&e(o)});var c=O(r,2),d=e=>{var t=M(`·`);i(e,t)};E(c,e=>{a(s)&&a(l)&&e(d)});var f=O(c,2),p=e=>{var t=M();S(()=>u(t,a(l))),i(e,t)};E(f,e=>{a(l)&&e(p)}),m(t),S(()=>j(t,1,`mt-1 text-xs text-rc-gray-300 ${a(n)?`text-right`:`text-left`}`)),i(e,t)};E(te,e=>{(a(s)||a(l))&&e(ne)}),m(p),m(d),S(e=>{j(d,1,`flex ${a(n)?`justify-end`:`justify-start`}`),j(p,1,`max-w-[70%] break-words rounded-md px-3 py-2 text-sm shadow-sm ${a(n)?`bg-rc-gray-600 text-rc-gray-100`:`bg-rc-gray-700 text-rc-gray-100`}`),j(h,1,`my-1 text-xs font-semibold uppercase ${a(r)?`text-rc-blue `+(a(n)?`text-right`:`text-left`):`text-rc-green-200 `+(a(n)?`text-right`:`text-left`)}`),u(g,e),j(v,1,`whitespace-pre-wrap break-words py-1 text-sm ${a(n)?`text-justify`:`text-left`} ${a(r)?`italic text-rc-gray-200`:``}`)},[()=>(a(t),c(()=>_e(a(t).role)))]),i(e,d)}),m(t),i(e,t)},l=C(()=>c(P)),d=e=>{var t=Fe(),r=T(t),a=e=>{var t=s(),r=b(t);n(r,()=>c(()=>oe(de()))),i(e,t)},o=e=>{var t=M();S(e=>u(t,e),[()=>c(de)]),i(e,t)};E(r,e=>{D()?e(a):e(o,-1)}),m(t),i(e,t)};E(r,e=>{a(l)?e(o):e(d,-1)}),i(e,t)},Te=e=>{var t=U(),r=T(t),o=T(r),l=e=>{var t=s(),r=b(t);n(r,()=>c(()=>oe(me()))),i(e,t)},d=e=>{var t=M();S(e=>u(t,e),[()=>c(me)]),i(e,t)};E(o,e=>{D()?e(l):e(d,-1)}),m(r);var f=O(r,2),p=e=>{var t=H(),n=T(t,!0);m(t),S(()=>u(n,v())),g(`click`,t,be),i(e,t)},_=C(()=>c(pe));E(f,e=>{a(_)&&e(p)}),m(t),S(()=>j(t,1,`mt-1 cursor-text select-text rounded bg-rc-gray-900 p-2 text-sm text-rc-gray-200 ${h()}`)),g(`click`,t,xe),i(e,t)};E(Ce,e=>{x()?e(we):e(Te,-1)}),i(e,Se),r()}t([`click`]);var Le=l(`<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200"> </span>`,1),Re=l(`<div class="flex flex-wrap items-center gap-2"><!> <!> <!></div>`),ze=l(`<div class="mt-2 text-sm text-rc-gray-400">Loading call details…</div>`),Be=l(`<div class="mt-2 text-sm text-rc-gray-300"> </div>`),Ve=l(`<div class="py-8 text-center text-rc-gray-300">No conversation selected</div>`),He=l(`<div class="py-8 text-center text-rc-gray-200">Loading traces...</div>`),Ue=l(`<div class="z-50 py-8 text-center text-red-400"> </div>`),We=l(`<div class="py-8 text-center text-rc-gray-300">No traces found</div>`),Ge=l(`<div class="my-3 flex w-full justify-center"><div class="rounded-full border border-rc-gray-650 bg-rc-gray-900/40 px-3 py-1 text-xs text-rc-gray-200"> </div></div>`),Ke=l(`<div class="my-3 flex w-full justify-center"><div class="rounded-full border border-red-500 bg-red-950/30 px-3 py-1 text-xs font-semibold text-red-200"> </div></div>`),qe=l(`<!> <!> <!>`,1),Je=l(`<div></div>`),Ye=l(`<div class="rounded-md border border-red-500 bg-red-950/30 px-3 py-2 text-sm text-red-200"> </div>`),Xe=l(`<option> </option>`),Ze=l(`<label class="flex flex-col gap-1 text-sm text-rc-gray-200"><span>Agent</span> <select class="w-full rounded-sm border border-rc-gray-500 bg-rc-gray-700 px-3 py-2 leading-snug text-rc-gray-200 hover:border-rc-gray-400 focus:outline-none focus:ring-0 focus-visible:border-rc-gray-400 focus-visible:outline-none focus-visible:ring-0" aria-label="Agent for new test"></select></label>`),Qe=l(`<p class="text-sm text-rc-gray-300">No agents are available. Add an agent before creating this test.</p>`),$e=l(`<div class="flex flex-col gap-3"><p class="text-sm text-rc-gray-200"> </p> <!> <!></div>`),et=l(`<audio class="w-full" controls=""></audio> <div class="mt-3 break-all text-sm text-rc-gray-300"> </div>`,1),tt=l(`<!> <!>`,1),nt=l(`<div class="rc-scroll flex max-h-[60vh] flex-col gap-4 overflow-scroll p-2"><!></div>`),rt=l(`<div class="flex w-full items-center justify-end gap-5"><!> <!></div>`),it=l(`<div class="flex h-full w-full 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"><h2 class="text-lg font-semibold text-rc-gray-100">Traces <!></h2> <!></div> <!></div> <div class="rc-scroll min-h-0 flex-1 overflow-scroll p-4"><!></div></div> <!> <!> <!>`,1);function W(t,n){p(n,!1);let s=()=>te(je,`$page`,l),[l,k]=fe(),A=y(n,`useMock`,8,!1),j=xe(),N=ye(s().url)??ve()??``,pe=s().params.conversationId??``,De=Se(pe,A()?`__mock__`:N),F=j.traces.get(De),Me=!!F?.tracesLoaded&&!F?.hasMoreTraces,I=new be;I.setSourceId(N||void 0);let L=N,R=D(F?.traces??[]),z=D(F?.latencyTraces??[]),B=D([]),Pe=D(new Map),V=D(!1),Fe=Me,H=D(F?.tracesError??null),U=D(Me?pe:null),W=D(Me?N:null),at=F?.lastTraceId??null,ot=F?.hasMoreTraces??!1,G=D(F?.conversation??null),st=D(!1),ct=F?.conversationLoaded??!1,lt=D(F?.conversationError??null),ut=D(``),K=D(null),q=D(!1),dt=D(``),J=D(!1),Y=D(``),ft=D(``),X=D(null),Z=D(null),Q=D(!1),$=D(!1),pt=0,mt=0,ht=new WeakMap,gt=0;function _t(e,t=L){return Se(e,A()?`__mock__`:t)}function vt(e=a(U),t=a(W)??L){if(!e)return;let n=_t(e,t),r=j.traces.get(n);j.traces.set(n,{traces:a(R),latencyTraces:a(z),tracesLoaded:Fe,tracesError:a(H),lastTraceId:at,hasMoreTraces:ot,conversation:a(G),conversationLoaded:ct,conversationError:a(lt),scrollTop:r?.scrollTop??a(Z)?.scrollTop??0,scrollLeft:r?.scrollLeft??a(Z)?.scrollLeft??0})}async function yt(e){e&&(await se(),a(Z)&&(ue(Z,a(Z).scrollTop=e.scrollTop),ue(Z,a(Z).scrollLeft=e.scrollLeft)))}function bt(){if(!a(U)||!a(Z))return;let e=j.traces.get(_t(a(U),a(W)??L));if(!e){vt();return}e.scrollTop=a(Z).scrollTop,e.scrollLeft=a(Z).scrollLeft}function xt(e){return typeof e==`string`&&e.trim()||null}async function St(){x(q,!0),x(dt,``);try{return x(K,await he.agents.catalog.query()),a(K).some(e=>e.id===a(Y))||x(Y,a(K)[0]?.id??``),a(K)}catch(e){return console.error(`Failed to load agents for test creation`,e),x(K,[]),x(dt,`Current agents could not be loaded.`),[]}finally{x(q,!1)}}async function Ct(e){let t=await St(),n=xt(e);return n&&t.some(e=>e.id===n)?n:(x(ft,n??``),x(Y,t[0]?.id??``),new Promise(e=>{a(X)?.(null),x(X,e),x(J,!0)}))}function wt(){let e=a(K)?.find(e=>e.id===a(Y))?.id;if(!e)return;let t=a(X);x(X,null),x(J,!1),t?.(e)}function Tt(e){return`${Math.round(e)} ms`}function Et(e){let t=xt(e?.traceId);if(t)return t;let n=ht.get(e);if(n)return n;gt+=1;let r=`synthetic-${e.traceType}-${e.createdAt}-${gt}`;return ht.set(e,r),r}function Dt(e){let t=new Set;return e.filter(e=>{let n=xt(e?.traceId);return!n||!t.has(n)&&(t.add(n),!0)})}function Ot(e){return e?a(R):a(R).map(e=>{if(e.traceType!==`STEP`)return e;let{receivedPrompt:t,renderedPrompt:n,...r}=e;return r})}function kt(e){return e&&typeof e.renderedPrompt==`string`?e.renderedPrompt:null}function At(e,t){for(let n=t-1;n>=0;n--){let t=e[n];if(t.traceType!==`STEP`)continue;let r=t;if(ge(r.name)&&kt(r))return r}for(let n=t-1;n>=0;n--){let t=e[n];if(t.traceType!==`STEP`)continue;let r=t;if(r.name===`prewarm`&&kt(r))return r}return null}function jt(e){return!!(e?.audioUrl&&String(e.audioUrl).trim())}function Mt(e){let t=e?.transcript;return typeof t==`string`?t.trim()!==``:Array.isArray(t)?t.length>0:!1}function Nt(e){let t=e?.transcript;return t?typeof t==`string`?t:Array.isArray(t)?t.map(e=>{let t=typeof e?.time==`string`?e.time:``,n=typeof e?.role==`string`?e.role:``,r=typeof e?.text==`string`?e.text:``,i=[t,n].filter(Boolean).join(` • `);return i?`${i}\n${r}`:r}).join(`
9
+
10
+ `):``:``}async function Pt(){try{await navigator.clipboard.writeText(Nt(a(G)))}catch(e){console.error(`Failed to copy transcript`,e)}}async function Ft(){try{let e=a(G)?.audioUrl;if(!e)return;await navigator.clipboard.writeText(e)}catch(e){console.error(`Failed to copy recording URL`,e)}}function It(e){return e.traceType===`CONVERSATIONAL`?e.eventName===`received-message`||e.eventName===`llm-handler-stream-requested`||e.eventName===`finished-main-streaming-step`||e.eventName===`sent-message`||e.eventName===`transfer-requested`||e.eventName===`hangup-requested`:!1}function Lt(e,t){let n=new Map;for(let r of Ae(t)){if(!r.isHigh)continue;let t=ke(e,r);if(!t)continue;let i=Et(t),a=n.get(i);(!a||r.durationMs>a.durationMs)&&n.set(i,{id:r.id,durationMs:r.durationMs})}return n}function Rt(e){return a(Pe).get(Et(e))??null}let zt=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function Bt(e){if(typeof e!=`number`||!Number.isFinite(e))return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}function Vt(e){if(typeof e!=`number`||!Number.isFinite(e))return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:`${t.getDate()} ${zt[t.getMonth()]} ${t.getFullYear()}`}async function Ht(e){let t=++mt;x(st,!0),ct=!1,x(lt,null),x(G,null);try{if(A())return;let n=await I.getConversation(e);if(t!==mt)return;x(G,n),ct=!0}catch(e){if(t!==mt)return;x(lt,e.message),x(G,null)}finally{if(t!==mt)return;x(st,!1),vt(e)}}async function Ut(e){let t=[],n,r=new Set;for(;;){let i=await I.getLatencyTraces(e,500,n);if(t.push(...i.items??[]),n=i.lastTraceId,!n)break;if(r.has(n))throw Error(`Telescope latency pagination repeated a cursor`);r.add(n)}return t}async function Wt(e){let t=[],n,r=new Set;for(;;){let i=await I.getTraces(e,100,n);t.push(...i.items??[]);let a=i.lastTraceId;if(!a)break;if(r.has(a))throw Error(`Telescope trace pagination repeated a cursor`);r.add(a),n=a}return t}async function Gt(e,t=L){if(!e||e===a(U)&&t===a(W))return;vt();let n=++pt;L=t,I.setSourceId(t||void 0),x(U,e),x(W,t),x(V,!0),Fe=!1,x(H,null),at=null,ot=!1,x(z,[]),x(Q,!1),x($,!1),Ht(e);try{let t=[],r=[];if(A())t=(await _e.fetchTraces(e)).items??[];else{let[n,i]=await Promise.all([Wt(e),Ut(e).catch(e=>(console.error(`Failed to load latency traces for chat warnings:`,e),[]))]);t=n,r=i}if(n!==pt)return;at=null,ot=!1,x(z,r),x(R,Dt(t).slice().sort((e,t)=>e.createdAt-t.createdAt)),Fe=!0}catch(e){if(n!==pt)return;x(H,e.message),x(R,[]),console.error(`Failed to load traces:`,e)}finally{if(n!==pt)return;x(V,!1),vt(e)}}ce(()=>{let e=s().params.conversationId;e&&(Fe?ct||Ht(e):Gt(e,L),yt(F))}),oe(()=>{a(X)?.(null),x(X,null),vt(),pt+=1,mt+=1}),h(()=>(a(J),a(X)),()=>{if(!a(J)&&a(X)){let e=a(X);x(X,null),e(null)}}),h(()=>a(R),()=>{x(B,a(R).filter(e=>e.traceType===`API_CALL`||e.traceType===`STEP`||It(e)))}),h(()=>(a(B),a(z)),()=>{x(Pe,Lt(a(B),a(z)))}),h(()=>(s(),a(G)),()=>{x(ut,xt(s().url.searchParams.get(`agent`))??xt(a(G)?.agentId)??``)}),h(()=>(s(),a(U),a(W)),()=>{let e=s().params.conversationId,t=ye(s().url)??ve()??``;e&&(e!==a(U)||t!==a(W))&&Gt(e,t)}),e(),ne();var Kt=it();de(`1uatba4`,e=>{v(()=>{le.title=`Bosun: Telescope`})});var qt=b(Kt),Jt=T(qt),Yt=T(Jt),Xt=T(Yt),Zt=O(T(Xt)),Qt=e=>{var t=Le(),n=O(b(t),2),r=T(n,!0);m(n),S(()=>u(r,(s(),c(()=>s().params.conversationId)))),i(e,t)};E(Zt,e=>{s(),c(()=>s().params.conversationId)&&e(Qt)}),m(Xt);var $t=O(Xt,2),en=e=>{var t=Re(),n=T(t),r=e=>{P(e,{variant:`secondary`,size:`small`,onclick:()=>x(Q,!0),children:(e,t)=>{d();var n=M(`Recording`);i(e,n)},$$slots:{default:!0}})},o=C(()=>(a(G),c(()=>jt(a(G)))));E(n,e=>{a(o)&&e(r)});var s=O(n,2),l=e=>{P(e,{variant:`secondary`,size:`small`,onclick:()=>x($,!0),children:(e,t)=>{d();var n=M(`Transcript`);i(e,n)},$$slots:{default:!0}})},u=C(()=>(a(G),c(()=>Mt(a(G)))));E(s,e=>{a(u)&&e(l)});var f=O(s,2);{let e=w(()=>(a(R),a(V),c(()=>!a(R).length||a(V))));Ne(f,{get disabled(){return a(e)},getWithPromptsText:()=>JSON.stringify(Ot(!0),null,2),getWithoutPromptsText:()=>JSON.stringify(Ot(!1),null,2)})}m(t),i(e,t)};E($t,e=>{s(),c(()=>s().params.conversationId)&&e(en)}),m(Yt);var tn=O(Yt,2),nn=e=>{var t=ze();i(e,t)},rn=e=>{var t=Be(),n=T(t);m(t),S(()=>u(n,`Call details unavailable: ${a(lt)??``}`)),i(e,t)};E(tn,e=>{a(st)?e(nn):a(lt)&&e(rn,1)}),m(Jt);var an=O(Jt,2),on=T(an),sn=e=>{var t=Ve();i(e,t)},cn=e=>{var t=He();i(e,t)},ln=e=>{var t=Ue(),n=T(t);m(t),S(()=>u(n,`Error: ${a(H)??``}`)),i(e,t)},un=e=>{var t=We();i(e,t)},dn=e=>{var t=Je();f(t,7,()=>a(B),e=>Et(e),(e,t,n)=>{let r=w(()=>(a(t),c(()=>Bt(a(t).createdAt)))),o=w(()=>(_(a(n)),a(B),c(()=>a(n)>0?Bt(a(B)[a(n)-1].createdAt):null))),s=w(()=>(a(t),c(()=>Vt(a(t).createdAt)))),l=w(()=>(a(t),c(()=>Rt(a(t)))));var d=qe(),f=b(d),p=e=>{var t=Ge(),n=T(t),r=T(n,!0);m(n),m(t),S(()=>u(r,a(s))),i(e,t)};E(f,e=>{a(r)&&a(s)&&a(r)!==a(o)&&e(p)});var h=O(f,2),g=e=>{Te(e,{get trace(){return a(t)}})},v=e=>{{let r=w(()=>(_(Ce),a(B),_(a(n)),c(()=>Ce(a(B),a(n))))),i=w(()=>(_(ge),a(t),a(B),_(a(n)),c(()=>ge(a(t).name)?At(a(B),a(n)):null)));Oe(e,{get trace(){return a(t)},get agentId(){return a(ut)},get fallbackConversation(){return a(r)},get compareTrace(){return a(i)},testCreationMode:`pii-sanitized`,resolveTestAgent:Ct})}},ee=e=>{{let r=w(()=>(_(Ee),a(B),_(a(n)),c(()=>Ee(a(B),a(n)))));we(e,{get trace(){return a(t)},context:null,get agentId(){return a(ut)},get testSourceStep(){return a(r)},get testEntries(){return a(B)},requireTestSourceStep:!0,testCreationMode:`pii-sanitized`,resolveTestAgent:Ct})}};E(h,e=>{a(t),c(()=>a(t).traceType===`API_CALL`)?e(g):(a(t),c(()=>a(t).traceType===`STEP`)?e(v,1):e(ee,-1))});var y=O(h,2),te=e=>{var t=Ke(),n=T(t),r=T(n);m(n),m(t),S(e=>u(r,`High response latency: ${e??``}`),[()=>(_(a(l)),c(()=>Tt(a(l).durationMs)))]),i(e,t)};E(y,e=>{a(l)&&e(te)}),i(e,d)}),m(t),i(e,t)};E(on,e=>{s(),c(()=>!s().params.conversationId)?e(sn):a(V)?e(cn,1):a(H)?e(ln,2):(a(B),c(()=>!a(B).length)?e(un,3):e(dn,-1))}),m(an),ie(an,e=>x(Z,e),()=>a(Z)),m(qt);var fn=O(qt,2);me(fn,{title:`Select agent for test`,class:`!max-w-md`,get open(){return a(J)},set open(e){x(J,e)},children:e=>{var t=$e(),n=T(t),r=T(n);m(n);var o=O(n,2),s=e=>{var t=Ye(),n=T(t,!0);m(t),S(()=>u(n,a(dt))),i(e,t)};E(o,e=>{a(dt)&&e(s)});var l=O(o,2),d=e=>{var t=Ze(),n=O(T(t),2);f(n,5,()=>a(K),re,(e,t)=>{var n=Xe(),r=T(n,!0);m(n);var o={};S(()=>{u(r,(a(t),c(()=>a(t).displayName))),o!==(o=(a(t),c(()=>a(t).id)))&&(n.value=(n.__value=(a(t),c(()=>a(t).id)))??``)}),i(e,n)}),m(n),m(t),ee(n,()=>a(Y),e=>x(Y,e)),i(e,t)},p=e=>{var t=Qe();i(e,t)};E(l,e=>{a(K),c(()=>a(K)?.length)?e(d):!a(q)&&!a(dt)&&e(p,1)}),m(t),S(()=>u(r,`The agent ${a(ft)??``} used for this call is no longer available. Select a current
11
+ agent for the new test.`)),i(e,t)},footer:e=>{var t=qe(),n=b(t);P(n,{variant:`secondary`,onclick:()=>x(J,!1),children:(e,t)=>{d();var n=M(`Cancel`);i(e,n)},$$slots:{default:!0}});var r=O(n,2),o=e=>{P(e,{variant:`secondary`,get disabled(){return a(q)},onclick:St,children:(e,t)=>{d();var n=M();S(()=>u(n,a(q)?`Loading…`:`Try again`)),i(e,n)},$$slots:{default:!0}})};E(r,e=>{a(dt)&&e(o)});var s=O(r,2);{let e=w(()=>!a(Y)||a(q));P(s,{get disabled(){return a(e)},onclick:wt,children:(e,t)=>{d();var n=M(`Continue`);i(e,n)},$$slots:{default:!0}})}i(e,t)},$$slots:{default:!0,footer:!0},$$legacy:!0});var pn=O(fn,2),mn=e=>{me(e,{title:`Recording`,class:`!max-w-3xl`,get open(){return a(Q)},set open(e){x(Q,e)},children:e=>{var t=et(),n=b(t),r=O(n,2),o=T(r,!0);m(r),S(()=>{ae(n,`src`,(a(G),c(()=>a(G)?.audioUrl))),u(o,(a(G),c(()=>a(G)?.audioUrl)))}),i(e,t)},footer:e=>{var t=tt(),n=b(t);P(n,{variant:`secondary`,size:`small`,onclick:Ft,children:(e,t)=>{d();var n=M(`Copy URL`);i(e,n)},$$slots:{default:!0}});var r=O(n,2);P(r,{variant:`secondary`,size:`small`,onclick:()=>x(Q,!1),children:(e,t)=>{d();var n=M(`Close`);i(e,n)},$$slots:{default:!0}}),i(e,t)},$$slots:{default:!0,footer:!0},$$legacy:!0})},hn=C(()=>(a(Q),a(G),c(()=>a(Q)&&jt(a(G)))));E(pn,e=>{a(hn)&&e(mn)});var gn=O(pn,2),_n=e=>{me(e,{title:`Transcript`,class:`!max-w-4xl`,get open(){return a($)},set open(e){x($,e)},children:e=>{var t=nt(),n=T(t),r=e=>{Ie(e,{get value(){return a(G),c(()=>a(G).transcript)},limit:500,expanded:!0})};E(n,e=>{a(G),c(()=>typeof a(G)?.transcript==`string`)&&e(r)}),m(t),i(e,t)},footer:e=>{var t=rt(),n=T(t);P(n,{onclick:Pt,children:(e,t)=>{d();var n=M(`Copy transcript`);i(e,n)},$$slots:{default:!0}});var r=O(n,2);P(r,{variant:`secondary`,onclick:()=>x($,!1),children:(e,t)=>{d();var n=M(`Close`);i(e,n)},$$slots:{default:!0}}),m(t),i(e,t)},$$slots:{default:!0,footer:!0},$$legacy:!0})},vn=C(()=>(a($),a(G),c(()=>a($)&&Mt(a(G)))));E(gn,e=>{a(vn)&&e(_n)}),g(`click`,qt,e=>e.stopPropagation()),o(`scroll`,an,bt),i(t,Kt),r(),k()}t([`click`]);export{W as component};
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/CUZn05nQ.js","../chunks/hePW80VL.js","../chunks/HclGiUj8.js","../chunks/C_yvzB4Z.js","../assets/editor.chSTM-fo.css","../assets/editor.BoJhDcRF.css"])))=>i.map(i=>d[i]);
2
- import{r as e,t}from"../chunks/hePW80VL.js";import{A as n,B as r,Dt as i,E as a,F as o,G as s,I as c,J as l,L as u,N as d,Nt as f,O as p,Ot as m,Pt as h,V as g,a as _,at as v,c as y,d as b,dt as x,et as S,f as C,gt as w,h as T,ht as E,it as D,j as O,k,l as A,m as ee,n as j,o as M,ot as N,p as te,pt as P,q as F,r as ne,st as I,tt as L,u as re,vt as R,x as z,z as B}from"../chunks/CPCsWwEy.js";import{n as ie,t as V}from"../chunks/jbAfpNOj.js";import{t as H}from"../chunks/HclGiUj8.js";import"../chunks/xihTtKlq.js";import{t as ae}from"../chunks/DDZ8GqHh.js";import{t as U}from"../chunks/BOZLjogl.js";import"../chunks/vxN0p6wG.js";import{n as oe,r as se,t as W}from"../chunks/oarl--hZ.js";import{t as G}from"../chunks/6OCsQ6r7.js";import"../chunks/Cf3l6QEG.js";import{n as ce,t as le}from"../chunks/BJqZY8o2.js";import{t as ue}from"../chunks/BP0Xadq7.js";import"../chunks/CfzHeBbL.js";import{i as de,n as fe,r as K,t as pe}from"../chunks/BT98u4gR.js";import{t as q}from"../chunks/DWoqp3ac.js";import{a as me,c as he,i as ge,n as _e,o as ve,s as J,t as ye}from"../chunks/12bfCwgn.js";import{t as be}from"../chunks/B9YnyJ2j.js";import{t as xe}from"../chunks/D_MTg6YY.js";import{a as Se,n as Ce,r as we,t as Te}from"../chunks/By9tvIIw.js";import{n as Ee,t as De}from"../chunks/BOHUKGg_.js";var Oe=new Set([`$$slots`,`$$events`,`$$legacy`,`class`,`value`,`variant`,`el`]),ke=u(`<textarea></textarea>`);function Ae(e,t){m(t,!0);let n=_(t,`class`,3,``),r=_(t,`value`,15,``),a=_(t,`variant`,3,`config`),c=_(t,`el`,15),l=M(t,Oe),u=w(()=>a()===`chat`?`textarea-chat ${n()}`:`textarea-config ${n()}`);var d=ke();R(d),C(d,()=>({class:s(u),...l}),void 0,void 0,void 0,`svelte-1ilrf3m`),A(d,e=>c(e),()=>c()),b(d,r),o(e,d),i()}var je=new class{resolveUrl;ws=null;openHandler=null;closeHandler=null;errorHandler=null;eventHandler=null;retries=0;maxRetries=5;retryDelay=500;retryTimeout=null;isOpen=!1;isDestroyed=!1;constructor(e){this.resolveUrl=e}init=()=>{if(this.isOpen)return;let e=this.resolveUrl();console.log(`Initializing websocket connection with [${e}]`);try{this.ws=new WebSocket(e)}catch{this.retryConnect();return}this.isDestroyed=!1,this.ws.onmessage=e=>{let t=JSON.parse(e.data);if(t.type===`error`){this.errorHandler?.(t.message);return}this.eventHandler?.(t)},this.ws.onerror=e=>{console.error(`Websocket error:`,e),this.ws?.close(),this.retryConnect()},this.ws.onclose=()=>{console.log(`Websocket closed`),this.isOpen=!1,this.closeHandler?.(),this.retryConnect()},this.ws.onopen=()=>{this.retries=0,this.isOpen=!0,this.retryTimeout&&clearTimeout(this.retryTimeout),this.openHandler?.(),console.log(`Websocket connected`)}};destroy=()=>{this.isDestroyed=!0,this.ws?.close()};onOpen=e=>{this.openHandler=e,this.isOpen&&e()};onClose=e=>{this.closeHandler=e,this.isOpen||e()};onError=e=>{this.errorHandler=e};onEvent=e=>{this.eventHandler=e};send=e=>{this.ws?.send(JSON.stringify(e))};isReady=()=>this.isOpen;retryConnect=()=>{this.isDestroyed||(!this.isOpen&&this.retries<this.maxRetries?(this.retries++,this.init(),this.retryTimeout=setTimeout(this.retryConnect,this.retryDelay)):(this.errorHandler?.(`WebSocket Error, please reload the browser`),this.closeHandler?.()))}}(()=>`${location.protocol===`https:`?`wss:`:`ws:`}//${location.host}/ws`),Me=u(`<div class="flex h-full flex-col"><div class="h-full w-full"></div></div>`);function Ne(e,t){m(t,!0);let n=P(null),r=null,a=!1,c;ne(async()=>{if(!c)return;J();let e=await H(()=>import(`../chunks/CUZn05nQ.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url);a||(ve(e),x(n,e.editor.create(c,{value:t.schema??``,language:`typescript`,theme:`bosun-dark`,readOnly:!0,lineNumbers:`off`,automaticLayout:!0,minimap:{enabled:!1},matchBrackets:`never`,bracketPairColorization:{enabled:!1},guides:{highlightActiveBracketPair:!1,bracketPairs:!1,bracketPairsHorizontal:!1},occurrencesHighlight:`off`,selectionHighlight:!1,unicodeHighlight:{ambiguousCharacters:!1,nonBasicASCII:!1,invisibleCharacters:!1,includeStrings:!1,includeComments:!1},autoClosingQuotes:`never`}),!0),r=s(n).getModel())}),j(()=>{a=!0;let e=r;r=null;try{if(s(n)){try{s(n).setModel(null)}catch{}s(n).dispose()}}finally{x(n,null)}try{e?.dispose()}catch{}}),L(()=>{if(!s(n))return;let e=t.schema??``;s(n).getValue()!==e&&s(n).setValue(e)}),se(e,{get class(){return`overflow-hidden ${t.class??``}`},children:(e,t)=>{var n=Me(),r=D(n);A(r,e=>c=e,()=>c),h(n),o(e,n)},$$slots:{default:!0}}),i()}function Pe(e,t){return e.languages.registerCompletionItemProvider(`markdown`,{triggerCharacters:[` `,`.`],provideCompletionItems:(n,r)=>{let i=n.getValueInRange({startLineNumber:r.lineNumber,startColumn:1,endLineNumber:r.lineNumber,endColumn:r.column}),a=i.match(/\{%\s*(if|elif|for)\s+([^%]*)$/),o=i.match(/\{\{\s*([^}]*)$/);if(a||o){let n=``;a?n=a[2].trim():o&&(n=o[1].trim());let{keys:i,lastPartLength:s}=Fe(t,n);return{suggestions:i.map(t=>({label:t,kind:e.languages.CompletionItemKind.Variable,insertText:t,range:{startLineNumber:r.lineNumber,endLineNumber:r.lineNumber,startColumn:r.column-s,endColumn:r.column}}))}}let s=i.match(/\{%\s*([^%]*)$/);if(s){let t=s[1].trim();return{suggestions:Y([`if`,`elif`,`else`,`endif`,`for`,`endfor`],t).map((n,i)=>({label:n,kind:e.languages.CompletionItemKind.Keyword,insertText:n,sortText:String(i).padStart(2,`0`),range:{startLineNumber:r.lineNumber,endLineNumber:r.lineNumber,startColumn:r.column-t.length,endColumn:r.column}}))}}return{suggestions:[]}}})}function Fe(e,t){let n=e,r=[],i=0;if(t===``)r=Object.keys(e??{}),i=0;else if(t.includes(`.`)){let e=t.split(`.`),a=e.pop()||``;i=a.length;for(let t of e)if(n&&typeof n==`object`&&t in n)n=n[t];else{n=null;break}n&&typeof n==`object`&&(r=Y(Object.keys(n),a))}else i=t.length,r=Y(Object.keys(e??{}),t);return{keys:r,lastPartLength:i}}function Y(e,t){return t?e.map((e,n)=>({value:e,index:n,match:Ie(e,t)})).filter(e=>e.match!==null).sort((e,t)=>e.match.kindRank===t.match.kindRank?e.match.span===t.match.span?e.match.gapCount===t.match.gapCount?e.match.start===t.match.start?e.index-t.index:e.match.start-t.match.start:e.match.gapCount-t.match.gapCount:e.match.span-t.match.span:e.match.kindRank-t.match.kindRank).map(e=>e.value):e}function Ie(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(!r)return null;if(n.startsWith(r))return{kindRank:0,start:0,span:r.length,gapCount:0};let i=n.indexOf(r);if(i!==-1)return{kindRank:Be(e,i,r.length),start:i,span:r.length,gapCount:0};let a=Le(n,r);return a?{kindRank:4,start:a.start,span:a.span,gapCount:a.gapCount}:null}function Le(e,t){if(!e||!t)return null;let n=null,r=0;for(;r<e.length;){let i=r,a=0;for(;i<e.length&&a<t.length;)e[i]===t[a]&&(a+=1),i+=1;if(a!==t.length)break;let o=Array(t.length),s=i-1;for(let r=t.length-1;r>=0;r--){for(;s>=0&&e[s]!==t[r];)--s;if(s<0)return n;o[r]=s,--s}let c=0;for(let e=1;e<o.length;e++)c+=o[e]-o[e-1]-1;let l={start:o[0],span:o[o.length-1]-o[0]+1,gapCount:c};(!n||l.span<n.span||l.span===n.span&&l.gapCount<n.gapCount||l.span===n.span&&l.gapCount===n.gapCount&&l.start<n.start)&&(n=l),r=o[0]+1}return n}function Re(e,t){return t<=0||/[\s._-]/.test(e[t-1]??``)}function ze(e,t){return t>=e.length||/[\s._-]/.test(e[t]??``)}function Be(e,t,n){let r=Re(e,t),i=ze(e,t+n);return r&&i?1:r?2:3}var Ve=/^(#{1,6})\s/,He=/^\s*\{%\s*(if|elif|elseif|else|endif|for|endfor)\b/,Ue={provideFoldingRanges(e){return Ge(e)}},We={provideFoldingRanges(e){return Ke(e)}};function Ge(e){let t=[],n=e.getLineCount(),r=[];for(let t=1;t<=n;t++){let n=Ve.exec(e.getLineContent(t));n&&r.push({line:t,level:n[1].length})}for(let i=0;i<r.length;i++){let{line:a,level:o}=r[i],s=n;for(let e=i+1;e<r.length;e++)if(r[e].level<=o){s=r[e].line-1;break}s=Ye(e,a,s),s>a&&t.push({start:a,end:s})}return t}function Ke(e){let t=[],n=[],r=e.getLineCount();for(let i=1;i<=r;i++){let r=He.exec(e.getLineContent(i));if(!r)continue;let a=r[1];if(a===`if`){n.push({kind:`if`,branchStarts:[i],startLine:i});continue}if(a===`for`){n.push({kind:`for`,branchStarts:[i],startLine:i});continue}if(a===`elif`||a===`elseif`||a===`else`){let r=qe(n,`if`);if(!r)continue;X(t,e,r.branchStarts.at(-1)??r.startLine,i-1),r.branchStarts.push(i);continue}if(a===`endif`){let r=Je(n,`if`);if(!r)continue;X(t,e,r.branchStarts.at(-1)??r.startLine,i-1);continue}if(a===`endfor`){let r=Je(n,`for`);if(!r)continue;X(t,e,r.startLine,i-1)}}for(let i of n)X(t,e,i.kind===`if`?i.branchStarts.at(-1)??i.startLine:i.startLine,r);return t}function qe(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].kind===t)return e[n];return null}function Je(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].kind===t)return e.splice(n,1)[0];return null}function X(e,t,n,r){let i=Ye(t,n,r);i>n&&e.push({start:n,end:i})}function Ye(e,t,n){let r=n;for(;r>t&&e.getLineContent(r).trim()===``;)--r;return r}var Z=/\{%[-\s]*(if|elif|elseif|else|endif|for|endfor)\b/,Xe={provideDocumentHighlights(e,t){let n=Qe(e),r=t.lineNumber,i=t.column;for(let e of n)for(let t of e)if(t.line===r&&i>=t.startColumn&&i<=t.endColumn)return e.map(e=>({range:{startLineNumber:e.line,startColumn:e.startColumn,endLineNumber:e.line,endColumn:e.endColumn},kind:1}));return[]}};function Ze(e,t){let n=e.getLineContent(t),r=Z.exec(n);if(!r)return null;let i=r[1],a=r.index+r[0].length-i.length;return{line:t,startColumn:a+1,endColumn:a+i.length+1,keyword:i}}function Qe(e){let t=[],n=e.getLineCount(),r=[];for(let i=1;i<=n;i++){let n=Ze(e,i);if(!n)continue;let a=n.keyword;if(a===`if`){r.push({kind:`if`,tags:[n]});continue}if(a===`for`){r.push({kind:`for`,tags:[n]});continue}if(a===`elif`||a===`elseif`||a===`else`){let e=$e(r,`if`);e&&e.tags.push(n);continue}if(a===`endif`){let e=et(r,`if`);e&&(e.tags.push(n),t.push(e.tags));continue}if(a===`endfor`){let e=et(r,`for`);e&&(e.tags.push(n),t.push(e.tags))}}return t}function $e(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].kind===t)return e[n];return null}function et(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].kind===t)return e.splice(n,1)[0];return null}var tt=e(t(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r():typeof define==`function`&&define.amd?define([],r):typeof e==`object`?e.nunjucks=r():n.nunjucks=r()})(typeof self<`u`?self:e,function(){return(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=11)})([(function(e,t,n){var r=Array.prototype,i=Object.prototype,a={"&":`&amp;`,'"':`&quot;`,"'":`&#39;`,"<":`&lt;`,">":`&gt;`,"\\":`&#92;`},o=/[&"'<>\\]/g,t=e.exports={};function s(e,t){return i.hasOwnProperty.call(e,t)}t.hasOwnProp=s;function c(e){return a[e]}function l(e,n,r){if(r.Update||(r=new t.TemplateError(r)),r.Update(e),!n){var i=r;r=Error(i.message),r.name=i.name}return r}t._prettifyError=l;function u(e,t,n){var r,i;e instanceof Error&&(i=e,e=i.name+`: `+i.message),Object.setPrototypeOf?(r=Error(e),Object.setPrototypeOf(r,u.prototype)):(r=this,Object.defineProperty(r,"message",{enumerable:!1,writable:!0,value:e})),Object.defineProperty(r,"name",{value:`Template render error`}),Error.captureStackTrace&&Error.captureStackTrace(r,this.constructor);var a;if(i){var o=Object.getOwnPropertyDescriptor(i,`stack`);a=o&&(o.get||function(){return o.value}),a||=function(){return i.stack}}else{var s=Error(e).stack;a=function(){return s}}return Object.defineProperty(r,"stack",{get:function(){return a.call(r)}}),Object.defineProperty(r,"cause",{value:i}),r.lineno=t,r.colno=n,r.firstUpdate=!0,r.Update=function(e){var t=`(`+(e||`unknown path`)+`)`;return this.firstUpdate&&(this.lineno&&this.colno?t+=` [Line `+this.lineno+`, Column `+this.colno+`]`:this.lineno&&(t+=` [Line `+this.lineno+`]`)),t+=`
2
+ import{r as e,t}from"../chunks/hePW80VL.js";import{A as n,B as r,Dt as i,E as a,F as o,G as s,I as c,J as l,L as u,N as d,Nt as f,O as p,Ot as m,Pt as h,V as g,a as _,at as v,c as y,d as b,dt as x,et as S,f as C,gt as w,h as T,ht as E,it as D,j as O,k,l as A,m as ee,n as j,o as M,ot as N,p as te,pt as P,q as F,r as ne,st as I,tt as L,u as re,vt as R,x as z,z as B}from"../chunks/CPCsWwEy.js";import{n as ie,t as V}from"../chunks/Bmkwccsg.js";import{t as H}from"../chunks/HclGiUj8.js";import"../chunks/xihTtKlq.js";import{t as ae}from"../chunks/DDZ8GqHh.js";import{t as U}from"../chunks/BFUe72xu.js";import"../chunks/CZcJNBdK.js";import{n as oe,r as se,t as W}from"../chunks/oarl--hZ.js";import{t as G}from"../chunks/6OCsQ6r7.js";import"../chunks/Cf3l6QEG.js";import{n as ce,t as le}from"../chunks/BJqZY8o2.js";import{t as ue}from"../chunks/BP0Xadq7.js";import"../chunks/CfzHeBbL.js";import{i as de,n as fe,r as K,t as pe}from"../chunks/BT98u4gR.js";import{t as q}from"../chunks/DWoqp3ac.js";import{a as me,c as he,i as ge,n as _e,o as ve,s as J,t as ye}from"../chunks/12bfCwgn.js";import{t as be}from"../chunks/B9YnyJ2j.js";import{t as xe}from"../chunks/D_MTg6YY.js";import{a as Se,n as Ce,r as we,t as Te}from"../chunks/By9tvIIw.js";import{n as Ee,t as De}from"../chunks/BOHUKGg_.js";var Oe=new Set([`$$slots`,`$$events`,`$$legacy`,`class`,`value`,`variant`,`el`]),ke=u(`<textarea></textarea>`);function Ae(e,t){m(t,!0);let n=_(t,`class`,3,``),r=_(t,`value`,15,``),a=_(t,`variant`,3,`config`),c=_(t,`el`,15),l=M(t,Oe),u=w(()=>a()===`chat`?`textarea-chat ${n()}`:`textarea-config ${n()}`);var d=ke();R(d),C(d,()=>({class:s(u),...l}),void 0,void 0,void 0,`svelte-1ilrf3m`),A(d,e=>c(e),()=>c()),b(d,r),o(e,d),i()}var je=new class{resolveUrl;ws=null;openHandler=null;closeHandler=null;errorHandler=null;eventHandler=null;retries=0;maxRetries=5;retryDelay=500;retryTimeout=null;isOpen=!1;isDestroyed=!1;constructor(e){this.resolveUrl=e}init=()=>{if(this.isOpen)return;let e=this.resolveUrl();console.log(`Initializing websocket connection with [${e}]`);try{this.ws=new WebSocket(e)}catch{this.retryConnect();return}this.isDestroyed=!1,this.ws.onmessage=e=>{let t=JSON.parse(e.data);if(t.type===`error`){this.errorHandler?.(t.message);return}this.eventHandler?.(t)},this.ws.onerror=e=>{console.error(`Websocket error:`,e),this.ws?.close(),this.retryConnect()},this.ws.onclose=()=>{console.log(`Websocket closed`),this.isOpen=!1,this.closeHandler?.(),this.retryConnect()},this.ws.onopen=()=>{this.retries=0,this.isOpen=!0,this.retryTimeout&&clearTimeout(this.retryTimeout),this.openHandler?.(),console.log(`Websocket connected`)}};destroy=()=>{this.isDestroyed=!0,this.ws?.close()};onOpen=e=>{this.openHandler=e,this.isOpen&&e()};onClose=e=>{this.closeHandler=e,this.isOpen||e()};onError=e=>{this.errorHandler=e};onEvent=e=>{this.eventHandler=e};send=e=>{this.ws?.send(JSON.stringify(e))};isReady=()=>this.isOpen;retryConnect=()=>{this.isDestroyed||(!this.isOpen&&this.retries<this.maxRetries?(this.retries++,this.init(),this.retryTimeout=setTimeout(this.retryConnect,this.retryDelay)):(this.errorHandler?.(`WebSocket Error, please reload the browser`),this.closeHandler?.()))}}(()=>`${location.protocol===`https:`?`wss:`:`ws:`}//${location.host}/ws`),Me=u(`<div class="flex h-full flex-col"><div class="h-full w-full"></div></div>`);function Ne(e,t){m(t,!0);let n=P(null),r=null,a=!1,c;ne(async()=>{if(!c)return;J();let e=await H(()=>import(`../chunks/CUZn05nQ.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url);a||(ve(e),x(n,e.editor.create(c,{value:t.schema??``,language:`typescript`,theme:`bosun-dark`,readOnly:!0,lineNumbers:`off`,automaticLayout:!0,minimap:{enabled:!1},matchBrackets:`never`,bracketPairColorization:{enabled:!1},guides:{highlightActiveBracketPair:!1,bracketPairs:!1,bracketPairsHorizontal:!1},occurrencesHighlight:`off`,selectionHighlight:!1,unicodeHighlight:{ambiguousCharacters:!1,nonBasicASCII:!1,invisibleCharacters:!1,includeStrings:!1,includeComments:!1},autoClosingQuotes:`never`}),!0),r=s(n).getModel())}),j(()=>{a=!0;let e=r;r=null;try{if(s(n)){try{s(n).setModel(null)}catch{}s(n).dispose()}}finally{x(n,null)}try{e?.dispose()}catch{}}),L(()=>{if(!s(n))return;let e=t.schema??``;s(n).getValue()!==e&&s(n).setValue(e)}),se(e,{get class(){return`overflow-hidden ${t.class??``}`},children:(e,t)=>{var n=Me(),r=D(n);A(r,e=>c=e,()=>c),h(n),o(e,n)},$$slots:{default:!0}}),i()}function Pe(e,t){return e.languages.registerCompletionItemProvider(`markdown`,{triggerCharacters:[` `,`.`],provideCompletionItems:(n,r)=>{let i=n.getValueInRange({startLineNumber:r.lineNumber,startColumn:1,endLineNumber:r.lineNumber,endColumn:r.column}),a=i.match(/\{%\s*(if|elif|for)\s+([^%]*)$/),o=i.match(/\{\{\s*([^}]*)$/);if(a||o){let n=``;a?n=a[2].trim():o&&(n=o[1].trim());let{keys:i,lastPartLength:s}=Fe(t,n);return{suggestions:i.map(t=>({label:t,kind:e.languages.CompletionItemKind.Variable,insertText:t,range:{startLineNumber:r.lineNumber,endLineNumber:r.lineNumber,startColumn:r.column-s,endColumn:r.column}}))}}let s=i.match(/\{%\s*([^%]*)$/);if(s){let t=s[1].trim();return{suggestions:Y([`if`,`elif`,`else`,`endif`,`for`,`endfor`],t).map((n,i)=>({label:n,kind:e.languages.CompletionItemKind.Keyword,insertText:n,sortText:String(i).padStart(2,`0`),range:{startLineNumber:r.lineNumber,endLineNumber:r.lineNumber,startColumn:r.column-t.length,endColumn:r.column}}))}}return{suggestions:[]}}})}function Fe(e,t){let n=e,r=[],i=0;if(t===``)r=Object.keys(e??{}),i=0;else if(t.includes(`.`)){let e=t.split(`.`),a=e.pop()||``;i=a.length;for(let t of e)if(n&&typeof n==`object`&&t in n)n=n[t];else{n=null;break}n&&typeof n==`object`&&(r=Y(Object.keys(n),a))}else i=t.length,r=Y(Object.keys(e??{}),t);return{keys:r,lastPartLength:i}}function Y(e,t){return t?e.map((e,n)=>({value:e,index:n,match:Ie(e,t)})).filter(e=>e.match!==null).sort((e,t)=>e.match.kindRank===t.match.kindRank?e.match.span===t.match.span?e.match.gapCount===t.match.gapCount?e.match.start===t.match.start?e.index-t.index:e.match.start-t.match.start:e.match.gapCount-t.match.gapCount:e.match.span-t.match.span:e.match.kindRank-t.match.kindRank).map(e=>e.value):e}function Ie(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(!r)return null;if(n.startsWith(r))return{kindRank:0,start:0,span:r.length,gapCount:0};let i=n.indexOf(r);if(i!==-1)return{kindRank:Be(e,i,r.length),start:i,span:r.length,gapCount:0};let a=Le(n,r);return a?{kindRank:4,start:a.start,span:a.span,gapCount:a.gapCount}:null}function Le(e,t){if(!e||!t)return null;let n=null,r=0;for(;r<e.length;){let i=r,a=0;for(;i<e.length&&a<t.length;)e[i]===t[a]&&(a+=1),i+=1;if(a!==t.length)break;let o=Array(t.length),s=i-1;for(let r=t.length-1;r>=0;r--){for(;s>=0&&e[s]!==t[r];)--s;if(s<0)return n;o[r]=s,--s}let c=0;for(let e=1;e<o.length;e++)c+=o[e]-o[e-1]-1;let l={start:o[0],span:o[o.length-1]-o[0]+1,gapCount:c};(!n||l.span<n.span||l.span===n.span&&l.gapCount<n.gapCount||l.span===n.span&&l.gapCount===n.gapCount&&l.start<n.start)&&(n=l),r=o[0]+1}return n}function Re(e,t){return t<=0||/[\s._-]/.test(e[t-1]??``)}function ze(e,t){return t>=e.length||/[\s._-]/.test(e[t]??``)}function Be(e,t,n){let r=Re(e,t),i=ze(e,t+n);return r&&i?1:r?2:3}var Ve=/^(#{1,6})\s/,He=/^\s*\{%\s*(if|elif|elseif|else|endif|for|endfor)\b/,Ue={provideFoldingRanges(e){return Ge(e)}},We={provideFoldingRanges(e){return Ke(e)}};function Ge(e){let t=[],n=e.getLineCount(),r=[];for(let t=1;t<=n;t++){let n=Ve.exec(e.getLineContent(t));n&&r.push({line:t,level:n[1].length})}for(let i=0;i<r.length;i++){let{line:a,level:o}=r[i],s=n;for(let e=i+1;e<r.length;e++)if(r[e].level<=o){s=r[e].line-1;break}s=Ye(e,a,s),s>a&&t.push({start:a,end:s})}return t}function Ke(e){let t=[],n=[],r=e.getLineCount();for(let i=1;i<=r;i++){let r=He.exec(e.getLineContent(i));if(!r)continue;let a=r[1];if(a===`if`){n.push({kind:`if`,branchStarts:[i],startLine:i});continue}if(a===`for`){n.push({kind:`for`,branchStarts:[i],startLine:i});continue}if(a===`elif`||a===`elseif`||a===`else`){let r=qe(n,`if`);if(!r)continue;X(t,e,r.branchStarts.at(-1)??r.startLine,i-1),r.branchStarts.push(i);continue}if(a===`endif`){let r=Je(n,`if`);if(!r)continue;X(t,e,r.branchStarts.at(-1)??r.startLine,i-1);continue}if(a===`endfor`){let r=Je(n,`for`);if(!r)continue;X(t,e,r.startLine,i-1)}}for(let i of n)X(t,e,i.kind===`if`?i.branchStarts.at(-1)??i.startLine:i.startLine,r);return t}function qe(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].kind===t)return e[n];return null}function Je(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].kind===t)return e.splice(n,1)[0];return null}function X(e,t,n,r){let i=Ye(t,n,r);i>n&&e.push({start:n,end:i})}function Ye(e,t,n){let r=n;for(;r>t&&e.getLineContent(r).trim()===``;)--r;return r}var Z=/\{%[-\s]*(if|elif|elseif|else|endif|for|endfor)\b/,Xe={provideDocumentHighlights(e,t){let n=Qe(e),r=t.lineNumber,i=t.column;for(let e of n)for(let t of e)if(t.line===r&&i>=t.startColumn&&i<=t.endColumn)return e.map(e=>({range:{startLineNumber:e.line,startColumn:e.startColumn,endLineNumber:e.line,endColumn:e.endColumn},kind:1}));return[]}};function Ze(e,t){let n=e.getLineContent(t),r=Z.exec(n);if(!r)return null;let i=r[1],a=r.index+r[0].length-i.length;return{line:t,startColumn:a+1,endColumn:a+i.length+1,keyword:i}}function Qe(e){let t=[],n=e.getLineCount(),r=[];for(let i=1;i<=n;i++){let n=Ze(e,i);if(!n)continue;let a=n.keyword;if(a===`if`){r.push({kind:`if`,tags:[n]});continue}if(a===`for`){r.push({kind:`for`,tags:[n]});continue}if(a===`elif`||a===`elseif`||a===`else`){let e=$e(r,`if`);e&&e.tags.push(n);continue}if(a===`endif`){let e=et(r,`if`);e&&(e.tags.push(n),t.push(e.tags));continue}if(a===`endfor`){let e=et(r,`for`);e&&(e.tags.push(n),t.push(e.tags))}}return t}function $e(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].kind===t)return e[n];return null}function et(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].kind===t)return e.splice(n,1)[0];return null}var tt=e(t(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r():typeof define==`function`&&define.amd?define([],r):typeof e==`object`?e.nunjucks=r():n.nunjucks=r()})(typeof self<`u`?self:e,function(){return(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=11)})([(function(e,t,n){var r=Array.prototype,i=Object.prototype,a={"&":`&amp;`,'"':`&quot;`,"'":`&#39;`,"<":`&lt;`,">":`&gt;`,"\\":`&#92;`},o=/[&"'<>\\]/g,t=e.exports={};function s(e,t){return i.hasOwnProperty.call(e,t)}t.hasOwnProp=s;function c(e){return a[e]}function l(e,n,r){if(r.Update||(r=new t.TemplateError(r)),r.Update(e),!n){var i=r;r=Error(i.message),r.name=i.name}return r}t._prettifyError=l;function u(e,t,n){var r,i;e instanceof Error&&(i=e,e=i.name+`: `+i.message),Object.setPrototypeOf?(r=Error(e),Object.setPrototypeOf(r,u.prototype)):(r=this,Object.defineProperty(r,"message",{enumerable:!1,writable:!0,value:e})),Object.defineProperty(r,"name",{value:`Template render error`}),Error.captureStackTrace&&Error.captureStackTrace(r,this.constructor);var a;if(i){var o=Object.getOwnPropertyDescriptor(i,`stack`);a=o&&(o.get||function(){return o.value}),a||=function(){return i.stack}}else{var s=Error(e).stack;a=function(){return s}}return Object.defineProperty(r,"stack",{get:function(){return a.call(r)}}),Object.defineProperty(r,"cause",{value:i}),r.lineno=t,r.colno=n,r.firstUpdate=!0,r.Update=function(e){var t=`(`+(e||`unknown path`)+`)`;return this.firstUpdate&&(this.lineno&&this.colno?t+=` [Line `+this.lineno+`, Column `+this.colno+`]`:this.lineno&&(t+=` [Line `+this.lineno+`]`)),t+=`
3
3
  `,this.firstUpdate&&(t+=` `),this.message=t+(this.message||``),this.firstUpdate=!1,this},r}Object.setPrototypeOf?Object.setPrototypeOf(u.prototype,Error.prototype):u.prototype=Object.create(Error.prototype,{constructor:{value:u}}),t.TemplateError=u;function d(e){return e.replace(o,c)}t.escape=d;function f(e){return i.toString.call(e)===`[object Function]`}t.isFunction=f;function p(e){return i.toString.call(e)===`[object Array]`}t.isArray=p;function m(e){return i.toString.call(e)===`[object String]`}t.isString=m;function h(e){return i.toString.call(e)===`[object Object]`}t.isObject=h;function g(e){return e?typeof e==`string`?e.split(`.`):[e]:[]}function _(e){var t=g(e);return function(e){for(var n=e,r=0;r<t.length;r++){var i=t[r];if(s(n,i))n=n[i];else return}return n}}t.getAttrGetter=_;function v(e,t,n){for(var r={},i=f(t)?t:_(t),a=0;a<e.length;a++){var o=e[a],s=i(o,a);if(s===void 0&&n===!0)throw TypeError(`groupby: attribute "`+t+`" resolved to undefined`);(r[s]||(r[s]=[])).push(o)}return r}t.groupBy=v;function y(e){return Array.prototype.slice.call(e)}t.toArray=y;function b(e){var t=[];if(!e)return t;for(var n=e.length,r=y(arguments).slice(1),i=-1;++i<n;)E(r,e[i])===-1&&t.push(e[i]);return t}t.without=b;function x(e,t){for(var n=``,r=0;r<t;r++)n+=e;return n}t.repeat=x;function S(e,t,n){if(e!=null){if(r.forEach&&e.forEach===r.forEach)e.forEach(t,n);else if(e.length===+e.length)for(var i=0,a=e.length;i<a;i++)t.call(n,e[i],i,e)}}t.each=S;function C(e,t){var n=[];if(e==null)return n;if(r.map&&e.map===r.map)return e.map(t);for(var i=0;i<e.length;i++)n[n.length]=t(e[i],i);return e.length===+e.length&&(n.length=e.length),n}t.map=C;function w(e,t,n){var r=-1;function i(){r++,r<e.length?t(e[r],r,i,n):n()}i()}t.asyncIter=w;function T(e,t,n){var r=D(e||{}),i=r.length,a=-1;function o(){a++;var s=r[a];a<i?t(s,e[s],a,i,o):n()}o()}t.asyncFor=T;function E(e,t,n){return Array.prototype.indexOf.call(e||[],t,n)}t.indexOf=E;function D(e){var t=[];for(var n in e)s(e,n)&&t.push(n);return t}t.keys=D;function O(e){return D(e).map(function(t){return[t,e[t]]})}t._entries=O;function k(e){return D(e).map(function(t){return e[t]})}t._values=k;function A(e,t){return e||={},D(t).forEach(function(n){e[n]=t[n]}),e}t._assign=t.extend=A;function ee(e,t){if(p(t)||m(t))return t.indexOf(e)!==-1;if(h(t))return e in t;throw Error(`Cannot use "in" operator to search for "`+e+`" in unexpected types.`)}t.inOperator=ee}),(function(e,t,n){function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,a(r.key),r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e){var t=o(e,`string`);return typeof t==`symbol`?t:String(t)}function o(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function s(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,c(e,t)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}var l=n(16),u=n(0);function d(e,t){return typeof e!=`function`||typeof t!=`function`?t:function(){var n=this.parent;this.parent=e;var r=t.apply(this,arguments);return this.parent=n,r}}function f(e,t,n){n||={},u.keys(n).forEach(function(t){n[t]=d(e.prototype[t],n[t])});var r=function(e){s(n,e);function n(){return e.apply(this,arguments)||this}return i(n,[{key:`typename`,get:function(){return t}}]),n}(e);return u._assign(r.prototype,n),r}e.exports={Obj:function(){function e(){this.init.apply(this,arguments)}var t=e.prototype;return t.init=function(){},e.extend=function(e,t){return typeof e==`object`&&(t=e,e=`anonymous`),f(this,e,t)},i(e,[{key:`typename`,get:function(){return this.constructor.name}}]),e}(),EmitterObj:function(e){s(t,e);function t(){var t,n=e.call(this)||this;return(t=n).init.apply(t,arguments),n}var n=t.prototype;return n.init=function(){},t.extend=function(e,t){return typeof e==`object`&&(t=e,e=`anonymous`),f(this,e,t)},i(t,[{key:`typename`,get:function(){return this.constructor.name}}]),t}(l)}}),(function(e,t,n){var r=n(0),i=Array.from,a=typeof Symbol==`function`&&Symbol.iterator&&typeof i==`function`,o=function(){function e(e,t){this.variables=Object.create(null),this.parent=e,this.topLevel=!1,this.isolateWrites=t}var t=e.prototype;return t.set=function(e,t,n){var r=e.split(`.`),i=this.variables,a=this;if(n&&(a=this.resolve(r[0],!0))){a.set(e,t);return}for(var o=0;o<r.length-1;o++){var s=r[o];i[s]||(i[s]={}),i=i[s]}i[r[r.length-1]]=t},t.get=function(e){var t=this.variables[e];return t===void 0?null:t},t.lookup=function(e){var t=this.parent,n=this.variables[e];return n===void 0?t&&t.lookup(e):n},t.resolve=function(e,t){var n=t&&this.isolateWrites?void 0:this.parent;return this.variables[e]===void 0?n&&n.resolve(e):this},t.push=function(t){return new e(this,t)},t.pop=function(){return this.parent},e}();function s(e,t,n){return function(){var r=[...arguments],i=d(r),a,o=u(r);if(i>e.length)a=r.slice(0,e.length),r.slice(a.length,i).forEach(function(e,n){n<t.length&&(o[t[n]]=e)}),a.push(o);else if(i<e.length){a=r.slice(0,i);for(var s=i;s<e.length;s++){var c=e[s];a.push(o[c]),delete o[c]}a.push(o)}else a=r;return n.apply(this,a)}}function c(e){return e.__keywords=!0,e}function l(e){return e&&Object.prototype.hasOwnProperty.call(e,`__keywords`)}function u(e){var t=e.length;if(t){var n=e[t-1];if(l(n))return n}return{}}function d(e){var t=e.length;if(t===0)return 0;var n=e[t-1];return l(n)?t-1:t}function f(e){if(typeof e!=`string`)return e;this.val=e,this.length=e.length}f.prototype=Object.create(String.prototype,{length:{writable:!0,configurable:!0,value:0}}),f.prototype.valueOf=function(){return this.val},f.prototype.toString=function(){return this.val};function p(e,t){return e instanceof f?new f(t):t.toString()}function m(e){var t=typeof e;return t===`string`?new f(e):t===`function`?function(t){var n=e.apply(this,arguments);return typeof n==`string`?new f(n):n}:e}function h(e,t){return e??=``,t&&!(e instanceof f)&&(e=r.escape(e.toString())),e}function g(e,t,n){if(e==null)throw new r.TemplateError(`attempted to output null or undefined value`,t+1,n+1);return e}function _(e,t){if(e!=null)return typeof e[t]==`function`?function(){var n=[...arguments];return e[t].apply(e,n)}:e[t]}function v(e,t,n,r){if(!e)throw Error("Unable to call `"+t+"`, which is undefined or falsey");if(typeof e!=`function`)throw Error("Unable to call `"+t+"`, which is not a function");return e.apply(n,r)}function y(e,t,n){var r=t.lookup(n);return r===void 0?e.lookup(n):r}function b(e,t,n){return e.lineno?e:new r.TemplateError(e,t,n)}function x(e,t,n,i){if(r.isArray(e)){var a=e.length;r.asyncIter(e,function(e,r,i){switch(t){case 1:n(e,r,a,i);break;case 2:n(e[0],e[1],r,a,i);break;case 3:n(e[0],e[1],e[2],r,a,i);break;default:e.push(r,a,i),n.apply(this,e)}},i)}else r.asyncFor(e,function(e,t,r,i,a){n(e,t,r,i,a)},i)}function S(e,t,n,i){var a=0,o,s;function c(e,t){a++,s[e]=t,a===o&&i(null,s.join(``))}if(r.isArray(e)){if(o=e.length,s=Array(o),o===0)i(null,``);else for(var l=0;l<e.length;l++){var u=e[l];switch(t){case 1:n(u,l,o,c);break;case 2:n(u[0],u[1],l,o,c);break;case 3:n(u[0],u[1],u[2],l,o,c);break;default:u.push(l,o,c),n.apply(this,u)}}}else{var d=r.keys(e||{});if(o=d.length,s=Array(o),o===0)i(null,``);else for(var f=0;f<d.length;f++){var p=d[f];n(p,e[p],f,o,c)}}}function C(e){return typeof e!=`object`||!e||r.isArray(e)?e:a&&Symbol.iterator in e?i(e):e}e.exports={Frame:o,makeMacro:s,makeKeywordArgs:c,numArgs:d,suppressValue:h,ensureDefined:g,memberLookup:_,contextOrFrameLookup:y,callWrap:v,handleError:b,isArray:r.isArray,keys:r.keys,SafeString:f,copySafeness:p,markSafe:m,asyncEach:x,asyncAll:S,inOperator:r.inOperator,fromIterator:C}}),(function(e,t,n){function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,a(r.key),r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e){var t=o(e,`string`);return typeof t==`symbol`?t:String(t)}function o(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function s(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,c(e,t)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}var l=n(1).Obj;function u(e,t,n){e instanceof t&&n.push(e),e instanceof d&&e.findAll(t,n)}var d=function(e){s(t,e);function t(){return e.apply(this,arguments)||this}var n=t.prototype;return n.init=function(e,t){var n=arguments,r=this;this.lineno=e,this.colno=t,this.fields.forEach(function(e,t){var i=n[t+2];i===void 0&&(i=null),r[e]=i})},n.findAll=function(e,t){var n=this;return t||=[],this instanceof p?this.children.forEach(function(n){return u(n,e,t)}):this.fields.forEach(function(r){return u(n[r],e,t)}),t},n.iterFields=function(e){var t=this;this.fields.forEach(function(n){e(t[n],n)})},t}(l),f=function(e){s(t,e);function t(){return e.apply(this,arguments)||this}return i(t,[{key:`typename`,get:function(){return`Value`}},{key:`fields`,get:function(){return[`value`]}}]),t}(d),p=function(e){s(t,e);function t(){return e.apply(this,arguments)||this}var n=t.prototype;return n.init=function(t,n,r){e.prototype.init.call(this,t,n,r||[])},n.addChild=function(e){this.children.push(e)},i(t,[{key:`typename`,get:function(){return`NodeList`}},{key:`fields`,get:function(){return[`children`]}}]),t}(d),m=p.extend(`Root`),h=f.extend(`Literal`),g=f.extend(`Symbol`),_=p.extend(`Group`),v=p.extend(`Array`),y=d.extend(`Pair`,{fields:[`key`,`value`]}),b=p.extend(`Dict`),x=d.extend(`LookupVal`,{fields:[`target`,`val`]}),S=d.extend(`If`,{fields:[`cond`,`body`,`else_`]}),C=S.extend(`IfAsync`),w=d.extend(`InlineIf`,{fields:[`cond`,`body`,`else_`]}),T=d.extend(`For`,{fields:[`arr`,`name`,`body`,`else_`]}),E=T.extend(`AsyncEach`),D=T.extend(`AsyncAll`),O=d.extend(`Macro`,{fields:[`name`,`args`,`body`]}),k=O.extend(`Caller`),A=d.extend(`Import`,{fields:[`template`,`target`,`withContext`]}),ee=function(e){s(t,e);function t(){return e.apply(this,arguments)||this}var n=t.prototype;return n.init=function(t,n,r,i,a){e.prototype.init.call(this,t,n,r,i||new p,a)},i(t,[{key:`typename`,get:function(){return`FromImport`}},{key:`fields`,get:function(){return[`template`,`names`,`withContext`]}}]),t}(d),j=d.extend(`FunCall`,{fields:[`name`,`args`]}),M=j.extend(`Filter`),N=M.extend(`FilterAsync`,{fields:[`name`,`args`,`symbol`]}),te=b.extend(`KeywordArgs`),P=d.extend(`Block`,{fields:[`name`,`body`]}),F=d.extend(`Super`,{fields:[`blockName`,`symbol`]}),ne=d.extend(`TemplateRef`,{fields:[`template`]}).extend(`Extends`),I=d.extend(`Include`,{fields:[`template`,`ignoreMissing`]}),L=d.extend(`Set`,{fields:[`targets`,`value`]}),re=d.extend(`Switch`,{fields:[`expr`,`cases`,`default`]}),R=d.extend(`Case`,{fields:[`cond`,`body`]}),z=p.extend(`Output`),B=d.extend(`Capture`,{fields:[`body`]}),ie=h.extend(`TemplateData`),V=d.extend(`UnaryOp`,{fields:[`target`]}),H=d.extend(`BinOp`,{fields:[`left`,`right`]}),ae=H.extend(`In`),U=H.extend(`Is`),oe=H.extend(`Or`),se=H.extend(`And`),W=V.extend(`Not`),G=H.extend(`Add`),ce=H.extend(`Concat`),le=H.extend(`Sub`),ue=H.extend(`Mul`),de=H.extend(`Div`),fe=H.extend(`FloorDiv`),K=H.extend(`Mod`),pe=H.extend(`Pow`),q=V.extend(`Neg`),me=V.extend(`Pos`),he=d.extend(`Compare`,{fields:[`expr`,`ops`]}),ge=d.extend(`CompareOperand`,{fields:[`expr`,`type`]}),_e=d.extend(`CallExtension`,{init:function(e,t,n,r){this.parent(),this.extName=e.__name||e,this.prop=t,this.args=n||new p,this.contentArgs=r||[],this.autoescape=e.autoescape},fields:[`extName`,`prop`,`args`,`contentArgs`]}),ve=_e.extend(`CallExtensionAsync`);function J(e,t,n){var r=e.split(`
4
4
  `);r.forEach(function(e,i){e&&(n&&i>0||!n)&&process.stdout.write(` `.repeat(t));var a=i===r.length-1?``:`
5
5
  `;process.stdout.write(``+e+a)})}function ye(e,t){if(t||=0,J(e.typename+`: `,t),e instanceof p)J(`
@@ -1 +1 @@
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/jbAfpNOj.js";import"../chunks/xihTtKlq.js";import{t as ae}from"../chunks/DDZ8GqHh.js";import{t as N}from"../chunks/BOZLjogl.js";import"../chunks/vxN0p6wG.js";import{t as P}from"../chunks/6OCsQ6r7.js";import{t as F}from"../chunks/Cf3l6QEG.js";import{n as oe,t as se}from"../chunks/BJqZY8o2.js";import{t as I}from"../chunks/BP0Xadq7.js";import{t as ce}from"../chunks/DWoqp3ac.js";import{t as le}from"../chunks/D_MTg6YY.js";import{t as ue}from"../chunks/D3fLfD-Y.js";import{t as de}from"../chunks/UZ6smZpJ.js";import{a as fe,c as pe,i as me,n as he,o as ge,r as _e,s as ve,t as ye}from"../chunks/CCtAgMW8.js";var L=o(`<p class="text-sm text-rc-gray-200">There are no more analytics fields to filter.</p>`),be=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"><input type="checkbox" class="h-4 w-4 rounded border-rc-gray-500 bg-rc-gray-800 text-rc-green-200 focus:ring-1 focus:ring-rc-green-200/40 focus:ring-offset-0"/> <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 F(e){return i(m).some(t=>N(t,e))}function oe(e){_(m,F(e)?i(m).filter(t=>!N(t,e)):[...i(m),e],!0)}function se(e){return typeof e==`boolean`?e?`Yes`:`No`:String(e)}function ce(){let e=i(O);!e||!i(M)||(n.onAdd({key:e.key,type:e.type,values:i(re)?[i(ie)]:i(m)}),o(!1))}I(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=L();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=be(),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`);ue(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)&&ce()},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)},[()=>F(i(t).value),()=>se(i(t).value)]),f(`change`,a,()=>oe(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:ce,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 ve,ee=E(k([])),ne=E(void 0),A=E(null),I=y(()=>(N.url.searchParams.get(`agent`)??``).trim()),L=E(``),be=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),q=E(null),Re=E(!1),J=0,Y=0,ze=y(()=>i(Le).filter(e=>!i(G).some(t=>t.key===e.key))),Be=E(null),Ve=y(()=>JSON.stringify([i(I),i(W),i(G)])),X=y(()=>i(Be)===i(Ve)?i(ne):void 0),He=y(()=>i(X)?.items.length??0),Ue=h(o,`useMock`,3,!1),{onError:We}=ae();function Ge(e){return new Date(e).toLocaleString()}function Ke(e){return new Date(e).toLocaleTimeString()}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(){J+=1,Y+=1,_(A,null),_(ne,void 0),_(Be,null),_(Le,[],!0),_(G,[],!0),_(B,[],!0),_(V,null),_(H,!0),_(K,!0),_(q,null),_(Re,!1)}function Ye(e=i(I)){let t=new URLSearchParams;e&&t.set(`agent`,e),i(W)&&t.set(ye,i(W));let n=t.toString();return n?`?${n}`:``}function Z(e=i(I)){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(I)){return`${i(gt)}/conversations/${encodeURIComponent(e)}/${t}${Ye(n)}`}async function Qe(e,t=i(be),n,r,a=i(G)){return Ue()?de.fetchConversations(t,e,n??void 0):b.getConversations({phoneNumber:e,agentId:r,analyticsFilters:a,limit:Number(t),lastConversationId:n??void 0})}async function Q(){_(B,[],!0),_(V,null),await nt()}async function $e(){_(Ne,!0),_(Pe,null);try{if(_(U,await pe(),!0),!i(U).length)throw Error(`No sources returned`);let e=_e(N.url),t=fe(i(U),e,he());if(!t)throw Error(`No sources returned`);if(_(W,t,!0),me(t),b.setSourceId(t),e!==t){let e=ge(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),me(t),b.setSourceId(t),Je(),await M(Z()),await Promise.all([rt(),Q()])}async function tt(){try{_(ee,await ce.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),We(`Failed to load agents: ${t}`)}}async function nt(){let e=++J,t=i(G).map(e=>({...e,values:[...e.values]})),n=i(I),r=JSON.stringify([n,i(W),t]);_(H,!0),_(xe,null);try{let a=await Qe(i(L)||void 0,i(be),i(V)??void 0,n||void 0,t);if(e!==J||r!==i(Ve))return;let o=Array.isArray(a.items)?a.items.slice():[];_(ne,{limit:a.limit,items:o,lastConversationId:a.lastConversationId},!0),_(Be,r,!0),_(V,a.lastConversationId??null,!0)}catch(t){if(e!==J||r!==i(Ve))return;_(xe,`Conversations could not be loaded for this selection.`),We(i(xe)),console.error(`Load page error:`,t)}finally{e===J&&_(H,!1)}}async function rt(){let e=++Y;if(_(K,!0),_(q,null),_(Le,[],!0),Ue()){_(K,!1);return}if(!i(I)){_(q,`Select an agent to add filters.`),_(K,!1);return}try{let t=await b.getAnalyticsFields(i(I));if(e!==Y)return;_(Le,t.items,!0)}catch(t){if(e!==Y)return;_(q,`Filters are unavailable for this selection.`),console.error(`Failed to load analytics fields:`,t)}finally{e===Y&&_(K,!1)}}function it(e){_(G,[...i(G),e],!0),Q()}function at(e){_(G,i(G).filter(t=>t.key!==e),!0),Q()}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(X)?.lastConversationId&&(i(B).push(i(X).lastConversationId),_(V,i(X).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(X)?.items&&i(X).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(Z());return}_(A,e,!0),await M(Ze(e.conversationId))}function ft(e){let t=e.target.value;_(R,t,!0),_(be,parseInt(i(R),10)||20,!0)}async function pt(){await Q()}async function mt(e){e?.preventDefault(),e?.stopPropagation(),_(L,``),_(B,[],!0),_(V,null),await Q()}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(I)?M(`/edit/${encodeURIComponent(i(I))}/roleplay`):M(`/edit`);if(e===`view`)return M(Z());M(`/`+e)}}async function vt(e,t){t?.stopPropagation(),e!==i(I)&&(Je(),await M(Z(e)))}async function yt(e){e?.stopPropagation(),i(I)&&(Je(),await M(Z(``)))}te(()=>{let e=i(I);i(Fe)&&e!==i(Ie)&&(_(Ie,e,!0),Je(),Promise.all([rt(),Q()]))}),D(()=>{(async()=>{await Promise.all([tt(),$e()]),await Promise.all([rt(),Q()]),_(Ie,i(I),!0),_(Fe,!0)})()});var bt=Me();re(`1uk1thp`,e=>{p(()=>{O.title=`Bosun: Telescope`})});var xt=g(bt),St=x(xt);le(St,{get agents(){return i(ee)},get currentAgent(){return i(I)},onAgentClick:vt,showAllAgentsOption:!0,onAllAgentsClick:yt,className:`flex-none`});var Ct=T(St,2),wt=x(Ct),Tt=x(wt),Et=x(Tt);oe(Et,{get value(){return i(ht)},ariaLabel:`Top tabs`,onChange:_t,children:(e,t)=>{var n=Ce(),i=g(n);se(i,{value:`edit`,children:(e,t)=>{c();var n=j(`Edit`);r(e,n)},$$slots:{default:!0}});var a=T(i,2);se(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),$=x(At),jt=x($),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($);var Pt=T($,2),Ft=x(Pt);ue(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(L)},set value(e){_(L,e,!0)}});var It=T(Ft),Lt=e=>{var t=Te(),n=x(t);F(n,{name:`close`,width:18,height:18}),d(t),f(`click`,t,mt),r(e,t)};S(It,e=>{i(L)&&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);F(l,{name:`close`,width:16,height:16,class:`relative top-px`}),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),Vt=e=>{P(e,{variant:`secondary`,title:`Add analytics filter`,onclick:()=>_(Re,!0),children:(e,t)=>{c();var n=j(`Add filter`);r(e,n)},$$slots:{default:!0}})};S(Bt,e=>{!i(K)&&!i(q)&&i(ze).length>0&&e(Vt)}),d(At),d(kt),d(Ot);var Ht=T(Ot,2),Ut=T(x(Ht),2);P(Ut,{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(Ht);var Wt=T(Ht,2),Gt=T(x(Wt),2),Kt=x(Gt);Kt.value=Kt.__value=`5`;var qt=T(Kt);qt.value=qt.__value=`10`;var Jt=T(qt);Jt.value=Jt.__value=`20`;var Yt=T(Jt);Yt.value=Yt.__value=`50`,d(Gt),d(Wt);var Xt=T(Wt,2),Zt=x(Xt),Qt=x(Zt);{let e=y(()=>i(B).length===0&&!i(V));P(Qt,{onclick:lt,get disabled(){return i(e)},children:(e,t)=>{c();var n=j(`Prev`);r(e,n)},$$slots:{default:!0}})}var $t=T(Qt,2);{let e=y(()=>!i(X)?.items.length);P($t,{onclick:ct,get disabled(){return i(e)},children:(e,t)=>{c();var n=j(`Next`);r(e,n)},$$slots:{default:!0}})}var en=T($t,2),tn=x(en);d(en),d(Zt),d(Xt);var nn=T(Xt,2),rn=T(x(nn),2),an=x(rn,!0);d(rn),d(nn),d(Dt),d(wt);var on=T(wt,2),sn=x(on),cn=T(x(sn),2),ln=x(cn),un=e=>{var t=De();r(e,t)},dn=e=>{var t=Oe();r(e,t)},fn=e=>{var t=je();l(t,21,()=>i(X).items,C,(e,t)=>{var n=Ae(),a=x(n),o=x(a),c=x(o),l=x(c);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(I)&&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,a)=>{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??``} – ${r??``}`),s(m,i(t).medium),s(_,i(t).phoneNumber),s(ee,i(t).conversationId),s(k,`Duration: ${a??``}`)},[()=>Ge(i(t).createdAt-(i(t).duration??0)*1e3),()=>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(ln,e=>{i(H)?e(un):i(X)?.items?.length?e(fn,-1):e(dn,1)}),d(cn),d(sn);var pn=T(sn,2),mn=x(pn);n(mn,()=>o.children),d(pn),d(on),d(Ct),d(xt),Se(T(xt,2),{get fields(){return i(ze)},onAdd:it,get open(){return i(Re)},set open(e){_(Re,e,!0)}}),v(()=>{$.disabled=i(Ne)||!i(U).length,w($,`title`,i(Pe)??`Telescope source`),s(tn,`Items: ${i(He)??``}`),s(an,Ue()?`Mock (local)`:`Live`)}),f(`change`,$,et),m($,()=>i(W),e=>_(W,e)),f(`change`,Gt,ft),m(Gt,()=>i(R),e=>_(R,e)),f(`click`,pn,e=>e.stopPropagation()),r(e,bt),t()}e([`change`,`click`]);export{U as component};
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/Bmkwccsg.js";import"../chunks/xihTtKlq.js";import{t as ae}from"../chunks/DDZ8GqHh.js";import{t as N}from"../chunks/BFUe72xu.js";import"../chunks/CZcJNBdK.js";import{t as P}from"../chunks/6OCsQ6r7.js";import{t as F}from"../chunks/Cf3l6QEG.js";import{n as oe,t as se}from"../chunks/BJqZY8o2.js";import{t as I}from"../chunks/BP0Xadq7.js";import{t as ce}from"../chunks/DWoqp3ac.js";import{t as le}from"../chunks/D_MTg6YY.js";import{t as ue}from"../chunks/D3fLfD-Y.js";import{t as de}from"../chunks/UZ6smZpJ.js";import{a as fe,c as pe,i as me,n as he,o as ge,r as _e,s as ve,t as ye}from"../chunks/CCtAgMW8.js";var L=o(`<p class="text-sm text-rc-gray-200">There are no more analytics fields to filter.</p>`),be=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"><input type="checkbox" class="h-4 w-4 rounded border-rc-gray-500 bg-rc-gray-800 text-rc-green-200 focus:ring-1 focus:ring-rc-green-200/40 focus:ring-offset-0"/> <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 F(e){return i(m).some(t=>N(t,e))}function oe(e){_(m,F(e)?i(m).filter(t=>!N(t,e)):[...i(m),e],!0)}function se(e){return typeof e==`boolean`?e?`Yes`:`No`:String(e)}function ce(){let e=i(O);!e||!i(M)||(n.onAdd({key:e.key,type:e.type,values:i(re)?[i(ie)]:i(m)}),o(!1))}I(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=L();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=be(),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`);ue(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)&&ce()},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)},[()=>F(i(t).value),()=>se(i(t).value)]),f(`change`,a,()=>oe(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:ce,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 ve,ee=E(k([])),ne=E(void 0),A=E(null),I=y(()=>(N.url.searchParams.get(`agent`)??``).trim()),L=E(``),be=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),q=E(null),Re=E(!1),J=0,Y=0,ze=y(()=>i(Le).filter(e=>!i(G).some(t=>t.key===e.key))),Be=E(null),Ve=y(()=>JSON.stringify([i(I),i(W),i(G)])),X=y(()=>i(Be)===i(Ve)?i(ne):void 0),He=y(()=>i(X)?.items.length??0),Ue=h(o,`useMock`,3,!1),{onError:We}=ae();function Ge(e){return new Date(e).toLocaleString()}function Ke(e){return new Date(e).toLocaleTimeString()}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(){J+=1,Y+=1,_(A,null),_(ne,void 0),_(Be,null),_(Le,[],!0),_(G,[],!0),_(B,[],!0),_(V,null),_(H,!0),_(K,!0),_(q,null),_(Re,!1)}function Ye(e=i(I)){let t=new URLSearchParams;e&&t.set(`agent`,e),i(W)&&t.set(ye,i(W));let n=t.toString();return n?`?${n}`:``}function Z(e=i(I)){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(I)){return`${i(gt)}/conversations/${encodeURIComponent(e)}/${t}${Ye(n)}`}async function Qe(e,t=i(be),n,r,a=i(G)){return Ue()?de.fetchConversations(t,e,n??void 0):b.getConversations({phoneNumber:e,agentId:r,analyticsFilters:a,limit:Number(t),lastConversationId:n??void 0})}async function Q(){_(B,[],!0),_(V,null),await nt()}async function $e(){_(Ne,!0),_(Pe,null);try{if(_(U,await pe(),!0),!i(U).length)throw Error(`No sources returned`);let e=_e(N.url),t=fe(i(U),e,he());if(!t)throw Error(`No sources returned`);if(_(W,t,!0),me(t),b.setSourceId(t),e!==t){let e=ge(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),me(t),b.setSourceId(t),Je(),await M(Z()),await Promise.all([rt(),Q()])}async function tt(){try{_(ee,await ce.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),We(`Failed to load agents: ${t}`)}}async function nt(){let e=++J,t=i(G).map(e=>({...e,values:[...e.values]})),n=i(I),r=JSON.stringify([n,i(W),t]);_(H,!0),_(xe,null);try{let a=await Qe(i(L)||void 0,i(be),i(V)??void 0,n||void 0,t);if(e!==J||r!==i(Ve))return;let o=Array.isArray(a.items)?a.items.slice():[];_(ne,{limit:a.limit,items:o,lastConversationId:a.lastConversationId},!0),_(Be,r,!0),_(V,a.lastConversationId??null,!0)}catch(t){if(e!==J||r!==i(Ve))return;_(xe,`Conversations could not be loaded for this selection.`),We(i(xe)),console.error(`Load page error:`,t)}finally{e===J&&_(H,!1)}}async function rt(){let e=++Y;if(_(K,!0),_(q,null),_(Le,[],!0),Ue()){_(K,!1);return}if(!i(I)){_(q,`Select an agent to add filters.`),_(K,!1);return}try{let t=await b.getAnalyticsFields(i(I));if(e!==Y)return;_(Le,t.items,!0)}catch(t){if(e!==Y)return;_(q,`Filters are unavailable for this selection.`),console.error(`Failed to load analytics fields:`,t)}finally{e===Y&&_(K,!1)}}function it(e){_(G,[...i(G),e],!0),Q()}function at(e){_(G,i(G).filter(t=>t.key!==e),!0),Q()}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(X)?.lastConversationId&&(i(B).push(i(X).lastConversationId),_(V,i(X).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(X)?.items&&i(X).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(Z());return}_(A,e,!0),await M(Ze(e.conversationId))}function ft(e){let t=e.target.value;_(R,t,!0),_(be,parseInt(i(R),10)||20,!0)}async function pt(){await Q()}async function mt(e){e?.preventDefault(),e?.stopPropagation(),_(L,``),_(B,[],!0),_(V,null),await Q()}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(I)?M(`/edit/${encodeURIComponent(i(I))}/roleplay`):M(`/edit`);if(e===`view`)return M(Z());M(`/`+e)}}async function vt(e,t){t?.stopPropagation(),e!==i(I)&&(Je(),await M(Z(e)))}async function yt(e){e?.stopPropagation(),i(I)&&(Je(),await M(Z(``)))}te(()=>{let e=i(I);i(Fe)&&e!==i(Ie)&&(_(Ie,e,!0),Je(),Promise.all([rt(),Q()]))}),D(()=>{(async()=>{await Promise.all([tt(),$e()]),await Promise.all([rt(),Q()]),_(Ie,i(I),!0),_(Fe,!0)})()});var bt=Me();re(`1uk1thp`,e=>{p(()=>{O.title=`Bosun: Telescope`})});var xt=g(bt),St=x(xt);le(St,{get agents(){return i(ee)},get currentAgent(){return i(I)},onAgentClick:vt,showAllAgentsOption:!0,onAllAgentsClick:yt,className:`flex-none`});var Ct=T(St,2),wt=x(Ct),Tt=x(wt),Et=x(Tt);oe(Et,{get value(){return i(ht)},ariaLabel:`Top tabs`,onChange:_t,children:(e,t)=>{var n=Ce(),i=g(n);se(i,{value:`edit`,children:(e,t)=>{c();var n=j(`Edit`);r(e,n)},$$slots:{default:!0}});var a=T(i,2);se(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),$=x(At),jt=x($),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($);var Pt=T($,2),Ft=x(Pt);ue(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(L)},set value(e){_(L,e,!0)}});var It=T(Ft),Lt=e=>{var t=Te(),n=x(t);F(n,{name:`close`,width:18,height:18}),d(t),f(`click`,t,mt),r(e,t)};S(It,e=>{i(L)&&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);F(l,{name:`close`,width:16,height:16,class:`relative top-px`}),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),Vt=e=>{P(e,{variant:`secondary`,title:`Add analytics filter`,onclick:()=>_(Re,!0),children:(e,t)=>{c();var n=j(`Add filter`);r(e,n)},$$slots:{default:!0}})};S(Bt,e=>{!i(K)&&!i(q)&&i(ze).length>0&&e(Vt)}),d(At),d(kt),d(Ot);var Ht=T(Ot,2),Ut=T(x(Ht),2);P(Ut,{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(Ht);var Wt=T(Ht,2),Gt=T(x(Wt),2),Kt=x(Gt);Kt.value=Kt.__value=`5`;var qt=T(Kt);qt.value=qt.__value=`10`;var Jt=T(qt);Jt.value=Jt.__value=`20`;var Yt=T(Jt);Yt.value=Yt.__value=`50`,d(Gt),d(Wt);var Xt=T(Wt,2),Zt=x(Xt),Qt=x(Zt);{let e=y(()=>i(B).length===0&&!i(V));P(Qt,{onclick:lt,get disabled(){return i(e)},children:(e,t)=>{c();var n=j(`Prev`);r(e,n)},$$slots:{default:!0}})}var $t=T(Qt,2);{let e=y(()=>!i(X)?.items.length);P($t,{onclick:ct,get disabled(){return i(e)},children:(e,t)=>{c();var n=j(`Next`);r(e,n)},$$slots:{default:!0}})}var en=T($t,2),tn=x(en);d(en),d(Zt),d(Xt);var nn=T(Xt,2),rn=T(x(nn),2),an=x(rn,!0);d(rn),d(nn),d(Dt),d(wt);var on=T(wt,2),sn=x(on),cn=T(x(sn),2),ln=x(cn),un=e=>{var t=De();r(e,t)},dn=e=>{var t=Oe();r(e,t)},fn=e=>{var t=je();l(t,21,()=>i(X).items,C,(e,t)=>{var n=Ae(),a=x(n),o=x(a),c=x(o),l=x(c);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(I)&&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,a)=>{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??``} – ${r??``}`),s(m,i(t).medium),s(_,i(t).phoneNumber),s(ee,i(t).conversationId),s(k,`Duration: ${a??``}`)},[()=>Ge(i(t).createdAt-(i(t).duration??0)*1e3),()=>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(ln,e=>{i(H)?e(un):i(X)?.items?.length?e(fn,-1):e(dn,1)}),d(cn),d(sn);var pn=T(sn,2),mn=x(pn);n(mn,()=>o.children),d(pn),d(on),d(Ct),d(xt),Se(T(xt,2),{get fields(){return i(ze)},onAdd:it,get open(){return i(Re)},set open(e){_(Re,e,!0)}}),v(()=>{$.disabled=i(Ne)||!i(U).length,w($,`title`,i(Pe)??`Telescope source`),s(tn,`Items: ${i(He)??``}`),s(an,Ue()?`Mock (local)`:`Live`)}),f(`change`,$,et),m($,()=>i(W),e=>_(W,e)),f(`change`,Gt,ft),m(Gt,()=>i(R),e=>_(R,e)),f(`click`,pn,e=>e.stopPropagation()),r(e,bt),t()}e([`change`,`click`]);export{U as component};
@@ -1 +1 @@
1
- import{B as e,Dt as t,E as n,F as r,G as i,L as a,Nt as o,Ot as s,Pt as c,V as l,at as u,gt as d,it as f,ot as p,z as m}from"../chunks/CPCsWwEy.js";import{t as h}from"../chunks/jbAfpNOj.js";import"../chunks/xihTtKlq.js";import{t as g}from"../chunks/BOZLjogl.js";import"../chunks/vxN0p6wG.js";import{n as _,t as v}from"../chunks/BJqZY8o2.js";import{r as y}from"../chunks/DkJi5BM4.js";var b=a(`<!> <!>`,1),x=a(`<div class="flex h-full min-h-0 flex-col bg-rc-gray-980"><div class="flex-none border-b border-rc-gray-300/40 px-4 pt-3"><!></div> <div class="min-h-0 flex-1"><!></div></div>`);function S(e,a){s(a,!0),y();let S=d(()=>g.url.pathname.split(`/`).at(-1)===`latency`?`latency`:`traces`),C=d(()=>g.url.pathname.startsWith(`/view`)?`/view`:`/traces`);function w(e){let t=g.params.conversationId??``,n=g.url.search;return`${i(C)}/conversations/${encodeURIComponent(t)}/${e}${n}`}function T({value:e}){(e===`traces`||e===`latency`)&&e!==i(S)&&h(w(e))}var E=x(),D=f(E),O=f(D);_(O,{get value(){return i(S)},ariaLabel:`View conversation tabs`,onChange:T,children:(e,t)=>{var n=b(),i=u(n);v(i,{value:`traces`,children:(e,t)=>{o();var n=m(`Traces`);r(e,n)},$$slots:{default:!0}});var a=p(i,2);v(a,{value:`latency`,children:(e,t)=>{o();var n=m(`Latency`);r(e,n)},$$slots:{default:!0}}),r(e,n)},$$slots:{default:!0}}),c(D);var k=p(D,2),A=f(k);n(A,()=>a.children),c(k),c(E),l(`click`,E,e=>e.stopPropagation()),r(e,E),t()}e([`click`]);export{S as component};
1
+ import{B as e,Dt as t,E as n,F as r,G as i,L as a,Nt as o,Ot as s,Pt as c,V as l,at as u,gt as d,it as f,ot as p,z as m}from"../chunks/CPCsWwEy.js";import{t as h}from"../chunks/Bmkwccsg.js";import"../chunks/xihTtKlq.js";import{t as g}from"../chunks/BFUe72xu.js";import"../chunks/CZcJNBdK.js";import{n as _,t as v}from"../chunks/BJqZY8o2.js";import{r as y}from"../chunks/DkJi5BM4.js";var b=a(`<!> <!>`,1),x=a(`<div class="flex h-full min-h-0 flex-col bg-rc-gray-980"><div class="flex-none border-b border-rc-gray-300/40 px-4 pt-3"><!></div> <div class="min-h-0 flex-1"><!></div></div>`);function S(e,a){s(a,!0),y();let S=d(()=>g.url.pathname.split(`/`).at(-1)===`latency`?`latency`:`traces`),C=d(()=>g.url.pathname.startsWith(`/view`)?`/view`:`/traces`);function w(e){let t=g.params.conversationId??``,n=g.url.search;return`${i(C)}/conversations/${encodeURIComponent(t)}/${e}${n}`}function T({value:e}){(e===`traces`||e===`latency`)&&e!==i(S)&&h(w(e))}var E=x(),D=f(E),O=f(D);_(O,{get value(){return i(S)},ariaLabel:`View conversation tabs`,onChange:T,children:(e,t)=>{var n=b(),i=u(n);v(i,{value:`traces`,children:(e,t)=>{o();var n=m(`Traces`);r(e,n)},$$slots:{default:!0}});var a=p(i,2);v(a,{value:`latency`,children:(e,t)=>{o();var n=m(`Latency`);r(e,n)},$$slots:{default:!0}}),r(e,n)},$$slots:{default:!0}}),c(D);var k=p(D,2),A=f(k);n(A,()=>a.children),c(k),c(E),l(`click`,E,e=>e.stopPropagation()),r(e,E),t()}e([`click`]);export{S as component};
@@ -1 +1 @@
1
- import{Dt as e,F as t,G as n,L as r,Nt as i,Ot as a,Pt as o,X as s,at as c,dt as l,gt as u,it as d,ot as f,pt as p,r as m,rt as h,st as g,tt as _,w as v,z as y}from"../chunks/CPCsWwEy.js";import{t as b}from"../chunks/jbAfpNOj.js";import"../chunks/xihTtKlq.js";import{t as x}from"../chunks/DDZ8GqHh.js";import{t as S}from"../chunks/BOZLjogl.js";import"../chunks/vxN0p6wG.js";import{n as C,t as w}from"../chunks/BJqZY8o2.js";import{t as T}from"../chunks/DWoqp3ac.js";import{t as E}from"../chunks/D_MTg6YY.js";var D=r(`<!> <!>`,1),O=r(`<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 items-center justify-center bg-rc-gray-980"><!></nav> <main class="flex-1 pr-80 pt-40"><div class="flex h-full items-start justify-center text-rc-gray-200">Select an agent on the left panel to start editing</div></main></div></div>`);function k(r,k){a(k,!0);let{onAgentSelect:A,onError:j}=x(),M=p(g([])),N=p(!1),P=u(()=>S.url.pathname.split(`/`)[1]);function F({value:e}){if(e!==n(P)){if(e===`edit`)return b(`/edit`);if(e===`view`)return b(`/view`);b(`/`+e)}}function I(e){A(e)}_(()=>{n(N)||S.url.pathname===`/edit`&&n(M).length&&(l(N,!0),A(n(M)[0].id))}),m(async()=>{try{l(M,await T.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),j(`Failed to load agents: ${t}`)}});var L=O();v(`17v3h6h`,e=>{s(()=>{h.title=`Bosun: Edit`})});var R=d(L);E(R,{className:`flex-none`,get agents(){return n(M)},currentAgent:``,onAgentClick:I});var z=f(R,2),B=d(z),V=d(B);C(V,{get value(){return n(P)},ariaLabel:`Top tabs`,onChange:F,children:(e,n)=>{var r=D(),a=c(r);w(a,{value:`edit`,children:(e,n)=>{i();var r=y(`Edit`);t(e,r)},$$slots:{default:!0}});var o=f(a,2);w(o,{value:`view`,children:(e,n)=>{i();var r=y(`View`);t(e,r)},$$slots:{default:!0}}),t(e,r)},$$slots:{default:!0}}),o(B),i(2),o(z),o(L),t(r,L),e()}export{k as component};
1
+ import{Dt as e,F as t,G as n,L as r,Nt as i,Ot as a,Pt as o,X as s,at as c,dt as l,gt as u,it as d,ot as f,pt as p,r as m,rt as h,st as g,tt as _,w as v,z as y}from"../chunks/CPCsWwEy.js";import{t as b}from"../chunks/Bmkwccsg.js";import"../chunks/xihTtKlq.js";import{t as x}from"../chunks/DDZ8GqHh.js";import{t as S}from"../chunks/BFUe72xu.js";import"../chunks/CZcJNBdK.js";import{n as C,t as w}from"../chunks/BJqZY8o2.js";import{t as T}from"../chunks/DWoqp3ac.js";import{t as E}from"../chunks/D_MTg6YY.js";var D=r(`<!> <!>`,1),O=r(`<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 items-center justify-center bg-rc-gray-980"><!></nav> <main class="flex-1 pr-80 pt-40"><div class="flex h-full items-start justify-center text-rc-gray-200">Select an agent on the left panel to start editing</div></main></div></div>`);function k(r,k){a(k,!0);let{onAgentSelect:A,onError:j}=x(),M=p(g([])),N=p(!1),P=u(()=>S.url.pathname.split(`/`)[1]);function F({value:e}){if(e!==n(P)){if(e===`edit`)return b(`/edit`);if(e===`view`)return b(`/view`);b(`/`+e)}}function I(e){A(e)}_(()=>{n(N)||S.url.pathname===`/edit`&&n(M).length&&(l(N,!0),A(n(M)[0].id))}),m(async()=>{try{l(M,await T.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),j(`Failed to load agents: ${t}`)}});var L=O();v(`17v3h6h`,e=>{s(()=>{h.title=`Bosun: Edit`})});var R=d(L);E(R,{className:`flex-none`,get agents(){return n(M)},currentAgent:``,onAgentClick:I});var z=f(R,2),B=d(z),V=d(B);C(V,{get value(){return n(P)},ariaLabel:`Top tabs`,onChange:F,children:(e,n)=>{var r=D(),a=c(r);w(a,{value:`edit`,children:(e,n)=>{i();var r=y(`Edit`);t(e,r)},$$slots:{default:!0}});var o=f(a,2);w(o,{value:`view`,children:(e,n)=>{i();var r=y(`View`);t(e,r)},$$slots:{default:!0}}),t(e,r)},$$slots:{default:!0}}),o(B),i(2),o(z),o(L),t(r,L),e()}export{k as component};