@recombine-ai/bosun 0.16.2 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/README.md +24 -0
  2. package/bin/bosun.js +153 -20
  3. package/bin/git-mode.js +1139 -0
  4. package/build/client/_app/immutable/assets/0.D9HpHezk.css +1 -0
  5. package/build/client/_app/immutable/assets/0.D9HpHezk.css.br +0 -0
  6. package/build/client/_app/immutable/assets/0.D9HpHezk.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/{2.DtxQDOXx.css → 2.Bc0Sf3YD.css} +1 -1
  8. package/build/client/_app/immutable/assets/2.Bc0Sf3YD.css.br +0 -0
  9. package/build/client/_app/immutable/assets/2.Bc0Sf3YD.css.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{DneQQ7D5.js → -3ZOIHDA.js} +1 -1
  11. package/build/client/_app/immutable/chunks/-3ZOIHDA.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/-3ZOIHDA.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/7hV1SZxK.js +1 -0
  14. package/build/client/_app/immutable/chunks/7hV1SZxK.js.br +2 -0
  15. package/build/client/_app/immutable/chunks/7hV1SZxK.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/B-dTD_wm.js +1 -0
  17. package/build/client/_app/immutable/chunks/B-dTD_wm.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/B-dTD_wm.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{UqjCSZmA.js → B-iasAJv.js} +1 -1
  20. package/build/client/_app/immutable/chunks/B-iasAJv.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/B-iasAJv.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/BDijIo6D.js +33 -0
  23. package/build/client/_app/immutable/chunks/BDijIo6D.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/BDijIo6D.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/BHB0Pj1h.js +2 -0
  26. package/build/client/_app/immutable/chunks/BHB0Pj1h.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/BHB0Pj1h.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/{Bog028VR.js → BKfmN1Rj.js} +1 -1
  29. package/build/client/_app/immutable/chunks/BKfmN1Rj.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/BKfmN1Rj.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/{pPpIn6tB.js → BlFOg-Sd.js} +1 -1
  32. package/build/client/_app/immutable/chunks/BlFOg-Sd.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/BlFOg-Sd.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/{CJcZ2GVC.js → Byg3jr1u.js} +1 -1
  35. package/build/client/_app/immutable/chunks/Byg3jr1u.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/Byg3jr1u.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/{Bmd5zhWC.js → BzxxLgHi.js} +1 -1
  38. package/build/client/_app/immutable/chunks/BzxxLgHi.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/BzxxLgHi.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/{CEHsomMo.js → C4UC6AgE.js} +1 -1
  41. package/build/client/_app/immutable/chunks/C4UC6AgE.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/{CEHsomMo.js.gz → C4UC6AgE.js.gz} +0 -0
  43. package/build/client/_app/immutable/chunks/C60AG6QQ.js +1 -0
  44. package/build/client/_app/immutable/chunks/C60AG6QQ.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/C60AG6QQ.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/CAIfVN23.js +1 -0
  47. package/build/client/_app/immutable/chunks/CAIfVN23.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/CAIfVN23.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/{JcG4w2gF.js → CB9iDxwI.js} +1 -1
  50. package/build/client/_app/immutable/chunks/CB9iDxwI.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/CB9iDxwI.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/{DoD3q5w5.js → CD_KdWs9.js} +1 -1
  53. package/build/client/_app/immutable/chunks/CD_KdWs9.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/CD_KdWs9.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/CDy1LBR5.js +1 -0
  56. package/build/client/_app/immutable/chunks/CDy1LBR5.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/CDy1LBR5.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/{DCXjBDmY.js → CMFNmSvo.js} +1 -1
  59. package/build/client/_app/immutable/chunks/CMFNmSvo.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/CMFNmSvo.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/{Bv1mNXs0.js → CNIn4L55.js} +1 -1
  62. package/build/client/_app/immutable/chunks/CNIn4L55.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/CNIn4L55.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/CUKoVL36.js +1 -0
  65. package/build/client/_app/immutable/chunks/CUKoVL36.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/CUKoVL36.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/CYGbCr1i.js +3 -0
  68. package/build/client/_app/immutable/chunks/CYGbCr1i.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/CYGbCr1i.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/CYr0FGgn.js +1 -0
  71. package/build/client/_app/immutable/chunks/CYr0FGgn.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/CYr0FGgn.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/{DtXXy94i.js → Ce6a22qU.js} +1 -1
  74. package/build/client/_app/immutable/chunks/Ce6a22qU.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/Ce6a22qU.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/{DfcDjAv-.js → CeoQ-OhK.js} +1 -1
  77. package/build/client/_app/immutable/chunks/CeoQ-OhK.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/CeoQ-OhK.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/{D8mA-uZ4.js → CupXtwVS.js} +1 -1
  80. package/build/client/_app/immutable/chunks/CupXtwVS.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/CupXtwVS.js.gz +0 -0
  82. package/build/client/_app/immutable/chunks/{B5zf3x62.js → Cy2Uze-c.js} +1 -1
  83. package/build/client/_app/immutable/chunks/Cy2Uze-c.js.br +0 -0
  84. package/build/client/_app/immutable/chunks/Cy2Uze-c.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/{Dg0A8wPA.js → D8Lmn3S5.js} +1 -1
  86. package/build/client/_app/immutable/chunks/D8Lmn3S5.js.br +0 -0
  87. package/build/client/_app/immutable/chunks/D8Lmn3S5.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/D8doM1Y6.js +1 -0
  89. package/build/client/_app/immutable/chunks/D8doM1Y6.js.br +2 -0
  90. package/build/client/_app/immutable/chunks/D8doM1Y6.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/{BHHfrjbV.js → D9BWOD7V.js} +1 -1
  92. package/build/client/_app/immutable/chunks/D9BWOD7V.js.br +3 -0
  93. package/build/client/_app/immutable/chunks/D9BWOD7V.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/{Cp_st-64.js → DBB88ZB7.js} +1 -1
  95. package/build/client/_app/immutable/chunks/DBB88ZB7.js.br +2 -0
  96. package/build/client/_app/immutable/chunks/DBB88ZB7.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/{Dm49pcMm.js → DC7lPrn4.js} +1 -1
  98. package/build/client/_app/immutable/chunks/DC7lPrn4.js.br +0 -0
  99. package/build/client/_app/immutable/chunks/DC7lPrn4.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/DCwWNTpf.js +9 -0
  101. package/build/client/_app/immutable/chunks/DCwWNTpf.js.br +0 -0
  102. package/build/client/_app/immutable/chunks/DCwWNTpf.js.gz +0 -0
  103. package/build/client/_app/immutable/chunks/{wcTQUnZO.js → DEnUeQNt.js} +1 -1
  104. package/build/client/_app/immutable/chunks/DEnUeQNt.js.br +0 -0
  105. package/build/client/_app/immutable/chunks/DEnUeQNt.js.gz +0 -0
  106. package/build/client/_app/immutable/chunks/D_laxq3h.js +1 -0
  107. package/build/client/_app/immutable/chunks/D_laxq3h.js.br +0 -0
  108. package/build/client/_app/immutable/chunks/D_laxq3h.js.gz +0 -0
  109. package/build/client/_app/immutable/chunks/{Ddv5LgEc.js → DfkYlKBk.js} +1 -1
  110. package/build/client/_app/immutable/chunks/DfkYlKBk.js.br +0 -0
  111. package/build/client/_app/immutable/chunks/DfkYlKBk.js.gz +0 -0
  112. package/build/client/_app/immutable/chunks/DnMS2X6M.js +2 -0
  113. package/build/client/_app/immutable/chunks/DnMS2X6M.js.br +0 -0
  114. package/build/client/_app/immutable/chunks/DnMS2X6M.js.gz +0 -0
  115. package/build/client/_app/immutable/chunks/{B1HdnQRQ.js → DrE1ro9S.js} +1 -1
  116. package/build/client/_app/immutable/chunks/DrE1ro9S.js.br +0 -0
  117. package/build/client/_app/immutable/chunks/DrE1ro9S.js.gz +0 -0
  118. package/build/client/_app/immutable/chunks/DzY_RPb9.js +1 -0
  119. package/build/client/_app/immutable/chunks/DzY_RPb9.js.br +0 -0
  120. package/build/client/_app/immutable/chunks/DzY_RPb9.js.gz +0 -0
  121. package/build/client/_app/immutable/chunks/PrCSpCPg.js +1 -0
  122. package/build/client/_app/immutable/chunks/PrCSpCPg.js.br +0 -0
  123. package/build/client/_app/immutable/chunks/PrCSpCPg.js.gz +0 -0
  124. package/build/client/_app/immutable/chunks/{CN555stc.js → eMofpOrR.js} +1 -1
  125. package/build/client/_app/immutable/chunks/eMofpOrR.js.br +0 -0
  126. package/build/client/_app/immutable/chunks/eMofpOrR.js.gz +0 -0
  127. package/build/client/_app/immutable/entry/app.BQUuHkSR.js +2 -0
  128. package/build/client/_app/immutable/entry/app.BQUuHkSR.js.br +0 -0
  129. package/build/client/_app/immutable/entry/app.BQUuHkSR.js.gz +0 -0
  130. package/build/client/_app/immutable/entry/start.DoeTycdu.js +1 -0
  131. package/build/client/_app/immutable/entry/start.DoeTycdu.js.br +2 -0
  132. package/build/client/_app/immutable/entry/start.DoeTycdu.js.gz +0 -0
  133. package/build/client/_app/immutable/nodes/0.DBnFpwRM.js +4 -0
  134. package/build/client/_app/immutable/nodes/0.DBnFpwRM.js.br +0 -0
  135. package/build/client/_app/immutable/nodes/0.DBnFpwRM.js.gz +0 -0
  136. package/build/client/_app/immutable/nodes/1.D-kI-fLd.js +1 -0
  137. package/build/client/_app/immutable/nodes/1.D-kI-fLd.js.br +0 -0
  138. package/build/client/_app/immutable/nodes/1.D-kI-fLd.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/10.DWb5H7vX.js +28 -0
  140. package/build/client/_app/immutable/nodes/10.DWb5H7vX.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/10.DWb5H7vX.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/{15.D2I0y3ys.js → 15.CGc3_07c.js} +1 -1
  143. package/build/client/_app/immutable/nodes/15.CGc3_07c.js.br +3 -0
  144. package/build/client/_app/immutable/nodes/15.CGc3_07c.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/17.BIba62hW.js +3 -0
  146. package/build/client/_app/immutable/nodes/17.BIba62hW.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/17.BIba62hW.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/18.Clxr6FwI.js +11 -0
  149. package/build/client/_app/immutable/nodes/18.Clxr6FwI.js.br +0 -0
  150. package/build/client/_app/immutable/nodes/18.Clxr6FwI.js.gz +0 -0
  151. package/build/client/_app/immutable/nodes/2.cbpnR8be.js +35 -0
  152. package/build/client/_app/immutable/nodes/2.cbpnR8be.js.br +0 -0
  153. package/build/client/_app/immutable/nodes/2.cbpnR8be.js.gz +0 -0
  154. package/build/client/_app/immutable/nodes/3.DsP759xk.js +1 -0
  155. package/build/client/_app/immutable/nodes/3.DsP759xk.js.br +0 -0
  156. package/build/client/_app/immutable/nodes/3.DsP759xk.js.gz +0 -0
  157. package/build/client/_app/immutable/nodes/{4.C8VxVbVn.js → 4.BIGLAIDe.js} +1 -1
  158. package/build/client/_app/immutable/nodes/4.BIGLAIDe.js.br +0 -0
  159. package/build/client/_app/immutable/nodes/4.BIGLAIDe.js.gz +0 -0
  160. package/build/client/_app/immutable/nodes/{5.BjrnKYaA.js → 5.zMHOyhDv.js} +1 -1
  161. package/build/client/_app/immutable/nodes/5.zMHOyhDv.js.br +0 -0
  162. package/build/client/_app/immutable/nodes/5.zMHOyhDv.js.gz +0 -0
  163. package/build/client/_app/immutable/nodes/6.DFQ1IZsQ.js +1 -0
  164. package/build/client/_app/immutable/nodes/6.DFQ1IZsQ.js.br +0 -0
  165. package/build/client/_app/immutable/nodes/6.DFQ1IZsQ.js.gz +0 -0
  166. package/build/client/_app/immutable/nodes/8.CTgEdr7L.js +2 -0
  167. package/build/client/_app/immutable/nodes/8.CTgEdr7L.js.br +0 -0
  168. package/build/client/_app/immutable/nodes/8.CTgEdr7L.js.gz +0 -0
  169. package/build/client/_app/immutable/nodes/9.BidF5Uvq.js +2 -0
  170. package/build/client/_app/immutable/nodes/9.BidF5Uvq.js.br +0 -0
  171. package/build/client/_app/immutable/nodes/9.BidF5Uvq.js.gz +0 -0
  172. package/build/client/_app/version.json +1 -1
  173. package/build/client/_app/version.json.br +0 -0
  174. package/build/client/_app/version.json.gz +0 -0
  175. package/build/server/chunks/0-BZOFUIfF.js +9 -0
  176. package/build/server/chunks/0-BZOFUIfF.js.map +1 -0
  177. package/build/server/chunks/1-XwGU5VVN.js +9 -0
  178. package/build/server/chunks/{1-C0HdTvXW.js.map → 1-XwGU5VVN.js.map} +1 -1
  179. package/build/server/chunks/10-BgFSx4ib.js +9 -0
  180. package/build/server/chunks/10-BgFSx4ib.js.map +1 -0
  181. package/build/server/chunks/15-BjTTC1jf.js +9 -0
  182. package/build/server/chunks/{15-BQcb9C_y.js.map → 15-BjTTC1jf.js.map} +1 -1
  183. package/build/server/chunks/17-BEkWCfzc.js +9 -0
  184. package/build/server/chunks/17-BEkWCfzc.js.map +1 -0
  185. package/build/server/chunks/18-C-S0wKdp.js +9 -0
  186. package/build/server/chunks/18-C-S0wKdp.js.map +1 -0
  187. package/build/server/chunks/2-o-cIkIjs.js +9 -0
  188. package/build/server/chunks/2-o-cIkIjs.js.map +1 -0
  189. package/build/server/chunks/3-B-ABlyFO.js +9 -0
  190. package/build/server/chunks/3-B-ABlyFO.js.map +1 -0
  191. package/build/server/chunks/4-joAFA_Y8.js +9 -0
  192. package/build/server/chunks/4-joAFA_Y8.js.map +1 -0
  193. package/build/server/chunks/5-DIhC9k4l.js +9 -0
  194. package/build/server/chunks/5-DIhC9k4l.js.map +1 -0
  195. package/build/server/chunks/6-CMuAQIcW.js +9 -0
  196. package/build/server/chunks/6-CMuAQIcW.js.map +1 -0
  197. package/build/server/chunks/8-CbETTVRG.js +9 -0
  198. package/build/server/chunks/8-CbETTVRG.js.map +1 -0
  199. package/build/server/chunks/9-nMV90uVU.js +9 -0
  200. package/build/server/chunks/9-nMV90uVU.js.map +1 -0
  201. package/build/server/chunks/{AgentSidebar-BWBnqHnV.js → AgentSidebar-BEbSdZdN.js} +4 -4
  202. package/build/server/chunks/{AgentSidebar-BWBnqHnV.js.map → AgentSidebar-BEbSdZdN.js.map} +1 -1
  203. package/build/server/chunks/{Button-DH7gdU0s.js → Button-Dc9CR4Wh.js} +2 -2
  204. package/build/server/chunks/{Button-DH7gdU0s.js.map → Button-Dc9CR4Wh.js.map} +1 -1
  205. package/build/server/chunks/{ChatStepTrace-BivoNYOY.js → ChatStepTrace-OM96X4g8.js} +18 -7
  206. package/build/server/chunks/ChatStepTrace-OM96X4g8.js.map +1 -0
  207. package/build/server/chunks/{Dropdown-DnARl86Q.js → Dropdown-Cgd7pG-k.js} +2 -2
  208. package/build/server/chunks/{Dropdown-DnARl86Q.js.map → Dropdown-Cgd7pG-k.js.map} +1 -1
  209. package/build/server/chunks/GitControlsButton-BLcNzrDt.js +81 -0
  210. package/build/server/chunks/GitControlsButton-BLcNzrDt.js.map +1 -0
  211. package/build/server/chunks/{Icon-DP1YKCRV.js → Icon-Bogvl2n9.js} +2 -2
  212. package/build/server/chunks/{Icon-DP1YKCRV.js.map → Icon-Bogvl2n9.js.map} +1 -1
  213. package/build/server/chunks/{Input-CUJ9Cg7b.js → Input-7hpw1WLW.js} +2 -2
  214. package/build/server/chunks/{Input-CUJ9Cg7b.js.map → Input-7hpw1WLW.js.map} +1 -1
  215. package/build/server/chunks/{Modal-CGJuNpZ0.js → Modal-7IIIfFEG.js} +5 -5
  216. package/build/server/chunks/{Modal-CGJuNpZ0.js.map → Modal-7IIIfFEG.js.map} +1 -1
  217. package/build/server/chunks/{Panel-zvjxe036.js → Panel-Cj1mXx9-.js} +2 -2
  218. package/build/server/chunks/{Panel-zvjxe036.js.map → Panel-Cj1mXx9-.js.map} +1 -1
  219. package/build/server/chunks/{Tab-CUkyLqbN.js → Tab-bf4ZDs5y.js} +4 -4
  220. package/build/server/chunks/{Tab-CUkyLqbN.js.map → Tab-bf4ZDs5y.js.map} +1 -1
  221. package/build/server/chunks/{_layout.svelte-BnrWYuLv.js → _layout.svelte-C71luIwv.js} +10 -10
  222. package/build/server/chunks/{_layout.svelte-BnrWYuLv.js.map → _layout.svelte-C71luIwv.js.map} +1 -1
  223. package/build/server/chunks/{_layout.svelte-wi6o5Ecu.js → _layout.svelte-CFhHgXI_.js} +24 -18
  224. package/build/server/chunks/_layout.svelte-CFhHgXI_.js.map +1 -0
  225. package/build/server/chunks/_layout.svelte-CJd_pmkx.js +431 -0
  226. package/build/server/chunks/_layout.svelte-CJd_pmkx.js.map +1 -0
  227. package/build/server/chunks/{_layout.svelte-B88WMyk0.js → _layout.svelte-D6rhwm98.js} +445 -70
  228. package/build/server/chunks/_layout.svelte-D6rhwm98.js.map +1 -0
  229. package/build/server/chunks/{_page.svelte-CeS_21Ho.js → _page.svelte-BBvDMiTV.js} +25 -21
  230. package/build/server/chunks/_page.svelte-BBvDMiTV.js.map +1 -0
  231. package/build/server/chunks/{_page.svelte-h_J4lNT9.js → _page.svelte-BQs9dEuq.js} +8 -7
  232. package/build/server/chunks/{_page.svelte-h_J4lNT9.js.map → _page.svelte-BQs9dEuq.js.map} +1 -1
  233. package/build/server/chunks/{_page.svelte-DhFNFMnl.js → _page.svelte-BoO2LWVX.js} +34 -14
  234. package/build/server/chunks/_page.svelte-BoO2LWVX.js.map +1 -0
  235. package/build/server/chunks/{_page.svelte-CHgQjBQj.js → _page.svelte-DUCTSdv-.js} +2 -2
  236. package/build/server/chunks/{_page.svelte-CHgQjBQj.js.map → _page.svelte-DUCTSdv-.js.map} +1 -1
  237. package/build/server/chunks/_page.svelte-FXYLKyMw.js +110 -0
  238. package/build/server/chunks/_page.svelte-FXYLKyMw.js.map +1 -0
  239. package/build/server/chunks/{_page.svelte-57pyhszV.js → _page.svelte-KA1hqKj2.js} +20 -107
  240. package/build/server/chunks/_page.svelte-KA1hqKj2.js.map +1 -0
  241. package/build/server/chunks/{_page.svelte-BSVJ2d2G.js → _page.svelte-y8CZFL8a.js} +210 -106
  242. package/build/server/chunks/_page.svelte-y8CZFL8a.js.map +1 -0
  243. package/build/server/chunks/{_page.svelte-DHSYVLoj.js → _page.svelte-yIHSIEW6.js} +21 -15
  244. package/build/server/chunks/_page.svelte-yIHSIEW6.js.map +1 -0
  245. package/build/server/chunks/_server.ts-Cp9DgLcE.js +336 -0
  246. package/build/server/chunks/_server.ts-Cp9DgLcE.js.map +1 -0
  247. package/build/server/chunks/{agents-context-CbFsZmi5.js → agents-context-owgusUPR.js} +2 -2
  248. package/build/server/chunks/{agents-context-CbFsZmi5.js.map → agents-context-owgusUPR.js.map} +1 -1
  249. package/build/server/chunks/{client-DO-hqMbT.js → client-P-7bDULt.js} +4 -4
  250. package/build/server/chunks/{client-DO-hqMbT.js.map → client-P-7bDULt.js.map} +1 -1
  251. package/build/server/chunks/{conversation-view-memory-CtbUZd_L.js → conversation-view-memory-SdpdqTR7.js} +2 -2
  252. package/build/server/chunks/{conversation-view-memory-CtbUZd_L.js.map → conversation-view-memory-SdpdqTR7.js.map} +1 -1
  253. package/build/server/chunks/{edit-workspace-context-tyHBPujC.js → edit-workspace-context-hanFnXR3.js} +2 -2
  254. package/build/server/chunks/{edit-workspace-context-tyHBPujC.js.map → edit-workspace-context-hanFnXR3.js.map} +1 -1
  255. package/build/server/chunks/error.svelte-yI9RS6H4.js +15 -0
  256. package/build/server/chunks/{error.svelte-DmKKN1RU.js.map → error.svelte-yI9RS6H4.js.map} +1 -1
  257. package/build/server/chunks/git-mode-context-BpNsAUGF.js +18 -0
  258. package/build/server/chunks/git-mode-context-BpNsAUGF.js.map +1 -0
  259. package/build/server/chunks/{index-LMsd1ih2.js → index-DGtbUu8Y.js} +2 -2
  260. package/build/server/chunks/{index-LMsd1ih2.js.map → index-DGtbUu8Y.js.map} +1 -1
  261. package/build/server/chunks/{index-server-BRr5mZEq.js → index-server-l8-WsVn4.js} +2 -2
  262. package/build/server/chunks/{index-server-BRr5mZEq.js.map → index-server-l8-WsVn4.js.map} +1 -1
  263. package/build/server/chunks/{index2-ClgfzZ89.js → index2-CtgLiJVO.js} +3 -3
  264. package/build/server/chunks/{index2-ClgfzZ89.js.map → index2-CtgLiJVO.js.map} +1 -1
  265. package/build/server/chunks/{index3-BdRUAffj.js → index3-4hbbCqW0.js} +2 -2
  266. package/build/server/chunks/{index3-BdRUAffj.js.map → index3-4hbbCqW0.js.map} +1 -1
  267. package/build/server/chunks/{root-4q2Pr7ck.js → root-sWPnlpi3.js} +2 -2
  268. package/build/server/chunks/{root-4q2Pr7ck.js.map → root-sWPnlpi3.js.map} +1 -1
  269. package/build/server/chunks/{source-selection-CcN1cgXc.js → source-selection-DSkaPGfZ.js} +7 -2
  270. package/build/server/chunks/source-selection-DSkaPGfZ.js.map +1 -0
  271. package/build/server/chunks/{state.svelte-Bd1i-u49.js → state.svelte-BkvaElc6.js} +3 -3
  272. package/build/server/chunks/{state.svelte-Bd1i-u49.js.map → state.svelte-BkvaElc6.js.map} +1 -1
  273. package/build/server/chunks/trpc-client-Cr8RJ4UO.js +260 -0
  274. package/build/server/chunks/trpc-client-Cr8RJ4UO.js.map +1 -0
  275. package/build/server/index.js +4 -4
  276. package/build/server/index.js.map +1 -1
  277. package/build/server/manifest.js +15 -15
  278. package/build/server/manifest.js.map +1 -1
  279. package/package.json +1 -1
  280. package/src/backend/git-mode/command.spec.ts +172 -0
  281. package/src/backend/git-mode/command.ts +405 -0
  282. package/src/backend/git-mode/config.spec.ts +45 -0
  283. package/src/backend/git-mode/config.ts +90 -0
  284. package/src/backend/git-mode/index.ts +20 -0
  285. package/src/backend/git-mode/repository-write-gate.spec.ts +116 -0
  286. package/src/backend/git-mode/repository-write-gate.ts +260 -0
  287. package/src/backend/git-mode/router.ts +59 -0
  288. package/src/backend/git-mode/service.spec.ts +1653 -0
  289. package/src/backend/git-mode/service.ts +2183 -0
  290. package/src/backend/git-mode/types.ts +82 -0
  291. package/src/backend/git-mode/write-tracker.spec.ts +46 -0
  292. package/src/backend/git-mode/write-tracker.ts +39 -0
  293. package/src/backend/lib/backend-restart.spec.ts +27 -0
  294. package/src/backend/lib/backend-restart.ts +16 -2
  295. package/src/backend/lib/middleware/cors.spec.ts +67 -0
  296. package/src/backend/lib/middleware/cors.ts +40 -12
  297. package/src/backend/roleplay/agent-loader.ts +49 -0
  298. package/src/backend/roleplay/old-server.ts +106 -56
  299. package/src/backend/roleplay/prompt-edit-proposals.ts +38 -4
  300. package/src/backend/roleplay/prompt-file.ts +59 -0
  301. package/src/backend/roleplay/router.spec.ts +75 -0
  302. package/src/backend/roleplay/router.ts +123 -69
  303. package/src/backend/roleplay/suggest-file-edit.ts +160 -0
  304. package/src/backend/roleplay/suggest-prompt-edit.ts +9 -138
  305. package/src/backend/roleplay/suggest-test-fix.spec.ts +50 -0
  306. package/src/backend/roleplay/suggest-test-fix.ts +65 -0
  307. package/src/backend/roleplay/test-fix-proposal-acceptance.spec.ts +253 -0
  308. package/src/backend/server.ts +116 -13
  309. package/src/backend/tests/academy.ts +17 -3
  310. package/src/backend/tests/data.spec.ts +81 -2
  311. package/src/backend/tests/data.ts +74 -4
  312. package/src/backend/tests/router.ts +101 -36
  313. package/src/backend/tests/suggest-test-history-edit.spec.ts +20 -0
  314. package/src/backend/tests/suggest-test-history-edit.ts +52 -0
  315. package/src/backend/tests/test-edit-source.spec.ts +61 -0
  316. package/src/backend/tests/test-edit-source.ts +34 -0
  317. package/src/backend/tests/test-history-edit-proposals.ts +69 -0
  318. package/src/backend/tests/test-history-overrides.spec.ts +24 -0
  319. package/src/backend/tests/test-selection.ts +27 -0
  320. package/src/lib/api-telescope/source-selection.spec.ts +44 -0
  321. package/src/lib/api-telescope/source-selection.ts +28 -0
  322. package/src/lib/components/Modal.svelte +1 -1
  323. package/src/lib/edit/edit-workspace-context.ts +33 -3
  324. package/src/lib/edit/test-ai-edit.spec.ts +31 -0
  325. package/src/lib/edit/test-ai-edit.ts +52 -0
  326. package/src/lib/git-mode/BlockingGitDialog.svelte +118 -0
  327. package/src/lib/git-mode/GitControlsButton.svelte +96 -0
  328. package/src/lib/git-mode/client-admission.spec.ts +304 -0
  329. package/src/lib/git-mode/client-admission.ts +343 -0
  330. package/src/lib/git-mode/errors.ts +2 -0
  331. package/src/lib/git-mode/git-mode-context.ts +70 -0
  332. package/src/lib/git-mode/refresh-policy.spec.ts +95 -0
  333. package/src/lib/git-mode/refresh-policy.ts +39 -0
  334. package/src/lib/git-mode/status-recovery.spec.ts +86 -0
  335. package/src/lib/git-mode/status-recovery.ts +33 -0
  336. package/src/lib/monaco/bosun-theme.ts +6 -83
  337. package/src/lib/monaco/editor-appearance.spec.ts +84 -0
  338. package/src/lib/monaco/editor-appearance.ts +154 -0
  339. package/src/lib/monaco/editor-decorations.spec.ts +91 -0
  340. package/src/lib/monaco/editor-decorations.ts +133 -0
  341. package/src/lib/tests/assertion-types.ts +74 -0
  342. package/src/lib/trpc-client.ts +15 -1
  343. package/src/lib/ws-client.spec.ts +208 -0
  344. package/src/lib/ws-client.ts +196 -14
  345. package/src/lib/ws-message.ts +24 -0
  346. package/build/client/_app/immutable/assets/0.Rrc0O--C.css +0 -1
  347. package/build/client/_app/immutable/assets/0.Rrc0O--C.css.br +0 -0
  348. package/build/client/_app/immutable/assets/0.Rrc0O--C.css.gz +0 -0
  349. package/build/client/_app/immutable/assets/2.DtxQDOXx.css.br +0 -0
  350. package/build/client/_app/immutable/assets/2.DtxQDOXx.css.gz +0 -0
  351. package/build/client/_app/immutable/chunks/B1HdnQRQ.js.br +0 -0
  352. package/build/client/_app/immutable/chunks/B1HdnQRQ.js.gz +0 -0
  353. package/build/client/_app/immutable/chunks/B5zf3x62.js.br +0 -0
  354. package/build/client/_app/immutable/chunks/B5zf3x62.js.gz +0 -0
  355. package/build/client/_app/immutable/chunks/BHHfrjbV.js.br +0 -2
  356. package/build/client/_app/immutable/chunks/BHHfrjbV.js.gz +0 -0
  357. package/build/client/_app/immutable/chunks/BU7aeYn4.js +0 -1
  358. package/build/client/_app/immutable/chunks/BU7aeYn4.js.br +0 -0
  359. package/build/client/_app/immutable/chunks/BU7aeYn4.js.gz +0 -0
  360. package/build/client/_app/immutable/chunks/BbGYcfPY.js +0 -3
  361. package/build/client/_app/immutable/chunks/BbGYcfPY.js.br +0 -0
  362. package/build/client/_app/immutable/chunks/BbGYcfPY.js.gz +0 -0
  363. package/build/client/_app/immutable/chunks/Bmd5zhWC.js.br +0 -0
  364. package/build/client/_app/immutable/chunks/Bmd5zhWC.js.gz +0 -0
  365. package/build/client/_app/immutable/chunks/BnqH7p3U.js +0 -33
  366. package/build/client/_app/immutable/chunks/BnqH7p3U.js.br +0 -0
  367. package/build/client/_app/immutable/chunks/BnqH7p3U.js.gz +0 -0
  368. package/build/client/_app/immutable/chunks/Bog028VR.js.br +0 -0
  369. package/build/client/_app/immutable/chunks/Bog028VR.js.gz +0 -0
  370. package/build/client/_app/immutable/chunks/Bv1mNXs0.js.br +0 -0
  371. package/build/client/_app/immutable/chunks/Bv1mNXs0.js.gz +0 -0
  372. package/build/client/_app/immutable/chunks/BvjXTrOz.js +0 -1
  373. package/build/client/_app/immutable/chunks/BvjXTrOz.js.br +0 -0
  374. package/build/client/_app/immutable/chunks/BvjXTrOz.js.gz +0 -0
  375. package/build/client/_app/immutable/chunks/C1R-s4aD.js +0 -1
  376. package/build/client/_app/immutable/chunks/C1R-s4aD.js.br +0 -0
  377. package/build/client/_app/immutable/chunks/C1R-s4aD.js.gz +0 -0
  378. package/build/client/_app/immutable/chunks/CC1OcqhR.js +0 -1
  379. package/build/client/_app/immutable/chunks/CC1OcqhR.js.br +0 -0
  380. package/build/client/_app/immutable/chunks/CC1OcqhR.js.gz +0 -0
  381. package/build/client/_app/immutable/chunks/CEHsomMo.js.br +0 -0
  382. package/build/client/_app/immutable/chunks/CJcZ2GVC.js.br +0 -0
  383. package/build/client/_app/immutable/chunks/CJcZ2GVC.js.gz +0 -0
  384. package/build/client/_app/immutable/chunks/CN555stc.js.br +0 -0
  385. package/build/client/_app/immutable/chunks/CN555stc.js.gz +0 -0
  386. package/build/client/_app/immutable/chunks/CQg2Mme0.js +0 -9
  387. package/build/client/_app/immutable/chunks/CQg2Mme0.js.br +0 -0
  388. package/build/client/_app/immutable/chunks/CQg2Mme0.js.gz +0 -0
  389. package/build/client/_app/immutable/chunks/Cp_st-64.js.br +0 -0
  390. package/build/client/_app/immutable/chunks/Cp_st-64.js.gz +0 -0
  391. package/build/client/_app/immutable/chunks/D8mA-uZ4.js.br +0 -0
  392. package/build/client/_app/immutable/chunks/D8mA-uZ4.js.gz +0 -0
  393. package/build/client/_app/immutable/chunks/DCXjBDmY.js.br +0 -0
  394. package/build/client/_app/immutable/chunks/DCXjBDmY.js.gz +0 -0
  395. package/build/client/_app/immutable/chunks/DSLyVE1P.js +0 -1
  396. package/build/client/_app/immutable/chunks/DSLyVE1P.js.br +0 -0
  397. package/build/client/_app/immutable/chunks/DSLyVE1P.js.gz +0 -0
  398. package/build/client/_app/immutable/chunks/Ddv5LgEc.js.br +0 -0
  399. package/build/client/_app/immutable/chunks/Ddv5LgEc.js.gz +0 -0
  400. package/build/client/_app/immutable/chunks/DfcDjAv-.js.br +0 -0
  401. package/build/client/_app/immutable/chunks/DfcDjAv-.js.gz +0 -0
  402. package/build/client/_app/immutable/chunks/Dg0A8wPA.js.br +0 -0
  403. package/build/client/_app/immutable/chunks/Dg0A8wPA.js.gz +0 -0
  404. package/build/client/_app/immutable/chunks/Dm49pcMm.js.br +0 -0
  405. package/build/client/_app/immutable/chunks/Dm49pcMm.js.gz +0 -0
  406. package/build/client/_app/immutable/chunks/DneQQ7D5.js.br +0 -0
  407. package/build/client/_app/immutable/chunks/DneQQ7D5.js.gz +0 -0
  408. package/build/client/_app/immutable/chunks/DoD3q5w5.js.br +0 -0
  409. package/build/client/_app/immutable/chunks/DoD3q5w5.js.gz +0 -0
  410. package/build/client/_app/immutable/chunks/DtXXy94i.js.br +0 -0
  411. package/build/client/_app/immutable/chunks/DtXXy94i.js.gz +0 -0
  412. package/build/client/_app/immutable/chunks/Dy2CFyD6.js +0 -2
  413. package/build/client/_app/immutable/chunks/Dy2CFyD6.js.br +0 -0
  414. package/build/client/_app/immutable/chunks/Dy2CFyD6.js.gz +0 -0
  415. package/build/client/_app/immutable/chunks/DyBwTDJp.js +0 -2
  416. package/build/client/_app/immutable/chunks/DyBwTDJp.js.br +0 -0
  417. package/build/client/_app/immutable/chunks/DyBwTDJp.js.gz +0 -0
  418. package/build/client/_app/immutable/chunks/ILTCveYH.js +0 -1
  419. package/build/client/_app/immutable/chunks/ILTCveYH.js.br +0 -0
  420. package/build/client/_app/immutable/chunks/ILTCveYH.js.gz +0 -0
  421. package/build/client/_app/immutable/chunks/JcG4w2gF.js.br +0 -0
  422. package/build/client/_app/immutable/chunks/JcG4w2gF.js.gz +0 -0
  423. package/build/client/_app/immutable/chunks/UqjCSZmA.js.br +0 -0
  424. package/build/client/_app/immutable/chunks/UqjCSZmA.js.gz +0 -0
  425. package/build/client/_app/immutable/chunks/_YcrHZ6P.js +0 -1
  426. package/build/client/_app/immutable/chunks/_YcrHZ6P.js.br +0 -2
  427. package/build/client/_app/immutable/chunks/_YcrHZ6P.js.gz +0 -0
  428. package/build/client/_app/immutable/chunks/i6ygh6h8.js +0 -1
  429. package/build/client/_app/immutable/chunks/i6ygh6h8.js.br +0 -2
  430. package/build/client/_app/immutable/chunks/i6ygh6h8.js.gz +0 -0
  431. package/build/client/_app/immutable/chunks/oRi68ch3.js +0 -1
  432. package/build/client/_app/immutable/chunks/oRi68ch3.js.br +0 -0
  433. package/build/client/_app/immutable/chunks/oRi68ch3.js.gz +0 -0
  434. package/build/client/_app/immutable/chunks/pPpIn6tB.js.br +0 -0
  435. package/build/client/_app/immutable/chunks/pPpIn6tB.js.gz +0 -0
  436. package/build/client/_app/immutable/chunks/r0sHOWrM.js +0 -1
  437. package/build/client/_app/immutable/chunks/r0sHOWrM.js.br +0 -0
  438. package/build/client/_app/immutable/chunks/r0sHOWrM.js.gz +0 -0
  439. package/build/client/_app/immutable/chunks/wcTQUnZO.js.br +0 -0
  440. package/build/client/_app/immutable/chunks/wcTQUnZO.js.gz +0 -0
  441. package/build/client/_app/immutable/entry/app.DdO0gkPg.js +0 -2
  442. package/build/client/_app/immutable/entry/app.DdO0gkPg.js.br +0 -0
  443. package/build/client/_app/immutable/entry/app.DdO0gkPg.js.gz +0 -0
  444. package/build/client/_app/immutable/entry/start.eAjDq0c9.js +0 -1
  445. package/build/client/_app/immutable/entry/start.eAjDq0c9.js.br +0 -2
  446. package/build/client/_app/immutable/entry/start.eAjDq0c9.js.gz +0 -0
  447. package/build/client/_app/immutable/nodes/0.nG3DdvIX.js +0 -3
  448. package/build/client/_app/immutable/nodes/0.nG3DdvIX.js.br +0 -0
  449. package/build/client/_app/immutable/nodes/0.nG3DdvIX.js.gz +0 -0
  450. package/build/client/_app/immutable/nodes/1.Ceu0XS6v.js +0 -1
  451. package/build/client/_app/immutable/nodes/1.Ceu0XS6v.js.br +0 -0
  452. package/build/client/_app/immutable/nodes/1.Ceu0XS6v.js.gz +0 -0
  453. package/build/client/_app/immutable/nodes/10.dm2dgy31.js +0 -13
  454. package/build/client/_app/immutable/nodes/10.dm2dgy31.js.br +0 -0
  455. package/build/client/_app/immutable/nodes/10.dm2dgy31.js.gz +0 -0
  456. package/build/client/_app/immutable/nodes/15.D2I0y3ys.js.br +0 -0
  457. package/build/client/_app/immutable/nodes/15.D2I0y3ys.js.gz +0 -0
  458. package/build/client/_app/immutable/nodes/17.CKxGp0E7.js +0 -3
  459. package/build/client/_app/immutable/nodes/17.CKxGp0E7.js.br +0 -0
  460. package/build/client/_app/immutable/nodes/17.CKxGp0E7.js.gz +0 -0
  461. package/build/client/_app/immutable/nodes/18.DHJxyQpw.js +0 -11
  462. package/build/client/_app/immutable/nodes/18.DHJxyQpw.js.br +0 -0
  463. package/build/client/_app/immutable/nodes/18.DHJxyQpw.js.gz +0 -0
  464. package/build/client/_app/immutable/nodes/2.DesR2keg.js +0 -35
  465. package/build/client/_app/immutable/nodes/2.DesR2keg.js.br +0 -0
  466. package/build/client/_app/immutable/nodes/2.DesR2keg.js.gz +0 -0
  467. package/build/client/_app/immutable/nodes/3.BUKrXGR_.js +0 -1
  468. package/build/client/_app/immutable/nodes/3.BUKrXGR_.js.br +0 -0
  469. package/build/client/_app/immutable/nodes/3.BUKrXGR_.js.gz +0 -0
  470. package/build/client/_app/immutable/nodes/4.C8VxVbVn.js.br +0 -0
  471. package/build/client/_app/immutable/nodes/4.C8VxVbVn.js.gz +0 -0
  472. package/build/client/_app/immutable/nodes/5.BjrnKYaA.js.br +0 -0
  473. package/build/client/_app/immutable/nodes/5.BjrnKYaA.js.gz +0 -0
  474. package/build/client/_app/immutable/nodes/6.C_hEzPrU.js +0 -1
  475. package/build/client/_app/immutable/nodes/6.C_hEzPrU.js.br +0 -0
  476. package/build/client/_app/immutable/nodes/6.C_hEzPrU.js.gz +0 -0
  477. package/build/client/_app/immutable/nodes/8.BTYaOiDC.js +0 -2
  478. package/build/client/_app/immutable/nodes/8.BTYaOiDC.js.br +0 -0
  479. package/build/client/_app/immutable/nodes/8.BTYaOiDC.js.gz +0 -0
  480. package/build/client/_app/immutable/nodes/9.DVspuDYY.js +0 -2
  481. package/build/client/_app/immutable/nodes/9.DVspuDYY.js.br +0 -0
  482. package/build/client/_app/immutable/nodes/9.DVspuDYY.js.gz +0 -0
  483. package/build/server/chunks/0-D_duQDWy.js +0 -9
  484. package/build/server/chunks/0-D_duQDWy.js.map +0 -1
  485. package/build/server/chunks/1-C0HdTvXW.js +0 -9
  486. package/build/server/chunks/10-DcfhCR4R.js +0 -9
  487. package/build/server/chunks/10-DcfhCR4R.js.map +0 -1
  488. package/build/server/chunks/15-BQcb9C_y.js +0 -9
  489. package/build/server/chunks/17-DuVCTioj.js +0 -9
  490. package/build/server/chunks/17-DuVCTioj.js.map +0 -1
  491. package/build/server/chunks/18-CT0VFW_p.js +0 -9
  492. package/build/server/chunks/18-CT0VFW_p.js.map +0 -1
  493. package/build/server/chunks/2-DgTzKQAP.js +0 -9
  494. package/build/server/chunks/2-DgTzKQAP.js.map +0 -1
  495. package/build/server/chunks/3-eQMSMzXP.js +0 -9
  496. package/build/server/chunks/3-eQMSMzXP.js.map +0 -1
  497. package/build/server/chunks/4-OaAJtDqP.js +0 -9
  498. package/build/server/chunks/4-OaAJtDqP.js.map +0 -1
  499. package/build/server/chunks/5-CBdMutbv.js +0 -9
  500. package/build/server/chunks/5-CBdMutbv.js.map +0 -1
  501. package/build/server/chunks/6-FoEi7ggm.js +0 -9
  502. package/build/server/chunks/6-FoEi7ggm.js.map +0 -1
  503. package/build/server/chunks/8-B44yRkfX.js +0 -9
  504. package/build/server/chunks/8-B44yRkfX.js.map +0 -1
  505. package/build/server/chunks/9-eUjFpHzI.js +0 -9
  506. package/build/server/chunks/9-eUjFpHzI.js.map +0 -1
  507. package/build/server/chunks/ChatStepTrace-BivoNYOY.js.map +0 -1
  508. package/build/server/chunks/_layout.svelte-B-0DHjLB.js +0 -45
  509. package/build/server/chunks/_layout.svelte-B-0DHjLB.js.map +0 -1
  510. package/build/server/chunks/_layout.svelte-B88WMyk0.js.map +0 -1
  511. package/build/server/chunks/_layout.svelte-wi6o5Ecu.js.map +0 -1
  512. package/build/server/chunks/_page.svelte-57pyhszV.js.map +0 -1
  513. package/build/server/chunks/_page.svelte-BSVJ2d2G.js.map +0 -1
  514. package/build/server/chunks/_page.svelte-BoHt2cpr.js +0 -61
  515. package/build/server/chunks/_page.svelte-BoHt2cpr.js.map +0 -1
  516. package/build/server/chunks/_page.svelte-CeS_21Ho.js.map +0 -1
  517. package/build/server/chunks/_page.svelte-DHSYVLoj.js.map +0 -1
  518. package/build/server/chunks/_page.svelte-DhFNFMnl.js.map +0 -1
  519. package/build/server/chunks/_server.ts-D_eo_OAK.js +0 -139
  520. package/build/server/chunks/_server.ts-D_eo_OAK.js.map +0 -1
  521. package/build/server/chunks/error.svelte-DmKKN1RU.js +0 -15
  522. package/build/server/chunks/source-selection-CcN1cgXc.js.map +0 -1
  523. package/build/server/chunks/trpc-client-D8L6vWf4.js +0 -14
  524. package/build/server/chunks/trpc-client-D8L6vWf4.js.map +0 -1
@@ -1,19 +1,21 @@
1
- import { w as head, p as ensure_array_like, o as attr_class, k as escape_html, r as clsx, m as attr, x as attr_style, l as derived, q as attributes } from './index-LMsd1ih2.js';
2
- import { B as Button } from './Button-DH7gdU0s.js';
3
- import { M as Modal } from './Modal-CGJuNpZ0.js';
4
- import { I as Input } from './Input-CUJ9Cg7b.js';
5
- import { o as onDestroy } from './index-server-BRr5mZEq.js';
6
- import { I as Icon$1, h as html } from './Icon-DP1YKCRV.js';
7
- import './client-DO-hqMbT.js';
1
+ import { w as head, p as ensure_array_like, m as attr_class, k as escape_html, r as clsx, l as attr, x as attr_style, n as derived, q as attributes } from './index-DGtbUu8Y.js';
2
+ import { B as Button } from './Button-Dc9CR4Wh.js';
3
+ import { M as Modal } from './Modal-7IIIfFEG.js';
4
+ import { I as Input } from './Input-7hpw1WLW.js';
5
+ import { o as onDestroy } from './index-server-l8-WsVn4.js';
6
+ import { I as Icon$1, h as html } from './Icon-Bogvl2n9.js';
7
+ import './client-P-7bDULt.js';
8
+ import { g as getGitModeContext } from './git-mode-context-BpNsAUGF.js';
8
9
  import 'js-yaml';
9
- import './trpc-client-D8L6vWf4.js';
10
- import { g as getEditWorkspaceContext } from './edit-workspace-context-tyHBPujC.js';
10
+ import './trpc-client-Cr8RJ4UO.js';
11
+ import { g as getEditWorkspaceContext } from './edit-workspace-context-hanFnXR3.js';
11
12
  import { i as isMainStepName } from './steps-DzZCg39h.js';
12
- import './root-4q2Pr7ck.js';
13
- import './state.svelte-Bd1i-u49.js';
14
- import './index3-BdRUAffj.js';
13
+ import './root-sWPnlpi3.js';
14
+ import './state.svelte-BkvaElc6.js';
15
+ import './index3-4hbbCqW0.js';
15
16
  import './shared-server-DaWdgxVh.js';
16
17
  import '@trpc/client';
18
+ import '@trpc/server/observable';
17
19
 
18
20
  const matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;
19
21
  const stringToIcon = (value, validate, allowSimpleName, provider = "") => {
@@ -1382,6 +1384,7 @@ function Icon($$renderer, $$props) {
1382
1384
  }
1383
1385
  function MiniEditor($$renderer, $$props) {
1384
1386
  $$renderer.component(($$renderer2) => {
1387
+ getGitModeContext();
1385
1388
  let editor = null;
1386
1389
  let model = null;
1387
1390
  let disposables = [];
@@ -1389,6 +1392,7 @@ function MiniEditor($$renderer, $$props) {
1389
1392
  let {
1390
1393
  height = 120
1391
1394
  } = $$props;
1395
+ let editorDecorations = null;
1392
1396
  function handleWheelCapture(e) {
1393
1397
  e.stopPropagation();
1394
1398
  }
@@ -1404,6 +1408,8 @@ function MiniEditor($$renderer, $$props) {
1404
1408
  }
1405
1409
  }
1406
1410
  disposables = [];
1411
+ editorDecorations?.dispose();
1412
+ editorDecorations = null;
1407
1413
  const toDisposeModel = model;
1408
1414
  model = null;
1409
1415
  try {
@@ -1424,7 +1430,7 @@ function MiniEditor($$renderer, $$props) {
1424
1430
  });
1425
1431
  $$renderer2.push(`<div class="w-full"${attr_style(
1426
1432
  // Update language when prop changes without recreating the editor
1427
- // External value changes should update the model (avoid loops)
1433
+ // Keep the model and its semantic decorations in sync with external changes.
1428
1434
  `height:${height}px`
1429
1435
  )}></div>`);
1430
1436
  });
@@ -1436,7 +1442,9 @@ function RunResultActions($$renderer, $$props) {
1436
1442
  actionsInert = false,
1437
1443
  addTestDisabled = false,
1438
1444
  showAnalyze = true,
1439
- analyzeDisabled = false
1445
+ analyzeDisabled = false,
1446
+ fixDisabled = false,
1447
+ onFix
1440
1448
  } = $$props;
1441
1449
  let addStatus = "idle";
1442
1450
  onDestroy(() => {
@@ -1444,7 +1452,14 @@ function RunResultActions($$renderer, $$props) {
1444
1452
  let $$settled = true;
1445
1453
  let $$inner_renderer;
1446
1454
  function $$render_inner($$renderer3) {
1447
- $$renderer3.push(`<div class="mt-1 flex flex-wrap items-center gap-x-2 gap-y-1"><button type="button"${attr("inert", actionsInert, true)}${attr("disabled", actionsDisabled || addTestDisabled || addStatus === "adding", true)} class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-rc-gray-400">${escape_html("Add test")}</button> `);
1455
+ $$renderer3.push(`<div class="mt-1 flex flex-wrap items-center gap-x-2 gap-y-1">`);
1456
+ if (onFix) {
1457
+ $$renderer3.push("<!--[0-->");
1458
+ $$renderer3.push(`<button type="button"${attr("inert", actionsInert, true)}${attr("disabled", actionsDisabled || fixDisabled, true)} class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-rc-gray-400">Fix</button>`);
1459
+ } else {
1460
+ $$renderer3.push("<!--[-1-->");
1461
+ }
1462
+ $$renderer3.push(`<!--]--> <button type="button"${attr("inert", actionsInert, true)}${attr("disabled", actionsDisabled || addTestDisabled || addStatus === "adding", true)} class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-rc-gray-400">${escape_html("Add test")}</button> `);
1448
1463
  if (showAnalyze) {
1449
1464
  $$renderer3.push("<!--[0-->");
1450
1465
  $$renderer3.push(`<button type="button"${attr("disabled", analyzeDisabled, true)} class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-rc-gray-400">Analyze</button>`);
@@ -1473,6 +1488,29 @@ function RunResultActions($$renderer, $$props) {
1473
1488
  $$renderer2.subsume($$inner_renderer);
1474
1489
  });
1475
1490
  }
1491
+ function formatTestFixAssertion(label, value) {
1492
+ const normalizedLabel = label.trim() === "LLM" ? "" : label.trim();
1493
+ return [normalizedLabel, value.trim()].filter(Boolean).join(" ");
1494
+ }
1495
+ function buildTestFixRequest(input) {
1496
+ const assertion = formatTestFixAssertion(input.assertionLabel, input.assertionValue);
1497
+ return `You will be given the context, the conversation and the desired output and assertion about it. First, find why the prompt is not producing the correct result. It's usually one concrete instruction within the relevant section, or a contradiction. Then, change the prompt minimally so this will work, but keeping the prompt clean and comprehensive is more important. Try to provide as general solution as possible. Try to change just one part of the prompt, not multiple parts. Avoid adding exceptions and overrides. Avoid duplicating information that already exists in the prompt.
1498
+
1499
+ Context:
1500
+ ${input.context.trim()}
1501
+
1502
+ Conversation:
1503
+ ${input.conversation.trim()}
1504
+
1505
+ Desired outcome:
1506
+ ${input.expectedOutput.trim()}
1507
+
1508
+ Assertion about outcome:
1509
+ ${assertion}
1510
+
1511
+ Current incorrect outcome:
1512
+ ${input.currentIncorrectOutcome.trim()}`;
1513
+ }
1476
1514
  function erf(x) {
1477
1515
  const sign = x < 0 ? -1 : 1;
1478
1516
  const ax = Math.abs(x);
@@ -1538,9 +1576,75 @@ function getExpectedTrend(result, expectedRuns) {
1538
1576
  comparisonLabel
1539
1577
  };
1540
1578
  }
1579
+ const baseAssertionTypes = [
1580
+ { value: "llm-rubric", label: "LLM" },
1581
+ { value: "answer-relevance", label: "Answer Relevance (LLM)" },
1582
+ { value: "context-faithfulness", label: "Context Faithfulness (LLM)" },
1583
+ { value: "context-recall", label: "Context Recall (LLM)" },
1584
+ { value: "context-relevance", label: "Context Relevance (LLM)" },
1585
+ { value: "model-graded-closedqa", label: "Model-Graded Closed QA" },
1586
+ { value: "model-graded-factuality", label: "Model-Graded Factuality" },
1587
+ { value: "moderation", label: "Moderation" },
1588
+ { value: "classifier", label: "Classifier" },
1589
+ { value: "g-eval", label: "G-Eval" },
1590
+ { value: "factuality", label: "Factuality" },
1591
+ { value: "conversation-relevance", label: "Conversation Relevance" },
1592
+ { value: "equals", label: "Equals" },
1593
+ { value: "contains", label: "Contains" },
1594
+ { value: "icontains", label: "Contains (case-insensitive)" },
1595
+ { value: "contains-all", label: "Contains All" },
1596
+ { value: "contains-any", label: "Contains Any" },
1597
+ { value: "icontains-all", label: "Contains All (iCase)" },
1598
+ { value: "icontains-any", label: "Contains Any (iCase)" },
1599
+ { value: "starts-with", label: "Starts With" },
1600
+ { value: "regex", label: "Regex" },
1601
+ { value: "levenshtein", label: "Levenshtein Distance" },
1602
+ { value: "is-refusal", label: "Is Refusal" },
1603
+ { value: "is-html", label: "Is HTML" },
1604
+ { value: "contains-html", label: "Contains HTML" },
1605
+ { value: "is-json", label: "Is JSON" },
1606
+ { value: "contains-json", label: "Contains JSON" },
1607
+ { value: "is-xml", label: "Is XML" },
1608
+ { value: "contains-xml", label: "Contains XML" },
1609
+ { value: "is-sql", label: "Is SQL" },
1610
+ { value: "contains-sql", label: "Contains SQL" },
1611
+ { value: "similar", label: "Semantic Similarity" },
1612
+ { value: "rouge-n", label: "ROUGE-N" },
1613
+ { value: "bleu", label: "BLEU" },
1614
+ { value: "gleu", label: "GLEU" },
1615
+ { value: "meteor", label: "METEOR" },
1616
+ { value: "perplexity", label: "Perplexity" },
1617
+ { value: "perplexity-score", label: "Perplexity Score" },
1618
+ { value: "latency", label: "Latency" },
1619
+ { value: "cost", label: "Cost" },
1620
+ { value: "finish-reason", label: "Finish Reason" },
1621
+ { value: "trace-error-spans", label: "Trace Error Spans" },
1622
+ { value: "trace-span-count", label: "Trace Span Count" },
1623
+ { value: "trace-span-duration", label: "Trace Span Duration" },
1624
+ { value: "is-valid-function-call", label: "Is Valid Function Call" },
1625
+ { value: "is-valid-openai-function-call", label: "Is Valid OpenAI Function Call" },
1626
+ { value: "is-valid-openai-tools-call", label: "Is Valid OpenAI Tools Call" },
1627
+ { value: "guardrails", label: "Guardrails" },
1628
+ { value: "javascript", label: "JavaScript (custom)" },
1629
+ { value: "python", label: "Python (custom)" },
1630
+ { value: "webhook", label: "Webhook (custom)" },
1631
+ { value: "pi", label: "Pi Scorer" }
1632
+ ];
1633
+ const assertionTypes = [
1634
+ ...baseAssertionTypes,
1635
+ ...baseAssertionTypes.map((option) => ({
1636
+ value: `not-${option.value}`,
1637
+ label: `Not ${option.label}`
1638
+ }))
1639
+ ];
1640
+ function assertionLabel(value) {
1641
+ return assertionTypes.find((option) => option.value === value)?.label ?? value;
1642
+ }
1541
1643
  function _page($$renderer, $$props) {
1542
1644
  $$renderer.component(($$renderer2) => {
1543
1645
  const { state: workspace, actions } = getEditWorkspaceContext();
1646
+ const gitMode = getGitModeContext();
1647
+ const gitWritesPaused = derived(() => gitMode.isWritePaused());
1544
1648
  const agent = derived(() => workspace.agentId);
1545
1649
  const region = derived(() => workspace.region);
1546
1650
  let showViewerModal = false;
@@ -1569,89 +1673,33 @@ function _page($$renderer, $$props) {
1569
1673
  showViewerModal = true;
1570
1674
  }
1571
1675
  let analyzeRunning = false;
1572
- const baseAssertionTypes = [
1573
- { value: "llm-rubric", label: "LLM" },
1574
- { value: "answer-relevance", label: "Answer Relevance (LLM)" },
1575
- {
1576
- value: "context-faithfulness",
1577
- label: "Context Faithfulness (LLM)"
1578
- },
1579
- { value: "context-recall", label: "Context Recall (LLM)" },
1580
- { value: "context-relevance", label: "Context Relevance (LLM)" },
1581
- {
1582
- value: "model-graded-closedqa",
1583
- label: "Model-Graded Closed QA"
1584
- },
1585
- {
1586
- value: "model-graded-factuality",
1587
- label: "Model-Graded Factuality"
1588
- },
1589
- { value: "moderation", label: "Moderation" },
1590
- { value: "classifier", label: "Classifier" },
1591
- { value: "g-eval", label: "G-Eval" },
1592
- { value: "factuality", label: "Factuality" },
1593
- {
1594
- value: "conversation-relevance",
1595
- label: "Conversation Relevance"
1596
- },
1597
- { value: "equals", label: "Equals" },
1598
- { value: "contains", label: "Contains" },
1599
- { value: "icontains", label: "Contains (case-insensitive)" },
1600
- { value: "contains-all", label: "Contains All" },
1601
- { value: "contains-any", label: "Contains Any" },
1602
- { value: "icontains-all", label: "Contains All (iCase)" },
1603
- { value: "icontains-any", label: "Contains Any (iCase)" },
1604
- { value: "starts-with", label: "Starts With" },
1605
- { value: "regex", label: "Regex" },
1606
- { value: "levenshtein", label: "Levenshtein Distance" },
1607
- { value: "is-refusal", label: "Is Refusal" },
1608
- { value: "is-html", label: "Is HTML" },
1609
- { value: "contains-html", label: "Contains HTML" },
1610
- { value: "is-json", label: "Is JSON" },
1611
- { value: "contains-json", label: "Contains JSON" },
1612
- { value: "is-xml", label: "Is XML" },
1613
- { value: "contains-xml", label: "Contains XML" },
1614
- { value: "is-sql", label: "Is SQL" },
1615
- { value: "contains-sql", label: "Contains SQL" },
1616
- { value: "similar", label: "Semantic Similarity" },
1617
- { value: "rouge-n", label: "ROUGE-N" },
1618
- { value: "bleu", label: "BLEU" },
1619
- { value: "gleu", label: "GLEU" },
1620
- { value: "meteor", label: "METEOR" },
1621
- { value: "perplexity", label: "Perplexity" },
1622
- { value: "perplexity-score", label: "Perplexity Score" },
1623
- { value: "latency", label: "Latency" },
1624
- { value: "cost", label: "Cost" },
1625
- { value: "finish-reason", label: "Finish Reason" },
1626
- { value: "trace-error-spans", label: "Trace Error Spans" },
1627
- { value: "trace-span-count", label: "Trace Span Count" },
1628
- { value: "trace-span-duration", label: "Trace Span Duration" },
1629
- {
1630
- value: "is-valid-function-call",
1631
- label: "Is Valid Function Call"
1632
- },
1633
- {
1634
- value: "is-valid-openai-function-call",
1635
- label: "Is Valid OpenAI Function Call"
1636
- },
1637
- {
1638
- value: "is-valid-openai-tools-call",
1639
- label: "Is Valid OpenAI Tools Call"
1640
- },
1641
- { value: "guardrails", label: "Guardrails" },
1642
- { value: "javascript", label: "JavaScript (custom)" },
1643
- { value: "python", label: "Python (custom)" },
1644
- { value: "webhook", label: "Webhook (custom)" },
1645
- { value: "pi", label: "Pi Scorer" }
1646
- ];
1647
- const assertionTypes = [
1648
- ...baseAssertionTypes,
1649
- ...baseAssertionTypes.map((opt) => ({ value: `not-${opt.value}`, label: `Not ${opt.label}` }))
1650
- ];
1676
+ let tests = [];
1651
1677
  let running = false;
1652
- Promise.resolve();
1678
+ let cancelRequest = Promise.resolve();
1679
+ const pendingSaves = /* @__PURE__ */ new Set();
1653
1680
  let pendingSaveCount = 0;
1654
1681
  const isSaving = derived(() => pendingSaveCount > 0);
1682
+ let expandedTestIds = [];
1683
+ async function flushTestWrites() {
1684
+ await cancelRequest;
1685
+ while (pendingSaves.size > 0) {
1686
+ await Promise.all([...pendingSaves]);
1687
+ }
1688
+ }
1689
+ const unregisterGitFlusher = gitMode.registerFlusher("tests", flushTestWrites);
1690
+ const unregisterGitBlocker = gitMode.registerBlocker("tests-draft", () => {
1691
+ const active = typeof document === "undefined" ? null : document.activeElement;
1692
+ if (active instanceof HTMLElement && active.closest("[data-id]") && (active.matches("input, textarea, select") || active.closest(".monaco-editor"))) {
1693
+ return "A test field is still being edited.";
1694
+ }
1695
+ return null;
1696
+ });
1697
+ function historyEditKey(testId) {
1698
+ return `${agent()}\0${region() ?? ""}\0${testId}`;
1699
+ }
1700
+ function pendingHistoryEdit(testId) {
1701
+ return workspace.testHistoryEdits[historyEditKey(testId)] ?? null;
1702
+ }
1655
1703
  function parseHistoryTest(timestamp, row) {
1656
1704
  const test = row.test;
1657
1705
  const id = test.id;
@@ -1718,8 +1766,43 @@ function _page($$renderer, $$props) {
1718
1766
  }
1719
1767
  return { casesPassing, casesTotal, attemptsPassing, attemptsTotal };
1720
1768
  }
1721
- function assertionLabel(value) {
1722
- return assertionTypes.find((opt) => opt.value === value)?.label ?? value;
1769
+ function testAiEditTarget(row, kind, currentIncorrectOutcome) {
1770
+ const selectedMainStep = isMainStepName(row.step) && isMainStepName(workspace.currentStep?.name) ? workspace.currentStep : null;
1771
+ const exactStep = workspace.steps.find((step2) => step2.name === row.step);
1772
+ const promptStep = selectedMainStep ?? exactStep ?? workspace.steps.find((step2) => isMainStepName(row.step) ? isMainStepName(step2.name) : false);
1773
+ const step = promptStep?.name ?? row.step;
1774
+ const persistedPrompt = promptStep?.prompt ?? "";
1775
+ const promptDraft = workspace.promptDrafts[step] ?? persistedPrompt;
1776
+ const promptProposal = workspace.promptEdits[`${agent()}\0${step}`];
1777
+ return {
1778
+ kind,
1779
+ testId: row.id,
1780
+ step,
1781
+ prompt: promptProposal?.suggestedPrompt ?? promptDraft,
1782
+ basePrompt: kind === "test-fix" ? persistedPrompt : promptProposal?.originalPrompt ?? promptDraft,
1783
+ conversation: row.conversation,
1784
+ expectedOutput: row.expected_output,
1785
+ context: row.context,
1786
+ assertionLabel: row.evaluation_mode === "json-deep-equal" ? "" : assertionLabel(row.assertion_type),
1787
+ assertionValue: row.evaluation_mode === "json-deep-equal" ? "" : row.assertion_value,
1788
+ currentIncorrectOutcome
1789
+ };
1790
+ }
1791
+ function openTestFix(row, currentIncorrectOutcome) {
1792
+ showHistoryModal = false;
1793
+ const currentRow = tests.find((test) => test.id === row.id) ?? row;
1794
+ void setTestExpanded(currentRow.id, true);
1795
+ actions.openAiEdit(
1796
+ buildTestFixRequest({
1797
+ context: currentRow.context,
1798
+ conversation: currentRow.conversation,
1799
+ expectedOutput: currentRow.expected_output,
1800
+ assertionLabel: currentRow.evaluation_mode === "json-deep-equal" ? "" : assertionLabel(currentRow.assertion_type),
1801
+ assertionValue: currentRow.evaluation_mode === "json-deep-equal" ? "" : currentRow.assertion_value,
1802
+ currentIncorrectOutcome
1803
+ }),
1804
+ testAiEditTarget(currentRow, "test-fix", currentIncorrectOutcome)
1805
+ );
1723
1806
  }
1724
1807
  function formatRunDate(timestamp) {
1725
1808
  const d = new Date(timestamp);
@@ -1839,10 +1922,35 @@ ${editorExpected}
1839
1922
  }
1840
1923
  };
1841
1924
  }
1925
+ function buildExpectedOutputHighlights(row, highlight) {
1926
+ if (!highlight) return [];
1927
+ return [
1928
+ {
1929
+ startLine: highlight.startLine,
1930
+ endLine: highlight.endLine,
1931
+ className: row.evaluation_mode === "json-deep-equal" ? "test-expected-json-output" : "test-expected-output"
1932
+ }
1933
+ ];
1934
+ }
1842
1935
  function resultCountClass(result) {
1843
1936
  return result.total_runs > 0 && result.successes < result.total_runs ? "text-rc-red-600" : "text-rc-gray-200";
1844
1937
  }
1938
+ function setTestExpanded(id, expanded) {
1939
+ const agentId = (agent() ?? "").trim();
1940
+ if (!agentId) return Promise.resolve();
1941
+ const normalizedId = String(id ?? "").trim();
1942
+ if (!normalizedId) return Promise.resolve();
1943
+ const next = new Set(expandedTestIds);
1944
+ const has = next.has(normalizedId);
1945
+ if (expanded === has) return Promise.resolve();
1946
+ next.add(normalizedId);
1947
+ const nextIds = Array.from(next);
1948
+ expandedTestIds = nextIds;
1949
+ return Promise.resolve();
1950
+ }
1845
1951
  onDestroy(() => {
1952
+ unregisterGitFlusher();
1953
+ unregisterGitBlocker();
1846
1954
  });
1847
1955
  let $$settled = true;
1848
1956
  let $$inner_renderer;
@@ -1980,13 +2088,7 @@ ${editorExpected}
1980
2088
  $$renderer4.push(`<!----></div> `);
1981
2089
  MiniEditor($$renderer4, {
1982
2090
  value: t.conversation_ui,
1983
- highlights: expectedInfo.highlight ? [
1984
- {
1985
- startLine: expectedInfo.highlight.startLine,
1986
- endLine: expectedInfo.highlight.endLine,
1987
- className: t.evaluation_mode === "json-deep-equal" ? "test-expected-json-output" : "test-expected-output"
1988
- }
1989
- ] : void 0,
2091
+ highlights: buildExpectedOutputHighlights(t, expectedInfo.highlight),
1990
2092
  height: 220
1991
2093
  });
1992
2094
  $$renderer4.push(`<!----></div> <div class="rounded-b border-t border-rc-gray-700 bg-rc-gray-980 p-2">`);
@@ -2033,7 +2135,9 @@ ${editorExpected}
2033
2135
  actionsInert: isSaving(),
2034
2136
  addTestDisabled: !run.text.trim(),
2035
2137
  showAnalyze: t.evaluation_mode !== "json-deep-equal",
2036
- analyzeDisabled: analyzeRunning
2138
+ analyzeDisabled: analyzeRunning,
2139
+ fixDisabled: gitWritesPaused() || !!actions.getActivePromptEditId(),
2140
+ onFix: !run.success && !pendingHistoryEdit(t.id) ? () => openTestFix(t, run.text || run.errors || "—") : void 0
2037
2141
  });
2038
2142
  $$renderer4.push(`<!----></div></div>`);
2039
2143
  }
@@ -2126,4 +2230,4 @@ ${editorExpected}
2126
2230
  }
2127
2231
 
2128
2232
  export { _page as default };
2129
- //# sourceMappingURL=_page.svelte-BSVJ2d2G.js.map
2233
+ //# sourceMappingURL=_page.svelte-y8CZFL8a.js.map