@recombine-ai/bosun 0.9.0 → 0.10.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/.svelte-kit/tsconfig.json +8 -1
- package/build/client/_app/immutable/assets/0.DsHRdhUK.css +1 -0
- package/build/client/_app/immutable/assets/0.DsHRdhUK.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DsHRdhUK.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.BX46PfEJ.css.gz +0 -0
- package/build/client/_app/immutable/assets/18.C5apk4jm.css.gz +0 -0
- package/build/client/_app/immutable/assets/2.DxwYfh1z.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.Dzh7_Q8n.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.CZVw96CJ.css.gz +0 -0
- package/build/client/_app/immutable/assets/9.DlSPCZj0.css.gz +0 -0
- package/build/client/_app/immutable/assets/AgentSidebar.BL1i3rB_.css.gz +0 -0
- package/build/client/_app/immutable/assets/Input.CJ8KyccG.css.gz +0 -0
- package/build/client/_app/immutable/assets/Modal.tn0RQdqM.css.gz +0 -0
- package/build/client/_app/immutable/assets/Popper.CLTyHc88.css.gz +0 -0
- package/build/client/_app/immutable/assets/Tab.DlCfjMY1.css.gz +0 -0
- package/build/client/_app/immutable/assets/chat-content.Cabnnfyv.css.gz +0 -0
- package/build/client/_app/immutable/assets/editor.BMIWPGx3.css.gz +0 -0
- package/build/client/_app/immutable/chunks/0a4GbU-O.js +1 -0
- package/build/client/_app/immutable/chunks/0a4GbU-O.js.br +0 -0
- package/build/client/_app/immutable/chunks/0a4GbU-O.js.gz +0 -0
- package/build/client/_app/immutable/chunks/0cvrggvQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/18TZju1H.js +1 -0
- package/build/client/_app/immutable/chunks/18TZju1H.js.br +0 -0
- package/build/client/_app/immutable/chunks/18TZju1H.js.gz +0 -0
- package/build/client/_app/immutable/chunks/25W9uPmb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/4Ik7cdeQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/5Rap-vPy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/5qVV3FOd.js +1 -0
- package/build/client/_app/immutable/chunks/5qVV3FOd.js.br +0 -0
- package/build/client/_app/immutable/chunks/5qVV3FOd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/8AHOieX7.js +33 -0
- package/build/client/_app/immutable/chunks/8AHOieX7.js.br +0 -0
- package/build/client/_app/immutable/chunks/8AHOieX7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B03wrqEc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B2CB3tIy.js +1 -0
- package/build/client/_app/immutable/chunks/B2CB3tIy.js.br +0 -0
- package/build/client/_app/immutable/chunks/B2CB3tIy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5zXfXm9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B9Xyijhd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BFG1Mk7z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BFZvm_aX.js +1 -0
- package/build/client/_app/immutable/chunks/BFZvm_aX.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFZvm_aX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BIv9DU6q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BKlk5iyT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BMYSavKM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BQorBhFb.js +1 -0
- package/build/client/_app/immutable/chunks/BQorBhFb.js.br +0 -0
- package/build/client/_app/immutable/chunks/BQorBhFb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BSkB5QuD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BU7aeYn4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BY8d35y9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_c3zf-v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_fMsGYe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BaJupSGV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BaLxmfj-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bas80-m6.js +1 -0
- package/build/client/_app/immutable/chunks/Bas80-m6.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bas80-m6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BbgtW0nn.js +8 -0
- package/build/client/_app/immutable/chunks/BbgtW0nn.js.br +0 -0
- package/build/client/_app/immutable/chunks/BbgtW0nn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bc-ZgV77.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BfEKNvv3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BhoEG2uc.js +1 -0
- package/build/client/_app/immutable/chunks/BhoEG2uc.js.br +0 -0
- package/build/client/_app/immutable/chunks/BhoEG2uc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bhzvs7bI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bio4gycK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BjbsXXMP.js +1 -0
- package/build/client/_app/immutable/chunks/BjbsXXMP.js.br +0 -0
- package/build/client/_app/immutable/chunks/BjbsXXMP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BoFRg7Ot.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BoYwKlhd.js +1 -0
- package/build/client/_app/immutable/chunks/BoYwKlhd.js.br +0 -0
- package/build/client/_app/immutable/chunks/BoYwKlhd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bqgm2twL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BrgZPUOV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BsTHnhdd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1FmrZbK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C3xZmy9H.js +1 -0
- package/build/client/_app/immutable/chunks/C3xZmy9H.js.br +0 -0
- package/build/client/_app/immutable/chunks/C3xZmy9H.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C4mbwMvt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C5WLch3f.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CAFoob5N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DYY6aMTA.js → CAOT34jI.js} +1 -1
- package/build/client/_app/immutable/chunks/CAOT34jI.js.br +0 -0
- package/build/client/_app/immutable/chunks/CAOT34jI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B394X4Dm.js → CByqsLTI.js} +1 -1
- package/build/client/_app/immutable/chunks/CByqsLTI.js.br +0 -0
- package/build/client/_app/immutable/chunks/CByqsLTI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CCSDG5nI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDGzqUPQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDntyWJ8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CFKIUWau.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CFOPXBzS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGS76TsG.js +1 -0
- package/build/client/_app/immutable/chunks/CGS76TsG.js.br +2 -0
- package/build/client/_app/immutable/chunks/CGS76TsG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGinwM47.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CHE9OFXA.js +1 -0
- package/build/client/_app/immutable/chunks/CHE9OFXA.js.br +0 -0
- package/build/client/_app/immutable/chunks/CHE9OFXA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CIXWWiNs.js +1 -0
- package/build/client/_app/immutable/chunks/CIXWWiNs.js.br +0 -0
- package/build/client/_app/immutable/chunks/CIXWWiNs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CLLBncYj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/COyEY5Pt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CPajHgWi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CQd8uuj9.js +1 -0
- package/build/client/_app/immutable/chunks/CQd8uuj9.js.br +2 -0
- package/build/client/_app/immutable/chunks/CQd8uuj9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CV_MnPl-.js +1 -0
- package/build/client/_app/immutable/chunks/CV_MnPl-.js.br +0 -0
- package/build/client/_app/immutable/chunks/CV_MnPl-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CVwtpugi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CX-rkNHf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CXOwvkN_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CaligHlp.js +1 -0
- package/build/client/_app/immutable/chunks/CaligHlp.js.br +0 -0
- package/build/client/_app/immutable/chunks/CaligHlp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CbvL5X4R.js +4 -0
- package/build/client/_app/immutable/chunks/CbvL5X4R.js.br +0 -0
- package/build/client/_app/immutable/chunks/CbvL5X4R.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CdQndTaG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ce3n6wWz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cg7bfA9N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CjrpbQ5G.js +1 -0
- package/build/client/_app/immutable/chunks/CjrpbQ5G.js.br +0 -0
- package/build/client/_app/immutable/chunks/CjrpbQ5G.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cp1zYvxS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CpIb_Oan.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cpb6xl2v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cphgjts3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CrxwEwqu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CwNk8-XU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CwmAWymP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cx0HrUMB.js +11 -0
- package/build/client/_app/immutable/chunks/Cx0HrUMB.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cx0HrUMB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CynZnIyI.js +2 -0
- package/build/client/_app/immutable/chunks/CynZnIyI.js.br +0 -0
- package/build/client/_app/immutable/chunks/CynZnIyI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CzKuDChf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-MeaMDU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D3h14YRZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5C2fndG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DDMPVpvs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DDwshQtU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DHHC89bH.js +1 -0
- package/build/client/_app/immutable/chunks/DHHC89bH.js.br +2 -0
- package/build/client/_app/immutable/chunks/DHHC89bH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DHaeiCBh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DLQqXQ6R.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DRIMs3uA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSZPf7rp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DTECt2xU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DUeN9t8P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DVqtH_YB.js +1 -0
- package/build/client/_app/immutable/chunks/DVqtH_YB.js.br +0 -0
- package/build/client/_app/immutable/chunks/DVqtH_YB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DWH0347h.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DXyYeYxl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DZxMt77D.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DaV9XiwS.js +1 -0
- package/build/client/_app/immutable/chunks/DaV9XiwS.js.br +0 -0
- package/build/client/_app/immutable/chunks/DaV9XiwS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dd3NCNK9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DfzH4Xui.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DgyLZaXg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DjDhNM9l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DkeWvyEi.js +1 -0
- package/build/client/_app/immutable/chunks/DkeWvyEi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DkeWvyEi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DnHyzjbg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DrQuvNYM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Drc7WvVn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DwJ7jVG9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DyP6w7ZV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{8mHyIC1B.js → JcG4w2gF.js} +1 -1
- package/build/client/_app/immutable/chunks/JcG4w2gF.js.br +0 -0
- package/build/client/_app/immutable/chunks/JcG4w2gF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/M-7sJE5g.js +2 -0
- package/build/client/_app/immutable/chunks/M-7sJE5g.js.br +0 -0
- package/build/client/_app/immutable/chunks/M-7sJE5g.js.gz +0 -0
- package/build/client/_app/immutable/chunks/OA8UcISh.js +1 -0
- package/build/client/_app/immutable/chunks/OA8UcISh.js.br +0 -0
- package/build/client/_app/immutable/chunks/OA8UcISh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ps08lWnD.js +1 -0
- package/build/client/_app/immutable/chunks/Ps08lWnD.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ps08lWnD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Tw7wswEv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/YWi4-JPR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ZGfwyPNq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Zznr-cwX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/bynEV6cE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/d-TWvvCu.js +1 -0
- package/build/client/_app/immutable/chunks/d-TWvvCu.js.br +0 -0
- package/build/client/_app/immutable/chunks/d-TWvvCu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/dUCx_-0o.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ddC1NP9R.js.gz +0 -0
- package/build/client/_app/immutable/chunks/deUWdS0T.js.gz +0 -0
- package/build/client/_app/immutable/chunks/gULlE0tz.js +1 -0
- package/build/client/_app/immutable/chunks/gULlE0tz.js.br +2 -0
- package/build/client/_app/immutable/chunks/gULlE0tz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/hS1PAb5I.js +2 -0
- package/build/client/_app/immutable/chunks/hS1PAb5I.js.br +0 -0
- package/build/client/_app/immutable/chunks/hS1PAb5I.js.gz +0 -0
- package/build/client/_app/immutable/chunks/i9-g7ZhI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/nf6ki56Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pnP8ivHi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/rUNN04Wq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/tGk8EFnU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/wZR3OpgZ.js +1 -0
- package/build/client/_app/immutable/chunks/wZR3OpgZ.js.br +2 -0
- package/build/client/_app/immutable/chunks/wZR3OpgZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xC2C8d09.js +1 -0
- package/build/client/_app/immutable/chunks/xC2C8d09.js.br +0 -0
- package/build/client/_app/immutable/chunks/xC2C8d09.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.4nlNBoFO.js +2 -0
- package/build/client/_app/immutable/entry/app.4nlNBoFO.js.br +0 -0
- package/build/client/_app/immutable/entry/app.4nlNBoFO.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Du6iPGlG.js +1 -0
- package/build/client/_app/immutable/entry/start.Du6iPGlG.js.br +2 -0
- package/build/client/_app/immutable/entry/start.Du6iPGlG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.DsSFrs8j.js → 0.DXz9KfRr.js} +2 -2
- package/build/client/_app/immutable/nodes/0.DXz9KfRr.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DXz9KfRr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.C14tFTfE.js +1 -0
- package/build/client/_app/immutable/nodes/1.C14tFTfE.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.C14tFTfE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.D2pJamM_.js +5 -0
- package/build/client/_app/immutable/nodes/10.D2pJamM_.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.D2pJamM_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.BVI-eEdV.js → 11.CsTD16Gn.js} +1 -1
- package/build/client/_app/immutable/nodes/11.CsTD16Gn.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.CsTD16Gn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{12.BHSGZYEC.js → 12.DYXd_leK.js} +1 -1
- package/build/client/_app/immutable/nodes/12.DYXd_leK.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.DYXd_leK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.CZ_7M4AF.js → 13.DQMjAUKq.js} +1 -1
- package/build/client/_app/immutable/nodes/13.DQMjAUKq.js.br +1 -0
- package/build/client/_app/immutable/nodes/13.DQMjAUKq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{14.D96_XEm-.js → 14.C59tyoG0.js} +1 -1
- package/build/client/_app/immutable/nodes/14.C59tyoG0.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.C59tyoG0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.yHpdn4IC.js +1 -0
- package/build/client/_app/immutable/nodes/15.yHpdn4IC.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.yHpdn4IC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{16.MpUk9w5x.js → 16.DRwcAQjb.js} +1 -1
- package/build/client/_app/immutable/nodes/16.DRwcAQjb.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.DRwcAQjb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.tRxMrZSc.js +4 -0
- package/build/client/_app/immutable/nodes/17.tRxMrZSc.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.tRxMrZSc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.h3m2E_FB.js +11 -0
- package/build/client/_app/immutable/nodes/18.h3m2E_FB.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.h3m2E_FB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DC1Zz78t.js +35 -0
- package/build/client/_app/immutable/nodes/2.DC1Zz78t.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DC1Zz78t.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CwOiRWmo.js +1 -0
- package/build/client/_app/immutable/nodes/3.CwOiRWmo.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CwOiRWmo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.C3SmjDhF.js +1 -0
- package/build/client/_app/immutable/nodes/4.C3SmjDhF.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.C3SmjDhF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.26wwTN6d.js +1 -0
- package/build/client/_app/immutable/nodes/5.26wwTN6d.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.26wwTN6d.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DYzKzkhv.js +1 -0
- package/build/client/_app/immutable/nodes/6.DYzKzkhv.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DYzKzkhv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.CkeP1yO3.js → 7.7N4iPidV.js} +1 -1
- package/build/client/_app/immutable/nodes/7.7N4iPidV.js.br +1 -0
- package/build/client/_app/immutable/nodes/7.7N4iPidV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.lyH0lIKf.js +2 -0
- package/build/client/_app/immutable/nodes/8.lyH0lIKf.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.lyH0lIKf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.UnSjcLjn.js +2 -0
- package/build/client/_app/immutable/nodes/9.UnSjcLjn.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.UnSjcLjn.js.gz +0 -0
- package/build/client/_app/immutable/workers/css.worker-BRIrhzkG.js.gz +0 -0
- package/build/client/_app/immutable/workers/editor.worker-DX6ApQqM.js.gz +0 -0
- package/build/client/_app/immutable/workers/html.worker-CBI4EQBP.js.gz +0 -0
- package/build/client/_app/immutable/workers/json.worker-CIZWV9vN.js.gz +0 -0
- package/build/client/_app/immutable/workers/ts.worker-Ds4I2Msu.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/fonts.css.gz +0 -0
- package/build/client/recombine.svg.gz +0 -0
- package/build/client/telescope-icon.svg.gz +0 -0
- package/build/client/ui/arrow_tests.svg.gz +0 -0
- package/build/client/ui/paperclip.svg.gz +0 -0
- package/build/client/ui/send.svg.gz +0 -0
- package/build/server/chunks/0-D0-90TbM.js +9 -0
- package/build/server/chunks/0-D0-90TbM.js.map +1 -0
- package/build/server/chunks/1-DHJzzXji.js +9 -0
- package/build/server/chunks/{1-D6-Ps83z.js.map → 1-DHJzzXji.js.map} +1 -1
- package/build/server/chunks/10-3jjzakty.js +9 -0
- package/build/server/chunks/10-3jjzakty.js.map +1 -0
- package/build/server/chunks/{11-D9ueFvgV.js → 11-CB5q84io.js} +3 -3
- package/build/server/chunks/{11-D9ueFvgV.js.map → 11-CB5q84io.js.map} +1 -1
- package/build/server/chunks/{12-s9qxLZI8.js → 12-CfqC_Y1R.js} +3 -3
- package/build/server/chunks/{12-s9qxLZI8.js.map → 12-CfqC_Y1R.js.map} +1 -1
- package/build/server/chunks/{13-DSBw3elU.js → 13-ByddfU7G.js} +3 -3
- package/build/server/chunks/{13-DSBw3elU.js.map → 13-ByddfU7G.js.map} +1 -1
- package/build/server/chunks/{14-Dys1MDrz.js → 14-Dk7DCwHC.js} +3 -3
- package/build/server/chunks/{14-Dys1MDrz.js.map → 14-Dk7DCwHC.js.map} +1 -1
- package/build/server/chunks/15-ICdGKEie.js +9 -0
- package/build/server/chunks/15-ICdGKEie.js.map +1 -0
- package/build/server/chunks/{16-BRBiMoCX.js → 16-Y9KLA9UF.js} +3 -3
- package/build/server/chunks/{16-BRBiMoCX.js.map → 16-Y9KLA9UF.js.map} +1 -1
- package/build/server/chunks/17-Bozc5IJF.js +9 -0
- package/build/server/chunks/17-Bozc5IJF.js.map +1 -0
- package/build/server/chunks/18-DoqpHfoi.js +9 -0
- package/build/server/chunks/18-DoqpHfoi.js.map +1 -0
- package/build/server/chunks/2-DhghCZp5.js +9 -0
- package/build/server/chunks/2-DhghCZp5.js.map +1 -0
- package/build/server/chunks/3-Cx4tDHgq.js +9 -0
- package/build/server/chunks/3-Cx4tDHgq.js.map +1 -0
- package/build/server/chunks/4-DCqFV5Ug.js +9 -0
- package/build/server/chunks/4-DCqFV5Ug.js.map +1 -0
- package/build/server/chunks/5-CwrZ3RpM.js +9 -0
- package/build/server/chunks/5-CwrZ3RpM.js.map +1 -0
- package/build/server/chunks/6-BtuvKB8a.js +9 -0
- package/build/server/chunks/6-BtuvKB8a.js.map +1 -0
- package/build/server/chunks/{7-BixmjuY5.js → 7-olXOjo4r.js} +3 -3
- package/build/server/chunks/{7-BixmjuY5.js.map → 7-olXOjo4r.js.map} +1 -1
- package/build/server/chunks/8-Di6Wb0mD.js +9 -0
- package/build/server/chunks/8-Di6Wb0mD.js.map +1 -0
- package/build/server/chunks/9-CXT-H9KT.js +9 -0
- package/build/server/chunks/9-CXT-H9KT.js.map +1 -0
- package/build/server/chunks/{AgentSidebar-DqMxRWln.js → AgentSidebar-XdGj1sqT.js} +32 -24
- package/build/server/chunks/AgentSidebar-XdGj1sqT.js.map +1 -0
- package/build/server/chunks/{Button-qfXYs6Cv.js → Button-Dsy3QY7B.js} +5 -5
- package/build/server/chunks/Button-Dsy3QY7B.js.map +1 -0
- package/build/server/chunks/{ChatStepTrace-Bvxmgz7y.js → ChatStepTrace-ZynTuQTL.js} +98 -266
- package/build/server/chunks/ChatStepTrace-ZynTuQTL.js.map +1 -0
- package/build/server/chunks/{ContextEditor-CsiHhmH8.js → ContextEditor-D5B2mO8Z.js} +6 -5
- package/build/server/chunks/ContextEditor-D5B2mO8Z.js.map +1 -0
- package/build/server/chunks/{Dropdown-DroDbZQ6.js → Dropdown-7dp1qEYv.js} +4 -4
- package/build/server/chunks/Dropdown-7dp1qEYv.js.map +1 -0
- package/build/server/chunks/{Icon-SOvOgynh.js → Icon-CXFHkSIr.js} +7 -7
- package/build/server/chunks/Icon-CXFHkSIr.js.map +1 -0
- package/build/server/chunks/{Input-D-7S8dEO.js → Input-CHFlfduw.js} +4 -4
- package/build/server/chunks/Input-CHFlfduw.js.map +1 -0
- package/build/server/chunks/{Modal-CBKUwUGm.js → Modal-DtVsRmmO.js} +131 -93
- package/build/server/chunks/Modal-DtVsRmmO.js.map +1 -0
- package/build/server/chunks/{Tab-DMBlstpi.js → Tab-CD1H0E3P.js} +6 -7
- package/build/server/chunks/Tab-CD1H0E3P.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-DuOlsMHY.js → _layout.svelte-2zFP7RWi.js} +60 -59
- package/build/server/chunks/_layout.svelte-2zFP7RWi.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-B3_pVwfN.js → _layout.svelte-C5eqrEen.js} +10 -9
- package/build/server/chunks/_layout.svelte-C5eqrEen.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-BnUNGsUV.js → _layout.svelte-C7JgNCIu.js} +15 -15
- package/build/server/chunks/_layout.svelte-C7JgNCIu.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-CqwbWo_W.js → _layout.svelte-Cgnhhd3c.js} +139 -151
- package/build/server/chunks/_layout.svelte-Cgnhhd3c.js.map +1 -0
- package/build/server/chunks/_page.svelte-BhU1G2ip.js +1040 -0
- package/build/server/chunks/_page.svelte-BhU1G2ip.js.map +1 -0
- package/build/server/chunks/{_page.svelte-B8NFVmqA.js → _page.svelte-BsIw3yWt.js} +7 -8
- package/build/server/chunks/_page.svelte-BsIw3yWt.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BB_XBfMx.js → _page.svelte-C9wKPt_S.js} +6 -7
- package/build/server/chunks/_page.svelte-C9wKPt_S.js.map +1 -0
- package/build/server/chunks/{_page.svelte-c2LBV2K4.js → _page.svelte-CY4SZM-i.js} +180 -170
- package/build/server/chunks/_page.svelte-CY4SZM-i.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Tl1k8pGd.js → _page.svelte-Cwut2PVb.js} +16 -16
- package/build/server/chunks/_page.svelte-Cwut2PVb.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BaDwHJpC.js → _page.svelte-DbV3HGn5.js} +3 -4
- package/build/server/chunks/_page.svelte-DbV3HGn5.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Ch8DnIjK.js → _page.svelte-DdmEn1df.js} +114 -139
- package/build/server/chunks/_page.svelte-DdmEn1df.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DASkT6Tk.js → _page.svelte-DiI_KSHV.js} +16 -25
- package/build/server/chunks/_page.svelte-DiI_KSHV.js.map +1 -0
- package/build/server/chunks/{_server.ts-DviONucl.js → _server.ts-CtO28tLc.js} +2 -2
- package/build/server/chunks/{_server.ts-DviONucl.js.map → _server.ts-CtO28tLc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CUTB_pVv.js → _server.ts-D_eo_OAK.js} +2 -2
- package/build/server/chunks/{_server.ts-CUTB_pVv.js.map → _server.ts-D_eo_OAK.js.map} +1 -1
- package/build/server/chunks/{agents-context-DJAK2Ml6.js → agents-context-rV2narXG.js} +2 -2
- package/build/server/chunks/agents-context-rV2narXG.js.map +1 -0
- package/build/server/chunks/{client-tqD_VlIn.js → client-DzvEkq51.js} +14 -2
- package/build/server/chunks/client-DzvEkq51.js.map +1 -0
- package/build/server/chunks/{edit-workspace-context-BQXwYkgE.js → edit-workspace-context-B1nYQ5hD.js} +2 -3
- package/build/server/chunks/edit-workspace-context-B1nYQ5hD.js.map +1 -0
- package/build/server/chunks/error.svelte-DA-yulF5.js +15 -0
- package/build/server/chunks/error.svelte-DA-yulF5.js.map +1 -0
- package/build/server/chunks/{events-Hd1jvlZp.js → events-BQ65tUJo.js} +15 -18
- package/build/server/chunks/events-BQ65tUJo.js.map +1 -0
- package/build/server/chunks/{hooks-BJphIAi-.js → hooks.universal-BJphIAi-.js} +1 -1
- package/build/server/chunks/hooks.universal-BJphIAi-.js.map +1 -0
- package/build/server/chunks/index-CSpGrMM2.js +4062 -0
- package/build/server/chunks/index-CSpGrMM2.js.map +1 -0
- package/build/server/chunks/{index-Djsj11qr.js → index-NcxaM188.js} +26 -4
- package/build/server/chunks/index-NcxaM188.js.map +1 -0
- package/build/server/chunks/{index-server-BI-Ep7Rw.js → index-server-DsYEXu5n.js} +2 -3
- package/build/server/chunks/index-server-DsYEXu5n.js.map +1 -0
- package/build/server/chunks/{index3-Cp9d5nmD.js → index2-DO4B3D-P.js} +5 -5
- package/build/server/chunks/index2-DO4B3D-P.js.map +1 -0
- package/build/server/chunks/{index-BSa6KzSq.js → index3-qVi61CNf.js} +2 -2
- package/build/server/chunks/{index-BSa6KzSq.js.map → index3-qVi61CNf.js.map} +1 -1
- package/build/server/chunks/{log-content.svelte-B3ZvaoLs.js → log-content.svelte-CfQzj-v_.js} +2 -2
- package/build/server/chunks/{log-content.svelte-B3ZvaoLs.js.map → log-content.svelte-CfQzj-v_.js.map} +1 -1
- package/build/server/chunks/root-CDJwhpIB.js +1152 -0
- package/build/server/chunks/root-CDJwhpIB.js.map +1 -0
- package/build/server/chunks/{source-selection-hOQHZ-fn.js → source-selection-eA--VEKo.js} +17 -2
- package/build/server/chunks/source-selection-eA--VEKo.js.map +1 -0
- package/build/server/chunks/state.svelte-DT7cgvTK.js +11 -0
- package/build/server/chunks/state.svelte-DT7cgvTK.js.map +1 -0
- package/build/server/index.js +2467 -2815
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +22 -22
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/backend/lib/get-agent-factories.ts +1 -1
- package/src/backend/roleplay/router.ts +14 -8
- package/src/backend/roleplay/scheduler.ts +1 -1
- package/src/backend/tests/emulate-agents.ts +1 -0
- package/build/client/_app/immutable/assets/0.DkT7Ji57.css +0 -1
- package/build/client/_app/immutable/assets/0.DkT7Ji57.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DkT7Ji57.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatStepTrace.CDucuryp.css +0 -1
- package/build/client/_app/immutable/assets/ChatStepTrace.CDucuryp.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatStepTrace.CDucuryp.css.gz +0 -0
- package/build/client/_app/immutable/chunks/3HVf2z3Q.js +0 -1
- package/build/client/_app/immutable/chunks/3HVf2z3Q.js.br +0 -0
- package/build/client/_app/immutable/chunks/3HVf2z3Q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/8mHyIC1B.js.br +0 -0
- package/build/client/_app/immutable/chunks/8mHyIC1B.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B394X4Dm.js.br +0 -0
- package/build/client/_app/immutable/chunks/B394X4Dm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5CoBEt2.js +0 -1330
- package/build/client/_app/immutable/chunks/B5CoBEt2.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5CoBEt2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B7r4ghJg.js +0 -1
- package/build/client/_app/immutable/chunks/B7r4ghJg.js.br +0 -2
- package/build/client/_app/immutable/chunks/B7r4ghJg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BEJ5fU19.js +0 -1
- package/build/client/_app/immutable/chunks/BEJ5fU19.js.br +0 -0
- package/build/client/_app/immutable/chunks/BEJ5fU19.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BFchB-2I.js +0 -1
- package/build/client/_app/immutable/chunks/BFchB-2I.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFchB-2I.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BRMnbBOX.js +0 -1
- package/build/client/_app/immutable/chunks/BRMnbBOX.js.br +0 -0
- package/build/client/_app/immutable/chunks/BRMnbBOX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BUApaBEI.js +0 -1
- package/build/client/_app/immutable/chunks/BUApaBEI.js.br +0 -0
- package/build/client/_app/immutable/chunks/BUApaBEI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bb9ZigkD.js +0 -2
- package/build/client/_app/immutable/chunks/Bb9ZigkD.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bb9ZigkD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BiBGf8wR.js +0 -1
- package/build/client/_app/immutable/chunks/BiBGf8wR.js.br +0 -0
- package/build/client/_app/immutable/chunks/BiBGf8wR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bk5z628g.js +0 -1
- package/build/client/_app/immutable/chunks/Bk5z628g.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bk5z628g.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BmJonxL2.js +0 -1
- package/build/client/_app/immutable/chunks/BmJonxL2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BmJonxL2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1rQHXql.js +0 -1
- package/build/client/_app/immutable/chunks/C1rQHXql.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1rQHXql.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C3cmQ-ZQ.js +0 -1
- package/build/client/_app/immutable/chunks/C3cmQ-ZQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/C3cmQ-ZQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C8-d_pGN.js +0 -11
- package/build/client/_app/immutable/chunks/C8-d_pGN.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8-d_pGN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CAnrK2Rl.js +0 -5
- package/build/client/_app/immutable/chunks/CAnrK2Rl.js.br +0 -0
- package/build/client/_app/immutable/chunks/CAnrK2Rl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CB3MYTwM.js +0 -2
- package/build/client/_app/immutable/chunks/CB3MYTwM.js.br +0 -0
- package/build/client/_app/immutable/chunks/CB3MYTwM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CD54oo-Q.js +0 -1
- package/build/client/_app/immutable/chunks/CD54oo-Q.js.br +0 -0
- package/build/client/_app/immutable/chunks/CD54oo-Q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJHvtD7r.js +0 -8
- package/build/client/_app/immutable/chunks/CJHvtD7r.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJHvtD7r.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CMN-Rq6J.js +0 -1
- package/build/client/_app/immutable/chunks/CMN-Rq6J.js.br +0 -0
- package/build/client/_app/immutable/chunks/CMN-Rq6J.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CWj6FrbW.js +0 -1
- package/build/client/_app/immutable/chunks/CWj6FrbW.js.br +0 -0
- package/build/client/_app/immutable/chunks/CWj6FrbW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CmatTLDp.js +0 -1
- package/build/client/_app/immutable/chunks/CmatTLDp.js.br +0 -0
- package/build/client/_app/immutable/chunks/CmatTLDp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CnRh8Bgk.js +0 -33
- package/build/client/_app/immutable/chunks/CnRh8Bgk.js.br +0 -0
- package/build/client/_app/immutable/chunks/CnRh8Bgk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cob_zFH5.js +0 -1
- package/build/client/_app/immutable/chunks/Cob_zFH5.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cob_zFH5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DAyj7AJo.js +0 -1
- package/build/client/_app/immutable/chunks/DAyj7AJo.js.br +0 -0
- package/build/client/_app/immutable/chunks/DAyj7AJo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DCT4VKzQ.js +0 -1
- package/build/client/_app/immutable/chunks/DCT4VKzQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DCT4VKzQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJH8-Pxb.js +0 -1
- package/build/client/_app/immutable/chunks/DJH8-Pxb.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJH8-Pxb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DMtzEpj5.js +0 -2
- package/build/client/_app/immutable/chunks/DMtzEpj5.js.br +0 -0
- package/build/client/_app/immutable/chunks/DMtzEpj5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DT74mAuZ.js +0 -1
- package/build/client/_app/immutable/chunks/DT74mAuZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DT74mAuZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DYY6aMTA.js.br +0 -0
- package/build/client/_app/immutable/chunks/DYY6aMTA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D_iTaAhh.js +0 -1
- package/build/client/_app/immutable/chunks/D_iTaAhh.js.br +0 -0
- package/build/client/_app/immutable/chunks/D_iTaAhh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/hp4PFHFv.js +0 -1
- package/build/client/_app/immutable/chunks/hp4PFHFv.js.br +0 -2
- package/build/client/_app/immutable/chunks/hp4PFHFv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/rHISuZrQ.js +0 -1
- package/build/client/_app/immutable/chunks/rHISuZrQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/rHISuZrQ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DoUqDuhT.js +0 -2
- package/build/client/_app/immutable/entry/app.DoUqDuhT.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DoUqDuhT.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Ck039vGm.js +0 -1
- package/build/client/_app/immutable/entry/start.Ck039vGm.js.br +0 -2
- package/build/client/_app/immutable/entry/start.Ck039vGm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DsSFrs8j.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DsSFrs8j.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.mgTJXkii.js +0 -1
- package/build/client/_app/immutable/nodes/1.mgTJXkii.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.mgTJXkii.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.CNlp77FZ.js +0 -5
- package/build/client/_app/immutable/nodes/10.CNlp77FZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.CNlp77FZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.BVI-eEdV.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.BVI-eEdV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.BHSGZYEC.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.BHSGZYEC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.CZ_7M4AF.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CZ_7M4AF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.D96_XEm-.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.D96_XEm-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.DJq8KQca.js +0 -1
- package/build/client/_app/immutable/nodes/15.DJq8KQca.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.DJq8KQca.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.MpUk9w5x.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.MpUk9w5x.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.CgqWHP0Y.js +0 -4
- package/build/client/_app/immutable/nodes/17.CgqWHP0Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.CgqWHP0Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.BV7lLFx7.js +0 -11
- package/build/client/_app/immutable/nodes/18.BV7lLFx7.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.BV7lLFx7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.COX-RTiI.js +0 -35
- package/build/client/_app/immutable/nodes/2.COX-RTiI.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.COX-RTiI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CCDyeAHw.js +0 -1
- package/build/client/_app/immutable/nodes/3.CCDyeAHw.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CCDyeAHw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.Cd9dzHLx.js +0 -1
- package/build/client/_app/immutable/nodes/4.Cd9dzHLx.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.Cd9dzHLx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.BqUmLlVD.js +0 -1
- package/build/client/_app/immutable/nodes/5.BqUmLlVD.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BqUmLlVD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.kgmUVW62.js +0 -1
- package/build/client/_app/immutable/nodes/6.kgmUVW62.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.kgmUVW62.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.CkeP1yO3.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.CkeP1yO3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CaESldgZ.js +0 -2
- package/build/client/_app/immutable/nodes/8.CaESldgZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CaESldgZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DatTKw7a.js +0 -2
- package/build/client/_app/immutable/nodes/9.DatTKw7a.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DatTKw7a.js.gz +0 -0
- package/build/server/chunks/0-CXtwDtnz.js +0 -9
- package/build/server/chunks/0-CXtwDtnz.js.map +0 -1
- package/build/server/chunks/1-D6-Ps83z.js +0 -9
- package/build/server/chunks/10-BWSo2Lz2.js +0 -9
- package/build/server/chunks/10-BWSo2Lz2.js.map +0 -1
- package/build/server/chunks/15-D8gRuCBg.js +0 -9
- package/build/server/chunks/15-D8gRuCBg.js.map +0 -1
- package/build/server/chunks/17-CH4MLdY7.js +0 -9
- package/build/server/chunks/17-CH4MLdY7.js.map +0 -1
- package/build/server/chunks/18-C48_VgcC.js +0 -9
- package/build/server/chunks/18-C48_VgcC.js.map +0 -1
- package/build/server/chunks/2-CSbZQChk.js +0 -9
- package/build/server/chunks/2-CSbZQChk.js.map +0 -1
- package/build/server/chunks/3-DMPvS2tl.js +0 -9
- package/build/server/chunks/3-DMPvS2tl.js.map +0 -1
- package/build/server/chunks/4-DJMua_Cs.js +0 -9
- package/build/server/chunks/4-DJMua_Cs.js.map +0 -1
- package/build/server/chunks/5-QQH3C-Ro.js +0 -9
- package/build/server/chunks/5-QQH3C-Ro.js.map +0 -1
- package/build/server/chunks/6-BdiDB4wj.js +0 -9
- package/build/server/chunks/6-BdiDB4wj.js.map +0 -1
- package/build/server/chunks/8-msXmgb8C.js +0 -9
- package/build/server/chunks/8-msXmgb8C.js.map +0 -1
- package/build/server/chunks/9-BtgYu4El.js +0 -9
- package/build/server/chunks/9-BtgYu4El.js.map +0 -1
- package/build/server/chunks/AgentSidebar-DqMxRWln.js.map +0 -1
- package/build/server/chunks/Button-qfXYs6Cv.js.map +0 -1
- package/build/server/chunks/ChatStepTrace-Bvxmgz7y.js.map +0 -1
- package/build/server/chunks/ContextEditor-CsiHhmH8.js.map +0 -1
- package/build/server/chunks/Dropdown-DroDbZQ6.js.map +0 -1
- package/build/server/chunks/Icon-SOvOgynh.js.map +0 -1
- package/build/server/chunks/Input-D-7S8dEO.js.map +0 -1
- package/build/server/chunks/Modal-CBKUwUGm.js.map +0 -1
- package/build/server/chunks/Tab-DMBlstpi.js.map +0 -1
- package/build/server/chunks/_layout.svelte-B3_pVwfN.js.map +0 -1
- package/build/server/chunks/_layout.svelte-BnUNGsUV.js.map +0 -1
- package/build/server/chunks/_layout.svelte-CqwbWo_W.js.map +0 -1
- package/build/server/chunks/_layout.svelte-DuOlsMHY.js.map +0 -1
- package/build/server/chunks/_page.svelte-B8NFVmqA.js.map +0 -1
- package/build/server/chunks/_page.svelte-BB_XBfMx.js.map +0 -1
- package/build/server/chunks/_page.svelte-BaDwHJpC.js.map +0 -1
- package/build/server/chunks/_page.svelte-Ch8DnIjK.js.map +0 -1
- package/build/server/chunks/_page.svelte-DASkT6Tk.js.map +0 -1
- package/build/server/chunks/_page.svelte-Tl1k8pGd.js.map +0 -1
- package/build/server/chunks/_page.svelte-VFizsKQC.js +0 -763
- package/build/server/chunks/_page.svelte-VFizsKQC.js.map +0 -1
- package/build/server/chunks/_page.svelte-c2LBV2K4.js.map +0 -1
- package/build/server/chunks/agents-context-DJAK2Ml6.js.map +0 -1
- package/build/server/chunks/client-tqD_VlIn.js.map +0 -1
- package/build/server/chunks/context-B0vutJuA.js +0 -1819
- package/build/server/chunks/context-B0vutJuA.js.map +0 -1
- package/build/server/chunks/edit-workspace-context-BQXwYkgE.js.map +0 -1
- package/build/server/chunks/error.svelte-DZg1sSW2.js +0 -14
- package/build/server/chunks/error.svelte-DZg1sSW2.js.map +0 -1
- package/build/server/chunks/events-Hd1jvlZp.js.map +0 -1
- package/build/server/chunks/hooks-BJphIAi-.js.map +0 -1
- package/build/server/chunks/index-Djsj11qr.js.map +0 -1
- package/build/server/chunks/index-server-BI-Ep7Rw.js.map +0 -1
- package/build/server/chunks/index2-BpEbpEAf.js +0 -828
- package/build/server/chunks/index2-BpEbpEAf.js.map +0 -1
- package/build/server/chunks/index3-Cp9d5nmD.js.map +0 -1
- package/build/server/chunks/source-selection-hOQHZ-fn.js.map +0 -1
- package/build/server/chunks/state.svelte-DbqYHGBV.js +0 -10
- package/build/server/chunks/state.svelte-DbqYHGBV.js.map +0 -1
- package/build/server/chunks/utils-KcIDVAAe.js +0 -238
- package/build/server/chunks/utils-KcIDVAAe.js.map +0 -1
|
@@ -1,763 +0,0 @@
|
|
|
1
|
-
import { e as ensure_array_like, c as attr_style } from './index2-BpEbpEAf.js';
|
|
2
|
-
import { o as onDestroy } from './index-server-BI-Ep7Rw.js';
|
|
3
|
-
import { p as page } from './index3-Cp9d5nmD.js';
|
|
4
|
-
import { B as Button } from './Button-qfXYs6Cv.js';
|
|
5
|
-
import { g as getPersistedTelescopeSourceId } from './source-selection-hOQHZ-fn.js';
|
|
6
|
-
import { X as escape_html } from './context-B0vutJuA.js';
|
|
7
|
-
import './state.svelte-DbqYHGBV.js';
|
|
8
|
-
import './utils-KcIDVAAe.js';
|
|
9
|
-
import './index-BSa6KzSq.js';
|
|
10
|
-
import 'zod';
|
|
11
|
-
|
|
12
|
-
function _page($$renderer, $$props) {
|
|
13
|
-
$$renderer.component(($$renderer2) => {
|
|
14
|
-
const TIMELINE_RULER_HEIGHT_PX = 32;
|
|
15
|
-
const TIMELINE_ROW_HEIGHT_PX = 40;
|
|
16
|
-
const WAVEFORM_ROW_HEIGHT_PX = 160;
|
|
17
|
-
const TIMELINE_SCALE_HEIGHT_PX = 32;
|
|
18
|
-
const BOSUN_COLORS = {
|
|
19
|
-
blue: "#569cd6",
|
|
20
|
-
green: "#93FF6D",
|
|
21
|
-
greenDark: "#00B58A",
|
|
22
|
-
orange: "#ce9178",
|
|
23
|
-
purple: "#81147D",
|
|
24
|
-
red: "#FF6666",
|
|
25
|
-
gray: "#767676"
|
|
26
|
-
};
|
|
27
|
-
const RAW_VAD_SPAN_NAMES = /* @__PURE__ */ new Set(["vad.start_of_speech", "vad.end_of_speech"]);
|
|
28
|
-
const RAW_STT_SPAN_NAMES = /* @__PURE__ */ new Set([
|
|
29
|
-
"stt.start_of_speech",
|
|
30
|
-
"stt.interim_transcript",
|
|
31
|
-
"stt.preflight_transcript",
|
|
32
|
-
"stt.final_transcript"
|
|
33
|
-
]);
|
|
34
|
-
const HIDDEN_LATENCY_SPAN_NAMES = /* @__PURE__ */ new Set([
|
|
35
|
-
"vad.user_speech",
|
|
36
|
-
"vad.endpointing",
|
|
37
|
-
"vad.trailing_silence",
|
|
38
|
-
"stt.endpointing",
|
|
39
|
-
"stt.transcription",
|
|
40
|
-
"stt.turn_commit",
|
|
41
|
-
"stt.until_turn_committed",
|
|
42
|
-
"stt.transcript_to_speech_created",
|
|
43
|
-
"stt.transcript_to_llm_request",
|
|
44
|
-
"stt.transcript_trigger_selected",
|
|
45
|
-
"stt.speech_end_to_trigger_transcript",
|
|
46
|
-
"stt.speech_end_to_final_transcript",
|
|
47
|
-
"stt.trigger_transcript_to_reply_trigger",
|
|
48
|
-
"stt.final_transcript_to_commit"
|
|
49
|
-
]);
|
|
50
|
-
const ROW_DEFS = [
|
|
51
|
-
{ label: "VAD", names: [...RAW_VAD_SPAN_NAMES] },
|
|
52
|
-
{ label: "STT", names: [...RAW_STT_SPAN_NAMES] },
|
|
53
|
-
{ label: "Trigger", component: "trigger" },
|
|
54
|
-
{ label: "LLM", names: ["llm.request.ttft", "llm.streaming"] },
|
|
55
|
-
{
|
|
56
|
-
label: "LLM→TTS",
|
|
57
|
-
names: ["llm_to_tts.buffering", "llm_to_tts.streaming"]
|
|
58
|
-
},
|
|
59
|
-
{ label: "TTS generation", names: ["tts.generation"] },
|
|
60
|
-
{
|
|
61
|
-
label: "TTS→Audio",
|
|
62
|
-
names: ["tts_to_audio.buffering", "tts_to_audio.streaming"]
|
|
63
|
-
},
|
|
64
|
-
{ label: "LLM→Audio start", names: ["llm_to_audio.latency"] },
|
|
65
|
-
{ label: "Other" }
|
|
66
|
-
];
|
|
67
|
-
const COLOR_BY_KEY = {
|
|
68
|
-
"vad.user_speech": tintHex(BOSUN_COLORS.purple, 0.35),
|
|
69
|
-
"vad.endpointing": tintHex(BOSUN_COLORS.purple, -0.15),
|
|
70
|
-
"llm.request": tintHex(BOSUN_COLORS.blue, -0.25),
|
|
71
|
-
"llm.streaming": BOSUN_COLORS.blue,
|
|
72
|
-
"llm_to_tts.buffering": tintHex(BOSUN_COLORS.orange, -0.25),
|
|
73
|
-
"llm_to_tts.streaming": BOSUN_COLORS.orange,
|
|
74
|
-
"tts.generation": tintHex(BOSUN_COLORS.orange, 0.25),
|
|
75
|
-
"tts_to_audio.buffering": tintHex(BOSUN_COLORS.purple, -0.25),
|
|
76
|
-
"tts_to_audio.streaming": tintHex(BOSUN_COLORS.purple, 0.25),
|
|
77
|
-
"llm_to_audio.ok": BOSUN_COLORS.green,
|
|
78
|
-
"llm_to_audio.high": BOSUN_COLORS.red,
|
|
79
|
-
trigger: BOSUN_COLORS.greenDark,
|
|
80
|
-
stt: tintHex(BOSUN_COLORS.purple, 0.2),
|
|
81
|
-
other: BOSUN_COLORS.gray
|
|
82
|
-
};
|
|
83
|
-
let sourceId = getPersistedTelescopeSourceId() ?? "";
|
|
84
|
-
let traces = [];
|
|
85
|
-
let recording = {
|
|
86
|
-
alignmentOffsetMs: 0
|
|
87
|
-
};
|
|
88
|
-
let uploadInFlight = false;
|
|
89
|
-
let playbackPositionMs = 0;
|
|
90
|
-
let playbackPlaying = false;
|
|
91
|
-
let viewportStartMs = null;
|
|
92
|
-
let viewportEndMs = null;
|
|
93
|
-
let fileInputEl = null;
|
|
94
|
-
let playbackAudioContext = null;
|
|
95
|
-
let playbackSourceNode = null;
|
|
96
|
-
let playbackStartedAtMs = null;
|
|
97
|
-
let playbackStartedAtContextTime = null;
|
|
98
|
-
const conversationId = (() => page.params.conversationId)();
|
|
99
|
-
function buildRecordingApiUrlFor(cid, nextSourceId) {
|
|
100
|
-
const params = new URLSearchParams();
|
|
101
|
-
if (nextSourceId) params.set("source", nextSourceId);
|
|
102
|
-
const search = params.toString();
|
|
103
|
-
return `/traces/api/latency/${encodeURIComponent(cid)}${search ? `?${search}` : ""}`;
|
|
104
|
-
}
|
|
105
|
-
(() => {
|
|
106
|
-
if (!conversationId) return "";
|
|
107
|
-
return buildRecordingApiUrlFor(conversationId, sourceId);
|
|
108
|
-
})();
|
|
109
|
-
const timelineOriginMs = (() => {
|
|
110
|
-
let min = Number.POSITIVE_INFINITY;
|
|
111
|
-
for (const trace of traces) {
|
|
112
|
-
if (typeof trace.createdAt !== "number" || !Number.isFinite(trace.createdAt)) continue;
|
|
113
|
-
min = Math.min(min, trace.createdAt);
|
|
114
|
-
}
|
|
115
|
-
return Number.isFinite(min) ? min : 0;
|
|
116
|
-
})();
|
|
117
|
-
const callSegments = (() => buildCallLatencySegments(traces))();
|
|
118
|
-
const latencyTraceCount = (() => traces.filter((trace) => {
|
|
119
|
-
const metrics = trace?.metrics;
|
|
120
|
-
return !!metrics && typeof metrics === "object";
|
|
121
|
-
}).length)();
|
|
122
|
-
const timelineRows = (() => {
|
|
123
|
-
const grouped = /* @__PURE__ */ new Map();
|
|
124
|
-
for (const segment of callSegments) {
|
|
125
|
-
const items = grouped.get(segment.row);
|
|
126
|
-
if (items) items.push(segment);
|
|
127
|
-
else grouped.set(segment.row, [segment]);
|
|
128
|
-
}
|
|
129
|
-
return [...ROW_DEFS].reverse().map((row) => ({ label: row.label, segments: grouped.get(row.label) ?? [] })).filter((row) => row.segments.length > 0);
|
|
130
|
-
})();
|
|
131
|
-
const guideLines = (() => buildGuideLines())();
|
|
132
|
-
const timelinePlotHeightPx = (() => TIMELINE_RULER_HEIGHT_PX + timelineRows.length * TIMELINE_ROW_HEIGHT_PX + WAVEFORM_ROW_HEIGHT_PX + TIMELINE_SCALE_HEIGHT_PX)();
|
|
133
|
-
const playbackAbsoluteMs = (() => {
|
|
134
|
-
return null;
|
|
135
|
-
})();
|
|
136
|
-
const playbackCursor = (() => {
|
|
137
|
-
const absoluteMs = playbackAbsoluteMs;
|
|
138
|
-
if (absoluteMs == null || viewportStartMs == null || viewportEndMs == null) return null;
|
|
139
|
-
const durationMs = viewportEndMs - viewportStartMs;
|
|
140
|
-
if (!Number.isFinite(durationMs) || durationMs <= 0) return null;
|
|
141
|
-
if (absoluteMs < viewportStartMs || absoluteMs > viewportEndMs) return null;
|
|
142
|
-
return {
|
|
143
|
-
leftPercent: clamp((absoluteMs - viewportStartMs) / durationMs * 100, 0, 100),
|
|
144
|
-
heightPx: timelinePlotHeightPx
|
|
145
|
-
};
|
|
146
|
-
})();
|
|
147
|
-
const contentExtent = (() => {
|
|
148
|
-
let min = Number.POSITIVE_INFINITY;
|
|
149
|
-
let max = Number.NEGATIVE_INFINITY;
|
|
150
|
-
for (const segment of callSegments) {
|
|
151
|
-
min = Math.min(min, segment.start);
|
|
152
|
-
max = Math.max(max, segment.end);
|
|
153
|
-
}
|
|
154
|
-
if (!Number.isFinite(min) || !Number.isFinite(max) || max <= min) return null;
|
|
155
|
-
return { min, max };
|
|
156
|
-
})();
|
|
157
|
-
const viewportDurationMs = (() => {
|
|
158
|
-
if (viewportStartMs == null || viewportEndMs == null) return null;
|
|
159
|
-
const duration = viewportEndMs - viewportStartMs;
|
|
160
|
-
return duration > 0 ? duration : null;
|
|
161
|
-
})();
|
|
162
|
-
const visibleTicks = (() => {
|
|
163
|
-
if (viewportStartMs == null || viewportEndMs == null) return [];
|
|
164
|
-
return buildTicks(viewportStartMs, viewportEndMs, timelineOriginMs);
|
|
165
|
-
})();
|
|
166
|
-
const visibleTickStepMs = (() => {
|
|
167
|
-
if (viewportStartMs == null || viewportEndMs == null) return null;
|
|
168
|
-
const durationMs = viewportEndMs - viewportStartMs;
|
|
169
|
-
if (!Number.isFinite(durationMs) || durationMs <= 0) return null;
|
|
170
|
-
return chooseTickStep(durationMs);
|
|
171
|
-
})();
|
|
172
|
-
onDestroy(() => {
|
|
173
|
-
stopPlayback(false);
|
|
174
|
-
void closePlaybackAudioContext();
|
|
175
|
-
});
|
|
176
|
-
function normalizeNonEmptyString(value) {
|
|
177
|
-
if (typeof value !== "string") return null;
|
|
178
|
-
const trimmed = value.trim();
|
|
179
|
-
return trimmed ? trimmed : null;
|
|
180
|
-
}
|
|
181
|
-
function ms(value) {
|
|
182
|
-
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
183
|
-
}
|
|
184
|
-
function clampByte(value) {
|
|
185
|
-
return Math.max(0, Math.min(255, Math.round(value)));
|
|
186
|
-
}
|
|
187
|
-
function clamp(value, min, max) {
|
|
188
|
-
return Math.min(max, Math.max(min, value));
|
|
189
|
-
}
|
|
190
|
-
function tintHex(hex, amount) {
|
|
191
|
-
const raw = (hex ?? "").trim().replace(/^#/, "");
|
|
192
|
-
const expanded = raw.length === 3 ? raw.split("").map((part) => `${part}${part}`).join("") : raw;
|
|
193
|
-
if (expanded.length !== 6 || !/^[0-9a-fA-F]+$/.test(expanded)) return hex;
|
|
194
|
-
const r = parseInt(expanded.slice(0, 2), 16);
|
|
195
|
-
const g = parseInt(expanded.slice(2, 4), 16);
|
|
196
|
-
const b = parseInt(expanded.slice(4, 6), 16);
|
|
197
|
-
const t = Math.abs(Math.max(-1, Math.min(1, amount)));
|
|
198
|
-
const target = amount >= 0 ? 255 : 0;
|
|
199
|
-
return `#${clampByte(r + (target - r) * t).toString(16).padStart(2, "0")}${clampByte(g + (target - g) * t).toString(16).padStart(2, "0")}${clampByte(b + (target - b) * t).toString(16).padStart(2, "0")}`;
|
|
200
|
-
}
|
|
201
|
-
function fmtSignedMs(value) {
|
|
202
|
-
if (!Number.isFinite(value)) return "0 ms";
|
|
203
|
-
const rounded = Math.round(value);
|
|
204
|
-
if (rounded === 0) return "0 ms";
|
|
205
|
-
return `${rounded > 0 ? "+" : ""}${rounded} ms`;
|
|
206
|
-
}
|
|
207
|
-
function formatRelativeTime(offsetMs) {
|
|
208
|
-
if (!Number.isFinite(offsetMs)) return "—";
|
|
209
|
-
const sign = offsetMs < 0 ? "-" : "";
|
|
210
|
-
const abs = Math.abs(offsetMs);
|
|
211
|
-
if (abs < 1e4) return `${sign}${(abs / 1e3).toFixed(1)}s`;
|
|
212
|
-
if (abs < 6e4) return `${sign}${(abs / 1e3).toFixed(2)}s`;
|
|
213
|
-
const totalSeconds = abs / 1e3;
|
|
214
|
-
const minutes = Math.floor(totalSeconds / 60);
|
|
215
|
-
const seconds = totalSeconds - minutes * 60;
|
|
216
|
-
return `${sign}${minutes}:${seconds.toFixed(1).padStart(4, "0")}`;
|
|
217
|
-
}
|
|
218
|
-
function formatScaleStep(valueMs) {
|
|
219
|
-
if (valueMs == null || !Number.isFinite(valueMs) || valueMs <= 0) return "—";
|
|
220
|
-
if (valueMs < 1e3) return `${Math.round(valueMs)} ms`;
|
|
221
|
-
if (valueMs < 1e4) return `${Math.round(valueMs)} ms (${(valueMs / 1e3).toFixed(1)} s)`;
|
|
222
|
-
return `${Math.round(valueMs)} ms (${(valueMs / 1e3).toFixed(2)} s)`;
|
|
223
|
-
}
|
|
224
|
-
function spanAttribute(span, key) {
|
|
225
|
-
const attributes = span?.attributes;
|
|
226
|
-
if (!attributes || typeof attributes !== "object") return null;
|
|
227
|
-
return attributes[`bosun.${key}`] ?? attributes[`anyvan.${key}`] ?? null;
|
|
228
|
-
}
|
|
229
|
-
function spanStringAttribute(span, key) {
|
|
230
|
-
return normalizeNonEmptyString(spanAttribute(span, key));
|
|
231
|
-
}
|
|
232
|
-
function spanComponent(span) {
|
|
233
|
-
return spanStringAttribute(span, "component");
|
|
234
|
-
}
|
|
235
|
-
function shouldIgnoreLatencySpan(span) {
|
|
236
|
-
const name = normalizeNonEmptyString(span?.name);
|
|
237
|
-
if (!name) return false;
|
|
238
|
-
if (HIDDEN_LATENCY_SPAN_NAMES.has(name)) return true;
|
|
239
|
-
if (name.startsWith("vad.") && !RAW_VAD_SPAN_NAMES.has(name)) return true;
|
|
240
|
-
if (name.startsWith("stt.") && !RAW_STT_SPAN_NAMES.has(name)) return true;
|
|
241
|
-
return false;
|
|
242
|
-
}
|
|
243
|
-
function spanLabel(span) {
|
|
244
|
-
const label = spanStringAttribute(span, "label");
|
|
245
|
-
if (label) return label;
|
|
246
|
-
if (typeof span?.name === "string" && span.name) return span.name;
|
|
247
|
-
return "span";
|
|
248
|
-
}
|
|
249
|
-
function describeTrace(trace) {
|
|
250
|
-
const time = typeof trace.createdAt === "number" && Number.isFinite(trace.createdAt) ? new Date(trace.createdAt).toLocaleTimeString() : "unknown time";
|
|
251
|
-
if (trace.traceType === "CONVERSATIONAL") {
|
|
252
|
-
return `Conversational • ${trace.eventName} • ${time}`;
|
|
253
|
-
}
|
|
254
|
-
if (trace.traceType === "STEP") {
|
|
255
|
-
return `Step • ${trace.name ?? "unknown"} • ${time}`;
|
|
256
|
-
}
|
|
257
|
-
return `API • ${trace.operationName} • ${time}`;
|
|
258
|
-
}
|
|
259
|
-
function spanColorKey(span) {
|
|
260
|
-
const name = typeof span?.name === "string" ? span.name : "";
|
|
261
|
-
if (name === "vad.endpointing") return "vad.endpointing";
|
|
262
|
-
if (name.startsWith("vad.")) return "vad.user_speech";
|
|
263
|
-
if (name === "llm.request.ttft") return "llm.request";
|
|
264
|
-
if (name === "llm.streaming") return "llm.streaming";
|
|
265
|
-
if (name === "llm_to_tts.buffering") return "llm_to_tts.buffering";
|
|
266
|
-
if (name === "llm_to_tts.streaming") return "llm_to_tts.streaming";
|
|
267
|
-
if (name === "tts.generation") return "tts.generation";
|
|
268
|
-
if (name === "tts_to_audio.buffering") return "tts_to_audio.buffering";
|
|
269
|
-
if (name === "tts_to_audio.streaming") return "tts_to_audio.streaming";
|
|
270
|
-
if (name.startsWith("stt.")) return "stt";
|
|
271
|
-
if (name.startsWith("trigger.")) return "trigger";
|
|
272
|
-
const component = spanComponent(span);
|
|
273
|
-
if (component === "vad") return "vad.user_speech";
|
|
274
|
-
if (component === "stt") return "stt";
|
|
275
|
-
if (component === "trigger") return "trigger";
|
|
276
|
-
return "other";
|
|
277
|
-
}
|
|
278
|
-
function makePointSpan(name, atMs, attributes) {
|
|
279
|
-
return {
|
|
280
|
-
name,
|
|
281
|
-
startTimeUnixMs: atMs,
|
|
282
|
-
endTimeUnixMs: atMs,
|
|
283
|
-
durationMs: 0,
|
|
284
|
-
attributes
|
|
285
|
-
};
|
|
286
|
-
}
|
|
287
|
-
function buildLatencyDebugSpans(metrics) {
|
|
288
|
-
const debug = metrics?.debug ?? {};
|
|
289
|
-
const ttsAudioStartAtMs = ms(metrics?.timing?.ttsAudioStartAtMs);
|
|
290
|
-
const isPreResponseEvent = (atMs) => ttsAudioStartAtMs == null || atMs <= ttsAudioStartAtMs;
|
|
291
|
-
const built = [];
|
|
292
|
-
let hasRawVad = false;
|
|
293
|
-
let hasRawStt = false;
|
|
294
|
-
const vadEvents = Array.isArray(debug?.vadEvents?.events) ? debug.vadEvents.events : [];
|
|
295
|
-
vadEvents.forEach((event, index) => {
|
|
296
|
-
const atMs = ms(event?.atMs);
|
|
297
|
-
const type = normalizeNonEmptyString(event?.type);
|
|
298
|
-
if (atMs == null || !isPreResponseEvent(atMs) || type !== "start_of_speech" && type !== "end_of_speech") {
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
hasRawVad = true;
|
|
302
|
-
built.push(makePointSpan(`vad.${type}`, atMs, {
|
|
303
|
-
"anyvan.component": "vad",
|
|
304
|
-
"anyvan.label": type === "start_of_speech" ? "VAD activated" : "VAD deactivated",
|
|
305
|
-
"anyvan.description": type === "start_of_speech" ? "Raw VAD START_OF_SPEECH event" : "Raw VAD END_OF_SPEECH event",
|
|
306
|
-
"anyvan.eventIndex": index,
|
|
307
|
-
"anyvan.samplesIndex": typeof event?.samplesIndex === "number" ? event.samplesIndex : void 0,
|
|
308
|
-
"anyvan.speechDurationMs": typeof event?.speechDurationMs === "number" ? event.speechDurationMs : void 0,
|
|
309
|
-
"anyvan.silenceDurationMs": typeof event?.silenceDurationMs === "number" ? event.silenceDurationMs : void 0
|
|
310
|
-
}));
|
|
311
|
-
});
|
|
312
|
-
const sttEvents = Array.isArray(debug?.sttEvents?.events) ? debug.sttEvents.events : [];
|
|
313
|
-
sttEvents.forEach((event, index) => {
|
|
314
|
-
const atMs = ms(event?.atMs);
|
|
315
|
-
const type = normalizeNonEmptyString(event?.type);
|
|
316
|
-
if (atMs == null || !isPreResponseEvent(atMs) || type !== "start_of_speech" && type !== "interim_transcript" && type !== "preflight_transcript" && type !== "final_transcript") {
|
|
317
|
-
return;
|
|
318
|
-
}
|
|
319
|
-
hasRawStt = true;
|
|
320
|
-
const label = type === "start_of_speech" ? "STT start of speech" : type === "interim_transcript" ? "STT interim transcript" : type === "preflight_transcript" ? "STT preflight transcript" : "STT final transcript";
|
|
321
|
-
built.push(makePointSpan(`stt.${type}`, atMs, {
|
|
322
|
-
"anyvan.component": "stt",
|
|
323
|
-
"anyvan.label": label,
|
|
324
|
-
"anyvan.description": `Raw STT ${type.toUpperCase()} event`,
|
|
325
|
-
"anyvan.eventIndex": index,
|
|
326
|
-
"anyvan.requestId": typeof event?.requestId === "string" ? event.requestId : void 0,
|
|
327
|
-
"anyvan.text": normalizeNonEmptyString(event?.text),
|
|
328
|
-
"anyvan.language": typeof event?.language === "string" || event?.language === null ? event.language : void 0,
|
|
329
|
-
"anyvan.speakerId": typeof event?.speakerId === "string" || event?.speakerId === null ? event.speakerId : void 0
|
|
330
|
-
}));
|
|
331
|
-
});
|
|
332
|
-
return { spans: built, hasRawVad, hasRawStt };
|
|
333
|
-
}
|
|
334
|
-
function buildSegmentsForMetrics(trace, metrics, prefix) {
|
|
335
|
-
const debugSpans = buildLatencyDebugSpans(metrics);
|
|
336
|
-
const spans = Array.isArray(metrics?.spans) ? metrics.spans.filter((span) => {
|
|
337
|
-
const name = normalizeNonEmptyString(span?.name);
|
|
338
|
-
if (name?.startsWith("vad.") && debugSpans.hasRawVad) return false;
|
|
339
|
-
if (name?.startsWith("stt.") && debugSpans.hasRawStt) return false;
|
|
340
|
-
return !shouldIgnoreLatencySpan(span);
|
|
341
|
-
}) : [];
|
|
342
|
-
const summary = metrics?.summary ?? {};
|
|
343
|
-
const timing = metrics?.timing ?? {};
|
|
344
|
-
const indexed = [...spans, ...debugSpans.spans].map((span, index) => ({ span, index }));
|
|
345
|
-
const used = /* @__PURE__ */ new Set();
|
|
346
|
-
const groupedRows = ROW_DEFS.filter((row) => row.label !== "LLM→Audio start" && row.label !== "Other").map((row) => {
|
|
347
|
-
const matches = indexed.filter(({ span, index }) => {
|
|
348
|
-
if (used.has(index)) return false;
|
|
349
|
-
const name = typeof span?.name === "string" ? span.name : "";
|
|
350
|
-
const component = spanComponent(span);
|
|
351
|
-
const nameMatch = Array.isArray(row.names) && name !== "" && row.names.includes(name);
|
|
352
|
-
const componentMatch = typeof row.component === "string" && component === row.component;
|
|
353
|
-
return nameMatch || componentMatch;
|
|
354
|
-
}).sort((a, b) => (ms(a.span.startTimeUnixMs) ?? 0) - (ms(b.span.startTimeUnixMs) ?? 0));
|
|
355
|
-
for (const match of matches) used.add(match.index);
|
|
356
|
-
return { label: row.label, spans: matches.map((match) => match.span) };
|
|
357
|
-
}).filter((row) => row.spans.length > 0);
|
|
358
|
-
const other = indexed.filter(({ index }) => !used.has(index)).map((entry) => entry.span).sort((a, b) => (ms(a.startTimeUnixMs) ?? 0) - (ms(b.startTimeUnixMs) ?? 0));
|
|
359
|
-
if (other.length) groupedRows.push({ label: "Other", spans: other });
|
|
360
|
-
const built = [];
|
|
361
|
-
for (const row of groupedRows) {
|
|
362
|
-
row.spans.forEach((span, index) => {
|
|
363
|
-
const start = ms(span.startTimeUnixMs);
|
|
364
|
-
const end = ms(span.endTimeUnixMs);
|
|
365
|
-
if (start == null || end == null || end < start) return;
|
|
366
|
-
built.push({
|
|
367
|
-
id: `${prefix}:${row.label}:${span.name ?? "span"}:${start}:${end}:${index}`,
|
|
368
|
-
row: row.label,
|
|
369
|
-
start,
|
|
370
|
-
end,
|
|
371
|
-
durationMs: Math.max(0, end - start),
|
|
372
|
-
colorKey: spanColorKey(span),
|
|
373
|
-
label: spanLabel(span),
|
|
374
|
-
description: spanStringAttribute(span, "description"),
|
|
375
|
-
explain: spanStringAttribute(span, "explain"),
|
|
376
|
-
text: spanStringAttribute(span, "text"),
|
|
377
|
-
traceLabel: describeTrace(trace)
|
|
378
|
-
});
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
const llmRequestStartAtMs = ms(timing?.llmRequestStartAtMs);
|
|
382
|
-
const ttsAudioStartAtMs = ms(timing?.ttsAudioStartAtMs);
|
|
383
|
-
if (llmRequestStartAtMs != null && ttsAudioStartAtMs != null && ttsAudioStartAtMs >= llmRequestStartAtMs) {
|
|
384
|
-
const durationMs = ttsAudioStartAtMs - llmRequestStartAtMs;
|
|
385
|
-
built.push({
|
|
386
|
-
id: `${prefix}:llm_to_audio:${llmRequestStartAtMs}:${ttsAudioStartAtMs}`,
|
|
387
|
-
row: "LLM→Audio start",
|
|
388
|
-
start: llmRequestStartAtMs,
|
|
389
|
-
end: ttsAudioStartAtMs,
|
|
390
|
-
durationMs,
|
|
391
|
-
colorKey: durationMs > 800 || Boolean(summary?.problematic) ? "llm_to_audio.high" : "llm_to_audio.ok",
|
|
392
|
-
label: "LLM→Audio start",
|
|
393
|
-
description: "LLM request start → agent speaking (first audio frame)",
|
|
394
|
-
explain: durationMs > 800 || Boolean(summary?.problematic) ? "High latency (>800ms) or problematic timing" : "OK",
|
|
395
|
-
text: null,
|
|
396
|
-
traceLabel: describeTrace(trace)
|
|
397
|
-
});
|
|
398
|
-
}
|
|
399
|
-
return built;
|
|
400
|
-
}
|
|
401
|
-
function buildCallLatencySegments(input) {
|
|
402
|
-
const built = [];
|
|
403
|
-
input.forEach((trace, index) => {
|
|
404
|
-
const metrics = trace?.metrics;
|
|
405
|
-
if (!metrics || typeof metrics !== "object") return;
|
|
406
|
-
const key = normalizeNonEmptyString(trace?.traceId) ?? `${trace.traceType}:${trace.createdAt}:${index}`;
|
|
407
|
-
built.push(...buildSegmentsForMetrics(trace, metrics, key));
|
|
408
|
-
});
|
|
409
|
-
return built.sort((a, b) => a.start - b.start || a.end - b.end || a.row.localeCompare(b.row));
|
|
410
|
-
}
|
|
411
|
-
function segmentStyle(segment) {
|
|
412
|
-
if (viewportStartMs == null || viewportEndMs == null) return null;
|
|
413
|
-
const duration = viewportEndMs - viewportStartMs;
|
|
414
|
-
if (!Number.isFinite(duration) || duration <= 0) return null;
|
|
415
|
-
const fill = COLOR_BY_KEY[segment.colorKey] ?? BOSUN_COLORS.gray;
|
|
416
|
-
const border = tintHex(fill, -0.25);
|
|
417
|
-
if (segment.end === segment.start) {
|
|
418
|
-
if (segment.start < viewportStartMs || segment.start > viewportEndMs) return null;
|
|
419
|
-
const pointPercent = clamp((segment.start - viewportStartMs) / duration * 100, 0, 100);
|
|
420
|
-
return `left:calc(${pointPercent}% - 2px);width:4px;background:${fill};border-color:${border};`;
|
|
421
|
-
}
|
|
422
|
-
const visibleStart = Math.max(segment.start, viewportStartMs);
|
|
423
|
-
const visibleEnd = Math.min(segment.end, viewportEndMs);
|
|
424
|
-
if (visibleEnd < visibleStart) return null;
|
|
425
|
-
const leftPercent = (visibleStart - viewportStartMs) / duration * 100;
|
|
426
|
-
const widthPercent = (visibleEnd - visibleStart) / duration * 100;
|
|
427
|
-
return `left:${leftPercent}%;width:max(${widthPercent}%,2px);background:${fill};border-color:${border};`;
|
|
428
|
-
}
|
|
429
|
-
function guideLineStyle(guide) {
|
|
430
|
-
return `left:${guide.leftPercent}%;top:${guide.topPx}px;height:${guide.heightPx}px;border-color:${guide.color};opacity:${guide.opacity};`;
|
|
431
|
-
}
|
|
432
|
-
function buildGuideLines(rows) {
|
|
433
|
-
return [];
|
|
434
|
-
}
|
|
435
|
-
function chooseTickStep(durationMs) {
|
|
436
|
-
const approx = durationMs / 7;
|
|
437
|
-
const magnitude = 10 ** Math.floor(Math.log10(Math.max(1, approx)));
|
|
438
|
-
const normalized = approx / magnitude;
|
|
439
|
-
if (normalized <= 1) return 1 * magnitude;
|
|
440
|
-
if (normalized <= 2) return 2 * magnitude;
|
|
441
|
-
if (normalized <= 5) return 5 * magnitude;
|
|
442
|
-
return 10 * magnitude;
|
|
443
|
-
}
|
|
444
|
-
function buildTicks(startMs, endMs, originMs) {
|
|
445
|
-
const durationMs = endMs - startMs;
|
|
446
|
-
if (!Number.isFinite(durationMs) || durationMs <= 0) return [];
|
|
447
|
-
const stepMs = chooseTickStep(durationMs);
|
|
448
|
-
const firstTick = Math.ceil((startMs - originMs) / stepMs) * stepMs + originMs;
|
|
449
|
-
const ticks = [];
|
|
450
|
-
for (let tick = firstTick; tick <= endMs; tick += stepMs) {
|
|
451
|
-
const leftPercent = (tick - startMs) / durationMs * 100;
|
|
452
|
-
ticks.push({
|
|
453
|
-
time: tick,
|
|
454
|
-
leftPercent,
|
|
455
|
-
label: formatRelativeTime(tick - originMs)
|
|
456
|
-
});
|
|
457
|
-
}
|
|
458
|
-
return ticks;
|
|
459
|
-
}
|
|
460
|
-
async function closePlaybackAudioContext() {
|
|
461
|
-
const context = playbackAudioContext;
|
|
462
|
-
playbackAudioContext = null;
|
|
463
|
-
if (!context) return;
|
|
464
|
-
await context.close().catch(() => {
|
|
465
|
-
});
|
|
466
|
-
}
|
|
467
|
-
function getPlaybackPositionMs() {
|
|
468
|
-
const durationMs = getRecordingDurationMs();
|
|
469
|
-
if (playbackPlaying && playbackAudioContext && playbackStartedAtMs != null && playbackStartedAtContextTime != null) {
|
|
470
|
-
const elapsedMs = (playbackAudioContext.currentTime - playbackStartedAtContextTime) * 1e3;
|
|
471
|
-
const currentMs = playbackStartedAtMs + Math.max(0, elapsedMs);
|
|
472
|
-
return durationMs > 0 ? clamp(currentMs, 0, durationMs) : Math.max(0, currentMs);
|
|
473
|
-
}
|
|
474
|
-
return durationMs > 0 ? clamp(playbackPositionMs, 0, durationMs) : Math.max(0, playbackPositionMs);
|
|
475
|
-
}
|
|
476
|
-
function stopPlayback(preservePosition = true) {
|
|
477
|
-
if (preservePosition) {
|
|
478
|
-
playbackPositionMs = getPlaybackPositionMs();
|
|
479
|
-
}
|
|
480
|
-
const source = playbackSourceNode;
|
|
481
|
-
playbackSourceNode = null;
|
|
482
|
-
playbackStartedAtMs = null;
|
|
483
|
-
playbackStartedAtContextTime = null;
|
|
484
|
-
playbackPlaying = false;
|
|
485
|
-
if (!source) return;
|
|
486
|
-
source.onended = null;
|
|
487
|
-
try {
|
|
488
|
-
source.stop();
|
|
489
|
-
} catch {
|
|
490
|
-
}
|
|
491
|
-
source.disconnect();
|
|
492
|
-
}
|
|
493
|
-
function getRecordingDurationMs() {
|
|
494
|
-
return 0;
|
|
495
|
-
}
|
|
496
|
-
async function togglePlayback() {
|
|
497
|
-
return;
|
|
498
|
-
}
|
|
499
|
-
function fitViewport(markDirty = true) {
|
|
500
|
-
const extent = contentExtent;
|
|
501
|
-
if (!extent) return;
|
|
502
|
-
const paddingMs = Math.max(500, (extent.max - extent.min) * 0.05);
|
|
503
|
-
viewportStartMs = extent.min - paddingMs;
|
|
504
|
-
viewportEndMs = extent.max + paddingMs;
|
|
505
|
-
}
|
|
506
|
-
function clampViewport(startMs, endMs) {
|
|
507
|
-
const extent = contentExtent;
|
|
508
|
-
if (!extent) return { startMs, endMs };
|
|
509
|
-
const durationMs = endMs - startMs;
|
|
510
|
-
if (durationMs <= 0) return { startMs, endMs };
|
|
511
|
-
const marginMs = Math.max(1e3, durationMs * 0.25);
|
|
512
|
-
const minAllowed = extent.min - marginMs;
|
|
513
|
-
const maxAllowed = extent.max + marginMs;
|
|
514
|
-
if (durationMs >= maxAllowed - minAllowed) {
|
|
515
|
-
return { startMs: minAllowed, endMs: maxAllowed };
|
|
516
|
-
}
|
|
517
|
-
if (startMs < minAllowed) {
|
|
518
|
-
endMs += minAllowed - startMs;
|
|
519
|
-
startMs = minAllowed;
|
|
520
|
-
}
|
|
521
|
-
if (endMs > maxAllowed) {
|
|
522
|
-
startMs -= endMs - maxAllowed;
|
|
523
|
-
endMs = maxAllowed;
|
|
524
|
-
}
|
|
525
|
-
return { startMs, endMs };
|
|
526
|
-
}
|
|
527
|
-
function setViewport(startMs, endMs) {
|
|
528
|
-
if (!Number.isFinite(startMs) || !Number.isFinite(endMs) || endMs <= startMs) return;
|
|
529
|
-
const next = clampViewport(startMs, endMs);
|
|
530
|
-
viewportStartMs = next.startMs;
|
|
531
|
-
viewportEndMs = next.endMs;
|
|
532
|
-
}
|
|
533
|
-
function zoomViewport(factor, focusRatio = 0.5) {
|
|
534
|
-
if (viewportStartMs == null || viewportEndMs == null) return;
|
|
535
|
-
const currentDuration = viewportEndMs - viewportStartMs;
|
|
536
|
-
if (!Number.isFinite(currentDuration) || currentDuration <= 0) return;
|
|
537
|
-
const extent = contentExtent;
|
|
538
|
-
const contentDuration = extent ? extent.max - extent.min : currentDuration;
|
|
539
|
-
const minDuration = Math.min(100, currentDuration);
|
|
540
|
-
const maxDuration = Math.max(contentDuration + Math.max(2e3, contentDuration * 0.1), 5e3);
|
|
541
|
-
const nextDuration = clamp(currentDuration * factor, minDuration, maxDuration);
|
|
542
|
-
const nextFocusRatio = clamp(focusRatio, 0, 1);
|
|
543
|
-
const focusMs = viewportStartMs + currentDuration * nextFocusRatio;
|
|
544
|
-
const nextStartMs = focusMs - nextDuration * nextFocusRatio;
|
|
545
|
-
setViewport(nextStartMs, nextStartMs + nextDuration);
|
|
546
|
-
}
|
|
547
|
-
async function resetAlignment() {
|
|
548
|
-
return;
|
|
549
|
-
}
|
|
550
|
-
$$renderer2.push(`<div class="flex h-full min-h-0 flex-col bg-rc-gray-700"><div class="flex-none border-b border-rc-gray-300/40 p-4"><div class="flex flex-wrap items-start justify-between gap-3"><div><h2 class="text-lg font-semibold text-rc-gray-100">Latency `);
|
|
551
|
-
if (conversationId) {
|
|
552
|
-
$$renderer2.push("<!--[-->");
|
|
553
|
-
$$renderer2.push(`<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200">${escape_html(conversationId)}</span>`);
|
|
554
|
-
} else {
|
|
555
|
-
$$renderer2.push("<!--[!-->");
|
|
556
|
-
}
|
|
557
|
-
$$renderer2.push(`<!--]--></h2> <div class="mt-2 flex flex-wrap gap-x-5 gap-y-1 text-xs text-rc-gray-300"><div><span class="text-rc-gray-400">Latency traces:</span> <span class="font-mono text-rc-gray-100">${escape_html(callSegments.length)}</span></div> <div><span class="text-rc-gray-400">Traces with metrics:</span> <span class="font-mono text-rc-gray-100">${escape_html(latencyTraceCount)}</span></div> <div><span class="text-rc-gray-400">Recording offset:</span> <span class="font-mono text-rc-gray-100">${escape_html(fmtSignedMs(recording.alignmentOffsetMs))}</span></div> `);
|
|
558
|
-
{
|
|
559
|
-
$$renderer2.push("<!--[!-->");
|
|
560
|
-
}
|
|
561
|
-
$$renderer2.push(`<!--]--> `);
|
|
562
|
-
if (viewportStartMs != null && viewportEndMs != null) {
|
|
563
|
-
$$renderer2.push("<!--[-->");
|
|
564
|
-
$$renderer2.push(`<div><span class="text-rc-gray-400">Viewport:</span> <span class="font-mono text-rc-gray-100">${escape_html(formatRelativeTime(viewportStartMs - timelineOriginMs))} → ${escape_html(formatRelativeTime(viewportEndMs - timelineOriginMs))}</span></div>`);
|
|
565
|
-
} else {
|
|
566
|
-
$$renderer2.push("<!--[!-->");
|
|
567
|
-
}
|
|
568
|
-
$$renderer2.push(`<!--]--></div></div> <div class="flex flex-wrap items-center gap-2"><input type="file" accept=".wav,audio/wav,audio/x-wav" class="hidden"/> `);
|
|
569
|
-
Button($$renderer2, {
|
|
570
|
-
variant: "secondary",
|
|
571
|
-
size: "small",
|
|
572
|
-
disabled: uploadInFlight,
|
|
573
|
-
onclick: () => fileInputEl?.click(),
|
|
574
|
-
children: ($$renderer3) => {
|
|
575
|
-
$$renderer3.push(`<!---->${escape_html("Upload WAV")}`);
|
|
576
|
-
},
|
|
577
|
-
$$slots: { default: true }
|
|
578
|
-
});
|
|
579
|
-
$$renderer2.push(`<!----> `);
|
|
580
|
-
Button($$renderer2, {
|
|
581
|
-
variant: "secondary",
|
|
582
|
-
size: "small",
|
|
583
|
-
disabled: true,
|
|
584
|
-
onclick: () => void togglePlayback(),
|
|
585
|
-
children: ($$renderer3) => {
|
|
586
|
-
$$renderer3.push(`<!---->${escape_html(playbackPlaying ? "Pause" : "Play")}`);
|
|
587
|
-
},
|
|
588
|
-
$$slots: { default: true }
|
|
589
|
-
});
|
|
590
|
-
$$renderer2.push(`<!----> `);
|
|
591
|
-
Button($$renderer2, {
|
|
592
|
-
variant: "secondary",
|
|
593
|
-
size: "small",
|
|
594
|
-
disabled: viewportDurationMs == null,
|
|
595
|
-
onclick: () => zoomViewport(0.8),
|
|
596
|
-
children: ($$renderer3) => {
|
|
597
|
-
$$renderer3.push(`<!---->Zoom in`);
|
|
598
|
-
},
|
|
599
|
-
$$slots: { default: true }
|
|
600
|
-
});
|
|
601
|
-
$$renderer2.push(`<!----> `);
|
|
602
|
-
Button($$renderer2, {
|
|
603
|
-
variant: "secondary",
|
|
604
|
-
size: "small",
|
|
605
|
-
disabled: viewportDurationMs == null,
|
|
606
|
-
onclick: () => zoomViewport(1.25),
|
|
607
|
-
children: ($$renderer3) => {
|
|
608
|
-
$$renderer3.push(`<!---->Zoom out`);
|
|
609
|
-
},
|
|
610
|
-
$$slots: { default: true }
|
|
611
|
-
});
|
|
612
|
-
$$renderer2.push(`<!----> `);
|
|
613
|
-
Button($$renderer2, {
|
|
614
|
-
variant: "secondary",
|
|
615
|
-
size: "small",
|
|
616
|
-
disabled: !contentExtent,
|
|
617
|
-
onclick: () => fitViewport(true),
|
|
618
|
-
children: ($$renderer3) => {
|
|
619
|
-
$$renderer3.push(`<!---->Fit call`);
|
|
620
|
-
},
|
|
621
|
-
$$slots: { default: true }
|
|
622
|
-
});
|
|
623
|
-
$$renderer2.push(`<!----> `);
|
|
624
|
-
Button($$renderer2, {
|
|
625
|
-
variant: "secondary",
|
|
626
|
-
size: "small",
|
|
627
|
-
disabled: true,
|
|
628
|
-
onclick: resetAlignment,
|
|
629
|
-
children: ($$renderer3) => {
|
|
630
|
-
$$renderer3.push(`<!---->Reset alignment`);
|
|
631
|
-
},
|
|
632
|
-
$$slots: { default: true }
|
|
633
|
-
});
|
|
634
|
-
$$renderer2.push(`<!----></div></div> `);
|
|
635
|
-
{
|
|
636
|
-
$$renderer2.push("<!--[!-->");
|
|
637
|
-
}
|
|
638
|
-
$$renderer2.push(`<!--]--> `);
|
|
639
|
-
{
|
|
640
|
-
$$renderer2.push("<!--[!-->");
|
|
641
|
-
}
|
|
642
|
-
$$renderer2.push(`<!--]--> `);
|
|
643
|
-
{
|
|
644
|
-
$$renderer2.push("<!--[!-->");
|
|
645
|
-
}
|
|
646
|
-
$$renderer2.push(`<!--]--> `);
|
|
647
|
-
{
|
|
648
|
-
$$renderer2.push("<!--[!-->");
|
|
649
|
-
}
|
|
650
|
-
$$renderer2.push(`<!--]--> `);
|
|
651
|
-
{
|
|
652
|
-
$$renderer2.push("<!--[!-->");
|
|
653
|
-
}
|
|
654
|
-
$$renderer2.push(`<!--]--></div> <div class="rc-scroll min-h-0 flex-1 overflow-auto p-4"><div class="flex flex-col gap-4"><div class="rounded-md border border-rc-gray-650 bg-rc-gray-900/60 p-3"><div class="flex flex-wrap items-start justify-between gap-3"><div><div class="text-sm font-semibold text-rc-gray-100">Recording</div> `);
|
|
655
|
-
{
|
|
656
|
-
$$renderer2.push("<!--[!-->");
|
|
657
|
-
$$renderer2.push(`<div class="mt-1 text-sm text-rc-gray-300">Upload a WAV recording to overlay the call waveform and persist it under this
|
|
658
|
-
project's \`data/\` folder.</div>`);
|
|
659
|
-
}
|
|
660
|
-
$$renderer2.push(`<!--]--></div> <div class="text-xs text-rc-gray-300"><div>Drag the latency chart to pan the viewport.</div> <div>Scroll anywhere in the timeline to zoom traces and waveform together.</div> <div>Click the waveform to move the playhead.</div> <div>Press Space to play or pause.</div> <div>Drag the waveform itself to align the audio against the traces.</div> `);
|
|
661
|
-
{
|
|
662
|
-
$$renderer2.push("<!--[!-->");
|
|
663
|
-
}
|
|
664
|
-
$$renderer2.push(`<!--]--></div></div></div> <div class="rounded-md border border-rc-gray-650 bg-rc-gray-900/60 p-3"><div class="mb-3 flex items-center justify-between gap-3"><div class="text-sm font-semibold text-rc-gray-100">Call timeline</div> <div class="text-xs text-rc-gray-400">Shared x-axis for traces and waveform</div></div> `);
|
|
665
|
-
{
|
|
666
|
-
$$renderer2.push("<!--[!-->");
|
|
667
|
-
if (!callSegments.length) {
|
|
668
|
-
$$renderer2.push("<!--[-->");
|
|
669
|
-
$$renderer2.push(`<div class="text-sm text-rc-gray-300">No latency metrics were found on this call.</div>`);
|
|
670
|
-
} else {
|
|
671
|
-
$$renderer2.push("<!--[!-->");
|
|
672
|
-
if (viewportStartMs == null || viewportEndMs == null) {
|
|
673
|
-
$$renderer2.push("<!--[-->");
|
|
674
|
-
$$renderer2.push(`<div class="text-sm text-rc-gray-300">Preparing timeline…</div>`);
|
|
675
|
-
} else {
|
|
676
|
-
$$renderer2.push("<!--[!-->");
|
|
677
|
-
$$renderer2.push(`<div class="grid grid-cols-[140px_minmax(0,1fr)] gap-x-3"><div class="flex flex-col"><div class="h-8"></div> <!--[-->`);
|
|
678
|
-
const each_array = ensure_array_like(timelineRows);
|
|
679
|
-
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
680
|
-
let row = each_array[$$index];
|
|
681
|
-
$$renderer2.push(`<div class="flex h-10 items-center text-xs text-rc-gray-300">${escape_html(row.label)}</div>`);
|
|
682
|
-
}
|
|
683
|
-
$$renderer2.push(`<!--]--> <div class="flex h-40 items-center text-xs text-rc-gray-300">Waveform</div> <div class="flex h-8 items-center text-xs text-rc-gray-300">Scale</div></div> <div class="relative"><div class="pointer-events-none absolute inset-0 z-10 overflow-hidden"><!--[-->`);
|
|
684
|
-
const each_array_1 = ensure_array_like(guideLines);
|
|
685
|
-
for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
|
|
686
|
-
let guide = each_array_1[$$index_1];
|
|
687
|
-
$$renderer2.push(`<div class="absolute -translate-x-1/2 border-l border-dashed"${attr_style(guideLineStyle(guide))}></div>`);
|
|
688
|
-
}
|
|
689
|
-
$$renderer2.push(`<!--]--> `);
|
|
690
|
-
if (playbackCursor) {
|
|
691
|
-
$$renderer2.push("<!--[-->");
|
|
692
|
-
$$renderer2.push(`<div class="absolute top-0 -translate-x-1/2 border-l-2 border-rc-green-200/90"${attr_style(`left:${playbackCursor.leftPercent}%;height:${playbackCursor.heightPx}px;`)}></div> <div class="absolute top-1 h-2 w-2 -translate-x-1/2 rounded-full bg-rc-green-200"${attr_style(`left:${playbackCursor.leftPercent}%;`)}></div>`);
|
|
693
|
-
} else {
|
|
694
|
-
$$renderer2.push("<!--[!-->");
|
|
695
|
-
}
|
|
696
|
-
$$renderer2.push(`<!--]--></div> <div class="relative z-0 h-8 overflow-hidden rounded-t border border-b-0 border-rc-gray-700/60 bg-rc-gray-800/30"><!--[-->`);
|
|
697
|
-
const each_array_2 = ensure_array_like(visibleTicks);
|
|
698
|
-
for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
|
|
699
|
-
let tick = each_array_2[$$index_2];
|
|
700
|
-
$$renderer2.push(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/70"${attr_style(`left:${tick.leftPercent}%;`)}></div> <div class="absolute bottom-1 -translate-x-1/2 whitespace-nowrap text-[11px] text-rc-gray-400"${attr_style(`left:${tick.leftPercent}%;`)}>${escape_html(tick.label)}</div>`);
|
|
701
|
-
}
|
|
702
|
-
$$renderer2.push(`<!--]--></div> <!--[-->`);
|
|
703
|
-
const each_array_3 = ensure_array_like(timelineRows);
|
|
704
|
-
for (let $$index_5 = 0, $$length = each_array_3.length; $$index_5 < $$length; $$index_5++) {
|
|
705
|
-
let row = each_array_3[$$index_5];
|
|
706
|
-
$$renderer2.push(`<div class="relative z-0 h-10 overflow-hidden border-x border-t border-rc-gray-700/60 bg-rc-gray-800/20"><!--[-->`);
|
|
707
|
-
const each_array_4 = ensure_array_like(visibleTicks);
|
|
708
|
-
for (let $$index_3 = 0, $$length2 = each_array_4.length; $$index_3 < $$length2; $$index_3++) {
|
|
709
|
-
let tick = each_array_4[$$index_3];
|
|
710
|
-
$$renderer2.push(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"${attr_style(`left:${tick.leftPercent}%;`)}></div>`);
|
|
711
|
-
}
|
|
712
|
-
$$renderer2.push(`<!--]--> <!--[-->`);
|
|
713
|
-
const each_array_5 = ensure_array_like(row.segments);
|
|
714
|
-
for (let $$index_4 = 0, $$length2 = each_array_5.length; $$index_4 < $$length2; $$index_4++) {
|
|
715
|
-
let segment = each_array_5[$$index_4];
|
|
716
|
-
const style = segmentStyle(segment);
|
|
717
|
-
if (style) {
|
|
718
|
-
$$renderer2.push("<!--[-->");
|
|
719
|
-
$$renderer2.push(`<div class="absolute top-1/2 h-5 -translate-y-1/2 rounded border shadow-[0_0_0_1px_rgba(0,0,0,0.12)]"${attr_style(style)}></div>`);
|
|
720
|
-
} else {
|
|
721
|
-
$$renderer2.push("<!--[!-->");
|
|
722
|
-
}
|
|
723
|
-
$$renderer2.push(`<!--]-->`);
|
|
724
|
-
}
|
|
725
|
-
$$renderer2.push(`<!--]--></div>`);
|
|
726
|
-
}
|
|
727
|
-
$$renderer2.push(`<!--]--> <div class="relative z-0 h-40 overflow-hidden border-x border-t border-rc-gray-700/60 bg-rc-gray-800/30">`);
|
|
728
|
-
{
|
|
729
|
-
$$renderer2.push("<!--[-->");
|
|
730
|
-
$$renderer2.push(`<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Upload a WAV file to render the call waveform here.</div>`);
|
|
731
|
-
}
|
|
732
|
-
$$renderer2.push(`<!--]--> <!--[-->`);
|
|
733
|
-
const each_array_6 = ensure_array_like(visibleTicks);
|
|
734
|
-
for (let $$index_6 = 0, $$length = each_array_6.length; $$index_6 < $$length; $$index_6++) {
|
|
735
|
-
let tick = each_array_6[$$index_6];
|
|
736
|
-
$$renderer2.push(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"${attr_style(`left:${tick.leftPercent}%;`)}></div>`);
|
|
737
|
-
}
|
|
738
|
-
$$renderer2.push(`<!--]--> `);
|
|
739
|
-
{
|
|
740
|
-
$$renderer2.push("<!--[!-->");
|
|
741
|
-
}
|
|
742
|
-
$$renderer2.push(`<!--]--></div> <div class="relative z-0 h-8 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60 bg-rc-gray-800/25"><div class="absolute left-3 top-1/2 -translate-y-1/2 rounded bg-rc-gray-900/80 px-2 py-0.5 text-[11px] text-rc-gray-300">Grid: ${escape_html(formatScaleStep(visibleTickStepMs))}</div> <!--[-->`);
|
|
743
|
-
const each_array_7 = ensure_array_like(visibleTicks);
|
|
744
|
-
for (let $$index_7 = 0, $$length = each_array_7.length; $$index_7 < $$length; $$index_7++) {
|
|
745
|
-
let tick = each_array_7[$$index_7];
|
|
746
|
-
$$renderer2.push(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"${attr_style(`left:${tick.leftPercent}%;`)}></div> <div class="absolute bottom-1 -translate-x-1/2 whitespace-nowrap text-[11px] text-rc-gray-400"${attr_style(`left:${tick.leftPercent}%;`)}>${escape_html(tick.label)}</div>`);
|
|
747
|
-
}
|
|
748
|
-
$$renderer2.push(`<!--]--></div></div></div>`);
|
|
749
|
-
}
|
|
750
|
-
$$renderer2.push(`<!--]-->`);
|
|
751
|
-
}
|
|
752
|
-
$$renderer2.push(`<!--]-->`);
|
|
753
|
-
}
|
|
754
|
-
$$renderer2.push(`<!--]--></div></div></div></div> `);
|
|
755
|
-
{
|
|
756
|
-
$$renderer2.push("<!--[!-->");
|
|
757
|
-
}
|
|
758
|
-
$$renderer2.push(`<!--]-->`);
|
|
759
|
-
});
|
|
760
|
-
}
|
|
761
|
-
|
|
762
|
-
export { _page as default };
|
|
763
|
-
//# sourceMappingURL=_page.svelte-VFizsKQC.js.map
|