@recombine-ai/bosun 0.16.2-cloud-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.
Files changed (359) hide show
  1. package/build/_app/immutable/assets/0.CDmx-FLf.css +1 -0
  2. package/build/_app/immutable/assets/0.CDmx-FLf.css.br +0 -0
  3. package/build/_app/immutable/assets/0.CDmx-FLf.css.gz +0 -0
  4. package/build/_app/immutable/assets/{2.Dc5_ru9X.css → 2.C-ckNQUz.css} +1 -1
  5. package/build/_app/immutable/assets/2.C-ckNQUz.css.br +0 -0
  6. package/build/_app/immutable/assets/2.C-ckNQUz.css.gz +0 -0
  7. package/build/_app/immutable/chunks/12bfCwgn.js +2 -0
  8. package/build/_app/immutable/chunks/12bfCwgn.js.br +0 -0
  9. package/build/_app/immutable/chunks/12bfCwgn.js.gz +0 -0
  10. package/build/_app/immutable/chunks/{C-Qcqb3K.js → 6OCsQ6r7.js} +2 -2
  11. package/build/_app/immutable/chunks/6OCsQ6r7.js.br +0 -0
  12. package/build/_app/immutable/chunks/6OCsQ6r7.js.gz +0 -0
  13. package/build/_app/immutable/chunks/AvXp07rr.js +1 -0
  14. package/build/_app/immutable/chunks/AvXp07rr.js.br +2 -0
  15. package/build/_app/immutable/chunks/AvXp07rr.js.gz +0 -0
  16. package/build/_app/immutable/chunks/{OYhYuonT.js → B434V0h8.js} +1 -1
  17. package/build/_app/immutable/chunks/B434V0h8.js.br +0 -0
  18. package/build/_app/immutable/chunks/B434V0h8.js.gz +0 -0
  19. package/build/_app/immutable/chunks/BJqZY8o2.js +1 -0
  20. package/build/_app/immutable/chunks/BJqZY8o2.js.br +0 -0
  21. package/build/_app/immutable/chunks/BJqZY8o2.js.gz +0 -0
  22. package/build/_app/immutable/chunks/{DHvIizf-.js → BKQbRSey.js} +1 -1
  23. package/build/_app/immutable/chunks/BKQbRSey.js.br +0 -0
  24. package/build/_app/immutable/chunks/BKQbRSey.js.gz +0 -0
  25. package/build/_app/immutable/chunks/BOHUKGg_.js +1 -0
  26. package/build/_app/immutable/chunks/BOHUKGg_.js.br +0 -0
  27. package/build/_app/immutable/chunks/BOHUKGg_.js.gz +0 -0
  28. package/build/_app/immutable/chunks/BP0Xadq7.js +5 -0
  29. package/build/_app/immutable/chunks/BP0Xadq7.js.br +0 -0
  30. package/build/_app/immutable/chunks/BP0Xadq7.js.gz +0 -0
  31. package/build/_app/immutable/chunks/BT98u4gR.js +35 -0
  32. package/build/_app/immutable/chunks/BT98u4gR.js.br +0 -0
  33. package/build/_app/immutable/chunks/BT98u4gR.js.gz +0 -0
  34. package/build/_app/immutable/chunks/{DjqcYvLr.js → Bc1oIj2c.js} +1 -1
  35. package/build/_app/immutable/chunks/Bc1oIj2c.js.br +0 -0
  36. package/build/_app/immutable/chunks/Bc1oIj2c.js.gz +0 -0
  37. package/build/_app/immutable/chunks/{CWB6mNDX.js → BiDy9-HP.js} +1 -1
  38. package/build/_app/immutable/chunks/BiDy9-HP.js.br +0 -0
  39. package/build/_app/immutable/chunks/BiDy9-HP.js.gz +0 -0
  40. package/build/_app/immutable/chunks/{BEa3nvFX.js → By9tvIIw.js} +1 -1
  41. package/build/_app/immutable/chunks/By9tvIIw.js.br +0 -0
  42. package/build/_app/immutable/chunks/By9tvIIw.js.gz +0 -0
  43. package/build/_app/immutable/chunks/Byx1piFp.js +3 -0
  44. package/build/_app/immutable/chunks/Byx1piFp.js.br +0 -0
  45. package/build/_app/immutable/chunks/Byx1piFp.js.gz +0 -0
  46. package/build/_app/immutable/chunks/{DSaIAZ57.js → C1TsmEOe.js} +1 -1
  47. package/build/_app/immutable/chunks/C1TsmEOe.js.br +0 -0
  48. package/build/_app/immutable/chunks/C1TsmEOe.js.gz +0 -0
  49. package/build/_app/immutable/chunks/CGV7fMmX.js +1 -0
  50. package/build/_app/immutable/chunks/CGV7fMmX.js.br +0 -0
  51. package/build/_app/immutable/chunks/CGV7fMmX.js.gz +0 -0
  52. package/build/_app/immutable/chunks/CL717zGu.js +2 -0
  53. package/build/_app/immutable/chunks/CL717zGu.js.br +0 -0
  54. package/build/_app/immutable/chunks/CL717zGu.js.gz +0 -0
  55. package/build/_app/immutable/chunks/{DrOC9WNt.js → CPCsWwEy.js} +1 -1
  56. package/build/_app/immutable/chunks/CPCsWwEy.js.br +0 -0
  57. package/build/_app/immutable/chunks/{DrOC9WNt.js.gz → CPCsWwEy.js.gz} +0 -0
  58. package/build/_app/immutable/chunks/{Ds1yKsjr.js → CUZn05nQ.js} +2 -2
  59. package/build/_app/immutable/chunks/CUZn05nQ.js.br +0 -0
  60. package/build/_app/immutable/chunks/{Ds1yKsjr.js.gz → CUZn05nQ.js.gz} +0 -0
  61. package/build/_app/immutable/chunks/{ClP8OL3G.js → CZMMlaMl.js} +1 -1
  62. package/build/_app/immutable/chunks/CZMMlaMl.js.br +0 -0
  63. package/build/_app/immutable/chunks/CZMMlaMl.js.gz +0 -0
  64. package/build/_app/immutable/chunks/{DLL_0B-9.js → C_yvzB4Z.js} +1 -1
  65. package/build/_app/immutable/chunks/C_yvzB4Z.js.br +0 -0
  66. package/build/_app/immutable/chunks/{DLL_0B-9.js.gz → C_yvzB4Z.js.gz} +0 -0
  67. package/build/_app/immutable/chunks/{DC_-4bAG.js → CdnbUlBq.js} +1 -1
  68. package/build/_app/immutable/chunks/CdnbUlBq.js.br +0 -0
  69. package/build/_app/immutable/chunks/CdnbUlBq.js.gz +0 -0
  70. package/build/_app/immutable/chunks/Cf3l6QEG.js +2 -0
  71. package/build/_app/immutable/chunks/Cf3l6QEG.js.br +0 -0
  72. package/build/_app/immutable/chunks/Cf3l6QEG.js.gz +0 -0
  73. package/build/_app/immutable/chunks/CfzHeBbL.js +1 -0
  74. package/build/_app/immutable/chunks/CfzHeBbL.js.br +1 -0
  75. package/build/_app/immutable/chunks/CfzHeBbL.js.gz +0 -0
  76. package/build/_app/immutable/chunks/{BzyUIe1_.js → D1-opoqB.js} +1 -1
  77. package/build/_app/immutable/chunks/D1-opoqB.js.br +0 -0
  78. package/build/_app/immutable/chunks/D1-opoqB.js.gz +0 -0
  79. package/build/_app/immutable/chunks/D3fLfD-Y.js +1 -0
  80. package/build/_app/immutable/chunks/D3fLfD-Y.js.br +0 -0
  81. package/build/_app/immutable/chunks/D3fLfD-Y.js.gz +0 -0
  82. package/build/_app/immutable/chunks/DDZ8GqHh.js +1 -0
  83. package/build/_app/immutable/chunks/DDZ8GqHh.js.br +0 -0
  84. package/build/_app/immutable/chunks/DDZ8GqHh.js.gz +0 -0
  85. package/build/_app/immutable/chunks/{CH4VrfW2.js → DD_fL9ig.js} +1 -1
  86. package/build/_app/immutable/chunks/DD_fL9ig.js.br +0 -0
  87. package/build/_app/immutable/chunks/DD_fL9ig.js.gz +0 -0
  88. package/build/_app/immutable/chunks/{ByU1nS5x.js → DVZC5aEW.js} +1 -1
  89. package/build/_app/immutable/chunks/DVZC5aEW.js.br +0 -0
  90. package/build/_app/immutable/chunks/DVZC5aEW.js.gz +0 -0
  91. package/build/_app/immutable/chunks/D_MTg6YY.js +1 -0
  92. package/build/_app/immutable/chunks/D_MTg6YY.js.br +0 -0
  93. package/build/_app/immutable/chunks/D_MTg6YY.js.gz +0 -0
  94. package/build/_app/immutable/chunks/{C78K0g2i.js → DbZCwjKq.js} +1 -1
  95. package/build/_app/immutable/chunks/DbZCwjKq.js.br +0 -0
  96. package/build/_app/immutable/chunks/DbZCwjKq.js.gz +0 -0
  97. package/build/_app/immutable/chunks/Dc2hpeC4.js +1 -0
  98. package/build/_app/immutable/chunks/Dc2hpeC4.js.br +2 -0
  99. package/build/_app/immutable/chunks/Dc2hpeC4.js.gz +0 -0
  100. package/build/_app/immutable/chunks/{NZcW2kfJ.js → DjxKCxwY.js} +1 -1
  101. package/build/_app/immutable/chunks/DjxKCxwY.js.br +0 -0
  102. package/build/_app/immutable/chunks/DjxKCxwY.js.gz +0 -0
  103. package/build/_app/immutable/chunks/{DeiSJRh0.js → DkJi5BM4.js} +1 -1
  104. package/build/_app/immutable/chunks/DkJi5BM4.js.br +0 -0
  105. package/build/_app/immutable/chunks/DkJi5BM4.js.gz +0 -0
  106. package/build/_app/immutable/chunks/Dne1wF_T.js +1 -0
  107. package/build/_app/immutable/chunks/Dne1wF_T.js.br +0 -0
  108. package/build/_app/immutable/chunks/Dne1wF_T.js.gz +0 -0
  109. package/build/_app/immutable/chunks/{BlwlkbCs.js → Dt1k81ic.js} +1 -1
  110. package/build/_app/immutable/chunks/Dt1k81ic.js.br +0 -0
  111. package/build/_app/immutable/chunks/Dt1k81ic.js.gz +0 -0
  112. package/build/_app/immutable/chunks/{CKf4QksN.js → DugeGFnl.js} +1 -1
  113. package/build/_app/immutable/chunks/DugeGFnl.js.br +0 -0
  114. package/build/_app/immutable/chunks/DugeGFnl.js.gz +0 -0
  115. package/build/_app/immutable/chunks/{D5UNd3Zp.js → MIEISUXS.js} +1 -1
  116. package/build/_app/immutable/chunks/MIEISUXS.js.br +0 -0
  117. package/build/_app/immutable/chunks/MIEISUXS.js.gz +0 -0
  118. package/build/_app/immutable/chunks/{lyi4TUVm.js → Vn-6xHGu.js} +1 -1
  119. package/build/_app/immutable/chunks/Vn-6xHGu.js.br +0 -0
  120. package/build/_app/immutable/chunks/Vn-6xHGu.js.gz +0 -0
  121. package/build/_app/immutable/chunks/{jk4Hz_9M.js → krcqaNpB.js} +1 -1
  122. package/build/_app/immutable/chunks/krcqaNpB.js.br +0 -0
  123. package/build/_app/immutable/chunks/krcqaNpB.js.gz +0 -0
  124. package/build/_app/immutable/chunks/oarl--hZ.js +1 -0
  125. package/build/_app/immutable/chunks/oarl--hZ.js.br +0 -0
  126. package/build/_app/immutable/chunks/oarl--hZ.js.gz +0 -0
  127. package/build/_app/immutable/chunks/{CfbKmr1m.js → qrpS1hNb.js} +1 -1
  128. package/build/_app/immutable/chunks/qrpS1hNb.js.br +0 -0
  129. package/build/_app/immutable/chunks/qrpS1hNb.js.gz +0 -0
  130. package/build/_app/immutable/entry/app.D_IBy7uS.js +2 -0
  131. package/build/_app/immutable/entry/app.D_IBy7uS.js.br +0 -0
  132. package/build/_app/immutable/entry/app.D_IBy7uS.js.gz +0 -0
  133. package/build/_app/immutable/entry/start.DbNkBLf5.js +1 -0
  134. package/build/_app/immutable/entry/start.DbNkBLf5.js.br +0 -0
  135. package/build/_app/immutable/entry/start.DbNkBLf5.js.gz +0 -0
  136. package/build/_app/immutable/nodes/0.CS5BBLx9.js +3 -0
  137. package/build/_app/immutable/nodes/0.CS5BBLx9.js.br +0 -0
  138. package/build/_app/immutable/nodes/0.CS5BBLx9.js.gz +0 -0
  139. package/build/_app/immutable/nodes/1.Bx_DOFs1.js +1 -0
  140. package/build/_app/immutable/nodes/1.Bx_DOFs1.js.br +1 -0
  141. package/build/_app/immutable/nodes/1.Bx_DOFs1.js.gz +0 -0
  142. package/build/_app/immutable/nodes/14.DSu8i_qz.js +1 -0
  143. package/build/_app/immutable/nodes/14.DSu8i_qz.js.br +0 -0
  144. package/build/_app/immutable/nodes/14.DSu8i_qz.js.gz +0 -0
  145. package/build/_app/immutable/nodes/16.Cev9Grgc.js +3 -0
  146. package/build/_app/immutable/nodes/16.Cev9Grgc.js.br +0 -0
  147. package/build/_app/immutable/nodes/16.Cev9Grgc.js.gz +0 -0
  148. package/build/_app/immutable/nodes/17.C869oOf4.js +10 -0
  149. package/build/_app/immutable/nodes/17.C869oOf4.js.br +0 -0
  150. package/build/_app/immutable/nodes/17.C869oOf4.js.gz +0 -0
  151. package/build/_app/immutable/nodes/2.DdU1kSNu.js +35 -0
  152. package/build/_app/immutable/nodes/2.DdU1kSNu.js.br +0 -0
  153. package/build/_app/immutable/nodes/2.DdU1kSNu.js.gz +0 -0
  154. package/build/_app/immutable/nodes/3.C5QPqWTE.js +1 -0
  155. package/build/_app/immutable/nodes/3.C5QPqWTE.js.br +0 -0
  156. package/build/_app/immutable/nodes/3.C5QPqWTE.js.gz +0 -0
  157. package/build/_app/immutable/nodes/4.CNS3NZ4Z.js +1 -0
  158. package/build/_app/immutable/nodes/4.CNS3NZ4Z.js.br +0 -0
  159. package/build/_app/immutable/nodes/4.CNS3NZ4Z.js.gz +0 -0
  160. package/build/_app/immutable/nodes/5.B1H9pyMk.js +1 -0
  161. package/build/_app/immutable/nodes/5.B1H9pyMk.js.br +0 -0
  162. package/build/_app/immutable/nodes/5.B1H9pyMk.js.gz +0 -0
  163. package/build/_app/immutable/nodes/6.h6Y1Z_zh.js +1 -0
  164. package/build/_app/immutable/nodes/6.h6Y1Z_zh.js.br +0 -0
  165. package/build/_app/immutable/nodes/6.h6Y1Z_zh.js.gz +0 -0
  166. package/build/_app/immutable/nodes/8.BCatMgwB.js +2 -0
  167. package/build/_app/immutable/nodes/8.BCatMgwB.js.br +0 -0
  168. package/build/_app/immutable/nodes/8.BCatMgwB.js.gz +0 -0
  169. package/build/_app/immutable/nodes/9.BUnel48-.js +24 -0
  170. package/build/_app/immutable/nodes/9.BUnel48-.js.br +0 -0
  171. package/build/_app/immutable/nodes/9.BUnel48-.js.gz +0 -0
  172. package/build/_app/immutable/workers/{css.worker-DflDYzxC.js → css.worker-D61Wlo1y.js} +1 -1
  173. package/build/_app/immutable/workers/css.worker-D61Wlo1y.js.br +0 -0
  174. package/build/_app/immutable/workers/{css.worker-DflDYzxC.js.gz → css.worker-D61Wlo1y.js.gz} +0 -0
  175. package/build/_app/immutable/workers/{editor.worker-DbG82rLA.js → editor.worker-BaAK1IVA.js} +1 -1
  176. package/build/_app/immutable/workers/editor.worker-BaAK1IVA.js.br +0 -0
  177. package/build/_app/immutable/workers/{editor.worker-DbG82rLA.js.gz → editor.worker-BaAK1IVA.js.gz} +0 -0
  178. package/build/_app/immutable/workers/{html.worker-Bn6S4v1s.js → html.worker-i4ABlmR0.js} +1 -1
  179. package/build/_app/immutable/workers/html.worker-i4ABlmR0.js.br +0 -0
  180. package/build/_app/immutable/workers/{html.worker-Bn6S4v1s.js.gz → html.worker-i4ABlmR0.js.gz} +0 -0
  181. package/build/_app/immutable/workers/{json.worker-CfS7sFxM.js → json.worker-C-kBQgxp.js} +1 -1
  182. package/build/_app/immutable/workers/json.worker-C-kBQgxp.js.br +0 -0
  183. package/build/_app/immutable/workers/{json.worker-CfS7sFxM.js.gz → json.worker-C-kBQgxp.js.gz} +0 -0
  184. package/build/_app/immutable/workers/{ts.worker-Bqwj6xoy.js → ts.worker-KJ4wGYue.js} +2 -2
  185. package/build/_app/immutable/workers/ts.worker-KJ4wGYue.js.br +0 -0
  186. package/build/_app/immutable/workers/{ts.worker-Bqwj6xoy.js.gz → ts.worker-KJ4wGYue.js.gz} +0 -0
  187. package/build/_app/version.json +1 -1
  188. package/build/_app/version.json.br +0 -0
  189. package/build/_app/version.json.gz +0 -0
  190. package/build/index.html +13 -13
  191. package/build/index.html.br +0 -0
  192. package/build/index.html.gz +0 -0
  193. package/dist/index.js +616 -106
  194. package/dist/index.js.map +4 -4
  195. package/dist/types/backend/roleplay/prompt-edit-proposals.d.ts +13 -1
  196. package/dist/types/backend/roleplay/prompt-file.d.ts +8 -0
  197. package/dist/types/backend/roleplay/router.d.ts +29 -0
  198. package/dist/types/backend/roleplay/suggest-file-edit.d.ts +13 -0
  199. package/dist/types/backend/roleplay/suggest-test-fix.d.ts +29 -0
  200. package/dist/types/backend/server.d.ts +116 -0
  201. package/dist/types/backend/telescope/router.d.ts +23 -0
  202. package/dist/types/backend/tests/academy.d.ts +9 -1
  203. package/dist/types/backend/tests/data.d.ts +13 -1
  204. package/dist/types/backend/tests/router.d.ts +64 -0
  205. package/dist/types/backend/tests/suggest-test-history-edit.d.ts +21 -0
  206. package/dist/types/backend/tests/test-edit-source.d.ts +4 -0
  207. package/dist/types/backend/tests/test-history-edit-proposals.d.ts +24 -0
  208. package/dist/types/lib/api-telescope/types.d.ts +38 -0
  209. package/dist/types/lib/edit/test-ai-edit.d.ts +12 -0
  210. package/dist/types/lib/tests/assertion-types.d.ts +6 -0
  211. package/package.json +1 -1
  212. package/build/_app/immutable/assets/0.CyF-TaEi.css +0 -1
  213. package/build/_app/immutable/assets/0.CyF-TaEi.css.br +0 -0
  214. package/build/_app/immutable/assets/0.CyF-TaEi.css.gz +0 -0
  215. package/build/_app/immutable/assets/2.Dc5_ru9X.css.br +0 -0
  216. package/build/_app/immutable/assets/2.Dc5_ru9X.css.gz +0 -0
  217. package/build/_app/immutable/chunks/0Yl3erOE.js +0 -2
  218. package/build/_app/immutable/chunks/0Yl3erOE.js.br +0 -0
  219. package/build/_app/immutable/chunks/0Yl3erOE.js.gz +0 -0
  220. package/build/_app/immutable/chunks/797NXciN.js +0 -1
  221. package/build/_app/immutable/chunks/797NXciN.js.br +0 -0
  222. package/build/_app/immutable/chunks/797NXciN.js.gz +0 -0
  223. package/build/_app/immutable/chunks/9JriNUvn.js +0 -1
  224. package/build/_app/immutable/chunks/9JriNUvn.js.br +0 -0
  225. package/build/_app/immutable/chunks/9JriNUvn.js.gz +0 -0
  226. package/build/_app/immutable/chunks/BEa3nvFX.js.br +0 -0
  227. package/build/_app/immutable/chunks/BEa3nvFX.js.gz +0 -0
  228. package/build/_app/immutable/chunks/BOL6qRLe.js +0 -3
  229. package/build/_app/immutable/chunks/BOL6qRLe.js.br +0 -0
  230. package/build/_app/immutable/chunks/BOL6qRLe.js.gz +0 -0
  231. package/build/_app/immutable/chunks/BYkIDsVz.js +0 -1
  232. package/build/_app/immutable/chunks/BYkIDsVz.js.br +0 -0
  233. package/build/_app/immutable/chunks/BYkIDsVz.js.gz +0 -0
  234. package/build/_app/immutable/chunks/BlwlkbCs.js.br +0 -0
  235. package/build/_app/immutable/chunks/BlwlkbCs.js.gz +0 -0
  236. package/build/_app/immutable/chunks/ByU1nS5x.js.br +0 -0
  237. package/build/_app/immutable/chunks/ByU1nS5x.js.gz +0 -0
  238. package/build/_app/immutable/chunks/BzyUIe1_.js.br +0 -0
  239. package/build/_app/immutable/chunks/BzyUIe1_.js.gz +0 -0
  240. package/build/_app/immutable/chunks/C-Qcqb3K.js.br +0 -0
  241. package/build/_app/immutable/chunks/C-Qcqb3K.js.gz +0 -0
  242. package/build/_app/immutable/chunks/C-qso1Pb.js +0 -2
  243. package/build/_app/immutable/chunks/C-qso1Pb.js.br +0 -0
  244. package/build/_app/immutable/chunks/C-qso1Pb.js.gz +0 -0
  245. package/build/_app/immutable/chunks/C78K0g2i.js.br +0 -0
  246. package/build/_app/immutable/chunks/C78K0g2i.js.gz +0 -0
  247. package/build/_app/immutable/chunks/C970FsJW.js +0 -1
  248. package/build/_app/immutable/chunks/C970FsJW.js.br +0 -0
  249. package/build/_app/immutable/chunks/C970FsJW.js.gz +0 -0
  250. package/build/_app/immutable/chunks/CBzPmXSf.js +0 -1
  251. package/build/_app/immutable/chunks/CBzPmXSf.js.br +0 -0
  252. package/build/_app/immutable/chunks/CBzPmXSf.js.gz +0 -0
  253. package/build/_app/immutable/chunks/CH4VrfW2.js.br +0 -0
  254. package/build/_app/immutable/chunks/CH4VrfW2.js.gz +0 -0
  255. package/build/_app/immutable/chunks/CKf4QksN.js.br +0 -0
  256. package/build/_app/immutable/chunks/CKf4QksN.js.gz +0 -0
  257. package/build/_app/immutable/chunks/CPnjcwfB.js +0 -1
  258. package/build/_app/immutable/chunks/CPnjcwfB.js.br +0 -0
  259. package/build/_app/immutable/chunks/CPnjcwfB.js.gz +0 -0
  260. package/build/_app/immutable/chunks/CWB6mNDX.js.br +0 -0
  261. package/build/_app/immutable/chunks/CWB6mNDX.js.gz +0 -0
  262. package/build/_app/immutable/chunks/CcZs-N7g.js +0 -6
  263. package/build/_app/immutable/chunks/CcZs-N7g.js.br +0 -0
  264. package/build/_app/immutable/chunks/CcZs-N7g.js.gz +0 -0
  265. package/build/_app/immutable/chunks/CfbKmr1m.js.br +0 -0
  266. package/build/_app/immutable/chunks/CfbKmr1m.js.gz +0 -0
  267. package/build/_app/immutable/chunks/ClP8OL3G.js.br +0 -0
  268. package/build/_app/immutable/chunks/ClP8OL3G.js.gz +0 -0
  269. package/build/_app/immutable/chunks/D5UNd3Zp.js.br +0 -0
  270. package/build/_app/immutable/chunks/D5UNd3Zp.js.gz +0 -0
  271. package/build/_app/immutable/chunks/D6ibSY3A.js +0 -1
  272. package/build/_app/immutable/chunks/D6ibSY3A.js.br +0 -1
  273. package/build/_app/immutable/chunks/D6ibSY3A.js.gz +0 -0
  274. package/build/_app/immutable/chunks/DC_-4bAG.js.br +0 -1
  275. package/build/_app/immutable/chunks/DC_-4bAG.js.gz +0 -0
  276. package/build/_app/immutable/chunks/DHvIizf-.js.br +0 -0
  277. package/build/_app/immutable/chunks/DHvIizf-.js.gz +0 -0
  278. package/build/_app/immutable/chunks/DLL_0B-9.js.br +0 -0
  279. package/build/_app/immutable/chunks/DSaIAZ57.js.br +0 -0
  280. package/build/_app/immutable/chunks/DSaIAZ57.js.gz +0 -0
  281. package/build/_app/immutable/chunks/DeiSJRh0.js.br +0 -0
  282. package/build/_app/immutable/chunks/DeiSJRh0.js.gz +0 -0
  283. package/build/_app/immutable/chunks/DjqcYvLr.js.br +0 -0
  284. package/build/_app/immutable/chunks/DjqcYvLr.js.gz +0 -0
  285. package/build/_app/immutable/chunks/DrOC9WNt.js.br +0 -0
  286. package/build/_app/immutable/chunks/Ds1yKsjr.js.br +0 -0
  287. package/build/_app/immutable/chunks/NZcW2kfJ.js.br +0 -0
  288. package/build/_app/immutable/chunks/NZcW2kfJ.js.gz +0 -0
  289. package/build/_app/immutable/chunks/OPRu0_Dd.js +0 -1
  290. package/build/_app/immutable/chunks/OPRu0_Dd.js.br +0 -2
  291. package/build/_app/immutable/chunks/OPRu0_Dd.js.gz +0 -0
  292. package/build/_app/immutable/chunks/OYhYuonT.js.br +0 -0
  293. package/build/_app/immutable/chunks/OYhYuonT.js.gz +0 -0
  294. package/build/_app/immutable/chunks/VR9lxEL5.js +0 -1
  295. package/build/_app/immutable/chunks/VR9lxEL5.js.br +0 -0
  296. package/build/_app/immutable/chunks/VR9lxEL5.js.gz +0 -0
  297. package/build/_app/immutable/chunks/_lbjRyAo.js +0 -35
  298. package/build/_app/immutable/chunks/_lbjRyAo.js.br +0 -0
  299. package/build/_app/immutable/chunks/_lbjRyAo.js.gz +0 -0
  300. package/build/_app/immutable/chunks/arxGXJ5w.js +0 -1
  301. package/build/_app/immutable/chunks/arxGXJ5w.js.br +0 -2
  302. package/build/_app/immutable/chunks/arxGXJ5w.js.gz +0 -0
  303. package/build/_app/immutable/chunks/cVn7fglh.js +0 -1
  304. package/build/_app/immutable/chunks/cVn7fglh.js.br +0 -1
  305. package/build/_app/immutable/chunks/cVn7fglh.js.gz +0 -0
  306. package/build/_app/immutable/chunks/jk4Hz_9M.js.br +0 -0
  307. package/build/_app/immutable/chunks/jk4Hz_9M.js.gz +0 -0
  308. package/build/_app/immutable/chunks/lyi4TUVm.js.br +0 -0
  309. package/build/_app/immutable/chunks/lyi4TUVm.js.gz +0 -0
  310. package/build/_app/immutable/entry/app.D01tWdhc.js +0 -2
  311. package/build/_app/immutable/entry/app.D01tWdhc.js.br +0 -0
  312. package/build/_app/immutable/entry/app.D01tWdhc.js.gz +0 -0
  313. package/build/_app/immutable/entry/start.Dkgn2MUA.js +0 -1
  314. package/build/_app/immutable/entry/start.Dkgn2MUA.js.br +0 -0
  315. package/build/_app/immutable/entry/start.Dkgn2MUA.js.gz +0 -0
  316. package/build/_app/immutable/nodes/0.t2rvsaQV.js +0 -3
  317. package/build/_app/immutable/nodes/0.t2rvsaQV.js.br +0 -0
  318. package/build/_app/immutable/nodes/0.t2rvsaQV.js.gz +0 -0
  319. package/build/_app/immutable/nodes/1.B8XtGxov.js +0 -1
  320. package/build/_app/immutable/nodes/1.B8XtGxov.js.br +0 -2
  321. package/build/_app/immutable/nodes/1.B8XtGxov.js.gz +0 -0
  322. package/build/_app/immutable/nodes/14.uj6UKEKM.js +0 -1
  323. package/build/_app/immutable/nodes/14.uj6UKEKM.js.br +0 -0
  324. package/build/_app/immutable/nodes/14.uj6UKEKM.js.gz +0 -0
  325. package/build/_app/immutable/nodes/16.C4g9w36Y.js +0 -3
  326. package/build/_app/immutable/nodes/16.C4g9w36Y.js.br +0 -0
  327. package/build/_app/immutable/nodes/16.C4g9w36Y.js.gz +0 -0
  328. package/build/_app/immutable/nodes/17.DQrHVfP-.js +0 -10
  329. package/build/_app/immutable/nodes/17.DQrHVfP-.js.br +0 -0
  330. package/build/_app/immutable/nodes/17.DQrHVfP-.js.gz +0 -0
  331. package/build/_app/immutable/nodes/2.DFs_rmXb.js +0 -35
  332. package/build/_app/immutable/nodes/2.DFs_rmXb.js.br +0 -0
  333. package/build/_app/immutable/nodes/2.DFs_rmXb.js.gz +0 -0
  334. package/build/_app/immutable/nodes/3.CmzGRE5R.js +0 -1
  335. package/build/_app/immutable/nodes/3.CmzGRE5R.js.br +0 -0
  336. package/build/_app/immutable/nodes/3.CmzGRE5R.js.gz +0 -0
  337. package/build/_app/immutable/nodes/4.D6TiMacd.js +0 -1
  338. package/build/_app/immutable/nodes/4.D6TiMacd.js.br +0 -0
  339. package/build/_app/immutable/nodes/4.D6TiMacd.js.gz +0 -0
  340. package/build/_app/immutable/nodes/5.C3QbUkKf.js +0 -1
  341. package/build/_app/immutable/nodes/5.C3QbUkKf.js.br +0 -0
  342. package/build/_app/immutable/nodes/5.C3QbUkKf.js.gz +0 -0
  343. package/build/_app/immutable/nodes/6.UWx6wdAE.js +0 -1
  344. package/build/_app/immutable/nodes/6.UWx6wdAE.js.br +0 -0
  345. package/build/_app/immutable/nodes/6.UWx6wdAE.js.gz +0 -0
  346. package/build/_app/immutable/nodes/8.bZ206KXo.js +0 -2
  347. package/build/_app/immutable/nodes/8.bZ206KXo.js.br +0 -0
  348. package/build/_app/immutable/nodes/8.bZ206KXo.js.gz +0 -0
  349. package/build/_app/immutable/nodes/9.CCSxSizl.js +0 -24
  350. package/build/_app/immutable/nodes/9.CCSxSizl.js.br +0 -0
  351. package/build/_app/immutable/nodes/9.CCSxSizl.js.gz +0 -0
  352. package/build/_app/immutable/workers/css.worker-DflDYzxC.js.br +0 -0
  353. package/build/_app/immutable/workers/editor.worker-DbG82rLA.js.br +0 -0
  354. package/build/_app/immutable/workers/html.worker-Bn6S4v1s.js.br +0 -0
  355. package/build/_app/immutable/workers/json.worker-CfS7sFxM.js.br +0 -0
  356. package/build/_app/immutable/workers/ts.worker-Bqwj6xoy.js.br +0 -0
  357. /package/build/_app/immutable/assets/{ReadOnlyMonacoDiff.Ba-kUPX7.css → Modal.Ba-kUPX7.css} +0 -0
  358. /package/build/_app/immutable/assets/{ReadOnlyMonacoDiff.Ba-kUPX7.css.br → Modal.Ba-kUPX7.css.br} +0 -0
  359. /package/build/_app/immutable/assets/{ReadOnlyMonacoDiff.Ba-kUPX7.css.gz → Modal.Ba-kUPX7.css.gz} +0 -0
@@ -6,6 +6,18 @@ export type PromptEditProposal = {
6
6
  suggestedPrompt: string;
7
7
  createdAt: number;
8
8
  };
9
- export declare function createPromptEditProposal(proposal: Omit<PromptEditProposal, 'id' | 'createdAt'>): PromptEditProposal;
9
+ export interface PromptEditTestSourceGuard {
10
+ suiteKey: string;
11
+ testId: string;
12
+ allowedFingerprints: string[];
13
+ }
14
+ type StoredPromptEditProposal = PromptEditProposal & {
15
+ testSourceGuard?: PromptEditTestSourceGuard;
16
+ };
17
+ export declare function createPromptEditProposal(proposal: Omit<PromptEditProposal, 'id' | 'createdAt'> & {
18
+ testSourceGuard?: PromptEditTestSourceGuard;
19
+ }): PromptEditProposal;
10
20
  export declare function getPromptEditProposal(id: string): PromptEditProposal | null;
21
+ export declare function getPromptEditProposalForAcceptance(id: string): StoredPromptEditProposal | null;
11
22
  export declare function deletePromptEditProposal(id: string): boolean;
23
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { BosunContext } from '../lib/bosun-context';
2
+ export interface LockedPromptFile {
3
+ path: string;
4
+ read: () => Promise<string>;
5
+ write: (prompt: string) => Promise<void>;
6
+ }
7
+ export declare function readEditablePrompt(ctx: BosunContext, agentId: string, stepName: string): Promise<string>;
8
+ export declare function withPromptFileLock<T>(ctx: BosunContext, agentId: string, stepName: string, operation: (file: LockedPromptFile) => Promise<T>): Promise<T>;
@@ -88,6 +88,35 @@ export declare function createRolePlayRouter(t: TRPCRootObject<TrpcContext, any,
88
88
  };
89
89
  meta: any;
90
90
  }>;
91
+ suggestTestFix: import("@trpc/server").TRPCMutationProcedure<{
92
+ input: {
93
+ agentId: string;
94
+ testId: string;
95
+ step: string;
96
+ request: string;
97
+ prompt: string;
98
+ basePrompt: string;
99
+ currentIncorrectOutcome: string;
100
+ progressId: string;
101
+ };
102
+ output: {
103
+ history: {
104
+ status: "unchanged";
105
+ proposal?: undefined;
106
+ } | {
107
+ status: "changed";
108
+ proposal: import("../tests/test-history-edit-proposals").TestHistoryEditProposal;
109
+ };
110
+ prompt: {
111
+ status: "unchanged";
112
+ proposal?: undefined;
113
+ } | {
114
+ status: "changed";
115
+ proposal: import("./prompt-edit-proposals").PromptEditProposal;
116
+ };
117
+ };
118
+ meta: any;
119
+ }>;
91
120
  promptEditProgress: import("@trpc/server").TRPCQueryProcedure<{
92
121
  input: {
93
122
  id: string;
@@ -0,0 +1,13 @@
1
+ import type { BosunContext } from '../lib/bosun-context';
2
+ import type { PromptEditProgressPhase } from './prompt-edit-progress';
3
+ export declare function suggestFileEdit(ctx: BosunContext, input: {
4
+ request: string;
5
+ originalContent: string;
6
+ virtualPath: string;
7
+ instructions: string;
8
+ onProgress?: (progress: {
9
+ phase: PromptEditProgressPhase;
10
+ activity: number;
11
+ summary: string;
12
+ }) => void;
13
+ }): Promise<string>;
@@ -0,0 +1,29 @@
1
+ import type { BosunContext } from '../lib/bosun-context';
2
+ import { suggestTestHistoryEdit } from '../tests/suggest-test-history-edit';
3
+ import type { PromptEditProgressPhase } from './prompt-edit-progress';
4
+ import { suggestPromptEdit } from './suggest-prompt-edit';
5
+ type Progress = {
6
+ phase: PromptEditProgressPhase;
7
+ activity: number;
8
+ summary: string;
9
+ };
10
+ interface SuggestTestFixInput {
11
+ request: string;
12
+ originalPrompt: string;
13
+ context: string;
14
+ conversation: string;
15
+ expectedOutput: string;
16
+ assertionLabel: string;
17
+ assertionValue: string;
18
+ currentIncorrectOutcome: string;
19
+ onProgress?: (progress: Progress) => void;
20
+ }
21
+ interface SuggestTestFixDependencies {
22
+ suggestHistory: typeof suggestTestHistoryEdit;
23
+ suggestPrompt: typeof suggestPromptEdit;
24
+ }
25
+ export declare function suggestTestFix(ctx: BosunContext, input: SuggestTestFixInput, dependencies?: SuggestTestFixDependencies): Promise<{
26
+ suggestedConversation: string;
27
+ suggestedPrompt: string;
28
+ }>;
29
+ export {};
@@ -94,6 +94,35 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
94
94
  };
95
95
  meta: any;
96
96
  }>;
97
+ suggestTestFix: import("@trpc/server").TRPCMutationProcedure<{
98
+ input: {
99
+ agentId: string;
100
+ testId: string;
101
+ step: string;
102
+ request: string;
103
+ prompt: string;
104
+ basePrompt: string;
105
+ currentIncorrectOutcome: string;
106
+ progressId: string;
107
+ };
108
+ output: {
109
+ history: {
110
+ status: "unchanged";
111
+ proposal?: undefined;
112
+ } | {
113
+ status: "changed";
114
+ proposal: import("./tests/test-history-edit-proposals").TestHistoryEditProposal;
115
+ };
116
+ prompt: {
117
+ status: "unchanged";
118
+ proposal?: undefined;
119
+ } | {
120
+ status: "changed";
121
+ proposal: import("./roleplay/prompt-edit-proposals").PromptEditProposal;
122
+ };
123
+ };
124
+ meta: any;
125
+ }>;
97
126
  promptEditProgress: import("@trpc/server").TRPCQueryProcedure<{
98
127
  input: {
99
128
  id: string;
@@ -295,6 +324,25 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
295
324
  output: import("./tests/prompt-issues").FindPromptIssuesResult;
296
325
  meta: any;
297
326
  }>;
327
+ suggestHistoryEdit: import("@trpc/server").TRPCMutationProcedure<{
328
+ input: {
329
+ agent: string;
330
+ testId: string;
331
+ step: string;
332
+ request: string;
333
+ prompt: string;
334
+ basePrompt: string;
335
+ progressId: string;
336
+ };
337
+ output: {
338
+ status: "unchanged";
339
+ proposal?: undefined;
340
+ } | {
341
+ status: "changed";
342
+ proposal: import("./tests/test-history-edit-proposals").TestHistoryEditProposal;
343
+ };
344
+ meta: any;
345
+ }>;
298
346
  suite: import("@trpc/server").TRPCQueryProcedure<{
299
347
  input: {
300
348
  agent: string;
@@ -344,6 +392,7 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
344
392
  context?: Record<string, unknown> | undefined;
345
393
  mocks?: Record<string, unknown> | undefined;
346
394
  };
395
+ beforeTestId?: string | undefined;
347
396
  };
348
397
  output: {
349
398
  id: string;
@@ -479,6 +528,44 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
479
528
  } | null;
480
529
  meta: any;
481
530
  }>;
531
+ acceptHistoryEdit: import("@trpc/server").TRPCMutationProcedure<{
532
+ input: {
533
+ id: string;
534
+ };
535
+ output: {
536
+ ok: true;
537
+ test: {
538
+ id: string;
539
+ order: number;
540
+ pinned: "TRUE" | "FALSE";
541
+ scenario: string;
542
+ assertion_type: string;
543
+ assertion_value: string;
544
+ conversation: string;
545
+ expected_output: string;
546
+ timeout: string;
547
+ similarity_threshold: string;
548
+ context: Record<string, unknown>;
549
+ step?: string | undefined;
550
+ author?: string | undefined;
551
+ category?: string | undefined;
552
+ evaluation_mode?: "assertion" | "json-deep-equal" | undefined;
553
+ case_sensitive?: boolean | undefined;
554
+ context_mode?: "replace" | "merge" | undefined;
555
+ mocks?: Record<string, unknown> | undefined;
556
+ };
557
+ };
558
+ meta: any;
559
+ }>;
560
+ rejectHistoryEdit: import("@trpc/server").TRPCMutationProcedure<{
561
+ input: {
562
+ id: string;
563
+ };
564
+ output: {
565
+ ok: boolean;
566
+ };
567
+ meta: any;
568
+ }>;
482
569
  patchTestsBatch: import("@trpc/server").TRPCMutationProcedure<{
483
570
  input: {
484
571
  agent: string;
@@ -550,12 +637,18 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
550
637
  concurrency: number;
551
638
  scope?: "pinned" | "all" | undefined;
552
639
  promptOverrides?: Record<string, string> | undefined;
640
+ testHistoryOverrides?: Record<string, {
641
+ conversation: string;
642
+ }> | undefined;
553
643
  } | {
554
644
  agent: string;
555
645
  testId: string;
556
646
  repeats: number;
557
647
  concurrency: number;
558
648
  promptOverrides?: Record<string, string> | undefined;
649
+ testHistoryOverrides?: Record<string, {
650
+ conversation: string;
651
+ }> | undefined;
559
652
  };
560
653
  output: import("./tests/academy").WrittenRunReport;
561
654
  meta: any;
@@ -589,6 +682,11 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
589
682
  lastConversationId?: string | undefined;
590
683
  phoneNumber?: string | undefined;
591
684
  agentId?: string | undefined;
685
+ analyticsFilters?: {
686
+ key: string;
687
+ type: "string" | "number" | "boolean";
688
+ values: (string | number | boolean)[];
689
+ }[] | undefined;
592
690
  };
593
691
  output: {
594
692
  items: {
@@ -611,6 +709,24 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
611
709
  };
612
710
  meta: any;
613
711
  }>;
712
+ analyticsFields: import("@trpc/server").TRPCQueryProcedure<{
713
+ input: {
714
+ sourceId?: string | undefined;
715
+ agentId?: string | undefined;
716
+ };
717
+ output: {
718
+ items: {
719
+ key: string;
720
+ type: "string" | "number" | "boolean";
721
+ variantCount: number;
722
+ values: {
723
+ value: string | number | boolean;
724
+ count: number;
725
+ }[];
726
+ }[];
727
+ };
728
+ meta: any;
729
+ }>;
614
730
  conversation: import("@trpc/server").TRPCQueryProcedure<{
615
731
  input: {
616
732
  conversationId: string;
@@ -22,6 +22,11 @@ export declare function createTelescopeRouter(t: TRPCRootObject<TrpcContext, any
22
22
  lastConversationId?: string | undefined;
23
23
  phoneNumber?: string | undefined;
24
24
  agentId?: string | undefined;
25
+ analyticsFilters?: {
26
+ key: string;
27
+ type: "string" | "number" | "boolean";
28
+ values: (string | number | boolean)[];
29
+ }[] | undefined;
25
30
  };
26
31
  output: {
27
32
  items: {
@@ -44,6 +49,24 @@ export declare function createTelescopeRouter(t: TRPCRootObject<TrpcContext, any
44
49
  };
45
50
  meta: any;
46
51
  }>;
52
+ analyticsFields: import("@trpc/server").TRPCQueryProcedure<{
53
+ input: {
54
+ sourceId?: string | undefined;
55
+ agentId?: string | undefined;
56
+ };
57
+ output: {
58
+ items: {
59
+ key: string;
60
+ type: "string" | "number" | "boolean";
61
+ variantCount: number;
62
+ values: {
63
+ value: string | number | boolean;
64
+ count: number;
65
+ }[];
66
+ }[];
67
+ };
68
+ meta: any;
69
+ }>;
47
70
  conversation: import("@trpc/server").TRPCQueryProcedure<{
48
71
  input: {
49
72
  conversationId: string;
@@ -43,6 +43,13 @@ export interface WrittenRunReportConfig {
43
43
  concurrency: number;
44
44
  }
45
45
  export type PromptTestsRunConfig = Pick<WrittenRunReportConfig, 'repeats' | 'concurrency'>;
46
+ export type TestHistoryOverrides = Record<string, {
47
+ conversation: string;
48
+ }>;
49
+ export declare function applyTestHistoryOverrides<T extends {
50
+ id?: unknown;
51
+ conversation: string;
52
+ }>(rows: T[], overrides: TestHistoryOverrides): T[];
46
53
  export interface WrittenRunReportRow extends TableRow {
47
54
  test: SuiteTestRow;
48
55
  agent: string;
@@ -82,7 +89,7 @@ export type SuiteSelection = {
82
89
  agentId: string;
83
90
  };
84
91
  export declare function cancelPromptTests(suiteKey: string): boolean;
85
- export declare function runPromptTestsManaged(ctx: BosunContext, suite: SuiteSelection, selection: PromptTestsSelection, requestedConfig: PromptTestsRunConfig, promptOverrides?: Record<string, string>): Promise<WrittenRunReport>;
92
+ export declare function runPromptTestsManaged(ctx: BosunContext, suite: SuiteSelection, selection: PromptTestsSelection, requestedConfig: PromptTestsRunConfig, promptOverrides?: Record<string, string>, testHistoryOverrides?: TestHistoryOverrides): Promise<WrittenRunReport>;
86
93
  export declare class RecombineAgentProvider implements ApiProvider {
87
94
  protected providerId: string;
88
95
  config: Record<string, unknown>;
@@ -98,6 +105,7 @@ export declare class RecombineAgentProvider implements ApiProvider {
98
105
  export declare function runPromptTests(ctx: BosunContext, suite: SuiteSelection, selection: PromptTestsSelection, requestedConfig: PromptTestsRunConfig, opts?: {
99
106
  signal?: AbortSignal;
100
107
  promptOverrides?: Record<string, string>;
108
+ testHistoryOverrides?: TestHistoryOverrides;
101
109
  setProgress?: (progress: MutablePromptTestsProgress) => boolean;
102
110
  }): Promise<WrittenRunReport>;
103
111
  export type WrittenRunResult = Awaited<ReturnType<typeof runPromptTests>>;
@@ -67,11 +67,23 @@ export interface TestRunHistoryDetail {
67
67
  }
68
68
  export declare function loadTests(ctx: BosunContext, agent: string): Promise<TestTable>;
69
69
  export declare function patchTest(ctx: BosunContext, agent: string, id: string, patch: Partial<TestRow>): Promise<TestRow | null>;
70
+ export declare function patchTestConversationIfCurrent(ctx: BosunContext, agent: string, id: string, expectedConversation: string, conversation: string, allowedSourceFingerprints?: string[]): Promise<{
71
+ status: 'changed';
72
+ test: TestRow;
73
+ } | {
74
+ status: 'stale';
75
+ currentConversation: string;
76
+ } | {
77
+ status: 'not-found';
78
+ }>;
70
79
  export declare function patchTestsBatch(ctx: BosunContext, agent: string, updates: Array<{
71
80
  id: string;
72
81
  patch: Partial<TestRow>;
73
82
  }>): Promise<TestRow[]>;
74
- export declare function addTest(ctx: BosunContext, agent: string, seed?: Partial<TestRow>): Promise<TestRow>;
83
+ interface AddTestOptions {
84
+ beforeTestId?: string;
85
+ }
86
+ export declare function addTest(ctx: BosunContext, agent: string, seed?: Partial<TestRow>, options?: AddTestOptions): Promise<TestRow>;
75
87
  export declare function deleteTest(ctx: BosunContext, agent: string, id: string): Promise<boolean>;
76
88
  export declare function reorderTests(ctx: BosunContext, agent: string, order: string[]): Promise<void>;
77
89
  export declare function loadLatestResultsByTest(ctx: BosunContext, agent: string): Promise<Record<string, TestResult>>;
@@ -72,6 +72,25 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
72
72
  output: import("./prompt-issues").FindPromptIssuesResult;
73
73
  meta: any;
74
74
  }>;
75
+ suggestHistoryEdit: import("@trpc/server").TRPCMutationProcedure<{
76
+ input: {
77
+ agent: string;
78
+ testId: string;
79
+ step: string;
80
+ request: string;
81
+ prompt: string;
82
+ basePrompt: string;
83
+ progressId: string;
84
+ };
85
+ output: {
86
+ status: "unchanged";
87
+ proposal?: undefined;
88
+ } | {
89
+ status: "changed";
90
+ proposal: import("./test-history-edit-proposals").TestHistoryEditProposal;
91
+ };
92
+ meta: any;
93
+ }>;
75
94
  suite: import("@trpc/server").TRPCQueryProcedure<{
76
95
  input: {
77
96
  agent: string;
@@ -121,6 +140,7 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
121
140
  context?: Record<string, unknown> | undefined;
122
141
  mocks?: Record<string, unknown> | undefined;
123
142
  };
143
+ beforeTestId?: string | undefined;
124
144
  };
125
145
  output: {
126
146
  id: string;
@@ -256,6 +276,44 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
256
276
  } | null;
257
277
  meta: any;
258
278
  }>;
279
+ acceptHistoryEdit: import("@trpc/server").TRPCMutationProcedure<{
280
+ input: {
281
+ id: string;
282
+ };
283
+ output: {
284
+ ok: true;
285
+ test: {
286
+ id: string;
287
+ order: number;
288
+ pinned: "TRUE" | "FALSE";
289
+ scenario: string;
290
+ assertion_type: string;
291
+ assertion_value: string;
292
+ conversation: string;
293
+ expected_output: string;
294
+ timeout: string;
295
+ similarity_threshold: string;
296
+ context: Record<string, unknown>;
297
+ step?: string | undefined;
298
+ author?: string | undefined;
299
+ category?: string | undefined;
300
+ evaluation_mode?: "assertion" | "json-deep-equal" | undefined;
301
+ case_sensitive?: boolean | undefined;
302
+ context_mode?: "replace" | "merge" | undefined;
303
+ mocks?: Record<string, unknown> | undefined;
304
+ };
305
+ };
306
+ meta: any;
307
+ }>;
308
+ rejectHistoryEdit: import("@trpc/server").TRPCMutationProcedure<{
309
+ input: {
310
+ id: string;
311
+ };
312
+ output: {
313
+ ok: boolean;
314
+ };
315
+ meta: any;
316
+ }>;
259
317
  patchTestsBatch: import("@trpc/server").TRPCMutationProcedure<{
260
318
  input: {
261
319
  agent: string;
@@ -327,12 +385,18 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
327
385
  concurrency: number;
328
386
  scope?: "pinned" | "all" | undefined;
329
387
  promptOverrides?: Record<string, string> | undefined;
388
+ testHistoryOverrides?: Record<string, {
389
+ conversation: string;
390
+ }> | undefined;
330
391
  } | {
331
392
  agent: string;
332
393
  testId: string;
333
394
  repeats: number;
334
395
  concurrency: number;
335
396
  promptOverrides?: Record<string, string> | undefined;
397
+ testHistoryOverrides?: Record<string, {
398
+ conversation: string;
399
+ }> | undefined;
336
400
  };
337
401
  output: import("./academy").WrittenRunReport;
338
402
  meta: any;
@@ -0,0 +1,21 @@
1
+ import type { BosunContext } from '../lib/bosun-context';
2
+ import type { PromptEditProgressPhase } from '../roleplay/prompt-edit-progress';
3
+ export declare function suggestTestHistoryEdit(ctx: BosunContext, input: {
4
+ request: string;
5
+ prompt: string;
6
+ context: string;
7
+ conversation: string;
8
+ expectedOutput: string;
9
+ onProgress?: (progress: {
10
+ phase: PromptEditProgressPhase;
11
+ activity: number;
12
+ summary: string;
13
+ }) => void;
14
+ }): Promise<string>;
15
+ export declare function buildTestHistoryPrompt(input: {
16
+ request: string;
17
+ prompt: string;
18
+ context: string;
19
+ conversation: string;
20
+ expectedOutput: string;
21
+ }): string;
@@ -0,0 +1,4 @@
1
+ import type { TestRow } from './suite';
2
+ export declare function testEditSourceFingerprint(test: TestRow, overrides?: {
3
+ conversation?: string;
4
+ }): string;
@@ -0,0 +1,24 @@
1
+ export interface TestHistoryEditProposal {
2
+ id: string;
3
+ agentId: string;
4
+ testId: string;
5
+ step: string;
6
+ originalConversation: string;
7
+ suggestedConversation: string;
8
+ expectedOutput: string;
9
+ createdAt: number;
10
+ }
11
+ export interface TestHistoryEditSourceGuard {
12
+ suiteKey: string;
13
+ allowedTestFingerprints: string[];
14
+ allowedPromptContents: string[];
15
+ }
16
+ type StoredTestHistoryEditProposal = TestHistoryEditProposal & {
17
+ sourceGuard: TestHistoryEditSourceGuard;
18
+ };
19
+ export declare function createTestHistoryEditProposal(proposal: Omit<TestHistoryEditProposal, 'id' | 'createdAt'> & {
20
+ sourceGuard: TestHistoryEditSourceGuard;
21
+ }): TestHistoryEditProposal;
22
+ export declare function getTestHistoryEditProposalForAcceptance(id: string): StoredTestHistoryEditProposal | null;
23
+ export declare function deleteTestHistoryEditProposal(id: string): boolean;
24
+ export {};
@@ -41,9 +41,47 @@ export declare const PaginatedConversationsResponseSchema: z.ZodObject<{
41
41
  lastConversationId: z.ZodOptional<z.ZodString>;
42
42
  }, z.core.$strip>;
43
43
  export type PaginatedConversationsResponse = z.infer<typeof PaginatedConversationsResponseSchema>;
44
+ export declare const AnalyticsScalarSchema: z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>;
45
+ export type AnalyticsScalar = z.infer<typeof AnalyticsScalarSchema>;
46
+ export declare const AnalyticsFieldSchema: z.ZodObject<{
47
+ key: z.ZodString;
48
+ type: z.ZodEnum<{
49
+ string: "string";
50
+ number: "number";
51
+ boolean: "boolean";
52
+ }>;
53
+ variantCount: z.ZodNumber;
54
+ values: z.ZodArray<z.ZodObject<{
55
+ value: z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>;
56
+ count: z.ZodNumber;
57
+ }, z.core.$strip>>;
58
+ }, z.core.$strip>;
59
+ export type AnalyticsField = z.infer<typeof AnalyticsFieldSchema>;
60
+ export declare const AnalyticsFieldsResponseSchema: z.ZodObject<{
61
+ items: z.ZodArray<z.ZodObject<{
62
+ key: z.ZodString;
63
+ type: z.ZodEnum<{
64
+ string: "string";
65
+ number: "number";
66
+ boolean: "boolean";
67
+ }>;
68
+ variantCount: z.ZodNumber;
69
+ values: z.ZodArray<z.ZodObject<{
70
+ value: z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>;
71
+ count: z.ZodNumber;
72
+ }, z.core.$strip>>;
73
+ }, z.core.$strip>>;
74
+ }, z.core.$strip>;
75
+ export type AnalyticsFieldsResponse = z.infer<typeof AnalyticsFieldsResponseSchema>;
76
+ export type AnalyticsConversationFilter = {
77
+ key: string;
78
+ type: AnalyticsField['type'];
79
+ values: AnalyticsScalar[];
80
+ };
44
81
  export type GetConversationsRequest = {
45
82
  phoneNumber?: string;
46
83
  agentId?: string;
84
+ analyticsFilters?: AnalyticsConversationFilter[];
47
85
  limit?: number;
48
86
  lastConversationId?: string;
49
87
  };
@@ -0,0 +1,12 @@
1
+ export interface TestFixRequestInput {
2
+ context: string;
3
+ conversation: string;
4
+ expectedOutput: string;
5
+ assertionLabel: string;
6
+ assertionValue: string;
7
+ currentIncorrectOutcome: string;
8
+ }
9
+ export declare const UPDATE_HISTORY_REQUEST = "Update the conversation history so it reflects behaviour that is valid under the current prompt. Preserve the test's intent and expected outcome, and make only the smallest necessary changes. Possible roles: \"Agent\", \"User\", \"System\"";
10
+ export declare function formatTestFixAssertion(label: string, value: string): string;
11
+ export declare function buildTestFixRequest(input: TestFixRequestInput): string;
12
+ export declare function buildPromptFixRequest(enteredRequest: string, input: TestFixRequestInput, originalConversation: string): string;
@@ -0,0 +1,6 @@
1
+ export type AssertionOption = {
2
+ value: string;
3
+ label: string;
4
+ };
5
+ export declare const assertionTypes: AssertionOption[];
6
+ export declare function assertionLabel(value: string): string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@recombine-ai/bosun",
3
3
  "author": "recombine.ai",
4
- "version": "0.16.2-cloud-1",
4
+ "version": "0.16.2-cloud-2",
5
5
  "license": "EULA",
6
6
  "type": "module",
7
7
  "exports": {