@recombine-ai/bosun 0.16.1 → 0.16.2-cloud-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/_app/immutable/assets/0.CDmx-FLf.css +1 -0
- package/build/_app/immutable/assets/0.CDmx-FLf.css.br +0 -0
- package/build/_app/immutable/assets/0.CDmx-FLf.css.gz +0 -0
- package/build/_app/immutable/assets/17.BR6pkKJY.css +1 -0
- package/build/_app/immutable/assets/17.BR6pkKJY.css.br +0 -0
- package/build/_app/immutable/assets/17.BR6pkKJY.css.gz +0 -0
- package/build/_app/immutable/assets/2.C-ckNQUz.css +1 -0
- package/build/_app/immutable/assets/2.C-ckNQUz.css.br +0 -0
- package/build/_app/immutable/assets/2.C-ckNQUz.css.gz +0 -0
- package/build/_app/immutable/assets/3.Dd6QwpRZ.css +1 -0
- package/build/_app/immutable/assets/3.Dd6QwpRZ.css.br +0 -0
- package/build/_app/immutable/assets/3.Dd6QwpRZ.css.gz +0 -0
- package/build/_app/immutable/assets/5.CAILVfho.css +1 -0
- package/build/_app/immutable/assets/5.CAILVfho.css.br +0 -0
- package/build/_app/immutable/assets/5.CAILVfho.css.gz +0 -0
- package/build/_app/immutable/assets/8.y1S06Rrw.css +1 -0
- package/build/_app/immutable/assets/8.y1S06Rrw.css.br +0 -0
- package/build/_app/immutable/assets/8.y1S06Rrw.css.gz +0 -0
- package/build/_app/immutable/assets/9.bqwywlK9.css +1 -0
- package/build/_app/immutable/assets/9.bqwywlK9.css.br +0 -0
- package/build/_app/immutable/assets/9.bqwywlK9.css.gz +0 -0
- package/build/_app/immutable/assets/AgentSidebar.gt4PImXZ.css +1 -0
- package/build/_app/immutable/assets/AgentSidebar.gt4PImXZ.css.br +0 -0
- package/build/_app/immutable/assets/AgentSidebar.gt4PImXZ.css.gz +0 -0
- package/build/_app/immutable/assets/ChatStepTrace.BhjSq1f6.css +1 -0
- package/build/_app/immutable/assets/ChatStepTrace.BhjSq1f6.css.br +0 -0
- package/build/_app/immutable/assets/ChatStepTrace.BhjSq1f6.css.gz +0 -0
- package/build/_app/immutable/assets/Input.BYwaxgM_.css +1 -0
- package/build/_app/immutable/assets/Input.BYwaxgM_.css.br +5 -0
- package/build/_app/immutable/assets/Input.BYwaxgM_.css.gz +0 -0
- package/build/_app/immutable/assets/Modal.Ba-kUPX7.css +1 -0
- package/build/_app/immutable/assets/Modal.Ba-kUPX7.css.br +0 -0
- package/build/_app/immutable/assets/Modal.Ba-kUPX7.css.gz +0 -0
- package/build/_app/immutable/assets/Popper.BKFfO-Eu.css +1 -0
- package/build/_app/immutable/assets/Popper.BKFfO-Eu.css.br +0 -0
- package/build/_app/immutable/assets/Popper.BKFfO-Eu.css.gz +0 -0
- package/build/_app/immutable/assets/Tab.DEEG0ES_.css +1 -0
- package/build/_app/immutable/assets/Tab.DEEG0ES_.css.br +0 -0
- package/build/_app/immutable/assets/Tab.DEEG0ES_.css.gz +0 -0
- package/build/_app/immutable/assets/editor.BoJhDcRF.css +1 -0
- package/build/_app/immutable/assets/editor.BoJhDcRF.css.br +0 -0
- package/build/_app/immutable/assets/editor.BoJhDcRF.css.gz +0 -0
- package/build/_app/immutable/assets/editor.chSTM-fo.css +1 -0
- package/build/_app/immutable/assets/editor.chSTM-fo.css.br +0 -0
- package/build/_app/immutable/assets/editor.chSTM-fo.css.gz +0 -0
- package/build/_app/immutable/chunks/08VXUWAP.js +1 -0
- package/build/_app/immutable/chunks/08VXUWAP.js.br +0 -0
- package/build/_app/immutable/chunks/08VXUWAP.js.gz +0 -0
- package/build/_app/immutable/chunks/12bfCwgn.js +2 -0
- package/build/_app/immutable/chunks/12bfCwgn.js.br +0 -0
- package/build/_app/immutable/chunks/12bfCwgn.js.gz +0 -0
- package/build/_app/immutable/chunks/43DmfD33.js +1 -0
- package/build/_app/immutable/chunks/43DmfD33.js.br +0 -0
- package/build/_app/immutable/chunks/43DmfD33.js.gz +0 -0
- package/build/_app/immutable/chunks/6OCsQ6r7.js +11 -0
- package/build/_app/immutable/chunks/6OCsQ6r7.js.br +0 -0
- package/build/_app/immutable/chunks/6OCsQ6r7.js.gz +0 -0
- package/build/_app/immutable/chunks/6RTg0lbw.js +1 -0
- package/build/_app/immutable/chunks/6RTg0lbw.js.br +0 -0
- package/build/_app/immutable/chunks/6RTg0lbw.js.gz +0 -0
- package/build/_app/immutable/chunks/AvXp07rr.js +1 -0
- package/build/_app/immutable/chunks/AvXp07rr.js.br +2 -0
- package/build/_app/immutable/chunks/AvXp07rr.js.gz +0 -0
- package/build/_app/immutable/chunks/B0qVs-E9.js +1 -0
- package/build/_app/immutable/chunks/B0qVs-E9.js.br +0 -0
- package/build/_app/immutable/chunks/B0qVs-E9.js.gz +0 -0
- package/build/_app/immutable/chunks/B434V0h8.js +1 -0
- package/build/_app/immutable/chunks/B434V0h8.js.br +0 -0
- package/build/_app/immutable/chunks/B434V0h8.js.gz +0 -0
- package/build/_app/immutable/chunks/B5-_aFwp.js +2 -0
- package/build/_app/immutable/chunks/B5-_aFwp.js.br +0 -0
- package/build/_app/immutable/chunks/B5-_aFwp.js.gz +0 -0
- package/build/_app/immutable/chunks/B8J7ngcE.js +1 -0
- package/build/_app/immutable/chunks/B8J7ngcE.js.br +0 -0
- package/build/_app/immutable/chunks/B8J7ngcE.js.gz +0 -0
- package/build/_app/immutable/chunks/B9JPFI3C.js +2 -0
- package/build/_app/immutable/chunks/B9JPFI3C.js.br +0 -0
- package/build/_app/immutable/chunks/B9JPFI3C.js.gz +0 -0
- package/build/_app/immutable/chunks/B9YnyJ2j.js +1 -0
- package/build/_app/immutable/chunks/B9YnyJ2j.js.br +0 -0
- package/build/_app/immutable/chunks/B9YnyJ2j.js.gz +0 -0
- package/build/_app/immutable/chunks/BEEn4gHE.js +1 -0
- package/build/_app/immutable/chunks/BEEn4gHE.js.br +0 -0
- package/build/_app/immutable/chunks/BEEn4gHE.js.gz +0 -0
- package/build/_app/immutable/chunks/BEtHBSE6.js +1 -0
- package/build/_app/immutable/chunks/BEtHBSE6.js.br +0 -0
- package/build/_app/immutable/chunks/BEtHBSE6.js.gz +0 -0
- package/build/_app/immutable/chunks/BJqZY8o2.js +1 -0
- package/build/_app/immutable/chunks/BJqZY8o2.js.br +0 -0
- package/build/_app/immutable/chunks/BJqZY8o2.js.gz +0 -0
- package/build/_app/immutable/chunks/BKQbRSey.js +1 -0
- package/build/_app/immutable/chunks/BKQbRSey.js.br +0 -0
- package/build/_app/immutable/chunks/BKQbRSey.js.gz +0 -0
- package/build/_app/immutable/chunks/BKxtCVv1.js +1 -0
- package/build/_app/immutable/chunks/BKxtCVv1.js.br +0 -0
- package/build/_app/immutable/chunks/BKxtCVv1.js.gz +0 -0
- package/build/_app/immutable/chunks/BOHUKGg_.js +1 -0
- package/build/_app/immutable/chunks/BOHUKGg_.js.br +0 -0
- package/build/_app/immutable/chunks/BOHUKGg_.js.gz +0 -0
- package/build/_app/immutable/chunks/BP0Xadq7.js +5 -0
- package/build/_app/immutable/chunks/BP0Xadq7.js.br +0 -0
- package/build/_app/immutable/chunks/BP0Xadq7.js.gz +0 -0
- package/build/_app/immutable/chunks/BT98u4gR.js +35 -0
- package/build/_app/immutable/chunks/BT98u4gR.js.br +0 -0
- package/build/_app/immutable/chunks/BT98u4gR.js.gz +0 -0
- package/build/_app/immutable/chunks/BWPQTe0t.js +1 -0
- package/build/_app/immutable/chunks/BWPQTe0t.js.br +0 -0
- package/build/_app/immutable/chunks/BWPQTe0t.js.gz +0 -0
- package/build/_app/immutable/chunks/BYgofb2h.js +1 -0
- package/build/_app/immutable/chunks/BYgofb2h.js.br +0 -0
- package/build/_app/immutable/chunks/BYgofb2h.js.gz +0 -0
- package/build/_app/immutable/chunks/Ba7i2nA0.js +1 -0
- package/build/_app/immutable/chunks/Ba7i2nA0.js.br +0 -0
- package/build/_app/immutable/chunks/Ba7i2nA0.js.gz +0 -0
- package/build/_app/immutable/chunks/Bc1oIj2c.js +1 -0
- package/build/_app/immutable/chunks/Bc1oIj2c.js.br +0 -0
- package/build/_app/immutable/chunks/Bc1oIj2c.js.gz +0 -0
- package/build/_app/immutable/chunks/Bc_sGQ0U.js +1 -0
- package/build/_app/immutable/chunks/Bc_sGQ0U.js.br +3 -0
- package/build/_app/immutable/chunks/Bc_sGQ0U.js.gz +0 -0
- package/build/_app/immutable/chunks/BeGwcela.js +1 -0
- package/build/_app/immutable/chunks/BeGwcela.js.br +0 -0
- package/build/_app/immutable/chunks/BeGwcela.js.gz +0 -0
- package/build/_app/immutable/chunks/BiDy9-HP.js +1 -0
- package/build/_app/immutable/chunks/BiDy9-HP.js.br +0 -0
- package/build/_app/immutable/chunks/BiDy9-HP.js.gz +0 -0
- package/build/_app/immutable/chunks/Bjy-W4x2.js +81 -0
- package/build/_app/immutable/chunks/Bjy-W4x2.js.br +0 -0
- package/build/_app/immutable/chunks/Bjy-W4x2.js.gz +0 -0
- package/build/_app/immutable/chunks/Bri6UV-V.js +1 -0
- package/build/_app/immutable/chunks/Bri6UV-V.js.br +0 -0
- package/build/_app/immutable/chunks/Bri6UV-V.js.gz +0 -0
- package/build/_app/immutable/chunks/BwWrilGY.js +1 -0
- package/build/_app/immutable/chunks/BwWrilGY.js.br +0 -0
- package/build/_app/immutable/chunks/BwWrilGY.js.gz +0 -0
- package/build/_app/immutable/chunks/Bxkupp3x.js +1 -0
- package/build/_app/immutable/chunks/Bxkupp3x.js.br +0 -0
- package/build/_app/immutable/chunks/Bxkupp3x.js.gz +0 -0
- package/build/_app/immutable/chunks/By9tvIIw.js +1 -0
- package/build/_app/immutable/chunks/By9tvIIw.js.br +0 -0
- package/build/_app/immutable/chunks/By9tvIIw.js.gz +0 -0
- package/build/_app/immutable/chunks/Byx1piFp.js +3 -0
- package/build/_app/immutable/chunks/Byx1piFp.js.br +0 -0
- package/build/_app/immutable/chunks/Byx1piFp.js.gz +0 -0
- package/build/_app/immutable/chunks/Bz4Y3fRF.js +1 -0
- package/build/_app/immutable/chunks/Bz4Y3fRF.js.br +0 -0
- package/build/_app/immutable/chunks/Bz4Y3fRF.js.gz +0 -0
- package/build/_app/immutable/chunks/C-y9NEjX.js +1 -0
- package/build/_app/immutable/chunks/C-y9NEjX.js.br +0 -0
- package/build/_app/immutable/chunks/C-y9NEjX.js.gz +0 -0
- package/build/_app/immutable/chunks/C1TsmEOe.js +1 -0
- package/build/_app/immutable/chunks/C1TsmEOe.js.br +0 -0
- package/build/_app/immutable/chunks/C1TsmEOe.js.gz +0 -0
- package/build/_app/immutable/chunks/C531GsRP.js +2 -0
- package/build/_app/immutable/chunks/C531GsRP.js.br +0 -0
- package/build/_app/immutable/chunks/C531GsRP.js.gz +0 -0
- package/build/_app/immutable/chunks/C5_-GSwl.js +1 -0
- package/build/_app/immutable/chunks/C5_-GSwl.js.br +0 -0
- package/build/_app/immutable/chunks/C5_-GSwl.js.gz +0 -0
- package/build/_app/immutable/chunks/C7h46wYY.js +1 -0
- package/build/_app/immutable/chunks/C7h46wYY.js.br +0 -0
- package/build/_app/immutable/chunks/C7h46wYY.js.gz +0 -0
- package/build/_app/immutable/chunks/C8Ef5oNN.js +1 -0
- package/build/_app/immutable/chunks/C8Ef5oNN.js.br +0 -0
- package/build/_app/immutable/chunks/C8Ef5oNN.js.gz +0 -0
- package/build/_app/immutable/chunks/CC2rA5mh.js +1 -0
- package/build/_app/immutable/chunks/CC2rA5mh.js.br +0 -0
- package/build/_app/immutable/chunks/CC2rA5mh.js.gz +0 -0
- package/build/_app/immutable/chunks/CGV7fMmX.js +1 -0
- package/build/_app/immutable/chunks/CGV7fMmX.js.br +0 -0
- package/build/_app/immutable/chunks/CGV7fMmX.js.gz +0 -0
- package/build/_app/immutable/chunks/CIPQ_RoX.js +1 -0
- package/build/_app/immutable/chunks/CIPQ_RoX.js.br +0 -0
- package/build/_app/immutable/chunks/CIPQ_RoX.js.gz +0 -0
- package/build/_app/immutable/chunks/CL717zGu.js +2 -0
- package/build/_app/immutable/chunks/CL717zGu.js.br +0 -0
- package/build/_app/immutable/chunks/CL717zGu.js.gz +0 -0
- package/build/_app/immutable/chunks/CPCsWwEy.js +3 -0
- package/build/_app/immutable/chunks/CPCsWwEy.js.br +0 -0
- package/build/_app/immutable/chunks/CPCsWwEy.js.gz +0 -0
- package/build/_app/immutable/chunks/CRfGWb83.js +1 -0
- package/build/_app/immutable/chunks/CRfGWb83.js.br +0 -0
- package/build/_app/immutable/chunks/CRfGWb83.js.gz +0 -0
- package/build/_app/immutable/chunks/CUZn05nQ.js +63 -0
- package/build/_app/immutable/chunks/CUZn05nQ.js.br +0 -0
- package/build/_app/immutable/chunks/CUZn05nQ.js.gz +0 -0
- package/build/_app/immutable/chunks/CVaqCwHa.js +1 -0
- package/build/_app/immutable/chunks/CVaqCwHa.js.br +0 -0
- package/build/_app/immutable/chunks/CVaqCwHa.js.gz +0 -0
- package/build/_app/immutable/chunks/CZMMlaMl.js +1 -0
- package/build/_app/immutable/chunks/CZMMlaMl.js.br +0 -0
- package/build/_app/immutable/chunks/CZMMlaMl.js.gz +0 -0
- package/build/_app/immutable/chunks/C_yvzB4Z.js +644 -0
- package/build/_app/immutable/chunks/C_yvzB4Z.js.br +0 -0
- package/build/_app/immutable/chunks/C_yvzB4Z.js.gz +0 -0
- package/build/_app/immutable/chunks/CcwsVR0C.js +1 -0
- package/build/_app/immutable/chunks/CcwsVR0C.js.br +0 -0
- package/build/_app/immutable/chunks/CcwsVR0C.js.gz +0 -0
- package/build/_app/immutable/chunks/CdnbUlBq.js +1 -0
- package/build/_app/immutable/chunks/CdnbUlBq.js.br +0 -0
- package/build/_app/immutable/chunks/CdnbUlBq.js.gz +0 -0
- package/build/_app/immutable/chunks/Cf3l6QEG.js +2 -0
- package/build/_app/immutable/chunks/Cf3l6QEG.js.br +0 -0
- package/build/_app/immutable/chunks/Cf3l6QEG.js.gz +0 -0
- package/build/_app/immutable/chunks/CfSJPG6W.js +1 -0
- package/build/_app/immutable/chunks/CfSJPG6W.js.br +0 -0
- package/build/_app/immutable/chunks/CfSJPG6W.js.gz +0 -0
- package/build/_app/immutable/chunks/CfzHeBbL.js +1 -0
- package/build/_app/immutable/chunks/CfzHeBbL.js.br +1 -0
- package/build/_app/immutable/chunks/CfzHeBbL.js.gz +0 -0
- package/build/_app/immutable/chunks/Cimd5fb3.js +1 -0
- package/build/_app/immutable/chunks/Cimd5fb3.js.br +0 -0
- package/build/_app/immutable/chunks/Cimd5fb3.js.gz +0 -0
- package/build/_app/immutable/chunks/ClamHrr6.js +1 -0
- package/build/_app/immutable/chunks/ClamHrr6.js.br +0 -0
- package/build/_app/immutable/chunks/ClamHrr6.js.gz +0 -0
- package/build/_app/immutable/chunks/Cm7r79vr.js +1 -0
- package/build/_app/immutable/chunks/Cm7r79vr.js.br +0 -0
- package/build/_app/immutable/chunks/Cm7r79vr.js.gz +0 -0
- package/build/_app/immutable/chunks/CopQ2nXW.js +1 -0
- package/build/_app/immutable/chunks/CopQ2nXW.js.br +0 -0
- package/build/_app/immutable/chunks/CopQ2nXW.js.gz +0 -0
- package/build/_app/immutable/chunks/CpzslTdj.js +1 -0
- package/build/_app/immutable/chunks/CpzslTdj.js.br +0 -0
- package/build/_app/immutable/chunks/CpzslTdj.js.gz +0 -0
- package/build/_app/immutable/chunks/CsQS60Ue.js +1 -0
- package/build/_app/immutable/chunks/CsQS60Ue.js.br +0 -0
- package/build/_app/immutable/chunks/CsQS60Ue.js.gz +0 -0
- package/build/_app/immutable/chunks/D-oSqn_W.js +1 -0
- package/build/_app/immutable/chunks/D-oSqn_W.js.br +0 -0
- package/build/_app/immutable/chunks/D-oSqn_W.js.gz +0 -0
- package/build/_app/immutable/chunks/D-ptJ9y-.js +1 -0
- package/build/_app/immutable/chunks/D-ptJ9y-.js.br +0 -0
- package/build/_app/immutable/chunks/D-ptJ9y-.js.gz +0 -0
- package/build/_app/immutable/chunks/D05T4iGw.js +1 -0
- package/build/_app/immutable/chunks/D05T4iGw.js.br +0 -0
- package/build/_app/immutable/chunks/D05T4iGw.js.gz +0 -0
- package/build/_app/immutable/chunks/D1-opoqB.js +10 -0
- package/build/_app/immutable/chunks/D1-opoqB.js.br +0 -0
- package/build/_app/immutable/chunks/D1-opoqB.js.gz +0 -0
- package/build/_app/immutable/chunks/D3fLfD-Y.js +1 -0
- package/build/_app/immutable/chunks/D3fLfD-Y.js.br +0 -0
- package/build/_app/immutable/chunks/D3fLfD-Y.js.gz +0 -0
- package/build/_app/immutable/chunks/D3hlyOfw.js +1 -0
- package/build/_app/immutable/chunks/D3hlyOfw.js.br +0 -0
- package/build/_app/immutable/chunks/D3hlyOfw.js.gz +0 -0
- package/build/_app/immutable/chunks/DDZ8GqHh.js +1 -0
- package/build/_app/immutable/chunks/DDZ8GqHh.js.br +0 -0
- package/build/_app/immutable/chunks/DDZ8GqHh.js.gz +0 -0
- package/build/_app/immutable/chunks/DD_fL9ig.js +1 -0
- package/build/_app/immutable/chunks/DD_fL9ig.js.br +0 -0
- package/build/_app/immutable/chunks/DD_fL9ig.js.gz +0 -0
- package/build/_app/immutable/chunks/DHpiXF5c.js +1 -0
- package/build/_app/immutable/chunks/DHpiXF5c.js.br +0 -0
- package/build/_app/immutable/chunks/DHpiXF5c.js.gz +0 -0
- package/build/_app/immutable/chunks/DIMkf-bt.js +3 -0
- package/build/_app/immutable/chunks/DIMkf-bt.js.br +0 -0
- package/build/_app/immutable/chunks/DIMkf-bt.js.gz +0 -0
- package/build/_app/immutable/chunks/DISqw1ZD.js +1 -0
- package/build/_app/immutable/chunks/DISqw1ZD.js.br +0 -0
- package/build/_app/immutable/chunks/DISqw1ZD.js.gz +0 -0
- package/build/_app/immutable/chunks/DMUM7wLl.js +1 -0
- package/build/_app/immutable/chunks/DMUM7wLl.js.br +0 -0
- package/build/_app/immutable/chunks/DMUM7wLl.js.gz +0 -0
- package/build/_app/immutable/chunks/DT7zqm-g.js +1 -0
- package/build/_app/immutable/chunks/DT7zqm-g.js.br +0 -0
- package/build/_app/immutable/chunks/DT7zqm-g.js.gz +0 -0
- package/build/_app/immutable/chunks/DTj74zXo.js +1 -0
- package/build/_app/immutable/chunks/DTj74zXo.js.br +0 -0
- package/build/_app/immutable/chunks/DTj74zXo.js.gz +0 -0
- package/build/_app/immutable/chunks/DV3o63ZY.js +1 -0
- package/build/_app/immutable/chunks/DV3o63ZY.js.br +0 -0
- package/build/_app/immutable/chunks/DV3o63ZY.js.gz +0 -0
- package/build/_app/immutable/chunks/DVZC5aEW.js +3 -0
- package/build/_app/immutable/chunks/DVZC5aEW.js.br +0 -0
- package/build/_app/immutable/chunks/DVZC5aEW.js.gz +0 -0
- package/build/_app/immutable/chunks/DWoqp3ac.js +1 -0
- package/build/_app/immutable/chunks/DWoqp3ac.js.br +0 -0
- package/build/_app/immutable/chunks/DWoqp3ac.js.gz +0 -0
- package/build/_app/immutable/chunks/DZFCIeNp.js +1 -0
- package/build/_app/immutable/chunks/DZFCIeNp.js.br +0 -0
- package/build/_app/immutable/chunks/DZFCIeNp.js.gz +0 -0
- package/build/_app/immutable/chunks/D_Lu-MrJ.js +1 -0
- package/build/_app/immutable/chunks/D_Lu-MrJ.js.br +0 -0
- package/build/_app/immutable/chunks/D_Lu-MrJ.js.gz +0 -0
- package/build/_app/immutable/chunks/D_MTg6YY.js +1 -0
- package/build/_app/immutable/chunks/D_MTg6YY.js.br +0 -0
- package/build/_app/immutable/chunks/D_MTg6YY.js.gz +0 -0
- package/build/_app/immutable/chunks/DauUninz.js +1 -0
- package/build/_app/immutable/chunks/DauUninz.js.br +0 -0
- package/build/_app/immutable/chunks/DauUninz.js.gz +0 -0
- package/build/_app/immutable/chunks/DbInun42.js +1 -0
- package/build/_app/immutable/chunks/DbInun42.js.br +0 -0
- package/build/_app/immutable/chunks/DbInun42.js.gz +0 -0
- package/build/_app/immutable/chunks/DbZCwjKq.js +4 -0
- package/build/_app/immutable/chunks/DbZCwjKq.js.br +0 -0
- package/build/_app/immutable/chunks/DbZCwjKq.js.gz +0 -0
- package/build/_app/immutable/chunks/Dc2hpeC4.js +1 -0
- package/build/_app/immutable/chunks/Dc2hpeC4.js.br +2 -0
- package/build/_app/immutable/chunks/Dc2hpeC4.js.gz +0 -0
- package/build/_app/immutable/chunks/DdL9SqIa.js +1 -0
- package/build/_app/immutable/chunks/DdL9SqIa.js.br +0 -0
- package/build/_app/immutable/chunks/DdL9SqIa.js.gz +0 -0
- package/build/_app/immutable/chunks/De2hgUGE.js +1 -0
- package/build/_app/immutable/chunks/De2hgUGE.js.br +0 -0
- package/build/_app/immutable/chunks/De2hgUGE.js.gz +0 -0
- package/build/_app/immutable/chunks/DezsRK8O.js +1 -0
- package/build/_app/immutable/chunks/DezsRK8O.js.br +0 -0
- package/build/_app/immutable/chunks/DezsRK8O.js.gz +0 -0
- package/build/_app/immutable/chunks/DjxKCxwY.js +1 -0
- package/build/_app/immutable/chunks/DjxKCxwY.js.br +0 -0
- package/build/_app/immutable/chunks/DjxKCxwY.js.gz +0 -0
- package/build/_app/immutable/chunks/DkJi5BM4.js +1 -0
- package/build/_app/immutable/chunks/DkJi5BM4.js.br +0 -0
- package/build/_app/immutable/chunks/DkJi5BM4.js.gz +0 -0
- package/build/_app/immutable/chunks/DkqhCAOL.js +1 -0
- package/build/_app/immutable/chunks/DkqhCAOL.js.br +0 -0
- package/build/_app/immutable/chunks/DkqhCAOL.js.gz +0 -0
- package/build/_app/immutable/chunks/DmHpPYUd.js +1 -0
- package/build/_app/immutable/chunks/DmHpPYUd.js.br +0 -0
- package/build/_app/immutable/chunks/DmHpPYUd.js.gz +0 -0
- package/build/_app/immutable/chunks/Dne1wF_T.js +1 -0
- package/build/_app/immutable/chunks/Dne1wF_T.js.br +0 -0
- package/build/_app/immutable/chunks/Dne1wF_T.js.gz +0 -0
- package/build/_app/immutable/chunks/DpFanUEy.js +298 -0
- package/build/_app/immutable/chunks/DpFanUEy.js.br +0 -0
- package/build/_app/immutable/chunks/DpFanUEy.js.gz +0 -0
- package/build/_app/immutable/chunks/DrH0SRf2.js +1 -0
- package/build/_app/immutable/chunks/DrH0SRf2.js.br +0 -0
- package/build/_app/immutable/chunks/DrH0SRf2.js.gz +0 -0
- package/build/_app/immutable/chunks/Dt-HX3Vu.js +1 -0
- package/build/_app/immutable/chunks/Dt-HX3Vu.js.br +0 -0
- package/build/_app/immutable/chunks/Dt-HX3Vu.js.gz +0 -0
- package/build/_app/immutable/chunks/Dt1k81ic.js +1 -0
- package/build/_app/immutable/chunks/Dt1k81ic.js.br +0 -0
- package/build/_app/immutable/chunks/Dt1k81ic.js.gz +0 -0
- package/build/_app/immutable/chunks/DugeGFnl.js +4 -0
- package/build/_app/immutable/chunks/DugeGFnl.js.br +0 -0
- package/build/_app/immutable/chunks/DugeGFnl.js.gz +0 -0
- package/build/_app/immutable/chunks/DxhPVHKV.js +1 -0
- package/build/_app/immutable/chunks/DxhPVHKV.js.br +1 -0
- package/build/_app/immutable/chunks/DxhPVHKV.js.gz +0 -0
- package/build/_app/immutable/chunks/FvmIjYaQ.js +1 -0
- package/build/_app/immutable/chunks/FvmIjYaQ.js.br +0 -0
- package/build/_app/immutable/chunks/FvmIjYaQ.js.gz +0 -0
- package/build/_app/immutable/chunks/HclGiUj8.js +1 -0
- package/build/_app/immutable/chunks/HclGiUj8.js.br +0 -0
- package/build/_app/immutable/chunks/HclGiUj8.js.gz +0 -0
- package/build/_app/immutable/chunks/MIEISUXS.js +64 -0
- package/build/_app/immutable/chunks/MIEISUXS.js.br +0 -0
- package/build/_app/immutable/chunks/MIEISUXS.js.gz +0 -0
- package/build/_app/immutable/chunks/NEE52Syq.js +1 -0
- package/build/_app/immutable/chunks/NEE52Syq.js.br +0 -0
- package/build/_app/immutable/chunks/NEE52Syq.js.gz +0 -0
- package/build/_app/immutable/chunks/SOo6toE5.js +1 -0
- package/build/_app/immutable/chunks/SOo6toE5.js.br +0 -0
- package/build/_app/immutable/chunks/SOo6toE5.js.gz +0 -0
- package/build/_app/immutable/chunks/UZ6smZpJ.js +1 -0
- package/build/_app/immutable/chunks/UZ6smZpJ.js.br +0 -0
- package/build/_app/immutable/chunks/UZ6smZpJ.js.gz +0 -0
- package/build/_app/immutable/chunks/Vn-6xHGu.js +1 -0
- package/build/_app/immutable/chunks/Vn-6xHGu.js.br +0 -0
- package/build/_app/immutable/chunks/Vn-6xHGu.js.gz +0 -0
- package/build/_app/immutable/chunks/Z5eAx3Zn.js +1 -0
- package/build/_app/immutable/chunks/Z5eAx3Zn.js.br +0 -0
- package/build/_app/immutable/chunks/Z5eAx3Zn.js.gz +0 -0
- package/build/_app/immutable/chunks/bTuwJoIa.js +1 -0
- package/build/_app/immutable/chunks/bTuwJoIa.js.br +0 -0
- package/build/_app/immutable/chunks/bTuwJoIa.js.gz +0 -0
- package/build/_app/immutable/chunks/fmXr3nnJ.js +1 -0
- package/build/_app/immutable/chunks/fmXr3nnJ.js.br +0 -0
- package/build/_app/immutable/chunks/fmXr3nnJ.js.gz +0 -0
- package/build/_app/immutable/chunks/gp-XZpBa.js +3 -0
- package/build/_app/immutable/chunks/gp-XZpBa.js.br +0 -0
- package/build/_app/immutable/chunks/gp-XZpBa.js.gz +0 -0
- package/build/_app/immutable/chunks/hePW80VL.js +1 -0
- package/build/_app/immutable/chunks/hePW80VL.js.br +0 -0
- package/build/_app/immutable/chunks/hePW80VL.js.gz +0 -0
- package/build/_app/immutable/chunks/i0X4ZdIN.js +1 -0
- package/build/_app/immutable/chunks/i0X4ZdIN.js.br +0 -0
- package/build/_app/immutable/chunks/i0X4ZdIN.js.gz +0 -0
- package/build/_app/immutable/chunks/krcqaNpB.js +11 -0
- package/build/_app/immutable/chunks/krcqaNpB.js.br +0 -0
- package/build/_app/immutable/chunks/krcqaNpB.js.gz +0 -0
- package/build/_app/immutable/chunks/nr791fC2.js +1 -0
- package/build/_app/immutable/chunks/nr791fC2.js.br +0 -0
- package/build/_app/immutable/chunks/nr791fC2.js.gz +0 -0
- package/build/_app/immutable/chunks/oarl--hZ.js +1 -0
- package/build/_app/immutable/chunks/oarl--hZ.js.br +0 -0
- package/build/_app/immutable/chunks/oarl--hZ.js.gz +0 -0
- package/build/_app/immutable/chunks/onAF5SnQ.js +1 -0
- package/build/_app/immutable/chunks/onAF5SnQ.js.br +0 -0
- package/build/_app/immutable/chunks/onAF5SnQ.js.gz +0 -0
- package/build/_app/immutable/chunks/oz_6vUea.js +1 -0
- package/build/_app/immutable/chunks/oz_6vUea.js.br +0 -0
- package/build/_app/immutable/chunks/oz_6vUea.js.gz +0 -0
- package/build/_app/immutable/chunks/qrpS1hNb.js +1 -0
- package/build/_app/immutable/chunks/qrpS1hNb.js.br +0 -0
- package/build/_app/immutable/chunks/qrpS1hNb.js.gz +0 -0
- package/build/_app/immutable/chunks/sBoK_t0W.js +1 -0
- package/build/_app/immutable/chunks/sBoK_t0W.js.br +3 -0
- package/build/_app/immutable/chunks/sBoK_t0W.js.gz +0 -0
- package/build/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/build/_app/immutable/chunks/xihTtKlq.js.br +1 -0
- package/build/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
- package/build/_app/immutable/entry/app.D_IBy7uS.js +2 -0
- package/build/_app/immutable/entry/app.D_IBy7uS.js.br +0 -0
- package/build/_app/immutable/entry/app.D_IBy7uS.js.gz +0 -0
- package/build/_app/immutable/entry/start.DbNkBLf5.js +1 -0
- package/build/_app/immutable/entry/start.DbNkBLf5.js.br +0 -0
- package/build/_app/immutable/entry/start.DbNkBLf5.js.gz +0 -0
- package/build/_app/immutable/nodes/0.CS5BBLx9.js +3 -0
- package/build/_app/immutable/nodes/0.CS5BBLx9.js.br +0 -0
- package/build/_app/immutable/nodes/0.CS5BBLx9.js.gz +0 -0
- package/build/_app/immutable/nodes/1.Bx_DOFs1.js +1 -0
- package/build/_app/immutable/nodes/1.Bx_DOFs1.js.br +1 -0
- package/build/_app/immutable/nodes/1.Bx_DOFs1.js.gz +0 -0
- package/build/_app/immutable/nodes/10.DuLkI7IT.js +1 -0
- package/build/_app/immutable/nodes/10.DuLkI7IT.js.br +0 -0
- package/build/_app/immutable/nodes/10.DuLkI7IT.js.gz +0 -0
- package/build/_app/immutable/nodes/11.CvQx4qsQ.js +1 -0
- package/build/_app/immutable/nodes/11.CvQx4qsQ.js.br +0 -0
- package/build/_app/immutable/nodes/11.CvQx4qsQ.js.gz +0 -0
- package/build/_app/immutable/nodes/12.DexCpvoJ.js +1 -0
- package/build/_app/immutable/nodes/12.DexCpvoJ.js.br +2 -0
- package/build/_app/immutable/nodes/12.DexCpvoJ.js.gz +0 -0
- package/build/_app/immutable/nodes/13.d5wmZHtI.js +1 -0
- package/build/_app/immutable/nodes/13.d5wmZHtI.js.br +0 -0
- package/build/_app/immutable/nodes/13.d5wmZHtI.js.gz +0 -0
- package/build/_app/immutable/nodes/14.DSu8i_qz.js +1 -0
- package/build/_app/immutable/nodes/14.DSu8i_qz.js.br +0 -0
- package/build/_app/immutable/nodes/14.DSu8i_qz.js.gz +0 -0
- package/build/_app/immutable/nodes/15.DpmLozh7.js +1 -0
- package/build/_app/immutable/nodes/15.DpmLozh7.js.br +0 -0
- package/build/_app/immutable/nodes/15.DpmLozh7.js.gz +0 -0
- package/build/_app/immutable/nodes/16.Cev9Grgc.js +3 -0
- package/build/_app/immutable/nodes/16.Cev9Grgc.js.br +0 -0
- package/build/_app/immutable/nodes/16.Cev9Grgc.js.gz +0 -0
- package/build/_app/immutable/nodes/17.C869oOf4.js +10 -0
- package/build/_app/immutable/nodes/17.C869oOf4.js.br +0 -0
- package/build/_app/immutable/nodes/17.C869oOf4.js.gz +0 -0
- package/build/_app/immutable/nodes/2.DdU1kSNu.js +35 -0
- package/build/_app/immutable/nodes/2.DdU1kSNu.js.br +0 -0
- package/build/_app/immutable/nodes/2.DdU1kSNu.js.gz +0 -0
- package/build/_app/immutable/nodes/3.C5QPqWTE.js +1 -0
- package/build/_app/immutable/nodes/3.C5QPqWTE.js.br +0 -0
- package/build/_app/immutable/nodes/3.C5QPqWTE.js.gz +0 -0
- package/build/_app/immutable/nodes/4.CNS3NZ4Z.js +1 -0
- package/build/_app/immutable/nodes/4.CNS3NZ4Z.js.br +0 -0
- package/build/_app/immutable/nodes/4.CNS3NZ4Z.js.gz +0 -0
- package/build/_app/immutable/nodes/5.B1H9pyMk.js +1 -0
- package/build/_app/immutable/nodes/5.B1H9pyMk.js.br +0 -0
- package/build/_app/immutable/nodes/5.B1H9pyMk.js.gz +0 -0
- package/build/_app/immutable/nodes/6.h6Y1Z_zh.js +1 -0
- package/build/_app/immutable/nodes/6.h6Y1Z_zh.js.br +0 -0
- package/build/_app/immutable/nodes/6.h6Y1Z_zh.js.gz +0 -0
- package/build/_app/immutable/nodes/7.ans9TEie.js +1 -0
- package/build/_app/immutable/nodes/7.ans9TEie.js.br +0 -0
- package/build/_app/immutable/nodes/7.ans9TEie.js.gz +0 -0
- package/build/_app/immutable/nodes/8.BCatMgwB.js +2 -0
- package/build/_app/immutable/nodes/8.BCatMgwB.js.br +0 -0
- package/build/_app/immutable/nodes/8.BCatMgwB.js.gz +0 -0
- package/build/_app/immutable/nodes/9.BUnel48-.js +24 -0
- package/build/_app/immutable/nodes/9.BUnel48-.js.br +0 -0
- package/build/_app/immutable/nodes/9.BUnel48-.js.gz +0 -0
- package/build/_app/immutable/workers/css.worker-D61Wlo1y.js +88 -0
- package/build/_app/immutable/workers/css.worker-D61Wlo1y.js.br +0 -0
- package/build/_app/immutable/workers/css.worker-D61Wlo1y.js.gz +0 -0
- package/build/_app/immutable/workers/editor.worker-BaAK1IVA.js +12 -0
- package/build/_app/immutable/workers/editor.worker-BaAK1IVA.js.br +0 -0
- package/build/_app/immutable/workers/editor.worker-BaAK1IVA.js.gz +0 -0
- package/build/_app/immutable/workers/html.worker-i4ABlmR0.js +495 -0
- package/build/_app/immutable/workers/html.worker-i4ABlmR0.js.br +0 -0
- package/build/_app/immutable/workers/html.worker-i4ABlmR0.js.gz +0 -0
- package/build/_app/immutable/workers/json.worker-C-kBQgxp.js +51 -0
- package/build/_app/immutable/workers/json.worker-C-kBQgxp.js.br +0 -0
- package/build/_app/immutable/workers/json.worker-C-kBQgxp.js.gz +0 -0
- package/build/_app/immutable/workers/ts.worker-KJ4wGYue.js +51339 -0
- package/build/_app/immutable/workers/ts.worker-KJ4wGYue.js.br +0 -0
- package/build/_app/immutable/workers/ts.worker-KJ4wGYue.js.gz +0 -0
- package/build/_app/version.json +1 -0
- package/build/_app/version.json.br +0 -0
- package/build/_app/version.json.gz +0 -0
- package/build/index.html +43 -0
- package/build/index.html.br +0 -0
- package/build/index.html.gz +0 -0
- package/dist/index.js +4888 -0
- package/dist/index.js.map +7 -0
- package/dist/types/backend/config/router.d.ts +16 -0
- package/dist/types/backend/index.d.ts +9 -0
- package/dist/types/backend/lib/agent-registry.d.ts +20 -0
- package/dist/types/backend/lib/apply-v4a-diff.d.ts +6 -0
- package/dist/types/backend/lib/bosun-context.d.ts +19 -0
- package/dist/types/backend/lib/decode-html-entities.d.ts +7 -0
- package/dist/types/backend/lib/options.d.ts +51 -0
- package/dist/types/backend/lib/trpc-context.d.ts +5 -0
- package/dist/types/backend/lib/voice-agent-lifecycle.d.ts +2 -0
- package/dist/types/backend/prompt-cache.d.ts +17 -0
- package/dist/types/backend/roleplay/agent-introspection.d.ts +29 -0
- package/dist/types/backend/roleplay/conversation-store.d.ts +23 -0
- package/dist/types/backend/roleplay/conversations-router.d.ts +59 -0
- package/dist/types/backend/roleplay/logger.d.ts +7 -0
- package/dist/types/backend/roleplay/prompt-edit-progress.d.ts +11 -0
- package/dist/types/backend/roleplay/prompt-edit-proposals.d.ts +23 -0
- package/dist/types/backend/roleplay/prompt-file.d.ts +8 -0
- package/dist/types/backend/roleplay/router.d.ts +191 -0
- package/dist/types/backend/roleplay/run-turn.d.ts +17 -0
- package/dist/types/backend/roleplay/scheduler.d.ts +20 -0
- package/dist/types/backend/roleplay/step-registry.d.ts +7 -0
- package/dist/types/backend/roleplay/suggest-file-edit.d.ts +13 -0
- package/dist/types/backend/roleplay/suggest-prompt-edit.d.ts +11 -0
- package/dist/types/backend/roleplay/suggest-test-fix.d.ts +29 -0
- package/dist/types/backend/roleplay/trace-serialization.d.ts +1 -0
- package/dist/types/backend/roleplay/variants.d.ts +18 -0
- package/dist/types/backend/roleplay/ws-server.d.ts +3 -0
- package/dist/types/backend/server.d.ts +865 -0
- package/dist/types/backend/telescope/router.d.ts +184 -0
- package/dist/types/backend/telescope/sources.d.ts +18 -0
- package/dist/types/backend/tests/academy.d.ts +112 -0
- package/dist/types/backend/tests/active-test-runs.d.ts +12 -0
- package/dist/types/backend/tests/analyze.d.ts +42 -0
- package/dist/types/backend/tests/best-effort-log-writer.d.ts +5 -0
- package/dist/types/backend/tests/context-utils.d.ts +2 -0
- package/dist/types/backend/tests/data.d.ts +95 -0
- package/dist/types/backend/tests/emulate-agents.d.ts +21 -0
- package/dist/types/backend/tests/json-field-match.d.ts +5 -0
- package/dist/types/backend/tests/pii-sanitized-test-drafts.d.ts +47 -0
- package/dist/types/backend/tests/pii-sanitizer.d.ts +61 -0
- package/dist/types/backend/tests/prompt-issues.d.ts +19 -0
- package/dist/types/backend/tests/promptfoo-runtime.d.ts +13 -0
- package/dist/types/backend/tests/report-files.d.ts +7 -0
- package/dist/types/backend/tests/router.d.ts +411 -0
- package/dist/types/backend/tests/suggest-test-history-edit.d.ts +21 -0
- package/dist/types/backend/tests/suite.d.ts +69 -0
- package/dist/types/backend/tests/test-edit-source.d.ts +4 -0
- package/dist/types/backend/tests/test-history-edit-proposals.d.ts +24 -0
- package/dist/types/lib/api-telescope/types.d.ts +280 -0
- package/dist/types/lib/conversation.d.ts +33 -0
- package/dist/types/lib/edit/test-ai-edit.d.ts +12 -0
- package/dist/types/lib/steps.d.ts +14 -0
- package/dist/types/lib/tests/assertion-types.d.ts +6 -0
- package/dist/types/lib/tests/pii-sanitized-test-draft.d.ts +52 -0
- package/dist/types/lib/ws-message.d.ts +41 -0
- package/package.json +50 -54
- package/.svelte-kit/tsconfig.json +0 -59
- package/bin/bosun.js +0 -319
- 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/10.DIVePEYf.css +0 -1
- package/build/client/_app/immutable/assets/10.DIVePEYf.css.br +0 -0
- package/build/client/_app/immutable/assets/10.DIVePEYf.css.gz +0 -0
- package/build/client/_app/immutable/assets/18.C5apk4jm.css +0 -1
- package/build/client/_app/immutable/assets/18.C5apk4jm.css.br +0 -0
- package/build/client/_app/immutable/assets/18.C5apk4jm.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/3.Dzh7_Q8n.css +0 -1
- package/build/client/_app/immutable/assets/3.Dzh7_Q8n.css.br +0 -0
- package/build/client/_app/immutable/assets/3.Dzh7_Q8n.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.CZVw96CJ.css +0 -1
- package/build/client/_app/immutable/assets/5.CZVw96CJ.css.br +0 -0
- package/build/client/_app/immutable/assets/5.CZVw96CJ.css.gz +0 -0
- package/build/client/_app/immutable/assets/9.DlSPCZj0.css +0 -1
- package/build/client/_app/immutable/assets/9.DlSPCZj0.css.br +0 -0
- package/build/client/_app/immutable/assets/9.DlSPCZj0.css.gz +0 -0
- package/build/client/_app/immutable/assets/AgentSidebar.BL1i3rB_.css +0 -1
- package/build/client/_app/immutable/assets/AgentSidebar.BL1i3rB_.css.br +0 -0
- package/build/client/_app/immutable/assets/AgentSidebar.BL1i3rB_.css.gz +0 -0
- package/build/client/_app/immutable/assets/Input.CJ8KyccG.css +0 -1
- package/build/client/_app/immutable/assets/Input.CJ8KyccG.css.br +0 -0
- package/build/client/_app/immutable/assets/Input.CJ8KyccG.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/assets/Popper.CLTyHc88.css +0 -1
- package/build/client/_app/immutable/assets/Popper.CLTyHc88.css.br +0 -0
- package/build/client/_app/immutable/assets/Popper.CLTyHc88.css.gz +0 -0
- package/build/client/_app/immutable/assets/Tab.DlCfjMY1.css +0 -1
- package/build/client/_app/immutable/assets/Tab.DlCfjMY1.css.br +0 -0
- package/build/client/_app/immutable/assets/Tab.DlCfjMY1.css.gz +0 -0
- package/build/client/_app/immutable/assets/chat-content.Cabnnfyv.css +0 -1
- package/build/client/_app/immutable/assets/chat-content.Cabnnfyv.css.br +0 -0
- package/build/client/_app/immutable/assets/chat-content.Cabnnfyv.css.gz +0 -0
- package/build/client/_app/immutable/assets/editor.BMIWPGx3.css +0 -1
- package/build/client/_app/immutable/assets/editor.BMIWPGx3.css.br +0 -0
- package/build/client/_app/immutable/assets/editor.BMIWPGx3.css.gz +0 -0
- package/build/client/_app/immutable/chunks/07xNIa59.js +0 -2
- 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/0cvrggvQ.js +0 -6
- package/build/client/_app/immutable/chunks/0cvrggvQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/0cvrggvQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/25W9uPmb.js +0 -6
- package/build/client/_app/immutable/chunks/25W9uPmb.js.br +0 -0
- package/build/client/_app/immutable/chunks/25W9uPmb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/4Ik7cdeQ.js +0 -8
- package/build/client/_app/immutable/chunks/4Ik7cdeQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/4Ik7cdeQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/5Rap-vPy.js +0 -6
- package/build/client/_app/immutable/chunks/5Rap-vPy.js.br +0 -3
- package/build/client/_app/immutable/chunks/5Rap-vPy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B03wrqEc.js +0 -6
- package/build/client/_app/immutable/chunks/B03wrqEc.js.br +0 -0
- package/build/client/_app/immutable/chunks/B03wrqEc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5zXfXm9.js +0 -6
- package/build/client/_app/immutable/chunks/B5zXfXm9.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5zXfXm9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B9Xyijhd.js +0 -6
- package/build/client/_app/immutable/chunks/B9Xyijhd.js.br +0 -0
- package/build/client/_app/immutable/chunks/B9Xyijhd.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/BFG1Mk7z.js +0 -6
- package/build/client/_app/immutable/chunks/BFG1Mk7z.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFG1Mk7z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BI42X8h_.js +0 -1
- 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/BIv9DU6q.js +0 -303
- package/build/client/_app/immutable/chunks/BIv9DU6q.js.br +0 -0
- package/build/client/_app/immutable/chunks/BIv9DU6q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJTwdUYr.js +0 -1
- 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/BKlk5iyT.js +0 -6
- package/build/client/_app/immutable/chunks/BKlk5iyT.js.br +0 -0
- package/build/client/_app/immutable/chunks/BKlk5iyT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BLu86SbA.js +0 -1
- 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/BMYSavKM.js +0 -6
- package/build/client/_app/immutable/chunks/BMYSavKM.js.br +0 -0
- package/build/client/_app/immutable/chunks/BMYSavKM.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 +0 -1
- 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/BSkB5QuD.js +0 -6
- package/build/client/_app/immutable/chunks/BSkB5QuD.js.br +0 -0
- package/build/client/_app/immutable/chunks/BSkB5QuD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BU7aeYn4.js +0 -1
- package/build/client/_app/immutable/chunks/BU7aeYn4.js.br +0 -0
- package/build/client/_app/immutable/chunks/BU7aeYn4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BY8d35y9.js +0 -16
- package/build/client/_app/immutable/chunks/BY8d35y9.js.br +0 -0
- package/build/client/_app/immutable/chunks/BY8d35y9.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/B_c3zf-v.js +0 -6
- package/build/client/_app/immutable/chunks/B_c3zf-v.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_c3zf-v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_fMsGYe.js +0 -6
- package/build/client/_app/immutable/chunks/B_fMsGYe.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_fMsGYe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BaJupSGV.js +0 -6
- package/build/client/_app/immutable/chunks/BaJupSGV.js.br +0 -0
- package/build/client/_app/immutable/chunks/BaJupSGV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BaLxmfj-.js +0 -6
- package/build/client/_app/immutable/chunks/BaLxmfj-.js.br +0 -0
- package/build/client/_app/immutable/chunks/BaLxmfj-.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/Bc-ZgV77.js +0 -6
- package/build/client/_app/immutable/chunks/Bc-ZgV77.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bc-ZgV77.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BfEKNvv3.js +0 -7
- package/build/client/_app/immutable/chunks/BfEKNvv3.js.br +0 -0
- package/build/client/_app/immutable/chunks/BfEKNvv3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bhzvs7bI.js +0 -6
- package/build/client/_app/immutable/chunks/Bhzvs7bI.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bhzvs7bI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bio4gycK.js +0 -6
- package/build/client/_app/immutable/chunks/Bio4gycK.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bio4gycK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bj8jfBTi.js +0 -1
- 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/BoFRg7Ot.js +0 -6
- package/build/client/_app/immutable/chunks/BoFRg7Ot.js.br +0 -0
- package/build/client/_app/immutable/chunks/BoFRg7Ot.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bqgm2twL.js +0 -6
- package/build/client/_app/immutable/chunks/Bqgm2twL.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bqgm2twL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BrgZPUOV.js +0 -6
- package/build/client/_app/immutable/chunks/BrgZPUOV.js.br +0 -0
- package/build/client/_app/immutable/chunks/BrgZPUOV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BsDZe4N6.js +0 -1
- 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/BsTHnhdd.js +0 -7
- package/build/client/_app/immutable/chunks/BsTHnhdd.js.br +0 -0
- package/build/client/_app/immutable/chunks/BsTHnhdd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Buo-57fF.js +0 -1
- 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/C1FmrZbK.js +0 -1
- package/build/client/_app/immutable/chunks/C1FmrZbK.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1FmrZbK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C39ai1md.js +0 -1
- 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/C4mbwMvt.js +0 -6
- package/build/client/_app/immutable/chunks/C4mbwMvt.js.br +0 -0
- package/build/client/_app/immutable/chunks/C4mbwMvt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C5WLch3f.js +0 -6
- package/build/client/_app/immutable/chunks/C5WLch3f.js.br +0 -0
- package/build/client/_app/immutable/chunks/C5WLch3f.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C7he4XPB.js +0 -1
- 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/CAFoob5N.js +0 -6
- package/build/client/_app/immutable/chunks/CAFoob5N.js.br +0 -0
- package/build/client/_app/immutable/chunks/CAFoob5N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CAjPRvNs.js +0 -2
- 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/CCSDG5nI.js +0 -6
- package/build/client/_app/immutable/chunks/CCSDG5nI.js.br +0 -0
- package/build/client/_app/immutable/chunks/CCSDG5nI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDGzqUPQ.js +0 -6
- package/build/client/_app/immutable/chunks/CDGzqUPQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CDGzqUPQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDntyWJ8.js +0 -6
- package/build/client/_app/immutable/chunks/CDntyWJ8.js.br +0 -0
- package/build/client/_app/immutable/chunks/CDntyWJ8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CFKIUWau.js +0 -6
- package/build/client/_app/immutable/chunks/CFKIUWau.js.br +0 -0
- package/build/client/_app/immutable/chunks/CFKIUWau.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CFOPXBzS.js +0 -6
- package/build/client/_app/immutable/chunks/CFOPXBzS.js.br +0 -0
- package/build/client/_app/immutable/chunks/CFOPXBzS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGinwM47.js +0 -8
- package/build/client/_app/immutable/chunks/CGinwM47.js.br +0 -0
- package/build/client/_app/immutable/chunks/CGinwM47.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJYOmGlC.js +0 -1
- 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/CLLBncYj.js +0 -6
- package/build/client/_app/immutable/chunks/CLLBncYj.js.br +0 -0
- package/build/client/_app/immutable/chunks/CLLBncYj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/COyEY5Pt.js +0 -7
- package/build/client/_app/immutable/chunks/COyEY5Pt.js.br +0 -0
- package/build/client/_app/immutable/chunks/COyEY5Pt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CPXdAKdv.js +0 -1
- 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/CPajHgWi.js +0 -6
- package/build/client/_app/immutable/chunks/CPajHgWi.js.br +0 -0
- package/build/client/_app/immutable/chunks/CPajHgWi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CVlsAO8k.js +0 -11
- 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/CVwtpugi.js +0 -6
- package/build/client/_app/immutable/chunks/CVwtpugi.js.br +0 -0
- package/build/client/_app/immutable/chunks/CVwtpugi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CX-rkNHf.js +0 -6
- package/build/client/_app/immutable/chunks/CX-rkNHf.js.br +0 -0
- package/build/client/_app/immutable/chunks/CX-rkNHf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js +0 -1
- 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/CXOwvkN_.js +0 -6
- package/build/client/_app/immutable/chunks/CXOwvkN_.js.br +0 -0
- package/build/client/_app/immutable/chunks/CXOwvkN_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ca197UDq.js +0 -1
- package/build/client/_app/immutable/chunks/Ca197UDq.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ca197UDq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CaHl3dME.js +0 -1
- 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/CdQndTaG.js +0 -6
- package/build/client/_app/immutable/chunks/CdQndTaG.js.br +0 -0
- package/build/client/_app/immutable/chunks/CdQndTaG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ce3n6wWz.js +0 -6
- package/build/client/_app/immutable/chunks/Ce3n6wWz.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ce3n6wWz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ce9aG7vY.js +0 -1
- 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/Cg7bfA9N.js +0 -6
- package/build/client/_app/immutable/chunks/Cg7bfA9N.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cg7bfA9N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cp1zYvxS.js +0 -6
- package/build/client/_app/immutable/chunks/Cp1zYvxS.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cp1zYvxS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CpIb_Oan.js +0 -6
- package/build/client/_app/immutable/chunks/CpIb_Oan.js.br +0 -0
- package/build/client/_app/immutable/chunks/CpIb_Oan.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cpb6xl2v.js +0 -6
- package/build/client/_app/immutable/chunks/Cpb6xl2v.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cpb6xl2v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cphgjts3.js +0 -6
- package/build/client/_app/immutable/chunks/Cphgjts3.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cphgjts3.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/CrxwEwqu.js +0 -6
- package/build/client/_app/immutable/chunks/CrxwEwqu.js.br +0 -0
- package/build/client/_app/immutable/chunks/CrxwEwqu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CwNk8-XU.js +0 -6
- package/build/client/_app/immutable/chunks/CwNk8-XU.js.br +0 -0
- package/build/client/_app/immutable/chunks/CwNk8-XU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CwmAWymP.js +0 -6
- package/build/client/_app/immutable/chunks/CwmAWymP.js.br +0 -0
- package/build/client/_app/immutable/chunks/CwmAWymP.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 +0 -1
- 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/CzKuDChf.js +0 -6
- package/build/client/_app/immutable/chunks/CzKuDChf.js.br +0 -0
- package/build/client/_app/immutable/chunks/CzKuDChf.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 +0 -1
- 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/D-MeaMDU.js +0 -6
- package/build/client/_app/immutable/chunks/D-MeaMDU.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-MeaMDU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D3h14YRZ.js +0 -8
- package/build/client/_app/immutable/chunks/D3h14YRZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/D3h14YRZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5C2fndG.js +0 -6
- package/build/client/_app/immutable/chunks/D5C2fndG.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5C2fndG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DDMPVpvs.js +0 -6
- package/build/client/_app/immutable/chunks/DDMPVpvs.js.br +0 -0
- package/build/client/_app/immutable/chunks/DDMPVpvs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DDwshQtU.js +0 -6
- package/build/client/_app/immutable/chunks/DDwshQtU.js.br +0 -0
- package/build/client/_app/immutable/chunks/DDwshQtU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DHaeiCBh.js +0 -6
- package/build/client/_app/immutable/chunks/DHaeiCBh.js.br +0 -0
- package/build/client/_app/immutable/chunks/DHaeiCBh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJriQKD9.js +0 -2
- 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/DLQqXQ6R.js +0 -751
- package/build/client/_app/immutable/chunks/DLQqXQ6R.js.br +0 -0
- package/build/client/_app/immutable/chunks/DLQqXQ6R.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DRIMs3uA.js +0 -6
- package/build/client/_app/immutable/chunks/DRIMs3uA.js.br +0 -0
- package/build/client/_app/immutable/chunks/DRIMs3uA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSZPf7rp.js +0 -6
- package/build/client/_app/immutable/chunks/DSZPf7rp.js.br +0 -0
- package/build/client/_app/immutable/chunks/DSZPf7rp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DTECt2xU.js +0 -6
- package/build/client/_app/immutable/chunks/DTECt2xU.js.br +0 -0
- package/build/client/_app/immutable/chunks/DTECt2xU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DUeN9t8P.js +0 -6
- package/build/client/_app/immutable/chunks/DUeN9t8P.js.br +0 -0
- package/build/client/_app/immutable/chunks/DUeN9t8P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DWH0347h.js +0 -6
- package/build/client/_app/immutable/chunks/DWH0347h.js.br +0 -0
- package/build/client/_app/immutable/chunks/DWH0347h.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DXyYeYxl.js +0 -6
- package/build/client/_app/immutable/chunks/DXyYeYxl.js.br +0 -0
- package/build/client/_app/immutable/chunks/DXyYeYxl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DZxMt77D.js +0 -6
- package/build/client/_app/immutable/chunks/DZxMt77D.js.br +0 -0
- package/build/client/_app/immutable/chunks/DZxMt77D.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dd3NCNK9.js +0 -6
- package/build/client/_app/immutable/chunks/Dd3NCNK9.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dd3NCNK9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DfzH4Xui.js +0 -6
- package/build/client/_app/immutable/chunks/DfzH4Xui.js.br +0 -0
- package/build/client/_app/immutable/chunks/DfzH4Xui.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DgGeUDDh.js +0 -1
- package/build/client/_app/immutable/chunks/DgGeUDDh.js.br +0 -0
- package/build/client/_app/immutable/chunks/DgGeUDDh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DgyLZaXg.js +0 -6
- package/build/client/_app/immutable/chunks/DgyLZaXg.js.br +0 -0
- package/build/client/_app/immutable/chunks/DgyLZaXg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DjDhNM9l.js +0 -9
- package/build/client/_app/immutable/chunks/DjDhNM9l.js.br +0 -0
- package/build/client/_app/immutable/chunks/DjDhNM9l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DnHyzjbg.js +0 -6
- package/build/client/_app/immutable/chunks/DnHyzjbg.js.br +0 -0
- package/build/client/_app/immutable/chunks/DnHyzjbg.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/DrQuvNYM.js +0 -6
- package/build/client/_app/immutable/chunks/DrQuvNYM.js.br +0 -0
- package/build/client/_app/immutable/chunks/DrQuvNYM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Drc7WvVn.js +0 -6
- package/build/client/_app/immutable/chunks/Drc7WvVn.js.br +0 -0
- package/build/client/_app/immutable/chunks/Drc7WvVn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dslf9OwW.js +0 -33
- 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/DwJ7jVG9.js +0 -8
- package/build/client/_app/immutable/chunks/DwJ7jVG9.js.br +0 -0
- package/build/client/_app/immutable/chunks/DwJ7jVG9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DyP6w7ZV.js +0 -6
- package/build/client/_app/immutable/chunks/DyP6w7ZV.js.br +0 -0
- package/build/client/_app/immutable/chunks/DyP6w7ZV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/JcG4w2gF.js +0 -1
- package/build/client/_app/immutable/chunks/JcG4w2gF.js.br +0 -0
- package/build/client/_app/immutable/chunks/JcG4w2gF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/OA8UcISh.js +0 -1
- package/build/client/_app/immutable/chunks/OA8UcISh.js.br +0 -0
- package/build/client/_app/immutable/chunks/OA8UcISh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/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/T0seCQS_.js +0 -1
- package/build/client/_app/immutable/chunks/T0seCQS_.js.br +0 -0
- package/build/client/_app/immutable/chunks/T0seCQS_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Tw7wswEv.js +0 -6
- package/build/client/_app/immutable/chunks/Tw7wswEv.js.br +0 -0
- package/build/client/_app/immutable/chunks/Tw7wswEv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/YWi4-JPR.js +0 -6
- package/build/client/_app/immutable/chunks/YWi4-JPR.js.br +0 -0
- package/build/client/_app/immutable/chunks/YWi4-JPR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ZGfwyPNq.js +0 -15
- package/build/client/_app/immutable/chunks/ZGfwyPNq.js.br +0 -0
- package/build/client/_app/immutable/chunks/ZGfwyPNq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Zznr-cwX.js +0 -6
- package/build/client/_app/immutable/chunks/Zznr-cwX.js.br +0 -0
- package/build/client/_app/immutable/chunks/Zznr-cwX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/bynEV6cE.js +0 -9
- package/build/client/_app/immutable/chunks/bynEV6cE.js.br +0 -0
- package/build/client/_app/immutable/chunks/bynEV6cE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/dUCx_-0o.js +0 -6
- package/build/client/_app/immutable/chunks/dUCx_-0o.js.br +0 -0
- package/build/client/_app/immutable/chunks/dUCx_-0o.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ddC1NP9R.js +0 -2
- package/build/client/_app/immutable/chunks/ddC1NP9R.js.br +0 -0
- package/build/client/_app/immutable/chunks/ddC1NP9R.js.gz +0 -0
- package/build/client/_app/immutable/chunks/deUWdS0T.js +0 -6
- package/build/client/_app/immutable/chunks/deUWdS0T.js.br +0 -0
- package/build/client/_app/immutable/chunks/deUWdS0T.js.gz +0 -0
- package/build/client/_app/immutable/chunks/gULlE0tz.js +0 -1
- package/build/client/_app/immutable/chunks/gULlE0tz.js.br +0 -2
- package/build/client/_app/immutable/chunks/gULlE0tz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/i9-g7ZhI.js +0 -6
- package/build/client/_app/immutable/chunks/i9-g7ZhI.js.br +0 -0
- package/build/client/_app/immutable/chunks/i9-g7ZhI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/iAhzu4tv.js +0 -1
- 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 +0 -1
- 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/nf6ki56Z.js +0 -6
- package/build/client/_app/immutable/chunks/nf6ki56Z.js.br +0 -0
- package/build/client/_app/immutable/chunks/nf6ki56Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pnP8ivHi.js +0 -6
- package/build/client/_app/immutable/chunks/pnP8ivHi.js.br +0 -0
- package/build/client/_app/immutable/chunks/pnP8ivHi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/rUNN04Wq.js +0 -6
- package/build/client/_app/immutable/chunks/rUNN04Wq.js.br +0 -0
- package/build/client/_app/immutable/chunks/rUNN04Wq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/tGk8EFnU.js +0 -6
- package/build/client/_app/immutable/chunks/tGk8EFnU.js.br +0 -0
- package/build/client/_app/immutable/chunks/tGk8EFnU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/uLGP0py1.js +0 -1
- 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/chunks/xC2C8d09.js +0 -1
- package/build/client/_app/immutable/chunks/xC2C8d09.js.br +0 -0
- package/build/client/_app/immutable/chunks/xC2C8d09.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Ghwm_QxJ.js +0 -2
- 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 +0 -3
- 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 +0 -13
- 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/11.CsTD16Gn.js +0 -1
- package/build/client/_app/immutable/nodes/11.CsTD16Gn.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.CsTD16Gn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.DYXd_leK.js +0 -1
- package/build/client/_app/immutable/nodes/12.DYXd_leK.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.DYXd_leK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.DQMjAUKq.js +0 -1
- package/build/client/_app/immutable/nodes/13.DQMjAUKq.js.br +0 -1
- package/build/client/_app/immutable/nodes/13.DQMjAUKq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.C59tyoG0.js +0 -1
- package/build/client/_app/immutable/nodes/14.C59tyoG0.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.C59tyoG0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.BFy4oAT6.js +0 -1
- 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/16.DRwcAQjb.js +0 -1
- package/build/client/_app/immutable/nodes/16.DRwcAQjb.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.DRwcAQjb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.C6M3Ukek.js +0 -3
- 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 +0 -11
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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/7.7N4iPidV.js +0 -1
- package/build/client/_app/immutable/nodes/7.7N4iPidV.js.br +0 -1
- package/build/client/_app/immutable/nodes/7.7N4iPidV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.wHpoUA6X.js +0 -2
- 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/client/_app/immutable/workers/css.worker-BRIrhzkG.js +0 -84
- 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 +0 -12
- 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 +0 -461
- 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 +0 -49
- 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 +0 -51334
- 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 +0 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/env.js +0 -45
- package/build/handler.js +0 -1390
- package/build/index.js +0 -334
- 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/1-p4jSVKu9.js.map +0 -1
- 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/11-CB5q84io.js +0 -25
- package/build/server/chunks/11-CB5q84io.js.map +0 -1
- package/build/server/chunks/12-CfqC_Y1R.js +0 -19
- package/build/server/chunks/12-CfqC_Y1R.js.map +0 -1
- package/build/server/chunks/13-ByddfU7G.js +0 -21
- package/build/server/chunks/13-ByddfU7G.js.map +0 -1
- package/build/server/chunks/14-Dk7DCwHC.js +0 -20
- package/build/server/chunks/14-Dk7DCwHC.js.map +0 -1
- package/build/server/chunks/15-BRw8wtLp.js +0 -9
- package/build/server/chunks/15-BRw8wtLp.js.map +0 -1
- package/build/server/chunks/16-Y9KLA9UF.js +0 -20
- package/build/server/chunks/16-Y9KLA9UF.js.map +0 -1
- 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/5-D1bI9E9O.js.map +0 -1
- package/build/server/chunks/6-BJxJFeJN.js +0 -9
- package/build/server/chunks/6-BJxJFeJN.js.map +0 -1
- package/build/server/chunks/7-olXOjo4r.js +0 -25
- package/build/server/chunks/7-olXOjo4r.js.map +0 -1
- 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/AgentSidebar-C--dGIV5.js +0 -170
- package/build/server/chunks/AgentSidebar-C--dGIV5.js.map +0 -1
- package/build/server/chunks/Button-oIUr2LUP.js +0 -47
- package/build/server/chunks/Button-oIUr2LUP.js.map +0 -1
- package/build/server/chunks/ChatStepTrace-CX2Zolmp.js +0 -556
- package/build/server/chunks/ChatStepTrace-CX2Zolmp.js.map +0 -1
- package/build/server/chunks/Dropdown-DfCyYHqi.js +0 -62
- package/build/server/chunks/Dropdown-DfCyYHqi.js.map +0 -1
- package/build/server/chunks/Icon-DadJPtVP.js +0 -77
- package/build/server/chunks/Icon-DadJPtVP.js.map +0 -1
- package/build/server/chunks/Input-R74u4cO5.js +0 -22
- package/build/server/chunks/Input-R74u4cO5.js.map +0 -1
- package/build/server/chunks/Modal-CAzVFw5x.js +0 -2595
- package/build/server/chunks/Modal-CAzVFw5x.js.map +0 -1
- package/build/server/chunks/Panel-D0IY1AzO.js +0 -11
- package/build/server/chunks/Panel-D0IY1AzO.js.map +0 -1
- package/build/server/chunks/Tab-D13L_Up5.js +0 -83
- package/build/server/chunks/Tab-D13L_Up5.js.map +0 -1
- package/build/server/chunks/_layout.svelte-BIMexfnk.js +0 -480
- package/build/server/chunks/_layout.svelte-BIMexfnk.js.map +0 -1
- package/build/server/chunks/_layout.svelte-Blfto3jh.js +0 -1143
- package/build/server/chunks/_layout.svelte-Blfto3jh.js.map +0 -1
- package/build/server/chunks/_layout.svelte-D4EOIHJJ.js +0 -45
- package/build/server/chunks/_layout.svelte-D4EOIHJJ.js.map +0 -1
- package/build/server/chunks/_layout.svelte-Dk-9LkfL.js +0 -60
- package/build/server/chunks/_layout.svelte-Dk-9LkfL.js.map +0 -1
- package/build/server/chunks/_page.svelte-B1erTzoN.js +0 -61
- package/build/server/chunks/_page.svelte-B1erTzoN.js.map +0 -1
- package/build/server/chunks/_page.svelte-CY0Be19a.js +0 -2129
- package/build/server/chunks/_page.svelte-CY0Be19a.js.map +0 -1
- package/build/server/chunks/_page.svelte-CeO_ScC8.js +0 -13
- package/build/server/chunks/_page.svelte-CeO_ScC8.js.map +0 -1
- package/build/server/chunks/_page.svelte-CoCBnE2l.js +0 -944
- package/build/server/chunks/_page.svelte-CoCBnE2l.js.map +0 -1
- package/build/server/chunks/_page.svelte-D5S0QjlI.js +0 -70
- package/build/server/chunks/_page.svelte-D5S0QjlI.js.map +0 -1
- package/build/server/chunks/_page.svelte-DZvcjON6.js +0 -1819
- package/build/server/chunks/_page.svelte-DZvcjON6.js.map +0 -1
- package/build/server/chunks/_page.svelte-YoDx7gDL.js +0 -47
- package/build/server/chunks/_page.svelte-YoDx7gDL.js.map +0 -1
- package/build/server/chunks/_page.svelte-xf-0yXQM.js +0 -1429
- package/build/server/chunks/_page.svelte-xf-0yXQM.js.map +0 -1
- package/build/server/chunks/_server.ts-Bn0p9hMs.js +0 -49
- package/build/server/chunks/_server.ts-Bn0p9hMs.js.map +0 -1
- package/build/server/chunks/_server.ts-CbcaMe9z.js +0 -38
- package/build/server/chunks/_server.ts-CbcaMe9z.js.map +0 -1
- package/build/server/chunks/_server.ts-CtO28tLc.js +0 -23
- package/build/server/chunks/_server.ts-CtO28tLc.js.map +0 -1
- package/build/server/chunks/_server.ts-D_eo_OAK.js +0 -139
- package/build/server/chunks/_server.ts-D_eo_OAK.js.map +0 -1
- package/build/server/chunks/agents-context-w03Lz_6n.js +0 -6
- package/build/server/chunks/agents-context-w03Lz_6n.js.map +0 -1
- package/build/server/chunks/client-WFEvX_be.js +0 -33
- package/build/server/chunks/client-WFEvX_be.js.map +0 -1
- package/build/server/chunks/conversation-view-memory-B0PllWRL.js +0 -20
- package/build/server/chunks/conversation-view-memory-B0PllWRL.js.map +0 -1
- package/build/server/chunks/edit-workspace-context-biaZqjOf.js +0 -6
- package/build/server/chunks/edit-workspace-context-biaZqjOf.js.map +0 -1
- package/build/server/chunks/error.svelte-BjIDhioc.js +0 -15
- package/build/server/chunks/error.svelte-BjIDhioc.js.map +0 -1
- package/build/server/chunks/hooks.universal-BJphIAi-.js +0 -8
- package/build/server/chunks/hooks.universal-BJphIAi-.js.map +0 -1
- package/build/server/chunks/index-NcxaM188.js +0 -236
- package/build/server/chunks/index-NcxaM188.js.map +0 -1
- package/build/server/chunks/index-rHCWxLFZ.js +0 -4062
- package/build/server/chunks/index-rHCWxLFZ.js.map +0 -1
- package/build/server/chunks/index-server-BMxlf3ZC.js +0 -17
- package/build/server/chunks/index-server-BMxlf3ZC.js.map +0 -1
- package/build/server/chunks/index2-DdOgqE2_.js +0 -24
- package/build/server/chunks/index2-DdOgqE2_.js.map +0 -1
- package/build/server/chunks/index3-DC4GTqD1.js +0 -63
- package/build/server/chunks/index3-DC4GTqD1.js.map +0 -1
- package/build/server/chunks/latency--f3JYIRg.js +0 -157
- package/build/server/chunks/latency--f3JYIRg.js.map +0 -1
- package/build/server/chunks/latency-recordings-CqioXMQl.js +0 -117
- package/build/server/chunks/latency-recordings-CqioXMQl.js.map +0 -1
- package/build/server/chunks/log-content.svelte-CfQzj-v_.js +0 -20
- package/build/server/chunks/log-content.svelte-CfQzj-v_.js.map +0 -1
- package/build/server/chunks/root-UeqiktJA.js +0 -1266
- package/build/server/chunks/root-UeqiktJA.js.map +0 -1
- package/build/server/chunks/shared-server-DaWdgxVh.js +0 -11
- package/build/server/chunks/shared-server-DaWdgxVh.js.map +0 -1
- package/build/server/chunks/source-selection-CcN1cgXc.js +0 -243
- package/build/server/chunks/source-selection-CcN1cgXc.js.map +0 -1
- package/build/server/chunks/sources.server-C2PLxQXh.js +0 -71
- package/build/server/chunks/sources.server-C2PLxQXh.js.map +0 -1
- package/build/server/chunks/state.svelte-CLOYXiU6.js +0 -11
- package/build/server/chunks/state.svelte-CLOYXiU6.js.map +0 -1
- package/build/server/chunks/steps-DzZCg39h.js +0 -8
- package/build/server/chunks/steps-DzZCg39h.js.map +0 -1
- package/build/server/chunks/trpc-client-D8L6vWf4.js +0 -14
- package/build/server/chunks/trpc-client-D8L6vWf4.js.map +0 -1
- package/build/server/index.js +0 -5995
- package/build/server/index.js.map +0 -1
- package/build/server/manifest.js +0 -181
- package/build/server/manifest.js.map +0 -1
- package/build/shims.js +0 -32
- package/src/backend/lib/backend-restart.ts +0 -15
- package/src/backend/lib/decode-html-entities.spec.ts +0 -28
- package/src/backend/lib/decode-html-entities.ts +0 -25
- package/src/backend/lib/get-agent-factories.spec.ts +0 -59
- package/src/backend/lib/get-agent-factories.ts +0 -118
- package/src/backend/lib/get-root-path.ts +0 -89
- package/src/backend/lib/import-nonce.ts +0 -10
- package/src/backend/lib/middleware/cors.ts +0 -14
- package/src/backend/lib/project-api.ts +0 -15
- package/src/backend/lib/project-data-dir.spec.ts +0 -19
- package/src/backend/lib/project-data-dir.ts +0 -9
- package/src/backend/lib/trpc-context.ts +0 -8
- package/src/backend/lib/voice-agent-lifecycle.test.ts +0 -31
- package/src/backend/lib/voice-agent-lifecycle.ts +0 -16
- package/src/backend/region/router.ts +0 -54
- package/src/backend/roleplay/agents.ts +0 -742
- package/src/backend/roleplay/fs-persistence.ts +0 -81
- package/src/backend/roleplay/logger.ts +0 -30
- package/src/backend/roleplay/message-dispatcher.ts +0 -93
- package/src/backend/roleplay/old-server.ts +0 -82
- package/src/backend/roleplay/router.ts +0 -366
- package/src/backend/roleplay/scheduler.ts +0 -76
- package/src/backend/roleplay/schema-file.spec.ts +0 -38
- package/src/backend/roleplay/schema-file.ts +0 -33
- package/src/backend/roleplay/step-registry.ts +0 -11
- package/src/backend/roleplay/trace-serialization.spec.ts +0 -35
- package/src/backend/roleplay/trace-serialization.ts +0 -57
- package/src/backend/roleplay/variants.spec.ts +0 -53
- package/src/backend/roleplay/variants.ts +0 -294
- package/src/backend/server.ts +0 -70
- package/src/backend/tests/academy-json.spec.ts +0 -97
- package/src/backend/tests/academy.ts +0 -940
- package/src/backend/tests/active-test-runs.spec.ts +0 -27
- package/src/backend/tests/active-test-runs.ts +0 -41
- package/src/backend/tests/analyze.ts +0 -533
- package/src/backend/tests/best-effort-log-writer.spec.ts +0 -39
- package/src/backend/tests/best-effort-log-writer.ts +0 -52
- package/src/backend/tests/context-utils.ts +0 -26
- package/src/backend/tests/data.spec.ts +0 -146
- package/src/backend/tests/data.ts +0 -732
- package/src/backend/tests/emulate-agents.ts +0 -206
- package/src/backend/tests/json-field-match.ts +0 -94
- package/src/backend/tests/openai-prompt-cache.ts +0 -68
- package/src/backend/tests/pii-sanitized-test-drafts.spec.ts +0 -163
- package/src/backend/tests/pii-sanitized-test-drafts.ts +0 -106
- package/src/backend/tests/pii-sanitizer.spec.ts +0 -261
- package/src/backend/tests/pii-sanitizer.ts +0 -282
- package/src/backend/tests/prompt-issues.ts +0 -207
- package/src/backend/tests/promptfoo-runtime.spec.ts +0 -41
- package/src/backend/tests/promptfoo-runtime.ts +0 -27
- package/src/backend/tests/report-files.spec.ts +0 -44
- package/src/backend/tests/report-files.ts +0 -120
- package/src/backend/tests/router.ts +0 -301
- package/src/backend/tests/suite.spec.ts +0 -122
- package/src/backend/tests/suite.ts +0 -236
- package/src/backend/traces/latency-recordings.ts +0 -176
- package/src/lib/agent-catalog.ts +0 -4
- package/src/lib/agents-context.ts +0 -8
- package/src/lib/api-telescope/client.ts +0 -174
- package/src/lib/api-telescope/index.ts +0 -4
- package/src/lib/api-telescope/latency-timeline-view-state.spec.ts +0 -25
- package/src/lib/api-telescope/latency-timeline-view-state.ts +0 -86
- package/src/lib/api-telescope/latency.ts +0 -252
- package/src/lib/api-telescope/source-selection.ts +0 -20
- package/src/lib/api-telescope/sources.server.ts +0 -94
- package/src/lib/api-telescope/types.ts +0 -143
- package/src/lib/components/Button.svelte +0 -62
- package/src/lib/components/CollapseExpand.svelte +0 -425
- package/src/lib/components/CopyTracesDropdown.svelte +0 -118
- package/src/lib/components/Dialog.svelte +0 -69
- package/src/lib/components/Dropdown.svelte +0 -111
- package/src/lib/components/History.svelte +0 -174
- package/src/lib/components/Icon.svelte +0 -94
- package/src/lib/components/Input.svelte +0 -43
- package/src/lib/components/Link.svelte +0 -45
- package/src/lib/components/Modal.svelte +0 -45
- package/src/lib/components/Panel.svelte +0 -12
- package/src/lib/components/PopoverModal.svelte +0 -34
- package/src/lib/components/Popper.svelte +0 -109
- package/src/lib/components/Tab.svelte +0 -91
- package/src/lib/components/Tabs.svelte +0 -140
- package/src/lib/components/agent-colors.ts +0 -70
- package/src/lib/dom/text-selection.ts +0 -97
- package/src/lib/edit/edit-vm.spec.ts +0 -115
- package/src/lib/edit/edit-vm.ts +0 -169
- package/src/lib/edit/edit-workspace-context.ts +0 -56
- package/src/lib/edit/highlight-styles.spec.ts +0 -14
- package/src/lib/edit/prompt-highlighter.spec.ts +0 -80
- package/src/lib/edit/prompt-highlighter.ts +0 -155
- package/src/lib/edit/quote-matching.ts +0 -97
- package/src/lib/monaco/bosun-theme.ts +0 -125
- package/src/lib/monaco/font.ts +0 -2
- package/src/lib/monaco-workers.ts +0 -28
- package/src/lib/steps.ts +0 -19
- package/src/lib/tests/pii-sanitized-test-draft.ts +0 -50
- package/src/lib/trpc-client.ts +0 -16
- package/src/lib/ws-client.ts +0 -144
- package/src/lib/ws-message.ts +0 -150
- package/tsconfig.json +0 -27
- /package/build/{client/_app → _app}/immutable/assets/codicon.DCmgc-ay.ttf +0 -0
- /package/build/{client/favicon.png → favicon.png} +0 -0
- /package/build/{client/fonts → fonts}/DarkerGrotesque-Black.ttf +0 -0
- /package/build/{client/fonts → fonts}/DarkerGrotesque-Bold.ttf +0 -0
- /package/build/{client/fonts → fonts}/DarkerGrotesque-Light.ttf +0 -0
- /package/build/{client/fonts → fonts}/DarkerGrotesque-Medium.ttf +0 -0
- /package/build/{client/fonts → fonts}/DarkerGrotesque-Regular.ttf +0 -0
- /package/build/{client/fonts → fonts}/DarkerGrotesque-SemiBold.ttf +0 -0
- /package/build/{client/fonts.css → fonts.css} +0 -0
- /package/build/{client/fonts.css.br → fonts.css.br} +0 -0
- /package/build/{client/fonts.css.gz → fonts.css.gz} +0 -0
- /package/build/{client/recombine.svg → recombine.svg} +0 -0
- /package/build/{client/recombine.svg.br → recombine.svg.br} +0 -0
- /package/build/{client/recombine.svg.gz → recombine.svg.gz} +0 -0
- /package/build/{client/telescope-icon.svg → telescope-icon.svg} +0 -0
- /package/build/{client/telescope-icon.svg.br → telescope-icon.svg.br} +0 -0
- /package/build/{client/telescope-icon.svg.gz → telescope-icon.svg.gz} +0 -0
- /package/build/{client/ui → ui}/arrow_tests.svg +0 -0
- /package/build/{client/ui → ui}/arrow_tests.svg.br +0 -0
- /package/build/{client/ui → ui}/arrow_tests.svg.gz +0 -0
- /package/build/{client/ui → ui}/paperclip.svg +0 -0
- /package/build/{client/ui → ui}/paperclip.svg.br +0 -0
- /package/build/{client/ui → ui}/paperclip.svg.gz +0 -0
- /package/build/{client/ui → ui}/send.svg +0 -0
- /package/build/{client/ui → ui}/send.svg.br +0 -0
- /package/build/{client/ui → ui}/send.svg.gz +0 -0
|
@@ -1,940 +0,0 @@
|
|
|
1
|
-
// cspell:words conv
|
|
2
|
-
import { type Message, type StepTrace, type StepTracer } from '@recombine-ai/engine'
|
|
3
|
-
import { loadAgents } from './emulate-agents'
|
|
4
|
-
import { installTestPromptCacheBust } from './openai-prompt-cache'
|
|
5
|
-
import { promptfoo } from './promptfoo-runtime'
|
|
6
|
-
// Backend: per-agent YAML test cases.
|
|
7
|
-
import { mkdir, rename, unlink, writeFile } from 'node:fs/promises'
|
|
8
|
-
import path from 'node:path'
|
|
9
|
-
import { readSuite, type TestRow as SuiteTestRow } from './suite'
|
|
10
|
-
import { isMainStepName } from '../../lib/steps'
|
|
11
|
-
// Use types derived from promptfoo exports instead of incorrect default type imports
|
|
12
|
-
|
|
13
|
-
import type {
|
|
14
|
-
ApiProvider,
|
|
15
|
-
Assertion as PFAssertion,
|
|
16
|
-
CallApiContextParams,
|
|
17
|
-
ProviderOptions,
|
|
18
|
-
ProviderResponse
|
|
19
|
-
} from 'promptfoo'
|
|
20
|
-
import { getRootPath } from '../lib/get-root-path'
|
|
21
|
-
import { ActiveTestRuns } from './active-test-runs'
|
|
22
|
-
import { createBestEffortLogWriter, type BestEffortLogWriter } from './best-effort-log-writer'
|
|
23
|
-
import { makeContext } from './context-utils'
|
|
24
|
-
import { gradeJsonExpectedFields } from './json-field-match'
|
|
25
|
-
import { queueReportCompression, REPORT_JSON_SUFFIX } from './report-files'
|
|
26
|
-
|
|
27
|
-
// ----------------- Type aliases & helpers -----------------
|
|
28
|
-
type Context = Record<string, unknown>
|
|
29
|
-
|
|
30
|
-
type Conversation = Message[]
|
|
31
|
-
|
|
32
|
-
interface CsvRow {
|
|
33
|
-
id?: string
|
|
34
|
-
assertion_type: string
|
|
35
|
-
assertion_value: string
|
|
36
|
-
conversation: string
|
|
37
|
-
expected_output: string
|
|
38
|
-
evaluation_mode?: string
|
|
39
|
-
case_sensitive?: boolean
|
|
40
|
-
context_mode?: string
|
|
41
|
-
similarity_threshold: number | string
|
|
42
|
-
pinned: 'TRUE' | 'FALSE'
|
|
43
|
-
context: string | Record<string, unknown>
|
|
44
|
-
mocks?: string | Record<string, unknown>
|
|
45
|
-
timeout: string
|
|
46
|
-
scenario?: string
|
|
47
|
-
step?: string
|
|
48
|
-
author?: string
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export interface ResultEntry {
|
|
52
|
-
success: boolean
|
|
53
|
-
result: string
|
|
54
|
-
evaluation: string
|
|
55
|
-
rendered_prompt: string
|
|
56
|
-
received_prompt: string
|
|
57
|
-
stringified_conversation: string
|
|
58
|
-
received_context: string
|
|
59
|
-
// Raw traces array for this run (sanitized where necessary)
|
|
60
|
-
traces: StepTrace[]
|
|
61
|
-
errors: string
|
|
62
|
-
logs: string[]
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface TableRow extends CsvRow {
|
|
66
|
-
// Link to details view for this row
|
|
67
|
-
prompts: string
|
|
68
|
-
success_rate_percent: number
|
|
69
|
-
success_rate: string
|
|
70
|
-
// Per-run results (new format)
|
|
71
|
-
results: ResultEntry[]
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export interface WrittenRunReportConfig {
|
|
75
|
-
repeats: number
|
|
76
|
-
concurrency: number
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export type PromptTestsRunConfig = Pick<WrittenRunReportConfig, 'repeats' | 'concurrency'>
|
|
80
|
-
|
|
81
|
-
export interface WrittenRunReportRow extends TableRow {
|
|
82
|
-
test: SuiteTestRow
|
|
83
|
-
agent: string
|
|
84
|
-
test_id: string
|
|
85
|
-
run_timestamp: string
|
|
86
|
-
run_config: string
|
|
87
|
-
pinned_at_run: 'TRUE' | 'FALSE'
|
|
88
|
-
run_scope: 'all' | 'pinned'
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export interface WrittenRunReport {
|
|
92
|
-
agent: string
|
|
93
|
-
run_timestamp: string
|
|
94
|
-
run_scope: 'all' | 'pinned'
|
|
95
|
-
run_config: WrittenRunReportConfig
|
|
96
|
-
rows: WrittenRunReportRow[]
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
type PromptTestsScope = 'all' | 'pinned'
|
|
100
|
-
|
|
101
|
-
type PromptTestsSelection = { scope: PromptTestsScope; step?: string } | { testId: string }
|
|
102
|
-
|
|
103
|
-
export interface PromptTestsProgress {
|
|
104
|
-
plannedTestIds: string[]
|
|
105
|
-
runningTestIds: string[]
|
|
106
|
-
completedTestIds: string[]
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
type MutablePromptTestsProgress = PromptTestsProgress & {
|
|
110
|
-
expectedRuns: number
|
|
111
|
-
startedTestIds: Set<string>
|
|
112
|
-
completedRunsByTestId: Map<string, number>
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
const activeRuns = new ActiveTestRuns<MutablePromptTestsProgress>()
|
|
116
|
-
|
|
117
|
-
export function getPromptTestsProgress(suiteKey: string): PromptTestsProgress | null {
|
|
118
|
-
const progress = activeRuns.getProgress(suiteKey)
|
|
119
|
-
if (!progress) return null
|
|
120
|
-
return {
|
|
121
|
-
plannedTestIds: [...progress.plannedTestIds],
|
|
122
|
-
runningTestIds: [...progress.runningTestIds],
|
|
123
|
-
completedTestIds: [...progress.completedTestIds]
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export type SuiteSelection = {
|
|
128
|
-
// `suiteKey` is the filesystem/report key (e.g. `voiceSupport.en-gb`).
|
|
129
|
-
// `agentId` is the canonical factory key (workflow export key, e.g. `voiceSupport`).
|
|
130
|
-
// Keeping these separate avoids any parsing/guessing in the test runner.
|
|
131
|
-
suiteKey: string
|
|
132
|
-
agentId: string
|
|
133
|
-
region?: string
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
export function cancelPromptTests(suiteKey: string): boolean {
|
|
137
|
-
return activeRuns.cancel(suiteKey)
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
export async function runPromptTestsManaged(
|
|
141
|
-
suite: SuiteSelection,
|
|
142
|
-
selection: PromptTestsSelection,
|
|
143
|
-
requestedConfig: PromptTestsRunConfig
|
|
144
|
-
): Promise<WrittenRunReport> {
|
|
145
|
-
const run = activeRuns.start(suite.suiteKey)
|
|
146
|
-
if (!run) throw new Error('Tests already running for this agent')
|
|
147
|
-
try {
|
|
148
|
-
return await runPromptTests(suite, selection, requestedConfig, {
|
|
149
|
-
signal: run.controller.signal,
|
|
150
|
-
setProgress: (progress) => activeRuns.setProgress(suite.suiteKey, run, progress)
|
|
151
|
-
})
|
|
152
|
-
} finally {
|
|
153
|
-
activeRuns.finish(suite.suiteKey, run)
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
// Parse a multi-line sheet conversation string into engine messages
|
|
158
|
-
function parseConversationFromText(conversation: string | undefined | null): Conversation {
|
|
159
|
-
if (!conversation) return []
|
|
160
|
-
|
|
161
|
-
// Greedily accumulate lines for a role until the next role marker.
|
|
162
|
-
// Recognized markers (case-insensitive) at the beginning of a line:
|
|
163
|
-
// agent:, assistant:, user:, system:
|
|
164
|
-
const lines = conversation.split(/\r?\n/)
|
|
165
|
-
const messages: Conversation = []
|
|
166
|
-
|
|
167
|
-
let currentRole: 'agent' | 'user' | 'system' | null = null
|
|
168
|
-
let buffer: string[] = []
|
|
169
|
-
|
|
170
|
-
const roleMatch = (line: string) => line.match(/^\s*(agent|assistant|user|system)\s*:\s*(.*)$/i)
|
|
171
|
-
const flush = () => {
|
|
172
|
-
if (currentRole !== null) {
|
|
173
|
-
messages.push({ sender: currentRole, text: buffer.join('\n') })
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
for (let i = 0; i < lines.length; i++) {
|
|
178
|
-
const line = lines[i] ?? ''
|
|
179
|
-
const m = roleMatch(line)
|
|
180
|
-
if (m) {
|
|
181
|
-
// Starting a new role block; flush previous
|
|
182
|
-
flush()
|
|
183
|
-
const roleRaw = (m[1] || '').toLowerCase()
|
|
184
|
-
currentRole = roleRaw === 'assistant' ? 'agent' : (roleRaw as 'agent' | 'user' | 'system')
|
|
185
|
-
buffer = [m[2] ?? '']
|
|
186
|
-
} else if (currentRole !== null) {
|
|
187
|
-
// Continuation of the current role block (allow blank lines)
|
|
188
|
-
buffer.push(line)
|
|
189
|
-
} else {
|
|
190
|
-
// No current role block yet.
|
|
191
|
-
// Previously we silently ignored preamble lines; that's almost always a test authoring mistake
|
|
192
|
-
// (e.g. a malformed "User:"/"Agent:" prefix like "?Agent:").
|
|
193
|
-
if (line.trim()) {
|
|
194
|
-
const snippet = line.length > 200 ? `${line.slice(0, 200)}…` : line
|
|
195
|
-
throw new Error(
|
|
196
|
-
`Unparsed conversation content before the first role block at line ${i + 1}: ${snippet}\n` +
|
|
197
|
-
`Start each block with "User:", "Agent:" (or "Assistant:"), or "System:".`
|
|
198
|
-
)
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
// Flush the last buffered message
|
|
204
|
-
flush()
|
|
205
|
-
|
|
206
|
-
return messages.filter(
|
|
207
|
-
(m) => m.sender === 'user' || m.sender === 'agent' || m.sender === 'system'
|
|
208
|
-
)
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
// Map pinned sheet rows to common test inputs
|
|
212
|
-
function toTestInputs(
|
|
213
|
-
rows: (CsvRow & { index: number })[],
|
|
214
|
-
selection: PromptTestsSelection = { scope: 'pinned' }
|
|
215
|
-
) {
|
|
216
|
-
return rows
|
|
217
|
-
.filter((r) => {
|
|
218
|
-
if ('testId' in selection) return String(r.id ?? '') === String(selection.testId)
|
|
219
|
-
if (selection.step) {
|
|
220
|
-
const step = String(r.step || 'main')
|
|
221
|
-
// A row against the primary step belongs to whichever variant is selected; see isMainStepName.
|
|
222
|
-
const matches =
|
|
223
|
-
step === selection.step || (isMainStepName(step) && isMainStepName(selection.step))
|
|
224
|
-
if (!matches) return false
|
|
225
|
-
}
|
|
226
|
-
return selection.scope === 'all' ? true : r.pinned === 'TRUE'
|
|
227
|
-
})
|
|
228
|
-
.map((row) => {
|
|
229
|
-
const step = String(row.step || 'main')
|
|
230
|
-
let conversation: Conversation = []
|
|
231
|
-
let conversationParseError: string | undefined
|
|
232
|
-
if (isMainStepName(step)) {
|
|
233
|
-
try {
|
|
234
|
-
conversation = parseConversationFromText(row.conversation)
|
|
235
|
-
} catch (err) {
|
|
236
|
-
conversation = []
|
|
237
|
-
conversationParseError = err instanceof Error ? err.message : String(err)
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
const assertions: PFAssertion[] =
|
|
242
|
-
row.evaluation_mode === 'json-deep-equal'
|
|
243
|
-
? [
|
|
244
|
-
{
|
|
245
|
-
type: 'javascript',
|
|
246
|
-
value: (output: string) =>
|
|
247
|
-
gradeJsonExpectedFields(output, row.expected_output, row.case_sensitive === true)
|
|
248
|
-
}
|
|
249
|
-
]
|
|
250
|
-
: [
|
|
251
|
-
{
|
|
252
|
-
type: row.assertion_type as PFAssertion['type'],
|
|
253
|
-
value: row.assertion_value
|
|
254
|
-
}
|
|
255
|
-
]
|
|
256
|
-
|
|
257
|
-
return {
|
|
258
|
-
id: row.id,
|
|
259
|
-
scenario: row.scenario,
|
|
260
|
-
step,
|
|
261
|
-
conversation,
|
|
262
|
-
stringifiedConversation: String(row.conversation || ''),
|
|
263
|
-
conversationParseError,
|
|
264
|
-
assertions,
|
|
265
|
-
context: makeContext(row.context),
|
|
266
|
-
mocks: typeof row.mocks === 'undefined' ? undefined : makeContext(row.mocks)
|
|
267
|
-
}
|
|
268
|
-
})
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
export class RecombineAgentProvider implements ApiProvider {
|
|
272
|
-
protected providerId: string
|
|
273
|
-
public config: Record<string, unknown>
|
|
274
|
-
private abortSignal?: AbortSignal
|
|
275
|
-
private onTestStarted?: (testId: string) => void
|
|
276
|
-
|
|
277
|
-
constructor(options: ProviderOptions) {
|
|
278
|
-
this.providerId = options.id || 'recombine-agent'
|
|
279
|
-
this.config = options.config || {}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
setAbortSignal(signal: AbortSignal | undefined) {
|
|
283
|
-
this.abortSignal = signal
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
setOnTestStarted(callback: (testId: string) => void) {
|
|
287
|
-
this.onTestStarted = callback
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
id() {
|
|
291
|
-
return this.providerId
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
async callApi(_prompt: string, context?: CallApiContextParams): Promise<ProviderResponse> {
|
|
295
|
-
const projectRoot = path.dirname(await getRootPath())
|
|
296
|
-
const vars = (context?.vars || {}) as unknown as {
|
|
297
|
-
agentId: string
|
|
298
|
-
testId: string
|
|
299
|
-
region?: string
|
|
300
|
-
conversation: Conversation
|
|
301
|
-
stringifiedConversation?: string
|
|
302
|
-
conversationParseError?: string
|
|
303
|
-
context: Context
|
|
304
|
-
mocks?: Context
|
|
305
|
-
step?: string
|
|
306
|
-
}
|
|
307
|
-
const testId = String(vars.testId ?? '')
|
|
308
|
-
if (testId) this.onTestStarted?.(testId)
|
|
309
|
-
|
|
310
|
-
if (typeof vars.conversationParseError === 'string' && vars.conversationParseError.trim()) {
|
|
311
|
-
return { output: '', error: vars.conversationParseError }
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
const targetStep = String(vars.step || 'main')
|
|
315
|
-
let captured: string = ''
|
|
316
|
-
let captureEnabled = false
|
|
317
|
-
let targetStepMatched = false
|
|
318
|
-
const capturedLogs: string[] = []
|
|
319
|
-
const capturedStepTraces: StepTrace[] = []
|
|
320
|
-
|
|
321
|
-
// Streaming log writer; initialized after basic validation
|
|
322
|
-
let logWriter: BestEffortLogWriter | null = null
|
|
323
|
-
let logsFilePath = ''
|
|
324
|
-
|
|
325
|
-
// Clone the conversation so parallel runs don't share the same array reference.
|
|
326
|
-
// Shallow-clone each message; messages are simple { sender, text } objects in this flow.
|
|
327
|
-
const conv: Conversation = Array.isArray(vars.conversation)
|
|
328
|
-
? vars.conversation.map((m) => ({ ...m }))
|
|
329
|
-
: []
|
|
330
|
-
|
|
331
|
-
// Prepare a streaming log writer so logs are written as they occur
|
|
332
|
-
{
|
|
333
|
-
const runId = `${Date.now()}_${Math.random().toString(36).slice(2, 8)}`
|
|
334
|
-
const logsDir = path.join(projectRoot, 'data', 'logs')
|
|
335
|
-
await mkdir(logsDir, { recursive: true })
|
|
336
|
-
logsFilePath = path.join(logsDir, `capturedLogs_${runId}.log`)
|
|
337
|
-
logWriter = createBestEffortLogWriter(logsFilePath)
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
const stepTracer: StepTracer = {
|
|
341
|
-
addStepTrace: (stepTrace: StepTrace) => {
|
|
342
|
-
try {
|
|
343
|
-
capturedStepTraces.push(stepTrace)
|
|
344
|
-
if (
|
|
345
|
-
captureEnabled &&
|
|
346
|
-
!isMainStepName(targetStep) &&
|
|
347
|
-
!targetStepMatched &&
|
|
348
|
-
stepTrace.name === targetStep
|
|
349
|
-
) {
|
|
350
|
-
targetStepMatched = true
|
|
351
|
-
captured = toStringSafe(stepTrace.response ?? '')
|
|
352
|
-
logger.log(`Step ${targetStep} captured:`, captured)
|
|
353
|
-
}
|
|
354
|
-
} catch {
|
|
355
|
-
// best-effort capture; ignore serialization issues
|
|
356
|
-
}
|
|
357
|
-
},
|
|
358
|
-
async flush() {}
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
const push = (level: 'log' | 'debug' | 'warn' | 'error', args: any[]) => {
|
|
362
|
-
try {
|
|
363
|
-
const raw = args
|
|
364
|
-
.map((a) => {
|
|
365
|
-
try {
|
|
366
|
-
return typeof a === 'string' ? a : JSON.stringify(a)
|
|
367
|
-
} catch {
|
|
368
|
-
return String(a)
|
|
369
|
-
}
|
|
370
|
-
})
|
|
371
|
-
.join(' ')
|
|
372
|
-
const prefix = `[${level.toUpperCase()}] `
|
|
373
|
-
let line = `${prefix}${raw}`
|
|
374
|
-
// Enforce max 5000 chars per entry for logs
|
|
375
|
-
if (line.length > 5000) {
|
|
376
|
-
line = line.slice(0, 5000) + '... [TRUNCATED]'
|
|
377
|
-
}
|
|
378
|
-
capturedLogs.push(line)
|
|
379
|
-
logWriter?.write(line + '\n')
|
|
380
|
-
} catch {
|
|
381
|
-
// best-effort capture
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
const logger = {
|
|
385
|
-
log: (...args: any[]) => push('log', args),
|
|
386
|
-
debug: (...args: any[]) => push('debug', args),
|
|
387
|
-
warn: (...args: any[]) => push('warn', args),
|
|
388
|
-
error: (...args: any[]) => push('error', args)
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
try {
|
|
392
|
-
// Run the agent via loadAgents using provided conversation
|
|
393
|
-
await loadAgents({
|
|
394
|
-
agentId: vars.agentId,
|
|
395
|
-
region: vars.region,
|
|
396
|
-
getMessages: () => conv,
|
|
397
|
-
sendMessage: async (message: Message | string) => {
|
|
398
|
-
const m = typeof message === 'string' ? { sender: 'agent', text: message } : message
|
|
399
|
-
if (captureEnabled && isMainStepName(targetStep) && m.sender === 'agent') {
|
|
400
|
-
const text = typeof m.text === 'string' ? m.text : JSON.stringify(m)
|
|
401
|
-
if (!captured) {
|
|
402
|
-
captured = text
|
|
403
|
-
logger.log('Agent message captured:', captured)
|
|
404
|
-
} else {
|
|
405
|
-
logger.log('Agent message ignored after immediate capture:', text)
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
},
|
|
409
|
-
onBeforeTestResponse: () => {
|
|
410
|
-
captured = ''
|
|
411
|
-
targetStepMatched = false
|
|
412
|
-
captureEnabled = true
|
|
413
|
-
},
|
|
414
|
-
stepTracer,
|
|
415
|
-
logger,
|
|
416
|
-
context: vars.context || {},
|
|
417
|
-
mocks: vars.mocks,
|
|
418
|
-
abortSignal: this.abortSignal,
|
|
419
|
-
...(isMainStepName(targetStep)
|
|
420
|
-
? {}
|
|
421
|
-
: {
|
|
422
|
-
testStep: {
|
|
423
|
-
name: targetStep,
|
|
424
|
-
context: vars.context || {},
|
|
425
|
-
stringifiedConversation: vars.stringifiedConversation || ''
|
|
426
|
-
}
|
|
427
|
-
})
|
|
428
|
-
})
|
|
429
|
-
|
|
430
|
-
const logsDir = path.join(projectRoot, 'data', 'logs')
|
|
431
|
-
await mkdir(logsDir, { recursive: true })
|
|
432
|
-
const filePath = path.join(logsDir, `capturedStepTraces_${Date.now()}.json`)
|
|
433
|
-
await writeFile(filePath, JSON.stringify(capturedStepTraces, null, 2))
|
|
434
|
-
|
|
435
|
-
// Prepare sanitized traces for sheet output
|
|
436
|
-
const sanitizeTrace = (t: StepTrace): any => {
|
|
437
|
-
try {
|
|
438
|
-
const clone: any = { ...t }
|
|
439
|
-
const isMain = isMainStepName(clone?.name)
|
|
440
|
-
// Truncate large prompt fields on non-main steps
|
|
441
|
-
const truncate = (s: any, max = 5000) => {
|
|
442
|
-
if (typeof s !== 'string') return s
|
|
443
|
-
return s.length > max ? s.slice(0, max) + '... [TRUNCATED]' : s
|
|
444
|
-
}
|
|
445
|
-
if (isMain) {
|
|
446
|
-
// Hide main step rendered/received prompts entirely in traces
|
|
447
|
-
if ('renderedPrompt' in clone) delete clone.renderedPrompt
|
|
448
|
-
if ('receivedPrompt' in clone) delete clone.receivedPrompt
|
|
449
|
-
} else {
|
|
450
|
-
if (typeof clone.renderedPrompt !== 'undefined') {
|
|
451
|
-
clone.renderedPrompt = truncate(clone.renderedPrompt)
|
|
452
|
-
}
|
|
453
|
-
if (typeof clone.receivedPrompt !== 'undefined') {
|
|
454
|
-
clone.receivedPrompt = truncate(clone.receivedPrompt)
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
return clone
|
|
458
|
-
} catch {
|
|
459
|
-
return t
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
const sanitizedStepTraces = Array.isArray(capturedStepTraces)
|
|
463
|
-
? capturedStepTraces.map(sanitizeTrace)
|
|
464
|
-
: []
|
|
465
|
-
|
|
466
|
-
if (!isMainStepName(targetStep) && targetStepMatched) {
|
|
467
|
-
return {
|
|
468
|
-
output: captured,
|
|
469
|
-
metadata: {
|
|
470
|
-
targetStep,
|
|
471
|
-
logs: capturedLogs,
|
|
472
|
-
stepTraces: sanitizedStepTraces,
|
|
473
|
-
rawStepTraces: capturedStepTraces
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
if (captured && captured.trim()) {
|
|
479
|
-
return {
|
|
480
|
-
output: captured,
|
|
481
|
-
metadata: {
|
|
482
|
-
targetStep,
|
|
483
|
-
logs: capturedLogs,
|
|
484
|
-
stepTraces: sanitizedStepTraces,
|
|
485
|
-
rawStepTraces: capturedStepTraces
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
return {
|
|
491
|
-
output: '',
|
|
492
|
-
error: isMainStepName(targetStep)
|
|
493
|
-
? 'No agent reply captured'
|
|
494
|
-
: `Step "${targetStep}" did not execute after the test boundary`,
|
|
495
|
-
metadata: {
|
|
496
|
-
targetStep,
|
|
497
|
-
logs: capturedLogs,
|
|
498
|
-
stepTraces: sanitizedStepTraces,
|
|
499
|
-
rawStepTraces: capturedStepTraces
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
} catch (err) {
|
|
503
|
-
if (this.abortSignal?.aborted) throw err
|
|
504
|
-
const msg = err instanceof Error ? `${err.name}: ${err.message}` : String(err)
|
|
505
|
-
capturedLogs.push(`[ERROR] ${msg}`)
|
|
506
|
-
logWriter?.write(`[ERROR] ${msg}\n`)
|
|
507
|
-
return {
|
|
508
|
-
output: '',
|
|
509
|
-
error: msg,
|
|
510
|
-
metadata: { targetStep, logs: capturedLogs, stepTraces: capturedStepTraces }
|
|
511
|
-
}
|
|
512
|
-
} finally {
|
|
513
|
-
// Ensure the stream flushes all data
|
|
514
|
-
await logWriter?.close()
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
// ----------------- Helpers -----------------
|
|
520
|
-
// Derive the result type returned inside Eval from promptfoo.evaluate
|
|
521
|
-
type PFEval = Awaited<ReturnType<typeof promptfoo.evaluate>>
|
|
522
|
-
type PFEvalResult = PFEval['results'][number]
|
|
523
|
-
|
|
524
|
-
const toStringSafe = (v: unknown): string => {
|
|
525
|
-
if (typeof v === 'string') return v
|
|
526
|
-
try {
|
|
527
|
-
return JSON.stringify(v)
|
|
528
|
-
} catch {
|
|
529
|
-
return String(v)
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
function toResultEntry(r: any): ResultEntry {
|
|
534
|
-
const rawTraces = Array.isArray(r.metadata?.rawStepTraces)
|
|
535
|
-
? r.metadata?.rawStepTraces
|
|
536
|
-
: Array.isArray(r.metadata?.stepTraces)
|
|
537
|
-
? r.metadata?.stepTraces
|
|
538
|
-
: []
|
|
539
|
-
const targetStep = String(r.metadata?.targetStep || 'main')
|
|
540
|
-
const sourceTrace = isMainStepName(targetStep)
|
|
541
|
-
? // A row targeting the primary step matches whichever variant actually ran.
|
|
542
|
-
[...rawTraces].reverse().find((trace: any) => isMainStepName(trace?.name))
|
|
543
|
-
: rawTraces.find((trace: any) => trace?.name === targetStep)
|
|
544
|
-
const rendered_prompt =
|
|
545
|
-
sourceTrace && typeof sourceTrace.renderedPrompt !== 'undefined'
|
|
546
|
-
? toStringSafe(sourceTrace.renderedPrompt)
|
|
547
|
-
: 'NO RENDERED PROMPT'
|
|
548
|
-
const received_prompt =
|
|
549
|
-
sourceTrace && typeof sourceTrace.receivedPrompt !== 'undefined'
|
|
550
|
-
? toStringSafe(sourceTrace.receivedPrompt)
|
|
551
|
-
: 'NO RECEIVED PROMPT'
|
|
552
|
-
const stringified_conversation =
|
|
553
|
-
sourceTrace && typeof sourceTrace.stringifiedConversation !== 'undefined'
|
|
554
|
-
? toStringSafe(sourceTrace.stringifiedConversation)
|
|
555
|
-
: 'NO STRINGIFIED CONVERSATION'
|
|
556
|
-
const received_context =
|
|
557
|
-
sourceTrace && typeof sourceTrace.receivedContext !== 'undefined'
|
|
558
|
-
? toStringSafe(sourceTrace.receivedContext)
|
|
559
|
-
: 'NO RECEIVED CONTEXT'
|
|
560
|
-
|
|
561
|
-
const logs = Array.isArray(r.metadata?.logs) ? (r.metadata?.logs as string[]) : []
|
|
562
|
-
const traces = Array.isArray(r.metadata?.stepTraces) ? r.metadata?.stepTraces : []
|
|
563
|
-
return {
|
|
564
|
-
success: !!r.success,
|
|
565
|
-
result: String(r.response?.output ?? ''),
|
|
566
|
-
evaluation: String(r.gradingResult?.reason ?? ''),
|
|
567
|
-
rendered_prompt,
|
|
568
|
-
received_prompt,
|
|
569
|
-
stringified_conversation,
|
|
570
|
-
received_context,
|
|
571
|
-
traces,
|
|
572
|
-
errors: String(r.error ?? ''),
|
|
573
|
-
logs
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
function buildTableRows(
|
|
578
|
-
evals: Array<Awaited<ReturnType<typeof promptfoo.evaluate>>>,
|
|
579
|
-
csvRows: CsvRow[],
|
|
580
|
-
agentId: string
|
|
581
|
-
): TableRow[] {
|
|
582
|
-
const bucket = new Map<string, PFEvalResult[]>()
|
|
583
|
-
|
|
584
|
-
for (const ev of evals) {
|
|
585
|
-
for (const res of ev.results) {
|
|
586
|
-
const testId = String(res.metadata?.testId ?? '')
|
|
587
|
-
;(bucket.get(testId) ?? bucket.set(testId, []).get(testId)!).push(res)
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
return csvRows.map((row) => {
|
|
592
|
-
const rowId = row.id
|
|
593
|
-
const evalResults = bucket.get(String(rowId)) ?? []
|
|
594
|
-
const passCount = evalResults.filter((r) => r.success).length
|
|
595
|
-
const totalRuns = evalResults.length
|
|
596
|
-
const pct = totalRuns ? Math.round((passCount / totalRuns) * 100) : 0
|
|
597
|
-
const rateStr = `${passCount}/${totalRuns}`
|
|
598
|
-
|
|
599
|
-
const results: ResultEntry[] = evalResults.map((r) => toResultEntry(r))
|
|
600
|
-
|
|
601
|
-
return {
|
|
602
|
-
...row,
|
|
603
|
-
prompts: `suite://${agentId}?testId=${rowId}`,
|
|
604
|
-
success_rate_percent: pct,
|
|
605
|
-
success_rate: rateStr,
|
|
606
|
-
results
|
|
607
|
-
}
|
|
608
|
-
})
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
export async function runPromptTests(
|
|
612
|
-
suite: SuiteSelection,
|
|
613
|
-
selection: PromptTestsSelection,
|
|
614
|
-
requestedConfig: PromptTestsRunConfig,
|
|
615
|
-
opts?: {
|
|
616
|
-
signal?: AbortSignal
|
|
617
|
-
setProgress?: (progress: MutablePromptTestsProgress) => boolean
|
|
618
|
-
}
|
|
619
|
-
): Promise<WrittenRunReport> {
|
|
620
|
-
const signal = opts?.signal
|
|
621
|
-
const scope = 'scope' in selection ? selection.scope : 'pinned'
|
|
622
|
-
const onlyTestId = 'testId' in selection ? selection.testId : undefined
|
|
623
|
-
const suiteKey = suite.suiteKey
|
|
624
|
-
const loadedSuite = await readSuite(suiteKey)
|
|
625
|
-
const rows = loadedSuite.tests
|
|
626
|
-
|
|
627
|
-
const repeats = Math.min(500, Math.max(1, Math.floor(Number(requestedConfig.repeats) || 1)))
|
|
628
|
-
const concurrency = Math.min(
|
|
629
|
-
75,
|
|
630
|
-
Math.max(1, Math.floor(Number(requestedConfig.concurrency) || 75))
|
|
631
|
-
)
|
|
632
|
-
|
|
633
|
-
// Add an index field to each row for mapping
|
|
634
|
-
const typedRows = rows
|
|
635
|
-
const indexedRows = typedRows.map((row, index) => ({ ...row, index }))
|
|
636
|
-
|
|
637
|
-
if (onlyTestId && !indexedRows.some((row) => String(row.id ?? '') === String(onlyTestId))) {
|
|
638
|
-
throw new Error(`Test not found: ${onlyTestId}`)
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
const tests = toTestInputs(indexedRows, selection)
|
|
642
|
-
const plannedTestIds = tests.map((test) => String(test.id ?? '')).filter(Boolean)
|
|
643
|
-
const progress: MutablePromptTestsProgress = {
|
|
644
|
-
plannedTestIds,
|
|
645
|
-
runningTestIds: [],
|
|
646
|
-
completedTestIds: [],
|
|
647
|
-
expectedRuns: repeats,
|
|
648
|
-
startedTestIds: new Set(),
|
|
649
|
-
completedRunsByTestId: new Map()
|
|
650
|
-
}
|
|
651
|
-
if (opts?.setProgress && !opts.setProgress(progress)) throw new Error('Operation cancelled')
|
|
652
|
-
|
|
653
|
-
// Provider function with stable label
|
|
654
|
-
const providerInstance = new RecombineAgentProvider({
|
|
655
|
-
id: 'recombine-agent'
|
|
656
|
-
})
|
|
657
|
-
providerInstance.setAbortSignal(signal)
|
|
658
|
-
providerInstance.setOnTestStarted((testId) => {
|
|
659
|
-
if (progress.completedTestIds.includes(testId)) return
|
|
660
|
-
progress.startedTestIds.add(testId)
|
|
661
|
-
progress.runningTestIds = [...progress.startedTestIds]
|
|
662
|
-
})
|
|
663
|
-
const providerFn = Object.assign(
|
|
664
|
-
(_promptStr: string, ctx?: CallApiContextParams) => {
|
|
665
|
-
if (signal?.aborted) {
|
|
666
|
-
throw new Error('Operation cancelled')
|
|
667
|
-
}
|
|
668
|
-
return providerInstance.callApi(_promptStr, ctx)
|
|
669
|
-
},
|
|
670
|
-
{ label: 'recombine-agent' }
|
|
671
|
-
)
|
|
672
|
-
|
|
673
|
-
const hookKey = `__bosun_promptfoo_hook_${process.pid}_${Date.now()}_${Math.random().toString(16).slice(2)}`
|
|
674
|
-
const extensionCode = `globalThis[${JSON.stringify(hookKey)}]?.(output, context)`
|
|
675
|
-
|
|
676
|
-
const testSuite = {
|
|
677
|
-
prompts: ['agent-run'], // placeholder; provider ignores
|
|
678
|
-
tests: tests.map((test) => ({
|
|
679
|
-
description: test.scenario,
|
|
680
|
-
metadata: { testId: test.id },
|
|
681
|
-
assert: test.assertions,
|
|
682
|
-
model: 'not used!',
|
|
683
|
-
vars: {
|
|
684
|
-
agentId: suite.agentId,
|
|
685
|
-
testId: String(test.id ?? ''),
|
|
686
|
-
...(suite.region ? { region: suite.region } : {}),
|
|
687
|
-
context: test.context,
|
|
688
|
-
step: test.step,
|
|
689
|
-
...(typeof test.mocks !== 'undefined' ? { mocks: test.mocks } : {}),
|
|
690
|
-
conversation: test.conversation,
|
|
691
|
-
stringifiedConversation: test.stringifiedConversation,
|
|
692
|
-
...(test.conversationParseError
|
|
693
|
-
? { conversationParseError: test.conversationParseError }
|
|
694
|
-
: {})
|
|
695
|
-
}
|
|
696
|
-
})),
|
|
697
|
-
providers: [providerFn],
|
|
698
|
-
extensions: [extensionCode]
|
|
699
|
-
}
|
|
700
|
-
|
|
701
|
-
const rootPath = await getRootPath()
|
|
702
|
-
installTestPromptCacheBust(rootPath)
|
|
703
|
-
const projectRoot = path.dirname(rootPath)
|
|
704
|
-
const outDir = path.join(projectRoot, 'data', 'test_runs')
|
|
705
|
-
await mkdir(outDir, { recursive: true })
|
|
706
|
-
|
|
707
|
-
// Use full ISO timestamp and sanitize ':' for filesystem safety
|
|
708
|
-
const iso = new Date().toISOString()
|
|
709
|
-
const isoFile = iso.replace(/:/g, '-')
|
|
710
|
-
const outPath = path.join(outDir, `${suiteKey}.${isoFile}${REPORT_JSON_SUFFIX}`)
|
|
711
|
-
|
|
712
|
-
async function writeReport(report: WrittenRunReport) {
|
|
713
|
-
const dir = path.dirname(outPath)
|
|
714
|
-
const base = path.basename(outPath)
|
|
715
|
-
const tmpPath = path.join(
|
|
716
|
-
dir,
|
|
717
|
-
`.${base}.${process.pid}.${Date.now()}.${Math.random().toString(16).slice(2)}.tmp`
|
|
718
|
-
)
|
|
719
|
-
const json = JSON.stringify(report, null, 2)
|
|
720
|
-
await writeFile(tmpPath, json, 'utf8')
|
|
721
|
-
try {
|
|
722
|
-
await rename(tmpPath, outPath)
|
|
723
|
-
} catch (e: any) {
|
|
724
|
-
// Windows doesn't allow atomic rename over an existing file.
|
|
725
|
-
try {
|
|
726
|
-
await unlink(outPath)
|
|
727
|
-
} catch {
|
|
728
|
-
// ignore
|
|
729
|
-
}
|
|
730
|
-
await rename(tmpPath, outPath)
|
|
731
|
-
}
|
|
732
|
-
}
|
|
733
|
-
|
|
734
|
-
const runConfig: WrittenRunReportConfig = {
|
|
735
|
-
repeats,
|
|
736
|
-
concurrency
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
const body: WrittenRunReport = {
|
|
740
|
-
agent: suiteKey,
|
|
741
|
-
run_timestamp: iso,
|
|
742
|
-
run_scope: scope,
|
|
743
|
-
run_config: runConfig,
|
|
744
|
-
rows: []
|
|
745
|
-
}
|
|
746
|
-
|
|
747
|
-
// Write an empty report immediately so clients can start polling this run.
|
|
748
|
-
await writeReport(body)
|
|
749
|
-
|
|
750
|
-
const byTestId = new Map<string, WrittenRunReportRow>()
|
|
751
|
-
|
|
752
|
-
const originalRowById = new Map<string, SuiteTestRow>()
|
|
753
|
-
for (const r of typedRows) {
|
|
754
|
-
const id = String((r as any)?.id ?? '').trim()
|
|
755
|
-
if (id) originalRowById.set(id, r)
|
|
756
|
-
}
|
|
757
|
-
|
|
758
|
-
const countsByTestId = new Map<string, { pass: number; total: number }>()
|
|
759
|
-
|
|
760
|
-
let writeTimer: ReturnType<typeof setTimeout> | null = null
|
|
761
|
-
let writePending = false
|
|
762
|
-
let writeChain: Promise<void> = Promise.resolve()
|
|
763
|
-
const enqueueWrite = () => {
|
|
764
|
-
writeChain = writeChain.catch(() => {}).then(() => writeReport(body))
|
|
765
|
-
return writeChain
|
|
766
|
-
}
|
|
767
|
-
const requestWrite = () => {
|
|
768
|
-
writePending = true
|
|
769
|
-
if (writeTimer) return
|
|
770
|
-
writeTimer = setTimeout(() => {
|
|
771
|
-
writeTimer = null
|
|
772
|
-
if (!writePending) return
|
|
773
|
-
writePending = false
|
|
774
|
-
void enqueueWrite()
|
|
775
|
-
}, 200)
|
|
776
|
-
}
|
|
777
|
-
|
|
778
|
-
;(globalThis as any)[hookKey] = (hookName: string, ctx: any) => {
|
|
779
|
-
try {
|
|
780
|
-
if (hookName !== 'afterEach') return
|
|
781
|
-
if (signal?.aborted) {
|
|
782
|
-
throw new Error('Operation cancelled')
|
|
783
|
-
}
|
|
784
|
-
const testId = String(ctx?.test?.metadata?.testId ?? '')
|
|
785
|
-
if (!testId) return
|
|
786
|
-
const r = ctx?.result
|
|
787
|
-
if (!r) return
|
|
788
|
-
|
|
789
|
-
const originalRow = originalRowById.get(testId)
|
|
790
|
-
if (!originalRow) return
|
|
791
|
-
|
|
792
|
-
let reportRow = byTestId.get(testId)
|
|
793
|
-
if (!reportRow) {
|
|
794
|
-
const pinned: 'TRUE' | 'FALSE' =
|
|
795
|
-
String((originalRow as any).pinned || '').toUpperCase() === 'TRUE' ? 'TRUE' : 'FALSE'
|
|
796
|
-
const nextRow: WrittenRunReportRow = {
|
|
797
|
-
...(originalRow as any),
|
|
798
|
-
test: originalRow,
|
|
799
|
-
prompts: `suite://${suiteKey}?testId=${testId}`,
|
|
800
|
-
success_rate_percent: 0,
|
|
801
|
-
success_rate: '0/0',
|
|
802
|
-
results: [],
|
|
803
|
-
agent: suiteKey,
|
|
804
|
-
test_id: testId,
|
|
805
|
-
run_timestamp: iso,
|
|
806
|
-
run_config: JSON.stringify(runConfig),
|
|
807
|
-
pinned_at_run: scope === 'all' || !!onlyTestId ? 'TRUE' : pinned,
|
|
808
|
-
run_scope: scope
|
|
809
|
-
}
|
|
810
|
-
reportRow = nextRow
|
|
811
|
-
byTestId.set(testId, nextRow)
|
|
812
|
-
body.rows = Array.from(byTestId.values())
|
|
813
|
-
}
|
|
814
|
-
if (!reportRow) return
|
|
815
|
-
|
|
816
|
-
const entry = toResultEntry(r)
|
|
817
|
-
reportRow.results.push(entry)
|
|
818
|
-
const completedRuns = (progress.completedRunsByTestId.get(testId) ?? 0) + 1
|
|
819
|
-
progress.completedRunsByTestId.set(testId, completedRuns)
|
|
820
|
-
if (completedRuns >= progress.expectedRuns) {
|
|
821
|
-
progress.startedTestIds.delete(testId)
|
|
822
|
-
progress.runningTestIds = [...progress.startedTestIds]
|
|
823
|
-
if (!progress.completedTestIds.includes(testId)) {
|
|
824
|
-
progress.completedTestIds = [...progress.completedTestIds, testId]
|
|
825
|
-
}
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
const counts = countsByTestId.get(testId) ?? { pass: 0, total: 0 }
|
|
829
|
-
counts.total += 1
|
|
830
|
-
if (entry.success) counts.pass += 1
|
|
831
|
-
countsByTestId.set(testId, counts)
|
|
832
|
-
|
|
833
|
-
reportRow.success_rate = `${counts.pass}/${counts.total}`
|
|
834
|
-
reportRow.success_rate_percent = counts.total
|
|
835
|
-
? Math.round((counts.pass / counts.total) * 100)
|
|
836
|
-
: 0
|
|
837
|
-
|
|
838
|
-
requestWrite()
|
|
839
|
-
} catch (err) {
|
|
840
|
-
if (signal?.aborted) throw err
|
|
841
|
-
// ignore
|
|
842
|
-
}
|
|
843
|
-
}
|
|
844
|
-
|
|
845
|
-
const selectedOriginalRows = plannedTestIds
|
|
846
|
-
.map((testId) => originalRowById.get(testId))
|
|
847
|
-
.filter((row): row is SuiteTestRow => !!row)
|
|
848
|
-
const persistEvaluation = (evaluation: PFEval) => {
|
|
849
|
-
for (const rowToWrite of buildTableRows([evaluation], selectedOriginalRows, suiteKey)) {
|
|
850
|
-
const testId = String(rowToWrite.id ?? '')
|
|
851
|
-
const originalRow = originalRowById.get(testId)
|
|
852
|
-
if (!testId || !originalRow) continue
|
|
853
|
-
const pinned: 'TRUE' | 'FALSE' =
|
|
854
|
-
(rowToWrite.pinned || '').toUpperCase() === 'TRUE' ? 'TRUE' : 'FALSE'
|
|
855
|
-
byTestId.set(testId, {
|
|
856
|
-
...rowToWrite,
|
|
857
|
-
test: originalRow,
|
|
858
|
-
agent: suiteKey,
|
|
859
|
-
test_id: testId,
|
|
860
|
-
run_timestamp: iso,
|
|
861
|
-
run_config: JSON.stringify(runConfig),
|
|
862
|
-
pinned_at_run: scope === 'all' || !!onlyTestId ? 'TRUE' : pinned,
|
|
863
|
-
run_scope: scope
|
|
864
|
-
})
|
|
865
|
-
}
|
|
866
|
-
body.rows = Array.from(byTestId.values())
|
|
867
|
-
}
|
|
868
|
-
|
|
869
|
-
const previousIsTest = process.env.IS_TEST
|
|
870
|
-
process.env.IS_TEST = 'true'
|
|
871
|
-
try {
|
|
872
|
-
if (tests.length > 0 && !signal?.aborted) {
|
|
873
|
-
const evaluation = await promptfoo.evaluate(testSuite, {
|
|
874
|
-
repeat: repeats,
|
|
875
|
-
cache: false,
|
|
876
|
-
maxConcurrency: concurrency,
|
|
877
|
-
// Bosun reports run progress in the tests UI. Promptfoo's terminal progress bars
|
|
878
|
-
// continuously rewrite stdout (up to 20 bars at higher concurrency).
|
|
879
|
-
showProgressBar: false,
|
|
880
|
-
abortSignal: signal
|
|
881
|
-
})
|
|
882
|
-
persistEvaluation(evaluation)
|
|
883
|
-
await enqueueWrite()
|
|
884
|
-
}
|
|
885
|
-
} catch (err) {
|
|
886
|
-
const cancelled =
|
|
887
|
-
!!signal?.aborted || (err instanceof Error && /operation cancelled/i.test(err.message || ''))
|
|
888
|
-
if (!cancelled) {
|
|
889
|
-
const msg = err instanceof Error ? `${err.name}: ${err.message}` : String(err)
|
|
890
|
-
const evaluation = {
|
|
891
|
-
results: plannedTestIds.map(
|
|
892
|
-
(testId) =>
|
|
893
|
-
({
|
|
894
|
-
success: false,
|
|
895
|
-
response: { output: '' },
|
|
896
|
-
error: msg,
|
|
897
|
-
metadata: { testId }
|
|
898
|
-
}) as any
|
|
899
|
-
)
|
|
900
|
-
} as PFEval
|
|
901
|
-
persistEvaluation(evaluation)
|
|
902
|
-
await enqueueWrite()
|
|
903
|
-
}
|
|
904
|
-
} finally {
|
|
905
|
-
if (previousIsTest == null) delete process.env.IS_TEST
|
|
906
|
-
else process.env.IS_TEST = previousIsTest
|
|
907
|
-
if (writeTimer) clearTimeout(writeTimer)
|
|
908
|
-
writeTimer = null
|
|
909
|
-
delete (globalThis as any)[hookKey]
|
|
910
|
-
await writeChain
|
|
911
|
-
}
|
|
912
|
-
|
|
913
|
-
if (signal?.aborted) {
|
|
914
|
-
try {
|
|
915
|
-
await unlink(outPath)
|
|
916
|
-
} catch {
|
|
917
|
-
// The report may not have been installed yet if cancellation happened during setup.
|
|
918
|
-
}
|
|
919
|
-
return body
|
|
920
|
-
}
|
|
921
|
-
|
|
922
|
-
// Ensure the final report is written even if no tests ran (or an update was skipped).
|
|
923
|
-
body.rows = Array.from(byTestId.values())
|
|
924
|
-
await enqueueWrite()
|
|
925
|
-
if (signal?.aborted) {
|
|
926
|
-
try {
|
|
927
|
-
await unlink(outPath)
|
|
928
|
-
} catch {
|
|
929
|
-
// Best-effort cancellation cleanup.
|
|
930
|
-
}
|
|
931
|
-
return body
|
|
932
|
-
}
|
|
933
|
-
void queueReportCompression(outPath).catch((error) => {
|
|
934
|
-
console.error(`Failed to compress completed test report ${path.basename(outPath)}`, error)
|
|
935
|
-
})
|
|
936
|
-
|
|
937
|
-
return body
|
|
938
|
-
}
|
|
939
|
-
|
|
940
|
-
export type WrittenRunResult = Awaited<ReturnType<typeof runPromptTests>>
|