@recombine-ai/bosun 0.10.1 → 0.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/README.md +12 -0
  2. package/bin/bosun.js +3 -44
  3. package/build/client/_app/immutable/assets/0.CH-WU4JN.css +1 -0
  4. package/build/client/_app/immutable/assets/0.CH-WU4JN.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.CH-WU4JN.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/{10.BX46PfEJ.css → 10.DIVePEYf.css} +1 -1
  7. package/build/client/_app/immutable/assets/10.DIVePEYf.css.br +0 -0
  8. package/build/client/_app/immutable/assets/10.DIVePEYf.css.gz +0 -0
  9. package/build/client/_app/immutable/chunks/{Dp760K13.js → 07xNIa59.js} +2 -2
  10. package/build/client/_app/immutable/chunks/07xNIa59.js.br +0 -0
  11. package/build/client/_app/immutable/chunks/07xNIa59.js.gz +0 -0
  12. package/build/client/_app/immutable/chunks/BDl2QuyN.js +1 -0
  13. package/build/client/_app/immutable/chunks/BDl2QuyN.js.br +0 -0
  14. package/build/client/_app/immutable/chunks/BDl2QuyN.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/{CqxCTxvJ.js → BI42X8h_.js} +1 -1
  16. package/build/client/_app/immutable/chunks/BI42X8h_.js.br +0 -0
  17. package/build/client/_app/immutable/chunks/BI42X8h_.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/BJTwdUYr.js +1 -0
  19. package/build/client/_app/immutable/chunks/BJTwdUYr.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/BJTwdUYr.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/BLu86SbA.js +1 -0
  22. package/build/client/_app/immutable/chunks/BLu86SbA.js.br +0 -0
  23. package/build/client/_app/immutable/chunks/BLu86SbA.js.gz +0 -0
  24. package/build/client/_app/immutable/chunks/BNifnXkO.js +1 -0
  25. package/build/client/_app/immutable/chunks/BNifnXkO.js.br +2 -0
  26. package/build/client/_app/immutable/chunks/BNifnXkO.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/{BM0jKynj.js → BPNEONy5.js} +1 -1
  28. package/build/client/_app/immutable/chunks/BPNEONy5.js.br +0 -0
  29. package/build/client/_app/immutable/chunks/BPNEONy5.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/B_K7D6rX.js +2 -0
  31. package/build/client/_app/immutable/chunks/B_K7D6rX.js.br +0 -0
  32. package/build/client/_app/immutable/chunks/B_K7D6rX.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/Bj8jfBTi.js +1 -0
  34. package/build/client/_app/immutable/chunks/Bj8jfBTi.js.br +0 -0
  35. package/build/client/_app/immutable/chunks/Bj8jfBTi.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/BoPSJr4b.js +1 -0
  37. package/build/client/_app/immutable/chunks/BoPSJr4b.js.br +0 -0
  38. package/build/client/_app/immutable/chunks/BoPSJr4b.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/BsDZe4N6.js +1 -0
  40. package/build/client/_app/immutable/chunks/BsDZe4N6.js.br +0 -0
  41. package/build/client/_app/immutable/chunks/BsDZe4N6.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/{CXo2BVs0.js → Buo-57fF.js} +1 -1
  43. package/build/client/_app/immutable/chunks/Buo-57fF.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/Buo-57fF.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/{C-whEtKd.js → C39ai1md.js} +1 -1
  46. package/build/client/_app/immutable/chunks/C39ai1md.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/C39ai1md.js.gz +0 -0
  48. package/build/client/_app/immutable/chunks/C7he4XPB.js +1 -0
  49. package/build/client/_app/immutable/chunks/C7he4XPB.js.br +0 -0
  50. package/build/client/_app/immutable/chunks/C7he4XPB.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/{DYhTBLDc.js → CAjPRvNs.js} +2 -2
  52. package/build/client/_app/immutable/chunks/CAjPRvNs.js.br +0 -0
  53. package/build/client/_app/immutable/chunks/CAjPRvNs.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/CJYOmGlC.js +1 -0
  55. package/build/client/_app/immutable/chunks/CJYOmGlC.js.br +0 -0
  56. package/build/client/_app/immutable/chunks/CJYOmGlC.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/{CNLU4B3p.js → CMQRtcOV.js} +1 -1
  58. package/build/client/_app/immutable/chunks/CMQRtcOV.js.br +0 -0
  59. package/build/client/_app/immutable/chunks/CMQRtcOV.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/{HJHYLHDn.js → CPXdAKdv.js} +1 -1
  61. package/build/client/_app/immutable/chunks/CPXdAKdv.js.br +0 -0
  62. package/build/client/_app/immutable/chunks/CPXdAKdv.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/CVlsAO8k.js +11 -0
  64. package/build/client/_app/immutable/chunks/CVlsAO8k.js.br +0 -0
  65. package/build/client/_app/immutable/chunks/CVlsAO8k.js.gz +0 -0
  66. package/build/client/_app/immutable/chunks/{DNLcpWO_.js → CX0Ekq8t.js} +1 -1
  67. package/build/client/_app/immutable/chunks/CX0Ekq8t.js.br +0 -0
  68. package/build/client/_app/immutable/chunks/CX0Ekq8t.js.gz +0 -0
  69. package/build/client/_app/immutable/chunks/Ca197UDq.js +1 -0
  70. package/build/client/_app/immutable/chunks/Ca197UDq.js.br +0 -0
  71. package/build/client/_app/immutable/chunks/Ca197UDq.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/CaHl3dME.js +1 -0
  73. package/build/client/_app/immutable/chunks/CaHl3dME.js.br +0 -0
  74. package/build/client/_app/immutable/chunks/CaHl3dME.js.gz +0 -0
  75. package/build/client/_app/immutable/chunks/Cql_e8Of.js +1 -0
  76. package/build/client/_app/immutable/chunks/Cql_e8Of.js.br +2 -0
  77. package/build/client/_app/immutable/chunks/Cql_e8Of.js.gz +0 -0
  78. package/build/client/_app/immutable/chunks/{Dv8m1cTI.js → CxLomzuE.js} +1 -1
  79. package/build/client/_app/immutable/chunks/CxLomzuE.js.br +0 -0
  80. package/build/client/_app/immutable/chunks/{Dv8m1cTI.js.gz → CxLomzuE.js.gz} +0 -0
  81. package/build/client/_app/immutable/chunks/Cyai3SOj.js +1 -0
  82. package/build/client/_app/immutable/chunks/Cyai3SOj.js.br +0 -0
  83. package/build/client/_app/immutable/chunks/Cyai3SOj.js.gz +0 -0
  84. package/build/client/_app/immutable/chunks/{DTXUDKH5.js → CyvQWZoe.js} +4 -4
  85. package/build/client/_app/immutable/chunks/CyvQWZoe.js.br +0 -0
  86. package/build/client/_app/immutable/chunks/CyvQWZoe.js.gz +0 -0
  87. package/build/client/_app/immutable/chunks/CzXNWL4m.js +1 -0
  88. package/build/client/_app/immutable/chunks/CzXNWL4m.js.br +1 -0
  89. package/build/client/_app/immutable/chunks/CzXNWL4m.js.gz +0 -0
  90. package/build/client/_app/immutable/chunks/D-B5X35l.js +1 -0
  91. package/build/client/_app/immutable/chunks/D-B5X35l.js.br +0 -0
  92. package/build/client/_app/immutable/chunks/D-B5X35l.js.gz +0 -0
  93. package/build/client/_app/immutable/chunks/DJriQKD9.js +2 -0
  94. package/build/client/_app/immutable/chunks/DJriQKD9.js.br +0 -0
  95. package/build/client/_app/immutable/chunks/DJriQKD9.js.gz +0 -0
  96. package/build/client/_app/immutable/chunks/DXUXXCDA.js +1 -0
  97. package/build/client/_app/immutable/chunks/DXUXXCDA.js.br +0 -0
  98. package/build/client/_app/immutable/chunks/DXUXXCDA.js.gz +0 -0
  99. package/build/client/_app/immutable/chunks/{CZLNSMhF.js → Dslf9OwW.js} +10 -10
  100. package/build/client/_app/immutable/chunks/Dslf9OwW.js.br +0 -0
  101. package/build/client/_app/immutable/chunks/Dslf9OwW.js.gz +0 -0
  102. package/build/client/_app/immutable/chunks/QpaC6J6s.js +1 -0
  103. package/build/client/_app/immutable/chunks/QpaC6J6s.js.br +0 -0
  104. package/build/client/_app/immutable/chunks/QpaC6J6s.js.gz +0 -0
  105. package/build/client/_app/immutable/chunks/{HXxIsSOO.js → iAhzu4tv.js} +1 -1
  106. package/build/client/_app/immutable/chunks/iAhzu4tv.js.br +0 -0
  107. package/build/client/_app/immutable/chunks/iAhzu4tv.js.gz +0 -0
  108. package/build/client/_app/immutable/chunks/i_5fJYKS.js +3 -0
  109. package/build/client/_app/immutable/chunks/i_5fJYKS.js.br +0 -0
  110. package/build/client/_app/immutable/chunks/i_5fJYKS.js.gz +0 -0
  111. package/build/client/_app/immutable/chunks/{CF66fWJN.js → nYD9wsyN.js} +1 -1
  112. package/build/client/_app/immutable/chunks/nYD9wsyN.js.br +0 -0
  113. package/build/client/_app/immutable/chunks/nYD9wsyN.js.gz +0 -0
  114. package/build/client/_app/immutable/chunks/{BIpSIzUr.js → uLGP0py1.js} +1 -1
  115. package/build/client/_app/immutable/chunks/uLGP0py1.js.br +0 -0
  116. package/build/client/_app/immutable/chunks/uLGP0py1.js.gz +0 -0
  117. package/build/client/_app/immutable/entry/app.Cr7CMG-3.js +2 -0
  118. package/build/client/_app/immutable/entry/app.Cr7CMG-3.js.br +0 -0
  119. package/build/client/_app/immutable/entry/app.Cr7CMG-3.js.gz +0 -0
  120. package/build/client/_app/immutable/entry/start.CDNd0Bml.js +1 -0
  121. package/build/client/_app/immutable/entry/start.CDNd0Bml.js.br +2 -0
  122. package/build/client/_app/immutable/entry/start.CDNd0Bml.js.gz +0 -0
  123. package/build/client/_app/immutable/nodes/{0.BCmKHiYo.js → 0.AyqKXI2h.js} +2 -2
  124. package/build/client/_app/immutable/nodes/0.AyqKXI2h.js.br +0 -0
  125. package/build/client/_app/immutable/nodes/0.AyqKXI2h.js.gz +0 -0
  126. package/build/client/_app/immutable/nodes/1.BRmfm-nN.js +1 -0
  127. package/build/client/_app/immutable/nodes/1.BRmfm-nN.js.br +0 -0
  128. package/build/client/_app/immutable/nodes/1.BRmfm-nN.js.gz +0 -0
  129. package/build/client/_app/immutable/nodes/10.D03jjkr4.js +7 -0
  130. package/build/client/_app/immutable/nodes/10.D03jjkr4.js.br +0 -0
  131. package/build/client/_app/immutable/nodes/10.D03jjkr4.js.gz +0 -0
  132. package/build/client/_app/immutable/nodes/{15.Wmhj7gOy.js → 15.BFy4oAT6.js} +1 -1
  133. package/build/client/_app/immutable/nodes/15.BFy4oAT6.js.br +0 -0
  134. package/build/client/_app/immutable/nodes/15.BFy4oAT6.js.gz +0 -0
  135. package/build/client/_app/immutable/nodes/17.BOYU_WTT.js +3 -0
  136. package/build/client/_app/immutable/nodes/17.BOYU_WTT.js.br +0 -0
  137. package/build/client/_app/immutable/nodes/17.BOYU_WTT.js.gz +0 -0
  138. package/build/client/_app/immutable/nodes/18.Ddx80a4f.js +11 -0
  139. package/build/client/_app/immutable/nodes/18.Ddx80a4f.js.br +0 -0
  140. package/build/client/_app/immutable/nodes/18.Ddx80a4f.js.gz +0 -0
  141. package/build/client/_app/immutable/nodes/{2.BdQ4KFOK.js → 2.CZEboQjo.js} +20 -20
  142. package/build/client/_app/immutable/nodes/2.CZEboQjo.js.br +0 -0
  143. package/build/client/_app/immutable/nodes/2.CZEboQjo.js.gz +0 -0
  144. package/build/client/_app/immutable/nodes/3.dAV7FviN.js +1 -0
  145. package/build/client/_app/immutable/nodes/3.dAV7FviN.js.br +0 -0
  146. package/build/client/_app/immutable/nodes/3.dAV7FviN.js.gz +0 -0
  147. package/build/client/_app/immutable/nodes/4.Cm_vMAEA.js +1 -0
  148. package/build/client/_app/immutable/nodes/4.Cm_vMAEA.js.br +0 -0
  149. package/build/client/_app/immutable/nodes/4.Cm_vMAEA.js.gz +0 -0
  150. package/build/client/_app/immutable/nodes/5.DPWuTlaI.js +1 -0
  151. package/build/client/_app/immutable/nodes/5.DPWuTlaI.js.br +0 -0
  152. package/build/client/_app/immutable/nodes/5.DPWuTlaI.js.gz +0 -0
  153. package/build/client/_app/immutable/nodes/6.DY-NLaRW.js +1 -0
  154. package/build/client/_app/immutable/nodes/6.DY-NLaRW.js.br +0 -0
  155. package/build/client/_app/immutable/nodes/6.DY-NLaRW.js.gz +0 -0
  156. package/build/client/_app/immutable/nodes/{8.DWNYX1kH.js → 8.Chuqhf8W.js} +1 -1
  157. package/build/client/_app/immutable/nodes/8.Chuqhf8W.js.br +0 -0
  158. package/build/client/_app/immutable/nodes/8.Chuqhf8W.js.gz +0 -0
  159. package/build/client/_app/immutable/nodes/9.BOEM8f6B.js +2 -0
  160. package/build/client/_app/immutable/nodes/9.BOEM8f6B.js.br +0 -0
  161. package/build/client/_app/immutable/nodes/9.BOEM8f6B.js.gz +0 -0
  162. package/build/client/_app/version.json +1 -1
  163. package/build/client/_app/version.json.br +0 -0
  164. package/build/client/_app/version.json.gz +0 -0
  165. package/build/server/chunks/0-TQkJBtAu.js +9 -0
  166. package/build/server/chunks/0-TQkJBtAu.js.map +1 -0
  167. package/build/server/chunks/1-CKxKlw1l.js +9 -0
  168. package/build/server/chunks/{1-C1mGPV-S.js.map → 1-CKxKlw1l.js.map} +1 -1
  169. package/build/server/chunks/10-Bly5Nk7M.js +9 -0
  170. package/build/server/chunks/10-Bly5Nk7M.js.map +1 -0
  171. package/build/server/chunks/{15-CZBxPMAc.js → 15-BMEAVslz.js} +2 -2
  172. package/build/server/chunks/{15-CZBxPMAc.js.map → 15-BMEAVslz.js.map} +1 -1
  173. package/build/server/chunks/17-C8CYQOYP.js +9 -0
  174. package/build/server/chunks/17-C8CYQOYP.js.map +1 -0
  175. package/build/server/chunks/18-CtXVGBbS.js +9 -0
  176. package/build/server/chunks/18-CtXVGBbS.js.map +1 -0
  177. package/build/server/chunks/2-DvD0dAh0.js +9 -0
  178. package/build/server/chunks/2-DvD0dAh0.js.map +1 -0
  179. package/build/server/chunks/3-DBzpRDK8.js +9 -0
  180. package/build/server/chunks/3-DBzpRDK8.js.map +1 -0
  181. package/build/server/chunks/4-BUNytyC2.js +9 -0
  182. package/build/server/chunks/4-BUNytyC2.js.map +1 -0
  183. package/build/server/chunks/5-DNo8_tFS.js +9 -0
  184. package/build/server/chunks/{5-DblV-OAd.js.map → 5-DNo8_tFS.js.map} +1 -1
  185. package/build/server/chunks/6-DUMdIfbf.js +9 -0
  186. package/build/server/chunks/6-DUMdIfbf.js.map +1 -0
  187. package/build/server/chunks/8-DxTJ555u.js +9 -0
  188. package/build/server/chunks/8-DxTJ555u.js.map +1 -0
  189. package/build/server/chunks/9-B4-5k50d.js +9 -0
  190. package/build/server/chunks/9-B4-5k50d.js.map +1 -0
  191. package/build/server/chunks/{AgentSidebar-XdGj1sqT.js → AgentSidebar-DvIlda-E.js} +5 -6
  192. package/build/server/chunks/AgentSidebar-DvIlda-E.js.map +1 -0
  193. package/build/server/chunks/{Button-Dsy3QY7B.js → Button-BLigKkGG.js} +2 -2
  194. package/build/server/chunks/Button-BLigKkGG.js.map +1 -0
  195. package/build/server/chunks/{ChatStepTrace-1q74tVYO.js → ChatStepTrace-CqqIjRLU.js} +47 -11
  196. package/build/server/chunks/ChatStepTrace-CqqIjRLU.js.map +1 -0
  197. package/build/server/chunks/{Input-CHFlfduw.js → Input-OdQKNdS6.js} +1 -2
  198. package/build/server/chunks/Input-OdQKNdS6.js.map +1 -0
  199. package/build/server/chunks/MockGenerator-GEpXTgX0.js +117 -0
  200. package/build/server/chunks/MockGenerator-GEpXTgX0.js.map +1 -0
  201. package/build/server/chunks/Modal-DtVsRmmO.js.map +1 -1
  202. package/build/server/chunks/{_layout.svelte-DJ4kDgDL.js → _layout.svelte-B-CkD4a0.js} +14 -8
  203. package/build/server/chunks/_layout.svelte-B-CkD4a0.js.map +1 -0
  204. package/build/server/chunks/{_layout.svelte-B2lwUacy.js → _layout.svelte-BBFCF-xw.js} +8 -4
  205. package/build/server/chunks/_layout.svelte-BBFCF-xw.js.map +1 -0
  206. package/build/server/chunks/{_layout.svelte-C7JgNCIu.js → _layout.svelte-cPhmW5bZ.js} +3 -1
  207. package/build/server/chunks/_layout.svelte-cPhmW5bZ.js.map +1 -0
  208. package/build/server/chunks/{_page.svelte-FufhMKh4.js → _page.svelte-0J2xaeyC.js} +71 -16
  209. package/build/server/chunks/_page.svelte-0J2xaeyC.js.map +1 -0
  210. package/build/server/chunks/{_page.svelte-BpRksNEG.js → _page.svelte-BgoX8Y6N.js} +2 -2
  211. package/build/server/chunks/{_page.svelte-BpRksNEG.js.map → _page.svelte-BgoX8Y6N.js.map} +1 -1
  212. package/build/server/chunks/{_page.svelte-GaxktsuT.js → _page.svelte-C_S_qUgZ.js} +480 -72
  213. package/build/server/chunks/_page.svelte-C_S_qUgZ.js.map +1 -0
  214. package/build/server/chunks/{_page.svelte-DDpBtd3X.js → _page.svelte-CqGOvPRO.js} +3 -4
  215. package/build/server/chunks/_page.svelte-CqGOvPRO.js.map +1 -0
  216. package/build/server/chunks/{_page.svelte-CA3-vgl2.js → _page.svelte-Cxh9_vUl.js} +151 -100
  217. package/build/server/chunks/_page.svelte-Cxh9_vUl.js.map +1 -0
  218. package/build/server/chunks/_page.svelte-zOI_s_3J.js +2151 -0
  219. package/build/server/chunks/_page.svelte-zOI_s_3J.js.map +1 -0
  220. package/build/server/chunks/agents-context-rV2narXG.js.map +1 -1
  221. package/build/server/chunks/conversation-view-memory-BZguFlTt.js +20 -0
  222. package/build/server/chunks/conversation-view-memory-BZguFlTt.js.map +1 -0
  223. package/build/server/chunks/edit-workspace-context-B1nYQ5hD.js.map +1 -1
  224. package/build/server/chunks/index-CSpGrMM2.js.map +1 -1
  225. package/build/server/chunks/{client-DzvEkq51.js → source-selection-CcN1cgXc.js} +122 -117
  226. package/build/server/chunks/source-selection-CcN1cgXc.js.map +1 -0
  227. package/build/server/index.js +1 -1
  228. package/build/server/index.js.map +1 -1
  229. package/build/server/manifest.js +14 -14
  230. package/build/server/manifest.js.map +1 -1
  231. package/package.json +4 -4
  232. package/src/backend/lib/get-agent-factories.spec.ts +59 -0
  233. package/src/backend/lib/get-agent-factories.ts +31 -1
  234. package/src/backend/lib/voice-agent-lifecycle.test.ts +31 -0
  235. package/src/backend/lib/voice-agent-lifecycle.ts +16 -0
  236. package/src/backend/roleplay/agents.ts +189 -69
  237. package/src/backend/roleplay/message-dispatcher.ts +0 -7
  238. package/src/backend/roleplay/router.ts +14 -17
  239. package/src/backend/roleplay/trace-serialization.spec.ts +35 -0
  240. package/src/backend/roleplay/trace-serialization.ts +57 -0
  241. package/src/backend/roleplay/variants.ts +33 -49
  242. package/src/backend/tests/academy.ts +202 -100
  243. package/src/backend/tests/analyze.ts +0 -3
  244. package/src/backend/tests/data.spec.ts +139 -0
  245. package/src/backend/tests/data.ts +452 -68
  246. package/src/backend/tests/emulate-agents.ts +60 -44
  247. package/src/backend/tests/openai-prompt-cache.ts +68 -0
  248. package/src/backend/tests/promptfoo-runtime.spec.ts +41 -0
  249. package/src/backend/tests/promptfoo-runtime.ts +27 -0
  250. package/src/backend/tests/report-files.spec.ts +42 -0
  251. package/src/backend/tests/report-files.ts +101 -0
  252. package/src/backend/tests/router.ts +28 -2
  253. package/src/backend/tests/suite.ts +13 -4
  254. package/build/client/_app/immutable/assets/0.B4t3dozz.css +0 -1
  255. package/build/client/_app/immutable/assets/0.B4t3dozz.css.br +0 -0
  256. package/build/client/_app/immutable/assets/0.B4t3dozz.css.gz +0 -0
  257. package/build/client/_app/immutable/assets/10.BX46PfEJ.css.br +0 -0
  258. package/build/client/_app/immutable/assets/10.BX46PfEJ.css.gz +0 -0
  259. package/build/client/_app/immutable/chunks/7E8m6dwk.js +0 -1
  260. package/build/client/_app/immutable/chunks/7E8m6dwk.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/7E8m6dwk.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/7qRqthsa.js +0 -1
  263. package/build/client/_app/immutable/chunks/7qRqthsa.js.br +0 -2
  264. package/build/client/_app/immutable/chunks/7qRqthsa.js.gz +0 -0
  265. package/build/client/_app/immutable/chunks/Ajb1KYIn.js +0 -1
  266. package/build/client/_app/immutable/chunks/Ajb1KYIn.js.br +0 -0
  267. package/build/client/_app/immutable/chunks/Ajb1KYIn.js.gz +0 -0
  268. package/build/client/_app/immutable/chunks/B0iEglSe.js +0 -1
  269. package/build/client/_app/immutable/chunks/B0iEglSe.js.br +0 -0
  270. package/build/client/_app/immutable/chunks/B0iEglSe.js.gz +0 -0
  271. package/build/client/_app/immutable/chunks/BIpSIzUr.js.br +0 -0
  272. package/build/client/_app/immutable/chunks/BIpSIzUr.js.gz +0 -0
  273. package/build/client/_app/immutable/chunks/BM0jKynj.js.br +0 -0
  274. package/build/client/_app/immutable/chunks/BM0jKynj.js.gz +0 -0
  275. package/build/client/_app/immutable/chunks/BTvePR6r.js +0 -1
  276. package/build/client/_app/immutable/chunks/BTvePR6r.js.br +0 -2
  277. package/build/client/_app/immutable/chunks/BTvePR6r.js.gz +0 -0
  278. package/build/client/_app/immutable/chunks/Bcu62lFq.js +0 -1
  279. package/build/client/_app/immutable/chunks/Bcu62lFq.js.br +0 -0
  280. package/build/client/_app/immutable/chunks/Bcu62lFq.js.gz +0 -0
  281. package/build/client/_app/immutable/chunks/BwtfALfL.js +0 -11
  282. package/build/client/_app/immutable/chunks/BwtfALfL.js.br +0 -0
  283. package/build/client/_app/immutable/chunks/BwtfALfL.js.gz +0 -0
  284. package/build/client/_app/immutable/chunks/BxsDwlgp.js +0 -4
  285. package/build/client/_app/immutable/chunks/BxsDwlgp.js.br +0 -0
  286. package/build/client/_app/immutable/chunks/BxsDwlgp.js.gz +0 -0
  287. package/build/client/_app/immutable/chunks/C-whEtKd.js.br +0 -2
  288. package/build/client/_app/immutable/chunks/C-whEtKd.js.gz +0 -0
  289. package/build/client/_app/immutable/chunks/C1WqE8CP.js +0 -1
  290. package/build/client/_app/immutable/chunks/C1WqE8CP.js.br +0 -2
  291. package/build/client/_app/immutable/chunks/C1WqE8CP.js.gz +0 -0
  292. package/build/client/_app/immutable/chunks/C4D-JXnS.js +0 -1
  293. package/build/client/_app/immutable/chunks/C4D-JXnS.js.br +0 -0
  294. package/build/client/_app/immutable/chunks/C4D-JXnS.js.gz +0 -0
  295. package/build/client/_app/immutable/chunks/C4SnSfql.js +0 -1
  296. package/build/client/_app/immutable/chunks/C4SnSfql.js.br +0 -0
  297. package/build/client/_app/immutable/chunks/C4SnSfql.js.gz +0 -0
  298. package/build/client/_app/immutable/chunks/CF66fWJN.js.br +0 -0
  299. package/build/client/_app/immutable/chunks/CF66fWJN.js.gz +0 -0
  300. package/build/client/_app/immutable/chunks/CNLU4B3p.js.br +0 -0
  301. package/build/client/_app/immutable/chunks/CNLU4B3p.js.gz +0 -0
  302. package/build/client/_app/immutable/chunks/CXo2BVs0.js.br +0 -0
  303. package/build/client/_app/immutable/chunks/CXo2BVs0.js.gz +0 -0
  304. package/build/client/_app/immutable/chunks/CZLNSMhF.js.br +0 -0
  305. package/build/client/_app/immutable/chunks/CZLNSMhF.js.gz +0 -0
  306. package/build/client/_app/immutable/chunks/CqO5tR2_.js +0 -1
  307. package/build/client/_app/immutable/chunks/CqO5tR2_.js.br +0 -0
  308. package/build/client/_app/immutable/chunks/CqO5tR2_.js.gz +0 -0
  309. package/build/client/_app/immutable/chunks/CqxCTxvJ.js.br +0 -0
  310. package/build/client/_app/immutable/chunks/CqxCTxvJ.js.gz +0 -0
  311. package/build/client/_app/immutable/chunks/D-wf2QNc.js +0 -1
  312. package/build/client/_app/immutable/chunks/D-wf2QNc.js.br +0 -0
  313. package/build/client/_app/immutable/chunks/D-wf2QNc.js.gz +0 -0
  314. package/build/client/_app/immutable/chunks/D4obUD_s.js +0 -1
  315. package/build/client/_app/immutable/chunks/D4obUD_s.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/D4obUD_s.js.gz +0 -0
  317. package/build/client/_app/immutable/chunks/D8e7SQh9.js +0 -1
  318. package/build/client/_app/immutable/chunks/D8e7SQh9.js.br +0 -0
  319. package/build/client/_app/immutable/chunks/D8e7SQh9.js.gz +0 -0
  320. package/build/client/_app/immutable/chunks/DNLcpWO_.js.br +0 -0
  321. package/build/client/_app/immutable/chunks/DNLcpWO_.js.gz +0 -0
  322. package/build/client/_app/immutable/chunks/DTXUDKH5.js.br +0 -0
  323. package/build/client/_app/immutable/chunks/DTXUDKH5.js.gz +0 -0
  324. package/build/client/_app/immutable/chunks/DYhTBLDc.js.br +0 -0
  325. package/build/client/_app/immutable/chunks/DYhTBLDc.js.gz +0 -0
  326. package/build/client/_app/immutable/chunks/DhBm2Vx9.js +0 -1
  327. package/build/client/_app/immutable/chunks/DhBm2Vx9.js.br +0 -0
  328. package/build/client/_app/immutable/chunks/DhBm2Vx9.js.gz +0 -0
  329. package/build/client/_app/immutable/chunks/Dp760K13.js.br +0 -0
  330. package/build/client/_app/immutable/chunks/Dp760K13.js.gz +0 -0
  331. package/build/client/_app/immutable/chunks/Dv0gjm25.js +0 -1
  332. package/build/client/_app/immutable/chunks/Dv0gjm25.js.br +0 -0
  333. package/build/client/_app/immutable/chunks/Dv0gjm25.js.gz +0 -0
  334. package/build/client/_app/immutable/chunks/Dv8m1cTI.js.br +0 -0
  335. package/build/client/_app/immutable/chunks/HJHYLHDn.js.br +0 -0
  336. package/build/client/_app/immutable/chunks/HJHYLHDn.js.gz +0 -0
  337. package/build/client/_app/immutable/chunks/HXxIsSOO.js.br +0 -0
  338. package/build/client/_app/immutable/chunks/HXxIsSOO.js.gz +0 -0
  339. package/build/client/_app/immutable/chunks/_yZg6Sf-.js +0 -2
  340. package/build/client/_app/immutable/chunks/_yZg6Sf-.js.br +0 -0
  341. package/build/client/_app/immutable/chunks/_yZg6Sf-.js.gz +0 -0
  342. package/build/client/_app/immutable/chunks/xebNt8-Z.js +0 -1
  343. package/build/client/_app/immutable/chunks/xebNt8-Z.js.br +0 -0
  344. package/build/client/_app/immutable/chunks/xebNt8-Z.js.gz +0 -0
  345. package/build/client/_app/immutable/entry/app.C4wJtvtH.js +0 -2
  346. package/build/client/_app/immutable/entry/app.C4wJtvtH.js.br +0 -0
  347. package/build/client/_app/immutable/entry/app.C4wJtvtH.js.gz +0 -0
  348. package/build/client/_app/immutable/entry/start.BId2vqhS.js +0 -1
  349. package/build/client/_app/immutable/entry/start.BId2vqhS.js.br +0 -2
  350. package/build/client/_app/immutable/entry/start.BId2vqhS.js.gz +0 -0
  351. package/build/client/_app/immutable/nodes/0.BCmKHiYo.js.br +0 -0
  352. package/build/client/_app/immutable/nodes/0.BCmKHiYo.js.gz +0 -0
  353. package/build/client/_app/immutable/nodes/1.8skEZBEw.js +0 -1
  354. package/build/client/_app/immutable/nodes/1.8skEZBEw.js.br +0 -0
  355. package/build/client/_app/immutable/nodes/1.8skEZBEw.js.gz +0 -0
  356. package/build/client/_app/immutable/nodes/10.YgmBfSWN.js +0 -5
  357. package/build/client/_app/immutable/nodes/10.YgmBfSWN.js.br +0 -0
  358. package/build/client/_app/immutable/nodes/10.YgmBfSWN.js.gz +0 -0
  359. package/build/client/_app/immutable/nodes/15.Wmhj7gOy.js.br +0 -0
  360. package/build/client/_app/immutable/nodes/15.Wmhj7gOy.js.gz +0 -0
  361. package/build/client/_app/immutable/nodes/17.D8ydco6g.js +0 -3
  362. package/build/client/_app/immutable/nodes/17.D8ydco6g.js.br +0 -0
  363. package/build/client/_app/immutable/nodes/17.D8ydco6g.js.gz +0 -0
  364. package/build/client/_app/immutable/nodes/18.C67CqGm5.js +0 -11
  365. package/build/client/_app/immutable/nodes/18.C67CqGm5.js.br +0 -0
  366. package/build/client/_app/immutable/nodes/18.C67CqGm5.js.gz +0 -0
  367. package/build/client/_app/immutable/nodes/2.BdQ4KFOK.js.br +0 -0
  368. package/build/client/_app/immutable/nodes/2.BdQ4KFOK.js.gz +0 -0
  369. package/build/client/_app/immutable/nodes/3.nCmkz6kS.js +0 -1
  370. package/build/client/_app/immutable/nodes/3.nCmkz6kS.js.br +0 -0
  371. package/build/client/_app/immutable/nodes/3.nCmkz6kS.js.gz +0 -0
  372. package/build/client/_app/immutable/nodes/4.DAwO0_Am.js +0 -1
  373. package/build/client/_app/immutable/nodes/4.DAwO0_Am.js.br +0 -0
  374. package/build/client/_app/immutable/nodes/4.DAwO0_Am.js.gz +0 -0
  375. package/build/client/_app/immutable/nodes/5.C_SvvZjG.js +0 -1
  376. package/build/client/_app/immutable/nodes/5.C_SvvZjG.js.br +0 -0
  377. package/build/client/_app/immutable/nodes/5.C_SvvZjG.js.gz +0 -0
  378. package/build/client/_app/immutable/nodes/6.DfOe9lph.js +0 -1
  379. package/build/client/_app/immutable/nodes/6.DfOe9lph.js.br +0 -0
  380. package/build/client/_app/immutable/nodes/6.DfOe9lph.js.gz +0 -0
  381. package/build/client/_app/immutable/nodes/8.DWNYX1kH.js.br +0 -0
  382. package/build/client/_app/immutable/nodes/8.DWNYX1kH.js.gz +0 -0
  383. package/build/client/_app/immutable/nodes/9.D7SG4T7Z.js +0 -2
  384. package/build/client/_app/immutable/nodes/9.D7SG4T7Z.js.br +0 -0
  385. package/build/client/_app/immutable/nodes/9.D7SG4T7Z.js.gz +0 -0
  386. package/build/server/chunks/0-D5BNSI7t.js +0 -9
  387. package/build/server/chunks/0-D5BNSI7t.js.map +0 -1
  388. package/build/server/chunks/1-C1mGPV-S.js +0 -9
  389. package/build/server/chunks/10-BUo1e_HG.js +0 -9
  390. package/build/server/chunks/10-BUo1e_HG.js.map +0 -1
  391. package/build/server/chunks/17-iNFqG1My.js +0 -9
  392. package/build/server/chunks/17-iNFqG1My.js.map +0 -1
  393. package/build/server/chunks/18-u8T5X6fM.js +0 -9
  394. package/build/server/chunks/18-u8T5X6fM.js.map +0 -1
  395. package/build/server/chunks/2-tLlSByHA.js +0 -9
  396. package/build/server/chunks/2-tLlSByHA.js.map +0 -1
  397. package/build/server/chunks/3-D1KY9yVZ.js +0 -9
  398. package/build/server/chunks/3-D1KY9yVZ.js.map +0 -1
  399. package/build/server/chunks/4-7zu0cJha.js +0 -9
  400. package/build/server/chunks/4-7zu0cJha.js.map +0 -1
  401. package/build/server/chunks/5-DblV-OAd.js +0 -9
  402. package/build/server/chunks/6-BDC5budM.js +0 -9
  403. package/build/server/chunks/6-BDC5budM.js.map +0 -1
  404. package/build/server/chunks/8-DhmD-opq.js +0 -9
  405. package/build/server/chunks/8-DhmD-opq.js.map +0 -1
  406. package/build/server/chunks/9-BGj28GI6.js +0 -9
  407. package/build/server/chunks/9-BGj28GI6.js.map +0 -1
  408. package/build/server/chunks/AgentSidebar-XdGj1sqT.js.map +0 -1
  409. package/build/server/chunks/Button-Dsy3QY7B.js.map +0 -1
  410. package/build/server/chunks/ChatStepTrace-1q74tVYO.js.map +0 -1
  411. package/build/server/chunks/Input-CHFlfduw.js.map +0 -1
  412. package/build/server/chunks/_layout.svelte-B2lwUacy.js.map +0 -1
  413. package/build/server/chunks/_layout.svelte-C7JgNCIu.js.map +0 -1
  414. package/build/server/chunks/_layout.svelte-DJ4kDgDL.js.map +0 -1
  415. package/build/server/chunks/_page.svelte-Bl1WcAXy.js +0 -671
  416. package/build/server/chunks/_page.svelte-Bl1WcAXy.js.map +0 -1
  417. package/build/server/chunks/_page.svelte-CA3-vgl2.js.map +0 -1
  418. package/build/server/chunks/_page.svelte-DDpBtd3X.js.map +0 -1
  419. package/build/server/chunks/_page.svelte-FufhMKh4.js.map +0 -1
  420. package/build/server/chunks/_page.svelte-GaxktsuT.js.map +0 -1
  421. package/build/server/chunks/client-DzvEkq51.js.map +0 -1
  422. package/build/server/chunks/source-selection-eA--VEKo.js +0 -124
  423. package/build/server/chunks/source-selection-eA--VEKo.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-FufhMKh4.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/traces/conversations/_conversationId_/traces/_page.svelte.js"],"sourcesContent":["import { m as getContext, r as fallback, a as ensure_array_like, b as attr_class, e as escape_html, k as bind_props, n as store_get, u as unsubscribe_stores, h as head, d as attr } from \"../../../../../../chunks/index.js\";\nimport \"clsx\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../../../chunks/exports.js\";\nimport \"../../../../../../chunks/utils2.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../../../chunks/root.js\";\nimport \"../../../../../../chunks/state.svelte.js\";\nimport { g as getPersistedTelescopeSourceId } from \"../../../../../../chunks/source-selection.js\";\nimport { T as TelescopeClient, m as mockGenerator } from \"../../../../../../chunks/client.js\";\nimport { b as buildResponseLatencySpans, f as findResponseLatencyUserTurn } from \"../../../../../../chunks/latency.js\";\nimport { B as Button } from \"../../../../../../chunks/Button.js\";\nimport { D as Dropdown } from \"../../../../../../chunks/Dropdown.js\";\nimport { I as Icon, h as html } from \"../../../../../../chunks/Icon.js\";\nimport { M as Modal } from \"../../../../../../chunks/Modal.js\";\nimport { C as ChatApiCallTrace, b as ChatStepTrace, a as ChatConversationalTrace } from \"../../../../../../chunks/ChatStepTrace.js\";\nconst getStores = () => {\n const stores$1 = getContext(\"__svelte__\");\n return {\n /** @type {typeof page} */\n page: {\n subscribe: stores$1.page.subscribe\n },\n /** @type {typeof navigating} */\n navigating: {\n subscribe: stores$1.navigating.subscribe\n },\n /** @type {typeof updated} */\n updated: stores$1.updated\n };\n};\nconst page = {\n subscribe(fn) {\n const store = getStores().page;\n return store.subscribe(fn);\n }\n};\nfunction CopyTracesDropdown($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n disabled = false,\n getWithPromptsText,\n getWithoutPromptsText,\n dropdownId = \"copy-traces-dropdown\"\n } = $$props;\n let open = false;\n let anchorEl = null;\n let copied = null;\n let timer = null;\n async function copy(mode) {\n try {\n const text = mode === \"with-prompts\" ? getWithPromptsText() : getWithoutPromptsText();\n await navigator.clipboard.writeText(text);\n copied = mode;\n if (timer) clearTimeout(timer);\n timer = window.setTimeout(\n () => {\n copied = null;\n timer = null;\n },\n 2e3\n );\n } catch (e) {\n console.error(\"Failed to copy traces\", e);\n }\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<div>`);\n Button($$renderer3, {\n variant: \"secondary\",\n size: \"small\",\n disabled,\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": dropdownId,\n onclick: (e) => {\n e.stopPropagation();\n open = !open;\n },\n class: \"flex items-center gap-1\",\n get el() {\n return anchorEl;\n },\n set el($$value) {\n anchorEl = $$value;\n $$settled = false;\n },\n children: ($$renderer4) => {\n if (copied === \"without-prompts\") {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`Copied traces (without prompts)`);\n } else if (copied === \"with-prompts\") {\n $$renderer4.push(\"<!--[1-->\");\n $$renderer4.push(`Copied traces (with prompts)`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n $$renderer4.push(`Copy traces`);\n }\n $$renderer4.push(`<!--]--> `);\n Icon($$renderer4, {\n name: \"chevron-down\",\n class: \"size-5 text-rc-gray-400 transition-transform duration-200 \" + (open ? \"rotate-180\" : \"\")\n });\n $$renderer4.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> `);\n {\n let children = function($$renderer4) {\n $$renderer4.push(`<div class=\"mt-1 overflow-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 shadow-inner-white-soft backdrop-blur-2xl\" role=\"listbox\">`);\n Button($$renderer4, {\n variant: \"ghost\",\n size: \"small\",\n role: \"option\",\n onclick: (e) => {\n e.stopPropagation();\n open = false;\n copy(\"without-prompts\");\n },\n class: \"w-full rounded-none border-b border-rc-gray-110 py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400\",\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Without prompts`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!----> `);\n Button($$renderer4, {\n variant: \"ghost\",\n size: \"small\",\n role: \"option\",\n onclick: (e) => {\n e.stopPropagation();\n open = false;\n copy(\"with-prompts\");\n },\n class: \"w-full rounded-none py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400\",\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->With prompts`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!----></div>`);\n };\n Dropdown($$renderer3, {\n id: dropdownId,\n open,\n onClose: () => open = false,\n anchorEl,\n placement: \"bottom-end\",\n offset: [0, 1],\n children\n });\n }\n $$renderer3.push(`<!----></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}\nfunction CollapseExpand($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let value = fallback($$props[\"value\"], \"\");\n let limit = fallback($$props[\"limit\"], 200);\n let maxLines = fallback($$props[\"maxLines\"], null);\n let className = fallback($$props[\"className\"], \"\");\n let collapsedLabel = fallback($$props[\"collapsedLabel\"], \"...more\");\n let initiallyExpanded = fallback($$props[\"initiallyExpanded\"], false);\n let stopPropagation = fallback($$props[\"stopPropagation\"], true);\n let expanded = fallback($$props[\"expanded\"], initiallyExpanded);\n let treatPlainText = fallback($$props[\"treatPlainText\"], false);\n let highlightPrompt = fallback($$props[\"highlightPrompt\"], false);\n function escapeHtml(text) {\n return text.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n }\n function highlightPromptText(raw) {\n const s = normalizeNewlines(raw);\n let html2 = escapeHtml(s);\n const curlyBlocks = [];\n html2 = html2.replace(/(\\{+[\\s\\S]*?\\}+)/g, (match) => {\n const id = curlyBlocks.length;\n curlyBlocks.push(match);\n return `__CURLY${id}__`;\n });\n html2 = html2.replace(/^(\\s*#.*)$/gm, '<span class=\"prompt-heading\">$1</span>');\n html2 = html2.replace(/(&lt;[^&]*?&gt;)/g, '<span class=\"mtk8\">$1</span>');\n html2 = html2.replace(/^(\\s*)(\\d+)([.)])(\\s+)/gm, (_match, p1, p2, p3, p4) => `${p1}<span class=\"mtk8\">${p2}${p3}</span>${p4}`);\n curlyBlocks.forEach((block, idx) => {\n const highlighted = `<span class=\"mtk5\">${block}</span>`;\n html2 = html2.replace(`__CURLY${idx}__`, highlighted);\n });\n html2 = html2.replace(/\\n/g, \"<br/>\");\n return html2;\n }\n function normalizeNewlines(s) {\n let result = s.replace(/\\r\\n/g, \"\\n\");\n result = result.replace(/\\\\n/g, \"\\n\");\n return result;\n }\n function getPlain(v) {\n try {\n if (Array.isArray(v)) {\n const s = v.map((s2) => s2?.text ?? s2?.content ?? JSON.stringify(s2)).join(\" \");\n return normalizeNewlines(s);\n }\n if (typeof v === \"string\") {\n try {\n const parsed = JSON.parse(v);\n if (Array.isArray(parsed)) {\n const s = parsed.map((s2) => s2?.text ?? s2?.content ?? JSON.stringify(s2)).join(\" \");\n return normalizeNewlines(s);\n }\n return normalizeNewlines(v);\n } catch {\n return normalizeNewlines(v);\n }\n }\n return normalizeNewlines(JSON.stringify(v));\n } catch {\n return normalizeNewlines(String(v ?? \"\"));\n }\n }\n function getFull(v) {\n try {\n if (Array.isArray(v)) {\n const s = v.map((s2) => s2?.text ?? s2?.content ?? JSON.stringify(s2)).join(\"\\n\");\n return normalizeNewlines(s);\n }\n if (typeof v === \"string\") {\n try {\n const parsed = JSON.parse(v);\n if (Array.isArray(parsed)) {\n const s = parsed.map((s2) => s2?.text ?? s2?.content ?? JSON.stringify(s2)).join(\"\\n\");\n return normalizeNewlines(s);\n }\n return normalizeNewlines(v);\n } catch {\n return normalizeNewlines(v);\n }\n }\n return normalizeNewlines(JSON.stringify(v, null, 2));\n } catch {\n return normalizeNewlines(String(v ?? \"\"));\n }\n }\n function parseLine(raw) {\n const s = normalizeNewlines(raw);\n const lines = s.split(/\\n+/).map((l) => l.trim()).filter((l) => l.length > 0);\n const segments2 = [];\n let currentRole = void 0;\n let currentText = \"\";\n for (const line of lines) {\n const m = line.match(/^(user|assistant|system|customer|caller|tool|model|agent)\\s*[:\\-]\\s*(.*)$/i);\n if (m) {\n if (currentText) {\n segments2.push({ text: currentText, role: currentRole });\n }\n currentRole = m[1].toLowerCase();\n currentText = m[2] ?? \"\";\n } else {\n if (currentText) {\n currentText += \"\\n\" + line;\n } else {\n currentText = line;\n }\n }\n }\n if (currentText) {\n segments2.push({ text: currentText, role: currentRole });\n }\n return segments2;\n }\n function asSegments(v) {\n try {\n let raw = v;\n if (typeof v === \"string\") {\n try {\n raw = JSON.parse(v);\n } catch {\n if (!treatPlainText) return [];\n return parseLine(v);\n }\n }\n if (!Array.isArray(raw)) {\n if (Array.isArray(raw?.messages)) {\n raw = raw.messages;\n } else {\n return [];\n }\n }\n return raw.map((s) => {\n let text;\n if (s?.text != null) {\n text = String(s.text);\n } else if (s?.content != null) {\n if (Array.isArray(s.content)) {\n text = s.content.map((part) => {\n if (typeof part === \"string\") return part;\n if (typeof part?.text === \"string\") return part.text;\n if (typeof part?.text?.value === \"string\") return part.text.value;\n return JSON.stringify(part);\n }).join(\" \");\n } else if (typeof s.content === \"string\") {\n text = s.content;\n } else {\n text = JSON.stringify(s.content);\n }\n } else if (typeof s === \"string\") {\n text = s;\n } else {\n text = JSON.stringify(s);\n }\n return {\n text: normalizeNewlines(text),\n role: s?.role,\n time: s?.time,\n duration: s?.duration\n };\n }).filter((s) => s.text && String(s.text).trim().length > 0);\n } catch {\n return [];\n }\n }\n const plain = () => getPlain(value);\n const full = () => getFull(value);\n const plainLines = () => plain().split(\"\\n\");\n const segments = () => asSegments(value);\n const hasStructuredTranscript = () => segments().length > 0;\n const isLong = () => {\n if (maxLines != null) {\n return plainLines().length > maxLines;\n }\n return plain().length > limit;\n };\n const collapsedText = () => {\n const p = plain();\n if (!isLong()) return p;\n if (maxLines != null) {\n return plainLines().slice(0, maxLines).join(\"\\n\");\n }\n return p.slice(0, limit);\n };\n function formatTime(raw) {\n if (!raw) return null;\n try {\n const d = new Date(raw);\n if (Number.isNaN(d.getTime())) return raw;\n return d.toLocaleTimeString(void 0, { hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\" });\n } catch {\n return raw;\n }\n }\n function formatDuration(raw) {\n if (raw == null || !Number.isFinite(raw)) return null;\n const total = Number(raw);\n const totalSec = Math.floor(total);\n const m = Math.floor(totalSec / 60);\n const s = totalSec % 60;\n const mm = String(m).padStart(2, \"0\");\n const ss = String(s).padStart(2, \"0\");\n return `${mm}:${ss}`;\n }\n function normalizeRole(role) {\n if (!role) return \"Assistant\";\n const r = role.trim();\n if (!r) return \"Assistant\";\n return r.charAt(0).toUpperCase() + r.slice(1);\n }\n function isUserRole(role) {\n const r = role?.toLowerCase() ?? \"\";\n return r === \"user\" || r === \"customer\" || r === \"caller\";\n }\n function splitSystem(text) {\n const system = [];\n const main = text.replace(/<([^>]+)>/g, (_m, inner) => {\n const cleaned = String(inner).trim();\n if (cleaned) system.push(cleaned);\n return \"\";\n }).trim();\n return { main, system };\n }\n if (expanded) {\n $$renderer2.push(\"<!--[0-->\");\n if (hasStructuredTranscript()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"space-y-3\"><!--[-->`);\n const each_array = ensure_array_like(segments());\n for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {\n let seg = each_array[$$index_1];\n const userSide = isUserRole(seg.role);\n const isSystem = (seg.role ?? \"\").toLowerCase() === \"system\";\n const parts = splitSystem(seg.text);\n const t = formatTime(seg.time);\n const d = formatDuration(seg.duration);\n $$renderer2.push(`<div${attr_class(`flex ${userSide ? \"justify-end\" : \"justify-start\"}`)}><div${attr_class(`max-w-[70%] break-words rounded-md px-3 py-2 text-sm shadow-sm ${userSide ? \"bg-rc-gray-600 text-rc-gray-100\" : \"bg-rc-gray-700 text-rc-gray-100\"}`)}><div${attr_class(`my-1 text-xs font-semibold uppercase ${isSystem ? \"text-rc-blue \" + (userSide ? \"text-right\" : \"text-left\") : \"text-rc-green-200 \" + (userSide ? \"text-right\" : \"text-left\")}`)}>${escape_html(normalizeRole(seg.role))}</div> <div${attr_class(`whitespace-pre-wrap break-words py-1 text-sm ${userSide ? \"text-justify\" : \"text-left\"} ${isSystem ? \"italic text-rc-gray-200\" : \"\"}`)}>`);\n if (parts.main) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div>${escape_html(parts.main)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_1 = ensure_array_like(parts.system);\n for (let $$index = 0, $$length2 = each_array_1.length; $$index < $$length2; $$index++) {\n let sys = each_array_1[$$index];\n $$renderer2.push(`<div class=\"mt-1 whitespace-pre-wrap break-words text-xs italic text-rc-gray-200\">&lt;${escape_html(sys)}></div>`);\n }\n $$renderer2.push(`<!--]--></div> `);\n if (t || d) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div${attr_class(`mt-1 text-xs text-rc-gray-300 ${userSide ? \"text-right\" : \"text-left\"}`)}>`);\n if (t) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`${escape_html(t)}`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (t && d) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`·`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (d) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`${escape_html(d)}`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div></div>`);\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<div class=\"whitespace-pre-wrap break-words\">`);\n if (highlightPrompt) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`${html(highlightPromptText(full()))}`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`${escape_html(full())}`);\n }\n $$renderer2.push(`<!--]--></div>`);\n }\n $$renderer2.push(`<!--]-->`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<div${attr_class(`mt-1 cursor-text select-text rounded bg-rc-gray-900 p-2 text-sm text-rc-gray-200 ${className}`)}><span class=\"whitespace-pre-wrap break-words\">`);\n if (highlightPrompt) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`${html(highlightPromptText(collapsedText()))}`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`${escape_html(collapsedText())}`);\n }\n $$renderer2.push(`<!--]--></span> `);\n if (isLong()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<button class=\"inline-flex text-sm text-rc-green-200 hover:text-rc-green-100\">${escape_html(collapsedLabel)}</button>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, {\n value,\n limit,\n maxLines,\n className,\n collapsedLabel,\n initiallyExpanded,\n stopPropagation,\n expanded,\n treatPlainText,\n highlightPrompt\n });\n });\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n var $$store_subs;\n let useMock = fallback($$props[\"useMock\"], false);\n const client = new TelescopeClient(fetch);\n client.setSourceId(getPersistedTelescopeSourceId() ?? void 0);\n let traces = [];\n let latencyTraces = [];\n let renderableTraces = [];\n let chatLatencyWarningsAfterTraceKey = /* @__PURE__ */ new Map();\n let tracesLoading = false;\n let tracesLoadingMore = false;\n let tracesError = null;\n let lastLoadedConversationId = null;\n let lastTraceId = null;\n let hasMoreTraces = false;\n let conversation = null;\n let conversationLoading = false;\n let conversationError = null;\n let recordingOpen = false;\n let transcriptOpen = false;\n let tracesRequestId = 0;\n let conversationRequestId = 0;\n const syntheticTraceKeys = /* @__PURE__ */ new WeakMap();\n let syntheticTraceKeyCounter = 0;\n function normalizeNonEmptyString(value) {\n if (typeof value !== \"string\") return null;\n const trimmed = value.trim();\n return trimmed ? trimmed : null;\n }\n function fmtMs(value) {\n return `${Math.round(value)} ms`;\n }\n function traceKey(trace) {\n const id = normalizeNonEmptyString(trace?.traceId);\n if (id) return id;\n const cached = syntheticTraceKeys.get(trace);\n if (cached) return cached;\n syntheticTraceKeyCounter += 1;\n const key = `synthetic-${trace.traceType}-${trace.createdAt}-${syntheticTraceKeyCounter}`;\n syntheticTraceKeys.set(trace, key);\n return key;\n }\n function dedupeTracesByTraceId(items) {\n const seen = /* @__PURE__ */ new Set();\n return items.filter((trace) => {\n const id = normalizeNonEmptyString(trace?.traceId);\n if (!id) return true;\n if (seen.has(id)) return false;\n seen.add(id);\n return true;\n });\n }\n function tracesForCopy(includePrompts) {\n if (includePrompts) return traces;\n return traces.map((trace) => {\n if (trace.traceType !== \"STEP\") return trace;\n const {\n receivedPrompt: _receivedPrompt,\n renderedPrompt: _renderedPrompt,\n ...rest\n } = trace;\n return rest;\n });\n }\n function getPromptForDiff(trace) {\n if (!trace) return null;\n if (typeof trace.renderedPrompt === \"string\") return trace.renderedPrompt;\n return null;\n }\n function findMainComparisonTrace(items, index) {\n for (let i = index - 1; i >= 0; i--) {\n const trace = items[i];\n if (trace.traceType !== \"STEP\") continue;\n const step = trace;\n if (step.name === \"main\" && getPromptForDiff(step)) return step;\n }\n for (let i = index - 1; i >= 0; i--) {\n const trace = items[i];\n if (trace.traceType !== \"STEP\") continue;\n const step = trace;\n if (step.name === \"prewarm\" && getPromptForDiff(step)) return step;\n }\n return null;\n }\n function hasRecording(conv) {\n return !!(conv?.audioUrl && String(conv.audioUrl).trim());\n }\n function hasTranscript(conv) {\n const transcript = conv?.transcript;\n if (typeof transcript === \"string\") return transcript.trim() !== \"\";\n if (Array.isArray(transcript)) return transcript.length > 0;\n return false;\n }\n function transcriptToText(conv) {\n const transcript = conv?.transcript;\n if (!transcript) return \"\";\n if (typeof transcript === \"string\") return transcript;\n if (Array.isArray(transcript)) {\n return transcript.map((seg) => {\n const time = typeof seg?.time === \"string\" ? seg.time : \"\";\n const role = typeof seg?.role === \"string\" ? seg.role : \"\";\n const text = typeof seg?.text === \"string\" ? seg.text : \"\";\n const header = [time, role].filter(Boolean).join(\" • \");\n return header ? `${header}\n${text}` : text;\n }).join(\"\\n\\n\");\n }\n return \"\";\n }\n async function copyTranscript() {\n try {\n await navigator.clipboard.writeText(transcriptToText(conversation));\n } catch (e) {\n console.error(\"Failed to copy transcript\", e);\n }\n }\n async function copyRecordingUrl() {\n try {\n const url = conversation?.audioUrl;\n if (!url) return;\n await navigator.clipboard.writeText(url);\n } catch (e) {\n console.error(\"Failed to copy recording URL\", e);\n }\n }\n function isRenderableConversationalMessage(trace) {\n if (trace.traceType !== \"CONVERSATIONAL\") return false;\n return trace.eventName === \"received-message\" || trace.eventName === \"llm-handler-stream-requested\" || trace.eventName === \"finished-main-streaming-step\" || trace.eventName === \"sent-message\" || trace.eventName === \"transfer-requested\" || trace.eventName === \"hangup-requested\";\n }\n function buildChatLatencyWarningsAfterTraceKey(items, latencyEvents) {\n const byKey = /* @__PURE__ */ new Map();\n for (const span of buildResponseLatencySpans(latencyEvents)) {\n if (!span.isHigh) continue;\n const target = findResponseLatencyUserTurn(items, span);\n if (!target) continue;\n const key = traceKey(target);\n const existing = byKey.get(key);\n if (!existing || span.durationMs > existing.durationMs) {\n byKey.set(key, { id: span.id, durationMs: span.durationMs });\n }\n }\n return byKey;\n }\n function chatLatencyWarningAfterTrace(trace) {\n return chatLatencyWarningsAfterTraceKey.get(traceKey(trace)) ?? null;\n }\n const MONTHS_SHORT = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ];\n function dateKey(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 yyyy = d.getFullYear();\n const mm = String(d.getMonth() + 1).padStart(2, \"0\");\n const dd = String(d.getDate()).padStart(2, \"0\");\n return `${yyyy}-${mm}-${dd}`;\n }\n function formatDateLabel(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 day = d.getDate();\n const month = MONTHS_SHORT[d.getMonth()];\n const year = d.getFullYear();\n return `${day} ${month} ${year}`;\n }\n async function loadConversation(conversationId) {\n const requestId = ++conversationRequestId;\n conversationLoading = true;\n conversationError = null;\n conversation = null;\n try {\n if (useMock) {\n return;\n }\n const resp = await client.getConversation(conversationId);\n if (requestId !== conversationRequestId) return;\n conversation = resp;\n } catch (e) {\n if (requestId !== conversationRequestId) return;\n conversationError = e.message;\n conversation = null;\n } finally {\n if (requestId !== conversationRequestId) return;\n conversationLoading = false;\n }\n }\n async function fetchAllLatencyTraces(conversationId) {\n const built = [];\n let lastLatencyTraceId;\n for (; ; ) {\n const response = await client.getLatencyTraces(conversationId, 500, lastLatencyTraceId);\n built.push(...response.items ?? []);\n lastLatencyTraceId = response.lastTraceId;\n if (!lastLatencyTraceId) break;\n }\n return built;\n }\n async function loadTraces(conversationId) {\n if (!conversationId || conversationId === lastLoadedConversationId) return;\n const requestId = ++tracesRequestId;\n lastLoadedConversationId = conversationId;\n tracesLoading = true;\n tracesLoadingMore = false;\n tracesError = null;\n lastTraceId = null;\n hasMoreTraces = false;\n latencyTraces = [];\n recordingOpen = false;\n transcriptOpen = false;\n void loadConversation(conversationId);\n try {\n let items = [];\n let nextLastTraceId = null;\n let nextHasMoreTraces = false;\n let nextLatencyTraces = [];\n if (useMock) {\n items = (await mockGenerator.fetchTraces(conversationId)).items ?? [];\n } else {\n const [resp, fetchedLatencyTraces] = await Promise.all([\n client.getTraces(conversationId, 100),\n fetchAllLatencyTraces(conversationId).catch((reason) => {\n console.error(\"Failed to load latency traces for chat warnings:\", reason);\n return [];\n })\n ]);\n items = resp.items ?? [];\n nextLastTraceId = resp.lastTraceId ?? null;\n nextHasMoreTraces = nextLastTraceId != null;\n nextLatencyTraces = fetchedLatencyTraces;\n }\n if (requestId !== tracesRequestId) return;\n lastTraceId = nextLastTraceId;\n hasMoreTraces = nextHasMoreTraces;\n latencyTraces = nextLatencyTraces;\n traces = dedupeTracesByTraceId(items).slice().sort((a, b) => a.createdAt - b.createdAt);\n } catch (e) {\n if (requestId !== tracesRequestId) return;\n tracesError = e.message;\n traces = [];\n console.error(\"Failed to load traces:\", e);\n } finally {\n if (requestId !== tracesRequestId) return;\n tracesLoading = false;\n }\n }\n async function loadMoreTraces() {\n if (!lastLoadedConversationId || !lastTraceId || tracesLoadingMore) return;\n const conversationId = lastLoadedConversationId;\n const requestId = tracesRequestId;\n tracesLoadingMore = true;\n tracesError = null;\n try {\n const resp = await client.getTraces(conversationId, 100, lastTraceId);\n const items = resp.items ?? [];\n if (conversationId !== lastLoadedConversationId || requestId !== tracesRequestId) return;\n const nextLastTraceId = resp.lastTraceId ?? null;\n lastTraceId = nextLastTraceId;\n hasMoreTraces = nextLastTraceId != null;\n traces = dedupeTracesByTraceId(traces.concat(items)).slice().sort((a, b) => a.createdAt - b.createdAt);\n } catch (e) {\n if (conversationId !== lastLoadedConversationId || requestId !== tracesRequestId) return;\n tracesError = e.message;\n console.error(\"Failed to load more traces:\", e);\n } finally {\n if (conversationId !== lastLoadedConversationId || requestId !== tracesRequestId) return;\n tracesLoadingMore = false;\n }\n }\n renderableTraces = traces.filter((trace) => {\n return trace.traceType === \"API_CALL\" || trace.traceType === \"STEP\" || isRenderableConversationalMessage(trace);\n });\n chatLatencyWarningsAfterTraceKey = buildChatLatencyWarningsAfterTraceKey(renderableTraces, latencyTraces);\n {\n const cid = store_get($$store_subs ??= {}, \"$page\", page).params.conversationId;\n if (cid && cid !== lastLoadedConversationId) {\n loadTraces(cid);\n }\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1uatba4\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>Bosun: Telescope</title>`);\n });\n });\n $$renderer3.push(`<div class=\"flex h-full w-full flex-col bg-rc-gray-700\"><div class=\"flex-none border-b border-rc-gray-300/40 p-4\"><div class=\"flex flex-wrap items-start justify-between gap-3\"><h2 class=\"text-lg font-semibold text-rc-gray-100\">Traces `);\n if (store_get($$store_subs ??= {}, \"$page\", page).params.conversationId) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span class=\"text-rc-gray-100\">for conversation Id:</span> <span class=\"text-rc-green-200\">${escape_html(store_get($$store_subs ??= {}, \"$page\", page).params.conversationId)}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></h2> `);\n if (store_get($$store_subs ??= {}, \"$page\", page).params.conversationId) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"flex flex-wrap items-center gap-2\">`);\n if (hasRecording(conversation)) {\n $$renderer3.push(\"<!--[0-->\");\n Button($$renderer3, {\n variant: \"secondary\",\n size: \"small\",\n onclick: () => recordingOpen = true,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->Recording`);\n },\n $$slots: { default: true }\n });\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (hasTranscript(conversation)) {\n $$renderer3.push(\"<!--[0-->\");\n Button($$renderer3, {\n variant: \"secondary\",\n size: \"small\",\n onclick: () => transcriptOpen = true,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->Transcript`);\n },\n $$slots: { default: true }\n });\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n CopyTracesDropdown($$renderer3, {\n disabled: !traces.length || tracesLoading,\n getWithPromptsText: () => JSON.stringify(tracesForCopy(true), null, 2),\n getWithoutPromptsText: () => JSON.stringify(tracesForCopy(false), null, 2)\n });\n $$renderer3.push(`<!----></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div> `);\n if (conversationLoading) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"mt-2 text-sm text-rc-gray-400\">Loading call details…</div>`);\n } else if (conversationError) {\n $$renderer3.push(\"<!--[1-->\");\n $$renderer3.push(`<div class=\"mt-2 text-sm text-rc-gray-300\">Call details unavailable: ${escape_html(conversationError)}</div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div> <div class=\"rc-scroll min-h-0 flex-1 overflow-scroll p-4\">`);\n if (!store_get($$store_subs ??= {}, \"$page\", page).params.conversationId) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"py-8 text-center text-rc-gray-300\">No conversation selected</div>`);\n } else if (tracesLoading) {\n $$renderer3.push(\"<!--[1-->\");\n $$renderer3.push(`<div class=\"py-8 text-center text-rc-gray-200\">Loading traces...</div>`);\n } else if (tracesError) {\n $$renderer3.push(\"<!--[2-->\");\n $$renderer3.push(`<div class=\"z-50 py-8 text-center text-red-400\">Error: ${escape_html(tracesError)}</div>`);\n } else if (!renderableTraces.length) {\n $$renderer3.push(\"<!--[3-->\");\n $$renderer3.push(`<div class=\"py-8 text-center text-rc-gray-300\">No traces found</div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n $$renderer3.push(`<div><!--[-->`);\n const each_array = ensure_array_like(renderableTraces);\n for (let idx = 0, $$length = each_array.length; idx < $$length; idx++) {\n let trace = each_array[idx];\n const current = dateKey(trace.createdAt);\n const previous = idx > 0 ? dateKey(renderableTraces[idx - 1].createdAt) : null;\n const label = formatDateLabel(trace.createdAt);\n const latencyWarning = chatLatencyWarningAfterTrace(trace);\n if (current && label && current !== previous) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"my-3 flex w-full justify-center\"><div class=\"rounded-full border border-rc-gray-650 bg-rc-gray-900/40 px-3 py-1 text-xs text-rc-gray-200\">${escape_html(label)}</div></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (trace.traceType === \"API_CALL\") {\n $$renderer3.push(\"<!--[0-->\");\n ChatApiCallTrace($$renderer3, { trace });\n } else if (trace.traceType === \"STEP\") {\n $$renderer3.push(\"<!--[1-->\");\n ChatStepTrace($$renderer3, {\n trace,\n compareTrace: trace.name === \"main\" ? findMainComparisonTrace(renderableTraces, idx) : null\n });\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n ChatConversationalTrace($$renderer3, { trace, context: null, agentId: void 0 });\n }\n $$renderer3.push(`<!--]--> `);\n if (latencyWarning) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"my-3 flex w-full justify-center\"><div class=\"rounded-full border border-red-500 bg-red-950/30 px-3 py-1 text-xs font-semibold text-red-200\">High response latency: ${escape_html(fmtMs(latencyWarning.durationMs))}</div></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n $$renderer3.push(`<!--]--></div> `);\n if (hasMoreTraces) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"mt-3 flex justify-center\">`);\n Button($$renderer3, {\n variant: \"secondary\",\n size: \"small\",\n disabled: tracesLoadingMore,\n onclick: loadMoreTraces,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->${escape_html(tracesLoadingMore ? \"Loading more…\" : \"Load more\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n $$renderer3.push(`<!--]--></div></div> `);\n if (recordingOpen && hasRecording(conversation)) {\n $$renderer3.push(\"<!--[0-->\");\n {\n let children = function($$renderer4) {\n $$renderer4.push(`<audio class=\"w-full\" controls=\"\"${attr(\"src\", conversation?.audioUrl)}></audio> <div class=\"mt-3 break-all text-sm text-rc-gray-300\">${escape_html(conversation?.audioUrl)}</div>`);\n }, footer = function($$renderer4) {\n Button($$renderer4, {\n variant: \"secondary\",\n size: \"small\",\n onclick: copyRecordingUrl,\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Copy URL`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!----> `);\n Button($$renderer4, {\n variant: \"secondary\",\n size: \"small\",\n onclick: () => recordingOpen = false,\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Close`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!---->`);\n };\n Modal($$renderer3, {\n title: \"Recording\",\n class: \"!max-w-3xl\",\n get open() {\n return recordingOpen;\n },\n set open($$value) {\n recordingOpen = $$value;\n $$settled = false;\n },\n children,\n footer,\n $$slots: { default: true, footer: true }\n });\n }\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (transcriptOpen && hasTranscript(conversation)) {\n $$renderer3.push(\"<!--[0-->\");\n {\n let children = function($$renderer4) {\n $$renderer4.push(`<div class=\"rc-scroll flex max-h-[60vh] flex-col gap-4 overflow-scroll p-2\">`);\n if (typeof conversation?.transcript === \"string\") {\n $$renderer4.push(\"<!--[0-->\");\n CollapseExpand($$renderer4, { value: conversation.transcript, limit: 500, expanded: true });\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div>`);\n }, footer = function($$renderer4) {\n $$renderer4.push(`<div class=\"flex w-full items-center justify-end gap-5\">`);\n Button($$renderer4, {\n onclick: copyTranscript,\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Copy transcript`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!----> `);\n Button($$renderer4, {\n variant: \"secondary\",\n onclick: () => transcriptOpen = false,\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Close`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!----></div>`);\n };\n Modal($$renderer3, {\n title: \"Transcript\",\n class: \"!max-w-4xl\",\n get open() {\n return transcriptOpen;\n },\n set open($$value) {\n transcriptOpen = $$value;\n $$settled = false;\n },\n children,\n footer,\n $$slots: { default: true, footer: true }\n });\n }\n } else {\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 if ($$store_subs) unsubscribe_stores($$store_subs);\n bind_props($$props, { useMock });\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-GaxktsuT.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/traces/conversations/_conversationId_/latency/_page.svelte.js"],"sourcesContent":["import { e as escape_html, f as derived, a as ensure_array_like, c as attr_style, b as attr_class, g as clsx } from \"../../../../../../chunks/index.js\";\nimport { o as onDestroy } from \"../../../../../../chunks/index-server.js\";\nimport { p as page } from \"../../../../../../chunks/index2.js\";\nimport { B as Button } from \"../../../../../../chunks/Button.js\";\n/* empty css */\nimport { g as getPersistedTelescopeSourceId } from \"../../../../../../chunks/source-selection.js\";\nimport { b as buildResponseLatencySpans, f as findResponseLatencyUserTurn, R as RESPONSE_LATENCY_THRESHOLD_MS } from \"../../../../../../chunks/latency.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const SPEECH_BUBBLE_HEIGHT_PX = 30;\n const TIMELINE_RULER_HEIGHT_PX = 32;\n const TIMELINE_ROW_HEIGHT_PX = SPEECH_BUBBLE_HEIGHT_PX;\n const TIMELINE_ROW_GAP_PX = 5;\n const WAVEFORM_ROW_HEIGHT_PX = 160;\n const SPEECH_BUBBLE_VERTICAL_GAP_PX = TIMELINE_ROW_GAP_PX;\n const SPEECH_BUBBLE_LEVEL_HEIGHT_PX = SPEECH_BUBBLE_HEIGHT_PX + SPEECH_BUBBLE_VERTICAL_GAP_PX;\n const SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_BEFORE_MS = 500;\n const SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_AFTER_MS = 2500;\n const SPEECH_BUBBLE_AGENT_PLAYBACK_MATCH_WINDOW_MS = 3e4;\n const RESPONSE_LATENCY_TRACE_MATCH_TOLERANCE_MS = 250;\n const BOSUN_COLORS = {\n blue: \"#569cd6\",\n green: \"#93FF6D\",\n greenDark: \"#00B58A\",\n orange: \"#ce9178\",\n purple: \"#81147D\",\n red: \"#FF6666\",\n gray: \"#767676\"\n };\n const ROW_DEFS = [\n {\n label: \"VAD\",\n eventTypes: [\"vad.activated\", \"vad.deactivated\"]\n },\n {\n label: \"STT\",\n eventTypes: [\n \"stt.started\",\n \"stt.interim\",\n \"stt.final\",\n \"stt.final_transcript\"\n ]\n },\n { label: \"Trigger\", eventTypes: [\"speech.created\"] },\n {\n label: \"Reply Pending\",\n eventTypes: [\"reply.pending.started\", \"reply.pending.completed\"]\n },\n {\n label: \"LLM Transport\",\n eventTypes: [\n \"llm.connect_tcp.started\",\n \"llm.connect_tcp.completed\",\n \"llm.connect_tcp.failed\",\n \"llm.start_tls.started\",\n \"llm.start_tls.completed\",\n \"llm.start_tls.failed\"\n ]\n },\n {\n label: \"LLM Wait\",\n eventTypes: [\"llm.wait.started\", \"llm.requested\", \"llm.wait.completed\"]\n },\n {\n label: \"LLM Stream\",\n eventTypes: [\n \"llm.stream.started\",\n \"llm.first_token\",\n \"llm.completed\",\n \"llm.stream.completed\"\n ]\n },\n {\n label: \"TTS Text\",\n eventTypes: [\"tts.text.first_sent\", \"tts.text.completed\"]\n },\n {\n label: \"Provider\",\n eventTypes: [\n \"tts.provider.started\",\n \"tts.audio.first_received\",\n \"tts.audio.last_received\",\n \"tts.provider.completed\"\n ]\n },\n {\n label: \"Decode\",\n eventTypes: [\"tts.decode.started\", \"tts.decode.completed\"]\n },\n {\n label: \"Output Queue\",\n eventTypes: [\"audio.output.wait.started\", \"audio.output.wait.completed\"]\n },\n {\n label: \"Playback\",\n eventTypes: [\n \"audio.playback.started\",\n \"audio.playback.stopped\",\n \"audio.playback.ended\"\n ]\n },\n { label: \"Response Latency\" },\n {\n label: \"Interruptions\",\n eventTypes: [\"interruption.detected\", \"audio.playback.interrupted\"]\n },\n { label: \"Other\" }\n ];\n const TIMELINE_ROW_LABELS = new Set(ROW_DEFS.map((row) => row.label));\n const COLOR_BY_KEY = {\n call: tintHex(BOSUN_COLORS.gray, 0.2),\n vad: tintHex(BOSUN_COLORS.purple, 0.35),\n stt: tintHex(BOSUN_COLORS.purple, 0.2),\n trigger: BOSUN_COLORS.greenDark,\n \"response.latency.ok\": BOSUN_COLORS.green,\n \"response.latency.high\": BOSUN_COLORS.red,\n \"reply.pending\": tintHex(BOSUN_COLORS.greenDark, 0.18),\n \"llm.transport\": tintHex(BOSUN_COLORS.blue, 0.18),\n \"llm.wait\": tintHex(BOSUN_COLORS.blue, -0.25),\n \"llm.stream\": BOSUN_COLORS.blue,\n \"tts.text\": BOSUN_COLORS.orange,\n \"tts.provider.lifecycle\": tintHex(BOSUN_COLORS.purple, -0.18),\n \"tts.provider\": tintHex(BOSUN_COLORS.purple, 0.12),\n \"tts.decode\": tintHex(BOSUN_COLORS.orange, -0.12),\n \"audio.output.wait\": BOSUN_COLORS.orange,\n playback: tintHex(BOSUN_COLORS.greenDark, -0.08),\n interruption: BOSUN_COLORS.orange,\n other: BOSUN_COLORS.gray\n };\n const SPAN_RULES = [\n {\n startEventType: \"reply.pending.started\",\n endEventType: \"reply.pending.completed\",\n row: \"Reply Pending\",\n colorKey: \"reply.pending\",\n label: \"Reply pending\",\n description: \"Derived from adjacent reply-pending lifecycle events\"\n },\n {\n startEventType: \"llm.connect_tcp.started\",\n endEventType: \"llm.connect_tcp.completed\",\n row: \"LLM Transport\",\n colorKey: \"llm.transport\",\n label: \"Connect TCP\",\n description: \"Derived from adjacent TCP connect lifecycle events\"\n },\n {\n startEventType: \"llm.start_tls.started\",\n endEventType: \"llm.start_tls.completed\",\n row: \"LLM Transport\",\n colorKey: \"llm.transport\",\n label: \"Start TLS\",\n description: \"Derived from adjacent TLS lifecycle events\"\n },\n {\n startEventType: \"llm.wait.started\",\n endEventType: \"llm.wait.completed\",\n row: \"LLM Wait\",\n colorKey: \"llm.wait\",\n label: \"LLM wait\",\n description: \"Derived from adjacent LLM wait lifecycle events\"\n },\n {\n startEventType: \"llm.stream.started\",\n endEventType: \"llm.stream.completed\",\n row: \"LLM Stream\",\n colorKey: \"llm.stream\",\n label: \"LLM stream\",\n description: \"Derived from adjacent LLM stream lifecycle events\"\n },\n {\n startEventType: \"tts.text.first_sent\",\n endEventType: \"tts.text.completed\",\n row: \"TTS Text\",\n colorKey: \"tts.text\",\n label: \"TTS text send\",\n description: \"Derived from adjacent TTS text send and completion events\"\n },\n {\n startEventType: \"tts.provider.started\",\n endEventType: \"tts.audio.first_received\",\n row: \"Provider\",\n colorKey: \"tts.provider.lifecycle\",\n label: \"Provider wait\",\n description: \"Derived from adjacent provider start and first-audio events\"\n },\n {\n startEventType: \"tts.audio.first_received\",\n endEventType: \"tts.provider.completed\",\n row: \"Provider\",\n colorKey: \"tts.provider\",\n label: \"Provider audio\",\n description: \"Derived from adjacent provider first-audio and completion events\"\n },\n {\n startEventType: \"tts.decode.started\",\n endEventType: \"tts.decode.completed\",\n row: \"Decode\",\n colorKey: \"tts.decode\",\n label: \"Decode\",\n description: \"Derived from adjacent local decode lifecycle events\"\n },\n {\n startEventType: \"audio.output.wait.started\",\n endEventType: \"audio.output.wait.completed\",\n row: \"Output Queue\",\n colorKey: \"audio.output.wait\",\n label: \"Output queue\",\n description: \"Derived from adjacent audio-output wait lifecycle events\"\n },\n {\n startEventType: \"audio.playback.started\",\n endEventType: \"audio.playback.stopped\",\n row: \"Playback\",\n colorKey: \"playback\",\n label: \"Playback\",\n description: \"Derived from adjacent playback start and playback stop events\"\n }\n ];\n const SPAN_RULE_BY_START = new Map(SPAN_RULES.map((rule) => [rule.startEventType, rule]));\n getPersistedTelescopeSourceId() ?? \"\";\n let traces = [];\n let conversationTraces = [];\n let recording = {\n exists: false,\n alignmentOffsetMs: 0\n };\n let uploadInFlight = false;\n let playbackPositionMs = 0;\n let playbackPlaying = false;\n let viewportStartMs = null;\n let viewportEndMs = null;\n let fileInputEl = null;\n let humanSpeechBubbleReservedLevels = 1;\n let copyLatencyState = \"idle\";\n let playbackAudioContext = null;\n let playbackSourceNode = null;\n let playbackStartedAtMs = null;\n let playbackStartedAtContextTime = null;\n const conversationId = derived(() => page.params.conversationId);\n const timelineOriginMs = derived(() => {\n let min = Number.POSITIVE_INFINITY;\n for (const trace of traces) {\n if (typeof trace.atMs !== \"number\" || !Number.isFinite(trace.atMs)) continue;\n min = Math.min(min, trace.atMs);\n }\n if (Number.isFinite(min)) return min;\n return Number.isFinite(min) ? min : 0;\n });\n const callSegments = derived(() => buildCallLatencySegments(traces));\n const latencyTraceCount = derived(() => traces.length);\n const playbackSpeechBySegmentId = derived(() => buildPlaybackSpeechBySegmentId(callSegments()));\n const timelineSegments = derived(() => callSegments().map((segment) => {\n const speech = playbackSpeechBySegmentId().get(segment.id);\n if (!speech || segment.row !== \"Playback\" || segment.durationMs <= 0) return segment;\n return {\n ...segment,\n speechText: speech.text,\n speechTraceLabel: speech.traceLabel\n };\n }));\n const timelineRows = derived(() => {\n const grouped = /* @__PURE__ */ new Map();\n for (const segment of timelineSegments()) {\n const items = grouped.get(segment.row);\n if (items) items.push(segment);\n else grouped.set(segment.row, [segment]);\n }\n return [...ROW_DEFS].reverse().map((row) => ({ label: row.label, segments: grouped.get(row.label) ?? [] })).filter((row) => row.segments.length > 0);\n });\n const speechBubbleBaseLayouts = derived(() => buildSpeechBubbleBaseLayouts());\n const humanSpeechBubbleLevelCount = derived(() => Math.max(humanSpeechBubbleReservedLevels, speechBubbleRoleLevelCount(speechBubbleBaseLayouts(), \"human\")));\n const speechBubbles = derived(() => compactSpeechBubbleLayouts(speechBubbleBaseLayouts()));\n const humanSpeechBubbleLaneHeightPx = derived(() => speechBubbleLaneHeightPx(humanSpeechBubbleLevelCount()));\n const speechBubbleAreaHeightPx = derived(() => humanSpeechBubbleLaneHeightPx());\n const timelineRowsHeightPx = derived(() => timelineRows().length * TIMELINE_ROW_HEIGHT_PX + Math.max(0, timelineRows().length - 1) * TIMELINE_ROW_GAP_PX);\n const traceRowsToBubbleGapPx = derived(() => timelineRows().length > 0 ? TIMELINE_ROW_GAP_PX : 0);\n const speechBubbleAreaTopPx = derived(() => TIMELINE_RULER_HEIGHT_PX + timelineRowsHeightPx() + traceRowsToBubbleGapPx());\n const waveformRowVisible = derived(() => recording.exists);\n const waveformRowHeightPx = derived(() => waveformRowVisible() ? TIMELINE_ROW_GAP_PX + WAVEFORM_ROW_HEIGHT_PX : 0);\n const guideLines = derived(() => buildGuideLines(timelineRows()));\n const recordingStartMs = derived(() => {\n return null;\n });\n const timelinePlotHeightPx = derived(() => TIMELINE_RULER_HEIGHT_PX + timelineRowsHeightPx() + traceRowsToBubbleGapPx() + speechBubbleAreaHeightPx() + waveformRowHeightPx());\n const playbackAbsoluteMs = derived(() => {\n if (recordingStartMs() == null) return null;\n return recordingStartMs() + playbackPositionMs;\n });\n const playbackCursor = derived(() => {\n const absoluteMs = playbackAbsoluteMs();\n if (absoluteMs == null || viewportStartMs == null || viewportEndMs == null) return null;\n const durationMs = viewportEndMs - viewportStartMs;\n if (!Number.isFinite(durationMs) || durationMs <= 0) return null;\n if (absoluteMs < viewportStartMs || absoluteMs > viewportEndMs) return null;\n return {\n leftPercent: clamp((absoluteMs - viewportStartMs) / durationMs * 100, 0, 100),\n topPx: TIMELINE_RULER_HEIGHT_PX,\n heightPx: Math.max(1, timelinePlotHeightPx() - TIMELINE_RULER_HEIGHT_PX)\n };\n });\n const timelineOriginLine = derived(() => {\n if (viewportStartMs == null || viewportEndMs == null) return null;\n const durationMs = viewportEndMs - viewportStartMs;\n if (!Number.isFinite(durationMs) || durationMs <= 0) return null;\n if (timelineOriginMs() < viewportStartMs || timelineOriginMs() > viewportEndMs) return null;\n return {\n leftPercent: (timelineOriginMs() - viewportStartMs) / durationMs * 100,\n topPx: TIMELINE_RULER_HEIGHT_PX,\n heightPx: Math.max(1, timelinePlotHeightPx() - TIMELINE_RULER_HEIGHT_PX)\n };\n });\n const contentExtent = derived(() => {\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n for (const segment of callSegments()) {\n min = Math.min(min, segment.start);\n max = Math.max(max, segment.end);\n }\n if (!Number.isFinite(min) || !Number.isFinite(max)) return null;\n if (max <= min) max = min + 1;\n return { min, max };\n });\n const conversationTraceExtent = derived(() => {\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n for (const segment of callSegments()) {\n if (!TIMELINE_ROW_LABELS.has(segment.row)) continue;\n min = Math.min(min, segment.start);\n max = Math.max(max, segment.end);\n }\n if (!Number.isFinite(min) || !Number.isFinite(max)) return null;\n if (max <= min) max = min + 1;\n return { min, max };\n });\n const viewportDurationMs = derived(() => {\n if (viewportStartMs == null || viewportEndMs == null) return null;\n const duration = viewportEndMs - viewportStartMs;\n return duration > 0 ? duration : null;\n });\n const visibleTicks = derived(() => {\n if (viewportStartMs == null || viewportEndMs == null) return [];\n return buildTicks(viewportStartMs, viewportEndMs, timelineOriginMs());\n });\n onDestroy(() => {\n stopPlayback(false);\n void closePlaybackAudioContext();\n });\n function normalizeNonEmptyString(value) {\n if (typeof value !== \"string\") return null;\n const trimmed = value.trim();\n return trimmed ? trimmed : null;\n }\n function ms(value) {\n return typeof value === \"number\" && Number.isFinite(value) ? value : null;\n }\n function clampByte(value) {\n return Math.max(0, Math.min(255, Math.round(value)));\n }\n function clamp(value, min, max) {\n return Math.min(max, Math.max(min, value));\n }\n function tintHex(hex, amount) {\n const raw = (hex ?? \"\").trim().replace(/^#/, \"\");\n const expanded = raw.length === 3 ? raw.split(\"\").map((part) => `${part}${part}`).join(\"\") : raw;\n if (expanded.length !== 6 || !/^[0-9a-fA-F]+$/.test(expanded)) return hex;\n const r = parseInt(expanded.slice(0, 2), 16);\n const g = parseInt(expanded.slice(2, 4), 16);\n const b = parseInt(expanded.slice(4, 6), 16);\n const t = Math.abs(Math.max(-1, Math.min(1, amount)));\n const target = amount >= 0 ? 255 : 0;\n return `#${clampByte(r + (target - r) * t).toString(16).padStart(2, \"0\")}${clampByte(g + (target - g) * t).toString(16).padStart(2, \"0\")}${clampByte(b + (target - b) * t).toString(16).padStart(2, \"0\")}`;\n }\n function fmtSignedMs(value) {\n if (!Number.isFinite(value)) return \"0 ms\";\n const rounded = Math.round(value);\n if (rounded === 0) return \"0 ms\";\n return `${rounded > 0 ? \"+\" : \"\"}${rounded} ms`;\n }\n function formatRelativeTime(offsetMs) {\n if (!Number.isFinite(offsetMs)) return \"—\";\n const sign = offsetMs < 0 ? \"-\" : \"\";\n const abs = Math.abs(offsetMs);\n if (abs < 1e4) return `${sign}${(abs / 1e3).toFixed(1)}s`;\n if (abs < 6e4) return `${sign}${(abs / 1e3).toFixed(2)}s`;\n const totalSeconds = abs / 1e3;\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds - minutes * 60;\n return `${sign}${minutes}:${seconds.toFixed(1).padStart(4, \"0\")}`;\n }\n function safeJson(value) {\n try {\n return JSON.stringify(value ?? null, null, 2);\n } catch {\n return String(value);\n }\n }\n async function copyLatencyStream() {\n try {\n await navigator.clipboard.writeText(safeJson(traces));\n copyLatencyState = \"ok\";\n window.setTimeout(\n () => {\n copyLatencyState = \"idle\";\n },\n 2e3\n );\n } catch (reason) {\n console.error(\"Failed to copy latency stream\", reason);\n copyLatencyState = \"error\";\n window.setTimeout(\n () => {\n copyLatencyState = \"idle\";\n },\n 3e3\n );\n }\n }\n function describeTrace(trace) {\n const time = typeof trace.createdAt === \"number\" && Number.isFinite(trace.createdAt) ? new Date(trace.createdAt).toLocaleTimeString() : \"unknown time\";\n if (trace.traceType === \"LATENCY\") {\n return `Latency • #${trace.seq ?? \"?\"} • ${trace.eventType ?? \"unknown\"} • ${time}`;\n }\n if (trace.traceType === \"CONVERSATIONAL\") {\n return `Conversational • ${trace.eventName} • ${time}`;\n }\n if (trace.traceType === \"STEP\") {\n return `Step • ${trace.name ?? \"unknown\"} • ${time}`;\n }\n return `API • ${trace.operationName} • ${time}`;\n }\n function latencyPayload(trace) {\n const payload = trace.payload;\n return payload && typeof payload === \"object\" && !Array.isArray(payload) ? payload : {};\n }\n function latencyRow(eventType) {\n if (eventType === \"call.started\" || eventType === \"call.ended\") return \"Call\";\n if (eventType.startsWith(\"vad.\")) return \"VAD\";\n if (eventType.startsWith(\"stt.\")) return \"STT\";\n if (eventType === \"speech.created\") return \"Trigger\";\n if (eventType.startsWith(\"reply.pending.\")) return \"Reply Pending\";\n if (eventType.startsWith(\"llm.connect_tcp.\") || eventType.startsWith(\"llm.start_tls.\")) {\n return \"LLM Transport\";\n }\n if (eventType === \"llm.requested\" || eventType.startsWith(\"llm.wait.\")) return \"LLM Wait\";\n if (eventType === \"llm.first_token\" || eventType === \"llm.completed\" || eventType.startsWith(\"llm.stream.\")) {\n return \"LLM Stream\";\n }\n if (eventType.startsWith(\"tts.text.\")) return \"TTS Text\";\n if (eventType.startsWith(\"tts.provider.\")) return \"Provider\";\n if (eventType === \"tts.audio.first_received\" || eventType === \"tts.audio.last_received\") {\n return \"Provider\";\n }\n if (eventType.startsWith(\"tts.decode.\")) return \"Decode\";\n if (eventType.startsWith(\"audio.output.wait.\")) return \"Output Queue\";\n if (eventType === \"interruption.detected\" || eventType === \"audio.playback.interrupted\") {\n return \"Interruptions\";\n }\n if (eventType.startsWith(\"audio.playback.\")) return \"Playback\";\n return \"Other\";\n }\n function latencyColorKey(eventType) {\n if (eventType === \"call.started\" || eventType === \"call.ended\") return \"call\";\n if (eventType.startsWith(\"vad.\")) return \"vad\";\n if (eventType.startsWith(\"stt.\")) return \"stt\";\n if (eventType === \"speech.created\") return \"trigger\";\n if (eventType.startsWith(\"reply.pending.\")) return \"reply.pending\";\n if (eventType.startsWith(\"llm.connect_tcp.\") || eventType.startsWith(\"llm.start_tls.\")) {\n return \"llm.transport\";\n }\n if (eventType === \"llm.requested\" || eventType.startsWith(\"llm.wait.\")) return \"llm.wait\";\n if (eventType === \"llm.first_token\" || eventType === \"llm.completed\" || eventType.startsWith(\"llm.stream.\")) {\n return \"llm.stream\";\n }\n if (eventType.startsWith(\"tts.text.\")) return \"tts.text\";\n if (eventType.startsWith(\"tts.provider.\")) return \"tts.provider.lifecycle\";\n if (eventType === \"tts.audio.first_received\" || eventType === \"tts.audio.last_received\") {\n return \"tts.provider\";\n }\n if (eventType.startsWith(\"tts.decode.\")) return \"tts.decode\";\n if (eventType.startsWith(\"audio.output.wait.\")) return \"audio.output.wait\";\n if (eventType === \"interruption.detected\" || eventType === \"audio.playback.interrupted\") {\n return \"interruption\";\n }\n if (eventType.startsWith(\"audio.playback.\")) return \"playback\";\n return \"other\";\n }\n function latencyEventMarker(eventType) {\n switch (eventType) {\n case \"vad.activated\":\n case \"stt.started\":\n return \"start\";\n case \"vad.deactivated\":\n case \"stt.final\":\n case \"stt.final_transcript\":\n return \"end\";\n default:\n return null;\n }\n }\n function latencyLabel(trace) {\n switch (trace.eventType) {\n case \"call.started\":\n return \"Call started\";\n case \"call.ended\":\n return \"Call ended\";\n case \"vad.activated\":\n return \"VAD activated\";\n case \"vad.deactivated\":\n return \"VAD deactivated\";\n case \"stt.started\":\n return \"STT start\";\n case \"stt.interim\":\n return \"STT interim\";\n case \"stt.final\":\n case \"stt.final_transcript\":\n return \"STT final\";\n case \"speech.created\":\n return \"Speech created\";\n case \"reply.pending.started\":\n return \"Reply pending start\";\n case \"reply.pending.completed\":\n return \"Reply pending end\";\n case \"llm.connect_tcp.started\":\n return \"Connect TCP start\";\n case \"llm.connect_tcp.completed\":\n return \"Connect TCP end\";\n case \"llm.connect_tcp.failed\":\n return \"Connect TCP failed\";\n case \"llm.start_tls.started\":\n return \"TLS start\";\n case \"llm.start_tls.completed\":\n return \"TLS end\";\n case \"llm.start_tls.failed\":\n return \"TLS failed\";\n case \"llm.wait.started\":\n return \"LLM wait start\";\n case \"llm.wait.completed\":\n return \"LLM wait end\";\n case \"llm.stream.started\":\n return \"LLM stream start\";\n case \"llm.stream.completed\":\n return \"LLM stream end\";\n case \"llm.requested\":\n return \"LLM request\";\n case \"llm.first_token\":\n return \"LLM first token\";\n case \"llm.completed\":\n return \"LLM end\";\n case \"tts.text.first_sent\":\n return \"TTS first text\";\n case \"tts.text.completed\":\n return \"TTS text end\";\n case \"tts.provider.started\":\n return \"Provider start\";\n case \"tts.provider.completed\":\n return \"Provider end\";\n case \"tts.audio.first_received\":\n return \"Provider audio received\";\n case \"tts.audio.last_received\":\n return \"Provider audio end\";\n case \"tts.decode.started\":\n return \"Decode start\";\n case \"tts.decode.completed\":\n return \"Decode end\";\n case \"audio.output.wait.started\":\n return \"Output queue start\";\n case \"audio.output.wait.completed\":\n return \"Output queue end\";\n case \"interruption.detected\":\n return \"Interruption detected\";\n case \"audio.playback.started\":\n return \"Playback start\";\n case \"audio.playback.stopped\":\n return \"Playback stop\";\n case \"audio.playback.ended\":\n return \"Playback end\";\n case \"audio.playback.interrupted\":\n return \"Playback interrupted\";\n default:\n return trace.eventType;\n }\n }\n function latencyDescription(trace) {\n const payload = latencyPayload(trace);\n switch (trace.eventType) {\n case \"call.started\":\n return \"Call-scoped latency stream started\";\n case \"call.ended\":\n return \"Call-scoped latency stream ended\";\n case \"vad.activated\":\n return \"Raw VAD activation event\";\n case \"vad.deactivated\":\n return \"Raw VAD deactivation event\";\n case \"stt.started\":\n return \"Speech-to-text detected speech start\";\n case \"stt.interim\":\n return normalizeNonEmptyString(payload.originalType) === \"preflight_transcript\" ? \"Speech-to-text preflight transcript\" : \"Speech-to-text interim transcript\";\n case \"stt.final\":\n case \"stt.final_transcript\":\n return \"Speech-to-text final transcript\";\n case \"speech.created\":\n return \"LiveKit created a speech handle\";\n case \"reply.pending.started\":\n return \"Reply generation was committed, but downstream generation has not started yet\";\n case \"reply.pending.completed\":\n return \"Reply generation moved from pending into the LLM request phase\";\n case \"llm.connect_tcp.started\":\n return \"httpcore started opening a new TCP connection for the LLM request\";\n case \"llm.connect_tcp.completed\":\n return \"httpcore finished opening a new TCP connection for the LLM request\";\n case \"llm.connect_tcp.failed\":\n return \"httpcore failed while opening a new TCP connection for the LLM request\";\n case \"llm.start_tls.started\":\n return \"httpcore started TLS negotiation for the LLM request\";\n case \"llm.start_tls.completed\":\n return \"httpcore finished TLS negotiation for the LLM request\";\n case \"llm.start_tls.failed\":\n return \"httpcore failed during TLS negotiation for the LLM request\";\n case \"llm.wait.started\":\n return \"LLM request is in flight and waiting for the first token\";\n case \"llm.wait.completed\":\n return \"The LLM wait phase ended when the first token arrived\";\n case \"llm.stream.started\":\n return \"LLM streaming phase started\";\n case \"llm.stream.completed\":\n return \"LLM streaming phase ended\";\n case \"llm.requested\":\n return \"AnyVan received an LLM request\";\n case \"llm.first_token\":\n return \"First LLM token received\";\n case \"llm.completed\":\n return \"LLM streaming completed\";\n case \"tts.text.first_sent\":\n return \"First text chunk sent to the TTS provider\";\n case \"tts.text.completed\":\n return \"Last non-empty text chunk observed for this TTS stream\";\n case \"tts.provider.started\":\n return \"Provider lifecycle started when the first non-empty TTS text chunk was sent\";\n case \"tts.provider.completed\":\n return \"Provider lifecycle ended when the provider stream reported completion\";\n case \"tts.audio.first_received\":\n return \"First audio chunk received from the TTS provider\";\n case \"tts.audio.last_received\":\n return \"Last audio chunk received from the TTS provider\";\n case \"tts.decode.started\":\n return \"First provider audio bytes were handed into the local decode path\";\n case \"tts.decode.completed\":\n return \"The first decoded audio frame left the local decode path\";\n case \"audio.output.wait.started\":\n return \"The first local audio frame was handed to the LiveKit audio output\";\n case \"audio.output.wait.completed\":\n return \"The audio-output wait phase ended when low-level playback actually started\";\n case \"interruption.detected\":\n return \"User speech overlapped active playback; this does not guarantee playback stopped\";\n case \"audio.playback.started\":\n return \"First played audio frame\";\n case \"audio.playback.stopped\":\n return \"Playback lifecycle ended on the Playback row\";\n case \"audio.playback.ended\":\n return \"Audio playback finished normally\";\n case \"audio.playback.interrupted\":\n return \"Audio playback ended because the output buffer was interrupted\";\n default:\n return null;\n }\n }\n function latencyText(trace) {\n const payload = latencyPayload(trace);\n return normalizeNonEmptyString(payload.text);\n }\n function isFinalSttLatencyTrace(trace) {\n return trace.eventType === \"stt.final\" || trace.eventType === \"stt.final_transcript\";\n }\n function cleanBubbleText(value) {\n const text = normalizeNonEmptyString(value);\n if (!text) return null;\n const cleaned = text.replace(/<break\\b[^>]*\\/?>/gi, \" \").replace(/<[^>]+>/g, \" \").replace(/\\s+/g, \" \").trim();\n return cleaned || null;\n }\n function latencyTranscriptText(trace) {\n const payload = latencyPayload(trace);\n const text = cleanBubbleText(payload.text) ?? cleanBubbleText(payload.transcript) ?? cleanBubbleText(payload.finalTranscript) ?? cleanBubbleText(payload.final_transcript) ?? cleanBubbleText(payload.message);\n if (text) return text;\n const alternatives = payload.alternatives;\n if (Array.isArray(alternatives)) {\n for (const alternative of alternatives) {\n if (!alternative || typeof alternative !== \"object\") continue;\n const alternativeText = cleanBubbleText(alternative.text);\n if (alternativeText) return alternativeText;\n }\n }\n return null;\n }\n function isConversationalTrace(trace) {\n return trace.traceType === \"CONVERSATIONAL\";\n }\n function isUserConversationalTrace(trace) {\n return isConversationalTrace(trace) && trace.role.toLowerCase() === \"user\" && (trace.eventName === \"received-message\" || trace.eventName === \"llm-handler-stream-requested\");\n }\n function isAgentConversationalTrace(trace) {\n return isConversationalTrace(trace) && (trace.eventName === \"finished-main-streaming-step\" || trace.eventName === \"sent-message\");\n }\n function conversationalTraceKey(trace) {\n return normalizeNonEmptyString(trace.traceId) ?? `${trace.createdAt}:${trace.eventName}:${trace.content}`;\n }\n function findPreviousConversationalTrace(items, beforeIndex) {\n for (let index = beforeIndex - 1; index >= 0; index -= 1) {\n const candidate = items[index];\n if (candidate.traceType === \"CONVERSATIONAL\") return candidate;\n }\n return null;\n }\n function findResponseLatencyAgentTrace(items, span) {\n const startCreatedAt = ms(span.startTrace.createdAt);\n const endCreatedAt = ms(span.endTrace.createdAt);\n if (startCreatedAt == null) return null;\n for (let index = 0; index < items.length; index += 1) {\n const candidate = items[index];\n if (!isAgentConversationalTrace(candidate)) continue;\n if (candidate.createdAt < startCreatedAt - RESPONSE_LATENCY_TRACE_MATCH_TOLERANCE_MS) {\n continue;\n }\n if (endCreatedAt != null && candidate.createdAt < endCreatedAt - RESPONSE_LATENCY_TRACE_MATCH_TOLERANCE_MS) {\n continue;\n }\n const previous = findPreviousConversationalTrace(items, index);\n if (!previous || !isUserConversationalTrace(previous)) continue;\n return candidate;\n }\n return null;\n }\n function segmentDistanceFromTime(segment, timeMs) {\n if (timeMs >= segment.start && timeMs <= segment.end) return 0;\n return Math.min(Math.abs(timeMs - segment.start), Math.abs(timeMs - segment.end));\n }\n function findPlaybackSegmentForSpan(span, playbackSegments, usedSegmentIds) {\n const candidates = playbackSegments.filter((segment) => {\n if (usedSegmentIds.has(segment.id)) return false;\n return segment.start >= span.end - SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_BEFORE_MS && segment.start <= span.end + SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_AFTER_MS;\n }).sort((a, b) => Math.abs(a.start - span.end) - Math.abs(b.start - span.end));\n if (candidates[0]) return candidates[0];\n return playbackSegments.find((segment) => !usedSegmentIds.has(segment.id) && segment.start <= span.end + SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_AFTER_MS && segment.end >= span.end - SPEECH_BUBBLE_PLAYBACK_SPAN_MATCH_BEFORE_MS) ?? null;\n }\n function findPlaybackSegmentForAgentTrace(trace, playbackSegments, usedSegmentIds) {\n const traceTime = ms(trace.createdAt);\n if (traceTime == null) return null;\n const candidates = playbackSegments.filter((segment) => {\n if (usedSegmentIds.has(segment.id)) return false;\n return segment.end >= traceTime - SPEECH_BUBBLE_AGENT_PLAYBACK_MATCH_WINDOW_MS && segment.start <= traceTime + SPEECH_BUBBLE_AGENT_PLAYBACK_MATCH_WINDOW_MS;\n }).sort((a, b) => segmentDistanceFromTime(a, traceTime) - segmentDistanceFromTime(b, traceTime));\n return candidates[0] ?? null;\n }\n function callStartTime() {\n for (const trace of traces.slice().sort(compareLatencyTraces)) {\n if (trace.eventType === \"call.started\" && Number.isFinite(trace.atMs)) return trace.atMs;\n }\n return timelineOriginMs();\n }\n function findHumanBubbleStartTime(anchorTime, playbackSegments) {\n const lastPlayback = playbackSegments.filter((segment) => segment.start <= anchorTime).sort((a, b) => b.start - a.start || b.end - a.end)[0];\n if (!lastPlayback) return Math.min(callStartTime(), anchorTime);\n if (lastPlayback.end <= anchorTime) return Math.min(lastPlayback.end, anchorTime);\n return Math.min(lastPlayback.start, anchorTime);\n }\n function traceKey(trace) {\n return normalizeNonEmptyString(trace.traceId) ?? `${trace.seq ?? \"?\"}:${trace.createdAt ?? \"?\"}`;\n }\n function buildTtsTextEvents() {\n return traces.slice().sort(compareLatencyTraces).flatMap((trace) => {\n if (trace.eventType !== \"tts.text.first_sent\" && trace.eventType !== \"tts.text.completed\") {\n return [];\n }\n const text = cleanBubbleText(latencyText(trace));\n return text ? [{ trace, text }] : [];\n });\n }\n function findTtsTextForPlayback(playbackSegment, ttsTextEvents, usedTextTraceIds, previousPlaybackEnd) {\n const lowerBound = previousPlaybackEnd - 250;\n const upperBound = playbackSegment.start + 2e3;\n const candidates = ttsTextEvents.filter(({ trace }) => {\n if (usedTextTraceIds.has(traceKey(trace))) return false;\n return trace.atMs >= lowerBound && trace.atMs <= upperBound;\n }).sort((a, b) => Math.abs(a.trace.atMs - playbackSegment.start) - Math.abs(b.trace.atMs - playbackSegment.start));\n return candidates[0] ?? null;\n }\n function buildPlaybackSpeechBySegmentId(inputSegments) {\n const built = /* @__PURE__ */ new Map();\n const playbackSegments = inputSegments.filter((segment) => segment.row === \"Playback\" && segment.durationMs > 0).sort((a, b) => a.start - b.start || a.end - b.end);\n const usedPlaybackSegmentIds = /* @__PURE__ */ new Set();\n const usedAgentTraceIds = /* @__PURE__ */ new Set();\n const usedTtsTextTraceIds = /* @__PURE__ */ new Set();\n const ttsTextEvents = buildTtsTextEvents();\n let previousPlaybackEnd = callStartTime();\n for (const playbackSegment of playbackSegments) {\n const ttsText = findTtsTextForPlayback(playbackSegment, ttsTextEvents, usedTtsTextTraceIds, previousPlaybackEnd);\n previousPlaybackEnd = Math.max(previousPlaybackEnd, playbackSegment.end);\n if (!ttsText) continue;\n usedPlaybackSegmentIds.add(playbackSegment.id);\n usedTtsTextTraceIds.add(traceKey(ttsText.trace));\n built.set(playbackSegment.id, { text: ttsText.text, traceLabel: describeTrace(ttsText.trace) });\n }\n for (const span of buildResponseLatencySpans(traces)) {\n if (findResponseLatencyUserTurn(conversationTraces, span) == null) continue;\n const agentTrace = findResponseLatencyAgentTrace(conversationTraces, span);\n if (!agentTrace) continue;\n const text = cleanBubbleText(agentTrace.content);\n if (!text) continue;\n const playbackSegment = findPlaybackSegmentForSpan(span, playbackSegments, usedPlaybackSegmentIds);\n if (!playbackSegment) continue;\n usedPlaybackSegmentIds.add(playbackSegment.id);\n usedAgentTraceIds.add(conversationalTraceKey(agentTrace));\n built.set(playbackSegment.id, { text, traceLabel: describeTrace(agentTrace) });\n }\n const agentTraces = conversationTraces.filter(isAgentConversationalTrace).sort(compareConversationTraces);\n for (const agentTrace of agentTraces) {\n const traceKey2 = conversationalTraceKey(agentTrace);\n if (usedAgentTraceIds.has(traceKey2)) continue;\n const text = cleanBubbleText(agentTrace.content);\n if (!text) continue;\n const playbackSegment = findPlaybackSegmentForAgentTrace(agentTrace, playbackSegments, usedPlaybackSegmentIds);\n if (!playbackSegment) continue;\n usedPlaybackSegmentIds.add(playbackSegment.id);\n usedAgentTraceIds.add(traceKey2);\n built.set(playbackSegment.id, { text, traceLabel: describeTrace(agentTrace) });\n }\n return built;\n }\n function buildSpeechBubbleCandidates() {\n const built = [];\n const playbackSegments = callSegments().filter((segment) => segment.row === \"Playback\" && segment.durationMs > 0).sort((a, b) => a.start - b.start || a.end - b.end);\n traces.slice().sort(compareLatencyTraces).forEach((trace) => {\n if (!isFinalSttLatencyTrace(trace)) return;\n const text = latencyTranscriptText(trace);\n if (!text) return;\n built.push({\n id: `bubble:human:${trace.traceId ?? trace.seq}`,\n role: \"human\",\n text,\n fullText: text,\n anchorTime: trace.atMs,\n minStartTime: findHumanBubbleStartTime(trace.atMs, playbackSegments),\n anchorRow: \"STT\",\n traceLabel: describeTrace(trace)\n });\n });\n return built.sort((a, b) => a.anchorTime - b.anchorTime || a.role.localeCompare(b.role) || a.id.localeCompare(b.id));\n }\n function timelineRowAnchorPx(rowLabel) {\n const rowIndex = timelineRows().findIndex((row) => row.label === rowLabel);\n if (rowIndex === -1) return TIMELINE_RULER_HEIGHT_PX;\n return TIMELINE_RULER_HEIGHT_PX + rowIndex * (TIMELINE_ROW_HEIGHT_PX + TIMELINE_ROW_GAP_PX) + Math.round(TIMELINE_ROW_HEIGHT_PX / 2);\n }\n function speechBubbleRoleLevelCount(bubbles, role) {\n let maxLevel = -1;\n for (const bubble of bubbles) {\n if (bubble.role !== role) continue;\n maxLevel = Math.max(maxLevel, bubble.level);\n }\n return Math.max(1, maxLevel + 1);\n }\n function speechBubbleLaneHeightPx(levelCount) {\n return Math.max(1, levelCount) * SPEECH_BUBBLE_LEVEL_HEIGHT_PX;\n }\n function compactSpeechBubbleLayouts(bubbles) {\n const bubbleAreaTopPx = speechBubbleAreaTopPx();\n return bubbles.map((bubble) => {\n const topPx = bubble.level * SPEECH_BUBBLE_LEVEL_HEIGHT_PX;\n const globalTopPx = bubbleAreaTopPx + topPx;\n const rowAnchorPx = timelineRowAnchorPx(bubble.anchorRow);\n return {\n ...bubble,\n topPx,\n lineTopPx: rowAnchorPx,\n lineHeightPx: Math.max(1, globalTopPx - rowAnchorPx)\n };\n });\n }\n function buildSpeechBubbleLayoutForRole(role, candidates) {\n return [];\n }\n function buildSpeechBubbleBaseLayouts() {\n buildSpeechBubbleCandidates();\n return buildSpeechBubbleLayoutForRole();\n }\n function speechBubbleStyle(bubble) {\n return `left:${Math.round(bubble.leftPx)}px;top:${Math.round(bubble.topPx)}px;width:${Math.round(bubble.widthPx)}px;height:${SPEECH_BUBBLE_HEIGHT_PX}px;`;\n }\n function speechBubbleLineStyle(bubble) {\n return `left:${bubble.anchorPercent}%;top:${Math.round(bubble.lineTopPx)}px;height:${Math.round(bubble.lineHeightPx)}px;`;\n }\n function speechBubbleClass(bubble) {\n const base = \"absolute z-20 overflow-hidden truncate rounded-lg border-thin border-rc-gray-110 px-3 text-sm leading-[30px] text-rc-gray-100 backdrop-blur-md\";\n if (bubble.role === \"agent\") {\n return `${base} bg-rc-green-700`;\n }\n return `${base} bg-rc-gray-700`;\n }\n function makeSegment(input) {\n return {\n id: input.id,\n row: input.row,\n start: input.start,\n end: input.end,\n durationMs: Math.max(0, input.end - input.start),\n colorKey: input.colorKey,\n label: input.label,\n description: input.description ?? null,\n explain: input.explain ?? null,\n text: input.text ?? null,\n speechText: null,\n speechTraceLabel: null,\n traceLabel: input.traceLabel,\n eventMarker: input.eventMarker ?? null\n };\n }\n function compareLatencyTraces(a, b) {\n return a.seq - b.seq || a.atMs - b.atMs || (a.createdAt ?? 0) - (b.createdAt ?? 0) || String(a.traceId ?? \"\").localeCompare(String(b.traceId ?? \"\"));\n }\n function findNextLatencyEvent(events, startIndex, match, stop) {\n for (let index = startIndex + 1; index < events.length; index += 1) {\n const next = events[index];\n if (stop(next)) return null;\n if (match(next)) return next;\n }\n return null;\n }\n function buildResponseLatencySegments(events) {\n return buildResponseLatencySpans(events).filter((span) => findResponseLatencyUserTurn(conversationTraces, span) != null).map((span) => makeSegment({\n id: `derived:${span.id}`,\n row: \"Response Latency\",\n start: span.start,\n end: span.end,\n colorKey: span.isHigh ? \"response.latency.high\" : \"response.latency.ok\",\n label: \"Final STT -> speech start\",\n description: span.speechCreatedTrace ? \"Final STT transcript -> first audio for the next uncancelled LiveKit speech\" : \"Final STT transcript -> next audio playback start\",\n explain: span.isHigh ? `High latency (>${RESPONSE_LATENCY_THRESHOLD_MS}ms)` : \"OK\",\n text: span.text,\n traceLabel: span.speechCreatedTrace ? `${describeTrace(span.startTrace)} -> ${describeTrace(span.speechCreatedTrace)} -> ${describeTrace(span.endTrace)}` : `${describeTrace(span.startTrace)} -> ${describeTrace(span.endTrace)}`\n }));\n }\n function buildDerivedSegments(events) {\n const built = buildResponseLatencySegments(events);\n events.forEach((trace, index) => {\n const rule = SPAN_RULE_BY_START.get(trace.eventType);\n if (!rule) return;\n const next = findNextLatencyEvent(events, index, (candidate) => candidate.eventType === rule.endEventType, (candidate) => candidate.eventType === rule.startEventType);\n if (!next || next.atMs < trace.atMs) return;\n built.push(makeSegment({\n id: `derived:${rule.row.toLowerCase().replaceAll(\" \", \"_\")}:${trace.seq}:${next.seq}`,\n row: rule.row,\n start: trace.atMs,\n end: next.atMs,\n colorKey: rule.colorKey,\n label: rule.label,\n description: rule.description,\n traceLabel: describeTrace(trace)\n }));\n });\n return built;\n }\n function buildCallLatencySegments(input) {\n const events = input.slice().filter((trace) => typeof trace.atMs === \"number\" && Number.isFinite(trace.atMs) && typeof trace.seq === \"number\" && Number.isFinite(trace.seq)).sort(compareLatencyTraces);\n const pointSegments = events.map((trace, index) => makeSegment({\n id: `point:${trace.traceId ?? trace.seq}:${index}`,\n row: latencyRow(trace.eventType),\n start: trace.atMs,\n end: trace.atMs,\n colorKey: latencyColorKey(trace.eventType),\n label: latencyLabel(trace),\n description: latencyDescription(trace),\n text: latencyText(trace),\n traceLabel: describeTrace(trace),\n eventMarker: latencyEventMarker(trace.eventType)\n }));\n const derivedSegments = buildDerivedSegments(events);\n return [...derivedSegments, ...pointSegments].sort((a, b) => a.start - b.start || (a.durationMs === 0 ? 1 : 0) - (b.durationMs === 0 ? 1 : 0) || a.end - b.end || a.row.localeCompare(b.row));\n }\n function isPlaybackTraceBubble(segment) {\n return segment.row === \"Playback\" && !segment.eventMarker && segment.durationMs > 0;\n }\n function segmentDisplayText(segment) {\n if (isPlaybackTraceBubble(segment)) return segment.speechText;\n return null;\n }\n function segmentStyle(segment) {\n if (viewportStartMs == null || viewportEndMs == null) return null;\n const duration = viewportEndMs - viewportStartMs;\n if (!Number.isFinite(duration) || duration <= 0) return null;\n const fill = COLOR_BY_KEY[segment.colorKey] ?? BOSUN_COLORS.gray;\n const border = tintHex(fill, -0.25);\n if (segment.end === segment.start) {\n if (segment.start < viewportStartMs || segment.start > viewportEndMs) return null;\n const pointPercent = clamp((segment.start - viewportStartMs) / duration * 100, 0, 100);\n if (segment.eventMarker === \"start\") {\n return `left:${pointPercent}%;width:7px;background:${fill};border-color:${border};clip-path:polygon(0 0,100% 50%,0 100%);`;\n }\n if (segment.eventMarker === \"end\") {\n return `left:calc(${pointPercent}% - 7px);width:7px;background:${fill};border-color:${border};clip-path:polygon(100% 0,0 50%,100% 100%);`;\n }\n return `left:calc(${pointPercent}% - 2px);width:4px;background:${fill};border-color:${border};`;\n }\n const visibleStart = Math.max(segment.start, viewportStartMs);\n const visibleEnd = Math.min(segment.end, viewportEndMs);\n if (visibleEnd < visibleStart) return null;\n const leftPercent = (visibleStart - viewportStartMs) / duration * 100;\n const widthPercent = (visibleEnd - visibleStart) / duration * 100;\n if (isPlaybackTraceBubble(segment)) {\n return `left:${leftPercent}%;width:max(${widthPercent}%,2px);`;\n }\n return `left:${leftPercent}%;width:max(${widthPercent}%,2px);background:${fill};border-color:${border};`;\n }\n function segmentClass(segment) {\n if (segment.eventMarker) {\n return \"absolute inset-y-0 shadow-[0_0_0_1px_rgba(0,0,0,0.28)]\";\n }\n if (isPlaybackTraceBubble(segment)) {\n return \"absolute inset-y-0 overflow-hidden truncate rounded-lg border-thin border-rc-gray-110 bg-rc-green-700 px-3 text-sm leading-[30px] text-rc-gray-100 shadow-[0_0_0_1px_rgba(0,0,0,0.12)] backdrop-blur-md\";\n }\n return \"absolute inset-y-0 rounded border shadow-[0_0_0_1px_rgba(0,0,0,0.12)]\";\n }\n function guideLineStyle(guide) {\n return `left:${guide.leftPercent}%;top:${guide.topPx}px;height:${guide.heightPx}px;border-color:${guide.color};opacity:${guide.opacity};`;\n }\n function timelineOriginLineStyle(originLine) {\n return `left:${originLine.leftPercent}%;top:${originLine.topPx}px;height:${originLine.heightPx}px;`;\n }\n function tickLabelClass(tick) {\n const base = \"absolute top-1 whitespace-nowrap text-[11px] text-rc-gray-400\";\n if (tick.leftPercent <= 0.1) return base;\n if (tick.leftPercent >= 99.9) return `${base} -translate-x-full`;\n return `${base} -translate-x-1/2`;\n }\n function buildGuideLines(rows) {\n return [];\n }\n function chooseTickStep(durationMs) {\n const approx = durationMs / 7;\n const magnitude = 10 ** Math.floor(Math.log10(Math.max(1, approx)));\n const normalized = approx / magnitude;\n if (normalized <= 1) return 1 * magnitude;\n if (normalized <= 2) return 2 * magnitude;\n if (normalized <= 5) return 5 * magnitude;\n return 10 * magnitude;\n }\n function buildTicks(startMs, endMs, originMs) {\n const durationMs = endMs - startMs;\n if (!Number.isFinite(durationMs) || durationMs <= 0) return [];\n const stepMs = chooseTickStep(durationMs);\n const firstTick = Math.ceil((startMs - originMs) / stepMs) * stepMs + originMs;\n const ticks = [];\n for (let tick = firstTick; tick <= endMs; tick += stepMs) {\n const leftPercent = (tick - startMs) / durationMs * 100;\n ticks.push({\n time: tick,\n leftPercent,\n label: formatRelativeTime(tick - originMs)\n });\n }\n return ticks;\n }\n async function closePlaybackAudioContext() {\n const context = playbackAudioContext;\n playbackAudioContext = null;\n if (!context) return;\n await context.close().catch(() => {\n });\n }\n function getPlaybackPositionMs() {\n const durationMs = getRecordingDurationMs();\n if (playbackPlaying && playbackAudioContext && playbackStartedAtMs != null && playbackStartedAtContextTime != null) {\n const elapsedMs = (playbackAudioContext.currentTime - playbackStartedAtContextTime) * 1e3;\n const currentMs = playbackStartedAtMs + Math.max(0, elapsedMs);\n return durationMs > 0 ? clamp(currentMs, 0, durationMs) : Math.max(0, currentMs);\n }\n return durationMs > 0 ? clamp(playbackPositionMs, 0, durationMs) : Math.max(0, playbackPositionMs);\n }\n function stopPlayback(preservePosition = true) {\n if (preservePosition) {\n playbackPositionMs = getPlaybackPositionMs();\n }\n const source = playbackSourceNode;\n playbackSourceNode = null;\n playbackStartedAtMs = null;\n playbackStartedAtContextTime = null;\n playbackPlaying = false;\n if (!source) return;\n source.onended = null;\n try {\n source.stop();\n } catch {\n }\n source.disconnect();\n }\n function getRecordingDurationMs() {\n return 0;\n }\n async function togglePlayback() {\n return;\n }\n function compareConversationTraces(a, b) {\n return a.createdAt - b.createdAt || String(a.traceId ?? \"\").localeCompare(String(b.traceId ?? \"\"));\n }\n function fitViewport(markDirty = true) {\n const extent = conversationTraceExtent() ?? contentExtent();\n if (!extent) return;\n const originMs = timelineOriginMs();\n viewportStartMs = originMs;\n viewportEndMs = Math.max(originMs + 1e3, extent.max);\n }\n function clampViewport(startMs, endMs) {\n const extent = contentExtent();\n if (!extent) return { startMs, endMs };\n const durationMs = endMs - startMs;\n if (durationMs <= 0) return { startMs, endMs };\n const marginMs = Math.max(1e3, durationMs * 0.25);\n const minAllowed = extent.min - marginMs;\n const maxAllowed = extent.max + marginMs;\n if (durationMs >= maxAllowed - minAllowed) {\n return { startMs: minAllowed, endMs: maxAllowed };\n }\n if (startMs < minAllowed) {\n endMs += minAllowed - startMs;\n startMs = minAllowed;\n }\n if (endMs > maxAllowed) {\n startMs -= endMs - maxAllowed;\n endMs = maxAllowed;\n }\n return { startMs, endMs };\n }\n function setViewport(startMs, endMs) {\n if (!Number.isFinite(startMs) || !Number.isFinite(endMs) || endMs <= startMs) return;\n const next = clampViewport(startMs, endMs);\n viewportStartMs = next.startMs;\n viewportEndMs = next.endMs;\n }\n function zoomViewport(factor, focusRatio = 0.5) {\n if (viewportStartMs == null || viewportEndMs == null) return;\n const currentDuration = viewportEndMs - viewportStartMs;\n if (!Number.isFinite(currentDuration) || currentDuration <= 0) return;\n const extent = contentExtent();\n const contentDuration = extent ? extent.max - extent.min : currentDuration;\n const minDuration = Math.min(100, currentDuration);\n const maxDuration = Math.max(contentDuration + Math.max(2e3, contentDuration * 0.1), 5e3);\n const nextDuration = clamp(currentDuration * factor, minDuration, maxDuration);\n const nextFocusRatio = clamp(focusRatio, 0, 1);\n const focusMs = viewportStartMs + currentDuration * nextFocusRatio;\n const nextStartMs = focusMs - nextDuration * nextFocusRatio;\n setViewport(nextStartMs, nextStartMs + nextDuration);\n }\n async function resetAlignment() {\n return;\n }\n $$renderer2.push(`<div class=\"flex h-full min-h-0 flex-col bg-rc-gray-700\"><div class=\"flex-none border-b border-rc-gray-300/40 p-4\"><div class=\"flex flex-wrap items-start justify-between gap-3\"><div><h2 class=\"text-lg font-semibold text-rc-gray-100\">Latency `);\n if (conversationId()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"text-rc-gray-100\">for conversation Id:</span> <span class=\"text-rc-green-200\">${escape_html(conversationId())}</span>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></h2> <div class=\"mt-2 flex flex-wrap gap-x-5 gap-y-1 text-xs text-rc-gray-300\"><div><span class=\"text-rc-gray-400\">Latency events:</span> <span class=\"font-mono text-rc-gray-100\">${escape_html(latencyTraceCount())}</span></div> <div><span class=\"text-rc-gray-400\">Timeline items:</span> <span class=\"font-mono text-rc-gray-100\">${escape_html(callSegments().length)}</span></div> <div><span class=\"text-rc-gray-400\">Recording offset:</span> <span class=\"font-mono text-rc-gray-100\">${escape_html(fmtSignedMs(recording.alignmentOffsetMs))}</span></div> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (viewportStartMs != null && viewportEndMs != null) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div><span class=\"text-rc-gray-400\">Viewport:</span> <span class=\"font-mono text-rc-gray-100\">${escape_html(formatRelativeTime(viewportStartMs - timelineOriginMs()))} → ${escape_html(formatRelativeTime(viewportEndMs - timelineOriginMs()))}</span></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div></div> <div class=\"flex flex-wrap items-center gap-2\"><input type=\"file\" accept=\".wav,audio/wav,audio/x-wav\" class=\"hidden\"/> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: uploadInFlight,\n onclick: () => fileInputEl?.click(),\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->${escape_html(\"Upload WAV\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: true,\n onclick: () => void togglePlayback(),\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->${escape_html(playbackPlaying ? \"Pause\" : \"Play\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: viewportDurationMs() == null,\n onclick: () => zoomViewport(0.8),\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Zoom in`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: viewportDurationMs() == null,\n onclick: () => zoomViewport(1.25),\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Zoom out`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: !(conversationTraceExtent() ?? contentExtent()),\n onclick: () => fitViewport(true),\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Fit call`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: true,\n onclick: resetAlignment,\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Reset alignment`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n variant: \"secondary\",\n size: \"small\",\n disabled: !traces.length,\n onclick: copyLatencyStream,\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->${escape_html(copyLatencyState === \"ok\" ? \"Copied\" : copyLatencyState === \"error\" ? \"Copy failed\" : \"Copy latency stream\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----></div></div> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div> <div class=\"rc-scroll min-h-0 flex-1 overflow-auto p-4\"><div class=\"flex flex-col gap-4\"><div class=\"rounded-md border border-rc-gray-650 p-3\">`);\n if (!callSegments().length) {\n $$renderer2.push(\"<!--[1-->\");\n $$renderer2.push(`<div class=\"text-sm text-rc-gray-300\">No latency events were found on this call.</div>`);\n } else if (viewportStartMs == null || viewportEndMs == null) {\n $$renderer2.push(\"<!--[2-->\");\n $$renderer2.push(`<div class=\"text-sm text-rc-gray-300\">Preparing timeline…</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<div class=\"grid grid-cols-[140px_minmax(0,1fr)] gap-x-3\"><div class=\"flex flex-col\"><div class=\"h-8\"></div> <!--[-->`);\n const each_array = ensure_array_like(timelineRows());\n for (let rowIndex = 0, $$length = each_array.length; rowIndex < $$length; rowIndex++) {\n let row = each_array[rowIndex];\n $$renderer2.push(`<div class=\"flex items-center text-xs text-rc-gray-300\"${attr_style(`height:${TIMELINE_ROW_HEIGHT_PX}px;margin-top:${rowIndex === 0 ? 0 : TIMELINE_ROW_GAP_PX}px;`)}>${escape_html(row.label)}</div>`);\n }\n $$renderer2.push(`<!--]--> <div class=\"flex items-center text-xs text-rc-gray-300\"${attr_style(`height:${humanSpeechBubbleLaneHeightPx()}px;margin-top:${traceRowsToBubbleGapPx()}px;`)}>Human</div> `);\n if (waveformRowVisible()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"flex items-center text-xs text-rc-gray-300\"${attr_style(`height:${WAVEFORM_ROW_HEIGHT_PX}px;margin-top:${TIMELINE_ROW_GAP_PX}px;`)}>Waveform</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div> <div class=\"relative\"><div class=\"pointer-events-none absolute inset-0 z-10 overflow-hidden\"><!--[-->`);\n const each_array_1 = ensure_array_like(speechBubbles());\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let bubble = each_array_1[$$index_1];\n $$renderer2.push(`<div class=\"absolute -translate-x-1/2 border-l border-rc-gray-300/40\"${attr_style(speechBubbleLineStyle(bubble))}></div>`);\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_2 = ensure_array_like(guideLines());\n for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {\n let guide = each_array_2[$$index_2];\n $$renderer2.push(`<div class=\"absolute -translate-x-1/2 border-l border-dashed\"${attr_style(guideLineStyle(guide))}></div>`);\n }\n $$renderer2.push(`<!--]--> `);\n if (timelineOriginLine()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"absolute border-l border-rc-gray-200/80\"${attr_style(timelineOriginLineStyle(timelineOriginLine()))}></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (playbackCursor()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"absolute -translate-x-1/2 border-l-2 border-rc-green-200/90\"${attr_style(`left:${playbackCursor().leftPercent}%;top:${playbackCursor().topPx}px;height:${playbackCursor().heightPx}px;`)}></div> <div class=\"absolute h-2 w-2 -translate-x-1/2 rounded-full bg-rc-green-200\"${attr_style(`left:${playbackCursor().leftPercent}%;top:${playbackCursor().topPx - 4}px;`)}></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div> <div class=\"relative z-0 h-8 overflow-hidden rounded-t border border-b-0 border-rc-gray-700/60\"><!--[-->`);\n const each_array_3 = ensure_array_like(visibleTicks());\n for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {\n let tick = each_array_3[$$index_3];\n $$renderer2.push(`<div class=\"absolute inset-y-0 w-px bg-rc-gray-700/70\"${attr_style(`left:${tick.leftPercent}%;`)}></div> <div${attr_class(clsx(tickLabelClass(tick)))}${attr_style(`left:${tick.leftPercent}%;`)}>${escape_html(tick.label)}</div>`);\n }\n $$renderer2.push(`<!--]--></div> <!--[-->`);\n const each_array_4 = ensure_array_like(timelineRows());\n for (let rowIndex = 0, $$length = each_array_4.length; rowIndex < $$length; rowIndex++) {\n let row = each_array_4[rowIndex];\n $$renderer2.push(`<div class=\"relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60\"${attr_style(`height:${TIMELINE_ROW_HEIGHT_PX}px;margin-top:${rowIndex === 0 ? 0 : TIMELINE_ROW_GAP_PX}px;`)}><!--[-->`);\n const each_array_5 = ensure_array_like(visibleTicks());\n for (let $$index_4 = 0, $$length2 = each_array_5.length; $$index_4 < $$length2; $$index_4++) {\n let tick = each_array_5[$$index_4];\n $$renderer2.push(`<div class=\"absolute inset-y-0 w-px bg-rc-gray-700/60\"${attr_style(`left:${tick.leftPercent}%;`)}></div>`);\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_6 = ensure_array_like(row.segments);\n for (let $$index_5 = 0, $$length2 = each_array_6.length; $$index_5 < $$length2; $$index_5++) {\n let segment = each_array_6[$$index_5];\n const style = segmentStyle(segment);\n const text = segmentDisplayText(segment);\n if (style) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div${attr_class(clsx(segmentClass(segment)))}${attr_style(style)}>`);\n if (text) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"block truncate\">${escape_html(text)}</span>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]--></div>`);\n }\n $$renderer2.push(`<!--]--> <div${attr_class(\"relative z-0 overflow-hidden border-x border-t border-rc-gray-700/60\", void 0, {\n \"rounded-b\": !waveformRowVisible(),\n \"border-b\": !waveformRowVisible()\n })}${attr_style(`height:${speechBubbleAreaHeightPx()}px;margin-top:${traceRowsToBubbleGapPx()}px;`)}><div class=\"absolute inset-x-0 top-0 border-b border-rc-gray-700/50\"${attr_style(`height:${humanSpeechBubbleLaneHeightPx()}px;`)}></div> <!--[-->`);\n const each_array_7 = ensure_array_like(visibleTicks());\n for (let $$index_7 = 0, $$length = each_array_7.length; $$index_7 < $$length; $$index_7++) {\n let tick = each_array_7[$$index_7];\n $$renderer2.push(`<div class=\"absolute inset-y-0 w-px bg-rc-gray-700/45\"${attr_style(`left:${tick.leftPercent}%;`)}></div>`);\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_8 = ensure_array_like(speechBubbles());\n for (let $$index_8 = 0, $$length = each_array_8.length; $$index_8 < $$length; $$index_8++) {\n let bubble = each_array_8[$$index_8];\n $$renderer2.push(`<div${attr_class(clsx(speechBubbleClass(bubble)))}${attr_style(speechBubbleStyle(bubble))}>${escape_html(bubble.text)}</div>`);\n }\n $$renderer2.push(`<!--]--></div> `);\n if (waveformRowVisible()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"relative z-0 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60\"${attr_style(`height:${WAVEFORM_ROW_HEIGHT_PX}px;margin-top:${TIMELINE_ROW_GAP_PX}px;`)}>`);\n {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<canvas class=\"absolute inset-0 h-full w-full\"></canvas>`);\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_9 = ensure_array_like(visibleTicks());\n for (let $$index_9 = 0, $$length = each_array_9.length; $$index_9 < $$length; $$index_9++) {\n let tick = each_array_9[$$index_9];\n $$renderer2.push(`<div class=\"absolute inset-y-0 w-px bg-rc-gray-700/60\"${attr_style(`left:${tick.leftPercent}%;`)}></div>`);\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div></div>`);\n }\n $$renderer2.push(`<!--]--></div></div></div></div> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-DzvEkq51.js","sources":["../../../.svelte-kit/adapter-node/chunks/client.js"],"sourcesContent":["import { P as PaginatedConversationsResponseSchema, C as ConversationSchema, a as PaginatedTracesResponseSchema, b as PaginatedLatencyTracesResponseSchema } from \"./source-selection.js\";\nclass 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();\nconst SOURCE_HEADER = \"x-bosun-telescope-source\";\nclass TelescopeClient {\n /**\n * @param fetchFn Custom fetch function (e.g., from SvelteKit's load context). Defaults to global fetch if not provided.\n */\n constructor(fetchFn = globalThis.fetch, sourceId) {\n this.fetchFn = fetchFn;\n this.sourceId = sourceId;\n }\n setSourceId(sourceId) {\n this.sourceId = sourceId;\n }\n /**\n * Get the actual URL to use (always uses proxy)\n */\n getUrl(path) {\n const cleanPath = path.startsWith(\"/\") ? path.slice(1) : path;\n const pathWithoutDev = cleanPath.replace(/^dev\\//, \"\");\n return `/traces/api/proxy/${pathWithoutDev}`;\n }\n async fetch(method = \"GET\", path, schema) {\n const url = this.getUrl(path);\n const headers = {};\n if (this.sourceId && this.sourceId.trim()) {\n headers[SOURCE_HEADER] = this.sourceId;\n }\n const response = await this.fetchFn(url, { method, headers });\n if (!response) {\n throw new Error(\"No response from server\");\n }\n if (!response.ok) {\n throw new Error(`Error fetching data: ${response.statusText}`);\n }\n if (schema) {\n return schema.parse(await response.json());\n }\n return response;\n }\n /**\n * Get a list of conversations\n * @param phoneNumber full or partial phone number\n * @param limit number of conversations to fetch\n * @param lastConversationId id of the last conversation from the previous page, for pagination\n * @returns a list of conversations\n */\n async getConversations(params = {}) {\n const searchParams = new URLSearchParams({ limit: params.limit?.toString() ?? \"10\" });\n if (params.lastConversationId)\n searchParams.append(\"lastConversationId\", params.lastConversationId);\n if (params.phoneNumber) searchParams.append(\"phoneNumber\", params.phoneNumber);\n if (params.agentId) searchParams.append(\"agentId\", params.agentId);\n const res = await this.fetch(\"GET\", `/conversations?${searchParams.toString()}`);\n if (!res.ok) {\n throw new Error(`Error fetching conversations: ${res.status} ${res.statusText}`);\n }\n const json = await res.json();\n if (Array.isArray(json?.items)) {\n json.items = json.items.map((it) => ({\n ...it,\n phoneNumber: typeof it?.phoneNumber === \"string\" ? it.phoneNumber : \"\"\n }));\n } else {\n json.items = [];\n }\n return PaginatedConversationsResponseSchema.parse(json);\n }\n /**\n * Get a single conversation by ID\n * @param conversationId the conversation ID\n * @returns a single conversation\n */\n async getConversation(conversationId) {\n return await this.fetch(\n \"GET\",\n `/conversations/${conversationId}`,\n ConversationSchema\n );\n }\n /**\n * Get mixed traces for a conversation (chronological timeline)\n * @param conversationId the conversation ID\n * @param limit number of traces to fetch\n * @param lastTraceId id of the last trace from the previous page, for pagination\n * @returns paginated traces\n */\n async getTraces(conversationId, limit, lastTraceId) {\n const params = new URLSearchParams();\n if (limit) params.set(\"limit\", String(limit));\n if (lastTraceId) params.set(\"lastTraceId\", lastTraceId);\n const path = `/conversations/${conversationId}/traces${params.toString() ? `?${params.toString()}` : \"\"}`;\n const res = await this.fetch(\"GET\", path);\n if (!res.ok) {\n throw new Error(`Failed to fetch traces: ${res.status} ${res.statusText}`);\n }\n return PaginatedTracesResponseSchema.parse(await res.json());\n }\n async getLatencyTraces(conversationId, limit, lastTraceId) {\n const params = new URLSearchParams();\n params.set(\"traceType\", \"LATENCY\");\n if (limit) params.set(\"limit\", String(limit));\n if (lastTraceId) params.set(\"lastTraceId\", lastTraceId);\n const path = `/conversations/${conversationId}/traces${params.toString() ? `?${params.toString()}` : \"\"}`;\n const res = await this.fetch(\"GET\", path);\n if (!res.ok) {\n throw new Error(`Failed to fetch latency traces: ${res.status} ${res.statusText}`);\n }\n return PaginatedLatencyTracesResponseSchema.parse(await res.json());\n }\n // Backwards-compatible aliases (older UI paths)\n getCalls(params = {}) {\n return this.getConversations(params);\n }\n getCall(conversationId) {\n return this.getConversation(conversationId);\n }\n getStepTraces(conversationId, limit) {\n return this.getTraces(conversationId, limit);\n }\n}\nexport {\n TelescopeClient as T,\n mockGenerator as m\n};\n"],"names":[],"mappings":"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"}