@recombine-ai/bosun 0.3.7 → 0.3.10

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 (462) hide show
  1. package/build/client/_app/immutable/assets/0.CJ5NCdBm.css +1 -0
  2. package/build/client/_app/immutable/assets/0.CJ5NCdBm.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.CJ5NCdBm.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/2.DxwYfh1z.css +1 -0
  5. package/build/client/_app/immutable/assets/2.DxwYfh1z.css.br +0 -0
  6. package/build/client/_app/immutable/assets/2.DxwYfh1z.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/7.DlSPCZj0.css +1 -0
  8. package/build/client/_app/immutable/assets/7.DlSPCZj0.css.br +0 -0
  9. package/build/client/_app/immutable/assets/7.DlSPCZj0.css.gz +0 -0
  10. package/build/client/_app/immutable/assets/8.BX46PfEJ.css +1 -0
  11. package/build/client/_app/immutable/assets/8.BX46PfEJ.css.br +0 -0
  12. package/build/client/_app/immutable/assets/8.BX46PfEJ.css.gz +0 -0
  13. package/build/client/_app/immutable/assets/{AgentSidebar.QeNZJtLq.css → AgentSidebar.BL1i3rB_.css} +1 -1
  14. package/build/client/_app/immutable/assets/AgentSidebar.BL1i3rB_.css.br +0 -0
  15. package/build/client/_app/immutable/assets/AgentSidebar.BL1i3rB_.css.gz +0 -0
  16. package/build/client/_app/immutable/assets/Tab.DlCfjMY1.css +1 -0
  17. package/build/client/_app/immutable/assets/Tab.DlCfjMY1.css.br +0 -0
  18. package/build/client/_app/immutable/assets/Tab.DlCfjMY1.css.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{BHL1bMOV.js → BNoAJ1Rf.js} +1 -1
  20. package/build/client/_app/immutable/chunks/BNoAJ1Rf.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/BNoAJ1Rf.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/BVDwc-2z.js +1 -0
  23. package/build/client/_app/immutable/chunks/BVDwc-2z.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/BVDwc-2z.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/BXkrt826.js +1 -0
  26. package/build/client/_app/immutable/chunks/BXkrt826.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/BXkrt826.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/{Cx_xzGPa.js → Bdb5tyDH.js} +1 -1
  29. package/build/client/_app/immutable/chunks/Bdb5tyDH.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/Bdb5tyDH.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/{DaRvw8c-.js → BfHUxT3G.js} +7 -7
  32. package/build/client/_app/immutable/chunks/BfHUxT3G.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/BfHUxT3G.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/{CRlLKhPr.js → Bk1rEq7o.js} +1 -1
  35. package/build/client/_app/immutable/chunks/Bk1rEq7o.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/Bk1rEq7o.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/BkclRFLx.js +3 -0
  38. package/build/client/_app/immutable/chunks/BkclRFLx.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/BkclRFLx.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/{DJ_lsF0V.js → BnxfhlSj.js} +1 -1
  41. package/build/client/_app/immutable/chunks/BnxfhlSj.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/BnxfhlSj.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/BqROrg0C.js +1 -0
  44. package/build/client/_app/immutable/chunks/BqROrg0C.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/BqROrg0C.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/{C769zFCl.js → ByQey8Oa.js} +1 -1
  47. package/build/client/_app/immutable/chunks/ByQey8Oa.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/ByQey8Oa.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/CFwu9ET3.js +1 -0
  50. package/build/client/_app/immutable/chunks/CFwu9ET3.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/CFwu9ET3.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/{D5fGPlBk.js → CIIE25ox.js} +1 -1
  53. package/build/client/_app/immutable/chunks/CIIE25ox.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/CIIE25ox.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/{DAfsp-82.js → CNMNmz2q.js} +1 -1
  56. package/build/client/_app/immutable/chunks/CNMNmz2q.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/CNMNmz2q.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/CNvyTQrC.js +1 -0
  59. package/build/client/_app/immutable/chunks/CNvyTQrC.js.br +2 -0
  60. package/build/client/_app/immutable/chunks/CNvyTQrC.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/CVHvdSBf.js +1 -0
  62. package/build/client/_app/immutable/chunks/CVHvdSBf.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/CVHvdSBf.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/CYiRxJxs.js +1 -0
  65. package/build/client/_app/immutable/chunks/CYiRxJxs.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/CYiRxJxs.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/CZPhtqrs.js +8 -0
  68. package/build/client/_app/immutable/chunks/CZPhtqrs.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/CZPhtqrs.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/{CRTtd6by.js → CdzpH-Ca.js} +1 -1
  71. package/build/client/_app/immutable/chunks/CdzpH-Ca.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/CdzpH-Ca.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/Cf8q8_nj.js +1 -0
  74. package/build/client/_app/immutable/chunks/Cf8q8_nj.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/Cf8q8_nj.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/Cg3F7Z11.js +1 -0
  77. package/build/client/_app/immutable/chunks/Cg3F7Z11.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/Cg3F7Z11.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/CpSIcnXs.js +1 -0
  80. package/build/client/_app/immutable/chunks/CpSIcnXs.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/CpSIcnXs.js.gz +0 -0
  82. package/build/client/_app/immutable/chunks/{Codln_pl.js → Ct9HfpvA.js} +1 -1
  83. package/build/client/_app/immutable/chunks/Ct9HfpvA.js.br +0 -0
  84. package/build/client/_app/immutable/chunks/Ct9HfpvA.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/DJPBfZIx.js +1 -0
  86. package/build/client/_app/immutable/chunks/DJPBfZIx.js.br +0 -0
  87. package/build/client/_app/immutable/chunks/DJPBfZIx.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/{BOQMymse.js → DOatwnEt.js} +1 -1
  89. package/build/client/_app/immutable/chunks/DOatwnEt.js.br +0 -0
  90. package/build/client/_app/immutable/chunks/DOatwnEt.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/DQqJYxgt.js +1 -0
  92. package/build/client/_app/immutable/chunks/DQqJYxgt.js.br +0 -0
  93. package/build/client/_app/immutable/chunks/DQqJYxgt.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/{Culo9hD6.js → DSfxalyG.js} +1 -1
  95. package/build/client/_app/immutable/chunks/DSfxalyG.js.br +0 -0
  96. package/build/client/_app/immutable/chunks/DSfxalyG.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/Djx0Ybbq.js +8 -0
  98. package/build/client/_app/immutable/chunks/Djx0Ybbq.js.br +0 -0
  99. package/build/client/_app/immutable/chunks/Djx0Ybbq.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/Drkf9Bgr.js +33 -0
  101. package/build/client/_app/immutable/chunks/Drkf9Bgr.js.br +0 -0
  102. package/build/client/_app/immutable/chunks/Drkf9Bgr.js.gz +0 -0
  103. package/build/client/_app/immutable/chunks/DujX6kBV.js +2 -0
  104. package/build/client/_app/immutable/chunks/DujX6kBV.js.br +0 -0
  105. package/build/client/_app/immutable/chunks/DujX6kBV.js.gz +0 -0
  106. package/build/client/_app/immutable/chunks/{4PztAao_.js → HPBQctDD.js} +1 -1
  107. package/build/client/_app/immutable/chunks/HPBQctDD.js.br +0 -0
  108. package/build/client/_app/immutable/chunks/HPBQctDD.js.gz +0 -0
  109. package/build/client/_app/immutable/chunks/Jaf1TUfw.js +1 -0
  110. package/build/client/_app/immutable/chunks/Jaf1TUfw.js.br +2 -0
  111. package/build/client/_app/immutable/chunks/Jaf1TUfw.js.gz +0 -0
  112. package/build/client/_app/immutable/chunks/{yOR3vtRx.js → KDW88ZZa.js} +1 -1
  113. package/build/client/_app/immutable/chunks/KDW88ZZa.js.br +0 -0
  114. package/build/client/_app/immutable/chunks/KDW88ZZa.js.gz +0 -0
  115. package/build/client/_app/immutable/chunks/{CfKHaDCm.js → TO5ESkEd.js} +1 -1
  116. package/build/client/_app/immutable/chunks/TO5ESkEd.js.br +0 -0
  117. package/build/client/_app/immutable/chunks/TO5ESkEd.js.gz +0 -0
  118. package/build/client/_app/immutable/chunks/axPa8Xqj.js +1 -0
  119. package/build/client/_app/immutable/chunks/axPa8Xqj.js.br +0 -0
  120. package/build/client/_app/immutable/chunks/axPa8Xqj.js.gz +0 -0
  121. package/build/client/_app/immutable/chunks/mbM5jWoB.js +4 -0
  122. package/build/client/_app/immutable/chunks/mbM5jWoB.js.br +0 -0
  123. package/build/client/_app/immutable/chunks/mbM5jWoB.js.gz +0 -0
  124. package/build/client/_app/immutable/chunks/{Bw2f0Pmg.js → oeB0PCTX.js} +1 -1
  125. package/build/client/_app/immutable/chunks/oeB0PCTX.js.br +0 -0
  126. package/build/client/_app/immutable/chunks/oeB0PCTX.js.gz +0 -0
  127. package/build/client/_app/immutable/chunks/{qXu78w_4.js → rtsVMmSs.js} +1 -1
  128. package/build/client/_app/immutable/chunks/rtsVMmSs.js.br +0 -0
  129. package/build/client/_app/immutable/chunks/rtsVMmSs.js.gz +0 -0
  130. package/build/client/_app/immutable/chunks/trViNh3G.js +1 -0
  131. package/build/client/_app/immutable/chunks/trViNh3G.js.br +0 -0
  132. package/build/client/_app/immutable/chunks/trViNh3G.js.gz +0 -0
  133. package/build/client/_app/immutable/chunks/yWz0pZR0.js +1 -0
  134. package/build/client/_app/immutable/chunks/yWz0pZR0.js.br +0 -0
  135. package/build/client/_app/immutable/chunks/yWz0pZR0.js.gz +0 -0
  136. package/build/client/_app/immutable/entry/app.Bf26VmYF.js +2 -0
  137. package/build/client/_app/immutable/entry/app.Bf26VmYF.js.br +0 -0
  138. package/build/client/_app/immutable/entry/app.Bf26VmYF.js.gz +0 -0
  139. package/build/client/_app/immutable/entry/start.B7gGsWVa.js +1 -0
  140. package/build/client/_app/immutable/entry/start.B7gGsWVa.js.br +2 -0
  141. package/build/client/_app/immutable/entry/start.B7gGsWVa.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/0.DzfWS9dq.js +3 -0
  143. package/build/client/_app/immutable/nodes/0.DzfWS9dq.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/0.DzfWS9dq.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/1.DXQZr-dH.js +1 -0
  146. package/build/client/_app/immutable/nodes/1.DXQZr-dH.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/1.DXQZr-dH.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/10.BHSGZYEC.js +1 -0
  149. package/build/client/_app/immutable/nodes/10.BHSGZYEC.js.br +0 -0
  150. package/build/client/_app/immutable/nodes/10.BHSGZYEC.js.gz +0 -0
  151. package/build/client/_app/immutable/nodes/11.CZ_7M4AF.js +1 -0
  152. package/build/client/_app/immutable/nodes/11.CZ_7M4AF.js.br +0 -0
  153. package/build/client/_app/immutable/nodes/11.CZ_7M4AF.js.gz +0 -0
  154. package/build/client/_app/immutable/nodes/12.DRr2l3NZ.js +1 -0
  155. package/build/client/_app/immutable/nodes/12.DRr2l3NZ.js.br +2 -0
  156. package/build/client/_app/immutable/nodes/12.DRr2l3NZ.js.gz +0 -0
  157. package/build/client/_app/immutable/nodes/13.DaAF9e8t.js +1 -0
  158. package/build/client/_app/immutable/nodes/13.DaAF9e8t.js.br +0 -0
  159. package/build/client/_app/immutable/nodes/13.DaAF9e8t.js.gz +0 -0
  160. package/build/client/_app/immutable/nodes/14.f9d5b8IR.js +11 -0
  161. package/build/client/_app/immutable/nodes/14.f9d5b8IR.js.br +0 -0
  162. package/build/client/_app/immutable/nodes/14.f9d5b8IR.js.gz +0 -0
  163. package/build/client/_app/immutable/nodes/2.pYR7L1PM.js +35 -0
  164. package/build/client/_app/immutable/nodes/2.pYR7L1PM.js.br +0 -0
  165. package/build/client/_app/immutable/nodes/2.pYR7L1PM.js.gz +0 -0
  166. package/build/client/_app/immutable/nodes/3.D-_vDp-o.js +1 -0
  167. package/build/client/_app/immutable/nodes/3.D-_vDp-o.js.br +0 -0
  168. package/build/client/_app/immutable/nodes/3.D-_vDp-o.js.gz +0 -0
  169. package/build/client/_app/immutable/nodes/{3.C-B1sGi_.js → 4.DylMSvDw.js} +1 -1
  170. package/build/client/_app/immutable/nodes/4.DylMSvDw.js.br +0 -0
  171. package/build/client/_app/immutable/nodes/4.DylMSvDw.js.gz +0 -0
  172. package/build/client/_app/immutable/nodes/5.DqrhJj9B.js +1 -0
  173. package/build/client/_app/immutable/nodes/5.DqrhJj9B.js.br +0 -0
  174. package/build/client/_app/immutable/nodes/5.DqrhJj9B.js.gz +0 -0
  175. package/build/client/_app/immutable/nodes/6.CPYhLc46.js +1 -0
  176. package/build/client/_app/immutable/nodes/6.CPYhLc46.js.br +4 -0
  177. package/build/client/_app/immutable/nodes/6.CPYhLc46.js.gz +0 -0
  178. package/build/client/_app/immutable/nodes/7.C1zE2WMk.js +2 -0
  179. package/build/client/_app/immutable/nodes/7.C1zE2WMk.js.br +0 -0
  180. package/build/client/_app/immutable/nodes/7.C1zE2WMk.js.gz +0 -0
  181. package/build/client/_app/immutable/nodes/8.CiDoIZSu.js +6 -0
  182. package/build/client/_app/immutable/nodes/8.CiDoIZSu.js.br +0 -0
  183. package/build/client/_app/immutable/nodes/8.CiDoIZSu.js.gz +0 -0
  184. package/build/client/_app/immutable/nodes/9.BVI-eEdV.js +1 -0
  185. package/build/client/_app/immutable/nodes/9.BVI-eEdV.js.br +0 -0
  186. package/build/client/_app/immutable/nodes/9.BVI-eEdV.js.gz +0 -0
  187. package/build/client/_app/version.json +1 -1
  188. package/build/client/_app/version.json.br +0 -0
  189. package/build/client/_app/version.json.gz +0 -0
  190. package/build/server/chunks/0-aCCGn5tt.js +9 -0
  191. package/build/server/chunks/{0-CqdHgLFy.js.map → 0-aCCGn5tt.js.map} +1 -1
  192. package/build/server/chunks/1-PJOfwEJU.js +9 -0
  193. package/build/server/chunks/{1-CptSbbsC.js.map → 1-PJOfwEJU.js.map} +1 -1
  194. package/build/server/chunks/{7-soEaW5k5.js → 10-C7WLHR92.js} +5 -5
  195. package/build/server/chunks/10-C7WLHR92.js.map +1 -0
  196. package/build/server/chunks/11-CPYwUx-7.js +21 -0
  197. package/build/server/chunks/11-CPYwUx-7.js.map +1 -0
  198. package/build/server/chunks/12-C5OSs5Op.js +20 -0
  199. package/build/server/chunks/12-C5OSs5Op.js.map +1 -0
  200. package/build/server/chunks/13-DPcsc1p-.js +9 -0
  201. package/build/server/chunks/13-DPcsc1p-.js.map +1 -0
  202. package/build/server/chunks/14-PJnTNd-L.js +9 -0
  203. package/build/server/chunks/14-PJnTNd-L.js.map +1 -0
  204. package/build/server/chunks/2-CGWn8izo.js +9 -0
  205. package/build/server/chunks/2-CGWn8izo.js.map +1 -0
  206. package/build/server/chunks/3-DSX59wuh.js +9 -0
  207. package/build/server/chunks/3-DSX59wuh.js.map +1 -0
  208. package/build/server/chunks/4-BML64sIA.js +9 -0
  209. package/build/server/chunks/4-BML64sIA.js.map +1 -0
  210. package/build/server/chunks/5-vxvPoTJ3.js +9 -0
  211. package/build/server/chunks/5-vxvPoTJ3.js.map +1 -0
  212. package/build/server/chunks/6-uS_X9B0s.js +21 -0
  213. package/build/server/chunks/6-uS_X9B0s.js.map +1 -0
  214. package/build/server/chunks/7-C3AnIPYT.js +9 -0
  215. package/build/server/chunks/7-C3AnIPYT.js.map +1 -0
  216. package/build/server/chunks/8-BJTCvcMs.js +9 -0
  217. package/build/server/chunks/8-BJTCvcMs.js.map +1 -0
  218. package/build/server/chunks/9-W6XYayeK.js +25 -0
  219. package/build/server/chunks/9-W6XYayeK.js.map +1 -0
  220. package/build/server/chunks/{AgentSidebar-BIVt78i3.js → AgentSidebar-BB_yQ9s0.js} +4 -4
  221. package/build/server/chunks/AgentSidebar-BB_yQ9s0.js.map +1 -0
  222. package/build/server/chunks/{Button-ZjVPI4zo.js → Button-DZYrr6c0.js} +6 -6
  223. package/build/server/chunks/Button-DZYrr6c0.js.map +1 -0
  224. package/build/server/chunks/{CopyTracesDropdown-B8MjGOwT.js → ChatStepTrace-COI_fylM.js} +29 -146
  225. package/build/server/chunks/ChatStepTrace-COI_fylM.js.map +1 -0
  226. package/build/server/chunks/{ContextEditor-Dgs8Ax9B.js → ContextEditor-ByGoXY5_.js} +28 -13
  227. package/build/server/chunks/ContextEditor-ByGoXY5_.js.map +1 -0
  228. package/build/server/chunks/{Icon-Csjrnozq.js → Icon-BgknHaZs.js} +2 -2
  229. package/build/server/chunks/{Icon-Csjrnozq.js.map → Icon-BgknHaZs.js.map} +1 -1
  230. package/build/server/chunks/{Input-BCU2QEQ2.js → Input-DZT3Mm_-.js} +3 -2
  231. package/build/server/chunks/Input-DZT3Mm_-.js.map +1 -0
  232. package/build/server/chunks/{Modal-bmttP-F1.js → Modal-D4tx0Bdo.js} +3 -3
  233. package/build/server/chunks/Modal-D4tx0Bdo.js.map +1 -0
  234. package/build/server/chunks/{Tab-Jw_OwV7Q.js → Tab-ClYAMM-e.js} +4 -4
  235. package/build/server/chunks/Tab-ClYAMM-e.js.map +1 -0
  236. package/build/server/chunks/_layout.svelte-BdnWuh8V.js +849 -0
  237. package/build/server/chunks/_layout.svelte-BdnWuh8V.js.map +1 -0
  238. package/build/server/chunks/{_layout.svelte-CrT993Da.js → _layout.svelte-Svi5xbzP.js} +1 -14
  239. package/build/server/chunks/_layout.svelte-Svi5xbzP.js.map +1 -0
  240. package/build/server/chunks/{_layout.svelte-GwcIlDHC.js → _layout.svelte-h89mGXIj.js} +25 -31
  241. package/build/server/chunks/_layout.svelte-h89mGXIj.js.map +1 -0
  242. package/build/server/chunks/{_page.svelte-CVO2CdmB.js → _page.svelte-39hvC6-Q.js} +4 -4
  243. package/build/server/chunks/{_page.svelte-CVO2CdmB.js.map → _page.svelte-39hvC6-Q.js.map} +1 -1
  244. package/build/server/chunks/{_page.svelte-d8hJxmZl.js → _page.svelte-B3PTKffw.js} +374 -361
  245. package/build/server/chunks/_page.svelte-B3PTKffw.js.map +1 -0
  246. package/build/server/chunks/{_page.svelte-D8d07zd0.js → _page.svelte-B4py4PyV.js} +160 -12
  247. package/build/server/chunks/_page.svelte-B4py4PyV.js.map +1 -0
  248. package/build/server/chunks/_page.svelte-CC26hDwf.js +675 -0
  249. package/build/server/chunks/_page.svelte-CC26hDwf.js.map +1 -0
  250. package/build/server/chunks/{_page.svelte-BAi74pJ3.js → _page.svelte-CbqAsz26.js} +3 -3
  251. package/build/server/chunks/_page.svelte-CbqAsz26.js.map +1 -0
  252. package/build/server/chunks/{_page.svelte-BOzS_rqK.js → _page.svelte-CnjXZO9K.js} +18 -27
  253. package/build/server/chunks/_page.svelte-CnjXZO9K.js.map +1 -0
  254. package/build/server/chunks/edit-workspace-context-OTOIRCI0.js +13 -0
  255. package/build/server/chunks/edit-workspace-context-OTOIRCI0.js.map +1 -0
  256. package/build/server/chunks/hooks-BJphIAi-.js +8 -0
  257. package/build/server/chunks/hooks-BJphIAi-.js.map +1 -0
  258. package/build/server/chunks/{Tab.svelte_svelte_type_style_lang-ByZ0KVzO.js → index-server-CefdgakO.js} +2 -2
  259. package/build/server/chunks/index-server-CefdgakO.js.map +1 -0
  260. package/build/server/chunks/{index2-C572SQM_.js → index2-BuOY2QE4.js} +2 -2
  261. package/build/server/chunks/{index2-C572SQM_.js.map → index2-BuOY2QE4.js.map} +1 -1
  262. package/build/server/chunks/log-content.svelte-B3ZvaoLs.js +20 -0
  263. package/build/server/chunks/log-content.svelte-B3ZvaoLs.js.map +1 -0
  264. package/build/server/index.js +3 -2
  265. package/build/server/index.js.map +1 -1
  266. package/build/server/manifest.js +51 -18
  267. package/build/server/manifest.js.map +1 -1
  268. package/package.json +3 -1
  269. package/src/backend/lib/decode-html-entities.spec.ts +29 -0
  270. package/src/backend/lib/decode-html-entities.ts +25 -0
  271. package/src/backend/roleplay/router.ts +31 -0
  272. package/src/backend/tests/academy.ts +353 -115
  273. package/src/backend/tests/analyze.ts +357 -0
  274. package/src/backend/tests/data.ts +48 -12
  275. package/src/backend/tests/emulate-agents.ts +39 -4
  276. package/src/backend/tests/prompt-issues.ts +204 -0
  277. package/src/backend/tests/router.ts +51 -4
  278. package/build/client/_app/immutable/assets/0.BPqDeVAI.css +0 -1
  279. package/build/client/_app/immutable/assets/0.BPqDeVAI.css.br +0 -0
  280. package/build/client/_app/immutable/assets/0.BPqDeVAI.css.gz +0 -0
  281. package/build/client/_app/immutable/assets/4.BIrSikaZ.css +0 -1
  282. package/build/client/_app/immutable/assets/4.BIrSikaZ.css.br +0 -0
  283. package/build/client/_app/immutable/assets/4.BIrSikaZ.css.gz +0 -0
  284. package/build/client/_app/immutable/assets/6.C4C8vBUW.css +0 -1
  285. package/build/client/_app/immutable/assets/6.C4C8vBUW.css.br +0 -0
  286. package/build/client/_app/immutable/assets/6.C4C8vBUW.css.gz +0 -0
  287. package/build/client/_app/immutable/assets/AgentSidebar.QeNZJtLq.css.br +0 -0
  288. package/build/client/_app/immutable/assets/AgentSidebar.QeNZJtLq.css.gz +0 -0
  289. package/build/client/_app/immutable/assets/Tab.BxaGw9IG.css +0 -1
  290. package/build/client/_app/immutable/assets/Tab.BxaGw9IG.css.br +0 -0
  291. package/build/client/_app/immutable/assets/Tab.BxaGw9IG.css.gz +0 -0
  292. package/build/client/_app/immutable/chunks/4PztAao_.js.br +0 -0
  293. package/build/client/_app/immutable/chunks/4PztAao_.js.gz +0 -0
  294. package/build/client/_app/immutable/chunks/B2gGEZTS.js +0 -1
  295. package/build/client/_app/immutable/chunks/B2gGEZTS.js.br +0 -2
  296. package/build/client/_app/immutable/chunks/B2gGEZTS.js.gz +0 -0
  297. package/build/client/_app/immutable/chunks/BHL1bMOV.js.br +0 -0
  298. package/build/client/_app/immutable/chunks/BHL1bMOV.js.gz +0 -0
  299. package/build/client/_app/immutable/chunks/BOQMymse.js.br +0 -0
  300. package/build/client/_app/immutable/chunks/BOQMymse.js.gz +0 -0
  301. package/build/client/_app/immutable/chunks/Bd7SZbXQ.js +0 -1
  302. package/build/client/_app/immutable/chunks/Bd7SZbXQ.js.br +0 -0
  303. package/build/client/_app/immutable/chunks/Bd7SZbXQ.js.gz +0 -0
  304. package/build/client/_app/immutable/chunks/Bf1oCG9-.js +0 -8
  305. package/build/client/_app/immutable/chunks/Bf1oCG9-.js.br +0 -0
  306. package/build/client/_app/immutable/chunks/Bf1oCG9-.js.gz +0 -0
  307. package/build/client/_app/immutable/chunks/BgaIh2D4.js +0 -1
  308. package/build/client/_app/immutable/chunks/BgaIh2D4.js.br +0 -0
  309. package/build/client/_app/immutable/chunks/BgaIh2D4.js.gz +0 -0
  310. package/build/client/_app/immutable/chunks/BrDK8TTs.js +0 -2
  311. package/build/client/_app/immutable/chunks/BrDK8TTs.js.br +0 -0
  312. package/build/client/_app/immutable/chunks/BrDK8TTs.js.gz +0 -0
  313. package/build/client/_app/immutable/chunks/BsKQRAyX.js +0 -1
  314. package/build/client/_app/immutable/chunks/BsKQRAyX.js.br +0 -0
  315. package/build/client/_app/immutable/chunks/BsKQRAyX.js.gz +0 -0
  316. package/build/client/_app/immutable/chunks/Bw2f0Pmg.js.br +0 -0
  317. package/build/client/_app/immutable/chunks/Bw2f0Pmg.js.gz +0 -0
  318. package/build/client/_app/immutable/chunks/BzAx_Qn3.js +0 -1
  319. package/build/client/_app/immutable/chunks/BzAx_Qn3.js.br +0 -0
  320. package/build/client/_app/immutable/chunks/BzAx_Qn3.js.gz +0 -0
  321. package/build/client/_app/immutable/chunks/C-dTPkQy.js +0 -1
  322. package/build/client/_app/immutable/chunks/C-dTPkQy.js.br +0 -0
  323. package/build/client/_app/immutable/chunks/C-dTPkQy.js.gz +0 -0
  324. package/build/client/_app/immutable/chunks/C769zFCl.js.br +0 -0
  325. package/build/client/_app/immutable/chunks/C769zFCl.js.gz +0 -0
  326. package/build/client/_app/immutable/chunks/C7FjDhij.js +0 -4
  327. package/build/client/_app/immutable/chunks/C7FjDhij.js.br +0 -0
  328. package/build/client/_app/immutable/chunks/C7FjDhij.js.gz +0 -0
  329. package/build/client/_app/immutable/chunks/CInh9KnU.js +0 -1
  330. package/build/client/_app/immutable/chunks/CInh9KnU.js.br +0 -2
  331. package/build/client/_app/immutable/chunks/CInh9KnU.js.gz +0 -0
  332. package/build/client/_app/immutable/chunks/CRTtd6by.js.br +0 -0
  333. package/build/client/_app/immutable/chunks/CRTtd6by.js.gz +0 -0
  334. package/build/client/_app/immutable/chunks/CRlLKhPr.js.br +0 -0
  335. package/build/client/_app/immutable/chunks/CRlLKhPr.js.gz +0 -0
  336. package/build/client/_app/immutable/chunks/CUfDVPpW.js +0 -1
  337. package/build/client/_app/immutable/chunks/CUfDVPpW.js.br +0 -0
  338. package/build/client/_app/immutable/chunks/CUfDVPpW.js.gz +0 -0
  339. package/build/client/_app/immutable/chunks/CfKHaDCm.js.br +0 -0
  340. package/build/client/_app/immutable/chunks/CfKHaDCm.js.gz +0 -0
  341. package/build/client/_app/immutable/chunks/Codln_pl.js.br +0 -0
  342. package/build/client/_app/immutable/chunks/Codln_pl.js.gz +0 -0
  343. package/build/client/_app/immutable/chunks/Culo9hD6.js.br +0 -0
  344. package/build/client/_app/immutable/chunks/Culo9hD6.js.gz +0 -0
  345. package/build/client/_app/immutable/chunks/CxDLEL1d.js +0 -8
  346. package/build/client/_app/immutable/chunks/CxDLEL1d.js.br +0 -0
  347. package/build/client/_app/immutable/chunks/CxDLEL1d.js.gz +0 -0
  348. package/build/client/_app/immutable/chunks/Cx_xzGPa.js.br +0 -0
  349. package/build/client/_app/immutable/chunks/Cx_xzGPa.js.gz +0 -0
  350. package/build/client/_app/immutable/chunks/D-51TRqM.js +0 -33
  351. package/build/client/_app/immutable/chunks/D-51TRqM.js.br +0 -0
  352. package/build/client/_app/immutable/chunks/D-51TRqM.js.gz +0 -0
  353. package/build/client/_app/immutable/chunks/D5fGPlBk.js.br +0 -0
  354. package/build/client/_app/immutable/chunks/D5fGPlBk.js.gz +0 -0
  355. package/build/client/_app/immutable/chunks/D9h7-Y-f.js +0 -1
  356. package/build/client/_app/immutable/chunks/D9h7-Y-f.js.br +0 -0
  357. package/build/client/_app/immutable/chunks/D9h7-Y-f.js.gz +0 -0
  358. package/build/client/_app/immutable/chunks/DAfsp-82.js.br +0 -0
  359. package/build/client/_app/immutable/chunks/DAfsp-82.js.gz +0 -0
  360. package/build/client/_app/immutable/chunks/DJ_lsF0V.js.br +0 -0
  361. package/build/client/_app/immutable/chunks/DJ_lsF0V.js.gz +0 -0
  362. package/build/client/_app/immutable/chunks/DaRvw8c-.js.br +0 -0
  363. package/build/client/_app/immutable/chunks/DaRvw8c-.js.gz +0 -0
  364. package/build/client/_app/immutable/chunks/FawE95CY.js +0 -1
  365. package/build/client/_app/immutable/chunks/FawE95CY.js.br +0 -0
  366. package/build/client/_app/immutable/chunks/FawE95CY.js.gz +0 -0
  367. package/build/client/_app/immutable/chunks/HBgR5qMR.js +0 -3
  368. package/build/client/_app/immutable/chunks/HBgR5qMR.js.br +0 -0
  369. package/build/client/_app/immutable/chunks/HBgR5qMR.js.gz +0 -0
  370. package/build/client/_app/immutable/chunks/I-mny6CH.js +0 -1
  371. package/build/client/_app/immutable/chunks/I-mny6CH.js.br +0 -0
  372. package/build/client/_app/immutable/chunks/I-mny6CH.js.gz +0 -0
  373. package/build/client/_app/immutable/chunks/aeuWzujc.js +0 -1
  374. package/build/client/_app/immutable/chunks/aeuWzujc.js.br +0 -2
  375. package/build/client/_app/immutable/chunks/aeuWzujc.js.gz +0 -0
  376. package/build/client/_app/immutable/chunks/qXu78w_4.js.br +0 -0
  377. package/build/client/_app/immutable/chunks/qXu78w_4.js.gz +0 -0
  378. package/build/client/_app/immutable/chunks/yOR3vtRx.js.br +0 -0
  379. package/build/client/_app/immutable/chunks/yOR3vtRx.js.gz +0 -0
  380. package/build/client/_app/immutable/entry/app.Dd7V5oBZ.js +0 -2
  381. package/build/client/_app/immutable/entry/app.Dd7V5oBZ.js.br +0 -0
  382. package/build/client/_app/immutable/entry/app.Dd7V5oBZ.js.gz +0 -0
  383. package/build/client/_app/immutable/entry/start.I6276KWl.js +0 -1
  384. package/build/client/_app/immutable/entry/start.I6276KWl.js.br +0 -2
  385. package/build/client/_app/immutable/entry/start.I6276KWl.js.gz +0 -0
  386. package/build/client/_app/immutable/nodes/0.DgVTcUxG.js +0 -3
  387. package/build/client/_app/immutable/nodes/0.DgVTcUxG.js.br +0 -0
  388. package/build/client/_app/immutable/nodes/0.DgVTcUxG.js.gz +0 -0
  389. package/build/client/_app/immutable/nodes/1._3H1cdWd.js +0 -1
  390. package/build/client/_app/immutable/nodes/1._3H1cdWd.js.br +0 -0
  391. package/build/client/_app/immutable/nodes/1._3H1cdWd.js.gz +0 -0
  392. package/build/client/_app/immutable/nodes/2.BO0WBJz3.js +0 -1
  393. package/build/client/_app/immutable/nodes/2.BO0WBJz3.js.br +0 -0
  394. package/build/client/_app/immutable/nodes/2.BO0WBJz3.js.gz +0 -0
  395. package/build/client/_app/immutable/nodes/3.C-B1sGi_.js.br +0 -0
  396. package/build/client/_app/immutable/nodes/3.C-B1sGi_.js.gz +0 -0
  397. package/build/client/_app/immutable/nodes/4.SsrvuMXV.js +0 -35
  398. package/build/client/_app/immutable/nodes/4.SsrvuMXV.js.br +0 -0
  399. package/build/client/_app/immutable/nodes/4.SsrvuMXV.js.gz +0 -0
  400. package/build/client/_app/immutable/nodes/5.DM_0dw43.js +0 -1
  401. package/build/client/_app/immutable/nodes/5.DM_0dw43.js.br +0 -0
  402. package/build/client/_app/immutable/nodes/5.DM_0dw43.js.gz +0 -0
  403. package/build/client/_app/immutable/nodes/6.BLcf1-sM.js +0 -5
  404. package/build/client/_app/immutable/nodes/6.BLcf1-sM.js.br +0 -0
  405. package/build/client/_app/immutable/nodes/6.BLcf1-sM.js.gz +0 -0
  406. package/build/client/_app/immutable/nodes/7.BLozkJCY.js +0 -1
  407. package/build/client/_app/immutable/nodes/7.BLozkJCY.js.br +0 -0
  408. package/build/client/_app/immutable/nodes/7.BLozkJCY.js.gz +0 -0
  409. package/build/client/_app/immutable/nodes/8.BeHRzquW.js +0 -1
  410. package/build/client/_app/immutable/nodes/8.BeHRzquW.js.br +0 -0
  411. package/build/client/_app/immutable/nodes/8.BeHRzquW.js.gz +0 -0
  412. package/build/client/_app/immutable/nodes/9.B1qNbiqD.js +0 -11
  413. package/build/client/_app/immutable/nodes/9.B1qNbiqD.js.br +0 -0
  414. package/build/client/_app/immutable/nodes/9.B1qNbiqD.js.gz +0 -0
  415. package/build/server/chunks/0-CqdHgLFy.js +0 -9
  416. package/build/server/chunks/1-CptSbbsC.js +0 -9
  417. package/build/server/chunks/2-CVrU1q5e.js +0 -9
  418. package/build/server/chunks/2-CVrU1q5e.js.map +0 -1
  419. package/build/server/chunks/3-Bi3FZgxy.js +0 -9
  420. package/build/server/chunks/3-Bi3FZgxy.js.map +0 -1
  421. package/build/server/chunks/4-Cg81z1QT.js +0 -9
  422. package/build/server/chunks/4-Cg81z1QT.js.map +0 -1
  423. package/build/server/chunks/5-BDZ8fU2l.js +0 -9
  424. package/build/server/chunks/5-BDZ8fU2l.js.map +0 -1
  425. package/build/server/chunks/6-_jdLZ_Lr.js +0 -33
  426. package/build/server/chunks/6-_jdLZ_Lr.js.map +0 -1
  427. package/build/server/chunks/7-soEaW5k5.js.map +0 -1
  428. package/build/server/chunks/8-Yp_dUmRS.js +0 -9
  429. package/build/server/chunks/8-Yp_dUmRS.js.map +0 -1
  430. package/build/server/chunks/9-Cb4lmLGK.js +0 -9
  431. package/build/server/chunks/9-Cb4lmLGK.js.map +0 -1
  432. package/build/server/chunks/AgentSidebar-BIVt78i3.js.map +0 -1
  433. package/build/server/chunks/Button-ZjVPI4zo.js.map +0 -1
  434. package/build/server/chunks/ContextEditor-Dgs8Ax9B.js.map +0 -1
  435. package/build/server/chunks/CopyTracesDropdown-B8MjGOwT.js.map +0 -1
  436. package/build/server/chunks/Input-BCU2QEQ2.js.map +0 -1
  437. package/build/server/chunks/Modal-bmttP-F1.js.map +0 -1
  438. package/build/server/chunks/Tab-Jw_OwV7Q.js.map +0 -1
  439. package/build/server/chunks/Tab.svelte_svelte_type_style_lang-ByZ0KVzO.js.map +0 -1
  440. package/build/server/chunks/_layout.svelte-CrT993Da.js.map +0 -1
  441. package/build/server/chunks/_layout.svelte-GwcIlDHC.js.map +0 -1
  442. package/build/server/chunks/_page.svelte--l_LvFv_.js +0 -2307
  443. package/build/server/chunks/_page.svelte--l_LvFv_.js.map +0 -1
  444. package/build/server/chunks/_page.svelte-BAi74pJ3.js.map +0 -1
  445. package/build/server/chunks/_page.svelte-BOzS_rqK.js.map +0 -1
  446. package/build/server/chunks/_page.svelte-D8d07zd0.js.map +0 -1
  447. package/build/server/chunks/_page.svelte-d8hJxmZl.js.map +0 -1
  448. /package/build/client/_app/immutable/assets/{9.C5apk4jm.css → 14.C5apk4jm.css} +0 -0
  449. /package/build/client/_app/immutable/assets/{9.C5apk4jm.css.br → 14.C5apk4jm.css.br} +0 -0
  450. /package/build/client/_app/immutable/assets/{9.C5apk4jm.css.gz → 14.C5apk4jm.css.gz} +0 -0
  451. /package/build/client/_app/immutable/assets/{2.Dzh7_Q8n.css → 3.Dzh7_Q8n.css} +0 -0
  452. /package/build/client/_app/immutable/assets/{2.Dzh7_Q8n.css.br → 3.Dzh7_Q8n.css.br} +0 -0
  453. /package/build/client/_app/immutable/assets/{2.Dzh7_Q8n.css.gz → 3.Dzh7_Q8n.css.gz} +0 -0
  454. /package/build/client/_app/immutable/assets/{3.CZVw96CJ.css → 4.CZVw96CJ.css} +0 -0
  455. /package/build/client/_app/immutable/assets/{3.CZVw96CJ.css.br → 4.CZVw96CJ.css.br} +0 -0
  456. /package/build/client/_app/immutable/assets/{3.CZVw96CJ.css.gz → 4.CZVw96CJ.css.gz} +0 -0
  457. /package/build/client/_app/immutable/assets/{CopyTracesDropdown.NFJFjHv0.css → ChatStepTrace.NFJFjHv0.css} +0 -0
  458. /package/build/client/_app/immutable/assets/{CopyTracesDropdown.NFJFjHv0.css.br → ChatStepTrace.NFJFjHv0.css.br} +0 -0
  459. /package/build/client/_app/immutable/assets/{CopyTracesDropdown.NFJFjHv0.css.gz → ChatStepTrace.NFJFjHv0.css.gz} +0 -0
  460. /package/build/client/_app/immutable/assets/{Modal.tn0RQdqM.css → bosun-theme.tn0RQdqM.css} +0 -0
  461. /package/build/client/_app/immutable/assets/{Modal.tn0RQdqM.css.br → bosun-theme.tn0RQdqM.css.br} +0 -0
  462. /package/build/client/_app/immutable/assets/{Modal.tn0RQdqM.css.gz → bosun-theme.tn0RQdqM.css.gz} +0 -0
@@ -0,0 +1,849 @@
1
+ import { a as attr, s as stringify, e as ensure_array_like, b as attr_class } from './index2-BuOY2QE4.js';
2
+ import { s as setEditWorkspaceContext, P as Panel, g as getEditWorkspaceContext } from './edit-workspace-context-OTOIRCI0.js';
3
+ import { B as Button } from './Button-DZYrr6c0.js';
4
+ import { T as Tabs, a as Tab } from './Tab-ClYAMM-e.js';
5
+ import { M as Modal } from './Modal-D4tx0Bdo.js';
6
+ import { X as escape_html } from './context-zH5kvtGY.js';
7
+ import { o as onDestroy } from './index-server-CefdgakO.js';
8
+ import { p as page, g as goto } from './index3-DeV2OWZf.js';
9
+ import { p as public_env } from './shared-server-DaWdgxVh.js';
10
+ import { t as trpc } from './trpc-client-Bucti7HD.js';
11
+ import 'nunjucks';
12
+ import { A as AgentSidebar } from './AgentSidebar-BB_yQ9s0.js';
13
+ import { g as getAgentsContext } from './agents-context-BrlIlkOW.js';
14
+ import { C as ContextEditor } from './ContextEditor-ByGoXY5_.js';
15
+ import { c as clearChatContent, a as clearLogs } from './log-content.svelte-B3ZvaoLs.js';
16
+ import './index-DxaLoiKh.js';
17
+ import './events-M0vvlm3M.js';
18
+ import './state.svelte-DtOGaiYC.js';
19
+ import './utils-KcIDVAAe.js';
20
+ import '@trpc/client';
21
+ import './Icon-BgknHaZs.js';
22
+ import 'js-yaml';
23
+
24
+ function PopoverModal($$renderer, $$props) {
25
+ let { title, onClose, children } = $$props;
26
+ $$renderer.push(`<div class="absolute inset-0 z-20 bg-black/20"></div> <div class="absolute inset-2 z-30 flex min-w-0 flex-col overflow-hidden rounded-lg border border-rc-gray-600 bg-rc-gray-900 shadow-2xl"><div class="flex items-center justify-between border-b border-rc-gray-700 px-3 py-2"><button type="button" class="inline-flex h-7 w-7 items-center justify-center rounded-md text-rc-gray-200 hover:bg-rc-gray-700" aria-label="Close" title="Close">X</button> <div class="text-sm font-semibold text-rc-gray-200">${escape_html(title)}</div> <div class="w-7"></div></div> <div class="min-h-0 flex flex-1 flex-col overflow-hidden">`);
27
+ children($$renderer);
28
+ $$renderer.push(`<!----></div></div>`);
29
+ }
30
+ class WebSocketClient {
31
+ constructor(wsUrl) {
32
+ this.wsUrl = wsUrl;
33
+ }
34
+ ws = null;
35
+ openHandler = null;
36
+ closeHandler = null;
37
+ errorHandler = null;
38
+ messageHandler = null;
39
+ retries = 0;
40
+ maxRetries = 5;
41
+ retryDelay = 500;
42
+ retryTimeout = null;
43
+ isOpen = false;
44
+ isDestroyed = false;
45
+ agentsLoaded = false;
46
+ init = () => {
47
+ if (this.isOpen) {
48
+ return;
49
+ }
50
+ this.agentsLoaded = false;
51
+ console.log(`Initializing websocket connection with [${this.wsUrl}]`);
52
+ try {
53
+ this.ws = new WebSocket(this.wsUrl);
54
+ } catch (e) {
55
+ this.retryConnect();
56
+ return;
57
+ }
58
+ this.isDestroyed = false;
59
+ this.ws.onmessage = (event) => {
60
+ const message = JSON.parse(event.data);
61
+ if (message.channel === "error") {
62
+ this.errorHandler?.(message.message);
63
+ } else if (message.channel === "app-events") {
64
+ console.log("MSG:", message.event.type);
65
+ if (message.event.type === "agents-loaded") {
66
+ this.agentsLoaded = true;
67
+ }
68
+ } else if (message.channel === "log") {
69
+ console.log(`MSG: log [${message.message.severity}]`, message.message.message);
70
+ } else if (message.channel === "api-call-trace") {
71
+ console.log(
72
+ "MSG: api-call-trace",
73
+ message.trace?.operationName,
74
+ message.trace?.method,
75
+ message.trace?.path
76
+ );
77
+ } else if (message.channel === "conversational-trace") {
78
+ console.log(
79
+ "MSG: conversational-trace",
80
+ message.trace?.eventName,
81
+ message.trace?.role,
82
+ message.trace?.medium
83
+ );
84
+ }
85
+ this.messageHandler?.(message);
86
+ };
87
+ this.ws.onerror = (error) => {
88
+ console.error("Websocket error:", error);
89
+ this.ws?.close();
90
+ this.retryConnect();
91
+ };
92
+ this.ws.onclose = () => {
93
+ console.log("Websocket closed");
94
+ this.isOpen = false;
95
+ this.retryConnect();
96
+ };
97
+ this.ws.onopen = () => {
98
+ this.retries = 0;
99
+ this.isOpen = true;
100
+ if (this.retryTimeout) {
101
+ clearTimeout(this.retryTimeout);
102
+ }
103
+ this.openHandler?.();
104
+ console.log("Websocket connected");
105
+ };
106
+ };
107
+ destroy = () => {
108
+ this.isDestroyed = true;
109
+ this.ws?.close();
110
+ };
111
+ onOpen = (handler) => {
112
+ this.openHandler = handler;
113
+ if (this.isOpen) {
114
+ handler();
115
+ }
116
+ };
117
+ onClose = (handler) => {
118
+ this.closeHandler = handler;
119
+ if (!this.isOpen) {
120
+ handler();
121
+ }
122
+ };
123
+ onError = (handler) => {
124
+ this.errorHandler = handler;
125
+ };
126
+ onMessage = (handler) => {
127
+ this.messageHandler = handler;
128
+ };
129
+ sendMessage = (message) => {
130
+ if (message.channel === "app-events") ;
131
+ this.ws?.send(JSON.stringify(message));
132
+ };
133
+ isReady = () => this.isOpen && this.agentsLoaded;
134
+ retryConnect = () => {
135
+ if (this.isDestroyed) return;
136
+ if (!this.isOpen && this.retries < this.maxRetries) {
137
+ this.retries++;
138
+ this.init();
139
+ this.retryTimeout = setTimeout(this.retryConnect, this.retryDelay);
140
+ } else {
141
+ this.errorHandler?.("WebSocket Error, please reload the browser");
142
+ this.closeHandler?.();
143
+ }
144
+ };
145
+ }
146
+ const wsHost = public_env.PUBLIC_WS_HOST ?? "ws://localhost:8080";
147
+ const wsClient = new WebSocketClient(wsHost);
148
+ function SchemaEditor($$renderer, $$props) {
149
+ $$renderer.component(($$renderer2) => {
150
+ let editor = null;
151
+ let model = null;
152
+ let disposables = [];
153
+ let { class: className } = $$props;
154
+ onDestroy(() => {
155
+ for (const d of disposables) {
156
+ try {
157
+ d.dispose();
158
+ } catch {
159
+ }
160
+ }
161
+ disposables = [];
162
+ const toDisposeModel = model;
163
+ model = null;
164
+ try {
165
+ if (editor) {
166
+ try {
167
+ editor.setModel(null);
168
+ } catch {
169
+ }
170
+ editor.dispose();
171
+ }
172
+ } finally {
173
+ editor = null;
174
+ }
175
+ try {
176
+ toDisposeModel?.dispose();
177
+ } catch {
178
+ }
179
+ });
180
+ Panel($$renderer2, {
181
+ class: `overflow-hidden ${stringify(className)}`,
182
+ children: ($$renderer3) => {
183
+ $$renderer3.push(`<div class="flex h-full flex-col"><div class="h-full w-full"></div></div>`);
184
+ }
185
+ });
186
+ });
187
+ }
188
+ function PromptEditor($$renderer, $$props) {
189
+ $$renderer.component(($$renderer2) => {
190
+ let {
191
+ class: className,
192
+ showSchemaButton,
193
+ onSchemaClick,
194
+ readOnly = false,
195
+ showPreviewToggle = true,
196
+ preview = null
197
+ } = $$props;
198
+ let internalPreview = false;
199
+ const effectivePreview = preview !== null ? preview : internalPreview;
200
+ Panel($$renderer2, {
201
+ class: `relative overflow-hidden ${stringify(className)}`,
202
+ children: ($$renderer3) => {
203
+ $$renderer3.push(`<div class="prompt-editor flex h-full flex-col"><div class="relative flex-1"><div class="h-full w-full"></div> `);
204
+ if (showPreviewToggle && !readOnly) {
205
+ $$renderer3.push("<!--[-->");
206
+ $$renderer3.push(`<label class="absolute right-6 top-1 z-10 inline-flex cursor-pointer items-center gap-2 bg-transparent text-rc-gray-100 focus:outline-none focus:ring-0"><input type="checkbox"${attr("checked", effectivePreview, true)} class="checkbox svelte-1br1z62"/> <span>Preview</span></label>`);
207
+ } else {
208
+ $$renderer3.push("<!--[!-->");
209
+ }
210
+ $$renderer3.push(`<!--]--></div> `);
211
+ if (showSchemaButton && onSchemaClick) {
212
+ $$renderer3.push("<!--[-->");
213
+ $$renderer3.push(`<div class="flex justify-end">`);
214
+ Button($$renderer3, {
215
+ variant: "secondary",
216
+ onclick: onSchemaClick,
217
+ class: "absolute bottom-2 right-6 !font-medium",
218
+ children: ($$renderer4) => {
219
+ $$renderer4.push(`<!---->Schema`);
220
+ },
221
+ $$slots: { default: true }
222
+ });
223
+ $$renderer3.push(`<!----></div>`);
224
+ } else {
225
+ $$renderer3.push("<!--[!-->");
226
+ }
227
+ $$renderer3.push(`<!--]--></div>`);
228
+ }
229
+ });
230
+ });
231
+ }
232
+ function ModeAsyncPopoverContent($$renderer, $$props) {
233
+ $$renderer.component(($$renderer2) => {
234
+ const { state: workspace, actions } = getEditWorkspaceContext();
235
+ let popoverTab = "results";
236
+ if (workspace.edit.popover) {
237
+ $$renderer2.push("<!--[-->");
238
+ const popover = workspace.edit.popover;
239
+ $$renderer2.push(`<div class="border-b border-rc-gray-700 px-2 py-1">`);
240
+ Tabs($$renderer2, {
241
+ value: popoverTab,
242
+ ariaLabel: "Popover tabs",
243
+ onChange: ({ value }) => popoverTab = value,
244
+ children: ($$renderer3) => {
245
+ Tab($$renderer3, {
246
+ value: "results",
247
+ children: ($$renderer4) => {
248
+ $$renderer4.push(`<!---->Results`);
249
+ }
250
+ });
251
+ $$renderer3.push(`<!----> `);
252
+ Tab($$renderer3, {
253
+ value: "raw",
254
+ children: ($$renderer4) => {
255
+ $$renderer4.push(`<!---->Raw`);
256
+ }
257
+ });
258
+ $$renderer3.push(`<!---->`);
259
+ },
260
+ $$slots: { default: true }
261
+ });
262
+ $$renderer2.push(`<!----></div> <div class="min-h-0 flex-1 overflow-auto p-3">`);
263
+ if (popover.status === "loading") {
264
+ $$renderer2.push("<!--[-->");
265
+ $$renderer2.push(`<div class="flex h-full items-center justify-center text-sm text-rc-gray-300">Loading</div>`);
266
+ } else {
267
+ $$renderer2.push("<!--[!-->");
268
+ if (popover.status === "error") {
269
+ $$renderer2.push("<!--[-->");
270
+ if (popoverTab === "raw") {
271
+ $$renderer2.push("<!--[-->");
272
+ const raw = typeof popover.data?.raw === "string" ? popover.data.raw : popover.error;
273
+ $$renderer2.push(`<pre class="whitespace-pre-wrap font-mono text-xs text-rc-gray-200">${escape_html(raw || "—")}</pre>`);
274
+ } else {
275
+ $$renderer2.push("<!--[!-->");
276
+ $$renderer2.push(`<div class="flex h-full flex-col gap-3"><div class="text-sm text-red-400">${escape_html(popover.error)}</div></div>`);
277
+ }
278
+ $$renderer2.push(`<!--]-->`);
279
+ } else {
280
+ $$renderer2.push("<!--[!-->");
281
+ const data = popover.data;
282
+ if (popoverTab === "raw") {
283
+ $$renderer2.push("<!--[-->");
284
+ $$renderer2.push(`<pre class="whitespace-pre-wrap font-mono text-xs text-rc-gray-200">${escape_html(typeof data?.raw === "string" ? data.raw : "—")}</pre>`);
285
+ } else {
286
+ $$renderer2.push("<!--[!-->");
287
+ if (popover.kind === "analyze") {
288
+ $$renderer2.push("<!--[-->");
289
+ $$renderer2.push(`<div class="mb-3 text-sm font-semibold text-rc-gray-100">${escape_html(data?.title ?? "Analysis")}</div> `);
290
+ if (Array.isArray(data?.quotes) && data.quotes.length > 0) {
291
+ $$renderer2.push("<!--[-->");
292
+ $$renderer2.push(`<div class="flex flex-col gap-2"><!--[-->`);
293
+ const each_array = ensure_array_like(data.quotes);
294
+ for (let i = 0, $$length = each_array.length; i < $$length; i++) {
295
+ let q = each_array[i];
296
+ $$renderer2.push(`<button type="button" class="rounded-md border border-rc-gray-700 bg-rc-gray-900/40 px-3 py-2 text-left hover:border-rc-gray-500"><div class="flex items-center justify-between text-xs text-rc-gray-400"><div>Quote ${escape_html(i + 1)}</div> <div>x${escape_html(q.count)}/10</div></div> <div class="whitespace-pre-wrap break-words text-sm text-rc-gray-100">${escape_html(q.quote)}</div></button>`);
297
+ }
298
+ $$renderer2.push(`<!--]--></div>`);
299
+ } else {
300
+ $$renderer2.push("<!--[!-->");
301
+ $$renderer2.push(`<div class="text-sm text-rc-gray-300">No quotes returned.</div>`);
302
+ }
303
+ $$renderer2.push(`<!--]-->`);
304
+ } else {
305
+ $$renderer2.push("<!--[!-->");
306
+ $$renderer2.push(`<div class="mb-3 text-sm font-semibold text-rc-gray-100">${escape_html(data?.title ?? "Prompt issues")}</div> `);
307
+ if (Array.isArray(data?.issues) && data.issues.length > 0) {
308
+ $$renderer2.push("<!--[-->");
309
+ $$renderer2.push(`<div class="flex flex-col gap-3"><!--[-->`);
310
+ const each_array_1 = ensure_array_like(data.issues);
311
+ for (let i = 0, $$length = each_array_1.length; i < $$length; i++) {
312
+ let issue = each_array_1[i];
313
+ $$renderer2.push(`<div class="rounded-md border border-rc-gray-700 bg-rc-gray-900/40 p-3"><div class="flex items-start justify-between gap-3"><div class="text-xs font-semibold text-rc-gray-400">Issue ${escape_html(i + 1)}</div> <div class="text-xs text-rc-gray-500">${escape_html(issue.type)}</div></div> <div class="mt-1 whitespace-pre-wrap break-words text-sm text-rc-gray-100">${escape_html(issue.reason)}</div> `);
314
+ if (issue.contradictingQuotes && issue.contradictingQuotes.length > 0) {
315
+ $$renderer2.push("<!--[-->");
316
+ $$renderer2.push(`<div class="mt-3 flex flex-col gap-2"><!--[-->`);
317
+ const each_array_2 = ensure_array_like(issue.contradictingQuotes);
318
+ for (let $$index_1 = 0, $$length2 = each_array_2.length; $$index_1 < $$length2; $$index_1++) {
319
+ let q = each_array_2[$$index_1];
320
+ $$renderer2.push(`<button type="button" class="rounded-md border border-rc-gray-700 bg-rc-gray-900/40 px-3 py-2 text-left hover:border-rc-gray-500"><div class="whitespace-pre-wrap break-words text-sm text-rc-gray-100">${escape_html(q)}</div></button>`);
321
+ }
322
+ $$renderer2.push(`<!--]--></div>`);
323
+ } else {
324
+ $$renderer2.push("<!--[!-->");
325
+ }
326
+ $$renderer2.push(`<!--]--></div>`);
327
+ }
328
+ $$renderer2.push(`<!--]--></div>`);
329
+ } else {
330
+ $$renderer2.push("<!--[!-->");
331
+ $$renderer2.push(`<div class="text-sm text-rc-gray-300">No issues found.</div>`);
332
+ }
333
+ $$renderer2.push(`<!--]-->`);
334
+ }
335
+ $$renderer2.push(`<!--]-->`);
336
+ }
337
+ $$renderer2.push(`<!--]-->`);
338
+ }
339
+ $$renderer2.push(`<!--]-->`);
340
+ }
341
+ $$renderer2.push(`<!--]--></div>`);
342
+ } else {
343
+ $$renderer2.push("<!--[!-->");
344
+ }
345
+ $$renderer2.push(`<!--]-->`);
346
+ });
347
+ }
348
+ function ModeContextPopoverContent($$renderer, $$props) {
349
+ $$renderer.component(($$renderer2) => {
350
+ const tmp = getEditWorkspaceContext(), workspace = tmp.state, actions = tmp.actions;
351
+ function handleContextChanged(newContext) {
352
+ workspace.promptContext = newContext;
353
+ actions.sendAppEvent({ type: "context-updated", context: newContext });
354
+ }
355
+ $$renderer2.push(`<div class="min-h-0 flex-1 overflow-hidden p-3">`);
356
+ ContextEditor($$renderer2, {
357
+ class: "h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl focus:outline-none focus:ring-0",
358
+ context: workspace.promptContext ?? workspace.context,
359
+ onContextChanged: handleContextChanged,
360
+ suppressErrors: true
361
+ });
362
+ $$renderer2.push(`<!----></div>`);
363
+ });
364
+ }
365
+ function safeDecodeURIComponent(raw) {
366
+ try {
367
+ return decodeURIComponent(raw);
368
+ } catch {
369
+ return raw;
370
+ }
371
+ }
372
+ function parseEditPath(pathname) {
373
+ const cleaned = String(pathname || "").split("?")[0]?.split("#")[0] ?? "";
374
+ const parts = cleaned.split("/").filter(Boolean);
375
+ if (parts[0] !== "edit") return { agentId: null, tab: null };
376
+ if (parts.length === 1) return { agentId: null, tab: null };
377
+ const agentId = safeDecodeURIComponent(parts[1] ?? "");
378
+ const maybeTab = parts[2] ?? null;
379
+ if (!maybeTab) return { agentId, tab: "roleplay" };
380
+ if (maybeTab === "roleplay") return { agentId, tab: "roleplay" };
381
+ if (maybeTab === "tests") return { agentId, tab: "tests" };
382
+ return { agentId, tab: null };
383
+ }
384
+ function initEditState(input) {
385
+ const parsed = parseEditPath(input.pathname);
386
+ const tab = parsed.tab ?? "roleplay";
387
+ return {
388
+ tab,
389
+ popover: null,
390
+ highlights: null,
391
+ requestSeq: 0
392
+ };
393
+ }
394
+ function openPopover(state, input) {
395
+ const requestSeq = state.requestSeq + 1;
396
+ return {
397
+ ...state,
398
+ requestSeq,
399
+ popover: {
400
+ kind: input.kind,
401
+ status: "loading",
402
+ requestId: requestSeq
403
+ },
404
+ highlights: null
405
+ };
406
+ }
407
+ function setPopoverReady(state, input) {
408
+ if (!state.popover) return state;
409
+ if (state.popover.requestId !== input.requestId) return state;
410
+ return {
411
+ ...state,
412
+ popover: { ...state.popover, status: "ready", data: input.data, error: void 0 }
413
+ };
414
+ }
415
+ function setPopoverError(state, input) {
416
+ if (!state.popover) return state;
417
+ if (state.popover.requestId !== input.requestId) return state;
418
+ return {
419
+ ...state,
420
+ popover: {
421
+ ...state.popover,
422
+ status: "error",
423
+ error: String(input.error || "Unknown error"),
424
+ data: input.data
425
+ }
426
+ };
427
+ }
428
+ function closePopover(state) {
429
+ return {
430
+ ...state,
431
+ popover: null,
432
+ highlights: null
433
+ };
434
+ }
435
+ function setHighlightQuotes(state, quotes) {
436
+ return {
437
+ ...state,
438
+ highlights: {
439
+ quotes: quotes ?? [],
440
+ focusQuote: null,
441
+ focusNonce: 0
442
+ }
443
+ };
444
+ }
445
+ function focusQuote(state, quote) {
446
+ const q = String(quote || "");
447
+ if (!q) return state;
448
+ const prev = state.highlights ?? { quotes: [], focusQuote: null, focusNonce: 0 };
449
+ return {
450
+ ...state,
451
+ highlights: {
452
+ ...prev,
453
+ focusQuote: q,
454
+ focusNonce: (prev.focusNonce ?? 0) + 1
455
+ }
456
+ };
457
+ }
458
+ function _layout($$renderer, $$props) {
459
+ $$renderer.component(($$renderer2) => {
460
+ let { params, children } = $$props;
461
+ const { onError } = getAgentsContext();
462
+ let agents = [];
463
+ const dec = (s) => {
464
+ try {
465
+ return s ? decodeURIComponent(s) : "";
466
+ } catch {
467
+ return s || "";
468
+ }
469
+ };
470
+ const enc = (s) => encodeURIComponent(s);
471
+ function normalizeAgentId(raw) {
472
+ return dec(raw).trim().replace(/^\/+|\/+$/g, "");
473
+ }
474
+ (() => normalizeAgentId(params.agent))();
475
+ const workspace = {
476
+ agentId: normalizeAgentId(params.agent),
477
+ wsLoaded: false,
478
+ steps: [],
479
+ currentStep: null,
480
+ prompt: "",
481
+ context: null,
482
+ promptContext: null,
483
+ agentStates: [],
484
+ currentState: null,
485
+ contextPopoverOpen: false,
486
+ edit: initEditState({ pathname: page.url.pathname })
487
+ };
488
+ function sendAppEvent(event) {
489
+ wsClient.sendMessage({ channel: "app-events", event });
490
+ }
491
+ const schemaValue = workspace.currentStep?.schema ?? null;
492
+ const hasSchema = !!schemaValue && schemaValue.trim().length > 0;
493
+ let schemaModalOpen = false;
494
+ function openSchemaModal() {
495
+ if (!schemaValue) return;
496
+ schemaModalOpen = true;
497
+ }
498
+ function handleModeTabChange({ value }) {
499
+ if (value === workspace.edit.tab) return;
500
+ closeAllPopovers();
501
+ page.url.searchParams.get("step");
502
+ `/edit/${enc(workspace.agentId)}/${value}`;
503
+ goto();
504
+ }
505
+ const activeTopTab = (() => {
506
+ const head = page.url.pathname.split("/")[1];
507
+ return head === "traces" ? "view" : head;
508
+ })();
509
+ function handleTopTabChange({ value }) {
510
+ if (value === activeTopTab) return;
511
+ closeAllPopovers();
512
+ if (value === "edit") return goto();
513
+ if (value === "view") return goto();
514
+ goto();
515
+ }
516
+ function openModePopover(kind) {
517
+ workspace.contextPopoverOpen = false;
518
+ workspace.edit = openPopover(workspace.edit, { kind });
519
+ return workspace.edit.popover?.requestId ?? 0;
520
+ }
521
+ function setModePopoverReady(requestId, data) {
522
+ workspace.edit = setPopoverReady(workspace.edit, { requestId, data });
523
+ }
524
+ function setModePopoverError(requestId, error, data) {
525
+ workspace.edit = setPopoverError(workspace.edit, { requestId, error, data });
526
+ }
527
+ function closeModePopover() {
528
+ workspace.edit = closePopover(workspace.edit);
529
+ }
530
+ function openContextPopover() {
531
+ closeModePopover();
532
+ workspace.contextPopoverOpen = true;
533
+ }
534
+ function closeContextPopover() {
535
+ workspace.contextPopoverOpen = false;
536
+ }
537
+ function toggleContextPopover() {
538
+ if (workspace.contextPopoverOpen) closeContextPopover();
539
+ else openContextPopover();
540
+ }
541
+ function closeAllPopovers() {
542
+ closeModePopover();
543
+ closeContextPopover();
544
+ }
545
+ function popoverTitle(kind) {
546
+ if (kind === "analyze") return "Analyze";
547
+ return "Find issues";
548
+ }
549
+ function setQuotes(quotes) {
550
+ workspace.edit = setHighlightQuotes(workspace.edit, quotes);
551
+ }
552
+ function focusOnQuote(quote) {
553
+ workspace.edit = focusQuote(workspace.edit, quote);
554
+ }
555
+ let promptHighlighter = null;
556
+ let previewEnabled = false;
557
+ function clamp(n, min, max) {
558
+ return Math.max(min, Math.min(max, n));
559
+ }
560
+ function buildQuoteCountsFromIssues(issues) {
561
+ const counts = /* @__PURE__ */ new Map();
562
+ for (const issue of issues || []) {
563
+ for (const raw of issue.contradictingQuotes || []) {
564
+ const q = String(raw || "").trim();
565
+ if (!q) continue;
566
+ counts.set(q, (counts.get(q) || 0) + 1);
567
+ }
568
+ }
569
+ return [...counts.entries()].map(([quote, count]) => ({ quote, count: clamp(count, 1, 10) })).sort((a, b) => b.count - a.count || a.quote.localeCompare(b.quote));
570
+ }
571
+ let findIssuesRunning = false;
572
+ async function handleFindIssues() {
573
+ if (findIssuesRunning) return;
574
+ if (!workspace.currentStep) return;
575
+ findIssuesRunning = true;
576
+ const requestId = openModePopover("findIssues");
577
+ try {
578
+ const res = await trpc.tests.findPromptIssues.mutate({
579
+ agent: workspace.agentId,
580
+ step: workspace.currentStep.name,
581
+ prompt: workspace.prompt ?? ""
582
+ });
583
+ const quoteCounts = buildQuoteCountsFromIssues(res.issues || []);
584
+ if (workspace.edit.popover?.requestId !== requestId) return;
585
+ setQuotes(quoteCounts);
586
+ let raw = null;
587
+ try {
588
+ raw = JSON.stringify(res.raw, null, 2);
589
+ } catch {
590
+ raw = null;
591
+ }
592
+ setModePopoverReady(requestId, {
593
+ title: `Prompt issues — ${workspace.currentStep.name}`,
594
+ issues: res.issues,
595
+ raw
596
+ });
597
+ } catch (e) {
598
+ console.error(e);
599
+ const message = typeof e?.message === "string" ? e.message : (() => {
600
+ try {
601
+ return JSON.stringify(e);
602
+ } catch {
603
+ return String(e);
604
+ }
605
+ })();
606
+ setModePopoverError(requestId, message || "Failed to find issues in this prompt", {
607
+ title: `Prompt issues failed — ${workspace.currentStep.name}`,
608
+ raw: message
609
+ });
610
+ } finally {
611
+ findIssuesRunning = false;
612
+ }
613
+ }
614
+ function handleAgentClick(agentId) {
615
+ closeAllPopovers();
616
+ page.url.searchParams.get("step");
617
+ `/edit/${enc(agentId)}/${workspace.edit.tab}`;
618
+ goto();
619
+ }
620
+ setEditWorkspaceContext({
621
+ state: workspace,
622
+ actions: {
623
+ openPopover: openModePopover,
624
+ setPopoverReady: setModePopoverReady,
625
+ setPopoverError: setModePopoverError,
626
+ closePopover: closeModePopover,
627
+ setHighlightQuotes: setQuotes,
628
+ focusQuote: focusOnQuote,
629
+ openContextPopover,
630
+ closeContextPopover,
631
+ toggleContextPopover,
632
+ sendAppEvent,
633
+ sendChatMessage: (message) => wsClient.sendMessage({ channel: "chat", message }),
634
+ selectState: (stateId) => {
635
+ closeAllPopovers();
636
+ workspace.currentState = stateId;
637
+ clearChatContent();
638
+ clearLogs();
639
+ sendAppEvent({
640
+ type: "select-agent",
641
+ agent: workspace.agentId,
642
+ state: stateId
643
+ });
644
+ }
645
+ }
646
+ });
647
+ onDestroy(() => {
648
+ promptHighlighter?.dispose();
649
+ promptHighlighter = null;
650
+ });
651
+ let $$settled = true;
652
+ let $$inner_renderer;
653
+ function $$render_inner($$renderer3) {
654
+ $$renderer3.push(`<div class="flex h-screen">`);
655
+ AgentSidebar($$renderer3, {
656
+ className: "flex-none",
657
+ agents,
658
+ currentAgent: workspace.agentId,
659
+ onAgentClick: handleAgentClick
660
+ });
661
+ $$renderer3.push(`<!----> <div class="flex h-full min-w-0 flex-1 flex-col bg-rc-gray-980 pb-3 pr-4 pt-2"><nav class="flex flex-none items-center justify-center bg-rc-gray-980">`);
662
+ Tabs($$renderer3, {
663
+ value: activeTopTab,
664
+ ariaLabel: "Top tabs",
665
+ onChange: handleTopTabChange,
666
+ children: ($$renderer4) => {
667
+ Tab($$renderer4, {
668
+ value: "edit",
669
+ children: ($$renderer5) => {
670
+ $$renderer5.push(`<!---->Edit`);
671
+ }
672
+ });
673
+ $$renderer4.push(`<!----> `);
674
+ Tab($$renderer4, {
675
+ value: "view",
676
+ children: ($$renderer5) => {
677
+ $$renderer5.push(`<!---->View`);
678
+ }
679
+ });
680
+ $$renderer4.push(`<!---->`);
681
+ },
682
+ $$slots: { default: true }
683
+ });
684
+ $$renderer3.push(`<!----></nav> <div class="flex-1 overflow-hidden"><div class="grid h-full w-full grid-cols-[minmax(140px,2fr)_minmax(0,10fr)_minmax(0,11fr)]">`);
685
+ Panel($$renderer3, {
686
+ class: "flex h-full min-w-0 flex-col !rounded-none p-0",
687
+ children: ($$renderer4) => {
688
+ $$renderer4.push(`<div class="rc-scroll min-h-0 flex-1 overflow-auto p-2">`);
689
+ if (!workspace.wsLoaded) {
690
+ $$renderer4.push("<!--[-->");
691
+ $$renderer4.push(`<div class="p-2 text-rc-gray-400">Connecting…</div>`);
692
+ } else {
693
+ $$renderer4.push("<!--[!-->");
694
+ if (workspace.steps.length === 0) {
695
+ $$renderer4.push("<!--[-->");
696
+ $$renderer4.push(`<div class="p-2 text-rc-gray-400">No steps</div>`);
697
+ } else {
698
+ $$renderer4.push("<!--[!-->");
699
+ $$renderer4.push(`<!--[-->`);
700
+ const each_array = ensure_array_like(workspace.steps);
701
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
702
+ let step = each_array[$$index];
703
+ $$renderer4.push(`<button${attr_class(`my-1 w-full rounded-lg px-3 py-2 text-left text-rc-gray-200 hover:bg-rc-gray-700 ${stringify(step.name === workspace.currentStep?.name ? "bg-rc-gray-600" : "bg-transparent")}`)}><span class="block truncate">${escape_html(step.name)}</span></button>`);
704
+ }
705
+ $$renderer4.push(`<!--]-->`);
706
+ }
707
+ $$renderer4.push(`<!--]-->`);
708
+ }
709
+ $$renderer4.push(`<!--]--></div>`);
710
+ }
711
+ });
712
+ $$renderer3.push(`<!----> <div class="flex h-full min-w-0 flex-col"><div class="flex h-14 flex-none items-center justify-between gap-3 border-b border-rc-gray-700 p-2"><div class="min-w-0"><div class="truncate font-semibold text-rc-gray-100">${escape_html(workspace.currentStep?.name ?? "Prompt")}</div></div> <div class="flex items-center gap-3"><label class="inline-flex items-center gap-2 text-rc-gray-300"><input type="checkbox"${attr("checked", previewEnabled, true)}${attr("disabled", !workspace.currentStep, true)} aria-label="Preview rendered prompt" class="h-4 w-4 appearance-none rounded border border-rc-gray-300 bg-rc-gray-600 !accent-rc-gray-600 outline-none ring-0 checked:border-rc-gray-200 checked:bg-rc-gray-600 hover:border-rc-gray-200 hover:bg-rc-gray-600 focus:outline-none focus:ring-0 active:border-rc-gray-200 active:bg-rc-gray-600 disabled:cursor-not-allowed disabled:opacity-50"/> <span>Preview</span></label> `);
713
+ Button($$renderer3, {
714
+ variant: "secondary",
715
+ disabled: !workspace.currentStep || findIssuesRunning,
716
+ onclick: handleFindIssues,
717
+ children: ($$renderer4) => {
718
+ $$renderer4.push(`<!---->Find issues`);
719
+ },
720
+ $$slots: { default: true }
721
+ });
722
+ $$renderer3.push(`<!----></div></div> <div class="min-h-0 flex-1">`);
723
+ if (workspace.currentStep) {
724
+ $$renderer3.push("<!--[-->");
725
+ $$renderer3.push(`<!---->`);
726
+ {
727
+ PromptEditor($$renderer3, {
728
+ class: "h-full min-w-0 border-thin border-rc-gray-650 bg-rc-gray-800 shadow-inner-white-soft backdrop-blur-3xl focus:outline-none focus:ring-0",
729
+ prompt: workspace.prompt ?? "",
730
+ agentId: workspace.agentId,
731
+ showSchemaButton: hasSchema,
732
+ onSchemaClick: openSchemaModal,
733
+ showPreviewToggle: false,
734
+ preview: previewEnabled
735
+ });
736
+ }
737
+ $$renderer3.push(`<!---->`);
738
+ } else {
739
+ $$renderer3.push("<!--[!-->");
740
+ Panel($$renderer3, {
741
+ class: "flex h-full min-w-0 items-center justify-center !rounded-none p-4 text-sm text-rc-gray-400",
742
+ children: ($$renderer4) => {
743
+ $$renderer4.push(`<!---->Select a step to edit its prompt`);
744
+ }
745
+ });
746
+ }
747
+ $$renderer3.push(`<!--]--></div></div> `);
748
+ Panel($$renderer3, {
749
+ class: "relative flex h-full min-w-0 flex-col overflow-hidden !rounded-none p-0",
750
+ children: ($$renderer4) => {
751
+ $$renderer4.push(`<div class="border-b border-rc-gray-700 p-2">`);
752
+ Tabs($$renderer4, {
753
+ value: workspace.edit.tab,
754
+ ariaLabel: "Mode tabs",
755
+ onChange: handleModeTabChange,
756
+ children: ($$renderer5) => {
757
+ Tab($$renderer5, {
758
+ value: "roleplay",
759
+ children: ($$renderer6) => {
760
+ $$renderer6.push(`<!---->Roleplay`);
761
+ }
762
+ });
763
+ $$renderer5.push(`<!----> `);
764
+ Tab($$renderer5, {
765
+ value: "tests",
766
+ children: ($$renderer6) => {
767
+ $$renderer6.push(`<!---->Tests`);
768
+ }
769
+ });
770
+ $$renderer5.push(`<!---->`);
771
+ },
772
+ $$slots: { default: true }
773
+ });
774
+ $$renderer4.push(`<!----></div> <div class="min-h-0 flex-1">`);
775
+ children($$renderer4);
776
+ $$renderer4.push(`<!----></div> `);
777
+ if (workspace.edit.popover) {
778
+ $$renderer4.push("<!--[-->");
779
+ {
780
+ let children2 = function($$renderer5) {
781
+ ModeAsyncPopoverContent($$renderer5);
782
+ };
783
+ PopoverModal($$renderer4, {
784
+ title: popoverTitle(workspace.edit.popover.kind),
785
+ onClose: closeModePopover,
786
+ children: children2
787
+ });
788
+ }
789
+ } else {
790
+ $$renderer4.push("<!--[!-->");
791
+ }
792
+ $$renderer4.push(`<!--]--> `);
793
+ if (workspace.contextPopoverOpen) {
794
+ $$renderer4.push("<!--[-->");
795
+ {
796
+ let children2 = function($$renderer5) {
797
+ ModeContextPopoverContent($$renderer5);
798
+ };
799
+ PopoverModal($$renderer4, {
800
+ title: "Edit context",
801
+ onClose: closeContextPopover,
802
+ children: children2
803
+ });
804
+ }
805
+ } else {
806
+ $$renderer4.push("<!--[!-->");
807
+ }
808
+ $$renderer4.push(`<!--]-->`);
809
+ }
810
+ });
811
+ $$renderer3.push(`<!----></div></div></div></div> `);
812
+ if (schemaValue) {
813
+ $$renderer3.push("<!--[-->");
814
+ {
815
+ let children2 = function($$renderer4) {
816
+ SchemaEditor($$renderer4, {
817
+ class: "h-[70vh] min-w-0"
818
+ });
819
+ };
820
+ Modal($$renderer3, {
821
+ title: "Schema",
822
+ class: "!w-[80vw] !max-w-5xl",
823
+ get open() {
824
+ return schemaModalOpen;
825
+ },
826
+ set open($$value) {
827
+ schemaModalOpen = $$value;
828
+ $$settled = false;
829
+ },
830
+ children: children2,
831
+ $$slots: { default: true }
832
+ });
833
+ }
834
+ } else {
835
+ $$renderer3.push("<!--[!-->");
836
+ }
837
+ $$renderer3.push(`<!--]-->`);
838
+ }
839
+ do {
840
+ $$settled = true;
841
+ $$inner_renderer = $$renderer2.copy();
842
+ $$render_inner($$inner_renderer);
843
+ } while (!$$settled);
844
+ $$renderer2.subsume($$inner_renderer);
845
+ });
846
+ }
847
+
848
+ export { _layout as default };
849
+ //# sourceMappingURL=_layout.svelte-BdnWuh8V.js.map