@recombine-ai/bosun 0.16.2 → 0.17.1
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 +24 -0
- package/bin/bosun.js +153 -20
- package/bin/git-mode.js +1139 -0
- package/build/client/_app/immutable/assets/0.D9HpHezk.css +1 -0
- package/build/client/_app/immutable/assets/0.D9HpHezk.css.br +0 -0
- package/build/client/_app/immutable/assets/0.D9HpHezk.css.gz +0 -0
- package/build/client/_app/immutable/assets/{2.DtxQDOXx.css → 2.Bc0Sf3YD.css} +1 -1
- package/build/client/_app/immutable/assets/2.Bc0Sf3YD.css.br +0 -0
- package/build/client/_app/immutable/assets/2.Bc0Sf3YD.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{DneQQ7D5.js → -3ZOIHDA.js} +1 -1
- package/build/client/_app/immutable/chunks/-3ZOIHDA.js.br +0 -0
- package/build/client/_app/immutable/chunks/-3ZOIHDA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/7hV1SZxK.js +1 -0
- package/build/client/_app/immutable/chunks/7hV1SZxK.js.br +2 -0
- package/build/client/_app/immutable/chunks/7hV1SZxK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B-dTD_wm.js +1 -0
- package/build/client/_app/immutable/chunks/B-dTD_wm.js.br +0 -0
- package/build/client/_app/immutable/chunks/B-dTD_wm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{UqjCSZmA.js → B-iasAJv.js} +1 -1
- package/build/client/_app/immutable/chunks/B-iasAJv.js.br +0 -0
- package/build/client/_app/immutable/chunks/B-iasAJv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BDijIo6D.js +33 -0
- package/build/client/_app/immutable/chunks/BDijIo6D.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDijIo6D.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BHB0Pj1h.js +2 -0
- package/build/client/_app/immutable/chunks/BHB0Pj1h.js.br +0 -0
- package/build/client/_app/immutable/chunks/BHB0Pj1h.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bog028VR.js → BKfmN1Rj.js} +1 -1
- package/build/client/_app/immutable/chunks/BKfmN1Rj.js.br +0 -0
- package/build/client/_app/immutable/chunks/BKfmN1Rj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{pPpIn6tB.js → BlFOg-Sd.js} +1 -1
- package/build/client/_app/immutable/chunks/BlFOg-Sd.js.br +0 -0
- package/build/client/_app/immutable/chunks/BlFOg-Sd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CJcZ2GVC.js → Byg3jr1u.js} +1 -1
- package/build/client/_app/immutable/chunks/Byg3jr1u.js.br +0 -0
- package/build/client/_app/immutable/chunks/Byg3jr1u.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bmd5zhWC.js → BzxxLgHi.js} +1 -1
- package/build/client/_app/immutable/chunks/BzxxLgHi.js.br +0 -0
- package/build/client/_app/immutable/chunks/BzxxLgHi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CEHsomMo.js → C4UC6AgE.js} +1 -1
- package/build/client/_app/immutable/chunks/C4UC6AgE.js.br +0 -0
- package/build/client/_app/immutable/chunks/{CEHsomMo.js.gz → C4UC6AgE.js.gz} +0 -0
- package/build/client/_app/immutable/chunks/C60AG6QQ.js +1 -0
- package/build/client/_app/immutable/chunks/C60AG6QQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/C60AG6QQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CAIfVN23.js +1 -0
- package/build/client/_app/immutable/chunks/CAIfVN23.js.br +0 -0
- package/build/client/_app/immutable/chunks/CAIfVN23.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{JcG4w2gF.js → CB9iDxwI.js} +1 -1
- package/build/client/_app/immutable/chunks/CB9iDxwI.js.br +0 -0
- package/build/client/_app/immutable/chunks/CB9iDxwI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DoD3q5w5.js → CD_KdWs9.js} +1 -1
- package/build/client/_app/immutable/chunks/CD_KdWs9.js.br +0 -0
- package/build/client/_app/immutable/chunks/CD_KdWs9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDy1LBR5.js +1 -0
- package/build/client/_app/immutable/chunks/CDy1LBR5.js.br +0 -0
- package/build/client/_app/immutable/chunks/CDy1LBR5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DCXjBDmY.js → CMFNmSvo.js} +1 -1
- package/build/client/_app/immutable/chunks/CMFNmSvo.js.br +0 -0
- package/build/client/_app/immutable/chunks/CMFNmSvo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bv1mNXs0.js → CNIn4L55.js} +1 -1
- package/build/client/_app/immutable/chunks/CNIn4L55.js.br +0 -0
- package/build/client/_app/immutable/chunks/CNIn4L55.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CUKoVL36.js +1 -0
- package/build/client/_app/immutable/chunks/CUKoVL36.js.br +0 -0
- package/build/client/_app/immutable/chunks/CUKoVL36.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CYGbCr1i.js +3 -0
- package/build/client/_app/immutable/chunks/CYGbCr1i.js.br +0 -0
- package/build/client/_app/immutable/chunks/CYGbCr1i.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CYr0FGgn.js +1 -0
- package/build/client/_app/immutable/chunks/CYr0FGgn.js.br +0 -0
- package/build/client/_app/immutable/chunks/CYr0FGgn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DtXXy94i.js → Ce6a22qU.js} +1 -1
- package/build/client/_app/immutable/chunks/Ce6a22qU.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ce6a22qU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DfcDjAv-.js → CeoQ-OhK.js} +1 -1
- package/build/client/_app/immutable/chunks/CeoQ-OhK.js.br +0 -0
- package/build/client/_app/immutable/chunks/CeoQ-OhK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D8mA-uZ4.js → CupXtwVS.js} +1 -1
- package/build/client/_app/immutable/chunks/CupXtwVS.js.br +0 -0
- package/build/client/_app/immutable/chunks/CupXtwVS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B5zf3x62.js → Cy2Uze-c.js} +1 -1
- package/build/client/_app/immutable/chunks/Cy2Uze-c.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cy2Uze-c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dg0A8wPA.js → D8Lmn3S5.js} +1 -1
- package/build/client/_app/immutable/chunks/D8Lmn3S5.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8Lmn3S5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8doM1Y6.js +1 -0
- package/build/client/_app/immutable/chunks/D8doM1Y6.js.br +2 -0
- package/build/client/_app/immutable/chunks/D8doM1Y6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BHHfrjbV.js → D9BWOD7V.js} +1 -1
- package/build/client/_app/immutable/chunks/D9BWOD7V.js.br +3 -0
- package/build/client/_app/immutable/chunks/D9BWOD7V.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Cp_st-64.js → DBB88ZB7.js} +1 -1
- package/build/client/_app/immutable/chunks/DBB88ZB7.js.br +2 -0
- package/build/client/_app/immutable/chunks/DBB88ZB7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dm49pcMm.js → DC7lPrn4.js} +1 -1
- package/build/client/_app/immutable/chunks/DC7lPrn4.js.br +0 -0
- package/build/client/_app/immutable/chunks/DC7lPrn4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DCwWNTpf.js +9 -0
- package/build/client/_app/immutable/chunks/DCwWNTpf.js.br +0 -0
- package/build/client/_app/immutable/chunks/DCwWNTpf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{wcTQUnZO.js → DEnUeQNt.js} +1 -1
- package/build/client/_app/immutable/chunks/DEnUeQNt.js.br +0 -0
- package/build/client/_app/immutable/chunks/DEnUeQNt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D_laxq3h.js +1 -0
- package/build/client/_app/immutable/chunks/D_laxq3h.js.br +0 -0
- package/build/client/_app/immutable/chunks/D_laxq3h.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Ddv5LgEc.js → DfkYlKBk.js} +1 -1
- package/build/client/_app/immutable/chunks/DfkYlKBk.js.br +0 -0
- package/build/client/_app/immutable/chunks/DfkYlKBk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DnMS2X6M.js +2 -0
- package/build/client/_app/immutable/chunks/DnMS2X6M.js.br +0 -0
- package/build/client/_app/immutable/chunks/DnMS2X6M.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B1HdnQRQ.js → DrE1ro9S.js} +1 -1
- package/build/client/_app/immutable/chunks/DrE1ro9S.js.br +0 -0
- package/build/client/_app/immutable/chunks/DrE1ro9S.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DzY_RPb9.js +1 -0
- package/build/client/_app/immutable/chunks/DzY_RPb9.js.br +0 -0
- package/build/client/_app/immutable/chunks/DzY_RPb9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/PrCSpCPg.js +1 -0
- package/build/client/_app/immutable/chunks/PrCSpCPg.js.br +0 -0
- package/build/client/_app/immutable/chunks/PrCSpCPg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CN555stc.js → eMofpOrR.js} +1 -1
- package/build/client/_app/immutable/chunks/eMofpOrR.js.br +0 -0
- package/build/client/_app/immutable/chunks/eMofpOrR.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BQUuHkSR.js +2 -0
- package/build/client/_app/immutable/entry/app.BQUuHkSR.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BQUuHkSR.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DoeTycdu.js +1 -0
- package/build/client/_app/immutable/entry/start.DoeTycdu.js.br +2 -0
- package/build/client/_app/immutable/entry/start.DoeTycdu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DBnFpwRM.js +4 -0
- package/build/client/_app/immutable/nodes/0.DBnFpwRM.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DBnFpwRM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.D-kI-fLd.js +1 -0
- package/build/client/_app/immutable/nodes/1.D-kI-fLd.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.D-kI-fLd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.DWb5H7vX.js +28 -0
- package/build/client/_app/immutable/nodes/10.DWb5H7vX.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.DWb5H7vX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{15.D2I0y3ys.js → 15.CGc3_07c.js} +1 -1
- package/build/client/_app/immutable/nodes/15.CGc3_07c.js.br +3 -0
- package/build/client/_app/immutable/nodes/15.CGc3_07c.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.BIba62hW.js +3 -0
- package/build/client/_app/immutable/nodes/17.BIba62hW.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.BIba62hW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.Clxr6FwI.js +11 -0
- package/build/client/_app/immutable/nodes/18.Clxr6FwI.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.Clxr6FwI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.cbpnR8be.js +35 -0
- package/build/client/_app/immutable/nodes/2.cbpnR8be.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.cbpnR8be.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DsP759xk.js +1 -0
- package/build/client/_app/immutable/nodes/3.DsP759xk.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DsP759xk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.C8VxVbVn.js → 4.BIGLAIDe.js} +1 -1
- package/build/client/_app/immutable/nodes/4.BIGLAIDe.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.BIGLAIDe.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.BjrnKYaA.js → 5.zMHOyhDv.js} +1 -1
- package/build/client/_app/immutable/nodes/5.zMHOyhDv.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.zMHOyhDv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DFQ1IZsQ.js +1 -0
- package/build/client/_app/immutable/nodes/6.DFQ1IZsQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DFQ1IZsQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CTgEdr7L.js +2 -0
- package/build/client/_app/immutable/nodes/8.CTgEdr7L.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CTgEdr7L.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BidF5Uvq.js +2 -0
- package/build/client/_app/immutable/nodes/9.BidF5Uvq.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BidF5Uvq.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/0-BZOFUIfF.js +9 -0
- package/build/server/chunks/0-BZOFUIfF.js.map +1 -0
- package/build/server/chunks/1-XwGU5VVN.js +9 -0
- package/build/server/chunks/{1-C0HdTvXW.js.map → 1-XwGU5VVN.js.map} +1 -1
- package/build/server/chunks/10-BgFSx4ib.js +9 -0
- package/build/server/chunks/10-BgFSx4ib.js.map +1 -0
- package/build/server/chunks/15-BjTTC1jf.js +9 -0
- package/build/server/chunks/{15-BQcb9C_y.js.map → 15-BjTTC1jf.js.map} +1 -1
- package/build/server/chunks/17-BEkWCfzc.js +9 -0
- package/build/server/chunks/17-BEkWCfzc.js.map +1 -0
- package/build/server/chunks/18-C-S0wKdp.js +9 -0
- package/build/server/chunks/18-C-S0wKdp.js.map +1 -0
- package/build/server/chunks/2-o-cIkIjs.js +9 -0
- package/build/server/chunks/2-o-cIkIjs.js.map +1 -0
- package/build/server/chunks/3-B-ABlyFO.js +9 -0
- package/build/server/chunks/3-B-ABlyFO.js.map +1 -0
- package/build/server/chunks/4-joAFA_Y8.js +9 -0
- package/build/server/chunks/4-joAFA_Y8.js.map +1 -0
- package/build/server/chunks/5-DIhC9k4l.js +9 -0
- package/build/server/chunks/5-DIhC9k4l.js.map +1 -0
- package/build/server/chunks/6-CMuAQIcW.js +9 -0
- package/build/server/chunks/6-CMuAQIcW.js.map +1 -0
- package/build/server/chunks/8-CbETTVRG.js +9 -0
- package/build/server/chunks/8-CbETTVRG.js.map +1 -0
- package/build/server/chunks/9-nMV90uVU.js +9 -0
- package/build/server/chunks/9-nMV90uVU.js.map +1 -0
- package/build/server/chunks/{AgentSidebar-BWBnqHnV.js → AgentSidebar-BEbSdZdN.js} +4 -4
- package/build/server/chunks/{AgentSidebar-BWBnqHnV.js.map → AgentSidebar-BEbSdZdN.js.map} +1 -1
- package/build/server/chunks/{Button-DH7gdU0s.js → Button-Dc9CR4Wh.js} +2 -2
- package/build/server/chunks/{Button-DH7gdU0s.js.map → Button-Dc9CR4Wh.js.map} +1 -1
- package/build/server/chunks/{ChatStepTrace-BivoNYOY.js → ChatStepTrace-OM96X4g8.js} +18 -7
- package/build/server/chunks/ChatStepTrace-OM96X4g8.js.map +1 -0
- package/build/server/chunks/{Dropdown-DnARl86Q.js → Dropdown-Cgd7pG-k.js} +2 -2
- package/build/server/chunks/{Dropdown-DnARl86Q.js.map → Dropdown-Cgd7pG-k.js.map} +1 -1
- package/build/server/chunks/GitControlsButton-BLcNzrDt.js +81 -0
- package/build/server/chunks/GitControlsButton-BLcNzrDt.js.map +1 -0
- package/build/server/chunks/{Icon-DP1YKCRV.js → Icon-Bogvl2n9.js} +2 -2
- package/build/server/chunks/{Icon-DP1YKCRV.js.map → Icon-Bogvl2n9.js.map} +1 -1
- package/build/server/chunks/{Input-CUJ9Cg7b.js → Input-7hpw1WLW.js} +2 -2
- package/build/server/chunks/{Input-CUJ9Cg7b.js.map → Input-7hpw1WLW.js.map} +1 -1
- package/build/server/chunks/{Modal-CGJuNpZ0.js → Modal-7IIIfFEG.js} +5 -5
- package/build/server/chunks/{Modal-CGJuNpZ0.js.map → Modal-7IIIfFEG.js.map} +1 -1
- package/build/server/chunks/{Panel-zvjxe036.js → Panel-Cj1mXx9-.js} +2 -2
- package/build/server/chunks/{Panel-zvjxe036.js.map → Panel-Cj1mXx9-.js.map} +1 -1
- package/build/server/chunks/{Tab-CUkyLqbN.js → Tab-bf4ZDs5y.js} +4 -4
- package/build/server/chunks/{Tab-CUkyLqbN.js.map → Tab-bf4ZDs5y.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-BnrWYuLv.js → _layout.svelte-C71luIwv.js} +10 -10
- package/build/server/chunks/{_layout.svelte-BnrWYuLv.js.map → _layout.svelte-C71luIwv.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-wi6o5Ecu.js → _layout.svelte-CFhHgXI_.js} +24 -18
- package/build/server/chunks/_layout.svelte-CFhHgXI_.js.map +1 -0
- package/build/server/chunks/_layout.svelte-CJd_pmkx.js +431 -0
- package/build/server/chunks/_layout.svelte-CJd_pmkx.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-B88WMyk0.js → _layout.svelte-D6rhwm98.js} +445 -70
- package/build/server/chunks/_layout.svelte-D6rhwm98.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CeS_21Ho.js → _page.svelte-BBvDMiTV.js} +25 -21
- package/build/server/chunks/_page.svelte-BBvDMiTV.js.map +1 -0
- package/build/server/chunks/{_page.svelte-h_J4lNT9.js → _page.svelte-BQs9dEuq.js} +8 -7
- package/build/server/chunks/{_page.svelte-h_J4lNT9.js.map → _page.svelte-BQs9dEuq.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DhFNFMnl.js → _page.svelte-BoO2LWVX.js} +34 -14
- package/build/server/chunks/_page.svelte-BoO2LWVX.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CHgQjBQj.js → _page.svelte-DUCTSdv-.js} +2 -2
- package/build/server/chunks/{_page.svelte-CHgQjBQj.js.map → _page.svelte-DUCTSdv-.js.map} +1 -1
- package/build/server/chunks/_page.svelte-FXYLKyMw.js +110 -0
- package/build/server/chunks/_page.svelte-FXYLKyMw.js.map +1 -0
- package/build/server/chunks/{_page.svelte-57pyhszV.js → _page.svelte-KA1hqKj2.js} +20 -107
- package/build/server/chunks/_page.svelte-KA1hqKj2.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BSVJ2d2G.js → _page.svelte-y8CZFL8a.js} +210 -106
- package/build/server/chunks/_page.svelte-y8CZFL8a.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DHSYVLoj.js → _page.svelte-yIHSIEW6.js} +21 -15
- package/build/server/chunks/_page.svelte-yIHSIEW6.js.map +1 -0
- package/build/server/chunks/_server.ts-Cp9DgLcE.js +336 -0
- package/build/server/chunks/_server.ts-Cp9DgLcE.js.map +1 -0
- package/build/server/chunks/{agents-context-CbFsZmi5.js → agents-context-owgusUPR.js} +2 -2
- package/build/server/chunks/{agents-context-CbFsZmi5.js.map → agents-context-owgusUPR.js.map} +1 -1
- package/build/server/chunks/{client-DO-hqMbT.js → client-P-7bDULt.js} +4 -4
- package/build/server/chunks/{client-DO-hqMbT.js.map → client-P-7bDULt.js.map} +1 -1
- package/build/server/chunks/{conversation-view-memory-CtbUZd_L.js → conversation-view-memory-SdpdqTR7.js} +2 -2
- package/build/server/chunks/{conversation-view-memory-CtbUZd_L.js.map → conversation-view-memory-SdpdqTR7.js.map} +1 -1
- package/build/server/chunks/{edit-workspace-context-tyHBPujC.js → edit-workspace-context-hanFnXR3.js} +2 -2
- package/build/server/chunks/{edit-workspace-context-tyHBPujC.js.map → edit-workspace-context-hanFnXR3.js.map} +1 -1
- package/build/server/chunks/error.svelte-yI9RS6H4.js +15 -0
- package/build/server/chunks/{error.svelte-DmKKN1RU.js.map → error.svelte-yI9RS6H4.js.map} +1 -1
- package/build/server/chunks/git-mode-context-BpNsAUGF.js +18 -0
- package/build/server/chunks/git-mode-context-BpNsAUGF.js.map +1 -0
- package/build/server/chunks/{index-LMsd1ih2.js → index-DGtbUu8Y.js} +2 -2
- package/build/server/chunks/{index-LMsd1ih2.js.map → index-DGtbUu8Y.js.map} +1 -1
- package/build/server/chunks/{index-server-BRr5mZEq.js → index-server-l8-WsVn4.js} +2 -2
- package/build/server/chunks/{index-server-BRr5mZEq.js.map → index-server-l8-WsVn4.js.map} +1 -1
- package/build/server/chunks/{index2-ClgfzZ89.js → index2-CtgLiJVO.js} +3 -3
- package/build/server/chunks/{index2-ClgfzZ89.js.map → index2-CtgLiJVO.js.map} +1 -1
- package/build/server/chunks/{index3-BdRUAffj.js → index3-4hbbCqW0.js} +2 -2
- package/build/server/chunks/{index3-BdRUAffj.js.map → index3-4hbbCqW0.js.map} +1 -1
- package/build/server/chunks/{root-4q2Pr7ck.js → root-sWPnlpi3.js} +2 -2
- package/build/server/chunks/{root-4q2Pr7ck.js.map → root-sWPnlpi3.js.map} +1 -1
- package/build/server/chunks/{source-selection-CcN1cgXc.js → source-selection-DSkaPGfZ.js} +7 -2
- package/build/server/chunks/source-selection-DSkaPGfZ.js.map +1 -0
- package/build/server/chunks/{state.svelte-Bd1i-u49.js → state.svelte-BkvaElc6.js} +3 -3
- package/build/server/chunks/{state.svelte-Bd1i-u49.js.map → state.svelte-BkvaElc6.js.map} +1 -1
- package/build/server/chunks/trpc-client-Cr8RJ4UO.js +260 -0
- package/build/server/chunks/trpc-client-Cr8RJ4UO.js.map +1 -0
- package/build/server/index.js +4 -4
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +15 -15
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/backend/git-mode/command.spec.ts +172 -0
- package/src/backend/git-mode/command.ts +405 -0
- package/src/backend/git-mode/config.spec.ts +45 -0
- package/src/backend/git-mode/config.ts +90 -0
- package/src/backend/git-mode/index.ts +20 -0
- package/src/backend/git-mode/repository-write-gate.spec.ts +116 -0
- package/src/backend/git-mode/repository-write-gate.ts +260 -0
- package/src/backend/git-mode/router.ts +59 -0
- package/src/backend/git-mode/service.spec.ts +1653 -0
- package/src/backend/git-mode/service.ts +2183 -0
- package/src/backend/git-mode/types.ts +82 -0
- package/src/backend/git-mode/write-tracker.spec.ts +46 -0
- package/src/backend/git-mode/write-tracker.ts +39 -0
- package/src/backend/lib/backend-restart.spec.ts +27 -0
- package/src/backend/lib/backend-restart.ts +16 -2
- package/src/backend/lib/middleware/cors.spec.ts +67 -0
- package/src/backend/lib/middleware/cors.ts +40 -12
- package/src/backend/roleplay/agent-loader.ts +49 -0
- package/src/backend/roleplay/old-server.ts +106 -56
- package/src/backend/roleplay/prompt-edit-proposals.ts +38 -4
- package/src/backend/roleplay/prompt-file.ts +59 -0
- package/src/backend/roleplay/router.spec.ts +75 -0
- package/src/backend/roleplay/router.ts +123 -69
- package/src/backend/roleplay/suggest-file-edit.ts +160 -0
- package/src/backend/roleplay/suggest-prompt-edit.ts +9 -138
- package/src/backend/roleplay/suggest-test-fix.spec.ts +50 -0
- package/src/backend/roleplay/suggest-test-fix.ts +65 -0
- package/src/backend/roleplay/test-fix-proposal-acceptance.spec.ts +253 -0
- package/src/backend/server.ts +116 -13
- package/src/backend/tests/academy.ts +17 -3
- package/src/backend/tests/data.spec.ts +81 -2
- package/src/backend/tests/data.ts +74 -4
- package/src/backend/tests/router.ts +101 -36
- package/src/backend/tests/suggest-test-history-edit.spec.ts +20 -0
- package/src/backend/tests/suggest-test-history-edit.ts +52 -0
- package/src/backend/tests/test-edit-source.spec.ts +61 -0
- package/src/backend/tests/test-edit-source.ts +34 -0
- package/src/backend/tests/test-history-edit-proposals.ts +69 -0
- package/src/backend/tests/test-history-overrides.spec.ts +24 -0
- package/src/backend/tests/test-selection.ts +27 -0
- package/src/lib/api-telescope/source-selection.spec.ts +44 -0
- package/src/lib/api-telescope/source-selection.ts +28 -0
- package/src/lib/components/Modal.svelte +1 -1
- package/src/lib/edit/edit-workspace-context.ts +33 -3
- package/src/lib/edit/test-ai-edit.spec.ts +31 -0
- package/src/lib/edit/test-ai-edit.ts +52 -0
- package/src/lib/git-mode/BlockingGitDialog.svelte +118 -0
- package/src/lib/git-mode/GitControlsButton.svelte +96 -0
- package/src/lib/git-mode/client-admission.spec.ts +304 -0
- package/src/lib/git-mode/client-admission.ts +343 -0
- package/src/lib/git-mode/errors.ts +2 -0
- package/src/lib/git-mode/git-mode-context.ts +70 -0
- package/src/lib/git-mode/refresh-policy.spec.ts +95 -0
- package/src/lib/git-mode/refresh-policy.ts +39 -0
- package/src/lib/git-mode/status-recovery.spec.ts +86 -0
- package/src/lib/git-mode/status-recovery.ts +33 -0
- package/src/lib/monaco/bosun-theme.ts +6 -83
- package/src/lib/monaco/editor-appearance.spec.ts +84 -0
- package/src/lib/monaco/editor-appearance.ts +154 -0
- package/src/lib/monaco/editor-decorations.spec.ts +91 -0
- package/src/lib/monaco/editor-decorations.ts +133 -0
- package/src/lib/tests/assertion-types.ts +74 -0
- package/src/lib/trpc-client.ts +15 -1
- package/src/lib/ws-client.spec.ts +208 -0
- package/src/lib/ws-client.ts +196 -14
- package/src/lib/ws-message.ts +24 -0
- package/build/client/_app/immutable/assets/0.Rrc0O--C.css +0 -1
- package/build/client/_app/immutable/assets/0.Rrc0O--C.css.br +0 -0
- package/build/client/_app/immutable/assets/0.Rrc0O--C.css.gz +0 -0
- package/build/client/_app/immutable/assets/2.DtxQDOXx.css.br +0 -0
- package/build/client/_app/immutable/assets/2.DtxQDOXx.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B1HdnQRQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/B1HdnQRQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5zf3x62.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5zf3x62.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BHHfrjbV.js.br +0 -2
- package/build/client/_app/immutable/chunks/BHHfrjbV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BU7aeYn4.js +0 -1
- package/build/client/_app/immutable/chunks/BU7aeYn4.js.br +0 -0
- package/build/client/_app/immutable/chunks/BU7aeYn4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BbGYcfPY.js +0 -3
- package/build/client/_app/immutable/chunks/BbGYcfPY.js.br +0 -0
- package/build/client/_app/immutable/chunks/BbGYcfPY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bmd5zhWC.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bmd5zhWC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BnqH7p3U.js +0 -33
- package/build/client/_app/immutable/chunks/BnqH7p3U.js.br +0 -0
- package/build/client/_app/immutable/chunks/BnqH7p3U.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bog028VR.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bog028VR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bv1mNXs0.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bv1mNXs0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BvjXTrOz.js +0 -1
- package/build/client/_app/immutable/chunks/BvjXTrOz.js.br +0 -0
- package/build/client/_app/immutable/chunks/BvjXTrOz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1R-s4aD.js +0 -1
- package/build/client/_app/immutable/chunks/C1R-s4aD.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1R-s4aD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CC1OcqhR.js +0 -1
- package/build/client/_app/immutable/chunks/CC1OcqhR.js.br +0 -0
- package/build/client/_app/immutable/chunks/CC1OcqhR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CEHsomMo.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJcZ2GVC.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJcZ2GVC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CN555stc.js.br +0 -0
- package/build/client/_app/immutable/chunks/CN555stc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CQg2Mme0.js +0 -9
- package/build/client/_app/immutable/chunks/CQg2Mme0.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQg2Mme0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cp_st-64.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cp_st-64.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8mA-uZ4.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8mA-uZ4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DCXjBDmY.js.br +0 -0
- package/build/client/_app/immutable/chunks/DCXjBDmY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSLyVE1P.js +0 -1
- package/build/client/_app/immutable/chunks/DSLyVE1P.js.br +0 -0
- package/build/client/_app/immutable/chunks/DSLyVE1P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ddv5LgEc.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ddv5LgEc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DfcDjAv-.js.br +0 -0
- package/build/client/_app/immutable/chunks/DfcDjAv-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dg0A8wPA.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dg0A8wPA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dm49pcMm.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dm49pcMm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DneQQ7D5.js.br +0 -0
- package/build/client/_app/immutable/chunks/DneQQ7D5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DoD3q5w5.js.br +0 -0
- package/build/client/_app/immutable/chunks/DoD3q5w5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DtXXy94i.js.br +0 -0
- package/build/client/_app/immutable/chunks/DtXXy94i.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dy2CFyD6.js +0 -2
- package/build/client/_app/immutable/chunks/Dy2CFyD6.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dy2CFyD6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DyBwTDJp.js +0 -2
- package/build/client/_app/immutable/chunks/DyBwTDJp.js.br +0 -0
- package/build/client/_app/immutable/chunks/DyBwTDJp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ILTCveYH.js +0 -1
- package/build/client/_app/immutable/chunks/ILTCveYH.js.br +0 -0
- package/build/client/_app/immutable/chunks/ILTCveYH.js.gz +0 -0
- 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/UqjCSZmA.js.br +0 -0
- package/build/client/_app/immutable/chunks/UqjCSZmA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_YcrHZ6P.js +0 -1
- package/build/client/_app/immutable/chunks/_YcrHZ6P.js.br +0 -2
- package/build/client/_app/immutable/chunks/_YcrHZ6P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/i6ygh6h8.js +0 -1
- package/build/client/_app/immutable/chunks/i6ygh6h8.js.br +0 -2
- package/build/client/_app/immutable/chunks/i6ygh6h8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/oRi68ch3.js +0 -1
- package/build/client/_app/immutable/chunks/oRi68ch3.js.br +0 -0
- package/build/client/_app/immutable/chunks/oRi68ch3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pPpIn6tB.js.br +0 -0
- package/build/client/_app/immutable/chunks/pPpIn6tB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/r0sHOWrM.js +0 -1
- package/build/client/_app/immutable/chunks/r0sHOWrM.js.br +0 -0
- package/build/client/_app/immutable/chunks/r0sHOWrM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/wcTQUnZO.js.br +0 -0
- package/build/client/_app/immutable/chunks/wcTQUnZO.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DdO0gkPg.js +0 -2
- package/build/client/_app/immutable/entry/app.DdO0gkPg.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DdO0gkPg.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.eAjDq0c9.js +0 -1
- package/build/client/_app/immutable/entry/start.eAjDq0c9.js.br +0 -2
- package/build/client/_app/immutable/entry/start.eAjDq0c9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.nG3DdvIX.js +0 -3
- package/build/client/_app/immutable/nodes/0.nG3DdvIX.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.nG3DdvIX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Ceu0XS6v.js +0 -1
- package/build/client/_app/immutable/nodes/1.Ceu0XS6v.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Ceu0XS6v.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.dm2dgy31.js +0 -13
- package/build/client/_app/immutable/nodes/10.dm2dgy31.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.dm2dgy31.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.D2I0y3ys.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.D2I0y3ys.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.CKxGp0E7.js +0 -3
- package/build/client/_app/immutable/nodes/17.CKxGp0E7.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.CKxGp0E7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.DHJxyQpw.js +0 -11
- package/build/client/_app/immutable/nodes/18.DHJxyQpw.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.DHJxyQpw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DesR2keg.js +0 -35
- package/build/client/_app/immutable/nodes/2.DesR2keg.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DesR2keg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.BUKrXGR_.js +0 -1
- package/build/client/_app/immutable/nodes/3.BUKrXGR_.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BUKrXGR_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.C8VxVbVn.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.C8VxVbVn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.BjrnKYaA.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BjrnKYaA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.C_hEzPrU.js +0 -1
- package/build/client/_app/immutable/nodes/6.C_hEzPrU.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.C_hEzPrU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BTYaOiDC.js +0 -2
- package/build/client/_app/immutable/nodes/8.BTYaOiDC.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BTYaOiDC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DVspuDYY.js +0 -2
- package/build/client/_app/immutable/nodes/9.DVspuDYY.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DVspuDYY.js.gz +0 -0
- package/build/server/chunks/0-D_duQDWy.js +0 -9
- package/build/server/chunks/0-D_duQDWy.js.map +0 -1
- package/build/server/chunks/1-C0HdTvXW.js +0 -9
- package/build/server/chunks/10-DcfhCR4R.js +0 -9
- package/build/server/chunks/10-DcfhCR4R.js.map +0 -1
- package/build/server/chunks/15-BQcb9C_y.js +0 -9
- package/build/server/chunks/17-DuVCTioj.js +0 -9
- package/build/server/chunks/17-DuVCTioj.js.map +0 -1
- package/build/server/chunks/18-CT0VFW_p.js +0 -9
- package/build/server/chunks/18-CT0VFW_p.js.map +0 -1
- package/build/server/chunks/2-DgTzKQAP.js +0 -9
- package/build/server/chunks/2-DgTzKQAP.js.map +0 -1
- package/build/server/chunks/3-eQMSMzXP.js +0 -9
- package/build/server/chunks/3-eQMSMzXP.js.map +0 -1
- package/build/server/chunks/4-OaAJtDqP.js +0 -9
- package/build/server/chunks/4-OaAJtDqP.js.map +0 -1
- package/build/server/chunks/5-CBdMutbv.js +0 -9
- package/build/server/chunks/5-CBdMutbv.js.map +0 -1
- package/build/server/chunks/6-FoEi7ggm.js +0 -9
- package/build/server/chunks/6-FoEi7ggm.js.map +0 -1
- package/build/server/chunks/8-B44yRkfX.js +0 -9
- package/build/server/chunks/8-B44yRkfX.js.map +0 -1
- package/build/server/chunks/9-eUjFpHzI.js +0 -9
- package/build/server/chunks/9-eUjFpHzI.js.map +0 -1
- package/build/server/chunks/ChatStepTrace-BivoNYOY.js.map +0 -1
- package/build/server/chunks/_layout.svelte-B-0DHjLB.js +0 -45
- package/build/server/chunks/_layout.svelte-B-0DHjLB.js.map +0 -1
- package/build/server/chunks/_layout.svelte-B88WMyk0.js.map +0 -1
- package/build/server/chunks/_layout.svelte-wi6o5Ecu.js.map +0 -1
- package/build/server/chunks/_page.svelte-57pyhszV.js.map +0 -1
- package/build/server/chunks/_page.svelte-BSVJ2d2G.js.map +0 -1
- package/build/server/chunks/_page.svelte-BoHt2cpr.js +0 -61
- package/build/server/chunks/_page.svelte-BoHt2cpr.js.map +0 -1
- package/build/server/chunks/_page.svelte-CeS_21Ho.js.map +0 -1
- package/build/server/chunks/_page.svelte-DHSYVLoj.js.map +0 -1
- package/build/server/chunks/_page.svelte-DhFNFMnl.js.map +0 -1
- package/build/server/chunks/_server.ts-D_eo_OAK.js +0 -139
- package/build/server/chunks/_server.ts-D_eo_OAK.js.map +0 -1
- package/build/server/chunks/error.svelte-DmKKN1RU.js +0 -15
- package/build/server/chunks/source-selection-CcN1cgXc.js.map +0 -1
- package/build/server/chunks/trpc-client-D8L6vWf4.js +0 -14
- package/build/server/chunks/trpc-client-D8L6vWf4.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DBnFpwRM.js","../chunks/CMFNmSvo.js","../chunks/C4UC6AgE.js","../chunks/CD_KdWs9.js","../chunks/eMofpOrR.js","../chunks/xC2C8d09.js","../chunks/D9BWOD7V.js","../chunks/BKfmN1Rj.js","../chunks/BHB0Pj1h.js","../chunks/D8Lmn3S5.js","../chunks/DC7lPrn4.js","../chunks/D8doM1Y6.js","../chunks/DBB88ZB7.js","../chunks/B-dTD_wm.js","../chunks/Cy2Uze-c.js","../chunks/OA8UcISh.js","../chunks/CDy1LBR5.js","../chunks/Byg3jr1u.js","../chunks/Ce6a22qU.js","../chunks/CupXtwVS.js","../chunks/CUKoVL36.js","../assets/0.D9HpHezk.css","../nodes/1.D-kI-fLd.js","../nodes/2.cbpnR8be.js","../chunks/DCwWNTpf.js","../chunks/DrE1ro9S.js","../chunks/C1FmrZbK.js","../chunks/PrCSpCPg.js","../assets/ReadOnlyMonacoDiff.iiWNRlR-.css","../chunks/BlFOg-Sd.js","../chunks/DzY_RPb9.js","../chunks/B-iasAJv.js","../chunks/BzxxLgHi.js","../assets/Popper.CLTyHc88.css","../assets/chat-content.Cabnnfyv.css","../chunks/DfkYlKBk.js","../chunks/C60AG6QQ.js","../assets/Tab.DlCfjMY1.css","../chunks/BDijIo6D.js","../chunks/DgGeUDDh.js","../chunks/CAIfVN23.js","../assets/AgentSidebar.BL1i3rB_.css","../chunks/7hV1SZxK.js","../chunks/-3ZOIHDA.js","../chunks/CYr0FGgn.js","../chunks/D_laxq3h.js","../assets/2.Bc0Sf3YD.css","../nodes/3.DsP759xk.js","../chunks/CNIn4L55.js","../chunks/CeoQ-OhK.js","../assets/Input.CJ8KyccG.css","../chunks/ddC1NP9R.js","../chunks/CB9iDxwI.js","../assets/3.Dzh7_Q8n.css","../nodes/4.BIGLAIDe.js","../chunks/DEnUeQNt.js","../nodes/5.zMHOyhDv.js","../assets/5.CZVw96CJ.css","../nodes/6.DFQ1IZsQ.js","../nodes/7.7N4iPidV.js","../chunks/gULlE0tz.js","../nodes/8.CTgEdr7L.js","../nodes/9.BidF5Uvq.js","../chunks/CYGbCr1i.js","../chunks/DnMS2X6M.js","../assets/9.DlSPCZj0.css","../nodes/10.DWb5H7vX.js","../assets/10.DIVePEYf.css","../nodes/11.CsTD16Gn.js","../nodes/12.DYXd_leK.js","../nodes/13.DQMjAUKq.js","../nodes/14.C59tyoG0.js","../nodes/15.CGc3_07c.js","../nodes/16.DRwcAQjb.js","../nodes/17.BIba62hW.js","../chunks/T0seCQS_.js","../nodes/18.Clxr6FwI.js","../assets/18.C5apk4jm.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
var tt=e=>{throw TypeError(e)};var rt=(e,t,r)=>t.has(e)||tt("Cannot "+r);var n=(e,t,r)=>(rt(e,t,"read from private field"),r?r.call(e):t.get(e)),H=(e,t,r)=>t.has(e)?tt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),J=(e,t,r,i)=>(rt(e,t,"write to private field"),i?i.call(e,r):t.set(e,r),r);import{_ as s}from"../chunks/C1FmrZbK.js";import{y as S,aE as Et,j as m,bp as Pt,av as yt,a4 as Ot,p as Rt,u as pt,d as It,T as At,f as g,s as Lt,a as Tt,w as K,n as p,c as bt,r as Dt,t as Vt}from"../chunks/C4UC6AgE.js";import{h as xt,m as wt,u as jt,s as kt}from"../chunks/eMofpOrR.js";import{a as u,c as E,f as et,t as Ct}from"../chunks/CMFNmSvo.js";import{o as St}from"../chunks/CD_KdWs9.js";import{i as j}from"../chunks/D9BWOD7V.js";import{c as I}from"../chunks/DrE1ro9S.js";import{b as A}from"../chunks/Ce6a22qU.js";import{p as k}from"../chunks/CupXtwVS.js";const Mt=({url:e})=>{const t=e.pathname;if(t.startsWith("/view"))return t.replace(/^\/view(?=\/|$)/,"/traces")},ar={};function Gt(e){return class extends Wt{constructor(t){super({component:e,...t})}}}var P,c;class Wt{constructor(t){H(this,P);H(this,c);var L;var r=new Map,i=(o,a)=>{var h=Ot(a,!1,!1);return r.set(o,h),h};const d=new Proxy({...t.props||{},$$events:{}},{get(o,a){return m(r.get(a)??i(a,Reflect.get(o,a)))},has(o,a){return a===Et?!0:(m(r.get(a)??i(a,Reflect.get(o,a))),Reflect.has(o,a))},set(o,a,h){return S(r.get(a)??i(a,h),h),Reflect.set(o,a,h)}});J(this,c,(t.hydrate?xt:wt)(t.component,{target:t.target,anchor:t.anchor,props:d,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError})),(!((L=t==null?void 0:t.props)!=null&&L.$$host)||t.sync===!1)&&Pt(),J(this,P,d.$$events);for(const o of Object.keys(n(this,c)))o==="$set"||o==="$destroy"||o==="$on"||yt(this,o,{get(){return n(this,c)[o]},set(a){n(this,c)[o]=a},enumerable:!0});n(this,c).$set=o=>{Object.assign(d,o)},n(this,c).$destroy=()=>{jt(n(this,c))}}$set(t){n(this,c).$set(t)}$on(t,r){n(this,P)[t]=n(this,P)[t]||[];const i=(...d)=>r.call(this,...d);return n(this,P)[t].push(i),()=>{n(this,P)[t]=n(this,P)[t].filter(d=>d!==i)}}$destroy(){n(this,c).$destroy()}}P=new WeakMap,c=new WeakMap;var Yt=et('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),qt=et("<!> <!>",1);function zt(e,t){Rt(t,!0);let r=k(t,"components",23,()=>[]),i=k(t,"data_0",3,null),d=k(t,"data_1",3,null),L=k(t,"data_2",3,null),o=k(t,"data_3",3,null);pt(()=>t.stores.page.set(t.page)),It(()=>{t.stores,t.page,t.constructors,r(),t.form,i(),d(),L(),o(),t.stores.page.notify()});let a=K(!1),h=K(!1),N=K(null);St(()=>{const _=t.stores.page.subscribe(()=>{m(a)&&(S(h,!0),At().then(()=>{S(N,document.title||"untitled page",!0)}))});return S(a,!0),_});const ot=p(()=>t.constructors[3]);var Q=qt(),U=g(Q);{var st=_=>{const y=p(()=>t.constructors[0]);var O=E(),V=g(O);I(V,()=>m(y),(R,T)=>{A(T(R,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(l,Ft)=>{var X=E(),_t=g(X);{var ut=b=>{const M=p(()=>t.constructors[1]);var x=E(),G=g(x);I(G,()=>m(M),(W,Y)=>{A(Y(W,{get data(){return d()},get form(){return t.form},get params(){return t.page.params},children:(f,Ht)=>{var Z=E(),dt=g(Z);{var lt=D=>{const q=p(()=>t.constructors[2]);var w=E(),z=g(w);I(z,()=>m(q),(B,F)=>{A(F(B,{get data(){return L()},get form(){return t.form},get params(){return t.page.params},children:(v,Jt)=>{var $=E(),vt=g($);I(vt,()=>m(ot),(gt,ht)=>{A(ht(gt,{get data(){return o()},get form(){return t.form},get params(){return t.page.params}}),C=>r()[3]=C,()=>{var C;return(C=r())==null?void 0:C[3]})}),u(v,$)},$$slots:{default:!0}}),v=>r()[2]=v,()=>{var v;return(v=r())==null?void 0:v[2]})}),u(D,w)},ft=D=>{const q=p(()=>t.constructors[2]);var w=E(),z=g(w);I(z,()=>m(q),(B,F)=>{A(F(B,{get data(){return L()},get form(){return t.form},get params(){return t.page.params}}),v=>r()[2]=v,()=>{var v;return(v=r())==null?void 0:v[2]})}),u(D,w)};j(dt,D=>{t.constructors[3]?D(lt):D(ft,-1)})}u(f,Z)},$$slots:{default:!0}}),f=>r()[1]=f,()=>{var f;return(f=r())==null?void 0:f[1]})}),u(b,x)},ct=b=>{const M=p(()=>t.constructors[1]);var x=E(),G=g(x);I(G,()=>m(M),(W,Y)=>{A(Y(W,{get data(){return d()},get form(){return t.form},get params(){return t.page.params}}),f=>r()[1]=f,()=>{var f;return(f=r())==null?void 0:f[1]})}),u(b,x)};j(_t,b=>{t.constructors[2]?b(ut):b(ct,-1)})}u(l,X)},$$slots:{default:!0}}),l=>r()[0]=l,()=>{var l;return(l=r())==null?void 0:l[0]})}),u(_,O)},nt=_=>{const y=p(()=>t.constructors[0]);var O=E(),V=g(O);I(V,()=>m(y),(R,T)=>{A(T(R,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),l=>r()[0]=l,()=>{var l;return(l=r())==null?void 0:l[0]})}),u(_,O)};j(U,_=>{t.constructors[1]?_(st):_(nt,-1)})}var it=Lt(U,2);{var mt=_=>{var y=Yt(),O=bt(y);{var V=R=>{var T=Ct();Vt(()=>kt(T,m(N))),u(R,T)};j(O,R=>{m(h)&&R(V)})}Dt(y),u(_,y)};j(it,_=>{m(a)&&_(mt)})}u(e,Q),Tt()}const or=Gt(zt),sr=[()=>s(()=>import("../nodes/0.DBnFpwRM.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]),import.meta.url),()=>s(()=>import("../nodes/1.D-kI-fLd.js"),__vite__mapDeps([22,1,2,4,5,12,13,14,15,3]),import.meta.url),()=>s(()=>import("../nodes/2.cbpnR8be.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,24,8,25,19,14,9,26,18,27,28,29,10,30,17,31,32,33,34,35,36,37,38,20,13,15,12,16,39,40,41,11,42,43,44,45,46]),import.meta.url),()=>s(()=>import("../nodes/3.DsP759xk.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,29,8,48,9,19,14,13,15,12,17,18,35,49,10,50,51,52,36,37,40,41,11,16,45,20,53]),import.meta.url),()=>s(()=>import("../nodes/4.BIGLAIDe.js"),__vite__mapDeps([54,1,2,8,7,13,14,15,3,12,36,9,5,19,18,37,55]),import.meta.url),()=>s(()=>import("../nodes/5.zMHOyhDv.js"),__vite__mapDeps([56,1,2,3,48,40,4,5,6,7,29,9,8,19,14,35,41,11,16,57]),import.meta.url),()=>s(()=>import("../nodes/6.DFQ1IZsQ.js"),__vite__mapDeps([58,1,2,3,48,13,14,15,11,16,40,4,5,6,7,29,9,8,19,35,41,36,18,37,12,45,17,20]),import.meta.url),()=>s(()=>import("../nodes/7.7N4iPidV.js"),__vite__mapDeps([59,60,15]),import.meta.url),()=>s(()=>import("../nodes/8.CTgEdr7L.js"),__vite__mapDeps([61,26,1,2,3,4,5,6,7,18,30,8,27,16,20]),import.meta.url),()=>s(()=>import("../nodes/9.BidF5Uvq.js"),__vite__mapDeps([62,1,2,6,7,17,8,9,5,18,19,14,31,3,32,33,34,4,29,35,16,30,63,24,25,26,27,28,36,37,64,39,20,49,10,50,44,65]),import.meta.url),()=>s(()=>import("../nodes/10.DWb5H7vX.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,24,8,25,19,14,9,26,18,27,28,29,48,10,30,17,38,20,49,50,36,37,35,12,13,15,16,64,39,67]),import.meta.url),()=>s(()=>import("../nodes/11.CsTD16Gn.js"),__vite__mapDeps([68,60,15]),import.meta.url),()=>s(()=>import("../nodes/12.DYXd_leK.js"),__vite__mapDeps([69,60,15]),import.meta.url),()=>s(()=>import("../nodes/13.DQMjAUKq.js"),__vite__mapDeps([70,60,15]),import.meta.url),()=>s(()=>import("../nodes/14.C59tyoG0.js"),__vite__mapDeps([71,60,15]),import.meta.url),()=>s(()=>import("../nodes/15.CGc3_07c.js"),__vite__mapDeps([72,1,2,42,48]),import.meta.url),()=>s(()=>import("../nodes/16.DRwcAQjb.js"),__vite__mapDeps([73,60,15]),import.meta.url),()=>s(()=>import("../nodes/17.BIba62hW.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,29,8,9,18,12,13,14,15,17,19,32,33,52,39,75,55]),import.meta.url),()=>s(()=>import("../nodes/18.Clxr6FwI.js"),__vite__mapDeps([76,1,2,42,3,4,5,19,14,6,7,29,48,9,8,18,43,13,15,52,39,75,17,31,32,33,34,35,24,25,26,27,28,51,63,36,37,64,16,20,55,77]),import.meta.url)],nr=[],ir={"/":[5],"/edit":[6],"/edit/[agent]":[7,[2]],"/edit/[agent]/configure":[8,[2]],"/edit/[agent]/roleplay":[9,[2]],"/edit/[agent]/tests":[10,[2]],"/roleplay":[11],"/tests":[12],"/tests/[agent]":[13],"/traces":[14],"/traces/conversations":[15,[3]],"/traces/conversations/[conversationId]":[16,[3,4]],"/traces/conversations/[conversationId]/latency":[17,[3,4]],"/traces/conversations/[conversationId]/traces":[18,[3,4]]},at={handleError:({error:e})=>{console.error(e)},reroute:Mt||(()=>{}),transport:{}},Bt=Object.fromEntries(Object.entries(at.transport).map(([e,t])=>[e,t.decode])),mr=Object.fromEntries(Object.entries(at.transport).map(([e,t])=>[e,t.encode])),_r=!1,ur=(e,t)=>Bt[e](t);export{ur as decode,Bt as decoders,ir as dictionary,mr as encoders,_r as hash,at as hooks,ar as matchers,sr as nodes,or as root,nr as server_loads};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as o,a as r}from"../chunks/B-dTD_wm.js";export{o as load_css,r as start};
|
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{e as Ze,a as g,f as C,c as Gt,t as Q}from"../chunks/CMFNmSvo.js";import{o as ct,a as At}from"../chunks/CD_KdWs9.js";import{p as ft,d as ke,t as A,a as pt,c as S,r as x,j as e,y as t,w as _,x as Bt,n as I,s as p,f as le,o as J,T as et}from"../chunks/C4UC6AgE.js";import{s as U}from"../chunks/eMofpOrR.js";import{i as re}from"../chunks/D9BWOD7V.js";import{s as vt,a as Et}from"../chunks/BHB0Pj1h.js";import{s as gt,r as tt}from"../chunks/D8Lmn3S5.js";import{b as rt}from"../chunks/DC7lPrn4.js";import{s as Dt}from"../chunks/D8doM1Y6.js";import{p as Ft}from"../chunks/DBB88ZB7.js";import{g as Mt}from"../chunks/B-dTD_wm.js";import{r as he,t as ce,i as Ot,u as at}from"../chunks/CDy1LBR5.js";import{B as X}from"../chunks/Byg3jr1u.js";import{b as Ut}from"../chunks/Ce6a22qU.js";import{p as nt}from"../chunks/CupXtwVS.js";import{d as st,s as Ct}from"../chunks/CUKoVL36.js";var Lt=C('<dialog><div class="p-6"><!></div></dialog>');function fe(h,P){ft(P,!0);let W=nt(P,"stacked",3,!1),s=nt(P,"class",3,""),L,ee=_(!1),k=null,y=0;function te(){k&&clearTimeout(k),k=null,y&&cancelAnimationFrame(y),y=0}function D(){te(),L.open||L.showModal(),t(ee,!1),y=requestAnimationFrame(()=>{y=requestAnimationFrame(()=>{t(ee,!0),y=0})})}function de(){te(),L.open&&(t(ee,!1),k=setTimeout(()=>{L.close(),k=null},200))}ke(()=>{L&&(P.open?D():de())}),ct(()=>{P.open&&D()}),At(te);var j=Lt();let E;var ne=S(j),pe=S(ne);vt(pe,()=>P.children),x(ne),x(j),Ut(j,Y=>L=Y,()=>L),A(()=>{gt(j,"aria-label",P.label),E=Et(j,1,`git-blocking-dialog m-auto max-h-[90vh] w-[min(92vw,32rem)] overflow-visible rounded-xl border border-rc-gray-600 bg-rc-gray-800 p-0 text-rc-gray-100 shadow-2xl outline-none ${s()}`,"svelte-vbchqd",E,{entered:e(ee),stacked:W()})}),Ze("cancel",j,Y=>Y.preventDefault()),Ze("close",j,Y=>{P.open&&(Y.preventDefault(),D())}),g(h,j),pt()}function ht(h){return h.enabled?h.phase==="preparing"?h.preparationStage==="browser-writes":["flushing","refreshing","processing","restarting"].includes(h.phase):!1}function Fe(h){return ht(h)||h.enabled&&["awaiting-changes","fatal"].includes(h.phase)}function jt(h){return!h}function it(h,P,W){return P?h.enabled?h.phase==="preparing"&&h.preparationStage==="browser-writes"&&h.operationId?{mode:"quiescing",flushOperationId:h.operationId}:W||Fe(h)?{mode:"locked",flushOperationId:null}:{mode:"open",flushOperationId:null}:{mode:"open",flushOperationId:null}:{mode:"unknown",flushOperationId:null}}async function Nt(h){for(;;){const P=h.getRequiredSequence();if(P===null||h.getSuccessfulSequence()>=P)return{status:"satisfied"};const W=h.getInFlightRequest();if(W){await W;continue}const s=h.getSuccessfulSequence();if(await h.requestStatus(),h.getSuccessfulSequence()===s)return{status:"request-failed",requiredSequence:P}}}var zt=C(`<div class="
|
|
2
|
+
absolute bottom-0 right-0 z-50 m-4 rounded-sm border border-red-500 bg-red-50
|
|
3
|
+
px-4 py-2 text-red-800 focus:outline-none focus:ring-0"> </div>`),Vt=C('<div class="fixed bottom-4 left-1/2 z-40 w-[min(92vw,38rem)] -translate-x-1/2 rounded-lg border border-amber-500/60 bg-rc-gray-800 px-4 py-3 text-sm text-amber-100 shadow-xl" role="status"> </div>'),Wt=C('<div class="fixed bottom-4 left-1/2 z-40 w-[min(92vw,38rem)] -translate-x-1/2 rounded-lg border border-amber-500/60 bg-rc-gray-800 px-4 py-3 text-sm text-amber-100 shadow-xl" role="alert"><p> </p> <div class="mt-3 flex justify-end"><!></div></div>'),Kt=C('<a target="_blank" rel="noreferrer" class="mt-4 inline-flex text-rc-green-200 underline underline-offset-2">Open the conflict pull request</a>'),Ht=C('<h2 class="text-xl font-semibold text-rc-gray-100"> </h2> <p class="mt-3 whitespace-pre-line text-rc-gray-200"> </p> <!>',1),Qt=C('<div class="flex items-center gap-4"><div class="h-6 w-6 animate-spin rounded-full border-2 border-rc-gray-400 border-t-rc-green-200" aria-hidden="true"></div> <div><h2 class="text-xl font-semibold text-rc-gray-100">Refreshing...</h2></div></div>'),Jt=C('<h2 class="text-xl font-semibold text-rc-gray-100">To continue, save or discard your current changes</h2> <p class="mt-3 text-rc-gray-200">Bosun cannot refresh your personal branch without handling these changes first.</p> <div class="mt-5 flex justify-end gap-3"><!> <!></div>',1),ot=C('<p class="text-sm text-rc-red-600"> </p>'),lt=C('<h2 class="text-xl font-semibold text-rc-gray-100">Save changes</h2> <div class="mt-5 space-y-4"><label class="block"><span class="mb-1 block text-sm text-rc-gray-200">Describe your changes</span> <input maxlength="500" class="w-full rounded-lg border border-rc-gray-600 bg-rc-gray-900 px-3 py-2 text-rc-gray-100 outline-none focus:border-rc-gray-400 disabled:opacity-60"/></label> <!> <div class="flex justify-end gap-3 pt-2"><!> <!></div></div>',1),dt=C('<p class="mt-4 text-sm text-rc-red-600"> </p>'),ut=C('<h2 class="text-xl font-semibold text-rc-gray-100">Discard current changes?</h2> <p class="mt-3 text-rc-gray-200">Discarding removes all changes since your last Save. They can be recovered later if needed.</p> <!> <div class="mt-5 flex justify-end gap-3"><!> <!></div>',1),Xt=C('<main class="h-screen overflow-hidden bg-gray-600"><!> <!> <!> <!> <!> <!> <!> <!> <!> <!></main>');function vr(h,P){ft(P,!0);let W=_("");const s=Bt(st()),L=new Map,ee=new Map;let k="",y=null,te=null,D=null,de=0,j=_(0),E=_(null),ne=null,pe=!1,Y=_(!1),T=!1,K=0,se=null,ve=null,me=!1,be=null,ge=_(!1),ie=!1,ae=_(null),we=!1,Re=!1,qe=!1,oe=_(!1),G=_(!0),ye=_(!1),Me=_(!1),Oe=_(!1),Ie=_(!1),N=_(null),_e=_(""),v=_(null),F=_(null),z=_(!1),H=0,V=_(null),Z=_(null),Se=_(""),R=_(null),M=_(null),Ue=null;const Pe=I(()=>ht(s)),Te=I(()=>e(v)==="save"||e(v)==="discard"),mt=I(()=>s.enabled&&(s.phase==="fatal"||e(Ie)||e(Pe)&&e(ye)&&!e(Te)));function bt(){!e(Pe)||e(Te)||t(ye,!0)}function wt(r,a,n){const l={flush:a,final:(n==null?void 0:n.final)===!0};return L.set(r,l),()=>{L.get(r)===l&&L.delete(r)}}function yt(r,a){return ee.set(r,a),()=>{ee.get(r)===a&&ee.delete(r)}}Ct({state:s,openSaveDialog:()=>{!s.enabled||!s.hasChanges||s.phase!=="idle"||e(G)||e(oe)||(t(_e,""),t(V,null),t(v,null),t(F,null),t(z,!1),H=0,t(N,"save"))},openDiscardDialog:()=>{!s.enabled||!s.hasChanges||s.phase!=="idle"||e(G)||e(oe)||(t(V,null),t(v,null),t(F,null),t(z,!1),H=0,t(N,"discard"))},prepareRelease:()=>void Rt(),manualAction:()=>e(v),registerFlusher:wt,registerBlocker:yt,requestBlockedOperationNotice:bt,isActivationStarting:()=>e(oe),isWritePaused:()=>{const r=e(G),a=Fe(s);return typeof document<"u"&&document.visibilityState!=="visible"||r||a}}),ke(()=>{const r=e(Pe),a=e(Oe);r&&a&&!e(Te)?t(ye,!0):r||t(ye,!1)});function Ge(){he.setState(e(Y)?{mode:"locked",flushOperationId:null}:it(s,e(ge),e(G)))}he.setState({mode:"unknown",flushOperationId:null}),ke(Ge),ke(()=>{const r=e(Me),a=s.phase,n=e(E)!==null,l=e(Y)?{mode:"locked"}:it(s,e(ge),e(G));!r||a!=="idle"||!e(ge)||n||l.mode!=="open"||ie||e(ae)||ue()||(ie=!0,t(G,!0),Ge(),setTimeout(()=>window.location.reload(),220))});function xe(r){t(W,r,!0),setTimeout(()=>{t(W,"")},5e3),console.error(r)}function _t(r){if(!r||typeof r!="object")return st();const a=r,n=["idle","preparing","flushing","refreshing","awaiting-changes","processing","restarting","fatal"];return{enabled:a.enabled===!0,phase:n.includes(a.phase)?a.phase:"idle",operationId:typeof a.operationId=="string"?a.operationId:null,tabNeedsFlush:a.tabNeedsFlush===!0,hasChanges:a.hasChanges===!0,canPrepareRelease:a.canPrepareRelease===!0,fatal:a.fatal&&typeof a.fatal=="object"?{title:String(a.fatal.title||"Bosun refresh failed"),message:String(a.fatal.message||"Restart Bosun after resolving the problem."),prUrl:a.fatal.prUrl?String(a.fatal.prUrl):null}:null,reloadToken:typeof a.reloadToken=="string"?a.reloadToken:null,deferredReason:typeof a.deferredReason=="string"?a.deferredReason:null,preparationStage:a.preparationStage==="preflight"||a.preparationStage==="browser-writes"?a.preparationStage:null}}async function O(){if(!k||!T)return;if(D)return D;const r=++de,a=K,n=k;let l;return l=(async()=>{try{const f=await ce.gitMode.status.mutate({tabId:n});if(!T||a!==K||n!==k)return;const i=_t(f);if(Object.assign(s,i),t(j,r,!0),e(E)!==null&&r>=e(E)&&(t(E,null),t(Y,!1)),i.phase!=="preparing"&&(be=null),i.phase==="preparing"&&i.operationId&&i.preparationStage&&i.tabNeedsFlush!==!1&&$t(i.operationId,i.preparationStage),i.phase==="awaiting-changes"&&i.operationId!==Ue&&(t(Ie,!0),Ue=i.operationId,t(Z,null),t(Se,""),t(R,null),t(M,null)),i.phase!=="awaiting-changes"&&!e(R)&&t(Z,null),i.phase==="fatal"&&(t(Z,null),t(N,null),t(v,null),t(F,null),t(z,!1),H=0,t(R,null)),e(F)&&i.operationId===e(F)&&i.phase!=="idle"&&t(z,!0),i.phase==="idle"&&e(v)&&e(F)&&e(z)&&r>H){const d=e(v);t(v,null),t(F,null),t(z,!1),H=0,i.deferredReason&&d!=="prepare-release"?t(V,`Refresh paused: ${i.deferredReason}`):t(N,null)}i.phase==="idle"&&(t(Z,null),t(Ie,!1),t(R,null),t(M,null)),e(ge)?i.phase==="idle"&&Le(i.reloadToken):(t(ge,!0),i.phase==="idle"&&i.reloadToken&&Le(i.reloadToken)),t(G,document.visibilityState!=="visible"||ie||!!e(ae)||Fe(i),!0),i.enabled&&i.phase==="idle"&&!Re&&kt()}catch(f){if(!T||a!==K||n!==k)return;s.phase!=="restarting"&&s.phase!=="processing"&&console.debug("Git mode status is temporarily unavailable",f)}finally{D===l&&(D=null)}})(),D=l,l}function Ce(r=!1){r&&t(Y,!0),t(E,Math.max(e(E)??0,de+1),!0),Ge(),Ae()}function Ae(){ne||pe||e(E)===null||!T||(pe=!0,queueMicrotask(()=>{pe=!1,St()}))}function St(){if(ne||e(E)===null||!T)return;let r=null;ne=Nt({getRequiredSequence:()=>e(E),getSuccessfulSequence:()=>e(j),getInFlightRequest:()=>D,requestStatus:async()=>{await O()}}).then(n=>{r=n}).finally(()=>{ne=null;const n=e(E);n===null||e(j)>=n||!T||((r==null?void 0:r.status)==="satisfied"||(r==null?void 0:r.status)==="request-failed"&&n>r.requiredSequence)&&Ae()})}function Le(r){if(!r||ie||sessionStorage.getItem("bosun-git-reload-token")===r)return;if(e(ae)){t(G,!0);return}const a=ue();if(a){t(ae,a,!0),t(G,!0);return}t(ae,null),sessionStorage.setItem("bosun-git-reload-token",r),ie=!0,t(G,!0),setTimeout(()=>window.location.reload(),220)}function xt(){s.reloadToken&&sessionStorage.setItem("bosun-git-reload-token",s.reloadToken),ie=!0,t(G,!0),window.location.reload()}function $e(){y==null||y.postMessage({type:"status-invalidated"}),O()}async function $t(r,a){const n=`${a}:${r}`;if(be===n)return;be=n;let l=null;const f={operationId:r},i=[...L.values()];try{if(l=ue(),a==="browser-writes"&&!l){const d=i.filter(({final:c})=>!c);await Promise.all(d.map(({flush:c})=>Promise.resolve().then(()=>c(f)))),await et(),l=ue()}if(a==="browser-writes"&&!l){const d=i.filter(({final:c})=>c);for(const{flush:c}of d)await c(f);await et(),l=ue()}}catch(d){console.error("Failed to flush Bosun edits before Git operation",d),l=d instanceof Error?`Bosun could not save pending edits: ${d.message}`:"Bosun could not save pending edits."}try{await ce.gitMode.flushAck.mutate({tabId:k,operationId:r,stage:a,...l?{blockedReason:l}:{}}),we=!!l,$e()}catch(d){be=null,console.error("Failed to acknowledge Git preparation",d)}}function ue(){if(e(N)&&!e(v))return"A Git action dialog is open.";for(const r of ee.values()){const a=r();if(a)return a}return null}async function Be(r){if(!k||e(G)||!s.enabled||s.phase!=="idle"||e(N)||e(v)||e(oe))return!1;t(oe,!0);try{if(y==null||y.postMessage({type:"activation-probe"}),await new Promise(n=>setTimeout(n,120)),s.phase!=="idle"||e(N)||e(v))return!1;await ce.gitMode.activate.mutate({tabId:k,reason:r}),y==null||y.postMessage({type:"status-invalidated"});const a=D;return a&&await a,await O(),!0}catch(a){return console.error("Failed to request Bosun activation",a),O(),!1}finally{t(oe,!1)}}async function kt(){if(!(Re||qe)){qe=!0;try{Re=await Be("page-open")}finally{qe=!1}}}async function je(r){if(e(v))return;const a=e(_e).trim();if(r==="save"&&!a){t(V,"Describe your changes before saving.");return}t(V,null),t(v,r,!0),t(F,null),t(z,!1),H=0;try{const n=await ce.gitMode.startManual.mutate({tabId:k,action:r,description:r==="save"?a:void 0});if(e(v)!==r)return;if(!n.operationId){t(v,null),n.phase!=="fatal"&&!n.fatal&&t(V,"There are no changes to save or discard."),O();return}t(F,n.operationId,!0),t(z,!0),H=de,$e()}catch(n){t(v,null),t(F,null),t(z,!1),H=0,t(V,n instanceof Error?n.message:"Could not start the Git operation.",!0),O()}}async function Rt(){if(!(e(v)||!s.enabled||s.hasChanges||!s.canPrepareRelease||s.phase!=="idle"||e(G)||e(oe))){t(V,null),t(v,"prepare-release"),t(F,null),t(z,!1),H=0;try{const r=await ce.gitMode.prepareRelease.mutate({tabId:k});if(e(v)!=="prepare-release")return;if(!r.operationId){t(v,null),O();return}t(F,r.operationId,!0),t(z,!0),H=de,$e()}catch(r){t(v,null),t(F,null),t(z,!1),H=0,xe(r instanceof Error?r.message:"Could not prepare the changes for release."),O()}}}async function Ne(r){if(!s.operationId||e(R))return;const a=e(Se).trim();if(r==="save"&&!a){t(M,"Describe your changes before saving.");return}t(M,null),t(R,r,!0);try{await ce.gitMode.resolveChanges.mutate({tabId:k,operationId:s.operationId,action:r,description:r==="save"?a:void 0}),$e()}catch(n){t(R,null),t(M,n instanceof Error?n.message:"Could not continue the refresh.",!0),O()}}function Ee(){te&&clearTimeout(te);const r=s.phase!=="idle"||!!s.deferredReason;te=setTimeout(async()=>{if(document.visibilityState!=="visible"){Ee();return}await O(),s.phase==="idle"&&!s.deferredReason?we=!1:s.enabled&&s.phase==="idle"&&s.deferredReason&&we&&!e(N)&&!ue()&&(we=!1,await Be("focus")),Ee()},s.phase!=="idle"?400:r?1e3:2e3)}Dt({onAgentSelect:r=>{const n=new URLSearchParams(Ft.url.search).get("step");let l=`/edit/${encodeURIComponent(r)}/roleplay`;n&&(l+=`?step=${encodeURIComponent(n)}`),Mt(l)},onError:xe}),ct(()=>{const r=o=>{var b;console.error(o),xe(`Uncaught error: ${((b=o.error)==null?void 0:b.message)||o.message||"Unknown error"}`)},a=o=>{var b;if(Ot(o.reason)){o.preventDefault();return}console.error(o),xe(`Unhandled promise rejection: ${((b=o.reason)==null?void 0:b.message)||o.reason||"Unknown error"}`)};window.addEventListener("error",r),window.addEventListener("unhandledrejection",a);const n=he.onBlockedMutation(()=>{t(Me,!0),t(Oe,!0),Ce()}),l=he.onServerBlocked(()=>{Ce(!0)});k=crypto.randomUUID(),T=document.visibilityState==="visible",y=typeof BroadcastChannel=="function"?new BroadcastChannel("bosun-git-mode"):null,y==null||y.addEventListener("message",()=>{document.visibilityState==="visible"&&O()});const f=()=>{if(ve)return T||(me=!0),ve;let o;return o=(async()=>{const b=T;jt(b)&&(t(G,!0),T=!0,K+=1);const w=K,q=se;if(q&&await q,!(!T||w!==K)){if(!b){const B=D;if(B&&await B,!T||w!==K)return}await O(),!(!T||w!==K)&&(e(E)!==null&&Ae(),!e(G)&&!e(ae)&&!ie&&await Be("focus"))}})().finally(()=>{ve===o&&(ve=null),me&&document.visibilityState==="visible"&&(me=!1,f())}),ve=o,o},i=()=>{if(me=!1,!T)return;T=!1,K+=1;const o=K;t(G,!0);const b=k,u=D,w=at(b);se=w,w.finally(()=>{se===w&&(se=null)}),u&&u.finally(()=>{if(!T&&K===o){const q=at(b);se=q,q.finally(()=>{se===q&&(se=null)})}})},d=()=>void f(),c=()=>{document.visibilityState==="visible"?f():i()},$=i,m=()=>void f();return window.addEventListener("focus",d),window.addEventListener("pagehide",$),window.addEventListener("pageshow",m),document.addEventListener("visibilitychange",c),(async()=>(document.visibilityState==="visible"&&await O(),Ee()))(),()=>{window.removeEventListener("error",r),window.removeEventListener("unhandledrejection",a),n(),l(),window.removeEventListener("focus",d),window.removeEventListener("pagehide",$),window.removeEventListener("pageshow",m),document.removeEventListener("visibilitychange",c),i(),te&&clearTimeout(te),y==null||y.close(),y=null,he.setState({mode:"unknown",flushOperationId:null})}});var De=Xt(),ze=S(De);vt(ze,()=>P.children);var Ve=p(ze,2);{var qt=r=>{var a=zt(),n=S(a,!0);x(a),A(()=>U(n,e(W))),g(r,a)};re(Ve,r=>{e(W)&&r(qt)})}var We=p(Ve,2);{var It=r=>{var a=Vt(),n=S(a);x(a),A(()=>U(n,`Refresh paused: ${s.deferredReason??""} Save or close that draft to continue.`)),g(r,a)};re(We,r=>{s.enabled&&s.deferredReason&&s.phase==="idle"&&r(It)})}var Ke=p(We,2);{var Pt=r=>{var a=Wt(),n=S(a),l=S(n);x(n);var f=p(n,2),i=S(f);X(i,{variant:"outlined",onclick:xt,children:(d,c)=>{J();var $=Q("Discard browser draft and reload");g(d,$)},$$slots:{default:!0}}),x(f),x(a),A(()=>U(l,`This project was refreshed in another tab. ${e(ae)??""} This tab is write-paused so
|
|
4
|
+
its stale draft cannot overwrite the refreshed files.`)),g(r,a)};re(Ke,r=>{e(ae)&&r(Pt)})}var He=p(Ke,2);fe(He,{get open(){return e(mt)},label:"Bosun repository refresh",children:(r,a)=>{var n=Gt(),l=le(n);{var f=d=>{var c=Ht(),$=le(c),m=S($,!0);x($);var o=p($,2),b=S(o,!0);x(o);var u=p(o,2);{var w=q=>{var B=Kt();A(()=>gt(B,"href",s.fatal.prUrl)),g(q,B)};re(u,q=>{s.fatal.prUrl&&q(w)})}A(()=>{U(m,s.fatal.title),U(b,s.fatal.message)}),g(d,c)},i=d=>{var c=Qt();g(d,c)};re(l,d=>{s.phase==="fatal"&&s.fatal?d(f):d(i,-1)})}g(r,n)},$$slots:{default:!0}});var Qe=p(He,2);{let r=I(()=>s.phase==="awaiting-changes");fe(Qe,{get open(){return e(r)},label:"Save or discard current changes",stacked:!0,children:(a,n)=>{var l=Jt(),f=p(le(l),4),i=S(f);{let c=I(()=>!!e(R));X(i,{variant:"outlined",get disabled(){return e(c)},onclick:()=>{t(M,null),t(Z,"discard")},children:($,m)=>{J();var o=Q("Discard");g($,o)},$$slots:{default:!0}})}var d=p(i,2);{let c=I(()=>!!e(R));X(d,{get disabled(){return e(c)},onclick:()=>{t(M,null),t(Z,"save")},children:($,m)=>{J();var o=Q("Save");g($,o)},$$slots:{default:!0}})}x(f),g(a,l)},$$slots:{default:!0}})}var Je=p(Qe,2);{let r=I(()=>e(Z)==="save"&&(s.phase==="awaiting-changes"||e(R)==="save"));fe(Je,{get open(){return e(r)},label:"Save current changes",stacked:!0,children:(a,n)=>{var l=lt(),f=p(le(l),2),i=S(f),d=p(S(i),2);tt(d),x(i);var c=p(i,2);{var $=u=>{var w=ot(),q=S(w,!0);x(w),A(()=>U(q,e(M))),g(u,w)};re(c,u=>{e(M)&&u($)})}var m=p(c,2),o=S(m);{let u=I(()=>!!e(R));X(o,{variant:"ghost",get disabled(){return e(u)},onclick:()=>{t(M,null),t(Z,null)},children:(w,q)=>{J();var B=Q("Cancel");g(w,B)},$$slots:{default:!0}})}var b=p(o,2);{let u=I(()=>!!e(R));X(b,{get disabled(){return e(u)},onclick:()=>Ne("save"),children:(w,q)=>{J();var B=Q();A(()=>U(B,e(R)==="save"?"Saving...":"Save")),g(w,B)},$$slots:{default:!0}})}x(m),x(f),A(()=>d.disabled=!!e(R)),rt(d,()=>e(Se),u=>t(Se,u)),g(a,l)},$$slots:{default:!0}})}var Xe=p(Je,2);{let r=I(()=>e(Z)==="discard"&&(s.phase==="awaiting-changes"||e(R)==="discard"));fe(Xe,{get open(){return e(r)},label:"Confirm discard",stacked:!0,children:(a,n)=>{var l=ut(),f=p(le(l),4);{var i=m=>{var o=dt(),b=S(o,!0);x(o),A(()=>U(b,e(M))),g(m,o)};re(f,m=>{e(M)&&m(i)})}var d=p(f,2),c=S(d);{let m=I(()=>!!e(R));X(c,{variant:"ghost",get disabled(){return e(m)},onclick:()=>{t(M,null),t(Z,null)},children:(o,b)=>{J();var u=Q("Cancel");g(o,u)},$$slots:{default:!0}})}var $=p(c,2);{let m=I(()=>!!e(R));X($,{variant:"outlined",get disabled(){return e(m)},onclick:()=>Ne("discard"),children:(o,b)=>{J();var u=Q();A(()=>U(u,e(R)==="discard"?"Discarding...":"Discard changes")),g(o,u)},$$slots:{default:!0}})}x(d),g(a,l)},$$slots:{default:!0}})}var Ye=p(Xe,2);{let r=I(()=>e(N)==="save");fe(Ye,{get open(){return e(r)},label:"Save project changes",children:(a,n)=>{var l=lt(),f=p(le(l),2),i=S(f),d=p(S(i),2);tt(d),x(i);var c=p(i,2);{var $=u=>{var w=ot(),q=S(w,!0);x(w),A(()=>U(q,e(V))),g(u,w)};re(c,u=>{e(V)&&u($)})}var m=p(c,2),o=S(m);{let u=I(()=>!!e(v));X(o,{variant:"ghost",get disabled(){return e(u)},onclick:()=>t(N,null),children:(w,q)=>{J();var B=Q("Cancel");g(w,B)},$$slots:{default:!0}})}var b=p(o,2);{let u=I(()=>!!e(v));X(b,{get disabled(){return e(u)},onclick:()=>je("save"),children:(w,q)=>{J();var B=Q();A(()=>U(B,e(v)==="save"?"Saving...":"Save")),g(w,B)},$$slots:{default:!0}})}x(m),x(f),A(()=>d.disabled=!!e(v)),rt(d,()=>e(_e),u=>t(_e,u)),g(a,l)},$$slots:{default:!0}})}var Tt=p(Ye,2);{let r=I(()=>e(N)==="discard");fe(Tt,{get open(){return e(r)},label:"Confirm discard",children:(a,n)=>{var l=ut(),f=p(le(l),4);{var i=m=>{var o=dt(),b=S(o,!0);x(o),A(()=>U(b,e(V))),g(m,o)};re(f,m=>{e(V)&&m(i)})}var d=p(f,2),c=S(d);{let m=I(()=>!!e(v));X(c,{variant:"ghost",get disabled(){return e(m)},onclick:()=>t(N,null),children:(o,b)=>{J();var u=Q("Cancel");g(o,u)},$$slots:{default:!0}})}var $=p(c,2);{let m=I(()=>!!e(v));X($,{variant:"outlined",get disabled(){return e(m)},onclick:()=>je("discard"),children:(o,b)=>{J();var u=Q();A(()=>U(u,e(v)==="discard"?"Discarding...":"Discard changes")),g(o,u)},$$slots:{default:!0}})}x(d),g(a,l)},$$slots:{default:!0}})}x(De),g(h,De),pt()}export{vr as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as c,f as u}from"../chunks/CMFNmSvo.js";import{p as v,f as l,t as _,a as g,c as e,r as o,s as x}from"../chunks/C4UC6AgE.js";import{s as p}from"../chunks/eMofpOrR.js";import{p as m}from"../chunks/DBB88ZB7.js";var d=u("<h1> </h1> <p> </p>",1);function q(f,i){v(i,!0);var t=d(),r=l(t),h=e(r,!0);o(r);var a=x(r,2),n=e(a,!0);o(a),_(()=>{var s;p(h,m.status),p(n,(s=m.error)==null?void 0:s.message)}),c(f,t),g()}export{q as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/DLQqXQ6R.js","../chunks/C1FmrZbK.js","../assets/editor.BMIWPGx3.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{c as Pn,a as h,h as Ka,f as S,d as Ks,b as Fe,t as ze}from"../chunks/CMFNmSvo.js";import{o as Ws,a as Cn}from"../chunks/CD_KdWs9.js";import{p as En,y as i,f as Ae,j as e,a as $n,w as I,n as w,bq as Wa,r as f,d as nn,t as N,x as pt,c as v,s as x,o as ke,T as Qa}from"../chunks/C4UC6AgE.js";import{s as q}from"../chunks/eMofpOrR.js";import{i as L}from"../chunks/D9BWOD7V.js";import{g as Ya,c as Xa,M as sn,R as Qs,k as _s}from"../chunks/DCwWNTpf.js";import{e as mr,i as bs}from"../chunks/BlFOg-Sd.js";import{h as Za}from"../chunks/CNIn4L55.js";import{a as ws,b as Kn,s as Xt,r as gr,d as _n,c as eo}from"../chunks/D8Lmn3S5.js";import{a as Me,c as Zr}from"../chunks/BHB0Pj1h.js";import{b as Jn,a as to}from"../chunks/DC7lPrn4.js";import{g as ro,P as no}from"../chunks/DzY_RPb9.js";import{B as Qe}from"../chunks/Byg3jr1u.js";import{P as so,C as ks}from"../chunks/BDijIo6D.js";import{I as bn}from"../chunks/CeoQ-OhK.js";import{T as Ys,a as an}from"../chunks/C60AG6QQ.js";import{h as ao,I as Zt}from"../chunks/DfkYlKBk.js";import{r as oo,p as or}from"../chunks/CupXtwVS.js";import{p as Ts}from"../chunks/DBB88ZB7.js";import{_ as Ss}from"../chunks/C1FmrZbK.js";import{b as io}from"../chunks/Ce6a22qU.js";import{e as lo,a as co}from"../chunks/PrCSpCPg.js";import{g as Xs}from"../chunks/CUKoVL36.js";import{t as Ne}from"../chunks/CDy1LBR5.js";import{R as en}from"../chunks/DnMS2X6M.js";import{i as zt}from"../chunks/DgGeUDDh.js";const Zs=/^[a-z0-9]+(-[a-z0-9]+)*$/,An=(t,r,s,o="")=>{const a=t.split(":");if(t.slice(0,1)==="@"){if(a.length<2||a.length>3)return null;o=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const m=a.pop(),k=a.pop(),P={provider:a.length>0?a[0]:o,prefix:k,name:m};return r&&!Tn(P)?null:P}const l=a[0],u=l.split("-");if(u.length>1){const m={provider:o,prefix:u.shift(),name:u.join("-")};return r&&!Tn(m)?null:m}if(s&&o===""){const m={provider:o,prefix:"",name:l};return r&&!Tn(m,s)?null:m}return null},Tn=(t,r)=>t?!!((r&&t.prefix===""||t.prefix)&&t.name):!1;function uo(t,r){const s=t.icons,o=t.aliases||Object.create(null),a=Object.create(null);function l(u){if(s[u])return a[u]=[];if(!(u in a)){a[u]=null;const m=o[u]&&o[u].parent,k=m&&l(m);k&&(a[u]=[m].concat(k))}return a[u]}return Object.keys(s).concat(Object.keys(o)).forEach(l),a}const ea=Object.freeze({left:0,top:0,width:16,height:16}),In=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),On=Object.freeze({...ea,...In}),Wn=Object.freeze({...On,body:"",hidden:!1});function fo(t,r){const s={};!t.hFlip!=!r.hFlip&&(s.hFlip=!0),!t.vFlip!=!r.vFlip&&(s.vFlip=!0);const o=((t.rotate||0)+(r.rotate||0))%4;return o&&(s.rotate=o),s}function Ps(t,r){const s=fo(t,r);for(const o in Wn)o in In?o in t&&!(o in s)&&(s[o]=In[o]):o in r?s[o]=r[o]:o in t&&(s[o]=t[o]);return s}function vo(t,r,s){const o=t.icons,a=t.aliases||Object.create(null);let l={};function u(m){l=Ps(o[m]||a[m],l)}return u(r),s.forEach(u),Ps(t,l)}function ta(t,r){const s=[];if(typeof t!="object"||typeof t.icons!="object")return s;t.not_found instanceof Array&&t.not_found.forEach(a=>{r(a,null),s.push(a)});const o=uo(t);for(const a in o){const l=o[a];l&&(r(a,vo(t,a,l)),s.push(a))}return s}const po={provider:"",aliases:{},not_found:{},...ea};function Vn(t,r){for(const s in r)if(s in t&&typeof t[s]!=typeof r[s])return!1;return!0}function ra(t){if(typeof t!="object"||t===null)return null;const r=t;if(typeof r.prefix!="string"||!t.icons||typeof t.icons!="object"||!Vn(t,po))return null;const s=r.icons;for(const a in s){const l=s[a];if(!a||typeof l.body!="string"||!Vn(l,Wn))return null}const o=r.aliases||Object.create(null);for(const a in o){const l=o[a],u=l.parent;if(!a||typeof u!="string"||!s[u]&&!o[u]||!Vn(l,Wn))return null}return r}const Is=Object.create(null);function go(t,r){return{provider:t,prefix:r,icons:Object.create(null),missing:new Set}}function zr(t,r){const s=Is[t]||(Is[t]=Object.create(null));return s[r]||(s[r]=go(t,r))}function na(t,r){return ra(r)?ta(r,(s,o)=>{o?t.icons[s]=o:t.missing.add(s)}):[]}function mo(t,r,s){try{if(typeof s.body=="string")return t.icons[r]={...s},!0}catch{}return!1}let on=!1;function sa(t){return typeof t=="boolean"&&(on=t),on}function ho(t){const r=typeof t=="string"?An(t,!0,on):t;if(r){const s=zr(r.provider,r.prefix),o=r.name;return s.icons[o]||(s.missing.has(o)?null:void 0)}}function xo(t,r){const s=An(t,!0,on);if(!s)return!1;const o=zr(s.provider,s.prefix);return r?mo(o,s.name,r):(o.missing.add(s.name),!0)}function yo(t,r){if(typeof t!="object")return!1;if(typeof r!="string"&&(r=t.provider||""),on&&!r&&!t.prefix){let a=!1;return ra(t)&&(t.prefix="",ta(t,(l,u)=>{xo(l,u)&&(a=!0)})),a}const s=t.prefix;if(!Tn({prefix:s,name:"a"}))return!1;const o=zr(r,s);return!!na(o,t)}const aa=Object.freeze({width:null,height:null}),oa=Object.freeze({...aa,...In}),_o=/(-?[0-9.]*[0-9]+[0-9.]*)/g,bo=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Cs(t,r,s){if(r===1)return t;if(s=s||100,typeof t=="number")return Math.ceil(t*r*s)/s;if(typeof t!="string")return t;const o=t.split(_o);if(o===null||!o.length)return t;const a=[];let l=o.shift(),u=bo.test(l);for(;;){if(u){const m=parseFloat(l);isNaN(m)?a.push(l):a.push(Math.ceil(m*r*s)/s)}else a.push(l);if(l=o.shift(),l===void 0)return a.join("");u=!u}}function wo(t,r="defs"){let s="";const o=t.indexOf("<"+r);for(;o>=0;){const a=t.indexOf(">",o),l=t.indexOf("</"+r);if(a===-1||l===-1)break;const u=t.indexOf(">",l);if(u===-1)break;s+=t.slice(a+1,l).trim(),t=t.slice(0,o).trim()+t.slice(u+1)}return{defs:s,content:t}}function ko(t,r){return t?"<defs>"+t+"</defs>"+r:r}function To(t,r,s){const o=wo(t);return ko(o.defs,r+o.content+s)}const So=t=>t==="unset"||t==="undefined"||t==="none";function Po(t,r){const s={...On,...t},o={...oa,...r},a={left:s.left,top:s.top,width:s.width,height:s.height};let l=s.body;[s,o].forEach(me=>{const K=[],H=me.hFlip,E=me.vFlip;let A=me.rotate;H?E?A+=2:(K.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),K.push("scale(-1 1)"),a.top=a.left=0):E&&(K.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),K.push("scale(1 -1)"),a.top=a.left=0);let U;switch(A<0&&(A-=Math.floor(A/4)*4),A=A%4,A){case 1:U=a.height/2+a.top,K.unshift("rotate(90 "+U.toString()+" "+U.toString()+")");break;case 2:K.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:U=a.width/2+a.left,K.unshift("rotate(-90 "+U.toString()+" "+U.toString()+")");break}A%2===1&&(a.left!==a.top&&(U=a.left,a.left=a.top,a.top=U),a.width!==a.height&&(U=a.width,a.width=a.height,a.height=U)),K.length&&(l=To(l,'<g transform="'+K.join(" ")+'">',"</g>"))});const u=o.width,m=o.height,k=a.width,P=a.height;let C,O;u===null?(O=m===null?"1em":m==="auto"?P:m,C=Cs(O,k/P)):(C=u==="auto"?k:u,O=m===null?Cs(C,P/k):m==="auto"?P:m);const $={},R=(me,K)=>{So(K)||($[me]=K.toString())};R("width",C),R("height",O);const V=[a.left,a.top,k,P];return $.viewBox=V.join(" "),{attributes:$,viewBox:V,body:l}}const Io=/\sid="(\S+)"/g,Co="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let Eo=0;function $o(t,r=Co){const s=[];let o;for(;o=Io.exec(t);)s.push(o[1]);if(!s.length)return t;const a="suffix"+(Math.random()*16777216|Date.now()).toString(16);return s.forEach(l=>{const u=typeof r=="function"?r(l):r+(Eo++).toString(),m=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+m+')([")]|\\.[a-z])',"g"),"$1"+u+a+"$3")}),t=t.replace(new RegExp(a,"g"),""),t}const Qn=Object.create(null);function Ao(t,r){Qn[t]=r}function Yn(t){return Qn[t]||Qn[""]}function Zn(t){let r;if(typeof t.resources=="string")r=[t.resources];else if(r=t.resources,!(r instanceof Array)||!r.length)return null;return{resources:r,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const es=Object.create(null),tn=["https://api.simplesvg.com","https://api.unisvg.com"],Sn=[];for(;tn.length>0;)tn.length===1||Math.random()>.5?Sn.push(tn.shift()):Sn.push(tn.pop());es[""]=Zn({resources:["https://api.iconify.design"].concat(Sn)});function Oo(t,r){const s=Zn(r);return s===null?!1:(es[t]=s,!0)}function ts(t){return es[t]}const Lo=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let Es=Lo();function Ro(t,r){const s=ts(t);if(!s)return 0;let o;if(!s.maxURL)o=0;else{let a=0;s.resources.forEach(u=>{a=Math.max(a,u.length)});const l=r+".json?icons=";o=s.maxURL-a-s.path.length-l.length}return o}function jo(t){return t===404}const Mo=(t,r,s)=>{const o=[],a=Ro(t,r),l="icons";let u={type:l,provider:t,prefix:r,icons:[]},m=0;return s.forEach((k,P)=>{m+=k.length+1,m>=a&&P>0&&(o.push(u),u={type:l,provider:t,prefix:r,icons:[]},m=k.length),u.icons.push(k)}),o.push(u),o};function No(t){if(typeof t=="string"){const r=ts(t);if(r)return r.path}return"/"}const Fo=(t,r,s)=>{if(!Es){s("abort",424);return}let o=No(r.provider);switch(r.type){case"icons":{const l=r.prefix,m=r.icons.join(","),k=new URLSearchParams({icons:m});o+=l+".json?"+k.toString();break}case"custom":{const l=r.uri;o+=l.slice(0,1)==="/"?l.slice(1):l;break}default:s("abort",400);return}let a=503;Es(t+o).then(l=>{const u=l.status;if(u!==200){setTimeout(()=>{s(jo(u)?"abort":"next",u)});return}return a=501,l.json()}).then(l=>{if(typeof l!="object"||l===null){setTimeout(()=>{l===404?s("abort",l):s("next",a)});return}setTimeout(()=>{s("success",l)})}).catch(()=>{s("next",a)})},Do={prepare:Mo,send:Fo};function ia(t,r){t.forEach(s=>{const o=s.loaderCallbacks;o&&(s.loaderCallbacks=o.filter(a=>a.id!==r))})}function qo(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const r=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!r.length)return;let s=!1;const o=t.provider,a=t.prefix;r.forEach(l=>{const u=l.icons,m=u.pending.length;u.pending=u.pending.filter(k=>{if(k.prefix!==a)return!0;const P=k.name;if(t.icons[P])u.loaded.push({provider:o,prefix:a,name:P});else if(t.missing.has(P))u.missing.push({provider:o,prefix:a,name:P});else return s=!0,!0;return!1}),u.pending.length!==m&&(s||ia([t],l.id),l.callback(u.loaded.slice(0),u.missing.slice(0),u.pending.slice(0),l.abort))})}))}let zo=0;function Ho(t,r,s){const o=zo++,a=ia.bind(null,s,o);if(!r.pending.length)return a;const l={id:o,icons:r,callback:t,abort:a};return s.forEach(u=>{(u.loaderCallbacks||(u.loaderCallbacks=[])).push(l)}),a}function Jo(t){const r={loaded:[],missing:[],pending:[]},s=Object.create(null);t.sort((a,l)=>a.provider!==l.provider?a.provider.localeCompare(l.provider):a.prefix!==l.prefix?a.prefix.localeCompare(l.prefix):a.name.localeCompare(l.name));let o={provider:"",prefix:"",name:""};return t.forEach(a=>{if(o.name===a.name&&o.prefix===a.prefix&&o.provider===a.provider)return;o=a;const l=a.provider,u=a.prefix,m=a.name,k=s[l]||(s[l]=Object.create(null)),P=k[u]||(k[u]=zr(l,u));let C;m in P.icons?C=r.loaded:u===""||P.missing.has(m)?C=r.missing:C=r.pending;const O={provider:l,prefix:u,name:m};C.push(O)}),r}function Vo(t,r=!0,s=!1){const o=[];return t.forEach(a=>{const l=typeof a=="string"?An(a,r,s):a;l&&o.push(l)}),o}const Uo={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Bo(t,r,s,o){const a=t.resources.length,l=t.random?Math.floor(Math.random()*a):t.index;let u;if(t.random){let J=t.resources.slice(0);for(u=[];J.length>1;){const ie=Math.floor(Math.random()*J.length);u.push(J[ie]),J=J.slice(0,ie).concat(J.slice(ie+1))}u=u.concat(J)}else u=t.resources.slice(l).concat(t.resources.slice(0,l));const m=Date.now();let k="pending",P=0,C,O=null,$=[],R=[];typeof o=="function"&&R.push(o);function V(){O&&(clearTimeout(O),O=null)}function me(){k==="pending"&&(k="aborted"),V(),$.forEach(J=>{J.status==="pending"&&(J.status="aborted")}),$=[]}function K(J,ie){ie&&(R=[]),typeof J=="function"&&R.push(J)}function H(){return{startTime:m,payload:r,status:k,queriesSent:P,queriesPending:$.length,subscribe:K,abort:me}}function E(){k="failed",R.forEach(J=>{J(void 0,C)})}function A(){$.forEach(J=>{J.status==="pending"&&(J.status="aborted")}),$=[]}function U(J,ie,He){const Oe=ie!=="success";switch($=$.filter(re=>re!==J),k){case"pending":break;case"failed":if(Oe||!t.dataAfterTimeout)return;break;default:return}if(ie==="abort"){C=He,E();return}if(Oe){C=He,$.length||(u.length?B():E());return}if(V(),A(),!t.random){const re=t.resources.indexOf(J.resource);re!==-1&&re!==t.index&&(t.index=re)}k="completed",R.forEach(re=>{re(He)})}function B(){if(k!=="pending")return;V();const J=u.shift();if(J===void 0){if($.length){O=setTimeout(()=>{V(),k==="pending"&&(A(),E())},t.timeout);return}E();return}const ie={status:"pending",resource:J,callback:(He,Oe)=>{U(ie,He,Oe)}};$.push(ie),P++,O=setTimeout(B,t.rotate),s(J,r,ie.callback)}return setTimeout(B),H}function la(t){const r={...Uo,...t};let s=[];function o(){s=s.filter(m=>m().status==="pending")}function a(m,k,P){const C=Bo(r,m,k,(O,$)=>{o(),P&&P(O,$)});return s.push(C),C}function l(m){return s.find(k=>m(k))||null}return{query:a,find:l,setIndex:m=>{r.index=m},getIndex:()=>r.index,cleanup:o}}function $s(){}const Un=Object.create(null);function Go(t){if(!Un[t]){const r=ts(t);if(!r)return;const s=la(r),o={config:r,redundancy:s};Un[t]=o}return Un[t]}function Ko(t,r,s){let o,a;if(typeof t=="string"){const l=Yn(t);if(!l)return s(void 0,424),$s;a=l.send;const u=Go(t);u&&(o=u.redundancy)}else{const l=Zn(t);if(l){o=la(l);const u=t.resources?t.resources[0]:"",m=Yn(u);m&&(a=m.send)}}return!o||!a?(s(void 0,424),$s):o.query(r,a,s)().abort}function As(){}function Wo(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,qo(t)}))}function Qo(t){const r=[],s=[];return t.forEach(o=>{(o.match(Zs)?r:s).push(o)}),{valid:r,invalid:s}}function rn(t,r,s){function o(){const a=t.pendingIcons;r.forEach(l=>{a&&a.delete(l),t.icons[l]||t.missing.add(l)})}if(s&&typeof s=="object")try{if(!na(t,s).length){o();return}}catch(a){console.error(a)}o(),Wo(t)}function Os(t,r){t instanceof Promise?t.then(s=>{r(s)}).catch(()=>{r(null)}):r(t)}function Yo(t,r){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(r).sort():t.iconsToLoad=r,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:s,prefix:o}=t,a=t.iconsToLoad;if(delete t.iconsToLoad,!a||!a.length)return;const l=t.loadIcon;if(t.loadIcons&&(a.length>1||!l)){Os(t.loadIcons(a,o,s),C=>{rn(t,a,C)});return}if(l){a.forEach(C=>{const O=l(C,o,s);Os(O,$=>{const R=$?{prefix:o,icons:{[C]:$}}:null;rn(t,[C],R)})});return}const{valid:u,invalid:m}=Qo(a);if(m.length&&rn(t,m,null),!u.length)return;const k=o.match(Zs)?Yn(s):null;if(!k){rn(t,u,null);return}k.prepare(s,o,u).forEach(C=>{Ko(s,C,O=>{rn(t,C.icons,O)})})}))}const Xo=(t,r)=>{const s=Vo(t,!0,sa()),o=Jo(s);if(!o.pending.length){let k=!0;return r&&setTimeout(()=>{k&&r(o.loaded,o.missing,o.pending,As)}),()=>{k=!1}}const a=Object.create(null),l=[];let u,m;return o.pending.forEach(k=>{const{provider:P,prefix:C}=k;if(C===m&&P===u)return;u=P,m=C,l.push(zr(P,C));const O=a[P]||(a[P]=Object.create(null));O[C]||(O[C]=[])}),o.pending.forEach(k=>{const{provider:P,prefix:C,name:O}=k,$=zr(P,C),R=$.pendingIcons||($.pendingIcons=new Set);R.has(O)||(R.add(O),a[P][C].push(O))}),l.forEach(k=>{const P=a[k.provider][k.prefix];P.length&&Yo(k,P)}),r?Ho(r,o,l):As};function Zo(t,r){const s={...t};for(const o in r){const a=r[o],l=typeof a;o in aa?(a===null||a&&(l==="string"||l==="number"))&&(s[o]=a):l===typeof s[o]&&(s[o]=o==="rotate"?a%4:a)}return s}const ei=/[\s,]+/;function ti(t,r){r.split(ei).forEach(s=>{switch(s.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function ri(t,r=0){const s=t.replace(/^-?[0-9.]*/,"");function o(a){for(;a<0;)a+=4;return a%4}if(s===""){const a=parseInt(t);return isNaN(a)?0:o(a)}else if(s!==t){let a=0;switch(s){case"%":a=25;break;case"deg":a=90}if(a){let l=parseFloat(t.slice(0,t.length-s.length));return isNaN(l)?0:(l=l/a,l%1===0?o(l):0)}}return r}function ni(t,r){let s=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const o in r)s+=" "+o+'="'+r[o]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+s+">"+t+"</svg>"}function si(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function ai(t){return"data:image/svg+xml,"+si(t)}function oi(t){return'url("'+ai(t)+'")'}const Ls={...oa,inline:!1},ii={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},li={display:"inline-block"},Xn={"background-color":"currentColor"},ca={"background-color":"transparent"},Rs={image:"var(--svg)",repeat:"no-repeat",size:"100% 100%"},js={"-webkit-mask":Xn,mask:Xn,background:ca};for(const t in js){const r=js[t];for(const s in Rs)r[t+"-"+s]=Rs[s]}function ci(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}function ui(t,r){const s=Zo(Ls,r),o=r.mode||"svg",a=o==="svg"?{...ii}:{};t.body.indexOf("xlink:")===-1&&delete a["xmlns:xlink"];let l=typeof r.style=="string"?r.style:"";for(let H in r){const E=r[H];if(E!==void 0)switch(H){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":s[H]=E===!0||E==="true"||E===1;break;case"flip":typeof E=="string"&&ti(s,E);break;case"color":l=l+(l.length>0&&l.trim().slice(-1)!==";"?";":"")+"color: "+E+"; ";break;case"rotate":typeof E=="string"?s[H]=ri(E):typeof E=="number"&&(s[H]=E);break;case"ariaHidden":case"aria-hidden":E!==!0&&E!=="true"&&delete a["aria-hidden"];break;default:if(H.slice(0,3)==="on:")break;Ls[H]===void 0&&(a[H]=E)}}const u=Po(t,s),m=u.attributes;if(s.inline&&(l="vertical-align: -0.125em; "+l),o==="svg"){Object.assign(a,m),l!==""&&(a.style=l);let H=0,E=r.id;return typeof E=="string"&&(E=E.replace(/-/g,"_")),{svg:!0,attributes:a,body:$o(u.body,E?()=>E+"ID"+H++:"iconifySvelte")}}const{body:k,width:P,height:C}=t,O=o==="mask"||(o==="bg"?!1:k.indexOf("currentColor")!==-1),$=ni(k,{...m,width:P+"",height:C+""}),V={"--svg":oi($)},me=H=>{const E=m[H];E&&(V[H]=ci(E))};me("width"),me("height"),Object.assign(V,li,O?Xn:ca);let K="";for(const H in V)K+=H+": "+V[H]+";";return a.style=K+l,{svg:!1,attributes:a}}sa(!0);Ao("",Do);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const r=t.IconifyPreload,s="Invalid IconifyPreload syntax.";typeof r=="object"&&r!==null&&(r instanceof Array?r:[r]).forEach(o=>{try{(typeof o!="object"||o===null||o instanceof Array||typeof o.icons!="object"||typeof o.prefix!="string"||!yo(o))&&console.error(s)}catch{console.error(s)}})}if(t.IconifyProviders!==void 0){const r=t.IconifyProviders;if(typeof r=="object"&&r!==null)for(let s in r){const o="IconifyProviders["+s+"] is invalid.";try{const a=r[s];if(typeof a!="object"||!a||a.resources===void 0)continue;Oo(s,a)||console.error(o)}catch{console.error(o)}}}}function di(t,r,s,o,a){function l(){r.loading&&(r.loading.abort(),r.loading=null)}if(typeof t=="object"&&t!==null&&typeof t.body=="string")return r.name="",l(),{data:{...On,...t}};let u;if(typeof t!="string"||(u=An(t,!1,!0))===null)return l(),null;const m=ho(u);if(!m)return s&&(!r.loading||r.loading.name!==t)&&(l(),r.name="",r.loading={name:t,abort:Xo([u],o)}),null;l(),r.name!==t&&(r.name=t,a&&!r.destroyed&&setTimeout(()=>{a(t)}));const k=["iconify"];return u.prefix!==""&&k.push("iconify--"+u.prefix),u.provider!==""&&k.push("iconify--"+u.provider),{data:m,classes:k}}function fi(t,r){return t?ui({...On,...t},r):null}var vi=new Set(["$$slots","$$events","$$legacy"]),pi=Ka("<svg></svg>"),gi=S("<span></span>");function er(t,r){En(r,!0);const s={name:"",loading:null,destroyed:!1},o=oo(r,vi);let a=I(!1),l=I(0),u=w(()=>!!r.ssr||e(a)),m=w(()=>(e(l),di(r.icon,s,e(u),P,r.onload))),k=w(()=>{const R=e(m)?fi(e(m).data,o):null;return R&&e(m).classes&&(R.attributes.class=(typeof o.class=="string"?o.class+" ":"")+e(m).classes.join(" ")),R});function P(){Wa(l)}Ws(()=>{i(a,!0)}),Cn(()=>{s.destroyed=!0,s.loading&&(s.loading.abort(),s.loading=null)});var C=Pn(),O=Ae(C);{var $=R=>{var V=Pn(),me=Ae(V);{var K=E=>{var A=pi();ws(A,()=>({...e(k).attributes})),ao(A,()=>e(k).body,!0),f(A),h(E,A)},H=E=>{var A=gi();ws(A,()=>({...e(k).attributes})),h(E,A)};L(me,E=>{e(k).svg?E(K):E(H,-1)})}h(R,V)};L(O,R=>{e(k)&&R($)})}h(t,C),$n()}var mi=S('<div class="w-full"></div>');function Ms(t,r){En(r,!0);const s=Xs();let o=I(null),a=null,l=[],u=null,m=!1,k,P=or(r,"language",3,"plaintext"),C=or(r,"height",3,120),O=or(r,"readOnly",3,!1);const $=w(()=>s.isWritePaused()),R=w(()=>O()||e($));let V=null,me=I(!1),K=I(!1);function H(A){e(K)||A.stopPropagation()}Ws(async()=>{var He,Oe;if(!k)return;k.addEventListener("wheel",H,{capture:!0,passive:!0}),lo();const A=await Ss(()=>import("../chunks/DLQqXQ6R.js").then(re=>re.e),__vite__mapDeps([0,1,2]),import.meta.url);if(m)return;u=A,co(A);const U=P()==="json"?"json":P()==="markdown"?"markdown":"plaintext";i(o,A.editor.create(k,{...Ya("test-history"),value:r.value??"",language:U,readOnly:e(R),domReadOnly:e(R)}),!0);const B=e(o);if(!B)return;a=B.getModel(),V=Xa(A,B),V.update(r.highlights??[]),i(me,!0),l.push(B.onDidFocusEditorText(()=>{i(K,!0)})),l.push(B.onDidAttemptReadOnlyEdit(()=>{e($)&&s.requestBlockedOperationNotice()})),l.push(B.onDidChangeModelContent(()=>{var re;try{const Rt=B.getValue();if(Rt===r.value)return;(re=r.onChange)==null||re.call(r,Rt)}catch(Rt){console.error("MiniEditor change error",Rt)}})),l.push(B.onDidBlurEditorText(()=>{var re;i(K,!1);try{(re=r.onBlur)==null||re.call(r,B.getValue())}catch{}}));const J=(He=B.onDidFocusEditorWidget)==null?void 0:He.call(B,()=>{i(K,!0)});J&&l.push(J);const ie=(Oe=B.onDidBlurEditorWidget)==null?void 0:Oe.call(B,()=>{var re;i(K,!1);try{(re=r.onBlur)==null||re.call(r,B.getValue())}catch{}});ie&&l.push(ie)}),Cn(()=>{m=!0,i(me,!1);try{k.removeEventListener("wheel",H,{capture:!0})}catch{}for(const U of l)try{U.dispose()}catch{}l=[],V==null||V.dispose(),V=null;const A=a;a=null;try{if(e(o)){try{e(o).setModel(null)}catch{}e(o).dispose()}}finally{i(o,null)}try{A==null||A.dispose()}catch{}u=null}),nn(()=>{if(!e(o))return;const A=P()==="json"?"json":P()==="markdown"?"markdown":"plaintext",U=e(o).getModel();if(!U||U.getLanguageId()===A)return;let B=!1;return(u?Promise.resolve(u):Ss(()=>import("../chunks/DLQqXQ6R.js").then(ie=>ie.e),__vite__mapDeps([0,1,2]),import.meta.url)).then(ie=>{if(!B)try{ie.editor.setModelLanguage(U,A)}catch{}}),()=>{B=!0}}),nn(()=>{const A=r.value??"",U=r.highlights??[];!e(o)||!e(me)||(A!==e(o).getValue()&&e(o).setValue(A),V==null||V.update(U))}),nn(()=>{var U;const A=e(R);(U=e(o))==null||U.updateOptions({readOnly:A,domReadOnly:A})});var E=mi();io(E,A=>k=A,()=>k),N(()=>Kn(E,`height:${C()}px`)),h(t,E),$n()}var hi=S('<button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-rc-gray-400">Fix</button>'),xi=S('<button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-rc-gray-400">Analyze</button>'),yi=S('<div><div class="mb-1 text-xs text-rc-gray-300"> </div> <div class="whitespace-pre-wrap break-words text-rc-gray-100"> </div></div>'),_i=S('<div class="flex flex-col gap-3"></div>'),Ns=S('<div class="p-2 text-rc-gray-300">Loading…</div>'),Fs=S('<div class="p-2 text-red-400"> </div>'),bi=S('<div class="flex h-full flex-col gap-2"><div class="grid grid-cols-2 gap-2"><div class="flex items-center justify-start"><!></div> <div class="flex items-center justify-end"><!></div></div> <!></div>'),wi=S('<div class="h-[55vh]"><!></div>'),ki=S("<!> <!> <!>",1),Ti=S('<!> <div class="mt-2 h-[55vh]"><!></div>',1),Si=S('<div class="mt-1 flex flex-wrap items-center gap-x-2 gap-y-1"><!> <button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-rc-gray-400"> </button> <!> <button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none">See variants</button> <button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none">Prompt</button> <button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none">Conversation</button> <button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none">Context</button> <button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none">Debug</button></div> <!> <!> <!>',1);function Ds(t,r){En(r,!0);let s=or(r,"actionsDisabled",3,!1),o=or(r,"actionsInert",3,!1),a=or(r,"addTestDisabled",3,!1),l=or(r,"showAnalyze",3,!0),u=or(r,"analyzeDisabled",3,!1),m=or(r,"fixDisabled",3,!1),k=I(!1),P=I(!1),C=I(!1),O=I("errors"),$=I("prompt"),R=I(null),V=I(null),me=I(null),K=I(null),H=I(null),E=I(null),A=I(null),U=I(pt({prompt:!1,conversation:!1,context:!1,errors:!1,traces:!1,logs:!1})),B=I(pt({prompt:null,conversation:null,context:null,errors:null,traces:null,logs:null})),J=0,ie=I(null),He=null,Oe=I("idle"),re=null;function Rt(T){try{return{raw:T,formatted:JSON.stringify(JSON.parse(T),null,2)}}catch{return{raw:T,formatted:T}}}async function jt(T){const ne=await Ne.tests.resultEntry.query({agent:T.agent,region:r.region,testId:T.id,resultKey:T.key,timestamp:T.timestamp,index:T.run});return Rt(ne)}function hr(T){return T==="prompt"?e(V)!==null&&e(R)!==null:T==="conversation"?e(me)!==null:T==="context"?e(K)!==null:T==="errors"?e(H)!==null:T==="traces"?e(E)!==null:e(A)!==null}async function kt(T){if(hr(T)||e(U)[T])return;const ne=J;i(U,{...e(U),[T]:!0},!0),i(B,{...e(B),[T]:null},!0);try{if(T==="prompt"){const[ye,X]=await Promise.all([jt(r.links.renderedPrompt),jt(r.links.receivedPrompt)]);if(ne!==J)return;i(R,ye,!0),i(V,X,!0)}else{const ye=T==="conversation"?r.links.conversation:T==="context"?r.links.context:T==="errors"?r.links.errors:T==="traces"?r.links.traces:r.links.logs,X=await jt(ye);if(ne!==J)return;T==="conversation"?i(me,X,!0):T==="context"?i(K,X,!0):T==="errors"?i(H,X,!0):T==="traces"?i(E,X,!0):i(A,X,!0)}}catch(ye){if(ne!==J)return;console.error(ye),i(B,{...e(B),[T]:"Failed to load content"},!0)}finally{ne===J&&i(U,{...e(U),[T]:!1},!0)}}function Be(){i(R,null),i(V,null),i(me,null),i(K,null),i(H,null),i(E,null),i(A,null),i(U,{prompt:!1,conversation:!1,context:!1,errors:!1,traces:!1,logs:!1},!0),i(B,{prompt:null,conversation:null,context:null,errors:null,traces:null,logs:null},!0)}function ir(){J+=1,i(O,"errors"),Be(),i(k,!0),kt("errors")}function Ht(T){J+=1,i($,T,!0),Be(),i(P,!0),kt(T)}function lr(T){return T==="prompt"?"Prompt":T==="conversation"?"Conversation":"Context"}function Tt(T){i(O,T,!0),kt(T)}async function xr(){if(e(Oe)!=="adding"){i(Oe,"adding");try{await r.onAddTest(),i(Oe,"added")}catch(T){console.error("Failed to add test",T),i(Oe,"failed")}re&&clearTimeout(re),re=window.setTimeout(()=>{i(Oe,"idle"),re=null},2500)}}async function tr(T){if(!(!e(V)||!e(R)))try{const ne=T==="raw"?e(V).raw:e(R).raw;await navigator.clipboard.writeText(ne),i(ie,T,!0),He&&clearTimeout(He),He=window.setTimeout(()=>{i(ie,null),He=null},2e3)}catch(ne){console.error("Failed to copy prompt",ne)}}Cn(()=>{J+=1,He&&clearTimeout(He),re&&clearTimeout(re)});var st=Si(),Hr=Ae(st),ln=v(Hr);{var Ln=T=>{var ne=hi();N(()=>{ne.inert=o(),ne.disabled=s()||m()}),Fe("click",ne,function(...ye){var X;(X=r.onFix)==null||X.apply(this,ye)}),h(T,ne)};L(ln,T=>{r.onFix&&T(Ln)})}var Jt=x(ln,2),Lr=v(Jt,!0);f(Jt);var Jr=x(Jt,2);{var yr=T=>{var ne=xi();N(()=>ne.disabled=u()),Fe("click",ne,function(...ye){var X;(X=r.onAnalyze)==null||X.apply(this,ye)}),h(T,ne)};L(Jr,T=>{l()&&T(yr)})}var Vr=x(Jr,2),ae=x(Vr,2),_r=x(ae,2),Je=x(_r,2),Rn=x(Je,2);f(Hr);var cn=x(Hr,2);{var un=T=>{{const ne=X=>{var Ve=_i();mr(Ve,21,()=>r.variants,Mt=>Mt.index,(Mt,gt)=>{var Vt=yi(),Nt=v(Vt),_e=v(Nt);f(Nt);var Ie=x(Nt,2),he=v(Ie,!0);f(Ie),f(Vt),N(()=>{Me(Vt,1,`rounded-lg border p-3 ${e(gt).index===r.runIndex?"border-rc-green-450":"border-rc-gray-650"} ${e(gt).success?"bg-rc-green-700/80":"bg-rc-gray-900/60"}`),q(_e,`Run ${e(gt).index??""}${e(gt).index===r.runIndex?" • selected":""}`),q(he,e(gt).text||e(gt).errors||"—")}),h(Mt,Vt)}),f(Ve),h(X,Ve)};let ye=w(()=>`Variants — ${r.scenario||"Test"}`);sn(T,{get title(){return e(ye)},class:"!w-[80vw] !max-w-4xl",get open(){return e(C)},set open(X){i(C,X,!0)},children:ne,$$slots:{default:!0}})}};L(cn,T=>{e(C)&&T(un)})}var ue=x(cn,2);{var cr=T=>{{const ne=X=>{var Ve=wi(),Mt=v(Ve);{var gt=he=>{var Te=Ns();h(he,Te)},Vt=he=>{var Te=Fs(),ee=v(Te,!0);f(Te),N(()=>q(ee,e(B)[e($)])),h(he,Te)},Nt=he=>{var Te=bi(),ee=v(Te),oe=v(ee),mt=v(oe);{let De=w(()=>!e(V).raw.trim());Qe(mt,{variant:"secondary",size:"small",get disabled(){return e(De)},onclick:()=>tr("raw"),children:(Ft,Ut)=>{ke();var Xe=ze();N(()=>q(Xe,e(ie)==="raw"?"Copied raw prompt":"Copy raw prompt")),h(Ft,Xe)},$$slots:{default:!0}})}f(oe);var at=x(oe,2),ht=v(at);{let De=w(()=>!e(R).raw.trim());Qe(ht,{variant:"secondary",size:"small",get disabled(){return e(De)},onclick:()=>tr("rendered"),children:(Ft,Ut)=>{ke();var Xe=ze();N(()=>q(Xe,e(ie)==="rendered"?"Copied rendered prompt":"Copy rendered prompt")),h(Ft,Xe)},$$slots:{default:!0}})}f(at),f(ee);var St=x(ee,2);Qs(St,{variant:"generic",get original(){return e(V).formatted},get modified(){return e(R).formatted},language:"markdown",class:"min-h-0 flex-1"}),f(Te),h(he,Te)},_e=he=>{{let Te=w(()=>e(me).formatted||"—");en(he,{get value(){return e(Te)},language:"text",class:"h-full"})}},Ie=he=>{{let Te=w(()=>e(K).formatted||"—");en(he,{get value(){return e(Te)},language:"json",class:"h-full"})}};L(Mt,he=>{e(U)[e($)]?he(gt):e(B)[e($)]?he(Vt,1):e($)==="prompt"&&e(V)&&e(R)?he(Nt,2):e($)==="conversation"&&e(me)?he(_e,3):e($)==="context"&&e(K)&&he(Ie,4)})}f(Ve),h(X,Ve)};let ye=w(()=>`${lr(e($))} — ${r.scenario||"Test"} (run ${r.runIndex})`);sn(T,{get title(){return e(ye)},class:"!w-[85vw] !max-w-5xl",get open(){return e(P)},set open(X){i(P,X,!0)},children:ne,$$slots:{default:!0}})}};L(ue,T=>{e(P)&&T(cr)})}var br=x(ue,2);{var Rr=T=>{{const ne=X=>{var Ve=Ti(),Mt=Ae(Ve);Ys(Mt,{get value(){return e(O)},ariaLabel:"Test run debug tabs",onChange:({value:ee})=>Tt(ee),children:(ee,oe)=>{var mt=ki(),at=Ae(mt);an(at,{value:"errors",class:"px-3",children:(De,Ft)=>{ke();var Ut=ze("Errors");h(De,Ut)},$$slots:{default:!0}});var ht=x(at,2);an(ht,{value:"traces",class:"px-3",children:(De,Ft)=>{ke();var Ut=ze("Traces");h(De,Ut)},$$slots:{default:!0}});var St=x(ht,2);an(St,{value:"logs",class:"px-3",children:(De,Ft)=>{ke();var Ut=ze("Logs");h(De,Ut)},$$slots:{default:!0}}),h(ee,mt)},$$slots:{default:!0}});var gt=x(Mt,2),Vt=v(gt);{var Nt=ee=>{var oe=Ns();h(ee,oe)},_e=ee=>{var oe=Fs(),mt=v(oe,!0);f(oe),N(()=>q(mt,e(B)[e(O)])),h(ee,oe)},Ie=ee=>{{let oe=w(()=>e(H).formatted||"—");en(ee,{get value(){return e(oe)},language:"text",class:"h-full"})}},he=ee=>{{let oe=w(()=>e(E).formatted||"—");en(ee,{get value(){return e(oe)},language:"json",class:"h-full"})}},Te=ee=>{{let oe=w(()=>e(A).formatted||"—");en(ee,{get value(){return e(oe)},language:"text",class:"h-full"})}};L(Vt,ee=>{e(U)[e(O)]?ee(Nt):e(B)[e(O)]?ee(_e,1):e(O)==="errors"&&e(H)?ee(Ie,2):e(O)==="traces"&&e(E)?ee(he,3):e(O)==="logs"&&e(A)&&ee(Te,4)})}f(gt),h(X,Ve)};let ye=w(()=>`Debug — ${r.scenario||"Test"} (run ${r.runIndex})`);sn(T,{get title(){return e(ye)},class:"!w-[85vw] !max-w-5xl",get open(){return e(k)},set open(X){i(k,X,!0)},children:ne,$$slots:{default:!0}})}};L(br,T=>{e(k)&&T(Rr)})}N(()=>{Jt.inert=o(),Jt.disabled=s()||a()||e(Oe)==="adding",q(Lr,e(Oe)==="adding"?"Adding…":e(Oe)==="added"?"Added":e(Oe)==="failed"?"Failed":"Add test")}),Fe("click",Jt,xr),Fe("click",Vr,()=>i(C,!0)),Fe("click",ae,()=>Ht("prompt")),Fe("click",_r,()=>Ht("conversation")),Fe("click",Je,()=>Ht("context")),Fe("click",Rn,ir),h(t,st),$n()}Ks(["click"]);const Pi=`Update the conversation history so it reflects behaviour that is valid under the current prompt. Preserve the test's intent and expected outcome, and make only the smallest necessary changes. Possible roles: "Agent", "User", "System"`;function Ii(t,r){return[t.trim()==="LLM"?"":t.trim(),r.trim()].filter(Boolean).join(" ")}function Ci(t){const r=Ii(t.assertionLabel,t.assertionValue);return`You will be given the context, the conversation and the desired output and assertion about it. First, find why the prompt is not producing the correct result. It's usually one concrete instruction within the relevant section, or a contradiction. Then, change the prompt minimally so this will work, but keeping the prompt clean and comprehensive is more important. Try to provide as general solution as possible. Try to change just one part of the prompt, not multiple parts. Avoid adding exceptions and overrides. Avoid duplicating information that already exists in the prompt.
|
|
3
|
+
|
|
4
|
+
Context:
|
|
5
|
+
${t.context.trim()}
|
|
6
|
+
|
|
7
|
+
Conversation:
|
|
8
|
+
${t.conversation.trim()}
|
|
9
|
+
|
|
10
|
+
Desired outcome:
|
|
11
|
+
${t.expectedOutput.trim()}
|
|
12
|
+
|
|
13
|
+
Assertion about outcome:
|
|
14
|
+
${r}
|
|
15
|
+
|
|
16
|
+
Current incorrect outcome:
|
|
17
|
+
${t.currentIncorrectOutcome.trim()}`}function Ei(t){const r=t<0?-1:1,s=Math.abs(t),o=.254829592,a=-.284496736,l=1.421413741,u=-1.453152027,m=1.061405429,P=1/(1+.3275911*s),C=1-((((m*P+u)*P+l)*P+a)*P+o)*P*Math.exp(-s*s);return r*C}function $i(t){return .5*(1+Ei(t/Math.SQRT2))}function ua(t,r,s,o){if(!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(s)||!Number.isFinite(o)||r<=0||o<=0)return null;const a=t/r,l=s/o,u=(t+s)/(r+o),m=Math.sqrt(u*(1-u)*(1/r+1/o));if(!Number.isFinite(m)||m<=0)return null;const k=(l-a)/m,P=2*(1-$i(Math.abs(k)));return Math.max(0,Math.min(1,P))}function da(t){return t==="higher"?"significantly better":"significantly worse"}function wn(t,r){if(!t||t.isOld)return null;const s=t.total_runs;if(s<=0)return null;const o=t.previous,a=o&&o.total_runs>0?o.success_count/o.total_runs:null,l=t.successes/s,u=a===null||l>=a?"higher":"lower",m=(()=>{if(s<5||!o||o.total_runs<=0)return!1;const R=ua(o.success_count,o.total_runs,t.successes,s);return R!==null&&R<.05})(),k=a===1&&l<1,P=a!==null&&a<1&&l===1,C=m?da(u):k?"Not 100% anymore":P?"100% now":void 0,O=Number.isFinite(r)&&r>0&&s<r;if(!O&&!C)return null;const $=O?Math.round(l*r):void 0;return{showExpected:O,expectedSuccesses:$,expectedRuns:r,significant:m,direction:u,comparisonLabel:C}}const qs=[{value:"llm-rubric",label:"LLM"},{value:"answer-relevance",label:"Answer Relevance (LLM)"},{value:"context-faithfulness",label:"Context Faithfulness (LLM)"},{value:"context-recall",label:"Context Recall (LLM)"},{value:"context-relevance",label:"Context Relevance (LLM)"},{value:"model-graded-closedqa",label:"Model-Graded Closed QA"},{value:"model-graded-factuality",label:"Model-Graded Factuality"},{value:"moderation",label:"Moderation"},{value:"classifier",label:"Classifier"},{value:"g-eval",label:"G-Eval"},{value:"factuality",label:"Factuality"},{value:"conversation-relevance",label:"Conversation Relevance"},{value:"equals",label:"Equals"},{value:"contains",label:"Contains"},{value:"icontains",label:"Contains (case-insensitive)"},{value:"contains-all",label:"Contains All"},{value:"contains-any",label:"Contains Any"},{value:"icontains-all",label:"Contains All (iCase)"},{value:"icontains-any",label:"Contains Any (iCase)"},{value:"starts-with",label:"Starts With"},{value:"regex",label:"Regex"},{value:"levenshtein",label:"Levenshtein Distance"},{value:"is-refusal",label:"Is Refusal"},{value:"is-html",label:"Is HTML"},{value:"contains-html",label:"Contains HTML"},{value:"is-json",label:"Is JSON"},{value:"contains-json",label:"Contains JSON"},{value:"is-xml",label:"Is XML"},{value:"contains-xml",label:"Contains XML"},{value:"is-sql",label:"Is SQL"},{value:"contains-sql",label:"Contains SQL"},{value:"similar",label:"Semantic Similarity"},{value:"rouge-n",label:"ROUGE-N"},{value:"bleu",label:"BLEU"},{value:"gleu",label:"GLEU"},{value:"meteor",label:"METEOR"},{value:"perplexity",label:"Perplexity"},{value:"perplexity-score",label:"Perplexity Score"},{value:"latency",label:"Latency"},{value:"cost",label:"Cost"},{value:"finish-reason",label:"Finish Reason"},{value:"trace-error-spans",label:"Trace Error Spans"},{value:"trace-span-count",label:"Trace Span Count"},{value:"trace-span-duration",label:"Trace Span Duration"},{value:"is-valid-function-call",label:"Is Valid Function Call"},{value:"is-valid-openai-function-call",label:"Is Valid OpenAI Function Call"},{value:"is-valid-openai-tools-call",label:"Is Valid OpenAI Tools Call"},{value:"guardrails",label:"Guardrails"},{value:"javascript",label:"JavaScript (custom)"},{value:"python",label:"Python (custom)"},{value:"webhook",label:"Webhook (custom)"},{value:"pi",label:"Pi Scorer"}],fa=[...qs,...qs.map(t=>({value:`not-${t.value}`,label:`Not ${t.label}`}))];function Bn(t){var r;return((r=fa.find(s=>s.value===t))==null?void 0:r.label)??t}var Ai=S('<link rel="preload" href="/ui/arrow_tests.svg" as="image"/>'),zs=S('<div class="p-2 text-gray-300">Loading…</div>'),Hs=S('<div class="p-2 text-rc-red-600"> </div>'),Oi=S('<div class="p-2 text-gray-400">No previous runs</div>'),Li=S('<div class="border-rc-red-700 rounded border bg-rc-gray-900 px-3 py-2 text-sm text-rc-red-600"> </div>'),Ri=S('<button type="button"><div class="flex items-baseline justify-between gap-2"><span class="font-semibold text-rc-gray-100"> </span> <span class="text-sm text-rc-gray-400"> </span></div> <div class="mt-1 text-sm text-rc-gray-400"> </div> <div class="mt-2 flex items-center justify-between gap-2 text-sm"><span> </span> <span class="text-rc-gray-300"> </span></div></button>'),ji=S('<div class="flex flex-col gap-2"><!> <!></div>'),Js=S('<div class="p-3 text-gray-400">—</div>'),kn=S('<span class="ml-2 text-rc-gray-400"> </span>'),Mi=S("<span> </span> <!>",1),Vs=S('<span class="text-rc-gray-500">—</span>'),Us=S('<div class="mt-1 px-1 text-sm font-semibold text-rc-gray-300"><!></div>'),Ni=S('<div class="flex items-center gap-2"><input class="rc-input w-44 svelte-rdft55" type="text" readonly=""/> <input class="rc-input min-w-0 flex-1 svelte-rdft55" type="text" placeholder="Assertion value" readonly=""/></div>'),Bs=S('<div class="flex flex-col gap-2"><div> </div> <div><div class="flex items-center gap-0"><!> <span> </span></div> <!></div></div>'),Fi=S('<div class="flex flex-wrap items-center gap-3"><div class="text-lg font-extrabold"><span> </span> <!></div></div> <div class="mt-3 flex flex-col gap-4"></div>',1),Di=S('<div class="flex flex-col gap-2 p-2"><input class="card-input-subtle pointer-events-none svelte-rdft55" type="text" placeholder="Author" readonly=""/> <!> <div class="flex flex-wrap items-center gap-3"><!> <!></div> <!></div> <div class="rounded-b border-t border-rc-gray-700 bg-rc-gray-980 p-2"><!></div>',1),qi=S('<div class="border-b border-rc-gray-700 p-2"><div class="grid grid-cols-[2.25rem,1fr] gap-2"><div class="flex flex-col items-center gap-1 pt-1"><!></div> <div class="min-w-0"><div><div><div class="grid grid-cols-[1fr,2.25rem] items-center gap-2"><input class="card-input-title pointer-events-none svelte-rdft55" type="text" placeholder="Scenario" readonly=""/> <button class="icon-btn justify-self-end text-gray-300 hover:text-gray-100 svelte-rdft55"><!></button></div> <!></div> <!></div></div></div></div>'),Gs=S('<div class="flex flex-col space-y-5"></div>'),zi=S('<div class="flex flex-col gap-3"><div class="flex flex-wrap items-center justify-between gap-3 border-b border-rc-gray-700 pb-3"><div class="flex flex-wrap items-center gap-3"><div class="flex items-center gap-2"><label class="text-rc-gray-300">Repeats</label> <!></div> <div class="flex items-center gap-2"><label class="text-rc-gray-300">Concurrency</label> <!></div> <span class="text-rc-gray-400"> </span></div></div> <div class="grid grid-cols-[2.25rem,1fr] items-center gap-2 border-b border-rc-gray-700 p-2"><div></div> <div class="flex flex-wrap items-center gap-x-4 gap-y-1 text-left text-rc-gray-300"><span> </span> <span> </span></div></div> <!></div>'),Hi=S('<div class="grid min-h-[68vh] grid-cols-[18rem,minmax(0,1fr)] gap-4"><aside class="rc-scroll min-h-0 overflow-auto border-r border-rc-gray-700 pr-3"><!></aside> <section class="rc-scroll min-h-0 overflow-auto"><!></section></div>'),Ji=S('<pre class="whitespace-pre-wrap font-mono text-gray-200"> </pre>'),Vi=S(`<p class="mt-2 text-red-200">Bosun found an old JSON/JSONL test suite. This version only supports one YAML file per
|
|
18
|
+
test and will not read, modify, or replace the legacy files.</p> <a target="_blank" rel="noreferrer" class="mt-4 inline-flex rounded bg-red-200 px-3 py-2 font-semibold text-red-950 hover:bg-red-100">Open migration guide</a>`,1),Ui=S('<p class="mt-2 break-words text-red-200"> </p> <!>',1),Bi=S('<div class="flex h-full items-start justify-center overflow-auto p-8"><div role="alert" class="w-full max-w-2xl rounded border border-red-500 bg-red-950/30 p-5 text-red-100"><h2 class="text-xl font-semibold"> </h2> <!></div></div>'),Gi=S("<li> </li>"),Ki=S('<div class="mx-2 mt-2 rounded border border-red-500 bg-red-950/30 px-3 py-2 text-sm text-red-200"><div class="font-semibold">Orphaned tests</div> <ul class="mt-1 list-disc pl-5"></ul></div>'),Wi=S('<div class="mr-3 flex items-center gap-3"><span class="animate-pulse rounded bg-rc-green-200 px-3 py-1 text-white"> </span> <!></div>'),Qi=S("<!> New test",1),Yi=S('<div class="pointer-events-none absolute -left-28 top-full mt-4 inline-flex -translate-x-1/2 flex-col items-center"><div class="relative w-50vw max-w-2xl"><img src="/ui/arrow_tests.svg" alt="Arrow" class="block h-auto w-full object-contain"/> <span class="absolute inset-0 mt-48 flex items-center justify-center text-center text-4xl font-extrabold text-rc-gray-200">No tests yet.<br/>Add the first one</span></div></div>'),Xi=S("<!> History",1),Zi=S("<!> Collapse all",1),el=S("<div></div>"),tl=S('<button aria-label="Pin/unpin all" title="Pin/unpin all"><!></button>'),Gn=S('<span><!><span class="ml-1"> </span></span>'),rl=S('<div class="translate-y-[5px]"><!></div>'),nl=S('<button><!></button> <button title="Duplicate" class="icon-btn text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button> <button title="Delete" class="icon-btn text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button>',1),sl=S("<span> </span> <!> <!>",1),al=S('<div class="rounded bg-rc-gray-930 px-2 py-2 text-sm text-rc-red-600"> </div>'),ol=S("<option> </option>"),il=S('<div class="flex items-center gap-2"><select class="rc-scroll rc-input w-36 svelte-rdft55" aria-label="Assertion Type"></select> <input class="rc-input min-w-0 flex-1 svelte-rdft55" type="text" placeholder="Assertion value"/></div>'),ll=S('<label class="inline-flex items-center gap-2 text-sm text-rc-gray-200"><input type="checkbox" class="checkbox"/> <span>Case-sensitive</span></label>'),cl=S('<span class="max-w-64 text-sm text-red-300"> </span>'),ul=S('<div class="relative h-[220px] min-w-0"><!> <div class="absolute bottom-2 left-3 z-20 flex items-center gap-2"><!> <!> <!></div></div>'),dl=S('<div class="text-lg font-extrabold"><span> </span> <!> <!></div>'),fl=S('<div class="mt-3 flex flex-col gap-4"></div>'),vl=S('<div class="flex flex-col gap-2 p-2"><!> <input class="card-input-subtle svelte-rdft55" type="text" placeholder="Author"/> <!> <div class="flex flex-wrap items-center gap-3"><!> <!> <!></div> <!></div> <div class="rounded-b border-t border-rc-gray-700 bg-rc-gray-980 p-2"><div class="flex flex-wrap items-center gap-3"><!> <!></div> <!></div>',1),pl=S('<div class="border-b border-rc-gray-700 p-2"><div class="grid grid-cols-[2.25rem,1fr] gap-2"><div class="flex flex-col items-center gap-1"><!></div> <div class="min-w-0"><div><div><div class="grid grid-cols-[1fr,2.25rem] items-center gap-2"><input class="card-input-title svelte-rdft55" type="text" placeholder="Scenario"/> <button class="icon-btn justify-self-end text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button></div> <!></div> <!></div></div></div></div>'),gl=S("<!> <!>",1),ml=S('<div class="flex min-h-0 flex-1 flex-col overflow-hidden p-3"><!> <div class="mt-3 min-h-0 flex-1 overflow-hidden"><!></div></div>'),hl=S('<div class="rc-scroll min-h-0 flex-1 overflow-auto"><div class="grid grid-cols-[2.25rem,1fr] items-center gap-2 border-b border-rc-gray-700 p-2"><!> <div class="flex flex-wrap items-center gap-x-4 gap-y-1 text-left text-rc-gray-300"><span> </span> <span> </span> <span> </span> <!></div></div> <!></div> <!>',1),xl=S('<div class="flex h-full min-h-0 flex-col"><!> <div class="flex flex-none items-center justify-between gap-3 p-2"><div class="flex flex-wrap items-center gap-3 pl-11"><div class="flex items-center gap-2"><label class="text-rc-gray-300">Repeats</label> <!></div> <div class="flex items-center gap-2"><label class="text-rc-gray-300">Concurrency</label> <!></div></div> <div class="flex flex-wrap items-center gap-3"><!> <div class="relative inline-flex items-center"><!> <!></div> <!></div></div> <div class="flex flex-none items-center justify-between gap-3 px-2 pb-2"><!> <!></div> <div class="min-h-0 flex-1 overflow-hidden"><!></div></div>'),yl=S("<!> <!> <!>",1);function Bl(t,r){En(r,!0);const{state:s,actions:o}=ro(),a=Xs(),l=w(()=>a.isWritePaused()),u=w(()=>s.agentId),m=w(()=>s.region),k="BOSUN_LEGACY_TEST_SUITE:",P="https://github.com/recombine-ai/bosun/blob/main/TESTS_MIGRATION.md";function C(n){try{return structuredClone(n)}catch{try{return JSON.parse(JSON.stringify(n))}catch{return n}}}function O(n,c,d){return Math.max(c,Math.min(d,n))}let $=I(1),R=I(75),V=I(null);function me(n){if(typeof localStorage>"u")return{repeats:1,concurrency:75,expandedTestIds:[]};try{const c=JSON.parse(localStorage.getItem(n)||"{}");return{repeats:O(Number(c.repeats)||1,1,500),concurrency:O(Number(c.concurrency)||75,1,75),expandedTestIds:Array.isArray(c.expandedTestIds)?c.expandedTestIds.filter(d=>typeof d=="string"):[]}}catch{return{repeats:1,concurrency:75,expandedTestIds:[]}}}function K(){!e(V)||typeof localStorage>"u"||localStorage.setItem(e(V),JSON.stringify({repeats:e($),concurrency:e(R),expandedTestIds:e(De)}))}let H=I(null),E=I("context"),A=I(pt({})),U=I(pt({})),B=I(!1),J=I(!1),ie=I(!1),He=I(""),Oe=I(null),re=I(!1),Rt=I(null),jt=I(pt([])),hr=I(!1),kt=I(null),Be=I(null),ir=I(pt({})),Ht=I(!1),lr=I(null),Tt=I(pt([])),xr=0,tr=0;const st=w(()=>e(Be)?e(ir)[e(Be)]??null:null),Hr=w(()=>e(hr)&&e(jt).length===0&&!e(kt)),ln=w(()=>e(Ht)&&!e(st)),Ln=w(()=>new Set(e(Tt))),Jt=w(()=>e(st)?e(st).rows.map(n=>Ta(e(st).timestamp,n)):[]),Lr=w(()=>Sa(e(Jt)));function Jr(n,c){i(He,n,!0),i(Oe,JSON.stringify(c??{},null,2),!0),i(ie,!0)}let yr=I(!1);async function Vr(n,c,d){var _;if(e(yr))return;i(yr,!0);const p=o.openPopover("analyze"),y=`Analysis — ${n} (run ${c})`;try{const b=await Ne.tests.analyzeRun.mutate({agent:d.agent,region:e(m),testId:d.id,index:d.run,timestamp:d.timestamp});if(((_=s.edit.popover)==null?void 0:_.requestId)!==p)return;o.setHighlightQuotes(b.quotes);let M=null;try{M=JSON.stringify(b.raw,null,2)}catch{M=null}o.setPopoverReady(p,{title:y,quotes:b.quotes,rationales:b.rationales,parallelCalls:b.parallelCalls,raw:M})}catch(b){console.error(b);const M=typeof(b==null?void 0:b.message)=="string"?b.message:(()=>{try{return JSON.stringify(b)}catch{return String(b)}})();o.setPopoverError(p,M||"Failed to analyze this response",{raw:M})}finally{i(yr,!1)}}let ae=I(pt([]));const _r=w(()=>{var n;return((n=s.currentStep)==null?void 0:n.name)||"main"}),Je=w(()=>e(ae).filter(n=>n.step===e(_r)||zt(n.step)&&zt(e(_r)))),Rn=w(()=>new Set(s.steps.map(n=>n.name))),cn=w(()=>s.steps.some(n=>zt(n.name))),un=w(()=>{if(!s.steps.length)return[];const n=new Map;for(const c of e(ae))e(Rn).has(c.step)||e(cn)&&zt(c.step)||n.set(c.step,(n.get(c.step)??0)+1);return[...n.entries()].map(([c,d])=>({step:c,count:d})).sort((c,d)=>c.step.localeCompare(d.step))});let ue=I(!1),cr=I(null),br=I(null),Rr=I(0),T=I(0),ne=I(1),ye=I(pt([])),X=I(pt([])),Ve=I(pt([]));const Mt=w(()=>new Set(e(ye))),gt=w(()=>new Set(e(X))),Vt=w(()=>new Set(e(Ve)));let Nt=!1,_e=null,Ie=0,he=Promise.resolve();const Te=new Set;let ee=I(0);const oe=w(()=>e(ee)>0);let mt=I(!1),at=I(null),ht=I(pt([])),St=I(pt({})),De=I(pt([]));const Ft=w(()=>new Set(e(De))),Ut=w(()=>e(Je).some(n=>e(Ft).has(n.id)));function Xe(n){return Te.add(n),i(ee,e(ee)+1),n.finally(()=>{Te.delete(n),i(ee,e(ee)-1)}),n}async function va(){for(await he;Te.size>0;)await Promise.all([...Te])}const pa=a.registerFlusher("tests",va),ga=a.registerBlocker("tests-draft",()=>{if(e(ue))return"A test run is still in progress.";if(e(ee)>0)return"Test changes are still being saved.";if(e(H))return"A test context draft is open.";const n=typeof document>"u"?null:document.activeElement;return n instanceof HTMLElement&&n.closest("[data-id]")&&(n.matches("input, textarea, select")||n.closest(".monaco-editor"))?"A test field is still being edited.":null});function rs(n){return`${e(u)}\0${e(m)??""}\0${n}`}function Ur(n){return s.testHistoryEdits[rs(n)]??null}function jn(n){delete s.testHistoryEdits[rs(n)];const c={...e(St)};delete c[n],i(St,c,!0)}function ma(n){if(e(ht).includes(n))return;const c=Ur(n);jn(n),c&&Ne.tests.rejectHistoryEdit.mutate({id:c.id}).catch(d=>{console.error("Failed to release rejected test history edit",d)})}async function ha(n){const c=Ur(n);if(!c||e(ht).includes(n))return;i(ht,[...e(ht),n],!0);const d={...e(St)};delete d[n],i(St,d,!0);try{await Xe(Ne.tests.acceptHistoryEdit.mutate({id:c.id})),i(ae,e(ae).map(p=>p.id===n?{...p,conversation:c.suggestedConversation,conversation_ui:Tr(c.suggestedConversation,p.expected_output,p.step,p.evaluation_mode==="json-deep-equal")}:p),!0),jn(n)}catch(p){console.error("Failed to accept test history edit",p),i(St,{...e(St),[n]:p instanceof Error?p.message:"Failed to save test history"},!0)}finally{i(ht,e(ht).filter(p=>p!==n),!0)}}function ns(n,c,d){const p=Array.isArray(d.results)?d.results:[],y=p.reduce((_,b)=>_+(b!=null&&b.success?1:0),0);return{success_rate:d.success_rate,successes:y,total_runs:p.length,isOld:!!d.is_old,previous:d.previous&&typeof d.previous=="object"?{success_count:Number(d.previous.success_count??0),total_runs:Number(d.previous.total_runs??0),report_timestamp:String(d.previous.report_timestamp??"")}:void 0,runs:p.map((_,b)=>{const M=d.report_timestamp,j={agent:n,id:c,timestamp:M,run:b};return{index:b+1,success:!!_.success,text:String(_.result||""),evaluation:String(_.evaluation||""),errors:String(_.errors||""),links:{renderedPrompt:{...j,key:"rendered_prompt"},receivedPrompt:{...j,key:"received_prompt"},conversation:{...j,key:"stringified_conversation"},context:{...j,key:"received_context"},logs:{...j,key:"logs"},errors:{...j,key:"errors"},traces:{...j,key:"traces"}}}}).reverse()}}async function wr(){const n=(e(u)??"").trim();if(n){i(at,null);try{const[{rows:c,settingsKey:d},p]=await Promise.all([Ne.tests.list.query({agent:n,region:e(m)}),Ne.tests.latestResult.query({agent:n,region:e(m)})]);if((e(u)??"").trim()!==n)return;i(V,d,!0);const y=me(d);i($,y.repeats,!0),i(R,y.concurrency,!0),i(De,y.expandedTestIds,!0),i(ae,c.map(_=>{const b=_.id,M=p[b];return{id:b,pinned:String(_.pinned).toUpperCase()==="TRUE",scenario:_.scenario||"",step:String(_.step||"main"),evaluation_mode:_.evaluation_mode==="json-deep-equal"?"json-deep-equal":"assertion",case_sensitive:_.case_sensitive===!0,context_mode:_.context_mode==="replace"?"replace":"merge",author:_.author||"",assertion_type:_.assertion_type||"llm-rubric",assertion_value:_.assertion_value||"",conversation:_.conversation||"",expected_output:_.expected_output||"",conversation_ui:Tr(_.conversation||"",_.expected_output||"",String(_.step??"main"),_.evaluation_mode==="json-deep-equal"),timeout:Number(_.timeout??0),similarity_threshold:Number(_.similarity_threshold??50),context:JSON.stringify(_.context),mocks:JSON.stringify(_.mocks||{}),hasMocks:typeof _.mocks<"u",result:M?ns(n,b,M):void 0}}),!0)}catch(c){if(console.error(c),(e(u)??"").trim()!==n)return;const d=c instanceof Error?c.message:String(c);i(at,{kind:d.includes(k)?"legacy":"other",message:d},!0),i(ae,[],!0),i($,1),i(R,75),i(De,[],!0)}finally{(e(u)??"").trim()===n&&i(mt,!0)}}}async function dn(n){const c=(e(u)??"").trim();if(c&&!Nt){Nt=!0;try{const[d,p]=await Promise.all([Ne.tests.latestResult.query({agent:c,region:e(m)}),Ne.tests.runProgress.query({agent:c,region:e(m)})]);if(n!==Ie)return;p&&(i(ye,p.plannedTestIds,!0),i(X,p.runningTestIds,!0),i(Ve,p.completedTestIds,!0));const y=e(ae).map(j=>{const Z=d[j.id];return{...j,result:Z?ns(c,j.id,Z):void 0}});i(ae,y,!0);const _=e(cr),b=Math.max(1,Number(e(ne))||1),M=y.reduce((j,Z)=>e(Mt).has(Z.id)&&Z.result&&!Z.result.isOld&&Z.result.total_runs>=b?j+1:j,0);i(Rr,M,!0)}catch(d){console.error(d)}finally{Nt=!1}}}async function xa(n){if(e(ue))return;i(ue,!0),i(cr,n,!0),i(br,null),i(T,n==="all"?e(Je).length:e(Je).filter(d=>d.pinned).length,!0),i(Rr,0),i(ne,Math.max(1,Number(e($))||1),!0),i(ye,e(Je).filter(d=>n==="all"||d.pinned).map(d=>d.id),!0),i(X,[],!0),i(Ve,[],!0),Ie+=1;const c=Ie;if(await Promise.all([he,...Te]),c===Ie){_e&&clearInterval(_e),_e=setInterval(()=>dn(c),250),dn(c);try{await Ne.tests.runTests.mutate({agent:e(u),region:e(m),step:e(_r),scope:n,promptOverrides:o.getPromptOverrides(),testHistoryOverrides:o.getTestHistoryOverrides(),repeats:e($),concurrency:e(R)})}catch(d){c===Ie&&console.error(d)}finally{if(c!==Ie)return;_e&&clearInterval(_e),_e=null;try{await wr()}finally{if(c!==Ie)return;i(ue,!1),i(cr,null),i(br,null),i(ye,[],!0),i(X,[],!0),i(Ve,[],!0)}}}}async function ya(n){if(!e(u)||e(ue))return;i(ue,!0),i(cr,"single"),i(br,n,!0),i(T,1),i(Rr,0),i(ne,Math.max(1,Number(e($))||1),!0),i(ye,[n],!0),i(X,[],!0),i(Ve,[],!0),Ie+=1;const c=Ie;if(await Promise.all([he,...Te]),c===Ie){_e&&clearInterval(_e),_e=setInterval(()=>dn(c),250),dn(c);try{await Ne.tests.runTests.mutate({agent:e(u),region:e(m),testId:n,promptOverrides:o.getPromptOverrides(),testHistoryOverrides:o.getTestHistoryOverrides(),repeats:e($),concurrency:e(R)})}catch(d){c===Ie&&console.error(d)}finally{if(c!==Ie)return;_e&&clearInterval(_e),_e=null;try{await wr()}finally{if(c!==Ie)return;i(ue,!1),i(cr,null),i(br,null),i(ye,[],!0),i(X,[],!0),i(Ve,[],!0)}}}}function _a(){e(ue)&&(Ie+=1,_e&&clearInterval(_e),_e=null,i(ue,!1),i(cr,null),i(br,null),i(ye,[],!0),i(X,[],!0),i(Ve,[],!0),he=Ne.tests.cancelRun.mutate({agent:e(u),region:e(m)}).then(()=>{},()=>{}))}async function ba(n){const c=n?"TRUE":"FALSE",d=e(Je).filter(y=>y.pinned!==n).map(y=>y.id);if(d.length===0)return;const p=new Set(d);i(ae,e(ae).map(y=>p.has(y.id)?{...y,pinned:n}:y),!0);try{await Xe(Ne.tests.patchTestsBatch.mutate({agent:e(u),region:e(m),updates:d.map(y=>({id:y,patch:{pinned:c}}))}))}catch(y){console.error(y),await wr()}}let Mn=null,ss=null;nn(()=>{const n=(e(u)??"").trim(),c=(e(m)??"").trim(),d=s.availableRegions,p=Array.isArray(d)&&d.length>0;if(!n){Mn=null,i(V,null),i(at,null),i(ae,[],!0),i(De,[],!0),i(mt,!1);return}if(p&&!c)return;const y=`${n}::${c}`;Mn!==y&&(Mn=y,i(V,null),i(at,null),i(ae,[],!0),i(De,[],!0),i(mt,!1),wr())}),nn(()=>{const n=(Ts.url.searchParams.get("test")||"").trim(),c=(Ts.url.searchParams.get("step")||"").trim(),d=e(ae).some(p=>p.id===n&&(!c||p.step===c));!n||!d||ss===n||(ss=n,(async()=>{var p;e(Ft).has(n)||await Sr(n,!0),await Qa(),(p=document.querySelector(`[data-id="${CSS.escape(n)}"]`))==null||p.scrollIntoView({block:"start"})})().catch(console.error))});const fn=w(()=>e(Je).filter(n=>n.pinned).length),Br=w(()=>e(fn)>0),wa=w(()=>e(Je).length>0&&e(fn)===e(Je).length),xt=w(()=>{let n=0,c=0,d=0,p=0,y=0,_=0,b=0,M=0;for(const Z of e(Je)){const te=Z.result;!te||te.isOld||te.total_runs<=0||(c+=1,d+=te.successes,p+=te.total_runs,te.successes===te.total_runs&&(n+=1),te.previous&&te.previous.total_runs>0&&(y+=te.previous.success_count,_+=te.previous.total_runs,b+=te.successes,M+=te.total_runs))}const j=(()=>{if(M<5||_<=0)return null;const Z=ua(y,_,b,M);if(Z===null||Z>=.05)return null;const te=y/_;return{direction:b/M>=te?"higher":"lower",previousAttemptsPassing:y,previousAttemptsTotal:_,currentAttemptsPassing:b,currentAttemptsTotal:M,pValue:Z}})();return{casesPassing:n,casesTotal:c,attemptsPassing:d,attemptsTotal:p,trend:j}});async function ka(){var p,y;const n=(y=(p=s.currentStep)==null?void 0:p.schema)!=null&&y.trim()?"json-deep-equal":"assertion",c=await Xe(Ne.tests.addTest.mutate({agent:e(u),region:e(m),seed:{step:e(_r),evaluation_mode:n,...n==="json-deep-equal"?{expected_output:"{}",case_sensitive:!1}:{}},mergeContexts:!0})),d=Nn(c);i(ae,[d,...e(ae)],!0),Sr(d.id,!0).catch(console.error)}function Nn(n){return{...n,step:String(n.step||"main"),evaluation_mode:n.evaluation_mode==="json-deep-equal"?"json-deep-equal":"assertion",case_sensitive:n.case_sensitive===!0,context_mode:n.context_mode==="replace"?"replace":"merge",pinned:n.pinned==="TRUE",timeout:Number(n.timeout),similarity_threshold:Number(n.similarity_threshold),context:JSON.stringify(n.context),mocks:JSON.stringify(n.mocks||{}),hasMocks:typeof n.mocks<"u",conversation_ui:Tr(n.conversation||"",n.expected_output||"",String(n.step||"main"),n.evaluation_mode==="json-deep-equal")}}function Ta(n,c){const d=c.test,p=d.id,y=c.results,_=y.reduce((b,M)=>b+(M.success?1:0),0);return{id:p,pinned:d.pinned==="TRUE",scenario:d.scenario,step:d.step||"main",evaluation_mode:d.evaluation_mode==="json-deep-equal"?"json-deep-equal":"assertion",case_sensitive:d.case_sensitive===!0,context_mode:d.context_mode==="replace"?"replace":"merge",author:d.author||"",assertion_type:d.assertion_type,assertion_value:d.assertion_value,conversation:d.conversation,expected_output:d.expected_output,conversation_ui:Tr(d.conversation||"",d.expected_output||"",d.step||"main",d.evaluation_mode==="json-deep-equal"),timeout:Number(d.timeout),similarity_threshold:Number(d.similarity_threshold),context:JSON.stringify(d.context),mocks:JSON.stringify(d.mocks||{}),hasMocks:typeof d.mocks<"u",result:{success_rate:c.success_rate,successes:_,total_runs:y.length,isOld:!1,runs:y.map((b,M)=>{const j={agent:e(u),id:p,timestamp:n,run:M};return{index:M+1,success:b.success,text:b.result||"",evaluation:b.evaluation||"",errors:b.errors||"",links:{renderedPrompt:{...j,key:"rendered_prompt"},receivedPrompt:{...j,key:"received_prompt"},conversation:{...j,key:"stringified_conversation"},context:{...j,key:"received_context"},logs:{...j,key:"logs"},errors:{...j,key:"errors"},traces:{...j,key:"traces"}}}}).reverse()}}}function Sa(n){let c=0,d=0,p=0,y=0;for(const _ of n){const b=_.result;!b||b.total_runs<=0||(d+=1,p+=b.successes,y+=b.total_runs,b.successes===b.total_runs&&(c+=1))}return{casesPassing:c,casesTotal:d,attemptsPassing:p,attemptsTotal:y}}function as(n,c,d){var te;const p=zt(n.step)&&zt((te=s.currentStep)==null?void 0:te.name)?s.currentStep:null,y=s.steps.find(ot=>ot.name===n.step),_=p??y??s.steps.find(ot=>zt(n.step)?zt(ot.name):!1),b=(_==null?void 0:_.name)??n.step,M=(_==null?void 0:_.prompt)??"",j=s.promptDrafts[b]??M,Z=s.promptEdits[`${e(u)}\0${b}`];return{kind:c,testId:n.id,step:b,prompt:(Z==null?void 0:Z.suggestedPrompt)??j,basePrompt:c==="test-fix"?M:(Z==null?void 0:Z.originalPrompt)??j,conversation:n.conversation,expectedOutput:n.expected_output,context:n.context,assertionLabel:n.evaluation_mode==="json-deep-equal"?"":Bn(n.assertion_type),assertionValue:n.evaluation_mode==="json-deep-equal"?"":n.assertion_value,currentIncorrectOutcome:d}}function Pa(n){o.openAiEdit(Pi,as(n,"test-history"))}function os(n,c){i(re,!1);const d=e(ae).find(p=>p.id===n.id)??n;Sr(d.id,!0),o.openAiEdit(Ci({context:d.context,conversation:d.conversation,expectedOutput:d.expected_output,assertionLabel:d.evaluation_mode==="json-deep-equal"?"":Bn(d.assertion_type),assertionValue:d.evaluation_mode==="json-deep-equal"?"":d.assertion_value,currentIncorrectOutcome:c}),as(d,"test-fix",c))}function Ia(n){const c=new Date(n);return Number.isNaN(c.getTime())?n:c.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function Ca(n){const c=new Date(n);return Number.isNaN(c.getTime())?"":c.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})}function is(n){return n==="all"?"All tests":"Pinned tests"}function Ea(n){const c=new Set(e(Tt));c.has(n)?c.delete(n):c.add(n),i(Tt,Array.from(c),!0)}function Fn(n,c){return`${n.trim()}::${String(c??"").trim()}`}function kr(){const n=(e(u)??"").trim();return n?Fn(n,e(m)):null}function ls(n){return n.rows.length===1?n.rows.map(c=>c.test.id):[]}function $a(){xr+=1,tr+=1,i(Rt,null),i(jt,[],!0),i(hr,!1),i(kt,null),i(Be,null),i(ir,{},!0),i(Ht,!1),i(lr,null),i(Tt,[],!0)}async function Aa(){const n=kr();n&&(e(Rt)!==n&&($a(),i(hr,!0)),i(re,!0),await Oa({preserveCachedDetail:!0}))}async function Oa(n={}){var _;const c=(e(u)??"").trim();if(!c)return;const d=e(m),p=Fn(c,d),y=++xr;i(hr,!0),i(kt,null);try{const b=await Ne.tests.historyList.query({agent:c,region:d});if(y!==xr||kr()!==p)return;i(jt,b,!0),i(Rt,p,!0);const M=e(Be)&&b.some(j=>j.timestamp===e(Be))?e(Be):((_=b[0])==null?void 0:_.timestamp)??null;M?await cs(M,{preserveCachedDetail:n.preserveCachedDetail,requestKey:p}):(i(Be,null),i(lr,null),i(Ht,!1),i(Tt,[],!0))}catch(b){if(console.error(b),y!==xr||kr()!==p)return;i(kt,"Failed to load test history"),e(Rt)!==p&&(i(jt,[],!0),i(Be,null),i(ir,{},!0),i(Tt,[],!0))}finally{y===xr&&kr()===p&&i(hr,!1)}}async function cs(n,c={}){const d=(e(u)??"").trim();if(!d)return;const p=e(m),y=c.requestKey??Fn(d,p),_=e(Be)===n;i(Be,n,!0),i(Ht,!0),i(lr,null);const b=e(ir)[n];if(b&&c.preserveCachedDetail){tr+=1,i(Ht,!1),_||i(Tt,ls(b),!0);return}const M=++tr;b||i(Tt,[],!0);try{const j=await Ne.tests.historyRun.query({agent:d,region:p,timestamp:n});if(M!==tr||e(Be)!==n||kr()!==y)return;i(ir,{...e(ir),[n]:j},!0),i(Tt,ls(j),!0)}catch(j){if(console.error(j),M!==tr||e(Be)!==n||kr()!==y)return;i(lr,"Failed to load this test run"),i(Tt,[],!0)}finally{M===tr&&e(Be)===n&&kr()===y&&i(Ht,!1)}}function us(n){const{conversation_ui:c,hasMocks:d,mocks:p,result:y,..._}=n,b={..._,pinned:n.pinned?"TRUE":"FALSE",timeout:String(n.timeout??0),similarity_threshold:String(n.similarity_threshold??50),context:JSON.parse(n.context)};return d&&(b.mocks=JSON.parse(p)),b}async function La(n,c){const d=us(n),p=await Xe(Ne.tests.addTest.mutate({agent:e(u),region:e(m),seed:d,beforeTestId:n.id,mergeContexts:!0})),y=Nn(p),_=e(ae).slice(),b=e(ae).findIndex(M=>M.id===n.id);_.splice(b<0?c:b,0,y),i(ae,_,!0),Sr(y.id,!0).catch(console.error)}async function ds(n,c,d=0){const p=us(n);p.expected_output=c;const y=await Xe(Ne.tests.addTest.mutate({agent:e(u),region:e(m),seed:p,mergeContexts:!0})),_=Nn(y),b=e(ae).slice();b.splice(d,0,_),i(ae,b,!0),Sr(_.id,!0).catch(console.error),await Xe(Ne.tests.reorder.mutate({agent:e(u),region:e(m),order:e(ae).map(M=>M.id)}))}function fs(n){if(!n)return"";try{return n.replace(/^\s*\d+\s*[:.)-]?\s*(?:[❌✖️✔✅✗xX])?\s*/u,"")}catch{return n}}function vn(n){try{return n&&n.trim()?JSON.parse(n):{}}catch{return{}}}const vs=n=>n.match(/^\s*(agent|assistant|user|system|step)\s*:\s*(.*)$/i);function ps(n){return zt(n)?"agent":"step"}function gs(n){try{const c=JSON.parse(n),d=JSON.stringify(c,null,2);return typeof c!="object"||c===null||Array.isArray(c)?d:d.split(`
|
|
19
|
+
`).slice(1,-1).map(p=>p.startsWith(" ")?p.slice(2):p).join(`
|
|
20
|
+
`)}catch{return n}}function ms(n,c,d){const p=String(n||c||"—");return d?gs(p):p}function Ra(n,c,d){let p=String(n??"").trimEnd();if(!p)return"";d&&(p=gs(p));const y=ps(c)==="agent"?"Agent":"Step";return d?p?`${y}:
|
|
21
|
+
${p}`:`${y}:`:`${y}: ${p}`}function Tr(n,c,d,p){const y=String(n??"").trimEnd(),_=Ra(c,d,p);return _?y?`${y}
|
|
22
|
+
${_}`:_:y}function Gr(n,c){const d=String(n??""),p=d.split(/\r?\n/),y=[];let _=null;for(let Se=0;Se<p.length;Se++){const Ze=vs(p[Se]);if(!Ze)continue;_&&y.push({..._,endLine:Se});const Dt=String(Ze[1]??"").toLowerCase();_={role:Dt==="assistant"?"agent":Dt,startLine:Se+1}}_&&y.push({..._,endLine:p.length});const b=y.at(-1),M=ps(c.step);if(!((b==null?void 0:b.role)===M)||!b)return{valid:!1,expected:"",conversation:d.trimEnd()};const Z=p.slice(b.startLine-1,b.endLine),te=Z[0]??"",ot=vs(te),Pt=[ot?ot[2]??"":"",...Z.slice(1)].join(`
|
|
23
|
+
`).trimEnd();let rr=Pt,se=!0;if(c.evaluation_mode==="json-deep-equal"){const Se=/^\s*[\[{]/.test(Pt)?Pt:`{
|
|
24
|
+
${Pt}
|
|
25
|
+
}`;try{const Ze=JSON.parse(Se);se=typeof Ze=="object"&&Ze!==null,rr=se?JSON.stringify(Ze,null,2):Se}catch{se=!1,rr=Se}}const pe=p.slice(0,b.startLine-1).join(`
|
|
26
|
+
`).trimEnd();return{valid:se,expected:rr,conversation:pe,highlight:{startLine:c.evaluation_mode==="json-deep-equal"?Math.min(b.endLine,b.startLine+1):b.startLine,endLine:b.endLine}}}function pn(n,c){return c?[{startLine:c.startLine,endLine:c.endLine,className:n.evaluation_mode==="json-deep-equal"?"test-expected-json-output":"test-expected-output"}]:[]}function gn(n){return n.total_runs>0&&n.successes<n.total_runs?"text-rc-red-600":"text-rc-gray-200"}async function ur(n,c){await Xe(Ne.tests.patchTest.mutate({agent:e(u),region:e(m),id:n,patch:c}))}async function ja(n){await Xe(Ne.tests.deleteTest.mutate({agent:e(u),region:e(m),id:n})),jn(n);try{await Sr(n,!1)}catch(c){console.error(c)}await wr()}function Sr(n,c){if(!(e(u)??"").trim())return Promise.resolve();const p=String(n??"").trim();if(!p)return Promise.resolve();const y=new Set(e(De)),_=y.has(p);if(c===_)return Promise.resolve();c?y.add(p):y.delete(p);const b=Array.from(y);return i(De,b,!0),K(),Promise.resolve()}function Ma(n){Sr(n,!e(Ft).has(n)).catch(console.error)}function Na(){return!(e(u)??"").trim()||!e(Ut)||(i(De,[],!0),K()),Promise.resolve()}function Fa(n){e(u)&&(i(H,n.id,!0),i(E,"context"),i(A,C(vn(n.context)),!0),i(U,C(vn(n.mocks)),!0),i(B,!1),i(J,n.hasMocks,!0))}async function Da(){const n=e(H);if(!n||!e(u)){i(H,null),i(E,"context"),i(B,!1),i(J,!1);return}const c=C(e(A)),d=C(e(U)),p=e(J)||e(B);i(H,null),i(E,"context"),i(B,!1),i(J,!1),i(ae,e(ae).map(y=>{if(y.id!==n)return y;const _={...y,context:JSON.stringify(c)};return p&&(_.mocks=JSON.stringify(d),_.hasMocks=!0),_}),!0);try{const y={context:c};p&&(y.mocks=d),await ur(n,y)}catch(y){console.error(y),await wr()}}Cn(()=>{pa(),ga(),_e&&clearInterval(_e)});var hs=yl();Za("rdft55",n=>{var c=Ai();h(n,c)});var xs=Ae(hs);sn(xs,{title:"Test history",class:"!w-[95vw] !max-w-[90rem]",get open(){return e(re)},set open(d){i(re,d,!0)},children:d=>{var p=Hi(),y=v(p),_=v(y);{var b=se=>{var pe=zs();h(se,pe)},M=se=>{var pe=Hs(),Se=v(pe,!0);f(pe),N(()=>q(Se,e(kt))),h(se,pe)},j=se=>{var pe=Oi();h(se,pe)},Z=se=>{var pe=ji(),Se=v(pe);{var Ze=It=>{var Ce=Li(),Pr=v(Ce,!0);f(Ce),N(()=>q(Pr,e(kt))),h(It,Ce)};L(Se,It=>{e(kt)&&It(Ze)})}var Dt=x(Se,2);mr(Dt,17,()=>e(jt),It=>It.timestamp,(It,Ce,Pr,Kr)=>{var W=Ri(),fe=v(W),Ee=v(fe),be=v(Ee,!0);f(Ee);var Le=x(Ee,2),et=v(Le,!0);f(Le),f(fe);var Bt=x(fe,2),Ir=v(Bt);f(Bt);var Cr=x(Bt,2),Gt=v(Cr),Ct=v(Gt,!0);f(Gt);var Et=x(Gt,2),Er=v(Et);f(Et),f(Cr),f(W),N((z,Mr,Kt)=>{Me(W,1,`w-full rounded border px-3 py-2 text-left transition-colors ${e(Be)===e(Ce).timestamp?"border-rc-green-200 bg-rc-gray-930 text-rc-gray-100":"border-rc-gray-700 bg-rc-gray-900 text-rc-gray-300 hover:border-rc-gray-500 hover:bg-rc-gray-800"}`,"svelte-rdft55"),q(be,z),q(et,Mr),q(Ir,`${e(Ce).testCount??""}
|
|
27
|
+
${e(Ce).testCount===1?"test":"tests"} · ${Kt??""}`),Me(Gt,1,Zr(e(Ce).passed?"text-rc-green-200":"text-rc-red-600")),q(Ct,e(Ce).passed?"Success":"Failure"),q(Er,`${e(Ce).successRatePercent??""}% (${e(Ce).successRate??""})`)},[()=>Ia(e(Ce).timestamp),()=>Ca(e(Ce).timestamp),()=>is(e(Ce).runScope)]),Fe("click",W,()=>void cs(e(Ce).timestamp,{preserveCachedDetail:!0})),h(It,W)}),f(pe),h(se,pe)};L(_,se=>{e(Hr)?se(b):e(kt)&&e(jt).length===0?se(M,1):e(jt).length===0?se(j,2):se(Z,-1)})}f(y);var te=x(y,2),ot=v(te);{var jr=se=>{var pe=zs();h(se,pe)},Pt=se=>{var pe=Hs(),Se=v(pe,!0);f(pe),N(()=>q(Se,e(lr))),h(se,pe)},rr=se=>{var pe=zi(),Se=v(pe),Ze=v(Se),Dt=v(Ze),It=x(v(Dt),2);bn(It,{type:"number",class:"w-16",get value(){return e(st).runConfig.repeats},disabled:!0}),f(Dt);var Ce=x(Dt,2),Pr=x(v(Ce),2);bn(Pr,{type:"number",class:"w-16",get value(){return e(st).runConfig.concurrency},disabled:!0}),f(Ce);var Kr=x(Ce,2),W=v(Kr,!0);f(Kr),f(Ze),f(Se);var fe=x(Se,2),Ee=x(v(fe),2),be=v(Ee),Le=v(be);f(be);var et=x(be,2),Bt=v(et);f(et),f(Ee),f(fe);var Ir=x(fe,2);{var Cr=Ct=>{var Et=Js();h(Ct,Et)},Gt=Ct=>{var Et=Gs();mr(Et,21,()=>e(Jt),Er=>Er.id,(Er,z)=>{const Mr=w(()=>Gr(e(z).conversation_ui,e(z))),Kt=w(()=>e(Ln).has(e(z).id));var Nr=qi(),mn=v(Nr),Wr=v(mn),Dn=v(Wr);{let Ge=w(()=>`block ${e(z).pinned?"text-rc-green-200":"text-gray-400"}`),$t=w(()=>e(z).pinned?"mdi:pin":"mdi:pin-outline");er(Dn,{get class(){return e(Ge)},get icon(){return e($t)},width:18,height:18})}f(Wr);var hn=x(Wr,2),Qr=v(hn),ve=v(Qr),de=v(ve),Ye=v(de);gr(Ye);var g=x(Ye,2),qt=v(g);{let Ge=w(()=>e(Kt)?"chevron-up":"chevron-down");Zt(qt,{get name(){return e(Ge)},width:20,height:20,class:"block"})}f(g),f(de);var tt=x(de,2);{var yt=Ge=>{var $t=Us(),Ue=v($t);{var it=qe=>{const Re=w(()=>wn(e(z).result,e(st).runConfig.repeats));var Ke=Mi(),ct=Ae(Ke),ut=v(ct);f(ct);var Dr=x(ct,2);{var Yr=sr=>{var Pe=kn(),_t=v(Pe);f(Pe),N(()=>q(_t,`(${e(Re).expectedSuccesses??""}/${e(Re).expectedRuns??""} expected)`)),h(sr,Pe)};L(Dr,sr=>{var Pe;(Pe=e(Re))!=null&&Pe.showExpected&&sr(Yr)})}N(sr=>{Me(ct,1,sr,"svelte-rdft55"),q(ut,`${e(z).result.successes??""}/${e(z).result.total_runs??""}`)},[()=>Zr(gn(e(z).result))]),h(qe,Ke)},lt=qe=>{var Re=Vs();h(qe,Re)};L(Ue,qe=>{e(z).result?qe(it):qe(lt,-1)})}f($t),h(Ge,$t)};L(tt,Ge=>{e(Kt)||Ge(yt)})}f(ve);var nr=x(ve,2);{var Fr=Ge=>{var $t=Di(),Ue=Ae($t),it=v(Ue);gr(it);var lt=x(it,2);{var qe=Pe=>{var _t=Ni(),le=v(_t);gr(le);var xe=x(le,2);gr(xe),f(_t),N($e=>{_n(le,$e),_n(xe,e(z).assertion_value)},[()=>Bn(e(z).assertion_type)]),h(Pe,_t)};L(lt,Pe=>{e(z).evaluation_mode!=="json-deep-equal"&&Pe(qe)})}var Re=x(lt,2),Ke=v(Re);Qe(Ke,{variant:"secondary",size:"small",onclick:()=>Jr(`Test context — ${e(z).scenario||"Test"}`,vn(e(z).context)),children:(Pe,_t)=>{ke();var le=ze("View context");h(Pe,le)},$$slots:{default:!0}});var ct=x(Ke,2);Qe(ct,{variant:"secondary",size:"small",onclick:()=>Jr(`Test mocks — ${e(z).scenario||"Test"}`,vn(e(z).mocks)),children:(Pe,_t)=>{ke();var le=ze("View mocks");h(Pe,le)},$$slots:{default:!0}}),f(Re);var ut=x(Re,2);{let Pe=w(()=>pn(e(z),e(Mr).highlight));Ms(ut,{get value(){return e(z).conversation_ui},get highlights(){return e(Pe)},language:"markdown",height:220,readOnly:!0})}f(Ue);var Dr=x(Ue,2),Yr=v(Dr);{var sr=Pe=>{const _t=w(()=>wn(e(z).result,e(st).runConfig.repeats));var le=Fi(),xe=Ae(le),$e=v(xe),dt=v($e),rt=v(dt);f(dt);var ft=x(dt,2);{var ge=we=>{var F=kn(),dr=v(F);f(F),N(()=>q(dr,`(${e(_t).expectedSuccesses??""}/${e(_t).expectedRuns??""} expected)`)),h(we,F)};L(ft,we=>{var F;(F=e(_t))!=null&&F.showExpected&&we(ge)})}f($e),f(xe);var At=x(xe,2);mr(At,21,()=>e(z).result.runs,we=>we.index,(we,F,dr,Xr)=>{var $r=Bs(),ar=v($r),bt=v(ar,!0);f(ar);var je=x(ar,2),Wt=v(je),fr=v(Wt);{var Ar=Ot=>{Zt(Ot,{name:"checkmark",width:20,height:20,class:"shrink-0 self-end"})},qr=Ot=>{Zt(Ot,{name:"close",width:18,height:18,class:"shrink-0 scale-110 self-start"})};L(fr,Ot=>{e(F).success?Ot(Ar):Ot(qr,-1)})}var xn=x(fr,2),qn=v(xn,!0);f(xn),f(Wt);var zn=x(Wt,2);{let Ot=w(()=>e(z).scenario||"Test"),G=w(()=>!e(F).text.trim()),Q=w(()=>e(z).evaluation_mode!=="json-deep-equal"),Y=w(()=>e(l)||!!o.getActivePromptEditId()),D=w(()=>!e(F).success&&!Ur(e(z).id)?()=>os(e(z),e(F).text||e(F).errors||"—"):void 0);Ds(zn,{get scenario(){return e(Ot)},get runIndex(){return e(F).index},get links(){return e(F).links},get variants(){return e(z).result.runs},get region(){return e(m)},get actionsDisabled(){return e(ue)},get actionsInert(){return e(oe)},get addTestDisabled(){return e(G)},get showAnalyze(){return e(Q)},get analyzeDisabled(){return e(yr)},get fixDisabled(){return e(Y)},onAddTest:()=>ds(e(z),e(F).text,0),onAnalyze:()=>Vr(e(z).scenario||"Test",e(F).index,e(F).links.renderedPrompt),get onFix(){return e(D)}})}f(je),f($r),N((Ot,G)=>{Me(ar,1,`w-full whitespace-pre-wrap break-words rounded-lg px-3 py-2 text-rc-gray-100 ${e(z).evaluation_mode==="json-deep-equal"?"font-mono text-sm leading-6":""} ${e(F).success?"bg-rc-green-700 backdrop-blur-md":""}`,"svelte-rdft55"),Kn(ar,e(F).success?"":"background-color: rgb(156 80 80)"),q(bt,Ot),Me(je,1,`flex w-full flex-col gap-x-4 whitespace-pre-wrap break-words ${e(F).success?"text-rc-green-200":"text-rc-red-800"}`,"svelte-rdft55"),q(qn,G)},[()=>ms(e(F).text,e(F).errors,e(z).evaluation_mode==="json-deep-equal"),()=>e(F).success?"Pass":fs(e(F).evaluation)||(e(F).errors||"").split(/\r?\n/)[0]||"Fail"]),h(we,$r)}),f(At),N(we=>{Me(dt,1,we,"svelte-rdft55"),q(rt,`${e(z).result.successes??""}/${e(z).result.total_runs??""}`)},[()=>Zr(gn(e(z).result))]),h(Pe,le)};L(Yr,Pe=>{e(z).result&&Pe(sr)})}f(Dr),N(()=>_n(it,e(z).author||"")),h(Ge,$t)};L(nr,Ge=>{e(Kt)&&Ge(Fr)})}f(Qr),f(hn),f(mn),f(Nr),N(()=>{Xt(Nr,"data-id",e(z).id),Me(Qr,1,`left-details-bg flex flex-col rounded border ${e(Mr).valid?"border-rc-gray-700":"border-rc-red-600"}`,"svelte-rdft55"),Me(ve,1,`left-details-bg rounded-t px-2 pt-2 ${e(Kt)?"border-b border-rc-gray-700 pb-1":"pb-2"}`,"svelte-rdft55"),_n(Ye,e(z).scenario),Xt(g,"aria-label",e(Kt)?"Collapse test":"Expand test"),Xt(g,"title",e(Kt)?"Collapse":"Expand")}),Fe("click",g,()=>Ea(e(z).id)),h(Er,Nr)}),f(Et),h(Ct,Et)};L(Ir,Ct=>{e(Jt).length===0?Ct(Cr):Ct(Gt,-1)})}f(pe),N(Ct=>{q(W,Ct),q(Le,`${e(Lr).casesPassing??""}/${e(Lr).casesTotal??""} cases passing`),q(Bt,`${e(Lr).attemptsPassing??""}/${e(Lr).attemptsTotal??""} attempts
|
|
28
|
+
passing`)},[()=>is(e(st).runScope)]),h(se,pe)};L(ot,se=>{e(ln)?se(jr):e(lr)&&!e(st)?se(Pt,1):e(st)&&se(rr,2)})}f(te),f(p),h(d,p)},footer:d=>{Qe(d,{variant:"outlined",size:"small",onclick:()=>i(re,!1),children:(p,y)=>{ke();var _=ze("Close");h(p,_)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var ys=x(xs,2);sn(ys,{get title(){return e(He)},class:"!w-[80vw] !max-w-5xl",get open(){return e(ie)},set open(d){i(ie,d,!0)},children:d=>{var p=Ji(),y=v(p,!0);f(p),N(()=>q(y,e(Oe)||"—")),h(d,p)},footer:d=>{Qe(d,{variant:"outlined",size:"small",onclick:()=>i(ie,!1),children:(p,y)=>{ke();var _=ze("Close");h(p,_)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var qa=x(ys,2);{var za=n=>{var c=Bi(),d=v(c),p=v(d),y=v(p,!0);f(p);var _=x(p,2);{var b=j=>{var Z=Vi(),te=x(Ae(Z),2);Xt(te,"href",P),h(j,Z)},M=j=>{var Z=Ui(),te=Ae(Z),ot=v(te,!0);f(te);var jr=x(te,2);Qe(jr,{class:"mt-4",variant:"secondary",onclick:()=>void wr(),children:(Pt,rr)=>{ke();var se=ze("Retry");h(Pt,se)},$$slots:{default:!0}}),N(()=>q(ot,e(at).message)),h(j,Z)};L(_,j=>{e(at).kind==="legacy"?j(b):j(M,-1)})}f(d),f(c),N(()=>q(y,e(at).kind==="legacy"?"This test suite requires migration":"Tests could not be loaded")),h(n,c)},Ha=n=>{var c=xl(),d=v(c);{var p=W=>{var fe=Ki(),Ee=x(v(fe),2);mr(Ee,21,()=>e(un),bs,(be,Le)=>{var et=Gi(),Bt=v(et);f(et),N(()=>q(Bt,`${e(Le).step??""} (${e(Le).count??""})`)),h(be,et)}),f(Ee),f(fe),h(W,fe)};L(d,W=>{e(un).length>0&&W(p)})}var y=x(d,2),_=v(y),b=v(_),M=x(v(b),2);bn(M,{type:"number",min:"1",max:"500",class:"w-16",onchange:()=>{i($,O(+e($)||1,1,500),!0),K()},get value(){return e($)},set value(W){i($,W,!0)}}),f(b);var j=x(b,2),Z=x(v(j),2);bn(Z,{type:"number",min:"1",max:"75",class:"w-16",onchange:()=>{i(R,O(+e(R)||75,1,75),!0),K()},get value(){return e(R)},set value(W){i(R,W,!0)}}),f(j),f(_);var te=x(_,2),ot=v(te);{var jr=W=>{var fe=Wi(),Ee=v(fe),be=v(Ee);f(Ee);var Le=x(Ee,2);Qe(Le,{variant:"secondary",onclick:_a,children:(et,Bt)=>{ke();var Ir=ze("Cancel");h(et,Ir)},$$slots:{default:!0}}),f(fe),N(()=>q(be,`Running… ${e(Rr)??""}/${e(T)??""}`)),h(W,fe)};L(ot,W=>{e(ue)&&W(jr)})}var Pt=x(ot,2),rr=v(Pt);{let W=w(()=>e(ue)||!e(u));Qe(rr,{variant:"secondary",onclick:ka,get inert(){return e(oe)},get disabled(){return e(W)},class:"inline-flex items-center gap-1",children:(fe,Ee)=>{var be=Qi(),Le=Ae(be);er(Le,{icon:"mdi:plus-thick",width:18,height:18}),ke(),h(fe,be)},$$slots:{default:!0}})}var se=x(rr,2);{var pe=W=>{var fe=Yi();h(W,fe)};L(se,W=>{e(mt)&&e(Je).length===0&&W(pe)})}f(Pt);var Se=x(Pt,2);{let W=w(()=>e(ue)||e(Je).length===0||e(Br)&&e(fn)===0);Qe(Se,{class:"inline-flex min-w-32 items-center justify-center gap-1 disabled:cursor-not-allowed disabled:opacity-50",get inert(){return e(oe)},get disabled(){return e(W)},onclick:()=>xa(e(Br)?"pinned":"all"),children:(fe,Ee)=>{ke();var be=ze();N(()=>q(be,`▶ ${e(Br)?"Run pinned":"Run all"}`)),h(fe,be)},$$slots:{default:!0}})}f(te),f(y);var Ze=x(y,2),Dt=v(Ze);{let W=w(()=>!e(u));Qe(Dt,{variant:"secondary",class:"ml-11 inline-flex min-w-32 items-center justify-center gap-1",get disabled(){return e(W)},onclick:()=>void Aa().catch(console.error),children:(fe,Ee)=>{var be=Xi(),Le=Ae(be);er(Le,{icon:"mdi:history",width:18,height:18}),ke(),h(fe,be)},$$slots:{default:!0}})}var It=x(Dt,2);{var Ce=W=>{{let fe=w(()=>!e(u));Qe(W,{variant:"secondary",class:"inline-flex min-w-32 items-center justify-center gap-1",get inert(){return e(oe)},get disabled(){return e(fe)},onclick:()=>void Na().catch(console.error),children:(Ee,be)=>{var Le=Zi(),et=Ae(Le);Zt(et,{name:"chevron-up",width:16,height:16,class:"block"}),ke(),h(Ee,Le)},$$slots:{default:!0}})}};L(It,W=>{e(Ut)&&W(Ce)})}f(Ze);var Pr=x(Ze,2),Kr=v(Pr);no(Kr,{class:"relative flex h-full min-w-0 flex-col overflow-hidden !rounded-none p-0",children:(W,fe)=>{var Ee=hl(),be=Ae(Ee),Le=v(be),et=v(Le);{var Bt=ve=>{var de=el();h(ve,de)},Ir=ve=>{var de=tl(),Ye=v(de);{let g=w(()=>e(Br)?"mdi:pin":"mdi:pin-outline");er(Ye,{class:"block",get icon(){return e(g)},width:18,height:18})}f(de),N(()=>{Me(de,1,`icon-btn justify-self-center ${e(Br)?"text-rc-green-200":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),de.inert=e(oe),de.disabled=e(ue)||e(Je).length===0}),Fe("click",de,async()=>{await ba(!e(wa))}),h(ve,de)};L(et,ve=>{e(ue)?ve(Bt):ve(Ir,-1)})}var Cr=x(et,2),Gt=v(Cr),Ct=v(Gt);f(Gt);var Et=x(Gt,2),Er=v(Et);f(Et);var z=x(Et,2),Mr=v(z);f(z);var Kt=x(z,2);{var Nr=ve=>{var de=Gn(),Ye=v(de);{let tt=w(()=>e(xt).trend.direction==="higher"?"chevron-up":"chevron-down");Zt(Ye,{get name(){return e(tt)},width:16,height:16,class:"inline-block align-text-bottom"})}var g=x(Ye),qt=v(g,!0);f(g),f(de),N((tt,yt)=>{Me(de,1,`whitespace-nowrap font-semibold ${e(xt).trend.direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55"),Xt(de,"title",tt),q(qt,yt)},[()=>`Previous ${e(xt).trend.previousAttemptsPassing}/${e(xt).trend.previousAttemptsTotal}, current ${e(xt).trend.currentAttemptsPassing}/${e(xt).trend.currentAttemptsTotal}, p=${e(xt).trend.pValue.toPrecision(2)}`,()=>da(e(xt).trend.direction)]),h(ve,de)};L(Kt,ve=>{e(xt).trend&&ve(Nr)})}f(Cr),f(Le);var mn=x(Le,2);{var Wr=ve=>{var de=Js();h(ve,de)},Dn=ve=>{var de=Gs();mr(de,23,()=>e(Je),Ye=>Ye.id,(Ye,g,qt)=>{const tt=w(()=>Gr(e(g).conversation_ui,e(g))),yt=w(()=>e(Ft).has(e(g).id));var nr=pl(),Fr=v(nr),Ge=v(Fr),$t=v(Ge);{var Ue=le=>{var xe=rl(),$e=v(xe);{var dt=F=>{er(F,{icon:"mdi:check",width:20,height:20,class:"text-rc-green-200"})},rt=w(()=>e(Vt).has(e(g).id)),ft=F=>{er(F,{icon:"mdi:play",width:20,height:20,class:"text-rc-green-200"})},ge=w(()=>e(gt).has(e(g).id)),At=F=>{er(F,{icon:"mdi:play-outline",width:20,height:20,class:"text-rc-green-200"})},we=w(()=>e(Mt).has(e(g).id));L($e,F=>{e(rt)?F(dt):e(ge)?F(ft,1):e(we)&&F(At,2)})}f(xe),h(le,xe)},it=le=>{var xe=nl(),$e=Ae(xe),dt=v($e);{let we=w(()=>e(g).pinned?"mdi:pin":"mdi:pin-outline");er(dt,{class:"block",get icon(){return e(we)},width:18,height:18})}f($e);var rt=x($e,2),ft=v(rt);er(ft,{icon:"mdi:content-copy",width:18,height:18}),f(rt);var ge=x(rt,2),At=v(ge);er(At,{icon:"mdi:trash-can-outline",width:18,height:18}),f(ge),N(()=>{Me($e,1,`icon-btn ${e(g).pinned?"text-rc-green-200":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),Xt($e,"aria-label",e(g).pinned?"Unpin":"Pin"),Xt($e,"title",e(g).pinned?"Unpin":"Pin"),$e.inert=e(oe),$e.disabled=e(ue),rt.inert=e(oe),rt.disabled=e(ue),ge.inert=e(oe),ge.disabled=e(ue)}),Fe("click",$e,async()=>{const we=!e(g).pinned;i(ae,e(ae).map(F=>F.id===e(g).id?{...F,pinned:we}:F),!0),await ur(e(g).id,{pinned:we?"TRUE":"FALSE"})}),Fe("click",rt,()=>La(e(g),e(qt))),Fe("click",ge,()=>ja(e(g).id)),h(le,xe)};L($t,le=>{e(ue)?le(Ue):le(it,-1)})}f(Ge);var lt=x(Ge,2),qe=v(lt),Re=v(qe),Ke=v(Re),ct=v(Ke);gr(ct);var ut=x(ct,2),Dr=v(ut);{let le=w(()=>e(yt)?"chevron-up":"chevron-down");Zt(Dr,{get name(){return e(le)},width:20,height:20,class:"block"})}f(ut),f(Ke);var Yr=x(Ke,2);{var sr=le=>{var xe=Us(),$e=v(xe);{var dt=ft=>{const ge=w(()=>wn(e(g).result,e(ne)));var At=sl(),we=Ae(At),F=v(we);f(we);var dr=x(we,2);{var Xr=bt=>{var je=kn(),Wt=v(je);f(je),N(()=>q(Wt,`(${e(ge).expectedSuccesses??""}/${e(ge).expectedRuns??""} expected)`)),h(bt,je)};L(dr,bt=>{var je;(je=e(ge))!=null&&je.showExpected&&bt(Xr)})}var $r=x(dr,2);{var ar=bt=>{var je=Gn(),Wt=v(je);{let qr=w(()=>e(ge).direction==="higher"?"chevron-up":"chevron-down");Zt(Wt,{get name(){return e(qr)},width:16,height:16,class:"inline-block align-text-bottom"})}var fr=x(Wt),Ar=v(fr,!0);f(fr),f(je),N(()=>{Me(je,1,`ml-2 whitespace-nowrap font-semibold ${e(ge).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55"),q(Ar,e(ge).comparisonLabel)}),h(bt,je)};L($r,bt=>{var je;(je=e(ge))!=null&&je.comparisonLabel&&bt(ar)})}N(bt=>{Me(we,1,bt,"svelte-rdft55"),q(F,`${e(g).result.successes??""}/${e(g).result.total_runs??""}`)},[()=>Zr(gn(e(g).result))]),h(ft,At)},rt=ft=>{var ge=Vs();h(ft,ge)};L($e,ft=>{e(g).result?ft(dt):ft(rt,-1)})}f(xe),h(le,xe)};L(Yr,le=>{e(yt)||le(sr)})}f(Re);var Pe=x(Re,2);{var _t=le=>{const xe=w(()=>Ur(e(g).id));var $e=vl(),dt=Ae($e),rt=v(dt);{var ft=G=>{var Q=al(),Y=v(Q);f(Q),N(D=>q(Y,`Invalid test: expected must be the last ${D??""}`),[()=>zt(e(g).step)?"“Agent: …” block":e(g).evaluation_mode==="json-deep-equal"?"“Step: …” block with valid JSON":"“Step: …” block"]),h(G,Q)};L(rt,G=>{e(tt).valid||G(ft)})}var ge=x(rt,2);gr(ge);var At=x(ge,2);{var we=G=>{var Q=il(),Y=v(Q);mr(Y,21,()=>fa,bs,(wt,Qt)=>{var vt=ol(),Lt=v(vt,!0);f(vt);var vr={};N(()=>{q(Lt,e(Qt).label),vr!==(vr=e(Qt).value)&&(vt.value=(vt.__value=e(Qt).value)??"")}),h(wt,vt)}),f(Y);var D=x(Y,2);gr(D),f(Q),N(()=>{Y.disabled=e(l),D.readOnly=e(l)}),Fe("change",Y,()=>ur(e(g).id,{assertion_type:e(g).assertion_type})),eo(Y,()=>e(g).assertion_type,wt=>e(g).assertion_type=wt),Fe("change",D,()=>ur(e(g).id,{assertion_value:e(g).assertion_value})),Jn(D,()=>e(g).assertion_value,wt=>e(g).assertion_value=wt),h(G,Q)};L(At,G=>{e(g).evaluation_mode!=="json-deep-equal"&&G(we)})}var F=x(At,2),dr=v(F);Qe(dr,{variant:"secondary",size:"small",get inert(){return e(oe)},get disabled(){return e(ue)},onclick:()=>Fa(e(g)),children:(G,Q)=>{ke();var Y=ze("Edit context");h(G,Y)},$$slots:{default:!0}});var Xr=x(dr,2);{let G=w(()=>e(ue)||!!e(xe));Qe(Xr,{variant:"secondary",size:"small",get inert(){return e(oe)},get disabled(){return e(G)},onclick:()=>Pa(e(g)),children:(Q,Y)=>{ke();var D=ze("Update history…");h(Q,D)},$$slots:{default:!0}})}var $r=x(Xr,2);{var ar=G=>{var Q=ll(),Y=v(Q);gr(Y),ke(2),f(Q),N(()=>Y.disabled=e(ue)||e(l)),Fe("change",Y,()=>Xe(ur(e(g).id,{case_sensitive:e(g).case_sensitive}))),to(Y,()=>e(g).case_sensitive,D=>e(g).case_sensitive=D),h(G,Q)};L($r,G=>{e(g).evaluation_mode==="json-deep-equal"&&G(ar)})}f(F);var bt=x(F,2);{var je=G=>{const Q=w(()=>Tr(e(xe).originalConversation,e(xe).expectedOutput,e(g).step,e(g).evaluation_mode==="json-deep-equal")),Y=w(()=>Tr(e(xe).suggestedConversation,e(xe).expectedOutput,e(g).step,e(g).evaluation_mode==="json-deep-equal"));var D=ul(),wt=v(D);{let ce=w(()=>pn(e(g),Gr(e(Q),e(g)).highlight)),We=w(()=>pn(e(g),Gr(e(Y),e(g)).highlight));Qs(wt,{variant:"test-history",class:"h-full min-w-0",get original(){return e(Q)},get modified(){return e(Y)},get originalHighlights(){return e(ce)},get modifiedHighlights(){return e(We)},inline:!0,bottomPadding:56,readOnlyMessage:"Accept or reject the AI suggestion before editing this history."})}var Qt=x(wt,2),vt=v(Qt);{let ce=w(()=>e(ht).includes(e(g).id));Qe(vt,{variant:"secondary",get disabled(){return e(ce)},onclick:()=>ma(e(g).id),children:(We,pr)=>{ke();var Or=ze("✕ Reject");h(We,Or)},$$slots:{default:!0}})}var Lt=x(vt,2);{let ce=w(()=>e(ht).includes(e(g).id));Qe(Lt,{get disabled(){return e(ce)},onclick:()=>ha(e(g).id),children:(We,pr)=>{ke();var Or=ze("✓ Accept");h(We,Or)},$$slots:{default:!0}})}var vr=x(Lt,2);{var nt=ce=>{var We=cl(),pr=v(We,!0);f(We),N(()=>q(pr,e(St)[e(g).id])),h(ce,We)};L(vr,ce=>{e(St)[e(g).id]&&ce(nt)})}f(Qt),f(D),h(G,D)},Wt=G=>{{let Q=w(()=>pn(e(g),e(tt).highlight));Ms(G,{get value(){return e(g).conversation_ui},onChange:Y=>e(g).conversation_ui=Y,onBlur:async Y=>{if(!e(u))return;const D=Gr(Y,e(g));e(g).conversation=D.conversation,e(g).expected_output=D.expected,D.valid&&e(g).evaluation_mode==="json-deep-equal"&&(e(g).conversation_ui=Tr(e(g).conversation,e(g).expected_output,e(g).step,!0)),await ur(e(g).id,{conversation:e(g).conversation,expected_output:e(g).expected_output})},get highlights(){return e(Q)},language:"markdown",height:220})}};L(bt,G=>{e(xe)?G(je):G(Wt,-1)})}f(dt);var fr=x(dt,2),Ar=v(fr),qr=v(Ar);{let G=w(()=>e(ue)||!e(tt).valid),Q=w(()=>e(tt).valid?"Run":`Expected must be the last ${zt(e(g).step)?"Agent":"Step"} block${e(g).evaluation_mode==="json-deep-equal"?" with valid JSON":""}`);Qe(qr,{size:"small",get inert(){return e(oe)},get disabled(){return e(G)},get title(){return e(Q)},onclick:()=>ya(e(g).id),children:(Y,D)=>{ke();var wt=ze("▶ Run");h(Y,wt)},$$slots:{default:!0}})}var xn=x(qr,2);{var qn=G=>{const Q=w(()=>wn(e(g).result,e(ne)));var Y=dl(),D=v(Y),wt=v(D);f(D);var Qt=x(D,2);{var vt=nt=>{var ce=kn(),We=v(ce);f(ce),N(()=>q(We,`(${e(Q).expectedSuccesses??""}/${e(Q).expectedRuns??""} expected)`)),h(nt,ce)};L(Qt,nt=>{var ce;(ce=e(Q))!=null&&ce.showExpected&&nt(vt)})}var Lt=x(Qt,2);{var vr=nt=>{var ce=Gn(),We=v(ce);{let yn=w(()=>e(Q).direction==="higher"?"chevron-up":"chevron-down");Zt(We,{get name(){return e(yn)},width:18,height:18,class:"inline-block align-text-bottom"})}var pr=x(We),Or=v(pr,!0);f(pr),f(ce),N(()=>{Me(ce,1,`ml-2 whitespace-nowrap font-semibold ${e(Q).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55"),q(Or,e(Q).comparisonLabel)}),h(nt,ce)};L(Lt,nt=>{var ce;(ce=e(Q))!=null&&ce.comparisonLabel&&nt(vr)})}f(Y),N(nt=>{Me(D,1,nt,"svelte-rdft55"),q(wt,`${e(g).result.successes??""}/${e(g).result.total_runs??""}`)},[()=>Zr(gn(e(g).result))]),h(G,Y)};L(xn,G=>{e(g).result&&G(qn)})}f(Ar);var zn=x(Ar,2);{var Ot=G=>{var Q=fl();mr(Q,21,()=>e(g).result.runs,Y=>Y.index,(Y,D,wt,Qt)=>{var vt=Bs(),Lt=v(vt),vr=v(Lt,!0);f(Lt);var nt=x(Lt,2),ce=v(nt),We=v(ce);{var pr=Yt=>{Zt(Yt,{name:"checkmark",width:20,height:20,class:"shrink-0 self-end"})},Or=Yt=>{Zt(Yt,{name:"close",width:18,height:18,class:"shrink-0 scale-110 self-start"})};L(We,Yt=>{e(D).success?Yt(pr):Yt(Or,-1)})}var yn=x(We,2),Ja=v(yn,!0);f(yn),f(ce);var Va=x(ce,2);{let Yt=w(()=>e(g).scenario||"Test"),Hn=w(()=>!e(D).text.trim()),Ua=w(()=>e(g).evaluation_mode!=="json-deep-equal"),Ba=w(()=>e(l)||!!o.getActivePromptEditId()),Ga=w(()=>!e(D).success&&!Ur(e(g).id)?()=>os(e(g),e(D).text||e(D).errors||"—"):void 0);Ds(Va,{get scenario(){return e(Yt)},get runIndex(){return e(D).index},get links(){return e(D).links},get variants(){return e(g).result.runs},get region(){return e(m)},get actionsDisabled(){return e(ue)},get actionsInert(){return e(oe)},get addTestDisabled(){return e(Hn)},get showAnalyze(){return e(Ua)},get analyzeDisabled(){return e(yr)},get fixDisabled(){return e(Ba)},onAddTest:()=>ds(e(g),e(D).text,e(qt)),onAnalyze:()=>Vr(e(g).scenario||"Test",e(D).index,e(D).links.renderedPrompt),get onFix(){return e(Ga)}})}f(nt),f(vt),N((Yt,Hn)=>{Me(Lt,1,`w-full whitespace-pre-wrap break-words rounded-lg px-3 py-2 text-rc-gray-100 ${e(g).evaluation_mode==="json-deep-equal"?"font-mono text-sm leading-6":""} ${e(D).success?"bg-rc-green-700 backdrop-blur-md":""}`,"svelte-rdft55"),Kn(Lt,e(D).success?"":"background-color: rgb(156 80 80)"),q(vr,Yt),Me(nt,1,`flex w-full flex-col gap-x-4 whitespace-pre-wrap break-words ${e(D).success?"text-rc-green-200":"text-rc-red-800"}`,"svelte-rdft55"),q(Ja,Hn)},[()=>ms(e(D).text,e(D).errors,e(g).evaluation_mode==="json-deep-equal"),()=>e(D).success?"Pass":fs(e(D).evaluation)||(e(D).errors||"").split(/\r?\n/)[0]||"Fail"]),h(Y,vt)}),f(Q),h(G,Q)};L(zn,G=>{e(g).result&&G(Ot)})}f(fr),N(()=>ge.readOnly=e(l)),Fe("change",ge,()=>ur(e(g).id,{author:e(g).author||""})),Jn(ge,()=>e(g).author,G=>e(g).author=G),h(le,$e)};L(Pe,le=>{e(yt)&&le(_t)})}f(qe),f(lt),f(Fr),f(nr),N(()=>{Xt(nr,"data-id",e(g).id),Me(qe,1,`left-details-bg flex flex-col rounded border ${e(tt).valid?"border-rc-gray-700":"border-rc-red-600"}`,"svelte-rdft55"),Me(Re,1,`left-details-bg sticky top-0 z-10 rounded-t px-2 pt-2 ${e(yt)?"border-b border-rc-gray-700 pb-1":"pb-2"}`,"svelte-rdft55"),ct.readOnly=e(l),Xt(ut,"aria-label",e(yt)?"Collapse test":"Expand test"),Xt(ut,"title",e(yt)?"Collapse":"Expand"),ut.inert=e(oe)}),Fe("change",ct,()=>ur(e(g).id,{scenario:e(g).scenario})),Jn(ct,()=>e(g).scenario,le=>e(g).scenario=le),Fe("click",ut,()=>Ma(e(g).id)),h(Ye,nr)}),f(de),h(ve,de)};L(mn,ve=>{e(Je).length===0?ve(Wr):ve(Dn,-1)})}f(be);var hn=x(be,2);{var Qr=ve=>{const de=w(()=>e(ae).find(Ye=>Ye.id===e(H)));{const Ye=qt=>{var tt=ml(),yt=v(tt);Ys(yt,{get value(){return e(E)},ariaLabel:"Test context tabs",onChange:({value:Ue})=>i(E,Ue,!0),children:(Ue,it)=>{var lt=gl(),qe=Ae(lt);an(qe,{value:"context",class:"px-3",children:(Ke,ct)=>{ke();var ut=ze("Context");h(Ke,ut)},$$slots:{default:!0}});var Re=x(qe,2);an(Re,{value:"mocks",class:"px-3",children:(Ke,ct)=>{ke();var ut=ze("Mocks");h(Ke,ut)},$$slots:{default:!0}}),h(Ue,lt)},$$slots:{default:!0}});var nr=x(yt,2),Fr=v(nr);{var Ge=Ue=>{var it=Pn(),lt=Ae(it);_s(lt,()=>`${e(H)}:context`,qe=>{{let Re=w(()=>`editorState/context/${e(u)}/tests/${e(H)}`);ks(qe,{class:"h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl",get context(){return e(A)},suppressErrors:!0,defaultFormat:"yaml",hideHeader:!0,get editorStateKey(){return e(Re)},onContextChanged:Ke=>i(A,Ke,!0)})}}),h(Ue,it)},$t=Ue=>{var it=Pn(),lt=Ae(it);_s(lt,()=>`${e(H)}:mocks`,qe=>{{let Re=w(()=>`editorState/mocks/${e(u)}/tests/${e(H)}`);ks(qe,{class:"h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl",get context(){return e(U)},suppressErrors:!0,defaultFormat:"yaml",hideHeader:!0,get editorStateKey(){return e(Re)},onContextChanged:Ke=>{i(U,Ke,!0),i(B,!0)}})}}),h(Ue,it)};L(Fr,Ue=>{e(E)==="context"?Ue(Ge):Ue($t,-1)})}f(nr),f(tt),h(qt,tt)};let g=w(()=>{var qt;return`Test context — ${((qt=e(de))==null?void 0:qt.scenario)||"Test"}`});so(ve,{get title(){return e(g)},onClose:()=>void Da(),children:Ye})}};L(hn,ve=>{e(H)&&ve(Qr)})}N(()=>{q(Ct,`Pinned: ${e(fn)??""}/${e(Je).length??""}`),q(Er,`${e(xt).casesPassing??""}/${e(xt).casesTotal??""} cases passing`),q(Mr,`${e(xt).attemptsPassing??""}/${e(xt).attemptsTotal??""} attempts passing`)}),h(W,Ee)}}),f(Pr),f(c),h(n,c)};L(qa,n=>{e(mt)&&e(at)?n(za):e(mt)&&n(Ha,1)})}h(t,hs),$n()}Ks(["click","change"]);export{Bl as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as t,b as r,a as s,f as c}from"../chunks/
|
|
1
|
+
import{d as t,b as r,a as s,f as c}from"../chunks/CMFNmSvo.js";import"../chunks/7hV1SZxK.js";import{e as l,$ as i}from"../chunks/C4UC6AgE.js";import{h as d}from"../chunks/CNIn4L55.js";var f=c('<div class="flex h-full w-full flex-col bg-rc-gray-980"><div class="flex-none border-b border-rc-gray-300/40 p-4"><h2 class="text-lg font-semibold text-rc-gray-100">Traces</h2></div> <div class="min-h-0 flex-1 overflow-auto p-4"><div class="py-8 text-center text-rc-gray-300">Select a conversation to view traces</div></div></div>');function g(o){var e=f();d("1yb39s2",a=>{l(()=>{i.title="Bosun: Telescope"})}),r("click",e,a=>a.stopPropagation()),s(o,e)}t(["click"]);export{g as component};
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{d as es,b as Ie,e as fe,a as h,f as P,t as Re,c as ts}from"../chunks/CMFNmSvo.js";import{a as rs}from"../chunks/CD_KdWs9.js";import{p as ns,w as x,x as K,d as te,f as vt,t as L,a as as,j as r,c as b,s as p,n as w,y as i,r as v,o as Ce,T as os}from"../chunks/C4UC6AgE.js";import{s as R}from"../chunks/eMofpOrR.js";import{i as D}from"../chunks/D9BWOD7V.js";import{e as re,i as ss}from"../chunks/BlFOg-Sd.js";import{c as mt,a as et}from"../chunks/BHB0Pj1h.js";import{b as N}from"../chunks/D8Lmn3S5.js";import{b as Be}from"../chunks/Ce6a22qU.js";import{p as ht}from"../chunks/DBB88ZB7.js";import{B as Ne}from"../chunks/Byg3jr1u.js";import{P as Tn}from"../chunks/BzxxLgHi.js";import{g as wr,a as _r,T as is}from"../chunks/CB9iDxwI.js";import{i as ls}from"../chunks/DgGeUDDh.js";import{b as cs,f as ds,R as us}from"../chunks/T0seCQS_.js";import{g as fs,c as Bt}from"../chunks/DEnUeQNt.js";const En="bosun.traces.latencyTimelineViewports.v2",Ft=new Map;let Mn=!1;function kn(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 ps(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 $n(){if(!Mn&&(Mn=!0,!(typeof window>"u")))try{const B=window.sessionStorage.getItem(En);if(!B)return;const E=JSON.parse(B);if(!E||typeof E!="object"||Array.isArray(E))return;for(const[ne,z]of Object.entries(E))!ne||!kn(z)||Ft.set(ne,z)}catch{}}function vs(){if(!(typeof window>"u"))try{window.sessionStorage.setItem(En,JSON.stringify(Object.fromEntries(Ft.entries())))}catch{}}function ms(B){if(!B)return null;$n();const E=Ft.get(B);return E?{...E}:null}function Ln(B,E){!B||!kn(E)||($n(),Ft.set(B,{...E}),vs())}var hs=P('<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200"> </span>',1),bs=P('<div><span class="text-rc-gray-400">Playhead:</span> <span class="font-mono text-rc-gray-100"> </span></div>'),xs=P('<div><span class="text-rc-gray-400">Viewport:</span> <span class="font-mono text-rc-gray-100"> </span></div>'),gs=P('<div class="mt-2 text-sm text-rc-gray-400"> </div>'),Nt=P('<div class="mt-2 text-sm text-red-300"> </div>'),ys=P('<div class="text-sm text-rc-gray-300">Loading latency events…</div>'),ws=P('<div class="text-sm text-rc-gray-300">No latency events were found on this call.</div>'),_s=P('<div class="text-sm text-rc-gray-300">Preparing timeline…</div>'),Ts=P('<div class="flex items-center text-xs text-rc-gray-300"> </div>'),Ms=P('<div class="flex items-center text-xs text-rc-gray-300">Waveform</div>'),Ls=P('<div class="absolute -translate-x-1/2 border-l border-rc-gray-300/40"></div>'),Ps=P('<div class="absolute -translate-x-1/2 border-l border-dashed"></div>'),Ss=P('<div class="absolute border-l border-rc-gray-200/80"></div>'),Es=P('<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),ks=P('<div class="absolute inset-y-0 w-px bg-rc-gray-700/70"></div> <div> </div>',1),Pn=P('<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div>'),$s=P('<span class="block truncate"> </span>'),As=P("<div><!></div>"),Is=P('<div class="relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60"><!> <!></div>'),Rs=P('<div class="absolute inset-y-0 w-px bg-rc-gray-700/45"></div>'),Sn=P("<div> </div>"),Cs=P('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Decoding waveform…</div>'),Bs=P('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-red-300"> </div>'),Ns=P('<canvas class="absolute inset-0 h-full w-full"></canvas>'),Fs=P('<div class="relative z-0 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60"><!> <!></div>'),Ds=P('<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>'),Ws=P('<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>'),Os=P('<div><div class="whitespace-pre-wrap break-words"> </div></div>'),Hs=P('<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 oi(B,E){ns(E,!0);const ne=30,z=32,Me=ne,ae=5,Dt=160,Tr=ne+ae,Mr=3,An=8,Fe=60,In=132,Rn=200,Cn=24,Lr=3e4,Bn=50,Nn=.00145,Pr=137,Fn=new Set(["VAD","Playback"]),tt=new is(fetch),C={blue:"#569cd6",green:"#93FF6D",greenDark:"#00B58A",orange:"#ce9178",purple:"#81147D",red:"#FF6666",gray:"#767676"},Sr=[{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"}],Dn=new Set(Sr.map(e=>e.label)),Er={call:G(C.gray,.2),vad:G(C.purple,.35),stt:G(C.purple,.2),trigger:C.greenDark,"response.latency.ok":C.green,"response.latency.high":C.red,"reply.pending":G(C.greenDark,.18),"llm.transport":G(C.blue,.18),"llm.wait":G(C.blue,-.25),"llm.stream":C.blue,"tts.text":C.orange,"tts.provider.lifecycle":G(C.purple,-.18),"tts.provider":G(C.purple,.12),"tts.decode":G(C.orange,-.12),"audio.output.wait":C.orange,playback:G(C.greenDark,-.08),interruption:C.orange,other:C.gray},Wn=[{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"}],On=new Map(Wn.map(e=>[e.startEventType,e]));function kr(){return{exists:!1,audioUrl:null,fileName:null,mimeType:null,size:null,uploadedAt:null,alignmentOffsetMs:0}}const De=fs(),Wt=wr(ht.url)??_r()??"",Hn=ht.params.conversationId??"",Vn=Bt(Hn,Wt),m=De.latency.get(Vn);tt.setSourceId(Wt||void 0);let Ot=x(K(Wt)),Le=x(K((m==null?void 0:m.conversation)??null)),j=x(K((m==null?void 0:m.traces)??[])),pe=x(K((m==null?void 0:m.conversationTraces)??[])),Pe=x(K((m==null?void 0:m.dataLoaded)??!1)),We=x(!1),Oe=x(K((m==null?void 0:m.error)??null)),$=x(K((m==null?void 0:m.recording)??kr())),He=x(K((m==null?void 0:m.recordingLoaded)??!1)),bt=x(!1),ve=x(K((m==null?void 0:m.recordingError)??null)),xt=x(!1),U=x(K((m==null?void 0:m.waveform)??null)),Ve=x(!1),Se=x(K((m==null?void 0:m.waveformError)??null)),Y=x(K((m==null?void 0:m.playbackPositionMs)??0)),le=x(!1),ce=x(null),Ht=x(!1),me=x(null),oe=x(K((m==null?void 0:m.viewDirty)??!1)),u=x(null),g=x(null),se=x(null),Vt=x(null),he=x(0),Ut=x(null),qt=x(null),Ue=x(0),Kt=x(0),jt=x(null),qe=x(null),rt=x(null),Xt=x(null),nt=x(null),at=x(null),zt=x(null),ot=x(K((m==null?void 0:m.humanSpeechBubbleReservedLevels)??1)),Ke=x("idle"),be=x(""),Yt=x(null),gt=0,st=0,yt=0,xe=null,je=0,de=(m==null?void 0:m.playbackAudioBuffer)??null,ie=null,it=null,lt=null,ct=null,dt=null;const Xe=w(()=>ht.params.conversationId);function $r(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=w(()=>r(Xe)?$r(r(Xe),r(Ot)):""),W=w(()=>{var t;let e=Number.POSITIVE_INFINITY;for(const n of r(j))typeof n.atMs!="number"||!Number.isFinite(n.atMs)||(e=Math.min(e,n.atMs));return Number.isFinite(e)?e:typeof((t=r(Le))==null?void 0:t.createdAt)=="number"&&Number.isFinite(r(Le).createdAt)?r(Le).createdAt:Number.isFinite(e)?e:0}),Ee=w(()=>Va(r(j))),Un=w(()=>r(j).length),qn=w(()=>ya()),Kn=w(()=>Ta(r(Ee))),jn=w(()=>[...r(Ee).map(t=>{const n=r(Kn).get(t.id);return!n||t.row!=="Playback"||t.durationMs<=0?t:{...t,speechText:n.text,speechFullText:n.fullText,speechTraceLabel:n.traceLabel}}),...Ma(r(qn))]),ke=w(()=>{const e=new Map;for(const t of r(jn)){const n=e.get(t.row);n?n.push(t):e.set(t.row,[t])}return[...Sr].reverse().map(t=>({label:t.label,segments:e.get(t.label)??[]})).filter(t=>t.segments.length>0)}),Gt=w(()=>Ca()),Xn=w(()=>Math.max(r(ot),Hr(r(Gt),"human"))),Ar=w(()=>Ia(r(Gt))),Zt=w(()=>Aa(r(Xn))),Ir=w(()=>r(Zt)),Rr=w(()=>r(ke).length*Me+Math.max(0,r(ke).length-1)*ae),wt=w(()=>r(ke).length>0?ae:0),zn=w(()=>z+r(Rr)+r(wt)),ft=w(()=>r($).exists),Yn=w(()=>r(ft)?ae+Dt:0),Gn=w(()=>Qa(r(ke))),ge=w(()=>r(U)?r(W)+r($).alignmentOffsetMs:null),Jt=w(()=>z+r(Rr)+r(wt)+r(Ir)+r(Yn)),Qt=w(()=>r(ge)==null?null:r(ge)+r(Y)),ze=w(()=>{const e=r(Qt);if(e==null||r(u)==null||r(g)==null)return null;const t=r(g)-r(u);return!Number.isFinite(t)||t<=0||e<r(u)||e>r(g)?null:{leftPercent:O((e-r(u))/t*100,0,100),topPx:z,heightPx:Math.max(1,r(Jt)-z)}}),Cr=w(()=>{if(r(u)==null||r(g)==null)return null;const e=r(g)-r(u);return!Number.isFinite(e)||e<=0||r(W)<r(u)||r(W)>r(g)?null:{leftPercent:(r(W)-r(u))/e*100,topPx:z,heightPx:Math.max(1,r(Jt)-z)}}),Ye=w(()=>{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(U)&&r(ge)!=null&&(e=Math.min(e,r(ge)),t=Math.max(t,r(ge)+r(U).durationMs)),!Number.isFinite(e)||!Number.isFinite(t)?null:(t<=e&&(t=e+1),{min:e,max:t})}),_t=w(()=>{let e=Number.POSITIVE_INFINITY,t=Number.NEGATIVE_INFINITY;for(const n of r(Ee))Dn.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})}),Br=w(()=>{if(r(u)==null||r(g)==null)return null;const e=r(g)-r(u);return e>0?e:null}),Tt=w(()=>r(u)==null||r(g)==null?[]:to(r(u),r(g),r(W))),Zn=w(()=>r(qe)?Xa(r(qe)).split(`
|
|
2
|
+
`):[]);te(()=>{const e=r(Xt),t=r(rt),n=r(qe);r(u),r(g),!(!e||!t||!n)&&e.update()}),te(()=>{const e=r(zt),t=r(at),n=r(nt);r(u),r(g),!(!e||!t||!n)&&e.update()}),te(()=>{const e=Hr(r(Gt),"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(Le),traces:r(j),conversationTraces:r(pe),dataLoaded:r(Pe),error:r(Oe),recording:r($),recordingLoaded:r(He),recordingError:r(ve),waveform:r(U),waveformError:r(Se),playbackAudioBuffer:de,playbackPositionMs:r(Y),viewportStartMs:r(u),viewportEndMs:r(g),viewportOriginMs:r(W),viewDirty:r(oe),humanSpeechBubbleReservedLevels:r(ot),scrollTop:(t==null?void 0:t.scrollTop)??((s=r(se))==null?void 0:s.scrollTop)??0,scrollLeft:(t==null?void 0:t.scrollLeft)??((l=r(se))==null?void 0:l.scrollLeft)??0};De.latency.set(e,n);const a=r(Xe),o=wr(ht.url)??_r()??"";a&&o&&e===Bt(a,"")&&De.latency.set(Bt(a,o),n)}async function Jn(e){e&&(await os(),r(se)&&(r(se).scrollTop=e.scrollTop,r(se).scrollLeft=e.scrollLeft))}function Qn(){if(!r(be)||!r(se))return;const e=De.latency.get(r(be));if(!e){Ge();return}e.scrollTop=r(se).scrollTop,e.scrollLeft=r(se).scrollLeft}rs(()=>{Nr(),Ge(),xe==null||xe(),nr(),Je(!1),oo()}),te(()=>{const e=r(Xe),t=wr(ht.url)??_r()??"";if(t!==r(Ot)&&i(Ot,t,!0),!e)return;const n=Bt(e,t);if(n===r(be))return;Nr(),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(Yt,s,!0),i(oe,s?(a==null?void 0:a.viewDirty)??!0:!1,!0),i(Oe,(a==null?void 0:a.error)??null,!0),i(ve,(a==null?void 0:a.recordingError)??null,!0),i(me,null),i(Se,(a==null?void 0:a.waveformError)??null,!0),Je(!1),de=a!=null&&a.recordingLoaded?a.playbackAudioBuffer:null,i(Y,(a==null?void 0:a.playbackPositionMs)??0,!0),i(ce,null),i(U,a!=null&&a.recordingLoaded?a.waveform:null,!0),i(Le,a!=null&&a.dataLoaded?a.conversation:null,!0),i(j,a!=null&&a.dataLoaded?a.traces:[],!0),i(pe,a!=null&&a.dataLoaded?a.conversationTraces:[],!0),i(Pe,(a==null?void 0:a.dataLoaded)??!1,!0),i($,a!=null&&a.recordingLoaded?a.recording:kr(),!0),i(He,(a==null?void 0:a.recordingLoaded)??!1,!0),i(u,null),i(g,null),i(ot,(a==null?void 0:a.humanSpeechBubbleReservedLevels)??1,!0),tt.setSourceId(t||void 0),r(Pe)?i(We,!1):ho(e),r(He)?i(bt,!1):bo($r(e,t)),Jn(a)}),te(()=>{const e=r(Yt),t=r(Pe),n=r(_t)??r(Ye),a=r(W);if(!e||!t||!n)return;i(Yt,null),i(oe,!0);const o=ps(e,a);cr(o.startMs,o.endMs)}),te(()=>{!r(Pe)||!(r(_t)??r(Ye))||r(oe)||lr(!1)}),te(()=>{const e=r(be),t=r(u),n=r(g);!e||t==null||n==null||Ln(e,{startMs:t,endMs:n,originMs:r(W)})}),te(()=>{const e=r(Vt);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(Ut);if(!e||typeof ResizeObserver>"u")return;i(Ue,e.clientWidth,!0),i(Kt,e.clientHeight,!0);const t=new ResizeObserver(n=>{const a=n[0];a&&(i(Ue,a.contentRect.width,!0),i(Kt,a.contentRect.height,!0))});return t.observe(e),()=>t.disconnect()}),te(()=>{if(!r($).exists||typeof window>"u")return;const t=n=>{n.code==="Space"&&(n.metaKey||n.ctrlKey||n.altKey||n.shiftKey||uo(n.target)||(n.preventDefault(),zr()))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)}),te(()=>{const e=r(qt),t=r(U),n=r(ge),a=r(u),o=r(g),s=r(Ue),l=r(Kt);!e||!t||n==null||a==null||o==null||ao(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 ea(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function er(e){return Math.max(0,Math.min(255,Math.round(e)))}function O(e,t,n){return Math.min(n,Math.max(t,e))}function G(e,t){const n=(e??"").trim().replace(/^#/,""),a=n.length===3?n.split("").map(y=>`${y}${y}`).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),c=Math.abs(Math.max(-1,Math.min(1,t))),d=t>=0?255:0;return`#${er(o+(d-o)*c).toString(16).padStart(2,"0")}${er(s+(d-s)*c).toString(16).padStart(2,"0")}${er(l+(d-l)*c).toString(16).padStart(2,"0")}`}function ta(e){const t=ea(e);return t==null?"—":`${Math.round(t)} ms`}function ra(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 na(e){try{return JSON.stringify(e??null,null,2)}catch{return String(e)}}async function aa(){try{await navigator.clipboard.writeText(na(r(j))),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 Nr(){!r(be)||r(u)==null||r(g)==null||Ln(r(be),{startMs:r(u),endMs:r(g),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 tr(e){const t=e.payload;return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function oa(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 sa(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 ia(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 la(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 ca(e){const t=tr(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 Fr(e){const t=tr(e);return J(t.text)}function da(e){return e.eventType==="stt.final"||e.eventType==="stt.final_transcript"}function ue(e){const t=J(e);return t&&t.replace(/\s+/g," ").trim()||null}function ua(e){const t=tr(e),n=ue(t.text)??ue(t.transcript)??ue(t.finalTranscript)??ue(t.final_transcript)??ue(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=ue(o.text);if(s)return s}return null}function Dr(e){return e.traceType==="CONVERSATIONAL"}function fa(e){return Dr(e)&&e.role.toLowerCase()==="user"&&(e.eventName==="received-message"||e.eventName==="llm-handler-stream-requested")}function pa(e){return Dr(e)&&(e.eventName==="finished-main-streaming-step"||e.eventName==="sent-message")}function rr(e){return J(e.traceId)??`${e.createdAt}:${e.eventName}:${e.content}`}function Wr(){for(const e of r(j).slice().sort(pt))if(e.eventType==="call.started"&&Number.isFinite(e.atMs))return e.atMs;return r(W)}function va(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(Wr(),e)}function ma(e){return/<WAIT\b[^>]*\/?\s*>/i.test(e)}function ha(e){return e.traceType==="STEP"&&ls(e.name)&&J(e.response)!=null}function Or(e){return e.replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim()}function ba(e,t){if(e===t)return!0;const n=Or(e),a=Or(t);return n!==""&&n===a}function xa(e){let t=e-Lr,n=e+Lr;for(const a of r(pe))if(fa(a))if(a.createdAt<=e)t=a.createdAt;else{n=a.createdAt;break}return{start:t,end:n}}function ga(e,t,n){const a=xa(e.createdAt);return t.filter(o=>!n.has($e(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 ya(){const e=[],t=new Set,n=r(pe).filter(ha).sort(ir),a=r(pe).filter(pa).sort(ir);for(const o of a){const s=ga(o,n,t),c=(s?J(s.response):null)??J(o.content),d=ue(c);if(!d||!c)continue;const y=e.find(M=>M.agentTraceIds.size>0&&Math.abs(M.createdAt-o.createdAt)<=1e3&&ba(M.fullText,c));if(y){y.agentTraceIds.add(rr(o)),s&&t.add($e(s));continue}s&&t.add($e(s)),e.push({id:s?`response:step:${$e(s)}`:`response:agent:${rr(o)}`,text:d,fullText:c,createdAt:o.createdAt,agentTraceIds:new Set([rr(o)]),traceLabel:Q(s??o)})}for(const o of n){const s=$e(o);if(t.has(s))continue;const l=J(o.response),c=ue(l);!c||!l||e.push({id:`response:step:${s}`,text:c,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 $e(e){return J(e.traceId)??`${e.seq??"?"}:${e.createdAt??"?"}`}function wa(){return r(j).slice().sort(pt).flatMap(e=>{if(e.eventType!=="tts.text.first_sent"&&e.eventType!=="tts.text.completed")return[];const t=ue(Fr(e));return t?[{trace:e,text:t}]:[]})}function _a(e,t,n,a){const o=a-250,s=e.start+2e3;return t.filter(({trace:c})=>n.has($e(c))?!1:c.atMs>=o&&c.atMs<=s).sort((c,d)=>Math.abs(c.trace.atMs-e.start)-Math.abs(d.trace.atMs-e.start))[0]??null}function Ta(e){const t=new Map,n=e.filter(l=>l.row==="Playback"&&l.durationMs>0).sort((l,c)=>l.start-c.start||l.end-c.end),a=new Set,o=wa();let s=Wr();for(const l of n){const c=_a(l,o,a,s);s=Math.max(s,l.end),c&&(a.add($e(c.trace)),t.set(l.id,{text:c.text,fullText:c.text,traceLabel:Q(c.trace)}))}return t}function Ma(e){return e.flatMap(t=>{if(!ma(t.fullText))return[];const n=La(t.createdAt);return[{...Lt({id:`playback:wait:${t.id}`,row:"Playback",start:t.createdAt,end:n,colorKey:"playback",label:"WAIT response",traceLabel:t.traceLabel}),speechText:t.text,speechFullText:t.fullText,speechTraceLabel:t.traceLabel}]})}function La(e){const t=r(j).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 Pa(){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(j).slice().sort(pt).forEach(n=>{if(!da(n))return;const a=ua(n);a&&e.push({id:`bubble:human:${n.traceId??n.seq}`,role:"human",text:a,fullText:a,anchorTime:n.atMs,minStartTime:va(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 Sa(e){const t=r(ke).findIndex(n=>n.label===e);return t===-1?z:z+t*(Me+ae)+Math.round(Me/2)}function Ea(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+Cn)}function ka(e,t){const n=Ea(e),a=Math.max(Fe,t);return O(n,Fe,a)}function $a(e,t){const n=new Set,a=[],o=Math.max(Fe,t);for(const s of[e,Rn,In,Fe]){const l=O(s,Fe,o);l>e||n.has(l)||(n.add(l),a.push(l))}return a}function Hr(e,t){let n=-1;for(const a of e)a.role===t&&(n=Math.max(n,a.level));return n+1}function Aa(e){return Math.max(0,e)*Tr}function Ia(e){const t=r(zn);return e.map(n=>{const a=n.level*Tr,o=t+a,s=Sa(n.anchorRow);return{...n,topPx:a,lineTopPx:s,lineHeightPx:Math.max(1,o-s)}})}function Ra(e,t){if(r(u)==null||r(g)==null||r(he)<=0)return[];const n=r(u),o=r(g)-n;if(!Number.isFinite(o)||o<=0)return[];const s=t.filter(d=>d.role===e).map(d=>{const y=(d.anchorTime-n)/o*100,M=(d.minStartTime-n)/o*r(he),T=y/100*r(he);return{...d,anchorPercent:y,anchorPx:T,maxWidthPx:Math.max(Fe,T-M)}}).sort((d,y)=>d.anchorPx-y.anchorPx||d.anchorTime-y.anchorTime),l=Array.from({length:Mr},()=>Number.NEGATIVE_INFINITY),c=[];for(const d of s){const y=ka(d.text,d.maxWidthPx),M=$a(y,d.maxWidthPx);let T=null;for(const X of M){const Z=d.anchorPx,I=Z-X;for(let F=0;F<Mr;F+=1)if(!(I<l[F]+An)){T={...d,leftPx:I,topPx:0,widthPx:X,level:F,lineTopPx:ne,lineHeightPx:1},l[F]=Z;break}if(T)break}T&&c.push(T)}return c}function Ca(){const e=Pa();return Ra("human",e)}function Ba(e){return`left:${Math.round(e.leftPx)}px;top:${Math.round(e.topPx)}px;width:${Math.round(e.widthPx)}px;height:${ne}px;`}function Na(e){return`left:${e.anchorPercent}%;top:${Math.round(e.lineTopPx)}px;height:${Math.round(e.lineHeightPx)}px;`}function Fa(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 Da(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 nr(){dt!=null&&(window.clearTimeout(dt),dt=null)}function Vr(e,t){const n=t.currentTarget;n instanceof HTMLElement&&(nr(),dt=window.setTimeout(()=>{i(nt,e,!0),i(at,n,!0),dt=null},Bn))}function Mt(){nr(),i(nt,null),i(at,null)}function Lt(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 Wa(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 Oa(e){return cs(e).filter(t=>ds(r(pe),t)!=null).map(t=>Lt({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 (>${us}ms)`:"OK",text:t.text,traceLabel:t.speechCreatedTrace?`${Q(t.startTrace)} -> ${Q(t.speechCreatedTrace)} -> ${Q(t.endTrace)}`:`${Q(t.startTrace)} -> ${Q(t.endTrace)}`}))}function Ha(e){const t=Oa(e);return e.forEach((n,a)=>{const o=On.get(n.eventType);if(!o)return;const s=Wa(e,a,l=>l.eventType===o.endEventType,l=>l.eventType===o.startEventType);!s||s.atMs<n.atMs||t.push(Lt({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 Va(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)=>Lt({id:`point:${o.traceId??o.seq}:${s}`,row:oa(o.eventType),start:o.atMs,end:o.atMs,colorKey:sa(o.eventType),label:la(o),description:ca(o),text:Fr(o),traceLabel:Q(o),eventMarker:ia(o.eventType)}));return[...Ha(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 Pt(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 ar(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 or(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 St(e){return e.row==="Playback"&&!e.eventMarker&&e.durationMs>0}function Ua(e){return!St(e)||!e.speechFullText?null:{role:"agent",fullText:e.speechFullText}}function qa(e){return St(e)?e.speechText:null}function Ka(e){if(r(u)==null||r(g)==null)return null;const t=r(g)-r(u);if(!Number.isFinite(t)||t<=0)return null;const n=Er[e.colorKey]??C.gray,a=G(n,-.25);if(e.end===e.start){if(e.start<r(u)||e.start>r(g))return null;const d=O((e.start-r(u))/t*100,0,100);return e.eventMarker==="start"?`left:${d}%;width:7px;background:${n};border-color:${a};clip-path:polygon(0 0,100% 50%,0 100%);`:e.eventMarker==="end"?`left:calc(${d}% - 7px);width:7px;background:${n};border-color:${a};clip-path:polygon(100% 0,0 50%,100% 100%);`:`left:calc(${d}% - 2px);width:4px;background:${n};border-color:${a};`}const o=Math.max(e.start,r(u)),s=Math.min(e.end,r(g));if(s<o)return null;const l=(o-r(u))/t*100,c=(s-o)/t*100;return St(e)?`left:${l}%;width:max(${c}%,2px);`:`left:${l}%;width:max(${c}%,2px);background:${n};border-color:${a};`}function ja(e){return e.eventMarker?"absolute inset-y-0 shadow-[0_0_0_1px_rgba(0,0,0,0.28)]":St(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 Xa(e){return[e.label,e.row!==e.label?e.row:"",`${Ze(e.start-r(W))} → ${Ze(e.end-r(W))} (${ta(e.durationMs)})`,e.description??"",e.text?`Text: ${e.text}`:"",e.explain??"",e.traceLabel].filter(n=>n.trim()!=="").join(`
|
|
3
|
+
`)}function za(e,t){const n=t.currentTarget;n instanceof HTMLElement&&(i(qe,e,!0),i(rt,n,!0))}function Ur(){i(qe,null),i(rt,null)}function Ya(e,t){const n=Ua(e);if(n){Ur(),Vr(n,t);return}Mt(),za(e,t)}function qr(){Ur(),Mt()}function Ga(e){return`left:${e.leftPercent}%;top:${e.topPx}px;height:${e.heightPx}px;border-color:${e.color};opacity:${e.opacity};`}function Za(e){return`left:${e.leftPercent}%;top:${e.topPx}px;height:${e.heightPx}px;`}function Ja(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 Qa(e){if(!r($).exists||r(u)==null||r(g)==null)return[];const t=r(u),n=r(g),a=n-t;if(!Number.isFinite(a)||a<=0)return[];const o=r(Jt),s=new Set,l=[];return e.forEach((c,d)=>{if(!Fn.has(c.label))return;const M=z+d*(Me+ae)+Math.round(Me/2);c.segments.forEach(T=>{if(T.id.startsWith("playback:wait:"))return;const X=G(Er[T.colorKey]??C.gray,.15),Z=T.end===T.start?T.start>=t&&T.start<=n?[T.start]:[]:(()=>{const I=Math.max(T.start,t),F=Math.min(T.end,n);return F<I?[]:[I,F]})();for(const I of Z){const F=Math.round(I),ye=`${c.label}:${F}`;if(s.has(ye))continue;s.add(ye);const ee=O((I-t)/a*100,0,100);l.push({id:`${T.id}:${F}`,leftPercent:ee,topPx:M,heightPx:Math.max(1,o-M),color:X,opacity:c.label==="VAD"?.62:.48})}})}),l}function eo(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 to(e,t,n){const a=t-e;if(!Number.isFinite(a)||a<=0)return[];const o=eo(a),s=Math.ceil((e-n)/o)*o+n,l=[];for(let c=s;c<=t;c+=o){const d=(c-e)/a*100;l.push({time:c,leftPercent:d,label:Ze(c-n)})}return l}function Kr(){const e=window.AudioContext??window.webkitAudioContext;if(!e)throw new Error("Web Audio is not available in this browser");return new e}function ro(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=O(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 c=l*a,d=l===n-1?e.length:Math.min(e.length,c+a);let y=1,M=-1;for(let T=0;T<e.numberOfChannels;T+=1){const X=e.getChannelData(T);for(let Z=c;Z<d;Z+=1){const I=X[Z]??0;I<y&&(y=I),I>M&&(M=I)}}M===-1&&y===1&&(y=0,M=0),o[l]=y,s[l]=M}return{durationMs:e.duration*1e3,binDurationMs:e.duration*1e3/n,minPeaks:o,maxPeaks:s,channelCount:e.numberOfChannels,sampleRate:e.sampleRate}}async function no(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=Kr();try{const o=await a.decodeAudioData(n.slice(0));return{peaks:ro(o),audioBuffer:o}}finally{await a.close().catch(()=>{})}}function ao(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 c=t.recordingStartMs+t.peaks.durationMs,d=Math.max(t.viewportStartMs,t.recordingStartMs),y=Math.min(t.viewportEndMs,c),M=a/2,T=a*.42;if(s.strokeStyle="rgba(147, 255, 109, 0.95)",s.lineWidth=1,s.beginPath(),y>d){const X=Math.max(0,Math.floor((d-t.recordingStartMs)/t.peaks.binDurationMs)),Z=Math.min(t.peaks.minPeaks.length-1,Math.ceil((y-t.recordingStartMs)/t.peaks.binDurationMs));for(let I=X;I<=Z;I+=1){const ye=(t.recordingStartMs+I*t.peaks.binDurationMs-t.viewportStartMs)/l*n,ee=t.peaks.minPeaks[I]??0,At=t.peaks.maxPeaks[I]??0,It=M-At*T,Rt=M-ee*T;s.moveTo(ye,It),s.lineTo(ye,Rt)}}s.stroke(),s.strokeStyle="rgba(255, 255, 255, 0.18)",s.lineWidth=1,s.beginPath(),s.moveTo(0,M),s.lineTo(n,M),s.stroke()}function sr(){je&&(window.cancelAnimationFrame(je),je=0)}async function oo(){const e=ie;ie=null,e&&await e.close().catch(()=>{})}async function so(){return(!ie||ie.state==="closed")&&(ie=Kr()),ie.state==="suspended"&&await ie.resume(),ie}function jr(){const e=Xr();if(r(le)&&ie&<!=null&&ct!=null){const t=(ie.currentTime-ct)*1e3,n=lt+Math.max(0,t);return e>0?O(n,0,e):Math.max(0,n)}return e>0?O(r(Y),0,e):Math.max(0,r(Y))}function Je(e=!0){e&&i(Y,jr(),!0);const t=it;if(it=null,lt=null,ct=null,i(le,!1),sr(),!!t){t.onended=null;try{t.stop()}catch{}t.disconnect()}}function io(){sr();const e=()=>{if(!r(le)){je=0;return}i(Y,jr(),!0),je=window.requestAnimationFrame(e)};je=window.requestAnimationFrame(e)}function Xr(){return r(U)&&Number.isFinite(r(U).durationMs)?Math.max(0,r(U).durationMs):de&&Number.isFinite(de.duration)?Math.max(0,de.duration*1e3):0}function lo(e){const t=Xr(),n=t>0?O(e,0,t):Math.max(0,e);i(Y,n,!0),r(le)&&Yr(n)}function co(e,t){if(r(u)==null||r(g)==null||r(ge)==null)return;const n=t.getBoundingClientRect(),a=O((e-n.left)/Math.max(1,n.width),0,1),o=r(u)+a*(r(g)-r(u));i(ce,null),lo(o-r(ge))}function uo(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 zr(){if(!(!r($).exists||!r($).audioUrl)){if(i(ce,null),r(le)){Je(!0);return}await Yr(r(Y))}}async function Yr(e){const t=de;if(!t){i(ce,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:O(e,0,n):Math.max(0,e);Je(!1),i(Y,a,!0);try{const o=await so(),s=o.createBufferSource();s.buffer=t,s.connect(o.destination),s.onended=()=>{it===s&&(it=null,lt=null,ct=null,i(le,!1),i(Y,n,!0),sr())},it=s,lt=a,ct=o.currentTime,i(le,!0),i(ce,null),io(),s.start(0,a/1e3)}catch(o){Je(!1),i(le,!1),i(ce,o instanceof Error?o.message:"Failed to play recording",!0)}}function fo(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 po(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 ir(e,t){return e.createdAt-t.createdAt||String(e.traceId??"").localeCompare(String(t.traceId??""))}async function vo(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 fo(t).slice().sort(pt)}async function mo(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 po(t).slice().sort(ir)}async function ho(e){const t=++gt;i(Pe,!1),i(We,!0),i(Oe,null);try{const[n,a,o]=await Promise.all([tt.getConversation(e).catch(s=>(console.error("Failed to load conversation details:",s),null)),vo(e),mo(e).catch(s=>(console.error("Failed to load conversation traces for latency matching:",s),[]))]);if(t!==gt)return;i(Le,n,!0),i(j,a,!0),i(pe,o,!0),i(Pe,!0)}catch(n){if(t!==gt)return;i(Oe,n instanceof Error?n.message:String(n),!0),i(Le,null),i(j,[],!0),i(pe,[],!0)}finally{if(t!==gt)return;i(We,!1),Ge()}}async function Gr(e){if(Je(!1),i($,e,!0),i(me,null),i(ce,null),i(Y,0),!e.exists||!e.audioUrl){de=null,i(U,null),i(Ve,!1),i(Se,null);return}const t=++yt;i(Ve,!0),i(Se,null);try{const n=await no(e.audioUrl);if(t!==yt)return;i(U,n.peaks,!0),de=n.audioBuffer}catch(n){if(t!==yt)return;de=null,i(U,null),i(Se,n instanceof Error?n.message:String(n),!0)}finally{if(t!==yt)return;i(Ve,!1)}}async function bo(e=r(ut)){if(!e)return;const t=++st;i(He,!1),i(bt,!0),i(ve,null);try{const n=await fetch(e,{cache:"no-store",headers:{accept:"application/json"}}),a=await or(n);if(!n.ok)throw new Error(ar(a,"Failed to load recording metadata"));if(t!==st||(await Gr(Pt(a)),t!==st))return;i(He,!0)}catch(n){if(t!==st)return;i(ve,n instanceof Error?n.message:String(n),!0),i($,Pt({}),!0),i(U,null),i(Ve,!1)}finally{if(t!==st)return;i(bt,!1),Ge()}}function lr(e=!0){const t=r(_t)??r(Ye);if(!t)return;const n=r(W);i(u,n,!0),i(g,Math.max(n+1e3,t.max),!0),i(oe,e,!0)}function xo(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 cr(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||t<=e)return;const n=xo(e,t);i(u,n.startMs,!0),i(g,n.endMs,!0)}function Et(e,t=.5){if(r(u)==null||r(g)==null)return;const n=r(g)-r(u);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),c=O(n*e,s,l),d=O(t,0,1),M=r(u)+n*d-c*d;i(oe,!0),cr(M,M+c)}function go(e){let t=e.deltaY;return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=16:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=window.innerHeight),O(t,-Pr,Pr)}function Zr(e){return Math.exp(go(e)*Nn)}function dr(e){if(r(he)<=0)return;e.preventDefault();const t=e.currentTarget.getBoundingClientRect(),n=O((e.clientX-t.left)/Math.max(1,t.width),0,1);Et(Zr(e),n)}function yo(e){if(r(Ue)<=0)return;e.preventDefault();const t=e.currentTarget.getBoundingClientRect(),n=O((e.clientX-t.left)/Math.max(1,t.width),0,1);Et(Zr(e),n)}function Jr(e){var d;xe==null||xe();const t=Math.max(0,e.activationDistancePx??0);let n=t===0;n&&((d=e.onStart)==null||d.call(e));const a=y=>{var X;if(n)return!0;const M=y.clientX-e.startEvent.clientX,T=y.clientY-e.startEvent.clientY;return Math.hypot(M,T)<t?!1:(n=!0,(X=e.onStart)==null||X.call(e),!0)},o=y=>{a(y)&&e.onMove(y)},s=y=>{var M,T;window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",l),window.removeEventListener("pointercancel",c),xe=null,!n&&y&&((M=e.onClick)==null||M.call(e,y)),(T=e.onEnd)==null||T.call(e,{wasDrag:n,event:y})},l=y=>s(y),c=()=>s();window.addEventListener("pointermove",o),window.addEventListener("pointerup",l),window.addEventListener("pointercancel",c),xe=()=>s()}function Qr(e){if(e.button!==0||r(u)==null||r(g)==null||r(he)<=0)return;e.preventDefault(),i(oe,!0);const t=e.clientX,n=r(u),a=r(g)-r(u);Jr({startEvent:e,onMove:o=>{const l=(o.clientX-t)/r(he)*a;cr(n-l,n-l+a)}})}function en(e){i($,{...r($),alignmentOffsetMs:Math.round(e)},!0)}async function tn(){if(!(!r($).exists||!r(ut))){i(Ht,!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($).alignmentOffsetMs})}),t=await or(e);if(!e.ok)throw new Error(ar(t,"Failed to save alignment offset"));i($,Pt(t),!0)}catch(e){i(me,e instanceof Error?e.message:String(e),!0)}finally{i(Ht,!1)}}}function wo(e){if(e.button!==0||!r($).exists||r(U)==null||r(u)==null||r(g)==null||r(Ue)<=0)return;e.preventDefault(),i(me,null);const t=e.currentTarget,n=e.clientX,a=r($).alignmentOffsetMs,o=r(g)-r(u);Jr({startEvent:e,activationDistancePx:6,onStart:()=>{i(oe,!0)},onMove:s=>{const c=(s.clientX-n)/r(Ue)*o;en(a+c)},onClick:s=>{co(s.clientX,t)},onEnd:({wasDrag:s})=>{s&&tn()}})}async function _o(){r($).exists&&(i(oe,!0),en(0),await tn())}async function To(e){var a;const t=e.currentTarget,n=(a=t.files)==null?void 0:a[0];if(t.value="",!(!n||!r(ut))){i(xt,!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 or(s);if(!s.ok)throw new Error(ar(l,"Failed to upload recording"));i(oe,!1),await Gr(Pt(l)),lr(!1),i(He,!0),Ge()}catch(o){i(ve,o instanceof Error?o.message:String(o),!0)}finally{i(xt,!1)}}}var rn=Hs(),kt=vt(rn),ur=b(kt),fr=b(ur),pr=b(fr),vr=b(pr),Mo=p(b(vr));{var Lo=e=>{var t=hs(),n=p(vt(t),2),a=b(n,!0);v(n),L(()=>R(a,r(Xe))),h(e,t)};D(Mo,e=>{r(Xe)&&e(Lo)})}v(vr);var nn=p(vr,2),mr=b(nn),an=p(b(mr),2),Po=b(an,!0);v(an),v(mr);var hr=p(mr,2),on=p(b(hr),2),So=b(on,!0);v(on),v(hr);var br=p(hr,2),sn=p(b(br),2),Eo=b(sn,!0);v(sn),v(br);var ln=p(br,2);{var ko=e=>{var t=bs(),n=p(b(t),2),a=b(n,!0);v(n),v(t),L(o=>R(a,o),[()=>Ze(r(Qt)-r(W))]),h(e,t)};D(ln,e=>{r($).exists&&r(Qt)!=null&&e(ko)})}var $o=p(ln,2);{var Ao=e=>{var t=xs(),n=p(b(t),2),a=b(n);v(n),v(t),L((o,s)=>R(a,`${o??""} → ${s??""}`),[()=>Ze(r(u)-r(W)),()=>Ze(r(g)-r(W))]),h(e,t)};D($o,e=>{r(u)!=null&&r(g)!=null&&e(Ao)})}v(nn),v(pr);var cn=p(pr,2),xr=b(cn);Be(xr,e=>i(jt,e),()=>r(jt));var dn=p(xr,2);Ne(dn,{variant:"secondary",size:"small",get disabled(){return r(xt)},onclick:()=>{var e;return(e=r(jt))==null?void 0:e.click()},children:(e,t)=>{Ce();var n=Re();L(()=>R(n,r(xt)?"Uploading…":r($).exists?"Replace WAV":"Upload WAV")),h(e,n)},$$slots:{default:!0}});var un=p(dn,2);{let e=w(()=>!r($).exists);Ne(un,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:()=>void zr(),children:(t,n)=>{Ce();var a=Re();L(()=>R(a,r(le)?"Pause":"Play")),h(t,a)},$$slots:{default:!0}})}var fn=p(un,2);{let e=w(()=>r(Br)==null);Ne(fn,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:()=>Et(.8),children:(t,n)=>{Ce();var a=Re("Zoom in");h(t,a)},$$slots:{default:!0}})}var pn=p(fn,2);{let e=w(()=>r(Br)==null);Ne(pn,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:()=>Et(1.25),children:(t,n)=>{Ce();var a=Re("Zoom out");h(t,a)},$$slots:{default:!0}})}var vn=p(pn,2);{let e=w(()=>!(r(_t)??r(Ye)));Ne(vn,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:()=>lr(!0),children:(t,n)=>{Ce();var a=Re("Fit call");h(t,a)},$$slots:{default:!0}})}var mn=p(vn,2);{let e=w(()=>!r($).exists||r(Ht));Ne(mn,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:_o,children:(t,n)=>{Ce();var a=Re("Reset alignment");h(t,a)},$$slots:{default:!0}})}var Io=p(mn,2);{let e=w(()=>!r(j).length);Ne(Io,{variant:"secondary",size:"small",get disabled(){return r(e)},onclick:aa,children:(t,n)=>{Ce();var a=Re();L(()=>R(a,r(Ke)==="ok"?"Copied":r(Ke)==="error"?"Copy failed":"Copy latency stream")),h(t,a)},$$slots:{default:!0}})}v(cn),v(fr);var hn=p(fr,2);{var Ro=e=>{var t=gs(),n=b(t,!0);v(t),L(()=>R(n,r(We)?"Loading call latency…":"Loading recording…")),h(e,t)};D(hn,e=>{(r(We)||r(bt))&&e(Ro)})}var bn=p(hn,2);{var Co=e=>{var t=Nt(),n=b(t);v(t),L(()=>R(n,`Failed to load latency traces: ${r(Oe)??""}`)),h(e,t)};D(bn,e=>{r(Oe)&&e(Co)})}var xn=p(bn,2);{var Bo=e=>{var t=Nt(),n=b(t);v(t),L(()=>R(n,`Recording error: ${r(ve)??""}`)),h(e,t)};D(xn,e=>{r(ve)&&e(Bo)})}var gn=p(xn,2);{var No=e=>{var t=Nt(),n=b(t);v(t),L(()=>R(n,`Alignment error: ${r(me)??""}`)),h(e,t)};D(gn,e=>{r(me)&&e(No)})}var Fo=p(gn,2);{var Do=e=>{var t=Nt(),n=b(t);v(t),L(()=>R(n,`Playback error: ${r(ce)??""}`)),h(e,t)};D(Fo,e=>{r(ce)&&e(Do)})}v(ur);var $t=p(ur,2),yn=b($t),wn=b(yn),Wo=b(wn);{var Oo=e=>{var t=ys();h(e,t)},Ho=e=>{var t=ws();h(e,t)},Vo=e=>{var t=_s();h(e,t)},Uo=e=>{var t=Ds(),n=b(t),a=p(b(n),2);re(a,19,()=>r(ke),f=>f.label,(f,_,S)=>{var A=Ts(),H=b(A,!0);v(A),L(()=>{N(A,`height:${Me}px;margin-top:${r(S)===0?0:ae}px;`),R(H,r(_).label)}),h(f,A)});var o=p(a,2),s=p(o,2);{var l=f=>{var _=Ms();N(_,`height:${Dt}px;margin-top:${ae}px;`),h(f,_)};D(s,f=>{r(ft)&&f(l)})}v(n);var c=p(n,2),d=b(c),y=b(d);re(y,17,()=>r(Ar),f=>f.id,(f,_)=>{var S=Ls();L(A=>N(S,A),[()=>Na(r(_))]),h(f,S)});var M=p(y,2);re(M,17,()=>r(Gn),f=>f.id,(f,_)=>{var S=Ps();L(A=>N(S,A),[()=>Ga(r(_))]),h(f,S)});var T=p(M,2);{var X=f=>{var _=Ss();L(S=>N(_,S),[()=>Za(r(Cr))]),h(f,_)};D(T,f=>{r(Cr)&&f(X)})}var Z=p(T,2);{var I=f=>{var _=Es(),S=vt(_),A=p(S,2);L(()=>{N(S,`left:${r(ze).leftPercent}%;top:${r(ze).topPx}px;height:${r(ze).heightPx}px;`),N(A,`left:${r(ze).leftPercent}%;top:${r(ze).topPx-4}px;`)}),h(f,_)};D(Z,f=>{r(ze)&&f(I)})}v(d);var F=p(d,2);re(F,21,()=>r(Tt),f=>f.time,(f,_,S,A)=>{var H=ks(),we=vt(H),q=p(we,2),k=b(q,!0);v(q),L(V=>{N(we,`left:${r(_).leftPercent}%;`),et(q,1,V),N(q,`left:${r(_).leftPercent}%;`),R(k,r(_).label)},[()=>mt(Ja(r(_)))]),h(f,H)}),v(F),Be(F,f=>i(Vt,f),()=>r(Vt));var ye=p(F,2);re(ye,19,()=>r(ke),f=>f.label,(f,_,S)=>{var A=Is(),H=b(A);re(H,17,()=>r(Tt),q=>q.time,(q,k,V,_e)=>{var Qe=Pn();L(()=>N(Qe,`left:${r(k).leftPercent}%;`)),h(q,Qe)});var we=p(H,2);re(we,17,()=>r(_).segments,q=>q.id,(q,k)=>{const V=w(()=>Ka(r(k))),_e=w(()=>qa(r(k)));var Qe=ts(),Ct=vt(Qe);{var Go=gr=>{var Te=As(),Zo=b(Te);{var Jo=Ae=>{var yr=$s(),Qo=b(yr,!0);v(yr),L(()=>R(Qo,r(_e))),h(Ae,yr)};D(Zo,Ae=>{r(_e)&&Ae(Jo)})}v(Te),L(Ae=>{et(Te,1,Ae),N(Te,r(V))},[()=>mt(ja(r(k)))]),fe("pointerenter",Te,Ae=>Ya(r(k),Ae)),fe("pointerleave",Te,qr),Ie("pointerdown",Te,qr),h(gr,Te)};D(Ct,gr=>{r(V)&&gr(Go)})}h(q,Qe)}),v(A),L(()=>N(A,`height:${Me}px;margin-top:${r(S)===0?0:ae}px;`)),Ie("pointerdown",A,Qr),fe("wheel",A,dr),h(f,A)});var ee=p(ye,2);let At;var It=b(ee),Rt=p(It,2);re(Rt,17,()=>r(Tt),f=>f.time,(f,_,S,A)=>{var H=Rs();L(()=>N(H,`left:${r(_).leftPercent}%;`)),h(f,H)});var Xo=p(Rt,2);re(Xo,17,()=>r(Ar),f=>f.id,(f,_)=>{var S=Sn(),A=b(S,!0);v(S),L((H,we)=>{et(S,1,H),N(S,we),R(A,r(_).text)},[()=>mt(Fa(r(_))),()=>Ba(r(_))]),fe("pointerenter",S,H=>Vr(r(_),H)),fe("pointerleave",S,Mt),Ie("pointerdown",S,Mt),h(f,S)}),v(ee);var zo=p(ee,2);{var Yo=f=>{var _=Fs();N(_,`height:${Dt}px;margin-top:${ae}px;`);var S=b(_);{var A=k=>{var V=Cs();h(k,V)},H=k=>{var V=Bs(),_e=b(V);v(V),L(()=>R(_e,`Failed to decode waveform: ${r(Se)??""}`)),h(k,V)},we=k=>{var V=Ns();Be(V,_e=>i(qt,_e),()=>r(qt)),h(k,V)};D(S,k=>{r(Ve)?k(A):r(Se)?k(H,1):k(we,-1)})}var q=p(S,2);re(q,17,()=>r(Tt),k=>k.time,(k,V,_e,Qe)=>{var Ct=Pn();L(()=>N(Ct,`left:${r(V).leftPercent}%;`)),h(k,Ct)}),v(_),Be(_,k=>i(Ut,k),()=>r(Ut)),Ie("pointerdown",_,wo),fe("wheel",_,yo),h(f,_)};D(zo,f=>{r(ft)&&f(Yo)})}v(c),v(t),L(()=>{N(o,`height:${r(Zt)}px;margin-top:${r(wt)}px;`),At=et(ee,1,"relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60",null,At,{"rounded-b":!r(ft),"border-b":!r(ft)}),N(ee,`height:${r(Ir)}px;margin-top:${r(wt)}px;`),N(It,`height:${r(Zt)}px;`)}),fe("wheel",F,dr),Ie("pointerdown",ee,Qr),fe("wheel",ee,dr),h(e,t)};D(Wo,e=>{r(We)?e(Oo):r(Ee).length?r(u)==null||r(g)==null?e(Vo,2):e(Uo,-1):e(Ho,1)})}v(wn),v(yn),v($t),Be($t,e=>i(se,e),()=>r(se)),v(kt);var _n=p(kt,2);{var qo=e=>{Be(Tn(e,{get referenceEl(){return r(rt)},placement:"top-start",offset:[0,10],children:n=>{var a=Ws();re(a,21,()=>r(Zn),ss,(o,s,l)=>{var c=Sn();et(c,1,mt(l===0?"font-semibold text-rc-gray-050":"mt-1 whitespace-pre-wrap break-words text-rc-gray-300"));var d=b(c,!0);v(c),L(()=>R(d,r(s))),h(o,c)}),v(a),h(n,a)},$$slots:{default:!0}}),n=>i(Xt,n,!0),()=>r(Xt))};D(_n,e=>{r(qe)&&r(rt)&&e(qo)})}var Ko=p(_n,2);{var jo=e=>{const t=w(()=>r(nt));Be(Tn(e,{get referenceEl(){return r(at)},placement:"top-start",offset:[0,-4],flip:!1,children:a=>{var o=Os(),s=b(o),l=b(s,!0);v(s),v(o),L(c=>{et(o,1,c),R(l,r(t).fullText)},[()=>mt(Da(r(t)))]),h(a,o)},$$slots:{default:!0}}),a=>i(zt,a,!0),()=>r(zt))};D(Ko,e=>{r(nt)&&r(at)&&e(jo)})}L(e=>{R(Po,r(Un)),R(So,r(Ee).length),R(Eo,e)},[()=>ra(r($).alignmentOffsetMs)]),Ie("click",kt,e=>e.stopPropagation()),Ie("change",xr,To),fe("scroll",$t,Qn),h(B,rn),as()}es(["click","change","pointerdown"]);export{oi as component};
|
|
Binary file
|