@recombine-ai/bosun 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/bosun.js +7 -0
- package/build/client/_app/immutable/assets/0.b0jhAoSC.css +1 -0
- package/build/client/_app/immutable/assets/0.b0jhAoSC.css.br +0 -0
- package/build/client/_app/immutable/assets/0.b0jhAoSC.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BTX1tKMW.js +1 -0
- package/build/client/_app/immutable/chunks/BTX1tKMW.js.br +0 -0
- package/build/client/_app/immutable/chunks/BTX1tKMW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BVxLHCs8.js +1 -0
- package/build/client/_app/immutable/chunks/BVxLHCs8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BVxLHCs8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{De8YgKS3.js → ChVBNPUb.js} +1 -1
- package/build/client/_app/immutable/chunks/ChVBNPUb.js.br +0 -0
- package/build/client/_app/immutable/chunks/ChVBNPUb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/E9rdsnHb.js +1 -0
- package/build/client/_app/immutable/chunks/E9rdsnHb.js.br +0 -0
- package/build/client/_app/immutable/chunks/E9rdsnHb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Z1_c4us_.js +3 -0
- package/build/client/_app/immutable/chunks/Z1_c4us_.js.br +0 -0
- package/build/client/_app/immutable/chunks/Z1_c4us_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bj8jfBTi.js → lmnC3bvv.js} +1 -1
- package/build/client/_app/immutable/chunks/lmnC3bvv.js.br +0 -0
- package/build/client/_app/immutable/chunks/lmnC3bvv.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.DK_wVDeR.js → app.BY5DP2K_.js} +2 -2
- package/build/client/_app/immutable/entry/app.BY5DP2K_.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BY5DP2K_.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BeIIwvvV.js +1 -0
- package/build/client/_app/immutable/entry/start.BeIIwvvV.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BeIIwvvV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.5fEbn14Q.js → 0.Cao0LJwW.js} +1 -1
- package/build/client/_app/immutable/nodes/0.Cao0LJwW.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Cao0LJwW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.CJrSN8zL.js → 1.Kjgu6yxL.js} +1 -1
- package/build/client/_app/immutable/nodes/1.Kjgu6yxL.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Kjgu6yxL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{10.SZwTlOEA.js → 10.yW2mHq85.js} +1 -1
- package/build/client/_app/immutable/nodes/10.yW2mHq85.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.yW2mHq85.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.D-KFl7Vk.js → 17.COHkD98p.js} +3 -3
- package/build/client/_app/immutable/nodes/17.COHkD98p.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.COHkD98p.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.DQVit7Md.js +11 -0
- package/build/client/_app/immutable/nodes/18.DQVit7Md.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.DQVit7Md.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DVwYttKv.js +35 -0
- package/build/client/_app/immutable/nodes/2.DVwYttKv.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DVwYttKv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.B1RGTOJ8.js → 3.BhmyTb3R.js} +1 -1
- package/build/client/_app/immutable/nodes/3.BhmyTb3R.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BhmyTb3R.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.D2jcIUpD.js → 4.CxATX0ci.js} +1 -1
- package/build/client/_app/immutable/nodes/4.CxATX0ci.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CxATX0ci.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CUyCIyRd.js → 5.Dal1qxB1.js} +1 -1
- package/build/client/_app/immutable/nodes/5.Dal1qxB1.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.Dal1qxB1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.B8HsGA2V.js → 6.iAOxBhJw.js} +1 -1
- package/build/client/_app/immutable/nodes/6.iAOxBhJw.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.iAOxBhJw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.jY56-_OU.js → 8.DFhKu3dp.js} +1 -1
- package/build/client/_app/immutable/nodes/8.DFhKu3dp.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DFhKu3dp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DRIEv5m9.js +2 -0
- package/build/client/_app/immutable/nodes/9.DRIEv5m9.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DRIEv5m9.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-4QCErf9j.js → 0-CIzAMtA3.js} +3 -3
- package/build/server/chunks/{0-4QCErf9j.js.map → 0-CIzAMtA3.js.map} +1 -1
- package/build/server/chunks/{1-Dsjy8Hzc.js → 1-D1heuNbf.js} +2 -2
- package/build/server/chunks/{1-Dsjy8Hzc.js.map → 1-D1heuNbf.js.map} +1 -1
- package/build/server/chunks/{10-8061c8ui.js → 10-CjLtjXyZ.js} +2 -2
- package/build/server/chunks/{10-8061c8ui.js.map → 10-CjLtjXyZ.js.map} +1 -1
- package/build/server/chunks/{17-3_5wsIEX.js → 17-DklEmmOx.js} +4 -4
- package/build/server/chunks/{17-3_5wsIEX.js.map → 17-DklEmmOx.js.map} +1 -1
- package/build/server/chunks/{18-D73Mw140.js → 18-BJS-eRcz.js} +4 -4
- package/build/server/chunks/18-BJS-eRcz.js.map +1 -0
- package/build/server/chunks/{2-DM0VjzFi.js → 2-DCrAVYXs.js} +4 -4
- package/build/server/chunks/2-DCrAVYXs.js.map +1 -0
- package/build/server/chunks/{3-B3zlFGkL.js → 3-BpTqa4DU.js} +2 -2
- package/build/server/chunks/{3-B3zlFGkL.js.map → 3-BpTqa4DU.js.map} +1 -1
- package/build/server/chunks/{4-tESdMZpI.js → 4-B7GjwQzI.js} +2 -2
- package/build/server/chunks/{4-tESdMZpI.js.map → 4-B7GjwQzI.js.map} +1 -1
- package/build/server/chunks/{5-BJMTlq4U.js → 5-XjS__bcp.js} +2 -2
- package/build/server/chunks/{5-BJMTlq4U.js.map → 5-XjS__bcp.js.map} +1 -1
- package/build/server/chunks/{6-CDK2Aia6.js → 6-DWkWptmB.js} +2 -2
- package/build/server/chunks/{6-CDK2Aia6.js.map → 6-DWkWptmB.js.map} +1 -1
- package/build/server/chunks/{8-BJbDytoU.js → 8-_swAx6gL.js} +2 -2
- package/build/server/chunks/{8-BJbDytoU.js.map → 8-_swAx6gL.js.map} +1 -1
- package/build/server/chunks/{9-BNfIeSqk.js → 9-NEe24O4u.js} +4 -4
- package/build/server/chunks/9-NEe24O4u.js.map +1 -0
- package/build/server/chunks/{ChatStepTrace-DQL3qlna.js → ChatStepTrace-CX2Zolmp.js} +21 -8
- package/build/server/chunks/ChatStepTrace-CX2Zolmp.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-DK7yl8vI.js → _layout.svelte-PtdpfgwJ.js} +66 -4
- package/build/server/chunks/_layout.svelte-PtdpfgwJ.js.map +1 -0
- package/build/server/chunks/{_page.svelte-ZWNBigwS.js → _page.svelte-C3gizoSD.js} +7 -4
- package/build/server/chunks/_page.svelte-C3gizoSD.js.map +1 -0
- package/build/server/chunks/{_page.svelte-D6bSXGHX.js → _page.svelte-CoCBnE2l.js} +8 -5
- package/build/server/chunks/_page.svelte-CoCBnE2l.js.map +1 -0
- package/build/server/chunks/{_page.svelte-ej3vdYeF.js → _page.svelte-DZvcjON6.js} +3 -2
- package/build/server/chunks/_page.svelte-DZvcjON6.js.map +1 -0
- package/build/server/chunks/steps-DzZCg39h.js +8 -0
- package/build/server/chunks/steps-DzZCg39h.js.map +1 -0
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +13 -13
- package/build/server/manifest.js.map +1 -1
- package/package.json +4 -4
- package/src/backend/lib/backend-restart.ts +15 -0
- package/src/backend/roleplay/router.ts +42 -5
- package/src/backend/roleplay/schema-file.spec.ts +38 -0
- package/src/backend/roleplay/schema-file.ts +33 -0
- package/src/backend/tests/academy.ts +4 -2
- package/src/backend/tests/analyze.ts +2 -1
- package/src/backend/tests/emulate-agents.ts +13 -21
- package/src/backend/tests/pii-sanitized-test-drafts.spec.ts +162 -0
- package/src/backend/tests/pii-sanitized-test-drafts.ts +106 -0
- package/src/backend/tests/pii-sanitizer.spec.ts +145 -0
- package/src/backend/tests/pii-sanitizer.ts +171 -0
- package/src/backend/tests/router.ts +37 -0
- package/src/lib/agent-catalog.ts +4 -0
- package/src/lib/agents-context.ts +8 -0
- package/src/lib/api-telescope/client.ts +174 -0
- package/src/lib/api-telescope/index.ts +4 -0
- package/src/lib/api-telescope/latency-timeline-view-state.spec.ts +25 -0
- package/src/lib/api-telescope/latency-timeline-view-state.ts +86 -0
- package/src/lib/api-telescope/latency.ts +252 -0
- package/src/lib/api-telescope/source-selection.ts +20 -0
- package/src/lib/api-telescope/sources.server.ts +94 -0
- package/src/lib/api-telescope/types.ts +143 -0
- package/src/lib/components/Button.svelte +62 -0
- package/src/lib/components/CollapseExpand.svelte +425 -0
- package/src/lib/components/CopyTracesDropdown.svelte +118 -0
- package/src/lib/components/Dialog.svelte +69 -0
- package/src/lib/components/Dropdown.svelte +111 -0
- package/src/lib/components/History.svelte +174 -0
- package/src/lib/components/Icon.svelte +94 -0
- package/src/lib/components/Input.svelte +43 -0
- package/src/lib/components/Link.svelte +45 -0
- package/src/lib/components/Modal.svelte +45 -0
- package/src/lib/components/Panel.svelte +12 -0
- package/src/lib/components/PopoverModal.svelte +34 -0
- package/src/lib/components/Popper.svelte +109 -0
- package/src/lib/components/Tab.svelte +91 -0
- package/src/lib/components/Tabs.svelte +140 -0
- package/src/lib/components/agent-colors.ts +70 -0
- package/src/lib/dom/text-selection.ts +97 -0
- package/src/lib/edit/edit-vm.spec.ts +115 -0
- package/src/lib/edit/edit-vm.ts +169 -0
- package/src/lib/edit/edit-workspace-context.ts +56 -0
- package/src/lib/edit/highlight-styles.spec.ts +14 -0
- package/src/lib/edit/prompt-highlighter.spec.ts +80 -0
- package/src/lib/edit/prompt-highlighter.ts +155 -0
- package/src/lib/edit/quote-matching.ts +97 -0
- package/src/lib/monaco/bosun-theme.ts +125 -0
- package/src/lib/monaco/font.ts +2 -0
- package/src/lib/monaco-workers.ts +28 -0
- package/src/lib/steps.ts +19 -0
- package/src/lib/tests/pii-sanitized-test-draft.ts +50 -0
- package/src/lib/trpc-client.ts +16 -0
- package/src/lib/ws-client.ts +144 -0
- package/src/lib/ws-message.ts +150 -0
- package/build/client/_app/immutable/assets/0.B-Br6U4N.css +0 -1
- package/build/client/_app/immutable/assets/0.B-Br6U4N.css.br +0 -0
- package/build/client/_app/immutable/assets/0.B-Br6U4N.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BOuo-4gP.js +0 -1
- package/build/client/_app/immutable/chunks/BOuo-4gP.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOuo-4gP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bj8jfBTi.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bj8jfBTi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js +0 -1
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js.br +0 -0
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cyj62X2W.js +0 -2
- package/build/client/_app/immutable/chunks/Cyj62X2W.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cyj62X2W.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSDSeO7L.js +0 -1
- package/build/client/_app/immutable/chunks/DSDSeO7L.js.br +0 -0
- package/build/client/_app/immutable/chunks/DSDSeO7L.js.gz +0 -0
- package/build/client/_app/immutable/chunks/De8YgKS3.js.br +0 -1
- package/build/client/_app/immutable/chunks/De8YgKS3.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DK_wVDeR.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DK_wVDeR.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.xQy-2aGo.js +0 -1
- package/build/client/_app/immutable/entry/start.xQy-2aGo.js.br +0 -2
- package/build/client/_app/immutable/entry/start.xQy-2aGo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.5fEbn14Q.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.5fEbn14Q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CJrSN8zL.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CJrSN8zL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.SZwTlOEA.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.SZwTlOEA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.D-KFl7Vk.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.D-KFl7Vk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.DqRdJY9A.js +0 -11
- package/build/client/_app/immutable/nodes/18.DqRdJY9A.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.DqRdJY9A.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.B3Uuk25v.js +0 -35
- package/build/client/_app/immutable/nodes/2.B3Uuk25v.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.B3Uuk25v.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.B1RGTOJ8.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.B1RGTOJ8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.D2jcIUpD.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.D2jcIUpD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CUyCIyRd.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CUyCIyRd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.B8HsGA2V.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.B8HsGA2V.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.jY56-_OU.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.jY56-_OU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.v5dX6L9n.js +0 -2
- package/build/client/_app/immutable/nodes/9.v5dX6L9n.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.v5dX6L9n.js.gz +0 -0
- package/build/server/chunks/18-D73Mw140.js.map +0 -1
- package/build/server/chunks/2-DM0VjzFi.js.map +0 -1
- package/build/server/chunks/9-BNfIeSqk.js.map +0 -1
- package/build/server/chunks/ChatStepTrace-DQL3qlna.js.map +0 -1
- package/build/server/chunks/_layout.svelte-DK7yl8vI.js.map +0 -1
- package/build/server/chunks/_page.svelte-D6bSXGHX.js.map +0 -1
- package/build/server/chunks/_page.svelte-ZWNBigwS.js.map +0 -1
- package/build/server/chunks/_page.svelte-ej3vdYeF.js.map +0 -1
- /package/build/client/_app/immutable/assets/{Popper.CLTyHc88.css → steps.CLTyHc88.css} +0 -0
- /package/build/client/_app/immutable/assets/{Popper.CLTyHc88.css.br → steps.CLTyHc88.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{Popper.CLTyHc88.css.gz → steps.CLTyHc88.css.gz} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-DZvcjON6.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/traces/conversations/_conversationId_/latency/_page.svelte.js"],"sourcesContent":["import { e as escape_html, f as derived, a as ensure_array_like, c as attr_style, b as attr_class, g as clsx } from \"../../../../../../chunks/index.js\";\nimport { o as onDestroy } from \"../../../../../../chunks/index-server.js\";\nimport { p as page } from \"../../../../../../chunks/index2.js\";\nimport { B as Button } from \"../../../../../../chunks/Button.js\";\n/* empty css */\nimport { g as getPersistedTelescopeSourceId, T as TelescopeClient } from \"../../../../../../chunks/source-selection.js\";\nimport { i as isMainStepName } from \"../../../../../../chunks/steps.js\";\nimport { b as buildResponseLatencySpans, f as findResponseLatencyUserTurn, R as RESPONSE_LATENCY_THRESHOLD_MS } from \"../../../../../../chunks/latency.js\";\nimport { g as getConversationViewMemory, c as conversationViewMemoryKey } from \"../../../../../../chunks/conversation-view-memory.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const SPEECH_BUBBLE_HEIGHT_PX = 30;\n const TIMELINE_RULER_HEIGHT_PX = 32;\n const TIMELINE_ROW_HEIGHT_PX = SPEECH_BUBBLE_HEIGHT_PX;\n const TIMELINE_ROW_GAP_PX = 5;\n const WAVEFORM_ROW_HEIGHT_PX = 160;\n const SPEECH_BUBBLE_VERTICAL_GAP_PX = TIMELINE_ROW_GAP_PX;\n const SPEECH_BUBBLE_LEVEL_HEIGHT_PX = SPEECH_BUBBLE_HEIGHT_PX + SPEECH_BUBBLE_VERTICAL_GAP_PX;\n const SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_BEFORE_MS = 500;\n const SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_AFTER_MS = 2500;\n const SPEECH_BUBBLE_AGENT_PLAYBACK_MATCH_WINDOW_MS = 3e4;\n const RESPONSE_LATENCY_TRACE_MATCH_TOLERANCE_MS = 250;\n const GUIDE_ROW_LABELS = /* @__PURE__ */ new Set([\"VAD\", \"Playback\"]);\n const client = new TelescopeClient(fetch);\n const BOSUN_COLORS = {\n blue: \"#569cd6\",\n green: \"#93FF6D\",\n greenDark: \"#00B58A\",\n orange: \"#ce9178\",\n purple: \"#81147D\",\n red: \"#FF6666\",\n gray: \"#767676\"\n };\n const ROW_DEFS = [\n {\n label: \"VAD\",\n eventTypes: [\"vad.activated\", \"vad.deactivated\"]\n },\n {\n label: \"STT\",\n eventTypes: [\n \"stt.started\",\n \"stt.interim\",\n \"stt.final\",\n \"stt.final_transcript\"\n ]\n },\n { label: \"Trigger\", eventTypes: [\"speech.created\"] },\n {\n label: \"Reply Pending\",\n eventTypes: [\"reply.pending.started\", \"reply.pending.completed\"]\n },\n {\n label: \"LLM Transport\",\n eventTypes: [\n \"llm.connect_tcp.started\",\n \"llm.connect_tcp.completed\",\n \"llm.connect_tcp.failed\",\n \"llm.start_tls.started\",\n \"llm.start_tls.completed\",\n \"llm.start_tls.failed\"\n ]\n },\n {\n label: \"LLM Wait\",\n eventTypes: [\"llm.wait.started\", \"llm.requested\", \"llm.wait.completed\"]\n },\n {\n label: \"LLM Stream\",\n eventTypes: [\n \"llm.stream.started\",\n \"llm.first_token\",\n \"llm.completed\",\n \"llm.stream.completed\"\n ]\n },\n {\n label: \"TTS Text\",\n eventTypes: [\"tts.text.first_sent\", \"tts.text.completed\"]\n },\n {\n label: \"Provider\",\n eventTypes: [\n \"tts.provider.started\",\n \"tts.audio.first_received\",\n \"tts.audio.last_received\",\n \"tts.provider.completed\"\n ]\n },\n {\n label: \"Decode\",\n eventTypes: [\"tts.decode.started\", \"tts.decode.completed\"]\n },\n {\n label: \"Output Queue\",\n eventTypes: [\"audio.output.wait.started\", \"audio.output.wait.completed\"]\n },\n {\n label: \"Playback\",\n eventTypes: [\n \"audio.playback.started\",\n \"audio.playback.stopped\",\n \"audio.playback.ended\"\n ]\n },\n { label: \"Response Latency\" },\n {\n label: \"Interruptions\",\n eventTypes: [\"interruption.detected\", \"audio.playback.interrupted\"]\n },\n { label: \"Other\" }\n ];\n const TIMELINE_ROW_LABELS = new Set(ROW_DEFS.map((row) => row.label));\n const COLOR_BY_KEY = {\n call: tintHex(BOSUN_COLORS.gray, 0.2),\n vad: tintHex(BOSUN_COLORS.purple, 0.35),\n stt: tintHex(BOSUN_COLORS.purple, 0.2),\n trigger: BOSUN_COLORS.greenDark,\n \"response.latency.ok\": BOSUN_COLORS.green,\n \"response.latency.high\": BOSUN_COLORS.red,\n \"reply.pending\": tintHex(BOSUN_COLORS.greenDark, 0.18),\n \"llm.transport\": tintHex(BOSUN_COLORS.blue, 0.18),\n \"llm.wait\": tintHex(BOSUN_COLORS.blue, -0.25),\n \"llm.stream\": BOSUN_COLORS.blue,\n \"tts.text\": BOSUN_COLORS.orange,\n \"tts.provider.lifecycle\": tintHex(BOSUN_COLORS.purple, -0.18),\n \"tts.provider\": tintHex(BOSUN_COLORS.purple, 0.12),\n \"tts.decode\": tintHex(BOSUN_COLORS.orange, -0.12),\n \"audio.output.wait\": BOSUN_COLORS.orange,\n playback: tintHex(BOSUN_COLORS.greenDark, -0.08),\n interruption: BOSUN_COLORS.orange,\n other: BOSUN_COLORS.gray\n };\n const SPAN_RULES = [\n {\n startEventType: \"reply.pending.started\",\n endEventType: \"reply.pending.completed\",\n row: \"Reply Pending\",\n colorKey: \"reply.pending\",\n label: \"Reply pending\",\n description: \"Derived from adjacent reply-pending lifecycle events\"\n },\n {\n startEventType: \"llm.connect_tcp.started\",\n endEventType: \"llm.connect_tcp.completed\",\n row: \"LLM Transport\",\n colorKey: \"llm.transport\",\n label: \"Connect TCP\",\n description: \"Derived from adjacent TCP connect lifecycle events\"\n },\n {\n startEventType: \"llm.start_tls.started\",\n endEventType: \"llm.start_tls.completed\",\n row: \"LLM Transport\",\n colorKey: \"llm.transport\",\n label: \"Start TLS\",\n description: \"Derived from adjacent TLS lifecycle events\"\n },\n {\n startEventType: \"llm.wait.started\",\n endEventType: \"llm.wait.completed\",\n row: \"LLM Wait\",\n colorKey: \"llm.wait\",\n label: \"LLM wait\",\n description: \"Derived from adjacent LLM wait lifecycle events\"\n },\n {\n startEventType: \"llm.stream.started\",\n endEventType: \"llm.stream.completed\",\n row: \"LLM Stream\",\n colorKey: \"llm.stream\",\n label: \"LLM stream\",\n description: \"Derived from adjacent LLM stream lifecycle events\"\n },\n {\n startEventType: \"tts.text.first_sent\",\n endEventType: \"tts.text.completed\",\n row: \"TTS Text\",\n colorKey: \"tts.text\",\n label: \"TTS text send\",\n description: \"Derived from adjacent TTS text send and completion events\"\n },\n {\n startEventType: \"tts.provider.started\",\n endEventType: \"tts.audio.first_received\",\n row: \"Provider\",\n colorKey: \"tts.provider.lifecycle\",\n label: \"Provider wait\",\n description: \"Derived from adjacent provider start and first-audio events\"\n },\n {\n startEventType: \"tts.audio.first_received\",\n endEventType: \"tts.provider.completed\",\n row: \"Provider\",\n colorKey: \"tts.provider\",\n label: \"Provider audio\",\n description: \"Derived from adjacent provider first-audio and completion events\"\n },\n {\n startEventType: \"tts.decode.started\",\n endEventType: \"tts.decode.completed\",\n row: \"Decode\",\n colorKey: \"tts.decode\",\n label: \"Decode\",\n description: \"Derived from adjacent local decode lifecycle events\"\n },\n {\n startEventType: \"audio.output.wait.started\",\n endEventType: \"audio.output.wait.completed\",\n row: \"Output Queue\",\n colorKey: \"audio.output.wait\",\n label: \"Output queue\",\n description: \"Derived from adjacent audio-output wait lifecycle events\"\n },\n {\n startEventType: \"audio.playback.started\",\n endEventType: \"audio.playback.stopped\",\n row: \"Playback\",\n colorKey: \"playback\",\n label: \"Playback\",\n description: \"Derived from adjacent playback start and playback stop events\"\n }\n ];\n const SPAN_RULE_BY_START = new Map(SPAN_RULES.map((rule) => [rule.startEventType, rule]));\n function emptyRecordingResponse() {\n return {\n exists: false,\n audioUrl: null,\n fileName: null,\n mimeType: null,\n size: null,\n uploadedAt: null,\n alignmentOffsetMs: 0\n };\n }\n const viewMemory = getConversationViewMemory();\n const initialSourceId = getPersistedTelescopeSourceId() ?? \"\";\n const initialConversationId = page.params.conversationId ?? \"\";\n const initialMemoryKey = conversationViewMemoryKey(initialConversationId, initialSourceId);\n const initialMemory = viewMemory.latency.get(initialMemoryKey);\n client.setSourceId(initialSourceId || void 0);\n let sourceId = initialSourceId;\n let conversation = initialMemory?.conversation ?? null;\n let traces = initialMemory?.traces ?? [];\n let conversationTraces = initialMemory?.conversationTraces ?? [];\n let dataLoaded = initialMemory?.dataLoaded ?? false;\n let error = initialMemory?.error ?? null;\n let recording = initialMemory?.recording ?? emptyRecordingResponse();\n let recordingLoaded = initialMemory?.recordingLoaded ?? false;\n let recordingError = initialMemory?.recordingError ?? null;\n let uploadInFlight = false;\n let waveform = initialMemory?.waveform ?? null;\n let waveformError = initialMemory?.waveformError ?? null;\n let playbackPositionMs = initialMemory?.playbackPositionMs ?? 0;\n let playbackPlaying = false;\n let playbackError = null;\n let alignmentSaving = false;\n let alignmentError = null;\n let viewDirty = initialMemory?.viewDirty ?? false;\n let viewportStartMs = null;\n let viewportEndMs = null;\n let scrollViewportEl = null;\n let fileInputEl = null;\n let humanSpeechBubbleReservedLevels = initialMemory?.humanSpeechBubbleReservedLevels ?? 1;\n let copyLatencyState = \"idle\";\n let loadKey = \"\";\n let playbackFrame = 0;\n let playbackAudioBuffer = initialMemory?.playbackAudioBuffer ?? null;\n let playbackAudioContext = null;\n let playbackSourceNode = null;\n let playbackStartedAtMs = null;\n let playbackStartedAtContextTime = null;\n const conversationId = derived(() => page.params.conversationId);\n function buildRecordingApiUrlFor(cid, nextSourceId) {\n const params = new URLSearchParams();\n if (nextSourceId) params.set(\"source\", nextSourceId);\n const search = params.toString();\n return `/traces/api/latency/${encodeURIComponent(cid)}${search ? `?${search}` : \"\"}`;\n }\n const recordingApiUrl = derived(() => {\n if (!conversationId()) return \"\";\n return buildRecordingApiUrlFor(conversationId(), sourceId);\n });\n const timelineOriginMs = derived(() => {\n let min = Number.POSITIVE_INFINITY;\n for (const trace of traces) {\n if (typeof trace.atMs !== \"number\" || !Number.isFinite(trace.atMs)) continue;\n min = Math.min(min, trace.atMs);\n }\n if (Number.isFinite(min)) return min;\n if (typeof conversation?.createdAt === \"number\" && Number.isFinite(conversation.createdAt)) {\n return conversation.createdAt;\n }\n return Number.isFinite(min) ? min : 0;\n });\n const callSegments = derived(() => buildCallLatencySegments(traces));\n const latencyTraceCount = derived(() => traces.length);\n const aiResponses = derived(() => buildAiResponses());\n const playbackSpeechMatches = derived(() => buildPlaybackSpeechMatches(callSegments(), aiResponses()));\n const timelineSegments = derived(() => {\n const playbackSegments = callSegments().map((segment) => {\n const speech = playbackSpeechMatches().bySegmentId.get(segment.id);\n if (!speech || segment.row !== \"Playback\" || segment.durationMs <= 0) return segment;\n return {\n ...segment,\n speechText: speech.text,\n speechFullText: speech.fullText,\n speechTraceLabel: speech.traceLabel\n };\n });\n return [\n ...playbackSegments,\n ...buildStandaloneWaitSegments(aiResponses(), playbackSpeechMatches().responseIds)\n ];\n });\n const timelineRows = derived(() => {\n const grouped = /* @__PURE__ */ new Map();\n for (const segment of timelineSegments()) {\n const items = grouped.get(segment.row);\n if (items) items.push(segment);\n else grouped.set(segment.row, [segment]);\n }\n return [...ROW_DEFS].reverse().map((row) => ({ label: row.label, segments: grouped.get(row.label) ?? [] })).filter((row) => row.segments.length > 0);\n });\n const speechBubbleBaseLayouts = derived(() => buildSpeechBubbleBaseLayouts());\n const humanSpeechBubbleLevelCount = derived(() => Math.max(humanSpeechBubbleReservedLevels, speechBubbleRoleLevelCount(speechBubbleBaseLayouts(), \"human\")));\n const speechBubbles = derived(() => compactSpeechBubbleLayouts(speechBubbleBaseLayouts()));\n const humanSpeechBubbleLaneHeightPx = derived(() => speechBubbleLaneHeightPx(humanSpeechBubbleLevelCount()));\n const speechBubbleAreaHeightPx = derived(() => humanSpeechBubbleLaneHeightPx());\n const timelineRowsHeightPx = derived(() => timelineRows().length * TIMELINE_ROW_HEIGHT_PX + Math.max(0, timelineRows().length - 1) * TIMELINE_ROW_GAP_PX);\n const traceRowsToBubbleGapPx = derived(() => timelineRows().length > 0 ? TIMELINE_ROW_GAP_PX : 0);\n const speechBubbleAreaTopPx = derived(() => TIMELINE_RULER_HEIGHT_PX + timelineRowsHeightPx() + traceRowsToBubbleGapPx());\n const waveformRowVisible = derived(() => recording.exists);\n const waveformRowHeightPx = derived(() => waveformRowVisible() ? TIMELINE_ROW_GAP_PX + WAVEFORM_ROW_HEIGHT_PX : 0);\n const guideLines = derived(() => buildGuideLines(timelineRows()));\n const recordingStartMs = derived(() => {\n if (!waveform) return null;\n return timelineOriginMs() + recording.alignmentOffsetMs;\n });\n const timelinePlotHeightPx = derived(() => TIMELINE_RULER_HEIGHT_PX + timelineRowsHeightPx() + traceRowsToBubbleGapPx() + speechBubbleAreaHeightPx() + waveformRowHeightPx());\n const playbackAbsoluteMs = derived(() => {\n if (recordingStartMs() == null) return null;\n return recordingStartMs() + playbackPositionMs;\n });\n const playbackCursor = derived(() => {\n const absoluteMs = playbackAbsoluteMs();\n if (absoluteMs == null || viewportStartMs == null || viewportEndMs == null) return null;\n const durationMs = viewportEndMs - viewportStartMs;\n if (!Number.isFinite(durationMs) || durationMs <= 0) return null;\n if (absoluteMs < viewportStartMs || absoluteMs > viewportEndMs) return null;\n return {\n leftPercent: clamp((absoluteMs - viewportStartMs) / durationMs * 100, 0, 100),\n topPx: TIMELINE_RULER_HEIGHT_PX,\n heightPx: Math.max(1, timelinePlotHeightPx() - TIMELINE_RULER_HEIGHT_PX)\n };\n });\n const timelineOriginLine = derived(() => {\n if (viewportStartMs == null || viewportEndMs == null) return null;\n const durationMs = viewportEndMs - viewportStartMs;\n if (!Number.isFinite(durationMs) || durationMs <= 0) return null;\n if (timelineOriginMs() < viewportStartMs || timelineOriginMs() > viewportEndMs) return null;\n return {\n leftPercent: (timelineOriginMs() - viewportStartMs) / durationMs * 100,\n topPx: TIMELINE_RULER_HEIGHT_PX,\n heightPx: Math.max(1, timelinePlotHeightPx() - TIMELINE_RULER_HEIGHT_PX)\n };\n });\n const contentExtent = derived(() => {\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n for (const segment of callSegments()) {\n min = Math.min(min, segment.start);\n max = Math.max(max, segment.end);\n }\n if (waveform && recordingStartMs() != null) {\n min = Math.min(min, recordingStartMs());\n max = Math.max(max, recordingStartMs() + waveform.durationMs);\n }\n if (!Number.isFinite(min) || !Number.isFinite(max)) return null;\n if (max <= min) max = min + 1;\n return { min, max };\n });\n const conversationTraceExtent = derived(() => {\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n for (const segment of callSegments()) {\n if (!TIMELINE_ROW_LABELS.has(segment.row)) continue;\n min = Math.min(min, segment.start);\n max = Math.max(max, segment.end);\n }\n if (!Number.isFinite(min) || !Number.isFinite(max)) return null;\n if (max <= min) max = min + 1;\n return { min, max };\n });\n const viewportDurationMs = derived(() => {\n if (viewportStartMs == null || viewportEndMs == null) return null;\n const duration = viewportEndMs - viewportStartMs;\n return duration > 0 ? duration : null;\n });\n const visibleTicks = derived(() => {\n if (viewportStartMs == null || viewportEndMs == null) return [];\n return buildTicks(viewportStartMs, viewportEndMs, timelineOriginMs());\n });\n function saveViewMemory(key = loadKey) {\n if (!key) return;\n const previous = viewMemory.latency.get(key);\n const memory = {\n conversation,\n traces,\n conversationTraces,\n dataLoaded,\n error,\n recording,\n recordingLoaded,\n recordingError,\n waveform,\n waveformError,\n playbackAudioBuffer,\n playbackPositionMs,\n viewportStartMs,\n viewportEndMs,\n viewportOriginMs: timelineOriginMs(),\n viewDirty,\n humanSpeechBubbleReservedLevels,\n scrollTop: previous?.scrollTop ?? scrollViewportEl?.scrollTop ?? 0,\n scrollLeft: previous?.scrollLeft ?? scrollViewportEl?.scrollLeft ?? 0\n };\n viewMemory.latency.set(key, memory);\n const cid = conversationId();\n const currentSourceId = getPersistedTelescopeSourceId() ?? \"\";\n if (cid && currentSourceId && key === conversationViewMemoryKey(cid, \"\")) {\n viewMemory.latency.set(conversationViewMemoryKey(cid, currentSourceId), memory);\n }\n }\n onDestroy(() => {\n saveViewMemory();\n stopPlayback(false);\n void closePlaybackAudioContext();\n });\n function normalizeNonEmptyString(value) {\n if (typeof value !== \"string\") return null;\n const trimmed = value.trim();\n return trimmed ? trimmed : null;\n }\n function ms(value) {\n return typeof value === \"number\" && Number.isFinite(value) ? value : null;\n }\n function clampByte(value) {\n return Math.max(0, Math.min(255, Math.round(value)));\n }\n function clamp(value, min, max) {\n return Math.min(max, Math.max(min, value));\n }\n function tintHex(hex, amount) {\n const raw = (hex ?? \"\").trim().replace(/^#/, \"\");\n const expanded = raw.length === 3 ? raw.split(\"\").map((part) => `${part}${part}`).join(\"\") : raw;\n if (expanded.length !== 6 || !/^[0-9a-fA-F]+$/.test(expanded)) return hex;\n const r = parseInt(expanded.slice(0, 2), 16);\n const g = parseInt(expanded.slice(2, 4), 16);\n const b = parseInt(expanded.slice(4, 6), 16);\n const t = Math.abs(Math.max(-1, Math.min(1, amount)));\n const target = amount >= 0 ? 255 : 0;\n return `#${clampByte(r + (target - r) * t).toString(16).padStart(2, \"0\")}${clampByte(g + (target - g) * t).toString(16).padStart(2, \"0\")}${clampByte(b + (target - b) * t).toString(16).padStart(2, \"0\")}`;\n }\n function fmtSignedMs(value) {\n if (value == null || !Number.isFinite(value)) return \"0 ms\";\n const rounded = Math.round(value);\n if (rounded === 0) return \"0 ms\";\n return `${rounded > 0 ? \"+\" : \"\"}${rounded} ms`;\n }\n function formatRelativeTime(offsetMs) {\n if (!Number.isFinite(offsetMs)) return \"—\";\n const sign = offsetMs < 0 ? \"-\" : \"\";\n const abs = Math.abs(offsetMs);\n if (abs < 1e4) return `${sign}${(abs / 1e3).toFixed(1)}s`;\n if (abs < 6e4) return `${sign}${(abs / 1e3).toFixed(2)}s`;\n const totalSeconds = abs / 1e3;\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds - minutes * 60;\n return `${sign}${minutes}:${seconds.toFixed(1).padStart(4, \"0\")}`;\n }\n function safeJson(value) {\n try {\n return JSON.stringify(value ?? null, null, 2);\n } catch {\n return String(value);\n }\n }\n async function copyLatencyStream() {\n try {\n await navigator.clipboard.writeText(safeJson(traces));\n copyLatencyState = \"ok\";\n window.setTimeout(\n () => {\n copyLatencyState = \"idle\";\n },\n 2e3\n );\n } catch (reason) {\n console.error(\"Failed to copy latency stream\", reason);\n copyLatencyState = \"error\";\n window.setTimeout(\n () => {\n copyLatencyState = \"idle\";\n },\n 3e3\n );\n }\n }\n function describeTrace(trace) {\n const time = typeof trace.createdAt === \"number\" && Number.isFinite(trace.createdAt) ? new Date(trace.createdAt).toLocaleTimeString() : \"unknown time\";\n if (trace.traceType === \"LATENCY\") {\n return `Latency • #${trace.seq ?? \"?\"} • ${trace.eventType ?? \"unknown\"} • ${time}`;\n }\n if (trace.traceType === \"CONVERSATIONAL\") {\n return `Conversational • ${trace.eventName} • ${time}`;\n }\n if (trace.traceType === \"STEP\") {\n return `Step • ${trace.name ?? \"unknown\"} • ${time}`;\n }\n return `API • ${trace.operationName} • ${time}`;\n }\n function latencyPayload(trace) {\n const payload = trace.payload;\n return payload && typeof payload === \"object\" && !Array.isArray(payload) ? payload : {};\n }\n function latencyRow(eventType) {\n if (eventType === \"call.started\" || eventType === \"call.ended\") return \"Call\";\n if (eventType.startsWith(\"vad.\")) return \"VAD\";\n if (eventType.startsWith(\"stt.\")) return \"STT\";\n if (eventType === \"speech.created\") return \"Trigger\";\n if (eventType.startsWith(\"reply.pending.\")) return \"Reply Pending\";\n if (eventType.startsWith(\"llm.connect_tcp.\") || eventType.startsWith(\"llm.start_tls.\")) {\n return \"LLM Transport\";\n }\n if (eventType === \"llm.requested\" || eventType.startsWith(\"llm.wait.\")) return \"LLM Wait\";\n if (eventType === \"llm.first_token\" || eventType === \"llm.completed\" || eventType.startsWith(\"llm.stream.\")) {\n return \"LLM Stream\";\n }\n if (eventType.startsWith(\"tts.text.\")) return \"TTS Text\";\n if (eventType.startsWith(\"tts.provider.\")) return \"Provider\";\n if (eventType === \"tts.audio.first_received\" || eventType === \"tts.audio.last_received\") {\n return \"Provider\";\n }\n if (eventType.startsWith(\"tts.decode.\")) return \"Decode\";\n if (eventType.startsWith(\"audio.output.wait.\")) return \"Output Queue\";\n if (eventType === \"interruption.detected\" || eventType === \"audio.playback.interrupted\") {\n return \"Interruptions\";\n }\n if (eventType.startsWith(\"audio.playback.\")) return \"Playback\";\n return \"Other\";\n }\n function latencyColorKey(eventType) {\n if (eventType === \"call.started\" || eventType === \"call.ended\") return \"call\";\n if (eventType.startsWith(\"vad.\")) return \"vad\";\n if (eventType.startsWith(\"stt.\")) return \"stt\";\n if (eventType === \"speech.created\") return \"trigger\";\n if (eventType.startsWith(\"reply.pending.\")) return \"reply.pending\";\n if (eventType.startsWith(\"llm.connect_tcp.\") || eventType.startsWith(\"llm.start_tls.\")) {\n return \"llm.transport\";\n }\n if (eventType === \"llm.requested\" || eventType.startsWith(\"llm.wait.\")) return \"llm.wait\";\n if (eventType === \"llm.first_token\" || eventType === \"llm.completed\" || eventType.startsWith(\"llm.stream.\")) {\n return \"llm.stream\";\n }\n if (eventType.startsWith(\"tts.text.\")) return \"tts.text\";\n if (eventType.startsWith(\"tts.provider.\")) return \"tts.provider.lifecycle\";\n if (eventType === \"tts.audio.first_received\" || eventType === \"tts.audio.last_received\") {\n return \"tts.provider\";\n }\n if (eventType.startsWith(\"tts.decode.\")) return \"tts.decode\";\n if (eventType.startsWith(\"audio.output.wait.\")) return \"audio.output.wait\";\n if (eventType === \"interruption.detected\" || eventType === \"audio.playback.interrupted\") {\n return \"interruption\";\n }\n if (eventType.startsWith(\"audio.playback.\")) return \"playback\";\n return \"other\";\n }\n function latencyEventMarker(eventType) {\n switch (eventType) {\n case \"vad.activated\":\n case \"stt.started\":\n return \"start\";\n case \"vad.deactivated\":\n case \"stt.final\":\n case \"stt.final_transcript\":\n return \"end\";\n default:\n return null;\n }\n }\n function latencyLabel(trace) {\n switch (trace.eventType) {\n case \"call.started\":\n return \"Call started\";\n case \"call.ended\":\n return \"Call ended\";\n case \"vad.activated\":\n return \"VAD activated\";\n case \"vad.deactivated\":\n return \"VAD deactivated\";\n case \"stt.started\":\n return \"STT start\";\n case \"stt.interim\":\n return \"STT interim\";\n case \"stt.final\":\n case \"stt.final_transcript\":\n return \"STT final\";\n case \"speech.created\":\n return \"Speech created\";\n case \"reply.pending.started\":\n return \"Reply pending start\";\n case \"reply.pending.completed\":\n return \"Reply pending end\";\n case \"llm.connect_tcp.started\":\n return \"Connect TCP start\";\n case \"llm.connect_tcp.completed\":\n return \"Connect TCP end\";\n case \"llm.connect_tcp.failed\":\n return \"Connect TCP failed\";\n case \"llm.start_tls.started\":\n return \"TLS start\";\n case \"llm.start_tls.completed\":\n return \"TLS end\";\n case \"llm.start_tls.failed\":\n return \"TLS failed\";\n case \"llm.wait.started\":\n return \"LLM wait start\";\n case \"llm.wait.completed\":\n return \"LLM wait end\";\n case \"llm.stream.started\":\n return \"LLM stream start\";\n case \"llm.stream.completed\":\n return \"LLM stream end\";\n case \"llm.requested\":\n return \"LLM request\";\n case \"llm.first_token\":\n return \"LLM first token\";\n case \"llm.completed\":\n return \"LLM end\";\n case \"tts.text.first_sent\":\n return \"TTS first text\";\n case \"tts.text.completed\":\n return \"TTS text end\";\n case \"tts.provider.started\":\n return \"Provider start\";\n case \"tts.provider.completed\":\n return \"Provider end\";\n case \"tts.audio.first_received\":\n return \"Provider audio received\";\n case \"tts.audio.last_received\":\n return \"Provider audio end\";\n case \"tts.decode.started\":\n return \"Decode start\";\n case \"tts.decode.completed\":\n return \"Decode end\";\n case \"audio.output.wait.started\":\n return \"Output queue start\";\n case \"audio.output.wait.completed\":\n return \"Output queue end\";\n case \"interruption.detected\":\n return \"Interruption detected\";\n case \"audio.playback.started\":\n return \"Playback start\";\n case \"audio.playback.stopped\":\n return \"Playback stop\";\n case \"audio.playback.ended\":\n return \"Playback end\";\n case \"audio.playback.interrupted\":\n return \"Playback interrupted\";\n default:\n return trace.eventType;\n }\n }\n function latencyDescription(trace) {\n const payload = latencyPayload(trace);\n switch (trace.eventType) {\n case \"call.started\":\n return \"Call-scoped latency stream started\";\n case \"call.ended\":\n return \"Call-scoped latency stream ended\";\n case \"vad.activated\":\n return \"Raw VAD activation event\";\n case \"vad.deactivated\":\n return \"Raw VAD deactivation event\";\n case \"stt.started\":\n return \"Speech-to-text detected speech start\";\n case \"stt.interim\":\n return normalizeNonEmptyString(payload.originalType) === \"preflight_transcript\" ? \"Speech-to-text preflight transcript\" : \"Speech-to-text interim transcript\";\n case \"stt.final\":\n case \"stt.final_transcript\":\n return \"Speech-to-text final transcript\";\n case \"speech.created\":\n return \"LiveKit created a speech handle\";\n case \"reply.pending.started\":\n return \"Reply generation was committed, but downstream generation has not started yet\";\n case \"reply.pending.completed\":\n return \"Reply generation moved from pending into the LLM request phase\";\n case \"llm.connect_tcp.started\":\n return \"httpcore started opening a new TCP connection for the LLM request\";\n case \"llm.connect_tcp.completed\":\n return \"httpcore finished opening a new TCP connection for the LLM request\";\n case \"llm.connect_tcp.failed\":\n return \"httpcore failed while opening a new TCP connection for the LLM request\";\n case \"llm.start_tls.started\":\n return \"httpcore started TLS negotiation for the LLM request\";\n case \"llm.start_tls.completed\":\n return \"httpcore finished TLS negotiation for the LLM request\";\n case \"llm.start_tls.failed\":\n return \"httpcore failed during TLS negotiation for the LLM request\";\n case \"llm.wait.started\":\n return \"LLM request is in flight and waiting for the first token\";\n case \"llm.wait.completed\":\n return \"The LLM wait phase ended when the first token arrived\";\n case \"llm.stream.started\":\n return \"LLM streaming phase started\";\n case \"llm.stream.completed\":\n return \"LLM streaming phase ended\";\n case \"llm.requested\":\n return \"AnyVan received an LLM request\";\n case \"llm.first_token\":\n return \"First LLM token received\";\n case \"llm.completed\":\n return \"LLM streaming completed\";\n case \"tts.text.first_sent\":\n return \"First text chunk sent to the TTS provider\";\n case \"tts.text.completed\":\n return \"Last non-empty text chunk observed for this TTS stream\";\n case \"tts.provider.started\":\n return \"Provider lifecycle started when the first non-empty TTS text chunk was sent\";\n case \"tts.provider.completed\":\n return \"Provider lifecycle ended when the provider stream reported completion\";\n case \"tts.audio.first_received\":\n return \"First audio chunk received from the TTS provider\";\n case \"tts.audio.last_received\":\n return \"Last audio chunk received from the TTS provider\";\n case \"tts.decode.started\":\n return \"First provider audio bytes were handed into the local decode path\";\n case \"tts.decode.completed\":\n return \"The first decoded audio frame left the local decode path\";\n case \"audio.output.wait.started\":\n return \"The first local audio frame was handed to the LiveKit audio output\";\n case \"audio.output.wait.completed\":\n return \"The audio-output wait phase ended when low-level playback actually started\";\n case \"interruption.detected\":\n return \"User speech overlapped active playback; this does not guarantee playback stopped\";\n case \"audio.playback.started\":\n return \"First played audio frame\";\n case \"audio.playback.stopped\":\n return \"Playback lifecycle ended on the Playback row\";\n case \"audio.playback.ended\":\n return \"Audio playback finished normally\";\n case \"audio.playback.interrupted\":\n return \"Audio playback ended because the output buffer was interrupted\";\n default:\n return null;\n }\n }\n function latencyText(trace) {\n const payload = latencyPayload(trace);\n return normalizeNonEmptyString(payload.text);\n }\n function isFinalSttLatencyTrace(trace) {\n return trace.eventType === \"stt.final\" || trace.eventType === \"stt.final_transcript\";\n }\n function bubbleText(value) {\n const text = normalizeNonEmptyString(value);\n if (!text) return null;\n return text.replace(/\\s+/g, \" \").trim() || null;\n }\n function latencyTranscriptText(trace) {\n const payload = latencyPayload(trace);\n const text = bubbleText(payload.text) ?? bubbleText(payload.transcript) ?? bubbleText(payload.finalTranscript) ?? bubbleText(payload.final_transcript) ?? bubbleText(payload.message);\n if (text) return text;\n const alternatives = payload.alternatives;\n if (Array.isArray(alternatives)) {\n for (const alternative of alternatives) {\n if (!alternative || typeof alternative !== \"object\") continue;\n const alternativeText = bubbleText(alternative.text);\n if (alternativeText) return alternativeText;\n }\n }\n return null;\n }\n function isConversationalTrace(trace) {\n return trace.traceType === \"CONVERSATIONAL\";\n }\n function isUserConversationalTrace(trace) {\n return isConversationalTrace(trace) && trace.role.toLowerCase() === \"user\" && (trace.eventName === \"received-message\" || trace.eventName === \"llm-handler-stream-requested\");\n }\n function isAgentConversationalTrace(trace) {\n return isConversationalTrace(trace) && (trace.eventName === \"finished-main-streaming-step\" || trace.eventName === \"sent-message\");\n }\n function conversationalTraceKey(trace) {\n return normalizeNonEmptyString(trace.traceId) ?? `${trace.createdAt}:${trace.eventName}:${trace.content}`;\n }\n function findPreviousConversationalTrace(items, beforeIndex) {\n for (let index = beforeIndex - 1; index >= 0; index -= 1) {\n const candidate = items[index];\n if (candidate.traceType === \"CONVERSATIONAL\") return candidate;\n }\n return null;\n }\n function findResponseLatencyAgentTrace(items, span) {\n const startCreatedAt = ms(span.startTrace.createdAt);\n const endCreatedAt = ms(span.endTrace.createdAt);\n if (startCreatedAt == null) return null;\n for (let index = 0; index < items.length; index += 1) {\n const candidate = items[index];\n if (!isAgentConversationalTrace(candidate)) continue;\n if (candidate.createdAt < startCreatedAt - RESPONSE_LATENCY_TRACE_MATCH_TOLERANCE_MS) {\n continue;\n }\n if (endCreatedAt != null && candidate.createdAt < endCreatedAt - RESPONSE_LATENCY_TRACE_MATCH_TOLERANCE_MS) {\n continue;\n }\n const previous = findPreviousConversationalTrace(items, index);\n if (!previous || !isUserConversationalTrace(previous)) continue;\n return candidate;\n }\n return null;\n }\n function segmentDistanceFromTime(segment, timeMs) {\n if (timeMs >= segment.start && timeMs <= segment.end) return 0;\n return Math.min(Math.abs(timeMs - segment.start), Math.abs(timeMs - segment.end));\n }\n function findPlaybackSegmentForSpan(span, playbackSegments, usedSegmentIds) {\n const candidates = playbackSegments.filter((segment) => {\n if (usedSegmentIds.has(segment.id)) return false;\n return segment.start >= span.end - SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_BEFORE_MS && segment.start <= span.end + SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_AFTER_MS;\n }).sort((a, b) => Math.abs(a.start - span.end) - Math.abs(b.start - span.end));\n if (candidates[0]) return candidates[0];\n return playbackSegments.find((segment) => !usedSegmentIds.has(segment.id) && segment.start <= span.end + SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_AFTER_MS && segment.end >= span.end - SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_BEFORE_MS) ?? null;\n }\n function findPlaybackSegmentForResponse(responseTime, playbackSegments, usedSegmentIds) {\n const candidates = playbackSegments.filter((segment) => {\n if (usedSegmentIds.has(segment.id)) return false;\n return segment.end >= responseTime - SPEECH_BUBBLE_AGENT_PLAYBACK_MATCH_WINDOW_MS && segment.start <= responseTime + SPEECH_BUBBLE_AGENT_PLAYBACK_MATCH_WINDOW_MS;\n }).sort((a, b) => segmentDistanceFromTime(a, responseTime) - segmentDistanceFromTime(b, responseTime));\n return candidates[0] ?? null;\n }\n function callStartTime() {\n for (const trace of traces.slice().sort(compareLatencyTraces)) {\n if (trace.eventType === \"call.started\" && Number.isFinite(trace.atMs)) return trace.atMs;\n }\n return timelineOriginMs();\n }\n function findHumanBubbleStartTime(anchorTime, playbackSegments) {\n const lastPlayback = playbackSegments.filter((segment) => segment.start <= anchorTime).sort((a, b) => b.start - a.start || b.end - a.end)[0];\n if (!lastPlayback) return Math.min(callStartTime(), anchorTime);\n if (lastPlayback.end <= anchorTime) return Math.min(lastPlayback.end, anchorTime);\n return Math.min(lastPlayback.start, anchorTime);\n }\n function isTagOnlyResponse(value) {\n return value.replace(/<[^>]+>/g, \"\").trim() === \"\";\n }\n function isWaitResponse(value) {\n return /<WAIT\\b[^>]*\\/?\\s*>/i.test(value);\n }\n function isMainStepResponse(trace) {\n return trace.traceType === \"STEP\" && isMainStepName(trace.name) && normalizeNonEmptyString(trace.response) != null;\n }\n function responseTextWithoutTags(value) {\n return value.replace(/<[^>]+>/g, \" \").replace(/\\s+/g, \" \").trim();\n }\n function isEquivalentAiResponseText(a, b) {\n if (a === b) return true;\n const spokenA = responseTextWithoutTags(a);\n const spokenB = responseTextWithoutTags(b);\n return spokenA !== \"\" && spokenA === spokenB;\n }\n function responseTurnBounds(createdAt) {\n let start = createdAt - SPEECH_BUBBLE_AGENT_PLAYBACK_MATCH_WINDOW_MS;\n let end = createdAt + SPEECH_BUBBLE_AGENT_PLAYBACK_MATCH_WINDOW_MS;\n for (const trace of conversationTraces) {\n if (!isUserConversationalTrace(trace)) continue;\n if (trace.createdAt <= createdAt) start = trace.createdAt;\n else {\n end = trace.createdAt;\n break;\n }\n }\n return { start, end };\n }\n function findStepResponseForAgentTrace(agentTrace, stepResponses, usedStepTraceIds) {\n const bounds = responseTurnBounds(agentTrace.createdAt);\n return stepResponses.filter((trace) => !usedStepTraceIds.has(traceKey(trace)) && trace.createdAt >= bounds.start && trace.createdAt < bounds.end).sort((a, b) => Math.abs(a.createdAt - agentTrace.createdAt) - Math.abs(b.createdAt - agentTrace.createdAt))[0] ?? null;\n }\n function buildAiResponses() {\n const built = [];\n const usedStepTraceIds = /* @__PURE__ */ new Set();\n const stepResponses = conversationTraces.filter(isMainStepResponse).sort(compareConversationTraces);\n const agentTraces = conversationTraces.filter(isAgentConversationalTrace).sort(compareConversationTraces);\n for (const agentTrace of agentTraces) {\n const stepTrace = findStepResponseForAgentTrace(agentTrace, stepResponses, usedStepTraceIds);\n const stepFullText = stepTrace ? normalizeNonEmptyString(stepTrace.response) : null;\n const fullText = stepFullText ?? normalizeNonEmptyString(agentTrace.content);\n const text = bubbleText(fullText);\n if (!text || !fullText) continue;\n const duplicate = built.find((response) => response.agentTraceIds.size > 0 && Math.abs(response.createdAt - agentTrace.createdAt) <= 1e3 && isEquivalentAiResponseText(response.fullText, fullText));\n if (duplicate) {\n duplicate.agentTraceIds.add(conversationalTraceKey(agentTrace));\n if (stepTrace) usedStepTraceIds.add(traceKey(stepTrace));\n continue;\n }\n if (stepTrace) usedStepTraceIds.add(traceKey(stepTrace));\n built.push({\n id: stepTrace ? `response:step:${traceKey(stepTrace)}` : `response:agent:${conversationalTraceKey(agentTrace)}`,\n text,\n fullText,\n createdAt: agentTrace.createdAt,\n agentTraceIds: /* @__PURE__ */ new Set([conversationalTraceKey(agentTrace)]),\n traceLabel: describeTrace(stepTrace ?? agentTrace)\n });\n }\n for (const stepTrace of stepResponses) {\n const stepTraceId = traceKey(stepTrace);\n if (usedStepTraceIds.has(stepTraceId)) continue;\n const fullText = normalizeNonEmptyString(stepTrace.response);\n const text = bubbleText(fullText);\n if (!text || !fullText) continue;\n built.push({\n id: `response:step:${stepTraceId}`,\n text,\n fullText,\n createdAt: stepTrace.createdAt,\n agentTraceIds: /* @__PURE__ */ new Set(),\n traceLabel: describeTrace(stepTrace)\n });\n }\n return built.sort((a, b) => a.createdAt - b.createdAt || a.id.localeCompare(b.id));\n }\n function traceKey(trace) {\n return normalizeNonEmptyString(trace.traceId) ?? `${trace.seq ?? \"?\"}:${trace.createdAt ?? \"?\"}`;\n }\n function buildTtsTextEvents() {\n return traces.slice().sort(compareLatencyTraces).flatMap((trace) => {\n if (trace.eventType !== \"tts.text.first_sent\" && trace.eventType !== \"tts.text.completed\") {\n return [];\n }\n const text = bubbleText(latencyText(trace));\n return text ? [{ trace, text }] : [];\n });\n }\n function findTtsTextForPlayback(playbackSegment, ttsTextEvents, usedTextTraceIds, previousPlaybackEnd) {\n const lowerBound = previousPlaybackEnd - 250;\n const upperBound = playbackSegment.start + 2e3;\n const candidates = ttsTextEvents.filter(({ trace }) => {\n if (usedTextTraceIds.has(traceKey(trace))) return false;\n return trace.atMs >= lowerBound && trace.atMs <= upperBound;\n }).sort((a, b) => Math.abs(a.trace.atMs - playbackSegment.start) - Math.abs(b.trace.atMs - playbackSegment.start));\n return candidates[0] ?? null;\n }\n function buildPlaybackSpeechMatches(inputSegments, responses) {\n const bySegmentId = /* @__PURE__ */ new Map();\n const playbackSegments = inputSegments.filter((segment) => segment.row === \"Playback\" && segment.durationMs > 0).sort((a, b) => a.start - b.start || a.end - b.end);\n const usedAgentPlaybackSegmentIds = /* @__PURE__ */ new Set();\n const usedResponseIds = /* @__PURE__ */ new Set();\n const usedTtsTextTraceIds = /* @__PURE__ */ new Set();\n const ttsTextEvents = buildTtsTextEvents();\n let previousPlaybackEnd = callStartTime();\n for (const playbackSegment of playbackSegments) {\n const ttsText = findTtsTextForPlayback(playbackSegment, ttsTextEvents, usedTtsTextTraceIds, previousPlaybackEnd);\n previousPlaybackEnd = Math.max(previousPlaybackEnd, playbackSegment.end);\n if (!ttsText) continue;\n usedTtsTextTraceIds.add(traceKey(ttsText.trace));\n bySegmentId.set(playbackSegment.id, {\n text: ttsText.text,\n fullText: ttsText.text,\n traceLabel: describeTrace(ttsText.trace)\n });\n }\n for (const span of buildResponseLatencySpans(traces)) {\n if (findResponseLatencyUserTurn(conversationTraces, span) == null) continue;\n const agentTrace = findResponseLatencyAgentTrace(conversationTraces, span);\n if (!agentTrace) continue;\n const response = responses.find((candidate) => candidate.agentTraceIds.has(conversationalTraceKey(agentTrace)));\n if (!response) continue;\n if (usedResponseIds.has(response.id)) continue;\n if (isTagOnlyResponse(response.fullText)) continue;\n const playbackSegment = findPlaybackSegmentForSpan(span, playbackSegments, usedAgentPlaybackSegmentIds);\n if (!playbackSegment) continue;\n usedAgentPlaybackSegmentIds.add(playbackSegment.id);\n usedResponseIds.add(response.id);\n bySegmentId.set(playbackSegment.id, {\n text: response.text,\n fullText: response.fullText,\n traceLabel: response.traceLabel\n });\n }\n for (const response of responses) {\n if (usedResponseIds.has(response.id)) continue;\n if (isTagOnlyResponse(response.fullText)) continue;\n const playbackSegment = findPlaybackSegmentForResponse(response.createdAt, playbackSegments, usedAgentPlaybackSegmentIds);\n if (!playbackSegment) continue;\n usedAgentPlaybackSegmentIds.add(playbackSegment.id);\n usedResponseIds.add(response.id);\n bySegmentId.set(playbackSegment.id, {\n text: response.text,\n fullText: response.fullText,\n traceLabel: response.traceLabel\n });\n }\n return { bySegmentId, responseIds: usedResponseIds };\n }\n function buildStandaloneWaitSegments(responses, usedResponseIds) {\n return responses.flatMap((response) => {\n if (usedResponseIds.has(response.id) || !isWaitResponse(response.fullText)) return [];\n const end = findWaitResponseEnd(response.createdAt);\n return [\n {\n ...makeSegment({\n id: `playback:wait:${response.id}`,\n row: \"Playback\",\n start: response.createdAt,\n end,\n colorKey: \"playback\",\n label: \"WAIT response\",\n traceLabel: response.traceLabel\n }),\n speechText: response.text,\n speechFullText: response.fullText,\n speechTraceLabel: response.traceLabel\n }\n ];\n });\n }\n function findWaitResponseEnd(start) {\n const nextActivity = traces.filter((trace) => trace.atMs > start && (trace.eventType === \"audio.playback.started\" || trace.eventType === \"stt.started\" || trace.eventType === \"vad.activated\" || trace.eventType === \"call.ended\")).sort((a, b) => a.atMs - b.atMs || a.seq - b.seq)[0];\n return nextActivity ? nextActivity.atMs : start + 1;\n }\n function buildSpeechBubbleCandidates() {\n const built = [];\n const playbackSegments = callSegments().filter((segment) => segment.row === \"Playback\" && segment.durationMs > 0).sort((a, b) => a.start - b.start || a.end - b.end);\n traces.slice().sort(compareLatencyTraces).forEach((trace) => {\n if (!isFinalSttLatencyTrace(trace)) return;\n const text = latencyTranscriptText(trace);\n if (!text) return;\n built.push({\n id: `bubble:human:${trace.traceId ?? trace.seq}`,\n role: \"human\",\n text,\n fullText: text,\n anchorTime: trace.atMs,\n minStartTime: findHumanBubbleStartTime(trace.atMs, playbackSegments),\n anchorRow: \"STT\",\n traceLabel: describeTrace(trace)\n });\n });\n return built.sort((a, b) => a.anchorTime - b.anchorTime || a.role.localeCompare(b.role) || a.id.localeCompare(b.id));\n }\n function timelineRowAnchorPx(rowLabel) {\n const rowIndex = timelineRows().findIndex((row) => row.label === rowLabel);\n if (rowIndex === -1) return TIMELINE_RULER_HEIGHT_PX;\n return TIMELINE_RULER_HEIGHT_PX + rowIndex * (TIMELINE_ROW_HEIGHT_PX + TIMELINE_ROW_GAP_PX) + Math.round(TIMELINE_ROW_HEIGHT_PX / 2);\n }\n function speechBubbleRoleLevelCount(bubbles, role) {\n let maxLevel = -1;\n for (const bubble of bubbles) {\n if (bubble.role !== role) continue;\n maxLevel = Math.max(maxLevel, bubble.level);\n }\n return maxLevel + 1;\n }\n function speechBubbleLaneHeightPx(levelCount) {\n return Math.max(0, levelCount) * SPEECH_BUBBLE_LEVEL_HEIGHT_PX;\n }\n function compactSpeechBubbleLayouts(bubbles) {\n const bubbleAreaTopPx = speechBubbleAreaTopPx();\n return bubbles.map((bubble) => {\n const topPx = bubble.level * SPEECH_BUBBLE_LEVEL_HEIGHT_PX;\n const globalTopPx = bubbleAreaTopPx + topPx;\n const rowAnchorPx = timelineRowAnchorPx(bubble.anchorRow);\n return {\n ...bubble,\n topPx,\n lineTopPx: rowAnchorPx,\n lineHeightPx: Math.max(1, globalTopPx - rowAnchorPx)\n };\n });\n }\n function buildSpeechBubbleLayoutForRole(role, candidates) {\n return [];\n }\n function buildSpeechBubbleBaseLayouts() {\n buildSpeechBubbleCandidates();\n return buildSpeechBubbleLayoutForRole();\n }\n function speechBubbleStyle(bubble) {\n return `left:${Math.round(bubble.leftPx)}px;top:${Math.round(bubble.topPx)}px;width:${Math.round(bubble.widthPx)}px;height:${SPEECH_BUBBLE_HEIGHT_PX}px;`;\n }\n function speechBubbleLineStyle(bubble) {\n return `left:${bubble.anchorPercent}%;top:${Math.round(bubble.lineTopPx)}px;height:${Math.round(bubble.lineHeightPx)}px;`;\n }\n function speechBubbleClass(bubble) {\n const base = \"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\";\n if (bubble.role === \"agent\") {\n return `${base} bg-rc-green-700`;\n }\n return `${base} bg-rc-gray-700`;\n }\n function makeSegment(input) {\n return {\n id: input.id,\n row: input.row,\n start: input.start,\n end: input.end,\n durationMs: Math.max(0, input.end - input.start),\n colorKey: input.colorKey,\n label: input.label,\n description: input.description ?? null,\n explain: input.explain ?? null,\n text: input.text ?? null,\n speechText: null,\n speechFullText: null,\n speechTraceLabel: null,\n traceLabel: input.traceLabel,\n eventMarker: input.eventMarker ?? null\n };\n }\n function compareLatencyTraces(a, b) {\n return a.seq - b.seq || a.atMs - b.atMs || (a.createdAt ?? 0) - (b.createdAt ?? 0) || String(a.traceId ?? \"\").localeCompare(String(b.traceId ?? \"\"));\n }\n function findNextLatencyEvent(events, startIndex, match, stop) {\n for (let index = startIndex + 1; index < events.length; index += 1) {\n const next = events[index];\n if (stop(next)) return null;\n if (match(next)) return next;\n }\n return null;\n }\n function buildResponseLatencySegments(events) {\n return buildResponseLatencySpans(events).filter((span) => findResponseLatencyUserTurn(conversationTraces, span) != null).map((span) => makeSegment({\n id: `derived:${span.id}`,\n row: \"Response Latency\",\n start: span.start,\n end: span.end,\n colorKey: span.isHigh ? \"response.latency.high\" : \"response.latency.ok\",\n label: \"Final STT -> speech start\",\n description: span.speechCreatedTrace ? \"Final STT transcript -> first audio for the next uncancelled LiveKit speech\" : \"Final STT transcript -> next audio playback start\",\n explain: span.isHigh ? `High latency (>${RESPONSE_LATENCY_THRESHOLD_MS}ms)` : \"OK\",\n text: span.text,\n traceLabel: span.speechCreatedTrace ? `${describeTrace(span.startTrace)} -> ${describeTrace(span.speechCreatedTrace)} -> ${describeTrace(span.endTrace)}` : `${describeTrace(span.startTrace)} -> ${describeTrace(span.endTrace)}`\n }));\n }\n function buildDerivedSegments(events) {\n const built = buildResponseLatencySegments(events);\n events.forEach((trace, index) => {\n const rule = SPAN_RULE_BY_START.get(trace.eventType);\n if (!rule) return;\n const next = findNextLatencyEvent(events, index, (candidate) => candidate.eventType === rule.endEventType, (candidate) => candidate.eventType === rule.startEventType);\n if (!next || next.atMs < trace.atMs) return;\n built.push(makeSegment({\n id: `derived:${rule.row.toLowerCase().replaceAll(\" \", \"_\")}:${trace.seq}:${next.seq}`,\n row: rule.row,\n start: trace.atMs,\n end: next.atMs,\n colorKey: rule.colorKey,\n label: rule.label,\n description: rule.description,\n traceLabel: describeTrace(trace)\n }));\n });\n return built;\n }\n function buildCallLatencySegments(input) {\n const events = input.slice().filter((trace) => typeof trace.atMs === \"number\" && Number.isFinite(trace.atMs) && typeof trace.seq === \"number\" && Number.isFinite(trace.seq)).sort(compareLatencyTraces);\n const pointSegments = events.map((trace, index) => makeSegment({\n id: `point:${trace.traceId ?? trace.seq}:${index}`,\n row: latencyRow(trace.eventType),\n start: trace.atMs,\n end: trace.atMs,\n colorKey: latencyColorKey(trace.eventType),\n label: latencyLabel(trace),\n description: latencyDescription(trace),\n text: latencyText(trace),\n traceLabel: describeTrace(trace),\n eventMarker: latencyEventMarker(trace.eventType)\n }));\n const derivedSegments = buildDerivedSegments(events);\n return [...derivedSegments, ...pointSegments].sort((a, b) => a.start - b.start || (a.durationMs === 0 ? 1 : 0) - (b.durationMs === 0 ? 1 : 0) || a.end - b.end || a.row.localeCompare(b.row));\n }\n function buildRecordingResponse(raw) {\n const next = raw && typeof raw === \"object\" ? raw : {};\n const audioUrl = typeof next.audioUrl === \"string\" && next.audioUrl.trim() ? next.audioUrl : null;\n return {\n exists: next.exists === true && audioUrl != null,\n audioUrl,\n fileName: typeof next.fileName === \"string\" ? next.fileName : null,\n mimeType: typeof next.mimeType === \"string\" ? next.mimeType : null,\n size: typeof next.size === \"number\" && Number.isFinite(next.size) ? next.size : null,\n uploadedAt: typeof next.uploadedAt === \"string\" ? next.uploadedAt : null,\n alignmentOffsetMs: typeof next.alignmentOffsetMs === \"number\" && Number.isFinite(next.alignmentOffsetMs) ? next.alignmentOffsetMs : 0\n };\n }\n function getResponseError(payload, fallback) {\n const next = payload && typeof payload === \"object\" ? payload : {};\n if (typeof next.error === \"string\" && next.error.trim()) return next.error;\n if (typeof next.message === \"string\" && next.message.trim()) return next.message;\n return fallback;\n }\n async function readResponsePayload(response) {\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"application/json\")) {\n return response.json().catch(() => ({}));\n }\n const text = (await response.text().catch(() => \"\")).trim();\n if (!text) return {};\n if (contentType.includes(\"text/html\")) {\n const titleMatch = text.match(/<title>([^<]+)<\\/title>/i);\n const headingMatch = text.match(/<h1[^>]*>([^<]+)<\\/h1>/i);\n return {\n message: titleMatch?.[1]?.trim() || headingMatch?.[1]?.trim() || `${response.status} ${response.statusText}`.trim()\n };\n }\n return { message: text };\n }\n function isPlaybackTraceBubble(segment) {\n return segment.row === \"Playback\" && !segment.eventMarker && segment.durationMs > 0;\n }\n function segmentDisplayText(segment) {\n if (isPlaybackTraceBubble(segment)) return segment.speechText;\n return null;\n }\n function segmentStyle(segment) {\n if (viewportStartMs == null || viewportEndMs == null) return null;\n const duration = viewportEndMs - viewportStartMs;\n if (!Number.isFinite(duration) || duration <= 0) return null;\n const fill = COLOR_BY_KEY[segment.colorKey] ?? BOSUN_COLORS.gray;\n const border = tintHex(fill, -0.25);\n if (segment.end === segment.start) {\n if (segment.start < viewportStartMs || segment.start > viewportEndMs) return null;\n const pointPercent = clamp((segment.start - viewportStartMs) / duration * 100, 0, 100);\n if (segment.eventMarker === \"start\") {\n return `left:${pointPercent}%;width:7px;background:${fill};border-color:${border};clip-path:polygon(0 0,100% 50%,0 100%);`;\n }\n if (segment.eventMarker === \"end\") {\n return `left:calc(${pointPercent}% - 7px);width:7px;background:${fill};border-color:${border};clip-path:polygon(100% 0,0 50%,100% 100%);`;\n }\n return `left:calc(${pointPercent}% - 2px);width:4px;background:${fill};border-color:${border};`;\n }\n const visibleStart = Math.max(segment.start, viewportStartMs);\n const visibleEnd = Math.min(segment.end, viewportEndMs);\n if (visibleEnd < visibleStart) return null;\n const leftPercent = (visibleStart - viewportStartMs) / duration * 100;\n const widthPercent = (visibleEnd - visibleStart) / duration * 100;\n if (isPlaybackTraceBubble(segment)) {\n return `left:${leftPercent}%;width:max(${widthPercent}%,2px);`;\n }\n return `left:${leftPercent}%;width:max(${widthPercent}%,2px);background:${fill};border-color:${border};`;\n }\n function segmentClass(segment) {\n if (segment.eventMarker) {\n return \"absolute inset-y-0 shadow-[0_0_0_1px_rgba(0,0,0,0.28)]\";\n }\n if (isPlaybackTraceBubble(segment)) {\n return \"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\";\n }\n return \"absolute inset-y-0 rounded border shadow-[0_0_0_1px_rgba(0,0,0,0.12)]\";\n }\n function guideLineStyle(guide) {\n return `left:${guide.leftPercent}%;top:${guide.topPx}px;height:${guide.heightPx}px;border-color:${guide.color};opacity:${guide.opacity};`;\n }\n function timelineOriginLineStyle(originLine) {\n return `left:${originLine.leftPercent}%;top:${originLine.topPx}px;height:${originLine.heightPx}px;`;\n }\n function tickLabelClass(tick) {\n const base = \"absolute top-1 whitespace-nowrap text-[11px] text-rc-gray-400\";\n if (tick.leftPercent <= 0.1) return base;\n if (tick.leftPercent >= 99.9) return `${base} -translate-x-full`;\n return `${base} -translate-x-1/2`;\n }\n function buildGuideLines(rows) {\n if (!recording.exists || viewportStartMs == null || viewportEndMs == null) return [];\n const rangeStartMs = viewportStartMs;\n const rangeEndMs = viewportEndMs;\n const durationMs = rangeEndMs - rangeStartMs;\n if (!Number.isFinite(durationMs) || durationMs <= 0) return [];\n const waveformBottomPx = timelinePlotHeightPx();\n const seen = /* @__PURE__ */ new Set();\n const built = [];\n rows.forEach((row, rowIndex) => {\n if (!GUIDE_ROW_LABELS.has(row.label)) return;\n const rowTopPx = TIMELINE_RULER_HEIGHT_PX + rowIndex * (TIMELINE_ROW_HEIGHT_PX + TIMELINE_ROW_GAP_PX);\n const rowAnchorPx = rowTopPx + Math.round(TIMELINE_ROW_HEIGHT_PX / 2);\n row.segments.forEach((segment) => {\n if (segment.id.startsWith(\"playback:wait:\")) return;\n const color = tintHex(COLOR_BY_KEY[segment.colorKey] ?? BOSUN_COLORS.gray, 0.15);\n const times = segment.end === segment.start ? segment.start >= rangeStartMs && segment.start <= rangeEndMs ? [segment.start] : [] : (() => {\n const visibleStart = Math.max(segment.start, rangeStartMs);\n const visibleEnd = Math.min(segment.end, rangeEndMs);\n return visibleEnd < visibleStart ? [] : [visibleStart, visibleEnd];\n })();\n for (const timeMs of times) {\n const roundedTime = Math.round(timeMs);\n const key = `${row.label}:${roundedTime}`;\n if (seen.has(key)) continue;\n seen.add(key);\n const leftPercent = clamp((timeMs - rangeStartMs) / durationMs * 100, 0, 100);\n built.push({\n id: `${segment.id}:${roundedTime}`,\n leftPercent,\n topPx: rowAnchorPx,\n heightPx: Math.max(1, waveformBottomPx - rowAnchorPx),\n color,\n opacity: row.label === \"VAD\" ? 0.62 : 0.48\n });\n }\n });\n });\n return built;\n }\n function chooseTickStep(durationMs) {\n const approx = durationMs / 7;\n const magnitude = 10 ** Math.floor(Math.log10(Math.max(1, approx)));\n const normalized = approx / magnitude;\n if (normalized <= 1) return 1 * magnitude;\n if (normalized <= 2) return 2 * magnitude;\n if (normalized <= 5) return 5 * magnitude;\n return 10 * magnitude;\n }\n function buildTicks(startMs, endMs, originMs) {\n const durationMs = endMs - startMs;\n if (!Number.isFinite(durationMs) || durationMs <= 0) return [];\n const stepMs = chooseTickStep(durationMs);\n const firstTick = Math.ceil((startMs - originMs) / stepMs) * stepMs + originMs;\n const ticks = [];\n for (let tick = firstTick; tick <= endMs; tick += stepMs) {\n const leftPercent = (tick - startMs) / durationMs * 100;\n ticks.push({\n time: tick,\n leftPercent,\n label: formatRelativeTime(tick - originMs)\n });\n }\n return ticks;\n }\n function createAudioContext() {\n const next = window.AudioContext ?? window.webkitAudioContext;\n if (!next) {\n throw new Error(\"Web Audio is not available in this browser\");\n }\n return new next();\n }\n function stopPlaybackTicker() {\n if (!playbackFrame) return;\n window.cancelAnimationFrame(playbackFrame);\n playbackFrame = 0;\n }\n async function closePlaybackAudioContext() {\n const context = playbackAudioContext;\n playbackAudioContext = null;\n if (!context) return;\n await context.close().catch(() => {\n });\n }\n async function ensurePlaybackAudioContext() {\n if (!playbackAudioContext || playbackAudioContext.state === \"closed\") {\n playbackAudioContext = createAudioContext();\n }\n if (playbackAudioContext.state === \"suspended\") {\n await playbackAudioContext.resume();\n }\n return playbackAudioContext;\n }\n function getPlaybackPositionMs() {\n const durationMs = getRecordingDurationMs();\n if (playbackPlaying && playbackAudioContext && playbackStartedAtMs != null && playbackStartedAtContextTime != null) {\n const elapsedMs = (playbackAudioContext.currentTime - playbackStartedAtContextTime) * 1e3;\n const currentMs = playbackStartedAtMs + Math.max(0, elapsedMs);\n return durationMs > 0 ? clamp(currentMs, 0, durationMs) : Math.max(0, currentMs);\n }\n return durationMs > 0 ? clamp(playbackPositionMs, 0, durationMs) : Math.max(0, playbackPositionMs);\n }\n function stopPlayback(preservePosition = true) {\n if (preservePosition) {\n playbackPositionMs = getPlaybackPositionMs();\n }\n const source = playbackSourceNode;\n playbackSourceNode = null;\n playbackStartedAtMs = null;\n playbackStartedAtContextTime = null;\n playbackPlaying = false;\n stopPlaybackTicker();\n if (!source) return;\n source.onended = null;\n try {\n source.stop();\n } catch {\n }\n source.disconnect();\n }\n function startPlaybackTicker() {\n stopPlaybackTicker();\n const tick = () => {\n if (!playbackPlaying) {\n playbackFrame = 0;\n return;\n }\n playbackPositionMs = getPlaybackPositionMs();\n playbackFrame = window.requestAnimationFrame(tick);\n };\n playbackFrame = window.requestAnimationFrame(tick);\n }\n function getRecordingDurationMs() {\n if (waveform && Number.isFinite(waveform.durationMs)) {\n return Math.max(0, waveform.durationMs);\n }\n if (playbackAudioBuffer && Number.isFinite(playbackAudioBuffer.duration)) {\n return Math.max(0, playbackAudioBuffer.duration * 1e3);\n }\n return 0;\n }\n async function togglePlayback() {\n if (!recording.exists || !recording.audioUrl) return;\n playbackError = null;\n if (playbackPlaying) {\n stopPlayback(true);\n return;\n }\n await startPlaybackAtMs(playbackPositionMs);\n }\n async function startPlaybackAtMs(nextMs) {\n const buffer = playbackAudioBuffer;\n if (!buffer) {\n playbackError = \"Failed to decode recording for playback\";\n return;\n }\n const durationMs = Math.max(0, buffer.duration * 1e3);\n const startMs = durationMs > 0 ? nextMs >= durationMs ? 0 : clamp(nextMs, 0, durationMs) : Math.max(0, nextMs);\n stopPlayback(false);\n playbackPositionMs = startMs;\n try {\n const context = await ensurePlaybackAudioContext();\n const source = context.createBufferSource();\n source.buffer = buffer;\n source.connect(context.destination);\n source.onended = () => {\n if (playbackSourceNode !== source) return;\n playbackSourceNode = null;\n playbackStartedAtMs = null;\n playbackStartedAtContextTime = null;\n playbackPlaying = false;\n playbackPositionMs = durationMs;\n stopPlaybackTicker();\n };\n playbackSourceNode = source;\n playbackStartedAtMs = startMs;\n playbackStartedAtContextTime = context.currentTime;\n playbackPlaying = true;\n playbackError = null;\n startPlaybackTicker();\n source.start(0, startMs / 1e3);\n } catch (reason) {\n stopPlayback(false);\n playbackPlaying = false;\n playbackError = reason instanceof Error ? reason.message : \"Failed to play recording\";\n }\n }\n function compareConversationTraces(a, b) {\n return a.createdAt - b.createdAt || String(a.traceId ?? \"\").localeCompare(String(b.traceId ?? \"\"));\n }\n function fitViewport(markDirty = true) {\n const extent = conversationTraceExtent() ?? contentExtent();\n if (!extent) return;\n const originMs = timelineOriginMs();\n viewportStartMs = originMs;\n viewportEndMs = Math.max(originMs + 1e3, extent.max);\n viewDirty = markDirty;\n }\n function clampViewport(startMs, endMs) {\n const extent = contentExtent();\n if (!extent) return { startMs, endMs };\n const durationMs = endMs - startMs;\n if (durationMs <= 0) return { startMs, endMs };\n const marginMs = Math.max(1e3, durationMs * 0.25);\n const minAllowed = extent.min - marginMs;\n const maxAllowed = extent.max + marginMs;\n if (durationMs >= maxAllowed - minAllowed) {\n return { startMs: minAllowed, endMs: maxAllowed };\n }\n if (startMs < minAllowed) {\n endMs += minAllowed - startMs;\n startMs = minAllowed;\n }\n if (endMs > maxAllowed) {\n startMs -= endMs - maxAllowed;\n endMs = maxAllowed;\n }\n return { startMs, endMs };\n }\n function setViewport(startMs, endMs) {\n if (!Number.isFinite(startMs) || !Number.isFinite(endMs) || endMs <= startMs) return;\n const next = clampViewport(startMs, endMs);\n viewportStartMs = next.startMs;\n viewportEndMs = next.endMs;\n }\n function zoomViewport(factor, focusRatio = 0.5) {\n if (viewportStartMs == null || viewportEndMs == null) return;\n const currentDuration = viewportEndMs - viewportStartMs;\n if (!Number.isFinite(currentDuration) || currentDuration <= 0) return;\n const extent = contentExtent();\n const contentDuration = extent ? extent.max - extent.min : currentDuration;\n const minDuration = Math.min(100, currentDuration);\n const maxDuration = Math.max(contentDuration + Math.max(2e3, contentDuration * 0.1), 5e3);\n const nextDuration = clamp(currentDuration * factor, minDuration, maxDuration);\n const nextFocusRatio = clamp(focusRatio, 0, 1);\n const focusMs = viewportStartMs + currentDuration * nextFocusRatio;\n const nextStartMs = focusMs - nextDuration * nextFocusRatio;\n viewDirty = true;\n setViewport(nextStartMs, nextStartMs + nextDuration);\n }\n function setLocalAlignmentOffset(nextOffsetMs) {\n recording = { ...recording, alignmentOffsetMs: Math.round(nextOffsetMs) };\n }\n async function persistAlignmentOffset() {\n if (!recording.exists || !recordingApiUrl()) return;\n alignmentSaving = true;\n alignmentError = null;\n try {\n const response = await fetch(recordingApiUrl(), {\n method: \"PATCH\",\n headers: {\n accept: \"application/json\",\n \"content-type\": \"application/json\"\n },\n body: JSON.stringify({ alignmentOffsetMs: recording.alignmentOffsetMs })\n });\n const payload = await readResponsePayload(response);\n if (!response.ok) {\n throw new Error(getResponseError(payload, \"Failed to save alignment offset\"));\n }\n recording = buildRecordingResponse(payload);\n } catch (reason) {\n alignmentError = reason instanceof Error ? reason.message : String(reason);\n } finally {\n alignmentSaving = false;\n }\n }\n async function resetAlignment() {\n if (!recording.exists) return;\n viewDirty = true;\n setLocalAlignmentOffset(0);\n await persistAlignmentOffset();\n }\n $$renderer2.push(`<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 `);\n if (conversationId()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"text-rc-gray-100\">for conversation Id:</span> <span class=\"text-rc-green-200\">${escape_html(conversationId())}</span>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></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\">${escape_html(latencyTraceCount())}</span></div> <div><span class=\"text-rc-gray-400\">Timeline items:</span> <span class=\"font-mono text-rc-gray-100\">${escape_html(callSegments().length)}</span></div> <div><span class=\"text-rc-gray-400\">Recording offset:</span> <span class=\"font-mono text-rc-gray-100\">${escape_html(fmtSignedMs(recording.alignmentOffsetMs))}</span></div> `);\n if (recording.exists && playbackAbsoluteMs() != null) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div><span class=\"text-rc-gray-400\">Playhead:</span> <span class=\"font-mono text-rc-gray-100\">${escape_html(formatRelativeTime(playbackAbsoluteMs() - timelineOriginMs()))}</span></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (viewportStartMs != null && viewportEndMs != null) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div><span class=\"text-rc-gray-400\">Viewport:</span> <span class=\"font-mono text-rc-gray-100\">${escape_html(formatRelativeTime(viewportStartMs - timelineOriginMs()))} → ${escape_html(formatRelativeTime(viewportEndMs - timelineOriginMs()))}</span></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div></div> <div class=\"flex flex-wrap items-center gap-2\"><input type=\"file\" accept=\".wav,audio/wav,audio/x-wav\" class=\"hidden\"/> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: uploadInFlight,\n onclick: () => fileInputEl?.click(),\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->${escape_html(recording.exists ? \"Replace WAV\" : \"Upload WAV\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: !recording.exists,\n onclick: () => void togglePlayback(),\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->${escape_html(playbackPlaying ? \"Pause\" : \"Play\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: viewportDurationMs() == null,\n onclick: () => zoomViewport(0.8),\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Zoom in`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: viewportDurationMs() == null,\n onclick: () => zoomViewport(1.25),\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Zoom out`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: !(conversationTraceExtent() ?? contentExtent()),\n onclick: () => fitViewport(true),\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Fit call`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: !recording.exists || alignmentSaving,\n onclick: resetAlignment,\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Reset alignment`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: !traces.length,\n onclick: copyLatencyStream,\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->${escape_html(copyLatencyState === \"ok\" ? \"Copied\" : copyLatencyState === \"error\" ? \"Copy failed\" : \"Copy latency stream\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----></div></div> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (error) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"mt-2 text-sm text-red-300\">Failed to load latency traces: ${escape_html(error)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (recordingError) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"mt-2 text-sm text-red-300\">Recording error: ${escape_html(recordingError)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (alignmentError) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"mt-2 text-sm text-red-300\">Alignment error: ${escape_html(alignmentError)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (playbackError) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"mt-2 text-sm text-red-300\">Playback error: ${escape_html(playbackError)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></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\">`);\n if (!callSegments().length) {\n $$renderer2.push(\"<!--[1-->\");\n $$renderer2.push(`<div class=\"text-sm text-rc-gray-300\">No latency events were found on this call.</div>`);\n } else if (viewportStartMs == null || viewportEndMs == null) {\n $$renderer2.push(\"<!--[2-->\");\n $$renderer2.push(`<div class=\"text-sm text-rc-gray-300\">Preparing timeline…</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<div class=\"grid grid-cols-[140px_minmax(0,1fr)] gap-x-3\"><div class=\"flex flex-col\"><div class=\"h-8\"></div> <!--[-->`);\n const each_array = ensure_array_like(timelineRows());\n for (let rowIndex = 0, $$length = each_array.length; rowIndex < $$length; rowIndex++) {\n let row = each_array[rowIndex];\n $$renderer2.push(`<div class=\"flex items-center text-xs text-rc-gray-300\"${attr_style(`height:${TIMELINE_ROW_HEIGHT_PX}px;margin-top:${rowIndex === 0 ? 0 : TIMELINE_ROW_GAP_PX}px;`)}>${escape_html(row.label)}</div>`);\n }\n $$renderer2.push(`<!--]--> <div class=\"flex items-center text-xs text-rc-gray-300\"${attr_style(`height:${humanSpeechBubbleLaneHeightPx()}px;margin-top:${traceRowsToBubbleGapPx()}px;`)}>Human</div> `);\n if (waveformRowVisible()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"flex items-center text-xs text-rc-gray-300\"${attr_style(`height:${WAVEFORM_ROW_HEIGHT_PX}px;margin-top:${TIMELINE_ROW_GAP_PX}px;`)}>Waveform</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div> <div class=\"relative\"><div class=\"pointer-events-none absolute inset-0 z-10 overflow-hidden\"><!--[-->`);\n const each_array_1 = ensure_array_like(speechBubbles());\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let bubble = each_array_1[$$index_1];\n $$renderer2.push(`<div class=\"absolute -translate-x-1/2 border-l border-rc-gray-300/40\"${attr_style(speechBubbleLineStyle(bubble))}></div>`);\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_2 = ensure_array_like(guideLines());\n for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {\n let guide = each_array_2[$$index_2];\n $$renderer2.push(`<div class=\"absolute -translate-x-1/2 border-l border-dashed\"${attr_style(guideLineStyle(guide))}></div>`);\n }\n $$renderer2.push(`<!--]--> `);\n if (timelineOriginLine()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"absolute border-l border-rc-gray-200/80\"${attr_style(timelineOriginLineStyle(timelineOriginLine()))}></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (playbackCursor()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"absolute -translate-x-1/2 border-l-2 border-rc-green-200/90\"${attr_style(`left:${playbackCursor().leftPercent}%;top:${playbackCursor().topPx}px;height:${playbackCursor().heightPx}px;`)}></div> <div class=\"absolute h-2 w-2 -translate-x-1/2 rounded-full bg-rc-green-200\"${attr_style(`left:${playbackCursor().leftPercent}%;top:${playbackCursor().topPx - 4}px;`)}></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div> <div class=\"relative z-0 h-8 overflow-hidden rounded-t border border-b-0 border-rc-gray-700/60\"><!--[-->`);\n const each_array_3 = ensure_array_like(visibleTicks());\n for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {\n let tick = each_array_3[$$index_3];\n $$renderer2.push(`<div class=\"absolute inset-y-0 w-px bg-rc-gray-700/70\"${attr_style(`left:${tick.leftPercent}%;`)}></div> <div${attr_class(clsx(tickLabelClass(tick)))}${attr_style(`left:${tick.leftPercent}%;`)}>${escape_html(tick.label)}</div>`);\n }\n $$renderer2.push(`<!--]--></div> <!--[-->`);\n const each_array_4 = ensure_array_like(timelineRows());\n for (let rowIndex = 0, $$length = each_array_4.length; rowIndex < $$length; rowIndex++) {\n let row = each_array_4[rowIndex];\n $$renderer2.push(`<div class=\"relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60\"${attr_style(`height:${TIMELINE_ROW_HEIGHT_PX}px;margin-top:${rowIndex === 0 ? 0 : TIMELINE_ROW_GAP_PX}px;`)}><!--[-->`);\n const each_array_5 = ensure_array_like(visibleTicks());\n for (let $$index_4 = 0, $$length2 = each_array_5.length; $$index_4 < $$length2; $$index_4++) {\n let tick = each_array_5[$$index_4];\n $$renderer2.push(`<div class=\"absolute inset-y-0 w-px bg-rc-gray-700/60\"${attr_style(`left:${tick.leftPercent}%;`)}></div>`);\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_6 = ensure_array_like(row.segments);\n for (let $$index_5 = 0, $$length2 = each_array_6.length; $$index_5 < $$length2; $$index_5++) {\n let segment = each_array_6[$$index_5];\n const style = segmentStyle(segment);\n const text = segmentDisplayText(segment);\n if (style) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div${attr_class(clsx(segmentClass(segment)))}${attr_style(style)}>`);\n if (text) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"block truncate\">${escape_html(text)}</span>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]--></div>`);\n }\n $$renderer2.push(`<!--]--> <div${attr_class(\"relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60\", void 0, {\n \"rounded-b\": !waveformRowVisible(),\n \"border-b\": !waveformRowVisible()\n })}${attr_style(`height:${speechBubbleAreaHeightPx()}px;margin-top:${traceRowsToBubbleGapPx()}px;`)}><div class=\"absolute inset-x-0 top-0 border-b border-rc-gray-700/50\"${attr_style(`height:${humanSpeechBubbleLaneHeightPx()}px;`)}></div> <!--[-->`);\n const each_array_7 = ensure_array_like(visibleTicks());\n for (let $$index_7 = 0, $$length = each_array_7.length; $$index_7 < $$length; $$index_7++) {\n let tick = each_array_7[$$index_7];\n $$renderer2.push(`<div class=\"absolute inset-y-0 w-px bg-rc-gray-700/45\"${attr_style(`left:${tick.leftPercent}%;`)}></div>`);\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_8 = ensure_array_like(speechBubbles());\n for (let $$index_8 = 0, $$length = each_array_8.length; $$index_8 < $$length; $$index_8++) {\n let bubble = each_array_8[$$index_8];\n $$renderer2.push(`<div${attr_class(clsx(speechBubbleClass(bubble)))}${attr_style(speechBubbleStyle(bubble))}>${escape_html(bubble.text)}</div>`);\n }\n $$renderer2.push(`<!--]--></div> `);\n if (waveformRowVisible()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"relative z-0 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60\"${attr_style(`height:${WAVEFORM_ROW_HEIGHT_PX}px;margin-top:${TIMELINE_ROW_GAP_PX}px;`)}>`);\n if (waveformError) {\n $$renderer2.push(\"<!--[1-->\");\n $$renderer2.push(`<div class=\"absolute inset-0 flex items-center justify-center px-4 text-sm text-red-300\">Failed to decode waveform: ${escape_html(waveformError)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<canvas class=\"absolute inset-0 h-full w-full\"></canvas>`);\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_9 = ensure_array_like(visibleTicks());\n for (let $$index_9 = 0, $$length = each_array_9.length; $$index_9 < $$length; $$index_9++) {\n let tick = each_array_9[$$index_9];\n $$renderer2.push(`<div class=\"absolute inset-y-0 w-px bg-rc-gray-700/60\"${attr_style(`left:${tick.leftPercent}%;`)}></div>`);\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div></div>`);\n }\n $$renderer2.push(`<!--]--></div></div></div></div> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps-DzZCg39h.js","sources":["../../../.svelte-kit/adapter-node/chunks/steps.js"],"sourcesContent":["function isMainStepName(name) {\n if (!name) return false;\n if (name === \"main\" || name === \"mainReply\") return true;\n return name.startsWith(\"main[\") && name.endsWith(\"]\");\n}\nexport {\n isMainStepName as i\n};\n"],"names":[],"mappings":"AAAA,SAAS,cAAc,CAAC,IAAI,EAAE;AAC9B,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK;AACzB,EAAE,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE,OAAO,IAAI;AAC1D,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACvD;;;;"}
|
package/build/server/index.js
CHANGED
|
@@ -2029,7 +2029,7 @@ const options = {
|
|
|
2029
2029
|
<div class="error">
|
|
2030
2030
|
<span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
|
2031
2031
|
},
|
|
2032
|
-
version_hash: "
|
|
2032
|
+
version_hash: "zqji0o"
|
|
2033
2033
|
};
|
|
2034
2034
|
async function get_hooks() {
|
|
2035
2035
|
let handle;
|