@recombine-ai/bosun 0.16.1 → 0.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/_app/immutable/assets/0.Rrc0O--C.css +1 -0
- 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 +1 -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/assets/ReadOnlyMonacoDiff.iiWNRlR-.css +1 -0
- package/build/client/_app/immutable/assets/ReadOnlyMonacoDiff.iiWNRlR-.css.br +0 -0
- package/build/client/_app/immutable/assets/ReadOnlyMonacoDiff.iiWNRlR-.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{Cyai3SOj.js → B1HdnQRQ.js} +1 -1
- 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/{uLGP0py1.js → B5zf3x62.js} +1 -1
- 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/{Buo-57fF.js → BHHfrjbV.js} +1 -1
- package/build/client/_app/immutable/chunks/BHHfrjbV.js.br +2 -0
- package/build/client/_app/immutable/chunks/BHHfrjbV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BbGYcfPY.js +3 -0
- 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/{CX0Ekq8t.js → Bmd5zhWC.js} +1 -1
- 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/{Dslf9OwW.js → BnqH7p3U.js} +1 -1
- 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/{CJYOmGlC.js → Bog028VR.js} +1 -1
- 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/{iAhzu4tv.js → Bv1mNXs0.js} +1 -1
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- package/build/client/_app/immutable/chunks/CEHsomMo.js.br +0 -0
- package/build/client/_app/immutable/chunks/CEHsomMo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CVlsAO8k.js → CJcZ2GVC.js} +1 -1
- 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/{DJriQKD9.js → CN555stc.js} +1 -1
- 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 +9 -0
- 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/{Ce9aG7vY.js → Cp_st-64.js} +1 -1
- 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/{CPXdAKdv.js → D8mA-uZ4.js} +1 -1
- 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/{Ca197UDq.js → DCXjBDmY.js} +1 -1
- package/build/client/_app/immutable/chunks/{Ca197UDq.js.br → DCXjBDmY.js.br} +0 -0
- package/build/client/_app/immutable/chunks/DCXjBDmY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSLyVE1P.js +1 -0
- 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/{07xNIa59.js → Ddv5LgEc.js} +1 -1
- 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/{nYD9wsyN.js → DfcDjAv-.js} +1 -1
- 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/{D-B5X35l.js → Dg0A8wPA.js} +1 -1
- 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/{BPNEONy5.js → Dm49pcMm.js} +1 -1
- 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/{BI42X8h_.js → DneQQ7D5.js} +1 -1
- 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/{C39ai1md.js → DoD3q5w5.js} +1 -1
- 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/{BLu86SbA.js → DtXXy94i.js} +1 -1
- 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/{CAjPRvNs.js → Dy2CFyD6.js} +1 -1
- 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 +2 -0
- 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/{BsDZe4N6.js → ILTCveYH.js} +1 -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/{Bj8jfBTi.js → UqjCSZmA.js} +1 -1
- 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 +1 -0
- package/build/client/_app/immutable/chunks/_YcrHZ6P.js.br +2 -0
- package/build/client/_app/immutable/chunks/_YcrHZ6P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/i6ygh6h8.js +1 -0
- package/build/client/_app/immutable/chunks/i6ygh6h8.js.br +2 -0
- package/build/client/_app/immutable/chunks/i6ygh6h8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/oRi68ch3.js +1 -0
- 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/{BJTwdUYr.js → pPpIn6tB.js} +1 -1
- 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/{C7he4XPB.js → r0sHOWrM.js} +1 -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/{CaHl3dME.js → wcTQUnZO.js} +1 -1
- 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.Ghwm_QxJ.js → app.DdO0gkPg.js} +2 -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 +1 -0
- package/build/client/_app/immutable/entry/start.eAjDq0c9.js.br +2 -0
- package/build/client/_app/immutable/entry/start.eAjDq0c9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.LR7iEcCa.js → 0.nG3DdvIX.js} +1 -1
- 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 +1 -0
- 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.BoxFN5Nv.js → 10.dm2dgy31.js} +6 -6
- 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.BFy4oAT6.js → 15.D2I0y3ys.js} +1 -1
- 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.C6M3Ukek.js → 17.CKxGp0E7.js} +1 -1
- 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.C7Jynwaf.js → 18.DHJxyQpw.js} +1 -1
- 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 +35 -0
- 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.Cldr3PEw.js → 3.BUKrXGR_.js} +1 -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.C5HDYxuE.js → 4.C8VxVbVn.js} +1 -1
- 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.BRZRzqKl.js → 5.BjrnKYaA.js} +1 -1
- 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.BEjGUOuB.js → 6.C_hEzPrU.js} +1 -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.wHpoUA6X.js → 8.BTYaOiDC.js} +1 -1
- 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 +2 -0
- 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/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-D_duQDWy.js +9 -0
- package/build/server/chunks/0-D_duQDWy.js.map +1 -0
- package/build/server/chunks/1-C0HdTvXW.js +9 -0
- package/build/server/chunks/{1-p4jSVKu9.js.map → 1-C0HdTvXW.js.map} +1 -1
- package/build/server/chunks/10-DcfhCR4R.js +9 -0
- package/build/server/chunks/10-DcfhCR4R.js.map +1 -0
- package/build/server/chunks/15-BQcb9C_y.js +9 -0
- package/build/server/chunks/{15-BRw8wtLp.js.map → 15-BQcb9C_y.js.map} +1 -1
- package/build/server/chunks/17-DuVCTioj.js +9 -0
- package/build/server/chunks/17-DuVCTioj.js.map +1 -0
- package/build/server/chunks/18-CT0VFW_p.js +9 -0
- package/build/server/chunks/18-CT0VFW_p.js.map +1 -0
- package/build/server/chunks/2-DgTzKQAP.js +9 -0
- package/build/server/chunks/2-DgTzKQAP.js.map +1 -0
- package/build/server/chunks/3-eQMSMzXP.js +9 -0
- package/build/server/chunks/3-eQMSMzXP.js.map +1 -0
- package/build/server/chunks/4-OaAJtDqP.js +9 -0
- package/build/server/chunks/4-OaAJtDqP.js.map +1 -0
- package/build/server/chunks/5-CBdMutbv.js +9 -0
- package/build/server/chunks/{5-D1bI9E9O.js.map → 5-CBdMutbv.js.map} +1 -1
- package/build/server/chunks/6-FoEi7ggm.js +9 -0
- package/build/server/chunks/{6-BJxJFeJN.js.map → 6-FoEi7ggm.js.map} +1 -1
- package/build/server/chunks/8-B44yRkfX.js +9 -0
- package/build/server/chunks/8-B44yRkfX.js.map +1 -0
- package/build/server/chunks/9-eUjFpHzI.js +9 -0
- package/build/server/chunks/9-eUjFpHzI.js.map +1 -0
- package/build/server/chunks/{AgentSidebar-C--dGIV5.js → AgentSidebar-BWBnqHnV.js} +4 -4
- package/build/server/chunks/{AgentSidebar-C--dGIV5.js.map → AgentSidebar-BWBnqHnV.js.map} +1 -1
- package/build/server/chunks/{Button-oIUr2LUP.js → Button-DH7gdU0s.js} +2 -2
- package/build/server/chunks/{Button-oIUr2LUP.js.map → Button-DH7gdU0s.js.map} +1 -1
- package/build/server/chunks/{ChatStepTrace-CX2Zolmp.js → ChatStepTrace-BivoNYOY.js} +6 -4
- package/build/server/chunks/ChatStepTrace-BivoNYOY.js.map +1 -0
- package/build/server/chunks/{Dropdown-DfCyYHqi.js → Dropdown-DnARl86Q.js} +2 -2
- package/build/server/chunks/{Dropdown-DfCyYHqi.js.map → Dropdown-DnARl86Q.js.map} +1 -1
- package/build/server/chunks/{Icon-DadJPtVP.js → Icon-DP1YKCRV.js} +2 -2
- package/build/server/chunks/{Icon-DadJPtVP.js.map → Icon-DP1YKCRV.js.map} +1 -1
- package/build/server/chunks/{Input-R74u4cO5.js → Input-CUJ9Cg7b.js} +2 -2
- package/build/server/chunks/{Input-R74u4cO5.js.map → Input-CUJ9Cg7b.js.map} +1 -1
- package/build/server/chunks/{Modal-CAzVFw5x.js → Modal-CGJuNpZ0.js} +21 -9
- package/build/server/chunks/{Modal-CAzVFw5x.js.map → Modal-CGJuNpZ0.js.map} +1 -1
- package/build/server/chunks/{Panel-D0IY1AzO.js → Panel-zvjxe036.js} +2 -2
- package/build/server/chunks/{Panel-D0IY1AzO.js.map → Panel-zvjxe036.js.map} +1 -1
- package/build/server/chunks/{Tab-D13L_Up5.js → Tab-CUkyLqbN.js} +4 -4
- package/build/server/chunks/{Tab-D13L_Up5.js.map → Tab-CUkyLqbN.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-D4EOIHJJ.js → _layout.svelte-B-0DHjLB.js} +8 -8
- package/build/server/chunks/{_layout.svelte-D4EOIHJJ.js.map → _layout.svelte-B-0DHjLB.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-Blfto3jh.js → _layout.svelte-B88WMyk0.js} +681 -31
- package/build/server/chunks/_layout.svelte-B88WMyk0.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-Dk-9LkfL.js → _layout.svelte-BnrWYuLv.js} +10 -10
- package/build/server/chunks/{_layout.svelte-Dk-9LkfL.js.map → _layout.svelte-BnrWYuLv.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-BIMexfnk.js → _layout.svelte-wi6o5Ecu.js} +14 -14
- package/build/server/chunks/{_layout.svelte-BIMexfnk.js.map → _layout.svelte-wi6o5Ecu.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DZvcjON6.js → _page.svelte-57pyhszV.js} +10 -10
- package/build/server/chunks/{_page.svelte-DZvcjON6.js.map → _page.svelte-57pyhszV.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CY0Be19a.js → _page.svelte-BSVJ2d2G.js} +12 -12
- package/build/server/chunks/{_page.svelte-CY0Be19a.js.map → _page.svelte-BSVJ2d2G.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-B1erTzoN.js → _page.svelte-BoHt2cpr.js} +5 -5
- package/build/server/chunks/{_page.svelte-B1erTzoN.js.map → _page.svelte-BoHt2cpr.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CeO_ScC8.js → _page.svelte-CHgQjBQj.js} +2 -2
- package/build/server/chunks/{_page.svelte-CeO_ScC8.js.map → _page.svelte-CHgQjBQj.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CoCBnE2l.js → _page.svelte-CeS_21Ho.js} +11 -11
- package/build/server/chunks/{_page.svelte-CoCBnE2l.js.map → _page.svelte-CeS_21Ho.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-D5S0QjlI.js → _page.svelte-DHSYVLoj.js} +12 -12
- package/build/server/chunks/{_page.svelte-D5S0QjlI.js.map → _page.svelte-DHSYVLoj.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-xf-0yXQM.js → _page.svelte-DhFNFMnl.js} +21 -19
- package/build/server/chunks/_page.svelte-DhFNFMnl.js.map +1 -0
- package/build/server/chunks/{_page.svelte-YoDx7gDL.js → _page.svelte-h_J4lNT9.js} +6 -6
- package/build/server/chunks/{_page.svelte-YoDx7gDL.js.map → _page.svelte-h_J4lNT9.js.map} +1 -1
- package/build/server/chunks/{agents-context-w03Lz_6n.js → agents-context-CbFsZmi5.js} +2 -2
- package/build/server/chunks/{agents-context-w03Lz_6n.js.map → agents-context-CbFsZmi5.js.map} +1 -1
- package/build/server/chunks/{client-WFEvX_be.js → client-DO-hqMbT.js} +4 -4
- package/build/server/chunks/{client-WFEvX_be.js.map → client-DO-hqMbT.js.map} +1 -1
- package/build/server/chunks/{conversation-view-memory-B0PllWRL.js → conversation-view-memory-CtbUZd_L.js} +2 -2
- package/build/server/chunks/{conversation-view-memory-B0PllWRL.js.map → conversation-view-memory-CtbUZd_L.js.map} +1 -1
- package/build/server/chunks/{edit-workspace-context-biaZqjOf.js → edit-workspace-context-tyHBPujC.js} +2 -2
- package/build/server/chunks/{edit-workspace-context-biaZqjOf.js.map → edit-workspace-context-tyHBPujC.js.map} +1 -1
- package/build/server/chunks/error.svelte-DmKKN1RU.js +15 -0
- package/build/server/chunks/{error.svelte-BjIDhioc.js.map → error.svelte-DmKKN1RU.js.map} +1 -1
- package/build/server/chunks/{index-rHCWxLFZ.js → index-LMsd1ih2.js} +2 -2
- package/build/server/chunks/{index-rHCWxLFZ.js.map → index-LMsd1ih2.js.map} +1 -1
- package/build/server/chunks/{index-server-BMxlf3ZC.js → index-server-BRr5mZEq.js} +2 -2
- package/build/server/chunks/{index-server-BMxlf3ZC.js.map → index-server-BRr5mZEq.js.map} +1 -1
- package/build/server/chunks/{index2-DdOgqE2_.js → index2-ClgfzZ89.js} +3 -3
- package/build/server/chunks/{index2-DdOgqE2_.js.map → index2-ClgfzZ89.js.map} +1 -1
- package/build/server/chunks/{index3-DC4GTqD1.js → index3-BdRUAffj.js} +2 -2
- package/build/server/chunks/{index3-DC4GTqD1.js.map → index3-BdRUAffj.js.map} +1 -1
- package/build/server/chunks/{root-UeqiktJA.js → root-4q2Pr7ck.js} +2 -2
- package/build/server/chunks/{root-UeqiktJA.js.map → root-4q2Pr7ck.js.map} +1 -1
- package/build/server/chunks/{state.svelte-CLOYXiU6.js → state.svelte-Bd1i-u49.js} +3 -3
- package/build/server/chunks/{state.svelte-CLOYXiU6.js.map → state.svelte-Bd1i-u49.js.map} +1 -1
- package/build/server/index.js +4 -4
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +14 -14
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/backend/lib/apply-v4a-diff.spec.ts +45 -0
- package/src/backend/lib/apply-v4a-diff.ts +167 -0
- package/src/backend/roleplay/agents.ts +16 -2
- package/src/backend/roleplay/old-server.ts +18 -4
- package/src/backend/roleplay/prompt-edit-progress.ts +36 -0
- package/src/backend/roleplay/prompt-edit-proposals.ts +38 -0
- package/src/backend/roleplay/router.ts +63 -15
- package/src/backend/roleplay/step-registry.spec.ts +20 -0
- package/src/backend/roleplay/step-registry.ts +13 -2
- package/src/backend/roleplay/suggest-prompt-edit.ts +163 -0
- package/src/backend/roleplay/variants.ts +8 -4
- package/src/backend/tests/academy.ts +7 -1
- package/src/backend/tests/emulate-agents.spec.ts +106 -0
- package/src/backend/tests/emulate-agents.ts +42 -4
- package/src/backend/tests/router.ts +10 -2
- package/src/lib/components/Modal.svelte +42 -13
- package/src/lib/components/Textarea.svelte +41 -0
- package/src/lib/edit/edit-workspace-context.ts +12 -0
- package/src/lib/ws-message.ts +7 -0
- package/build/client/_app/immutable/assets/0.FwR3B_mV.css +0 -1
- package/build/client/_app/immutable/assets/0.FwR3B_mV.css.br +0 -0
- package/build/client/_app/immutable/assets/0.FwR3B_mV.css.gz +0 -0
- package/build/client/_app/immutable/assets/2.DxwYfh1z.css +0 -1
- package/build/client/_app/immutable/assets/2.DxwYfh1z.css.br +0 -0
- package/build/client/_app/immutable/assets/2.DxwYfh1z.css.gz +0 -0
- package/build/client/_app/immutable/assets/Modal.tn0RQdqM.css +0 -0
- package/build/client/_app/immutable/assets/Modal.tn0RQdqM.css.br +0 -1
- package/build/client/_app/immutable/assets/Modal.tn0RQdqM.css.gz +0 -0
- package/build/client/_app/immutable/chunks/07xNIa59.js.br +0 -0
- package/build/client/_app/immutable/chunks/07xNIa59.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BDl2QuyN.js +0 -1
- package/build/client/_app/immutable/chunks/BDl2QuyN.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDl2QuyN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BI42X8h_.js.br +0 -0
- package/build/client/_app/immutable/chunks/BI42X8h_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJTwdUYr.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJTwdUYr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BLu86SbA.js.br +0 -0
- package/build/client/_app/immutable/chunks/BLu86SbA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BNifnXkO.js +0 -1
- package/build/client/_app/immutable/chunks/BNifnXkO.js.br +0 -2
- package/build/client/_app/immutable/chunks/BNifnXkO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BPNEONy5.js.br +0 -0
- package/build/client/_app/immutable/chunks/BPNEONy5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_K7D6rX.js +0 -2
- package/build/client/_app/immutable/chunks/B_K7D6rX.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_K7D6rX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BbBuNuSi.js +0 -3
- package/build/client/_app/immutable/chunks/BbBuNuSi.js.br +0 -0
- package/build/client/_app/immutable/chunks/BbBuNuSi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bj8jfBTi.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bj8jfBTi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BsDZe4N6.js.br +0 -0
- package/build/client/_app/immutable/chunks/BsDZe4N6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Buo-57fF.js.br +0 -0
- package/build/client/_app/immutable/chunks/Buo-57fF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bw7xm6iT.js +0 -1
- package/build/client/_app/immutable/chunks/Bw7xm6iT.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bw7xm6iT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C39ai1md.js.br +0 -0
- package/build/client/_app/immutable/chunks/C39ai1md.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C7he4XPB.js.br +0 -0
- package/build/client/_app/immutable/chunks/C7he4XPB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CAjPRvNs.js.br +0 -0
- package/build/client/_app/immutable/chunks/CAjPRvNs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJYOmGlC.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJYOmGlC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CPXdAKdv.js.br +0 -0
- package/build/client/_app/immutable/chunks/CPXdAKdv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CVlsAO8k.js.br +0 -0
- package/build/client/_app/immutable/chunks/CVlsAO8k.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js.br +0 -0
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ca197UDq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CaHl3dME.js.br +0 -0
- package/build/client/_app/immutable/chunks/CaHl3dME.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ce9aG7vY.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ce9aG7vY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cql_e8Of.js +0 -1
- package/build/client/_app/immutable/chunks/Cql_e8Of.js.br +0 -2
- package/build/client/_app/immutable/chunks/Cql_e8Of.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CxLomzuE.js +0 -1
- package/build/client/_app/immutable/chunks/CxLomzuE.js.br +0 -0
- package/build/client/_app/immutable/chunks/CxLomzuE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cyai3SOj.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cyai3SOj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CyvQWZoe.js +0 -8
- package/build/client/_app/immutable/chunks/CyvQWZoe.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyvQWZoe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CzXNWL4m.js +0 -1
- package/build/client/_app/immutable/chunks/CzXNWL4m.js.br +0 -1
- package/build/client/_app/immutable/chunks/CzXNWL4m.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-B5X35l.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-B5X35l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJriQKD9.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJriQKD9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DpBxGfau.js +0 -1
- package/build/client/_app/immutable/chunks/DpBxGfau.js.br +0 -0
- package/build/client/_app/immutable/chunks/DpBxGfau.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dslf9OwW.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dslf9OwW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/QpaC6J6s.js +0 -1
- package/build/client/_app/immutable/chunks/QpaC6J6s.js.br +0 -0
- package/build/client/_app/immutable/chunks/QpaC6J6s.js.gz +0 -0
- package/build/client/_app/immutable/chunks/iAhzu4tv.js.br +0 -0
- package/build/client/_app/immutable/chunks/iAhzu4tv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/nYD9wsyN.js.br +0 -0
- package/build/client/_app/immutable/chunks/nYD9wsyN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/uLGP0py1.js.br +0 -0
- package/build/client/_app/immutable/chunks/uLGP0py1.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Ghwm_QxJ.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Ghwm_QxJ.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.SqT6xQ-7.js +0 -1
- package/build/client/_app/immutable/entry/start.SqT6xQ-7.js.br +0 -2
- package/build/client/_app/immutable/entry/start.SqT6xQ-7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.LR7iEcCa.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.LR7iEcCa.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CWSas7JK.js +0 -1
- package/build/client/_app/immutable/nodes/1.CWSas7JK.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CWSas7JK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.BoxFN5Nv.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.BoxFN5Nv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.BFy4oAT6.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.BFy4oAT6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.C6M3Ukek.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.C6M3Ukek.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.C7Jynwaf.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.C7Jynwaf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.C9LJ_7n5.js +0 -35
- package/build/client/_app/immutable/nodes/2.C9LJ_7n5.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.C9LJ_7n5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.Cldr3PEw.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Cldr3PEw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.C5HDYxuE.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.C5HDYxuE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.BRZRzqKl.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BRZRzqKl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BEjGUOuB.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BEjGUOuB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.wHpoUA6X.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.wHpoUA6X.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CpmcUS87.js +0 -2
- package/build/client/_app/immutable/nodes/9.CpmcUS87.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CpmcUS87.js.gz +0 -0
- package/build/server/chunks/0-CesYJG8k.js +0 -9
- package/build/server/chunks/0-CesYJG8k.js.map +0 -1
- package/build/server/chunks/1-p4jSVKu9.js +0 -9
- package/build/server/chunks/10-BVCIK_-n.js +0 -9
- package/build/server/chunks/10-BVCIK_-n.js.map +0 -1
- package/build/server/chunks/15-BRw8wtLp.js +0 -9
- package/build/server/chunks/17-DRS7q3gb.js +0 -9
- package/build/server/chunks/17-DRS7q3gb.js.map +0 -1
- package/build/server/chunks/18-CPOL7uEZ.js +0 -9
- package/build/server/chunks/18-CPOL7uEZ.js.map +0 -1
- package/build/server/chunks/2-Cd22UmxM.js +0 -9
- package/build/server/chunks/2-Cd22UmxM.js.map +0 -1
- package/build/server/chunks/3-mcDvhjv6.js +0 -9
- package/build/server/chunks/3-mcDvhjv6.js.map +0 -1
- package/build/server/chunks/4-D0D66uQr.js +0 -9
- package/build/server/chunks/4-D0D66uQr.js.map +0 -1
- package/build/server/chunks/5-D1bI9E9O.js +0 -9
- package/build/server/chunks/6-BJxJFeJN.js +0 -9
- package/build/server/chunks/8-DBNRpB4j.js +0 -9
- package/build/server/chunks/8-DBNRpB4j.js.map +0 -1
- package/build/server/chunks/9-Dr21aceD.js +0 -9
- package/build/server/chunks/9-Dr21aceD.js.map +0 -1
- package/build/server/chunks/ChatStepTrace-CX2Zolmp.js.map +0 -1
- package/build/server/chunks/_layout.svelte-Blfto3jh.js.map +0 -1
- package/build/server/chunks/_page.svelte-xf-0yXQM.js.map +0 -1
- package/build/server/chunks/error.svelte-BjIDhioc.js +0 -15
|
@@ -1,13 +1,13 @@
|
|
|
1
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 yn,a as g,h as Sa,f as C,d as js,b as Oe,t as et}from"../chunks/Ca197UDq.js";import{o as Ns,a as bn}from"../chunks/C39ai1md.js";import{p as wn,y as i,f as Ie,j as e,a as kn,w as L,n as k,bq as Ta,r as u,d as Er,t as J,x as It,c as f,s as m,o as Re,T as Ia}from"../chunks/CxLomzuE.js";import{s as q}from"../chunks/DJriQKD9.js";import{i as O}from"../chunks/Buo-57fF.js";import{M as Qr,k as is}from"../chunks/CyvQWZoe.js";import{e as ir,i as ls}from"../chunks/BJTwdUYr.js";import{h as Ca}from"../chunks/iAhzu4tv.js";import{a as cs,s as Dn,c as Ht,r as or,d as vn,b as Pa}from"../chunks/D-B5X35l.js";import{s as $e,c as Ur}from"../chunks/CAjPRvNs.js";import{b as jn,a as La}from"../chunks/BPNEONy5.js";import{g as Ea,P as $a}from"../chunks/CzXNWL4m.js";import{B as ut}from"../chunks/CVlsAO8k.js";import{P as Ra,C as us}from"../chunks/Dslf9OwW.js";import{I as pn}from"../chunks/nYD9wsyN.js";import{T as Os,a as Wr}from"../chunks/BsDZe4N6.js";import{h as Aa,I as Vt}from"../chunks/07xNIa59.js";import{r as ja,p as lr}from"../chunks/CPXdAKdv.js";import{p as ds}from"../chunks/Ce9aG7vY.js";import{_ as fs}from"../chunks/C1FmrZbK.js";import{b as Na}from"../chunks/BLu86SbA.js";import{e as Oa,a as Ma}from"../chunks/BU7aeYn4.js";import{t as Ne}from"../chunks/DpBxGfau.js";import{R as Da,a as Br}from"../chunks/B_K7D6rX.js";import{i as kr}from"../chunks/DgGeUDDh.js";const Ms=/^[a-z0-9]+(-[a-z0-9]+)*$/,Sn=(t,r,s,o="")=>{const n=t.split(":");if(t.slice(0,1)==="@"){if(n.length<2||n.length>3)return null;o=n.shift().slice(1)}if(n.length>3||!n.length)return null;if(n.length>1){const x=n.pop(),w=n.pop(),I={provider:n.length>0?n[0]:o,prefix:w,name:x};return r&&!hn(I)?null:I}const l=n[0],v=l.split("-");if(v.length>1){const x={provider:o,prefix:v.shift(),name:v.join("-")};return r&&!hn(x)?null:x}if(s&&o===""){const x={provider:o,prefix:"",name:l};return r&&!hn(x,s)?null:x}return null},hn=(t,r)=>t?!!((r&&t.prefix===""||t.prefix)&&t.name):!1;function qa(t,r){const s=t.icons,o=t.aliases||Object.create(null),n=Object.create(null);function l(v){if(s[v])return n[v]=[];if(!(v in n)){n[v]=null;const x=o[v]&&o[v].parent,w=x&&l(x);w&&(n[v]=[x].concat(w))}return n[v]}return Object.keys(s).concat(Object.keys(o)).forEach(l),n}const Ds=Object.freeze({left:0,top:0,width:16,height:16}),_n=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Tn=Object.freeze({...Ds,..._n}),qn=Object.freeze({...Tn,body:"",hidden:!1});function Fa(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 vs(t,r){const s=Fa(t,r);for(const o in qn)o in _n?o in t&&!(o in s)&&(s[o]=_n[o]):o in r?s[o]=r[o]:o in t&&(s[o]=t[o]);return s}function za(t,r,s){const o=t.icons,n=t.aliases||Object.create(null);let l={};function v(x){l=vs(o[x]||n[x],l)}return v(r),s.forEach(v),vs(t,l)}function qs(t,r){const s=[];if(typeof t!="object"||typeof t.icons!="object")return s;t.not_found instanceof Array&&t.not_found.forEach(n=>{r(n,null),s.push(n)});const o=qa(t);for(const n in o){const l=o[n];l&&(r(n,za(t,n,l)),s.push(n))}return s}const Ja={provider:"",aliases:{},not_found:{},...Ds};function Nn(t,r){for(const s in r)if(s in t&&typeof t[s]!=typeof r[s])return!1;return!0}function Fs(t){if(typeof t!="object"||t===null)return null;const r=t;if(typeof r.prefix!="string"||!t.icons||typeof t.icons!="object"||!Nn(t,Ja))return null;const s=r.icons;for(const n in s){const l=s[n];if(!n||typeof l.body!="string"||!Nn(l,qn))return null}const o=r.aliases||Object.create(null);for(const n in o){const l=o[n],v=l.parent;if(!n||typeof v!="string"||!s[v]&&!o[v]||!Nn(l,qn))return null}return r}const ps=Object.create(null);function Ha(t,r){return{provider:t,prefix:r,icons:Object.create(null),missing:new Set}}function $r(t,r){const s=ps[t]||(ps[t]=Object.create(null));return s[r]||(s[r]=Ha(t,r))}function zs(t,r){return Fs(r)?qs(r,(s,o)=>{o?t.icons[s]=o:t.missing.add(s)}):[]}function Va(t,r,s){try{if(typeof s.body=="string")return t.icons[r]={...s},!0}catch{}return!1}let Xr=!1;function Js(t){return typeof t=="boolean"&&(Xr=t),Xr}function Ua(t){const r=typeof t=="string"?Sn(t,!0,Xr):t;if(r){const s=$r(r.provider,r.prefix),o=r.name;return s.icons[o]||(s.missing.has(o)?null:void 0)}}function Ba(t,r){const s=Sn(t,!0,Xr);if(!s)return!1;const o=$r(s.provider,s.prefix);return r?Va(o,s.name,r):(o.missing.add(s.name),!0)}function Ga(t,r){if(typeof t!="object")return!1;if(typeof r!="string"&&(r=t.provider||""),Xr&&!r&&!t.prefix){let n=!1;return Fs(t)&&(t.prefix="",qs(t,(l,v)=>{Ba(l,v)&&(n=!0)})),n}const s=t.prefix;if(!hn({prefix:s,name:"a"}))return!1;const o=$r(r,s);return!!zs(o,t)}const Hs=Object.freeze({width:null,height:null}),Vs=Object.freeze({...Hs,..._n}),Ka=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Qa=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function gs(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(Ka);if(o===null||!o.length)return t;const n=[];let l=o.shift(),v=Qa.test(l);for(;;){if(v){const x=parseFloat(l);isNaN(x)?n.push(l):n.push(Math.ceil(x*r*s)/s)}else n.push(l);if(l=o.shift(),l===void 0)return n.join("");v=!v}}function Wa(t,r="defs"){let s="";const o=t.indexOf("<"+r);for(;o>=0;){const n=t.indexOf(">",o),l=t.indexOf("</"+r);if(n===-1||l===-1)break;const v=t.indexOf(">",l);if(v===-1)break;s+=t.slice(n+1,l).trim(),t=t.slice(0,o).trim()+t.slice(v+1)}return{defs:s,content:t}}function Xa(t,r){return t?"<defs>"+t+"</defs>"+r:r}function Ya(t,r,s){const o=Wa(t);return Xa(o.defs,r+o.content+s)}const Za=t=>t==="unset"||t==="undefined"||t==="none";function eo(t,r){const s={...Tn,...t},o={...Vs,...r},n={left:s.left,top:s.top,width:s.width,height:s.height};let l=s.body;[s,o].forEach(A=>{const F=[],$=A.hFlip,P=A.vFlip;let j=A.rotate;$?P?j+=2:(F.push("translate("+(n.width+n.left).toString()+" "+(0-n.top).toString()+")"),F.push("scale(-1 1)"),n.top=n.left=0):P&&(F.push("translate("+(0-n.left).toString()+" "+(n.height+n.top).toString()+")"),F.push("scale(1 -1)"),n.top=n.left=0);let G;switch(j<0&&(j-=Math.floor(j/4)*4),j=j%4,j){case 1:G=n.height/2+n.top,F.unshift("rotate(90 "+G.toString()+" "+G.toString()+")");break;case 2:F.unshift("rotate(180 "+(n.width/2+n.left).toString()+" "+(n.height/2+n.top).toString()+")");break;case 3:G=n.width/2+n.left,F.unshift("rotate(-90 "+G.toString()+" "+G.toString()+")");break}j%2===1&&(n.left!==n.top&&(G=n.left,n.left=n.top,n.top=G),n.width!==n.height&&(G=n.width,n.width=n.height,n.height=G)),F.length&&(l=Ya(l,'<g transform="'+F.join(" ")+'">',"</g>"))});const v=o.width,x=o.height,w=n.width,I=n.height;let S,E;v===null?(E=x===null?"1em":x==="auto"?I:x,S=gs(E,w/I)):(S=v==="auto"?w:v,E=x===null?gs(S,I/w):x==="auto"?I:x);const R={},B=(A,F)=>{Za(F)||(R[A]=F.toString())};B("width",S),B("height",E);const Z=[n.left,n.top,w,I];return R.viewBox=Z.join(" "),{attributes:R,viewBox:Z,body:l}}const to=/\sid="(\S+)"/g,ro="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let no=0;function so(t,r=ro){const s=[];let o;for(;o=to.exec(t);)s.push(o[1]);if(!s.length)return t;const n="suffix"+(Math.random()*16777216|Date.now()).toString(16);return s.forEach(l=>{const v=typeof r=="function"?r(l):r+(no++).toString(),x=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+x+')([")]|\\.[a-z])',"g"),"$1"+v+n+"$3")}),t=t.replace(new RegExp(n,"g"),""),t}const Fn=Object.create(null);function ao(t,r){Fn[t]=r}function zn(t){return Fn[t]||Fn[""]}function Hn(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 Vn=Object.create(null),Gr=["https://api.simplesvg.com","https://api.unisvg.com"],xn=[];for(;Gr.length>0;)Gr.length===1||Math.random()>.5?xn.push(Gr.shift()):xn.push(Gr.pop());Vn[""]=Hn({resources:["https://api.iconify.design"].concat(xn)});function oo(t,r){const s=Hn(r);return s===null?!1:(Vn[t]=s,!0)}function Un(t){return Vn[t]}const io=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let ms=io();function lo(t,r){const s=Un(t);if(!s)return 0;let o;if(!s.maxURL)o=0;else{let n=0;s.resources.forEach(v=>{n=Math.max(n,v.length)});const l=r+".json?icons=";o=s.maxURL-n-s.path.length-l.length}return o}function co(t){return t===404}const uo=(t,r,s)=>{const o=[],n=lo(t,r),l="icons";let v={type:l,provider:t,prefix:r,icons:[]},x=0;return s.forEach((w,I)=>{x+=w.length+1,x>=n&&I>0&&(o.push(v),v={type:l,provider:t,prefix:r,icons:[]},x=w.length),v.icons.push(w)}),o.push(v),o};function fo(t){if(typeof t=="string"){const r=Un(t);if(r)return r.path}return"/"}const vo=(t,r,s)=>{if(!ms){s("abort",424);return}let o=fo(r.provider);switch(r.type){case"icons":{const l=r.prefix,x=r.icons.join(","),w=new URLSearchParams({icons:x});o+=l+".json?"+w.toString();break}case"custom":{const l=r.uri;o+=l.slice(0,1)==="/"?l.slice(1):l;break}default:s("abort",400);return}let n=503;ms(t+o).then(l=>{const v=l.status;if(v!==200){setTimeout(()=>{s(co(v)?"abort":"next",v)});return}return n=501,l.json()}).then(l=>{if(typeof l!="object"||l===null){setTimeout(()=>{l===404?s("abort",l):s("next",n)});return}setTimeout(()=>{s("success",l)})}).catch(()=>{s("next",n)})},po={prepare:uo,send:vo};function Us(t,r){t.forEach(s=>{const o=s.loaderCallbacks;o&&(s.loaderCallbacks=o.filter(n=>n.id!==r))})}function go(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,n=t.prefix;r.forEach(l=>{const v=l.icons,x=v.pending.length;v.pending=v.pending.filter(w=>{if(w.prefix!==n)return!0;const I=w.name;if(t.icons[I])v.loaded.push({provider:o,prefix:n,name:I});else if(t.missing.has(I))v.missing.push({provider:o,prefix:n,name:I});else return s=!0,!0;return!1}),v.pending.length!==x&&(s||Us([t],l.id),l.callback(v.loaded.slice(0),v.missing.slice(0),v.pending.slice(0),l.abort))})}))}let mo=0;function ho(t,r,s){const o=mo++,n=Us.bind(null,s,o);if(!r.pending.length)return n;const l={id:o,icons:r,callback:t,abort:n};return s.forEach(v=>{(v.loaderCallbacks||(v.loaderCallbacks=[])).push(l)}),n}function xo(t){const r={loaded:[],missing:[],pending:[]},s=Object.create(null);t.sort((n,l)=>n.provider!==l.provider?n.provider.localeCompare(l.provider):n.prefix!==l.prefix?n.prefix.localeCompare(l.prefix):n.name.localeCompare(l.name));let o={provider:"",prefix:"",name:""};return t.forEach(n=>{if(o.name===n.name&&o.prefix===n.prefix&&o.provider===n.provider)return;o=n;const l=n.provider,v=n.prefix,x=n.name,w=s[l]||(s[l]=Object.create(null)),I=w[v]||(w[v]=$r(l,v));let S;x in I.icons?S=r.loaded:v===""||I.missing.has(x)?S=r.missing:S=r.pending;const E={provider:l,prefix:v,name:x};S.push(E)}),r}function yo(t,r=!0,s=!1){const o=[];return t.forEach(n=>{const l=typeof n=="string"?Sn(n,r,s):n;l&&o.push(l)}),o}const _o={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function bo(t,r,s,o){const n=t.resources.length,l=t.random?Math.floor(Math.random()*n):t.index;let v;if(t.random){let N=t.resources.slice(0);for(v=[];N.length>1;){const Q=Math.floor(Math.random()*N.length);v.push(N[Q]),N=N.slice(0,Q).concat(N.slice(Q+1))}v=v.concat(N)}else v=t.resources.slice(l).concat(t.resources.slice(0,l));const x=Date.now();let w="pending",I=0,S,E=null,R=[],B=[];typeof o=="function"&&B.push(o);function Z(){E&&(clearTimeout(E),E=null)}function A(){w==="pending"&&(w="aborted"),Z(),R.forEach(N=>{N.status==="pending"&&(N.status="aborted")}),R=[]}function F(N,Q){Q&&(B=[]),typeof N=="function"&&B.push(N)}function $(){return{startTime:x,payload:r,status:w,queriesSent:I,queriesPending:R.length,subscribe:F,abort:A}}function P(){w="failed",B.forEach(N=>{N(void 0,S)})}function j(){R.forEach(N=>{N.status==="pending"&&(N.status="aborted")}),R=[]}function G(N,Q,he){const Me=Q!=="success";switch(R=R.filter(we=>we!==N),w){case"pending":break;case"failed":if(Me||!t.dataAfterTimeout)return;break;default:return}if(Q==="abort"){S=he,P();return}if(Me){S=he,R.length||(v.length?ve():P());return}if(Z(),j(),!t.random){const we=t.resources.indexOf(N.resource);we!==-1&&we!==t.index&&(t.index=we)}w="completed",B.forEach(we=>{we(he)})}function ve(){if(w!=="pending")return;Z();const N=v.shift();if(N===void 0){if(R.length){E=setTimeout(()=>{Z(),w==="pending"&&(j(),P())},t.timeout);return}P();return}const Q={status:"pending",resource:N,callback:(he,Me)=>{G(Q,he,Me)}};R.push(Q),I++,E=setTimeout(ve,t.rotate),s(N,r,Q.callback)}return setTimeout(ve),$}function Bs(t){const r={..._o,...t};let s=[];function o(){s=s.filter(x=>x().status==="pending")}function n(x,w,I){const S=bo(r,x,w,(E,R)=>{o(),I&&I(E,R)});return s.push(S),S}function l(x){return s.find(w=>x(w))||null}return{query:n,find:l,setIndex:x=>{r.index=x},getIndex:()=>r.index,cleanup:o}}function hs(){}const On=Object.create(null);function wo(t){if(!On[t]){const r=Un(t);if(!r)return;const s=Bs(r),o={config:r,redundancy:s};On[t]=o}return On[t]}function ko(t,r,s){let o,n;if(typeof t=="string"){const l=zn(t);if(!l)return s(void 0,424),hs;n=l.send;const v=wo(t);v&&(o=v.redundancy)}else{const l=Hn(t);if(l){o=Bs(l);const v=t.resources?t.resources[0]:"",x=zn(v);x&&(n=x.send)}}return!o||!n?(s(void 0,424),hs):o.query(r,n,s)().abort}function xs(){}function So(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,go(t)}))}function To(t){const r=[],s=[];return t.forEach(o=>{(o.match(Ms)?r:s).push(o)}),{valid:r,invalid:s}}function Kr(t,r,s){function o(){const n=t.pendingIcons;r.forEach(l=>{n&&n.delete(l),t.icons[l]||t.missing.add(l)})}if(s&&typeof s=="object")try{if(!zs(t,s).length){o();return}}catch(n){console.error(n)}o(),So(t)}function ys(t,r){t instanceof Promise?t.then(s=>{r(s)}).catch(()=>{r(null)}):r(t)}function Io(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,n=t.iconsToLoad;if(delete t.iconsToLoad,!n||!n.length)return;const l=t.loadIcon;if(t.loadIcons&&(n.length>1||!l)){ys(t.loadIcons(n,o,s),S=>{Kr(t,n,S)});return}if(l){n.forEach(S=>{const E=l(S,o,s);ys(E,R=>{const B=R?{prefix:o,icons:{[S]:R}}:null;Kr(t,[S],B)})});return}const{valid:v,invalid:x}=To(n);if(x.length&&Kr(t,x,null),!v.length)return;const w=o.match(Ms)?zn(s):null;if(!w){Kr(t,v,null);return}w.prepare(s,o,v).forEach(S=>{ko(s,S,E=>{Kr(t,S.icons,E)})})}))}const Co=(t,r)=>{const s=yo(t,!0,Js()),o=xo(s);if(!o.pending.length){let w=!0;return r&&setTimeout(()=>{w&&r(o.loaded,o.missing,o.pending,xs)}),()=>{w=!1}}const n=Object.create(null),l=[];let v,x;return o.pending.forEach(w=>{const{provider:I,prefix:S}=w;if(S===x&&I===v)return;v=I,x=S,l.push($r(I,S));const E=n[I]||(n[I]=Object.create(null));E[S]||(E[S]=[])}),o.pending.forEach(w=>{const{provider:I,prefix:S,name:E}=w,R=$r(I,S),B=R.pendingIcons||(R.pendingIcons=new Set);B.has(E)||(B.add(E),n[I][S].push(E))}),l.forEach(w=>{const I=n[w.provider][w.prefix];I.length&&Io(w,I)}),r?ho(r,o,l):xs};function Po(t,r){const s={...t};for(const o in r){const n=r[o],l=typeof n;o in Hs?(n===null||n&&(l==="string"||l==="number"))&&(s[o]=n):l===typeof s[o]&&(s[o]=o==="rotate"?n%4:n)}return s}const Lo=/[\s,]+/;function Eo(t,r){r.split(Lo).forEach(s=>{switch(s.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function $o(t,r=0){const s=t.replace(/^-?[0-9.]*/,"");function o(n){for(;n<0;)n+=4;return n%4}if(s===""){const n=parseInt(t);return isNaN(n)?0:o(n)}else if(s!==t){let n=0;switch(s){case"%":n=25;break;case"deg":n=90}if(n){let l=parseFloat(t.slice(0,t.length-s.length));return isNaN(l)?0:(l=l/n,l%1===0?o(l):0)}}return r}function Ro(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 Ao(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function jo(t){return"data:image/svg+xml,"+Ao(t)}function No(t){return'url("'+jo(t)+'")'}const _s={...Vs,inline:!1},Oo={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},Mo={display:"inline-block"},Jn={"background-color":"currentColor"},Gs={"background-color":"transparent"},bs={image:"var(--svg)",repeat:"no-repeat",size:"100% 100%"},ws={"-webkit-mask":Jn,mask:Jn,background:Gs};for(const t in ws){const r=ws[t];for(const s in bs)r[t+"-"+s]=bs[s]}function Do(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}function qo(t,r){const s=Po(_s,r),o=r.mode||"svg",n=o==="svg"?{...Oo}:{};t.body.indexOf("xlink:")===-1&&delete n["xmlns:xlink"];let l=typeof r.style=="string"?r.style:"";for(let $ in r){const P=r[$];if(P!==void 0)switch($){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":s[$]=P===!0||P==="true"||P===1;break;case"flip":typeof P=="string"&&Eo(s,P);break;case"color":l=l+(l.length>0&&l.trim().slice(-1)!==";"?";":"")+"color: "+P+"; ";break;case"rotate":typeof P=="string"?s[$]=$o(P):typeof P=="number"&&(s[$]=P);break;case"ariaHidden":case"aria-hidden":P!==!0&&P!=="true"&&delete n["aria-hidden"];break;default:if($.slice(0,3)==="on:")break;_s[$]===void 0&&(n[$]=P)}}const v=eo(t,s),x=v.attributes;if(s.inline&&(l="vertical-align: -0.125em; "+l),o==="svg"){Object.assign(n,x),l!==""&&(n.style=l);let $=0,P=r.id;return typeof P=="string"&&(P=P.replace(/-/g,"_")),{svg:!0,attributes:n,body:so(v.body,P?()=>P+"ID"+$++:"iconifySvelte")}}const{body:w,width:I,height:S}=t,E=o==="mask"||(o==="bg"?!1:w.indexOf("currentColor")!==-1),R=Ro(w,{...x,width:I+"",height:S+""}),Z={"--svg":No(R)},A=$=>{const P=x[$];P&&(Z[$]=Do(P))};A("width"),A("height"),Object.assign(Z,Mo,E?Jn:Gs);let F="";for(const $ in Z)F+=$+": "+Z[$]+";";return n.style=F+l,{svg:!1,attributes:n}}Js(!0);ao("",po);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"||!Ga(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 n=r[s];if(typeof n!="object"||!n||n.resources===void 0)continue;oo(s,n)||console.error(o)}catch{console.error(o)}}}}function Fo(t,r,s,o,n){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:{...Tn,...t}};let v;if(typeof t!="string"||(v=Sn(t,!1,!0))===null)return l(),null;const x=Ua(v);if(!x)return s&&(!r.loading||r.loading.name!==t)&&(l(),r.name="",r.loading={name:t,abort:Co([v],o)}),null;l(),r.name!==t&&(r.name=t,n&&!r.destroyed&&setTimeout(()=>{n(t)}));const w=["iconify"];return v.prefix!==""&&w.push("iconify--"+v.prefix),v.provider!==""&&w.push("iconify--"+v.provider),{data:x,classes:w}}function zo(t,r){return t?qo({...Tn,...t},r):null}var Jo=new Set(["$$slots","$$events","$$legacy"]),Ho=Sa("<svg></svg>"),Vo=C("<span></span>");function Ut(t,r){wn(r,!0);const s={name:"",loading:null,destroyed:!1},o=ja(r,Jo);let n=L(!1),l=L(0),v=k(()=>!!r.ssr||e(n)),x=k(()=>(e(l),Fo(r.icon,s,e(v),I,r.onload))),w=k(()=>{const B=e(x)?zo(e(x).data,o):null;return B&&e(x).classes&&(B.attributes.class=(typeof o.class=="string"?o.class+" ":"")+e(x).classes.join(" ")),B});function I(){Ta(l)}Ns(()=>{i(n,!0)}),bn(()=>{s.destroyed=!0,s.loading&&(s.loading.abort(),s.loading=null)});var S=yn(),E=Ie(S);{var R=B=>{var Z=yn(),A=Ie(Z);{var F=P=>{var j=Ho();cs(j,()=>({...e(w).attributes})),Aa(j,()=>e(w).body,!0),u(j),g(P,j)},$=P=>{var j=Vo();cs(j,()=>({...e(w).attributes})),g(P,j)};O(A,P=>{e(w).svg?P(F):P($,-1)})}g(B,Z)};O(E,B=>{e(w)&&B(R)})}g(t,S),kn()}var Uo=C('<div class="w-full"></div>');function ks(t,r){wn(r,!0);let s=L(null),o=null,n=[],l=null,v=!1,x,w=lr(r,"language",3,"plaintext"),I=lr(r,"height",3,120),S=lr(r,"readOnly",3,!1),E=[],R=L(!1);function B(A){e(R)||A.stopPropagation()}Ns(async()=>{var G,ve;if(!x)return;x.addEventListener("wheel",B,{capture:!0,passive:!0}),Oa();const A=await fs(()=>import("../chunks/DLQqXQ6R.js").then(N=>N.e),__vite__mapDeps([0,1,2]),import.meta.url);if(v)return;l=A,Ma(A);const F=w()==="json"?"json":w()==="markdown"?"markdown":"plaintext";i(s,A.editor.create(x,{value:r.value??"",language:F,theme:"bosun-dark",lineNumbers:"off",fontSize:14,fontFamily:'ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',automaticLayout:!0,minimap:{enabled:!1},wordBasedSuggestions:"off",wordWrap:"bounded",wordWrapColumn:75,wrappingStrategy:"advanced",scrollbar:{vertical:"hidden",horizontal:"hidden"},overviewRulerLanes:0,renderLineHighlight:"none",folding:!1,renderWhitespace:"none",padding:{top:4,bottom:4},readOnly:S(),domReadOnly:S(),matchBrackets:"never",bracketPairColorization:{enabled:!1},guides:{highlightActiveBracketPair:!1,bracketPairs:!1,bracketPairsHorizontal:!1},occurrencesHighlight:"off",selectionHighlight:!1,unicodeHighlight:{ambiguousCharacters:!1,nonBasicASCII:!1,invisibleCharacters:!1,includeStrings:!1,includeComments:!1},autoClosingQuotes:"never"}),!0);const $=e(s);if(!$)return;o=$.getModel(),n.push($.onDidFocusEditorText(()=>{i(R,!0)})),n.push($.onDidChangeModelContent(()=>{var N;try{const Q=$.getValue();if(Q===r.value)return;(N=r.onChange)==null||N.call(r,Q)}catch(Q){console.error("MiniEditor change error",Q)}})),n.push($.onDidBlurEditorText(()=>{var N;i(R,!1);try{(N=r.onBlur)==null||N.call(r,$.getValue())}catch{}}));const P=(G=$.onDidFocusEditorWidget)==null?void 0:G.call($,()=>{i(R,!0)});P&&n.push(P);const j=(ve=$.onDidBlurEditorWidget)==null?void 0:ve.call($,()=>{var N;i(R,!1);try{(N=r.onBlur)==null||N.call(r,$.getValue())}catch{}});j&&n.push(j)}),bn(()=>{v=!0;try{x.removeEventListener("wheel",B,{capture:!0})}catch{}for(const F of n)try{F.dispose()}catch{}n=[];const A=o;o=null;try{if(e(s)){try{e(s).setModel(null)}catch{}e(s).dispose()}}finally{i(s,null)}try{A==null||A.dispose()}catch{}l=null}),Er(()=>{if(!e(s))return;const A=w()==="json"?"json":w()==="markdown"?"markdown":"plaintext",F=e(s).getModel();if(!F||F.getLanguageId()===A)return;let $=!1;return(l?Promise.resolve(l):fs(()=>import("../chunks/DLQqXQ6R.js").then(j=>j.e),__vite__mapDeps([0,1,2]),import.meta.url)).then(j=>{if(!$)try{j.editor.setModelLanguage(F,A)}catch{}}),()=>{$=!0}}),Er(()=>{e(s)&&r.value!==e(s).getValue()&&e(s).setValue(r.value??"")}),Er(()=>{var A;(A=e(s))==null||A.updateOptions({readOnly:S(),domReadOnly:S()})}),Er(()=>{const A=r.highlights;if(!e(s)||!o||!l)return;const F=l,$=o.getLineCount(),P=[];for(const j of A??[]){const G=Math.max(1,Math.min($,Number(j.startLine)||1)),ve=Math.max(G,Math.min($,Number(j.endLine)||G)),N=o.getLineMaxColumn(ve);if(P.push({range:new F.Range(G,1,ve,N),options:{inlineClassName:j.className}}),j.className==="test-expected-output")for(let Q=G;Q<=ve;Q++){const he=o.getLineContent(Q),Me=/<\/?[A-Za-z][^>]*?>/g;let we;for(;we=Me.exec(he);){const dt=(we.index??0)+1,ft=Math.min(o.getLineMaxColumn(Q),dt+String(we[0]??"").length);ft<=dt||P.push({range:new F.Range(Q,dt,Q,ft),options:{inlineClassName:"test-expected-output-tag"}})}}}E=e(s).deltaDecorations(E,P)});var Z=Uo();Na(Z,A=>x=A,()=>x),J(()=>Dn(Z,`height:${I()}px`)),g(t,Z),kn()}var Bo=C('<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>'),Go=C('<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>'),Ko=C('<div class="flex flex-col gap-3"></div>'),Ss=C('<div class="p-2 text-rc-gray-300">Loading…</div>'),Ts=C('<div class="p-2 text-red-400"> </div>'),Qo=C('<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>'),Wo=C('<div class="h-[55vh]"><!></div>'),Xo=C("<!> <!> <!>",1),Yo=C('<!> <div class="mt-2 h-[55vh]"><!></div>',1),Zo=C('<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 Is(t,r){wn(r,!0);let s=lr(r,"actionsDisabled",3,!1),o=lr(r,"actionsInert",3,!1),n=lr(r,"addTestDisabled",3,!1),l=lr(r,"showAnalyze",3,!0),v=lr(r,"analyzeDisabled",3,!1),x=L(!1),w=L(!1),I=L(!1),S=L("errors"),E=L("prompt"),R=L(null),B=L(null),Z=L(null),A=L(null),F=L(null),$=L(null),P=L(null),j=L(It({prompt:!1,conversation:!1,context:!1,errors:!1,traces:!1,logs:!1})),G=L(It({prompt:null,conversation:null,context:null,errors:null,traces:null,logs:null})),ve=0,N=L(null),Q=null,he=L("idle"),Me=null;function we(T){try{return{raw:T,formatted:JSON.stringify(JSON.parse(T),null,2)}}catch{return{raw:T,formatted:T}}}async function dt(T){const oe=await Ne.tests.resultEntry.query({agent:T.agent,region:r.region,testId:T.id,resultKey:T.key,timestamp:T.timestamp,index:T.run});return we(oe)}function ft(T){return T==="prompt"?e(B)!==null&&e(R)!==null:T==="conversation"?e(Z)!==null:T==="context"?e(A)!==null:T==="errors"?e(F)!==null:T==="traces"?e($)!==null:e(P)!==null}async function De(T){if(ft(T)||e(j)[T])return;const oe=ve;i(j,{...e(j),[T]:!0},!0),i(G,{...e(G),[T]:null},!0);try{if(T==="prompt"){const[qe,ie]=await Promise.all([dt(r.links.renderedPrompt),dt(r.links.receivedPrompt)]);if(oe!==ve)return;i(R,qe,!0),i(B,ie,!0)}else{const qe=T==="conversation"?r.links.conversation:T==="context"?r.links.context:T==="errors"?r.links.errors:T==="traces"?r.links.traces:r.links.logs,ie=await dt(qe);if(oe!==ve)return;T==="conversation"?i(Z,ie,!0):T==="context"?i(A,ie,!0):T==="errors"?i(F,ie,!0):T==="traces"?i($,ie,!0):i(P,ie,!0)}}catch(qe){if(oe!==ve)return;console.error(qe),i(G,{...e(G),[T]:"Failed to load content"},!0)}finally{oe===ve&&i(j,{...e(j),[T]:!1},!0)}}function Bt(){i(R,null),i(B,null),i(Z,null),i(A,null),i(F,null),i($,null),i(P,null),i(j,{prompt:!1,conversation:!1,context:!1,errors:!1,traces:!1,logs:!1},!0),i(G,{prompt:null,conversation:null,context:null,errors:null,traces:null,logs:null},!0)}function Yt(){ve+=1,i(S,"errors"),Bt(),i(x,!0),De("errors")}function At(T){ve+=1,i(E,T,!0),Bt(),i(w,!0),De(T)}function yt(T){return T==="prompt"?"Prompt":T==="conversation"?"Conversation":"Context"}function cr(T){i(S,T,!0),De(T)}async function Zt(){if(e(he)!=="adding"){i(he,"adding");try{await r.onAddTest(),i(he,"added")}catch(T){console.error("Failed to add test",T),i(he,"failed")}Me&&clearTimeout(Me),Me=window.setTimeout(()=>{i(he,"idle"),Me=null},2500)}}async function st(T){if(!(!e(B)||!e(R)))try{const oe=T==="raw"?e(B).raw:e(R).raw;await navigator.clipboard.writeText(oe),i(N,T,!0),Q&&clearTimeout(Q),Q=window.setTimeout(()=>{i(N,null),Q=null},2e3)}catch(oe){console.error("Failed to copy prompt",oe)}}bn(()=>{ve+=1,Q&&clearTimeout(Q),Me&&clearTimeout(Me)});var Yr=Zo(),Rr=Ie(Yr),er=f(Rr),Ar=f(er,!0);u(er);var ur=m(er,2);{var Zr=T=>{var oe=Bo();J(()=>oe.disabled=v()),Oe("click",oe,function(...qe){var ie;(ie=r.onAnalyze)==null||ie.apply(this,qe)}),g(T,oe)};O(ur,T=>{l()&&T(Zr)})}var tr=m(ur,2),jr=m(tr,2),Nr=m(jr,2),Or=m(Nr,2),se=m(Or,2);u(Rr);var dr=m(Rr,2);{var He=T=>{{const oe=ie=>{var Qe=Ko();ir(Qe,21,()=>r.variants,We=>We.index,(We,Ae)=>{var Xe=Go(),jt=f(Xe),fr=f(jt);u(jt);var rr=m(jt,2),ge=f(rr,!0);u(rr),u(Xe),J(()=>{$e(Xe,1,`rounded-lg border p-3 ${e(Ae).index===r.runIndex?"border-rc-green-450":"border-rc-gray-650"} ${e(Ae).success?"bg-rc-green-700/80":"bg-rc-gray-900/60"}`),q(fr,`Run ${e(Ae).index??""}${e(Ae).index===r.runIndex?" • selected":""}`),q(ge,e(Ae).text||e(Ae).errors||"—")}),g(We,Xe)}),u(Qe),g(ie,Qe)};let qe=k(()=>`Variants — ${r.scenario||"Test"}`);Qr(T,{get title(){return e(qe)},class:"!w-[80vw] !max-w-4xl",get open(){return e(I)},set open(ie){i(I,ie,!0)},children:oe,$$slots:{default:!0}})}};O(dr,T=>{e(I)&&T(He)})}var en=m(dr,2);{var In=T=>{{const oe=ie=>{var Qe=Wo(),We=f(Qe);{var Ae=ge=>{var W=Ss();g(ge,W)},Xe=ge=>{var W=Ts(),V=f(W,!0);u(W),J(()=>q(V,e(G)[e(E)])),g(ge,W)},jt=ge=>{var W=Qo(),V=f(W),Ce=f(V),Ct=f(Ce);{let Fe=k(()=>!e(B).raw.trim());ut(Ct,{variant:"secondary",size:"small",get disabled(){return e(Fe)},onclick:()=>st("raw"),children:(Ye,_t)=>{Re();var nr=et();J(()=>q(nr,e(N)==="raw"?"Copied raw prompt":"Copy raw prompt")),g(Ye,nr)},$$slots:{default:!0}})}u(Ce);var Pt=m(Ce,2),Ve=f(Pt);{let Fe=k(()=>!e(R).raw.trim());ut(Ve,{variant:"secondary",size:"small",get disabled(){return e(Fe)},onclick:()=>st("rendered"),children:(Ye,_t)=>{Re();var nr=et();J(()=>q(nr,e(N)==="rendered"?"Copied rendered prompt":"Copy rendered prompt")),g(Ye,nr)},$$slots:{default:!0}})}u(Pt),u(V);var Nt=m(V,2);Da(Nt,{get original(){return e(B).formatted},get modified(){return e(R).formatted},language:"markdown",class:"min-h-0 flex-1"}),u(W),g(ge,W)},fr=ge=>{{let W=k(()=>e(Z).formatted||"—");Br(ge,{get value(){return e(W)},language:"text",class:"h-full"})}},rr=ge=>{{let W=k(()=>e(A).formatted||"—");Br(ge,{get value(){return e(W)},language:"json",class:"h-full"})}};O(We,ge=>{e(j)[e(E)]?ge(Ae):e(G)[e(E)]?ge(Xe,1):e(E)==="prompt"&&e(B)&&e(R)?ge(jt,2):e(E)==="conversation"&&e(Z)?ge(fr,3):e(E)==="context"&&e(A)&&ge(rr,4)})}u(Qe),g(ie,Qe)};let qe=k(()=>`${yt(e(E))} — ${r.scenario||"Test"} (run ${r.runIndex})`);Qr(T,{get title(){return e(qe)},class:"!w-[85vw] !max-w-5xl",get open(){return e(w)},set open(ie){i(w,ie,!0)},children:oe,$$slots:{default:!0}})}};O(en,T=>{e(w)&&T(In)})}var tn=m(en,2);{var pe=T=>{{const oe=ie=>{var Qe=Yo(),We=Ie(Qe);Os(We,{get value(){return e(S)},ariaLabel:"Test run debug tabs",onChange:({value:V})=>cr(V),children:(V,Ce)=>{var Ct=Xo(),Pt=Ie(Ct);Wr(Pt,{value:"errors",class:"px-3",children:(Fe,Ye)=>{Re();var _t=et("Errors");g(Fe,_t)},$$slots:{default:!0}});var Ve=m(Pt,2);Wr(Ve,{value:"traces",class:"px-3",children:(Fe,Ye)=>{Re();var _t=et("Traces");g(Fe,_t)},$$slots:{default:!0}});var Nt=m(Ve,2);Wr(Nt,{value:"logs",class:"px-3",children:(Fe,Ye)=>{Re();var _t=et("Logs");g(Fe,_t)},$$slots:{default:!0}}),g(V,Ct)},$$slots:{default:!0}});var Ae=m(We,2),Xe=f(Ae);{var jt=V=>{var Ce=Ss();g(V,Ce)},fr=V=>{var Ce=Ts(),Ct=f(Ce,!0);u(Ce),J(()=>q(Ct,e(G)[e(S)])),g(V,Ce)},rr=V=>{{let Ce=k(()=>e(F).formatted||"—");Br(V,{get value(){return e(Ce)},language:"text",class:"h-full"})}},ge=V=>{{let Ce=k(()=>e($).formatted||"—");Br(V,{get value(){return e(Ce)},language:"json",class:"h-full"})}},W=V=>{{let Ce=k(()=>e(P).formatted||"—");Br(V,{get value(){return e(Ce)},language:"text",class:"h-full"})}};O(Xe,V=>{e(j)[e(S)]?V(jt):e(G)[e(S)]?V(fr,1):e(S)==="errors"&&e(F)?V(rr,2):e(S)==="traces"&&e($)?V(ge,3):e(S)==="logs"&&e(P)&&V(W,4)})}u(Ae),g(ie,Qe)};let qe=k(()=>`Debug — ${r.scenario||"Test"} (run ${r.runIndex})`);Qr(T,{get title(){return e(qe)},class:"!w-[85vw] !max-w-5xl",get open(){return e(x)},set open(ie){i(x,ie,!0)},children:oe,$$slots:{default:!0}})}};O(tn,T=>{e(x)&&T(pe)})}J(()=>{er.inert=o(),er.disabled=s()||n()||e(he)==="adding",q(Ar,e(he)==="adding"?"Adding…":e(he)==="added"?"Added":e(he)==="failed"?"Failed":"Add test")}),Oe("click",er,Zt),Oe("click",tr,()=>i(I,!0)),Oe("click",jr,()=>At("prompt")),Oe("click",Nr,()=>At("conversation")),Oe("click",Or,()=>At("context")),Oe("click",se,Yt),g(t,Yr),kn()}js(["click"]);function ei(t){const r=t<0?-1:1,s=Math.abs(t),o=.254829592,n=-.284496736,l=1.421413741,v=-1.453152027,x=1.061405429,I=1/(1+.3275911*s),S=1-((((x*I+v)*I+l)*I+n)*I+o)*I*Math.exp(-s*s);return r*S}function ti(t){return .5*(1+ei(t/Math.SQRT2))}function Ks(t,r,s,o){if(!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(s)||!Number.isFinite(o)||r<=0||o<=0)return null;const n=t/r,l=s/o,v=(t+s)/(r+o),x=Math.sqrt(v*(1-v)*(1/r+1/o));if(!Number.isFinite(x)||x<=0)return null;const w=(l-n)/x,I=2*(1-ti(Math.abs(w)));return Math.max(0,Math.min(1,I))}function Qs(t){return t==="higher"?"significantly better":"significantly worse"}function gn(t,r){if(!t||t.isOld)return null;const s=t.total_runs;if(s<=0)return null;const o=t.previous,n=o&&o.total_runs>0?o.success_count/o.total_runs:null,l=t.successes/s,v=n===null||l>=n?"higher":"lower",x=(()=>{if(s<5||!o||o.total_runs<=0)return!1;const B=Ks(o.success_count,o.total_runs,t.successes,s);return B!==null&&B<.05})(),w=n===1&&l<1,I=n!==null&&n<1&&l===1,S=x?Qs(v):w?"Not 100% anymore":I?"100% now":void 0,E=Number.isFinite(r)&&r>0&&s<r;if(!E&&!S)return null;const R=E?Math.round(l*r):void 0;return{showExpected:E,expectedSuccesses:R,expectedRuns:r,significant:x,direction:v,comparisonLabel:S}}var ri=C('<link rel="preload" href="/ui/arrow_tests.svg" as="image"/>'),Cs=C('<div class="p-2 text-gray-300">Loading…</div>'),Ps=C('<div class="p-2 text-rc-red-600"> </div>'),ni=C('<div class="p-2 text-gray-400">No previous runs</div>'),si=C('<div class="border-rc-red-700 rounded border bg-rc-gray-900 px-3 py-2 text-sm text-rc-red-600"> </div>'),ai=C('<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>'),oi=C('<div class="flex flex-col gap-2"><!> <!></div>'),Ls=C('<div class="p-3 text-gray-400">—</div>'),mn=C('<span class="ml-2 text-rc-gray-400"> </span>'),ii=C("<span> </span> <!>",1),Es=C('<span class="text-rc-gray-500">—</span>'),$s=C('<div class="mt-1 px-1 text-sm font-semibold text-rc-gray-300"><!></div>'),li=C('<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>'),Rs=C('<div class="flex flex-col gap-2"><div> </div> <div><div class="flex items-center gap-0"><!> <span> </span></div> <!></div></div>'),ci=C('<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),ui=C('<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),di=C('<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>'),As=C('<div class="flex flex-col space-y-5"></div>'),fi=C('<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>'),vi=C('<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>'),pi=C('<pre class="whitespace-pre-wrap font-mono text-gray-200"> </pre>'),gi=C(`<p class="mt-2 text-red-200">Bosun found an old JSON/JSONL test suite. This version only supports one YAML file per
|
|
3
|
-
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),mi=C('<p class="mt-2 break-words text-red-200"> </p> <!>',1),hi=C('<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>'),xi=C("<li> </li>"),yi=C('<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>'),_i=C('<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>'),bi=C("<!> New test",1),wi=C('<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>'),ki=C("<!> History",1),Si=C("<!> Collapse all",1),Ti=C("<div></div>"),Ii=C('<button aria-label="Pin/unpin all" title="Pin/unpin all"><!></button>'),Mn=C('<span><!><span class="ml-1"> </span></span>'),Ci=C('<div class="translate-y-[5px]"><!></div>'),Pi=C('<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),Li=C("<span> </span> <!> <!>",1),Ei=C('<div class="rounded bg-rc-gray-930 px-2 py-2 text-sm text-rc-red-600"> </div>'),$i=C("<option> </option>"),Ri=C('<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>'),Ai=C('<label class="inline-flex items-center gap-2 text-sm text-rc-gray-200"><input type="checkbox" class="checkbox"/> <span>Case-sensitive</span></label>'),ji=C('<div class="text-lg font-extrabold"><span> </span> <!> <!></div>'),Ni=C('<div class="mt-3 flex flex-col gap-4"></div>'),Oi=C('<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),Mi=C('<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>'),Di=C("<!> <!>",1),qi=C('<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>'),Fi=C('<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),zi=C('<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>'),Ji=C("<!> <!> <!>",1);function pl(t,r){wn(r,!0);const{state:s,actions:o}=Ea(),n=k(()=>s.agentId),l=k(()=>s.region),v="BOSUN_LEGACY_TEST_SUITE:",x="https://github.com/recombine-ai/bosun/blob/main/TESTS_MIGRATION.md";function w(a){try{return structuredClone(a)}catch{try{return JSON.parse(JSON.stringify(a))}catch{return a}}}function I(a,c,d){return Math.max(c,Math.min(d,a))}let S=L(1),E=L(75),R=L(null);function B(a){if(typeof localStorage>"u")return{repeats:1,concurrency:75,expandedTestIds:[]};try{const c=JSON.parse(localStorage.getItem(a)||"{}");return{repeats:I(Number(c.repeats)||1,1,500),concurrency:I(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 Z(){!e(R)||typeof localStorage>"u"||localStorage.setItem(e(R),JSON.stringify({repeats:e(S),concurrency:e(E),expandedTestIds:e(Ye)}))}let A=L(null),F=L("context"),$=L(It({})),P=L(It({})),j=L(!1),G=L(!1),ve=L(!1),N=L(""),Q=L(null),he=L(!1),Me=L(null),we=L(It([])),dt=L(!1),ft=L(null),De=L(null),Bt=L(It({})),Yt=L(!1),At=L(null),yt=L(It([])),cr=0,Zt=0;const st=k(()=>e(De)?e(Bt)[e(De)]??null:null),Yr=k(()=>e(dt)&&e(we).length===0&&!e(ft)),Rr=k(()=>e(Yt)&&!e(st)),er=k(()=>new Set(e(yt))),Ar=k(()=>e(st)?e(st).rows.map(a=>ra(e(st).timestamp,a)):[]),ur=k(()=>na(e(Ar)));function Zr(a,c){i(N,a,!0),i(Q,JSON.stringify(c??{},null,2),!0),i(ve,!0)}let tr=L(!1);async function jr(a,c,d){var b;if(e(tr))return;i(tr,!0);const p=o.openPopover("analyze"),h=`Analysis — ${a} (run ${c})`;try{const _=await Ne.tests.analyzeRun.mutate({agent:d.agent,region:e(l),testId:d.id,index:d.run,timestamp:d.timestamp});if(((b=s.edit.popover)==null?void 0:b.requestId)!==p)return;o.setHighlightQuotes(_.quotes);let M=null;try{M=JSON.stringify(_.raw,null,2)}catch{M=null}o.setPopoverReady(p,{title:h,quotes:_.quotes,rationales:_.rationales,parallelCalls:_.parallelCalls,raw:M})}catch(_){console.error(_);const M=typeof(_==null?void 0:_.message)=="string"?_.message:(()=>{try{return JSON.stringify(_)}catch{return String(_)}})();o.setPopoverError(p,M||"Failed to analyze this response",{raw:M})}finally{i(tr,!1)}}const Nr=[{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"}],Or=[...Nr,...Nr.map(a=>({value:`not-${a.value}`,label:`Not ${a.label}`}))];let se=L(It([]));const dr=k(()=>{var a;return((a=s.currentStep)==null?void 0:a.name)||"main"}),He=k(()=>e(se).filter(a=>a.step===e(dr)||kr(a.step)&&kr(e(dr)))),en=k(()=>new Set(s.steps.map(a=>a.name))),In=k(()=>s.steps.some(a=>kr(a.name))),tn=k(()=>{if(!s.steps.length)return[];const a=new Map;for(const c of e(se))e(en).has(c.step)||e(In)&&kr(c.step)||a.set(c.step,(a.get(c.step)??0)+1);return[...a.entries()].map(([c,d])=>({step:c,count:d})).sort((c,d)=>c.step.localeCompare(d.step))});let pe=L(!1),T=L(null),oe=L(null),qe=L(0),ie=L(0),Qe=L(1),We=L(It([])),Ae=L(It([])),Xe=L(It([]));const jt=k(()=>new Set(e(We))),fr=k(()=>new Set(e(Ae))),rr=k(()=>new Set(e(Xe)));let ge=!1,W=null,V=0,Ce=Promise.resolve();const Ct=new Set;let Pt=L(0);const Ve=k(()=>e(Pt)>0);let Nt=L(!1),Fe=L(null),Ye=L(It([]));const _t=k(()=>new Set(e(Ye))),nr=k(()=>e(He).some(a=>e(_t).has(a.id)));function Mr(a){return Ct.add(a),i(Pt,e(Pt)+1),a.finally(()=>{Ct.delete(a),i(Pt,e(Pt)-1)}),a}function Bn(a,c,d){const p=Array.isArray(d.results)?d.results:[],h=p.reduce((b,_)=>b+(_!=null&&_.success?1:0),0);return{success_rate:d.success_rate,successes:h,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,D={agent:a,id:c,timestamp:M,run:_};return{index:_+1,success:!!b.success,text:String(b.result||""),evaluation:String(b.evaluation||""),errors:String(b.errors||""),links:{renderedPrompt:{...D,key:"rendered_prompt"},receivedPrompt:{...D,key:"received_prompt"},conversation:{...D,key:"stringified_conversation"},context:{...D,key:"received_context"},logs:{...D,key:"logs"},errors:{...D,key:"errors"},traces:{...D,key:"traces"}}}}).reverse()}}async function vr(){const a=(e(n)??"").trim();if(a){i(Fe,null);try{const[{rows:c,settingsKey:d},p]=await Promise.all([Ne.tests.list.query({agent:a,region:e(l)}),Ne.tests.latestResult.query({agent:a,region:e(l)})]);if((e(n)??"").trim()!==a)return;i(R,d,!0);const h=B(d);i(S,h.repeats,!0),i(E,h.concurrency,!0),i(Ye,h.expandedTestIds,!0),i(se,c.map(b=>{const _=b.id,M=p[_];return{id:_,pinned:String(b.pinned).toUpperCase()==="TRUE",scenario:b.scenario||"",step:String(b.step||"main"),evaluation_mode:b.evaluation_mode==="json-deep-equal"?"json-deep-equal":"assertion",case_sensitive:b.case_sensitive===!0,context_mode:b.context_mode==="replace"?"replace":"merge",author:b.author||"",assertion_type:b.assertion_type||"llm-rubric",assertion_value:b.assertion_value||"",conversation:b.conversation||"",expected_output:b.expected_output||"",conversation_ui:an(b.conversation||"",b.expected_output||"",String(b.step??"main"),b.evaluation_mode==="json-deep-equal"),timeout:Number(b.timeout??0),similarity_threshold:Number(b.similarity_threshold??50),context:JSON.stringify(b.context),mocks:JSON.stringify(b.mocks||{}),hasMocks:typeof b.mocks<"u",result:M?Bn(a,_,M):void 0}}),!0)}catch(c){if(console.error(c),(e(n)??"").trim()!==a)return;const d=c instanceof Error?c.message:String(c);i(Fe,{kind:d.includes(v)?"legacy":"other",message:d},!0),i(se,[],!0),i(S,1),i(E,75),i(Ye,[],!0)}finally{(e(n)??"").trim()===a&&i(Nt,!0)}}}async function rn(a){const c=(e(n)??"").trim();if(c&&!ge){ge=!0;try{const[d,p]=await Promise.all([Ne.tests.latestResult.query({agent:c,region:e(l)}),Ne.tests.runProgress.query({agent:c,region:e(l)})]);if(a!==V)return;p&&(i(We,p.plannedTestIds,!0),i(Ae,p.runningTestIds,!0),i(Xe,p.completedTestIds,!0));const h=e(se).map(D=>{const le=d[D.id];return{...D,result:le?Bn(c,D.id,le):void 0}});i(se,h,!0);const b=e(T),_=Math.max(1,Number(e(Qe))||1),M=h.reduce((D,le)=>e(jt).has(le.id)&&le.result&&!le.result.isOld&&le.result.total_runs>=_?D+1:D,0);i(qe,M,!0)}catch(d){console.error(d)}finally{ge=!1}}}async function Ws(a){if(e(pe))return;i(pe,!0),i(T,a,!0),i(oe,null),i(ie,a==="all"?e(He).length:e(He).filter(d=>d.pinned).length,!0),i(qe,0),i(Qe,Math.max(1,Number(e(S))||1),!0),i(We,e(He).filter(d=>a==="all"||d.pinned).map(d=>d.id),!0),i(Ae,[],!0),i(Xe,[],!0),V+=1;const c=V;if(await Promise.all([Ce,...Ct]),c===V){W&&clearInterval(W),W=setInterval(()=>rn(c),250),rn(c);try{await Ne.tests.runTests.mutate({agent:e(n),region:e(l),step:e(dr),scope:a,repeats:e(S),concurrency:e(E)})}catch(d){c===V&&console.error(d)}finally{if(c!==V)return;W&&clearInterval(W),W=null;try{await vr()}finally{if(c!==V)return;i(pe,!1),i(T,null),i(oe,null),i(We,[],!0),i(Ae,[],!0),i(Xe,[],!0)}}}}async function Xs(a){if(!e(n)||e(pe))return;i(pe,!0),i(T,"single"),i(oe,a,!0),i(ie,1),i(qe,0),i(Qe,Math.max(1,Number(e(S))||1),!0),i(We,[a],!0),i(Ae,[],!0),i(Xe,[],!0),V+=1;const c=V;if(await Promise.all([Ce,...Ct]),c===V){W&&clearInterval(W),W=setInterval(()=>rn(c),250),rn(c);try{await Ne.tests.runTests.mutate({agent:e(n),region:e(l),testId:a,repeats:e(S),concurrency:e(E)})}catch(d){c===V&&console.error(d)}finally{if(c!==V)return;W&&clearInterval(W),W=null;try{await vr()}finally{if(c!==V)return;i(pe,!1),i(T,null),i(oe,null),i(We,[],!0),i(Ae,[],!0),i(Xe,[],!0)}}}}function Ys(){e(pe)&&(V+=1,W&&clearInterval(W),W=null,i(pe,!1),i(T,null),i(oe,null),i(We,[],!0),i(Ae,[],!0),i(Xe,[],!0),Ce=Ne.tests.cancelRun.mutate({agent:e(n),region:e(l)}).then(()=>{},()=>{}))}async function Zs(a){const c=a?"TRUE":"FALSE",d=e(He).filter(h=>h.pinned!==a).map(h=>h.id);if(d.length===0)return;const p=new Set(d);i(se,e(se).map(h=>p.has(h.id)?{...h,pinned:a}:h),!0);try{await Mr(Ne.tests.patchTestsBatch.mutate({agent:e(n),region:e(l),updates:d.map(h=>({id:h,patch:{pinned:c}}))}))}catch(h){console.error(h),await vr()}}let Cn=null,Gn=null;Er(()=>{const a=(e(n)??"").trim(),c=(e(l)??"").trim(),d=s.availableRegions,p=Array.isArray(d)&&d.length>0;if(!a){Cn=null,i(R,null),i(Fe,null),i(se,[],!0),i(Ye,[],!0),i(Nt,!1);return}if(p&&!c)return;const h=`${a}::${c}`;Cn!==h&&(Cn=h,i(R,null),i(Fe,null),i(se,[],!0),i(Ye,[],!0),i(Nt,!1),vr())}),Er(()=>{const a=(ds.url.searchParams.get("test")||"").trim(),c=(ds.url.searchParams.get("step")||"").trim(),d=e(se).some(p=>p.id===a&&(!c||p.step===c));!a||!d||Gn===a||(Gn=a,(async()=>{var p;e(_t).has(a)||await Sr(a,!0),await Ia(),(p=document.querySelector(`[data-id="${CSS.escape(a)}"]`))==null||p.scrollIntoView({block:"start"})})().catch(console.error))});const nn=k(()=>e(He).filter(a=>a.pinned).length),Dr=k(()=>e(nn)>0),ea=k(()=>e(He).length>0&&e(nn)===e(He).length),vt=k(()=>{let a=0,c=0,d=0,p=0,h=0,b=0,_=0,M=0;for(const le of e(He)){const re=le.result;!re||re.isOld||re.total_runs<=0||(c+=1,d+=re.successes,p+=re.total_runs,re.successes===re.total_runs&&(a+=1),re.previous&&re.previous.total_runs>0&&(h+=re.previous.success_count,b+=re.previous.total_runs,_+=re.successes,M+=re.total_runs))}const D=(()=>{if(M<5||b<=0)return null;const le=Ks(h,b,_,M);if(le===null||le>=.05)return null;const re=h/b;return{direction:_/M>=re?"higher":"lower",previousAttemptsPassing:h,previousAttemptsTotal:b,currentAttemptsPassing:_,currentAttemptsTotal:M,pValue:le}})();return{casesPassing:a,casesTotal:c,attemptsPassing:d,attemptsTotal:p,trend:D}});async function ta(){var p,h;const a=(h=(p=s.currentStep)==null?void 0:p.schema)!=null&&h.trim()?"json-deep-equal":"assertion",c=await Ne.tests.addTest.mutate({agent:e(n),region:e(l),seed:{step:e(dr),evaluation_mode:a,...a==="json-deep-equal"?{expected_output:"{}",case_sensitive:!1}:{}}}),d=Pn(c);i(se,[d,...e(se)],!0),Sr(d.id,!0).catch(console.error)}function Pn(a){return{...a,step:String(a.step||"main"),evaluation_mode:a.evaluation_mode==="json-deep-equal"?"json-deep-equal":"assertion",case_sensitive:a.case_sensitive===!0,context_mode:a.context_mode==="replace"?"replace":"merge",pinned:a.pinned==="TRUE",timeout:Number(a.timeout),similarity_threshold:Number(a.similarity_threshold),context:JSON.stringify(a.context),mocks:JSON.stringify(a.mocks||{}),hasMocks:typeof a.mocks<"u",conversation_ui:an(a.conversation||"",a.expected_output||"",String(a.step||"main"),a.evaluation_mode==="json-deep-equal")}}function ra(a,c){const d=c.test,p=d.id,h=c.results,b=h.reduce((_,M)=>_+(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:an(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:b,total_runs:h.length,isOld:!1,runs:h.map((_,M)=>{const D={agent:e(n),id:p,timestamp:a,run:M};return{index:M+1,success:_.success,text:_.result||"",evaluation:_.evaluation||"",errors:_.errors||"",links:{renderedPrompt:{...D,key:"rendered_prompt"},receivedPrompt:{...D,key:"received_prompt"},conversation:{...D,key:"stringified_conversation"},context:{...D,key:"received_context"},logs:{...D,key:"logs"},errors:{...D,key:"errors"},traces:{...D,key:"traces"}}}}).reverse()}}}function na(a){let c=0,d=0,p=0,h=0;for(const b of a){const _=b.result;!_||_.total_runs<=0||(d+=1,p+=_.successes,h+=_.total_runs,_.successes===_.total_runs&&(c+=1))}return{casesPassing:c,casesTotal:d,attemptsPassing:p,attemptsTotal:h}}function sa(a){var c;return((c=Or.find(d=>d.value===a))==null?void 0:c.label)??a}function aa(a){const c=new Date(a);return Number.isNaN(c.getTime())?a:c.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function oa(a){const c=new Date(a);return Number.isNaN(c.getTime())?"":c.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})}function Kn(a){return a==="all"?"All tests":"Pinned tests"}function ia(a){const c=new Set(e(yt));c.has(a)?c.delete(a):c.add(a),i(yt,Array.from(c),!0)}function Ln(a,c){return`${a.trim()}::${String(c??"").trim()}`}function pr(){const a=(e(n)??"").trim();return a?Ln(a,e(l)):null}function Qn(a){return a.rows.length===1?a.rows.map(c=>c.test.id):[]}function la(){cr+=1,Zt+=1,i(Me,null),i(we,[],!0),i(dt,!1),i(ft,null),i(De,null),i(Bt,{},!0),i(Yt,!1),i(At,null),i(yt,[],!0)}async function ca(){const a=pr();a&&(e(Me)!==a&&(la(),i(dt,!0)),i(he,!0),await ua({preserveCachedDetail:!0}))}async function ua(a={}){var b;const c=(e(n)??"").trim();if(!c)return;const d=e(l),p=Ln(c,d),h=++cr;i(dt,!0),i(ft,null);try{const _=await Ne.tests.historyList.query({agent:c,region:d});if(h!==cr||pr()!==p)return;i(we,_,!0),i(Me,p,!0);const M=e(De)&&_.some(D=>D.timestamp===e(De))?e(De):((b=_[0])==null?void 0:b.timestamp)??null;M?await Wn(M,{preserveCachedDetail:a.preserveCachedDetail,requestKey:p}):(i(De,null),i(At,null),i(Yt,!1),i(yt,[],!0))}catch(_){if(console.error(_),h!==cr||pr()!==p)return;i(ft,"Failed to load test history"),e(Me)!==p&&(i(we,[],!0),i(De,null),i(Bt,{},!0),i(yt,[],!0))}finally{h===cr&&pr()===p&&i(dt,!1)}}async function Wn(a,c={}){const d=(e(n)??"").trim();if(!d)return;const p=e(l),h=c.requestKey??Ln(d,p),b=e(De)===a;i(De,a,!0),i(Yt,!0),i(At,null);const _=e(Bt)[a];if(_&&c.preserveCachedDetail){Zt+=1,i(Yt,!1),b||i(yt,Qn(_),!0);return}const M=++Zt;_||i(yt,[],!0);try{const D=await Ne.tests.historyRun.query({agent:d,region:p,timestamp:a});if(M!==Zt||e(De)!==a||pr()!==h)return;i(Bt,{...e(Bt),[a]:D},!0),i(yt,Qn(D),!0)}catch(D){if(console.error(D),M!==Zt||e(De)!==a||pr()!==h)return;i(At,"Failed to load this test run"),i(yt,[],!0)}finally{M===Zt&&e(De)===a&&pr()===h&&i(Yt,!1)}}function Xn(a){const{conversation_ui:c,hasMocks:d,mocks:p,result:h,...b}=a,_={...b,pinned:a.pinned?"TRUE":"FALSE",timeout:String(a.timeout??0),similarity_threshold:String(a.similarity_threshold??50),context:JSON.parse(a.context)};return d&&(_.mocks=JSON.parse(p)),_}async function da(a,c){const d=Xn(a),p=await Ne.tests.addTest.mutate({agent:e(n),region:e(l),seed:d}),h=Pn(p),b=e(se).slice(),_=e(se).findIndex(M=>M.id===a.id);b.splice(_<0?c:_,0,h),i(se,b,!0),Sr(h.id,!0).catch(console.error),await Ne.tests.reorder.mutate({agent:e(n),region:e(l),order:e(se).map(M=>M.id)})}async function Yn(a,c,d=0){const p=Xn(a);p.expected_output=c;const h=await Ne.tests.addTest.mutate({agent:e(n),region:e(l),seed:p}),b=Pn(h),_=e(se).slice();_.splice(d,0,b),i(se,_,!0),Sr(b.id,!0).catch(console.error),await Ne.tests.reorder.mutate({agent:e(n),region:e(l),order:e(se).map(M=>M.id)})}function Zn(a){if(!a)return"";try{return a.replace(/^\s*\d+\s*[:.)-]?\s*(?:[❌✖️✔✅✗xX])?\s*/u,"")}catch{return a}}function sn(a){try{return a&&a.trim()?JSON.parse(a):{}}catch{return{}}}const es=a=>a.match(/^\s*(agent|assistant|user|system|step)\s*:\s*(.*)$/i);function ts(a){return kr(a)?"agent":"step"}function rs(a){try{const c=JSON.parse(a),d=JSON.stringify(c,null,2);return typeof c!="object"||c===null||Array.isArray(c)?d:d.split(`
|
|
2
|
+
import{c as yn,a as g,h as Sa,f as C,d as js,b as Ne,t as et}from"../chunks/DCXjBDmY.js";import{o as Os,a as bn}from"../chunks/DoD3q5w5.js";import{p as wn,y as i,f as Ie,j as e,a as kn,w as L,n as k,bq as Ta,r as u,d as Er,t as J,x as It,c as f,s as m,o as Re,T as Ia}from"../chunks/CEHsomMo.js";import{s as q}from"../chunks/CN555stc.js";import{i as N}from"../chunks/BHHfrjbV.js";import{M as Qr,R as Ca,k as is}from"../chunks/CQg2Mme0.js";import{e as ir,i as ls}from"../chunks/pPpIn6tB.js";import{h as Pa}from"../chunks/Bv1mNXs0.js";import{a as cs,s as Dn,c as Ht,r as or,d as vn,b as La}from"../chunks/Dg0A8wPA.js";import{s as $e,c as Ur}from"../chunks/Dy2CFyD6.js";import{b as jn,a as Ea}from"../chunks/Dm49pcMm.js";import{g as $a,P as Ra}from"../chunks/C1R-s4aD.js";import{B as ut}from"../chunks/CJcZ2GVC.js";import{P as Aa,C as us}from"../chunks/BnqH7p3U.js";import{I as pn}from"../chunks/DfcDjAv-.js";import{T as Ns,a as Wr}from"../chunks/ILTCveYH.js";import{h as ja,I as Vt}from"../chunks/Ddv5LgEc.js";import{r as Oa,p as lr}from"../chunks/D8mA-uZ4.js";import{p as ds}from"../chunks/Cp_st-64.js";import{_ as fs}from"../chunks/C1FmrZbK.js";import{b as Na}from"../chunks/DtXXy94i.js";import{e as Ma,a as Da}from"../chunks/BU7aeYn4.js";import{t as Oe}from"../chunks/CC1OcqhR.js";import{R as Br}from"../chunks/DyBwTDJp.js";import{i as kr}from"../chunks/DgGeUDDh.js";const Ms=/^[a-z0-9]+(-[a-z0-9]+)*$/,Sn=(t,r,s,o="")=>{const n=t.split(":");if(t.slice(0,1)==="@"){if(n.length<2||n.length>3)return null;o=n.shift().slice(1)}if(n.length>3||!n.length)return null;if(n.length>1){const x=n.pop(),w=n.pop(),I={provider:n.length>0?n[0]:o,prefix:w,name:x};return r&&!hn(I)?null:I}const l=n[0],v=l.split("-");if(v.length>1){const x={provider:o,prefix:v.shift(),name:v.join("-")};return r&&!hn(x)?null:x}if(s&&o===""){const x={provider:o,prefix:"",name:l};return r&&!hn(x,s)?null:x}return null},hn=(t,r)=>t?!!((r&&t.prefix===""||t.prefix)&&t.name):!1;function qa(t,r){const s=t.icons,o=t.aliases||Object.create(null),n=Object.create(null);function l(v){if(s[v])return n[v]=[];if(!(v in n)){n[v]=null;const x=o[v]&&o[v].parent,w=x&&l(x);w&&(n[v]=[x].concat(w))}return n[v]}return Object.keys(s).concat(Object.keys(o)).forEach(l),n}const Ds=Object.freeze({left:0,top:0,width:16,height:16}),_n=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Tn=Object.freeze({...Ds,..._n}),qn=Object.freeze({...Tn,body:"",hidden:!1});function Fa(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 vs(t,r){const s=Fa(t,r);for(const o in qn)o in _n?o in t&&!(o in s)&&(s[o]=_n[o]):o in r?s[o]=r[o]:o in t&&(s[o]=t[o]);return s}function za(t,r,s){const o=t.icons,n=t.aliases||Object.create(null);let l={};function v(x){l=vs(o[x]||n[x],l)}return v(r),s.forEach(v),vs(t,l)}function qs(t,r){const s=[];if(typeof t!="object"||typeof t.icons!="object")return s;t.not_found instanceof Array&&t.not_found.forEach(n=>{r(n,null),s.push(n)});const o=qa(t);for(const n in o){const l=o[n];l&&(r(n,za(t,n,l)),s.push(n))}return s}const Ja={provider:"",aliases:{},not_found:{},...Ds};function On(t,r){for(const s in r)if(s in t&&typeof t[s]!=typeof r[s])return!1;return!0}function Fs(t){if(typeof t!="object"||t===null)return null;const r=t;if(typeof r.prefix!="string"||!t.icons||typeof t.icons!="object"||!On(t,Ja))return null;const s=r.icons;for(const n in s){const l=s[n];if(!n||typeof l.body!="string"||!On(l,qn))return null}const o=r.aliases||Object.create(null);for(const n in o){const l=o[n],v=l.parent;if(!n||typeof v!="string"||!s[v]&&!o[v]||!On(l,qn))return null}return r}const ps=Object.create(null);function Ha(t,r){return{provider:t,prefix:r,icons:Object.create(null),missing:new Set}}function $r(t,r){const s=ps[t]||(ps[t]=Object.create(null));return s[r]||(s[r]=Ha(t,r))}function zs(t,r){return Fs(r)?qs(r,(s,o)=>{o?t.icons[s]=o:t.missing.add(s)}):[]}function Va(t,r,s){try{if(typeof s.body=="string")return t.icons[r]={...s},!0}catch{}return!1}let Xr=!1;function Js(t){return typeof t=="boolean"&&(Xr=t),Xr}function Ua(t){const r=typeof t=="string"?Sn(t,!0,Xr):t;if(r){const s=$r(r.provider,r.prefix),o=r.name;return s.icons[o]||(s.missing.has(o)?null:void 0)}}function Ba(t,r){const s=Sn(t,!0,Xr);if(!s)return!1;const o=$r(s.provider,s.prefix);return r?Va(o,s.name,r):(o.missing.add(s.name),!0)}function Ga(t,r){if(typeof t!="object")return!1;if(typeof r!="string"&&(r=t.provider||""),Xr&&!r&&!t.prefix){let n=!1;return Fs(t)&&(t.prefix="",qs(t,(l,v)=>{Ba(l,v)&&(n=!0)})),n}const s=t.prefix;if(!hn({prefix:s,name:"a"}))return!1;const o=$r(r,s);return!!zs(o,t)}const Hs=Object.freeze({width:null,height:null}),Vs=Object.freeze({...Hs,..._n}),Ka=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Qa=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function gs(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(Ka);if(o===null||!o.length)return t;const n=[];let l=o.shift(),v=Qa.test(l);for(;;){if(v){const x=parseFloat(l);isNaN(x)?n.push(l):n.push(Math.ceil(x*r*s)/s)}else n.push(l);if(l=o.shift(),l===void 0)return n.join("");v=!v}}function Wa(t,r="defs"){let s="";const o=t.indexOf("<"+r);for(;o>=0;){const n=t.indexOf(">",o),l=t.indexOf("</"+r);if(n===-1||l===-1)break;const v=t.indexOf(">",l);if(v===-1)break;s+=t.slice(n+1,l).trim(),t=t.slice(0,o).trim()+t.slice(v+1)}return{defs:s,content:t}}function Xa(t,r){return t?"<defs>"+t+"</defs>"+r:r}function Ya(t,r,s){const o=Wa(t);return Xa(o.defs,r+o.content+s)}const Za=t=>t==="unset"||t==="undefined"||t==="none";function eo(t,r){const s={...Tn,...t},o={...Vs,...r},n={left:s.left,top:s.top,width:s.width,height:s.height};let l=s.body;[s,o].forEach(A=>{const F=[],$=A.hFlip,P=A.vFlip;let j=A.rotate;$?P?j+=2:(F.push("translate("+(n.width+n.left).toString()+" "+(0-n.top).toString()+")"),F.push("scale(-1 1)"),n.top=n.left=0):P&&(F.push("translate("+(0-n.left).toString()+" "+(n.height+n.top).toString()+")"),F.push("scale(1 -1)"),n.top=n.left=0);let G;switch(j<0&&(j-=Math.floor(j/4)*4),j=j%4,j){case 1:G=n.height/2+n.top,F.unshift("rotate(90 "+G.toString()+" "+G.toString()+")");break;case 2:F.unshift("rotate(180 "+(n.width/2+n.left).toString()+" "+(n.height/2+n.top).toString()+")");break;case 3:G=n.width/2+n.left,F.unshift("rotate(-90 "+G.toString()+" "+G.toString()+")");break}j%2===1&&(n.left!==n.top&&(G=n.left,n.left=n.top,n.top=G),n.width!==n.height&&(G=n.width,n.width=n.height,n.height=G)),F.length&&(l=Ya(l,'<g transform="'+F.join(" ")+'">',"</g>"))});const v=o.width,x=o.height,w=n.width,I=n.height;let S,E;v===null?(E=x===null?"1em":x==="auto"?I:x,S=gs(E,w/I)):(S=v==="auto"?w:v,E=x===null?gs(S,I/w):x==="auto"?I:x);const R={},B=(A,F)=>{Za(F)||(R[A]=F.toString())};B("width",S),B("height",E);const Z=[n.left,n.top,w,I];return R.viewBox=Z.join(" "),{attributes:R,viewBox:Z,body:l}}const to=/\sid="(\S+)"/g,ro="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let no=0;function so(t,r=ro){const s=[];let o;for(;o=to.exec(t);)s.push(o[1]);if(!s.length)return t;const n="suffix"+(Math.random()*16777216|Date.now()).toString(16);return s.forEach(l=>{const v=typeof r=="function"?r(l):r+(no++).toString(),x=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+x+')([")]|\\.[a-z])',"g"),"$1"+v+n+"$3")}),t=t.replace(new RegExp(n,"g"),""),t}const Fn=Object.create(null);function ao(t,r){Fn[t]=r}function zn(t){return Fn[t]||Fn[""]}function Hn(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 Vn=Object.create(null),Gr=["https://api.simplesvg.com","https://api.unisvg.com"],xn=[];for(;Gr.length>0;)Gr.length===1||Math.random()>.5?xn.push(Gr.shift()):xn.push(Gr.pop());Vn[""]=Hn({resources:["https://api.iconify.design"].concat(xn)});function oo(t,r){const s=Hn(r);return s===null?!1:(Vn[t]=s,!0)}function Un(t){return Vn[t]}const io=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let ms=io();function lo(t,r){const s=Un(t);if(!s)return 0;let o;if(!s.maxURL)o=0;else{let n=0;s.resources.forEach(v=>{n=Math.max(n,v.length)});const l=r+".json?icons=";o=s.maxURL-n-s.path.length-l.length}return o}function co(t){return t===404}const uo=(t,r,s)=>{const o=[],n=lo(t,r),l="icons";let v={type:l,provider:t,prefix:r,icons:[]},x=0;return s.forEach((w,I)=>{x+=w.length+1,x>=n&&I>0&&(o.push(v),v={type:l,provider:t,prefix:r,icons:[]},x=w.length),v.icons.push(w)}),o.push(v),o};function fo(t){if(typeof t=="string"){const r=Un(t);if(r)return r.path}return"/"}const vo=(t,r,s)=>{if(!ms){s("abort",424);return}let o=fo(r.provider);switch(r.type){case"icons":{const l=r.prefix,x=r.icons.join(","),w=new URLSearchParams({icons:x});o+=l+".json?"+w.toString();break}case"custom":{const l=r.uri;o+=l.slice(0,1)==="/"?l.slice(1):l;break}default:s("abort",400);return}let n=503;ms(t+o).then(l=>{const v=l.status;if(v!==200){setTimeout(()=>{s(co(v)?"abort":"next",v)});return}return n=501,l.json()}).then(l=>{if(typeof l!="object"||l===null){setTimeout(()=>{l===404?s("abort",l):s("next",n)});return}setTimeout(()=>{s("success",l)})}).catch(()=>{s("next",n)})},po={prepare:uo,send:vo};function Us(t,r){t.forEach(s=>{const o=s.loaderCallbacks;o&&(s.loaderCallbacks=o.filter(n=>n.id!==r))})}function go(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,n=t.prefix;r.forEach(l=>{const v=l.icons,x=v.pending.length;v.pending=v.pending.filter(w=>{if(w.prefix!==n)return!0;const I=w.name;if(t.icons[I])v.loaded.push({provider:o,prefix:n,name:I});else if(t.missing.has(I))v.missing.push({provider:o,prefix:n,name:I});else return s=!0,!0;return!1}),v.pending.length!==x&&(s||Us([t],l.id),l.callback(v.loaded.slice(0),v.missing.slice(0),v.pending.slice(0),l.abort))})}))}let mo=0;function ho(t,r,s){const o=mo++,n=Us.bind(null,s,o);if(!r.pending.length)return n;const l={id:o,icons:r,callback:t,abort:n};return s.forEach(v=>{(v.loaderCallbacks||(v.loaderCallbacks=[])).push(l)}),n}function xo(t){const r={loaded:[],missing:[],pending:[]},s=Object.create(null);t.sort((n,l)=>n.provider!==l.provider?n.provider.localeCompare(l.provider):n.prefix!==l.prefix?n.prefix.localeCompare(l.prefix):n.name.localeCompare(l.name));let o={provider:"",prefix:"",name:""};return t.forEach(n=>{if(o.name===n.name&&o.prefix===n.prefix&&o.provider===n.provider)return;o=n;const l=n.provider,v=n.prefix,x=n.name,w=s[l]||(s[l]=Object.create(null)),I=w[v]||(w[v]=$r(l,v));let S;x in I.icons?S=r.loaded:v===""||I.missing.has(x)?S=r.missing:S=r.pending;const E={provider:l,prefix:v,name:x};S.push(E)}),r}function yo(t,r=!0,s=!1){const o=[];return t.forEach(n=>{const l=typeof n=="string"?Sn(n,r,s):n;l&&o.push(l)}),o}const _o={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function bo(t,r,s,o){const n=t.resources.length,l=t.random?Math.floor(Math.random()*n):t.index;let v;if(t.random){let O=t.resources.slice(0);for(v=[];O.length>1;){const Q=Math.floor(Math.random()*O.length);v.push(O[Q]),O=O.slice(0,Q).concat(O.slice(Q+1))}v=v.concat(O)}else v=t.resources.slice(l).concat(t.resources.slice(0,l));const x=Date.now();let w="pending",I=0,S,E=null,R=[],B=[];typeof o=="function"&&B.push(o);function Z(){E&&(clearTimeout(E),E=null)}function A(){w==="pending"&&(w="aborted"),Z(),R.forEach(O=>{O.status==="pending"&&(O.status="aborted")}),R=[]}function F(O,Q){Q&&(B=[]),typeof O=="function"&&B.push(O)}function $(){return{startTime:x,payload:r,status:w,queriesSent:I,queriesPending:R.length,subscribe:F,abort:A}}function P(){w="failed",B.forEach(O=>{O(void 0,S)})}function j(){R.forEach(O=>{O.status==="pending"&&(O.status="aborted")}),R=[]}function G(O,Q,he){const Me=Q!=="success";switch(R=R.filter(we=>we!==O),w){case"pending":break;case"failed":if(Me||!t.dataAfterTimeout)return;break;default:return}if(Q==="abort"){S=he,P();return}if(Me){S=he,R.length||(v.length?ve():P());return}if(Z(),j(),!t.random){const we=t.resources.indexOf(O.resource);we!==-1&&we!==t.index&&(t.index=we)}w="completed",B.forEach(we=>{we(he)})}function ve(){if(w!=="pending")return;Z();const O=v.shift();if(O===void 0){if(R.length){E=setTimeout(()=>{Z(),w==="pending"&&(j(),P())},t.timeout);return}P();return}const Q={status:"pending",resource:O,callback:(he,Me)=>{G(Q,he,Me)}};R.push(Q),I++,E=setTimeout(ve,t.rotate),s(O,r,Q.callback)}return setTimeout(ve),$}function Bs(t){const r={..._o,...t};let s=[];function o(){s=s.filter(x=>x().status==="pending")}function n(x,w,I){const S=bo(r,x,w,(E,R)=>{o(),I&&I(E,R)});return s.push(S),S}function l(x){return s.find(w=>x(w))||null}return{query:n,find:l,setIndex:x=>{r.index=x},getIndex:()=>r.index,cleanup:o}}function hs(){}const Nn=Object.create(null);function wo(t){if(!Nn[t]){const r=Un(t);if(!r)return;const s=Bs(r),o={config:r,redundancy:s};Nn[t]=o}return Nn[t]}function ko(t,r,s){let o,n;if(typeof t=="string"){const l=zn(t);if(!l)return s(void 0,424),hs;n=l.send;const v=wo(t);v&&(o=v.redundancy)}else{const l=Hn(t);if(l){o=Bs(l);const v=t.resources?t.resources[0]:"",x=zn(v);x&&(n=x.send)}}return!o||!n?(s(void 0,424),hs):o.query(r,n,s)().abort}function xs(){}function So(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,go(t)}))}function To(t){const r=[],s=[];return t.forEach(o=>{(o.match(Ms)?r:s).push(o)}),{valid:r,invalid:s}}function Kr(t,r,s){function o(){const n=t.pendingIcons;r.forEach(l=>{n&&n.delete(l),t.icons[l]||t.missing.add(l)})}if(s&&typeof s=="object")try{if(!zs(t,s).length){o();return}}catch(n){console.error(n)}o(),So(t)}function ys(t,r){t instanceof Promise?t.then(s=>{r(s)}).catch(()=>{r(null)}):r(t)}function Io(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,n=t.iconsToLoad;if(delete t.iconsToLoad,!n||!n.length)return;const l=t.loadIcon;if(t.loadIcons&&(n.length>1||!l)){ys(t.loadIcons(n,o,s),S=>{Kr(t,n,S)});return}if(l){n.forEach(S=>{const E=l(S,o,s);ys(E,R=>{const B=R?{prefix:o,icons:{[S]:R}}:null;Kr(t,[S],B)})});return}const{valid:v,invalid:x}=To(n);if(x.length&&Kr(t,x,null),!v.length)return;const w=o.match(Ms)?zn(s):null;if(!w){Kr(t,v,null);return}w.prepare(s,o,v).forEach(S=>{ko(s,S,E=>{Kr(t,S.icons,E)})})}))}const Co=(t,r)=>{const s=yo(t,!0,Js()),o=xo(s);if(!o.pending.length){let w=!0;return r&&setTimeout(()=>{w&&r(o.loaded,o.missing,o.pending,xs)}),()=>{w=!1}}const n=Object.create(null),l=[];let v,x;return o.pending.forEach(w=>{const{provider:I,prefix:S}=w;if(S===x&&I===v)return;v=I,x=S,l.push($r(I,S));const E=n[I]||(n[I]=Object.create(null));E[S]||(E[S]=[])}),o.pending.forEach(w=>{const{provider:I,prefix:S,name:E}=w,R=$r(I,S),B=R.pendingIcons||(R.pendingIcons=new Set);B.has(E)||(B.add(E),n[I][S].push(E))}),l.forEach(w=>{const I=n[w.provider][w.prefix];I.length&&Io(w,I)}),r?ho(r,o,l):xs};function Po(t,r){const s={...t};for(const o in r){const n=r[o],l=typeof n;o in Hs?(n===null||n&&(l==="string"||l==="number"))&&(s[o]=n):l===typeof s[o]&&(s[o]=o==="rotate"?n%4:n)}return s}const Lo=/[\s,]+/;function Eo(t,r){r.split(Lo).forEach(s=>{switch(s.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function $o(t,r=0){const s=t.replace(/^-?[0-9.]*/,"");function o(n){for(;n<0;)n+=4;return n%4}if(s===""){const n=parseInt(t);return isNaN(n)?0:o(n)}else if(s!==t){let n=0;switch(s){case"%":n=25;break;case"deg":n=90}if(n){let l=parseFloat(t.slice(0,t.length-s.length));return isNaN(l)?0:(l=l/n,l%1===0?o(l):0)}}return r}function Ro(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 Ao(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function jo(t){return"data:image/svg+xml,"+Ao(t)}function Oo(t){return'url("'+jo(t)+'")'}const _s={...Vs,inline:!1},No={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},Mo={display:"inline-block"},Jn={"background-color":"currentColor"},Gs={"background-color":"transparent"},bs={image:"var(--svg)",repeat:"no-repeat",size:"100% 100%"},ws={"-webkit-mask":Jn,mask:Jn,background:Gs};for(const t in ws){const r=ws[t];for(const s in bs)r[t+"-"+s]=bs[s]}function Do(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}function qo(t,r){const s=Po(_s,r),o=r.mode||"svg",n=o==="svg"?{...No}:{};t.body.indexOf("xlink:")===-1&&delete n["xmlns:xlink"];let l=typeof r.style=="string"?r.style:"";for(let $ in r){const P=r[$];if(P!==void 0)switch($){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":s[$]=P===!0||P==="true"||P===1;break;case"flip":typeof P=="string"&&Eo(s,P);break;case"color":l=l+(l.length>0&&l.trim().slice(-1)!==";"?";":"")+"color: "+P+"; ";break;case"rotate":typeof P=="string"?s[$]=$o(P):typeof P=="number"&&(s[$]=P);break;case"ariaHidden":case"aria-hidden":P!==!0&&P!=="true"&&delete n["aria-hidden"];break;default:if($.slice(0,3)==="on:")break;_s[$]===void 0&&(n[$]=P)}}const v=eo(t,s),x=v.attributes;if(s.inline&&(l="vertical-align: -0.125em; "+l),o==="svg"){Object.assign(n,x),l!==""&&(n.style=l);let $=0,P=r.id;return typeof P=="string"&&(P=P.replace(/-/g,"_")),{svg:!0,attributes:n,body:so(v.body,P?()=>P+"ID"+$++:"iconifySvelte")}}const{body:w,width:I,height:S}=t,E=o==="mask"||(o==="bg"?!1:w.indexOf("currentColor")!==-1),R=Ro(w,{...x,width:I+"",height:S+""}),Z={"--svg":Oo(R)},A=$=>{const P=x[$];P&&(Z[$]=Do(P))};A("width"),A("height"),Object.assign(Z,Mo,E?Jn:Gs);let F="";for(const $ in Z)F+=$+": "+Z[$]+";";return n.style=F+l,{svg:!1,attributes:n}}Js(!0);ao("",po);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"||!Ga(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 n=r[s];if(typeof n!="object"||!n||n.resources===void 0)continue;oo(s,n)||console.error(o)}catch{console.error(o)}}}}function Fo(t,r,s,o,n){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:{...Tn,...t}};let v;if(typeof t!="string"||(v=Sn(t,!1,!0))===null)return l(),null;const x=Ua(v);if(!x)return s&&(!r.loading||r.loading.name!==t)&&(l(),r.name="",r.loading={name:t,abort:Co([v],o)}),null;l(),r.name!==t&&(r.name=t,n&&!r.destroyed&&setTimeout(()=>{n(t)}));const w=["iconify"];return v.prefix!==""&&w.push("iconify--"+v.prefix),v.provider!==""&&w.push("iconify--"+v.provider),{data:x,classes:w}}function zo(t,r){return t?qo({...Tn,...t},r):null}var Jo=new Set(["$$slots","$$events","$$legacy"]),Ho=Sa("<svg></svg>"),Vo=C("<span></span>");function Ut(t,r){wn(r,!0);const s={name:"",loading:null,destroyed:!1},o=Oa(r,Jo);let n=L(!1),l=L(0),v=k(()=>!!r.ssr||e(n)),x=k(()=>(e(l),Fo(r.icon,s,e(v),I,r.onload))),w=k(()=>{const B=e(x)?zo(e(x).data,o):null;return B&&e(x).classes&&(B.attributes.class=(typeof o.class=="string"?o.class+" ":"")+e(x).classes.join(" ")),B});function I(){Ta(l)}Os(()=>{i(n,!0)}),bn(()=>{s.destroyed=!0,s.loading&&(s.loading.abort(),s.loading=null)});var S=yn(),E=Ie(S);{var R=B=>{var Z=yn(),A=Ie(Z);{var F=P=>{var j=Ho();cs(j,()=>({...e(w).attributes})),ja(j,()=>e(w).body,!0),u(j),g(P,j)},$=P=>{var j=Vo();cs(j,()=>({...e(w).attributes})),g(P,j)};N(A,P=>{e(w).svg?P(F):P($,-1)})}g(B,Z)};N(E,B=>{e(w)&&B(R)})}g(t,S),kn()}var Uo=C('<div class="w-full"></div>');function ks(t,r){wn(r,!0);let s=L(null),o=null,n=[],l=null,v=!1,x,w=lr(r,"language",3,"plaintext"),I=lr(r,"height",3,120),S=lr(r,"readOnly",3,!1),E=[],R=L(!1);function B(A){e(R)||A.stopPropagation()}Os(async()=>{var G,ve;if(!x)return;x.addEventListener("wheel",B,{capture:!0,passive:!0}),Ma();const A=await fs(()=>import("../chunks/DLQqXQ6R.js").then(O=>O.e),__vite__mapDeps([0,1,2]),import.meta.url);if(v)return;l=A,Da(A);const F=w()==="json"?"json":w()==="markdown"?"markdown":"plaintext";i(s,A.editor.create(x,{value:r.value??"",language:F,theme:"bosun-dark",lineNumbers:"off",fontSize:14,fontFamily:'ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',automaticLayout:!0,minimap:{enabled:!1},wordBasedSuggestions:"off",wordWrap:"bounded",wordWrapColumn:75,wrappingStrategy:"advanced",scrollbar:{vertical:"hidden",horizontal:"hidden"},overviewRulerLanes:0,renderLineHighlight:"none",folding:!1,renderWhitespace:"none",padding:{top:4,bottom:4},readOnly:S(),domReadOnly:S(),matchBrackets:"never",bracketPairColorization:{enabled:!1},guides:{highlightActiveBracketPair:!1,bracketPairs:!1,bracketPairsHorizontal:!1},occurrencesHighlight:"off",selectionHighlight:!1,unicodeHighlight:{ambiguousCharacters:!1,nonBasicASCII:!1,invisibleCharacters:!1,includeStrings:!1,includeComments:!1},autoClosingQuotes:"never"}),!0);const $=e(s);if(!$)return;o=$.getModel(),n.push($.onDidFocusEditorText(()=>{i(R,!0)})),n.push($.onDidChangeModelContent(()=>{var O;try{const Q=$.getValue();if(Q===r.value)return;(O=r.onChange)==null||O.call(r,Q)}catch(Q){console.error("MiniEditor change error",Q)}})),n.push($.onDidBlurEditorText(()=>{var O;i(R,!1);try{(O=r.onBlur)==null||O.call(r,$.getValue())}catch{}}));const P=(G=$.onDidFocusEditorWidget)==null?void 0:G.call($,()=>{i(R,!0)});P&&n.push(P);const j=(ve=$.onDidBlurEditorWidget)==null?void 0:ve.call($,()=>{var O;i(R,!1);try{(O=r.onBlur)==null||O.call(r,$.getValue())}catch{}});j&&n.push(j)}),bn(()=>{v=!0;try{x.removeEventListener("wheel",B,{capture:!0})}catch{}for(const F of n)try{F.dispose()}catch{}n=[];const A=o;o=null;try{if(e(s)){try{e(s).setModel(null)}catch{}e(s).dispose()}}finally{i(s,null)}try{A==null||A.dispose()}catch{}l=null}),Er(()=>{if(!e(s))return;const A=w()==="json"?"json":w()==="markdown"?"markdown":"plaintext",F=e(s).getModel();if(!F||F.getLanguageId()===A)return;let $=!1;return(l?Promise.resolve(l):fs(()=>import("../chunks/DLQqXQ6R.js").then(j=>j.e),__vite__mapDeps([0,1,2]),import.meta.url)).then(j=>{if(!$)try{j.editor.setModelLanguage(F,A)}catch{}}),()=>{$=!0}}),Er(()=>{e(s)&&r.value!==e(s).getValue()&&e(s).setValue(r.value??"")}),Er(()=>{var A;(A=e(s))==null||A.updateOptions({readOnly:S(),domReadOnly:S()})}),Er(()=>{const A=r.highlights;if(!e(s)||!o||!l)return;const F=l,$=o.getLineCount(),P=[];for(const j of A??[]){const G=Math.max(1,Math.min($,Number(j.startLine)||1)),ve=Math.max(G,Math.min($,Number(j.endLine)||G)),O=o.getLineMaxColumn(ve);if(P.push({range:new F.Range(G,1,ve,O),options:{inlineClassName:j.className}}),j.className==="test-expected-output")for(let Q=G;Q<=ve;Q++){const he=o.getLineContent(Q),Me=/<\/?[A-Za-z][^>]*?>/g;let we;for(;we=Me.exec(he);){const dt=(we.index??0)+1,ft=Math.min(o.getLineMaxColumn(Q),dt+String(we[0]??"").length);ft<=dt||P.push({range:new F.Range(Q,dt,Q,ft),options:{inlineClassName:"test-expected-output-tag"}})}}}E=e(s).deltaDecorations(E,P)});var Z=Uo();Na(Z,A=>x=A,()=>x),J(()=>Dn(Z,`height:${I()}px`)),g(t,Z),kn()}var Bo=C('<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>'),Go=C('<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>'),Ko=C('<div class="flex flex-col gap-3"></div>'),Ss=C('<div class="p-2 text-rc-gray-300">Loading…</div>'),Ts=C('<div class="p-2 text-red-400"> </div>'),Qo=C('<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>'),Wo=C('<div class="h-[55vh]"><!></div>'),Xo=C("<!> <!> <!>",1),Yo=C('<!> <div class="mt-2 h-[55vh]"><!></div>',1),Zo=C('<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 Is(t,r){wn(r,!0);let s=lr(r,"actionsDisabled",3,!1),o=lr(r,"actionsInert",3,!1),n=lr(r,"addTestDisabled",3,!1),l=lr(r,"showAnalyze",3,!0),v=lr(r,"analyzeDisabled",3,!1),x=L(!1),w=L(!1),I=L(!1),S=L("errors"),E=L("prompt"),R=L(null),B=L(null),Z=L(null),A=L(null),F=L(null),$=L(null),P=L(null),j=L(It({prompt:!1,conversation:!1,context:!1,errors:!1,traces:!1,logs:!1})),G=L(It({prompt:null,conversation:null,context:null,errors:null,traces:null,logs:null})),ve=0,O=L(null),Q=null,he=L("idle"),Me=null;function we(T){try{return{raw:T,formatted:JSON.stringify(JSON.parse(T),null,2)}}catch{return{raw:T,formatted:T}}}async function dt(T){const oe=await Oe.tests.resultEntry.query({agent:T.agent,region:r.region,testId:T.id,resultKey:T.key,timestamp:T.timestamp,index:T.run});return we(oe)}function ft(T){return T==="prompt"?e(B)!==null&&e(R)!==null:T==="conversation"?e(Z)!==null:T==="context"?e(A)!==null:T==="errors"?e(F)!==null:T==="traces"?e($)!==null:e(P)!==null}async function De(T){if(ft(T)||e(j)[T])return;const oe=ve;i(j,{...e(j),[T]:!0},!0),i(G,{...e(G),[T]:null},!0);try{if(T==="prompt"){const[qe,ie]=await Promise.all([dt(r.links.renderedPrompt),dt(r.links.receivedPrompt)]);if(oe!==ve)return;i(R,qe,!0),i(B,ie,!0)}else{const qe=T==="conversation"?r.links.conversation:T==="context"?r.links.context:T==="errors"?r.links.errors:T==="traces"?r.links.traces:r.links.logs,ie=await dt(qe);if(oe!==ve)return;T==="conversation"?i(Z,ie,!0):T==="context"?i(A,ie,!0):T==="errors"?i(F,ie,!0):T==="traces"?i($,ie,!0):i(P,ie,!0)}}catch(qe){if(oe!==ve)return;console.error(qe),i(G,{...e(G),[T]:"Failed to load content"},!0)}finally{oe===ve&&i(j,{...e(j),[T]:!1},!0)}}function Bt(){i(R,null),i(B,null),i(Z,null),i(A,null),i(F,null),i($,null),i(P,null),i(j,{prompt:!1,conversation:!1,context:!1,errors:!1,traces:!1,logs:!1},!0),i(G,{prompt:null,conversation:null,context:null,errors:null,traces:null,logs:null},!0)}function Yt(){ve+=1,i(S,"errors"),Bt(),i(x,!0),De("errors")}function At(T){ve+=1,i(E,T,!0),Bt(),i(w,!0),De(T)}function yt(T){return T==="prompt"?"Prompt":T==="conversation"?"Conversation":"Context"}function cr(T){i(S,T,!0),De(T)}async function Zt(){if(e(he)!=="adding"){i(he,"adding");try{await r.onAddTest(),i(he,"added")}catch(T){console.error("Failed to add test",T),i(he,"failed")}Me&&clearTimeout(Me),Me=window.setTimeout(()=>{i(he,"idle"),Me=null},2500)}}async function st(T){if(!(!e(B)||!e(R)))try{const oe=T==="raw"?e(B).raw:e(R).raw;await navigator.clipboard.writeText(oe),i(O,T,!0),Q&&clearTimeout(Q),Q=window.setTimeout(()=>{i(O,null),Q=null},2e3)}catch(oe){console.error("Failed to copy prompt",oe)}}bn(()=>{ve+=1,Q&&clearTimeout(Q),Me&&clearTimeout(Me)});var Yr=Zo(),Rr=Ie(Yr),er=f(Rr),Ar=f(er,!0);u(er);var ur=m(er,2);{var Zr=T=>{var oe=Bo();J(()=>oe.disabled=v()),Ne("click",oe,function(...qe){var ie;(ie=r.onAnalyze)==null||ie.apply(this,qe)}),g(T,oe)};N(ur,T=>{l()&&T(Zr)})}var tr=m(ur,2),jr=m(tr,2),Or=m(jr,2),Nr=m(Or,2),se=m(Nr,2);u(Rr);var dr=m(Rr,2);{var He=T=>{{const oe=ie=>{var Qe=Ko();ir(Qe,21,()=>r.variants,We=>We.index,(We,Ae)=>{var Xe=Go(),jt=f(Xe),fr=f(jt);u(jt);var rr=m(jt,2),ge=f(rr,!0);u(rr),u(Xe),J(()=>{$e(Xe,1,`rounded-lg border p-3 ${e(Ae).index===r.runIndex?"border-rc-green-450":"border-rc-gray-650"} ${e(Ae).success?"bg-rc-green-700/80":"bg-rc-gray-900/60"}`),q(fr,`Run ${e(Ae).index??""}${e(Ae).index===r.runIndex?" • selected":""}`),q(ge,e(Ae).text||e(Ae).errors||"—")}),g(We,Xe)}),u(Qe),g(ie,Qe)};let qe=k(()=>`Variants — ${r.scenario||"Test"}`);Qr(T,{get title(){return e(qe)},class:"!w-[80vw] !max-w-4xl",get open(){return e(I)},set open(ie){i(I,ie,!0)},children:oe,$$slots:{default:!0}})}};N(dr,T=>{e(I)&&T(He)})}var en=m(dr,2);{var In=T=>{{const oe=ie=>{var Qe=Wo(),We=f(Qe);{var Ae=ge=>{var W=Ss();g(ge,W)},Xe=ge=>{var W=Ts(),V=f(W,!0);u(W),J(()=>q(V,e(G)[e(E)])),g(ge,W)},jt=ge=>{var W=Qo(),V=f(W),Ce=f(V),Ct=f(Ce);{let Fe=k(()=>!e(B).raw.trim());ut(Ct,{variant:"secondary",size:"small",get disabled(){return e(Fe)},onclick:()=>st("raw"),children:(Ye,_t)=>{Re();var nr=et();J(()=>q(nr,e(O)==="raw"?"Copied raw prompt":"Copy raw prompt")),g(Ye,nr)},$$slots:{default:!0}})}u(Ce);var Pt=m(Ce,2),Ve=f(Pt);{let Fe=k(()=>!e(R).raw.trim());ut(Ve,{variant:"secondary",size:"small",get disabled(){return e(Fe)},onclick:()=>st("rendered"),children:(Ye,_t)=>{Re();var nr=et();J(()=>q(nr,e(O)==="rendered"?"Copied rendered prompt":"Copy rendered prompt")),g(Ye,nr)},$$slots:{default:!0}})}u(Pt),u(V);var Ot=m(V,2);Ca(Ot,{get original(){return e(B).formatted},get modified(){return e(R).formatted},language:"markdown",class:"min-h-0 flex-1"}),u(W),g(ge,W)},fr=ge=>{{let W=k(()=>e(Z).formatted||"—");Br(ge,{get value(){return e(W)},language:"text",class:"h-full"})}},rr=ge=>{{let W=k(()=>e(A).formatted||"—");Br(ge,{get value(){return e(W)},language:"json",class:"h-full"})}};N(We,ge=>{e(j)[e(E)]?ge(Ae):e(G)[e(E)]?ge(Xe,1):e(E)==="prompt"&&e(B)&&e(R)?ge(jt,2):e(E)==="conversation"&&e(Z)?ge(fr,3):e(E)==="context"&&e(A)&&ge(rr,4)})}u(Qe),g(ie,Qe)};let qe=k(()=>`${yt(e(E))} — ${r.scenario||"Test"} (run ${r.runIndex})`);Qr(T,{get title(){return e(qe)},class:"!w-[85vw] !max-w-5xl",get open(){return e(w)},set open(ie){i(w,ie,!0)},children:oe,$$slots:{default:!0}})}};N(en,T=>{e(w)&&T(In)})}var tn=m(en,2);{var pe=T=>{{const oe=ie=>{var Qe=Yo(),We=Ie(Qe);Ns(We,{get value(){return e(S)},ariaLabel:"Test run debug tabs",onChange:({value:V})=>cr(V),children:(V,Ce)=>{var Ct=Xo(),Pt=Ie(Ct);Wr(Pt,{value:"errors",class:"px-3",children:(Fe,Ye)=>{Re();var _t=et("Errors");g(Fe,_t)},$$slots:{default:!0}});var Ve=m(Pt,2);Wr(Ve,{value:"traces",class:"px-3",children:(Fe,Ye)=>{Re();var _t=et("Traces");g(Fe,_t)},$$slots:{default:!0}});var Ot=m(Ve,2);Wr(Ot,{value:"logs",class:"px-3",children:(Fe,Ye)=>{Re();var _t=et("Logs");g(Fe,_t)},$$slots:{default:!0}}),g(V,Ct)},$$slots:{default:!0}});var Ae=m(We,2),Xe=f(Ae);{var jt=V=>{var Ce=Ss();g(V,Ce)},fr=V=>{var Ce=Ts(),Ct=f(Ce,!0);u(Ce),J(()=>q(Ct,e(G)[e(S)])),g(V,Ce)},rr=V=>{{let Ce=k(()=>e(F).formatted||"—");Br(V,{get value(){return e(Ce)},language:"text",class:"h-full"})}},ge=V=>{{let Ce=k(()=>e($).formatted||"—");Br(V,{get value(){return e(Ce)},language:"json",class:"h-full"})}},W=V=>{{let Ce=k(()=>e(P).formatted||"—");Br(V,{get value(){return e(Ce)},language:"text",class:"h-full"})}};N(Xe,V=>{e(j)[e(S)]?V(jt):e(G)[e(S)]?V(fr,1):e(S)==="errors"&&e(F)?V(rr,2):e(S)==="traces"&&e($)?V(ge,3):e(S)==="logs"&&e(P)&&V(W,4)})}u(Ae),g(ie,Qe)};let qe=k(()=>`Debug — ${r.scenario||"Test"} (run ${r.runIndex})`);Qr(T,{get title(){return e(qe)},class:"!w-[85vw] !max-w-5xl",get open(){return e(x)},set open(ie){i(x,ie,!0)},children:oe,$$slots:{default:!0}})}};N(tn,T=>{e(x)&&T(pe)})}J(()=>{er.inert=o(),er.disabled=s()||n()||e(he)==="adding",q(Ar,e(he)==="adding"?"Adding…":e(he)==="added"?"Added":e(he)==="failed"?"Failed":"Add test")}),Ne("click",er,Zt),Ne("click",tr,()=>i(I,!0)),Ne("click",jr,()=>At("prompt")),Ne("click",Or,()=>At("conversation")),Ne("click",Nr,()=>At("context")),Ne("click",se,Yt),g(t,Yr),kn()}js(["click"]);function ei(t){const r=t<0?-1:1,s=Math.abs(t),o=.254829592,n=-.284496736,l=1.421413741,v=-1.453152027,x=1.061405429,I=1/(1+.3275911*s),S=1-((((x*I+v)*I+l)*I+n)*I+o)*I*Math.exp(-s*s);return r*S}function ti(t){return .5*(1+ei(t/Math.SQRT2))}function Ks(t,r,s,o){if(!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(s)||!Number.isFinite(o)||r<=0||o<=0)return null;const n=t/r,l=s/o,v=(t+s)/(r+o),x=Math.sqrt(v*(1-v)*(1/r+1/o));if(!Number.isFinite(x)||x<=0)return null;const w=(l-n)/x,I=2*(1-ti(Math.abs(w)));return Math.max(0,Math.min(1,I))}function Qs(t){return t==="higher"?"significantly better":"significantly worse"}function gn(t,r){if(!t||t.isOld)return null;const s=t.total_runs;if(s<=0)return null;const o=t.previous,n=o&&o.total_runs>0?o.success_count/o.total_runs:null,l=t.successes/s,v=n===null||l>=n?"higher":"lower",x=(()=>{if(s<5||!o||o.total_runs<=0)return!1;const B=Ks(o.success_count,o.total_runs,t.successes,s);return B!==null&&B<.05})(),w=n===1&&l<1,I=n!==null&&n<1&&l===1,S=x?Qs(v):w?"Not 100% anymore":I?"100% now":void 0,E=Number.isFinite(r)&&r>0&&s<r;if(!E&&!S)return null;const R=E?Math.round(l*r):void 0;return{showExpected:E,expectedSuccesses:R,expectedRuns:r,significant:x,direction:v,comparisonLabel:S}}var ri=C('<link rel="preload" href="/ui/arrow_tests.svg" as="image"/>'),Cs=C('<div class="p-2 text-gray-300">Loading…</div>'),Ps=C('<div class="p-2 text-rc-red-600"> </div>'),ni=C('<div class="p-2 text-gray-400">No previous runs</div>'),si=C('<div class="border-rc-red-700 rounded border bg-rc-gray-900 px-3 py-2 text-sm text-rc-red-600"> </div>'),ai=C('<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>'),oi=C('<div class="flex flex-col gap-2"><!> <!></div>'),Ls=C('<div class="p-3 text-gray-400">—</div>'),mn=C('<span class="ml-2 text-rc-gray-400"> </span>'),ii=C("<span> </span> <!>",1),Es=C('<span class="text-rc-gray-500">—</span>'),$s=C('<div class="mt-1 px-1 text-sm font-semibold text-rc-gray-300"><!></div>'),li=C('<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>'),Rs=C('<div class="flex flex-col gap-2"><div> </div> <div><div class="flex items-center gap-0"><!> <span> </span></div> <!></div></div>'),ci=C('<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),ui=C('<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),di=C('<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>'),As=C('<div class="flex flex-col space-y-5"></div>'),fi=C('<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>'),vi=C('<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>'),pi=C('<pre class="whitespace-pre-wrap font-mono text-gray-200"> </pre>'),gi=C(`<p class="mt-2 text-red-200">Bosun found an old JSON/JSONL test suite. This version only supports one YAML file per
|
|
3
|
+
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),mi=C('<p class="mt-2 break-words text-red-200"> </p> <!>',1),hi=C('<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>'),xi=C("<li> </li>"),yi=C('<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>'),_i=C('<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>'),bi=C("<!> New test",1),wi=C('<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>'),ki=C("<!> History",1),Si=C("<!> Collapse all",1),Ti=C("<div></div>"),Ii=C('<button aria-label="Pin/unpin all" title="Pin/unpin all"><!></button>'),Mn=C('<span><!><span class="ml-1"> </span></span>'),Ci=C('<div class="translate-y-[5px]"><!></div>'),Pi=C('<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),Li=C("<span> </span> <!> <!>",1),Ei=C('<div class="rounded bg-rc-gray-930 px-2 py-2 text-sm text-rc-red-600"> </div>'),$i=C("<option> </option>"),Ri=C('<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>'),Ai=C('<label class="inline-flex items-center gap-2 text-sm text-rc-gray-200"><input type="checkbox" class="checkbox"/> <span>Case-sensitive</span></label>'),ji=C('<div class="text-lg font-extrabold"><span> </span> <!> <!></div>'),Oi=C('<div class="mt-3 flex flex-col gap-4"></div>'),Ni=C('<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),Mi=C('<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>'),Di=C("<!> <!>",1),qi=C('<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>'),Fi=C('<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),zi=C('<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>'),Ji=C("<!> <!> <!>",1);function pl(t,r){wn(r,!0);const{state:s,actions:o}=$a(),n=k(()=>s.agentId),l=k(()=>s.region),v="BOSUN_LEGACY_TEST_SUITE:",x="https://github.com/recombine-ai/bosun/blob/main/TESTS_MIGRATION.md";function w(a){try{return structuredClone(a)}catch{try{return JSON.parse(JSON.stringify(a))}catch{return a}}}function I(a,c,d){return Math.max(c,Math.min(d,a))}let S=L(1),E=L(75),R=L(null);function B(a){if(typeof localStorage>"u")return{repeats:1,concurrency:75,expandedTestIds:[]};try{const c=JSON.parse(localStorage.getItem(a)||"{}");return{repeats:I(Number(c.repeats)||1,1,500),concurrency:I(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 Z(){!e(R)||typeof localStorage>"u"||localStorage.setItem(e(R),JSON.stringify({repeats:e(S),concurrency:e(E),expandedTestIds:e(Ye)}))}let A=L(null),F=L("context"),$=L(It({})),P=L(It({})),j=L(!1),G=L(!1),ve=L(!1),O=L(""),Q=L(null),he=L(!1),Me=L(null),we=L(It([])),dt=L(!1),ft=L(null),De=L(null),Bt=L(It({})),Yt=L(!1),At=L(null),yt=L(It([])),cr=0,Zt=0;const st=k(()=>e(De)?e(Bt)[e(De)]??null:null),Yr=k(()=>e(dt)&&e(we).length===0&&!e(ft)),Rr=k(()=>e(Yt)&&!e(st)),er=k(()=>new Set(e(yt))),Ar=k(()=>e(st)?e(st).rows.map(a=>ra(e(st).timestamp,a)):[]),ur=k(()=>na(e(Ar)));function Zr(a,c){i(O,a,!0),i(Q,JSON.stringify(c??{},null,2),!0),i(ve,!0)}let tr=L(!1);async function jr(a,c,d){var b;if(e(tr))return;i(tr,!0);const p=o.openPopover("analyze"),h=`Analysis — ${a} (run ${c})`;try{const _=await Oe.tests.analyzeRun.mutate({agent:d.agent,region:e(l),testId:d.id,index:d.run,timestamp:d.timestamp});if(((b=s.edit.popover)==null?void 0:b.requestId)!==p)return;o.setHighlightQuotes(_.quotes);let M=null;try{M=JSON.stringify(_.raw,null,2)}catch{M=null}o.setPopoverReady(p,{title:h,quotes:_.quotes,rationales:_.rationales,parallelCalls:_.parallelCalls,raw:M})}catch(_){console.error(_);const M=typeof(_==null?void 0:_.message)=="string"?_.message:(()=>{try{return JSON.stringify(_)}catch{return String(_)}})();o.setPopoverError(p,M||"Failed to analyze this response",{raw:M})}finally{i(tr,!1)}}const Or=[{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"}],Nr=[...Or,...Or.map(a=>({value:`not-${a.value}`,label:`Not ${a.label}`}))];let se=L(It([]));const dr=k(()=>{var a;return((a=s.currentStep)==null?void 0:a.name)||"main"}),He=k(()=>e(se).filter(a=>a.step===e(dr)||kr(a.step)&&kr(e(dr)))),en=k(()=>new Set(s.steps.map(a=>a.name))),In=k(()=>s.steps.some(a=>kr(a.name))),tn=k(()=>{if(!s.steps.length)return[];const a=new Map;for(const c of e(se))e(en).has(c.step)||e(In)&&kr(c.step)||a.set(c.step,(a.get(c.step)??0)+1);return[...a.entries()].map(([c,d])=>({step:c,count:d})).sort((c,d)=>c.step.localeCompare(d.step))});let pe=L(!1),T=L(null),oe=L(null),qe=L(0),ie=L(0),Qe=L(1),We=L(It([])),Ae=L(It([])),Xe=L(It([]));const jt=k(()=>new Set(e(We))),fr=k(()=>new Set(e(Ae))),rr=k(()=>new Set(e(Xe)));let ge=!1,W=null,V=0,Ce=Promise.resolve();const Ct=new Set;let Pt=L(0);const Ve=k(()=>e(Pt)>0);let Ot=L(!1),Fe=L(null),Ye=L(It([]));const _t=k(()=>new Set(e(Ye))),nr=k(()=>e(He).some(a=>e(_t).has(a.id)));function Mr(a){return Ct.add(a),i(Pt,e(Pt)+1),a.finally(()=>{Ct.delete(a),i(Pt,e(Pt)-1)}),a}function Bn(a,c,d){const p=Array.isArray(d.results)?d.results:[],h=p.reduce((b,_)=>b+(_!=null&&_.success?1:0),0);return{success_rate:d.success_rate,successes:h,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,D={agent:a,id:c,timestamp:M,run:_};return{index:_+1,success:!!b.success,text:String(b.result||""),evaluation:String(b.evaluation||""),errors:String(b.errors||""),links:{renderedPrompt:{...D,key:"rendered_prompt"},receivedPrompt:{...D,key:"received_prompt"},conversation:{...D,key:"stringified_conversation"},context:{...D,key:"received_context"},logs:{...D,key:"logs"},errors:{...D,key:"errors"},traces:{...D,key:"traces"}}}}).reverse()}}async function vr(){const a=(e(n)??"").trim();if(a){i(Fe,null);try{const[{rows:c,settingsKey:d},p]=await Promise.all([Oe.tests.list.query({agent:a,region:e(l)}),Oe.tests.latestResult.query({agent:a,region:e(l)})]);if((e(n)??"").trim()!==a)return;i(R,d,!0);const h=B(d);i(S,h.repeats,!0),i(E,h.concurrency,!0),i(Ye,h.expandedTestIds,!0),i(se,c.map(b=>{const _=b.id,M=p[_];return{id:_,pinned:String(b.pinned).toUpperCase()==="TRUE",scenario:b.scenario||"",step:String(b.step||"main"),evaluation_mode:b.evaluation_mode==="json-deep-equal"?"json-deep-equal":"assertion",case_sensitive:b.case_sensitive===!0,context_mode:b.context_mode==="replace"?"replace":"merge",author:b.author||"",assertion_type:b.assertion_type||"llm-rubric",assertion_value:b.assertion_value||"",conversation:b.conversation||"",expected_output:b.expected_output||"",conversation_ui:an(b.conversation||"",b.expected_output||"",String(b.step??"main"),b.evaluation_mode==="json-deep-equal"),timeout:Number(b.timeout??0),similarity_threshold:Number(b.similarity_threshold??50),context:JSON.stringify(b.context),mocks:JSON.stringify(b.mocks||{}),hasMocks:typeof b.mocks<"u",result:M?Bn(a,_,M):void 0}}),!0)}catch(c){if(console.error(c),(e(n)??"").trim()!==a)return;const d=c instanceof Error?c.message:String(c);i(Fe,{kind:d.includes(v)?"legacy":"other",message:d},!0),i(se,[],!0),i(S,1),i(E,75),i(Ye,[],!0)}finally{(e(n)??"").trim()===a&&i(Ot,!0)}}}async function rn(a){const c=(e(n)??"").trim();if(c&&!ge){ge=!0;try{const[d,p]=await Promise.all([Oe.tests.latestResult.query({agent:c,region:e(l)}),Oe.tests.runProgress.query({agent:c,region:e(l)})]);if(a!==V)return;p&&(i(We,p.plannedTestIds,!0),i(Ae,p.runningTestIds,!0),i(Xe,p.completedTestIds,!0));const h=e(se).map(D=>{const le=d[D.id];return{...D,result:le?Bn(c,D.id,le):void 0}});i(se,h,!0);const b=e(T),_=Math.max(1,Number(e(Qe))||1),M=h.reduce((D,le)=>e(jt).has(le.id)&&le.result&&!le.result.isOld&&le.result.total_runs>=_?D+1:D,0);i(qe,M,!0)}catch(d){console.error(d)}finally{ge=!1}}}async function Ws(a){if(e(pe))return;i(pe,!0),i(T,a,!0),i(oe,null),i(ie,a==="all"?e(He).length:e(He).filter(d=>d.pinned).length,!0),i(qe,0),i(Qe,Math.max(1,Number(e(S))||1),!0),i(We,e(He).filter(d=>a==="all"||d.pinned).map(d=>d.id),!0),i(Ae,[],!0),i(Xe,[],!0),V+=1;const c=V;if(await Promise.all([Ce,...Ct]),c===V){W&&clearInterval(W),W=setInterval(()=>rn(c),250),rn(c);try{await Oe.tests.runTests.mutate({agent:e(n),region:e(l),step:e(dr),scope:a,promptOverrides:o.getPromptOverrides(),repeats:e(S),concurrency:e(E)})}catch(d){c===V&&console.error(d)}finally{if(c!==V)return;W&&clearInterval(W),W=null;try{await vr()}finally{if(c!==V)return;i(pe,!1),i(T,null),i(oe,null),i(We,[],!0),i(Ae,[],!0),i(Xe,[],!0)}}}}async function Xs(a){if(!e(n)||e(pe))return;i(pe,!0),i(T,"single"),i(oe,a,!0),i(ie,1),i(qe,0),i(Qe,Math.max(1,Number(e(S))||1),!0),i(We,[a],!0),i(Ae,[],!0),i(Xe,[],!0),V+=1;const c=V;if(await Promise.all([Ce,...Ct]),c===V){W&&clearInterval(W),W=setInterval(()=>rn(c),250),rn(c);try{await Oe.tests.runTests.mutate({agent:e(n),region:e(l),testId:a,promptOverrides:o.getPromptOverrides(),repeats:e(S),concurrency:e(E)})}catch(d){c===V&&console.error(d)}finally{if(c!==V)return;W&&clearInterval(W),W=null;try{await vr()}finally{if(c!==V)return;i(pe,!1),i(T,null),i(oe,null),i(We,[],!0),i(Ae,[],!0),i(Xe,[],!0)}}}}function Ys(){e(pe)&&(V+=1,W&&clearInterval(W),W=null,i(pe,!1),i(T,null),i(oe,null),i(We,[],!0),i(Ae,[],!0),i(Xe,[],!0),Ce=Oe.tests.cancelRun.mutate({agent:e(n),region:e(l)}).then(()=>{},()=>{}))}async function Zs(a){const c=a?"TRUE":"FALSE",d=e(He).filter(h=>h.pinned!==a).map(h=>h.id);if(d.length===0)return;const p=new Set(d);i(se,e(se).map(h=>p.has(h.id)?{...h,pinned:a}:h),!0);try{await Mr(Oe.tests.patchTestsBatch.mutate({agent:e(n),region:e(l),updates:d.map(h=>({id:h,patch:{pinned:c}}))}))}catch(h){console.error(h),await vr()}}let Cn=null,Gn=null;Er(()=>{const a=(e(n)??"").trim(),c=(e(l)??"").trim(),d=s.availableRegions,p=Array.isArray(d)&&d.length>0;if(!a){Cn=null,i(R,null),i(Fe,null),i(se,[],!0),i(Ye,[],!0),i(Ot,!1);return}if(p&&!c)return;const h=`${a}::${c}`;Cn!==h&&(Cn=h,i(R,null),i(Fe,null),i(se,[],!0),i(Ye,[],!0),i(Ot,!1),vr())}),Er(()=>{const a=(ds.url.searchParams.get("test")||"").trim(),c=(ds.url.searchParams.get("step")||"").trim(),d=e(se).some(p=>p.id===a&&(!c||p.step===c));!a||!d||Gn===a||(Gn=a,(async()=>{var p;e(_t).has(a)||await Sr(a,!0),await Ia(),(p=document.querySelector(`[data-id="${CSS.escape(a)}"]`))==null||p.scrollIntoView({block:"start"})})().catch(console.error))});const nn=k(()=>e(He).filter(a=>a.pinned).length),Dr=k(()=>e(nn)>0),ea=k(()=>e(He).length>0&&e(nn)===e(He).length),vt=k(()=>{let a=0,c=0,d=0,p=0,h=0,b=0,_=0,M=0;for(const le of e(He)){const re=le.result;!re||re.isOld||re.total_runs<=0||(c+=1,d+=re.successes,p+=re.total_runs,re.successes===re.total_runs&&(a+=1),re.previous&&re.previous.total_runs>0&&(h+=re.previous.success_count,b+=re.previous.total_runs,_+=re.successes,M+=re.total_runs))}const D=(()=>{if(M<5||b<=0)return null;const le=Ks(h,b,_,M);if(le===null||le>=.05)return null;const re=h/b;return{direction:_/M>=re?"higher":"lower",previousAttemptsPassing:h,previousAttemptsTotal:b,currentAttemptsPassing:_,currentAttemptsTotal:M,pValue:le}})();return{casesPassing:a,casesTotal:c,attemptsPassing:d,attemptsTotal:p,trend:D}});async function ta(){var p,h;const a=(h=(p=s.currentStep)==null?void 0:p.schema)!=null&&h.trim()?"json-deep-equal":"assertion",c=await Oe.tests.addTest.mutate({agent:e(n),region:e(l),seed:{step:e(dr),evaluation_mode:a,...a==="json-deep-equal"?{expected_output:"{}",case_sensitive:!1}:{}}}),d=Pn(c);i(se,[d,...e(se)],!0),Sr(d.id,!0).catch(console.error)}function Pn(a){return{...a,step:String(a.step||"main"),evaluation_mode:a.evaluation_mode==="json-deep-equal"?"json-deep-equal":"assertion",case_sensitive:a.case_sensitive===!0,context_mode:a.context_mode==="replace"?"replace":"merge",pinned:a.pinned==="TRUE",timeout:Number(a.timeout),similarity_threshold:Number(a.similarity_threshold),context:JSON.stringify(a.context),mocks:JSON.stringify(a.mocks||{}),hasMocks:typeof a.mocks<"u",conversation_ui:an(a.conversation||"",a.expected_output||"",String(a.step||"main"),a.evaluation_mode==="json-deep-equal")}}function ra(a,c){const d=c.test,p=d.id,h=c.results,b=h.reduce((_,M)=>_+(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:an(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:b,total_runs:h.length,isOld:!1,runs:h.map((_,M)=>{const D={agent:e(n),id:p,timestamp:a,run:M};return{index:M+1,success:_.success,text:_.result||"",evaluation:_.evaluation||"",errors:_.errors||"",links:{renderedPrompt:{...D,key:"rendered_prompt"},receivedPrompt:{...D,key:"received_prompt"},conversation:{...D,key:"stringified_conversation"},context:{...D,key:"received_context"},logs:{...D,key:"logs"},errors:{...D,key:"errors"},traces:{...D,key:"traces"}}}}).reverse()}}}function na(a){let c=0,d=0,p=0,h=0;for(const b of a){const _=b.result;!_||_.total_runs<=0||(d+=1,p+=_.successes,h+=_.total_runs,_.successes===_.total_runs&&(c+=1))}return{casesPassing:c,casesTotal:d,attemptsPassing:p,attemptsTotal:h}}function sa(a){var c;return((c=Nr.find(d=>d.value===a))==null?void 0:c.label)??a}function aa(a){const c=new Date(a);return Number.isNaN(c.getTime())?a:c.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function oa(a){const c=new Date(a);return Number.isNaN(c.getTime())?"":c.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})}function Kn(a){return a==="all"?"All tests":"Pinned tests"}function ia(a){const c=new Set(e(yt));c.has(a)?c.delete(a):c.add(a),i(yt,Array.from(c),!0)}function Ln(a,c){return`${a.trim()}::${String(c??"").trim()}`}function pr(){const a=(e(n)??"").trim();return a?Ln(a,e(l)):null}function Qn(a){return a.rows.length===1?a.rows.map(c=>c.test.id):[]}function la(){cr+=1,Zt+=1,i(Me,null),i(we,[],!0),i(dt,!1),i(ft,null),i(De,null),i(Bt,{},!0),i(Yt,!1),i(At,null),i(yt,[],!0)}async function ca(){const a=pr();a&&(e(Me)!==a&&(la(),i(dt,!0)),i(he,!0),await ua({preserveCachedDetail:!0}))}async function ua(a={}){var b;const c=(e(n)??"").trim();if(!c)return;const d=e(l),p=Ln(c,d),h=++cr;i(dt,!0),i(ft,null);try{const _=await Oe.tests.historyList.query({agent:c,region:d});if(h!==cr||pr()!==p)return;i(we,_,!0),i(Me,p,!0);const M=e(De)&&_.some(D=>D.timestamp===e(De))?e(De):((b=_[0])==null?void 0:b.timestamp)??null;M?await Wn(M,{preserveCachedDetail:a.preserveCachedDetail,requestKey:p}):(i(De,null),i(At,null),i(Yt,!1),i(yt,[],!0))}catch(_){if(console.error(_),h!==cr||pr()!==p)return;i(ft,"Failed to load test history"),e(Me)!==p&&(i(we,[],!0),i(De,null),i(Bt,{},!0),i(yt,[],!0))}finally{h===cr&&pr()===p&&i(dt,!1)}}async function Wn(a,c={}){const d=(e(n)??"").trim();if(!d)return;const p=e(l),h=c.requestKey??Ln(d,p),b=e(De)===a;i(De,a,!0),i(Yt,!0),i(At,null);const _=e(Bt)[a];if(_&&c.preserveCachedDetail){Zt+=1,i(Yt,!1),b||i(yt,Qn(_),!0);return}const M=++Zt;_||i(yt,[],!0);try{const D=await Oe.tests.historyRun.query({agent:d,region:p,timestamp:a});if(M!==Zt||e(De)!==a||pr()!==h)return;i(Bt,{...e(Bt),[a]:D},!0),i(yt,Qn(D),!0)}catch(D){if(console.error(D),M!==Zt||e(De)!==a||pr()!==h)return;i(At,"Failed to load this test run"),i(yt,[],!0)}finally{M===Zt&&e(De)===a&&pr()===h&&i(Yt,!1)}}function Xn(a){const{conversation_ui:c,hasMocks:d,mocks:p,result:h,...b}=a,_={...b,pinned:a.pinned?"TRUE":"FALSE",timeout:String(a.timeout??0),similarity_threshold:String(a.similarity_threshold??50),context:JSON.parse(a.context)};return d&&(_.mocks=JSON.parse(p)),_}async function da(a,c){const d=Xn(a),p=await Oe.tests.addTest.mutate({agent:e(n),region:e(l),seed:d}),h=Pn(p),b=e(se).slice(),_=e(se).findIndex(M=>M.id===a.id);b.splice(_<0?c:_,0,h),i(se,b,!0),Sr(h.id,!0).catch(console.error),await Oe.tests.reorder.mutate({agent:e(n),region:e(l),order:e(se).map(M=>M.id)})}async function Yn(a,c,d=0){const p=Xn(a);p.expected_output=c;const h=await Oe.tests.addTest.mutate({agent:e(n),region:e(l),seed:p}),b=Pn(h),_=e(se).slice();_.splice(d,0,b),i(se,_,!0),Sr(b.id,!0).catch(console.error),await Oe.tests.reorder.mutate({agent:e(n),region:e(l),order:e(se).map(M=>M.id)})}function Zn(a){if(!a)return"";try{return a.replace(/^\s*\d+\s*[:.)-]?\s*(?:[❌✖️✔✅✗xX])?\s*/u,"")}catch{return a}}function sn(a){try{return a&&a.trim()?JSON.parse(a):{}}catch{return{}}}const es=a=>a.match(/^\s*(agent|assistant|user|system|step)\s*:\s*(.*)$/i);function ts(a){return kr(a)?"agent":"step"}function rs(a){try{const c=JSON.parse(a),d=JSON.stringify(c,null,2);return typeof c!="object"||c===null||Array.isArray(c)?d:d.split(`
|
|
4
4
|
`).slice(1,-1).map(p=>p.startsWith(" ")?p.slice(2):p).join(`
|
|
5
5
|
`)}catch{return a}}function ns(a,c,d){const p=String(a||c||"—");return d?rs(p):p}function fa(a,c,d){let p=String(a??"").trimEnd();if(!p)return"";d&&(p=rs(p));const h=ts(c)==="agent"?"Agent":"Step";return d?p?`${h}:
|
|
6
6
|
${p}`:`${h}:`:`${h}: ${p}`}function an(a,c,d,p){const h=String(a??"").trimEnd(),b=fa(c,d,p);return b?h?`${h}
|
|
7
|
-
${b}`:b:h}function En(a,c){const d=String(a??""),p=d.split(/\r?\n/),h=[];let b=null;for(let xe=0;xe<p.length;xe++){const tt=es(p[xe]);if(!tt)continue;b&&h.push({...b,endLine:xe});const Lt=String(tt[1]??"").toLowerCase();b={role:Lt==="assistant"?"agent":Lt,startLine:xe+1}}b&&h.push({...b,endLine:p.length});const _=h.at(-1),M=ts(c.step);if(!((_==null?void 0:_.role)===M)||!_)return{valid:!1,expected:"",conversation:d.trimEnd()};const le=p.slice(_.startLine-1,_.endLine),re=le[0]??"",
|
|
7
|
+
${b}`:b:h}function En(a,c){const d=String(a??""),p=d.split(/\r?\n/),h=[];let b=null;for(let xe=0;xe<p.length;xe++){const tt=es(p[xe]);if(!tt)continue;b&&h.push({...b,endLine:xe});const Lt=String(tt[1]??"").toLowerCase();b={role:Lt==="assistant"?"agent":Lt,startLine:xe+1}}b&&h.push({...b,endLine:p.length});const _=h.at(-1),M=ts(c.step);if(!((_==null?void 0:_.role)===M)||!_)return{valid:!1,expected:"",conversation:d.trimEnd()};const le=p.slice(_.startLine-1,_.endLine),re=le[0]??"",Nt=es(re),bt=[Nt?Nt[2]??"":"",...le.slice(1)].join(`
|
|
8
8
|
`).trimEnd();let Gt=bt,Y=!0;if(c.evaluation_mode==="json-deep-equal"){const xe=/^\s*[\[{]/.test(bt)?bt:`{
|
|
9
9
|
${bt}
|
|
10
10
|
}`;try{const tt=JSON.parse(xe);Y=typeof tt=="object"&&tt!==null,Gt=Y?JSON.stringify(tt,null,2):xe}catch{Y=!1,Gt=xe}}const de=p.slice(0,_.startLine-1).join(`
|
|
11
|
-
`).trimEnd();return{valid:Y,expected:Gt,conversation:de,highlight:{startLine:c.evaluation_mode==="json-deep-equal"?Math.min(_.endLine,_.startLine+1):_.startLine,endLine:_.endLine}}}function on(a){return a.total_runs>0&&a.successes<a.total_runs?"text-rc-red-600":"text-rc-gray-200"}async function sr(a,c){await
|
|
12
|
-
${e(ke).testCount===1?"test":"tests"} · ${qt??""}`),$e(Dt,1,Ur(e(ke).passed?"text-rc-green-200":"text-rc-red-600")),q(kt,e(ke).passed?"Success":"Failure"),q(xr,`${e(ke).successRatePercent??""}% (${e(ke).successRate??""})`)},[()=>aa(e(ke).timestamp),()=>oa(e(ke).timestamp),()=>Kn(e(ke).runScope)]),
|
|
13
|
-
passing`)},[()=>Kn(e(st).runScope)]),g(Y,de)};O(Ot,Y=>{e(Rr)?Y(Tr):e(At)&&!e(st)?Y(bt,1):e(st)&&Y(Gt,2)})}u(re),u(p),g(d,p)},footer:d=>{ut(d,{variant:"outlined",size:"small",onclick:()=>i(he,!1),children:(p,h)=>{Re();var b=et("Close");g(p,b)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var os=m(as,2);Qr(os,{get title(){return e(N)},class:"!w-[80vw] !max-w-5xl",get open(){return e(ve)},set open(d){i(ve,d,!0)},children:d=>{var p=pi(),h=f(p,!0);u(p),J(()=>q(h,e(Q)||"—")),g(d,p)},footer:d=>{ut(d,{variant:"outlined",size:"small",onclick:()=>i(ve,!1),children:(p,h)=>{Re();var b=et("Close");g(p,b)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var xa=m(os,2);{var ya=a=>{var c=hi(),d=f(c),p=f(d),h=f(p,!0);u(p);var b=m(p,2);{var _=D=>{var le=gi(),re=m(Ie(le),2);Ht(re,"href",x),g(D,le)},M=D=>{var le=mi(),re=Ie(le),Ot=f(re,!0);u(re);var Tr=m(re,2);ut(Tr,{class:"mt-4",variant:"secondary",onclick:()=>void vr(),children:(bt,Gt)=>{Re();var Y=et("Retry");g(bt,Y)},$$slots:{default:!0}}),J(()=>q(Ot,e(Fe).message)),g(D,le)};O(b,D=>{e(Fe).kind==="legacy"?D(_):D(M,-1)})}u(d),u(c),J(()=>q(h,e(Fe).kind==="legacy"?"This test suite requires migration":"Tests could not be loaded")),g(a,c)},_a=a=>{var c=zi(),d=f(c);{var p=K=>{var ce=yi(),Se=m(f(ce),2);ir(Se,21,()=>e(tn),ls,(me,Pe)=>{var rt=xi(),Mt=f(rt);u(rt),J(()=>q(Mt,`${e(Pe).step??""} (${e(Pe).count??""})`)),g(me,rt)}),u(Se),u(ce),g(K,ce)};O(d,K=>{e(tn).length>0&&K(p)})}var h=m(d,2),b=f(h),_=f(b),M=m(f(_),2);pn(M,{type:"number",min:"1",max:"500",class:"w-16",onchange:()=>{i(S,I(+e(S)||1,1,500),!0),Z()},get value(){return e(S)},set value(K){i(S,K,!0)}}),u(_);var D=m(_,2),le=m(f(D),2);pn(le,{type:"number",min:"1",max:"75",class:"w-16",onchange:()=>{i(E,I(+e(E)||75,1,75),!0),Z()},get value(){return e(E)},set value(K){i(E,K,!0)}}),u(D),u(b);var re=m(b,2),Ot=f(re);{var Tr=K=>{var ce=_i(),Se=f(ce),me=f(Se);u(Se);var Pe=m(Se,2);ut(Pe,{variant:"secondary",onclick:Ys,children:(rt,Mt)=>{Re();var mr=et("Cancel");g(rt,mr)},$$slots:{default:!0}}),u(ce),J(()=>q(me,`Running… ${e(qe)??""}/${e(ie)??""}`)),g(K,ce)};O(Ot,K=>{e(pe)&&K(Tr)})}var bt=m(Ot,2),Gt=f(bt);{let K=k(()=>e(pe)||!e(n));ut(Gt,{variant:"secondary",onclick:ta,get inert(){return e(Ve)},get disabled(){return e(K)},class:"inline-flex items-center gap-1",children:(ce,Se)=>{var me=bi(),Pe=Ie(me);Ut(Pe,{icon:"mdi:plus-thick",width:18,height:18}),Re(),g(ce,me)},$$slots:{default:!0}})}var Y=m(Gt,2);{var de=K=>{var ce=wi();g(K,ce)};O(Y,K=>{e(Nt)&&e(He).length===0&&K(de)})}u(bt);var xe=m(bt,2);{let K=k(()=>e(pe)||e(He).length===0||e(Dr)&&e(nn)===0);ut(xe,{class:"inline-flex min-w-32 items-center justify-center gap-1 disabled:cursor-not-allowed disabled:opacity-50",get inert(){return e(Ve)},get disabled(){return e(K)},onclick:()=>Ws(e(Dr)?"pinned":"all"),children:(ce,Se)=>{Re();var me=et();J(()=>q(me,`▶ ${e(Dr)?"Run pinned":"Run all"}`)),g(ce,me)},$$slots:{default:!0}})}u(re),u(h);var tt=m(h,2),Lt=f(tt);{let K=k(()=>!e(n));ut(Lt,{variant:"secondary",class:"ml-11 inline-flex min-w-32 items-center justify-center gap-1",get disabled(){return e(K)},onclick:()=>void ca().catch(console.error),children:(ce,Se)=>{var me=ki(),Pe=Ie(me);Ut(Pe,{icon:"mdi:history",width:18,height:18}),Re(),g(ce,me)},$$slots:{default:!0}})}var wt=m(Lt,2);{var ke=K=>{{let ce=k(()=>!e(n));ut(K,{variant:"secondary",class:"inline-flex min-w-32 items-center justify-center gap-1",get inert(){return e(Ve)},get disabled(){return e(ce)},onclick:()=>void ga().catch(console.error),children:(Se,me)=>{var Pe=Si(),rt=Ie(Pe);Vt(rt,{name:"chevron-up",width:16,height:16,class:"block"}),Re(),g(Se,Pe)},$$slots:{default:!0}})}};O(wt,K=>{e(nr)&&K(ke)})}u(tt);var gr=m(tt,2),qr=f(gr);$a(qr,{class:"relative flex h-full min-w-0 flex-col overflow-hidden !rounded-none p-0",children:(K,ce)=>{var Se=Fi(),me=Ie(Se),Pe=f(me),rt=f(Pe);{var Mt=ue=>{var ae=Ti();g(ue,ae)},mr=ue=>{var ae=Ii(),Ze=f(ae);{let y=k(()=>e(Dr)?"mdi:pin":"mdi:pin-outline");Ut(Ze,{class:"block",get icon(){return e(y)},width:18,height:18})}u(ae),J(()=>{$e(ae,1,`icon-btn justify-self-center ${e(Dr)?"text-rc-green-200":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),ae.inert=e(Ve),ae.disabled=e(pe)||e(He).length===0}),Oe("click",ae,async()=>{await Zs(!e(ea))}),g(ue,ae)};O(rt,ue=>{e(pe)?ue(Mt):ue(mr,-1)})}var hr=m(rt,2),Dt=f(hr),kt=f(Dt);u(Dt);var St=m(Dt,2),xr=f(St);u(St);var z=m(St,2),ar=f(z);u(z);var qt=m(z,2);{var Ir=ue=>{var ae=Mn(),Ze=f(ae);{let Ue=k(()=>e(vt).trend.direction==="higher"?"chevron-up":"chevron-down");Vt(Ze,{get name(){return e(Ue)},width:16,height:16,class:"inline-block align-text-bottom"})}var y=m(Ze),Et=f(y,!0);u(y),u(ae),J((Ue,pt)=>{$e(ae,1,`whitespace-nowrap font-semibold ${e(vt).trend.direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55"),Ht(ae,"title",Ue),q(Et,pt)},[()=>`Previous ${e(vt).trend.previousAttemptsPassing}/${e(vt).trend.previousAttemptsTotal}, current ${e(vt).trend.currentAttemptsPassing}/${e(vt).trend.currentAttemptsTotal}, p=${e(vt).trend.pValue.toPrecision(2)}`,()=>Qs(e(vt).trend.direction)]),g(ue,ae)};O(qt,ue=>{e(vt).trend&&ue(Ir)})}u(hr),u(Pe);var ln=m(Pe,2);{var Fr=ue=>{var ae=Ls();g(ue,ae)},$n=ue=>{var ae=As();ir(ae,23,()=>e(He),Ze=>Ze.id,(Ze,y,Et)=>{const Ue=k(()=>En(e(y).conversation_ui,e(y))),pt=k(()=>e(_t).has(e(y).id));var Kt=Mi(),Cr=f(Kt),Be=f(Cr),Tt=f(Be);{var ze=ne=>{var Ee=Ci(),_e=f(Ee);{var ht=H=>{Ut(H,{icon:"mdi:check",width:20,height:20,class:"text-rc-green-200"})},lt=k(()=>e(rr).has(e(y).id)),Ke=H=>{Ut(H,{icon:"mdi:play",width:20,height:20,class:"text-rc-green-200"})},be=k(()=>e(fr).has(e(y).id)),$t=H=>{Ut(H,{icon:"mdi:play-outline",width:20,height:20,class:"text-rc-green-200"})},fe=k(()=>e(jt).has(e(y).id));O(_e,H=>{e(lt)?H(ht):e(be)?H(Ke,1):e(fe)&&H($t,2)})}u(Ee),g(ne,Ee)},at=ne=>{var Ee=Pi(),_e=Ie(Ee),ht=f(_e);{let fe=k(()=>e(y).pinned?"mdi:pin":"mdi:pin-outline");Ut(ht,{class:"block",get icon(){return e(fe)},width:18,height:18})}u(_e);var lt=m(_e,2),Ke=f(lt);Ut(Ke,{icon:"mdi:content-copy",width:18,height:18}),u(lt);var be=m(lt,2),$t=f(be);Ut($t,{icon:"mdi:trash-can-outline",width:18,height:18}),u(be),J(()=>{$e(_e,1,`icon-btn ${e(y).pinned?"text-rc-green-200":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),Ht(_e,"aria-label",e(y).pinned?"Unpin":"Pin"),Ht(_e,"title",e(y).pinned?"Unpin":"Pin"),_e.inert=e(Ve),_e.disabled=e(pe),lt.inert=e(Ve),lt.disabled=e(pe),be.inert=e(Ve),be.disabled=e(pe)}),Oe("click",_e,async()=>{const fe=!e(y).pinned;i(se,e(se).map(H=>H.id===e(y).id?{...H,pinned:fe}:H),!0),await Mr(sr(e(y).id,{pinned:fe?"TRUE":"FALSE"}))}),Oe("click",lt,()=>da(e(y),e(Et))),Oe("click",be,()=>va(e(y).id)),g(ne,Ee)};O(Tt,ne=>{e(pe)?ne(ze):ne(at,-1)})}u(Be);var ot=m(Be,2),je=f(ot),Le=f(je),Ge=f(Le),gt=f(Ge);or(gt);var it=m(gt,2),Pr=f(it);{let ne=k(()=>e(pt)?"chevron-up":"chevron-down");Vt(Pr,{get name(){return e(ne)},width:20,height:20,class:"block"})}u(it),u(Ge);var Jr=m(Ge,2);{var Qt=ne=>{var Ee=$s(),_e=f(Ee);{var ht=Ke=>{const be=k(()=>gn(e(y).result,e(Qe)));var $t=Li(),fe=Ie($t),H=f(fe);u(fe);var yr=m(fe,2);{var un=nt=>{var Te=mn(),zt=f(Te);u(Te),J(()=>q(zt,`(${e(be).expectedSuccesses??""}/${e(be).expectedRuns??""} expected)`)),g(nt,Te)};O(yr,nt=>{var Te;(Te=e(be))!=null&&Te.showExpected&&nt(un)})}var _r=m(yr,2);{var Ft=nt=>{var Te=Mn(),zt=f(Te);{let Vr=k(()=>e(be).direction==="higher"?"chevron-up":"chevron-down");Vt(zt,{get name(){return e(Vr)},width:16,height:16,class:"inline-block align-text-bottom"})}var br=m(zt),Hr=f(br,!0);u(br),u(Te),J(()=>{$e(Te,1,`ml-2 whitespace-nowrap font-semibold ${e(be).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55"),q(Hr,e(be).comparisonLabel)}),g(nt,Te)};O(_r,nt=>{var Te;(Te=e(be))!=null&&Te.comparisonLabel&&nt(Ft)})}J(nt=>{$e(fe,1,nt,"svelte-rdft55"),q(H,`${e(y).result.successes??""}/${e(y).result.total_runs??""}`)},[()=>Ur(on(e(y).result))]),g(Ke,$t)},lt=Ke=>{var be=Es();g(Ke,be)};O(_e,Ke=>{e(y).result?Ke(ht):Ke(lt,-1)})}u(Ee),g(ne,Ee)};O(Jr,ne=>{e(pt)||ne(Qt)})}u(Le);var ye=m(Le,2);{var mt=ne=>{var Ee=Oi(),_e=Ie(Ee),ht=f(_e);{var lt=ee=>{var X=Ei(),te=f(X);u(X),J(U=>q(te,`Invalid test: expected must be the last ${U??""}`),[()=>kr(e(y).step)?"“Agent: …” block":e(y).evaluation_mode==="json-deep-equal"?"“Step: …” block with valid JSON":"“Step: …” block"]),g(ee,X)};O(ht,ee=>{e(Ue).valid||ee(lt)})}var Ke=m(ht,2);or(Ke);var be=m(Ke,2);{var $t=ee=>{var X=Ri(),te=f(X);ir(te,21,()=>Or,ls,(ct,Wt)=>{var Rt=$i(),Xt=f(Rt,!0);u(Rt);var Lr={};J(()=>{q(Xt,e(Wt).label),Lr!==(Lr=e(Wt).value)&&(Rt.value=(Rt.__value=e(Wt).value)??"")}),g(ct,Rt)}),u(te);var U=m(te,2);or(U),u(X),Oe("change",te,()=>sr(e(y).id,{assertion_type:e(y).assertion_type})),Pa(te,()=>e(y).assertion_type,ct=>e(y).assertion_type=ct),Oe("change",U,()=>sr(e(y).id,{assertion_value:e(y).assertion_value})),jn(U,()=>e(y).assertion_value,ct=>e(y).assertion_value=ct),g(ee,X)};O(be,ee=>{e(y).evaluation_mode!=="json-deep-equal"&&ee($t)})}var fe=m(be,2),H=f(fe);ut(H,{variant:"secondary",size:"small",get inert(){return e(Ve)},get disabled(){return e(pe)},onclick:()=>ma(e(y)),children:(ee,X)=>{Re();var te=et("Edit context");g(ee,te)},$$slots:{default:!0}});var yr=m(H,2);{var un=ee=>{var X=Ai(),te=f(X);or(te),Re(2),u(X),J(()=>te.disabled=e(pe)),Oe("change",te,()=>Mr(sr(e(y).id,{case_sensitive:e(y).case_sensitive}))),La(te,()=>e(y).case_sensitive,U=>e(y).case_sensitive=U),g(ee,X)};O(yr,ee=>{e(y).evaluation_mode==="json-deep-equal"&&ee(un)})}u(fe);var _r=m(fe,2);{let ee=k(()=>e(Ue).highlight?[{startLine:e(Ue).highlight.startLine,endLine:e(Ue).highlight.endLine,className:e(y).evaluation_mode==="json-deep-equal"?"test-expected-json-output":"test-expected-output"}]:void 0);ks(_r,{get value(){return e(y).conversation_ui},onChange:X=>e(y).conversation_ui=X,onBlur:async X=>{if(!e(n))return;const te=En(X,e(y));e(y).conversation=te.conversation,e(y).expected_output=te.expected,te.valid&&e(y).evaluation_mode==="json-deep-equal"&&(e(y).conversation_ui=an(e(y).conversation,e(y).expected_output,e(y).step,!0)),await Mr(sr(e(y).id,{conversation:e(y).conversation,expected_output:e(y).expected_output}))},get highlights(){return e(ee)},language:"markdown",height:220})}u(_e);var Ft=m(_e,2),nt=f(Ft),Te=f(nt);{let ee=k(()=>e(pe)||!e(Ue).valid),X=k(()=>e(Ue).valid?"Run":`Expected must be the last ${kr(e(y).step)?"Agent":"Step"} block${e(y).evaluation_mode==="json-deep-equal"?" with valid JSON":""}`);ut(Te,{size:"small",get inert(){return e(Ve)},get disabled(){return e(ee)},get title(){return e(X)},onclick:()=>Xs(e(y).id),children:(te,U)=>{Re();var ct=et("▶ Run");g(te,ct)},$$slots:{default:!0}})}var zt=m(Te,2);{var br=ee=>{const X=k(()=>gn(e(y).result,e(Qe)));var te=ji(),U=f(te),ct=f(U);u(U);var Wt=m(U,2);{var Rt=xt=>{var Je=mn(),wr=f(Je);u(Je),J(()=>q(wr,`(${e(X).expectedSuccesses??""}/${e(X).expectedRuns??""} expected)`)),g(xt,Je)};O(Wt,xt=>{var Je;(Je=e(X))!=null&&Je.showExpected&&xt(Rt)})}var Xt=m(Wt,2);{var Lr=xt=>{var Je=Mn(),wr=f(Je);{let fn=k(()=>e(X).direction==="higher"?"chevron-up":"chevron-down");Vt(wr,{get name(){return e(fn)},width:18,height:18,class:"inline-block align-text-bottom"})}var dn=m(wr),Rn=f(dn,!0);u(dn),u(Je),J(()=>{$e(Je,1,`ml-2 whitespace-nowrap font-semibold ${e(X).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55"),q(Rn,e(X).comparisonLabel)}),g(xt,Je)};O(Xt,xt=>{var Je;(Je=e(X))!=null&&Je.comparisonLabel&&xt(Lr)})}u(te),J(xt=>{$e(U,1,xt,"svelte-rdft55"),q(ct,`${e(y).result.successes??""}/${e(y).result.total_runs??""}`)},[()=>Ur(on(e(y).result))]),g(ee,te)};O(zt,ee=>{e(y).result&&ee(br)})}u(nt);var Hr=m(nt,2);{var Vr=ee=>{var X=Ni();ir(X,21,()=>e(y).result.runs,te=>te.index,(te,U,ct,Wt)=>{var Rt=Rs(),Xt=f(Rt),Lr=f(Xt,!0);u(Xt);var xt=m(Xt,2),Je=f(xt),wr=f(Je);{var dn=Jt=>{Vt(Jt,{name:"checkmark",width:20,height:20,class:"shrink-0 self-end"})},Rn=Jt=>{Vt(Jt,{name:"close",width:18,height:18,class:"shrink-0 scale-110 self-start"})};O(wr,Jt=>{e(U).success?Jt(dn):Jt(Rn,-1)})}var fn=m(wr,2),ba=f(fn,!0);u(fn),u(Je);var wa=m(Je,2);{let Jt=k(()=>e(y).scenario||"Test"),An=k(()=>!e(U).text.trim()),ka=k(()=>e(y).evaluation_mode!=="json-deep-equal");Is(wa,{get scenario(){return e(Jt)},get runIndex(){return e(U).index},get links(){return e(U).links},get variants(){return e(y).result.runs},get region(){return e(l)},get actionsDisabled(){return e(pe)},get actionsInert(){return e(Ve)},get addTestDisabled(){return e(An)},get showAnalyze(){return e(ka)},get analyzeDisabled(){return e(tr)},onAddTest:()=>Yn(e(y),e(U).text,e(Et)),onAnalyze:()=>jr(e(y).scenario||"Test",e(U).index,e(U).links.renderedPrompt)})}u(xt),u(Rt),J((Jt,An)=>{$e(Xt,1,`w-full whitespace-pre-wrap break-words rounded-lg px-3 py-2 text-rc-gray-100 ${e(y).evaluation_mode==="json-deep-equal"?"font-mono text-sm leading-6":""} ${e(U).success?"bg-rc-green-700 backdrop-blur-md":""}`,"svelte-rdft55"),Dn(Xt,e(U).success?"":"background-color: rgb(156 80 80)"),q(Lr,Jt),$e(xt,1,`flex w-full flex-col gap-x-4 whitespace-pre-wrap break-words ${e(U).success?"text-rc-green-200":"text-rc-red-800"}`,"svelte-rdft55"),q(ba,An)},[()=>ns(e(U).text,e(U).errors,e(y).evaluation_mode==="json-deep-equal"),()=>e(U).success?"Pass":Zn(e(U).evaluation)||(e(U).errors||"").split(/\r?\n/)[0]||"Fail"]),g(te,Rt)}),u(X),g(ee,X)};O(Hr,ee=>{e(y).result&&ee(Vr)})}u(Ft),Oe("change",Ke,()=>sr(e(y).id,{author:e(y).author||""})),jn(Ke,()=>e(y).author,ee=>e(y).author=ee),g(ne,Ee)};O(ye,ne=>{e(pt)&&ne(mt)})}u(je),u(ot),u(Cr),u(Kt),J(()=>{Ht(Kt,"data-id",e(y).id),$e(je,1,`left-details-bg flex flex-col rounded border ${e(Ue).valid?"border-rc-gray-700":"border-rc-red-600"}`,"svelte-rdft55"),$e(Le,1,`left-details-bg sticky top-0 z-10 rounded-t px-2 pt-2 ${e(pt)?"border-b border-rc-gray-700 pb-1":"pb-2"}`,"svelte-rdft55"),Ht(it,"aria-label",e(pt)?"Collapse test":"Expand test"),Ht(it,"title",e(pt)?"Collapse":"Expand"),it.inert=e(Ve)}),Oe("change",gt,()=>sr(e(y).id,{scenario:e(y).scenario})),jn(gt,()=>e(y).scenario,ne=>e(y).scenario=ne),Oe("click",it,()=>pa(e(y).id)),g(Ze,Kt)}),u(ae),g(ue,ae)};O(ln,ue=>{e(He).length===0?ue(Fr):ue($n,-1)})}u(me);var cn=m(me,2);{var zr=ue=>{const ae=k(()=>e(se).find(Ze=>Ze.id===e(A)));{const Ze=Et=>{var Ue=qi(),pt=f(Ue);Os(pt,{get value(){return e(F)},ariaLabel:"Test context tabs",onChange:({value:ze})=>i(F,ze,!0),children:(ze,at)=>{var ot=Di(),je=Ie(ot);Wr(je,{value:"context",class:"px-3",children:(Ge,gt)=>{Re();var it=et("Context");g(Ge,it)},$$slots:{default:!0}});var Le=m(je,2);Wr(Le,{value:"mocks",class:"px-3",children:(Ge,gt)=>{Re();var it=et("Mocks");g(Ge,it)},$$slots:{default:!0}}),g(ze,ot)},$$slots:{default:!0}});var Kt=m(pt,2),Cr=f(Kt);{var Be=ze=>{var at=yn(),ot=Ie(at);is(ot,()=>`${e(A)}:context`,je=>{{let Le=k(()=>`editorState/context/${e(n)}/tests/${e(A)}`);us(je,{class:"h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl",get context(){return e($)},suppressErrors:!0,defaultFormat:"yaml",hideHeader:!0,get editorStateKey(){return e(Le)},onContextChanged:Ge=>i($,Ge,!0)})}}),g(ze,at)},Tt=ze=>{var at=yn(),ot=Ie(at);is(ot,()=>`${e(A)}:mocks`,je=>{{let Le=k(()=>`editorState/mocks/${e(n)}/tests/${e(A)}`);us(je,{class:"h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl",get context(){return e(P)},suppressErrors:!0,defaultFormat:"yaml",hideHeader:!0,get editorStateKey(){return e(Le)},onContextChanged:Ge=>{i(P,Ge,!0),i(j,!0)}})}}),g(ze,at)};O(Cr,ze=>{e(F)==="context"?ze(Be):ze(Tt,-1)})}u(Kt),u(Ue),g(Et,Ue)};let y=k(()=>{var Et;return`Test context — ${((Et=e(ae))==null?void 0:Et.scenario)||"Test"}`});Ra(ue,{get title(){return e(y)},onClose:()=>void ha(),children:Ze})}};O(cn,ue=>{e(A)&&ue(zr)})}J(()=>{q(kt,`Pinned: ${e(nn)??""}/${e(He).length??""}`),q(xr,`${e(vt).casesPassing??""}/${e(vt).casesTotal??""} cases passing`),q(ar,`${e(vt).attemptsPassing??""}/${e(vt).attemptsTotal??""} attempts passing`)}),g(K,Se)}}),u(gr),u(c),g(a,c)};O(xa,a=>{e(Nt)&&e(Fe)?a(ya):e(Nt)&&a(_a,1)})}g(t,ss),kn()}js(["click","change"]);export{pl as component};
|
|
11
|
+
`).trimEnd();return{valid:Y,expected:Gt,conversation:de,highlight:{startLine:c.evaluation_mode==="json-deep-equal"?Math.min(_.endLine,_.startLine+1):_.startLine,endLine:_.endLine}}}function on(a){return a.total_runs>0&&a.successes<a.total_runs?"text-rc-red-600":"text-rc-gray-200"}async function sr(a,c){await Oe.tests.patchTest.mutate({agent:e(n),region:e(l),id:a,patch:c})}async function va(a){await Oe.tests.deleteTest.mutate({agent:e(n),region:e(l),id:a});try{await Sr(a,!1)}catch(c){console.error(c)}await vr()}function Sr(a,c){if(!(e(n)??"").trim())return Promise.resolve();const p=String(a??"").trim();if(!p)return Promise.resolve();const h=new Set(e(Ye)),b=h.has(p);if(c===b)return Promise.resolve();c?h.add(p):h.delete(p);const _=Array.from(h);return i(Ye,_,!0),Z(),Promise.resolve()}function pa(a){Sr(a,!e(_t).has(a)).catch(console.error)}function ga(){return!(e(n)??"").trim()||!e(nr)||(i(Ye,[],!0),Z()),Promise.resolve()}function ma(a){e(n)&&(i(A,a.id,!0),i(F,"context"),i($,w(sn(a.context)),!0),i(P,w(sn(a.mocks)),!0),i(j,!1),i(G,a.hasMocks,!0))}async function ha(){const a=e(A);if(!a||!e(n)){i(A,null),i(F,"context"),i(j,!1),i(G,!1);return}const c=w(e($)),d=w(e(P)),p=e(G)||e(j);i(A,null),i(F,"context"),i(j,!1),i(G,!1),i(se,e(se).map(h=>{if(h.id!==a)return h;const b={...h,context:JSON.stringify(c)};return p&&(b.mocks=JSON.stringify(d),b.hasMocks=!0),b}),!0);try{const h={context:c};p&&(h.mocks=d),await Mr(sr(a,h))}catch(h){console.error(h),await vr()}}bn(()=>{W&&clearInterval(W)});var ss=Ji();Pa("rdft55",a=>{var c=ri();g(a,c)});var as=Ie(ss);Qr(as,{title:"Test history",class:"!w-[95vw] !max-w-[90rem]",get open(){return e(he)},set open(d){i(he,d,!0)},children:d=>{var p=vi(),h=f(p),b=f(h);{var _=Y=>{var de=Cs();g(Y,de)},M=Y=>{var de=Ps(),xe=f(de,!0);u(de),J(()=>q(xe,e(ft))),g(Y,de)},D=Y=>{var de=ni();g(Y,de)},le=Y=>{var de=oi(),xe=f(de);{var tt=wt=>{var ke=si(),gr=f(ke,!0);u(ke),J(()=>q(gr,e(ft))),g(wt,ke)};N(xe,wt=>{e(ft)&&wt(tt)})}var Lt=m(xe,2);ir(Lt,17,()=>e(we),wt=>wt.timestamp,(wt,ke,gr,qr)=>{var K=ai(),ce=f(K),Se=f(ce),me=f(Se,!0);u(Se);var Pe=m(Se,2),rt=f(Pe,!0);u(Pe),u(ce);var Mt=m(ce,2),mr=f(Mt);u(Mt);var hr=m(Mt,2),Dt=f(hr),kt=f(Dt,!0);u(Dt);var St=m(Dt,2),xr=f(St);u(St),u(hr),u(K),J((z,ar,qt)=>{$e(K,1,`w-full rounded border px-3 py-2 text-left transition-colors ${e(De)===e(ke).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(me,z),q(rt,ar),q(mr,`${e(ke).testCount??""}
|
|
12
|
+
${e(ke).testCount===1?"test":"tests"} · ${qt??""}`),$e(Dt,1,Ur(e(ke).passed?"text-rc-green-200":"text-rc-red-600")),q(kt,e(ke).passed?"Success":"Failure"),q(xr,`${e(ke).successRatePercent??""}% (${e(ke).successRate??""})`)},[()=>aa(e(ke).timestamp),()=>oa(e(ke).timestamp),()=>Kn(e(ke).runScope)]),Ne("click",K,()=>void Wn(e(ke).timestamp,{preserveCachedDetail:!0})),g(wt,K)}),u(de),g(Y,de)};N(b,Y=>{e(Yr)?Y(_):e(ft)&&e(we).length===0?Y(M,1):e(we).length===0?Y(D,2):Y(le,-1)})}u(h);var re=m(h,2),Nt=f(re);{var Tr=Y=>{var de=Cs();g(Y,de)},bt=Y=>{var de=Ps(),xe=f(de,!0);u(de),J(()=>q(xe,e(At))),g(Y,de)},Gt=Y=>{var de=fi(),xe=f(de),tt=f(xe),Lt=f(tt),wt=m(f(Lt),2);pn(wt,{type:"number",class:"w-16",get value(){return e(st).runConfig.repeats},disabled:!0}),u(Lt);var ke=m(Lt,2),gr=m(f(ke),2);pn(gr,{type:"number",class:"w-16",get value(){return e(st).runConfig.concurrency},disabled:!0}),u(ke);var qr=m(ke,2),K=f(qr,!0);u(qr),u(tt),u(xe);var ce=m(xe,2),Se=m(f(ce),2),me=f(Se),Pe=f(me);u(me);var rt=m(me,2),Mt=f(rt);u(rt),u(Se),u(ce);var mr=m(ce,2);{var hr=kt=>{var St=Ls();g(kt,St)},Dt=kt=>{var St=As();ir(St,21,()=>e(Ar),xr=>xr.id,(xr,z)=>{const ar=k(()=>En(e(z).conversation_ui,e(z))),qt=k(()=>e(er).has(e(z).id));var Ir=di(),ln=f(Ir),Fr=f(ln),$n=f(Fr);{let Be=k(()=>`block ${e(z).pinned?"text-rc-green-200":"text-gray-400"}`),Tt=k(()=>e(z).pinned?"mdi:pin":"mdi:pin-outline");Ut($n,{get class(){return e(Be)},get icon(){return e(Tt)},width:18,height:18})}u(Fr);var cn=m(Fr,2),zr=f(cn),ue=f(zr),ae=f(ue),Ze=f(ae);or(Ze);var y=m(Ze,2),Et=f(y);{let Be=k(()=>e(qt)?"chevron-up":"chevron-down");Vt(Et,{get name(){return e(Be)},width:20,height:20,class:"block"})}u(y),u(ae);var Ue=m(ae,2);{var pt=Be=>{var Tt=$s(),ze=f(Tt);{var at=je=>{const Le=k(()=>gn(e(z).result,e(st).runConfig.repeats));var Ge=ii(),gt=Ie(Ge),it=f(gt);u(gt);var Pr=m(gt,2);{var Jr=Qt=>{var ye=mn(),mt=f(ye);u(ye),J(()=>q(mt,`(${e(Le).expectedSuccesses??""}/${e(Le).expectedRuns??""} expected)`)),g(Qt,ye)};N(Pr,Qt=>{var ye;(ye=e(Le))!=null&&ye.showExpected&&Qt(Jr)})}J(Qt=>{$e(gt,1,Qt,"svelte-rdft55"),q(it,`${e(z).result.successes??""}/${e(z).result.total_runs??""}`)},[()=>Ur(on(e(z).result))]),g(je,Ge)},ot=je=>{var Le=Es();g(je,Le)};N(ze,je=>{e(z).result?je(at):je(ot,-1)})}u(Tt),g(Be,Tt)};N(Ue,Be=>{e(qt)||Be(pt)})}u(ue);var Kt=m(ue,2);{var Cr=Be=>{var Tt=ui(),ze=Ie(Tt),at=f(ze);or(at);var ot=m(at,2);{var je=ye=>{var mt=li(),ne=f(mt);or(ne);var Ee=m(ne,2);or(Ee),u(mt),J(_e=>{vn(ne,_e),vn(Ee,e(z).assertion_value)},[()=>sa(e(z).assertion_type)]),g(ye,mt)};N(ot,ye=>{e(z).evaluation_mode!=="json-deep-equal"&&ye(je)})}var Le=m(ot,2),Ge=f(Le);ut(Ge,{variant:"secondary",size:"small",onclick:()=>Zr(`Test context — ${e(z).scenario||"Test"}`,sn(e(z).context)),children:(ye,mt)=>{Re();var ne=et("View context");g(ye,ne)},$$slots:{default:!0}});var gt=m(Ge,2);ut(gt,{variant:"secondary",size:"small",onclick:()=>Zr(`Test mocks — ${e(z).scenario||"Test"}`,sn(e(z).mocks)),children:(ye,mt)=>{Re();var ne=et("View mocks");g(ye,ne)},$$slots:{default:!0}}),u(Le);var it=m(Le,2);{let ye=k(()=>e(ar).highlight?[{startLine:e(ar).highlight.startLine,endLine:e(ar).highlight.endLine,className:e(z).evaluation_mode==="json-deep-equal"?"test-expected-json-output":"test-expected-output"}]:void 0);ks(it,{get value(){return e(z).conversation_ui},get highlights(){return e(ye)},language:"markdown",height:220,readOnly:!0})}u(ze);var Pr=m(ze,2),Jr=f(Pr);{var Qt=ye=>{const mt=k(()=>gn(e(z).result,e(st).runConfig.repeats));var ne=ci(),Ee=Ie(ne),_e=f(Ee),ht=f(_e),lt=f(ht);u(ht);var Ke=m(ht,2);{var be=fe=>{var H=mn(),yr=f(H);u(H),J(()=>q(yr,`(${e(mt).expectedSuccesses??""}/${e(mt).expectedRuns??""} expected)`)),g(fe,H)};N(Ke,fe=>{var H;(H=e(mt))!=null&&H.showExpected&&fe(be)})}u(_e),u(Ee);var $t=m(Ee,2);ir($t,21,()=>e(z).result.runs,fe=>fe.index,(fe,H,yr,un)=>{var _r=Rs(),Ft=f(_r),nt=f(Ft,!0);u(Ft);var Te=m(Ft,2),zt=f(Te),br=f(zt);{var Hr=U=>{Vt(U,{name:"checkmark",width:20,height:20,class:"shrink-0 self-end"})},Vr=U=>{Vt(U,{name:"close",width:18,height:18,class:"shrink-0 scale-110 self-start"})};N(br,U=>{e(H).success?U(Hr):U(Vr,-1)})}var ee=m(br,2),X=f(ee,!0);u(ee),u(zt);var te=m(zt,2);{let U=k(()=>e(z).scenario||"Test"),ct=k(()=>!e(H).text.trim()),Wt=k(()=>e(z).evaluation_mode!=="json-deep-equal");Is(te,{get scenario(){return e(U)},get runIndex(){return e(H).index},get links(){return e(H).links},get variants(){return e(z).result.runs},get region(){return e(l)},get actionsDisabled(){return e(pe)},get actionsInert(){return e(Ve)},get addTestDisabled(){return e(ct)},get showAnalyze(){return e(Wt)},get analyzeDisabled(){return e(tr)},onAddTest:()=>Yn(e(z),e(H).text,0),onAnalyze:()=>jr(e(z).scenario||"Test",e(H).index,e(H).links.renderedPrompt)})}u(Te),u(_r),J((U,ct)=>{$e(Ft,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(H).success?"bg-rc-green-700 backdrop-blur-md":""}`,"svelte-rdft55"),Dn(Ft,e(H).success?"":"background-color: rgb(156 80 80)"),q(nt,U),$e(Te,1,`flex w-full flex-col gap-x-4 whitespace-pre-wrap break-words ${e(H).success?"text-rc-green-200":"text-rc-red-800"}`,"svelte-rdft55"),q(X,ct)},[()=>ns(e(H).text,e(H).errors,e(z).evaluation_mode==="json-deep-equal"),()=>e(H).success?"Pass":Zn(e(H).evaluation)||(e(H).errors||"").split(/\r?\n/)[0]||"Fail"]),g(fe,_r)}),u($t),J(fe=>{$e(ht,1,fe,"svelte-rdft55"),q(lt,`${e(z).result.successes??""}/${e(z).result.total_runs??""}`)},[()=>Ur(on(e(z).result))]),g(ye,ne)};N(Jr,ye=>{e(z).result&&ye(Qt)})}u(Pr),J(()=>vn(at,e(z).author||"")),g(Be,Tt)};N(Kt,Be=>{e(qt)&&Be(Cr)})}u(zr),u(cn),u(ln),u(Ir),J(()=>{Ht(Ir,"data-id",e(z).id),$e(zr,1,`left-details-bg flex flex-col rounded border ${e(ar).valid?"border-rc-gray-700":"border-rc-red-600"}`,"svelte-rdft55"),$e(ue,1,`left-details-bg rounded-t px-2 pt-2 ${e(qt)?"border-b border-rc-gray-700 pb-1":"pb-2"}`,"svelte-rdft55"),vn(Ze,e(z).scenario),Ht(y,"aria-label",e(qt)?"Collapse test":"Expand test"),Ht(y,"title",e(qt)?"Collapse":"Expand")}),Ne("click",y,()=>ia(e(z).id)),g(xr,Ir)}),u(St),g(kt,St)};N(mr,kt=>{e(Ar).length===0?kt(hr):kt(Dt,-1)})}u(de),J(kt=>{q(K,kt),q(Pe,`${e(ur).casesPassing??""}/${e(ur).casesTotal??""} cases passing`),q(Mt,`${e(ur).attemptsPassing??""}/${e(ur).attemptsTotal??""} attempts
|
|
13
|
+
passing`)},[()=>Kn(e(st).runScope)]),g(Y,de)};N(Nt,Y=>{e(Rr)?Y(Tr):e(At)&&!e(st)?Y(bt,1):e(st)&&Y(Gt,2)})}u(re),u(p),g(d,p)},footer:d=>{ut(d,{variant:"outlined",size:"small",onclick:()=>i(he,!1),children:(p,h)=>{Re();var b=et("Close");g(p,b)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var os=m(as,2);Qr(os,{get title(){return e(O)},class:"!w-[80vw] !max-w-5xl",get open(){return e(ve)},set open(d){i(ve,d,!0)},children:d=>{var p=pi(),h=f(p,!0);u(p),J(()=>q(h,e(Q)||"—")),g(d,p)},footer:d=>{ut(d,{variant:"outlined",size:"small",onclick:()=>i(ve,!1),children:(p,h)=>{Re();var b=et("Close");g(p,b)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var xa=m(os,2);{var ya=a=>{var c=hi(),d=f(c),p=f(d),h=f(p,!0);u(p);var b=m(p,2);{var _=D=>{var le=gi(),re=m(Ie(le),2);Ht(re,"href",x),g(D,le)},M=D=>{var le=mi(),re=Ie(le),Nt=f(re,!0);u(re);var Tr=m(re,2);ut(Tr,{class:"mt-4",variant:"secondary",onclick:()=>void vr(),children:(bt,Gt)=>{Re();var Y=et("Retry");g(bt,Y)},$$slots:{default:!0}}),J(()=>q(Nt,e(Fe).message)),g(D,le)};N(b,D=>{e(Fe).kind==="legacy"?D(_):D(M,-1)})}u(d),u(c),J(()=>q(h,e(Fe).kind==="legacy"?"This test suite requires migration":"Tests could not be loaded")),g(a,c)},_a=a=>{var c=zi(),d=f(c);{var p=K=>{var ce=yi(),Se=m(f(ce),2);ir(Se,21,()=>e(tn),ls,(me,Pe)=>{var rt=xi(),Mt=f(rt);u(rt),J(()=>q(Mt,`${e(Pe).step??""} (${e(Pe).count??""})`)),g(me,rt)}),u(Se),u(ce),g(K,ce)};N(d,K=>{e(tn).length>0&&K(p)})}var h=m(d,2),b=f(h),_=f(b),M=m(f(_),2);pn(M,{type:"number",min:"1",max:"500",class:"w-16",onchange:()=>{i(S,I(+e(S)||1,1,500),!0),Z()},get value(){return e(S)},set value(K){i(S,K,!0)}}),u(_);var D=m(_,2),le=m(f(D),2);pn(le,{type:"number",min:"1",max:"75",class:"w-16",onchange:()=>{i(E,I(+e(E)||75,1,75),!0),Z()},get value(){return e(E)},set value(K){i(E,K,!0)}}),u(D),u(b);var re=m(b,2),Nt=f(re);{var Tr=K=>{var ce=_i(),Se=f(ce),me=f(Se);u(Se);var Pe=m(Se,2);ut(Pe,{variant:"secondary",onclick:Ys,children:(rt,Mt)=>{Re();var mr=et("Cancel");g(rt,mr)},$$slots:{default:!0}}),u(ce),J(()=>q(me,`Running… ${e(qe)??""}/${e(ie)??""}`)),g(K,ce)};N(Nt,K=>{e(pe)&&K(Tr)})}var bt=m(Nt,2),Gt=f(bt);{let K=k(()=>e(pe)||!e(n));ut(Gt,{variant:"secondary",onclick:ta,get inert(){return e(Ve)},get disabled(){return e(K)},class:"inline-flex items-center gap-1",children:(ce,Se)=>{var me=bi(),Pe=Ie(me);Ut(Pe,{icon:"mdi:plus-thick",width:18,height:18}),Re(),g(ce,me)},$$slots:{default:!0}})}var Y=m(Gt,2);{var de=K=>{var ce=wi();g(K,ce)};N(Y,K=>{e(Ot)&&e(He).length===0&&K(de)})}u(bt);var xe=m(bt,2);{let K=k(()=>e(pe)||e(He).length===0||e(Dr)&&e(nn)===0);ut(xe,{class:"inline-flex min-w-32 items-center justify-center gap-1 disabled:cursor-not-allowed disabled:opacity-50",get inert(){return e(Ve)},get disabled(){return e(K)},onclick:()=>Ws(e(Dr)?"pinned":"all"),children:(ce,Se)=>{Re();var me=et();J(()=>q(me,`▶ ${e(Dr)?"Run pinned":"Run all"}`)),g(ce,me)},$$slots:{default:!0}})}u(re),u(h);var tt=m(h,2),Lt=f(tt);{let K=k(()=>!e(n));ut(Lt,{variant:"secondary",class:"ml-11 inline-flex min-w-32 items-center justify-center gap-1",get disabled(){return e(K)},onclick:()=>void ca().catch(console.error),children:(ce,Se)=>{var me=ki(),Pe=Ie(me);Ut(Pe,{icon:"mdi:history",width:18,height:18}),Re(),g(ce,me)},$$slots:{default:!0}})}var wt=m(Lt,2);{var ke=K=>{{let ce=k(()=>!e(n));ut(K,{variant:"secondary",class:"inline-flex min-w-32 items-center justify-center gap-1",get inert(){return e(Ve)},get disabled(){return e(ce)},onclick:()=>void ga().catch(console.error),children:(Se,me)=>{var Pe=Si(),rt=Ie(Pe);Vt(rt,{name:"chevron-up",width:16,height:16,class:"block"}),Re(),g(Se,Pe)},$$slots:{default:!0}})}};N(wt,K=>{e(nr)&&K(ke)})}u(tt);var gr=m(tt,2),qr=f(gr);Ra(qr,{class:"relative flex h-full min-w-0 flex-col overflow-hidden !rounded-none p-0",children:(K,ce)=>{var Se=Fi(),me=Ie(Se),Pe=f(me),rt=f(Pe);{var Mt=ue=>{var ae=Ti();g(ue,ae)},mr=ue=>{var ae=Ii(),Ze=f(ae);{let y=k(()=>e(Dr)?"mdi:pin":"mdi:pin-outline");Ut(Ze,{class:"block",get icon(){return e(y)},width:18,height:18})}u(ae),J(()=>{$e(ae,1,`icon-btn justify-self-center ${e(Dr)?"text-rc-green-200":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),ae.inert=e(Ve),ae.disabled=e(pe)||e(He).length===0}),Ne("click",ae,async()=>{await Zs(!e(ea))}),g(ue,ae)};N(rt,ue=>{e(pe)?ue(Mt):ue(mr,-1)})}var hr=m(rt,2),Dt=f(hr),kt=f(Dt);u(Dt);var St=m(Dt,2),xr=f(St);u(St);var z=m(St,2),ar=f(z);u(z);var qt=m(z,2);{var Ir=ue=>{var ae=Mn(),Ze=f(ae);{let Ue=k(()=>e(vt).trend.direction==="higher"?"chevron-up":"chevron-down");Vt(Ze,{get name(){return e(Ue)},width:16,height:16,class:"inline-block align-text-bottom"})}var y=m(Ze),Et=f(y,!0);u(y),u(ae),J((Ue,pt)=>{$e(ae,1,`whitespace-nowrap font-semibold ${e(vt).trend.direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55"),Ht(ae,"title",Ue),q(Et,pt)},[()=>`Previous ${e(vt).trend.previousAttemptsPassing}/${e(vt).trend.previousAttemptsTotal}, current ${e(vt).trend.currentAttemptsPassing}/${e(vt).trend.currentAttemptsTotal}, p=${e(vt).trend.pValue.toPrecision(2)}`,()=>Qs(e(vt).trend.direction)]),g(ue,ae)};N(qt,ue=>{e(vt).trend&&ue(Ir)})}u(hr),u(Pe);var ln=m(Pe,2);{var Fr=ue=>{var ae=Ls();g(ue,ae)},$n=ue=>{var ae=As();ir(ae,23,()=>e(He),Ze=>Ze.id,(Ze,y,Et)=>{const Ue=k(()=>En(e(y).conversation_ui,e(y))),pt=k(()=>e(_t).has(e(y).id));var Kt=Mi(),Cr=f(Kt),Be=f(Cr),Tt=f(Be);{var ze=ne=>{var Ee=Ci(),_e=f(Ee);{var ht=H=>{Ut(H,{icon:"mdi:check",width:20,height:20,class:"text-rc-green-200"})},lt=k(()=>e(rr).has(e(y).id)),Ke=H=>{Ut(H,{icon:"mdi:play",width:20,height:20,class:"text-rc-green-200"})},be=k(()=>e(fr).has(e(y).id)),$t=H=>{Ut(H,{icon:"mdi:play-outline",width:20,height:20,class:"text-rc-green-200"})},fe=k(()=>e(jt).has(e(y).id));N(_e,H=>{e(lt)?H(ht):e(be)?H(Ke,1):e(fe)&&H($t,2)})}u(Ee),g(ne,Ee)},at=ne=>{var Ee=Pi(),_e=Ie(Ee),ht=f(_e);{let fe=k(()=>e(y).pinned?"mdi:pin":"mdi:pin-outline");Ut(ht,{class:"block",get icon(){return e(fe)},width:18,height:18})}u(_e);var lt=m(_e,2),Ke=f(lt);Ut(Ke,{icon:"mdi:content-copy",width:18,height:18}),u(lt);var be=m(lt,2),$t=f(be);Ut($t,{icon:"mdi:trash-can-outline",width:18,height:18}),u(be),J(()=>{$e(_e,1,`icon-btn ${e(y).pinned?"text-rc-green-200":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),Ht(_e,"aria-label",e(y).pinned?"Unpin":"Pin"),Ht(_e,"title",e(y).pinned?"Unpin":"Pin"),_e.inert=e(Ve),_e.disabled=e(pe),lt.inert=e(Ve),lt.disabled=e(pe),be.inert=e(Ve),be.disabled=e(pe)}),Ne("click",_e,async()=>{const fe=!e(y).pinned;i(se,e(se).map(H=>H.id===e(y).id?{...H,pinned:fe}:H),!0),await Mr(sr(e(y).id,{pinned:fe?"TRUE":"FALSE"}))}),Ne("click",lt,()=>da(e(y),e(Et))),Ne("click",be,()=>va(e(y).id)),g(ne,Ee)};N(Tt,ne=>{e(pe)?ne(ze):ne(at,-1)})}u(Be);var ot=m(Be,2),je=f(ot),Le=f(je),Ge=f(Le),gt=f(Ge);or(gt);var it=m(gt,2),Pr=f(it);{let ne=k(()=>e(pt)?"chevron-up":"chevron-down");Vt(Pr,{get name(){return e(ne)},width:20,height:20,class:"block"})}u(it),u(Ge);var Jr=m(Ge,2);{var Qt=ne=>{var Ee=$s(),_e=f(Ee);{var ht=Ke=>{const be=k(()=>gn(e(y).result,e(Qe)));var $t=Li(),fe=Ie($t),H=f(fe);u(fe);var yr=m(fe,2);{var un=nt=>{var Te=mn(),zt=f(Te);u(Te),J(()=>q(zt,`(${e(be).expectedSuccesses??""}/${e(be).expectedRuns??""} expected)`)),g(nt,Te)};N(yr,nt=>{var Te;(Te=e(be))!=null&&Te.showExpected&&nt(un)})}var _r=m(yr,2);{var Ft=nt=>{var Te=Mn(),zt=f(Te);{let Vr=k(()=>e(be).direction==="higher"?"chevron-up":"chevron-down");Vt(zt,{get name(){return e(Vr)},width:16,height:16,class:"inline-block align-text-bottom"})}var br=m(zt),Hr=f(br,!0);u(br),u(Te),J(()=>{$e(Te,1,`ml-2 whitespace-nowrap font-semibold ${e(be).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55"),q(Hr,e(be).comparisonLabel)}),g(nt,Te)};N(_r,nt=>{var Te;(Te=e(be))!=null&&Te.comparisonLabel&&nt(Ft)})}J(nt=>{$e(fe,1,nt,"svelte-rdft55"),q(H,`${e(y).result.successes??""}/${e(y).result.total_runs??""}`)},[()=>Ur(on(e(y).result))]),g(Ke,$t)},lt=Ke=>{var be=Es();g(Ke,be)};N(_e,Ke=>{e(y).result?Ke(ht):Ke(lt,-1)})}u(Ee),g(ne,Ee)};N(Jr,ne=>{e(pt)||ne(Qt)})}u(Le);var ye=m(Le,2);{var mt=ne=>{var Ee=Ni(),_e=Ie(Ee),ht=f(_e);{var lt=ee=>{var X=Ei(),te=f(X);u(X),J(U=>q(te,`Invalid test: expected must be the last ${U??""}`),[()=>kr(e(y).step)?"“Agent: …” block":e(y).evaluation_mode==="json-deep-equal"?"“Step: …” block with valid JSON":"“Step: …” block"]),g(ee,X)};N(ht,ee=>{e(Ue).valid||ee(lt)})}var Ke=m(ht,2);or(Ke);var be=m(Ke,2);{var $t=ee=>{var X=Ri(),te=f(X);ir(te,21,()=>Nr,ls,(ct,Wt)=>{var Rt=$i(),Xt=f(Rt,!0);u(Rt);var Lr={};J(()=>{q(Xt,e(Wt).label),Lr!==(Lr=e(Wt).value)&&(Rt.value=(Rt.__value=e(Wt).value)??"")}),g(ct,Rt)}),u(te);var U=m(te,2);or(U),u(X),Ne("change",te,()=>sr(e(y).id,{assertion_type:e(y).assertion_type})),La(te,()=>e(y).assertion_type,ct=>e(y).assertion_type=ct),Ne("change",U,()=>sr(e(y).id,{assertion_value:e(y).assertion_value})),jn(U,()=>e(y).assertion_value,ct=>e(y).assertion_value=ct),g(ee,X)};N(be,ee=>{e(y).evaluation_mode!=="json-deep-equal"&&ee($t)})}var fe=m(be,2),H=f(fe);ut(H,{variant:"secondary",size:"small",get inert(){return e(Ve)},get disabled(){return e(pe)},onclick:()=>ma(e(y)),children:(ee,X)=>{Re();var te=et("Edit context");g(ee,te)},$$slots:{default:!0}});var yr=m(H,2);{var un=ee=>{var X=Ai(),te=f(X);or(te),Re(2),u(X),J(()=>te.disabled=e(pe)),Ne("change",te,()=>Mr(sr(e(y).id,{case_sensitive:e(y).case_sensitive}))),Ea(te,()=>e(y).case_sensitive,U=>e(y).case_sensitive=U),g(ee,X)};N(yr,ee=>{e(y).evaluation_mode==="json-deep-equal"&&ee(un)})}u(fe);var _r=m(fe,2);{let ee=k(()=>e(Ue).highlight?[{startLine:e(Ue).highlight.startLine,endLine:e(Ue).highlight.endLine,className:e(y).evaluation_mode==="json-deep-equal"?"test-expected-json-output":"test-expected-output"}]:void 0);ks(_r,{get value(){return e(y).conversation_ui},onChange:X=>e(y).conversation_ui=X,onBlur:async X=>{if(!e(n))return;const te=En(X,e(y));e(y).conversation=te.conversation,e(y).expected_output=te.expected,te.valid&&e(y).evaluation_mode==="json-deep-equal"&&(e(y).conversation_ui=an(e(y).conversation,e(y).expected_output,e(y).step,!0)),await Mr(sr(e(y).id,{conversation:e(y).conversation,expected_output:e(y).expected_output}))},get highlights(){return e(ee)},language:"markdown",height:220})}u(_e);var Ft=m(_e,2),nt=f(Ft),Te=f(nt);{let ee=k(()=>e(pe)||!e(Ue).valid),X=k(()=>e(Ue).valid?"Run":`Expected must be the last ${kr(e(y).step)?"Agent":"Step"} block${e(y).evaluation_mode==="json-deep-equal"?" with valid JSON":""}`);ut(Te,{size:"small",get inert(){return e(Ve)},get disabled(){return e(ee)},get title(){return e(X)},onclick:()=>Xs(e(y).id),children:(te,U)=>{Re();var ct=et("▶ Run");g(te,ct)},$$slots:{default:!0}})}var zt=m(Te,2);{var br=ee=>{const X=k(()=>gn(e(y).result,e(Qe)));var te=ji(),U=f(te),ct=f(U);u(U);var Wt=m(U,2);{var Rt=xt=>{var Je=mn(),wr=f(Je);u(Je),J(()=>q(wr,`(${e(X).expectedSuccesses??""}/${e(X).expectedRuns??""} expected)`)),g(xt,Je)};N(Wt,xt=>{var Je;(Je=e(X))!=null&&Je.showExpected&&xt(Rt)})}var Xt=m(Wt,2);{var Lr=xt=>{var Je=Mn(),wr=f(Je);{let fn=k(()=>e(X).direction==="higher"?"chevron-up":"chevron-down");Vt(wr,{get name(){return e(fn)},width:18,height:18,class:"inline-block align-text-bottom"})}var dn=m(wr),Rn=f(dn,!0);u(dn),u(Je),J(()=>{$e(Je,1,`ml-2 whitespace-nowrap font-semibold ${e(X).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55"),q(Rn,e(X).comparisonLabel)}),g(xt,Je)};N(Xt,xt=>{var Je;(Je=e(X))!=null&&Je.comparisonLabel&&xt(Lr)})}u(te),J(xt=>{$e(U,1,xt,"svelte-rdft55"),q(ct,`${e(y).result.successes??""}/${e(y).result.total_runs??""}`)},[()=>Ur(on(e(y).result))]),g(ee,te)};N(zt,ee=>{e(y).result&&ee(br)})}u(nt);var Hr=m(nt,2);{var Vr=ee=>{var X=Oi();ir(X,21,()=>e(y).result.runs,te=>te.index,(te,U,ct,Wt)=>{var Rt=Rs(),Xt=f(Rt),Lr=f(Xt,!0);u(Xt);var xt=m(Xt,2),Je=f(xt),wr=f(Je);{var dn=Jt=>{Vt(Jt,{name:"checkmark",width:20,height:20,class:"shrink-0 self-end"})},Rn=Jt=>{Vt(Jt,{name:"close",width:18,height:18,class:"shrink-0 scale-110 self-start"})};N(wr,Jt=>{e(U).success?Jt(dn):Jt(Rn,-1)})}var fn=m(wr,2),ba=f(fn,!0);u(fn),u(Je);var wa=m(Je,2);{let Jt=k(()=>e(y).scenario||"Test"),An=k(()=>!e(U).text.trim()),ka=k(()=>e(y).evaluation_mode!=="json-deep-equal");Is(wa,{get scenario(){return e(Jt)},get runIndex(){return e(U).index},get links(){return e(U).links},get variants(){return e(y).result.runs},get region(){return e(l)},get actionsDisabled(){return e(pe)},get actionsInert(){return e(Ve)},get addTestDisabled(){return e(An)},get showAnalyze(){return e(ka)},get analyzeDisabled(){return e(tr)},onAddTest:()=>Yn(e(y),e(U).text,e(Et)),onAnalyze:()=>jr(e(y).scenario||"Test",e(U).index,e(U).links.renderedPrompt)})}u(xt),u(Rt),J((Jt,An)=>{$e(Xt,1,`w-full whitespace-pre-wrap break-words rounded-lg px-3 py-2 text-rc-gray-100 ${e(y).evaluation_mode==="json-deep-equal"?"font-mono text-sm leading-6":""} ${e(U).success?"bg-rc-green-700 backdrop-blur-md":""}`,"svelte-rdft55"),Dn(Xt,e(U).success?"":"background-color: rgb(156 80 80)"),q(Lr,Jt),$e(xt,1,`flex w-full flex-col gap-x-4 whitespace-pre-wrap break-words ${e(U).success?"text-rc-green-200":"text-rc-red-800"}`,"svelte-rdft55"),q(ba,An)},[()=>ns(e(U).text,e(U).errors,e(y).evaluation_mode==="json-deep-equal"),()=>e(U).success?"Pass":Zn(e(U).evaluation)||(e(U).errors||"").split(/\r?\n/)[0]||"Fail"]),g(te,Rt)}),u(X),g(ee,X)};N(Hr,ee=>{e(y).result&&ee(Vr)})}u(Ft),Ne("change",Ke,()=>sr(e(y).id,{author:e(y).author||""})),jn(Ke,()=>e(y).author,ee=>e(y).author=ee),g(ne,Ee)};N(ye,ne=>{e(pt)&&ne(mt)})}u(je),u(ot),u(Cr),u(Kt),J(()=>{Ht(Kt,"data-id",e(y).id),$e(je,1,`left-details-bg flex flex-col rounded border ${e(Ue).valid?"border-rc-gray-700":"border-rc-red-600"}`,"svelte-rdft55"),$e(Le,1,`left-details-bg sticky top-0 z-10 rounded-t px-2 pt-2 ${e(pt)?"border-b border-rc-gray-700 pb-1":"pb-2"}`,"svelte-rdft55"),Ht(it,"aria-label",e(pt)?"Collapse test":"Expand test"),Ht(it,"title",e(pt)?"Collapse":"Expand"),it.inert=e(Ve)}),Ne("change",gt,()=>sr(e(y).id,{scenario:e(y).scenario})),jn(gt,()=>e(y).scenario,ne=>e(y).scenario=ne),Ne("click",it,()=>pa(e(y).id)),g(Ze,Kt)}),u(ae),g(ue,ae)};N(ln,ue=>{e(He).length===0?ue(Fr):ue($n,-1)})}u(me);var cn=m(me,2);{var zr=ue=>{const ae=k(()=>e(se).find(Ze=>Ze.id===e(A)));{const Ze=Et=>{var Ue=qi(),pt=f(Ue);Ns(pt,{get value(){return e(F)},ariaLabel:"Test context tabs",onChange:({value:ze})=>i(F,ze,!0),children:(ze,at)=>{var ot=Di(),je=Ie(ot);Wr(je,{value:"context",class:"px-3",children:(Ge,gt)=>{Re();var it=et("Context");g(Ge,it)},$$slots:{default:!0}});var Le=m(je,2);Wr(Le,{value:"mocks",class:"px-3",children:(Ge,gt)=>{Re();var it=et("Mocks");g(Ge,it)},$$slots:{default:!0}}),g(ze,ot)},$$slots:{default:!0}});var Kt=m(pt,2),Cr=f(Kt);{var Be=ze=>{var at=yn(),ot=Ie(at);is(ot,()=>`${e(A)}:context`,je=>{{let Le=k(()=>`editorState/context/${e(n)}/tests/${e(A)}`);us(je,{class:"h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl",get context(){return e($)},suppressErrors:!0,defaultFormat:"yaml",hideHeader:!0,get editorStateKey(){return e(Le)},onContextChanged:Ge=>i($,Ge,!0)})}}),g(ze,at)},Tt=ze=>{var at=yn(),ot=Ie(at);is(ot,()=>`${e(A)}:mocks`,je=>{{let Le=k(()=>`editorState/mocks/${e(n)}/tests/${e(A)}`);us(je,{class:"h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl",get context(){return e(P)},suppressErrors:!0,defaultFormat:"yaml",hideHeader:!0,get editorStateKey(){return e(Le)},onContextChanged:Ge=>{i(P,Ge,!0),i(j,!0)}})}}),g(ze,at)};N(Cr,ze=>{e(F)==="context"?ze(Be):ze(Tt,-1)})}u(Kt),u(Ue),g(Et,Ue)};let y=k(()=>{var Et;return`Test context — ${((Et=e(ae))==null?void 0:Et.scenario)||"Test"}`});Aa(ue,{get title(){return e(y)},onClose:()=>void ha(),children:Ze})}};N(cn,ue=>{e(A)&&ue(zr)})}J(()=>{q(kt,`Pinned: ${e(nn)??""}/${e(He).length??""}`),q(xr,`${e(vt).casesPassing??""}/${e(vt).casesTotal??""} cases passing`),q(ar,`${e(vt).attemptsPassing??""}/${e(vt).attemptsTotal??""} attempts passing`)}),g(K,Se)}}),u(gr),u(c),g(a,c)};N(xa,a=>{e(Ot)&&e(Fe)?a(ya):e(Ot)&&a(_a,1)})}g(t,ss),kn()}js(["click","change"]);export{pl 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/DCXjBDmY.js";import"../chunks/i6ygh6h8.js";import{e as l,$ as i}from"../chunks/CEHsomMo.js";import{h as d}from"../chunks/Bv1mNXs0.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
|
|
Binary file
|