@recombine-ai/bosun 0.11.1 → 0.12.0

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 (409) hide show
  1. package/build/client/_app/immutable/assets/0.CH-WU4JN.css +1 -0
  2. package/build/client/_app/immutable/assets/0.CH-WU4JN.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.CH-WU4JN.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/{10.BX46PfEJ.css → 10.DIVePEYf.css} +1 -1
  5. package/build/client/_app/immutable/assets/10.DIVePEYf.css.br +0 -0
  6. package/build/client/_app/immutable/assets/10.DIVePEYf.css.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{AocOovHL.js → 07xNIa59.js} +2 -2
  8. package/build/client/_app/immutable/chunks/07xNIa59.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/07xNIa59.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/BDl2QuyN.js +1 -0
  11. package/build/client/_app/immutable/chunks/BDl2QuyN.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BDl2QuyN.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{CqxCTxvJ.js → BI42X8h_.js} +1 -1
  14. package/build/client/_app/immutable/chunks/BI42X8h_.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/BI42X8h_.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/BJTwdUYr.js +1 -0
  17. package/build/client/_app/immutable/chunks/BJTwdUYr.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/BJTwdUYr.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/BLu86SbA.js +1 -0
  20. package/build/client/_app/immutable/chunks/BLu86SbA.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/BLu86SbA.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/BNifnXkO.js +1 -0
  23. package/build/client/_app/immutable/chunks/BNifnXkO.js.br +2 -0
  24. package/build/client/_app/immutable/chunks/BNifnXkO.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/{BM0jKynj.js → BPNEONy5.js} +1 -1
  26. package/build/client/_app/immutable/chunks/BPNEONy5.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/BPNEONy5.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/BQ3mPfLC.js +1 -0
  29. package/build/client/_app/immutable/chunks/BQ3mPfLC.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/BQ3mPfLC.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/BRQsk2Ii.js +1 -0
  32. package/build/client/_app/immutable/chunks/BRQsk2Ii.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/BRQsk2Ii.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/B_K7D6rX.js +2 -0
  35. package/build/client/_app/immutable/chunks/B_K7D6rX.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/B_K7D6rX.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/BirMtEut.js +3 -0
  38. package/build/client/_app/immutable/chunks/BirMtEut.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/BirMtEut.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/Bj8jfBTi.js +1 -0
  41. package/build/client/_app/immutable/chunks/Bj8jfBTi.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/Bj8jfBTi.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/BsDZe4N6.js +1 -0
  44. package/build/client/_app/immutable/chunks/BsDZe4N6.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/BsDZe4N6.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/{CXo2BVs0.js → Buo-57fF.js} +1 -1
  47. package/build/client/_app/immutable/chunks/Buo-57fF.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/Buo-57fF.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/{C-whEtKd.js → C39ai1md.js} +1 -1
  50. package/build/client/_app/immutable/chunks/C39ai1md.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/C39ai1md.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/C7he4XPB.js +1 -0
  53. package/build/client/_app/immutable/chunks/C7he4XPB.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/C7he4XPB.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/{DYhTBLDc.js → CAjPRvNs.js} +2 -2
  56. package/build/client/_app/immutable/chunks/CAjPRvNs.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/CAjPRvNs.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/CJYOmGlC.js +1 -0
  59. package/build/client/_app/immutable/chunks/CJYOmGlC.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/CJYOmGlC.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/{HJHYLHDn.js → CPXdAKdv.js} +1 -1
  62. package/build/client/_app/immutable/chunks/CPXdAKdv.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/CPXdAKdv.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/{DTlGvFHe.js → CVlsAO8k.js} +1 -1
  65. package/build/client/_app/immutable/chunks/CVlsAO8k.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/CVlsAO8k.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/{DNLcpWO_.js → CX0Ekq8t.js} +1 -1
  68. package/build/client/_app/immutable/chunks/CX0Ekq8t.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/CX0Ekq8t.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/Ca197UDq.js +1 -0
  71. package/build/client/_app/immutable/chunks/Ca197UDq.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/Ca197UDq.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/CaHl3dME.js +1 -0
  74. package/build/client/_app/immutable/chunks/CaHl3dME.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/CaHl3dME.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/Cql_e8Of.js +1 -0
  77. package/build/client/_app/immutable/chunks/Cql_e8Of.js.br +2 -0
  78. package/build/client/_app/immutable/chunks/Cql_e8Of.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/{Dv8m1cTI.js → CxLomzuE.js} +1 -1
  80. package/build/client/_app/immutable/chunks/CxLomzuE.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/{Dv8m1cTI.js.gz → CxLomzuE.js.gz} +0 -0
  82. package/build/client/_app/immutable/chunks/Cyai3SOj.js +1 -0
  83. package/build/client/_app/immutable/chunks/Cyai3SOj.js.br +0 -0
  84. package/build/client/_app/immutable/chunks/Cyai3SOj.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/{-g1l5aoS.js → CyvQWZoe.js} +4 -4
  86. package/build/client/_app/immutable/chunks/CyvQWZoe.js.br +0 -0
  87. package/build/client/_app/immutable/chunks/CyvQWZoe.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/CzXNWL4m.js +1 -0
  89. package/build/client/_app/immutable/chunks/CzXNWL4m.js.br +1 -0
  90. package/build/client/_app/immutable/chunks/CzXNWL4m.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/D-B5X35l.js +1 -0
  92. package/build/client/_app/immutable/chunks/D-B5X35l.js.br +0 -0
  93. package/build/client/_app/immutable/chunks/D-B5X35l.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/DJriQKD9.js +2 -0
  95. package/build/client/_app/immutable/chunks/DJriQKD9.js.br +0 -0
  96. package/build/client/_app/immutable/chunks/DJriQKD9.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/{CZLNSMhF.js → Dslf9OwW.js} +10 -10
  98. package/build/client/_app/immutable/chunks/Dslf9OwW.js.br +0 -0
  99. package/build/client/_app/immutable/chunks/Dslf9OwW.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/{UiXQyKcj.js → Dyryn8e8.js} +1 -1
  101. package/build/client/_app/immutable/chunks/Dyryn8e8.js.br +0 -0
  102. package/build/client/_app/immutable/chunks/Dyryn8e8.js.gz +0 -0
  103. package/build/client/_app/immutable/chunks/QpaC6J6s.js +1 -0
  104. package/build/client/_app/immutable/chunks/QpaC6J6s.js.br +0 -0
  105. package/build/client/_app/immutable/chunks/QpaC6J6s.js.gz +0 -0
  106. package/build/client/_app/immutable/chunks/{HXxIsSOO.js → iAhzu4tv.js} +1 -1
  107. package/build/client/_app/immutable/chunks/iAhzu4tv.js.br +0 -0
  108. package/build/client/_app/immutable/chunks/iAhzu4tv.js.gz +0 -0
  109. package/build/client/_app/immutable/chunks/{Cosugfe8.js → nYD9wsyN.js} +1 -1
  110. package/build/client/_app/immutable/chunks/nYD9wsyN.js.br +0 -0
  111. package/build/client/_app/immutable/chunks/nYD9wsyN.js.gz +0 -0
  112. package/build/client/_app/immutable/chunks/{BIpSIzUr.js → uLGP0py1.js} +1 -1
  113. package/build/client/_app/immutable/chunks/uLGP0py1.js.br +0 -0
  114. package/build/client/_app/immutable/chunks/uLGP0py1.js.gz +0 -0
  115. package/build/client/_app/immutable/entry/app.D4Xt4iAw.js +2 -0
  116. package/build/client/_app/immutable/entry/app.D4Xt4iAw.js.br +0 -0
  117. package/build/client/_app/immutable/entry/app.D4Xt4iAw.js.gz +0 -0
  118. package/build/client/_app/immutable/entry/start.wAOD4JjG.js +1 -0
  119. package/build/client/_app/immutable/entry/start.wAOD4JjG.js.br +2 -0
  120. package/build/client/_app/immutable/entry/start.wAOD4JjG.js.gz +0 -0
  121. package/build/client/_app/immutable/nodes/{0.BiYgQci8.js → 0.Cu9qsozo.js} +2 -2
  122. package/build/client/_app/immutable/nodes/0.Cu9qsozo.js.br +0 -0
  123. package/build/client/_app/immutable/nodes/0.Cu9qsozo.js.gz +0 -0
  124. package/build/client/_app/immutable/nodes/1.Couoma7h.js +1 -0
  125. package/build/client/_app/immutable/nodes/1.Couoma7h.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/1.Couoma7h.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/10.D9Is7Tuj.js +7 -0
  128. package/build/client/_app/immutable/nodes/10.D9Is7Tuj.js.br +0 -0
  129. package/build/client/_app/immutable/nodes/10.D9Is7Tuj.js.gz +0 -0
  130. package/build/client/_app/immutable/nodes/{15.Wmhj7gOy.js → 15.BFy4oAT6.js} +1 -1
  131. package/build/client/_app/immutable/nodes/15.BFy4oAT6.js.br +0 -0
  132. package/build/client/_app/immutable/nodes/15.BFy4oAT6.js.gz +0 -0
  133. package/build/client/_app/immutable/nodes/17.4BKUGLfv.js +3 -0
  134. package/build/client/_app/immutable/nodes/17.4BKUGLfv.js.br +0 -0
  135. package/build/client/_app/immutable/nodes/17.4BKUGLfv.js.gz +0 -0
  136. package/build/client/_app/immutable/nodes/18.BS-4NZTI.js +11 -0
  137. package/build/client/_app/immutable/nodes/18.BS-4NZTI.js.br +0 -0
  138. package/build/client/_app/immutable/nodes/18.BS-4NZTI.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/{2.DniQTiGZ.js → 2.DFjSU1Pb.js} +20 -20
  140. package/build/client/_app/immutable/nodes/2.DFjSU1Pb.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/2.DFjSU1Pb.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/3.DS3LgAwM.js +1 -0
  143. package/build/client/_app/immutable/nodes/3.DS3LgAwM.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/3.DS3LgAwM.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/4.CgSeFwiS.js +1 -0
  146. package/build/client/_app/immutable/nodes/4.CgSeFwiS.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/4.CgSeFwiS.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/5.-ESdbp9e.js +1 -0
  149. package/build/client/_app/immutable/nodes/5.-ESdbp9e.js.br +0 -0
  150. package/build/client/_app/immutable/nodes/5.-ESdbp9e.js.gz +0 -0
  151. package/build/client/_app/immutable/nodes/6.CX8TfGzw.js +1 -0
  152. package/build/client/_app/immutable/nodes/6.CX8TfGzw.js.br +0 -0
  153. package/build/client/_app/immutable/nodes/6.CX8TfGzw.js.gz +0 -0
  154. package/build/client/_app/immutable/nodes/{8.2oZsfzo8.js → 8.Bu3UjNq7.js} +1 -1
  155. package/build/client/_app/immutable/nodes/8.Bu3UjNq7.js.br +0 -0
  156. package/build/client/_app/immutable/nodes/8.Bu3UjNq7.js.gz +0 -0
  157. package/build/client/_app/immutable/nodes/9.DsvEYdNE.js +2 -0
  158. package/build/client/_app/immutable/nodes/9.DsvEYdNE.js.br +0 -0
  159. package/build/client/_app/immutable/nodes/9.DsvEYdNE.js.gz +0 -0
  160. package/build/client/_app/version.json +1 -1
  161. package/build/client/_app/version.json.br +0 -0
  162. package/build/client/_app/version.json.gz +0 -0
  163. package/build/server/chunks/0-BsZDBUML.js +9 -0
  164. package/build/server/chunks/0-BsZDBUML.js.map +1 -0
  165. package/build/server/chunks/1-BSnA3oUp.js +9 -0
  166. package/build/server/chunks/{1-BQkMpHdq.js.map → 1-BSnA3oUp.js.map} +1 -1
  167. package/build/server/chunks/10-Z1taG_Ws.js +9 -0
  168. package/build/server/chunks/10-Z1taG_Ws.js.map +1 -0
  169. package/build/server/chunks/{15-CZBxPMAc.js → 15-BMEAVslz.js} +2 -2
  170. package/build/server/chunks/{15-CZBxPMAc.js.map → 15-BMEAVslz.js.map} +1 -1
  171. package/build/server/chunks/17-ChcBYZZX.js +9 -0
  172. package/build/server/chunks/17-ChcBYZZX.js.map +1 -0
  173. package/build/server/chunks/18-lUysJblN.js +9 -0
  174. package/build/server/chunks/18-lUysJblN.js.map +1 -0
  175. package/build/server/chunks/2-Fea6hX08.js +9 -0
  176. package/build/server/chunks/2-Fea6hX08.js.map +1 -0
  177. package/build/server/chunks/3-CMzmyLKz.js +9 -0
  178. package/build/server/chunks/3-CMzmyLKz.js.map +1 -0
  179. package/build/server/chunks/4-DIgalIci.js +9 -0
  180. package/build/server/chunks/4-DIgalIci.js.map +1 -0
  181. package/build/server/chunks/5-BtBVzSzb.js +9 -0
  182. package/build/server/chunks/{5-C7KuaSU9.js.map → 5-BtBVzSzb.js.map} +1 -1
  183. package/build/server/chunks/6-DY6GY4a1.js +9 -0
  184. package/build/server/chunks/6-DY6GY4a1.js.map +1 -0
  185. package/build/server/chunks/8-CjiKpoR-.js +9 -0
  186. package/build/server/chunks/8-CjiKpoR-.js.map +1 -0
  187. package/build/server/chunks/9-CJYLhcDY.js +9 -0
  188. package/build/server/chunks/9-CJYLhcDY.js.map +1 -0
  189. package/build/server/chunks/{AgentSidebar-XdGj1sqT.js → AgentSidebar-DvIlda-E.js} +5 -6
  190. package/build/server/chunks/AgentSidebar-DvIlda-E.js.map +1 -0
  191. package/build/server/chunks/{ChatStepTrace-DnvGtFpb.js → ChatStepTrace-CqqIjRLU.js} +41 -7
  192. package/build/server/chunks/ChatStepTrace-CqqIjRLU.js.map +1 -0
  193. package/build/server/chunks/MockGenerator-GEpXTgX0.js +117 -0
  194. package/build/server/chunks/MockGenerator-GEpXTgX0.js.map +1 -0
  195. package/build/server/chunks/{_layout.svelte-C5Y9nSXi.js → _layout.svelte-B-CkD4a0.js} +12 -6
  196. package/build/server/chunks/_layout.svelte-B-CkD4a0.js.map +1 -0
  197. package/build/server/chunks/{_layout.svelte-_oqm8kmr.js → _layout.svelte-BBFCF-xw.js} +7 -3
  198. package/build/server/chunks/_layout.svelte-BBFCF-xw.js.map +1 -0
  199. package/build/server/chunks/{_layout.svelte-C7JgNCIu.js → _layout.svelte-cPhmW5bZ.js} +3 -1
  200. package/build/server/chunks/_layout.svelte-cPhmW5bZ.js.map +1 -0
  201. package/build/server/chunks/{_page.svelte-QlYvVgTj.js → _page.svelte-0J2xaeyC.js} +70 -15
  202. package/build/server/chunks/_page.svelte-0J2xaeyC.js.map +1 -0
  203. package/build/server/chunks/{_page.svelte-BpRksNEG.js → _page.svelte-BgoX8Y6N.js} +2 -2
  204. package/build/server/chunks/{_page.svelte-BpRksNEG.js.map → _page.svelte-BgoX8Y6N.js.map} +1 -1
  205. package/build/server/chunks/{_page.svelte-bkzbqII3.js → _page.svelte-C_S_qUgZ.js} +479 -71
  206. package/build/server/chunks/_page.svelte-C_S_qUgZ.js.map +1 -0
  207. package/build/server/chunks/{_page.svelte-DDpBtd3X.js → _page.svelte-CqGOvPRO.js} +3 -4
  208. package/build/server/chunks/_page.svelte-CqGOvPRO.js.map +1 -0
  209. package/build/server/chunks/{_page.svelte-DOhPbizt.js → _page.svelte-Cxh9_vUl.js} +34 -22
  210. package/build/server/chunks/_page.svelte-Cxh9_vUl.js.map +1 -0
  211. package/build/server/chunks/{_page.svelte-CEhhEdMi.js → _page.svelte-_sXVlB3C.js} +122 -72
  212. package/build/server/chunks/_page.svelte-_sXVlB3C.js.map +1 -0
  213. package/build/server/chunks/conversation-view-memory-BZguFlTt.js +20 -0
  214. package/build/server/chunks/conversation-view-memory-BZguFlTt.js.map +1 -0
  215. package/build/server/chunks/log-content.svelte-CfQzj-v_.js.map +1 -1
  216. package/build/server/chunks/{client-DzvEkq51.js → source-selection-CcN1cgXc.js} +122 -117
  217. package/build/server/chunks/source-selection-CcN1cgXc.js.map +1 -0
  218. package/build/server/index.js +1 -1
  219. package/build/server/index.js.map +1 -1
  220. package/build/server/manifest.js +14 -14
  221. package/build/server/manifest.js.map +1 -1
  222. package/package.json +3 -3
  223. package/src/backend/lib/get-agent-factories.spec.ts +59 -0
  224. package/src/backend/lib/get-agent-factories.ts +31 -1
  225. package/src/backend/lib/voice-agent-lifecycle.test.ts +12 -8
  226. package/src/backend/lib/voice-agent-lifecycle.ts +2 -1
  227. package/src/backend/roleplay/agents.ts +18 -0
  228. package/src/backend/roleplay/router.ts +8 -3
  229. package/src/backend/tests/academy.ts +185 -133
  230. package/src/backend/tests/active-test-runs.spec.ts +27 -0
  231. package/src/backend/tests/active-test-runs.ts +41 -0
  232. package/src/backend/tests/analyze.ts +0 -3
  233. package/src/backend/tests/best-effort-log-writer.spec.ts +39 -0
  234. package/src/backend/tests/best-effort-log-writer.ts +52 -0
  235. package/src/backend/tests/data.spec.ts +139 -0
  236. package/src/backend/tests/data.ts +296 -65
  237. package/src/backend/tests/emulate-agents.ts +45 -45
  238. package/src/backend/tests/openai-prompt-cache.ts +68 -0
  239. package/src/backend/tests/promptfoo-runtime.spec.ts +41 -0
  240. package/src/backend/tests/promptfoo-runtime.ts +27 -0
  241. package/src/backend/tests/report-files.spec.ts +44 -0
  242. package/src/backend/tests/report-files.ts +120 -0
  243. package/src/backend/tests/router.ts +7 -1
  244. package/build/client/_app/immutable/assets/0.Dz9hcoGY.css +0 -1
  245. package/build/client/_app/immutable/assets/0.Dz9hcoGY.css.br +0 -0
  246. package/build/client/_app/immutable/assets/0.Dz9hcoGY.css.gz +0 -0
  247. package/build/client/_app/immutable/assets/10.BX46PfEJ.css.br +0 -0
  248. package/build/client/_app/immutable/assets/10.BX46PfEJ.css.gz +0 -0
  249. package/build/client/_app/immutable/chunks/-g1l5aoS.js.br +0 -0
  250. package/build/client/_app/immutable/chunks/-g1l5aoS.js.gz +0 -0
  251. package/build/client/_app/immutable/chunks/7E8m6dwk.js +0 -1
  252. package/build/client/_app/immutable/chunks/7E8m6dwk.js.br +0 -0
  253. package/build/client/_app/immutable/chunks/7E8m6dwk.js.gz +0 -0
  254. package/build/client/_app/immutable/chunks/7qRqthsa.js +0 -1
  255. package/build/client/_app/immutable/chunks/7qRqthsa.js.br +0 -2
  256. package/build/client/_app/immutable/chunks/7qRqthsa.js.gz +0 -0
  257. package/build/client/_app/immutable/chunks/AocOovHL.js.br +0 -0
  258. package/build/client/_app/immutable/chunks/AocOovHL.js.gz +0 -0
  259. package/build/client/_app/immutable/chunks/B0iEglSe.js +0 -1
  260. package/build/client/_app/immutable/chunks/B0iEglSe.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/B0iEglSe.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/BIpSIzUr.js.br +0 -0
  263. package/build/client/_app/immutable/chunks/BIpSIzUr.js.gz +0 -0
  264. package/build/client/_app/immutable/chunks/BL8rPcmP.js +0 -1
  265. package/build/client/_app/immutable/chunks/BL8rPcmP.js.br +0 -0
  266. package/build/client/_app/immutable/chunks/BL8rPcmP.js.gz +0 -0
  267. package/build/client/_app/immutable/chunks/BM0jKynj.js.br +0 -0
  268. package/build/client/_app/immutable/chunks/BM0jKynj.js.gz +0 -0
  269. package/build/client/_app/immutable/chunks/BR5f5i_E.js +0 -1
  270. package/build/client/_app/immutable/chunks/BR5f5i_E.js.br +0 -0
  271. package/build/client/_app/immutable/chunks/BR5f5i_E.js.gz +0 -0
  272. package/build/client/_app/immutable/chunks/BTvePR6r.js +0 -1
  273. package/build/client/_app/immutable/chunks/BTvePR6r.js.br +0 -2
  274. package/build/client/_app/immutable/chunks/BTvePR6r.js.gz +0 -0
  275. package/build/client/_app/immutable/chunks/Bcu62lFq.js +0 -1
  276. package/build/client/_app/immutable/chunks/Bcu62lFq.js.br +0 -0
  277. package/build/client/_app/immutable/chunks/Bcu62lFq.js.gz +0 -0
  278. package/build/client/_app/immutable/chunks/C-whEtKd.js.br +0 -2
  279. package/build/client/_app/immutable/chunks/C-whEtKd.js.gz +0 -0
  280. package/build/client/_app/immutable/chunks/C1WqE8CP.js +0 -1
  281. package/build/client/_app/immutable/chunks/C1WqE8CP.js.br +0 -2
  282. package/build/client/_app/immutable/chunks/C1WqE8CP.js.gz +0 -0
  283. package/build/client/_app/immutable/chunks/C4SnSfql.js +0 -1
  284. package/build/client/_app/immutable/chunks/C4SnSfql.js.br +0 -0
  285. package/build/client/_app/immutable/chunks/C4SnSfql.js.gz +0 -0
  286. package/build/client/_app/immutable/chunks/CSv1VDXg.js +0 -1
  287. package/build/client/_app/immutable/chunks/CSv1VDXg.js.br +0 -0
  288. package/build/client/_app/immutable/chunks/CSv1VDXg.js.gz +0 -0
  289. package/build/client/_app/immutable/chunks/CXo2BVs0.js.br +0 -0
  290. package/build/client/_app/immutable/chunks/CXo2BVs0.js.gz +0 -0
  291. package/build/client/_app/immutable/chunks/CZLNSMhF.js.br +0 -0
  292. package/build/client/_app/immutable/chunks/CZLNSMhF.js.gz +0 -0
  293. package/build/client/_app/immutable/chunks/Cosugfe8.js.br +0 -0
  294. package/build/client/_app/immutable/chunks/Cosugfe8.js.gz +0 -0
  295. package/build/client/_app/immutable/chunks/CqxCTxvJ.js.br +0 -0
  296. package/build/client/_app/immutable/chunks/CqxCTxvJ.js.gz +0 -0
  297. package/build/client/_app/immutable/chunks/CxLG58rb.js +0 -1
  298. package/build/client/_app/immutable/chunks/CxLG58rb.js.br +0 -0
  299. package/build/client/_app/immutable/chunks/CxLG58rb.js.gz +0 -0
  300. package/build/client/_app/immutable/chunks/D-puyTnN.js +0 -1
  301. package/build/client/_app/immutable/chunks/D-puyTnN.js.br +0 -0
  302. package/build/client/_app/immutable/chunks/D-puyTnN.js.gz +0 -0
  303. package/build/client/_app/immutable/chunks/D4obUD_s.js +0 -1
  304. package/build/client/_app/immutable/chunks/D4obUD_s.js.br +0 -0
  305. package/build/client/_app/immutable/chunks/D4obUD_s.js.gz +0 -0
  306. package/build/client/_app/immutable/chunks/D8e7SQh9.js +0 -1
  307. package/build/client/_app/immutable/chunks/D8e7SQh9.js.br +0 -0
  308. package/build/client/_app/immutable/chunks/D8e7SQh9.js.gz +0 -0
  309. package/build/client/_app/immutable/chunks/DNLcpWO_.js.br +0 -0
  310. package/build/client/_app/immutable/chunks/DNLcpWO_.js.gz +0 -0
  311. package/build/client/_app/immutable/chunks/DTlGvFHe.js.br +0 -0
  312. package/build/client/_app/immutable/chunks/DTlGvFHe.js.gz +0 -0
  313. package/build/client/_app/immutable/chunks/DYhTBLDc.js.br +0 -0
  314. package/build/client/_app/immutable/chunks/DYhTBLDc.js.gz +0 -0
  315. package/build/client/_app/immutable/chunks/DlZKMmqG.js +0 -4
  316. package/build/client/_app/immutable/chunks/DlZKMmqG.js.br +0 -0
  317. package/build/client/_app/immutable/chunks/DlZKMmqG.js.gz +0 -0
  318. package/build/client/_app/immutable/chunks/Dv0gjm25.js +0 -1
  319. package/build/client/_app/immutable/chunks/Dv0gjm25.js.br +0 -0
  320. package/build/client/_app/immutable/chunks/Dv0gjm25.js.gz +0 -0
  321. package/build/client/_app/immutable/chunks/Dv8m1cTI.js.br +0 -0
  322. package/build/client/_app/immutable/chunks/HJHYLHDn.js.br +0 -0
  323. package/build/client/_app/immutable/chunks/HJHYLHDn.js.gz +0 -0
  324. package/build/client/_app/immutable/chunks/HXxIsSOO.js.br +0 -0
  325. package/build/client/_app/immutable/chunks/HXxIsSOO.js.gz +0 -0
  326. package/build/client/_app/immutable/chunks/UiXQyKcj.js.br +0 -0
  327. package/build/client/_app/immutable/chunks/UiXQyKcj.js.gz +0 -0
  328. package/build/client/_app/immutable/chunks/_yZg6Sf-.js +0 -2
  329. package/build/client/_app/immutable/chunks/_yZg6Sf-.js.br +0 -0
  330. package/build/client/_app/immutable/chunks/_yZg6Sf-.js.gz +0 -0
  331. package/build/client/_app/immutable/chunks/ks45gSgq.js +0 -1
  332. package/build/client/_app/immutable/chunks/ks45gSgq.js.br +0 -0
  333. package/build/client/_app/immutable/chunks/ks45gSgq.js.gz +0 -0
  334. package/build/client/_app/immutable/entry/app.qxHHRD2v.js +0 -2
  335. package/build/client/_app/immutable/entry/app.qxHHRD2v.js.br +0 -0
  336. package/build/client/_app/immutable/entry/app.qxHHRD2v.js.gz +0 -0
  337. package/build/client/_app/immutable/entry/start.CSxD7zE8.js +0 -1
  338. package/build/client/_app/immutable/entry/start.CSxD7zE8.js.br +0 -2
  339. package/build/client/_app/immutable/entry/start.CSxD7zE8.js.gz +0 -0
  340. package/build/client/_app/immutable/nodes/0.BiYgQci8.js.br +0 -0
  341. package/build/client/_app/immutable/nodes/0.BiYgQci8.js.gz +0 -0
  342. package/build/client/_app/immutable/nodes/1.CShtqUFK.js +0 -1
  343. package/build/client/_app/immutable/nodes/1.CShtqUFK.js.br +0 -0
  344. package/build/client/_app/immutable/nodes/1.CShtqUFK.js.gz +0 -0
  345. package/build/client/_app/immutable/nodes/10.dE-XOJgk.js +0 -7
  346. package/build/client/_app/immutable/nodes/10.dE-XOJgk.js.br +0 -0
  347. package/build/client/_app/immutable/nodes/10.dE-XOJgk.js.gz +0 -0
  348. package/build/client/_app/immutable/nodes/15.Wmhj7gOy.js.br +0 -0
  349. package/build/client/_app/immutable/nodes/15.Wmhj7gOy.js.gz +0 -0
  350. package/build/client/_app/immutable/nodes/17.BwzZwCD0.js +0 -3
  351. package/build/client/_app/immutable/nodes/17.BwzZwCD0.js.br +0 -0
  352. package/build/client/_app/immutable/nodes/17.BwzZwCD0.js.gz +0 -0
  353. package/build/client/_app/immutable/nodes/18.BUMDuaQF.js +0 -11
  354. package/build/client/_app/immutable/nodes/18.BUMDuaQF.js.br +0 -0
  355. package/build/client/_app/immutable/nodes/18.BUMDuaQF.js.gz +0 -0
  356. package/build/client/_app/immutable/nodes/2.DniQTiGZ.js.br +0 -0
  357. package/build/client/_app/immutable/nodes/2.DniQTiGZ.js.gz +0 -0
  358. package/build/client/_app/immutable/nodes/3.BIO1e-qq.js +0 -1
  359. package/build/client/_app/immutable/nodes/3.BIO1e-qq.js.br +0 -0
  360. package/build/client/_app/immutable/nodes/3.BIO1e-qq.js.gz +0 -0
  361. package/build/client/_app/immutable/nodes/4.BwfVTawo.js +0 -1
  362. package/build/client/_app/immutable/nodes/4.BwfVTawo.js.br +0 -0
  363. package/build/client/_app/immutable/nodes/4.BwfVTawo.js.gz +0 -0
  364. package/build/client/_app/immutable/nodes/5.DdodCQcX.js +0 -1
  365. package/build/client/_app/immutable/nodes/5.DdodCQcX.js.br +0 -0
  366. package/build/client/_app/immutable/nodes/5.DdodCQcX.js.gz +0 -0
  367. package/build/client/_app/immutable/nodes/6.EIjYVI_W.js +0 -1
  368. package/build/client/_app/immutable/nodes/6.EIjYVI_W.js.br +0 -0
  369. package/build/client/_app/immutable/nodes/6.EIjYVI_W.js.gz +0 -0
  370. package/build/client/_app/immutable/nodes/8.2oZsfzo8.js.br +0 -0
  371. package/build/client/_app/immutable/nodes/8.2oZsfzo8.js.gz +0 -0
  372. package/build/client/_app/immutable/nodes/9.CjWG6Ha9.js +0 -2
  373. package/build/client/_app/immutable/nodes/9.CjWG6Ha9.js.br +0 -0
  374. package/build/client/_app/immutable/nodes/9.CjWG6Ha9.js.gz +0 -0
  375. package/build/server/chunks/0-S8VzkGgQ.js +0 -9
  376. package/build/server/chunks/0-S8VzkGgQ.js.map +0 -1
  377. package/build/server/chunks/1-BQkMpHdq.js +0 -9
  378. package/build/server/chunks/10-D1k3_nkw.js +0 -9
  379. package/build/server/chunks/10-D1k3_nkw.js.map +0 -1
  380. package/build/server/chunks/17-B72NO3Iu.js +0 -9
  381. package/build/server/chunks/17-B72NO3Iu.js.map +0 -1
  382. package/build/server/chunks/18-4kgQqgz-.js +0 -9
  383. package/build/server/chunks/18-4kgQqgz-.js.map +0 -1
  384. package/build/server/chunks/2-DO8jW3Pl.js +0 -9
  385. package/build/server/chunks/2-DO8jW3Pl.js.map +0 -1
  386. package/build/server/chunks/3-0_f3eZZi.js +0 -9
  387. package/build/server/chunks/3-0_f3eZZi.js.map +0 -1
  388. package/build/server/chunks/4-UxjRsyDW.js +0 -9
  389. package/build/server/chunks/4-UxjRsyDW.js.map +0 -1
  390. package/build/server/chunks/5-C7KuaSU9.js +0 -9
  391. package/build/server/chunks/6-C6EG0SXo.js +0 -9
  392. package/build/server/chunks/6-C6EG0SXo.js.map +0 -1
  393. package/build/server/chunks/8-BTSvDZhI.js +0 -9
  394. package/build/server/chunks/8-BTSvDZhI.js.map +0 -1
  395. package/build/server/chunks/9-CepnUatA.js +0 -9
  396. package/build/server/chunks/9-CepnUatA.js.map +0 -1
  397. package/build/server/chunks/AgentSidebar-XdGj1sqT.js.map +0 -1
  398. package/build/server/chunks/ChatStepTrace-DnvGtFpb.js.map +0 -1
  399. package/build/server/chunks/_layout.svelte-C5Y9nSXi.js.map +0 -1
  400. package/build/server/chunks/_layout.svelte-C7JgNCIu.js.map +0 -1
  401. package/build/server/chunks/_layout.svelte-_oqm8kmr.js.map +0 -1
  402. package/build/server/chunks/_page.svelte-CEhhEdMi.js.map +0 -1
  403. package/build/server/chunks/_page.svelte-DDpBtd3X.js.map +0 -1
  404. package/build/server/chunks/_page.svelte-DOhPbizt.js.map +0 -1
  405. package/build/server/chunks/_page.svelte-QlYvVgTj.js.map +0 -1
  406. package/build/server/chunks/_page.svelte-bkzbqII3.js.map +0 -1
  407. package/build/server/chunks/client-DzvEkq51.js.map +0 -1
  408. package/build/server/chunks/source-selection-eA--VEKo.js +0 -124
  409. package/build/server/chunks/source-selection-eA--VEKo.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSidebar-DvIlda-E.js","sources":["../../../.svelte-kit/adapter-node/chunks/AgentSidebar.js"],"sourcesContent":["import { i as attributes, g as clsx, f as derived, b as attr_class, d as attr, a as ensure_array_like, c as attr_style, e as escape_html } from \"./index.js\";\nimport { w as writable, g as get } from \"./index3.js\";\nimport { I as Icon } from \"./Icon.js\";\nconst PALETTE = [\n \"#FB60DF\",\n \"#EAFF6D\",\n \"#65E3FF\",\n \"#FF8165\",\n \"#826DFF\",\n \"#FF8C3F\",\n \"#1269FF\",\n \"#FFA812\",\n \"#60FB7C\",\n \"#3FB2FF\"\n];\nfunction load() {\n try {\n if (typeof sessionStorage === \"undefined\") return {};\n const raw = sessionStorage.getItem(\"agentColors\");\n return raw ? JSON.parse(raw) : {};\n } catch {\n return {};\n }\n}\nconst agentColorsStore = writable(load());\nagentColorsStore.subscribe((m) => {\n try {\n if (typeof sessionStorage !== \"undefined\") {\n sessionStorage.setItem(\"agentColors\", JSON.stringify(m));\n }\n } catch {\n }\n});\nfunction colorForAgent(agent) {\n const map = get(agentColorsStore);\n if (map[agent]) return map[agent];\n const used = new Set(Object.values(map));\n const available = PALETTE.filter((c) => !used.has(c));\n const pick = available.length > 0 ? available[Math.floor(Math.random() * available.length)] : PALETTE[Math.floor(Math.random() * PALETTE.length)];\n agentColorsStore.set({ ...map, [agent]: pick });\n return pick;\n}\nfunction Link($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n href = \"\",\n variant = \"default\",\n children,\n class: className = \"\",\n target: targetProp,\n rel: relProp,\n $$slots,\n $$events,\n ...rest\n } = $$props;\n const linkClasses = derived(() => `link ${className}`.trim());\n const isExternal = derived(() => variant === \"external\");\n const target = derived(() => targetProp ?? (isExternal() ? \"_blank\" : void 0));\n const rel = derived(() => relProp ?? (target() === \"_blank\" ? \"noopener noreferrer\" : void 0));\n $$renderer2.push(`<a${attributes(\n {\n href,\n class: clsx(linkClasses()),\n target: target(),\n rel: rel(),\n ...rest\n },\n \"svelte-1jt144g\"\n )}>`);\n children($$renderer2);\n $$renderer2.push(`<!----></a>`);\n });\n}\nfunction AgentSidebar($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n agents = [],\n currentAgent,\n onSelect,\n onToggle,\n className = \"\",\n showAgents = true,\n onAgentClick,\n onCreateAgent,\n showAllAgentsOption = false,\n onAllAgentsClick,\n initiallyCollapsed = true,\n hoverCollapse = true\n } = $$props;\n function getInitial(displayName) {\n const first = displayName.trim().charAt(0);\n return first ? first.toUpperCase() : \"?\";\n }\n const hasAgents = derived(() => showAgents && agents.length > 0);\n const activeInitialsStyle = \"background-color: var(--agent-color); color: black;\";\n const isAllAgentsActive = derived(() => showAllAgentsOption && !currentAgent);\n $$renderer2.push(`<div${attr_class(`sidebar border-r border-r-gray-700/50 ${\"sidebar--collapsed w-16\"} ${className}`, \"svelte-ubnu4b\")}><div class=\"relative top-2 flex h-14 items-center gap-5 py-4 pl-5 pr-3\">`);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> <button class=\"toggle-btn svelte-ubnu4b\"${attr(\"title\", \"Expand sidebar\")}${attr(\"aria-expanded\", false)}${attr(\"aria-label\", \"Expand sidebar\")}><span class=\"toggle-btn__front svelte-ubnu4b\">`);\n {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<img src=\"/recombine.svg\" alt=\"Recombine Logo\" class=\"size-6\" width=\"24\" height=\"24\" decoding=\"async\" loading=\"eager\"/>`);\n }\n $$renderer2.push(`<!--]--></span> <span class=\"toggle-btn__back svelte-ubnu4b\" aria-hidden=\"true\">`);\n Icon($$renderer2, { name: \"chevron-right\", width: 24, height: 24 });\n $$renderer2.push(`<!----></span></button></div> <div class=\"mt-3 min-h-0 flex-1 overflow-y-auto overflow-x-hidden\">`);\n if (hasAgents()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div${attr_class(`flex flex-col`, \"svelte-ubnu4b\")}><!--[-->`);\n const each_array = ensure_array_like(agents);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let agent = each_array[$$index];\n const isActive = agent.id === currentAgent;\n $$renderer2.push(`<button class=\"agent-item svelte-ubnu4b\"${attr(\"title\", agent.displayName)}${attr(\"aria-current\", isActive ? \"page\" : void 0)}${attr_style(`--agent-color: ${colorForAgent(agent.id)}`)}><div class=\"agent-initials svelte-ubnu4b\"${attr_style(isActive ? activeInitialsStyle : void 0)}${attr(\"title\", agent.displayName)}>${escape_html(getInitial(agent.displayName))}</div> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></button>`);\n }\n $$renderer2.push(`<!--]--> `);\n if (showAllAgentsOption) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<button class=\"agent-item svelte-ubnu4b\" title=\"All agents\" aria-label=\"All agents\"${attr(\"aria-current\", isAllAgentsActive() ? \"page\" : void 0)}><span class=\"agent-initials svelte-ubnu4b\" aria-hidden=\"true\"${attr_style(isAllAgentsActive() ? activeInitialsStyle : void 0)}>*</span></button>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (onCreateAgent) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<button class=\"agent-item new-agent svelte-ubnu4b\" title=\"New Agent\" aria-label=\"Create new agent\">`);\n {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"agent-initials new-agent__initial w-full svelte-ubnu4b\"></div>`);\n }\n $$renderer2.push(`<!--]--></button>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<div${attr_class(clsx(\"px-1 py-2\"))}></div>`);\n }\n $$renderer2.push(`<!--]--></div> <footer${attr_class(`sidebar__footer ${\"hidden\"}`, \"svelte-ubnu4b\")}><div class=\"footer-links svelte-ubnu4b\">`);\n Link($$renderer2, {\n variant: \"external\",\n href: \"https://recombine.ai/policy.html\",\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Privacy Policy`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Link($$renderer2, {\n variant: \"external\",\n href: \"https://recombine.ai/terms.html\",\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Terms and Conditions`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----></div> <div class=\"footer-links svelte-ubnu4b\"><p class=\"svelte-ubnu4b\">@ Recombine 2025</p> <p class=\"svelte-ubnu4b\">London, UK</p> <p class=\"svelte-ubnu4b\">Budva, Montenegro</p></div></footer></div>`);\n });\n}\nexport {\n AgentSidebar as A,\n colorForAgent as c\n};\n"],"names":[],"mappings":"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"}
@@ -117,12 +117,36 @@ function ChatApiCallTrace($$renderer, $$props) {
117
117
  $$renderer2.subsume($$inner_renderer);
118
118
  });
119
119
  }
120
+ function isStepTrace(entry) {
121
+ return !("operationName" in entry) && !("eventName" in entry);
122
+ }
123
+ function isMainStepTrace(entry) {
124
+ return isStepTrace(entry) && (entry.name === "main" || entry.name === "mainReply");
125
+ }
126
+ function findMainStepTraceNear(entries, index, options = {}) {
127
+ if (index < 0) return null;
128
+ const matches = (entry) => {
129
+ if (!isMainStepTrace(entry)) return false;
130
+ if (!options.requireRenderedPrompt) return true;
131
+ return typeof entry.renderedPrompt === "string" && entry.renderedPrompt.trim().length > 0;
132
+ };
133
+ return [...entries.slice(0, index)].reverse().find(matches) ?? entries.slice(index + 1).find(matches) ?? null;
134
+ }
135
+ function findStringifiedConversationBefore(entries, index) {
136
+ if (index <= 0) return null;
137
+ return [...entries.slice(0, index)].reverse().map((entry) => isStepTrace(entry) ? entry.stringifiedConversation?.trim() : "").find(Boolean) ?? null;
138
+ }
120
139
  function ChatConversationalTrace($$renderer, $$props) {
121
140
  $$renderer.component(($$renderer2) => {
122
141
  let {
123
142
  trace,
124
143
  context,
125
144
  agentId,
145
+ region = null,
146
+ allowAddTest = true,
147
+ testSourceStep = void 0,
148
+ testFallbackConversation = null,
149
+ requireTestSourceStep = false,
126
150
  analyzeDisabled = false,
127
151
  onAnalyze,
128
152
  onRegenerate,
@@ -133,6 +157,7 @@ function ChatConversationalTrace($$renderer, $$props) {
133
157
  onSelectInVariantMode,
134
158
  suppressActionRow = false
135
159
  } = $$props;
160
+ let added = "idle";
136
161
  const clickGuard = createDragSelectClickGuard();
137
162
  onDestroy(clickGuard.cleanup);
138
163
  function agentName(id) {
@@ -172,8 +197,14 @@ function ChatConversationalTrace($$renderer, $$props) {
172
197
  return `${hh}:${mm}:${ss}`;
173
198
  }
174
199
  const time = derived(() => formatHHmmss(trace?.createdAt));
200
+ function isAddTestCandidate() {
201
+ const responseIsEligible = allowAddTest && sender() === "agent" && trace.eventName !== "transfer-requested" && (trace.eventName === "finished-main-streaming-step" || trace.eventName === "sent-message");
202
+ if (!responseIsEligible) return false;
203
+ if (!requireTestSourceStep) return !!(agentId && agentId.trim());
204
+ return !!testSourceStep && typeof testSourceStep.receivedContext !== "undefined" && typeof testSourceStep.response === "string" && testSourceStep.response.trim().length > 0;
205
+ }
175
206
  function isAddTestEligible() {
176
- return sender() === "agent" && trace.eventName !== "transfer-requested" && !!(agentId && agentId.trim()) && (trace.eventName === "finished-main-streaming-step" || trace.eventName === "sent-message");
207
+ return isAddTestCandidate() && !!(agentId && agentId.trim());
177
208
  }
178
209
  function isAnalyzeEligible() {
179
210
  return sender() === "agent" && trace.eventName !== "transfer-requested" && !!(agentId && agentId.trim()) && (trace.eventName === "finished-main-streaming-step" || trace.eventName === "sent-message");
@@ -228,13 +259,16 @@ function ChatConversationalTrace($$renderer, $$props) {
228
259
  $$renderer3.push("<!--[-1-->");
229
260
  }
230
261
  $$renderer3.push(`<!--]--></div></div> `);
231
- if (!suppressActionRow && (isAnalyzeEligible() || isAddTestEligible() || isRegenerateEligible() && onRegenerate || showSeeVariants)) {
262
+ if (!suppressActionRow && (isAnalyzeEligible() || isAddTestCandidate() || isRegenerateEligible() && onRegenerate || showSeeVariants)) {
232
263
  $$renderer3.push("<!--[0-->");
233
264
  $$renderer3.push(`<div class="mt-1 flex flex-wrap items-center gap-x-2 gap-y-1">`);
234
- if (isAddTestEligible()) {
265
+ if (isAddTestCandidate()) {
235
266
  $$renderer3.push("<!--[0-->");
236
- $$renderer3.push(`<button type="button"${attr_class(`inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 transition-colors focus:outline-none focus-visible:outline-none ${"cursor-pointer text-rc-gray-400 hover:bg-rc-gray-900 hover:text-rc-gray-200"}`)}>`);
237
- {
267
+ $$renderer3.push(`<button type="button"${attr("disabled", !isAddTestEligible() || added !== "idle", true)}${attr("title", !isAddTestEligible() ? "Select an agent in the sidebar before adding a test" : void 0)}${attr_class(`inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 transition-colors focus:outline-none focus-visible:outline-none ${!isAddTestEligible() ? "cursor-default text-rc-gray-400" : "cursor-pointer text-rc-gray-400 hover:bg-rc-gray-900 hover:text-rc-gray-200"}`)}>`);
268
+ if (!isAddTestEligible()) {
269
+ $$renderer3.push("<!--[2-->");
270
+ $$renderer3.push(`Select agent to add test`);
271
+ } else {
238
272
  $$renderer3.push("<!--[-1-->");
239
273
  $$renderer3.push(`Add test`);
240
274
  }
@@ -434,5 +468,5 @@ function ChatStepTrace($$renderer, $$props) {
434
468
  });
435
469
  }
436
470
 
437
- export { ChatApiCallTrace as C, ChatConversationalTrace as a, ChatStepTrace as b };
438
- //# sourceMappingURL=ChatStepTrace-DnvGtFpb.js.map
471
+ export { ChatApiCallTrace as C, ChatConversationalTrace as a, ChatStepTrace as b, findStringifiedConversationBefore as c, findMainStepTraceNear as f };
472
+ //# sourceMappingURL=ChatStepTrace-CqqIjRLU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatStepTrace-CqqIjRLU.js","sources":["../../../.svelte-kit/adapter-node/chunks/ChatStepTrace.js"],"sourcesContent":["import { e as escape_html, b as attr_class, g as clsx, f as derived, d as attr, s as stringify } from \"./index.js\";\nimport { o as onDestroy } from \"./index-server.js\";\n/* empty css */\n/* empty css */\nimport { I as Icon } from \"./Icon.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"./exports.js\";\nimport \"./utils2.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"./root.js\";\nimport \"./state.svelte.js\";\nimport \"./trpc-client.js\";\nfunction createDragSelectClickGuard(options = {}) {\n const thresholdPx = options.thresholdPx ?? 4;\n const dragCursor = options.dragCursor ?? \"text\";\n let startX = 0;\n let startY = 0;\n let didDrag = false;\n let pointerDown = false;\n let cursorEl = null;\n let abortController = null;\n function cleanup() {\n pointerDown = false;\n didDrag = false;\n cursorEl?.style.removeProperty(\"cursor\");\n cursorEl = null;\n abortController?.abort();\n abortController = null;\n }\n function onPointerDown(event) {\n if (typeof window === \"undefined\") return;\n if (event.button !== 0) return;\n abortController?.abort();\n abortController = null;\n cursorEl?.style.removeProperty(\"cursor\");\n startX = event.clientX;\n startY = event.clientY;\n didDrag = false;\n pointerDown = true;\n cursorEl = event.currentTarget instanceof HTMLElement ? event.currentTarget : null;\n const controller = new AbortController();\n abortController = controller;\n const onMove = (moveEvent) => {\n if (!pointerDown || didDrag) return;\n const dx = Math.abs(moveEvent.clientX - startX);\n const dy = Math.abs(moveEvent.clientY - startY);\n if (dx + dy < thresholdPx) return;\n didDrag = true;\n cursorEl?.style.setProperty(\"cursor\", dragCursor);\n };\n const onEnd = () => {\n pointerDown = false;\n cursorEl?.style.removeProperty(\"cursor\");\n cursorEl = null;\n controller.abort();\n if (abortController === controller) abortController = null;\n };\n window.addEventListener(\"pointermove\", onMove, { signal: controller.signal });\n window.addEventListener(\"pointerup\", onEnd, { signal: controller.signal });\n window.addEventListener(\"pointercancel\", onEnd, { signal: controller.signal });\n }\n function shouldSuppressClick(event) {\n return event.detail > 0 && didDrag;\n }\n return { onPointerDown, shouldSuppressClick, cleanup };\n}\nfunction ChatApiCallTrace($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { trace } = $$props;\n const clickGuard = createDragSelectClickGuard();\n onDestroy(clickGuard.cleanup);\n function formatHHmmss(ms) {\n if (typeof ms !== \"number\" || !Number.isFinite(ms)) return null;\n const d = new Date(ms);\n if (Number.isNaN(d.getTime())) return null;\n const hh = String(d.getHours()).padStart(2, \"0\");\n const mm = String(d.getMinutes()).padStart(2, \"0\");\n const ss = String(d.getSeconds()).padStart(2, \"0\");\n return `${hh}:${mm}:${ss}`;\n }\n const time = derived(() => formatHHmmss(trace.createdAt));\n const derivedError = derived(() => {\n if (trace.error != null) return trace.error;\n const isFailed = trace.ok === false || typeof trace.status === \"number\" && trace.status >= 400;\n if (!isFailed) return void 0;\n const resp = trace.response;\n if (resp && typeof resp === \"object\") {\n if (\"error\" in resp && resp.error != null) return resp.error;\n }\n return { status: trace.status, ok: trace.ok };\n });\n const hasError = derived(() => derivedError() != null);\n const oneLine = derived(() => trace.operationName);\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<button type=\"button\" class=\"flex w-full cursor-pointer select-text items-baseline gap-2 truncate rounded-md bg-transparent px-2 py-1 text-left text-sm text-rc-gray-200 hover:bg-rc-gray-800/40\">`);\n Icon($$renderer3, {\n name: hasError() ? \"close\" : \"checkmark\",\n width: 18,\n height: 18,\n class: hasError() ? \"self-center text-red-400\" : \"self-center text-rc-green-200\"\n });\n $$renderer3.push(`<!----> `);\n if (time()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span class=\"text-[13px] leading-none text-rc-gray-400\">${escape_html(time())}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> <span${attr_class(clsx(hasError() ? \"text-red-200\" : \"\"))}>${escape_html(oneLine())}</span></button> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nfunction isStepTrace(entry) {\n return !(\"operationName\" in entry) && !(\"eventName\" in entry);\n}\nfunction isMainStepTrace(entry) {\n return isStepTrace(entry) && (entry.name === \"main\" || entry.name === \"mainReply\");\n}\nfunction findMainStepTraceNear(entries, index, options = {}) {\n if (index < 0) return null;\n const matches = (entry) => {\n if (!isMainStepTrace(entry)) return false;\n if (!options.requireRenderedPrompt) return true;\n return typeof entry.renderedPrompt === \"string\" && entry.renderedPrompt.trim().length > 0;\n };\n return [...entries.slice(0, index)].reverse().find(matches) ?? entries.slice(index + 1).find(matches) ?? null;\n}\nfunction findStringifiedConversationBefore(entries, index) {\n if (index <= 0) return null;\n return [...entries.slice(0, index)].reverse().map((entry) => isStepTrace(entry) ? entry.stringifiedConversation?.trim() : \"\").find(Boolean) ?? null;\n}\nfunction ChatConversationalTrace($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n trace,\n context,\n agentId,\n region = null,\n allowAddTest = true,\n testSourceStep = void 0,\n testFallbackConversation = null,\n requireTestSourceStep = false,\n analyzeDisabled = false,\n onAnalyze,\n onRegenerate,\n onRevert,\n showSeeVariants = false,\n onSeeVariants,\n variantSelectionState = \"none\",\n onSelectInVariantMode,\n suppressActionRow = false\n } = $$props;\n let added = \"idle\";\n const clickGuard = createDragSelectClickGuard();\n onDestroy(clickGuard.cleanup);\n function agentName(id) {\n if (!id) return \"\";\n return id.split(\"/\").at(-1) ?? id;\n }\n function getInitial(id) {\n const first = agentName(id).trim().charAt(0);\n return first ? first.toUpperCase() : \"?\";\n }\n const sender = derived(() => {\n if (trace.eventName === \"finished-main-streaming-step\" || trace.eventName === \"sent-message\") {\n return \"agent\";\n }\n if (trace.role === \"system\" || trace?.bosunInputMessageSender === \"system\") {\n return \"system\";\n }\n return trace.role === \"user\" ? \"user\" : \"user\";\n });\n const bubbleMaxWidthClass = derived(() => {\n if (sender() === \"agent\") return \"max-w-[83%]\";\n if (sender() === \"user\") return \"max-w-[90%] sm:max-w-[80%] md:max-w-[70%]\";\n if (sender() === \"system\") return \"max-w-[90%] sm:max-w-[85%] md:max-w-[75%]\";\n return \"\";\n });\n const showRevert = derived(() => (sender() === \"user\" || sender() === \"system\") && !!onRevert && // Hide for older traces that predate bosun state metadata.\n trace?.bosunPrevStateId !== void 0);\n const hasError = derived(() => trace.error != null);\n const isVariantSelectable = derived(() => variantSelectionState === \"source\");\n function formatHHmmss(ms) {\n if (typeof ms !== \"number\" || !Number.isFinite(ms)) return null;\n const d = new Date(ms);\n if (Number.isNaN(d.getTime())) return null;\n const hh = String(d.getHours()).padStart(2, \"0\");\n const mm = String(d.getMinutes()).padStart(2, \"0\");\n const ss = String(d.getSeconds()).padStart(2, \"0\");\n return `${hh}:${mm}:${ss}`;\n }\n const time = derived(() => formatHHmmss(trace?.createdAt));\n function isAddTestCandidate() {\n const responseIsEligible = allowAddTest && sender() === \"agent\" && trace.eventName !== \"transfer-requested\" && (trace.eventName === \"finished-main-streaming-step\" || trace.eventName === \"sent-message\");\n if (!responseIsEligible) return false;\n if (!requireTestSourceStep) return !!(agentId && agentId.trim());\n return !!testSourceStep && typeof testSourceStep.receivedContext !== \"undefined\" && typeof testSourceStep.response === \"string\" && testSourceStep.response.trim().length > 0;\n }\n function isAddTestEligible() {\n return isAddTestCandidate() && !!(agentId && agentId.trim());\n }\n function isAnalyzeEligible() {\n return sender() === \"agent\" && trace.eventName !== \"transfer-requested\" && !!(agentId && agentId.trim()) && (trace.eventName === \"finished-main-streaming-step\" || trace.eventName === \"sent-message\");\n }\n function isRegenerateEligible() {\n return isAnalyzeEligible();\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<div${attr_class(\"group mb-2 flex w-full items-start\", void 0, { \"justify-end\": sender() === \"user\" || sender() === \"system\" })}>`);\n if (trace.eventName === \"transfer-requested\" || trace.eventName === \"hangup-requested\") {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"flex w-full justify-center\"><div${attr_class(`cursor-pointer select-text rounded-full border border-rc-gray-650 bg-rc-gray-800/40 px-4 py-2 text-sm text-rc-gray-100 ${hasError() ? \"border-red-500 bg-red-950/30 text-red-200\" : \"\"}`)} role=\"button\" tabindex=\"0\"><div class=\"flex flex-wrap items-baseline gap-x-2 gap-y-0\">`);\n if (time()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span class=\"text-[13px] leading-none text-rc-gray-400\">${escape_html(time())}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (trace.eventName === \"transfer-requested\") {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"min-w-0 break-words\">Transfer requested: ${escape_html(trace.content)}</div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n $$renderer3.push(`<div class=\"min-w-0 break-words\">Conversation hanged up.</div>`);\n }\n $$renderer3.push(`<!--]--></div></div></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n if (sender() === \"agent\" && agentId) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"mr-2 mt-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-sm bg-rc-green-700 text-sm uppercase text-rc-gray-100 backdrop-blur-md\"${attr(\"title\", agentName(agentId))}>${escape_html(getInitial(agentId))}</div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (showRevert()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\" title=\"Edit this message\" class=\"mr-2 mt-1 shrink-0 self-start rounded p-1 text-rc-gray-500 opacity-80 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none\">`);\n Icon($$renderer3, { name: \"undo\", width: 16, height: 16 });\n $$renderer3.push(`<!----></button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> <div${attr_class(`min-w-0 ${stringify(bubbleMaxWidthClass())}`)}><div role=\"button\" tabindex=\"0\" class=\"cursor-pointer select-text\"><div${attr_class(`rounded-lg ${sender() === \"system\" ? \"justify-between whitespace-pre-line break-words border border-emerald-500 text-emerald-500\" : isVariantSelectable() ? \"w-full whitespace-pre-line break-words border border-rc-green-450 bg-transparent backdrop-blur-md hover:bg-rc-green-700\" : sender() !== \"user\" ? \"w-full whitespace-pre-line break-words bg-rc-green-700 backdrop-blur-md\" : \"whitespace-pre-line break-words bg-rc-gray-700\"} ${sender() === \"system\" || isVariantSelectable() ? \"\" : \"border-thin border-rc-gray-110\"} p-2 pt-1 text-rc-gray-100 ${hasError() ? \"border-red-500 bg-red-950/30 text-red-200\" : \"\"}`)}><div>${escape_html(trace.content)}</div> `);\n if (time()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"mt-1 text-right text-xs text-rc-gray-200/70\">${escape_html(time())}</div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div></div> `);\n if (!suppressActionRow && (isAnalyzeEligible() || isAddTestCandidate() || isRegenerateEligible() && onRegenerate || showSeeVariants)) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"mt-1 flex flex-wrap items-center gap-x-2 gap-y-1\">`);\n if (isAddTestCandidate()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\"${attr(\"disabled\", !isAddTestEligible() || added !== \"idle\", true)}${attr(\"title\", !isAddTestEligible() ? \"Select an agent in the sidebar before adding a test\" : void 0)}${attr_class(`inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 transition-colors focus:outline-none focus-visible:outline-none ${!isAddTestEligible() ? \"cursor-default text-rc-gray-400\" : \"cursor-pointer text-rc-gray-400 hover:bg-rc-gray-900 hover:text-rc-gray-200\"}`)}>`);\n if (!isAddTestEligible()) {\n $$renderer3.push(\"<!--[2-->\");\n $$renderer3.push(`Select agent to add test`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n $$renderer3.push(`Add test`);\n }\n $$renderer3.push(`<!--]--></button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (isAnalyzeEligible() && onAnalyze) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\"${attr(\"disabled\", analyzeDisabled, true)} class=\"inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-rc-gray-400\">Analyze</button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (isRegenerateEligible() && onRegenerate) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\" class=\"inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none\">Regenerate</button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (showSeeVariants && onSeeVariants) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\" class=\"inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none\">See variants</button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n $$renderer3.push(`<!--]--></div> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nfunction ChatStepTrace($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { trace, compareTrace } = $$props;\n const clickGuard = createDragSelectClickGuard();\n onDestroy(clickGuard.cleanup);\n function getPromptForDiff(t) {\n if (!t) return null;\n if (typeof t.renderedPrompt === \"string\") return t.renderedPrompt;\n return null;\n }\n function commonPrefixLength(a, b) {\n if (a === b) return a.length;\n const max = Math.min(a.length, b.length);\n for (let i = 0; i < max; i++) {\n if (a.charCodeAt(i) !== b.charCodeAt(i)) return i;\n }\n return max;\n }\n function similarityPercent(current, baseline) {\n const denom = Math.max(current.length, baseline.length);\n if (denom === 0) return 100;\n const prefixLen = commonPrefixLength(current, baseline);\n return Math.floor(prefixLen / denom * 100);\n }\n function cachedPromptTokensPercent(trace2) {\n const usage = trace2.llmUsage;\n if (!usage) return null;\n if (typeof usage.promptTokens !== \"number\" || !Number.isFinite(usage.promptTokens)) return null;\n if (usage.promptTokens <= 0) return null;\n if (typeof usage.cachedPromptTokens !== \"number\" || !Number.isFinite(usage.cachedPromptTokens)) return null;\n if (usage.cachedPromptTokens < 0) return null;\n return Math.max(0, Math.min(100, Math.floor(usage.cachedPromptTokens / usage.promptTokens * 100)));\n }\n function formatHHmmss(ms) {\n if (typeof ms !== \"number\" || !Number.isFinite(ms)) return null;\n const d = new Date(ms);\n if (Number.isNaN(d.getTime())) return null;\n const hh = String(d.getHours()).padStart(2, \"0\");\n const mm = String(d.getMinutes()).padStart(2, \"0\");\n const ss = String(d.getSeconds()).padStart(2, \"0\");\n return `${hh}:${mm}:${ss}`;\n }\n const time = derived(() => formatHHmmss(trace.createdAt));\n const hasError = derived(() => trace.error != null);\n const oneLine = derived(() => trace.name);\n const mainPromptSimilarityPct = derived(() => {\n if (trace.name !== \"main\") return null;\n const current = getPromptForDiff(trace);\n const baseline = getPromptForDiff(compareTrace);\n if (current == null || baseline == null) return null;\n return similarityPercent(current, baseline);\n });\n const mainCachedTokensPct = derived(() => {\n if (trace.name !== \"main\") return null;\n return cachedPromptTokensPercent(trace);\n });\n const CACHE_OK_THRESHOLD_PCT = 90;\n const CACHE_MISS_SIMILARITY_THRESHOLD_PCT = 90;\n const BREAK_TAG_REGEX = /<break\\b[^>]*\\/?>/i;\n const BREAK_TAG_TOOLTIP = '<break /> tag disables streaming and increases latency. If pauses are not large enough, use \"...\" instead.';\n function hasBreakTag(value) {\n return typeof value === \"string\" && BREAK_TAG_REGEX.test(value);\n }\n const mainPromptCacheLabel = derived(() => {\n if (trace.name !== \"main\") return null;\n if (mainCachedTokensPct() != null) {\n const cacheMiss = mainCachedTokensPct() === 0 && mainPromptSimilarityPct() != null && mainPromptSimilarityPct() >= CACHE_MISS_SIMILARITY_THRESHOLD_PCT;\n if (cacheMiss) {\n return {\n text: \"0% tokens cached. Cache miss\",\n className: \"text-red-200\"\n };\n }\n const ok = mainCachedTokensPct() >= CACHE_OK_THRESHOLD_PCT;\n return ok ? {\n text: `${mainCachedTokensPct()}% tokens cached`,\n className: \"text-rc-gray-400\"\n } : {\n text: `${mainCachedTokensPct()}% tokens cached - move dynamic parts of prompt to the bottom`,\n className: \"text-red-200\"\n };\n }\n if (mainPromptSimilarityPct() != null) {\n const ok = mainPromptSimilarityPct() >= CACHE_OK_THRESHOLD_PCT;\n return ok ? {\n text: `${mainPromptSimilarityPct()}%`,\n className: \"text-rc-gray-400\"\n } : {\n text: `${mainPromptSimilarityPct()}% cached - move dynamic parts of prompt to the bottom`,\n className: \"text-red-200\"\n };\n }\n return null;\n });\n const breakTagLabel = derived(() => {\n if (!hasBreakTag(trace.response)) return null;\n return {\n text: \"LLM output has <break /> tags\",\n className: \"text-red-200\"\n };\n });\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<div class=\"flex w-full select-text items-baseline gap-2 truncate rounded-md bg-transparent px-2 py-1 text-left text-sm text-rc-gray-200 hover:bg-rc-gray-800/40\"><button type=\"button\" class=\"flex min-w-0 cursor-pointer items-baseline gap-2 truncate bg-transparent p-0 text-left text-sm text-rc-gray-200\">`);\n Icon($$renderer3, {\n name: hasError() ? \"close\" : \"checkmark\",\n width: 18,\n height: 18,\n class: hasError() ? \"self-center text-red-400\" : \"self-center text-rc-green-200\"\n });\n $$renderer3.push(`<!----> `);\n if (time()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span class=\"text-[13px] leading-none text-rc-gray-400\">${escape_html(time())}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> <span${attr_class(clsx(hasError() ? \"text-red-200\" : \"\"))}>AI: ${escape_html(oneLine())}</span></button> `);\n if (mainPromptCacheLabel() != null) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span${attr_class(`shrink-0 text-xs ${mainPromptCacheLabel().className}`)}><span class=\"cursor-pointer\" title=\"Show prompt-cache calc\">${escape_html(mainPromptCacheLabel().text)}</span></span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (breakTagLabel() != null) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span${attr_class(`shrink-0 text-xs ${breakTagLabel().className}`)}${attr(\"title\", BREAK_TAG_TOOLTIP)}>${escape_html(breakTagLabel().text)}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n ChatApiCallTrace as C,\n ChatConversationalTrace as a,\n ChatStepTrace as b,\n findStringifiedConversationBefore as c,\n findMainStepTraceNear as f\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ class MockGenerator {
2
+ poolSize = 120;
3
+ // ----- CONVERSATIONS -----
4
+ async fetchConversations(limit, phoneFilter, lastConversationId) {
5
+ await delay(150);
6
+ return this.generateConversations(limit, phoneFilter, lastConversationId);
7
+ }
8
+ generateConversations(limit, phoneFilter, lastConversationId) {
9
+ const now = Date.now();
10
+ const items = [];
11
+ for (let i = 0; i < this.poolSize; i++) {
12
+ const id = String(1e5 + i);
13
+ items.push({
14
+ conversationId: id,
15
+ medium: i % 2 === 0 ? "phone" : "whatsapp",
16
+ phoneNumber: `+44 7700 ${String(1e3 + i % 90).padStart(4, "0")}`,
17
+ duration: Math.floor(Math.random() * 600),
18
+ createdAt: now - i * 36e5
19
+ });
20
+ }
21
+ let filtered = items;
22
+ if (phoneFilter) {
23
+ const q = phoneFilter.replace(/\s+/g, "");
24
+ filtered = items.filter((it) => it.phoneNumber?.replace(/\s+/g, "").includes(q));
25
+ }
26
+ filtered.sort((a, b) => b.createdAt - a.createdAt);
27
+ if (lastConversationId) {
28
+ const idx = filtered.findIndex((it) => it.conversationId === lastConversationId);
29
+ if (idx >= 0) filtered = filtered.slice(idx + 1);
30
+ }
31
+ const pageItems = filtered.slice(0, limit);
32
+ const nextLastConversationId = pageItems.length ? pageItems[pageItems.length - 1].conversationId : void 0;
33
+ return { limit, items: pageItems, lastConversationId: nextLastConversationId };
34
+ }
35
+ // ----- MIXED TRACES -----
36
+ async fetchTraces(conversationId) {
37
+ await delay(150);
38
+ return { items: this.generateTraces(conversationId) };
39
+ }
40
+ generateTraces(conversationId) {
41
+ const rng = mulberry32(hashString(conversationId));
42
+ const count = Math.floor(rng() * 5) + 3;
43
+ const now = Date.now();
44
+ const traces = Array.from({ length: count }, (_, i) => {
45
+ const ts = now - (count - i) * 3e4;
46
+ const kind = i % 3;
47
+ if (kind === 0) {
48
+ return {
49
+ traceType: "CONVERSATIONAL",
50
+ traceId: `conv-${conversationId}-${i}`,
51
+ conversationId,
52
+ eventName: "received-message",
53
+ role: "user",
54
+ medium: "phone",
55
+ content: `Hello (${i})`,
56
+ createdAt: ts
57
+ };
58
+ }
59
+ if (kind === 1) {
60
+ return {
61
+ traceType: "API_CALL",
62
+ traceId: `api-${conversationId}-${i}`,
63
+ conversationId,
64
+ operationName: "getBooking",
65
+ method: "GET",
66
+ path: `/bookings/${conversationId}`,
67
+ createdAt: ts,
68
+ durationMs: Math.floor(rng() * 200) + 50,
69
+ status: 200,
70
+ ok: true
71
+ };
72
+ }
73
+ return {
74
+ traceType: "STEP",
75
+ traceId: `step-${conversationId}-${i}`,
76
+ conversationId,
77
+ scopeId: `scope-${i}`,
78
+ workflowId: `workflow-${i}`,
79
+ workflowRunId: `run-${conversationId}-${i}`,
80
+ name: `main`,
81
+ renderedPrompt: `Rendered prompt for ${conversationId}/${i}`,
82
+ receivedContext: { foo: "bar" },
83
+ receivedPrompt: `User says #${i}`,
84
+ createdAt: ts,
85
+ stringifiedConversation: `user: hi
86
+ agent: ok (${i})`,
87
+ response: `response ${i}`,
88
+ model: "gpt-4"
89
+ };
90
+ });
91
+ traces.sort((a, b) => a.createdAt - b.createdAt);
92
+ return traces;
93
+ }
94
+ }
95
+ function delay(ms) {
96
+ return new Promise((r) => setTimeout(r, ms));
97
+ }
98
+ function hashString(s) {
99
+ let h = 1779033703 ^ s.length;
100
+ for (let i = 0; i < s.length; i++) {
101
+ h = Math.imul(h ^ s.charCodeAt(i), 3432918353);
102
+ h = h << 13 | h >>> 19;
103
+ }
104
+ return h >>> 0;
105
+ }
106
+ function mulberry32(seed) {
107
+ return function() {
108
+ let t = seed += 1831565813;
109
+ t = Math.imul(t ^ t >>> 15, t | 1);
110
+ t ^= t + Math.imul(t ^ t >>> 7, t | 61);
111
+ return ((t ^ t >>> 14) >>> 0) / 4294967296;
112
+ };
113
+ }
114
+ const mockGenerator = new MockGenerator();
115
+
116
+ export { mockGenerator as m };
117
+ //# sourceMappingURL=MockGenerator-GEpXTgX0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockGenerator-GEpXTgX0.js","sources":["../../../.svelte-kit/adapter-node/chunks/MockGenerator.js"],"sourcesContent":["class MockGenerator {\n poolSize = 120;\n // ----- CONVERSATIONS -----\n async fetchConversations(limit, phoneFilter, lastConversationId) {\n await delay(150);\n return this.generateConversations(limit, phoneFilter, lastConversationId);\n }\n generateConversations(limit, phoneFilter, lastConversationId) {\n const now = Date.now();\n const items = [];\n for (let i = 0; i < this.poolSize; i++) {\n const id = String(1e5 + i);\n items.push({\n conversationId: id,\n medium: i % 2 === 0 ? \"phone\" : \"whatsapp\",\n phoneNumber: `+44 7700 ${String(1e3 + i % 90).padStart(4, \"0\")}`,\n duration: Math.floor(Math.random() * 600),\n createdAt: now - i * 36e5\n });\n }\n let filtered = items;\n if (phoneFilter) {\n const q = phoneFilter.replace(/\\s+/g, \"\");\n filtered = items.filter((it) => it.phoneNumber?.replace(/\\s+/g, \"\").includes(q));\n }\n filtered.sort((a, b) => b.createdAt - a.createdAt);\n if (lastConversationId) {\n const idx = filtered.findIndex((it) => it.conversationId === lastConversationId);\n if (idx >= 0) filtered = filtered.slice(idx + 1);\n }\n const pageItems = filtered.slice(0, limit);\n const nextLastConversationId = pageItems.length ? pageItems[pageItems.length - 1].conversationId : void 0;\n return { limit, items: pageItems, lastConversationId: nextLastConversationId };\n }\n // ----- MIXED TRACES -----\n async fetchTraces(conversationId) {\n await delay(150);\n return { items: this.generateTraces(conversationId) };\n }\n generateTraces(conversationId) {\n const rng = mulberry32(hashString(conversationId));\n const count = Math.floor(rng() * 5) + 3;\n const now = Date.now();\n const traces = Array.from({ length: count }, (_, i) => {\n const ts = now - (count - i) * 3e4;\n const kind = i % 3;\n if (kind === 0) {\n return {\n traceType: \"CONVERSATIONAL\",\n traceId: `conv-${conversationId}-${i}`,\n conversationId,\n eventName: \"received-message\",\n role: \"user\",\n medium: \"phone\",\n content: `Hello (${i})`,\n createdAt: ts\n };\n }\n if (kind === 1) {\n return {\n traceType: \"API_CALL\",\n traceId: `api-${conversationId}-${i}`,\n conversationId,\n operationName: \"getBooking\",\n method: \"GET\",\n path: `/bookings/${conversationId}`,\n createdAt: ts,\n durationMs: Math.floor(rng() * 200) + 50,\n status: 200,\n ok: true\n };\n }\n return {\n traceType: \"STEP\",\n traceId: `step-${conversationId}-${i}`,\n conversationId,\n scopeId: `scope-${i}`,\n workflowId: `workflow-${i}`,\n workflowRunId: `run-${conversationId}-${i}`,\n name: `main`,\n renderedPrompt: `Rendered prompt for ${conversationId}/${i}`,\n receivedContext: { foo: \"bar\" },\n receivedPrompt: `User says #${i}`,\n createdAt: ts,\n stringifiedConversation: `user: hi\nagent: ok (${i})`,\n response: `response ${i}`,\n model: \"gpt-4\"\n };\n });\n traces.sort((a, b) => a.createdAt - b.createdAt);\n return traces;\n }\n}\nfunction delay(ms) {\n return new Promise((r) => setTimeout(r, ms));\n}\nfunction hashString(s) {\n let h = 1779033703 ^ s.length;\n for (let i = 0; i < s.length; i++) {\n h = Math.imul(h ^ s.charCodeAt(i), 3432918353);\n h = h << 13 | h >>> 19;\n }\n return h >>> 0;\n}\nfunction mulberry32(seed) {\n return function() {\n let t = seed += 1831565813;\n t = Math.imul(t ^ t >>> 15, t | 1);\n t ^= t + Math.imul(t ^ t >>> 7, t | 61);\n return ((t ^ t >>> 14) >>> 0) / 4294967296;\n };\n}\nconst mockGenerator = new MockGenerator();\nexport {\n mockGenerator as m\n};\n"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ import { p as page, g as goto } from './index2-DO4B3D-P.js';
3
3
  import { B as Button } from './Button-BLigKkGG.js';
4
4
  import { I as Icon } from './Icon-CXFHkSIr.js';
5
5
  import { I as Input } from './Input-OdQKNdS6.js';
6
- import { T as TelescopeClient, m as mockGenerator } from './client-DzvEkq51.js';
7
- import { p as persistTelescopeSourceId } from './source-selection-eA--VEKo.js';
6
+ import { m as mockGenerator } from './MockGenerator-GEpXTgX0.js';
7
+ import { p as persistTelescopeSourceId, T as TelescopeClient } from './source-selection-CcN1cgXc.js';
8
8
  import { T as Tabs, a as Tab } from './Tab-CD1H0E3P.js';
9
- import { A as AgentSidebar } from './AgentSidebar-XdGj1sqT.js';
9
+ import { A as AgentSidebar } from './AgentSidebar-DvIlda-E.js';
10
10
  import { g as getAgentsContext } from './agents-context-rV2narXG.js';
11
11
  import './trpc-client-D8L6vWf4.js';
12
12
  import './state.svelte-DT7cgvTK.js';
@@ -25,6 +25,7 @@ function _layout($$renderer, $$props) {
25
25
  let conversations = void 0;
26
26
  let selectedConversation = null;
27
27
  const currentAgent = derived(() => (page.url.searchParams.get("agent") ?? "").trim());
28
+ const currentRegion = derived(() => (page.url.searchParams.get("region") ?? "").trim());
28
29
  let phoneQuery = "";
29
30
  let pageSize = 20;
30
31
  let pageSizeStr = "20";
@@ -46,9 +47,10 @@ function _layout($$renderer, $$props) {
46
47
  const ss = sec % 60;
47
48
  return `${mm}:${String(ss).padStart(2, "0")}`;
48
49
  }
49
- function buildAgentSearch(agentId = currentAgent()) {
50
+ function buildAgentSearch(agentId = currentAgent(), region = agentId === currentAgent() ? currentRegion() : "") {
50
51
  const params = new URLSearchParams();
51
52
  if (agentId) params.set("agent", agentId);
53
+ if (agentId && region) params.set("region", region);
52
54
  const search = params.toString();
53
55
  return search ? `?${search}` : "";
54
56
  }
@@ -144,7 +146,11 @@ function _layout($$renderer, $$props) {
144
146
  function handleTabChange({ value }) {
145
147
  if (value === activeTopTab()) return;
146
148
  if (value === "edit") {
147
- return currentAgent() ? goto(`/edit/${encodeURIComponent(currentAgent())}/roleplay`) : goto();
149
+ if (!currentAgent()) return goto();
150
+ const params = new URLSearchParams();
151
+ if (currentRegion()) params.set("region", currentRegion());
152
+ const search = params.toString();
153
+ return goto(`/edit/${encodeURIComponent(currentAgent())}/roleplay${search ? `?${search}` : ""}`);
148
154
  }
149
155
  if (value === "view") return goto(buildConversationsUrl());
150
156
  goto();
@@ -358,4 +364,4 @@ function _layout($$renderer, $$props) {
358
364
  }
359
365
 
360
366
  export { _layout as default };
361
- //# sourceMappingURL=_layout.svelte-C5Y9nSXi.js.map
367
+ //# sourceMappingURL=_layout.svelte-B-CkD4a0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_layout.svelte-B-CkD4a0.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/traces/conversations/_layout.svelte.js"],"sourcesContent":["import { h as head, a as ensure_array_like, e as escape_html, f as derived, b as attr_class, d as attr } from \"../../../../chunks/index.js\";\nimport { g as goto, p as page } from \"../../../../chunks/index2.js\";\nimport { B as Button } from \"../../../../chunks/Button.js\";\nimport { I as Icon } from \"../../../../chunks/Icon.js\";\nimport { I as Input } from \"../../../../chunks/Input.js\";\nimport { m as mockGenerator } from \"../../../../chunks/MockGenerator.js\";\nimport { p as persistTelescopeSourceId, T as TelescopeClient } from \"../../../../chunks/source-selection.js\";\nimport { T as Tabs, a as Tab } from \"../../../../chunks/Tab.js\";\nimport { A as AgentSidebar } from \"../../../../chunks/AgentSidebar.js\";\nimport { g as getAgentsContext } from \"../../../../chunks/agents-context.js\";\nimport \"../../../../chunks/trpc-client.js\";\nfunction _layout($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const client = new TelescopeClient(fetch);\n let agents = [];\n let conversations = void 0;\n let selectedConversation = null;\n const currentAgent = derived(() => (page.url.searchParams.get(\"agent\") ?? \"\").trim());\n const currentRegion = derived(() => (page.url.searchParams.get(\"region\") ?? \"\").trim());\n let phoneQuery = \"\";\n let pageSize = 20;\n let pageSizeStr = \"20\";\n let sortDesc = true;\n let cursorStack = [];\n let lastConversationId = null;\n let loading = false;\n let error = null;\n let totalLoaded = 0;\n let telescopeSources = [];\n let telescopeSourceId = \"\";\n let { useMock = false, children } = $$props;\n const { onError } = getAgentsContext();\n function fmtDate(ms) {\n return new Date(ms).toLocaleString();\n }\n function fmtDuration(sec) {\n const mm = Math.floor(sec / 60);\n const ss = sec % 60;\n return `${mm}:${String(ss).padStart(2, \"0\")}`;\n }\n function buildAgentSearch(agentId = currentAgent(), region = agentId === currentAgent() ? currentRegion() : \"\") {\n const params = new URLSearchParams();\n if (agentId) params.set(\"agent\", agentId);\n if (agentId && region) params.set(\"region\", region);\n const search = params.toString();\n return search ? `?${search}` : \"\";\n }\n function buildConversationsUrl(agentId = currentAgent()) {\n return `${// Filter results client-side if phoneQuery exists\n // When user clicks Next: push current cursor to stack and advance\n // Prev: pop one cursor and request page starting before that cursor (or empty to go first)\n // Already on first page, do nothing\n // pop last cursor (we are currently after it)\n viewBase()}/conversations${buildAgentSearch(agentId)}`;\n }\n async function fetchConversationsFromApi(phoneNumber, limit = pageSize, lastConversationId2, agentId) {\n if (useMock) {\n return mockGenerator.fetchConversations(limit, phoneNumber, lastConversationId2 ?? void 0);\n } else {\n return client.getConversations({\n phoneNumber,\n agentId,\n limit: Number(limit),\n lastConversationId: lastConversationId2 ?? void 0\n });\n }\n }\n async function loadFirstPage() {\n cursorStack = [];\n lastConversationId = null;\n await loadPage();\n }\n async function onTelescopeSourceChange(e) {\n const next = e.target.value;\n telescopeSourceId = next;\n persistTelescopeSourceId(next);\n client.setSourceId(next);\n selectedConversation = null;\n await goto(buildConversationsUrl());\n await loadFirstPage();\n }\n async function loadPage() {\n loading = true;\n error = null;\n try {\n const resp = await fetchConversationsFromApi(phoneQuery || void 0, pageSize, lastConversationId ?? void 0, currentAgent() || void 0);\n let filteredItems = Array.isArray(resp.items) ? resp.items.slice() : [];\n filteredItems = filteredItems.filter((c) => !!c?.phoneNumber);\n conversations = {\n limit: resp.limit,\n items: filteredItems,\n lastConversationId: resp.lastConversationId\n };\n totalLoaded = filteredItems.length;\n lastConversationId = resp.lastConversationId ?? null;\n loading = false;\n } catch (e) {\n loading = false;\n error = e.message || \"Unknown error\";\n onError(`Error loading conversations: ${error}`);\n console.error(\"Load page error:\", e);\n }\n }\n async function onNext() {\n if (!conversations?.lastConversationId) return;\n cursorStack.push(conversations.lastConversationId);\n lastConversationId = conversations.lastConversationId;\n await loadPage();\n }\n async function onPrev() {\n if (!cursorStack.length) {\n return;\n }\n cursorStack.pop();\n lastConversationId = cursorStack.length ? cursorStack[cursorStack.length - 1] : null;\n await loadPage();\n }\n function toggleSort() {\n sortDesc = !sortDesc;\n if (conversations?.items) {\n conversations.items.sort((a, b) => sortDesc ? b.createdAt - a.createdAt : a.createdAt - b.createdAt);\n }\n }\n function onPageSizeChange(e) {\n const v = e.target.value;\n pageSizeStr = v;\n pageSize = parseInt(pageSizeStr, 10) || 20;\n }\n async function onSearch() {\n await loadFirstPage();\n }\n const activeTopTab = derived(() => {\n const head2 = page.url.pathname.split(\"/\")[1];\n return head2 === \"traces\" ? \"view\" : head2;\n });\n const viewBase = derived(() => page.url.pathname.startsWith(\"/view\") ? \"/view\" : \"/traces\");\n function handleTabChange({ value }) {\n if (value === activeTopTab()) return;\n if (value === \"edit\") {\n if (!currentAgent()) return goto();\n const params = new URLSearchParams();\n if (currentRegion()) params.set(\"region\", currentRegion());\n const search = params.toString();\n return goto(`/edit/${encodeURIComponent(currentAgent())}/roleplay${search ? `?${search}` : \"\"}`);\n }\n if (value === \"view\") return goto(buildConversationsUrl());\n goto();\n }\n async function handleAgentClick(agentId, event) {\n event?.stopPropagation();\n if (agentId === currentAgent()) return;\n selectedConversation = null;\n await goto(buildConversationsUrl(agentId));\n }\n async function handleAllAgentsClick(event) {\n event?.stopPropagation();\n if (!currentAgent()) return;\n selectedConversation = null;\n await goto(buildConversationsUrl(\"\"));\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1uk1thp\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>Bosun: Telescope</title>`);\n });\n });\n $$renderer3.push(`<div class=\"flex h-screen\">`);\n AgentSidebar($$renderer3, {\n agents,\n currentAgent: currentAgent(),\n onAgentClick: handleAgentClick,\n showAllAgentsOption: true,\n onAllAgentsClick: handleAllAgentsClick,\n className: \"flex-none\"\n });\n $$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 flex-col bg-rc-gray-980\"><div class=\"flex items-center justify-center\">`);\n Tabs($$renderer3, {\n value: activeTopTab(),\n ariaLabel: \"Top tabs\",\n onChange: handleTabChange,\n children: ($$renderer4) => {\n Tab($$renderer4, {\n value: \"edit\",\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Edit`);\n }\n });\n $$renderer4.push(`<!----> `);\n Tab($$renderer4, {\n value: \"view\",\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->View`);\n }\n });\n $$renderer4.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div> <div class=\"flex flex-wrap items-center gap-4\"><div class=\"flex-1\"><label class=\"block\"><div class=\"flex gap-2\">`);\n $$renderer3.select(\n {\n class: \"select\",\n value: telescopeSourceId,\n disabled: !telescopeSources.length,\n onchange: onTelescopeSourceChange,\n \"aria-label\": \"Telescope source\",\n title: \"Telescope source\"\n },\n ($$renderer4) => {\n if (telescopeSources.length) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<!--[-->`);\n const each_array = ensure_array_like(telescopeSources);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let source = each_array[$$index];\n $$renderer4.option({ value: source.id }, ($$renderer5) => {\n $$renderer5.push(`${escape_html(source.label)}`);\n });\n }\n $$renderer4.push(`<!--]-->`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n $$renderer4.option({ value: \"\" }, ($$renderer5) => {\n $$renderer5.push(`${escape_html(\"No sources\")}`);\n });\n }\n $$renderer4.push(`<!--]-->`);\n },\n \"svelte-1uk1thp\"\n );\n $$renderer3.push(` <div class=\"relative\">`);\n Input($$renderer3, {\n class: \"w-56 rounded-r-none !border !border-rc-gray-500 !p-2 !pr-8 hover:border-rc-gray-400\",\n placeholder: \"Search by phone...\",\n onkeydown: (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n e.stopPropagation();\n onSearch();\n }\n },\n get value() {\n return phoneQuery;\n },\n set value($$value) {\n phoneQuery = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!---->`);\n if (phoneQuery) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\" aria-label=\"Clear search\" class=\"absolute right-2 top-1/2 flex -translate-y-1/2 items-center justify-center rounded p-1 text-rc-gray-200 hover:bg-rc-gray-600 hover:text-rc-gray-100 focus:outline-none\">`);\n Icon($$renderer3, { name: \"close\", width: 18, height: 18 });\n $$renderer3.push(`<!----></button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div> `);\n Button($$renderer3, {\n onclick: onSearch,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->Search`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div></label></div> <div class=\"hidden items-center gap-2\"><div class=\"text-rc-gray-200\">Sort:</div> `);\n Button($$renderer3, {\n onclick: toggleSort,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->${escape_html(sortDesc ? \"Newest first\" : \"Oldest first\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div> <div class=\"hidden items-center gap-2\"><div class=\"text-rc-gray-200\">Page size:</div> `);\n $$renderer3.select(\n {\n class: \"rounded-sm border border-rc-gray-300 bg-rc-gray-700 p-2 pr-8 text-rc-gray-100\",\n value: pageSizeStr,\n onchange: onPageSizeChange\n },\n ($$renderer4) => {\n $$renderer4.option({ value: \"5\" }, ($$renderer5) => {\n $$renderer5.push(`5`);\n });\n $$renderer4.option({ value: \"10\" }, ($$renderer5) => {\n $$renderer5.push(`10`);\n });\n $$renderer4.option({ value: \"20\" }, ($$renderer5) => {\n $$renderer5.push(`20`);\n });\n $$renderer4.option({ value: \"50\" }, ($$renderer5) => {\n $$renderer5.push(`50`);\n });\n }\n );\n $$renderer3.push(`</div> <div class=\"flex items-center gap-3\"><div class=\"flex items-center gap-2\">`);\n Button($$renderer3, {\n onclick: onPrev,\n disabled: cursorStack.length === 0 && !lastConversationId,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->Prev`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> `);\n Button($$renderer3, {\n onclick: onNext,\n disabled: !conversations?.items.length,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->Next`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> <div class=\"text-sm text-rc-gray-200\">Items: ${escape_html(totalLoaded)}</div></div></div> <div class=\"ml-auto whitespace-nowrap text-sm\"><span class=\"text-gray-400\">API Mode:</span> <span class=\"font-semibold text-rc-green-200\">${escape_html(useMock ? \"Mock (local)\" : \"Live\")}</span></div></div></nav> <main class=\"flex flex-1 overflow-hidden\"><div class=\"flex h-full w-1/3 flex-col\"><div class=\"flex-none border-b border-rc-gray-300/40 p-4\"><h2 class=\"text-lg font-semibold text-rc-gray-100\">Conversations</h2></div> <div class=\"rc-scroll min-h-0 flex-1 overflow-scroll px-3 py-4\">`);\n if (loading) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<p class=\"py-8 text-center text-rc-gray-200\">Loading...</p>`);\n } else if (!conversations?.items?.length) {\n $$renderer3.push(\"<!--[1-->\");\n $$renderer3.push(`<p class=\"py-8 text-center text-rc-gray-300\">No conversations found</p>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n $$renderer3.push(`<ul class=\"space-y-2\"><!--[-->`);\n const each_array_1 = ensure_array_like(conversations.items);\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let conversation = each_array_1[$$index_1];\n $$renderer3.push(`<li${attr_class(\n `cursor-pointer rounded-lg p-3 transition-colors ${(page.params.conversationId ? conversation.conversationId === page.params.conversationId : conversation.conversationId === selectedConversation?.conversationId) ? \"bg-rc-gray-600\" : \"bg-rc-gray-700 hover:bg-rc-gray-650\"}`,\n \"svelte-1uk1thp\"\n )}${attr(\"aria-selected\", page.params.conversationId ? conversation.conversationId === page.params.conversationId : conversation.conversationId === selectedConversation?.conversationId)}><div class=\"flex w-full flex-col gap-2\"><div class=\"flex w-full items-center justify-between\"><div class=\"text-gray-300\">${escape_html(fmtDate(conversation.createdAt))}</div> <div class=\"flex items-center gap-2\"><span class=\"text-xs text-rc-gray-300\">${escape_html(conversation.medium)}</span> <span class=\"font-semibold text-rc-gray-100\">${escape_html(conversation.phoneNumber)}</span></div></div> <div class=\"flex items-center justify-between gap-4\"><div class=\"text-sm\"><span class=\"text-rc-gray-200\">Conversation Id:</span> <span class=\"text-rc-green-200\">${escape_html(conversation.conversationId)}</span> `);\n if (!currentAgent() && conversation.agentId) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span class=\"text-rc-gray-200\">, Agent Id:</span> <span class=\"text-rc-green-200\">${escape_html(conversation.agentId)}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div> <p class=\"text-sm text-gray-400\">Duration: ${escape_html(fmtDuration(conversation.duration ?? 0))}</p></div></div></li>`);\n }\n $$renderer3.push(`<!--]--></ul>`);\n }\n $$renderer3.push(`<!--]--></div></div> <div class=\"flex h-full w-2/3 flex-col bg-rc-gray-980\">`);\n children($$renderer3);\n $$renderer3.push(`<!----></div></main></div></div>`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n _layout as default\n};\n"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { p as page, g as goto, r as replaceState } from './index2-DO4B3D-P.js';
10
10
  import { p as public_env } from './shared-server-DaWdgxVh.js';
11
11
  import { t as trpc } from './trpc-client-D8L6vWf4.js';
12
12
  import 'nunjucks';
13
- import { A as AgentSidebar } from './AgentSidebar-XdGj1sqT.js';
13
+ import { A as AgentSidebar } from './AgentSidebar-DvIlda-E.js';
14
14
  import { g as getAgentsContext } from './agents-context-rV2narXG.js';
15
15
  import { C as ContextEditor } from './ContextEditor-D5B2mO8Z.js';
16
16
  import { c as clearChatContent, a as clearLogs } from './log-content.svelte-CfQzj-v_.js';
@@ -557,7 +557,11 @@ function _layout($$renderer, $$props) {
557
557
  void flushPromptSave();
558
558
  closeAllPopovers();
559
559
  if (value === "edit") return goto();
560
- if (value === "view") return goto(`/view?agent=${enc(workspace.agentId)}`);
560
+ if (value === "view") {
561
+ const qs = new URLSearchParams({ agent: workspace.agentId });
562
+ if (workspace.region) qs.set("region", workspace.region);
563
+ return goto(`/view?${qs.toString()}`);
564
+ }
561
565
  goto();
562
566
  }
563
567
  function openModePopover(kind) {
@@ -1004,4 +1008,4 @@ function _layout($$renderer, $$props) {
1004
1008
  }
1005
1009
 
1006
1010
  export { _layout as default };
1007
- //# sourceMappingURL=_layout.svelte-_oqm8kmr.js.map
1011
+ //# sourceMappingURL=_layout.svelte-BBFCF-xw.js.map