@recombine-ai/bosun 0.3.6 → 0.3.9
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.XjKA4GPF.css +1 -0
- package/build/client/_app/immutable/assets/0.XjKA4GPF.css.br +0 -0
- package/build/client/_app/immutable/assets/0.XjKA4GPF.css.gz +0 -0
- package/build/client/_app/immutable/assets/2.DOE0DQ6H.css +1 -0
- package/build/client/_app/immutable/assets/2.DOE0DQ6H.css.br +0 -0
- package/build/client/_app/immutable/assets/2.DOE0DQ6H.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.DlSPCZj0.css +1 -0
- package/build/client/_app/immutable/assets/7.DlSPCZj0.css.br +0 -0
- package/build/client/_app/immutable/assets/7.DlSPCZj0.css.gz +0 -0
- package/build/client/_app/immutable/assets/8.DoLA3Mkm.css +1 -0
- package/build/client/_app/immutable/assets/8.DoLA3Mkm.css.br +0 -0
- package/build/client/_app/immutable/assets/8.DoLA3Mkm.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatStepTrace.NFJFjHv0.css +1 -0
- package/build/client/_app/immutable/assets/ChatStepTrace.NFJFjHv0.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatStepTrace.NFJFjHv0.css.gz +0 -0
- package/build/client/_app/immutable/assets/{Tab.BxaGw9IG.css → Tab.jOjMVh6j.css} +1 -1
- package/build/client/_app/immutable/assets/Tab.jOjMVh6j.css.br +0 -0
- package/build/client/_app/immutable/assets/Tab.jOjMVh6j.css.gz +0 -0
- package/build/client/_app/immutable/chunks/7wcu2ga1.js +1 -0
- package/build/client/_app/immutable/chunks/7wcu2ga1.js.br +0 -0
- package/build/client/_app/immutable/chunks/7wcu2ga1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B3K88SyC.js +1 -0
- package/build/client/_app/immutable/chunks/B3K88SyC.js.br +0 -0
- package/build/client/_app/immutable/chunks/B3K88SyC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D5fGPlBk.js → BGEE3mf3.js} +1 -1
- package/build/client/_app/immutable/chunks/BGEE3mf3.js.br +0 -0
- package/build/client/_app/immutable/chunks/BGEE3mf3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BOQMymse.js → BH7VBnJ7.js} +1 -1
- package/build/client/_app/immutable/chunks/BH7VBnJ7.js.br +0 -0
- package/build/client/_app/immutable/chunks/BH7VBnJ7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BHkx8tAH.js +1 -0
- package/build/client/_app/immutable/chunks/BHkx8tAH.js.br +0 -0
- package/build/client/_app/immutable/chunks/BHkx8tAH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BMwJcaLS.js +1 -0
- package/build/client/_app/immutable/chunks/BMwJcaLS.js.br +2 -0
- package/build/client/_app/immutable/chunks/BMwJcaLS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CfKHaDCm.js → BOrnwyTp.js} +1 -1
- package/build/client/_app/immutable/chunks/BOrnwyTp.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOrnwyTp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BbaH2eDw.js +1 -0
- package/build/client/_app/immutable/chunks/BbaH2eDw.js.br +0 -0
- package/build/client/_app/immutable/chunks/BbaH2eDw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{C769zFCl.js → Bub2VLj9.js} +1 -1
- package/build/client/_app/immutable/chunks/Bub2VLj9.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bub2VLj9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{yOR3vtRx.js → ByppsbS-.js} +1 -1
- package/build/client/_app/immutable/chunks/ByppsbS-.js.br +0 -0
- package/build/client/_app/immutable/chunks/ByppsbS-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C0mQlu7J.js +1 -0
- package/build/client/_app/immutable/chunks/C0mQlu7J.js.br +1 -0
- package/build/client/_app/immutable/chunks/C0mQlu7J.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C0pV4x1v.js +1 -0
- package/build/client/_app/immutable/chunks/C0pV4x1v.js.br +2 -0
- package/build/client/_app/immutable/chunks/C0pV4x1v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C0sQKHpE.js +1 -0
- package/build/client/_app/immutable/chunks/C0sQKHpE.js.br +0 -0
- package/build/client/_app/immutable/chunks/C0sQKHpE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CRlLKhPr.js → CFcfsVkY.js} +1 -1
- package/build/client/_app/immutable/chunks/CFcfsVkY.js.br +0 -0
- package/build/client/_app/immutable/chunks/CFcfsVkY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CZJlygAJ.js → CYkx2jgw.js} +1 -1
- package/build/client/_app/immutable/chunks/CYkx2jgw.js.br +0 -0
- package/build/client/_app/immutable/chunks/CYkx2jgw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZ6iREyA.js +8 -0
- package/build/client/_app/immutable/chunks/CZ6iREyA.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZ6iREyA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CbCJfhin.js +1 -0
- package/build/client/_app/immutable/chunks/CbCJfhin.js.br +0 -0
- package/build/client/_app/immutable/chunks/CbCJfhin.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DaRvw8c-.js → CdTjAjKm.js} +7 -7
- package/build/client/_app/immutable/chunks/CdTjAjKm.js.br +0 -0
- package/build/client/_app/immutable/chunks/CdTjAjKm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{4PztAao_.js → CmPVG-ki.js} +1 -1
- package/build/client/_app/immutable/chunks/CmPVG-ki.js.br +0 -0
- package/build/client/_app/immutable/chunks/CmPVG-ki.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DJ_lsF0V.js → Cnr0cZA4.js} +1 -1
- package/build/client/_app/immutable/chunks/Cnr0cZA4.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cnr0cZA4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CojkI8AD.js +33 -0
- package/build/client/_app/immutable/chunks/CojkI8AD.js.br +0 -0
- package/build/client/_app/immutable/chunks/CojkI8AD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cp_hX0eh.js +1 -0
- package/build/client/_app/immutable/chunks/Cp_hX0eh.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cp_hX0eh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cv6CwVfk.js +3 -0
- package/build/client/_app/immutable/chunks/Cv6CwVfk.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cv6CwVfk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DAfsp-82.js → D8qEOlWC.js} +1 -1
- package/build/client/_app/immutable/chunks/D8qEOlWC.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8qEOlWC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bf1oCG9-.js → DOMF1VtZ.js} +1 -1
- package/build/client/_app/immutable/chunks/DOMF1VtZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DOMF1VtZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bd7SZbXQ.js → DRaGXt8e.js} +1 -1
- package/build/client/_app/immutable/chunks/DRaGXt8e.js.br +0 -0
- package/build/client/_app/immutable/chunks/DRaGXt8e.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bw2f0Pmg.js → DU-D8S0B.js} +1 -1
- package/build/client/_app/immutable/chunks/DU-D8S0B.js.br +0 -0
- package/build/client/_app/immutable/chunks/DU-D8S0B.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Culo9hD6.js → DadWvtYR.js} +1 -1
- package/build/client/_app/immutable/chunks/DadWvtYR.js.br +0 -0
- package/build/client/_app/immutable/chunks/DadWvtYR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Cx_xzGPa.js → DbYdNz4J.js} +1 -1
- package/build/client/_app/immutable/chunks/DbYdNz4J.js.br +0 -0
- package/build/client/_app/immutable/chunks/DbYdNz4J.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DiFAgw_s.js +1 -0
- package/build/client/_app/immutable/chunks/DiFAgw_s.js.br +0 -0
- package/build/client/_app/immutable/chunks/DiFAgw_s.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DrMdBz9b.js +1 -0
- package/build/client/_app/immutable/chunks/DrMdBz9b.js.br +0 -0
- package/build/client/_app/immutable/chunks/DrMdBz9b.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{qXu78w_4.js → DsvX5v5e.js} +1 -1
- package/build/client/_app/immutable/chunks/DsvX5v5e.js.br +0 -0
- package/build/client/_app/immutable/chunks/DsvX5v5e.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Y0ymTIHd.js +1 -0
- package/build/client/_app/immutable/chunks/Y0ymTIHd.js.br +0 -0
- package/build/client/_app/immutable/chunks/Y0ymTIHd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_HWrJCgx.js +1 -0
- package/build/client/_app/immutable/chunks/_HWrJCgx.js.br +0 -0
- package/build/client/_app/immutable/chunks/_HWrJCgx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CRTtd6by.js → qPgPowuc.js} +1 -1
- package/build/client/_app/immutable/chunks/qPgPowuc.js.br +0 -0
- package/build/client/_app/immutable/chunks/qPgPowuc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ri5tqg4N.js +1 -0
- package/build/client/_app/immutable/chunks/ri5tqg4N.js.br +0 -0
- package/build/client/_app/immutable/chunks/ri5tqg4N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Codln_pl.js → sdLD1XcR.js} +1 -1
- package/build/client/_app/immutable/chunks/sdLD1XcR.js.br +0 -0
- package/build/client/_app/immutable/chunks/sdLD1XcR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/t1v2-usS.js +4 -0
- package/build/client/_app/immutable/chunks/t1v2-usS.js.br +0 -0
- package/build/client/_app/immutable/chunks/t1v2-usS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/tLFXBP7P.js +2 -0
- package/build/client/_app/immutable/chunks/tLFXBP7P.js.br +0 -0
- package/build/client/_app/immutable/chunks/tLFXBP7P.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.jP0Pyfdy.js +2 -0
- package/build/client/_app/immutable/entry/app.jP0Pyfdy.js.br +0 -0
- package/build/client/_app/immutable/entry/app.jP0Pyfdy.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.KD1JZMOT.js +1 -0
- package/build/client/_app/immutable/entry/start.KD1JZMOT.js.br +2 -0
- package/build/client/_app/immutable/entry/start.KD1JZMOT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.ByrdmeSo.js +3 -0
- package/build/client/_app/immutable/nodes/0.ByrdmeSo.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.ByrdmeSo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.VLeq38lN.js +1 -0
- package/build/client/_app/immutable/nodes/1.VLeq38lN.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.VLeq38lN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.BHSGZYEC.js +1 -0
- package/build/client/_app/immutable/nodes/10.BHSGZYEC.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.BHSGZYEC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.CZ_7M4AF.js +1 -0
- package/build/client/_app/immutable/nodes/11.CZ_7M4AF.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.CZ_7M4AF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.DRr2l3NZ.js +1 -0
- package/build/client/_app/immutable/nodes/12.DRr2l3NZ.js.br +2 -0
- package/build/client/_app/immutable/nodes/12.DRr2l3NZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.DetV1tDO.js +1 -0
- package/build/client/_app/immutable/nodes/13.DetV1tDO.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.DetV1tDO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.I-eiMWQu.js +11 -0
- package/build/client/_app/immutable/nodes/14.I-eiMWQu.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.I-eiMWQu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DX9U9zLg.js +35 -0
- package/build/client/_app/immutable/nodes/2.DX9U9zLg.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DX9U9zLg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.Bh8il5iy.js +1 -0
- package/build/client/_app/immutable/nodes/3.Bh8il5iy.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Bh8il5iy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.C-B1sGi_.js → 4.CtzHYc6x.js} +1 -1
- package/build/client/_app/immutable/nodes/4.CtzHYc6x.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CtzHYc6x.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.B4dlomkV.js +1 -0
- package/build/client/_app/immutable/nodes/5.B4dlomkV.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.B4dlomkV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.CPYhLc46.js +1 -0
- package/build/client/_app/immutable/nodes/6.CPYhLc46.js.br +4 -0
- package/build/client/_app/immutable/nodes/6.CPYhLc46.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.CBPrYfFp.js +2 -0
- package/build/client/_app/immutable/nodes/7.CBPrYfFp.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.CBPrYfFp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.4NTWYv4c.js +6 -0
- package/build/client/_app/immutable/nodes/8.4NTWYv4c.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.4NTWYv4c.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BVI-eEdV.js +1 -0
- package/build/client/_app/immutable/nodes/9.BVI-eEdV.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BVI-eEdV.js.gz +0 -0
- package/build/client/_app/immutable/workers/css.worker-BRIrhzkG.js +84 -0
- package/build/client/_app/immutable/workers/css.worker-BRIrhzkG.js.br +0 -0
- package/build/client/_app/immutable/workers/css.worker-BRIrhzkG.js.gz +0 -0
- package/build/client/_app/immutable/workers/editor.worker-DX6ApQqM.js +12 -0
- package/build/client/_app/immutable/workers/editor.worker-DX6ApQqM.js.br +0 -0
- package/build/client/_app/immutable/workers/editor.worker-DX6ApQqM.js.gz +0 -0
- package/build/client/_app/immutable/workers/html.worker-CBI4EQBP.js +461 -0
- package/build/client/_app/immutable/workers/html.worker-CBI4EQBP.js.br +0 -0
- package/build/client/_app/immutable/workers/html.worker-CBI4EQBP.js.gz +0 -0
- package/build/client/_app/immutable/workers/json.worker-CIZWV9vN.js +49 -0
- package/build/client/_app/immutable/workers/json.worker-CIZWV9vN.js.br +0 -0
- package/build/client/_app/immutable/workers/json.worker-CIZWV9vN.js.gz +0 -0
- package/build/client/_app/immutable/workers/ts.worker-Ds4I2Msu.js +51334 -0
- package/build/client/_app/immutable/workers/ts.worker-Ds4I2Msu.js.br +0 -0
- package/build/client/_app/immutable/workers/ts.worker-Ds4I2Msu.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/0-CjpeDbMt.js +9 -0
- package/build/server/chunks/{0-BjExyGhw.js.map → 0-CjpeDbMt.js.map} +1 -1
- package/build/server/chunks/1-M0YzuUQM.js +9 -0
- package/build/server/chunks/{1-BwvZ1byr.js.map → 1-M0YzuUQM.js.map} +1 -1
- package/build/server/chunks/{7-soEaW5k5.js → 10-C7WLHR92.js} +5 -5
- package/build/server/chunks/10-C7WLHR92.js.map +1 -0
- package/build/server/chunks/11-CPYwUx-7.js +21 -0
- package/build/server/chunks/11-CPYwUx-7.js.map +1 -0
- package/build/server/chunks/12-C5OSs5Op.js +20 -0
- package/build/server/chunks/12-C5OSs5Op.js.map +1 -0
- package/build/server/chunks/13-BQ9R_Ex-.js +9 -0
- package/build/server/chunks/13-BQ9R_Ex-.js.map +1 -0
- package/build/server/chunks/14-BFsI6u_W.js +9 -0
- package/build/server/chunks/14-BFsI6u_W.js.map +1 -0
- package/build/server/chunks/2-Cjh0UTU6.js +9 -0
- package/build/server/chunks/2-Cjh0UTU6.js.map +1 -0
- package/build/server/chunks/3-VrGFs76T.js +9 -0
- package/build/server/chunks/3-VrGFs76T.js.map +1 -0
- package/build/server/chunks/4-CSgrzh2F.js +9 -0
- package/build/server/chunks/4-CSgrzh2F.js.map +1 -0
- package/build/server/chunks/5-zKehYil3.js +9 -0
- package/build/server/chunks/5-zKehYil3.js.map +1 -0
- package/build/server/chunks/6-uS_X9B0s.js +21 -0
- package/build/server/chunks/6-uS_X9B0s.js.map +1 -0
- package/build/server/chunks/7-DewREBAN.js +9 -0
- package/build/server/chunks/7-DewREBAN.js.map +1 -0
- package/build/server/chunks/8-Dk3ms3jm.js +9 -0
- package/build/server/chunks/8-Dk3ms3jm.js.map +1 -0
- package/build/server/chunks/9-W6XYayeK.js +25 -0
- package/build/server/chunks/9-W6XYayeK.js.map +1 -0
- package/build/server/chunks/{AgentSidebar-C4H-7WxT.js → AgentSidebar-BB_yQ9s0.js} +4 -4
- package/build/server/chunks/AgentSidebar-BB_yQ9s0.js.map +1 -0
- package/build/server/chunks/{Button-D3mqAVvu.js → Button-Cd4Yzpdy.js} +4 -4
- package/build/server/chunks/Button-Cd4Yzpdy.js.map +1 -0
- package/build/server/chunks/{ChatStepTrace-dfzN1KEN.js → ChatStepTrace-cq26gF4B.js} +229 -14
- package/build/server/chunks/ChatStepTrace-cq26gF4B.js.map +1 -0
- package/build/server/chunks/ContextEditor-CfjBPLpI.js +67 -0
- package/build/server/chunks/ContextEditor-CfjBPLpI.js.map +1 -0
- package/build/server/chunks/{Icon-D0R0X6Hr.js → Icon-BgknHaZs.js} +2 -2
- package/build/server/chunks/{Icon-D0R0X6Hr.js.map → Icon-BgknHaZs.js.map} +1 -1
- package/build/server/chunks/{Input-C_H479QL.js → Input-BJW36iKz.js} +2 -2
- package/build/server/chunks/{Input-C_H479QL.js.map → Input-BJW36iKz.js.map} +1 -1
- package/build/server/chunks/{Modal-NTInCBwo.js → Modal-D4tx0Bdo.js} +3 -3
- package/build/server/chunks/Modal-D4tx0Bdo.js.map +1 -0
- package/build/server/chunks/{Tab-DAuTmew0.js → Tab-DheAG-QC.js} +3 -3
- package/build/server/chunks/Tab-DheAG-QC.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-DFDvSokt.js → _layout.svelte-BL8XnK1E.js} +23 -28
- package/build/server/chunks/_layout.svelte-BL8XnK1E.js.map +1 -0
- package/build/server/chunks/_layout.svelte-DHgaGTP_.js +844 -0
- package/build/server/chunks/_layout.svelte-DHgaGTP_.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-CrT993Da.js → _layout.svelte-Svi5xbzP.js} +1 -14
- package/build/server/chunks/_layout.svelte-Svi5xbzP.js.map +1 -0
- package/build/server/chunks/{_page.svelte-B3Lu_xzt.js → _page.svelte-39hvC6-Q.js} +4 -4
- package/build/server/chunks/{_page.svelte-B3Lu_xzt.js.map → _page.svelte-39hvC6-Q.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-5O44TlMG.js → _page.svelte-BpnUXzfh.js} +40 -25
- package/build/server/chunks/_page.svelte-BpnUXzfh.js.map +1 -0
- package/build/server/chunks/{_page.svelte-N6xQwQzn.js → _page.svelte-C1YaC_Qg.js} +498 -496
- package/build/server/chunks/_page.svelte-C1YaC_Qg.js.map +1 -0
- package/build/server/chunks/{_page.svelte-D9kg5-lo.js → _page.svelte-CbqAsz26.js} +3 -3
- package/build/server/chunks/_page.svelte-CbqAsz26.js.map +1 -0
- package/build/server/chunks/{_page.svelte-ClesenAz.js → _page.svelte-CmsDxzfh.js} +19 -27
- package/build/server/chunks/_page.svelte-CmsDxzfh.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DimeWJh5.js → _page.svelte-DCP-PSh0.js} +293 -433
- package/build/server/chunks/_page.svelte-DCP-PSh0.js.map +1 -0
- package/build/server/chunks/edit-workspace-context-OTOIRCI0.js +13 -0
- package/build/server/chunks/edit-workspace-context-OTOIRCI0.js.map +1 -0
- package/build/server/chunks/hooks-BJphIAi-.js +8 -0
- package/build/server/chunks/hooks-BJphIAi-.js.map +1 -0
- package/build/server/chunks/{Tab.svelte_svelte_type_style_lang-Bmdqxv-M.js → index-server-CefdgakO.js} +2 -2
- package/build/server/chunks/index-server-CefdgakO.js.map +1 -0
- package/build/server/chunks/{index2-CHZ7ZFLZ.js → index2-BuOY2QE4.js} +2 -2
- package/build/server/chunks/{index2-CHZ7ZFLZ.js.map → index2-BuOY2QE4.js.map} +1 -1
- package/build/server/chunks/log-content.svelte-B3ZvaoLs.js +20 -0
- package/build/server/chunks/log-content.svelte-B3ZvaoLs.js.map +1 -0
- package/build/server/index.js +3 -2
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +51 -18
- package/build/server/manifest.js.map +1 -1
- package/package.json +3 -1
- package/src/backend/lib/decode-html-entities.spec.ts +29 -0
- package/src/backend/lib/decode-html-entities.ts +25 -0
- package/src/backend/roleplay/router.ts +31 -0
- package/src/backend/tests/academy.ts +353 -115
- package/src/backend/tests/analyze.ts +357 -0
- package/src/backend/tests/data.ts +48 -12
- package/src/backend/tests/emulate-agents.ts +39 -4
- package/src/backend/tests/prompt-issues.ts +204 -0
- package/src/backend/tests/router.ts +51 -4
- package/build/client/_app/immutable/assets/0.D_OBtTqU.css +0 -1
- package/build/client/_app/immutable/assets/0.D_OBtTqU.css.br +0 -0
- package/build/client/_app/immutable/assets/0.D_OBtTqU.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.sP9PzBp7.css +0 -1
- package/build/client/_app/immutable/assets/4.sP9PzBp7.css.br +0 -0
- package/build/client/_app/immutable/assets/4.sP9PzBp7.css.gz +0 -0
- package/build/client/_app/immutable/assets/6.C4C8vBUW.css +0 -1
- package/build/client/_app/immutable/assets/6.C4C8vBUW.css.br +0 -0
- package/build/client/_app/immutable/assets/6.C4C8vBUW.css.gz +0 -0
- package/build/client/_app/immutable/assets/Tab.BxaGw9IG.css.br +0 -0
- package/build/client/_app/immutable/assets/Tab.BxaGw9IG.css.gz +0 -0
- package/build/client/_app/immutable/chunks/4PztAao_.js.br +0 -0
- package/build/client/_app/immutable/chunks/4PztAao_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B2gGEZTS.js +0 -1
- package/build/client/_app/immutable/chunks/B2gGEZTS.js.br +0 -2
- package/build/client/_app/immutable/chunks/B2gGEZTS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BFOPpRqC.js +0 -8
- package/build/client/_app/immutable/chunks/BFOPpRqC.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFOPpRqC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOQMymse.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOQMymse.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bd7SZbXQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bd7SZbXQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bf1oCG9-.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bf1oCG9-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BgaIh2D4.js +0 -1
- package/build/client/_app/immutable/chunks/BgaIh2D4.js.br +0 -0
- package/build/client/_app/immutable/chunks/BgaIh2D4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BrDK8TTs.js +0 -2
- package/build/client/_app/immutable/chunks/BrDK8TTs.js.br +0 -0
- package/build/client/_app/immutable/chunks/BrDK8TTs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BsKQRAyX.js +0 -1
- package/build/client/_app/immutable/chunks/BsKQRAyX.js.br +0 -0
- package/build/client/_app/immutable/chunks/BsKQRAyX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bw2f0Pmg.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bw2f0Pmg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C-dTPkQy.js +0 -1
- package/build/client/_app/immutable/chunks/C-dTPkQy.js.br +0 -0
- package/build/client/_app/immutable/chunks/C-dTPkQy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C769zFCl.js.br +0 -0
- package/build/client/_app/immutable/chunks/C769zFCl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CInh9KnU.js +0 -1
- package/build/client/_app/immutable/chunks/CInh9KnU.js.br +0 -2
- package/build/client/_app/immutable/chunks/CInh9KnU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CRTtd6by.js.br +0 -0
- package/build/client/_app/immutable/chunks/CRTtd6by.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CRlLKhPr.js.br +0 -0
- package/build/client/_app/immutable/chunks/CRlLKhPr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CUfDVPpW.js +0 -1
- package/build/client/_app/immutable/chunks/CUfDVPpW.js.br +0 -0
- package/build/client/_app/immutable/chunks/CUfDVPpW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZJlygAJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZJlygAJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CfKHaDCm.js.br +0 -0
- package/build/client/_app/immutable/chunks/CfKHaDCm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Codln_pl.js.br +0 -0
- package/build/client/_app/immutable/chunks/Codln_pl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Culo9hD6.js.br +0 -0
- package/build/client/_app/immutable/chunks/Culo9hD6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cx_xzGPa.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cx_xzGPa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5fGPlBk.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5fGPlBk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8e5qIiS.js +0 -33
- package/build/client/_app/immutable/chunks/D8e5qIiS.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8e5qIiS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D9h7-Y-f.js +0 -1
- package/build/client/_app/immutable/chunks/D9h7-Y-f.js.br +0 -0
- package/build/client/_app/immutable/chunks/D9h7-Y-f.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DAfsp-82.js.br +0 -0
- package/build/client/_app/immutable/chunks/DAfsp-82.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJ_lsF0V.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJ_lsF0V.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DaRvw8c-.js.br +0 -0
- package/build/client/_app/immutable/chunks/DaRvw8c-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dxv8gtYg.js +0 -1
- package/build/client/_app/immutable/chunks/Dxv8gtYg.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dxv8gtYg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/FawE95CY.js +0 -1
- package/build/client/_app/immutable/chunks/FawE95CY.js.br +0 -0
- package/build/client/_app/immutable/chunks/FawE95CY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/HBgR5qMR.js +0 -3
- package/build/client/_app/immutable/chunks/HBgR5qMR.js.br +0 -0
- package/build/client/_app/immutable/chunks/HBgR5qMR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/I-mny6CH.js +0 -1
- package/build/client/_app/immutable/chunks/I-mny6CH.js.br +0 -0
- package/build/client/_app/immutable/chunks/I-mny6CH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/WkRHaFaq.js +0 -4
- package/build/client/_app/immutable/chunks/WkRHaFaq.js.br +0 -0
- package/build/client/_app/immutable/chunks/WkRHaFaq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/aeuWzujc.js +0 -1
- package/build/client/_app/immutable/chunks/aeuWzujc.js.br +0 -2
- package/build/client/_app/immutable/chunks/aeuWzujc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/qXu78w_4.js.br +0 -0
- package/build/client/_app/immutable/chunks/qXu78w_4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/yOR3vtRx.js.br +0 -0
- package/build/client/_app/immutable/chunks/yOR3vtRx.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Bo6pBzFD.js +0 -2
- package/build/client/_app/immutable/entry/app.Bo6pBzFD.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Bo6pBzFD.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DvDUBfDS.js +0 -1
- package/build/client/_app/immutable/entry/start.DvDUBfDS.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DvDUBfDS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.zcQ-QMcb.js +0 -3
- package/build/client/_app/immutable/nodes/0.zcQ-QMcb.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.zcQ-QMcb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BX821K1d.js +0 -1
- package/build/client/_app/immutable/nodes/1.BX821K1d.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BX821K1d.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.4IvNSQft.js +0 -1
- package/build/client/_app/immutable/nodes/2.4IvNSQft.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.4IvNSQft.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.C-B1sGi_.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.C-B1sGi_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.C6l0CiJD.js +0 -35
- package/build/client/_app/immutable/nodes/4.C6l0CiJD.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.C6l0CiJD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.RovJmk8R.js +0 -1
- package/build/client/_app/immutable/nodes/5.RovJmk8R.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.RovJmk8R.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.vrBdmqTE.js +0 -5
- package/build/client/_app/immutable/nodes/6.vrBdmqTE.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.vrBdmqTE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BLozkJCY.js +0 -1
- package/build/client/_app/immutable/nodes/7.BLozkJCY.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BLozkJCY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BeHRzquW.js +0 -1
- package/build/client/_app/immutable/nodes/8.BeHRzquW.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BeHRzquW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.tDZ3CQE6.js +0 -11
- package/build/client/_app/immutable/nodes/9.tDZ3CQE6.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.tDZ3CQE6.js.gz +0 -0
- package/build/server/chunks/0-BjExyGhw.js +0 -9
- package/build/server/chunks/1-BwvZ1byr.js +0 -9
- package/build/server/chunks/2-DLWqn5zk.js +0 -9
- package/build/server/chunks/2-DLWqn5zk.js.map +0 -1
- package/build/server/chunks/3-Be4gJSbJ.js +0 -9
- package/build/server/chunks/3-Be4gJSbJ.js.map +0 -1
- package/build/server/chunks/4-BQq4QAnS.js +0 -9
- package/build/server/chunks/4-BQq4QAnS.js.map +0 -1
- package/build/server/chunks/5-DM_iNIlm.js +0 -9
- package/build/server/chunks/5-DM_iNIlm.js.map +0 -1
- package/build/server/chunks/6-eSsWX3tm.js +0 -33
- package/build/server/chunks/6-eSsWX3tm.js.map +0 -1
- package/build/server/chunks/7-soEaW5k5.js.map +0 -1
- package/build/server/chunks/8-CA7E96iK.js +0 -9
- package/build/server/chunks/8-CA7E96iK.js.map +0 -1
- package/build/server/chunks/9-D2SkYOhZ.js +0 -9
- package/build/server/chunks/9-D2SkYOhZ.js.map +0 -1
- package/build/server/chunks/AgentSidebar-C4H-7WxT.js.map +0 -1
- package/build/server/chunks/Button-D3mqAVvu.js.map +0 -1
- package/build/server/chunks/ChatStepTrace-dfzN1KEN.js.map +0 -1
- package/build/server/chunks/ContextEditor-ySHjHE1w.js +0 -45
- package/build/server/chunks/ContextEditor-ySHjHE1w.js.map +0 -1
- package/build/server/chunks/Modal-NTInCBwo.js.map +0 -1
- package/build/server/chunks/Tab-DAuTmew0.js.map +0 -1
- package/build/server/chunks/Tab.svelte_svelte_type_style_lang-Bmdqxv-M.js.map +0 -1
- package/build/server/chunks/_layout.svelte-CrT993Da.js.map +0 -1
- package/build/server/chunks/_layout.svelte-DFDvSokt.js.map +0 -1
- package/build/server/chunks/_page.svelte-5O44TlMG.js.map +0 -1
- package/build/server/chunks/_page.svelte-ClesenAz.js.map +0 -1
- package/build/server/chunks/_page.svelte-D9kg5-lo.js.map +0 -1
- package/build/server/chunks/_page.svelte-DimeWJh5.js.map +0 -1
- package/build/server/chunks/_page.svelte-N6xQwQzn.js.map +0 -1
- /package/build/client/_app/immutable/assets/{9.C5apk4jm.css → 14.C5apk4jm.css} +0 -0
- /package/build/client/_app/immutable/assets/{9.C5apk4jm.css.br → 14.C5apk4jm.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{9.C5apk4jm.css.gz → 14.C5apk4jm.css.gz} +0 -0
- /package/build/client/_app/immutable/assets/{2.Dzh7_Q8n.css → 3.Dzh7_Q8n.css} +0 -0
- /package/build/client/_app/immutable/assets/{2.Dzh7_Q8n.css.br → 3.Dzh7_Q8n.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{2.Dzh7_Q8n.css.gz → 3.Dzh7_Q8n.css.gz} +0 -0
- /package/build/client/_app/immutable/assets/{3.CZVw96CJ.css → 4.CZVw96CJ.css} +0 -0
- /package/build/client/_app/immutable/assets/{3.CZVw96CJ.css.br → 4.CZVw96CJ.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{3.CZVw96CJ.css.gz → 4.CZVw96CJ.css.gz} +0 -0
- /package/build/client/_app/immutable/assets/{Modal.tn0RQdqM.css → bosun-theme.tn0RQdqM.css} +0 -0
- /package/build/client/_app/immutable/assets/{Modal.tn0RQdqM.css.br → bosun-theme.tn0RQdqM.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{Modal.tn0RQdqM.css.gz → bosun-theme.tn0RQdqM.css.gz} +0 -0
|
@@ -1,47 +1,17 @@
|
|
|
1
|
-
import { h as head,
|
|
2
|
-
import {
|
|
3
|
-
import { B as Button } from './Button-
|
|
4
|
-
import { M as Modal } from './Modal-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { g as getAgentsContext } from './agents-context-BrlIlkOW.js';
|
|
10
|
-
import { A as AgentSidebar } from './AgentSidebar-C4H-7WxT.js';
|
|
11
|
-
import { I as Input } from './Input-C_H479QL.js';
|
|
1
|
+
import { h as head, b as attr_class, a as attr, s as stringify, e as ensure_array_like, c as attr_style, j as attributes } from './index2-BuOY2QE4.js';
|
|
2
|
+
import { g as getEditWorkspaceContext, P as Panel } from './edit-workspace-context-OTOIRCI0.js';
|
|
3
|
+
import { B as Button } from './Button-Cd4Yzpdy.js';
|
|
4
|
+
import { M as Modal } from './Modal-D4tx0Bdo.js';
|
|
5
|
+
import { C as ContextEditor, P as PopoverModal } from './ContextEditor-CfjBPLpI.js';
|
|
6
|
+
import { I as Input } from './Input-BJW36iKz.js';
|
|
7
|
+
import { o as onDestroy } from './index-server-CefdgakO.js';
|
|
8
|
+
import { I as Icon$1, h as html } from './Icon-BgknHaZs.js';
|
|
12
9
|
import { t as trpc } from './trpc-client-Bucti7HD.js';
|
|
13
10
|
import { X as escape_html } from './context-zH5kvtGY.js';
|
|
14
|
-
import 'js-yaml';
|
|
15
11
|
import './events-M0vvlm3M.js';
|
|
16
|
-
import '
|
|
17
|
-
import './utils-KcIDVAAe.js';
|
|
18
|
-
import './index-DxaLoiKh.js';
|
|
12
|
+
import 'js-yaml';
|
|
19
13
|
import '@trpc/client';
|
|
20
14
|
|
|
21
|
-
function _defineProperty(obj, key, value) {
|
|
22
|
-
if (key in obj) {
|
|
23
|
-
Object.defineProperty(obj, key, {
|
|
24
|
-
value,
|
|
25
|
-
enumerable: true,
|
|
26
|
-
configurable: true,
|
|
27
|
-
writable: true
|
|
28
|
-
});
|
|
29
|
-
} else {
|
|
30
|
-
obj[key] = value;
|
|
31
|
-
}
|
|
32
|
-
return obj;
|
|
33
|
-
}
|
|
34
|
-
var FEATURE_FLAG_NAMES = Object.freeze({
|
|
35
|
-
// This flag exists as a workaround for issue 454 (basically a browser bug) - seems like these rect values take time to update when in grid layout. Setting it to true can cause strange behaviour in the REPL for non-grid zones, see issue 470
|
|
36
|
-
USE_COMPUTED_STYLE_INSTEAD_OF_BOUNDING_RECT: "USE_COMPUTED_STYLE_INSTEAD_OF_BOUNDING_RECT"
|
|
37
|
-
});
|
|
38
|
-
_defineProperty({}, FEATURE_FLAG_NAMES.USE_COMPUTED_STYLE_INSTEAD_OF_BOUNDING_RECT, false);
|
|
39
|
-
var _ID_TO_INSTRUCTION;
|
|
40
|
-
var INSTRUCTION_IDs$1 = {
|
|
41
|
-
DND_ZONE_ACTIVE: "dnd-zone-active",
|
|
42
|
-
DND_ZONE_DRAG_DISABLED: "dnd-zone-drag-disabled"
|
|
43
|
-
};
|
|
44
|
-
_ID_TO_INSTRUCTION = {}, _defineProperty(_ID_TO_INSTRUCTION, INSTRUCTION_IDs$1.DND_ZONE_ACTIVE, "Tab to one the items and press space-bar or enter to start dragging it"), _defineProperty(_ID_TO_INSTRUCTION, INSTRUCTION_IDs$1.DND_ZONE_DRAG_DISABLED, "This is a disabled drag and drop list");
|
|
45
15
|
const matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;
|
|
46
16
|
const stringToIcon = (value, validate, allowSimpleName, provider = "") => {
|
|
47
17
|
const colonSeparated = value.split(":");
|
|
@@ -1410,19 +1380,44 @@ function Icon($$renderer, $$props) {
|
|
|
1410
1380
|
function MiniEditor($$renderer, $$props) {
|
|
1411
1381
|
$$renderer.component(($$renderer2) => {
|
|
1412
1382
|
let editor = null;
|
|
1383
|
+
let model = null;
|
|
1384
|
+
let disposables = [];
|
|
1385
|
+
let editorElement;
|
|
1413
1386
|
let {
|
|
1414
|
-
value,
|
|
1415
|
-
onChange,
|
|
1416
|
-
onBlur,
|
|
1417
|
-
language = "plaintext",
|
|
1418
1387
|
height = 120
|
|
1419
1388
|
} = $$props;
|
|
1389
|
+
function handleWheelCapture(e) {
|
|
1390
|
+
e.stopPropagation();
|
|
1391
|
+
}
|
|
1420
1392
|
onDestroy(() => {
|
|
1421
1393
|
try {
|
|
1422
|
-
|
|
1394
|
+
editorElement.removeEventListener("wheel", handleWheelCapture, { capture: true });
|
|
1395
|
+
} catch {
|
|
1396
|
+
}
|
|
1397
|
+
for (const d of disposables) {
|
|
1398
|
+
try {
|
|
1399
|
+
d.dispose();
|
|
1400
|
+
} catch {
|
|
1401
|
+
}
|
|
1402
|
+
}
|
|
1403
|
+
disposables = [];
|
|
1404
|
+
const toDisposeModel = model;
|
|
1405
|
+
model = null;
|
|
1406
|
+
try {
|
|
1407
|
+
if (editor) {
|
|
1408
|
+
try {
|
|
1409
|
+
editor.setModel(null);
|
|
1410
|
+
} catch {
|
|
1411
|
+
}
|
|
1412
|
+
editor.dispose();
|
|
1413
|
+
}
|
|
1423
1414
|
} finally {
|
|
1424
1415
|
editor = null;
|
|
1425
1416
|
}
|
|
1417
|
+
try {
|
|
1418
|
+
toDisposeModel?.dispose();
|
|
1419
|
+
} catch {
|
|
1420
|
+
}
|
|
1426
1421
|
});
|
|
1427
1422
|
$$renderer2.push(`<div class="w-full"${attr_style(
|
|
1428
1423
|
// Update language when prop changes without recreating the editor
|
|
@@ -1433,27 +1428,12 @@ function MiniEditor($$renderer, $$props) {
|
|
|
1433
1428
|
}
|
|
1434
1429
|
function _page($$renderer, $$props) {
|
|
1435
1430
|
$$renderer.component(($$renderer2) => {
|
|
1436
|
-
const {
|
|
1437
|
-
|
|
1438
|
-
let agents = [];
|
|
1439
|
-
const agent = params.agent;
|
|
1440
|
-
let repeats = 1;
|
|
1441
|
-
let concurrency = 1;
|
|
1442
|
-
let defaultContext = {};
|
|
1443
|
-
let defaultContextDraft = {};
|
|
1444
|
-
let showDefaultContextModal = false;
|
|
1445
|
-
let showViewerModal = false;
|
|
1446
|
-
let viewerTitle = "";
|
|
1447
|
-
let viewerContent = null;
|
|
1448
|
-
let viewerLoading = false;
|
|
1449
|
-
let viewerError = null;
|
|
1450
|
-
let showTestContextModal = false;
|
|
1451
|
-
let activeContextTestId = null;
|
|
1452
|
-
let testContextDraft = "";
|
|
1431
|
+
const { state: workspace, actions } = getEditWorkspaceContext();
|
|
1432
|
+
const agent = workspace.agentId;
|
|
1453
1433
|
function safeClone(v) {
|
|
1454
1434
|
try {
|
|
1455
1435
|
return structuredClone(v);
|
|
1456
|
-
} catch
|
|
1436
|
+
} catch {
|
|
1457
1437
|
try {
|
|
1458
1438
|
return JSON.parse(JSON.stringify(v));
|
|
1459
1439
|
} catch {
|
|
@@ -1461,36 +1441,20 @@ function _page($$renderer, $$props) {
|
|
|
1461
1441
|
}
|
|
1462
1442
|
}
|
|
1463
1443
|
}
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
viewerContent = null;
|
|
1467
|
-
viewerError = null;
|
|
1468
|
-
viewerLoading = true;
|
|
1469
|
-
showViewerModal = true;
|
|
1470
|
-
try {
|
|
1471
|
-
const text = await trpc.tests.resultEntry.query({
|
|
1472
|
-
agent: params2.agent,
|
|
1473
|
-
testId: params2.id,
|
|
1474
|
-
resultKey: params2.key,
|
|
1475
|
-
timestamp: params2.timestamp,
|
|
1476
|
-
index: params2.run
|
|
1477
|
-
});
|
|
1478
|
-
let formatted = text;
|
|
1479
|
-
try {
|
|
1480
|
-
const json = JSON.parse(text);
|
|
1481
|
-
formatted = JSON.stringify(json, null, 2);
|
|
1482
|
-
} catch {
|
|
1483
|
-
}
|
|
1484
|
-
viewerContent = formatted;
|
|
1485
|
-
} catch (e) {
|
|
1486
|
-
console.error(e);
|
|
1487
|
-
viewerError = "Failed to load content";
|
|
1488
|
-
} finally {
|
|
1489
|
-
viewerLoading = false;
|
|
1490
|
-
}
|
|
1444
|
+
function clamp(n, min, max) {
|
|
1445
|
+
return Math.max(min, Math.min(max, n));
|
|
1491
1446
|
}
|
|
1447
|
+
let repeats = 1;
|
|
1448
|
+
let concurrency = 1;
|
|
1449
|
+
let defaultContext = {};
|
|
1450
|
+
let defaultContextDraft = {};
|
|
1451
|
+
let showDefaultContextModal = false;
|
|
1452
|
+
let testContextPopoverTestId = null;
|
|
1453
|
+
let testContextDraft = {};
|
|
1454
|
+
let showViewerModal = false;
|
|
1455
|
+
let viewerTitle = "";
|
|
1456
|
+
let analyzeRunning = false;
|
|
1492
1457
|
const baseAssertionTypes = [
|
|
1493
|
-
// Non-deterministic / model-graded
|
|
1494
1458
|
{ value: "llm-rubric", label: "LLM" },
|
|
1495
1459
|
{ value: "answer-relevance", label: "Answer Relevance (LLM)" },
|
|
1496
1460
|
{
|
|
@@ -1515,7 +1479,6 @@ function _page($$renderer, $$props) {
|
|
|
1515
1479
|
value: "conversation-relevance",
|
|
1516
1480
|
label: "Conversation Relevance"
|
|
1517
1481
|
},
|
|
1518
|
-
// Deterministic string/content checks
|
|
1519
1482
|
{ value: "equals", label: "Equals" },
|
|
1520
1483
|
{ value: "contains", label: "Contains" },
|
|
1521
1484
|
{ value: "icontains", label: "Contains (case-insensitive)" },
|
|
@@ -1527,7 +1490,6 @@ function _page($$renderer, $$props) {
|
|
|
1527
1490
|
{ value: "regex", label: "Regex" },
|
|
1528
1491
|
{ value: "levenshtein", label: "Levenshtein Distance" },
|
|
1529
1492
|
{ value: "is-refusal", label: "Is Refusal" },
|
|
1530
|
-
// Content type assertions
|
|
1531
1493
|
{ value: "is-html", label: "Is HTML" },
|
|
1532
1494
|
{ value: "contains-html", label: "Contains HTML" },
|
|
1533
1495
|
{ value: "is-json", label: "Is JSON" },
|
|
@@ -1536,7 +1498,6 @@ function _page($$renderer, $$props) {
|
|
|
1536
1498
|
{ value: "contains-xml", label: "Contains XML" },
|
|
1537
1499
|
{ value: "is-sql", label: "Is SQL" },
|
|
1538
1500
|
{ value: "contains-sql", label: "Contains SQL" },
|
|
1539
|
-
// Metrics
|
|
1540
1501
|
{ value: "similar", label: "Semantic Similarity" },
|
|
1541
1502
|
{ value: "rouge-n", label: "ROUGE-N" },
|
|
1542
1503
|
{ value: "bleu", label: "BLEU" },
|
|
@@ -1544,14 +1505,12 @@ function _page($$renderer, $$props) {
|
|
|
1544
1505
|
{ value: "meteor", label: "METEOR" },
|
|
1545
1506
|
{ value: "perplexity", label: "Perplexity" },
|
|
1546
1507
|
{ value: "perplexity-score", label: "Perplexity Score" },
|
|
1547
|
-
// Performance/trace
|
|
1548
1508
|
{ value: "latency", label: "Latency" },
|
|
1549
1509
|
{ value: "cost", label: "Cost" },
|
|
1550
1510
|
{ value: "finish-reason", label: "Finish Reason" },
|
|
1551
1511
|
{ value: "trace-error-spans", label: "Trace Error Spans" },
|
|
1552
1512
|
{ value: "trace-span-count", label: "Trace Span Count" },
|
|
1553
1513
|
{ value: "trace-span-duration", label: "Trace Span Duration" },
|
|
1554
|
-
// Tools/validators
|
|
1555
1514
|
{
|
|
1556
1515
|
value: "is-valid-function-call",
|
|
1557
1516
|
label: "Is Valid Function Call"
|
|
@@ -1565,7 +1524,6 @@ function _page($$renderer, $$props) {
|
|
|
1565
1524
|
label: "Is Valid OpenAI Tools Call"
|
|
1566
1525
|
},
|
|
1567
1526
|
{ value: "guardrails", label: "Guardrails" },
|
|
1568
|
-
// Custom hooks
|
|
1569
1527
|
{ value: "javascript", label: "JavaScript (custom)" },
|
|
1570
1528
|
{ value: "python", label: "Python (custom)" },
|
|
1571
1529
|
{ value: "webhook", label: "Webhook (custom)" },
|
|
@@ -1577,9 +1535,13 @@ function _page($$renderer, $$props) {
|
|
|
1577
1535
|
];
|
|
1578
1536
|
let tests = [];
|
|
1579
1537
|
let running = false;
|
|
1538
|
+
let canceling = false;
|
|
1539
|
+
let cancelRequested = false;
|
|
1580
1540
|
let runScope = null;
|
|
1541
|
+
let runSingleTestId = null;
|
|
1581
1542
|
let runDone = 0;
|
|
1582
1543
|
let runTotal = 0;
|
|
1544
|
+
let runExpectedRuns = 1;
|
|
1583
1545
|
let pollInFlight = false;
|
|
1584
1546
|
let pollTimer = null;
|
|
1585
1547
|
let runToken = 0;
|
|
@@ -1597,31 +1559,40 @@ function _page($$renderer, $$props) {
|
|
|
1597
1559
|
return p;
|
|
1598
1560
|
}
|
|
1599
1561
|
function makeResult(id, rr) {
|
|
1562
|
+
const rawRuns = Array.isArray(rr.results) ? rr.results : [];
|
|
1563
|
+
const successCount = rawRuns.reduce((acc, run2) => acc + (run2?.success ? 1 : 0), 0);
|
|
1600
1564
|
return {
|
|
1601
1565
|
success_rate: rr.success_rate,
|
|
1602
|
-
|
|
1566
|
+
successes: successCount,
|
|
1567
|
+
total_runs: rawRuns.length,
|
|
1603
1568
|
isOld: !!rr.is_old,
|
|
1604
|
-
|
|
1569
|
+
previous: rr.previous && typeof rr.previous === "object" ? {
|
|
1570
|
+
success_count: Number(rr.previous.success_count ?? 0),
|
|
1571
|
+
total_runs: Number(rr.previous.total_runs ?? 0),
|
|
1572
|
+
report_timestamp: String(rr.previous.report_timestamp ?? "")
|
|
1573
|
+
} : void 0,
|
|
1574
|
+
runs: rawRuns.map((run2, idx) => {
|
|
1605
1575
|
const timestamp = rr.report_timestamp;
|
|
1606
|
-
const
|
|
1576
|
+
const params = { agent, id, timestamp, run: idx };
|
|
1607
1577
|
return {
|
|
1608
1578
|
index: idx + 1,
|
|
1609
1579
|
success: !!run2.success,
|
|
1610
1580
|
text: String(run2.result || ""),
|
|
1611
1581
|
evaluation: String(run2.evaluation || ""),
|
|
1612
1582
|
links: {
|
|
1613
|
-
renderedPrompt: { ...
|
|
1614
|
-
receivedPrompt: { ...
|
|
1615
|
-
conversation: { ...
|
|
1616
|
-
context: { ...
|
|
1617
|
-
logs: { ...
|
|
1618
|
-
traces: { ...
|
|
1583
|
+
renderedPrompt: { ...params, key: "rendered_prompt" },
|
|
1584
|
+
receivedPrompt: { ...params, key: "received_prompt" },
|
|
1585
|
+
conversation: { ...params, key: "stringified_conversation" },
|
|
1586
|
+
context: { ...params, key: "received_context" },
|
|
1587
|
+
logs: { ...params, key: "logs" },
|
|
1588
|
+
traces: { ...params, key: "traces" }
|
|
1619
1589
|
}
|
|
1620
1590
|
};
|
|
1621
|
-
})
|
|
1591
|
+
}).reverse()
|
|
1622
1592
|
};
|
|
1623
1593
|
}
|
|
1624
1594
|
async function refresh() {
|
|
1595
|
+
if (!agent) return;
|
|
1625
1596
|
try {
|
|
1626
1597
|
const [{ rows }, config, results] = await Promise.all([
|
|
1627
1598
|
trpc.tests.list.query({ agent }),
|
|
@@ -1638,18 +1609,21 @@ function _page($$renderer, $$props) {
|
|
|
1638
1609
|
id,
|
|
1639
1610
|
pinned: String(r.pinned).toUpperCase() === "TRUE",
|
|
1640
1611
|
scenario: r.scenario || "",
|
|
1612
|
+
step: String(r.step ?? ""),
|
|
1641
1613
|
author: r.author || "",
|
|
1642
1614
|
assertion_type: r.assertion_type || "llm-rubric",
|
|
1643
1615
|
assertion_value: r.assertion_value || "",
|
|
1644
1616
|
conversation: r.conversation || "",
|
|
1645
1617
|
expected_output: r.expected_output || "",
|
|
1618
|
+
conversation_ui: buildConversationEditorValue(r.conversation || "", r.expected_output || ""),
|
|
1646
1619
|
timeout: Number(r.timeout ?? 0),
|
|
1647
1620
|
similarity_threshold: Number(r.similarity_threshold ?? 60),
|
|
1648
1621
|
context: JSON.stringify(r.context),
|
|
1649
1622
|
result: rr ? makeResult(id, rr) : void 0
|
|
1650
1623
|
};
|
|
1651
1624
|
});
|
|
1652
|
-
} catch {
|
|
1625
|
+
} catch (e) {
|
|
1626
|
+
console.error(e);
|
|
1653
1627
|
tests = [];
|
|
1654
1628
|
repeats = 1;
|
|
1655
1629
|
concurrency = 1;
|
|
@@ -1670,10 +1644,12 @@ function _page($$renderer, $$props) {
|
|
|
1670
1644
|
});
|
|
1671
1645
|
tests = nextTests;
|
|
1672
1646
|
const scope = runScope;
|
|
1647
|
+
const expectedRuns = Math.max(1, Number(runExpectedRuns) || 1);
|
|
1673
1648
|
const done = nextTests.reduce(
|
|
1674
1649
|
(acc, t) => {
|
|
1650
|
+
if (scope === "single" && t.id !== runSingleTestId) return acc;
|
|
1675
1651
|
if (scope === "pinned" && !t.pinned) return acc;
|
|
1676
|
-
return t.result && !t.result.isOld ? acc + 1 : acc;
|
|
1652
|
+
return t.result && !t.result.isOld && t.result.total_runs >= expectedRuns ? acc + 1 : acc;
|
|
1677
1653
|
},
|
|
1678
1654
|
0
|
|
1679
1655
|
);
|
|
@@ -1686,9 +1662,12 @@ function _page($$renderer, $$props) {
|
|
|
1686
1662
|
}
|
|
1687
1663
|
async function run(scope) {
|
|
1688
1664
|
running = true;
|
|
1665
|
+
cancelRequested = false;
|
|
1689
1666
|
runScope = scope;
|
|
1667
|
+
runSingleTestId = null;
|
|
1690
1668
|
runTotal = scope === "all" ? tests.length : tests.filter((t) => t.pinned).length;
|
|
1691
1669
|
runDone = 0;
|
|
1670
|
+
runExpectedRuns = Math.max(1, Number(repeats) || 1);
|
|
1692
1671
|
runToken += 1;
|
|
1693
1672
|
const activeToken = runToken;
|
|
1694
1673
|
await Promise.all([...pendingSaves]);
|
|
@@ -1708,10 +1687,50 @@ function _page($$renderer, $$props) {
|
|
|
1708
1687
|
}
|
|
1709
1688
|
}
|
|
1710
1689
|
}
|
|
1690
|
+
async function runSingle(testId) {
|
|
1691
|
+
if (!agent) return;
|
|
1692
|
+
running = true;
|
|
1693
|
+
cancelRequested = false;
|
|
1694
|
+
runScope = "single";
|
|
1695
|
+
runSingleTestId = testId;
|
|
1696
|
+
runTotal = 1;
|
|
1697
|
+
runDone = 0;
|
|
1698
|
+
runExpectedRuns = Math.max(1, Number(repeats) || 1);
|
|
1699
|
+
runToken += 1;
|
|
1700
|
+
const activeToken = runToken;
|
|
1701
|
+
await Promise.all([...pendingSaves]);
|
|
1702
|
+
if (pollTimer) clearInterval(pollTimer);
|
|
1703
|
+
pollTimer = setInterval(() => pollLatestResults(activeToken), 800);
|
|
1704
|
+
void pollLatestResults(activeToken);
|
|
1705
|
+
try {
|
|
1706
|
+
await trpc.tests.runTests.mutate({ agent, testId });
|
|
1707
|
+
} finally {
|
|
1708
|
+
if (pollTimer) clearInterval(pollTimer);
|
|
1709
|
+
pollTimer = null;
|
|
1710
|
+
try {
|
|
1711
|
+
await refresh();
|
|
1712
|
+
} finally {
|
|
1713
|
+
running = false;
|
|
1714
|
+
runScope = null;
|
|
1715
|
+
runSingleTestId = null;
|
|
1716
|
+
}
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1719
|
+
async function cancelCurrentRun() {
|
|
1720
|
+
if (!running || canceling || cancelRequested) return;
|
|
1721
|
+
canceling = true;
|
|
1722
|
+
try {
|
|
1723
|
+
const ok = await trpc.tests.cancelRun.mutate({ agent });
|
|
1724
|
+
if (ok) cancelRequested = true;
|
|
1725
|
+
} catch (e) {
|
|
1726
|
+
console.error(e);
|
|
1727
|
+
} finally {
|
|
1728
|
+
canceling = false;
|
|
1729
|
+
}
|
|
1730
|
+
}
|
|
1711
1731
|
const pinnedCount = tests.filter((t) => t.pinned).length;
|
|
1712
1732
|
const hasPinned = pinnedCount > 0;
|
|
1713
|
-
|
|
1714
|
-
const somePinned = pinnedCount > 0 && !allPinned;
|
|
1733
|
+
tests.length > 0 && pinnedCount === tests.length;
|
|
1715
1734
|
async function addTest() {
|
|
1716
1735
|
const res = await trpc.tests.addTest.mutate({ agent, seed: {}, mergeContexts: true });
|
|
1717
1736
|
tests = [parseTest(res), ...tests];
|
|
@@ -1719,15 +1738,14 @@ function _page($$renderer, $$props) {
|
|
|
1719
1738
|
function parseTest(res) {
|
|
1720
1739
|
return {
|
|
1721
1740
|
...res,
|
|
1741
|
+
step: String(res.step ?? ""),
|
|
1722
1742
|
pinned: res.pinned === "TRUE",
|
|
1723
1743
|
timeout: Number(res.timeout),
|
|
1724
1744
|
similarity_threshold: Number(res.similarity_threshold),
|
|
1725
|
-
context: JSON.stringify(res.context)
|
|
1745
|
+
context: JSON.stringify(res.context),
|
|
1746
|
+
conversation_ui: buildConversationEditorValue(res.conversation || "", res.expected_output || "")
|
|
1726
1747
|
};
|
|
1727
1748
|
}
|
|
1728
|
-
function clamp(n, min, max) {
|
|
1729
|
-
return Math.max(min, Math.min(max, n));
|
|
1730
|
-
}
|
|
1731
1749
|
function formatEvaluation(ev) {
|
|
1732
1750
|
if (!ev) return "";
|
|
1733
1751
|
try {
|
|
@@ -1743,58 +1761,138 @@ function _page($$renderer, $$props) {
|
|
|
1743
1761
|
return {};
|
|
1744
1762
|
}
|
|
1745
1763
|
}
|
|
1746
|
-
const
|
|
1747
|
-
function
|
|
1748
|
-
const
|
|
1749
|
-
|
|
1750
|
-
if (
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
);
|
|
1758
|
-
|
|
1764
|
+
const roleMatch = (line) => line.match(/^\s*(agent|assistant|user|system)\s*:\s*(.*)$/i);
|
|
1765
|
+
function formatExpectedAsAgentBlock(expected) {
|
|
1766
|
+
const trimmed = String(expected ?? "").trimEnd();
|
|
1767
|
+
if (!trimmed) return "";
|
|
1768
|
+
if (/^\s*(agent|assistant)\s*:/i.test(trimmed)) return trimmed;
|
|
1769
|
+
return `Agent: ${trimmed}`;
|
|
1770
|
+
}
|
|
1771
|
+
function buildConversationEditorValue(conversation, expected) {
|
|
1772
|
+
const conv = String(conversation ?? "").trimEnd();
|
|
1773
|
+
const expectedBlock = formatExpectedAsAgentBlock(expected);
|
|
1774
|
+
if (!expectedBlock) return conv;
|
|
1775
|
+
if (!conv) return expectedBlock;
|
|
1776
|
+
return `${conv}
|
|
1777
|
+
${expectedBlock}`;
|
|
1778
|
+
}
|
|
1779
|
+
function parseExpectedFromConversationEditor(text) {
|
|
1780
|
+
const raw = String(text ?? "");
|
|
1781
|
+
const lines = raw.split(/\r?\n/);
|
|
1782
|
+
const blocks = [];
|
|
1783
|
+
let current = null;
|
|
1784
|
+
for (let i = 0; i < lines.length; i++) {
|
|
1785
|
+
const m2 = roleMatch(lines[i]);
|
|
1786
|
+
if (!m2) continue;
|
|
1787
|
+
if (current) {
|
|
1788
|
+
blocks.push({ ...current, endLine: i });
|
|
1789
|
+
}
|
|
1790
|
+
const roleRaw = String(m2[1] ?? "").toLowerCase();
|
|
1791
|
+
const role = roleRaw === "assistant" ? "agent" : roleRaw;
|
|
1792
|
+
current = { role, startLine: i + 1 };
|
|
1793
|
+
}
|
|
1794
|
+
if (current) blocks.push({ ...current, endLine: lines.length });
|
|
1795
|
+
const expectedBlock = blocks.at(-1);
|
|
1796
|
+
const promptBlock = blocks.length >= 2 ? blocks.at(-2) : null;
|
|
1797
|
+
const canExtractExpected = expectedBlock?.role === "agent";
|
|
1798
|
+
const valid = canExtractExpected && promptBlock?.role === "user";
|
|
1799
|
+
if (!canExtractExpected || !expectedBlock) {
|
|
1800
|
+
return { valid: false, expected: "", conversation: raw.trimEnd() };
|
|
1801
|
+
}
|
|
1802
|
+
const expectedLines = lines.slice(expectedBlock.startLine - 1, expectedBlock.endLine);
|
|
1803
|
+
const first = expectedLines[0] ?? "";
|
|
1804
|
+
const m = roleMatch(first);
|
|
1805
|
+
const firstContent = m ? m[2] ?? "" : "";
|
|
1806
|
+
const expected = [firstContent, ...expectedLines.slice(1)].join("\n").trimEnd();
|
|
1807
|
+
const conversation = lines.slice(0, expectedBlock.startLine - 1).join("\n").trimEnd();
|
|
1808
|
+
return {
|
|
1809
|
+
valid,
|
|
1810
|
+
expected,
|
|
1811
|
+
conversation,
|
|
1812
|
+
highlight: {
|
|
1813
|
+
startLine: expectedBlock.startLine,
|
|
1814
|
+
endLine: expectedBlock.endLine
|
|
1815
|
+
}
|
|
1816
|
+
};
|
|
1817
|
+
}
|
|
1818
|
+
function erf(x) {
|
|
1819
|
+
const sign = x < 0 ? -1 : 1;
|
|
1820
|
+
const ax = Math.abs(x);
|
|
1821
|
+
const a1 = 0.254829592;
|
|
1822
|
+
const a2 = -0.284496736;
|
|
1823
|
+
const a3 = 1.421413741;
|
|
1824
|
+
const a4 = -1.453152027;
|
|
1825
|
+
const a5 = 1.061405429;
|
|
1826
|
+
const p = 0.3275911;
|
|
1827
|
+
const t = 1 / (1 + p * ax);
|
|
1828
|
+
const y = 1 - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t * Math.exp(-ax * ax);
|
|
1829
|
+
return sign * y;
|
|
1830
|
+
}
|
|
1831
|
+
function normalCdf(x) {
|
|
1832
|
+
return 0.5 * (1 + erf(x / Math.SQRT2));
|
|
1833
|
+
}
|
|
1834
|
+
function twoProportionZTestPValue(x1, n1, x2, n2) {
|
|
1835
|
+
if (!Number.isFinite(x1) || !Number.isFinite(n1) || !Number.isFinite(x2) || !Number.isFinite(n2)) return null;
|
|
1836
|
+
if (n1 <= 0 || n2 <= 0) return null;
|
|
1837
|
+
const p1 = x1 / n1;
|
|
1838
|
+
const p2 = x2 / n2;
|
|
1839
|
+
const pooled = (x1 + x2) / (n1 + n2);
|
|
1840
|
+
const denom = Math.sqrt(pooled * (1 - pooled) * (1 / n1 + 1 / n2));
|
|
1841
|
+
if (!Number.isFinite(denom) || denom <= 0) return null;
|
|
1842
|
+
const z = (p2 - p1) / denom;
|
|
1843
|
+
const p = 2 * (1 - normalCdf(Math.abs(z)));
|
|
1844
|
+
return Math.max(0, Math.min(1, p));
|
|
1845
|
+
}
|
|
1846
|
+
function getExpectedTrend(result, expectedRuns) {
|
|
1847
|
+
if (!result || result.isOld) return null;
|
|
1848
|
+
const doneRuns = result.total_runs;
|
|
1849
|
+
if (doneRuns <= 0) return null;
|
|
1850
|
+
const prev = result.previous;
|
|
1851
|
+
const prevRate = prev && prev.total_runs > 0 ? prev.success_count / prev.total_runs : null;
|
|
1852
|
+
const currRate = result.successes / doneRuns;
|
|
1853
|
+
const direction = prevRate === null ? "higher" : currRate >= prevRate ? "higher" : "lower";
|
|
1854
|
+
const significant = (() => {
|
|
1855
|
+
if (doneRuns <= 5 || !prev || prev.total_runs <= 0) return false;
|
|
1856
|
+
const pValue = twoProportionZTestPValue(prev.success_count, prev.total_runs, result.successes, doneRuns);
|
|
1857
|
+
return pValue !== null && pValue < 0.05;
|
|
1858
|
+
})();
|
|
1859
|
+
const showExpected = Number.isFinite(expectedRuns) && expectedRuns > 0 && doneRuns < expectedRuns;
|
|
1860
|
+
if (!showExpected && !significant) return null;
|
|
1861
|
+
const expectedSuccesses = showExpected ? Math.round(result.successes / doneRuns * expectedRuns) : void 0;
|
|
1862
|
+
return {
|
|
1863
|
+
showExpected,
|
|
1864
|
+
expectedSuccesses,
|
|
1865
|
+
expectedRuns,
|
|
1866
|
+
significant,
|
|
1867
|
+
direction
|
|
1868
|
+
};
|
|
1759
1869
|
}
|
|
1760
1870
|
async function saveRow(id, patch) {
|
|
1761
1871
|
await trpc.tests.patchTest.mutate({ agent, id, patch });
|
|
1762
1872
|
}
|
|
1763
|
-
|
|
1764
|
-
|
|
1873
|
+
function openTestContext(row) {
|
|
1874
|
+
if (!agent) return;
|
|
1875
|
+
testContextPopoverTestId = row.id;
|
|
1876
|
+
testContextDraft = safeClone(parseJson(row.context));
|
|
1765
1877
|
}
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
return s || "";
|
|
1771
|
-
}
|
|
1772
|
-
};
|
|
1773
|
-
const currentAgentNorm = (() => {
|
|
1774
|
-
return dec(agent).trim().replace(/^\/+|\/+$/g, "");
|
|
1775
|
-
})();
|
|
1776
|
-
const activeTopTab = (() => page.url.pathname.split("/")[1])();
|
|
1777
|
-
function handleTabChange({ value }) {
|
|
1778
|
-
if (value === activeTopTab) return;
|
|
1779
|
-
page.url.searchParams.get("step");
|
|
1780
|
-
if (value === "roleplay") {
|
|
1781
|
-
goto();
|
|
1782
|
-
return;
|
|
1783
|
-
}
|
|
1784
|
-
if (value === "tests") {
|
|
1785
|
-
goto();
|
|
1878
|
+
async function closeTestContextPopover() {
|
|
1879
|
+
const id = testContextPopoverTestId;
|
|
1880
|
+
if (!id || !agent) {
|
|
1881
|
+
testContextPopoverTestId = null;
|
|
1786
1882
|
return;
|
|
1787
1883
|
}
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1884
|
+
const draft = safeClone(testContextDraft);
|
|
1885
|
+
testContextPopoverTestId = null;
|
|
1886
|
+
tests = tests.map((t) => t.id === id ? { ...t, context: JSON.stringify(draft) } : t);
|
|
1887
|
+
try {
|
|
1888
|
+
await trackSave(saveRow(id, { context: draft }));
|
|
1889
|
+
} catch (e) {
|
|
1890
|
+
console.error(e);
|
|
1891
|
+
await refresh();
|
|
1791
1892
|
}
|
|
1792
|
-
goto();
|
|
1793
1893
|
}
|
|
1794
|
-
function
|
|
1795
|
-
|
|
1796
|
-
const [proj, ag] = (agentId || "").split("/");
|
|
1797
|
-
if (proj && ag) goto();
|
|
1894
|
+
async function saveConfigPatch(patch) {
|
|
1895
|
+
await trpc.tests.updateConfig.mutate({ agent, cfg: patch });
|
|
1798
1896
|
}
|
|
1799
1897
|
onDestroy(() => {
|
|
1800
1898
|
if (pollTimer) clearInterval(pollTimer);
|
|
@@ -1803,149 +1901,8 @@ function _page($$renderer, $$props) {
|
|
|
1803
1901
|
let $$inner_renderer;
|
|
1804
1902
|
function $$render_inner($$renderer3) {
|
|
1805
1903
|
head($$renderer3, ($$renderer4) => {
|
|
1806
|
-
$$renderer4.title(($$renderer5) => {
|
|
1807
|
-
$$renderer5.push(`<title>Recombine: Tests</title>`);
|
|
1808
|
-
});
|
|
1809
1904
|
$$renderer4.push(`<link rel="preload" href="/ui/arrow_tests.svg" as="image"/>`);
|
|
1810
1905
|
});
|
|
1811
|
-
$$renderer3.push(`<div class="flex h-screen">`);
|
|
1812
|
-
AgentSidebar($$renderer3, {
|
|
1813
|
-
className: "flex-none",
|
|
1814
|
-
agents,
|
|
1815
|
-
currentAgent: currentAgentNorm,
|
|
1816
|
-
onAgentClick: handleAgentClick
|
|
1817
|
-
});
|
|
1818
|
-
$$renderer3.push(`<!----> <div class="flex h-full min-w-0 flex-1 flex-col bg-rc-gray-980 pb-3 pr-4 pt-2"><nav class="mb-3 flex h-14 flex-none items-center justify-between bg-rc-gray-980"><div class="flex items-center">`);
|
|
1819
|
-
Tabs($$renderer3, {
|
|
1820
|
-
value: activeTopTab,
|
|
1821
|
-
ariaLabel: "Top tabs",
|
|
1822
|
-
onChange: handleTabChange,
|
|
1823
|
-
children: ($$renderer4) => {
|
|
1824
|
-
Tab($$renderer4, {
|
|
1825
|
-
value: "roleplay",
|
|
1826
|
-
children: ($$renderer5) => {
|
|
1827
|
-
$$renderer5.push(`<!---->Roleplay`);
|
|
1828
|
-
}
|
|
1829
|
-
});
|
|
1830
|
-
$$renderer4.push(`<!----> `);
|
|
1831
|
-
Tab($$renderer4, {
|
|
1832
|
-
value: "tests",
|
|
1833
|
-
children: ($$renderer5) => {
|
|
1834
|
-
$$renderer5.push(`<!---->Tests`);
|
|
1835
|
-
}
|
|
1836
|
-
});
|
|
1837
|
-
$$renderer4.push(`<!----> `);
|
|
1838
|
-
Tab($$renderer4, {
|
|
1839
|
-
value: "traces",
|
|
1840
|
-
children: ($$renderer5) => {
|
|
1841
|
-
$$renderer5.push(`<!---->Traces`);
|
|
1842
|
-
}
|
|
1843
|
-
});
|
|
1844
|
-
$$renderer4.push(`<!---->`);
|
|
1845
|
-
},
|
|
1846
|
-
$$slots: { default: true }
|
|
1847
|
-
});
|
|
1848
|
-
$$renderer3.push(`<!----></div> `);
|
|
1849
|
-
Panel($$renderer3, {
|
|
1850
|
-
class: "!rounded-none p-3 pr-0",
|
|
1851
|
-
children: ($$renderer4) => {
|
|
1852
|
-
$$renderer4.push(`<div class="flex items-center gap-16"><div class="flex items-center">`);
|
|
1853
|
-
Button($$renderer4, {
|
|
1854
|
-
variant: "ghost",
|
|
1855
|
-
class: "text-sm font-semibold text-rc-gray-400 underline decoration-dashed underline-offset-4 hover:text-rc-gray-200",
|
|
1856
|
-
onclick: () => {
|
|
1857
|
-
defaultContextDraft = safeClone(defaultContext);
|
|
1858
|
-
showDefaultContextModal = true;
|
|
1859
|
-
},
|
|
1860
|
-
children: ($$renderer5) => {
|
|
1861
|
-
$$renderer5.push(`<!---->Default context`);
|
|
1862
|
-
},
|
|
1863
|
-
$$slots: { default: true }
|
|
1864
|
-
});
|
|
1865
|
-
$$renderer4.push(`<!----> <div class="relative inline-flex items-center">`);
|
|
1866
|
-
Button($$renderer4, {
|
|
1867
|
-
variant: "secondary",
|
|
1868
|
-
onclick: addTest,
|
|
1869
|
-
children: ($$renderer5) => {
|
|
1870
|
-
$$renderer5.push(`<!---->New test`);
|
|
1871
|
-
},
|
|
1872
|
-
$$slots: { default: true }
|
|
1873
|
-
});
|
|
1874
|
-
$$renderer4.push(`<!----> `);
|
|
1875
|
-
if (hasFetchedTests && tests.length === 0) {
|
|
1876
|
-
$$renderer4.push("<!--[-->");
|
|
1877
|
-
$$renderer4.push(`<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>`);
|
|
1878
|
-
} else {
|
|
1879
|
-
$$renderer4.push("<!--[!-->");
|
|
1880
|
-
}
|
|
1881
|
-
$$renderer4.push(`<!--]--></div></div> <div class="flex flex-wrap items-center gap-3">`);
|
|
1882
|
-
if (running) {
|
|
1883
|
-
$$renderer4.push("<!--[-->");
|
|
1884
|
-
$$renderer4.push(`<div class="mr-3 flex items-center gap-3"><span class="animate-pulse rounded bg-rc-green-200 px-2 py-1 text-xs text-white">Running… ${escape_html(runDone)}/${escape_html(runTotal)}</span></div>`);
|
|
1885
|
-
} else {
|
|
1886
|
-
$$renderer4.push("<!--[!-->");
|
|
1887
|
-
}
|
|
1888
|
-
$$renderer4.push(`<!--]--> <div class="flex items-center gap-2"><label class="font-semibold text-rc-gray-300">Repeats</label> `);
|
|
1889
|
-
Input($$renderer4, {
|
|
1890
|
-
type: "number",
|
|
1891
|
-
min: "0",
|
|
1892
|
-
max: "500",
|
|
1893
|
-
class: "w-16",
|
|
1894
|
-
onchange: () => {
|
|
1895
|
-
repeats = clamp(+repeats || 0, 0, 500);
|
|
1896
|
-
trackSave(saveConfigPatch({ repeats }));
|
|
1897
|
-
},
|
|
1898
|
-
get value() {
|
|
1899
|
-
return repeats;
|
|
1900
|
-
},
|
|
1901
|
-
set value($$value) {
|
|
1902
|
-
repeats = $$value;
|
|
1903
|
-
$$settled = false;
|
|
1904
|
-
}
|
|
1905
|
-
});
|
|
1906
|
-
$$renderer4.push(`<!----></div> <div class="flex items-center gap-2"><label class="font-semibold text-rc-gray-300">Concurrency</label> `);
|
|
1907
|
-
Input($$renderer4, {
|
|
1908
|
-
type: "number",
|
|
1909
|
-
min: "0",
|
|
1910
|
-
max: "20",
|
|
1911
|
-
class: "w-16",
|
|
1912
|
-
onchange: () => {
|
|
1913
|
-
concurrency = clamp(+concurrency || 0, 0, 20);
|
|
1914
|
-
trackSave(saveConfigPatch({ concurrency }));
|
|
1915
|
-
},
|
|
1916
|
-
get value() {
|
|
1917
|
-
return concurrency;
|
|
1918
|
-
},
|
|
1919
|
-
set value($$value) {
|
|
1920
|
-
concurrency = $$value;
|
|
1921
|
-
$$settled = false;
|
|
1922
|
-
}
|
|
1923
|
-
});
|
|
1924
|
-
$$renderer4.push(`<!----></div> `);
|
|
1925
|
-
Button($$renderer4, {
|
|
1926
|
-
variant: "secondary",
|
|
1927
|
-
class: "disabled:cursor-not-allowed disabled:opacity-50",
|
|
1928
|
-
disabled: !hasPinned || running || isSaving,
|
|
1929
|
-
onclick: () => run("pinned"),
|
|
1930
|
-
children: ($$renderer5) => {
|
|
1931
|
-
$$renderer5.push(`<!---->Run pinned`);
|
|
1932
|
-
},
|
|
1933
|
-
$$slots: { default: true }
|
|
1934
|
-
});
|
|
1935
|
-
$$renderer4.push(`<!----> `);
|
|
1936
|
-
Button($$renderer4, {
|
|
1937
|
-
class: "disabled:cursor-not-allowed disabled:opacity-50",
|
|
1938
|
-
disabled: running || isSaving || tests.length === 0,
|
|
1939
|
-
onclick: () => run("all"),
|
|
1940
|
-
children: ($$renderer5) => {
|
|
1941
|
-
$$renderer5.push(`<!---->Run all`);
|
|
1942
|
-
},
|
|
1943
|
-
$$slots: { default: true }
|
|
1944
|
-
});
|
|
1945
|
-
$$renderer4.push(`<!----></div></div>`);
|
|
1946
|
-
}
|
|
1947
|
-
});
|
|
1948
|
-
$$renderer3.push(`<!----></nav> `);
|
|
1949
1906
|
{
|
|
1950
1907
|
let children = function($$renderer4) {
|
|
1951
1908
|
ContextEditor($$renderer4, {
|
|
@@ -1960,9 +1917,7 @@ function _page($$renderer, $$props) {
|
|
|
1960
1917
|
Button($$renderer4, {
|
|
1961
1918
|
variant: "outlined",
|
|
1962
1919
|
size: "small",
|
|
1963
|
-
onclick: () =>
|
|
1964
|
-
showDefaultContextModal = false;
|
|
1965
|
-
},
|
|
1920
|
+
onclick: () => showDefaultContextModal = false,
|
|
1966
1921
|
children: ($$renderer5) => {
|
|
1967
1922
|
$$renderer5.push(`<!---->Cancel`);
|
|
1968
1923
|
},
|
|
@@ -2000,51 +1955,34 @@ function _page($$renderer, $$props) {
|
|
|
2000
1955
|
$$renderer3.push(`<!----> `);
|
|
2001
1956
|
{
|
|
2002
1957
|
let children = function($$renderer4) {
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
1958
|
+
{
|
|
1959
|
+
$$renderer4.push("<!--[!-->");
|
|
1960
|
+
{
|
|
1961
|
+
$$renderer4.push("<!--[!-->");
|
|
1962
|
+
$$renderer4.push(`<pre class="whitespace-pre-wrap font-mono text-gray-200">${escape_html("—")}</pre>`);
|
|
1963
|
+
}
|
|
1964
|
+
$$renderer4.push(`<!--]-->`);
|
|
1965
|
+
}
|
|
1966
|
+
$$renderer4.push(`<!--]-->`);
|
|
2009
1967
|
}, footer = function($$renderer4) {
|
|
2010
1968
|
Button($$renderer4, {
|
|
2011
1969
|
variant: "outlined",
|
|
2012
1970
|
size: "small",
|
|
2013
|
-
onclick: () =>
|
|
2014
|
-
showTestContextModal = false;
|
|
2015
|
-
activeContextTestId = null;
|
|
2016
|
-
},
|
|
2017
|
-
children: ($$renderer5) => {
|
|
2018
|
-
$$renderer5.push(`<!---->Cancel`);
|
|
2019
|
-
},
|
|
2020
|
-
$$slots: { default: true }
|
|
2021
|
-
});
|
|
2022
|
-
$$renderer4.push(`<!----> `);
|
|
2023
|
-
Button($$renderer4, {
|
|
2024
|
-
size: "small",
|
|
2025
|
-
onclick: async () => {
|
|
2026
|
-
const row = tests.find((r) => r.id === activeContextTestId);
|
|
2027
|
-
if (row) {
|
|
2028
|
-
row.context = testContextDraft;
|
|
2029
|
-
await trackSave(saveRow(row.id, { context: JSON.parse(row.context) }));
|
|
2030
|
-
}
|
|
2031
|
-
showTestContextModal = false;
|
|
2032
|
-
activeContextTestId = null;
|
|
2033
|
-
},
|
|
1971
|
+
onclick: () => showViewerModal = false,
|
|
2034
1972
|
children: ($$renderer5) => {
|
|
2035
|
-
$$renderer5.push(`<!---->
|
|
1973
|
+
$$renderer5.push(`<!---->Close`);
|
|
2036
1974
|
},
|
|
2037
1975
|
$$slots: { default: true }
|
|
2038
1976
|
});
|
|
2039
|
-
$$renderer4.push(`<!---->`);
|
|
2040
1977
|
};
|
|
2041
1978
|
Modal($$renderer3, {
|
|
2042
|
-
title:
|
|
1979
|
+
title: viewerTitle,
|
|
1980
|
+
class: "!w-[80vw] !max-w-5xl",
|
|
2043
1981
|
get open() {
|
|
2044
|
-
return
|
|
1982
|
+
return showViewerModal;
|
|
2045
1983
|
},
|
|
2046
1984
|
set open($$value) {
|
|
2047
|
-
|
|
1985
|
+
showViewerModal = $$value;
|
|
2048
1986
|
$$settled = false;
|
|
2049
1987
|
},
|
|
2050
1988
|
children,
|
|
@@ -2052,69 +1990,152 @@ function _page($$renderer, $$props) {
|
|
|
2052
1990
|
$$slots: { default: true, footer: true }
|
|
2053
1991
|
});
|
|
2054
1992
|
}
|
|
1993
|
+
$$renderer3.push(`<!----> <div class="flex h-full min-h-0 flex-col"><div class="flex flex-none items-center justify-between gap-3 border-b border-rc-gray-700 p-2"><div class="flex items-center gap-3">`);
|
|
1994
|
+
Button($$renderer3, {
|
|
1995
|
+
variant: "secondary",
|
|
1996
|
+
disabled: running || isSaving || !agent,
|
|
1997
|
+
onclick: () => {
|
|
1998
|
+
defaultContextDraft = safeClone(defaultContext);
|
|
1999
|
+
showDefaultContextModal = true;
|
|
2000
|
+
},
|
|
2001
|
+
children: ($$renderer4) => {
|
|
2002
|
+
$$renderer4.push(`<!---->Edit default context`);
|
|
2003
|
+
},
|
|
2004
|
+
$$slots: { default: true }
|
|
2005
|
+
});
|
|
2006
|
+
$$renderer3.push(`<!----> <div class="relative inline-flex items-center">`);
|
|
2007
|
+
Button($$renderer3, {
|
|
2008
|
+
variant: "secondary",
|
|
2009
|
+
onclick: addTest,
|
|
2010
|
+
disabled: isSaving || running || !agent,
|
|
2011
|
+
children: ($$renderer4) => {
|
|
2012
|
+
$$renderer4.push(`<!---->New test`);
|
|
2013
|
+
},
|
|
2014
|
+
$$slots: { default: true }
|
|
2015
|
+
});
|
|
2055
2016
|
$$renderer3.push(`<!----> `);
|
|
2056
|
-
{
|
|
2057
|
-
|
|
2058
|
-
|
|
2017
|
+
if (hasFetchedTests && tests.length === 0) {
|
|
2018
|
+
$$renderer3.push("<!--[-->");
|
|
2019
|
+
$$renderer3.push(`<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>`);
|
|
2020
|
+
} else {
|
|
2021
|
+
$$renderer3.push("<!--[!-->");
|
|
2022
|
+
}
|
|
2023
|
+
$$renderer3.push(`<!--]--></div></div> <div class="flex flex-wrap items-center gap-3">`);
|
|
2024
|
+
if (running) {
|
|
2025
|
+
$$renderer3.push("<!--[-->");
|
|
2026
|
+
$$renderer3.push(`<div class="mr-3 flex items-center gap-3"><span class="animate-pulse rounded bg-rc-green-200 px-3 py-1 text-white">Running… ${escape_html(runDone)}/${escape_html(runTotal)}</span> `);
|
|
2027
|
+
Button($$renderer3, {
|
|
2028
|
+
variant: "secondary",
|
|
2029
|
+
disabled: canceling || cancelRequested,
|
|
2030
|
+
onclick: cancelCurrentRun,
|
|
2031
|
+
children: ($$renderer4) => {
|
|
2032
|
+
$$renderer4.push(`<!---->${escape_html(cancelRequested ? "Cancel requested…" : canceling ? "Canceling…" : "Cancel")}`);
|
|
2033
|
+
},
|
|
2034
|
+
$$slots: { default: true }
|
|
2035
|
+
});
|
|
2036
|
+
$$renderer3.push(`<!----></div>`);
|
|
2037
|
+
} else {
|
|
2038
|
+
$$renderer3.push("<!--[!-->");
|
|
2039
|
+
}
|
|
2040
|
+
$$renderer3.push(`<!--]--> <div class="flex items-center gap-2"><label class="text-rc-gray-300">Repeats</label> `);
|
|
2041
|
+
Input($$renderer3, {
|
|
2042
|
+
type: "number",
|
|
2043
|
+
min: "0",
|
|
2044
|
+
max: "500",
|
|
2045
|
+
class: "w-16",
|
|
2046
|
+
onchange: () => {
|
|
2047
|
+
repeats = clamp(+repeats || 0, 0, 500);
|
|
2048
|
+
trackSave(saveConfigPatch({ repeats }));
|
|
2049
|
+
},
|
|
2050
|
+
get value() {
|
|
2051
|
+
return repeats;
|
|
2052
|
+
},
|
|
2053
|
+
set value($$value) {
|
|
2054
|
+
repeats = $$value;
|
|
2055
|
+
$$settled = false;
|
|
2056
|
+
}
|
|
2057
|
+
});
|
|
2058
|
+
$$renderer3.push(`<!----></div> <div class="flex items-center gap-2"><label class="text-rc-gray-300">Concurrency</label> `);
|
|
2059
|
+
Input($$renderer3, {
|
|
2060
|
+
type: "number",
|
|
2061
|
+
min: "0",
|
|
2062
|
+
max: "20",
|
|
2063
|
+
class: "w-16",
|
|
2064
|
+
onchange: () => {
|
|
2065
|
+
concurrency = clamp(+concurrency || 0, 0, 20);
|
|
2066
|
+
trackSave(saveConfigPatch({ concurrency }));
|
|
2067
|
+
},
|
|
2068
|
+
get value() {
|
|
2069
|
+
return concurrency;
|
|
2070
|
+
},
|
|
2071
|
+
set value($$value) {
|
|
2072
|
+
concurrency = $$value;
|
|
2073
|
+
$$settled = false;
|
|
2074
|
+
}
|
|
2075
|
+
});
|
|
2076
|
+
$$renderer3.push(`<!----></div> `);
|
|
2077
|
+
Button($$renderer3, {
|
|
2078
|
+
class: "disabled:cursor-not-allowed disabled:opacity-50",
|
|
2079
|
+
disabled: running || isSaving || tests.length === 0 || hasPinned && pinnedCount === 0,
|
|
2080
|
+
onclick: () => run(hasPinned ? "pinned" : "all"),
|
|
2081
|
+
children: ($$renderer4) => {
|
|
2082
|
+
$$renderer4.push(`<!---->▶ ${escape_html(hasPinned ? "Run pinned" : "Run all")}`);
|
|
2083
|
+
},
|
|
2084
|
+
$$slots: { default: true }
|
|
2085
|
+
});
|
|
2086
|
+
$$renderer3.push(`<!----></div></div> <div class="min-h-0 flex-1 overflow-hidden p-2">`);
|
|
2087
|
+
Panel($$renderer3, {
|
|
2088
|
+
class: "relative flex h-full min-w-0 flex-col overflow-hidden !rounded-none p-0",
|
|
2089
|
+
children: ($$renderer4) => {
|
|
2090
|
+
$$renderer4.push(`<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"><button${attr_class(
|
|
2091
|
+
`icon-btn justify-self-center ${stringify(hasPinned ? "text-rc-green-350 hover:text-rc-green-250" : "text-gray-300 hover:text-gray-100")}`,
|
|
2092
|
+
"svelte-rdft55"
|
|
2093
|
+
)} aria-label="Pin/unpin all" title="Pin/unpin all"${attr("disabled", running || isSaving || tests.length === 0, true)}>`);
|
|
2094
|
+
Icon($$renderer4, {
|
|
2095
|
+
class: "block",
|
|
2096
|
+
icon: hasPinned ? "mdi:pin" : "mdi:pin-outline",
|
|
2097
|
+
width: 18,
|
|
2098
|
+
height: 18
|
|
2099
|
+
});
|
|
2100
|
+
$$renderer4.push(`<!----></button> <span class="text-left text-rc-gray-300">Pinned: ${escape_html(pinnedCount)}/${escape_html(tests.length)}</span></div> `);
|
|
2101
|
+
if (!hasFetchedTests) {
|
|
2059
2102
|
$$renderer4.push("<!--[-->");
|
|
2060
|
-
$$renderer4.push(`<div class="
|
|
2103
|
+
$$renderer4.push(`<div class="p-3 text-gray-400">Loading tests…</div>`);
|
|
2061
2104
|
} else {
|
|
2062
2105
|
$$renderer4.push("<!--[!-->");
|
|
2063
|
-
if (
|
|
2106
|
+
if (tests.length === 0) {
|
|
2064
2107
|
$$renderer4.push("<!--[-->");
|
|
2065
|
-
$$renderer4.push(`<div class="
|
|
2108
|
+
$$renderer4.push(`<div class="p-3 text-gray-400">—</div>`);
|
|
2066
2109
|
} else {
|
|
2067
2110
|
$$renderer4.push("<!--[!-->");
|
|
2068
|
-
$$renderer4.push(`<
|
|
2069
|
-
}
|
|
2070
|
-
$$renderer4.push(`<!--]-->`);
|
|
2071
|
-
}
|
|
2072
|
-
$$renderer4.push(`<!--]-->`);
|
|
2073
|
-
};
|
|
2074
|
-
Modal($$renderer3, {
|
|
2075
|
-
title: viewerTitle,
|
|
2076
|
-
class: "w-fit min-w-[560px]",
|
|
2077
|
-
get open() {
|
|
2078
|
-
return showViewerModal;
|
|
2079
|
-
},
|
|
2080
|
-
set open($$value) {
|
|
2081
|
-
showViewerModal = $$value;
|
|
2082
|
-
$$settled = false;
|
|
2083
|
-
},
|
|
2084
|
-
children,
|
|
2085
|
-
$$slots: { default: true }
|
|
2086
|
-
});
|
|
2087
|
-
}
|
|
2088
|
-
$$renderer3.push(`<!----> <div class="rc-scroll h-[calc(100vh-3.5rem)] overflow-auto p-0">`);
|
|
2089
|
-
if (!hasFetchedTests) {
|
|
2090
|
-
$$renderer3.push("<!--[-->");
|
|
2091
|
-
$$renderer3.push(`<div class="flex h-full items-center justify-center text-sm text-gray-400">Loading tests…</div>`);
|
|
2092
|
-
} else {
|
|
2093
|
-
$$renderer3.push("<!--[!-->");
|
|
2094
|
-
if (tests.length > 0) {
|
|
2095
|
-
$$renderer3.push("<!--[-->");
|
|
2096
|
-
Panel($$renderer3, {
|
|
2097
|
-
class: "overflow-hidden !rounded-none p-0",
|
|
2098
|
-
children: ($$renderer4) => {
|
|
2099
|
-
$$renderer4.push(`<div class="overflow-auto"><table class="min-w-full text-sm"><thead><tr class="align-top"><th class="w-20 p-0 text-center"><div class="flex items-center justify-end pr-2"><span class="font-normal">Pin all</span> <button${attr_class(`inline-flex h-8 w-8 items-center justify-center rounded disabled:cursor-not-allowed disabled:opacity-50 ${stringify(allPinned || somePinned ? "text-rc-green-400 hover:text-rc-green-300" : "text-gray-400 hover:text-gray-200")}`)} aria-label="Pin/unpin all" title="Pin/unpin all"${attr("disabled", running || isSaving || tests.length === 0, true)}>`);
|
|
2100
|
-
Icon($$renderer4, {
|
|
2101
|
-
icon: allPinned ? "mdi:pin" : "mdi:pin-outline",
|
|
2102
|
-
width: 18,
|
|
2103
|
-
height: 18,
|
|
2104
|
-
class: "relative top-[1px]"
|
|
2105
|
-
});
|
|
2106
|
-
$$renderer4.push(`<!----></button></div></th><th class="p-0"><div class="p-2"><div class="grid grid-cols-1 gap-3 md:grid-cols-12"><div class="flex items-center justify-between md:col-span-4"><span class="text-left font-semibold text-rc-gray-300">Pinned: ${escape_html(pinnedCount)}/${escape_html(tests.length)}</span> <span class="mr-3 text-right font-semibold uppercase tracking-wide text-gray-300">Test</span></div> <div class="ml-3 text-left font-semibold uppercase tracking-wide text-gray-300 md:col-span-8">Result</div></div></div></th></tr></thead><tbody><!--[-->`);
|
|
2111
|
+
$$renderer4.push(`<div class="flex flex-col space-y-5"><!--[-->`);
|
|
2107
2112
|
const each_array = ensure_array_like(tests);
|
|
2108
2113
|
for (let i = 0, $$length = each_array.length; i < $$length; i++) {
|
|
2109
2114
|
let t = each_array[i];
|
|
2110
|
-
|
|
2115
|
+
const expectedInfo = parseExpectedFromConversationEditor(t.conversation_ui);
|
|
2116
|
+
$$renderer4.push(`<div class="border-b border-rc-gray-700 p-2"${attr("data-id", t.id)}><div class="grid grid-cols-[2.25rem,1fr] gap-2"><div class="flex flex-col items-center gap-1"><button${attr_class(
|
|
2117
|
+
`icon-btn ${stringify(t.pinned ? "text-rc-green-350 hover:text-rc-green-250" : "text-gray-300 hover:text-gray-100")}`,
|
|
2118
|
+
"svelte-rdft55"
|
|
2119
|
+
)}${attr("aria-label", t.pinned ? "Unpin" : "Pin")}${attr("title", t.pinned ? "Unpin" : "Pin")}${attr("disabled", running || isSaving, true)}>`);
|
|
2111
2120
|
Icon($$renderer4, {
|
|
2121
|
+
class: "block",
|
|
2112
2122
|
icon: t.pinned ? "mdi:pin" : "mdi:pin-outline",
|
|
2113
2123
|
width: 18,
|
|
2114
|
-
height: 18
|
|
2115
|
-
class: "relative top-[1px]"
|
|
2124
|
+
height: 18
|
|
2116
2125
|
});
|
|
2117
|
-
$$renderer4.push(`<!----></button
|
|
2126
|
+
$$renderer4.push(`<!----></button> <button title="Duplicate" class="icon-btn text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"${attr("disabled", running || isSaving, true)}>`);
|
|
2127
|
+
Icon($$renderer4, { icon: "mdi:content-copy", width: 18, height: 18 });
|
|
2128
|
+
$$renderer4.push(`<!----></button> <button title="Delete" class="icon-btn text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"${attr("disabled", running || isSaving, true)}>`);
|
|
2129
|
+
Icon($$renderer4, { icon: "mdi:trash-can-outline", width: 18, height: 18 });
|
|
2130
|
+
$$renderer4.push(`<!----></button></div> <div class="min-w-0"><div${attr_class(`left-details-bg flex flex-col rounded border ${expectedInfo.valid ? "border-rc-gray-700" : "border-rc-red-600"}`, "svelte-rdft55")}><div class="left-details-bg sticky top-0 z-10 rounded-t border-b border-rc-gray-700 px-2 pb-1 pt-2 svelte-rdft55"><input class="card-input-title svelte-rdft55" type="text" placeholder="Scenario"${attr("value", t.scenario)}/></div> <div class="flex flex-col gap-2 p-2">`);
|
|
2131
|
+
if (!expectedInfo.valid) {
|
|
2132
|
+
$$renderer4.push("<!--[-->");
|
|
2133
|
+
$$renderer4.push(`<div class="text-rc-red-600">Invalid test: expected must be the last block (“Agent: …”), with a prompt
|
|
2134
|
+
“User: …” block right above it</div>`);
|
|
2135
|
+
} else {
|
|
2136
|
+
$$renderer4.push("<!--[!-->");
|
|
2137
|
+
}
|
|
2138
|
+
$$renderer4.push(`<!--]--> <input class="card-input-subtle svelte-rdft55" type="text" placeholder="Author"${attr("value", t.author)}/> <div class="flex items-center gap-2">`);
|
|
2118
2139
|
$$renderer4.select(
|
|
2119
2140
|
{
|
|
2120
2141
|
class: "rc-scroll rc-input w-36",
|
|
@@ -2133,65 +2154,86 @@ function _page($$renderer, $$props) {
|
|
|
2133
2154
|
}
|
|
2134
2155
|
$$renderer5.push(`<!--]-->`);
|
|
2135
2156
|
},
|
|
2136
|
-
"svelte-
|
|
2157
|
+
"svelte-rdft55"
|
|
2137
2158
|
);
|
|
2138
|
-
$$renderer4.push(` <input class="rc-input min-w-0 flex-1 svelte-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
try {
|
|
2149
|
-
const str = JSON.stringify(ctx);
|
|
2150
|
-
t.context = str;
|
|
2151
|
-
saveRowDebounced(t.id, { context: ctx });
|
|
2152
|
-
} catch {
|
|
2153
|
-
}
|
|
2154
|
-
}
|
|
2159
|
+
$$renderer4.push(` <input class="rc-input min-w-0 flex-1 svelte-rdft55" type="text"${attr("value", t.assertion_value)} placeholder="Assertion value"/></div> <div class="flex flex-wrap items-center gap-3"><div class="flex items-center gap-2"><span class="text-rc-gray-300">Timeout (s)</span> <input class="rc-input no-spin w-16 svelte-rdft55" type="number" min="0" max="999"${attr("value", t.timeout)} placeholder="Timeout"/></div> <div class="flex items-center gap-2"><span class="text-rc-gray-300">Similarity (%)</span> <input class="rc-input no-spin w-16 svelte-rdft55" type="number" min="0" max="100"${attr("value", t.similarity_threshold)} placeholder="Similarity (%)"/></div> `);
|
|
2160
|
+
Button($$renderer4, {
|
|
2161
|
+
variant: "secondary",
|
|
2162
|
+
size: "small",
|
|
2163
|
+
disabled: running || isSaving,
|
|
2164
|
+
onclick: () => openTestContext(t),
|
|
2165
|
+
children: ($$renderer5) => {
|
|
2166
|
+
$$renderer5.push(`<!---->Edit context`);
|
|
2167
|
+
},
|
|
2168
|
+
$$slots: { default: true }
|
|
2155
2169
|
});
|
|
2156
|
-
$$renderer4.push(
|
|
2170
|
+
$$renderer4.push(`<!----></div> `);
|
|
2157
2171
|
MiniEditor($$renderer4, {
|
|
2158
|
-
value: t.
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2172
|
+
value: t.conversation_ui,
|
|
2173
|
+
highlights: expectedInfo.highlight ? [
|
|
2174
|
+
{
|
|
2175
|
+
startLine: expectedInfo.highlight.startLine,
|
|
2176
|
+
endLine: expectedInfo.highlight.endLine,
|
|
2177
|
+
className: "test-expected-output"
|
|
2178
|
+
}
|
|
2179
|
+
] : void 0,
|
|
2180
|
+
height: 220
|
|
2163
2181
|
});
|
|
2164
|
-
$$renderer4.push(
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2182
|
+
$$renderer4.push(`<!----></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">`);
|
|
2183
|
+
Button($$renderer4, {
|
|
2184
|
+
size: "small",
|
|
2185
|
+
disabled: running || isSaving || !expectedInfo.valid,
|
|
2186
|
+
title: !expectedInfo.valid ? "Expected must be the last block (“Agent: …”) and there must be a prompt “User: …” block right above it" : "Run",
|
|
2187
|
+
onclick: () => runSingle(t.id),
|
|
2188
|
+
children: ($$renderer5) => {
|
|
2189
|
+
$$renderer5.push(`<!---->▶ Run`);
|
|
2190
|
+
},
|
|
2191
|
+
$$slots: { default: true }
|
|
2171
2192
|
});
|
|
2172
|
-
$$renderer4.push(
|
|
2193
|
+
$$renderer4.push(`<!----> `);
|
|
2173
2194
|
if (t.result) {
|
|
2174
2195
|
$$renderer4.push("<!--[-->");
|
|
2175
|
-
|
|
2196
|
+
const trend = getExpectedTrend(t.result, runExpectedRuns);
|
|
2197
|
+
$$renderer4.push(`<div class="text-lg font-extrabold"><span class="text-rc-gray-200">${escape_html(t.result.successes)}/${escape_html(t.result.total_runs)}</span> `);
|
|
2198
|
+
if (trend?.showExpected) {
|
|
2199
|
+
$$renderer4.push("<!--[-->");
|
|
2200
|
+
$$renderer4.push(`<span class="ml-2 text-rc-gray-400">(${escape_html(trend.expectedSuccesses)}/${escape_html(trend.expectedRuns)} expected)</span>`);
|
|
2201
|
+
} else {
|
|
2202
|
+
$$renderer4.push("<!--[!-->");
|
|
2203
|
+
}
|
|
2204
|
+
$$renderer4.push(`<!--]--> `);
|
|
2205
|
+
if (trend?.significant) {
|
|
2206
|
+
$$renderer4.push("<!--[-->");
|
|
2207
|
+
$$renderer4.push(`<span${attr_class(`ml-2 whitespace-nowrap font-semibold ${trend.direction === "higher" ? "text-rc-green-200" : "text-rc-red-600"}`, "svelte-rdft55")}>`);
|
|
2208
|
+
Icon$1($$renderer4, {
|
|
2209
|
+
name: trend.direction === "higher" ? "chevron-up" : "chevron-down",
|
|
2210
|
+
width: 18,
|
|
2211
|
+
height: 18,
|
|
2212
|
+
class: "inline-block align-text-bottom"
|
|
2213
|
+
});
|
|
2214
|
+
$$renderer4.push(`<!----><span class="ml-1">significant</span></span>`);
|
|
2215
|
+
} else {
|
|
2216
|
+
$$renderer4.push("<!--[!-->");
|
|
2217
|
+
}
|
|
2218
|
+
$$renderer4.push(`<!--]--> `);
|
|
2176
2219
|
if (t.result.isOld) {
|
|
2177
2220
|
$$renderer4.push("<!--[-->");
|
|
2178
2221
|
$$renderer4.push(`<span class="text-rc-gray-400">(old)</span>`);
|
|
2179
2222
|
} else {
|
|
2180
2223
|
$$renderer4.push("<!--[!-->");
|
|
2181
2224
|
}
|
|
2182
|
-
$$renderer4.push(`<!--]--></div
|
|
2225
|
+
$$renderer4.push(`<!--]--></div>`);
|
|
2183
2226
|
} else {
|
|
2184
2227
|
$$renderer4.push("<!--[!-->");
|
|
2185
|
-
$$renderer4.push(`<span class="ml-3 text-gray-500">—</span>`);
|
|
2186
2228
|
}
|
|
2187
2229
|
$$renderer4.push(`<!--]--></div> `);
|
|
2188
2230
|
if (t.result) {
|
|
2189
2231
|
$$renderer4.push("<!--[-->");
|
|
2190
|
-
$$renderer4.push(`<div class="flex flex-col gap-
|
|
2232
|
+
$$renderer4.push(`<div class="mt-3 flex flex-col gap-4"><!--[-->`);
|
|
2191
2233
|
const each_array_2 = ensure_array_like(t.result.runs);
|
|
2192
2234
|
for (let $$index_1 = 0, $$length2 = each_array_2.length; $$index_1 < $$length2; $$index_1++) {
|
|
2193
2235
|
let run2 = each_array_2[$$index_1];
|
|
2194
|
-
$$renderer4.push(`<div class="
|
|
2236
|
+
$$renderer4.push(`<div class="flex flex-col gap-2"><div${attr_class(`w-full whitespace-pre-wrap break-words rounded-lg px-3 py-2 text-rc-gray-100 ${run2.success ? "bg-rc-green-700 backdrop-blur-md" : ""}`, "svelte-rdft55")}${attr_style(!run2.success ? "background-color: rgb(156 80 80)" : "")}>${escape_html(run2.text || "—")}</div> <div${attr_class(`flex w-full flex-col gap-x-4 whitespace-pre-wrap break-words ${run2.success ? "text-rc-green-200" : "text-rc-red-800"}`, "svelte-rdft55")}><div class="flex items-center gap-0">`);
|
|
2195
2237
|
if (run2.success) {
|
|
2196
2238
|
$$renderer4.push("<!--[-->");
|
|
2197
2239
|
Icon$1($$renderer4, {
|
|
@@ -2209,90 +2251,50 @@ function _page($$renderer, $$props) {
|
|
|
2209
2251
|
class: "shrink-0 scale-110 self-start"
|
|
2210
2252
|
});
|
|
2211
2253
|
}
|
|
2212
|
-
$$renderer4.push(`<!--]--> <span>${escape_html(run2.success ? "Pass" : formatEvaluation(run2.evaluation) || "Fail")}</span></div> <div class="mt-1 flex flex-wrap items-center gap-x-4">`);
|
|
2213
|
-
Button($$renderer4, {
|
|
2214
|
-
variant: "outlined",
|
|
2215
|
-
size: "small",
|
|
2216
|
-
class: "border-none !px-0 text-sm text-rc-gray-400 underline decoration-dashed underline-offset-4 hover:bg-transparent hover:text-rc-gray-200",
|
|
2217
|
-
onclick: () => openViewer("Rendered Prompt", run2.links.renderedPrompt),
|
|
2218
|
-
children: ($$renderer5) => {
|
|
2219
|
-
$$renderer5.push(`<!---->Rendered prompt`);
|
|
2220
|
-
},
|
|
2221
|
-
$$slots: { default: true }
|
|
2222
|
-
});
|
|
2223
|
-
$$renderer4.push(`<!----> `);
|
|
2224
|
-
Button($$renderer4, {
|
|
2225
|
-
variant: "outlined",
|
|
2226
|
-
size: "small",
|
|
2227
|
-
class: "border-none !px-0 text-sm text-rc-gray-400 underline decoration-dashed underline-offset-4 hover:bg-transparent hover:text-rc-gray-200",
|
|
2228
|
-
onclick: () => openViewer("Received Prompt", run2.links.receivedPrompt),
|
|
2229
|
-
children: ($$renderer5) => {
|
|
2230
|
-
$$renderer5.push(`<!---->Received prompt`);
|
|
2231
|
-
},
|
|
2232
|
-
$$slots: { default: true }
|
|
2233
|
-
});
|
|
2234
|
-
$$renderer4.push(`<!----> `);
|
|
2235
|
-
Button($$renderer4, {
|
|
2236
|
-
variant: "outlined",
|
|
2237
|
-
size: "small",
|
|
2238
|
-
class: "border-none !px-0 text-sm text-rc-gray-400 underline decoration-dashed underline-offset-4 hover:bg-transparent hover:text-rc-gray-200",
|
|
2239
|
-
onclick: () => openViewer("Conversation", run2.links.conversation),
|
|
2240
|
-
children: ($$renderer5) => {
|
|
2241
|
-
$$renderer5.push(`<!---->Conversation`);
|
|
2242
|
-
},
|
|
2243
|
-
$$slots: { default: true }
|
|
2244
|
-
});
|
|
2245
|
-
$$renderer4.push(`<!----> `);
|
|
2246
|
-
Button($$renderer4, {
|
|
2247
|
-
variant: "outlined",
|
|
2248
|
-
size: "small",
|
|
2249
|
-
class: "border-none !px-0 text-sm text-rc-gray-400 underline decoration-dashed underline-offset-4 hover:bg-transparent hover:text-rc-gray-200",
|
|
2250
|
-
onclick: () => openViewer("Context", run2.links.context),
|
|
2251
|
-
children: ($$renderer5) => {
|
|
2252
|
-
$$renderer5.push(`<!---->Context`);
|
|
2253
|
-
},
|
|
2254
|
-
$$slots: { default: true }
|
|
2255
|
-
});
|
|
2256
|
-
$$renderer4.push(`<!----> `);
|
|
2257
|
-
Button($$renderer4, {
|
|
2258
|
-
variant: "outlined",
|
|
2259
|
-
size: "small",
|
|
2260
|
-
class: "border-none !px-0 text-sm text-rc-gray-400 underline decoration-dashed underline-offset-4 hover:bg-transparent hover:text-rc-gray-200",
|
|
2261
|
-
onclick: () => openViewer("Logs", run2.links.logs),
|
|
2262
|
-
children: ($$renderer5) => {
|
|
2263
|
-
$$renderer5.push(`<!---->Logs`);
|
|
2264
|
-
},
|
|
2265
|
-
$$slots: { default: true }
|
|
2266
|
-
});
|
|
2267
|
-
$$renderer4.push(`<!----> `);
|
|
2268
|
-
Button($$renderer4, {
|
|
2269
|
-
variant: "outlined",
|
|
2270
|
-
size: "small",
|
|
2271
|
-
class: "border-none !px-0 text-sm text-rc-gray-400 underline decoration-dashed underline-offset-4 hover:bg-transparent hover:text-rc-gray-200",
|
|
2272
|
-
onclick: () => openViewer("Traces", run2.links.traces),
|
|
2273
|
-
children: ($$renderer5) => {
|
|
2274
|
-
$$renderer5.push(`<!---->Traces`);
|
|
2275
|
-
},
|
|
2276
|
-
$$slots: { default: true }
|
|
2277
|
-
});
|
|
2278
|
-
$$renderer4.push(`<!----></div></div></div>`);
|
|
2254
|
+
$$renderer4.push(`<!--]--> <span>${escape_html(run2.success ? "Pass" : formatEvaluation(run2.evaluation) || "Fail")}</span></div> <div class="mt-1 flex flex-wrap items-center gap-x-4"><button type="button" class="pseudolink svelte-rdft55">Rendered prompt</button> <button type="button" class="pseudolink svelte-rdft55">Received prompt</button> <button type="button" class="pseudolink svelte-rdft55">Conversation</button> <button type="button" class="pseudolink svelte-rdft55">Context</button> <button type="button" class="pseudolink svelte-rdft55">Logs</button> <button type="button" class="pseudolink svelte-rdft55">Traces</button> <button type="button" class="pseudolink svelte-rdft55"${attr("disabled", analyzeRunning, true)}>Analyze</button></div></div></div>`);
|
|
2279
2255
|
}
|
|
2280
2256
|
$$renderer4.push(`<!--]--></div>`);
|
|
2281
2257
|
} else {
|
|
2282
2258
|
$$renderer4.push("<!--[!-->");
|
|
2283
|
-
$$renderer4.push(`<span class="ml-6 text-gray-500">—</span>`);
|
|
2284
2259
|
}
|
|
2285
|
-
$$renderer4.push(`<!--]--></div></div></div></
|
|
2260
|
+
$$renderer4.push(`<!--]--></div></div></div></div></div>`);
|
|
2286
2261
|
}
|
|
2287
|
-
$$renderer4.push(`<!--]--></
|
|
2262
|
+
$$renderer4.push(`<!--]--></div>`);
|
|
2288
2263
|
}
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
$$
|
|
2264
|
+
$$renderer4.push(`<!--]-->`);
|
|
2265
|
+
}
|
|
2266
|
+
$$renderer4.push(`<!--]--></div> `);
|
|
2267
|
+
if (testContextPopoverTestId) {
|
|
2268
|
+
$$renderer4.push("<!--[-->");
|
|
2269
|
+
const row = tests.find((t) => t.id === testContextPopoverTestId);
|
|
2270
|
+
{
|
|
2271
|
+
let children = function($$renderer5) {
|
|
2272
|
+
$$renderer5.push(`<div class="min-h-0 flex-1 overflow-hidden p-3"><!---->`);
|
|
2273
|
+
{
|
|
2274
|
+
ContextEditor($$renderer5, {
|
|
2275
|
+
class: "h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl",
|
|
2276
|
+
context: testContextDraft,
|
|
2277
|
+
suppressErrors: true,
|
|
2278
|
+
defaultFormat: "yaml",
|
|
2279
|
+
hideHeader: true,
|
|
2280
|
+
onContextChanged: (ctx) => testContextDraft = ctx
|
|
2281
|
+
});
|
|
2282
|
+
}
|
|
2283
|
+
$$renderer5.push(`<!----></div>`);
|
|
2284
|
+
};
|
|
2285
|
+
PopoverModal($$renderer4, {
|
|
2286
|
+
title: `Test context — ${row?.scenario || "Test"}`,
|
|
2287
|
+
onClose: () => void closeTestContextPopover(),
|
|
2288
|
+
children
|
|
2289
|
+
});
|
|
2290
|
+
}
|
|
2291
|
+
} else {
|
|
2292
|
+
$$renderer4.push("<!--[!-->");
|
|
2293
|
+
}
|
|
2294
|
+
$$renderer4.push(`<!--]-->`);
|
|
2292
2295
|
}
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
$$renderer3.push(`<!--]--></div></div></div>`);
|
|
2296
|
+
});
|
|
2297
|
+
$$renderer3.push(`<!----></div></div>`);
|
|
2296
2298
|
}
|
|
2297
2299
|
do {
|
|
2298
2300
|
$$settled = true;
|
|
@@ -2304,4 +2306,4 @@ function _page($$renderer, $$props) {
|
|
|
2304
2306
|
}
|
|
2305
2307
|
|
|
2306
2308
|
export { _page as default };
|
|
2307
|
-
//# sourceMappingURL=_page.svelte-
|
|
2309
|
+
//# sourceMappingURL=_page.svelte-C1YaC_Qg.js.map
|