@recombine-ai/bosun 0.16.0 → 0.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/build/client/_app/immutable/assets/0.Rrc0O--C.css +1 -0
  2. package/build/client/_app/immutable/assets/0.Rrc0O--C.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.Rrc0O--C.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/2.DtxQDOXx.css +1 -0
  5. package/build/client/_app/immutable/assets/2.DtxQDOXx.css.br +0 -0
  6. package/build/client/_app/immutable/assets/2.DtxQDOXx.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/ReadOnlyMonacoDiff.iiWNRlR-.css +1 -0
  8. package/build/client/_app/immutable/assets/ReadOnlyMonacoDiff.iiWNRlR-.css.br +0 -0
  9. package/build/client/_app/immutable/assets/ReadOnlyMonacoDiff.iiWNRlR-.css.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{Cyai3SOj.js → B1HdnQRQ.js} +1 -1
  11. package/build/client/_app/immutable/chunks/B1HdnQRQ.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/B1HdnQRQ.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{uLGP0py1.js → B5zf3x62.js} +1 -1
  14. package/build/client/_app/immutable/chunks/B5zf3x62.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/B5zf3x62.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{Buo-57fF.js → BHHfrjbV.js} +1 -1
  17. package/build/client/_app/immutable/chunks/BHHfrjbV.js.br +2 -0
  18. package/build/client/_app/immutable/chunks/BHHfrjbV.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/BbGYcfPY.js +3 -0
  20. package/build/client/_app/immutable/chunks/BbGYcfPY.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/BbGYcfPY.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/{CX0Ekq8t.js → Bmd5zhWC.js} +1 -1
  23. package/build/client/_app/immutable/chunks/Bmd5zhWC.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/Bmd5zhWC.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/{Dslf9OwW.js → BnqH7p3U.js} +1 -1
  26. package/build/client/_app/immutable/chunks/BnqH7p3U.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/BnqH7p3U.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/{CJYOmGlC.js → Bog028VR.js} +1 -1
  29. package/build/client/_app/immutable/chunks/Bog028VR.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/Bog028VR.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/{iAhzu4tv.js → Bv1mNXs0.js} +1 -1
  32. package/build/client/_app/immutable/chunks/Bv1mNXs0.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/Bv1mNXs0.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/{BD9x_mnu.js → BvjXTrOz.js} +1 -1
  35. package/build/client/_app/immutable/chunks/BvjXTrOz.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/BvjXTrOz.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/C1R-s4aD.js +1 -0
  38. package/build/client/_app/immutable/chunks/C1R-s4aD.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/C1R-s4aD.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/{DCuEIs0S.js → CC1OcqhR.js} +1 -1
  41. package/build/client/_app/immutable/chunks/CC1OcqhR.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/CC1OcqhR.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/CEHsomMo.js +1 -0
  44. package/build/client/_app/immutable/chunks/CEHsomMo.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/CEHsomMo.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/{CVlsAO8k.js → CJcZ2GVC.js} +1 -1
  47. package/build/client/_app/immutable/chunks/CJcZ2GVC.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/CJcZ2GVC.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/{DJriQKD9.js → CN555stc.js} +1 -1
  50. package/build/client/_app/immutable/chunks/CN555stc.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/CN555stc.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/CQg2Mme0.js +9 -0
  53. package/build/client/_app/immutable/chunks/CQg2Mme0.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/CQg2Mme0.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/{CXESoUel.js → Cp_st-64.js} +1 -1
  56. package/build/client/_app/immutable/chunks/Cp_st-64.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/Cp_st-64.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/{CPXdAKdv.js → D8mA-uZ4.js} +1 -1
  59. package/build/client/_app/immutable/chunks/D8mA-uZ4.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/D8mA-uZ4.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/{Ca197UDq.js → DCXjBDmY.js} +1 -1
  62. package/build/client/_app/immutable/chunks/{Ca197UDq.js.br → DCXjBDmY.js.br} +0 -0
  63. package/build/client/_app/immutable/chunks/DCXjBDmY.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/DSLyVE1P.js +1 -0
  65. package/build/client/_app/immutable/chunks/DSLyVE1P.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/DSLyVE1P.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/{07xNIa59.js → Ddv5LgEc.js} +1 -1
  68. package/build/client/_app/immutable/chunks/Ddv5LgEc.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/Ddv5LgEc.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/{nYD9wsyN.js → DfcDjAv-.js} +1 -1
  71. package/build/client/_app/immutable/chunks/DfcDjAv-.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/DfcDjAv-.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/{D-B5X35l.js → Dg0A8wPA.js} +1 -1
  74. package/build/client/_app/immutable/chunks/Dg0A8wPA.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/Dg0A8wPA.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/{BPNEONy5.js → Dm49pcMm.js} +1 -1
  77. package/build/client/_app/immutable/chunks/Dm49pcMm.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/Dm49pcMm.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/{BI42X8h_.js → DneQQ7D5.js} +1 -1
  80. package/build/client/_app/immutable/chunks/DneQQ7D5.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/DneQQ7D5.js.gz +0 -0
  82. package/build/client/_app/immutable/chunks/{C39ai1md.js → DoD3q5w5.js} +1 -1
  83. package/build/client/_app/immutable/chunks/DoD3q5w5.js.br +0 -0
  84. package/build/client/_app/immutable/chunks/DoD3q5w5.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/{BLu86SbA.js → DtXXy94i.js} +1 -1
  86. package/build/client/_app/immutable/chunks/DtXXy94i.js.br +0 -0
  87. package/build/client/_app/immutable/chunks/DtXXy94i.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/{CAjPRvNs.js → Dy2CFyD6.js} +1 -1
  89. package/build/client/_app/immutable/chunks/Dy2CFyD6.js.br +0 -0
  90. package/build/client/_app/immutable/chunks/Dy2CFyD6.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/DyBwTDJp.js +2 -0
  92. package/build/client/_app/immutable/chunks/DyBwTDJp.js.br +0 -0
  93. package/build/client/_app/immutable/chunks/DyBwTDJp.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/{BsDZe4N6.js → ILTCveYH.js} +1 -1
  95. package/build/client/_app/immutable/chunks/ILTCveYH.js.br +0 -0
  96. package/build/client/_app/immutable/chunks/ILTCveYH.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/{Bj8jfBTi.js → UqjCSZmA.js} +1 -1
  98. package/build/client/_app/immutable/chunks/UqjCSZmA.js.br +0 -0
  99. package/build/client/_app/immutable/chunks/UqjCSZmA.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/_YcrHZ6P.js +1 -0
  101. package/build/client/_app/immutable/chunks/_YcrHZ6P.js.br +2 -0
  102. package/build/client/_app/immutable/chunks/_YcrHZ6P.js.gz +0 -0
  103. package/build/client/_app/immutable/chunks/i6ygh6h8.js +1 -0
  104. package/build/client/_app/immutable/chunks/i6ygh6h8.js.br +2 -0
  105. package/build/client/_app/immutable/chunks/i6ygh6h8.js.gz +0 -0
  106. package/build/client/_app/immutable/chunks/oRi68ch3.js +1 -0
  107. package/build/client/_app/immutable/chunks/oRi68ch3.js.br +0 -0
  108. package/build/client/_app/immutable/chunks/oRi68ch3.js.gz +0 -0
  109. package/build/client/_app/immutable/chunks/{BJTwdUYr.js → pPpIn6tB.js} +1 -1
  110. package/build/client/_app/immutable/chunks/pPpIn6tB.js.br +0 -0
  111. package/build/client/_app/immutable/chunks/pPpIn6tB.js.gz +0 -0
  112. package/build/client/_app/immutable/chunks/{C7he4XPB.js → r0sHOWrM.js} +1 -1
  113. package/build/client/_app/immutable/chunks/r0sHOWrM.js.br +0 -0
  114. package/build/client/_app/immutable/chunks/r0sHOWrM.js.gz +0 -0
  115. package/build/client/_app/immutable/chunks/{CaHl3dME.js → wcTQUnZO.js} +1 -1
  116. package/build/client/_app/immutable/chunks/wcTQUnZO.js.br +0 -0
  117. package/build/client/_app/immutable/chunks/wcTQUnZO.js.gz +0 -0
  118. package/build/client/_app/immutable/entry/{app.Du7JgOF0.js → app.DdO0gkPg.js} +2 -2
  119. package/build/client/_app/immutable/entry/app.DdO0gkPg.js.br +0 -0
  120. package/build/client/_app/immutable/entry/app.DdO0gkPg.js.gz +0 -0
  121. package/build/client/_app/immutable/entry/start.eAjDq0c9.js +1 -0
  122. package/build/client/_app/immutable/entry/start.eAjDq0c9.js.br +2 -0
  123. package/build/client/_app/immutable/entry/start.eAjDq0c9.js.gz +0 -0
  124. package/build/client/_app/immutable/nodes/{0.EJrjlOP2.js → 0.nG3DdvIX.js} +1 -1
  125. package/build/client/_app/immutable/nodes/0.nG3DdvIX.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/0.nG3DdvIX.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/1.Ceu0XS6v.js +1 -0
  128. package/build/client/_app/immutable/nodes/1.Ceu0XS6v.js.br +0 -0
  129. package/build/client/_app/immutable/nodes/1.Ceu0XS6v.js.gz +0 -0
  130. package/build/client/_app/immutable/nodes/10.dm2dgy31.js +13 -0
  131. package/build/client/_app/immutable/nodes/10.dm2dgy31.js.br +0 -0
  132. package/build/client/_app/immutable/nodes/10.dm2dgy31.js.gz +0 -0
  133. package/build/client/_app/immutable/nodes/{15.BFy4oAT6.js → 15.D2I0y3ys.js} +1 -1
  134. package/build/client/_app/immutable/nodes/15.D2I0y3ys.js.br +0 -0
  135. package/build/client/_app/immutable/nodes/15.D2I0y3ys.js.gz +0 -0
  136. package/build/client/_app/immutable/nodes/{17.DQQN2LTu.js → 17.CKxGp0E7.js} +1 -1
  137. package/build/client/_app/immutable/nodes/17.CKxGp0E7.js.br +0 -0
  138. package/build/client/_app/immutable/nodes/17.CKxGp0E7.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/{18.Dx1VeGYs.js → 18.DHJxyQpw.js} +1 -1
  140. package/build/client/_app/immutable/nodes/18.DHJxyQpw.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/18.DHJxyQpw.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/2.DesR2keg.js +35 -0
  143. package/build/client/_app/immutable/nodes/2.DesR2keg.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/2.DesR2keg.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/{3.D2P9M-PP.js → 3.BUKrXGR_.js} +1 -1
  146. package/build/client/_app/immutable/nodes/3.BUKrXGR_.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/3.BUKrXGR_.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/{4.Cx97sxk5.js → 4.C8VxVbVn.js} +1 -1
  149. package/build/client/_app/immutable/nodes/4.C8VxVbVn.js.br +0 -0
  150. package/build/client/_app/immutable/nodes/4.C8VxVbVn.js.gz +0 -0
  151. package/build/client/_app/immutable/nodes/{5.BAliV6Wc.js → 5.BjrnKYaA.js} +1 -1
  152. package/build/client/_app/immutable/nodes/5.BjrnKYaA.js.br +0 -0
  153. package/build/client/_app/immutable/nodes/5.BjrnKYaA.js.gz +0 -0
  154. package/build/client/_app/immutable/nodes/{6.CmUnus-n.js → 6.C_hEzPrU.js} +1 -1
  155. package/build/client/_app/immutable/nodes/6.C_hEzPrU.js.br +0 -0
  156. package/build/client/_app/immutable/nodes/6.C_hEzPrU.js.gz +0 -0
  157. package/build/client/_app/immutable/nodes/{8.DLYtZXzs.js → 8.BTYaOiDC.js} +1 -1
  158. package/build/client/_app/immutable/nodes/8.BTYaOiDC.js.br +0 -0
  159. package/build/client/_app/immutable/nodes/8.BTYaOiDC.js.gz +0 -0
  160. package/build/client/_app/immutable/nodes/9.DVspuDYY.js +2 -0
  161. package/build/client/_app/immutable/nodes/9.DVspuDYY.js.br +0 -0
  162. package/build/client/_app/immutable/nodes/9.DVspuDYY.js.gz +0 -0
  163. package/build/client/_app/version.json +1 -1
  164. package/build/client/_app/version.json.br +0 -0
  165. package/build/client/_app/version.json.gz +0 -0
  166. package/build/server/chunks/0-D_duQDWy.js +9 -0
  167. package/build/server/chunks/0-D_duQDWy.js.map +1 -0
  168. package/build/server/chunks/1-C0HdTvXW.js +9 -0
  169. package/build/server/chunks/{1-kigiZghR.js.map → 1-C0HdTvXW.js.map} +1 -1
  170. package/build/server/chunks/10-DcfhCR4R.js +9 -0
  171. package/build/server/chunks/10-DcfhCR4R.js.map +1 -0
  172. package/build/server/chunks/15-BQcb9C_y.js +9 -0
  173. package/build/server/chunks/{15-BRw8wtLp.js.map → 15-BQcb9C_y.js.map} +1 -1
  174. package/build/server/chunks/17-DuVCTioj.js +9 -0
  175. package/build/server/chunks/17-DuVCTioj.js.map +1 -0
  176. package/build/server/chunks/18-CT0VFW_p.js +9 -0
  177. package/build/server/chunks/18-CT0VFW_p.js.map +1 -0
  178. package/build/server/chunks/2-DgTzKQAP.js +9 -0
  179. package/build/server/chunks/2-DgTzKQAP.js.map +1 -0
  180. package/build/server/chunks/3-eQMSMzXP.js +9 -0
  181. package/build/server/chunks/3-eQMSMzXP.js.map +1 -0
  182. package/build/server/chunks/4-OaAJtDqP.js +9 -0
  183. package/build/server/chunks/4-OaAJtDqP.js.map +1 -0
  184. package/build/server/chunks/5-CBdMutbv.js +9 -0
  185. package/build/server/chunks/{5-Cumig7Am.js.map → 5-CBdMutbv.js.map} +1 -1
  186. package/build/server/chunks/6-FoEi7ggm.js +9 -0
  187. package/build/server/chunks/{6-Ez7v6PpX.js.map → 6-FoEi7ggm.js.map} +1 -1
  188. package/build/server/chunks/8-B44yRkfX.js +9 -0
  189. package/build/server/chunks/8-B44yRkfX.js.map +1 -0
  190. package/build/server/chunks/9-eUjFpHzI.js +9 -0
  191. package/build/server/chunks/9-eUjFpHzI.js.map +1 -0
  192. package/build/server/chunks/{AgentSidebar-C--dGIV5.js → AgentSidebar-BWBnqHnV.js} +4 -4
  193. package/build/server/chunks/{AgentSidebar-C--dGIV5.js.map → AgentSidebar-BWBnqHnV.js.map} +1 -1
  194. package/build/server/chunks/{Button-oIUr2LUP.js → Button-DH7gdU0s.js} +2 -2
  195. package/build/server/chunks/{Button-oIUr2LUP.js.map → Button-DH7gdU0s.js.map} +1 -1
  196. package/build/server/chunks/{ChatStepTrace-CX2Zolmp.js → ChatStepTrace-BivoNYOY.js} +6 -4
  197. package/build/server/chunks/ChatStepTrace-BivoNYOY.js.map +1 -0
  198. package/build/server/chunks/{Dropdown-DfCyYHqi.js → Dropdown-DnARl86Q.js} +2 -2
  199. package/build/server/chunks/{Dropdown-DfCyYHqi.js.map → Dropdown-DnARl86Q.js.map} +1 -1
  200. package/build/server/chunks/{Icon-DadJPtVP.js → Icon-DP1YKCRV.js} +2 -2
  201. package/build/server/chunks/{Icon-DadJPtVP.js.map → Icon-DP1YKCRV.js.map} +1 -1
  202. package/build/server/chunks/{Input-R74u4cO5.js → Input-CUJ9Cg7b.js} +2 -2
  203. package/build/server/chunks/{Input-R74u4cO5.js.map → Input-CUJ9Cg7b.js.map} +1 -1
  204. package/build/server/chunks/{Modal-CAzVFw5x.js → Modal-CGJuNpZ0.js} +21 -9
  205. package/build/server/chunks/{Modal-CAzVFw5x.js.map → Modal-CGJuNpZ0.js.map} +1 -1
  206. package/build/server/chunks/{Panel-D0IY1AzO.js → Panel-zvjxe036.js} +2 -2
  207. package/build/server/chunks/{Panel-D0IY1AzO.js.map → Panel-zvjxe036.js.map} +1 -1
  208. package/build/server/chunks/{Tab-D13L_Up5.js → Tab-CUkyLqbN.js} +4 -4
  209. package/build/server/chunks/{Tab-D13L_Up5.js.map → Tab-CUkyLqbN.js.map} +1 -1
  210. package/build/server/chunks/{_layout.svelte-D4EOIHJJ.js → _layout.svelte-B-0DHjLB.js} +8 -8
  211. package/build/server/chunks/{_layout.svelte-D4EOIHJJ.js.map → _layout.svelte-B-0DHjLB.js.map} +1 -1
  212. package/build/server/chunks/{_layout.svelte-Blfto3jh.js → _layout.svelte-B88WMyk0.js} +681 -31
  213. package/build/server/chunks/_layout.svelte-B88WMyk0.js.map +1 -0
  214. package/build/server/chunks/{_layout.svelte-Dk-9LkfL.js → _layout.svelte-BnrWYuLv.js} +10 -10
  215. package/build/server/chunks/{_layout.svelte-Dk-9LkfL.js.map → _layout.svelte-BnrWYuLv.js.map} +1 -1
  216. package/build/server/chunks/{_layout.svelte-BIMexfnk.js → _layout.svelte-wi6o5Ecu.js} +14 -14
  217. package/build/server/chunks/{_layout.svelte-BIMexfnk.js.map → _layout.svelte-wi6o5Ecu.js.map} +1 -1
  218. package/build/server/chunks/{_page.svelte-DZvcjON6.js → _page.svelte-57pyhszV.js} +10 -10
  219. package/build/server/chunks/{_page.svelte-DZvcjON6.js.map → _page.svelte-57pyhszV.js.map} +1 -1
  220. package/build/server/chunks/{_page.svelte-DhhqK6z3.js → _page.svelte-BSVJ2d2G.js} +13 -12
  221. package/build/server/chunks/_page.svelte-BSVJ2d2G.js.map +1 -0
  222. package/build/server/chunks/{_page.svelte-B1erTzoN.js → _page.svelte-BoHt2cpr.js} +5 -5
  223. package/build/server/chunks/{_page.svelte-B1erTzoN.js.map → _page.svelte-BoHt2cpr.js.map} +1 -1
  224. package/build/server/chunks/{_page.svelte-CeO_ScC8.js → _page.svelte-CHgQjBQj.js} +2 -2
  225. package/build/server/chunks/{_page.svelte-CeO_ScC8.js.map → _page.svelte-CHgQjBQj.js.map} +1 -1
  226. package/build/server/chunks/{_page.svelte-CoCBnE2l.js → _page.svelte-CeS_21Ho.js} +11 -11
  227. package/build/server/chunks/{_page.svelte-CoCBnE2l.js.map → _page.svelte-CeS_21Ho.js.map} +1 -1
  228. package/build/server/chunks/{_page.svelte-D5S0QjlI.js → _page.svelte-DHSYVLoj.js} +12 -12
  229. package/build/server/chunks/{_page.svelte-D5S0QjlI.js.map → _page.svelte-DHSYVLoj.js.map} +1 -1
  230. package/build/server/chunks/{_page.svelte-xf-0yXQM.js → _page.svelte-DhFNFMnl.js} +21 -19
  231. package/build/server/chunks/_page.svelte-DhFNFMnl.js.map +1 -0
  232. package/build/server/chunks/{_page.svelte-YoDx7gDL.js → _page.svelte-h_J4lNT9.js} +6 -6
  233. package/build/server/chunks/{_page.svelte-YoDx7gDL.js.map → _page.svelte-h_J4lNT9.js.map} +1 -1
  234. package/build/server/chunks/{agents-context-w03Lz_6n.js → agents-context-CbFsZmi5.js} +2 -2
  235. package/build/server/chunks/{agents-context-w03Lz_6n.js.map → agents-context-CbFsZmi5.js.map} +1 -1
  236. package/build/server/chunks/{client-WFEvX_be.js → client-DO-hqMbT.js} +4 -4
  237. package/build/server/chunks/{client-WFEvX_be.js.map → client-DO-hqMbT.js.map} +1 -1
  238. package/build/server/chunks/{conversation-view-memory-B0PllWRL.js → conversation-view-memory-CtbUZd_L.js} +2 -2
  239. package/build/server/chunks/{conversation-view-memory-B0PllWRL.js.map → conversation-view-memory-CtbUZd_L.js.map} +1 -1
  240. package/build/server/chunks/{edit-workspace-context-biaZqjOf.js → edit-workspace-context-tyHBPujC.js} +2 -2
  241. package/build/server/chunks/{edit-workspace-context-biaZqjOf.js.map → edit-workspace-context-tyHBPujC.js.map} +1 -1
  242. package/build/server/chunks/error.svelte-DmKKN1RU.js +15 -0
  243. package/build/server/chunks/{error.svelte-BjIDhioc.js.map → error.svelte-DmKKN1RU.js.map} +1 -1
  244. package/build/server/chunks/{index-rHCWxLFZ.js → index-LMsd1ih2.js} +2 -2
  245. package/build/server/chunks/{index-rHCWxLFZ.js.map → index-LMsd1ih2.js.map} +1 -1
  246. package/build/server/chunks/{index-server-BMxlf3ZC.js → index-server-BRr5mZEq.js} +2 -2
  247. package/build/server/chunks/{index-server-BMxlf3ZC.js.map → index-server-BRr5mZEq.js.map} +1 -1
  248. package/build/server/chunks/{index2-DdOgqE2_.js → index2-ClgfzZ89.js} +3 -3
  249. package/build/server/chunks/{index2-DdOgqE2_.js.map → index2-ClgfzZ89.js.map} +1 -1
  250. package/build/server/chunks/{index3-DC4GTqD1.js → index3-BdRUAffj.js} +2 -2
  251. package/build/server/chunks/{index3-DC4GTqD1.js.map → index3-BdRUAffj.js.map} +1 -1
  252. package/build/server/chunks/{root-UeqiktJA.js → root-4q2Pr7ck.js} +2 -2
  253. package/build/server/chunks/{root-UeqiktJA.js.map → root-4q2Pr7ck.js.map} +1 -1
  254. package/build/server/chunks/{state.svelte-CLOYXiU6.js → state.svelte-Bd1i-u49.js} +3 -3
  255. package/build/server/chunks/{state.svelte-CLOYXiU6.js.map → state.svelte-Bd1i-u49.js.map} +1 -1
  256. package/build/server/index.js +4 -4
  257. package/build/server/index.js.map +1 -1
  258. package/build/server/manifest.js +14 -14
  259. package/build/server/manifest.js.map +1 -1
  260. package/package.json +1 -1
  261. package/src/backend/lib/apply-v4a-diff.spec.ts +45 -0
  262. package/src/backend/lib/apply-v4a-diff.ts +167 -0
  263. package/src/backend/roleplay/agents.ts +16 -2
  264. package/src/backend/roleplay/old-server.ts +18 -4
  265. package/src/backend/roleplay/prompt-edit-progress.ts +36 -0
  266. package/src/backend/roleplay/prompt-edit-proposals.ts +38 -0
  267. package/src/backend/roleplay/router.ts +63 -15
  268. package/src/backend/roleplay/step-registry.spec.ts +20 -0
  269. package/src/backend/roleplay/step-registry.ts +13 -2
  270. package/src/backend/roleplay/suggest-prompt-edit.ts +163 -0
  271. package/src/backend/roleplay/variants.ts +8 -4
  272. package/src/backend/tests/academy-json.spec.ts +32 -0
  273. package/src/backend/tests/academy.ts +10 -2
  274. package/src/backend/tests/data.ts +1 -0
  275. package/src/backend/tests/emulate-agents.spec.ts +106 -0
  276. package/src/backend/tests/emulate-agents.ts +42 -4
  277. package/src/backend/tests/json-field-match.ts +29 -8
  278. package/src/backend/tests/pii-sanitizer.spec.ts +122 -6
  279. package/src/backend/tests/pii-sanitizer.ts +140 -29
  280. package/src/backend/tests/router.ts +22 -3
  281. package/src/backend/tests/suite.spec.ts +20 -0
  282. package/src/backend/tests/suite.ts +7 -2
  283. package/src/lib/components/Modal.svelte +42 -13
  284. package/src/lib/components/Textarea.svelte +41 -0
  285. package/src/lib/edit/edit-workspace-context.ts +12 -0
  286. package/src/lib/ws-message.ts +7 -0
  287. package/build/client/_app/immutable/assets/0.FwR3B_mV.css +0 -1
  288. package/build/client/_app/immutable/assets/0.FwR3B_mV.css.br +0 -0
  289. package/build/client/_app/immutable/assets/0.FwR3B_mV.css.gz +0 -0
  290. package/build/client/_app/immutable/assets/2.DxwYfh1z.css +0 -1
  291. package/build/client/_app/immutable/assets/2.DxwYfh1z.css.br +0 -0
  292. package/build/client/_app/immutable/assets/2.DxwYfh1z.css.gz +0 -0
  293. package/build/client/_app/immutable/assets/Modal.tn0RQdqM.css +0 -0
  294. package/build/client/_app/immutable/assets/Modal.tn0RQdqM.css.br +0 -1
  295. package/build/client/_app/immutable/assets/Modal.tn0RQdqM.css.gz +0 -0
  296. package/build/client/_app/immutable/chunks/07xNIa59.js.br +0 -0
  297. package/build/client/_app/immutable/chunks/07xNIa59.js.gz +0 -0
  298. package/build/client/_app/immutable/chunks/BD9x_mnu.js.br +0 -0
  299. package/build/client/_app/immutable/chunks/BD9x_mnu.js.gz +0 -0
  300. package/build/client/_app/immutable/chunks/BDl2QuyN.js +0 -1
  301. package/build/client/_app/immutable/chunks/BDl2QuyN.js.br +0 -0
  302. package/build/client/_app/immutable/chunks/BDl2QuyN.js.gz +0 -0
  303. package/build/client/_app/immutable/chunks/BI42X8h_.js.br +0 -0
  304. package/build/client/_app/immutable/chunks/BI42X8h_.js.gz +0 -0
  305. package/build/client/_app/immutable/chunks/BJTwdUYr.js.br +0 -0
  306. package/build/client/_app/immutable/chunks/BJTwdUYr.js.gz +0 -0
  307. package/build/client/_app/immutable/chunks/BLu86SbA.js.br +0 -0
  308. package/build/client/_app/immutable/chunks/BLu86SbA.js.gz +0 -0
  309. package/build/client/_app/immutable/chunks/BNifnXkO.js +0 -1
  310. package/build/client/_app/immutable/chunks/BNifnXkO.js.br +0 -2
  311. package/build/client/_app/immutable/chunks/BNifnXkO.js.gz +0 -0
  312. package/build/client/_app/immutable/chunks/BPNEONy5.js.br +0 -0
  313. package/build/client/_app/immutable/chunks/BPNEONy5.js.gz +0 -0
  314. package/build/client/_app/immutable/chunks/B_K7D6rX.js +0 -2
  315. package/build/client/_app/immutable/chunks/B_K7D6rX.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/B_K7D6rX.js.gz +0 -0
  317. package/build/client/_app/immutable/chunks/Bj8jfBTi.js.br +0 -0
  318. package/build/client/_app/immutable/chunks/Bj8jfBTi.js.gz +0 -0
  319. package/build/client/_app/immutable/chunks/BsDZe4N6.js.br +0 -0
  320. package/build/client/_app/immutable/chunks/BsDZe4N6.js.gz +0 -0
  321. package/build/client/_app/immutable/chunks/Buo-57fF.js.br +0 -0
  322. package/build/client/_app/immutable/chunks/Buo-57fF.js.gz +0 -0
  323. package/build/client/_app/immutable/chunks/C39ai1md.js.br +0 -0
  324. package/build/client/_app/immutable/chunks/C39ai1md.js.gz +0 -0
  325. package/build/client/_app/immutable/chunks/C7he4XPB.js.br +0 -0
  326. package/build/client/_app/immutable/chunks/C7he4XPB.js.gz +0 -0
  327. package/build/client/_app/immutable/chunks/CAjPRvNs.js.br +0 -0
  328. package/build/client/_app/immutable/chunks/CAjPRvNs.js.gz +0 -0
  329. package/build/client/_app/immutable/chunks/CJYOmGlC.js.br +0 -0
  330. package/build/client/_app/immutable/chunks/CJYOmGlC.js.gz +0 -0
  331. package/build/client/_app/immutable/chunks/CPXdAKdv.js.br +0 -0
  332. package/build/client/_app/immutable/chunks/CPXdAKdv.js.gz +0 -0
  333. package/build/client/_app/immutable/chunks/CVlsAO8k.js.br +0 -0
  334. package/build/client/_app/immutable/chunks/CVlsAO8k.js.gz +0 -0
  335. package/build/client/_app/immutable/chunks/CX0Ekq8t.js.br +0 -0
  336. package/build/client/_app/immutable/chunks/CX0Ekq8t.js.gz +0 -0
  337. package/build/client/_app/immutable/chunks/CXESoUel.js.br +0 -0
  338. package/build/client/_app/immutable/chunks/CXESoUel.js.gz +0 -0
  339. package/build/client/_app/immutable/chunks/Ca197UDq.js.gz +0 -0
  340. package/build/client/_app/immutable/chunks/CaHl3dME.js.br +0 -0
  341. package/build/client/_app/immutable/chunks/CaHl3dME.js.gz +0 -0
  342. package/build/client/_app/immutable/chunks/Cql_e8Of.js +0 -1
  343. package/build/client/_app/immutable/chunks/Cql_e8Of.js.br +0 -2
  344. package/build/client/_app/immutable/chunks/Cql_e8Of.js.gz +0 -0
  345. package/build/client/_app/immutable/chunks/CxLomzuE.js +0 -1
  346. package/build/client/_app/immutable/chunks/CxLomzuE.js.br +0 -0
  347. package/build/client/_app/immutable/chunks/CxLomzuE.js.gz +0 -0
  348. package/build/client/_app/immutable/chunks/Cyai3SOj.js.br +0 -0
  349. package/build/client/_app/immutable/chunks/Cyai3SOj.js.gz +0 -0
  350. package/build/client/_app/immutable/chunks/CyvQWZoe.js +0 -8
  351. package/build/client/_app/immutable/chunks/CyvQWZoe.js.br +0 -0
  352. package/build/client/_app/immutable/chunks/CyvQWZoe.js.gz +0 -0
  353. package/build/client/_app/immutable/chunks/CzXNWL4m.js +0 -1
  354. package/build/client/_app/immutable/chunks/CzXNWL4m.js.br +0 -1
  355. package/build/client/_app/immutable/chunks/CzXNWL4m.js.gz +0 -0
  356. package/build/client/_app/immutable/chunks/D-B5X35l.js.br +0 -0
  357. package/build/client/_app/immutable/chunks/D-B5X35l.js.gz +0 -0
  358. package/build/client/_app/immutable/chunks/DCuEIs0S.js.br +0 -0
  359. package/build/client/_app/immutable/chunks/DCuEIs0S.js.gz +0 -0
  360. package/build/client/_app/immutable/chunks/DJriQKD9.js.br +0 -0
  361. package/build/client/_app/immutable/chunks/DJriQKD9.js.gz +0 -0
  362. package/build/client/_app/immutable/chunks/Dslf9OwW.js.br +0 -0
  363. package/build/client/_app/immutable/chunks/Dslf9OwW.js.gz +0 -0
  364. package/build/client/_app/immutable/chunks/QpaC6J6s.js +0 -1
  365. package/build/client/_app/immutable/chunks/QpaC6J6s.js.br +0 -0
  366. package/build/client/_app/immutable/chunks/QpaC6J6s.js.gz +0 -0
  367. package/build/client/_app/immutable/chunks/_U9sB4BM.js +0 -3
  368. package/build/client/_app/immutable/chunks/_U9sB4BM.js.br +0 -0
  369. package/build/client/_app/immutable/chunks/_U9sB4BM.js.gz +0 -0
  370. package/build/client/_app/immutable/chunks/iAhzu4tv.js.br +0 -0
  371. package/build/client/_app/immutable/chunks/iAhzu4tv.js.gz +0 -0
  372. package/build/client/_app/immutable/chunks/nYD9wsyN.js.br +0 -0
  373. package/build/client/_app/immutable/chunks/nYD9wsyN.js.gz +0 -0
  374. package/build/client/_app/immutable/chunks/uLGP0py1.js.br +0 -0
  375. package/build/client/_app/immutable/chunks/uLGP0py1.js.gz +0 -0
  376. package/build/client/_app/immutable/entry/app.Du7JgOF0.js.br +0 -0
  377. package/build/client/_app/immutable/entry/app.Du7JgOF0.js.gz +0 -0
  378. package/build/client/_app/immutable/entry/start.BssSvo4L.js +0 -1
  379. package/build/client/_app/immutable/entry/start.BssSvo4L.js.br +0 -2
  380. package/build/client/_app/immutable/entry/start.BssSvo4L.js.gz +0 -0
  381. package/build/client/_app/immutable/nodes/0.EJrjlOP2.js.br +0 -0
  382. package/build/client/_app/immutable/nodes/0.EJrjlOP2.js.gz +0 -0
  383. package/build/client/_app/immutable/nodes/1.BX3yW9Ki.js +0 -1
  384. package/build/client/_app/immutable/nodes/1.BX3yW9Ki.js.br +0 -0
  385. package/build/client/_app/immutable/nodes/1.BX3yW9Ki.js.gz +0 -0
  386. package/build/client/_app/immutable/nodes/10.HnX8Jhtn.js +0 -13
  387. package/build/client/_app/immutable/nodes/10.HnX8Jhtn.js.br +0 -0
  388. package/build/client/_app/immutable/nodes/10.HnX8Jhtn.js.gz +0 -0
  389. package/build/client/_app/immutable/nodes/15.BFy4oAT6.js.br +0 -0
  390. package/build/client/_app/immutable/nodes/15.BFy4oAT6.js.gz +0 -0
  391. package/build/client/_app/immutable/nodes/17.DQQN2LTu.js.br +0 -0
  392. package/build/client/_app/immutable/nodes/17.DQQN2LTu.js.gz +0 -0
  393. package/build/client/_app/immutable/nodes/18.Dx1VeGYs.js.br +0 -0
  394. package/build/client/_app/immutable/nodes/18.Dx1VeGYs.js.gz +0 -0
  395. package/build/client/_app/immutable/nodes/2.BSZUitGm.js +0 -35
  396. package/build/client/_app/immutable/nodes/2.BSZUitGm.js.br +0 -0
  397. package/build/client/_app/immutable/nodes/2.BSZUitGm.js.gz +0 -0
  398. package/build/client/_app/immutable/nodes/3.D2P9M-PP.js.br +0 -0
  399. package/build/client/_app/immutable/nodes/3.D2P9M-PP.js.gz +0 -0
  400. package/build/client/_app/immutable/nodes/4.Cx97sxk5.js.br +0 -0
  401. package/build/client/_app/immutable/nodes/4.Cx97sxk5.js.gz +0 -0
  402. package/build/client/_app/immutable/nodes/5.BAliV6Wc.js.br +0 -0
  403. package/build/client/_app/immutable/nodes/5.BAliV6Wc.js.gz +0 -0
  404. package/build/client/_app/immutable/nodes/6.CmUnus-n.js.br +0 -0
  405. package/build/client/_app/immutable/nodes/6.CmUnus-n.js.gz +0 -0
  406. package/build/client/_app/immutable/nodes/8.DLYtZXzs.js.br +0 -0
  407. package/build/client/_app/immutable/nodes/8.DLYtZXzs.js.gz +0 -0
  408. package/build/client/_app/immutable/nodes/9.DQ0jyQBU.js +0 -2
  409. package/build/client/_app/immutable/nodes/9.DQ0jyQBU.js.br +0 -0
  410. package/build/client/_app/immutable/nodes/9.DQ0jyQBU.js.gz +0 -0
  411. package/build/server/chunks/0-DB4bFp_f.js +0 -9
  412. package/build/server/chunks/0-DB4bFp_f.js.map +0 -1
  413. package/build/server/chunks/1-kigiZghR.js +0 -9
  414. package/build/server/chunks/10-C49_L5kn.js +0 -9
  415. package/build/server/chunks/10-C49_L5kn.js.map +0 -1
  416. package/build/server/chunks/15-BRw8wtLp.js +0 -9
  417. package/build/server/chunks/17-Dbb76ckK.js +0 -9
  418. package/build/server/chunks/17-Dbb76ckK.js.map +0 -1
  419. package/build/server/chunks/18-CvqluQBN.js +0 -9
  420. package/build/server/chunks/18-CvqluQBN.js.map +0 -1
  421. package/build/server/chunks/2-JGarRt-z.js +0 -9
  422. package/build/server/chunks/2-JGarRt-z.js.map +0 -1
  423. package/build/server/chunks/3-CnXV_OO3.js +0 -9
  424. package/build/server/chunks/3-CnXV_OO3.js.map +0 -1
  425. package/build/server/chunks/4-B-XLuotH.js +0 -9
  426. package/build/server/chunks/4-B-XLuotH.js.map +0 -1
  427. package/build/server/chunks/5-Cumig7Am.js +0 -9
  428. package/build/server/chunks/6-Ez7v6PpX.js +0 -9
  429. package/build/server/chunks/8-COGeKy3N.js +0 -9
  430. package/build/server/chunks/8-COGeKy3N.js.map +0 -1
  431. package/build/server/chunks/9-DlMHnRdZ.js +0 -9
  432. package/build/server/chunks/9-DlMHnRdZ.js.map +0 -1
  433. package/build/server/chunks/ChatStepTrace-CX2Zolmp.js.map +0 -1
  434. package/build/server/chunks/_layout.svelte-Blfto3jh.js.map +0 -1
  435. package/build/server/chunks/_page.svelte-DhhqK6z3.js.map +0 -1
  436. package/build/server/chunks/_page.svelte-xf-0yXQM.js.map +0 -1
  437. package/build/server/chunks/error.svelte-BjIDhioc.js +0 -15
@@ -10,27 +10,27 @@ return {
10
10
  assets: new Set(["favicon.png","fonts/DarkerGrotesque-Black.ttf","fonts/DarkerGrotesque-Bold.ttf","fonts/DarkerGrotesque-Light.ttf","fonts/DarkerGrotesque-Medium.ttf","fonts/DarkerGrotesque-Regular.ttf","fonts/DarkerGrotesque-SemiBold.ttf","fonts.css","recombine.svg","telescope-icon.svg","ui/arrow_tests.svg","ui/paperclip.svg","ui/send.svg"]),
11
11
  mimeTypes: {".png":"image/png",".ttf":"font/ttf",".css":"text/css",".svg":"image/svg+xml"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.BssSvo4L.js",app:"_app/immutable/entry/app.Du7JgOF0.js",imports:["_app/immutable/entry/start.BssSvo4L.js","_app/immutable/chunks/BD9x_mnu.js","_app/immutable/chunks/CxLomzuE.js","_app/immutable/chunks/uLGP0py1.js","_app/immutable/chunks/OA8UcISh.js","_app/immutable/chunks/C39ai1md.js","_app/immutable/entry/app.Du7JgOF0.js","_app/immutable/chunks/C1FmrZbK.js","_app/immutable/chunks/CxLomzuE.js","_app/immutable/chunks/DJriQKD9.js","_app/immutable/chunks/Ca197UDq.js","_app/immutable/chunks/xC2C8d09.js","_app/immutable/chunks/C39ai1md.js","_app/immutable/chunks/Buo-57fF.js","_app/immutable/chunks/CJYOmGlC.js","_app/immutable/chunks/Cyai3SOj.js","_app/immutable/chunks/BLu86SbA.js","_app/immutable/chunks/CPXdAKdv.js","_app/immutable/chunks/uLGP0py1.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:true},
13
+ client: {start:"_app/immutable/entry/start.eAjDq0c9.js",app:"_app/immutable/entry/app.DdO0gkPg.js",imports:["_app/immutable/entry/start.eAjDq0c9.js","_app/immutable/chunks/BvjXTrOz.js","_app/immutable/chunks/CEHsomMo.js","_app/immutable/chunks/B5zf3x62.js","_app/immutable/chunks/OA8UcISh.js","_app/immutable/chunks/DoD3q5w5.js","_app/immutable/entry/app.DdO0gkPg.js","_app/immutable/chunks/C1FmrZbK.js","_app/immutable/chunks/CEHsomMo.js","_app/immutable/chunks/CN555stc.js","_app/immutable/chunks/DCXjBDmY.js","_app/immutable/chunks/xC2C8d09.js","_app/immutable/chunks/DoD3q5w5.js","_app/immutable/chunks/BHHfrjbV.js","_app/immutable/chunks/Bog028VR.js","_app/immutable/chunks/B1HdnQRQ.js","_app/immutable/chunks/DtXXy94i.js","_app/immutable/chunks/D8mA-uZ4.js","_app/immutable/chunks/B5zf3x62.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:true},
14
14
  nodes: [
15
- __memo(() => import('./chunks/0-DB4bFp_f.js')),
16
- __memo(() => import('./chunks/1-kigiZghR.js')),
17
- __memo(() => import('./chunks/2-JGarRt-z.js')),
18
- __memo(() => import('./chunks/3-CnXV_OO3.js')),
19
- __memo(() => import('./chunks/4-B-XLuotH.js')),
20
- __memo(() => import('./chunks/5-Cumig7Am.js')),
21
- __memo(() => import('./chunks/6-Ez7v6PpX.js')),
15
+ __memo(() => import('./chunks/0-D_duQDWy.js')),
16
+ __memo(() => import('./chunks/1-C0HdTvXW.js')),
17
+ __memo(() => import('./chunks/2-DgTzKQAP.js')),
18
+ __memo(() => import('./chunks/3-eQMSMzXP.js')),
19
+ __memo(() => import('./chunks/4-OaAJtDqP.js')),
20
+ __memo(() => import('./chunks/5-CBdMutbv.js')),
21
+ __memo(() => import('./chunks/6-FoEi7ggm.js')),
22
22
  __memo(() => import('./chunks/7-olXOjo4r.js')),
23
- __memo(() => import('./chunks/8-COGeKy3N.js')),
24
- __memo(() => import('./chunks/9-DlMHnRdZ.js')),
25
- __memo(() => import('./chunks/10-C49_L5kn.js')),
23
+ __memo(() => import('./chunks/8-B44yRkfX.js')),
24
+ __memo(() => import('./chunks/9-eUjFpHzI.js')),
25
+ __memo(() => import('./chunks/10-DcfhCR4R.js')),
26
26
  __memo(() => import('./chunks/11-CB5q84io.js')),
27
27
  __memo(() => import('./chunks/12-CfqC_Y1R.js')),
28
28
  __memo(() => import('./chunks/13-ByddfU7G.js')),
29
29
  __memo(() => import('./chunks/14-Dk7DCwHC.js')),
30
- __memo(() => import('./chunks/15-BRw8wtLp.js')),
30
+ __memo(() => import('./chunks/15-BQcb9C_y.js')),
31
31
  __memo(() => import('./chunks/16-Y9KLA9UF.js')),
32
- __memo(() => import('./chunks/17-Dbb76ckK.js')),
33
- __memo(() => import('./chunks/18-CvqluQBN.js'))
32
+ __memo(() => import('./chunks/17-DuVCTioj.js')),
33
+ __memo(() => import('./chunks/18-CT0VFW_p.js'))
34
34
  ],
35
35
  remotes: {
36
36
 
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"favicon.png\",\"fonts/DarkerGrotesque-Black.ttf\",\"fonts/DarkerGrotesque-Bold.ttf\",\"fonts/DarkerGrotesque-Light.ttf\",\"fonts/DarkerGrotesque-Medium.ttf\",\"fonts/DarkerGrotesque-Regular.ttf\",\"fonts/DarkerGrotesque-SemiBold.ttf\",\"fonts.css\",\"recombine.svg\",\"telescope-icon.svg\",\"ui/arrow_tests.svg\",\"ui/paperclip.svg\",\"ui/send.svg\"]),\n\tmimeTypes: {\".png\":\"image/png\",\".ttf\":\"font/ttf\",\".css\":\"text/css\",\".svg\":\"image/svg+xml\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.BssSvo4L.js\",app:\"_app/immutable/entry/app.Du7JgOF0.js\",imports:[\"_app/immutable/entry/start.BssSvo4L.js\",\"_app/immutable/chunks/BD9x_mnu.js\",\"_app/immutable/chunks/CxLomzuE.js\",\"_app/immutable/chunks/uLGP0py1.js\",\"_app/immutable/chunks/OA8UcISh.js\",\"_app/immutable/chunks/C39ai1md.js\",\"_app/immutable/entry/app.Du7JgOF0.js\",\"_app/immutable/chunks/C1FmrZbK.js\",\"_app/immutable/chunks/CxLomzuE.js\",\"_app/immutable/chunks/DJriQKD9.js\",\"_app/immutable/chunks/Ca197UDq.js\",\"_app/immutable/chunks/xC2C8d09.js\",\"_app/immutable/chunks/C39ai1md.js\",\"_app/immutable/chunks/Buo-57fF.js\",\"_app/immutable/chunks/CJYOmGlC.js\",\"_app/immutable/chunks/Cyai3SOj.js\",\"_app/immutable/chunks/BLu86SbA.js\",\"_app/immutable/chunks/CPXdAKdv.js\",\"_app/immutable/chunks/uLGP0py1.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:true},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js')),\n\t\t\t__memo(() => import('./nodes/14.js')),\n\t\t\t__memo(() => import('./nodes/15.js')),\n\t\t\t__memo(() => import('./nodes/16.js')),\n\t\t\t__memo(() => import('./nodes/17.js')),\n\t\t\t__memo(() => import('./nodes/18.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit\",\n\t\t\t\tpattern: /^\\/edit\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/configure\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/configure\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/roleplay\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/roleplay\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/tests\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/tests\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/roleplay\",\n\t\t\t\tpattern: /^\\/roleplay\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tests\",\n\t\t\t\tpattern: /^\\/tests\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tests/[agent]\",\n\t\t\t\tpattern: /^\\/tests\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 13 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces\",\n\t\t\t\tpattern: /^\\/traces\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 14 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/latency/[conversationId]\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/latency\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/latency/_conversationId_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/latency/[conversationId]/audio\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/latency\\/([^/]+?)\\/audio\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/latency/_conversationId_/audio/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/proxy/[...path]\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/proxy(?:\\/([^]*))?\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":true,\"chained\":true}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/proxy/_...path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/sources\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/sources\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/sources/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,3,], errors: [1,,], leaf: 15 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,4,], errors: [1,,,], leaf: 16 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]/latency\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/latency\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,4,], errors: [1,,,], leaf: 17 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]/traces\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/traces\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,4,], errors: [1,,,], leaf: 18 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"favicon.png\",\"fonts/DarkerGrotesque-Black.ttf\",\"fonts/DarkerGrotesque-Bold.ttf\",\"fonts/DarkerGrotesque-Light.ttf\",\"fonts/DarkerGrotesque-Medium.ttf\",\"fonts/DarkerGrotesque-Regular.ttf\",\"fonts/DarkerGrotesque-SemiBold.ttf\",\"fonts.css\",\"recombine.svg\",\"telescope-icon.svg\",\"ui/arrow_tests.svg\",\"ui/paperclip.svg\",\"ui/send.svg\"]),\n\tmimeTypes: {\".png\":\"image/png\",\".ttf\":\"font/ttf\",\".css\":\"text/css\",\".svg\":\"image/svg+xml\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.eAjDq0c9.js\",app:\"_app/immutable/entry/app.DdO0gkPg.js\",imports:[\"_app/immutable/entry/start.eAjDq0c9.js\",\"_app/immutable/chunks/BvjXTrOz.js\",\"_app/immutable/chunks/CEHsomMo.js\",\"_app/immutable/chunks/B5zf3x62.js\",\"_app/immutable/chunks/OA8UcISh.js\",\"_app/immutable/chunks/DoD3q5w5.js\",\"_app/immutable/entry/app.DdO0gkPg.js\",\"_app/immutable/chunks/C1FmrZbK.js\",\"_app/immutable/chunks/CEHsomMo.js\",\"_app/immutable/chunks/CN555stc.js\",\"_app/immutable/chunks/DCXjBDmY.js\",\"_app/immutable/chunks/xC2C8d09.js\",\"_app/immutable/chunks/DoD3q5w5.js\",\"_app/immutable/chunks/BHHfrjbV.js\",\"_app/immutable/chunks/Bog028VR.js\",\"_app/immutable/chunks/B1HdnQRQ.js\",\"_app/immutable/chunks/DtXXy94i.js\",\"_app/immutable/chunks/D8mA-uZ4.js\",\"_app/immutable/chunks/B5zf3x62.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:true},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js')),\n\t\t\t__memo(() => import('./nodes/14.js')),\n\t\t\t__memo(() => import('./nodes/15.js')),\n\t\t\t__memo(() => import('./nodes/16.js')),\n\t\t\t__memo(() => import('./nodes/17.js')),\n\t\t\t__memo(() => import('./nodes/18.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit\",\n\t\t\t\tpattern: /^\\/edit\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/configure\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/configure\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/roleplay\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/roleplay\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/tests\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/tests\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/roleplay\",\n\t\t\t\tpattern: /^\\/roleplay\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tests\",\n\t\t\t\tpattern: /^\\/tests\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tests/[agent]\",\n\t\t\t\tpattern: /^\\/tests\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 13 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces\",\n\t\t\t\tpattern: /^\\/traces\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 14 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/latency/[conversationId]\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/latency\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/latency/_conversationId_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/latency/[conversationId]/audio\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/latency\\/([^/]+?)\\/audio\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/latency/_conversationId_/audio/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/proxy/[...path]\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/proxy(?:\\/([^]*))?\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":true,\"chained\":true}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/proxy/_...path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/sources\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/sources\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/sources/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,3,], errors: [1,,], leaf: 15 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,4,], errors: [1,,,], leaf: 16 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]/latency\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/latency\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,4,], errors: [1,,,], leaf: 17 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]/traces\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/traces\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,4,], errors: [1,,,], leaf: 18 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
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.0",
4
+ "version": "0.16.2",
5
5
  "license": "EULA",
6
6
  "bin": {
7
7
  "bosun": "./bin/bosun.js"
@@ -0,0 +1,45 @@
1
+ import { describe, expect, it } from 'vitest'
2
+
3
+ import { applyV4ADiff } from './apply-v4a-diff'
4
+
5
+ describe('applyV4ADiff', () => {
6
+ it('applies a focused paragraph edit', () => {
7
+ const original = `# Greeting
8
+
9
+ Welcome the user and explain what you can do.
10
+
11
+ # Safety
12
+
13
+ Never reveal secrets.
14
+ `
15
+ const diff = [
16
+ '@@',
17
+ ' # Greeting',
18
+ ' ',
19
+ '-Welcome the user and explain what you can do.',
20
+ '+Welcome the user, ask for their name, and explain what you can do.',
21
+ ' ',
22
+ ' # Safety'
23
+ ].join('\n')
24
+
25
+ expect(applyV4ADiff(original, diff)).toBe(`# Greeting
26
+
27
+ Welcome the user, ask for their name, and explain what you can do.
28
+
29
+ # Safety
30
+
31
+ Never reveal secrets.
32
+ `)
33
+ })
34
+
35
+ it('rejects a patch whose context is not present', () => {
36
+ expect(() =>
37
+ applyV4ADiff(
38
+ 'Hello',
39
+ `@@
40
+ -Goodbye
41
+ +Welcome`
42
+ )
43
+ ).toThrow(/Invalid context/)
44
+ })
45
+ })
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Applies the headerless V4A format emitted by the Responses API Apply Patch tool.
3
+ * Adapted from the MIT-licensed OpenAI Agents SDK implementation:
4
+ * https://github.com/openai/openai-agents-js/blob/main/packages/agents-core/src/utils/applyDiff.ts
5
+ */
6
+ export function applyV4ADiff(input: string, diff: string): string {
7
+ const lines = normalizeLines(diff)
8
+ const inputLines = input.split('\n')
9
+ const chunks: Chunk[] = []
10
+ let diffIndex = 0
11
+ let cursor = 0
12
+
13
+ while (diffIndex < lines.length) {
14
+ const current = lines[diffIndex]
15
+ if (isTerminator(current)) break
16
+
17
+ let anchor = ''
18
+ if (current === '@@') {
19
+ diffIndex += 1
20
+ } else if (current.startsWith('@@ ')) {
21
+ anchor = current.slice(3)
22
+ diffIndex += 1
23
+ } else if (diffIndex !== 0) {
24
+ throw new Error(`Invalid patch line: ${current}`)
25
+ }
26
+
27
+ if (anchor.trim()) cursor = advanceToAnchor(inputLines, cursor, anchor)
28
+
29
+ const section = readSection(lines, diffIndex)
30
+ const match = findContext(inputLines, section.context, cursor, section.eof)
31
+ if (match === -1) {
32
+ throw new Error(
33
+ `${section.eof ? 'Invalid EOF context' : 'Invalid context'}:\n${section.context.join('\n')}`
34
+ )
35
+ }
36
+
37
+ for (const chunk of section.chunks) {
38
+ chunks.push({ ...chunk, originalIndex: chunk.originalIndex + match })
39
+ }
40
+ cursor = match + section.context.length
41
+ diffIndex = section.endIndex
42
+ }
43
+
44
+ return applyChunks(inputLines, chunks)
45
+ }
46
+
47
+ type Chunk = {
48
+ originalIndex: number
49
+ deleted: string[]
50
+ inserted: string[]
51
+ }
52
+
53
+ function normalizeLines(diff: string): string[] {
54
+ const lines = diff.split(/\r?\n/).map((line) => line.replace(/\r$/, ''))
55
+ if (lines.at(-1) === '') lines.pop()
56
+ return lines
57
+ }
58
+
59
+ function isTerminator(line: string | undefined): boolean {
60
+ return (
61
+ line === undefined ||
62
+ line === '*** End Patch' ||
63
+ line === '*** End of File' ||
64
+ line.startsWith('*** Update File:') ||
65
+ line.startsWith('*** Delete File:') ||
66
+ line.startsWith('*** Add File:')
67
+ )
68
+ }
69
+
70
+ function advanceToAnchor(input: string[], cursor: number, anchor: string): number {
71
+ for (let index = cursor; index < input.length; index += 1) {
72
+ if (input[index] === anchor) return index + 1
73
+ }
74
+ for (let index = cursor; index < input.length; index += 1) {
75
+ if (input[index].trim() === anchor.trim()) return index + 1
76
+ }
77
+ return cursor
78
+ }
79
+
80
+ function readSection(lines: string[], startIndex: number) {
81
+ const context: string[] = []
82
+ const chunks: Chunk[] = []
83
+ let deleted: string[] = []
84
+ let inserted: string[] = []
85
+ let mode: 'keep' | 'delete' | 'add' = 'keep'
86
+ let index = startIndex
87
+
88
+ const flush = () => {
89
+ if (!deleted.length && !inserted.length) return
90
+ chunks.push({
91
+ originalIndex: context.length - deleted.length,
92
+ deleted,
93
+ inserted
94
+ })
95
+ deleted = []
96
+ inserted = []
97
+ }
98
+
99
+ while (index < lines.length) {
100
+ const raw = lines[index]
101
+ if (raw.startsWith('@@') || isTerminator(raw) || raw === '***') break
102
+ if (raw.startsWith('***')) throw new Error(`Invalid patch line: ${raw}`)
103
+ index += 1
104
+
105
+ const normalized = raw === '' ? ' ' : raw
106
+ const prefix = normalized[0]
107
+ const nextMode =
108
+ prefix === '+' ? 'add' : prefix === '-' ? 'delete' : prefix === ' ' ? 'keep' : null
109
+ if (!nextMode) throw new Error(`Invalid patch line: ${normalized}`)
110
+
111
+ if (nextMode === 'keep' && mode !== 'keep') flush()
112
+ mode = nextMode
113
+ const line = normalized.slice(1)
114
+ if (mode === 'delete') {
115
+ deleted.push(line)
116
+ context.push(line)
117
+ } else if (mode === 'add') {
118
+ inserted.push(line)
119
+ } else {
120
+ context.push(line)
121
+ }
122
+ }
123
+
124
+ flush()
125
+ if (index === startIndex) throw new Error('Apply Patch returned an empty patch section')
126
+ const eof = lines[index] === '*** End of File'
127
+ return { context, chunks, endIndex: eof ? index + 1 : index, eof }
128
+ }
129
+
130
+ function findContext(input: string[], context: string[], start: number, eof: boolean): number {
131
+ if (!context.length) return start
132
+ if (eof) {
133
+ const atEnd = findContextCore(input, context, Math.max(0, input.length - context.length))
134
+ if (atEnd !== -1) return atEnd
135
+ }
136
+ return findContextCore(input, context, start)
137
+ }
138
+
139
+ function findContextCore(input: string[], context: string[], start: number): number {
140
+ const transforms = [
141
+ (value: string) => value,
142
+ (value: string) => value.trimEnd(),
143
+ (value: string) => value.trim()
144
+ ]
145
+ for (const transform of transforms) {
146
+ for (let index = start; index + context.length <= input.length; index += 1) {
147
+ if (context.every((line, offset) => transform(input[index + offset]) === transform(line))) {
148
+ return index
149
+ }
150
+ }
151
+ }
152
+ return -1
153
+ }
154
+
155
+ function applyChunks(input: string[], chunks: Chunk[]): string {
156
+ const output: string[] = []
157
+ let cursor = 0
158
+ for (const chunk of chunks) {
159
+ if (chunk.originalIndex > input.length || cursor > chunk.originalIndex) {
160
+ throw new Error('Apply Patch returned overlapping or out-of-range changes')
161
+ }
162
+ output.push(...input.slice(cursor, chunk.originalIndex), ...chunk.inserted)
163
+ cursor = chunk.originalIndex + chunk.deleted.length
164
+ }
165
+ output.push(...input.slice(cursor))
166
+ return output.join('\n')
167
+ }
@@ -20,7 +20,7 @@ import type { Context, ContextPersistence, StatePersistence } from './fs-persist
20
20
  import { createLogger } from './logger'
21
21
  import type { MessageDispatcher } from './message-dispatcher'
22
22
  import { createScheduler, type BosunScheduler } from './scheduler'
23
- import { createStepRegistry } from './step-registry'
23
+ import { createStepRegistry, type PromptOverrides } from './step-registry'
24
24
  import { getAgentFactories } from '../lib/get-agent-factories'
25
25
  import { getImportNonce } from '../lib/import-nonce'
26
26
  import { getRootPath } from '../lib/get-root-path'
@@ -152,11 +152,18 @@ export function createAgents(
152
152
  delete agentStates[cacheKey]
153
153
  await api.select(agentId, currentStateId, currentRegion)
154
154
  },
155
- select: async (agentId: string, stateId?: string | null, region?: string | null) => {
155
+ select: async (
156
+ agentId: string,
157
+ stateId?: string | null,
158
+ region?: string | null,
159
+ promptOverrides: PromptOverrides = {}
160
+ ) => {
156
161
  console.log('createAgents, select; agents: ', Object.keys(agents), 'selected: ', agentId)
157
162
  currentAgent = agentId
158
163
  currentRegion = region || null
159
164
  const agent = await getCurrentAgent()
165
+ // Agent metadata must always reflect the real file, not a pending UI proposal.
166
+ agent.setPromptOverrides({})
160
167
 
161
168
  await dispatcher.sendAgentSelected({
162
169
  id: agentId,
@@ -173,6 +180,7 @@ export function createAgents(
173
180
  }))
174
181
  )
175
182
  })
183
+ agent.setPromptOverrides(promptOverrides)
176
184
  if (agent.ctx.get()) {
177
185
  const context = agent.ctx.get()
178
186
  const promptContext = agent.ctx.getPromptContextMapper()(context)
@@ -207,6 +215,9 @@ export function createAgents(
207
215
  updatePrompt: async (prompt: string) => {
208
216
  await (await getCurrentAgent()).updatePrompt(prompt)
209
217
  },
218
+ updatePromptOverrides: async (promptOverrides: PromptOverrides) => {
219
+ ;(await getCurrentAgent()).setPromptOverrides(promptOverrides)
220
+ },
210
221
  triggerAction: async (action: string) => {
211
222
  await (await getCurrentAgent()).triggerAction(action)
212
223
  },
@@ -432,6 +443,9 @@ export async function loadAgent(props: LoadProps) {
432
443
  stepRegistry,
433
444
  basePath: props.basePath,
434
445
  ctx,
446
+ setPromptOverrides: (promptOverrides: PromptOverrides) => {
447
+ stepRegistry.setPromptOverrides(promptOverrides)
448
+ },
435
449
  selectState: async (
436
450
  stateHistory: AgentState[],
437
451
  stateId?: string | null,
@@ -16,7 +16,11 @@ export async function oldServer(ws: WebSocket) {
16
16
  let messageQueue = Promise.resolve()
17
17
 
18
18
  ws.on('message', (event) => {
19
- const raw = event.toString()
19
+ const raw = Array.isArray(event)
20
+ ? Buffer.concat(event).toString()
21
+ : event instanceof ArrayBuffer
22
+ ? Buffer.from(event).toString()
23
+ : event.toString()
20
24
 
21
25
  messageQueue = messageQueue
22
26
  .then(async () => {
@@ -35,7 +39,15 @@ export async function oldServer(ws: WebSocket) {
35
39
  case 'app-events':
36
40
  switch (msg.event.type) {
37
41
  case 'select-agent':
38
- await agents.select(msg.event.agent, msg.event.state, msg.event.region)
42
+ await agents.select(
43
+ msg.event.agent,
44
+ msg.event.state,
45
+ msg.event.region,
46
+ msg.event.promptOverrides
47
+ )
48
+ break
49
+ case 'prompt-overrides-updated':
50
+ await agents.updatePromptOverrides(msg.event.prompts)
39
51
  break
40
52
  case 'reload-project':
41
53
  await agents.reload()
@@ -71,11 +83,13 @@ export async function oldServer(ws: WebSocket) {
71
83
  console.error('Error handling message', error)
72
84
  try {
73
85
  ws.send(JSON.stringify({ channel: 'error', message: String(error) }))
74
- } catch {}
86
+ } catch (sendError) {
87
+ console.error('Error sending websocket error', sendError)
88
+ }
75
89
  })
76
90
  })
77
91
 
78
- ws.on('close', async () => {
92
+ ws.on('close', () => {
79
93
  // TODO destroy agents here
80
94
  console.log('=== client disconnected ===')
81
95
  })
@@ -0,0 +1,36 @@
1
+ export type PromptEditProgressPhase = 'thinking' | 'drafting' | 'reviewing'
2
+
3
+ export type PromptEditProgress = {
4
+ id: string
5
+ phase: PromptEditProgressPhase
6
+ activity: number
7
+ summary: string
8
+ updatedAt: number
9
+ }
10
+
11
+ const progressById = new Map<string, PromptEditProgress>()
12
+ const PROGRESS_TTL_MS = 15 * 60 * 1000
13
+
14
+ export function updatePromptEditProgress(
15
+ id: string,
16
+ progress: Pick<PromptEditProgress, 'phase' | 'activity' | 'summary'>
17
+ ) {
18
+ removeExpiredProgress()
19
+ progressById.set(id, { id, ...progress, updatedAt: Date.now() })
20
+ }
21
+
22
+ export function getPromptEditProgress(id: string): PromptEditProgress | null {
23
+ removeExpiredProgress()
24
+ const progress = progressById.get(id)
25
+ return progress ? { ...progress } : null
26
+ }
27
+
28
+ export function deletePromptEditProgress(id: string) {
29
+ progressById.delete(id)
30
+ }
31
+
32
+ function removeExpiredProgress(now = Date.now()) {
33
+ for (const [id, progress] of progressById) {
34
+ if (progress.updatedAt + PROGRESS_TTL_MS <= now) progressById.delete(id)
35
+ }
36
+ }
@@ -0,0 +1,38 @@
1
+ import { randomUUID } from 'node:crypto'
2
+
3
+ export type PromptEditProposal = {
4
+ id: string
5
+ agentId: string
6
+ step: string
7
+ originalPrompt: string
8
+ suggestedPrompt: string
9
+ createdAt: number
10
+ }
11
+
12
+ const proposals = new Map<string, PromptEditProposal>()
13
+ const PROPOSAL_TTL_MS = 12 * 60 * 60 * 1000
14
+
15
+ export function createPromptEditProposal(
16
+ proposal: Omit<PromptEditProposal, 'id' | 'createdAt'>
17
+ ): PromptEditProposal {
18
+ removeExpiredPromptEditProposals()
19
+ const stored = { ...proposal, id: randomUUID(), createdAt: Date.now() }
20
+ proposals.set(stored.id, stored)
21
+ return { ...stored }
22
+ }
23
+
24
+ export function getPromptEditProposal(id: string): PromptEditProposal | null {
25
+ removeExpiredPromptEditProposals()
26
+ const proposal = proposals.get(id)
27
+ return proposal ? { ...proposal } : null
28
+ }
29
+
30
+ export function deletePromptEditProposal(id: string): boolean {
31
+ return proposals.delete(id)
32
+ }
33
+
34
+ function removeExpiredPromptEditProposals(now = Date.now()) {
35
+ for (const [id, proposal] of proposals) {
36
+ if (proposal.createdAt + PROPOSAL_TTL_MS <= now) proposals.delete(id)
37
+ }
38
+ }
@@ -14,6 +14,13 @@ import type { AgentState } from './agents'
14
14
  import { fsContextPersistence, fsStatePersistence } from './fs-persistence'
15
15
  import { validateAndReplaceSchemaFile } from './schema-file'
16
16
  import { generateReplyVariants, replaceSavedState } from './variants'
17
+ import {
18
+ createPromptEditProposal,
19
+ deletePromptEditProposal,
20
+ getPromptEditProposal
21
+ } from './prompt-edit-proposals'
22
+ import { suggestPromptEdit } from './suggest-prompt-edit'
23
+ import { getPromptEditProgress, updatePromptEditProgress } from './prompt-edit-progress'
17
24
 
18
25
  const AgentIdSchema = z.string().trim().min(1).max(512)
19
26
  const promptMappersCache = new Map<string, (ctx: object) => object>()
@@ -87,6 +94,50 @@ export function createRolePlayRouter(t: TRPCRootObject<TrpcContext, any, any>) {
87
94
  await persistPromptUpdate(input.agentId, input.step, input.prompt)
88
95
  return { ok: true }
89
96
  }),
97
+ suggestPromptEdit: t.procedure
98
+ .input(
99
+ z.object({
100
+ agentId: AgentIdSchema,
101
+ step: z.string().trim().min(1).max(512),
102
+ request: z.string().trim().min(1).max(100_000),
103
+ progressId: z.string().uuid()
104
+ })
105
+ )
106
+ .mutation(async ({ input }) => {
107
+ const originalPrompt = await readEditablePrompt(input.agentId, input.step)
108
+ const suggestedPrompt = await suggestPromptEdit({
109
+ request: input.request,
110
+ originalPrompt,
111
+ onProgress: (progress) => updatePromptEditProgress(input.progressId, progress)
112
+ })
113
+ if (suggestedPrompt === originalPrompt) return { status: 'unchanged' as const }
114
+
115
+ const proposal = createPromptEditProposal({
116
+ agentId: input.agentId,
117
+ step: input.step,
118
+ originalPrompt,
119
+ suggestedPrompt
120
+ })
121
+ return { status: 'changed' as const, proposal }
122
+ }),
123
+ promptEditProgress: t.procedure
124
+ .input(z.object({ id: z.string().uuid() }))
125
+ .query(({ input }) => getPromptEditProgress(input.id)),
126
+ promptEditProposal: t.procedure
127
+ .input(z.object({ id: z.string().uuid() }))
128
+ .query(({ input }) => getPromptEditProposal(input.id)),
129
+ acceptPromptEdit: t.procedure
130
+ .input(z.object({ id: z.string().uuid() }))
131
+ .mutation(async ({ input }) => {
132
+ const proposal = getPromptEditProposal(input.id)
133
+ if (!proposal) throw new Error('This prompt suggestion is no longer available')
134
+ await persistPromptUpdate(proposal.agentId, proposal.step, proposal.suggestedPrompt)
135
+ deletePromptEditProposal(proposal.id)
136
+ return { ok: true, prompt: proposal.suggestedPrompt }
137
+ }),
138
+ rejectPromptEdit: t.procedure
139
+ .input(z.object({ id: z.string().uuid() }))
140
+ .mutation(({ input }) => ({ ok: deletePromptEditProposal(input.id) })),
90
141
  saveSchema: t.procedure
91
142
  .input(
92
143
  z.object({
@@ -155,24 +206,11 @@ export function createRolePlayRouter(t: TRPCRootObject<TrpcContext, any, any>) {
155
206
  agentId: AgentIdSchema,
156
207
  region: z.string().trim().min(1).max(128).nullable().optional(),
157
208
  context: z.record(z.string(), z.unknown()).nullable().optional(),
158
- promptUpdate: z
159
- .object({
160
- step: z.string().trim().min(1).max(512),
161
- prompt: z.string().max(1_000_000)
162
- })
163
- .nullable()
164
- .optional(),
209
+ promptOverrides: z.record(z.string(), z.string().max(1_000_000)).optional(),
165
210
  count: z.number().int().min(1).max(9).default(9)
166
211
  })
167
212
  )
168
213
  .mutation(async ({ input }) => {
169
- if (input.promptUpdate) {
170
- await persistPromptUpdate(
171
- input.agentId,
172
- input.promptUpdate.step,
173
- input.promptUpdate.prompt
174
- )
175
- }
176
214
  const stateKey = resolveAgentStateKey(input.agentId, input.region ?? null)
177
215
  const rawStates = await fsStatePersistence.load(stateKey)
178
216
  const states = Array.isArray(rawStates) ? rawStates : []
@@ -185,7 +223,8 @@ export function createRolePlayRouter(t: TRPCRootObject<TrpcContext, any, any>) {
185
223
  region: input.region ?? null,
186
224
  states,
187
225
  count: input.count,
188
- context
226
+ context,
227
+ promptOverrides: input.promptOverrides ?? {}
189
228
  })
190
229
 
191
230
  return variants.map((variant, index) => ({
@@ -279,6 +318,15 @@ async function persistPromptUpdate(agentId: string, stepName: string, prompt: st
279
318
  await fs.promises.writeFile(promptPath, prompt, 'utf-8')
280
319
  }
281
320
 
321
+ async function readEditablePrompt(agentId: string, stepName: string): Promise<string> {
322
+ const { steps } = await loadAgentSteps(agentId)
323
+ const targetStep = steps.find((step) => step?.name === stepName)
324
+ if (!targetStep || targetStep?.prompt?.type !== 'file') {
325
+ throw new Error(`Step '${stepName}' does not have an editable file prompt`)
326
+ }
327
+ return targetStep.prompt.content()
328
+ }
329
+
282
330
  async function persistSchemaUpdate(agentId: string, stepName: string, schema: string) {
283
331
  const { basePath, steps } = await loadAgentSteps(agentId)
284
332
  const targetStep = steps.find((step) => step?.name === stepName)
@@ -0,0 +1,20 @@
1
+ import { describe, expect, it } from 'vitest'
2
+
3
+ import { createStepRegistry } from './step-registry'
4
+
5
+ describe('createStepRegistry prompt overrides', () => {
6
+ it('uses an in-memory override without changing the underlying prompt source', async () => {
7
+ const prompt = {
8
+ type: 'file' as const,
9
+ path: 'prompts/main.md',
10
+ content: async () => 'saved prompt'
11
+ }
12
+ const registry = createStepRegistry(console, { main: 'suggested prompt' })
13
+ registry.addStep({ name: 'main', type: 'text', prompt })
14
+
15
+ expect(await prompt.content()).toBe('suggested prompt')
16
+
17
+ registry.setPromptOverrides({})
18
+ expect(await prompt.content()).toBe('saved prompt')
19
+ })
20
+ })