@recombine-ai/bosun 0.20.2 → 0.20.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/_app/immutable/assets/{0.970vvoDj.css → 0.CdQBFG7k.css} +1 -1
- package/build/_app/immutable/assets/0.CdQBFG7k.css.br +0 -0
- package/build/_app/immutable/assets/0.CdQBFG7k.css.gz +0 -0
- package/build/_app/immutable/chunks/{BOZLjogl.js → 3WccBUkK.js} +1 -1
- package/build/_app/immutable/chunks/3WccBUkK.js.br +0 -0
- package/build/_app/immutable/chunks/3WccBUkK.js.gz +0 -0
- package/build/_app/immutable/chunks/B5p_twg4.js +1 -0
- package/build/_app/immutable/chunks/B5p_twg4.js.br +0 -0
- package/build/_app/immutable/chunks/B5p_twg4.js.gz +0 -0
- package/build/_app/immutable/chunks/BMZ3nmcQ.js +1 -0
- package/build/_app/immutable/chunks/BMZ3nmcQ.js.br +2 -0
- package/build/_app/immutable/chunks/BMZ3nmcQ.js.gz +0 -0
- package/build/_app/immutable/chunks/C9p6yGAG.js +3 -0
- package/build/_app/immutable/chunks/C9p6yGAG.js.br +0 -0
- package/build/_app/immutable/chunks/C9p6yGAG.js.gz +0 -0
- package/build/_app/immutable/entry/{app.Nx0-kikH.js → app.BTQrdm9G.js} +2 -2
- package/build/_app/immutable/entry/app.BTQrdm9G.js.br +0 -0
- package/build/_app/immutable/entry/app.BTQrdm9G.js.gz +0 -0
- package/build/_app/immutable/entry/start.Ls0_A8q0.js +1 -0
- package/build/_app/immutable/entry/start.Ls0_A8q0.js.br +0 -0
- package/build/_app/immutable/entry/start.Ls0_A8q0.js.gz +0 -0
- package/build/_app/immutable/nodes/{0.B5_ukjYU.js → 0.8n1R6Sfx.js} +1 -1
- package/build/_app/immutable/nodes/0.8n1R6Sfx.js.br +0 -0
- package/build/_app/immutable/nodes/0.8n1R6Sfx.js.gz +0 -0
- package/build/_app/immutable/nodes/{1.BnET9__M.js → 1.VY0dUXdC.js} +1 -1
- package/build/_app/immutable/nodes/1.VY0dUXdC.js.br +3 -0
- package/build/_app/immutable/nodes/1.VY0dUXdC.js.gz +0 -0
- package/build/_app/immutable/nodes/{16.C0hAGH9Y.js → 16.DbzAOHBQ.js} +1 -1
- package/build/_app/immutable/nodes/16.DbzAOHBQ.js.br +0 -0
- package/build/_app/immutable/nodes/16.DbzAOHBQ.js.gz +0 -0
- package/build/_app/immutable/nodes/17.DueeZkqc.js +11 -0
- package/build/_app/immutable/nodes/17.DueeZkqc.js.br +0 -0
- package/build/_app/immutable/nodes/17.DueeZkqc.js.gz +0 -0
- package/build/_app/immutable/nodes/{2.0cl8Jw4o.js → 2.hazKP8jr.js} +2 -2
- package/build/_app/immutable/nodes/2.hazKP8jr.js.br +0 -0
- package/build/_app/immutable/nodes/2.hazKP8jr.js.gz +0 -0
- package/build/_app/immutable/nodes/{3.CxkjPmTD.js → 3.DUnb-wiO.js} +1 -1
- package/build/_app/immutable/nodes/3.DUnb-wiO.js.br +0 -0
- package/build/_app/immutable/nodes/3.DUnb-wiO.js.gz +0 -0
- package/build/_app/immutable/nodes/{4.h7GzNdQ-.js → 4.D8bBp4vF.js} +1 -1
- package/build/_app/immutable/nodes/4.D8bBp4vF.js.br +0 -0
- package/build/_app/immutable/nodes/4.D8bBp4vF.js.gz +0 -0
- package/build/_app/immutable/nodes/{6.MjSRR3jo.js → 6.DYttyFcS.js} +1 -1
- package/build/_app/immutable/nodes/6.DYttyFcS.js.br +0 -0
- package/build/_app/immutable/nodes/6.DYttyFcS.js.gz +0 -0
- package/build/_app/immutable/nodes/8.BESB58-w.js +2 -0
- package/build/_app/immutable/nodes/8.BESB58-w.js.br +0 -0
- package/build/_app/immutable/nodes/8.BESB58-w.js.gz +0 -0
- package/build/_app/immutable/nodes/{9.BFI7-HIR.js → 9.DGMSOk75.js} +1 -1
- package/build/_app/immutable/nodes/9.DGMSOk75.js.br +0 -0
- package/build/_app/immutable/nodes/9.DGMSOk75.js.gz +0 -0
- package/build/_app/version.json +1 -1
- package/build/_app/version.json.br +0 -0
- package/build/_app/version.json.gz +0 -0
- package/build/index.html +10 -10
- package/build/index.html.br +0 -0
- package/build/index.html.gz +0 -0
- package/dist/index.js +25 -6
- package/dist/index.js.map +2 -2
- package/dist/types/backend/roleplay/conversation-store.d.ts +3 -2
- package/dist/types/backend/roleplay/router.d.ts +1 -1
- package/dist/types/backend/roleplay/variants.d.ts +1 -1
- package/dist/types/backend/server.d.ts +5 -5
- package/dist/types/backend/tests/router.d.ts +4 -4
- package/dist/types/lib/conversation.d.ts +3 -1
- package/dist/types/lib/tests/pii-sanitized-test-draft.d.ts +1 -1
- package/package.json +1 -1
- package/build/_app/immutable/assets/0.970vvoDj.css.br +0 -0
- package/build/_app/immutable/assets/0.970vvoDj.css.gz +0 -0
- package/build/_app/immutable/chunks/BOZLjogl.js.br +0 -2
- package/build/_app/immutable/chunks/BOZLjogl.js.gz +0 -0
- package/build/_app/immutable/chunks/Byx1piFp.js +0 -3
- package/build/_app/immutable/chunks/Byx1piFp.js.br +0 -0
- package/build/_app/immutable/chunks/Byx1piFp.js.gz +0 -0
- package/build/_app/immutable/chunks/jbAfpNOj.js +0 -1
- package/build/_app/immutable/chunks/jbAfpNOj.js.br +0 -0
- package/build/_app/immutable/chunks/jbAfpNOj.js.gz +0 -0
- package/build/_app/immutable/chunks/vxN0p6wG.js +0 -1
- package/build/_app/immutable/chunks/vxN0p6wG.js.br +0 -2
- package/build/_app/immutable/chunks/vxN0p6wG.js.gz +0 -0
- package/build/_app/immutable/entry/app.Nx0-kikH.js.br +0 -0
- package/build/_app/immutable/entry/app.Nx0-kikH.js.gz +0 -0
- package/build/_app/immutable/entry/start.t9PGFpmm.js +0 -1
- package/build/_app/immutable/entry/start.t9PGFpmm.js.br +0 -1
- package/build/_app/immutable/entry/start.t9PGFpmm.js.gz +0 -0
- package/build/_app/immutable/nodes/0.B5_ukjYU.js.br +0 -0
- package/build/_app/immutable/nodes/0.B5_ukjYU.js.gz +0 -0
- package/build/_app/immutable/nodes/1.BnET9__M.js.br +0 -0
- package/build/_app/immutable/nodes/1.BnET9__M.js.gz +0 -0
- package/build/_app/immutable/nodes/16.C0hAGH9Y.js.br +0 -0
- package/build/_app/immutable/nodes/16.C0hAGH9Y.js.gz +0 -0
- package/build/_app/immutable/nodes/17.DHifdmRv.js +0 -10
- package/build/_app/immutable/nodes/17.DHifdmRv.js.br +0 -0
- package/build/_app/immutable/nodes/17.DHifdmRv.js.gz +0 -0
- package/build/_app/immutable/nodes/2.0cl8Jw4o.js.br +0 -0
- package/build/_app/immutable/nodes/2.0cl8Jw4o.js.gz +0 -0
- package/build/_app/immutable/nodes/3.CxkjPmTD.js.br +0 -0
- package/build/_app/immutable/nodes/3.CxkjPmTD.js.gz +0 -0
- package/build/_app/immutable/nodes/4.h7GzNdQ-.js.br +0 -0
- package/build/_app/immutable/nodes/4.h7GzNdQ-.js.gz +0 -0
- package/build/_app/immutable/nodes/6.MjSRR3jo.js.br +0 -0
- package/build/_app/immutable/nodes/6.MjSRR3jo.js.gz +0 -0
- package/build/_app/immutable/nodes/8.BCatMgwB.js +0 -2
- package/build/_app/immutable/nodes/8.BCatMgwB.js.br +0 -0
- package/build/_app/immutable/nodes/8.BCatMgwB.js.gz +0 -0
- package/build/_app/immutable/nodes/9.BFI7-HIR.js.br +0 -0
- 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/3WccBUkK.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};
|
|
Binary file
|
|
Binary file
|
|
@@ -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/B5p_twg4.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{a as Ce,i as we,n as Te,o as Ee,r as De,t as Oe}from"../chunks/C9p6yGAG.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);Ee(_,{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,`&`).replace(/</g,`<`).replace(/>/g,`>`)}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(/(<[^&]*?>)/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??``,Ee=Se(pe,A()?`__mock__`:N),F=j.traces.get(Ee),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=>{Ce(e,{get trace(){return a(t)}})},v=e=>{{let r=w(()=>(_(we),a(B),_(a(n)),c(()=>we(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(()=>(_(De),a(B),_(a(n)),c(()=>De(a(B),a(n)))));Te(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};
|
|
Binary file
|
|
Binary file
|
|
@@ -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={"&":`&`,'"':`"`,"'":`'`,"<":`<`,">":`>`,"\\":`\`},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/B5p_twg4.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/3WccBUkK.js";import"../chunks/BMZ3nmcQ.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={"&":`&`,'"':`"`,"'":`'`,"<":`<`,">":`>`,"\\":`\`},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(`
|
|
@@ -32,4 +32,4 @@ else {`),this._emit(`cb()`)),this._emitLine(`}`)},n.compileIfAsync=function(e,t)
|
|
|
32
32
|
`,t.asFunction&&(n+=`return function(ctx, cb) { return nunjucks.render(`+i+`, ctx, cb); }
|
|
33
33
|
`),n+=`})();
|
|
34
34
|
`}return n}e.exports=r}),(function(e,t,n){function r(){var e=this.runtime,t=this.lib,n=this.compiler.Compiler,r=this.parser.Parser,i=this.nodes,a=this.lexer,o=e.contextOrFrameLookup,s=e.memberLookup,c,l;n&&(c=n.prototype.assertType),r&&(l=r.prototype.parseAggregate);function u(){e.contextOrFrameLookup=o,e.memberLookup=s,n&&(n.prototype.assertType=c),r&&(r.prototype.parseAggregate=l)}e.contextOrFrameLookup=function(e,t,n){var r=o.apply(this,arguments);if(r!==void 0)return r;switch(n){case`True`:return!0;case`False`:return!1;case`None`:return null;default:return}};function d(e){return{index:e.index,lineno:e.lineno,colno:e.colno}}if(i&&n&&r){var f=i.Node.extend(`Slice`,{fields:[`start`,`stop`,`step`],init:function(e,t,n,r,a){n||=new i.Literal(e,t,null),r||=new i.Literal(e,t,null),a||=new i.Literal(e,t,1),this.parent(e,t,n,r,a)}});n.prototype.assertType=function(e){e instanceof f||c.apply(this,arguments)},n.prototype.compileSlice=function(e,t){this._emit(`(`),this._compileExpression(e.start,t),this._emit(`),(`),this._compileExpression(e.stop,t),this._emit(`),(`),this._compileExpression(e.step,t),this._emit(`)`)},r.prototype.parseAggregate=function(){var e=this,n=d(this.tokens);n.colno--,n.index--;try{return l.apply(this)}catch(l){var r=d(this.tokens),o=function(){return t._assign(e.tokens,r),l};t._assign(this.tokens,n),this.peeked=!1;var s=this.peekToken();if(s.type!==a.TOKEN_LEFT_BRACKET)throw o();this.nextToken();for(var c=new f(s.lineno,s.colno),u=!1,p=0;p<=c.fields.length&&!this.skip(a.TOKEN_RIGHT_BRACKET);p++){if(p===c.fields.length){if(u)this.fail(`parseSlice: too many slice components`,s.lineno,s.colno);else break}if(this.skip(a.TOKEN_COLON))u=!0;else{var m=c.fields[p];c[m]=this.parseExpression(),u=this.skip(a.TOKEN_COLON)||u}}if(!u)throw o();return new i.Array(s.lineno,s.colno,[c])}}}function p(t,n,r,i){t||=[],n===null&&(n=i<0?t.length-1:0),r===null?r=i<0?-1:t.length:r<0&&(r+=t.length),n<0&&(n+=t.length);for(var a=[],o=n;!(o<0||o>t.length||i>0&&o>=r||i<0&&o<=r);o+=i)a.push(e.memberLookup(t,o));return a}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var h={pop:function(e){if(e===void 0)return this.pop();if(e>=this.length||e<0)throw Error(`KeyError`);return this.splice(e,1)},append:function(e){return this.push(e)},remove:function(e){for(var t=0;t<this.length;t++)if(this[t]===e)return this.splice(t,1);throw Error(`ValueError`)},count:function(e){for(var t=0,n=0;n<this.length;n++)this[n]===e&&t++;return t},index:function(e){var t;if((t=this.indexOf(e))===-1)throw Error(`ValueError`);return t},find:function(e){return this.indexOf(e)},insert:function(e,t){return this.splice(e,0,t)}},g={items:function(){return t._entries(this)},values:function(){return t._values(this)},keys:function(){return t.keys(this)},get:function(e,t){var n=this[e];return n===void 0&&(n=t),n},has_key:function(e){return m(this,e)},pop:function(e,t){var n=this[e];if(n===void 0&&t!==void 0)n=t;else if(n===void 0)throw Error(`KeyError`);else delete this[e];return n},popitem:function(){var e=t.keys(this);if(!e.length)throw Error(`KeyError`);var n=e[0],r=this[n];return delete this[n],[n,r]},setdefault:function(e,t){return t===void 0&&(t=null),e in this||(this[e]=t),this[e]},update:function(e){return t._assign(this,e),null}};return g.iteritems=g.items,g.itervalues=g.values,g.iterkeys=g.keys,e.memberLookup=function(e,n,r){return arguments.length===4?p.apply(this,arguments):(e||={},t.isArray(e)&&m(h,n)?h[n].bind(e):t.isObject(e)&&m(g,n)?g[n].bind(e):s.apply(this,arguments))},u}e.exports=r})])})}))()),nt=u(`<label class="absolute right-6 top-1 z-10 inline-flex cursor-pointer items-center gap-2 bg-transparent text-rc-gray-100 focus:outline-none focus:ring-0"><input type="checkbox" class="checkbox svelte-1br1z62"/> <span>Preview</span></label>`),rt=u(`<div class="flex justify-end"><!></div>`),Q=u(`<div class="prompt-editor flex h-full flex-col"><div class="relative flex-1"><div class="h-full w-full"></div> <!></div> <!></div>`);function it(e,t){m(t,!0);let n=P(null),r,a=_(t,`readOnly`,3,!1),c=_(t,`readOnlyMessage`,3,``),l=_(t,`bottomPadding`,3,0),u=_(t,`showPreviewToggle`,3,!0),d=_(t,`preview`,3,null),p=!1,v=null,y=P(!1),b=null,C=[],E=null,k=null,ee=P(!1),j=w(()=>d()===null?s(ee):d()),M=w(()=>`editorState/prompt/${t.agentId}/${t.stepName}`),F=w(()=>`editorState/prompt/${t.agentId}/${t.stepName}/preview`),I=w(()=>s(j)?s(F):s(M));function re(){K(s(I),s(n))}function R(e,t){let n=fe(t);if(!n)return;let r=e.getContribution(`editor.contrib.folding`);if(r?.getFoldingModel)r.getFoldingModel().then(()=>{try{e.restoreViewState(n)}catch{}});else try{e.restoreViewState(n)}catch{}}function z(){k!=null&&clearTimeout(k),k=setTimeout(()=>{k=null,re()},180)}ne(()=>{if(!r)return;J();let e=!1;return H(()=>import(`../chunks/CUZn05nQ.js`).then(e=>e.t).then(i=>{if(e)return;ve(i),C.push(i.languages.registerFoldingRangeProvider(`markdown`,Ue)),C.push(i.languages.registerFoldingRangeProvider(`markdown`,We)),C.push(i.languages.registerDocumentHighlightProvider(`markdown`,Xe)),x(n,i.editor.create(r,{...me(`prompt`,{bottomPadding:l()}),value:``,language:`markdown`,readOnly:a(),readOnlyMessage:c()?{value:c()}:void 0}),!0),b=s(n).getModel(),C.push(ge(s(n),i)),C.push(s(n).onDidChangeModelDecorations(()=>z())),C.push(s(n).onDidScrollChange(()=>z())),C.push(s(n).onDidChangeCursorPosition(()=>z())),C.push(s(n).onDidBlurEditorText(()=>re())),q.agents.context.query({agentId:t.agentId}).then(t=>{e||(E?.dispose(),E=Pe(i,t),C.push(E))}),v=_e(i,s(n));let o=t.initialPrompt??``;if(p=!0,s(n).setValue(o),p=!1,requestAnimationFrame(()=>{v?.update(),s(n)&&R(s(n),s(I))}),C.push(s(n).onDidChangeModelContent(()=>{if(s(n)&&(v?.update(),!p)){z();try{let e=s(n).getValue();t.onPromptChanged(e)}catch(e){console.error(`Error updating prompt`,e)}}})),x(y,!0),t.onEditorReady)try{t.onEditorReady(s(n),i)}catch(e){console.error(`PromptEditor onEditorReady error`,e)}}),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url).catch(e=>{console.error(`Error initializing Monaco editor:`,e)}),()=>{e=!0,x(y,!1),k!=null&&clearTimeout(k),k=null,re(),E=null;for(let e of C)try{e.dispose()}catch{}C=[],v?.dispose(),v=null;let t=b;if(b=null,s(n)){try{s(n).setModel(null)}catch{}s(n).dispose(),x(n,null)}try{t?.dispose()}catch{}}}),L(()=>{let e=a(),t=c(),r=me(`prompt`,{bottomPadding:l()});!s(n)||!s(y)||s(n).updateOptions({readOnly:e,readOnlyMessage:t?{value:t}:void 0,padding:r.padding})}),L(()=>{let e=t.initialPrompt??``;if(!(!s(n)||!s(y)||s(j)&&!a())&&s(n).getValue()!==e){p=!0;try{s(n).setValue(e),v?.update()}finally{p=!1}}});function ie(e,t){return tt.default.configure({autoescape:!1,trimBlocks:!0,lstripBlocks:!0}),tt.default.renderString(e,t||{})}let V=``,ae=0;function U(e){if(d()!==null){t.onPreviewChange?.(e);return}x(ee,e,!0)}function oe(){if(ae+=1,s(n)){K(s(F),s(n)),p=!0;try{V&&=(s(n).setValue(V),``),s(n).updateOptions({readOnly:a()})}finally{p=!1}R(s(n),s(M))}}async function W(){if(!s(n)||a())return;K(s(M),s(n)),V=s(n).getValue();let e=ae+=1,r=null;try{r=await q.agents.context.query({agentId:t.agentId})}catch(e){console.error(`Failed to load agent context for preview:`,e),r=null}if(e!==ae||!s(n)||!s(j))return;let i=ie(V,r||{});p=!0;try{s(n).setValue(i),s(n).updateOptions({readOnly:!0})}finally{p=!1}R(s(n),s(F))}let ce=P(!1);L(()=>{let e=!!s(j)&&!a();!s(n)||!s(y)||e!==s(ce)&&(x(ce,e,!0),e?W():oe())}),se(e,{get class(){return`prompt-editor-frame relative overflow-hidden ${t.class??``}`},children:(e,n)=>{var i=Q(),c=D(i),l=D(c);A(l,e=>r=e,()=>r);var d=N(l,2),p=e=>{var t=nt(),n=D(t);te(n),f(2),h(t),S(()=>T(n,s(j))),g(`change`,n,e=>U(e.currentTarget.checked)),o(e,t)};O(d,e=>{u()&&!a()&&e(p)}),h(c);var m=N(c,2),_=e=>{var n=rt(),r=D(n);G(r,{variant:`secondary`,get onclick(){return t.onSchemaClick},class:`absolute bottom-2 right-6 !font-medium`,children:(e,t)=>{f();var n=B(`Schema`);o(e,n)},$$slots:{default:!0}}),h(n),o(e,n)};O(m,e=>{t.showSchemaButton&&t.onSchemaClick&&e(_)}),h(i),o(e,i)},$$slots:{default:!0}}),i()}r([`change`]);var at=u(`<!> <!>`,1),ot=u(`<div class="flex h-full items-center justify-center text-sm text-rc-gray-300">Loading</div>`),st=u(`<pre class="whitespace-pre-wrap font-mono text-xs text-rc-gray-200"> </pre>`),ct=u(`<div class="flex h-full flex-col gap-3"><div class="text-sm text-red-400"> </div></div>`),lt=u(`<div class="text-red-400">Error</div>`),ut=u(`<div class="rounded-md border border-rc-gray-700 bg-rc-gray-900/40 px-3 py-2"><div class="flex items-center justify-between text-xs text-rc-gray-400"><div> </div> <!></div> <div class="whitespace-pre-wrap break-words text-sm text-rc-gray-100"> </div></div>`),dt=u(`<div class="mb-4"><div class="mb-2 text-xs font-semibold text-rc-gray-400">Why this response</div> <div class="flex flex-col gap-2"></div></div>`),ft=u(`<button type="button" class="rounded-md border border-rc-gray-700 bg-rc-gray-900/40 px-3 py-2 text-left hover:border-rc-gray-500"><div class="flex items-center justify-between text-xs text-rc-gray-400"><div> </div> <div> </div></div> <div class="whitespace-pre-wrap break-words text-sm text-rc-gray-100"> </div></button>`),pt=u(`<div class="flex flex-col gap-2"></div>`),mt=u(`<div class="text-sm text-rc-gray-300">No quotes returned.</div>`),ht=u(`<div class="mb-3 text-sm font-semibold text-rc-gray-100"> </div> <!> <!>`,1),gt=u(`<button type="button" class="rounded-md border border-rc-gray-700 bg-rc-gray-900/40 px-3 py-2 text-left hover:border-rc-gray-500"><div class="whitespace-pre-wrap break-words text-sm text-rc-gray-100"> </div></button>`),_t=u(`<div class="mt-3 flex flex-col gap-2"></div>`),vt=u(`<div class="rounded-md border border-rc-gray-700 bg-rc-gray-900/40 p-3"><div class="flex items-start justify-between gap-3"><div class="text-xs font-semibold text-rc-gray-400"></div> <div class="text-xs text-rc-gray-500"> </div></div> <div class="mt-1 whitespace-pre-wrap break-words text-sm text-rc-gray-100"> </div> <!></div>`),yt=u(`<div class="flex flex-col gap-3"></div>`),bt=u(`<div class="text-sm text-rc-gray-300">No issues found.</div>`),xt=u(`<div class="mb-3 text-sm font-semibold text-rc-gray-100"> </div> <!>`,1),St=u(`<div class="border-b border-rc-gray-700 px-2 py-1"><!></div> <div class="min-h-0 flex-1 overflow-auto p-3"><!></div>`,1);function Ct(e,t){m(t,!0);let{state:n,actions:r}=W(),a=P(`results`),l=P(null);L(()=>{let e=n.edit.popover?.requestId??null;e!==s(l)&&(x(l,e,!0),x(a,`results`))});var u=c(),_=v(u),y=e=>{let t=w(()=>n.edit.popover);var i=St(),l=v(i),u=D(l);ce(u,{get value(){return s(a)},ariaLabel:`Popover tabs`,onChange:({value:e})=>x(a,e,!0),children:(e,t)=>{var n=at(),r=v(n);le(r,{value:`results`,children:(e,t)=>{f();var n=B(`Results`);o(e,n)},$$slots:{default:!0}});var i=N(r,2);le(i,{value:`raw`,children:(e,t)=>{f();var n=B(`Raw`);o(e,n)},$$slots:{default:!0}}),o(e,n)},$$slots:{default:!0}}),h(l);var m=N(l,2),_=D(m),y=e=>{var t=ot();o(e,t)},b=e=>{var n=c(),r=v(n),i=e=>{let n=w(()=>typeof s(t).data?.raw==`string`?s(t).data.raw:s(t).error);var r=st(),i=D(r,!0);h(r),S(()=>d(i,s(n)||`—`)),o(e,r)},l=e=>{var n=ct(),r=D(n),i=D(r,!0);h(r),h(n),S(()=>d(i,s(t).error)),o(e,n)};O(r,e=>{s(a)===`raw`?e(i):e(l,-1)}),o(e,n)},C=e=>{let n=w(()=>s(t).data);var i=c(),l=v(i),u=e=>{var t=st(),r=D(t,!0);h(t),S(()=>d(r,typeof s(n)?.raw==`string`?s(n).raw:`—`)),o(e,t)},f=e=>{let t=w(()=>typeof s(n)?.parallelCalls==`number`&&Number.isFinite(s(n).parallelCalls)?s(n).parallelCalls:10);var i=ht(),a=v(i),c=D(a,!0);h(a);var l=N(a,2),u=e=>{var t=dt(),r=N(D(t),2);p(r,23,()=>s(n).rationales,(e,t)=>e.attempt??t,(e,t,n)=>{var r=ut(),i=D(r),a=D(i),c=D(a);h(a);var l=N(a,2),u=e=>{var t=lt();o(e,t)};O(l,e=>{s(t).status===`error`&&e(u)}),h(i);var f=N(i,2),p=D(f,!0);h(f),h(r),S(()=>{d(c,`Analysis ${s(t).attempt??s(n)+1??``}`),d(p,s(t).text)}),o(e,r)}),h(r),h(t),o(e,t)},f=w(()=>Array.isArray(s(n)?.rationales)&&s(n).rationales.length>0);O(l,e=>{s(f)&&e(u)});var m=N(l,2),_=e=>{var i=pt();p(i,23,()=>s(n).quotes,e=>e.quote,(e,n,i)=>{var a=ft(),c=D(a),l=D(c),u=D(l);h(l);var f=N(l,2),p=D(f);h(f),h(c);var m=N(c,2),_=D(m,!0);h(m),h(a),S(()=>{d(u,`Quote ${s(i)+1}`),d(p,`x${s(n).count??``}/${s(t)??``}`),d(_,s(n).quote)}),g(`click`,a,()=>r.focusQuote(s(n).quote)),o(e,a)}),h(i),o(e,i)},y=w(()=>Array.isArray(s(n)?.quotes)&&s(n).quotes.length>0),b=e=>{var t=mt();o(e,t)};O(m,e=>{s(y)?e(_):e(b,-1)}),S(()=>d(c,s(n)?.title??`Analysis`)),o(e,i)},m=e=>{var t=xt(),i=v(t),a=D(i,!0);h(i);var c=N(i,2),l=e=>{var t=yt();p(t,21,()=>s(n).issues,k,(e,t,n)=>{var i=vt(),a=D(i),c=D(a);c.textContent=`Issue ${n+1}`;var l=N(c,2),u=D(l,!0);h(l),h(a);var f=N(a,2),m=D(f,!0);h(f);var _=N(f,2),v=e=>{var n=_t();p(n,20,()=>s(t).contradictingQuotes,e=>e,(e,t)=>{var n=gt(),i=D(n),a=D(i,!0);h(i),h(n),S(()=>d(a,t)),g(`click`,n,()=>r.focusQuote(t)),o(e,n)}),h(n),o(e,n)};O(_,e=>{s(t).contradictingQuotes&&s(t).contradictingQuotes.length>0&&e(v)}),h(i),S(()=>{d(u,s(t).type),d(m,s(t).reason)}),o(e,i)}),h(t),o(e,t)},u=w(()=>Array.isArray(s(n)?.issues)&&s(n).issues.length>0),f=e=>{var t=bt();o(e,t)};O(c,e=>{s(u)?e(l):e(f,-1)}),S(()=>d(a,s(n)?.title??`Prompt issues`)),o(e,t)};O(l,e=>{s(a)===`raw`?e(u):s(t).kind===`analyze`?e(f,1):e(m,-1)}),o(e,i)};O(_,e=>{s(t).status===`loading`?e(y):s(t).status===`error`?e(b,1):e(C,-1)}),h(m),o(e,i)};O(_,e=>{n.edit.popover&&e(y)}),o(e,u),i()}r([`click`]);var wt=u(`<div class="min-h-0 flex-1 overflow-hidden p-3"><!></div>`);function Tt(e,t){m(t,!1);let{state:n}=W();y();var r=wt(),a=D(r);{let e=E(()=>`editorState/context/${n.agentId}/${n.currentStep?.name??`main`}`);pe(a,{class:`h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl focus:outline-none focus:ring-0`,get context(){return n.context},readOnly:!0,get editorStateKey(){return s(e)},suppressErrors:!0})}h(r),o(e,r),i()}function Et(e){try{return decodeURIComponent(e)}catch{return e}}function Dt(e){let t=(String(e||``).split(`?`)[0]?.split(`#`)[0]??``).split(`/`).filter(Boolean);if(t[0]!==`edit`||t.length===1)return{agentId:null,tab:null};let n=Et(t[1]??``),r=t[2]??null;return!r||r===`roleplay`?{agentId:n,tab:`roleplay`}:r===`tests`?{agentId:n,tab:`tests`}:r===`configure`?{agentId:n,tab:`configure`}:{agentId:n,tab:null}}function Ot(e){return{tab:Dt(e.pathname).tab??`roleplay`,popover:null,highlights:null,requestSeq:0}}function kt(e,t){let n=Dt(t.pathname).tab??`roleplay`;return{...e,tab:n,popover:null,highlights:null}}function At(e,t){let n=e.requestSeq+1;return{...e,requestSeq:n,popover:{kind:t.kind,status:`loading`,requestId:n},highlights:null}}function jt(e,t){return!e.popover||e.popover.requestId!==t.requestId?e:{...e,popover:{...e.popover,status:`ready`,data:t.data,error:void 0}}}function Mt(e,t){return!e.popover||e.popover.requestId!==t.requestId?e:{...e,popover:{...e.popover,status:`error`,error:String(t.error||`Unknown error`),data:t.data}}}function Nt(e){return{...e,popover:null,highlights:null}}function Pt(e,t){return{...e,highlights:{quotes:t??[],focusQuote:null,focusNonce:0}}}function Ft(e,t){let n=String(t||``);if(!n)return e;let r=e.highlights??{quotes:[],focusQuote:null,focusNonce:0};return{...e,highlights:{...r,focusQuote:n,focusNonce:(r.focusNonce??0)+1}}}function It(e,t){let n=String(e??``),r=Rt(t),i=zt(n);for(let e of r){let t=Lt(n,e);if(t.length>0)return t;let r=$(n,e);if(r.length>0)return r;let a=zt(e);if(i!==n||a!==e){let e=Lt(i,a);if(e.length>0)return e;let t=$(i,a);if(t.length>0)return t}}return[]}function Lt(e,t){let n=String(t??``);if(!n)return[];let r=[],i=0;for(;i<=e.length-n.length;){let t=e.indexOf(n,i);if(t===-1)break;r.push({start:t,end:t+n.length}),i=t+1}return r}function $(e,t){let n=String(t??``);if(!n.trim())return[];let r=Bt(n).replace(/\s+/g,`\\s+`),i;try{i=RegExp(`(?=(${r}))`,`gu`)}catch{return[]}let a=[],o;for(;(o=i.exec(e))!==null;){let e=o.index,t=e+(o[1]??``).length;t>e&&a.push({start:e,end:t}),i.lastIndex===e&&(i.lastIndex+=1)}return a}function Rt(e){let t=String(e??``),n=t.trim(),r=new Set;for(let e of[t,n])e&&r.add(e);let i=n.replace(/^[-*•]\s+/,``);i&&i!==n&&r.add(i);let a=n.replace(/^(?:\(?\d+\)?[.)]|[a-zA-Z][.)])\s+/,``);return a&&a!==n&&r.add(a),[...r].filter(e=>e.trim().length>0)}function zt(e){return String(e??``).replace(/\r/g,`
|
|
35
|
-
`).replace(/[\u00A0\u2007\u202F\u2009\u200A\u200B\uFEFF]/g,` `).replace(/[\u201C\u201D\u201E\u00AB\u00BB]/g,`"`).replace(/[\u2018\u2019]/g,`'`).replace(/[\u2013\u2014]/g,`-`)}function Bt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Vt(e,t){let n=e.createDecorationsCollection(),r=e.createDecorationsCollection(),i=null,a=new Map,o=new Map,s=0;function c(){a=new Map,o=new Map,s=0}function l(e,t,n){return Number.isNaN(e)?t:Math.max(t,Math.min(n,e))}function u(e){return`rgba(220, 38, 38, ${l(.22+l(e,1,10)*.06,.28,.82)})`}function d(e,t){let n=String(e??``);if(!n)return[];let r=a.get(n);if(r)return r;let i=It(t,n);return a.set(n,i),i}function f(r){let i=e.getModel();if(!i)return;let a=i.getValue()??``,o=[],s=[...r||[]].sort((e,t)=>(e.count||0)-(t.count||0));for(let e of s){let n=String(e.quote||``);if(!n)continue;let r=l(Number(e.count||0),1,10),s=u(r),c=d(n,a);for(let e of c){let n=i.getPositionAt(e.start),a=i.getPositionAt(e.end);o.push({range:new t.Range(n.lineNumber,n.column,a.lineNumber,a.column),options:{inlineClassName:`analysis-quote analysis-quote-l${r}`,overviewRuler:{color:s,position:t.editor.OverviewRulerLane.Center}}})}}n.set(o)}function p(n){let i=e.getModel();if(!i)return;let a=d(n,i.getValue()??``);if(a.length===0)return;let s=((o.get(n)??-1)+1)%a.length;o.set(n,s);let c=a[s],l=i.getPositionAt(c.start),u=i.getPositionAt(c.end),f=new t.Range(l.lineNumber,l.column,u.lineNumber,u.column);r.set([{range:f,options:{inlineClassName:`analysis-quote-focus`}}]),e.setSelection(f),e.revealRangeInCenter(f,t.editor.ScrollType.Smooth),e.focus()}function m(e){if(i=e,!i){n.clear(),r.clear(),c();return}f(i.quotes||[]),i.focusQuote&&i.focusNonce!==s?(s=i.focusNonce,p(i.focusQuote)):i.focusQuote||r.clear()}let h=e.onDidChangeModelContent(()=>{i&&(a=new Map,r.clear(),f(i.quotes||[]))});return{setHighlights:m,dispose:()=>{try{h.dispose(),n.clear(),r.clear()}finally{i=null,c()}}}}var Ht=u(`<!> <!>`,1),Ut=u(`<div class="p-2 text-rc-gray-400">Connecting…</div>`),Wt=u(`<div class="p-2 text-rc-gray-400">No steps</div>`),Gt=u(`<button><span class="block truncate"> </span></button>`),Kt=u(`<div class="rc-scroll min-h-0 flex-1 overflow-auto p-2"><!></div>`),qt=u(`<span class="max-w-64 text-sm text-red-300"> </span>`),Jt=u(`<div class="absolute inset-0 z-10 min-w-0"><!> <div class="absolute bottom-2 left-3 z-20 flex items-center gap-2"><!> <!> <!></div> <!></div>`),Yt=u(`<div class="relative h-full min-w-0"><!> <!></div>`),Xt=u(`<div class="border-b border-rc-gray-700 p-2"><!></div> <div class="min-h-0 flex-1"><!></div> <!> <!>`,1),Zt=u(`<div class="text-sm text-red-300"> </div>`),Qt=u(`<div class="flex flex-col gap-2"><label for="ai-edit-request" class="font-semibold text-rc-gray-100">What do you want to change?</label> <!> <!></div>`),$t=u(`<div class="min-w-0 truncate whitespace-nowrap text-base text-rc-gray-300"> </div>`),en=u(`<p class="text-rc-gray-200">Try changing your request and suggest edits again.</p>`),tn=u(`<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 bg-rc-gray-980"><div class="flex w-1/3 justify-start"></div> <div class="flex w-1/3 justify-center"><!></div> <div class="flex w-1/3 items-center justify-end gap-2 pr-2"></div></nav> <div class="flex-1 overflow-hidden"><div class="grid h-full w-full grid-cols-[minmax(140px,2fr)_minmax(0,10fr)_minmax(0,11fr)]"><!> <div class="flex h-full min-w-0 flex-col"><div class="flex h-14 flex-none items-center justify-between gap-3 border-b border-rc-gray-700 p-2"><div class="min-w-0"><div class="truncate font-semibold text-rc-gray-100"> </div></div> <div class="flex items-center gap-3"><label class="inline-flex items-center gap-2 text-rc-gray-300"><input type="checkbox" aria-label="Preview rendered prompt" class="h-4 w-4 appearance-none rounded border border-rc-gray-300 bg-rc-gray-600 !accent-rc-gray-600 outline-none ring-0 checked:border-rc-gray-200 checked:bg-rc-gray-600 hover:border-rc-gray-200 hover:bg-rc-gray-600 focus:outline-none focus:ring-0 active:border-rc-gray-200 active:bg-rc-gray-600 disabled:cursor-not-allowed disabled:opacity-50"/> <span>Preview</span></label> <!> <!></div></div> <div class="min-h-0 flex-1"><!></div></div> <!></div></div></div></div> <!> <!> <!>`,1);function nn(e,t){m(t,!0);let{onError:r}=ae(),u=P(I([])),_=e=>{try{return e?decodeURIComponent(e):``}catch{return e||``}},y=e=>encodeURIComponent(e);function b(e){return _(e).trim().replace(/^\/+|\/+$/g,``)}let C=w(()=>b(t.params.agent)),T=w(()=>he().editable),E=I({agentId:l(()=>b(t.params.agent)),agentType:void 0,wsLoaded:!1,chatReady:!1,turnRunning:!1,steps:[],currentStep:null,promptDrafts:{},promptEdits:{},testHistoryEdits:{},conversations:[],conversationId:null,context:null,contextPopoverOpen:!1,edit:Ot({pathname:U.url.pathname})}),A=null;function M(e,t){if(typeof window>`u`)return;let n=new URL(window.location.href);t===null?n.searchParams.delete(e):n.searchParams.set(e,t),ie(n.toString(),{})}function R(e){e?.name&&E.promptDrafts[e.name]===void 0&&(E.promptDrafts[e.name]=e.prompt??``)}let H=w(()=>E.currentStep?.name??null),W=(e,t)=>`${e}\u0000${t}`,fe=(e,t)=>`${e}\u0000${t}`,K=w(()=>{let e=s(H);return e?E.promptEdits[W(E.agentId,e)]??null:null}),pe=w(()=>{let e=s(H);if(!e)return``;let t=E.promptDrafts[e];return typeof t==`string`?t:``}),me=w(()=>s(K)?.suggestedPrompt??s(pe));function ge(e=E.agentId){let t={};for(let n of Object.values(E.promptEdits))n.agentId===e&&(t[n.step]=n.suggestedPrompt);return t}function _e(e=E.agentId){let t={};for(let n of Object.values(E.testHistoryEdits))n.agentId===e&&(t[n.testId]={conversation:n.suggestedConversation});return t}function ve(e,t){return t?E.promptEdits[W(e,t)]??null:null}let J=null,Oe=null,ke=Promise.resolve();function Me(){J&&=(clearTimeout(J),null)}async function Pe(e,t,n){try{await q.agents.savePrompt.mutate({agentId:e,step:t,prompt:n}),E.agentId===e&&(E.steps=E.steps.map(e=>e.name===t?{...e,prompt:n}:e),E.currentStep=E.steps.find(e=>e.name===s(H))??E.currentStep)}catch(r){console.error(`Failed to save prompt`,r);let i=E.promptDrafts[t];throw E.agentId===e&&i===n&&(Oe={stepName:t,prompt:n}),r}}function Fe(e,t,n){let r=ke.catch(()=>{}).then(()=>Pe(e,t,n));return ke=r.catch(()=>{}),r}async function Y(){if(!Oe)return;let e=E.agentId.trim();if(!e)return;let{stepName:t,prompt:n}=Oe;Me(),Oe=null,await Fe(e,t,n)}function Ie(e,t){Oe={stepName:e,prompt:t},Me(),J=setTimeout(()=>{J=null,Y()},800)}L(()=>{E.wsLoaded&&Y()});async function Le(e){try{let t=await q.agents.get.query({agentId:e});if(E.agentId!==e)return;E.steps=t.steps,E.agentType=t.type;let n={};for(let e of E.steps){let t=E.promptDrafts[e.name];n[e.name]=typeof t==`string`?t:e.prompt??``}E.promptDrafts=n,Re()}catch(e){console.error(`Failed to load agent`,e),r(e instanceof Error?e.message:String(e))}}function Re(){let e=(U.url.searchParams.get(`step`)||``).trim()||null,t=e?E.steps.find(t=>t.name===e)??null:null,n=E.steps.find(e=>e.name.toLowerCase()===`main`)??E.steps.find(e=>be(e.name))??E.steps[0]??null,r=t??n;E.currentStep=r,r?(R(r),r.name!==e&&M(`step`,r.name),Y()):M(`step`,null)}function ze(e){Se(),Ee();for(let t of e.entries)Be(t)}function Be(e){switch(e.kind){case`log`:De(e.payload);break;case`step-trace`:we({...e.payload,bosunTurn:e.turn});break;case`api-call-trace`:Te({...e.payload,bosunTurn:e.turn});break;case`conversational-trace`:Ce({...e.payload,bosunTurn:e.turn})}}async function Ve(e){try{E.conversations=await q.conversations.list.query({agentId:e})}catch(e){console.error(`Failed to list conversations`,e),E.conversations=[]}}async function He(e){try{let t=await q.conversations.get.query({conversationId:e});if(t.agentId!==E.agentId)return;E.conversationId=e,E.context=t.context,M(`conversation`,e),ze(t),E.chatReady=!0}catch(e){console.error(`Failed to open conversation`,e),r(e instanceof Error?e.message:String(e))}}async function Ue(e){try{let t=await q.conversations.get.query({conversationId:e});if(E.conversationId!==e)return;E.context=t.context}catch(e){console.error(`Failed to refresh conversation context`,e)}}async function We(e){let t=await q.conversations.create.mutate({agentId:e});E.conversationId=t.conversationId,E.context=t.context,M(`conversation`,t.conversationId),Se(),Ee(),E.chatReady=!0,await Ve(e),Sn({type:`start`,agentId:e,conversationId:t.conversationId,promptOverrides:ge()})}async function Ge(e){await Ve(e);let t=(U.url.searchParams.get(`conversation`)||``).trim()||null,n=E.conversations.some(e=>e.conversationId===t);if(t&&n){await He(t);return}let r=E.conversations[0]?.conversationId;if(r){await He(r);return}await We(e)}function Ke(e){Y(),$();let t=E.steps.find(t=>t.name===e)||null;E.currentStep=t,t?(R(t),M(`step`,t.name),M(`promptEdit`,ve(E.agentId,t.name)?.id??null)):M(`step`,null)}function qe(e){let t=s(H);!t||!s(T)||(E.promptDrafts[t]=e,Ie(t,e))}let Je=P(!1),X=P(``),Ye=P(null),Z=P(!1),Xe=P(null);function Ze(e){return(e||``).replace(/[*_`]/g,``).replace(/(^|\s)#{1,6}\s+/g,` `).replace(/\s+/g,` `).trim()||`Thinking...`}let Qe=w(()=>Ze(s(Xe)?.summary)),$e=P(null),et=P(null),nt=P(!1),rt=P(!1),Q=0,at=!1,ot=new Set;L(()=>{let e=s(Je);at&&!e&&s(Z)&&(Q+=1,x(Z,!1)),at=e});function st(e=``,t){if(!E.currentStep)return;let n=t?ve(E.agentId,t.step):s(K);(!t||t.kind===`test-fix`)&&n||(x(X,e,!0),x(Ye,t??null,!0),x($e,null),x(rt,!1),x(Je,!0))}function ct(){Q+=1,x(Z,!1),x(Je,!1),x(Ye,null),x(rt,!1)}async function lt(e,t){for(;t===Q&&s(Z);){try{let n=await q.agents.promptEditProgress.query({id:e});if(t!==Q||!s(Z))return;n&&x(Xe,{phase:n.phase,activity:n.activity,summary:n.summary},!0)}catch(e){t===Q&&console.warn(`Failed to read prompt edit progress`,e)}await new Promise(e=>setTimeout(e,400))}}async function ut(){let e=s(X).trim(),t=s(Ye),n=t?.step??s(H),r=E.agentId.trim();if(!e||!n||!r||s(Z))return;let i=++Q,a=crypto.randomUUID();x(Z,!0),x(Xe,null),x($e,null),lt(a,i);try{if(!t&&(await Y(),i!==Q))return;let o=null,s=null,c=null;if(t?.kind===`test-fix`){let i=await q.agents.suggestTestFix.mutate({agentId:r,testId:t.testId,step:n,request:e,prompt:t.prompt,basePrompt:t.basePrompt,currentIncorrectOutcome:t.currentIncorrectOutcome??``,progressId:a});s=i.history,c=i.prompt}else t?s=await q.tests.suggestHistoryEdit.mutate({agent:r,testId:t.testId,step:n,request:e,prompt:t.prompt,basePrompt:t.basePrompt,progressId:a}):c=await q.agents.suggestPromptEdit.mutate({agentId:r,step:n,request:e,progressId:a});if(i!==Q)return;if(t&&s?.status===`changed`&&(o=s.proposal),!o&&(!c||c.status===`unchanged`)){x(rt,!0);return}if(o&&(E.testHistoryEdits[fe(o.agentId,o.testId)]=o),c?.status===`changed`){let e=c.proposal;E.promptEdits[W(e.agentId,e.step)]=e,M(`promptEdit`,e.id)}x(Je,!1),x(cn,!1),x(Ye,null)}catch(e){if(i!==Q)return;console.error(`Failed to suggest prompt edits`,e),x($e,e instanceof Error?e.message:`Failed to suggest edits`,!0)}finally{i===Q&&(x(Z,!1),x(Xe,null))}}function dt(e){for(let[t,n]of Object.entries(E.promptEdits))n.id===e&&delete E.promptEdits[t];U.url.searchParams.get(`promptEdit`)===e&&M(`promptEdit`,null)}function ft(){let e=s(K);!e||s(nt)||(Et(),x(et,null),dt(e.id),q.agents.rejectPromptEdit.mutate({id:e.id}).catch(e=>{console.error(`Failed to release rejected prompt edit`,e)}))}async function pt(){let e=s(K);if(!e||s(nt))return;let t=on??sn,n=t?.saveViewState()??null,r=t?.getVisibleRanges()[0]?.startLineNumber??null,i=r&&t?t.getTopForLineNumber(r)-t.getScrollTop():0;Et(),x(nt,!0),x(et,null);try{let t=await q.agents.acceptPromptEdit.mutate({id:e.id});if(E.promptDrafts[e.step]=t.prompt,E.steps=E.steps.map(n=>n.name===e.step?{...n,prompt:t.prompt}:n),E.currentStep=E.steps.find(e=>e.name===s(H))??E.currentStep,await F(),dt(e.id),await F(),n&&an){let e=an;requestAnimationFrame(()=>{if(an===e)try{e.restoreViewState(n),r&&e.setScrollTop(e.getTopForLineNumber(r)-i)}catch(e){console.warn(`Failed to preserve accepted prompt scroll position`,e)}})}}catch(e){console.error(`Failed to accept prompt edit`,e),x(et,e instanceof Error?e.message:`Failed to save prompt`,!0)}finally{x(nt,!1)}}L(()=>{let e=(U.url.searchParams.get(`promptEdit`)||``).trim();!e||ot.has(e)||(ot.add(e),q.agents.promptEditProposal.query({id:e}).then(e=>{!e||e.agentId!==E.agentId||(E.promptEdits[W(e.agentId,e.step)]=e)}).catch(e=>console.error(`Failed to restore prompt edit`,e)))});let mt=w(()=>E.currentStep?.schema??null),ht=w(()=>!!s(mt)&&s(mt).trim().length>0),gt=P(!1);function _t(){s(mt)&&x(gt,!0)}function vt({value:e}){if(e===E.edit.tab)return;Y(),$();let t=U.url.searchParams.get(`step`),n=`/edit/${y(E.agentId)}/${e}`,r=new URLSearchParams;t&&r.set(`step`,t),E.conversationId&&r.set(`conversation`,E.conversationId),s(K)&&r.set(`promptEdit`,s(K).id);let i=r.size?`${n}?${r.toString()}`:n;V(i)}let yt=w(()=>{let e=U.url.pathname.split(`/`)[1];return e===`traces`?`view`:e});function bt({value:e}){if(e!==s(yt)){if(Y(),$(),e===`edit`)return V(`/edit`);if(e===`view`){let e=new URLSearchParams({agent:E.agentId});return V(`/view?${e.toString()}`)}V(`/`+e)}}function xt(e){return E.contextPopoverOpen=!1,E.edit=At(E.edit,{kind:e}),E.edit.popover?.requestId??0}function St(e,t){E.edit=jt(E.edit,{requestId:e,data:t})}function wt(e,t,n){E.edit=Mt(E.edit,{requestId:e,error:t,data:n})}function Et(){E.edit=Nt(E.edit)}function Dt(){Et(),E.contextPopoverOpen=!0}function It(){E.contextPopoverOpen=!1}function Lt(){E.contextPopoverOpen?It():Dt()}function $(){Et(),It()}function Rt(e){return e===`analyze`?`Analyze`:`Find issues`}function zt(e){E.edit=Pt(E.edit,e)}function Bt(e){E.edit=Ft(E.edit,e)}let nn=null,rn=null,an=null,on=null,sn=null,cn=P(!1),ln=null,un=P(I({}));function dn(e){try{return tt.default.configure({autoescape:!1,trimBlocks:!0,lstripBlocks:!0}),tt.default.renderString(e,s(un))}catch(t){return console.error(`Failed to render prompt preview`,t),e}}let fn=w(()=>{let e=s(K);return e?s(cn)?dn(e.originalPrompt):e.originalPrompt:``}),pn=w(()=>{let e=s(K);return e?s(cn)?dn(e.suggestedPrompt):e.suggestedPrompt:``});L(()=>{let e=E.currentStep?.name??null;e!==ln&&(ln=e,x(cn,!1))});function mn(e,t){an=e,nn?.dispose(),nn=Vt(e,t),nn.setHighlights(E.edit.highlights)}function hn(e,t){on=e,rn?.dispose(),rn=Vt(e,t),rn.setHighlights(E.edit.highlights)}L(()=>{let e=E.edit.highlights;s(K)&&E.edit.popover?rn?.setHighlights(e):nn?.setHighlights(e)}),L(()=>{s(K)&&E.edit.popover||(rn?.dispose(),rn=null,on=null)});let gn=P(``);L(()=>{let e=U.url.toString();e!==s(gn)&&(x(gn,e,!0),E.edit=kt(E.edit,{pathname:U.url.pathname}),E.contextPopoverOpen=!1)});function _n(e,t,n){return Math.max(t,Math.min(n,e))}function vn(e){let t=new Map;for(let n of e||[])for(let e of n.contradictingQuotes||[]){let n=String(e||``).trim();n&&t.set(n,(t.get(n)||0)+1)}return[...t.entries()].map(([e,t])=>({quote:e,count:_n(t,1,10)})).sort((e,t)=>t.count-e.count||e.quote.localeCompare(t.quote))}let yn=P(!1);async function bn(){if(s(yn)||!E.currentStep)return;x(yn,!0);let e=xt(`findIssues`);try{let t=await q.tests.findPromptIssues.mutate({agent:E.agentId,step:E.currentStep.name,prompt:s(me)}),n=vn(t.issues||[]);if(E.edit.popover?.requestId!==e)return;zt(n);let r=null;try{r=JSON.stringify(t.raw,null,2)}catch{r=null}St(e,{title:`Prompt issues — ${E.currentStep.name}`,issues:t.issues,raw:r})}catch(t){console.error(t);let n=typeof t?.message==`string`?t.message:(()=>{try{return JSON.stringify(t)}catch{return String(t)}})();wt(e,n||`Failed to find issues in this prompt`,{title:`Prompt issues failed — ${E.currentStep.name}`,raw:n})}finally{x(yn,!1)}}function xn(e){Y(),$();let t=U.url.searchParams.get(`step`),n=`/edit/${y(e)}/${E.edit.tab}`,r=new URLSearchParams;t&&r.set(`step`,t);let i=ve(e,t);i&&r.set(`promptEdit`,i.id);let a=r.size?`${n}?${r.toString()}`:n;V(a)}function Sn(e){if(!E.wsLoaded){console.warn(`[roleplay] Ignoring request while websocket is reconnecting`);return}E.turnRunning=!0,je.send(e)}oe({state:E,actions:{openPopover:xt,setPopoverReady:St,setPopoverError:wt,closePopover:Et,setHighlightQuotes:zt,focusQuote:Bt,openAiEdit:(e,t)=>st(e,t),openContextPopover:Dt,closeContextPopover:It,toggleContextPopover:Lt,sendChatMessage:e=>{let t=E.conversationId;if(!t||!E.chatReady){console.warn(`[roleplay] Ignoring chat message: no open conversation`);return}Sn({type:`message`,agentId:E.agentId,conversationId:t,message:e,promptOverrides:ge()})},selectConversation:e=>{Y(),$(),e&&He(e)},newConversation:async()=>{Y(),$(),await We(E.agentId)},deleteConversation:async e=>{if(await q.conversations.delete.mutate({conversationId:e}),await Ve(E.agentId),E.conversationId!==e)return;let t=E.conversations[0]?.conversationId;t?await He(t):await We(E.agentId)},regenerateFromTurn:async e=>{let t=E.conversationId;if(!t)return;await Y(),$();let{inboundMessage:n}=await q.conversations.truncate.mutate({conversationId:t,fromTurn:e});ze(await q.conversations.get.query({conversationId:t})),n&&Sn({type:`message`,agentId:E.agentId,conversationId:t,message:n,promptOverrides:ge()})},flushPromptSave:Y,getPromptOverrides:()=>ge(),getTestHistoryOverrides:()=>_e(),getActivePromptEditId:()=>s(K)?.id??null,hangup(){let e=E.conversationId;e&&Sn({type:`hangup`,agentId:E.agentId,conversationId:e})}}}),ne(async()=>{try{x(u,await q.agents.catalog.query(),!0)}catch(e){console.error(`Failed to load agents`,e)}je.onClose(()=>{E.wsLoaded=!1,E.chatReady=!1,E.turnRunning=!1}),je.onError(e=>{E.turnRunning=!1,r(e)}),je.onEvent(e=>{if(e.conversationId===E.conversationId){if(e.type===`entry`){Be(e.entry);return}if(e.type===`turn-started`){E.turnRunning=!0;return}e.type===`turn-finished`&&(E.turnRunning=!1,Ve(E.agentId),Ue(e.conversationId))}}),je.onOpen(()=>{E.wsLoaded=!0}),je.init(),E.wsLoaded=je.isReady()}),j(()=>{Y(),Me(),nn?.dispose(),nn=null,an=null,rn?.dispose(),rn=null,on=null,sn=null}),L(()=>{let e=s(C);e!==A&&(Y(),Oe=null,Me(),A=e,E.agentId=e,E.chatReady=!1,E.turnRunning=!1,E.promptDrafts={},E.steps=[],E.currentStep=null,E.conversations=[],E.conversationId=null,E.context=null,x(un,{},!0),Se(),Ee(),$(),e&&(Le(e),Ge(e),q.agents.context.query({agentId:e}).then(t=>{E.agentId===e&&x(un,t??{},!0)}).catch(e=>console.error(`Failed to load prompt preview context`,e))))});var Cn=tn(),wn=v(Cn),Tn=D(wn);xe(Tn,{className:`flex-none`,get agents(){return s(u)},get currentAgent(){return E.agentId},onAgentClick:xn});var En=N(Tn,2),Dn=D(En),On=N(D(Dn),2),kn=D(On);ce(kn,{get value(){return s(yt)},ariaLabel:`Top tabs`,onChange:bt,children:(e,t)=>{var n=Ht(),r=v(n);le(r,{value:`edit`,children:(e,t)=>{f();var n=B(`Edit`);o(e,n)},$$slots:{default:!0}});var i=N(r,2);le(i,{value:`view`,children:(e,t)=>{f();var n=B(`View`);o(e,n)},$$slots:{default:!0}}),o(e,n)},$$slots:{default:!0}}),h(On),f(2),h(Dn);var An=N(Dn,2),jn=D(An),Mn=D(jn);se(Mn,{class:`flex h-full min-w-0 flex-col !rounded-none p-0`,children:(e,t)=>{var n=Kt(),r=D(n),i=e=>{var t=Ut();o(e,t)},a=e=>{var t=Wt();o(e,t)},l=e=>{var t=c(),n=v(t);p(n,17,()=>E.steps,k,(e,t)=>{var n=Gt(),r=D(n),i=D(r,!0);h(r),h(n),S(()=>{z(n,1,`my-1 w-full rounded-lg px-3 py-2 text-left text-rc-gray-200 hover:bg-rc-gray-700 ${s(t).name===E.currentStep?.name?`bg-rc-gray-600`:`bg-transparent`}`),d(i,s(t).name)}),g(`click`,n,()=>Ke(s(t).name)),o(e,n)}),o(e,t)};O(r,e=>{E.wsLoaded?E.steps.length===0?e(a,1):e(l,-1):e(i)}),h(n),o(e,n)},$$slots:{default:!0}});var Nn=N(Mn,2),Pn=D(Nn),Fn=D(Pn),In=D(Fn),Ln=D(In,!0);h(In),h(Fn);var Rn=N(Fn,2),zn=D(Rn),Bn=D(zn);te(Bn),f(2),h(zn);var Vn=N(zn,2);{let e=w(()=>!E.currentStep||s(yn));G(Vn,{variant:`secondary`,get disabled(){return s(e)},onclick:bn,children:(e,t)=>{f();var n=B(`Find issues`);o(e,n)},$$slots:{default:!0}})}var Hn=N(Vn,2);{let e=w(()=>!E.currentStep||!!s(K)||s(Z));G(Hn,{variant:`secondary`,get disabled(){return s(e)},onclick:()=>st(),children:(e,t)=>{f();var n=B(`Edit with AI`);o(e,n)},$$slots:{default:!0}})}h(Rn),h(Pn);var Un=N(Pn,2),Wn=D(Un),Gn=e=>{var t=Yt(),r=D(t);n(r,()=>E.currentStep.name,e=>{{let t=w(()=>s(ht)&&!s(K)),n=w(()=>!s(T)||!!s(K)),r=w(()=>s(K)?`Accept or reject the AI suggestion before editing.`:s(T)?``:`Bosun is running in read-only mode.`),i=w(()=>!s(K)&&s(cn));it(e,{class:`h-full min-w-0 focus:outline-none focus:ring-0`,get initialPrompt(){return s(pe)},get agentId(){return E.agentId},get stepName(){return E.currentStep.name},onPromptChanged:qe,get showSchemaButton(){return s(t)},onSchemaClick:_t,get readOnly(){return s(n)},get readOnlyMessage(){return s(r)},showPreviewToggle:!1,get preview(){return s(i)},onEditorReady:mn})}});var i=N(r,2),a=e=>{var t=Jt(),n=D(t),r=e=>{it(e,{class:`h-full min-w-0 focus:outline-none focus:ring-0`,get initialPrompt(){return s(K).suggestedPrompt},get agentId(){return E.agentId},get stepName(){return E.currentStep.name},onPromptChanged:()=>{},showSchemaButton:!1,readOnly:!0,readOnlyMessage:`Accept or reject the AI suggestion before editing.`,bottomPadding:56,showPreviewToggle:!1,onEditorReady:hn})},i=e=>{ye(e,{variant:`prompt`,class:`h-full min-w-0`,get original(){return s(fn)},get modified(){return s(pn)},inline:!0,bottomPadding:56,readOnlyMessage:`Accept or reject the AI suggestion before editing.`,onModifiedEditorReady:e=>sn=e})};O(n,e=>{E.edit.popover?e(r):e(i,-1)});var a=N(n,2),c=D(a);G(c,{variant:`secondary`,get disabled(){return s(nt)},onclick:ft,children:(e,t)=>{f();var n=B(`✕ Reject`);o(e,n)},$$slots:{default:!0}});var l=N(c,2);{let e=w(()=>s(nt)||!s(T));G(l,{get disabled(){return s(e)},onclick:pt,children:(e,t)=>{f();var n=B(`✓ Accept`);o(e,n)},$$slots:{default:!0}})}var u=N(l,2),p=e=>{var t=qt(),n=D(t,!0);h(t),S(()=>d(n,s(et))),o(e,t)};O(u,e=>{s(et)&&e(p)}),h(a);var m=N(a,2),g=e=>{G(e,{variant:`secondary`,onclick:_t,class:`absolute bottom-2 right-6 z-20 !font-medium`,children:(e,t)=>{f();var n=B(`Schema`);o(e,n)},$$slots:{default:!0}})};O(m,e=>{s(ht)&&e(g)}),h(t),o(e,t)};O(i,e=>{s(K)&&e(a)}),h(t),o(e,t)},Kn=e=>{se(e,{class:`flex h-full min-w-0 items-center justify-center !rounded-none p-4 text-sm text-rc-gray-400`,children:(e,t)=>{f();var n=B(`Select a step to edit its prompt`);o(e,n)},$$slots:{default:!0}})};O(Wn,e=>{E.currentStep?e(Gn):e(Kn,-1)}),h(Un),h(Nn);var qn=N(Nn,2);se(qn,{class:`relative flex h-full min-w-0 flex-col overflow-hidden !rounded-none p-0`,children:(e,n)=>{var r=Xt(),i=v(r),c=D(i);ce(c,{get value(){return E.edit.tab},ariaLabel:`Mode tabs`,onChange:vt,children:(e,t)=>{var n=Ht(),r=v(n);le(r,{value:`roleplay`,children:(e,t)=>{f();var n=B(`Roleplay`);o(e,n)},$$slots:{default:!0}});var i=N(r,2);le(i,{value:`tests`,children:(e,t)=>{f();var n=B(`Tests`);o(e,n)},$$slots:{default:!0}}),o(e,n)},$$slots:{default:!0}}),h(i);var l=N(i,2),u=D(l);a(u,()=>t.children),h(l);var d=N(l,2),p=e=>{{let t=e=>{Ct(e,{})},n=w(()=>Rt(E.edit.popover.kind));de(e,{get title(){return s(n)},onClose:Et,children:t,$$slots:{default:!0}})}};O(d,e=>{E.edit.popover&&e(p)});var m=N(d,2),g=e=>{de(e,{title:`Context`,onClose:It,children:e=>{Tt(e,{})},$$slots:{default:!0}})};O(m,e=>{E.contextPopoverOpen&&e(g)}),o(e,r)},$$slots:{default:!0}}),h(jn),h(An),h(En),h(wn);var Jn=N(wn,2);ue(Jn,{title:`Edit with AI`,class:`!max-w-xl`,get underlayOpen(){return s(Z)},get open(){return s(Je)},set open(e){x(Je,e,!0)},children:e=>{var t=Qt(),n=N(D(t),2);Ae(n,{id:`ai-edit-request`,rows:6,get disabled(){return s(Z)},placeholder:`I want the agent to ask the user's name during the greeting`,class:`rc-scroll disabled:cursor-wait disabled:opacity-70`,get value(){return s(X)},set value(e){x(X,e,!0)}});var r=N(n,2),i=e=>{var t=Zt(),n=D(t,!0);h(t),S(()=>d(n,s($e))),o(e,t)};O(r,e=>{s($e)&&e(i)}),h(t),o(e,t)},footer:e=>{var t=Ht(),n=v(t);G(n,{variant:`outlined`,size:`small`,onclick:ct,children:(e,t)=>{f();var n=B(`Cancel`);o(e,n)},$$slots:{default:!0}});var r=N(n,2);{let e=w(()=>!s(X).trim()||s(Z));G(r,{size:`small`,get disabled(){return s(e)},onclick:ut,children:(e,t)=>{f();var n=B();S(()=>d(n,s(Z)?`Suggesting edits…`:`Suggest edits`)),o(e,n)},$$slots:{default:!0}})}o(e,t)},underlay:e=>{var t=$t(),n=D(t,!0);h(t),S(()=>{ee(t,`title`,s(Qe)),d(n,s(Qe))}),o(e,t)},$$slots:{default:!0,footer:!0,underlay:!0}});var Yn=N(Jn,2);ue(Yn,{title:`No changes were suggested`,class:`!z-[60] !max-w-md`,overlayClass:`!z-[60]`,get open(){return s(rt)},set open(e){x(rt,e,!0)},children:e=>{var t=en();o(e,t)},footer:e=>{G(e,{size:`small`,onclick:()=>x(rt,!1),children:(e,t)=>{f();var n=B(`Close`);o(e,n)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var Xn=N(Yn,2),Zn=e=>{ue(e,{title:`Schema`,class:`!w-[80vw] !max-w-5xl`,get open(){return s(gt)},set open(e){x(gt,e,!0)},children:e=>{Ne(e,{class:`h-[70vh] min-w-0`,get schema(){return s(mt)}})},footer:e=>{G(e,{size:`small`,onclick:()=>x(gt,!1),children:(e,t)=>{f();var n=B(`Close`);o(e,n)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}})};O(Xn,e=>{s(mt)&&e(Zn)}),S(()=>{d(Ln,E.currentStep?.name??`Prompt`),Bn.disabled=!E.currentStep||!!s(K)&&!!E.edit.popover}),re(Bn,()=>s(cn),e=>x(cn,e)),o(e,Cn),i()}r([`click`]);export{nn as component};
|
|
35
|
+
`).replace(/[\u00A0\u2007\u202F\u2009\u200A\u200B\uFEFF]/g,` `).replace(/[\u201C\u201D\u201E\u00AB\u00BB]/g,`"`).replace(/[\u2018\u2019]/g,`'`).replace(/[\u2013\u2014]/g,`-`)}function Bt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Vt(e,t){let n=e.createDecorationsCollection(),r=e.createDecorationsCollection(),i=null,a=new Map,o=new Map,s=0;function c(){a=new Map,o=new Map,s=0}function l(e,t,n){return Number.isNaN(e)?t:Math.max(t,Math.min(n,e))}function u(e){return`rgba(220, 38, 38, ${l(.22+l(e,1,10)*.06,.28,.82)})`}function d(e,t){let n=String(e??``);if(!n)return[];let r=a.get(n);if(r)return r;let i=It(t,n);return a.set(n,i),i}function f(r){let i=e.getModel();if(!i)return;let a=i.getValue()??``,o=[],s=[...r||[]].sort((e,t)=>(e.count||0)-(t.count||0));for(let e of s){let n=String(e.quote||``);if(!n)continue;let r=l(Number(e.count||0),1,10),s=u(r),c=d(n,a);for(let e of c){let n=i.getPositionAt(e.start),a=i.getPositionAt(e.end);o.push({range:new t.Range(n.lineNumber,n.column,a.lineNumber,a.column),options:{inlineClassName:`analysis-quote analysis-quote-l${r}`,overviewRuler:{color:s,position:t.editor.OverviewRulerLane.Center}}})}}n.set(o)}function p(n){let i=e.getModel();if(!i)return;let a=d(n,i.getValue()??``);if(a.length===0)return;let s=((o.get(n)??-1)+1)%a.length;o.set(n,s);let c=a[s],l=i.getPositionAt(c.start),u=i.getPositionAt(c.end),f=new t.Range(l.lineNumber,l.column,u.lineNumber,u.column);r.set([{range:f,options:{inlineClassName:`analysis-quote-focus`}}]),e.setSelection(f),e.revealRangeInCenter(f,t.editor.ScrollType.Smooth),e.focus()}function m(e){if(i=e,!i){n.clear(),r.clear(),c();return}f(i.quotes||[]),i.focusQuote&&i.focusNonce!==s?(s=i.focusNonce,p(i.focusQuote)):i.focusQuote||r.clear()}let h=e.onDidChangeModelContent(()=>{i&&(a=new Map,r.clear(),f(i.quotes||[]))});return{setHighlights:m,dispose:()=>{try{h.dispose(),n.clear(),r.clear()}finally{i=null,c()}}}}var Ht=u(`<!> <!>`,1),Ut=u(`<div class="p-2 text-rc-gray-400">Connecting…</div>`),Wt=u(`<div class="p-2 text-rc-gray-400">No steps</div>`),Gt=u(`<button><span class="block truncate"> </span></button>`),Kt=u(`<div class="rc-scroll min-h-0 flex-1 overflow-auto p-2"><!></div>`),qt=u(`<span class="max-w-64 text-sm text-red-300"> </span>`),Jt=u(`<div class="absolute inset-0 z-10 min-w-0"><!> <div class="absolute bottom-2 left-3 z-20 flex items-center gap-2"><!> <!> <!></div> <!></div>`),Yt=u(`<div class="relative h-full min-w-0"><!> <!></div>`),Xt=u(`<div class="border-b border-rc-gray-700 p-2"><!></div> <div class="min-h-0 flex-1"><!></div> <!> <!>`,1),Zt=u(`<div class="text-sm text-red-300"> </div>`),Qt=u(`<div class="flex flex-col gap-2"><label for="ai-edit-request" class="font-semibold text-rc-gray-100">What do you want to change?</label> <!> <!></div>`),$t=u(`<div class="min-w-0 truncate whitespace-nowrap text-base text-rc-gray-300"> </div>`),en=u(`<p class="text-rc-gray-200">Try changing your request and suggest edits again.</p>`),tn=u(`<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 bg-rc-gray-980"><div class="flex w-1/3 justify-start"></div> <div class="flex w-1/3 justify-center"><!></div> <div class="flex w-1/3 items-center justify-end gap-2 pr-2"></div></nav> <div class="flex-1 overflow-hidden"><div class="grid h-full w-full grid-cols-[minmax(140px,2fr)_minmax(0,10fr)_minmax(0,11fr)]"><!> <div class="flex h-full min-w-0 flex-col"><div class="flex h-14 flex-none items-center justify-between gap-3 border-b border-rc-gray-700 p-2"><div class="min-w-0"><div class="truncate font-semibold text-rc-gray-100"> </div></div> <div class="flex items-center gap-3"><label class="inline-flex items-center gap-2 text-rc-gray-300"><input type="checkbox" aria-label="Preview rendered prompt" class="h-4 w-4 appearance-none rounded border border-rc-gray-300 bg-rc-gray-600 !accent-rc-gray-600 outline-none ring-0 checked:border-rc-gray-200 checked:bg-rc-gray-600 hover:border-rc-gray-200 hover:bg-rc-gray-600 focus:outline-none focus:ring-0 active:border-rc-gray-200 active:bg-rc-gray-600 disabled:cursor-not-allowed disabled:opacity-50"/> <span>Preview</span></label> <!> <!></div></div> <div class="min-h-0 flex-1"><!></div></div> <!></div></div></div></div> <!> <!> <!>`,1);function nn(e,t){m(t,!0);let{onError:r}=ae(),u=P(I([])),_=e=>{try{return e?decodeURIComponent(e):``}catch{return e||``}},y=e=>encodeURIComponent(e);function b(e){return _(e).trim().replace(/^\/+|\/+$/g,``)}let C=w(()=>b(t.params.agent)),T=w(()=>he().editable),E=I({agentId:l(()=>b(t.params.agent)),agentType:void 0,wsLoaded:!1,chatReady:!1,turnRunning:!1,steps:[],currentStep:null,promptDrafts:{},promptEdits:{},testHistoryEdits:{},conversations:[],conversationId:null,context:null,contextPopoverOpen:!1,edit:Ot({pathname:U.url.pathname})}),A=null;function M(e,t){if(typeof window>`u`)return;let n=new URL(window.location.href);t===null?n.searchParams.delete(e):n.searchParams.set(e,t),ie(n.toString(),{})}function R(e){e?.name&&E.promptDrafts[e.name]===void 0&&(E.promptDrafts[e.name]=e.prompt??``)}let H=w(()=>E.currentStep?.name??null),W=(e,t)=>`${e}\u0000${t}`,fe=(e,t)=>`${e}\u0000${t}`,K=w(()=>{let e=s(H);return e?E.promptEdits[W(E.agentId,e)]??null:null}),pe=w(()=>{let e=s(H);if(!e)return``;let t=E.promptDrafts[e];return typeof t==`string`?t:``}),me=w(()=>s(K)?.suggestedPrompt??s(pe));function ge(e=E.agentId){let t={};for(let n of Object.values(E.promptEdits))n.agentId===e&&(t[n.step]=n.suggestedPrompt);return t}function _e(e=E.agentId){let t={};for(let n of Object.values(E.testHistoryEdits))n.agentId===e&&(t[n.testId]={conversation:n.suggestedConversation});return t}function ve(e,t){return t?E.promptEdits[W(e,t)]??null:null}let J=null,Oe=null,ke=Promise.resolve();function Me(){J&&=(clearTimeout(J),null)}async function Pe(e,t,n){try{await q.agents.savePrompt.mutate({agentId:e,step:t,prompt:n}),E.agentId===e&&(E.steps=E.steps.map(e=>e.name===t?{...e,prompt:n}:e),E.currentStep=E.steps.find(e=>e.name===s(H))??E.currentStep)}catch(r){console.error(`Failed to save prompt`,r);let i=E.promptDrafts[t];throw E.agentId===e&&i===n&&(Oe={stepName:t,prompt:n}),r}}function Fe(e,t,n){let r=ke.catch(()=>{}).then(()=>Pe(e,t,n));return ke=r.catch(()=>{}),r}async function Y(){if(!Oe)return;let e=E.agentId.trim();if(!e)return;let{stepName:t,prompt:n}=Oe;Me(),Oe=null,await Fe(e,t,n)}function Ie(e,t){Oe={stepName:e,prompt:t},Me(),J=setTimeout(()=>{J=null,Y()},800)}L(()=>{E.wsLoaded&&Y()});async function Le(e){try{let t=await q.agents.get.query({agentId:e});if(E.agentId!==e)return;E.steps=t.steps,E.agentType=t.type;let n={};for(let e of E.steps){let t=E.promptDrafts[e.name];n[e.name]=typeof t==`string`?t:e.prompt??``}E.promptDrafts=n,Re()}catch(e){console.error(`Failed to load agent`,e),r(e instanceof Error?e.message:String(e))}}function Re(){let e=(U.url.searchParams.get(`step`)||``).trim()||null,t=e?E.steps.find(t=>t.name===e)??null:null,n=E.steps.find(e=>e.name.toLowerCase()===`main`)??E.steps.find(e=>be(e.name))??E.steps[0]??null,r=t??n;E.currentStep=r,r?(R(r),r.name!==e&&M(`step`,r.name),Y()):M(`step`,null)}function ze(e){Se(),Ee();for(let t of e.entries)Be(t)}function Be(e){switch(e.kind){case`log`:De(e.payload);break;case`step-trace`:we({...e.payload,bosunTurn:e.turn});break;case`api-call-trace`:Te({...e.payload,bosunTurn:e.turn});break;case`conversational-trace`:Ce({...e.payload,bosunTurn:e.turn})}}async function Ve(e){try{E.conversations=await q.conversations.list.query({agentId:e})}catch(e){console.error(`Failed to list conversations`,e),E.conversations=[]}}async function He(e){try{let t=await q.conversations.get.query({conversationId:e});if(t.agentId!==E.agentId)return;E.conversationId=e,E.context=t.context,M(`conversation`,e),ze(t),E.chatReady=!0}catch(e){console.error(`Failed to open conversation`,e),r(e instanceof Error?e.message:String(e))}}async function Ue(e){try{let t=await q.conversations.get.query({conversationId:e});if(E.conversationId!==e)return;E.context=t.context}catch(e){console.error(`Failed to refresh conversation context`,e)}}async function We(e){let t=await q.conversations.create.mutate({agentId:e});E.conversationId=t.conversationId,E.context=t.context,M(`conversation`,t.conversationId),Se(),Ee(),E.chatReady=!0,await Ve(e),Sn({type:`start`,agentId:e,conversationId:t.conversationId,promptOverrides:ge()})}async function Ge(e){await Ve(e);let t=(U.url.searchParams.get(`conversation`)||``).trim()||null,n=E.conversations.some(e=>e.conversationId===t);if(t&&n){await He(t);return}let r=E.conversations[0]?.conversationId;if(r){await He(r);return}await We(e)}function Ke(e){Y(),$();let t=E.steps.find(t=>t.name===e)||null;E.currentStep=t,t?(R(t),M(`step`,t.name),M(`promptEdit`,ve(E.agentId,t.name)?.id??null)):M(`step`,null)}function qe(e){let t=s(H);!t||!s(T)||(E.promptDrafts[t]=e,Ie(t,e))}let Je=P(!1),X=P(``),Ye=P(null),Z=P(!1),Xe=P(null);function Ze(e){return(e||``).replace(/[*_`]/g,``).replace(/(^|\s)#{1,6}\s+/g,` `).replace(/\s+/g,` `).trim()||`Thinking...`}let Qe=w(()=>Ze(s(Xe)?.summary)),$e=P(null),et=P(null),nt=P(!1),rt=P(!1),Q=0,at=!1,ot=new Set;L(()=>{let e=s(Je);at&&!e&&s(Z)&&(Q+=1,x(Z,!1)),at=e});function st(e=``,t){if(!E.currentStep)return;let n=t?ve(E.agentId,t.step):s(K);(!t||t.kind===`test-fix`)&&n||(x(X,e,!0),x(Ye,t??null,!0),x($e,null),x(rt,!1),x(Je,!0))}function ct(){Q+=1,x(Z,!1),x(Je,!1),x(Ye,null),x(rt,!1)}async function lt(e,t){for(;t===Q&&s(Z);){try{let n=await q.agents.promptEditProgress.query({id:e});if(t!==Q||!s(Z))return;n&&x(Xe,{phase:n.phase,activity:n.activity,summary:n.summary},!0)}catch(e){t===Q&&console.warn(`Failed to read prompt edit progress`,e)}await new Promise(e=>setTimeout(e,400))}}async function ut(){let e=s(X).trim(),t=s(Ye),n=t?.step??s(H),r=E.agentId.trim();if(!e||!n||!r||s(Z))return;let i=++Q,a=crypto.randomUUID();x(Z,!0),x(Xe,null),x($e,null),lt(a,i);try{if(!t&&(await Y(),i!==Q))return;let o=null,s=null,c=null;if(t?.kind===`test-fix`){let i=await q.agents.suggestTestFix.mutate({agentId:r,testId:t.testId,step:n,request:e,prompt:t.prompt,basePrompt:t.basePrompt,currentIncorrectOutcome:t.currentIncorrectOutcome??``,progressId:a});s=i.history,c=i.prompt}else t?s=await q.tests.suggestHistoryEdit.mutate({agent:r,testId:t.testId,step:n,request:e,prompt:t.prompt,basePrompt:t.basePrompt,progressId:a}):c=await q.agents.suggestPromptEdit.mutate({agentId:r,step:n,request:e,progressId:a});if(i!==Q)return;if(t&&s?.status===`changed`&&(o=s.proposal),!o&&(!c||c.status===`unchanged`)){x(rt,!0);return}if(o&&(E.testHistoryEdits[fe(o.agentId,o.testId)]=o),c?.status===`changed`){let e=c.proposal;E.promptEdits[W(e.agentId,e.step)]=e,M(`promptEdit`,e.id)}x(Je,!1),x(cn,!1),x(Ye,null)}catch(e){if(i!==Q)return;console.error(`Failed to suggest prompt edits`,e),x($e,e instanceof Error?e.message:`Failed to suggest edits`,!0)}finally{i===Q&&(x(Z,!1),x(Xe,null))}}function dt(e){for(let[t,n]of Object.entries(E.promptEdits))n.id===e&&delete E.promptEdits[t];U.url.searchParams.get(`promptEdit`)===e&&M(`promptEdit`,null)}function ft(){let e=s(K);!e||s(nt)||(Et(),x(et,null),dt(e.id),q.agents.rejectPromptEdit.mutate({id:e.id}).catch(e=>{console.error(`Failed to release rejected prompt edit`,e)}))}async function pt(){let e=s(K);if(!e||s(nt))return;let t=on??sn,n=t?.saveViewState()??null,r=t?.getVisibleRanges()[0]?.startLineNumber??null,i=r&&t?t.getTopForLineNumber(r)-t.getScrollTop():0;Et(),x(nt,!0),x(et,null);try{let t=await q.agents.acceptPromptEdit.mutate({id:e.id});if(E.promptDrafts[e.step]=t.prompt,E.steps=E.steps.map(n=>n.name===e.step?{...n,prompt:t.prompt}:n),E.currentStep=E.steps.find(e=>e.name===s(H))??E.currentStep,await F(),dt(e.id),await F(),n&&an){let e=an;requestAnimationFrame(()=>{if(an===e)try{e.restoreViewState(n),r&&e.setScrollTop(e.getTopForLineNumber(r)-i)}catch(e){console.warn(`Failed to preserve accepted prompt scroll position`,e)}})}}catch(e){console.error(`Failed to accept prompt edit`,e),x(et,e instanceof Error?e.message:`Failed to save prompt`,!0)}finally{x(nt,!1)}}L(()=>{let e=(U.url.searchParams.get(`promptEdit`)||``).trim();!e||ot.has(e)||(ot.add(e),q.agents.promptEditProposal.query({id:e}).then(e=>{!e||e.agentId!==E.agentId||(E.promptEdits[W(e.agentId,e.step)]=e)}).catch(e=>console.error(`Failed to restore prompt edit`,e)))});let mt=w(()=>E.currentStep?.schema??null),ht=w(()=>!!s(mt)&&s(mt).trim().length>0),gt=P(!1);function _t(){s(mt)&&x(gt,!0)}function vt({value:e}){if(e===E.edit.tab)return;Y(),$();let t=U.url.searchParams.get(`step`),n=`/edit/${y(E.agentId)}/${e}`,r=new URLSearchParams;t&&r.set(`step`,t),E.conversationId&&r.set(`conversation`,E.conversationId),s(K)&&r.set(`promptEdit`,s(K).id);let i=r.size?`${n}?${r.toString()}`:n;V(i)}let yt=w(()=>{let e=U.url.pathname.split(`/`)[1];return e===`traces`?`view`:e});function bt({value:e}){if(e!==s(yt)){if(Y(),$(),e===`edit`)return V(`/edit`);if(e===`view`){let e=new URLSearchParams({agent:E.agentId});return V(`/view?${e.toString()}`)}V(`/`+e)}}function xt(e){return E.contextPopoverOpen=!1,E.edit=At(E.edit,{kind:e}),E.edit.popover?.requestId??0}function St(e,t){E.edit=jt(E.edit,{requestId:e,data:t})}function wt(e,t,n){E.edit=Mt(E.edit,{requestId:e,error:t,data:n})}function Et(){E.edit=Nt(E.edit)}function Dt(){Et(),E.contextPopoverOpen=!0}function It(){E.contextPopoverOpen=!1}function Lt(){E.contextPopoverOpen?It():Dt()}function $(){Et(),It()}function Rt(e){return e===`analyze`?`Analyze`:`Find issues`}function zt(e){E.edit=Pt(E.edit,e)}function Bt(e){E.edit=Ft(E.edit,e)}let nn=null,rn=null,an=null,on=null,sn=null,cn=P(!1),ln=null,un=P(I({}));function dn(e){try{return tt.default.configure({autoescape:!1,trimBlocks:!0,lstripBlocks:!0}),tt.default.renderString(e,s(un))}catch(t){return console.error(`Failed to render prompt preview`,t),e}}let fn=w(()=>{let e=s(K);return e?s(cn)?dn(e.originalPrompt):e.originalPrompt:``}),pn=w(()=>{let e=s(K);return e?s(cn)?dn(e.suggestedPrompt):e.suggestedPrompt:``});L(()=>{let e=E.currentStep?.name??null;e!==ln&&(ln=e,x(cn,!1))});function mn(e,t){an=e,nn?.dispose(),nn=Vt(e,t),nn.setHighlights(E.edit.highlights)}function hn(e,t){on=e,rn?.dispose(),rn=Vt(e,t),rn.setHighlights(E.edit.highlights)}L(()=>{let e=E.edit.highlights;s(K)&&E.edit.popover?rn?.setHighlights(e):nn?.setHighlights(e)}),L(()=>{s(K)&&E.edit.popover||(rn?.dispose(),rn=null,on=null)});let gn=P(``);L(()=>{let e=U.url.toString();e!==s(gn)&&(x(gn,e,!0),E.edit=kt(E.edit,{pathname:U.url.pathname}),E.contextPopoverOpen=!1)});function _n(e,t,n){return Math.max(t,Math.min(n,e))}function vn(e){let t=new Map;for(let n of e||[])for(let e of n.contradictingQuotes||[]){let n=String(e||``).trim();n&&t.set(n,(t.get(n)||0)+1)}return[...t.entries()].map(([e,t])=>({quote:e,count:_n(t,1,10)})).sort((e,t)=>t.count-e.count||e.quote.localeCompare(t.quote))}let yn=P(!1);async function bn(){if(s(yn)||!E.currentStep)return;x(yn,!0);let e=xt(`findIssues`);try{let t=await q.tests.findPromptIssues.mutate({agent:E.agentId,step:E.currentStep.name,prompt:s(me)}),n=vn(t.issues||[]);if(E.edit.popover?.requestId!==e)return;zt(n);let r=null;try{r=JSON.stringify(t.raw,null,2)}catch{r=null}St(e,{title:`Prompt issues — ${E.currentStep.name}`,issues:t.issues,raw:r})}catch(t){console.error(t);let n=typeof t?.message==`string`?t.message:(()=>{try{return JSON.stringify(t)}catch{return String(t)}})();wt(e,n||`Failed to find issues in this prompt`,{title:`Prompt issues failed — ${E.currentStep.name}`,raw:n})}finally{x(yn,!1)}}function xn(e){Y(),$();let t=U.url.searchParams.get(`step`),n=`/edit/${y(e)}/${E.edit.tab}`,r=new URLSearchParams;t&&r.set(`step`,t);let i=ve(e,t);i&&r.set(`promptEdit`,i.id);let a=r.size?`${n}?${r.toString()}`:n;V(a)}function Sn(e){if(!E.wsLoaded){console.warn(`[roleplay] Ignoring request while websocket is reconnecting`);return}E.turnRunning=!0,je.send(e)}oe({state:E,actions:{openPopover:xt,setPopoverReady:St,setPopoverError:wt,closePopover:Et,setHighlightQuotes:zt,focusQuote:Bt,openAiEdit:(e,t)=>st(e,t),openContextPopover:Dt,closeContextPopover:It,toggleContextPopover:Lt,sendChatMessage:e=>{let t=E.conversationId;if(!t||!E.chatReady){console.warn(`[roleplay] Ignoring chat message: no open conversation`);return}Sn({type:`message`,agentId:E.agentId,conversationId:t,message:e,promptOverrides:ge()})},selectConversation:e=>{Y(),$(),e&&He(e)},newConversation:async()=>{Y(),$(),await We(E.agentId)},deleteConversation:async e=>{if(await q.conversations.delete.mutate({conversationId:e}),await Ve(E.agentId),E.conversationId!==e)return;let t=E.conversations[0]?.conversationId;t?await He(t):await We(E.agentId)},regenerateFromTurn:async e=>{let t=E.conversationId;if(!t)return;await Y(),$();let{inboundMessage:n}=await q.conversations.truncate.mutate({conversationId:t,fromTurn:e}),r=await q.conversations.get.query({conversationId:t});E.context=r.context,ze(r),n&&Sn({type:`message`,agentId:E.agentId,conversationId:t,message:n,promptOverrides:ge()})},flushPromptSave:Y,getPromptOverrides:()=>ge(),getTestHistoryOverrides:()=>_e(),getActivePromptEditId:()=>s(K)?.id??null,hangup(){let e=E.conversationId;e&&Sn({type:`hangup`,agentId:E.agentId,conversationId:e})}}}),ne(async()=>{try{x(u,await q.agents.catalog.query(),!0)}catch(e){console.error(`Failed to load agents`,e)}je.onClose(()=>{E.wsLoaded=!1,E.chatReady=!1,E.turnRunning=!1}),je.onError(e=>{E.turnRunning=!1,r(e)}),je.onEvent(e=>{if(e.conversationId===E.conversationId){if(e.type===`entry`){Be(e.entry);return}if(e.type===`turn-started`){E.turnRunning=!0;return}e.type===`turn-finished`&&(E.turnRunning=!1,Ve(E.agentId),Ue(e.conversationId))}}),je.onOpen(()=>{E.wsLoaded=!0}),je.init(),E.wsLoaded=je.isReady()}),j(()=>{Y(),Me(),nn?.dispose(),nn=null,an=null,rn?.dispose(),rn=null,on=null,sn=null}),L(()=>{let e=s(C);e!==A&&(Y(),Oe=null,Me(),A=e,E.agentId=e,E.chatReady=!1,E.turnRunning=!1,E.promptDrafts={},E.steps=[],E.currentStep=null,E.conversations=[],E.conversationId=null,E.context=null,x(un,{},!0),Se(),Ee(),$(),e&&(Le(e),Ge(e),q.agents.context.query({agentId:e}).then(t=>{E.agentId===e&&x(un,t??{},!0)}).catch(e=>console.error(`Failed to load prompt preview context`,e))))});var Cn=tn(),wn=v(Cn),Tn=D(wn);xe(Tn,{className:`flex-none`,get agents(){return s(u)},get currentAgent(){return E.agentId},onAgentClick:xn});var En=N(Tn,2),Dn=D(En),On=N(D(Dn),2),kn=D(On);ce(kn,{get value(){return s(yt)},ariaLabel:`Top tabs`,onChange:bt,children:(e,t)=>{var n=Ht(),r=v(n);le(r,{value:`edit`,children:(e,t)=>{f();var n=B(`Edit`);o(e,n)},$$slots:{default:!0}});var i=N(r,2);le(i,{value:`view`,children:(e,t)=>{f();var n=B(`View`);o(e,n)},$$slots:{default:!0}}),o(e,n)},$$slots:{default:!0}}),h(On),f(2),h(Dn);var An=N(Dn,2),jn=D(An),Mn=D(jn);se(Mn,{class:`flex h-full min-w-0 flex-col !rounded-none p-0`,children:(e,t)=>{var n=Kt(),r=D(n),i=e=>{var t=Ut();o(e,t)},a=e=>{var t=Wt();o(e,t)},l=e=>{var t=c(),n=v(t);p(n,17,()=>E.steps,k,(e,t)=>{var n=Gt(),r=D(n),i=D(r,!0);h(r),h(n),S(()=>{z(n,1,`my-1 w-full rounded-lg px-3 py-2 text-left text-rc-gray-200 hover:bg-rc-gray-700 ${s(t).name===E.currentStep?.name?`bg-rc-gray-600`:`bg-transparent`}`),d(i,s(t).name)}),g(`click`,n,()=>Ke(s(t).name)),o(e,n)}),o(e,t)};O(r,e=>{E.wsLoaded?E.steps.length===0?e(a,1):e(l,-1):e(i)}),h(n),o(e,n)},$$slots:{default:!0}});var Nn=N(Mn,2),Pn=D(Nn),Fn=D(Pn),In=D(Fn),Ln=D(In,!0);h(In),h(Fn);var Rn=N(Fn,2),zn=D(Rn),Bn=D(zn);te(Bn),f(2),h(zn);var Vn=N(zn,2);{let e=w(()=>!E.currentStep||s(yn));G(Vn,{variant:`secondary`,get disabled(){return s(e)},onclick:bn,children:(e,t)=>{f();var n=B(`Find issues`);o(e,n)},$$slots:{default:!0}})}var Hn=N(Vn,2);{let e=w(()=>!E.currentStep||!!s(K)||s(Z));G(Hn,{variant:`secondary`,get disabled(){return s(e)},onclick:()=>st(),children:(e,t)=>{f();var n=B(`Edit with AI`);o(e,n)},$$slots:{default:!0}})}h(Rn),h(Pn);var Un=N(Pn,2),Wn=D(Un),Gn=e=>{var t=Yt(),r=D(t);n(r,()=>E.currentStep.name,e=>{{let t=w(()=>s(ht)&&!s(K)),n=w(()=>!s(T)||!!s(K)),r=w(()=>s(K)?`Accept or reject the AI suggestion before editing.`:s(T)?``:`Bosun is running in read-only mode.`),i=w(()=>!s(K)&&s(cn));it(e,{class:`h-full min-w-0 focus:outline-none focus:ring-0`,get initialPrompt(){return s(pe)},get agentId(){return E.agentId},get stepName(){return E.currentStep.name},onPromptChanged:qe,get showSchemaButton(){return s(t)},onSchemaClick:_t,get readOnly(){return s(n)},get readOnlyMessage(){return s(r)},showPreviewToggle:!1,get preview(){return s(i)},onEditorReady:mn})}});var i=N(r,2),a=e=>{var t=Jt(),n=D(t),r=e=>{it(e,{class:`h-full min-w-0 focus:outline-none focus:ring-0`,get initialPrompt(){return s(K).suggestedPrompt},get agentId(){return E.agentId},get stepName(){return E.currentStep.name},onPromptChanged:()=>{},showSchemaButton:!1,readOnly:!0,readOnlyMessage:`Accept or reject the AI suggestion before editing.`,bottomPadding:56,showPreviewToggle:!1,onEditorReady:hn})},i=e=>{ye(e,{variant:`prompt`,class:`h-full min-w-0`,get original(){return s(fn)},get modified(){return s(pn)},inline:!0,bottomPadding:56,readOnlyMessage:`Accept or reject the AI suggestion before editing.`,onModifiedEditorReady:e=>sn=e})};O(n,e=>{E.edit.popover?e(r):e(i,-1)});var a=N(n,2),c=D(a);G(c,{variant:`secondary`,get disabled(){return s(nt)},onclick:ft,children:(e,t)=>{f();var n=B(`✕ Reject`);o(e,n)},$$slots:{default:!0}});var l=N(c,2);{let e=w(()=>s(nt)||!s(T));G(l,{get disabled(){return s(e)},onclick:pt,children:(e,t)=>{f();var n=B(`✓ Accept`);o(e,n)},$$slots:{default:!0}})}var u=N(l,2),p=e=>{var t=qt(),n=D(t,!0);h(t),S(()=>d(n,s(et))),o(e,t)};O(u,e=>{s(et)&&e(p)}),h(a);var m=N(a,2),g=e=>{G(e,{variant:`secondary`,onclick:_t,class:`absolute bottom-2 right-6 z-20 !font-medium`,children:(e,t)=>{f();var n=B(`Schema`);o(e,n)},$$slots:{default:!0}})};O(m,e=>{s(ht)&&e(g)}),h(t),o(e,t)};O(i,e=>{s(K)&&e(a)}),h(t),o(e,t)},Kn=e=>{se(e,{class:`flex h-full min-w-0 items-center justify-center !rounded-none p-4 text-sm text-rc-gray-400`,children:(e,t)=>{f();var n=B(`Select a step to edit its prompt`);o(e,n)},$$slots:{default:!0}})};O(Wn,e=>{E.currentStep?e(Gn):e(Kn,-1)}),h(Un),h(Nn);var qn=N(Nn,2);se(qn,{class:`relative flex h-full min-w-0 flex-col overflow-hidden !rounded-none p-0`,children:(e,n)=>{var r=Xt(),i=v(r),c=D(i);ce(c,{get value(){return E.edit.tab},ariaLabel:`Mode tabs`,onChange:vt,children:(e,t)=>{var n=Ht(),r=v(n);le(r,{value:`roleplay`,children:(e,t)=>{f();var n=B(`Roleplay`);o(e,n)},$$slots:{default:!0}});var i=N(r,2);le(i,{value:`tests`,children:(e,t)=>{f();var n=B(`Tests`);o(e,n)},$$slots:{default:!0}}),o(e,n)},$$slots:{default:!0}}),h(i);var l=N(i,2),u=D(l);a(u,()=>t.children),h(l);var d=N(l,2),p=e=>{{let t=e=>{Ct(e,{})},n=w(()=>Rt(E.edit.popover.kind));de(e,{get title(){return s(n)},onClose:Et,children:t,$$slots:{default:!0}})}};O(d,e=>{E.edit.popover&&e(p)});var m=N(d,2),g=e=>{de(e,{title:`Context`,onClose:It,children:e=>{Tt(e,{})},$$slots:{default:!0}})};O(m,e=>{E.contextPopoverOpen&&e(g)}),o(e,r)},$$slots:{default:!0}}),h(jn),h(An),h(En),h(wn);var Jn=N(wn,2);ue(Jn,{title:`Edit with AI`,class:`!max-w-xl`,get underlayOpen(){return s(Z)},get open(){return s(Je)},set open(e){x(Je,e,!0)},children:e=>{var t=Qt(),n=N(D(t),2);Ae(n,{id:`ai-edit-request`,rows:6,get disabled(){return s(Z)},placeholder:`I want the agent to ask the user's name during the greeting`,class:`rc-scroll disabled:cursor-wait disabled:opacity-70`,get value(){return s(X)},set value(e){x(X,e,!0)}});var r=N(n,2),i=e=>{var t=Zt(),n=D(t,!0);h(t),S(()=>d(n,s($e))),o(e,t)};O(r,e=>{s($e)&&e(i)}),h(t),o(e,t)},footer:e=>{var t=Ht(),n=v(t);G(n,{variant:`outlined`,size:`small`,onclick:ct,children:(e,t)=>{f();var n=B(`Cancel`);o(e,n)},$$slots:{default:!0}});var r=N(n,2);{let e=w(()=>!s(X).trim()||s(Z));G(r,{size:`small`,get disabled(){return s(e)},onclick:ut,children:(e,t)=>{f();var n=B();S(()=>d(n,s(Z)?`Suggesting edits…`:`Suggest edits`)),o(e,n)},$$slots:{default:!0}})}o(e,t)},underlay:e=>{var t=$t(),n=D(t,!0);h(t),S(()=>{ee(t,`title`,s(Qe)),d(n,s(Qe))}),o(e,t)},$$slots:{default:!0,footer:!0,underlay:!0}});var Yn=N(Jn,2);ue(Yn,{title:`No changes were suggested`,class:`!z-[60] !max-w-md`,overlayClass:`!z-[60]`,get open(){return s(rt)},set open(e){x(rt,e,!0)},children:e=>{var t=en();o(e,t)},footer:e=>{G(e,{size:`small`,onclick:()=>x(rt,!1),children:(e,t)=>{f();var n=B(`Close`);o(e,n)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var Xn=N(Yn,2),Zn=e=>{ue(e,{title:`Schema`,class:`!w-[80vw] !max-w-5xl`,get open(){return s(gt)},set open(e){x(gt,e,!0)},children:e=>{Ne(e,{class:`h-[70vh] min-w-0`,get schema(){return s(mt)}})},footer:e=>{G(e,{size:`small`,onclick:()=>x(gt,!1),children:(e,t)=>{f();var n=B(`Close`);o(e,n)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}})};O(Xn,e=>{s(mt)&&e(Zn)}),S(()=>{d(Ln,E.currentStep?.name??`Prompt`),Bn.disabled=!E.currentStep||!!s(K)&&!!E.edit.popover}),re(Bn,()=>s(cn),e=>x(cn,e)),o(e,Cn),i()}r([`click`]);export{nn as component};
|
|
Binary file
|
|
Binary file
|