@recombine-ai/platform 0.3.0 → 0.5.0-test.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/README.md +2 -1
- package/build/agent/agent-analytics.d.ts +14 -0
- package/build/agent/agent-analytics.d.ts.map +1 -0
- package/build/agent/agent-analytics.js +29 -0
- package/build/agent/index.d.ts +1 -0
- package/build/agent/index.d.ts.map +1 -1
- package/build/agent/text-agent.d.ts +4 -3
- package/build/agent/text-agent.d.ts.map +1 -1
- package/build/agent/text-agent.js +8 -1
- package/build/agent/voice-agent.d.ts +4 -3
- package/build/agent/voice-agent.d.ts.map +1 -1
- package/build/agent/voice-agent.js +8 -1
- package/build/analytics/analytics.d.ts +49 -0
- package/build/analytics/analytics.d.ts.map +1 -0
- package/build/analytics/analytics.js +223 -0
- package/build/analytics/index.d.ts +7 -0
- package/build/analytics/index.d.ts.map +1 -0
- package/build/analytics/index.js +3 -0
- package/build/analytics/postgres-analytics-query.d.ts +117 -0
- package/build/analytics/postgres-analytics-query.d.ts.map +1 -0
- package/build/analytics/postgres-analytics-query.js +504 -0
- package/build/analytics/postgres-analytics.d.ts +33 -0
- package/build/analytics/postgres-analytics.d.ts.map +1 -0
- package/build/analytics/postgres-analytics.js +310 -0
- package/build/bosun/std-mocks/platform.d.ts.map +1 -1
- package/build/bosun/std-mocks/platform.js +2 -0
- package/build/bosun/test-agent.d.ts.map +1 -1
- package/build/bosun/test-agent.js +2 -1
- package/build/bosun-app/frontend/client/_app/immutable/assets/0.BhaOIA8N.css +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/assets/0.BhaOIA8N.css.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/assets/0.BhaOIA8N.css.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/-ZTJLlC3.js +2 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/-ZTJLlC3.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/-ZTJLlC3.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/0Q6TVg1G.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/0Q6TVg1G.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/0Q6TVg1G.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{DEz15oJb.js → 4OgEIyh1.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/4OgEIyh1.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/4OgEIyh1.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/8bHWYDyT.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/8bHWYDyT.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/8bHWYDyT.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{C0rPkxmP.js → 9pOOTteE.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/9pOOTteE.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/9pOOTteE.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/AlWqjAqK.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/AlWqjAqK.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/AlWqjAqK.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{B9pMb6OP.js → B9e8MCJ2.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B9e8MCJ2.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B9e8MCJ2.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{BEdAvgYp.js → BDIIq0ko.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BDIIq0ko.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BDIIq0ko.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BFiP5U7M.js +3 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BFiP5U7M.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BFiP5U7M.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{DnMQeiTY.js → BHU9AXbn.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BHU9AXbn.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BHU9AXbn.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{Bp8N7Z1t.js → BHwgmBN2.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BHwgmBN2.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BHwgmBN2.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BOlSQbHE.js +2 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BOlSQbHE.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BOlSQbHE.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BXO2WwQx.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BXO2WwQx.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BXO2WwQx.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{BQIf5msi.js → BZeEhZ9x.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BZeEhZ9x.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BZeEhZ9x.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BbB1C_YH.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BbB1C_YH.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BbB1C_YH.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{DJnDF3d9.js → BtJ1grIE.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BtJ1grIE.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BtJ1grIE.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/C5z36vOP.js +8 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/C5z36vOP.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/C5z36vOP.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CHNsNZYZ.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CHNsNZYZ.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CHNsNZYZ.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{B8q_gCwD.js → CINamuM5.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CINamuM5.js.br +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CINamuM5.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CR6hF_YT.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CR6hF_YT.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CR6hF_YT.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CbXT0Qet.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CbXT0Qet.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CbXT0Qet.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{sKHuRf4Z.js → CkCJ1-zx.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CkCJ1-zx.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CkCJ1-zx.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/Cm25Ihk6.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/Cm25Ihk6.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/Cm25Ihk6.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CmJrlnQL.js +64 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CmJrlnQL.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CmJrlnQL.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CofRL0YY.js +2 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CofRL0YY.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CofRL0YY.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{joiJcRPz.js → Csai_DUZ.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/Csai_DUZ.js.br +6 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/Csai_DUZ.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{CCYriF4C.js → D24F_tet.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/D24F_tet.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/D24F_tet.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{DNvczHUR.js → D35JKLYq.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/D35JKLYq.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/D35JKLYq.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{BcbX6huO.js → D6r2pB3T.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/D6r2pB3T.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/D6r2pB3T.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{ClLUwVGq.js → DJFKRYxi.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DJFKRYxi.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DJFKRYxi.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{BW6P0Ecp.js → DOVgTfHj.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DOVgTfHj.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DOVgTfHj.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DPfKTQVx.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DPfKTQVx.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DPfKTQVx.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{ouMvMh56.js → DSFEfk-V.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DSFEfk-V.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DSFEfk-V.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DbY589nb.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DbY589nb.js.br +2 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DbY589nb.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DfEgi1lN.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DfEgi1lN.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DfEgi1lN.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{BJ9KKLWf.js → DsRUoWL6.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DsRUoWL6.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DsRUoWL6.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{DjujL8K1.js → FLx39vZ1.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/FLx39vZ1.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/FLx39vZ1.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{BBk8_Xpk.js → NwoUwoIi.js} +2 -2
- package/build/bosun-app/frontend/client/_app/immutable/chunks/NwoUwoIi.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/NwoUwoIi.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{C9yBjdYI.js → VLxbY_3V.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/VLxbY_3V.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/VLxbY_3V.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/uEzaTD9T.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/uEzaTD9T.js.br +2 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/uEzaTD9T.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/app.fITODAfp.js +2 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/app.fITODAfp.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/app.fITODAfp.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.CuqUO5EQ.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.CuqUO5EQ.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.CuqUO5EQ.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{0.CyFCeOko.js → 0.sWxZKx1V.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/0.sWxZKx1V.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/0.sWxZKx1V.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/1.PQXY4edq.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/1.PQXY4edq.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/1.PQXY4edq.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{10.CQP8ZYdc.js → 10.BP2gctlm.js} +7 -7
- package/build/bosun-app/frontend/client/_app/immutable/nodes/10.BP2gctlm.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/10.BP2gctlm.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{15.drIyAxl2.js → 15.D4h0JT65.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/15.D4h0JT65.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/15.D4h0JT65.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.D5wsHo5R.js +3 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.D5wsHo5R.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.D5wsHo5R.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/18.CZp-IBH8.js +11 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/18.CZp-IBH8.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/18.CZp-IBH8.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{2.lZxPEqtw.js → 2.DaZm8LbH.js} +3 -3
- package/build/bosun-app/frontend/client/_app/immutable/nodes/2.DaZm8LbH.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/2.DaZm8LbH.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/3.Bk3buFqf.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/3.Bk3buFqf.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/3.Bk3buFqf.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{4.B_swg0wq.js → 4.BWY-PEkr.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/4.BWY-PEkr.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/4.BWY-PEkr.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{5.CJfS926N.js → 5.Cl70jzrZ.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/5.Cl70jzrZ.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/5.Cl70jzrZ.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{6.4aRjHu4u.js → 6.Cfkc99si.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/6.Cfkc99si.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/6.Cfkc99si.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{8.BZFIHe4g.js → 8.CmB3ZvKy.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/8.CmB3ZvKy.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/8.CmB3ZvKy.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{9.BYJRzNt4.js → 9.8UAsXj0n.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/9.8UAsXj0n.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/9.8UAsXj0n.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/version.json +1 -1
- package/build/bosun-app/frontend/client/_app/version.json.br +0 -0
- package/build/bosun-app/frontend/client/_app/version.json.gz +0 -0
- package/build/bosun-app/frontend/handler.js +4 -4
- package/build/bosun-app/frontend/index.js +4 -4
- package/build/bosun-app/frontend/server/chunks/chunks/{internal.js-V8Wfo1-F.js → internal.js-BYUssiWE.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/chunks/{internal.js-V8Wfo1-F.js.map → internal.js-BYUssiWE.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/chunks/{schemas.js-W-DP3mDr.js → schemas.js-b9Mui_5N.js} +187 -2
- package/build/bosun-app/frontend/server/chunks/chunks/schemas.js-b9Mui_5N.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/chunks/{source-selection.js-Cc6RX6-m.js → source-selection.js-BpCr9ar-.js} +47 -4
- package/build/bosun-app/frontend/server/chunks/chunks/source-selection.js-BpCr9ar-.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/chunks/{sources.server.js-B6fpC51P.js → sources.server.js-DIj2VjCx.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/chunks/{sources.server.js-B6fpC51P.js.map → sources.server.js-DIj2VjCx.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/latency/_conversationId_/{_server.ts.js-hHR2eFvt.js → _server.ts.js-mL82mAit.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/latency/_conversationId_/{_server.ts.js-hHR2eFvt.js.map → _server.ts.js-mL82mAit.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/proxy/_...path_/{_server.ts.js-CHrOiduq.js → _server.ts.js-DDDiZFhL.js} +17 -10
- package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/proxy/_...path_/_server.ts.js-DDDiZFhL.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/sources/{_server.ts.js-C2FIU8Kr.js → _server.ts.js-D_UoR_Ph.js} +3 -3
- package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/sources/{_server.ts.js-C2FIU8Kr.js.map → _server.ts.js-D_UoR_Ph.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/{_page.svelte.js-tdUdTo4m.js → _page.svelte.js-DXMXSrkC.js} +5 -5
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/_page.svelte.js-DXMXSrkC.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/traces/{_page.svelte.js-Ca79DBzJ.js → _page.svelte.js-CZkbHRGl.js} +28 -9
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/traces/_page.svelte.js-CZkbHRGl.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/{_layout.svelte.js-Dvn3tfM7.js → _layout.svelte.js-B4Yws-GS.js} +328 -35
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_layout.svelte.js-B4Yws-GS.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/{handler-I7zF-fv9.js → handler-B-UxYyko.js} +3 -3
- package/build/bosun-app/frontend/server/chunks/{handler-I7zF-fv9.js.map → handler-B-UxYyko.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/{index.js-Ca0Ef2Tt.js → index.js-CleJzVFo.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/{index.js-Ca0Ef2Tt.js.map → index.js-CleJzVFo.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/{manifest.js-D22OChaf.js → manifest.js-C8NquSUu.js} +18 -18
- package/build/bosun-app/frontend/server/chunks/{manifest.js-D22OChaf.js.map → manifest.js-C8NquSUu.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/0.js-BUVJh5Uv.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/0.js-BUVJh5Uv.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/nodes/1.js-BKMg62KW.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/{1.js-BesNpd2w.js.map → 1.js-BKMg62KW.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/10.js-Bz0enUzA.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/10.js-Bz0enUzA.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/nodes/{15.js-cNd06B9T.js → 15.js-nE6nl5S8.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{15.js-cNd06B9T.js.map → 15.js-nE6nl5S8.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/17.js-CplX6Ruz.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/17.js-CplX6Ruz.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/nodes/18.js-cGVVSoEn.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/18.js-cGVVSoEn.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/nodes/2.js-CliMdUrH.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/2.js-CliMdUrH.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/nodes/3.js-BQpmmrUv.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/3.js-BQpmmrUv.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/nodes/4.js-BgSyMW3D.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/4.js-BgSyMW3D.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/nodes/5.js-CqRWSoO5.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/{5.js-DNbqpjRZ.js.map → 5.js-CqRWSoO5.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/6.js-CrEQ411L.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/6.js-CrEQ411L.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/nodes/8.js-CiOj2-c5.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/8.js-CiOj2-c5.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/nodes/9.js-BMwqRSfy.js +9 -0
- package/build/bosun-app/frontend/server/chunks/nodes/9.js-BMwqRSfy.js.map +1 -0
- package/build/build/build.d.ts +3 -0
- package/build/build/build.d.ts.map +1 -0
- package/build/build/build.js +73 -0
- package/build/build/cli.d.ts +2 -11
- package/build/build/cli.d.ts.map +1 -1
- package/build/build/cli.js +19 -81
- package/build/build/common.d.ts +6 -9
- package/build/build/common.d.ts.map +1 -1
- package/build/build/common.js +131 -40
- package/build/build/config.d.ts +9 -0
- package/build/build/config.d.ts.map +1 -0
- package/build/build/config.js +24 -0
- package/build/build/index.d.ts +4 -6
- package/build/build/index.d.ts.map +1 -1
- package/build/build/index.js +3 -3
- package/build/call-control/types.d.ts +1 -1
- package/build/call-control/types.d.ts.map +1 -1
- package/build/core/make-text-platform.d.ts +3 -1
- package/build/core/make-text-platform.d.ts.map +1 -1
- package/build/core/make-text-platform.js +3 -1
- package/build/core/make-voice-platform.d.ts +3 -1
- package/build/core/make-voice-platform.d.ts.map +1 -1
- package/build/core/make-voice-platform.js +3 -1
- package/build/core/platform.d.ts +2 -0
- package/build/core/platform.d.ts.map +1 -1
- package/build/voice-agent-api/call-end.d.ts +19 -0
- package/build/voice-agent-api/call-end.d.ts.map +1 -0
- package/build/voice-agent-api/call-end.js +58 -0
- package/build/voice-agent-api/voice-http.d.ts +3 -1
- package/build/voice-agent-api/voice-http.d.ts.map +1 -1
- package/build/voice-agent-api/voice-http.js +27 -7
- package/package.json +5 -1
- package/build/bosun-app/frontend/client/_app/immutable/assets/0.B5fEz2jr.css +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/assets/0.B5fEz2jr.css.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/assets/0.B5fEz2jr.css.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/9mOMnnWN.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/9mOMnnWN.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/9mOMnnWN.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B0nqNj93.js +0 -2
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B0nqNj93.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B0nqNj93.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B1dhmiqQ.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B1dhmiqQ.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B1dhmiqQ.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B8q_gCwD.js.br +0 -2
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B8q_gCwD.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B9pMb6OP.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B9pMb6OP.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BBk8_Xpk.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BBk8_Xpk.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BEdAvgYp.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BEdAvgYp.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BJ9KKLWf.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BJ9KKLWf.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BKW04JRY.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BKW04JRY.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BKW04JRY.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BOiOqwrA.js +0 -3
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BOiOqwrA.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BOiOqwrA.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BQIf5msi.js.br +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BQIf5msi.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BUkXSKT3.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BUkXSKT3.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BUkXSKT3.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BW6P0Ecp.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BW6P0Ecp.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BcbX6huO.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BcbX6huO.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BoX_BZZY.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BoX_BZZY.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BoX_BZZY.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/Bp8N7Z1t.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/Bp8N7Z1t.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/C0rPkxmP.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/C0rPkxmP.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/C3cROXCy.js +0 -9
- package/build/bosun-app/frontend/client/_app/immutable/chunks/C3cROXCy.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/C3cROXCy.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/C9yBjdYI.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/C9yBjdYI.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CCYriF4C.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CCYriF4C.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CHCMKZAC.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CHCMKZAC.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CHCMKZAC.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CR-uVjxM.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CR-uVjxM.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CR-uVjxM.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CR5IRTqC.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CR5IRTqC.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CR5IRTqC.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/ClLUwVGq.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/ClLUwVGq.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DEz15oJb.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DEz15oJb.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DGc0An5V.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DGc0An5V.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DGc0An5V.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DJnDF3d9.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DJnDF3d9.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DNvczHUR.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DNvczHUR.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DXsF11_5.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DXsF11_5.js.br +0 -2
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DXsF11_5.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/Dba0_Upf.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/Dba0_Upf.js.br +0 -2
- package/build/bosun-app/frontend/client/_app/immutable/chunks/Dba0_Upf.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DjujL8K1.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DjujL8K1.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DnMQeiTY.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DnMQeiTY.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DuQdgMax.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DuQdgMax.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DuQdgMax.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/OERrxy3_.js +0 -64
- package/build/bosun-app/frontend/client/_app/immutable/chunks/OERrxy3_.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/OERrxy3_.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/ddC1NP9R.js +0 -2
- package/build/bosun-app/frontend/client/_app/immutable/chunks/ddC1NP9R.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/ddC1NP9R.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/joiJcRPz.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/joiJcRPz.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/ouMvMh56.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/ouMvMh56.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/qiSVE_6c.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/qiSVE_6c.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/qiSVE_6c.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/sKHuRf4Z.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/sKHuRf4Z.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/app.Bni-2yHM.js +0 -2
- package/build/bosun-app/frontend/client/_app/immutable/entry/app.Bni-2yHM.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/app.Bni-2yHM.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.Bwh8stkk.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.Bwh8stkk.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.Bwh8stkk.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/0.CyFCeOko.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/0.CyFCeOko.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/1.D9Za90TC.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/1.D9Za90TC.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/1.D9Za90TC.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/10.CQP8ZYdc.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/10.CQP8ZYdc.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/15.drIyAxl2.js.br +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/15.drIyAxl2.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.C-6g-4TG.js +0 -3
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.C-6g-4TG.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.C-6g-4TG.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/18.CKu_cfLu.js +0 -11
- package/build/bosun-app/frontend/client/_app/immutable/nodes/18.CKu_cfLu.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/18.CKu_cfLu.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/2.lZxPEqtw.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/2.lZxPEqtw.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/3.BjH4Ma-k.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/3.BjH4Ma-k.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/3.BjH4Ma-k.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/4.B_swg0wq.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/4.B_swg0wq.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/5.CJfS926N.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/5.CJfS926N.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/6.4aRjHu4u.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/6.4aRjHu4u.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/8.BZFIHe4g.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/8.BZFIHe4g.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/9.BYJRzNt4.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/9.BYJRzNt4.js.gz +0 -0
- package/build/bosun-app/frontend/server/chunks/chunks/schemas.js-W-DP3mDr.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/chunks/source-selection.js-Cc6RX6-m.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/proxy/_...path_/_server.ts.js-CHrOiduq.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/_page.svelte.js-tdUdTo4m.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/traces/_page.svelte.js-Ca79DBzJ.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_layout.svelte.js-Dvn3tfM7.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/nodes/0.js-CoDyOiLt.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/0.js-CoDyOiLt.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/nodes/1.js-BesNpd2w.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/10.js-DN5elTKV.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/10.js-DN5elTKV.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/nodes/17.js-DExEAB_e.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/17.js-DExEAB_e.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/nodes/18.js-OLWFvVu0.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/18.js-OLWFvVu0.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/nodes/2.js-DdMhYSQT.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/2.js-DdMhYSQT.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/nodes/3.js-DRo_79wF.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/3.js-DRo_79wF.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/nodes/4.js-Bb8ZnG8K.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/4.js-Bb8ZnG8K.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/nodes/5.js-DNbqpjRZ.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/6.js-MMZWg86o.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/6.js-MMZWg86o.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/nodes/8.js-Cs981zJ4.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/8.js-Cs981zJ4.js.map +0 -1
- package/build/bosun-app/frontend/server/chunks/nodes/9.js-h4jeZZT-.js +0 -9
- package/build/bosun-app/frontend/server/chunks/nodes/9.js-h4jeZZT-.js.map +0 -1
- package/build/build/agent-service.d.ts +0 -8
- package/build/build/agent-service.d.ts.map +0 -1
- package/build/build/agent-service.js +0 -32
- package/build/build/text-function.d.ts +0 -6
- package/build/build/text-function.d.ts.map +0 -1
- package/build/build/text-function.js +0 -55
- /package/build/bosun-app/frontend/client/_app/immutable/assets/{ReadOnlyMonacoDiff.iiWNRlR-.css → Modal.iiWNRlR-.css} +0 -0
- /package/build/bosun-app/frontend/client/_app/immutable/assets/{ReadOnlyMonacoDiff.iiWNRlR-.css.br → Modal.iiWNRlR-.css.br} +0 -0
- /package/build/bosun-app/frontend/client/_app/immutable/assets/{ReadOnlyMonacoDiff.iiWNRlR-.css.gz → Modal.iiWNRlR-.css.gz} +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{d as us,b as Re,e as pe,a as x,f as L,t as Ie,c as fs}from"../chunks/D24F_tet.js";import{a as ps}from"../chunks/BHU9AXbn.js";import{p as vs,w,x as z,d as te,f as vt,t as S,a as ms,j as r,n as T,c as y,y as i,s as m,r as h,o as Ce,O as hs}from"../chunks/0Q6TVg1G.js";import{s as I}from"../chunks/BOlSQbHE.js";import{i as D}from"../chunks/BZeEhZ9x.js";import{e as re,i as bs}from"../chunks/CR6hF_YT.js";import{c as mt,s as et}from"../chunks/VLxbY_3V.js";import{s as N}from"../chunks/DPfKTQVx.js";import{b as Be}from"../chunks/DJFKRYxi.js";import{p as Ft}from"../chunks/CINamuM5.js";import{B as Ne}from"../chunks/Csai_DUZ.js";import{P as $n}from"../chunks/4OgEIyh1.js";import{g as Rn,a as In,T as xs}from"../chunks/CmJrlnQL.js";import{i as ys}from"../chunks/DgGeUDDh.js";import{b as Cn,f as Bn,R as gs}from"../chunks/T0seCQS_.js";import{g as ws,c as Dt}from"../chunks/DsRUoWL6.js";const Wn="bosun.traces.latencyTimelineViewports.v2",Wt=new Map;let Nn=!1;function Hn(B){if(!B||typeof B!="object")return!1;const E=B;return typeof E.startMs=="number"&&Number.isFinite(E.startMs)&&typeof E.endMs=="number"&&Number.isFinite(E.endMs)&&E.endMs>E.startMs&&typeof E.originMs=="number"&&Number.isFinite(E.originMs)}function _s(B,E){if(!Number.isFinite(E))return{...B};const ne=E-B.originMs;return{startMs:B.startMs+ne,endMs:B.endMs+ne,originMs:E}}function Vn(){if(!Nn&&(Nn=!0,!(typeof window>"u")))try{const B=window.sessionStorage.getItem(Wn);if(!B)return;const E=JSON.parse(B);if(!E||typeof E!="object"||Array.isArray(E))return;for(const[ne,Y]of Object.entries(E))!ne||!Hn(Y)||Wt.set(ne,Y)}catch{}}function Ts(){if(!(typeof window>"u"))try{window.sessionStorage.setItem(Wn,JSON.stringify(Object.fromEntries(Wt.entries())))}catch{}}function Ms(B){if(!B)return null;Vn();const E=Wt.get(B);return E?{...E}:null}function Fn(B,E){!B||!Hn(E)||(Vn(),Wt.set(B,{...E}),Ts())}var Ss=L('<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200"> </span>',1),Ls=L('<div><span class="text-rc-gray-400">Playhead:</span> <span class="font-mono text-rc-gray-100"> </span></div>'),Ps=L('<div><span class="text-rc-gray-400">Viewport:</span> <span class="font-mono text-rc-gray-100"> </span></div>'),Es=L('<div class="mt-2 text-sm text-rc-gray-400"> </div>'),Ot=L('<div class="mt-2 text-sm text-red-300"> </div>'),ks=L('<div class="text-sm text-rc-gray-300">Loading latency events…</div>'),As=L('<div class="text-sm text-rc-gray-300">No latency events were found on this call.</div>'),$s=L('<div class="text-sm text-rc-gray-300">Preparing timeline…</div>'),Rs=L('<div class="flex items-center text-xs text-rc-gray-300"> </div>'),Is=L('<div class="flex items-center text-xs text-rc-gray-300">Waveform</div>'),Cs=L('<div class="absolute -translate-x-1/2 border-l border-rc-gray-300/40"></div>'),Bs=L('<div class="absolute -translate-x-1/2 border-l border-dashed"></div>'),Ns=L('<div class="absolute border-l border-rc-gray-200/80"></div>'),Fs=L('<div class="absolute -translate-x-1/2 border-l-2 border-rc-green-200/90"></div> <div class="absolute h-2 w-2 -translate-x-1/2 rounded-full bg-rc-green-200"></div>',1),Ds=L('<div class="absolute inset-y-0 w-px bg-rc-gray-700/70"></div> <div> </div>',1),Dn=L('<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div>'),Os=L('<span class="block truncate"> </span>'),Ws=L("<div><!></div>"),Hs=L('<div class="relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60"><!> <!></div>'),Vs=L('<div class="absolute inset-y-0 w-px bg-rc-gray-700/45"></div>'),On=L("<div> </div>"),Us=L('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Decoding waveform…</div>'),qs=L('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-red-300"> </div>'),Ks=L('<canvas class="absolute inset-0 h-full w-full"></canvas>'),js=L('<div class="relative z-0 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60"><!> <!></div>'),Xs=L('<div class="grid grid-cols-[140px_minmax(0,1fr)] gap-x-3"><div class="flex flex-col"><div class="h-8"></div> <!> <div class="flex items-center text-xs text-rc-gray-300">Human</div> <!></div> <div class="relative"><div class="pointer-events-none absolute inset-0 z-10 overflow-hidden"><!> <!> <!> <!></div> <div class="relative z-0 h-8 overflow-hidden rounded-t border border-b-0 border-rc-gray-700/60"></div> <!> <div><div class="absolute inset-x-0 top-0 border-b border-rc-gray-700/50"></div> <!> <!></div> <!></div></div>'),zs=L('<div class="pointer-events-none z-popover max-w-[28rem] rounded-md border border-rc-gray-500/80 bg-rc-gray-900/95 px-3 py-2 text-xs text-rc-gray-100 shadow-2xl backdrop-blur-sm"></div>'),Ys=L('<div><div class="whitespace-pre-wrap break-words"> </div></div>'),Gs=L('<div class="flex h-full min-h-0 flex-col bg-rc-gray-700"><div class="flex-none border-b border-rc-gray-300/40 p-4"><div class="flex flex-wrap items-start justify-between gap-3"><div><h2 class="text-lg font-semibold text-rc-gray-100">Latency <!></h2> <div class="mt-2 flex flex-wrap gap-x-5 gap-y-1 text-xs text-rc-gray-300"><div><span class="text-rc-gray-400">Latency events:</span> <span class="font-mono text-rc-gray-100"> </span></div> <div><span class="text-rc-gray-400">Timeline items:</span> <span class="font-mono text-rc-gray-100"> </span></div> <div><span class="text-rc-gray-400">Recording offset:</span> <span class="font-mono text-rc-gray-100"> </span></div> <!> <!></div></div> <div class="flex flex-wrap items-center gap-2"><input type="file" accept=".wav,audio/wav,audio/x-wav" class="hidden"/> <!> <!> <!> <!> <!> <!> <!></div></div> <!> <!> <!> <!> <!></div> <div class="rc-scroll min-h-0 flex-1 overflow-auto p-4"><div class="flex flex-col gap-4"><div class="rounded-md border border-rc-gray-650 p-3"><!></div></div></div></div> <!> <!>',1);function vi(B,E){vs(E,!0);const ne=30,Y=32,Me=ne,ae=5,Ht=160,Tr=ne+ae,Mr=3,Un=8,Fe=60,qn=132,Kn=200,jn=24,Sr=500,Lr=2500,ht=3e4,Xn=50,zn=.00145,Pr=137,Er=250,Yn=new Set(["VAD","Playback"]),tt=new xs(fetch),C={blue:"#569cd6",green:"#93FF6D",greenDark:"#00B58A",orange:"#ce9178",purple:"#81147D",red:"#FF6666",gray:"#767676"},kr=[{label:"VAD",eventTypes:["vad.activated","vad.deactivated"]},{label:"STT",eventTypes:["stt.started","stt.interim","stt.final","stt.final_transcript"]},{label:"Trigger",eventTypes:["speech.created"]},{label:"Reply Pending",eventTypes:["reply.pending.started","reply.pending.completed"]},{label:"LLM Transport",eventTypes:["llm.connect_tcp.started","llm.connect_tcp.completed","llm.connect_tcp.failed","llm.start_tls.started","llm.start_tls.completed","llm.start_tls.failed"]},{label:"LLM Wait",eventTypes:["llm.wait.started","llm.requested","llm.wait.completed"]},{label:"LLM Stream",eventTypes:["llm.stream.started","llm.first_token","llm.completed","llm.stream.completed"]},{label:"TTS Text",eventTypes:["tts.text.first_sent","tts.text.completed"]},{label:"Provider",eventTypes:["tts.provider.started","tts.audio.first_received","tts.audio.last_received","tts.provider.completed"]},{label:"Decode",eventTypes:["tts.decode.started","tts.decode.completed"]},{label:"Output Queue",eventTypes:["audio.output.wait.started","audio.output.wait.completed"]},{label:"Playback",eventTypes:["audio.playback.started","audio.playback.stopped","audio.playback.ended"]},{label:"Response Latency"},{label:"Interruptions",eventTypes:["interruption.detected","audio.playback.interrupted"]},{label:"Other"}],Gn=new Set(kr.map(e=>e.label)),Ar={call:Z(C.gray,.2),vad:Z(C.purple,.35),stt:Z(C.purple,.2),trigger:C.greenDark,"response.latency.ok":C.green,"response.latency.high":C.red,"reply.pending":Z(C.greenDark,.18),"llm.transport":Z(C.blue,.18),"llm.wait":Z(C.blue,-.25),"llm.stream":C.blue,"tts.text":C.orange,"tts.provider.lifecycle":Z(C.purple,-.18),"tts.provider":Z(C.purple,.12),"tts.decode":Z(C.orange,-.12),"audio.output.wait":C.orange,playback:Z(C.greenDark,-.08),interruption:C.orange,other:C.gray},Zn=[{startEventType:"reply.pending.started",endEventType:"reply.pending.completed",row:"Reply Pending",colorKey:"reply.pending",label:"Reply pending",description:"Derived from adjacent reply-pending lifecycle events"},{startEventType:"llm.connect_tcp.started",endEventType:"llm.connect_tcp.completed",row:"LLM Transport",colorKey:"llm.transport",label:"Connect TCP",description:"Derived from adjacent TCP connect lifecycle events"},{startEventType:"llm.start_tls.started",endEventType:"llm.start_tls.completed",row:"LLM Transport",colorKey:"llm.transport",label:"Start TLS",description:"Derived from adjacent TLS lifecycle events"},{startEventType:"llm.wait.started",endEventType:"llm.wait.completed",row:"LLM Wait",colorKey:"llm.wait",label:"LLM wait",description:"Derived from adjacent LLM wait lifecycle events"},{startEventType:"llm.stream.started",endEventType:"llm.stream.completed",row:"LLM Stream",colorKey:"llm.stream",label:"LLM stream",description:"Derived from adjacent LLM stream lifecycle events"},{startEventType:"tts.text.first_sent",endEventType:"tts.text.completed",row:"TTS Text",colorKey:"tts.text",label:"TTS text send",description:"Derived from adjacent TTS text send and completion events"},{startEventType:"tts.provider.started",endEventType:"tts.audio.first_received",row:"Provider",colorKey:"tts.provider.lifecycle",label:"Provider wait",description:"Derived from adjacent provider start and first-audio events"},{startEventType:"tts.audio.first_received",endEventType:"tts.provider.completed",row:"Provider",colorKey:"tts.provider",label:"Provider audio",description:"Derived from adjacent provider first-audio and completion events"},{startEventType:"tts.decode.started",endEventType:"tts.decode.completed",row:"Decode",colorKey:"tts.decode",label:"Decode",description:"Derived from adjacent local decode lifecycle events"},{startEventType:"audio.output.wait.started",endEventType:"audio.output.wait.completed",row:"Output Queue",colorKey:"audio.output.wait",label:"Output queue",description:"Derived from adjacent audio-output wait lifecycle events"},{startEventType:"audio.playback.started",endEventType:"audio.playback.stopped",row:"Playback",colorKey:"playback",label:"Playback",description:"Derived from adjacent playback start and playback stop events"}],Jn=new Map(Zn.map(e=>[e.startEventType,e]));function $r(){return{exists:!1,audioUrl:null,fileName:null,mimeType:null,size:null,uploadedAt:null,alignmentOffsetMs:0}}const De=ws(),Vt=Rn(Ft.url)??In()??"",Qn=Ft.params.conversationId??"",ea=Dt(Qn,Vt),b=De.latency.get(ea);tt.setSourceId(Vt||void 0);let bt=w(z(Vt)),Se=w(z((b==null?void 0:b.conversation)??null)),q=w(z((b==null?void 0:b.traces)??[])),oe=w(z((b==null?void 0:b.conversationTraces)??[])),Le=w(z((b==null?void 0:b.dataLoaded)??!1)),Oe=w(!1),We=w(z((b==null?void 0:b.error)??null)),A=w(z((b==null?void 0:b.recording)??$r())),He=w(z((b==null?void 0:b.recordingLoaded)??!1)),xt=w(!1),ve=w(z((b==null?void 0:b.recordingError)??null)),yt=w(!1),K=w(z((b==null?void 0:b.waveform)??null)),Ve=w(!1),Pe=w(z((b==null?void 0:b.waveformError)??null)),G=w(z((b==null?void 0:b.playbackPositionMs)??0)),ce=w(!1),de=w(null),Ut=w(!1),me=w(null),se=w(z((b==null?void 0:b.viewDirty)??!1)),p=w(null),_=w(null),ie=w(null),qt=w(null),he=w(0),Kt=w(null),jt=w(null),Ue=w(0),Xt=w(0),zt=w(null),qe=w(null),rt=w(null),Yt=w(null),nt=w(null),at=w(null),Gt=w(null),ot=w(z((b==null?void 0:b.humanSpeechBubbleReservedLevels)??1)),Ke=w("idle"),be=w(""),Zt=w(null),gt=0,st=0,wt=0,xe=null,je=0,ue=(b==null?void 0:b.playbackAudioBuffer)??null,le=null,it=null,lt=null,ct=null,dt=null;const Xe=T(()=>Ft.params.conversationId);function Rr(e,t){const n=new URLSearchParams;t&&n.set("source",t);const a=n.toString();return`/traces/api/latency/${encodeURIComponent(e)}${a?`?${a}`:""}`}const ut=T(()=>r(Xe)?Rr(r(Xe),r(bt)):""),W=T(()=>{var t;let e=Number.POSITIVE_INFINITY;for(const n of r(q))typeof n.atMs!="number"||!Number.isFinite(n.atMs)||(e=Math.min(e,n.atMs));return Number.isFinite(e)?e:typeof((t=r(Se))==null?void 0:t.createdAt)=="number"&&Number.isFinite(r(Se).createdAt)?r(Se).createdAt:Number.isFinite(e)?e:0}),Ee=T(()=>Qa(r(q))),ta=T(()=>r(q).length),Ir=T(()=>$a()),Cr=T(()=>Ca(r(Ee),r(Ir))),ra=T(()=>[...r(Ee).map(t=>{const n=r(Cr).bySegmentId.get(t.id);return!n||t.row!=="Playback"||t.durationMs<=0?t:{...t,speechText:n.text,speechFullText:n.fullText,speechTraceLabel:n.traceLabel}}),...Ba(r(Ir),r(Cr).responseIds)]),ke=T(()=>{const e=new Map;for(const t of r(ra)){const n=e.get(t.row);n?n.push(t):e.set(t.row,[t])}return[...kr].reverse().map(t=>({label:t.label,segments:e.get(t.label)??[]})).filter(t=>t.segments.length>0)}),Jt=T(()=>Ka()),na=T(()=>Math.max(r(ot),Yr(r(Jt),"human"))),Br=T(()=>Ua(r(Jt))),Qt=T(()=>Va(r(na))),Nr=T(()=>r(Qt)),Fr=T(()=>r(ke).length*Me+Math.max(0,r(ke).length-1)*ae),_t=T(()=>r(ke).length>0?ae:0),aa=T(()=>Y+r(Fr)+r(_t)),ft=T(()=>r(A).exists),oa=T(()=>r(ft)?ae+Ht:0),sa=T(()=>uo(r(ke))),ye=T(()=>r(K)?r(W)+r(A).alignmentOffsetMs:null),er=T(()=>Y+r(Fr)+r(_t)+r(Nr)+r(oa)),tr=T(()=>r(ye)==null?null:r(ye)+r(G)),ze=T(()=>{const e=r(tr);if(e==null||r(p)==null||r(_)==null)return null;const t=r(_)-r(p);return!Number.isFinite(t)||t<=0||e<r(p)||e>r(_)?null:{leftPercent:H((e-r(p))/t*100,0,100),topPx:Y,heightPx:Math.max(1,r(er)-Y)}}),Dr=T(()=>{if(r(p)==null||r(_)==null)return null;const e=r(_)-r(p);return!Number.isFinite(e)||e<=0||r(W)<r(p)||r(W)>r(_)?null:{leftPercent:(r(W)-r(p))/e*100,topPx:Y,heightPx:Math.max(1,r(er)-Y)}}),Ye=T(()=>{let e=Number.POSITIVE_INFINITY,t=Number.NEGATIVE_INFINITY;for(const n of r(Ee))e=Math.min(e,n.start),t=Math.max(t,n.end);return r(K)&&r(ye)!=null&&(e=Math.min(e,r(ye)),t=Math.max(t,r(ye)+r(K).durationMs)),!Number.isFinite(e)||!Number.isFinite(t)?null:(t<=e&&(t=e+1),{min:e,max:t})}),Tt=T(()=>{let e=Number.POSITIVE_INFINITY,t=Number.NEGATIVE_INFINITY;for(const n of r(Ee))Gn.has(n.row)&&(e=Math.min(e,n.start),t=Math.max(t,n.end));return!Number.isFinite(e)||!Number.isFinite(t)?null:(t<=e&&(t=e+1),{min:e,max:t})}),Or=T(()=>{if(r(p)==null||r(_)==null)return null;const e=r(_)-r(p);return e>0?e:null}),Mt=T(()=>r(p)==null||r(_)==null?[]:po(r(p),r(_),r(W))),ia=T(()=>r(qe)?ao(r(qe)).split(`
|
|
2
|
+
`):[]);te(()=>{const e=r(Yt),t=r(rt),n=r(qe);r(p),r(_),!(!e||!t||!n)&&e.update()}),te(()=>{const e=r(Gt),t=r(at),n=r(nt);r(p),r(_),!(!e||!t||!n)&&e.update()}),te(()=>{const e=Yr(r(Jt),"human");e>r(ot)&&i(ot,e,!0)});function Ge(e=r(be)){var s,l;if(!e)return;const t=De.latency.get(e),n={conversation:r(Se),traces:r(q),conversationTraces:r(oe),dataLoaded:r(Le),error:r(We),recording:r(A),recordingLoaded:r(He),recordingError:r(ve),waveform:r(K),waveformError:r(Pe),playbackAudioBuffer:ue,playbackPositionMs:r(G),viewportStartMs:r(p),viewportEndMs:r(_),viewportOriginMs:r(W),viewDirty:r(se),humanSpeechBubbleReservedLevels:r(ot),scrollTop:(t==null?void 0:t.scrollTop)??((s=r(ie))==null?void 0:s.scrollTop)??0,scrollLeft:(t==null?void 0:t.scrollLeft)??((l=r(ie))==null?void 0:l.scrollLeft)??0};De.latency.set(e,n);const a=r(Xe),o=r(bt);a&&o&&e===Dt(a,"")&&De.latency.set(Dt(a,o),n)}async function la(e){e&&(await hs(),r(ie)&&(r(ie).scrollTop=e.scrollTop,r(ie).scrollLeft=e.scrollLeft))}function ca(){if(!r(be)||!r(ie))return;const e=De.latency.get(r(be));if(!e){Ge();return}e.scrollTop=r(ie).scrollTop,e.scrollLeft=r(ie).scrollLeft}ps(()=>{Wr(),Ge(),xe==null||xe(),or(),Je(!1),bo()}),te(()=>{const e=r(Xe),t=Rn(Ft.url)??In()??"";if(t!==r(bt)&&i(bt,t,!0),!e)return;const n=Dt(e,t);if(n===r(be))return;Wr(),Ge(),i(be,n,!0);const a=De.latency.get(n),s=((a==null?void 0:a.viewportStartMs)!=null&&a.viewportEndMs!=null&&typeof a.viewportOriginMs=="number"&&Number.isFinite(a.viewportOriginMs)?{startMs:a.viewportStartMs,endMs:a.viewportEndMs,originMs:a.viewportOriginMs}:null)??Ms(n);i(Zt,s,!0),i(se,s?(a==null?void 0:a.viewDirty)??!0:!1,!0),i(We,(a==null?void 0:a.error)??null,!0),i(ve,(a==null?void 0:a.recordingError)??null,!0),i(me,null),i(Pe,(a==null?void 0:a.waveformError)??null,!0),Je(!1),ue=a!=null&&a.recordingLoaded?a.playbackAudioBuffer:null,i(G,(a==null?void 0:a.playbackPositionMs)??0,!0),i(de,null),i(K,a!=null&&a.recordingLoaded?a.waveform:null,!0),i(Se,a!=null&&a.dataLoaded?a.conversation:null,!0),i(q,a!=null&&a.dataLoaded?a.traces:[],!0),i(oe,a!=null&&a.dataLoaded?a.conversationTraces:[],!0),i(Le,(a==null?void 0:a.dataLoaded)??!1,!0),i(A,a!=null&&a.recordingLoaded?a.recording:$r(),!0),i(He,(a==null?void 0:a.recordingLoaded)??!1,!0),i(p,null),i(_,null),i(ot,(a==null?void 0:a.humanSpeechBubbleReservedLevels)??1,!0),tt.setSourceId(t||void 0),r(Le)?i(Oe,!1):Po(e),r(He)?i(xt,!1):Eo(Rr(e,t)),la(a)}),te(()=>{const e=r(Zt),t=r(Le),n=r(Tt)??r(Ye),a=r(W);if(!e||!t||!n)return;i(Zt,null),i(se,!0);const o=_s(e,a);ur(o.startMs,o.endMs)}),te(()=>{!r(Le)||!(r(Tt)??r(Ye))||r(se)||dr(!1)}),te(()=>{const e=r(be),t=r(p),n=r(_);!e||t==null||n==null||Fn(e,{startMs:t,endMs:n,originMs:r(W)})}),te(()=>{const e=r(qt);if(!e||typeof ResizeObserver>"u")return;i(he,e.clientWidth,!0);const t=new ResizeObserver(n=>{const a=n[0];a&&i(he,a.contentRect.width,!0)});return t.observe(e),()=>t.disconnect()}),te(()=>{const e=r(Kt);if(!e||typeof ResizeObserver>"u")return;i(Ue,e.clientWidth,!0),i(Xt,e.clientHeight,!0);const t=new ResizeObserver(n=>{const a=n[0];a&&(i(Ue,a.contentRect.width,!0),i(Xt,a.contentRect.height,!0))});return t.observe(e),()=>t.disconnect()}),te(()=>{if(!r(A).exists||typeof window>"u")return;const t=n=>{n.code==="Space"&&(n.metaKey||n.ctrlKey||n.altKey||n.shiftKey||_o(n.target)||(n.preventDefault(),rn()))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)}),te(()=>{const e=r(jt),t=r(K),n=r(ye),a=r(p),o=r(_),s=r(Ue),l=r(Xt);!e||!t||n==null||a==null||o==null||ho(e,{peaks:t,recordingStartMs:n,viewportStartMs:a,viewportEndMs:o,width:s,height:l})});function J(e){if(typeof e!="string")return null;const t=e.trim();return t||null}function rr(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function nr(e){return Math.max(0,Math.min(255,Math.round(e)))}function H(e,t,n){return Math.min(n,Math.max(t,e))}function Z(e,t){const n=(e??"").trim().replace(/^#/,""),a=n.length===3?n.split("").map(c=>`${c}${c}`).join(""):n;if(a.length!==6||!/^[0-9a-fA-F]+$/.test(a))return e;const o=parseInt(a.slice(0,2),16),s=parseInt(a.slice(2,4),16),l=parseInt(a.slice(4,6),16),d=Math.abs(Math.max(-1,Math.min(1,t))),u=t>=0?255:0;return`#${nr(o+(u-o)*d).toString(16).padStart(2,"0")}${nr(s+(u-s)*d).toString(16).padStart(2,"0")}${nr(l+(u-l)*d).toString(16).padStart(2,"0")}`}function da(e){const t=rr(e);return t==null?"—":`${Math.round(t)} ms`}function ua(e){if(e==null||!Number.isFinite(e))return"0 ms";const t=Math.round(e);return t===0?"0 ms":`${t>0?"+":""}${t} ms`}function Ze(e){if(!Number.isFinite(e))return"—";const t=e<0?"-":"",n=Math.abs(e);if(n<1e4)return`${t}${(n/1e3).toFixed(1)}s`;if(n<6e4)return`${t}${(n/1e3).toFixed(2)}s`;const a=n/1e3,o=Math.floor(a/60),s=a-o*60;return`${t}${o}:${s.toFixed(1).padStart(4,"0")}`}function fa(e){try{return JSON.stringify(e??null,null,2)}catch{return String(e)}}async function pa(){try{await navigator.clipboard.writeText(fa(r(q))),i(Ke,"ok"),window.setTimeout(()=>{i(Ke,"idle")},2e3)}catch(e){console.error("Failed to copy latency stream",e),i(Ke,"error"),window.setTimeout(()=>{i(Ke,"idle")},3e3)}}function Wr(){!r(be)||r(p)==null||r(_)==null||Fn(r(be),{startMs:r(p),endMs:r(_),originMs:r(W)})}function Q(e){const t=typeof e.createdAt=="number"&&Number.isFinite(e.createdAt)?new Date(e.createdAt).toLocaleTimeString():"unknown time";return e.traceType==="LATENCY"?`Latency • #${e.seq??"?"} • ${e.eventType??"unknown"} • ${t}`:e.traceType==="CONVERSATIONAL"?`Conversational • ${e.eventName} • ${t}`:e.traceType==="STEP"?`Step • ${e.name??"unknown"} • ${t}`:`API • ${e.operationName} • ${t}`}function ar(e){const t=e.payload;return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function va(e){return e==="call.started"||e==="call.ended"?"Call":e.startsWith("vad.")?"VAD":e.startsWith("stt.")?"STT":e==="speech.created"?"Trigger":e.startsWith("reply.pending.")?"Reply Pending":e.startsWith("llm.connect_tcp.")||e.startsWith("llm.start_tls.")?"LLM Transport":e==="llm.requested"||e.startsWith("llm.wait.")?"LLM Wait":e==="llm.first_token"||e==="llm.completed"||e.startsWith("llm.stream.")?"LLM Stream":e.startsWith("tts.text.")?"TTS Text":e.startsWith("tts.provider.")||e==="tts.audio.first_received"||e==="tts.audio.last_received"?"Provider":e.startsWith("tts.decode.")?"Decode":e.startsWith("audio.output.wait.")?"Output Queue":e==="interruption.detected"||e==="audio.playback.interrupted"?"Interruptions":e.startsWith("audio.playback.")?"Playback":"Other"}function ma(e){return e==="call.started"||e==="call.ended"?"call":e.startsWith("vad.")?"vad":e.startsWith("stt.")?"stt":e==="speech.created"?"trigger":e.startsWith("reply.pending.")?"reply.pending":e.startsWith("llm.connect_tcp.")||e.startsWith("llm.start_tls.")?"llm.transport":e==="llm.requested"||e.startsWith("llm.wait.")?"llm.wait":e==="llm.first_token"||e==="llm.completed"||e.startsWith("llm.stream.")?"llm.stream":e.startsWith("tts.text.")?"tts.text":e.startsWith("tts.provider.")?"tts.provider.lifecycle":e==="tts.audio.first_received"||e==="tts.audio.last_received"?"tts.provider":e.startsWith("tts.decode.")?"tts.decode":e.startsWith("audio.output.wait.")?"audio.output.wait":e==="interruption.detected"||e==="audio.playback.interrupted"?"interruption":e.startsWith("audio.playback.")?"playback":"other"}function ha(e){switch(e){case"vad.activated":case"stt.started":return"start";case"vad.deactivated":case"stt.final":case"stt.final_transcript":return"end";default:return null}}function ba(e){switch(e.eventType){case"call.started":return"Call started";case"call.ended":return"Call ended";case"vad.activated":return"VAD activated";case"vad.deactivated":return"VAD deactivated";case"stt.started":return"STT start";case"stt.interim":return"STT interim";case"stt.final":case"stt.final_transcript":return"STT final";case"speech.created":return"Speech created";case"reply.pending.started":return"Reply pending start";case"reply.pending.completed":return"Reply pending end";case"llm.connect_tcp.started":return"Connect TCP start";case"llm.connect_tcp.completed":return"Connect TCP end";case"llm.connect_tcp.failed":return"Connect TCP failed";case"llm.start_tls.started":return"TLS start";case"llm.start_tls.completed":return"TLS end";case"llm.start_tls.failed":return"TLS failed";case"llm.wait.started":return"LLM wait start";case"llm.wait.completed":return"LLM wait end";case"llm.stream.started":return"LLM stream start";case"llm.stream.completed":return"LLM stream end";case"llm.requested":return"LLM request";case"llm.first_token":return"LLM first token";case"llm.completed":return"LLM end";case"tts.text.first_sent":return"TTS first text";case"tts.text.completed":return"TTS text end";case"tts.provider.started":return"Provider start";case"tts.provider.completed":return"Provider end";case"tts.audio.first_received":return"Provider audio received";case"tts.audio.last_received":return"Provider audio end";case"tts.decode.started":return"Decode start";case"tts.decode.completed":return"Decode end";case"audio.output.wait.started":return"Output queue start";case"audio.output.wait.completed":return"Output queue end";case"interruption.detected":return"Interruption detected";case"audio.playback.started":return"Playback start";case"audio.playback.stopped":return"Playback stop";case"audio.playback.ended":return"Playback end";case"audio.playback.interrupted":return"Playback interrupted";default:return e.eventType}}function xa(e){const t=ar(e);switch(e.eventType){case"call.started":return"Call-scoped latency stream started";case"call.ended":return"Call-scoped latency stream ended";case"vad.activated":return"Raw VAD activation event";case"vad.deactivated":return"Raw VAD deactivation event";case"stt.started":return"Speech-to-text detected speech start";case"stt.interim":return J(t.originalType)==="preflight_transcript"?"Speech-to-text preflight transcript":"Speech-to-text interim transcript";case"stt.final":case"stt.final_transcript":return"Speech-to-text final transcript";case"speech.created":return"LiveKit created a speech handle";case"reply.pending.started":return"Reply generation was committed, but downstream generation has not started yet";case"reply.pending.completed":return"Reply generation moved from pending into the LLM request phase";case"llm.connect_tcp.started":return"httpcore started opening a new TCP connection for the LLM request";case"llm.connect_tcp.completed":return"httpcore finished opening a new TCP connection for the LLM request";case"llm.connect_tcp.failed":return"httpcore failed while opening a new TCP connection for the LLM request";case"llm.start_tls.started":return"httpcore started TLS negotiation for the LLM request";case"llm.start_tls.completed":return"httpcore finished TLS negotiation for the LLM request";case"llm.start_tls.failed":return"httpcore failed during TLS negotiation for the LLM request";case"llm.wait.started":return"LLM request is in flight and waiting for the first token";case"llm.wait.completed":return"The LLM wait phase ended when the first token arrived";case"llm.stream.started":return"LLM streaming phase started";case"llm.stream.completed":return"LLM streaming phase ended";case"llm.requested":return"AnyVan received an LLM request";case"llm.first_token":return"First LLM token received";case"llm.completed":return"LLM streaming completed";case"tts.text.first_sent":return"First text chunk sent to the TTS provider";case"tts.text.completed":return"Last non-empty text chunk observed for this TTS stream";case"tts.provider.started":return"Provider lifecycle started when the first non-empty TTS text chunk was sent";case"tts.provider.completed":return"Provider lifecycle ended when the provider stream reported completion";case"tts.audio.first_received":return"First audio chunk received from the TTS provider";case"tts.audio.last_received":return"Last audio chunk received from the TTS provider";case"tts.decode.started":return"First provider audio bytes were handed into the local decode path";case"tts.decode.completed":return"The first decoded audio frame left the local decode path";case"audio.output.wait.started":return"The first local audio frame was handed to the LiveKit audio output";case"audio.output.wait.completed":return"The audio-output wait phase ended when low-level playback actually started";case"interruption.detected":return"User speech overlapped active playback; this does not guarantee playback stopped";case"audio.playback.started":return"First played audio frame";case"audio.playback.stopped":return"Playback lifecycle ended on the Playback row";case"audio.playback.ended":return"Audio playback finished normally";case"audio.playback.interrupted":return"Audio playback ended because the output buffer was interrupted";default:return null}}function Hr(e){const t=ar(e);return J(t.text)}function ya(e){return e.eventType==="stt.final"||e.eventType==="stt.final_transcript"}function fe(e){const t=J(e);return t&&t.replace(/\s+/g," ").trim()||null}function ga(e){const t=ar(e),n=fe(t.text)??fe(t.transcript)??fe(t.finalTranscript)??fe(t.final_transcript)??fe(t.message);if(n)return n;const a=t.alternatives;if(Array.isArray(a))for(const o of a){if(!o||typeof o!="object")continue;const s=fe(o.text);if(s)return s}return null}function Vr(e){return e.traceType==="CONVERSATIONAL"}function Ur(e){return Vr(e)&&e.role.toLowerCase()==="user"&&(e.eventName==="received-message"||e.eventName==="llm-handler-stream-requested")}function qr(e){return Vr(e)&&(e.eventName==="finished-main-streaming-step"||e.eventName==="sent-message")}function St(e){return J(e.traceId)??`${e.createdAt}:${e.eventName}:${e.content}`}function wa(e,t){for(let n=t-1;n>=0;n-=1){const a=e[n];if(a.traceType==="CONVERSATIONAL")return a}return null}function _a(e,t){const n=rr(t.startTrace.createdAt),a=rr(t.endTrace.createdAt);if(n==null)return null;for(let o=0;o<e.length;o+=1){const s=e[o];if(!qr(s)||s.createdAt<n-Er||a!=null&&s.createdAt<a-Er)continue;const l=wa(e,o);if(!(!l||!Ur(l)))return s}return null}function Kr(e,t){return t>=e.start&&t<=e.end?0:Math.min(Math.abs(t-e.start),Math.abs(t-e.end))}function Ta(e,t,n){const a=t.filter(o=>n.has(o.id)?!1:o.start>=e.end-Sr&&o.start<=e.end+Lr).sort((o,s)=>Math.abs(o.start-e.end)-Math.abs(s.start-e.end));return a[0]?a[0]:t.find(o=>!n.has(o.id)&&o.start<=e.end+Lr&&o.end>=e.end-Sr)??null}function Ma(e,t,n){return t.filter(o=>n.has(o.id)?!1:o.end>=e-ht&&o.start<=e+ht).sort((o,s)=>Kr(o,e)-Kr(s,e))[0]??null}function jr(){for(const e of r(q).slice().sort(pt))if(e.eventType==="call.started"&&Number.isFinite(e.atMs))return e.atMs;return r(W)}function Sa(e,t){const n=t.filter(a=>a.start<=e).sort((a,o)=>o.start-a.start||o.end-a.end)[0];return n?n.end<=e?Math.min(n.end,e):Math.min(n.start,e):Math.min(jr(),e)}function Xr(e){return e.replace(/<[^>]+>/g,"").trim()===""}function La(e){return/<WAIT\b[^>]*\/?\s*>/i.test(e)}function Pa(e){return e.traceType==="STEP"&&ys(e.name)&&J(e.response)!=null}function zr(e){return e.replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim()}function Ea(e,t){if(e===t)return!0;const n=zr(e),a=zr(t);return n!==""&&n===a}function ka(e){let t=e-ht,n=e+ht;for(const a of r(oe))if(Ur(a))if(a.createdAt<=e)t=a.createdAt;else{n=a.createdAt;break}return{start:t,end:n}}function Aa(e,t,n){const a=ka(e.createdAt);return t.filter(o=>!n.has(Ae(o))&&o.createdAt>=a.start&&o.createdAt<a.end).sort((o,s)=>Math.abs(o.createdAt-e.createdAt)-Math.abs(s.createdAt-e.createdAt))[0]??null}function $a(){const e=[],t=new Set,n=r(oe).filter(Pa).sort(cr),a=r(oe).filter(qr).sort(cr);for(const o of a){const s=Aa(o,n,t),d=(s?J(s.response):null)??J(o.content),u=fe(d);if(!u||!d)continue;const c=e.find(f=>f.agentTraceIds.size>0&&Math.abs(f.createdAt-o.createdAt)<=1e3&&Ea(f.fullText,d));if(c){c.agentTraceIds.add(St(o)),s&&t.add(Ae(s));continue}s&&t.add(Ae(s)),e.push({id:s?`response:step:${Ae(s)}`:`response:agent:${St(o)}`,text:u,fullText:d,createdAt:o.createdAt,agentTraceIds:new Set([St(o)]),traceLabel:Q(s??o)})}for(const o of n){const s=Ae(o);if(t.has(s))continue;const l=J(o.response),d=fe(l);!d||!l||e.push({id:`response:step:${s}`,text:d,fullText:l,createdAt:o.createdAt,agentTraceIds:new Set,traceLabel:Q(o)})}return e.sort((o,s)=>o.createdAt-s.createdAt||o.id.localeCompare(s.id))}function Ae(e){return J(e.traceId)??`${e.seq??"?"}:${e.createdAt??"?"}`}function Ra(){return r(q).slice().sort(pt).flatMap(e=>{if(e.eventType!=="tts.text.first_sent"&&e.eventType!=="tts.text.completed")return[];const t=fe(Hr(e));return t?[{trace:e,text:t}]:[]})}function Ia(e,t,n,a){const o=a-250,s=e.start+2e3;return t.filter(({trace:d})=>n.has(Ae(d))?!1:d.atMs>=o&&d.atMs<=s).sort((d,u)=>Math.abs(d.trace.atMs-e.start)-Math.abs(u.trace.atMs-e.start))[0]??null}function Ca(e,t){const n=new Map,a=e.filter(c=>c.row==="Playback"&&c.durationMs>0).sort((c,f)=>c.start-f.start||c.end-f.end),o=new Set,s=new Set,l=new Set,d=Ra();let u=jr();for(const c of a){const f=Ia(c,d,l,u);u=Math.max(u,c.end),f&&(l.add(Ae(f.trace)),n.set(c.id,{text:f.text,fullText:f.text,traceLabel:Q(f.trace)}))}for(const c of Cn(r(q))){if(Bn(r(oe),c)==null)continue;const f=_a(r(oe),c);if(!f)continue;const g=t.find(j=>j.agentTraceIds.has(St(f)));if(!g||s.has(g.id)||Xr(g.fullText))continue;const O=Ta(c,a,o);O&&(o.add(O.id),s.add(g.id),n.set(O.id,{text:g.text,fullText:g.fullText,traceLabel:g.traceLabel}))}for(const c of t){if(s.has(c.id)||Xr(c.fullText))continue;const f=Ma(c.createdAt,a,o);f&&(o.add(f.id),s.add(c.id),n.set(f.id,{text:c.text,fullText:c.fullText,traceLabel:c.traceLabel}))}return{bySegmentId:n,responseIds:s}}function Ba(e,t){return e.flatMap(n=>{if(t.has(n.id)||!La(n.fullText))return[];const a=Na(n.createdAt);return[{...Pt({id:`playback:wait:${n.id}`,row:"Playback",start:n.createdAt,end:a,colorKey:"playback",label:"WAIT response",traceLabel:n.traceLabel}),speechText:n.text,speechFullText:n.fullText,speechTraceLabel:n.traceLabel}]})}function Na(e){const t=r(q).filter(n=>n.atMs>e&&(n.eventType==="audio.playback.started"||n.eventType==="stt.started"||n.eventType==="vad.activated"||n.eventType==="call.ended")).sort((n,a)=>n.atMs-a.atMs||n.seq-a.seq)[0];return t?t.atMs:e+1}function Fa(){const e=[],t=r(Ee).filter(n=>n.row==="Playback"&&n.durationMs>0).sort((n,a)=>n.start-a.start||n.end-a.end);return r(q).slice().sort(pt).forEach(n=>{if(!ya(n))return;const a=ga(n);a&&e.push({id:`bubble:human:${n.traceId??n.seq}`,role:"human",text:a,fullText:a,anchorTime:n.atMs,minStartTime:Sa(n.atMs,t),anchorRow:"STT",traceLabel:Q(n)})}),e.sort((n,a)=>n.anchorTime-a.anchorTime||n.role.localeCompare(a.role)||n.id.localeCompare(a.id))}function Da(e){const t=r(ke).findIndex(n=>n.label===e);return t===-1?Y:Y+t*(Me+ae)+Math.round(Me/2)}function Oa(e){let t=0;for(const n of e)n===" "?t+=4:"ilI.,:;!|".includes(n)?t+=4.2:"mwMW@#%&".includes(n)?t+=9.5:/[A-Z0-9]/.test(n)?t+=7.5:t+=6.8;return Math.ceil(t+jn)}function Wa(e,t){const n=Oa(e),a=Math.max(Fe,t);return H(n,Fe,a)}function Ha(e,t){const n=new Set,a=[],o=Math.max(Fe,t);for(const s of[e,Kn,qn,Fe]){const l=H(s,Fe,o);l>e||n.has(l)||(n.add(l),a.push(l))}return a}function Yr(e,t){let n=-1;for(const a of e)a.role===t&&(n=Math.max(n,a.level));return n+1}function Va(e){return Math.max(0,e)*Tr}function Ua(e){const t=r(aa);return e.map(n=>{const a=n.level*Tr,o=t+a,s=Da(n.anchorRow);return{...n,topPx:a,lineTopPx:s,lineHeightPx:Math.max(1,o-s)}})}function qa(e,t){if(r(p)==null||r(_)==null||r(he)<=0)return[];const n=r(p),o=r(_)-n;if(!Number.isFinite(o)||o<=0)return[];const s=t.filter(u=>u.role===e).map(u=>{const c=(u.anchorTime-n)/o*100,f=(u.minStartTime-n)/o*r(he),g=c/100*r(he);return{...u,anchorPercent:c,anchorPx:g,maxWidthPx:Math.max(Fe,g-f)}}).sort((u,c)=>u.anchorPx-c.anchorPx||u.anchorTime-c.anchorTime),l=Array.from({length:Mr},()=>Number.NEGATIVE_INFINITY),d=[];for(const u of s){const c=Wa(u.text,u.maxWidthPx),f=Ha(c,u.maxWidthPx);let g=null;for(const O of f){const j=u.anchorPx,R=j-O;for(let F=0;F<Mr;F+=1)if(!(R<l[F]+Un)){g={...u,leftPx:R,topPx:0,widthPx:O,level:F,lineTopPx:ne,lineHeightPx:1},l[F]=j;break}if(g)break}g&&d.push(g)}return d}function Ka(){const e=Fa();return qa("human",e)}function ja(e){return`left:${Math.round(e.leftPx)}px;top:${Math.round(e.topPx)}px;width:${Math.round(e.widthPx)}px;height:${ne}px;`}function Xa(e){return`left:${e.anchorPercent}%;top:${Math.round(e.lineTopPx)}px;height:${Math.round(e.lineHeightPx)}px;`}function za(e){const t="absolute z-20 overflow-hidden truncate rounded-lg border-thin border-rc-gray-110 px-3 text-sm leading-[30px] text-rc-gray-100 backdrop-blur-md";return e.role==="agent"?`${t} bg-rc-green-700`:`${t} bg-rc-gray-700`}function Ya(e){const t="pointer-events-none max-h-56 max-w-[34rem] overflow-auto rounded-lg border-thin border-rc-gray-110 p-2 pt-1 text-sm text-rc-gray-100 shadow-2xl backdrop-blur-md";return e.role==="agent"?`${t} bg-rc-green-700`:`${t} bg-rc-gray-700`}function or(){dt!=null&&(window.clearTimeout(dt),dt=null)}function Gr(e,t){const n=t.currentTarget;n instanceof HTMLElement&&(or(),dt=window.setTimeout(()=>{i(nt,e,!0),i(at,n,!0),dt=null},Xn))}function Lt(){or(),i(nt,null),i(at,null)}function Pt(e){return{id:e.id,row:e.row,start:e.start,end:e.end,durationMs:Math.max(0,e.end-e.start),colorKey:e.colorKey,label:e.label,description:e.description??null,explain:e.explain??null,text:e.text??null,speechText:null,speechFullText:null,speechTraceLabel:null,traceLabel:e.traceLabel,eventMarker:e.eventMarker??null}}function pt(e,t){return e.seq-t.seq||e.atMs-t.atMs||(e.createdAt??0)-(t.createdAt??0)||String(e.traceId??"").localeCompare(String(t.traceId??""))}function Ga(e,t,n,a){for(let o=t+1;o<e.length;o+=1){const s=e[o];if(a(s))return null;if(n(s))return s}return null}function Za(e){return Cn(e).filter(t=>Bn(r(oe),t)!=null).map(t=>Pt({id:`derived:${t.id}`,row:"Response Latency",start:t.start,end:t.end,colorKey:t.isHigh?"response.latency.high":"response.latency.ok",label:"Final STT -> speech start",description:t.speechCreatedTrace?"Final STT transcript -> first audio for the next uncancelled LiveKit speech":"Final STT transcript -> next audio playback start",explain:t.isHigh?`High latency (>${gs}ms)`:"OK",text:t.text,traceLabel:t.speechCreatedTrace?`${Q(t.startTrace)} -> ${Q(t.speechCreatedTrace)} -> ${Q(t.endTrace)}`:`${Q(t.startTrace)} -> ${Q(t.endTrace)}`}))}function Ja(e){const t=Za(e);return e.forEach((n,a)=>{const o=Jn.get(n.eventType);if(!o)return;const s=Ga(e,a,l=>l.eventType===o.endEventType,l=>l.eventType===o.startEventType);!s||s.atMs<n.atMs||t.push(Pt({id:`derived:${o.row.toLowerCase().replaceAll(" ","_")}:${n.seq}:${s.seq}`,row:o.row,start:n.atMs,end:s.atMs,colorKey:o.colorKey,label:o.label,description:o.description,traceLabel:Q(n)}))}),t}function Qa(e){const t=e.slice().filter(o=>typeof o.atMs=="number"&&Number.isFinite(o.atMs)&&typeof o.seq=="number"&&Number.isFinite(o.seq)).sort(pt),n=t.map((o,s)=>Pt({id:`point:${o.traceId??o.seq}:${s}`,row:va(o.eventType),start:o.atMs,end:o.atMs,colorKey:ma(o.eventType),label:ba(o),description:xa(o),text:Hr(o),traceLabel:Q(o),eventMarker:ha(o.eventType)}));return[...Ja(t),...n].sort((o,s)=>o.start-s.start||(o.durationMs===0?1:0)-(s.durationMs===0?1:0)||o.end-s.end||o.row.localeCompare(s.row))}function Et(e){const t=e&&typeof e=="object"?e:{},n=typeof t.audioUrl=="string"&&t.audioUrl.trim()?t.audioUrl:null;return{exists:t.exists===!0&&n!=null,audioUrl:n,fileName:typeof t.fileName=="string"?t.fileName:null,mimeType:typeof t.mimeType=="string"?t.mimeType:null,size:typeof t.size=="number"&&Number.isFinite(t.size)?t.size:null,uploadedAt:typeof t.uploadedAt=="string"?t.uploadedAt:null,alignmentOffsetMs:typeof t.alignmentOffsetMs=="number"&&Number.isFinite(t.alignmentOffsetMs)?t.alignmentOffsetMs:0}}function sr(e,t){const n=e&&typeof e=="object"?e:{};return typeof n.error=="string"&&n.error.trim()?n.error:typeof n.message=="string"&&n.message.trim()?n.message:t}async function ir(e){var a,o;const t=e.headers.get("content-type")??"";if(t.includes("application/json"))return e.json().catch(()=>({}));const n=(await e.text().catch(()=>"")).trim();if(!n)return{};if(t.includes("text/html")){const s=n.match(/<title>([^<]+)<\/title>/i),l=n.match(/<h1[^>]*>([^<]+)<\/h1>/i);return{message:((a=s==null?void 0:s[1])==null?void 0:a.trim())||((o=l==null?void 0:l[1])==null?void 0:o.trim())||`${e.status} ${e.statusText}`.trim()}}return{message:n}}function kt(e){return e.row==="Playback"&&!e.eventMarker&&e.durationMs>0}function eo(e){return!kt(e)||!e.speechFullText?null:{role:"agent",fullText:e.speechFullText}}function to(e){return kt(e)?e.speechText:null}function ro(e){if(r(p)==null||r(_)==null)return null;const t=r(_)-r(p);if(!Number.isFinite(t)||t<=0)return null;const n=Ar[e.colorKey]??C.gray,a=Z(n,-.25);if(e.end===e.start){if(e.start<r(p)||e.start>r(_))return null;const u=H((e.start-r(p))/t*100,0,100);return e.eventMarker==="start"?`left:${u}%;width:7px;background:${n};border-color:${a};clip-path:polygon(0 0,100% 50%,0 100%);`:e.eventMarker==="end"?`left:calc(${u}% - 7px);width:7px;background:${n};border-color:${a};clip-path:polygon(100% 0,0 50%,100% 100%);`:`left:calc(${u}% - 2px);width:4px;background:${n};border-color:${a};`}const o=Math.max(e.start,r(p)),s=Math.min(e.end,r(_));if(s<o)return null;const l=(o-r(p))/t*100,d=(s-o)/t*100;return kt(e)?`left:${l}%;width:max(${d}%,2px);`:`left:${l}%;width:max(${d}%,2px);background:${n};border-color:${a};`}function no(e){return e.eventMarker?"absolute inset-y-0 shadow-[0_0_0_1px_rgba(0,0,0,0.28)]":kt(e)?"absolute inset-y-0 overflow-hidden truncate rounded-lg border-thin border-rc-gray-110 bg-rc-green-700 px-3 text-sm leading-[30px] text-rc-gray-100 shadow-[0_0_0_1px_rgba(0,0,0,0.12)] backdrop-blur-md":"absolute inset-y-0 rounded border shadow-[0_0_0_1px_rgba(0,0,0,0.12)]"}function ao(e){return[e.label,e.row!==e.label?e.row:"",`${Ze(e.start-r(W))} → ${Ze(e.end-r(W))} (${da(e.durationMs)})`,e.description??"",e.text?`Text: ${e.text}`:"",e.explain??"",e.traceLabel].filter(n=>n.trim()!=="").join(`
|
|
3
|
+
`)}function oo(e,t){const n=t.currentTarget;n instanceof HTMLElement&&(i(qe,e,!0),i(rt,n,!0))}function Zr(){i(qe,null),i(rt,null)}function so(e,t){const n=eo(e);if(n){Zr(),Gr(n,t);return}Lt(),oo(e,t)}function Jr(){Zr(),Lt()}function io(e){return`left:${e.leftPercent}%;top:${e.topPx}px;height:${e.heightPx}px;border-color:${e.color};opacity:${e.opacity};`}function lo(e){return`left:${e.leftPercent}%;top:${e.topPx}px;height:${e.heightPx}px;`}function co(e){const t="absolute top-1 whitespace-nowrap text-[11px] text-rc-gray-400";return e.leftPercent<=.1?t:e.leftPercent>=99.9?`${t} -translate-x-full`:`${t} -translate-x-1/2`}function uo(e){if(!r(A).exists||r(p)==null||r(_)==null)return[];const t=r(p),n=r(_),a=n-t;if(!Number.isFinite(a)||a<=0)return[];const o=r(er),s=new Set,l=[];return e.forEach((d,u)=>{if(!Yn.has(d.label))return;const f=Y+u*(Me+ae)+Math.round(Me/2);d.segments.forEach(g=>{if(g.id.startsWith("playback:wait:"))return;const O=Z(Ar[g.colorKey]??C.gray,.15),j=g.end===g.start?g.start>=t&&g.start<=n?[g.start]:[]:(()=>{const R=Math.max(g.start,t),F=Math.min(g.end,n);return F<R?[]:[R,F]})();for(const R of j){const F=Math.round(R),ge=`${d.label}:${F}`;if(s.has(ge))continue;s.add(ge);const ee=H((R-t)/a*100,0,100);l.push({id:`${g.id}:${F}`,leftPercent:ee,topPx:f,heightPx:Math.max(1,o-f),color:O,opacity:d.label==="VAD"?.62:.48})}})}),l}function fo(e){const t=e/7,n=10**Math.floor(Math.log10(Math.max(1,t))),a=t/n;return a<=1?1*n:a<=2?2*n:a<=5?5*n:10*n}function po(e,t,n){const a=t-e;if(!Number.isFinite(a)||a<=0)return[];const o=fo(a),s=Math.ceil((e-n)/o)*o+n,l=[];for(let d=s;d<=t;d+=o){const u=(d-e)/a*100;l.push({time:d,leftPercent:u,label:Ze(d-n)})}return l}function Qr(){const e=window.AudioContext??window.webkitAudioContext;if(!e)throw new Error("Web Audio is not available in this browser");return new e}function vo(e){if(e.length===0||e.duration===0)return{durationMs:0,binDurationMs:0,minPeaks:new Float32Array(0),maxPeaks:new Float32Array(0),channelCount:e.numberOfChannels,sampleRate:e.sampleRate};const t=H(Math.round(e.duration*200),8e3,6e4),n=Math.max(1,Math.min(t,e.length)),a=Math.max(1,Math.floor(e.length/n)),o=new Float32Array(n),s=new Float32Array(n);for(let l=0;l<n;l+=1){const d=l*a,u=l===n-1?e.length:Math.min(e.length,d+a);let c=1,f=-1;for(let g=0;g<e.numberOfChannels;g+=1){const O=e.getChannelData(g);for(let j=d;j<u;j+=1){const R=O[j]??0;R<c&&(c=R),R>f&&(f=R)}}f===-1&&c===1&&(c=0,f=0),o[l]=c,s[l]=f}return{durationMs:e.duration*1e3,binDurationMs:e.duration*1e3/n,minPeaks:o,maxPeaks:s,channelCount:e.numberOfChannels,sampleRate:e.sampleRate}}async function mo(e){const t=await fetch(e,{cache:"no-store"});if(!t.ok)throw new Error(`Failed to load recording (${t.status})`);const n=await t.arrayBuffer(),a=Qr();try{const o=await a.decodeAudioData(n.slice(0));return{peaks:vo(o),audioBuffer:o}}finally{await a.close().catch(()=>{})}}function ho(e,t){const n=Math.max(1,Math.floor(t.width)),a=Math.max(1,Math.floor(t.height)),o=window.devicePixelRatio||1;e.width=Math.max(1,Math.round(n*o)),e.height=Math.max(1,Math.round(a*o)),e.style.width=`${n}px`,e.style.height=`${a}px`;const s=e.getContext("2d");if(!s)return;s.setTransform(o,0,0,o,0,0),s.clearRect(0,0,n,a),s.fillStyle="rgba(10, 10, 10, 0.2)",s.fillRect(0,0,n,a);const l=t.viewportEndMs-t.viewportStartMs;if(l<=0||t.peaks.minPeaks.length===0||t.peaks.binDurationMs<=0)return;const d=t.recordingStartMs+t.peaks.durationMs,u=Math.max(t.viewportStartMs,t.recordingStartMs),c=Math.min(t.viewportEndMs,d),f=a/2,g=a*.42;if(s.strokeStyle="rgba(147, 255, 109, 0.95)",s.lineWidth=1,s.beginPath(),c>u){const O=Math.max(0,Math.floor((u-t.recordingStartMs)/t.peaks.binDurationMs)),j=Math.min(t.peaks.minPeaks.length-1,Math.ceil((c-t.recordingStartMs)/t.peaks.binDurationMs));for(let R=O;R<=j;R+=1){const ge=(t.recordingStartMs+R*t.peaks.binDurationMs-t.viewportStartMs)/l*n,ee=t.peaks.minPeaks[R]??0,It=t.peaks.maxPeaks[R]??0,Ct=f-It*g,Bt=f-ee*g;s.moveTo(ge,Ct),s.lineTo(ge,Bt)}}s.stroke(),s.strokeStyle="rgba(255, 255, 255, 0.18)",s.lineWidth=1,s.beginPath(),s.moveTo(0,f),s.lineTo(n,f),s.stroke()}function lr(){je&&(window.cancelAnimationFrame(je),je=0)}async function bo(){const e=le;le=null,e&&await e.close().catch(()=>{})}async function xo(){return(!le||le.state==="closed")&&(le=Qr()),le.state==="suspended"&&await le.resume(),le}function en(){const e=tn();if(r(ce)&&le&<!=null&&ct!=null){const t=(le.currentTime-ct)*1e3,n=lt+Math.max(0,t);return e>0?H(n,0,e):Math.max(0,n)}return e>0?H(r(G),0,e):Math.max(0,r(G))}function Je(e=!0){e&&i(G,en(),!0);const t=it;if(it=null,lt=null,ct=null,i(ce,!1),lr(),!!t){t.onended=null;try{t.stop()}catch{}t.disconnect()}}function yo(){lr();const e=()=>{if(!r(ce)){je=0;return}i(G,en(),!0),je=window.requestAnimationFrame(e)};je=window.requestAnimationFrame(e)}function tn(){return r(K)&&Number.isFinite(r(K).durationMs)?Math.max(0,r(K).durationMs):ue&&Number.isFinite(ue.duration)?Math.max(0,ue.duration*1e3):0}function go(e){const t=tn(),n=t>0?H(e,0,t):Math.max(0,e);i(G,n,!0),r(ce)&&nn(n)}function wo(e,t){if(r(p)==null||r(_)==null||r(ye)==null)return;const n=t.getBoundingClientRect(),a=H((e-n.left)/Math.max(1,n.width),0,1),o=r(p)+a*(r(_)-r(p));i(de,null),go(o-r(ye))}function _o(e){const t=e instanceof HTMLElement?e:null;if(!t)return!1;const n=t.tagName;return t.isContentEditable||n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||n==="BUTTON"||n==="A"}async function rn(){if(!(!r(A).exists||!r(A).audioUrl)){if(i(de,null),r(ce)){Je(!0);return}await nn(r(G))}}async function nn(e){const t=ue;if(!t){i(de,r(Ve)?"Recording is still decoding":"Failed to decode recording for playback",!0);return}const n=Math.max(0,t.duration*1e3),a=n>0?e>=n?0:H(e,0,n):Math.max(0,e);Je(!1),i(G,a,!0);try{const o=await xo(),s=o.createBufferSource();s.buffer=t,s.connect(o.destination),s.onended=()=>{it===s&&(it=null,lt=null,ct=null,i(ce,!1),i(G,n,!0),lr())},it=s,lt=a,ct=o.currentTime,i(ce,!0),i(de,null),yo(),s.start(0,a/1e3)}catch(o){Je(!1),i(ce,!1),i(de,o instanceof Error?o.message:"Failed to play recording",!0)}}function To(e){const t=new Set;return e.filter(n=>{const a=J(n==null?void 0:n.traceId);return a?t.has(a)?!1:(t.add(a),!0):!0})}function Mo(e){const t=new Set;return e.filter(n=>{const a=J(n==null?void 0:n.traceId);return a?t.has(a)?!1:(t.add(a),!0):!0})}function cr(e,t){return e.createdAt-t.createdAt||String(e.traceId??"").localeCompare(String(t.traceId??""))}async function So(e){const t=[];let n;for(;;){const a=await tt.getLatencyTraces(e,500,n);if(t.push(...a.items??[]),n=a.lastTraceId,!n)break}return To(t).slice().sort(pt)}async function Lo(e){const t=[];let n;for(;;){const a=await tt.getTraces(e,100,n);if(t.push(...a.items??[]),n=a.lastTraceId,!n)break}return Mo(t).slice().sort(cr)}async function Po(e){const t=++gt;i(Le,!1),i(Oe,!0),i(We,null);try{const[n,a,o]=await Promise.all([tt.getConversation(e).catch(s=>(console.error("Failed to load conversation details:",s),null)),So(e),Lo(e).catch(s=>(console.error("Failed to load conversation traces for latency matching:",s),[]))]);if(t!==gt)return;i(Se,n,!0),i(q,a,!0),i(oe,o,!0),i(Le,!0)}catch(n){if(t!==gt)return;i(We,n instanceof Error?n.message:String(n),!0),i(Se,null),i(q,[],!0),i(oe,[],!0)}finally{if(t!==gt)return;i(Oe,!1),Ge()}}async function an(e){if(Je(!1),i(A,e,!0),i(me,null),i(de,null),i(G,0),!e.exists||!e.audioUrl){ue=null,i(K,null),i(Ve,!1),i(Pe,null);return}const t=++wt;i(Ve,!0),i(Pe,null);try{const n=await mo(e.audioUrl);if(t!==wt)return;i(K,n.peaks,!0),ue=n.audioBuffer}catch(n){if(t!==wt)return;ue=null,i(K,null),i(Pe,n instanceof Error?n.message:String(n),!0)}finally{if(t!==wt)return;i(Ve,!1)}}async function Eo(e=r(ut)){if(!e)return;const t=++st;i(He,!1),i(xt,!0),i(ve,null);try{const n=await fetch(e,{cache:"no-store",headers:{accept:"application/json"}}),a=await ir(n);if(!n.ok)throw new Error(sr(a,"Failed to load recording metadata"));if(t!==st||(await an(Et(a)),t!==st))return;i(He,!0)}catch(n){if(t!==st)return;i(ve,n instanceof Error?n.message:String(n),!0),i(A,Et({}),!0),i(K,null),i(Ve,!1)}finally{if(t!==st)return;i(xt,!1),Ge()}}function dr(e=!0){const t=r(Tt)??r(Ye);if(!t)return;const n=r(W);i(p,n,!0),i(_,Math.max(n+1e3,t.max),!0),i(se,e,!0)}function ko(e,t){const n=r(Ye);if(!n)return{startMs:e,endMs:t};const a=t-e;if(a<=0)return{startMs:e,endMs:t};const o=Math.max(1e3,a*.25),s=n.min-o,l=n.max+o;return a>=l-s?{startMs:s,endMs:l}:(e<s&&(t+=s-e,e=s),t>l&&(e-=t-l,t=l),{startMs:e,endMs:t})}function ur(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||t<=e)return;const n=ko(e,t);i(p,n.startMs,!0),i(_,n.endMs,!0)}function At(e,t=.5){if(r(p)==null||r(_)==null)return;const n=r(_)-r(p);if(!Number.isFinite(n)||n<=0)return;const a=r(Ye),o=a?a.max-a.min:n,s=Math.min(100,n),l=Math.max(o+Math.max(2e3,o*.1),5e3),d=H(n*e,s,l),u=H(t,0,1),f=r(p)+n*u-d*u;i(se,!0),ur(f,f+d)}function Ao(e){let t=e.deltaY;return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=16:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=window.innerHeight),H(t,-Pr,Pr)}function on(e){return Math.exp(Ao(e)*zn)}function fr(e){if(r(he)<=0)return;e.preventDefault();const t=e.currentTarget.getBoundingClientRect(),n=H((e.clientX-t.left)/Math.max(1,t.width),0,1);At(on(e),n)}function $o(e){if(r(Ue)<=0)return;e.preventDefault();const t=e.currentTarget.getBoundingClientRect(),n=H((e.clientX-t.left)/Math.max(1,t.width),0,1);At(on(e),n)}function sn(e){var u;xe==null||xe();const t=Math.max(0,e.activationDistancePx??0);let n=t===0;n&&((u=e.onStart)==null||u.call(e));const a=c=>{var O;if(n)return!0;const f=c.clientX-e.startEvent.clientX,g=c.clientY-e.startEvent.clientY;return Math.hypot(f,g)<t?!1:(n=!0,(O=e.onStart)==null||O.call(e),!0)},o=c=>{a(c)&&e.onMove(c)},s=c=>{var f,g;window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",l),window.removeEventListener("pointercancel",d),xe=null,!n&&c&&((f=e.onClick)==null||f.call(e,c)),(g=e.onEnd)==null||g.call(e,{wasDrag:n,event:c})},l=c=>s(c),d=()=>s();window.addEventListener("pointermove",o),window.addEventListener("pointerup",l),window.addEventListener("pointercancel",d),xe=()=>s()}function ln(e){if(e.button!==0||r(p)==null||r(_)==null||r(he)<=0)return;e.preventDefault(),i(se,!0);const t=e.clientX,n=r(p),a=r(_)-r(p);sn({startEvent:e,onMove:o=>{const l=(o.clientX-t)/r(he)*a;ur(n-l,n-l+a)}})}function cn(e){i(A,{...r(A),alignmentOffsetMs:Math.round(e)},!0)}async function dn(){if(!(!r(A).exists||!r(ut))){i(Ut,!0),i(me,null);try{const e=await fetch(r(ut),{method:"PATCH",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({alignmentOffsetMs:r(A).alignmentOffsetMs})}),t=await ir(e);if(!e.ok)throw new Error(sr(t,"Failed to save alignment offset"));i(A,Et(t),!0)}catch(e){i(me,e instanceof Error?e.message:String(e),!0)}finally{i(Ut,!1)}}}function Ro(e){if(e.button!==0||!r(A).exists||r(K)==null||r(p)==null||r(_)==null||r(Ue)<=0)return;e.preventDefault(),i(me,null);const t=e.currentTarget,n=e.clientX,a=r(A).alignmentOffsetMs,o=r(_)-r(p);sn({startEvent:e,activationDistancePx:6,onStart:()=>{i(se,!0)},onMove:s=>{const d=(s.clientX-n)/r(Ue)*o;cn(a+d)},onClick:s=>{wo(s.clientX,t)},onEnd:({wasDrag:s})=>{s&&dn()}})}async function Io(){r(A).exists&&(i(se,!0),cn(0),await dn())}async function Co(e){var a;const t=e.currentTarget,n=(a=t.files)==null?void 0:a[0];if(t.value="",!(!n||!r(ut))){i(yt,!0),i(ve,null),i(me,null);try{const o=new URL(r(ut),window.location.origin);o.searchParams.set("filename",n.name);const s=await fetch(o,{method:"POST",headers:{accept:"application/json","content-type":n.type||"audio/wav"},body:n}),l=await ir(s);if(!s.ok)throw new Error(sr(l,"Failed to upload recording"));i(se,!1),await an(Et(l)),dr(!1),i(He,!0),Ge()}catch(o){i(ve,o instanceof Error?o.message:String(o),!0)}finally{i(yt,!1)}}}var un=Gs(),$t=vt(un),pr=y($t),vr=y(pr),mr=y(vr),hr=y(mr),Bo=m(y(hr));{var No=e=>{var t=Ss(),n=m(vt(t),2),a=y(n,!0);h(n),S(()=>I(a,r(Xe))),x(e,t)};D(Bo,e=>{r(Xe)&&e(No)})}h(hr);var fn=m(hr,2),br=y(fn),pn=m(y(br),2),Fo=y(pn,!0);h(pn),h(br);var xr=m(br,2),vn=m(y(xr),2),Do=y(vn,!0);h(vn),h(xr);var yr=m(xr,2),mn=m(y(yr),2),Oo=y(mn,!0);h(mn),h(yr);var hn=m(yr,2);{var Wo=e=>{var t=Ls(),n=m(y(t),2),a=y(n,!0);h(n),h(t),S(o=>I(a,o),[()=>Ze(r(tr)-r(W))]),x(e,t)};D(hn,e=>{r(A).exists&&r(tr)!=null&&e(Wo)})}var Ho=m(hn,2);{var Vo=e=>{var t=Ps(),n=m(y(t),2),a=y(n);h(n),h(t),S((o,s)=>I(a,`${o??""} → ${s??""}`),[()=>Ze(r(p)-r(W)),()=>Ze(r(_)-r(W))]),x(e,t)};D(Ho,e=>{r(p)!=null&&r(_)!=null&&e(Vo)})}h(fn),h(mr);var bn=m(mr,2),gr=y(bn);Be(gr,e=>i(zt,e),()=>r(zt));var xn=m(gr,2);Ne(xn,{variant:"secondary",size:"small",get disabled(){return r(yt)},onclick:()=>{var e;return(e=r(zt))==null?void 0:e.click()},children:(e,t)=>{Ce();var n=Ie();S(()=>I(n,r(yt)?"Uploading…":r(A).exists?"Replace WAV":"Upload WAV")),x(e,n)},$$slots:{default:!0}});var yn=m(xn,2);{let e=T(()=>!r(A).exists);Ne(yn,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:()=>void rn(),children:(t,n)=>{Ce();var a=Ie();S(()=>I(a,r(ce)?"Pause":"Play")),x(t,a)},$$slots:{default:!0}})}var gn=m(yn,2);{let e=T(()=>r(Or)==null);Ne(gn,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:()=>At(.8),children:(t,n)=>{Ce();var a=Ie("Zoom in");x(t,a)},$$slots:{default:!0}})}var wn=m(gn,2);{let e=T(()=>r(Or)==null);Ne(wn,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:()=>At(1.25),children:(t,n)=>{Ce();var a=Ie("Zoom out");x(t,a)},$$slots:{default:!0}})}var _n=m(wn,2);{let e=T(()=>!(r(Tt)??r(Ye)));Ne(_n,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:()=>dr(!0),children:(t,n)=>{Ce();var a=Ie("Fit call");x(t,a)},$$slots:{default:!0}})}var Tn=m(_n,2);{let e=T(()=>!r(A).exists||r(Ut));Ne(Tn,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:Io,children:(t,n)=>{Ce();var a=Ie("Reset alignment");x(t,a)},$$slots:{default:!0}})}var Uo=m(Tn,2);{let e=T(()=>!r(q).length);Ne(Uo,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:pa,children:(t,n)=>{Ce();var a=Ie();S(()=>I(a,r(Ke)==="ok"?"Copied":r(Ke)==="error"?"Copy failed":"Copy latency stream")),x(t,a)},$$slots:{default:!0}})}h(bn),h(vr);var Mn=m(vr,2);{var qo=e=>{var t=Es(),n=y(t,!0);h(t),S(()=>I(n,r(Oe)?"Loading call latency…":"Loading recording…")),x(e,t)};D(Mn,e=>{(r(Oe)||r(xt))&&e(qo)})}var Sn=m(Mn,2);{var Ko=e=>{var t=Ot(),n=y(t);h(t),S(()=>I(n,`Failed to load latency traces: ${r(We)??""}`)),x(e,t)};D(Sn,e=>{r(We)&&e(Ko)})}var Ln=m(Sn,2);{var jo=e=>{var t=Ot(),n=y(t);h(t),S(()=>I(n,`Recording error: ${r(ve)??""}`)),x(e,t)};D(Ln,e=>{r(ve)&&e(jo)})}var Pn=m(Ln,2);{var Xo=e=>{var t=Ot(),n=y(t);h(t),S(()=>I(n,`Alignment error: ${r(me)??""}`)),x(e,t)};D(Pn,e=>{r(me)&&e(Xo)})}var zo=m(Pn,2);{var Yo=e=>{var t=Ot(),n=y(t);h(t),S(()=>I(n,`Playback error: ${r(de)??""}`)),x(e,t)};D(zo,e=>{r(de)&&e(Yo)})}h(pr);var Rt=m(pr,2),En=y(Rt),kn=y(En),Go=y(kn);{var Zo=e=>{var t=ks();x(e,t)},Jo=e=>{var t=As();x(e,t)},Qo=e=>{var t=$s();x(e,t)},es=e=>{var t=Xs(),n=y(t),a=m(y(n),2);re(a,19,()=>r(ke),v=>v.label,(v,M,P)=>{var $=Rs(),V=y($,!0);h($),S(()=>{N($,`height:${Me}px;margin-top:${r(P)===0?0:ae}px;`),I(V,r(M).label)}),x(v,$)});var o=m(a,2),s=m(o,2);{var l=v=>{var M=Is();N(M,`height:${Ht}px;margin-top:${ae}px;`),x(v,M)};D(s,v=>{r(ft)&&v(l)})}h(n);var d=m(n,2),u=y(d),c=y(u);re(c,17,()=>r(Br),v=>v.id,(v,M)=>{var P=Cs();S($=>N(P,$),[()=>Xa(r(M))]),x(v,P)});var f=m(c,2);re(f,17,()=>r(sa),v=>v.id,(v,M)=>{var P=Bs();S($=>N(P,$),[()=>io(r(M))]),x(v,P)});var g=m(f,2);{var O=v=>{var M=Ns();S(P=>N(M,P),[()=>lo(r(Dr))]),x(v,M)};D(g,v=>{r(Dr)&&v(O)})}var j=m(g,2);{var R=v=>{var M=Fs(),P=vt(M),$=m(P,2);S(()=>{N(P,`left:${r(ze).leftPercent}%;top:${r(ze).topPx}px;height:${r(ze).heightPx}px;`),N($,`left:${r(ze).leftPercent}%;top:${r(ze).topPx-4}px;`)}),x(v,M)};D(j,v=>{r(ze)&&v(R)})}h(u);var F=m(u,2);re(F,21,()=>r(Mt),v=>v.time,(v,M,P,$)=>{var V=Ds(),we=vt(V),X=m(we,2),k=y(X,!0);h(X),S(U=>{N(we,`left:${r(M).leftPercent}%;`),et(X,1,U),N(X,`left:${r(M).leftPercent}%;`),I(k,r(M).label)},[()=>mt(co(r(M)))]),x(v,V)}),h(F),Be(F,v=>i(qt,v),()=>r(qt));var ge=m(F,2);re(ge,19,()=>r(ke),v=>v.label,(v,M,P)=>{var $=Hs(),V=y($);re(V,17,()=>r(Mt),X=>X.time,(X,k,U,_e)=>{var Qe=Dn();S(()=>N(Qe,`left:${r(k).leftPercent}%;`)),x(X,Qe)});var we=m(V,2);re(we,17,()=>r(M).segments,X=>X.id,(X,k)=>{const U=T(()=>ro(r(k))),_e=T(()=>to(r(k)));var Qe=fs(),Nt=vt(Qe);{var is=wr=>{var Te=Ws(),ls=y(Te);{var cs=$e=>{var _r=Os(),ds=y(_r,!0);h(_r),S(()=>I(ds,r(_e))),x($e,_r)};D(ls,$e=>{r(_e)&&$e(cs)})}h(Te),S($e=>{et(Te,1,$e),N(Te,r(U))},[()=>mt(no(r(k)))]),pe("pointerenter",Te,$e=>so(r(k),$e)),pe("pointerleave",Te,Jr),Re("pointerdown",Te,Jr),x(wr,Te)};D(Nt,wr=>{r(U)&&wr(is)})}x(X,Qe)}),h($),S(()=>N($,`height:${Me}px;margin-top:${r(P)===0?0:ae}px;`)),Re("pointerdown",$,ln),pe("wheel",$,fr),x(v,$)});var ee=m(ge,2);let It;var Ct=y(ee),Bt=m(Ct,2);re(Bt,17,()=>r(Mt),v=>v.time,(v,M,P,$)=>{var V=Vs();S(()=>N(V,`left:${r(M).leftPercent}%;`)),x(v,V)});var as=m(Bt,2);re(as,17,()=>r(Br),v=>v.id,(v,M)=>{var P=On(),$=y(P,!0);h(P),S((V,we)=>{et(P,1,V),N(P,we),I($,r(M).text)},[()=>mt(za(r(M))),()=>ja(r(M))]),pe("pointerenter",P,V=>Gr(r(M),V)),pe("pointerleave",P,Lt),Re("pointerdown",P,Lt),x(v,P)}),h(ee);var os=m(ee,2);{var ss=v=>{var M=js();N(M,`height:${Ht}px;margin-top:${ae}px;`);var P=y(M);{var $=k=>{var U=Us();x(k,U)},V=k=>{var U=qs(),_e=y(U);h(U),S(()=>I(_e,`Failed to decode waveform: ${r(Pe)??""}`)),x(k,U)},we=k=>{var U=Ks();Be(U,_e=>i(jt,_e),()=>r(jt)),x(k,U)};D(P,k=>{r(Ve)?k($):r(Pe)?k(V,1):k(we,-1)})}var X=m(P,2);re(X,17,()=>r(Mt),k=>k.time,(k,U,_e,Qe)=>{var Nt=Dn();S(()=>N(Nt,`left:${r(U).leftPercent}%;`)),x(k,Nt)}),h(M),Be(M,k=>i(Kt,k),()=>r(Kt)),Re("pointerdown",M,Ro),pe("wheel",M,$o),x(v,M)};D(os,v=>{r(ft)&&v(ss)})}h(d),h(t),S(()=>{N(o,`height:${r(Qt)}px;margin-top:${r(_t)}px;`),It=et(ee,1,"relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60",null,It,{"rounded-b":!r(ft),"border-b":!r(ft)}),N(ee,`height:${r(Nr)}px;margin-top:${r(_t)}px;`),N(Ct,`height:${r(Qt)}px;`)}),pe("wheel",F,fr),Re("pointerdown",ee,ln),pe("wheel",ee,fr),x(e,t)};D(Go,e=>{r(Oe)?e(Zo):r(Ee).length?r(p)==null||r(_)==null?e(Qo,2):e(es,-1):e(Jo,1)})}h(kn),h(En),h(Rt),Be(Rt,e=>i(ie,e),()=>r(ie)),h($t);var An=m($t,2);{var ts=e=>{Be($n(e,{get referenceEl(){return r(rt)},placement:"top-start",offset:[0,10],children:n=>{var a=zs();re(a,21,()=>r(ia),bs,(o,s,l)=>{var d=On();et(d,1,mt(l===0?"font-semibold text-rc-gray-050":"mt-1 whitespace-pre-wrap break-words text-rc-gray-300"));var u=y(d,!0);h(d),S(()=>I(u,r(s))),x(o,d)}),h(a),x(n,a)},$$slots:{default:!0}}),n=>i(Yt,n,!0),()=>r(Yt))};D(An,e=>{r(qe)&&r(rt)&&e(ts)})}var rs=m(An,2);{var ns=e=>{const t=T(()=>r(nt));Be($n(e,{get referenceEl(){return r(at)},placement:"top-start",offset:[0,-4],flip:!1,children:a=>{var o=Ys(),s=y(o),l=y(s,!0);h(s),h(o),S(d=>{et(o,1,d),I(l,r(t).fullText)},[()=>mt(Ya(r(t)))]),x(a,o)},$$slots:{default:!0}}),a=>i(Gt,a,!0),()=>r(Gt))};D(rs,e=>{r(nt)&&r(at)&&e(ns)})}S(e=>{I(Fo,r(ta)),I(Do,r(Ee).length),I(Oo,e)},[()=>ua(r(A).alignmentOffsetMs)]),Re("click",$t,e=>e.stopPropagation()),Re("change",gr,Co),pe("scroll",Rt,ca),x(B,un),ms()}us(["click","change","pointerdown"]);export{vi as component};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{a as c,t as q,f as _,d as Te,c as Xt,b as le,e as Be}from"../chunks/D24F_tet.js";import"../chunks/DbY589nb.js";import{o as Ve,a as He}from"../chunks/BHU9AXbn.js";import{p as ce,d as Ye,j as t,y as u,c as y,f as dt,s as S,n as St,r as m,a as ue,w as Zt,o as wt,t as W,k as it,h as d,_ as tt,a4 as j,bf as Ft,bg as Ge,e as Qe,$ as Xe,O as Ze,bh as pe,bi as tr}from"../chunks/0Q6TVg1G.js";import{s as K}from"../chunks/BOlSQbHE.js";import{p as Z,a as er,s as rr}from"../chunks/D6r2pB3T.js";import{i as L}from"../chunks/BZeEhZ9x.js";import{e as te,i as ve}from"../chunks/CR6hF_YT.js";import{h as ar}from"../chunks/FLx39vZ1.js";import{b as nr}from"../chunks/DPfKTQVx.js";import{b as or}from"../chunks/DJFKRYxi.js";import{i as we}from"../chunks/BHwgmBN2.js";import{s as sr}from"../chunks/8bHWYDyT.js";import{g as ge,a as me,T as ir}from"../chunks/CmJrlnQL.js";import{i as ie}from"../chunks/DgGeUDDh.js";import{b as lr,f as cr}from"../chunks/T0seCQS_.js";import{B as yt}from"../chunks/Csai_DUZ.js";import{D as ur}from"../chunks/DSFEfk-V.js";import{I as dr,h as ye}from"../chunks/NwoUwoIi.js";import{M as _e}from"../chunks/C5z36vOP.js";import{m as fr}from"../chunks/-ZTJLlC3.js";import{C as pr,a as vr,b as gr,f as xe,c as he}from"../chunks/BFiP5U7M.js";import{s as zt}from"../chunks/VLxbY_3V.js";import{g as mr,c as be}from"../chunks/DsRUoWL6.js";const yr=()=>{const rt=sr;return{page:{subscribe:rt.page.subscribe},navigating:{subscribe:rt.navigating.subscribe},updated:rt.updated}},_r={subscribe(rt){return yr().page.subscribe(rt)}};var xr=_("<!> <!>",1),hr=_('<div class="mt-1 overflow-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 shadow-inner-white-soft backdrop-blur-2xl" role="listbox"><!> <!></div>'),br=_("<div><!> <!></div>");function Tr(rt,I){ce(I,!0);let $=Z(I,"disabled",3,!1),$t=Z(I,"dropdownId",3,"copy-traces-dropdown"),M=Zt(!1),lt=Zt(null),at=Zt(null),Y=Zt(null);Ye(()=>{$()&&t(M)&&u(M,!1)});async function _t(F){try{const R=F==="with-prompts"?I.getWithPromptsText():I.getWithoutPromptsText();await navigator.clipboard.writeText(R),u(at,F,!0),t(Y)&&clearTimeout(t(Y)),u(Y,window.setTimeout(()=>{u(at,null),u(Y,null)},2e3),!0)}catch(R){console.error("Failed to copy traces",R)}}var ft=br(),p=y(ft);yt(p,{variant:"secondary",size:"small",get disabled(){return $()},get"aria-expanded"(){return t(M)},"aria-haspopup":"listbox",get"aria-controls"(){return $t()},onclick:F=>{F.stopPropagation(),u(M,!t(M))},class:"flex items-center gap-1",get el(){return t(lt)},set el(F){u(lt,F,!0)},children:(F,R)=>{var x=xr(),C=dt(x);{var xt=P=>{var et=q("Copied traces (without prompts)");c(P,et)},z=P=>{var et=q("Copied traces (with prompts)");c(P,et)},nt=P=>{var et=q("Copy traces");c(P,et)};L(C,P=>{t(at)==="without-prompts"?P(xt):t(at)==="with-prompts"?P(z,1):P(nt,-1)})}var B=S(C,2);{let P=St(()=>"size-5 text-rc-gray-400 transition-transform duration-200 "+(t(M)?"rotate-180":""));dr(B,{name:"chevron-down",get class(){return t(P)}})}c(F,x)},$$slots:{default:!0}});var Lt=S(p,2);ur(Lt,{get id(){return $t()},get open(){return t(M)},onClose:()=>u(M,!1),get anchorEl(){return t(lt)},placement:"bottom-end",offset:[0,1],children:R=>{var x=hr(),C=y(x);yt(C,{variant:"ghost",size:"small",role:"option",onclick:z=>{z.stopPropagation(),u(M,!1),_t("without-prompts")},class:"w-full rounded-none border-b border-rc-gray-110 py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400",children:(z,nt)=>{wt();var B=q("Without prompts");c(z,B)},$$slots:{default:!0}});var xt=S(C,2);yt(xt,{variant:"ghost",size:"small",role:"option",onclick:z=>{z.stopPropagation(),u(M,!1),_t("with-prompts")},class:"w-full rounded-none py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400",children:(z,nt)=>{wt();var B=q("With prompts");c(z,B)},$$slots:{default:!0}}),m(x),c(R,x)},$$slots:{default:!0}}),m(ft),c(rt,ft),ue()}var wr=_("<div> </div>"),Sr=_('<div class="mt-1 whitespace-pre-wrap break-words text-xs italic text-rc-gray-200"> </div>'),$r=_("<div><!> <!> <!></div>"),Lr=_("<div><div><div> </div> <div><!> <!></div> <!></div></div>"),Cr=_('<div class="space-y-3"></div>'),Pr=_('<div class="whitespace-pre-wrap break-words"><!></div>'),Nr=_('<button class="inline-flex text-sm text-rc-green-200 hover:text-rc-green-100"> </button>'),kr=_('<div><span class="whitespace-pre-wrap break-words"><!></span> <!></div>');function Ar(rt,I){ce(I,!1);let $=Z(I,"value",8,""),$t=Z(I,"limit",8,200),M=Z(I,"maxLines",8,null),lt=Z(I,"className",8,""),at=Z(I,"collapsedLabel",8,"...more"),Y=Z(I,"initiallyExpanded",8,!1),_t=Z(I,"stopPropagation",8,!0),ft=Z(I,"expanded",28,Y),p=Z(I,"treatPlainText",8,!1),Lt=Z(I,"highlightPrompt",8,!1);function F(s){return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function R(s){const l=x(s);let n=F(l);const f=[];return n=n.replace(/(\{+[\s\S]*?\}+)/g,v=>{const b=f.length;return f.push(v),`__CURLY${b}__`}),n=n.replace(/^(\s*#.*)$/gm,'<span class="prompt-heading">$1</span>'),n=n.replace(/(<[^&]*?>)/g,'<span class="mtk8">$1</span>'),n=n.replace(/^(\s*)(\d+)([.)])(\s+)/gm,(v,b,w,U,ct)=>`${b}<span class="mtk8">${w}${U}</span>${ct}`),f.forEach((v,b)=>{const w=`<span class="mtk5">${v}</span>`;n=n.replace(`__CURLY${b}__`,w)}),n=n.replace(/\n/g,"<br/>"),n}function x(s){let l=s.replace(/\r\n/g,`
|
|
2
|
+
`);return l=l.replace(/\\n/g,`
|
|
3
|
+
`),l}function C(s){try{if(Array.isArray(s)){const l=s.map(n=>(n==null?void 0:n.text)??(n==null?void 0:n.content)??JSON.stringify(n)).join(" ");return x(l)}if(typeof s=="string")try{const l=JSON.parse(s);if(Array.isArray(l)){const n=l.map(f=>(f==null?void 0:f.text)??(f==null?void 0:f.content)??JSON.stringify(f)).join(" ");return x(n)}return x(s)}catch{return x(s)}return x(JSON.stringify(s))}catch{return x(String(s??""))}}function xt(s){try{if(Array.isArray(s)){const l=s.map(n=>(n==null?void 0:n.text)??(n==null?void 0:n.content)??JSON.stringify(n)).join(`
|
|
4
|
+
`);return x(l)}if(typeof s=="string")try{const l=JSON.parse(s);if(Array.isArray(l)){const n=l.map(f=>(f==null?void 0:f.text)??(f==null?void 0:f.content)??JSON.stringify(f)).join(`
|
|
5
|
+
`);return x(n)}return x(s)}catch{return x(s)}return x(JSON.stringify(s,null,2))}catch{return x(String(s??""))}}function z(s){const n=x(s).split(/\n+/).map(w=>w.trim()).filter(w=>w.length>0),f=[];let v,b="";for(const w of n){const U=w.match(/^(user|assistant|system|customer|caller|tool|model|agent)\s*[:\-]\s*(.*)$/i);U?(b&&f.push({text:b,role:v}),v=U[1].toLowerCase(),b=U[2]??""):b?b+=`
|
|
6
|
+
`+w:b=w}return b&&f.push({text:b,role:v}),f}function nt(s){try{let l=s;if(typeof s=="string")try{l=JSON.parse(s)}catch{return p()?z(s):[]}if(!Array.isArray(l))if(Array.isArray(l==null?void 0:l.messages))l=l.messages;else return[];return l.map(n=>{let f;return(n==null?void 0:n.text)!=null?f=String(n.text):(n==null?void 0:n.content)!=null?Array.isArray(n.content)?f=n.content.map(v=>{var b;return typeof v=="string"?v:typeof(v==null?void 0:v.text)=="string"?v.text:typeof((b=v==null?void 0:v.text)==null?void 0:b.value)=="string"?v.text.value:JSON.stringify(v)}).join(" "):typeof n.content=="string"?f=n.content:f=JSON.stringify(n.content):typeof n=="string"?f=n:f=JSON.stringify(n),{text:x(f),role:n==null?void 0:n.role,time:n==null?void 0:n.time,duration:n==null?void 0:n.duration}}).filter(n=>n.text&&String(n.text).trim().length>0)}catch{return[]}}const B=()=>C($()),P=()=>xt($()),et=()=>B().split(`
|
|
7
|
+
`),It=()=>nt($()),h=()=>It().length>0,Ct=()=>M()!=null?et().length>M():B().length>$t(),Et=()=>{const s=B();return Ct()?M()!=null?et().slice(0,M()).join(`
|
|
8
|
+
`):s.slice(0,$t()):s};function Pt(s){if(!s)return null;try{const l=new Date(s);return Number.isNaN(l.getTime())?s:l.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return s}}function Nt(s){if(s==null||!Number.isFinite(s))return null;const l=Number(s),n=Math.floor(l),f=Math.floor(n/60),v=n%60,b=String(f).padStart(2,"0"),w=String(v).padStart(2,"0");return`${b}:${w}`}function Ut(s){if(!s)return"Assistant";const l=s.trim();return l?l.charAt(0).toUpperCase()+l.slice(1):"Assistant"}function Dt(s){const l=(s==null?void 0:s.toLowerCase())??"";return l==="user"||l==="customer"||l==="caller"}function H(s){const l=[];return{main:s.replace(/<([^>]+)>/g,(f,v)=>{const b=String(v).trim();return b&&l.push(b),""}).trim(),system:l}}function pt(s){_t()&&s.stopPropagation(),ft(!ft())}function vt(s){_t()&&s.stopPropagation()}we();var ht=Xt(),kt=dt(ht);{var Ht=s=>{var l=Xt(),n=dt(l);{var f=w=>{var U=Cr();te(U,5,()=>d(It),ve,(ct,T)=>{const E=tt(()=>(t(T),d(()=>Dt(t(T).role)))),J=tt(()=>(t(T),d(()=>(t(T).role??"").toLowerCase()==="system"))),V=tt(()=>(t(T),d(()=>H(t(T).text)))),ut=tt(()=>(t(T),d(()=>Pt(t(T).time)))),Ot=tt(()=>(t(T),d(()=>Nt(t(T).duration))));var Rt=Lr(),Wt=y(Rt),jt=y(Wt),ee=y(jt,!0);m(jt);var Jt=S(jt,2),Kt=y(Jt);{var re=G=>{var Q=wr(),ot=y(Q,!0);m(Q),W(()=>K(ot,(it(t(V)),d(()=>t(V).main)))),c(G,Q)};L(Kt,G=>{it(t(V)),d(()=>t(V).main)&&G(re)})}var ae=S(Kt,2);te(ae,1,()=>(it(t(V)),d(()=>t(V).system)),ve,(G,Q)=>{var ot=Sr(),bt=y(ot);m(ot),W(()=>K(bt,`<${t(Q)??""}>`)),c(G,ot)}),m(Jt);var Gt=S(Jt,2);{var ne=G=>{var Q=$r(),ot=y(Q);{var bt=X=>{var gt=q();W(()=>K(gt,t(ut))),c(X,gt)};L(ot,X=>{t(ut)&&X(bt)})}var Mt=S(ot,2);{var qt=X=>{var gt=q("·");c(X,gt)};L(Mt,X=>{t(ut)&&t(Ot)&&X(qt)})}var Bt=S(Mt,2);{var oe=X=>{var gt=q();W(()=>K(gt,t(Ot))),c(X,gt)};L(Bt,X=>{t(Ot)&&X(oe)})}m(Q),W(()=>zt(Q,1,`mt-1 text-xs text-rc-gray-300 ${t(E)?"text-right":"text-left"}`)),c(G,Q)};L(Gt,G=>{(t(ut)||t(Ot))&&G(ne)})}m(Wt),m(Rt),W(G=>{zt(Rt,1,`flex ${t(E)?"justify-end":"justify-start"}`),zt(Wt,1,`max-w-[70%] break-words rounded-md px-3 py-2 text-sm shadow-sm ${t(E)?"bg-rc-gray-600 text-rc-gray-100":"bg-rc-gray-700 text-rc-gray-100"}`),zt(jt,1,`my-1 text-xs font-semibold uppercase ${t(J)?"text-rc-blue "+(t(E)?"text-right":"text-left"):"text-rc-green-200 "+(t(E)?"text-right":"text-left")}`),K(ee,G),zt(Jt,1,`whitespace-pre-wrap break-words py-1 text-sm ${t(E)?"text-justify":"text-left"} ${t(J)?"italic text-rc-gray-200":""}`)},[()=>(t(T),d(()=>Ut(t(T).role)))]),c(ct,Rt)}),m(U),c(w,U)},v=St(()=>d(h)),b=w=>{var U=Pr(),ct=y(U);{var T=J=>{var V=Xt(),ut=dt(V);ye(ut,()=>d(()=>R(P()))),c(J,V)},E=J=>{var V=q();W(ut=>K(V,ut),[()=>d(P)]),c(J,V)};L(ct,J=>{Lt()?J(T):J(E,-1)})}m(U),c(w,U)};L(n,w=>{t(v)?w(f):w(b,-1)})}c(s,l)},Yt=s=>{var l=kr(),n=y(l),f=y(n);{var v=T=>{var E=Xt(),J=dt(E);ye(J,()=>d(()=>R(Et()))),c(T,E)},b=T=>{var E=q();W(J=>K(E,J),[()=>d(Et)]),c(T,E)};L(f,T=>{Lt()?T(v):T(b,-1)})}m(n);var w=S(n,2);{var U=T=>{var E=Nr(),J=y(E,!0);m(E),W(()=>K(J,at())),le("click",E,pt),c(T,E)},ct=St(()=>d(Ct));L(w,T=>{t(ct)&&T(U)})}m(l),W(()=>zt(l,1,`mt-1 cursor-text select-text rounded bg-rc-gray-900 p-2 text-sm text-rc-gray-200 ${lt()}`)),le("click",l,vt),c(s,l)};L(kt,s=>{ft()?s(Ht):s(Yt,-1)})}c(rt,ht),ue()}Te(["click"]);var Ir=_('<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200"> </span>',1),Er=_('<div class="flex flex-wrap items-center gap-2"><!> <!> <!></div>'),Or=_('<div class="mt-2 text-sm text-rc-gray-400">Loading call details…</div>'),Rr=_('<div class="mt-2 text-sm text-rc-gray-300"> </div>'),jr=_('<span class="rounded border border-rc-gray-500 bg-rc-gray-650 px-2 py-1 text-rc-gray-200"> <span class="font-semibold text-rc-gray-100"> </span></span>'),Jr=_('<div class="mt-2 flex flex-wrap items-center gap-2 text-xs"><span class="text-rc-gray-400">Analytics:</span> <!></div>'),Mr=_('<div class="py-8 text-center text-rc-gray-300">No conversation selected</div>'),Fr=_('<div class="py-8 text-center text-rc-gray-200">Loading traces...</div>'),zr=_('<div class="z-50 py-8 text-center text-red-400"> </div>'),Ur=_('<div class="py-8 text-center text-rc-gray-300">No traces found</div>'),Dr=_('<div class="my-3 flex w-full justify-center"><div class="rounded-full border border-rc-gray-650 bg-rc-gray-900/40 px-3 py-1 text-xs text-rc-gray-200"> </div></div>'),Wr=_('<div class="my-3 flex w-full justify-center"><div class="rounded-full border border-red-500 bg-red-950/30 px-3 py-1 text-xs font-semibold text-red-200"> </div></div>'),Kr=_("<!> <!> <!>",1),qr=_("<div></div>"),Br=_('<audio class="w-full" controls=""></audio> <div class="mt-3 break-all text-sm text-rc-gray-300"> </div>',1),Vr=_("<!> <!>",1),Hr=_('<div class="rc-scroll flex max-h-[60vh] flex-col gap-4 overflow-scroll p-2"><!></div>'),Yr=_('<div class="flex w-full items-center justify-end gap-5"><!> <!></div>'),Gr=_('<div class="flex h-full w-full flex-col bg-rc-gray-700"><div class="flex-none border-b border-rc-gray-300/40 p-4"><div class="flex flex-wrap items-start justify-between gap-3"><h2 class="text-lg font-semibold text-rc-gray-100">Traces <!></h2> <!></div> <!> <!></div> <div class="rc-scroll min-h-0 flex-1 overflow-scroll p-4"><!></div></div> <!> <!>',1);function ba(rt,I){ce(I,!1);const $=()=>er(_r,"$page",$t),[$t,M]=rr();let lt=Z(I,"useMock",8,!1);const at=mr();let Y=j(ge($().url)??me()??"");const _t=$().params.conversationId??"",ft=be(_t,lt()?"__mock__":t(Y)),p=at.traces.get(ft),Lt=!!(p!=null&&p.tracesLoaded)&&!(p!=null&&p.hasMoreTraces),F=new ir(fetch);F.setSourceId(t(Y)||void 0);let R=j((p==null?void 0:p.traces)??[]),x=j((p==null?void 0:p.latencyTraces)??[]),C=j([]),xt=j(new Map),z=j(!1),nt=j(Lt),B=j((p==null?void 0:p.tracesError)??null),P=j(Lt?_t:null),et=(p==null?void 0:p.lastTraceId)??null,It=(p==null?void 0:p.hasMoreTraces)??!1,h=j((p==null?void 0:p.conversation)??null),Ct=j([]),Et=j(!1),Pt=j((p==null?void 0:p.conversationLoaded)??!1),Nt=j((p==null?void 0:p.conversationError)??null),Ut=j(""),Dt=j(null),H=j(null),pt=j(!1),vt=j(!1),ht=0,kt=0;const Ht=new WeakMap;let Yt=0;function s(e){return be(e,lt()?"__mock__":t(Y))}function l(e=t(P)){var o,i;if(!e)return;const r=s(e),a=at.traces.get(r);at.traces.set(r,{traces:t(R),latencyTraces:t(x),tracesLoaded:t(nt),tracesError:t(B),lastTraceId:et,hasMoreTraces:It,conversation:t(h),conversationLoaded:t(Pt),conversationError:t(Nt),scrollTop:(a==null?void 0:a.scrollTop)??((o=t(H))==null?void 0:o.scrollTop)??0,scrollLeft:(a==null?void 0:a.scrollLeft)??((i=t(H))==null?void 0:i.scrollLeft)??0})}async function n(e){e&&(await Ze(),t(H)&&(pe(H,t(H).scrollTop=e.scrollTop),pe(H,t(H).scrollLeft=e.scrollLeft)))}function f(){if(!t(P)||!t(H))return;const e=at.traces.get(s(t(P)));if(!e){l();return}e.scrollTop=t(H).scrollTop,e.scrollLeft=t(H).scrollLeft}function v(e){if(typeof e!="string")return null;const r=e.trim();return r||null}function b(e){return`${Math.round(e)} ms`}function w(e){const r=v(e==null?void 0:e.traceId);if(r)return r;const a=Ht.get(e);if(a)return a;Yt+=1;const o=`synthetic-${e.traceType}-${e.createdAt}-${Yt}`;return Ht.set(e,o),o}function U(e){const r=new Set;return e.filter(a=>{const o=v(a==null?void 0:a.traceId);return o?r.has(o)?!1:(r.add(o),!0):!0})}function ct(e){return e?t(R):t(R).map(r=>{if(r.traceType!=="STEP")return r;const{receivedPrompt:a,renderedPrompt:o,...i}=r;return i})}function T(e){return e&&typeof e.renderedPrompt=="string"?e.renderedPrompt:null}function E(e,r){for(let a=r-1;a>=0;a--){const o=e[a];if(o.traceType!=="STEP")continue;const i=o;if(ie(i.name)&&T(i))return i}for(let a=r-1;a>=0;a--){const o=e[a];if(o.traceType!=="STEP")continue;const i=o;if(i.name==="prewarm"&&T(i))return i}return null}function J(e){return!!(e!=null&&e.audioUrl&&String(e.audioUrl).trim())}function V(e){const r=e==null?void 0:e.transcript;return typeof r=="string"?r.trim()!=="":Array.isArray(r)?r.length>0:!1}function ut(e){const r=e==null?void 0:e.transcript;return r?typeof r=="string"?r:Array.isArray(r)?r.map(a=>{const o=typeof(a==null?void 0:a.time)=="string"?a.time:"",i=typeof(a==null?void 0:a.role)=="string"?a.role:"",g=typeof(a==null?void 0:a.text)=="string"?a.text:"",k=[o,i].filter(Boolean).join(" • ");return k?`${k}
|
|
9
|
+
${g}`:g}).join(`
|
|
10
|
+
|
|
11
|
+
`):"":""}async function Ot(){try{await navigator.clipboard.writeText(ut(t(h)))}catch(e){console.error("Failed to copy transcript",e)}}async function Rt(){var e;try{const r=(e=t(h))==null?void 0:e.audioUrl;if(!r)return;await navigator.clipboard.writeText(r)}catch(r){console.error("Failed to copy recording URL",r)}}function Wt(e){return e.traceType!=="CONVERSATIONAL"?!1:e.eventName==="received-message"||e.eventName==="llm-handler-stream-requested"||e.eventName==="finished-main-streaming-step"||e.eventName==="sent-message"||e.eventName==="transfer-requested"||e.eventName==="hangup-requested"}function jt(e,r){const a=new Map;for(const o of lr(r)){if(!o.isHigh)continue;const i=cr(e,o);if(!i)continue;const g=w(i),k=a.get(g);(!k||o.durationMs>k.durationMs)&&a.set(g,{id:o.id,durationMs:o.durationMs})}return a}function ee(e){return t(xt).get(w(e))??null}const Jt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Kt(e){if(typeof e!="number"||!Number.isFinite(e))return null;const r=new Date(e);if(Number.isNaN(r.getTime()))return null;const a=r.getFullYear(),o=String(r.getMonth()+1).padStart(2,"0"),i=String(r.getDate()).padStart(2,"0");return`${a}-${o}-${i}`}function re(e){if(typeof e!="number"||!Number.isFinite(e))return null;const r=new Date(e);if(Number.isNaN(r.getTime()))return null;const a=r.getDate(),o=Jt[r.getMonth()],i=r.getFullYear();return`${a} ${o} ${i}`}function ae(e){return typeof e=="boolean"?e?"Yes":"No":String(e)}async function Gt(e){const r=++kt;u(Et,!0),u(Pt,!1),u(Nt,null),u(h,null);try{if(lt())return;const a=await F.getConversation(e);if(r!==kt)return;u(h,a),u(Pt,!0)}catch(a){if(r!==kt)return;u(Nt,a.message),u(h,null)}finally{if(r!==kt)return;u(Et,!1),l(e)}}async function ne(e){const r=[];let a;const o=new Set;for(;;){const i=await F.getLatencyTraces(e,500,a);if(r.push(...i.items??[]),a=i.lastTraceId,!a)break;if(o.has(a))throw new Error("Telescope latency pagination repeated a cursor");o.add(a)}return r}async function G(e){const r=[];let a;const o=new Set;for(;;){const i=await F.getTraces(e,100,a);r.push(...i.items??[]);const g=i.lastTraceId;if(!g)break;if(o.has(g))throw new Error("Telescope trace pagination repeated a cursor");o.add(g),a=g}return r}async function Q(e){if(!e||e===t(P))return;const r=++ht;u(P,e),u(z,!0),u(nt,!1),u(B,null),et=null,It=!1,u(x,[]),u(pt,!1),u(vt,!1),Gt(e);try{let a=[],o=[];if(lt())a=(await fr.fetchTraces(e)).items??[];else{const[i,g]=await Promise.all([G(e),ne(e).catch(k=>(console.error("Failed to load latency traces for chat warnings:",k),[]))]);a=i,o=g}if(r!==ht)return;et=null,It=!1,u(x,o),u(R,U(a).slice().sort((i,g)=>i.createdAt-g.createdAt)),u(nt,!0)}catch(a){if(r!==ht)return;u(B,a.message),u(R,[]),console.error("Failed to load traces:",a)}finally{if(r!==ht)return;u(z,!1),l(e)}}Ve(()=>{const e=$().params.conversationId;e&&(t(nt)?t(Pt)||Gt(e):Q(e),n(p))}),He(()=>{l(),ht+=1,kt+=1}),Ft(()=>t(R),()=>{u(C,t(R).filter(e=>e.traceType==="API_CALL"||e.traceType==="STEP"||Wt(e)))}),Ft(()=>(t(C),t(x)),()=>{u(xt,jt(t(C),t(x)))}),Ft(()=>($(),t(h)),()=>{var e;u(Ut,v($().url.searchParams.get("agent"))??v((e=t(h))==null?void 0:e.agentId)??"")}),Ft(()=>$(),()=>{u(Dt,v($().url.searchParams.get("region")))}),Ft(()=>t(h),()=>{var e;u(Ct,Object.entries(((e=t(h))==null?void 0:e.analytics)??{}).sort(([r],[a])=>r.localeCompare(a)))}),Ft(()=>($(),t(Y),t(P)),()=>{const e=$().params.conversationId,r=ge($().url)??me()??"";r!==t(Y)&&(l(),u(Y,r),F.setSourceId(r||void 0),u(P,null),u(nt,!1),u(Pt,!1)),e&&e!==t(P)&&Q(e)}),Ge(),we();var ot=Gr();ar("1uatba4",e=>{Qe(()=>{Xe.title="Bosun: Telescope"})});var bt=dt(ot),Mt=y(bt),qt=y(Mt),Bt=y(qt),oe=S(y(Bt));{var X=e=>{var r=Ir(),a=S(dt(r),2),o=y(a,!0);m(a),W(()=>K(o,($(),d(()=>$().params.conversationId)))),c(e,r)};L(oe,e=>{$(),d(()=>$().params.conversationId)&&e(X)})}m(Bt);var gt=S(Bt,2);{var Se=e=>{var r=Er(),a=y(r);{var o=N=>{yt(N,{variant:"secondary",size:"small",onclick:()=>u(pt,!0),children:(mt,Vt)=>{wt();var Tt=q("Recording");c(mt,Tt)},$$slots:{default:!0}})},i=St(()=>(t(h),d(()=>J(t(h)))));L(a,N=>{t(i)&&N(o)})}var g=S(a,2);{var k=N=>{yt(N,{variant:"secondary",size:"small",onclick:()=>u(vt,!0),children:(mt,Vt)=>{wt();var Tt=q("Transcript");c(mt,Tt)},$$slots:{default:!0}})},O=St(()=>(t(h),d(()=>V(t(h)))));L(g,N=>{t(O)&&N(k)})}var A=S(g,2);{let N=tt(()=>(t(R),t(z),d(()=>!t(R).length||t(z))));Tr(A,{get disabled(){return t(N)},getWithPromptsText:()=>JSON.stringify(ct(!0),null,2),getWithoutPromptsText:()=>JSON.stringify(ct(!1),null,2)})}m(r),c(e,r)};L(gt,e=>{$(),d(()=>$().params.conversationId)&&e(Se)})}m(qt);var de=S(qt,2);{var $e=e=>{var r=Or();c(e,r)},Le=e=>{var r=Rr(),a=y(r);m(r),W(()=>K(a,`Call details unavailable: ${t(Nt)??""}`)),c(e,r)};L(de,e=>{t(Et)?e($e):t(Nt)&&e(Le,1)})}var Ce=S(de,2);{var Pe=e=>{var r=Jr(),a=S(y(r),2);te(a,1,()=>t(Ct),([o,i])=>o,(o,i)=>{var g=St(()=>tr(t(i),2));let k=()=>t(g)[0],O=()=>t(g)[1];var A=jr(),N=y(A),mt=S(N),Vt=y(mt,!0);m(mt),m(A),W(Tt=>{K(N,`${k()??""}: `),K(Vt,Tt)},[()=>(O(),d(()=>ae(O())))]),c(o,A)}),m(r),c(e,r)};L(Ce,e=>{t(Ct),d(()=>t(Ct).length)&&e(Pe)})}m(Mt);var Qt=S(Mt,2),Ne=y(Qt);{var ke=e=>{var r=Mr();c(e,r)},Ae=e=>{var r=Fr();c(e,r)},Ie=e=>{var r=zr(),a=y(r);m(r),W(()=>K(a,`Error: ${t(B)??""}`)),c(e,r)},Ee=e=>{var r=Ur();c(e,r)},Oe=e=>{var r=qr();te(r,7,()=>t(C),a=>w(a),(a,o,i)=>{const g=tt(()=>(t(o),d(()=>Kt(t(o).createdAt)))),k=tt(()=>(it(t(i)),t(C),d(()=>t(i)>0?Kt(t(C)[t(i)-1].createdAt):null))),O=tt(()=>(t(o),d(()=>re(t(o).createdAt)))),A=tt(()=>(t(o),d(()=>ee(t(o)))));var N=Kr(),mt=dt(N);{var Vt=D=>{var st=Dr(),At=y(st),se=y(At,!0);m(At),m(st),W(()=>K(se,t(O))),c(D,st)};L(mt,D=>{t(g)&&t(O)&&t(g)!==t(k)&&D(Vt)})}var Tt=S(mt,2);{var ze=D=>{pr(D,{get trace(){return t(o)}})},Ue=D=>{{let st=tt(()=>(it(xe),t(C),it(t(i)),d(()=>xe(t(C),t(i))))),At=tt(()=>(it(ie),t(o),t(C),it(t(i)),d(()=>ie(t(o).name)?E(t(C),t(i)):null)));vr(D,{get trace(){return t(o)},get agentId(){return t(Ut)},get region(){return t(Dt)},get fallbackConversation(){return t(st)},get compareTrace(){return t(At)},testCreationMode:"pii-sanitized"})}},De=D=>{{let st=tt(()=>(it(he),t(C),it(t(i)),d(()=>he(t(C),t(i)))));gr(D,{get trace(){return t(o)},context:null,get agentId(){return t(Ut)},get region(){return t(Dt)},get testSourceStep(){return t(st)},get testEntries(){return t(C)},requireTestSourceStep:!0,testCreationMode:"pii-sanitized"})}};L(Tt,D=>{t(o),d(()=>t(o).traceType==="API_CALL")?D(ze):(t(o),d(()=>t(o).traceType==="STEP")?D(Ue,1):D(De,-1))})}var We=S(Tt,2);{var Ke=D=>{var st=Wr(),At=y(st),se=y(At);m(At),m(st),W(qe=>K(se,`High response latency: ${qe??""}`),[()=>(it(t(A)),d(()=>b(t(A).durationMs)))]),c(D,st)};L(We,D=>{t(A)&&D(Ke)})}c(a,N)}),m(r),c(e,r)};L(Ne,e=>{$(),d(()=>!$().params.conversationId)?e(ke):t(z)?e(Ae,1):t(B)?e(Ie,2):(t(C),d(()=>!t(C).length)?e(Ee,3):e(Oe,-1))})}m(Qt),or(Qt,e=>u(H,e),()=>t(H)),m(bt);var fe=S(bt,2);{var Re=e=>{_e(e,{title:"Recording",class:"!max-w-3xl",get open(){return t(pt)},set open(o){u(pt,o)},children:o=>{var i=Br(),g=dt(i),k=S(g,2),O=y(k,!0);m(k),W(()=>{nr(g,"src",(t(h),d(()=>{var A;return(A=t(h))==null?void 0:A.audioUrl}))),K(O,(t(h),d(()=>{var A;return(A=t(h))==null?void 0:A.audioUrl})))}),c(o,i)},footer:o=>{var i=Vr(),g=dt(i);yt(g,{variant:"secondary",size:"small",onclick:Rt,children:(O,A)=>{wt();var N=q("Copy URL");c(O,N)},$$slots:{default:!0}});var k=S(g,2);yt(k,{variant:"secondary",size:"small",onclick:()=>u(pt,!1),children:(O,A)=>{wt();var N=q("Close");c(O,N)},$$slots:{default:!0}}),c(o,i)},$$slots:{default:!0,footer:!0},$$legacy:!0})},je=St(()=>(t(pt),t(h),d(()=>t(pt)&&J(t(h)))));L(fe,e=>{t(je)&&e(Re)})}var Je=S(fe,2);{var Me=e=>{_e(e,{title:"Transcript",class:"!max-w-4xl",get open(){return t(vt)},set open(o){u(vt,o)},children:o=>{var i=Hr(),g=y(i);{var k=O=>{Ar(O,{get value(){return t(h),d(()=>t(h).transcript)},limit:500,expanded:!0})};L(g,O=>{t(h),d(()=>{var A;return typeof((A=t(h))==null?void 0:A.transcript)=="string"})&&O(k)})}m(i),c(o,i)},footer:o=>{var i=Yr(),g=y(i);yt(g,{onclick:Ot,children:(O,A)=>{wt();var N=q("Copy transcript");c(O,N)},$$slots:{default:!0}});var k=S(g,2);yt(k,{variant:"secondary",onclick:()=>u(vt,!1),children:(O,A)=>{wt();var N=q("Close");c(O,N)},$$slots:{default:!0}}),m(i),c(o,i)},$$slots:{default:!0,footer:!0},$$legacy:!0})},Fe=St(()=>(t(vt),t(h),d(()=>t(vt)&&V(t(h)))));L(Je,e=>{t(Fe)&&e(Me)})}le("click",bt,e=>e.stopPropagation()),Be("scroll",Qt,f),c(rt,ot),ue(),M()}Te(["click"]);export{ba as component};
|