@recombine-ai/bosun 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (647) hide show
  1. package/.svelte-kit/tsconfig.json +8 -1
  2. package/build/client/_app/immutable/assets/0.DsHRdhUK.css +1 -0
  3. package/build/client/_app/immutable/assets/0.DsHRdhUK.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.DsHRdhUK.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/10.BX46PfEJ.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/18.C5apk4jm.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/2.DxwYfh1z.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/3.Dzh7_Q8n.css.gz +0 -0
  9. package/build/client/_app/immutable/assets/5.CZVw96CJ.css.gz +0 -0
  10. package/build/client/_app/immutable/assets/9.DlSPCZj0.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/AgentSidebar.BL1i3rB_.css.gz +0 -0
  12. package/build/client/_app/immutable/assets/Input.CJ8KyccG.css.gz +0 -0
  13. package/build/client/_app/immutable/assets/Modal.tn0RQdqM.css.gz +0 -0
  14. package/build/client/_app/immutable/assets/Popper.CLTyHc88.css.gz +0 -0
  15. package/build/client/_app/immutable/assets/Tab.DlCfjMY1.css.gz +0 -0
  16. package/build/client/_app/immutable/assets/chat-content.Cabnnfyv.css.gz +0 -0
  17. package/build/client/_app/immutable/assets/editor.BMIWPGx3.css.gz +0 -0
  18. package/build/client/_app/immutable/chunks/0a4GbU-O.js +1 -0
  19. package/build/client/_app/immutable/chunks/0a4GbU-O.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/0a4GbU-O.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/0cvrggvQ.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/18TZju1H.js +1 -0
  23. package/build/client/_app/immutable/chunks/18TZju1H.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/18TZju1H.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/25W9uPmb.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/4Ik7cdeQ.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/5Rap-vPy.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/5qVV3FOd.js +1 -0
  29. package/build/client/_app/immutable/chunks/5qVV3FOd.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/5qVV3FOd.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/8AHOieX7.js +33 -0
  32. package/build/client/_app/immutable/chunks/8AHOieX7.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/8AHOieX7.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/B03wrqEc.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/B2CB3tIy.js +1 -0
  36. package/build/client/_app/immutable/chunks/B2CB3tIy.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/B2CB3tIy.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/B5zXfXm9.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/B9Xyijhd.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/BFG1Mk7z.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/BFZvm_aX.js +1 -0
  42. package/build/client/_app/immutable/chunks/BFZvm_aX.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/BFZvm_aX.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/BIv9DU6q.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/BKlk5iyT.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/BMYSavKM.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/BQorBhFb.js +1 -0
  48. package/build/client/_app/immutable/chunks/BQorBhFb.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/BQorBhFb.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/BSkB5QuD.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/BU7aeYn4.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/BY8d35y9.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/B_c3zf-v.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/B_fMsGYe.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/BaJupSGV.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/BaLxmfj-.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/Bas80-m6.js +1 -0
  58. package/build/client/_app/immutable/chunks/Bas80-m6.js.br +0 -0
  59. package/build/client/_app/immutable/chunks/Bas80-m6.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/BbgtW0nn.js +8 -0
  61. package/build/client/_app/immutable/chunks/BbgtW0nn.js.br +0 -0
  62. package/build/client/_app/immutable/chunks/BbgtW0nn.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/Bc-ZgV77.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/BfEKNvv3.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/BhoEG2uc.js +1 -0
  66. package/build/client/_app/immutable/chunks/BhoEG2uc.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/BhoEG2uc.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/Bhzvs7bI.js.gz +0 -0
  69. package/build/client/_app/immutable/chunks/Bio4gycK.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/BjbsXXMP.js +1 -0
  71. package/build/client/_app/immutable/chunks/BjbsXXMP.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/BjbsXXMP.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/BoFRg7Ot.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/BoYwKlhd.js +1 -0
  75. package/build/client/_app/immutable/chunks/BoYwKlhd.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/BoYwKlhd.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/Bqgm2twL.js.gz +0 -0
  78. package/build/client/_app/immutable/chunks/BrgZPUOV.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/BsTHnhdd.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/C1FmrZbK.js.gz +0 -0
  81. package/build/client/_app/immutable/chunks/C3xZmy9H.js +1 -0
  82. package/build/client/_app/immutable/chunks/C3xZmy9H.js.br +0 -0
  83. package/build/client/_app/immutable/chunks/C3xZmy9H.js.gz +0 -0
  84. package/build/client/_app/immutable/chunks/C4mbwMvt.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/C5WLch3f.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/CAFoob5N.js.gz +0 -0
  87. package/build/client/_app/immutable/chunks/{DYY6aMTA.js → CAOT34jI.js} +1 -1
  88. package/build/client/_app/immutable/chunks/CAOT34jI.js.br +0 -0
  89. package/build/client/_app/immutable/chunks/CAOT34jI.js.gz +0 -0
  90. package/build/client/_app/immutable/chunks/{B394X4Dm.js → CByqsLTI.js} +1 -1
  91. package/build/client/_app/immutable/chunks/CByqsLTI.js.br +0 -0
  92. package/build/client/_app/immutable/chunks/CByqsLTI.js.gz +0 -0
  93. package/build/client/_app/immutable/chunks/CCSDG5nI.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/CDGzqUPQ.js.gz +0 -0
  95. package/build/client/_app/immutable/chunks/CDntyWJ8.js.gz +0 -0
  96. package/build/client/_app/immutable/chunks/CFKIUWau.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/CFOPXBzS.js.gz +0 -0
  98. package/build/client/_app/immutable/chunks/CGS76TsG.js +1 -0
  99. package/build/client/_app/immutable/chunks/CGS76TsG.js.br +2 -0
  100. package/build/client/_app/immutable/chunks/CGS76TsG.js.gz +0 -0
  101. package/build/client/_app/immutable/chunks/CGinwM47.js.gz +0 -0
  102. package/build/client/_app/immutable/chunks/CHE9OFXA.js +1 -0
  103. package/build/client/_app/immutable/chunks/CHE9OFXA.js.br +0 -0
  104. package/build/client/_app/immutable/chunks/CHE9OFXA.js.gz +0 -0
  105. package/build/client/_app/immutable/chunks/CIXWWiNs.js +1 -0
  106. package/build/client/_app/immutable/chunks/CIXWWiNs.js.br +0 -0
  107. package/build/client/_app/immutable/chunks/CIXWWiNs.js.gz +0 -0
  108. package/build/client/_app/immutable/chunks/CLLBncYj.js.gz +0 -0
  109. package/build/client/_app/immutable/chunks/COyEY5Pt.js.gz +0 -0
  110. package/build/client/_app/immutable/chunks/CPajHgWi.js.gz +0 -0
  111. package/build/client/_app/immutable/chunks/CQd8uuj9.js +1 -0
  112. package/build/client/_app/immutable/chunks/CQd8uuj9.js.br +2 -0
  113. package/build/client/_app/immutable/chunks/CQd8uuj9.js.gz +0 -0
  114. package/build/client/_app/immutable/chunks/CV_MnPl-.js +1 -0
  115. package/build/client/_app/immutable/chunks/CV_MnPl-.js.br +0 -0
  116. package/build/client/_app/immutable/chunks/CV_MnPl-.js.gz +0 -0
  117. package/build/client/_app/immutable/chunks/CVwtpugi.js.gz +0 -0
  118. package/build/client/_app/immutable/chunks/CX-rkNHf.js.gz +0 -0
  119. package/build/client/_app/immutable/chunks/CXOwvkN_.js.gz +0 -0
  120. package/build/client/_app/immutable/chunks/CaligHlp.js +1 -0
  121. package/build/client/_app/immutable/chunks/CaligHlp.js.br +0 -0
  122. package/build/client/_app/immutable/chunks/CaligHlp.js.gz +0 -0
  123. package/build/client/_app/immutable/chunks/CbvL5X4R.js +4 -0
  124. package/build/client/_app/immutable/chunks/CbvL5X4R.js.br +0 -0
  125. package/build/client/_app/immutable/chunks/CbvL5X4R.js.gz +0 -0
  126. package/build/client/_app/immutable/chunks/CdQndTaG.js.gz +0 -0
  127. package/build/client/_app/immutable/chunks/Ce3n6wWz.js.gz +0 -0
  128. package/build/client/_app/immutable/chunks/Cg7bfA9N.js.gz +0 -0
  129. package/build/client/_app/immutable/chunks/CjrpbQ5G.js +1 -0
  130. package/build/client/_app/immutable/chunks/CjrpbQ5G.js.br +0 -0
  131. package/build/client/_app/immutable/chunks/CjrpbQ5G.js.gz +0 -0
  132. package/build/client/_app/immutable/chunks/Cp1zYvxS.js.gz +0 -0
  133. package/build/client/_app/immutable/chunks/CpIb_Oan.js.gz +0 -0
  134. package/build/client/_app/immutable/chunks/Cpb6xl2v.js.gz +0 -0
  135. package/build/client/_app/immutable/chunks/Cphgjts3.js.gz +0 -0
  136. package/build/client/_app/immutable/chunks/CrxwEwqu.js.gz +0 -0
  137. package/build/client/_app/immutable/chunks/CwNk8-XU.js.gz +0 -0
  138. package/build/client/_app/immutable/chunks/CwmAWymP.js.gz +0 -0
  139. package/build/client/_app/immutable/chunks/Cx0HrUMB.js +11 -0
  140. package/build/client/_app/immutable/chunks/Cx0HrUMB.js.br +0 -0
  141. package/build/client/_app/immutable/chunks/Cx0HrUMB.js.gz +0 -0
  142. package/build/client/_app/immutable/chunks/CynZnIyI.js +2 -0
  143. package/build/client/_app/immutable/chunks/CynZnIyI.js.br +0 -0
  144. package/build/client/_app/immutable/chunks/CynZnIyI.js.gz +0 -0
  145. package/build/client/_app/immutable/chunks/CzKuDChf.js.gz +0 -0
  146. package/build/client/_app/immutable/chunks/D-MeaMDU.js.gz +0 -0
  147. package/build/client/_app/immutable/chunks/D3h14YRZ.js.gz +0 -0
  148. package/build/client/_app/immutable/chunks/D5C2fndG.js.gz +0 -0
  149. package/build/client/_app/immutable/chunks/DDMPVpvs.js.gz +0 -0
  150. package/build/client/_app/immutable/chunks/DDwshQtU.js.gz +0 -0
  151. package/build/client/_app/immutable/chunks/DHHC89bH.js +1 -0
  152. package/build/client/_app/immutable/chunks/DHHC89bH.js.br +2 -0
  153. package/build/client/_app/immutable/chunks/DHHC89bH.js.gz +0 -0
  154. package/build/client/_app/immutable/chunks/DHaeiCBh.js.gz +0 -0
  155. package/build/client/_app/immutable/chunks/DLQqXQ6R.js.gz +0 -0
  156. package/build/client/_app/immutable/chunks/DRIMs3uA.js.gz +0 -0
  157. package/build/client/_app/immutable/chunks/DSZPf7rp.js.gz +0 -0
  158. package/build/client/_app/immutable/chunks/DTECt2xU.js.gz +0 -0
  159. package/build/client/_app/immutable/chunks/DUeN9t8P.js.gz +0 -0
  160. package/build/client/_app/immutable/chunks/DVqtH_YB.js +1 -0
  161. package/build/client/_app/immutable/chunks/DVqtH_YB.js.br +0 -0
  162. package/build/client/_app/immutable/chunks/DVqtH_YB.js.gz +0 -0
  163. package/build/client/_app/immutable/chunks/DWH0347h.js.gz +0 -0
  164. package/build/client/_app/immutable/chunks/DXyYeYxl.js.gz +0 -0
  165. package/build/client/_app/immutable/chunks/DZxMt77D.js.gz +0 -0
  166. package/build/client/_app/immutable/chunks/DaV9XiwS.js +1 -0
  167. package/build/client/_app/immutable/chunks/DaV9XiwS.js.br +0 -0
  168. package/build/client/_app/immutable/chunks/DaV9XiwS.js.gz +0 -0
  169. package/build/client/_app/immutable/chunks/Dd3NCNK9.js.gz +0 -0
  170. package/build/client/_app/immutable/chunks/DfzH4Xui.js.gz +0 -0
  171. package/build/client/_app/immutable/chunks/DgyLZaXg.js.gz +0 -0
  172. package/build/client/_app/immutable/chunks/DjDhNM9l.js.gz +0 -0
  173. package/build/client/_app/immutable/chunks/DkeWvyEi.js +1 -0
  174. package/build/client/_app/immutable/chunks/DkeWvyEi.js.br +0 -0
  175. package/build/client/_app/immutable/chunks/DkeWvyEi.js.gz +0 -0
  176. package/build/client/_app/immutable/chunks/DnHyzjbg.js.gz +0 -0
  177. package/build/client/_app/immutable/chunks/DrQuvNYM.js.gz +0 -0
  178. package/build/client/_app/immutable/chunks/Drc7WvVn.js.gz +0 -0
  179. package/build/client/_app/immutable/chunks/DwJ7jVG9.js.gz +0 -0
  180. package/build/client/_app/immutable/chunks/DyP6w7ZV.js.gz +0 -0
  181. package/build/client/_app/immutable/chunks/{8mHyIC1B.js → JcG4w2gF.js} +1 -1
  182. package/build/client/_app/immutable/chunks/JcG4w2gF.js.br +0 -0
  183. package/build/client/_app/immutable/chunks/JcG4w2gF.js.gz +0 -0
  184. package/build/client/_app/immutable/chunks/M-7sJE5g.js +2 -0
  185. package/build/client/_app/immutable/chunks/M-7sJE5g.js.br +0 -0
  186. package/build/client/_app/immutable/chunks/M-7sJE5g.js.gz +0 -0
  187. package/build/client/_app/immutable/chunks/OA8UcISh.js +1 -0
  188. package/build/client/_app/immutable/chunks/OA8UcISh.js.br +0 -0
  189. package/build/client/_app/immutable/chunks/OA8UcISh.js.gz +0 -0
  190. package/build/client/_app/immutable/chunks/Ps08lWnD.js +1 -0
  191. package/build/client/_app/immutable/chunks/Ps08lWnD.js.br +0 -0
  192. package/build/client/_app/immutable/chunks/Ps08lWnD.js.gz +0 -0
  193. package/build/client/_app/immutable/chunks/Tw7wswEv.js.gz +0 -0
  194. package/build/client/_app/immutable/chunks/YWi4-JPR.js.gz +0 -0
  195. package/build/client/_app/immutable/chunks/ZGfwyPNq.js.gz +0 -0
  196. package/build/client/_app/immutable/chunks/Zznr-cwX.js.gz +0 -0
  197. package/build/client/_app/immutable/chunks/bynEV6cE.js.gz +0 -0
  198. package/build/client/_app/immutable/chunks/d-TWvvCu.js +1 -0
  199. package/build/client/_app/immutable/chunks/d-TWvvCu.js.br +0 -0
  200. package/build/client/_app/immutable/chunks/d-TWvvCu.js.gz +0 -0
  201. package/build/client/_app/immutable/chunks/dUCx_-0o.js.gz +0 -0
  202. package/build/client/_app/immutable/chunks/ddC1NP9R.js.gz +0 -0
  203. package/build/client/_app/immutable/chunks/deUWdS0T.js.gz +0 -0
  204. package/build/client/_app/immutable/chunks/gULlE0tz.js +1 -0
  205. package/build/client/_app/immutable/chunks/gULlE0tz.js.br +2 -0
  206. package/build/client/_app/immutable/chunks/gULlE0tz.js.gz +0 -0
  207. package/build/client/_app/immutable/chunks/hS1PAb5I.js +2 -0
  208. package/build/client/_app/immutable/chunks/hS1PAb5I.js.br +0 -0
  209. package/build/client/_app/immutable/chunks/hS1PAb5I.js.gz +0 -0
  210. package/build/client/_app/immutable/chunks/i9-g7ZhI.js.gz +0 -0
  211. package/build/client/_app/immutable/chunks/nf6ki56Z.js.gz +0 -0
  212. package/build/client/_app/immutable/chunks/pnP8ivHi.js.gz +0 -0
  213. package/build/client/_app/immutable/chunks/rUNN04Wq.js.gz +0 -0
  214. package/build/client/_app/immutable/chunks/tGk8EFnU.js.gz +0 -0
  215. package/build/client/_app/immutable/chunks/wZR3OpgZ.js +1 -0
  216. package/build/client/_app/immutable/chunks/wZR3OpgZ.js.br +2 -0
  217. package/build/client/_app/immutable/chunks/wZR3OpgZ.js.gz +0 -0
  218. package/build/client/_app/immutable/chunks/xC2C8d09.js +1 -0
  219. package/build/client/_app/immutable/chunks/xC2C8d09.js.br +0 -0
  220. package/build/client/_app/immutable/chunks/xC2C8d09.js.gz +0 -0
  221. package/build/client/_app/immutable/entry/app.4nlNBoFO.js +2 -0
  222. package/build/client/_app/immutable/entry/app.4nlNBoFO.js.br +0 -0
  223. package/build/client/_app/immutable/entry/app.4nlNBoFO.js.gz +0 -0
  224. package/build/client/_app/immutable/entry/start.Du6iPGlG.js +1 -0
  225. package/build/client/_app/immutable/entry/start.Du6iPGlG.js.br +2 -0
  226. package/build/client/_app/immutable/entry/start.Du6iPGlG.js.gz +0 -0
  227. package/build/client/_app/immutable/nodes/{0.DsSFrs8j.js → 0.DXz9KfRr.js} +2 -2
  228. package/build/client/_app/immutable/nodes/0.DXz9KfRr.js.br +0 -0
  229. package/build/client/_app/immutable/nodes/0.DXz9KfRr.js.gz +0 -0
  230. package/build/client/_app/immutable/nodes/1.C14tFTfE.js +1 -0
  231. package/build/client/_app/immutable/nodes/1.C14tFTfE.js.br +0 -0
  232. package/build/client/_app/immutable/nodes/1.C14tFTfE.js.gz +0 -0
  233. package/build/client/_app/immutable/nodes/10.D2pJamM_.js +5 -0
  234. package/build/client/_app/immutable/nodes/10.D2pJamM_.js.br +0 -0
  235. package/build/client/_app/immutable/nodes/10.D2pJamM_.js.gz +0 -0
  236. package/build/client/_app/immutable/nodes/{11.BVI-eEdV.js → 11.CsTD16Gn.js} +1 -1
  237. package/build/client/_app/immutable/nodes/11.CsTD16Gn.js.br +0 -0
  238. package/build/client/_app/immutable/nodes/11.CsTD16Gn.js.gz +0 -0
  239. package/build/client/_app/immutable/nodes/{12.BHSGZYEC.js → 12.DYXd_leK.js} +1 -1
  240. package/build/client/_app/immutable/nodes/12.DYXd_leK.js.br +0 -0
  241. package/build/client/_app/immutable/nodes/12.DYXd_leK.js.gz +0 -0
  242. package/build/client/_app/immutable/nodes/{13.CZ_7M4AF.js → 13.DQMjAUKq.js} +1 -1
  243. package/build/client/_app/immutable/nodes/13.DQMjAUKq.js.br +1 -0
  244. package/build/client/_app/immutable/nodes/13.DQMjAUKq.js.gz +0 -0
  245. package/build/client/_app/immutable/nodes/{14.D96_XEm-.js → 14.C59tyoG0.js} +1 -1
  246. package/build/client/_app/immutable/nodes/14.C59tyoG0.js.br +0 -0
  247. package/build/client/_app/immutable/nodes/14.C59tyoG0.js.gz +0 -0
  248. package/build/client/_app/immutable/nodes/15.yHpdn4IC.js +1 -0
  249. package/build/client/_app/immutable/nodes/15.yHpdn4IC.js.br +0 -0
  250. package/build/client/_app/immutable/nodes/15.yHpdn4IC.js.gz +0 -0
  251. package/build/client/_app/immutable/nodes/{16.MpUk9w5x.js → 16.DRwcAQjb.js} +1 -1
  252. package/build/client/_app/immutable/nodes/16.DRwcAQjb.js.br +0 -0
  253. package/build/client/_app/immutable/nodes/16.DRwcAQjb.js.gz +0 -0
  254. package/build/client/_app/immutable/nodes/17.tRxMrZSc.js +4 -0
  255. package/build/client/_app/immutable/nodes/17.tRxMrZSc.js.br +0 -0
  256. package/build/client/_app/immutable/nodes/17.tRxMrZSc.js.gz +0 -0
  257. package/build/client/_app/immutable/nodes/18.h3m2E_FB.js +11 -0
  258. package/build/client/_app/immutable/nodes/18.h3m2E_FB.js.br +0 -0
  259. package/build/client/_app/immutable/nodes/18.h3m2E_FB.js.gz +0 -0
  260. package/build/client/_app/immutable/nodes/2.DC1Zz78t.js +35 -0
  261. package/build/client/_app/immutable/nodes/2.DC1Zz78t.js.br +0 -0
  262. package/build/client/_app/immutable/nodes/2.DC1Zz78t.js.gz +0 -0
  263. package/build/client/_app/immutable/nodes/3.CwOiRWmo.js +1 -0
  264. package/build/client/_app/immutable/nodes/3.CwOiRWmo.js.br +0 -0
  265. package/build/client/_app/immutable/nodes/3.CwOiRWmo.js.gz +0 -0
  266. package/build/client/_app/immutable/nodes/4.C3SmjDhF.js +1 -0
  267. package/build/client/_app/immutable/nodes/4.C3SmjDhF.js.br +0 -0
  268. package/build/client/_app/immutable/nodes/4.C3SmjDhF.js.gz +0 -0
  269. package/build/client/_app/immutable/nodes/5.26wwTN6d.js +1 -0
  270. package/build/client/_app/immutable/nodes/5.26wwTN6d.js.br +0 -0
  271. package/build/client/_app/immutable/nodes/5.26wwTN6d.js.gz +0 -0
  272. package/build/client/_app/immutable/nodes/6.DYzKzkhv.js +1 -0
  273. package/build/client/_app/immutable/nodes/6.DYzKzkhv.js.br +0 -0
  274. package/build/client/_app/immutable/nodes/6.DYzKzkhv.js.gz +0 -0
  275. package/build/client/_app/immutable/nodes/{7.CkeP1yO3.js → 7.7N4iPidV.js} +1 -1
  276. package/build/client/_app/immutable/nodes/7.7N4iPidV.js.br +1 -0
  277. package/build/client/_app/immutable/nodes/7.7N4iPidV.js.gz +0 -0
  278. package/build/client/_app/immutable/nodes/8.lyH0lIKf.js +2 -0
  279. package/build/client/_app/immutable/nodes/8.lyH0lIKf.js.br +0 -0
  280. package/build/client/_app/immutable/nodes/8.lyH0lIKf.js.gz +0 -0
  281. package/build/client/_app/immutable/nodes/9.UnSjcLjn.js +2 -0
  282. package/build/client/_app/immutable/nodes/9.UnSjcLjn.js.br +0 -0
  283. package/build/client/_app/immutable/nodes/9.UnSjcLjn.js.gz +0 -0
  284. package/build/client/_app/immutable/workers/css.worker-BRIrhzkG.js.gz +0 -0
  285. package/build/client/_app/immutable/workers/editor.worker-DX6ApQqM.js.gz +0 -0
  286. package/build/client/_app/immutable/workers/html.worker-CBI4EQBP.js.gz +0 -0
  287. package/build/client/_app/immutable/workers/json.worker-CIZWV9vN.js.gz +0 -0
  288. package/build/client/_app/immutable/workers/ts.worker-Ds4I2Msu.js.gz +0 -0
  289. package/build/client/_app/version.json +1 -1
  290. package/build/client/_app/version.json.br +0 -0
  291. package/build/client/_app/version.json.gz +0 -0
  292. package/build/client/fonts.css.gz +0 -0
  293. package/build/client/recombine.svg.gz +0 -0
  294. package/build/client/telescope-icon.svg.gz +0 -0
  295. package/build/client/ui/arrow_tests.svg.gz +0 -0
  296. package/build/client/ui/paperclip.svg.gz +0 -0
  297. package/build/client/ui/send.svg.gz +0 -0
  298. package/build/server/chunks/0-D0-90TbM.js +9 -0
  299. package/build/server/chunks/0-D0-90TbM.js.map +1 -0
  300. package/build/server/chunks/1-DHJzzXji.js +9 -0
  301. package/build/server/chunks/{1-D6-Ps83z.js.map → 1-DHJzzXji.js.map} +1 -1
  302. package/build/server/chunks/10-3jjzakty.js +9 -0
  303. package/build/server/chunks/10-3jjzakty.js.map +1 -0
  304. package/build/server/chunks/{11-D9ueFvgV.js → 11-CB5q84io.js} +3 -3
  305. package/build/server/chunks/{11-D9ueFvgV.js.map → 11-CB5q84io.js.map} +1 -1
  306. package/build/server/chunks/{12-s9qxLZI8.js → 12-CfqC_Y1R.js} +3 -3
  307. package/build/server/chunks/{12-s9qxLZI8.js.map → 12-CfqC_Y1R.js.map} +1 -1
  308. package/build/server/chunks/{13-DSBw3elU.js → 13-ByddfU7G.js} +3 -3
  309. package/build/server/chunks/{13-DSBw3elU.js.map → 13-ByddfU7G.js.map} +1 -1
  310. package/build/server/chunks/{14-Dys1MDrz.js → 14-Dk7DCwHC.js} +3 -3
  311. package/build/server/chunks/{14-Dys1MDrz.js.map → 14-Dk7DCwHC.js.map} +1 -1
  312. package/build/server/chunks/15-ICdGKEie.js +9 -0
  313. package/build/server/chunks/15-ICdGKEie.js.map +1 -0
  314. package/build/server/chunks/{16-BRBiMoCX.js → 16-Y9KLA9UF.js} +3 -3
  315. package/build/server/chunks/{16-BRBiMoCX.js.map → 16-Y9KLA9UF.js.map} +1 -1
  316. package/build/server/chunks/17-Bozc5IJF.js +9 -0
  317. package/build/server/chunks/17-Bozc5IJF.js.map +1 -0
  318. package/build/server/chunks/18-DoqpHfoi.js +9 -0
  319. package/build/server/chunks/18-DoqpHfoi.js.map +1 -0
  320. package/build/server/chunks/2-DhghCZp5.js +9 -0
  321. package/build/server/chunks/2-DhghCZp5.js.map +1 -0
  322. package/build/server/chunks/3-Cx4tDHgq.js +9 -0
  323. package/build/server/chunks/3-Cx4tDHgq.js.map +1 -0
  324. package/build/server/chunks/4-DCqFV5Ug.js +9 -0
  325. package/build/server/chunks/4-DCqFV5Ug.js.map +1 -0
  326. package/build/server/chunks/5-CwrZ3RpM.js +9 -0
  327. package/build/server/chunks/5-CwrZ3RpM.js.map +1 -0
  328. package/build/server/chunks/6-BtuvKB8a.js +9 -0
  329. package/build/server/chunks/6-BtuvKB8a.js.map +1 -0
  330. package/build/server/chunks/{7-BixmjuY5.js → 7-olXOjo4r.js} +3 -3
  331. package/build/server/chunks/{7-BixmjuY5.js.map → 7-olXOjo4r.js.map} +1 -1
  332. package/build/server/chunks/8-Di6Wb0mD.js +9 -0
  333. package/build/server/chunks/8-Di6Wb0mD.js.map +1 -0
  334. package/build/server/chunks/9-CXT-H9KT.js +9 -0
  335. package/build/server/chunks/9-CXT-H9KT.js.map +1 -0
  336. package/build/server/chunks/{AgentSidebar-DqMxRWln.js → AgentSidebar-XdGj1sqT.js} +32 -24
  337. package/build/server/chunks/AgentSidebar-XdGj1sqT.js.map +1 -0
  338. package/build/server/chunks/{Button-qfXYs6Cv.js → Button-Dsy3QY7B.js} +5 -5
  339. package/build/server/chunks/Button-Dsy3QY7B.js.map +1 -0
  340. package/build/server/chunks/{ChatStepTrace-Bvxmgz7y.js → ChatStepTrace-ZynTuQTL.js} +98 -266
  341. package/build/server/chunks/ChatStepTrace-ZynTuQTL.js.map +1 -0
  342. package/build/server/chunks/{ContextEditor-CsiHhmH8.js → ContextEditor-D5B2mO8Z.js} +6 -5
  343. package/build/server/chunks/ContextEditor-D5B2mO8Z.js.map +1 -0
  344. package/build/server/chunks/{Dropdown-DroDbZQ6.js → Dropdown-7dp1qEYv.js} +4 -4
  345. package/build/server/chunks/Dropdown-7dp1qEYv.js.map +1 -0
  346. package/build/server/chunks/{Icon-SOvOgynh.js → Icon-CXFHkSIr.js} +7 -7
  347. package/build/server/chunks/Icon-CXFHkSIr.js.map +1 -0
  348. package/build/server/chunks/{Input-D-7S8dEO.js → Input-CHFlfduw.js} +4 -4
  349. package/build/server/chunks/Input-CHFlfduw.js.map +1 -0
  350. package/build/server/chunks/{Modal-CBKUwUGm.js → Modal-DtVsRmmO.js} +131 -93
  351. package/build/server/chunks/Modal-DtVsRmmO.js.map +1 -0
  352. package/build/server/chunks/{Tab-DMBlstpi.js → Tab-CD1H0E3P.js} +6 -7
  353. package/build/server/chunks/Tab-CD1H0E3P.js.map +1 -0
  354. package/build/server/chunks/{_layout.svelte-DuOlsMHY.js → _layout.svelte-2zFP7RWi.js} +60 -59
  355. package/build/server/chunks/_layout.svelte-2zFP7RWi.js.map +1 -0
  356. package/build/server/chunks/{_layout.svelte-B3_pVwfN.js → _layout.svelte-C5eqrEen.js} +10 -9
  357. package/build/server/chunks/_layout.svelte-C5eqrEen.js.map +1 -0
  358. package/build/server/chunks/{_layout.svelte-BnUNGsUV.js → _layout.svelte-C7JgNCIu.js} +15 -15
  359. package/build/server/chunks/_layout.svelte-C7JgNCIu.js.map +1 -0
  360. package/build/server/chunks/{_layout.svelte-CqwbWo_W.js → _layout.svelte-Cgnhhd3c.js} +139 -151
  361. package/build/server/chunks/_layout.svelte-Cgnhhd3c.js.map +1 -0
  362. package/build/server/chunks/_page.svelte-BhU1G2ip.js +1040 -0
  363. package/build/server/chunks/_page.svelte-BhU1G2ip.js.map +1 -0
  364. package/build/server/chunks/{_page.svelte-B8NFVmqA.js → _page.svelte-BsIw3yWt.js} +7 -8
  365. package/build/server/chunks/_page.svelte-BsIw3yWt.js.map +1 -0
  366. package/build/server/chunks/{_page.svelte-BB_XBfMx.js → _page.svelte-C9wKPt_S.js} +6 -7
  367. package/build/server/chunks/_page.svelte-C9wKPt_S.js.map +1 -0
  368. package/build/server/chunks/{_page.svelte-c2LBV2K4.js → _page.svelte-CY4SZM-i.js} +180 -170
  369. package/build/server/chunks/_page.svelte-CY4SZM-i.js.map +1 -0
  370. package/build/server/chunks/{_page.svelte-Tl1k8pGd.js → _page.svelte-Cwut2PVb.js} +16 -16
  371. package/build/server/chunks/_page.svelte-Cwut2PVb.js.map +1 -0
  372. package/build/server/chunks/{_page.svelte-BaDwHJpC.js → _page.svelte-DbV3HGn5.js} +3 -4
  373. package/build/server/chunks/_page.svelte-DbV3HGn5.js.map +1 -0
  374. package/build/server/chunks/{_page.svelte-Ch8DnIjK.js → _page.svelte-DdmEn1df.js} +114 -139
  375. package/build/server/chunks/_page.svelte-DdmEn1df.js.map +1 -0
  376. package/build/server/chunks/{_page.svelte-DASkT6Tk.js → _page.svelte-DiI_KSHV.js} +16 -25
  377. package/build/server/chunks/_page.svelte-DiI_KSHV.js.map +1 -0
  378. package/build/server/chunks/{_server.ts-DviONucl.js → _server.ts-CtO28tLc.js} +2 -2
  379. package/build/server/chunks/{_server.ts-DviONucl.js.map → _server.ts-CtO28tLc.js.map} +1 -1
  380. package/build/server/chunks/{_server.ts-CUTB_pVv.js → _server.ts-D_eo_OAK.js} +2 -2
  381. package/build/server/chunks/{_server.ts-CUTB_pVv.js.map → _server.ts-D_eo_OAK.js.map} +1 -1
  382. package/build/server/chunks/{agents-context-DJAK2Ml6.js → agents-context-rV2narXG.js} +2 -2
  383. package/build/server/chunks/agents-context-rV2narXG.js.map +1 -0
  384. package/build/server/chunks/{client-tqD_VlIn.js → client-DzvEkq51.js} +14 -2
  385. package/build/server/chunks/client-DzvEkq51.js.map +1 -0
  386. package/build/server/chunks/{edit-workspace-context-BQXwYkgE.js → edit-workspace-context-B1nYQ5hD.js} +2 -3
  387. package/build/server/chunks/edit-workspace-context-B1nYQ5hD.js.map +1 -0
  388. package/build/server/chunks/error.svelte-DA-yulF5.js +15 -0
  389. package/build/server/chunks/error.svelte-DA-yulF5.js.map +1 -0
  390. package/build/server/chunks/{events-Hd1jvlZp.js → events-BQ65tUJo.js} +15 -18
  391. package/build/server/chunks/events-BQ65tUJo.js.map +1 -0
  392. package/build/server/chunks/{hooks-BJphIAi-.js → hooks.universal-BJphIAi-.js} +1 -1
  393. package/build/server/chunks/hooks.universal-BJphIAi-.js.map +1 -0
  394. package/build/server/chunks/index-CSpGrMM2.js +4062 -0
  395. package/build/server/chunks/index-CSpGrMM2.js.map +1 -0
  396. package/build/server/chunks/{index-Djsj11qr.js → index-NcxaM188.js} +26 -4
  397. package/build/server/chunks/index-NcxaM188.js.map +1 -0
  398. package/build/server/chunks/{index-server-BI-Ep7Rw.js → index-server-DsYEXu5n.js} +2 -3
  399. package/build/server/chunks/index-server-DsYEXu5n.js.map +1 -0
  400. package/build/server/chunks/{index3-Cp9d5nmD.js → index2-DO4B3D-P.js} +5 -5
  401. package/build/server/chunks/index2-DO4B3D-P.js.map +1 -0
  402. package/build/server/chunks/{index-BSa6KzSq.js → index3-qVi61CNf.js} +2 -2
  403. package/build/server/chunks/{index-BSa6KzSq.js.map → index3-qVi61CNf.js.map} +1 -1
  404. package/build/server/chunks/{log-content.svelte-B3ZvaoLs.js → log-content.svelte-CfQzj-v_.js} +2 -2
  405. package/build/server/chunks/{log-content.svelte-B3ZvaoLs.js.map → log-content.svelte-CfQzj-v_.js.map} +1 -1
  406. package/build/server/chunks/root-CDJwhpIB.js +1152 -0
  407. package/build/server/chunks/root-CDJwhpIB.js.map +1 -0
  408. package/build/server/chunks/{source-selection-hOQHZ-fn.js → source-selection-eA--VEKo.js} +17 -2
  409. package/build/server/chunks/source-selection-eA--VEKo.js.map +1 -0
  410. package/build/server/chunks/state.svelte-DT7cgvTK.js +11 -0
  411. package/build/server/chunks/state.svelte-DT7cgvTK.js.map +1 -0
  412. package/build/server/index.js +2467 -2815
  413. package/build/server/index.js.map +1 -1
  414. package/build/server/manifest.js +22 -22
  415. package/build/server/manifest.js.map +1 -1
  416. package/package.json +1 -1
  417. package/src/backend/lib/get-agent-factories.ts +1 -1
  418. package/src/backend/roleplay/router.ts +14 -8
  419. package/src/backend/roleplay/scheduler.ts +1 -1
  420. package/src/backend/tests/emulate-agents.ts +1 -0
  421. package/build/client/_app/immutable/assets/0.DkT7Ji57.css +0 -1
  422. package/build/client/_app/immutable/assets/0.DkT7Ji57.css.br +0 -0
  423. package/build/client/_app/immutable/assets/0.DkT7Ji57.css.gz +0 -0
  424. package/build/client/_app/immutable/assets/ChatStepTrace.CDucuryp.css +0 -1
  425. package/build/client/_app/immutable/assets/ChatStepTrace.CDucuryp.css.br +0 -0
  426. package/build/client/_app/immutable/assets/ChatStepTrace.CDucuryp.css.gz +0 -0
  427. package/build/client/_app/immutable/chunks/3HVf2z3Q.js +0 -1
  428. package/build/client/_app/immutable/chunks/3HVf2z3Q.js.br +0 -0
  429. package/build/client/_app/immutable/chunks/3HVf2z3Q.js.gz +0 -0
  430. package/build/client/_app/immutable/chunks/8mHyIC1B.js.br +0 -0
  431. package/build/client/_app/immutable/chunks/8mHyIC1B.js.gz +0 -0
  432. package/build/client/_app/immutable/chunks/B394X4Dm.js.br +0 -0
  433. package/build/client/_app/immutable/chunks/B394X4Dm.js.gz +0 -0
  434. package/build/client/_app/immutable/chunks/B5CoBEt2.js +0 -1330
  435. package/build/client/_app/immutable/chunks/B5CoBEt2.js.br +0 -0
  436. package/build/client/_app/immutable/chunks/B5CoBEt2.js.gz +0 -0
  437. package/build/client/_app/immutable/chunks/B7r4ghJg.js +0 -1
  438. package/build/client/_app/immutable/chunks/B7r4ghJg.js.br +0 -2
  439. package/build/client/_app/immutable/chunks/B7r4ghJg.js.gz +0 -0
  440. package/build/client/_app/immutable/chunks/BEJ5fU19.js +0 -1
  441. package/build/client/_app/immutable/chunks/BEJ5fU19.js.br +0 -0
  442. package/build/client/_app/immutable/chunks/BEJ5fU19.js.gz +0 -0
  443. package/build/client/_app/immutable/chunks/BFchB-2I.js +0 -1
  444. package/build/client/_app/immutable/chunks/BFchB-2I.js.br +0 -0
  445. package/build/client/_app/immutable/chunks/BFchB-2I.js.gz +0 -0
  446. package/build/client/_app/immutable/chunks/BRMnbBOX.js +0 -1
  447. package/build/client/_app/immutable/chunks/BRMnbBOX.js.br +0 -0
  448. package/build/client/_app/immutable/chunks/BRMnbBOX.js.gz +0 -0
  449. package/build/client/_app/immutable/chunks/BUApaBEI.js +0 -1
  450. package/build/client/_app/immutable/chunks/BUApaBEI.js.br +0 -0
  451. package/build/client/_app/immutable/chunks/BUApaBEI.js.gz +0 -0
  452. package/build/client/_app/immutable/chunks/Bb9ZigkD.js +0 -2
  453. package/build/client/_app/immutable/chunks/Bb9ZigkD.js.br +0 -0
  454. package/build/client/_app/immutable/chunks/Bb9ZigkD.js.gz +0 -0
  455. package/build/client/_app/immutable/chunks/BiBGf8wR.js +0 -1
  456. package/build/client/_app/immutable/chunks/BiBGf8wR.js.br +0 -0
  457. package/build/client/_app/immutable/chunks/BiBGf8wR.js.gz +0 -0
  458. package/build/client/_app/immutable/chunks/Bk5z628g.js +0 -1
  459. package/build/client/_app/immutable/chunks/Bk5z628g.js.br +0 -0
  460. package/build/client/_app/immutable/chunks/Bk5z628g.js.gz +0 -0
  461. package/build/client/_app/immutable/chunks/BmJonxL2.js +0 -1
  462. package/build/client/_app/immutable/chunks/BmJonxL2.js.br +0 -0
  463. package/build/client/_app/immutable/chunks/BmJonxL2.js.gz +0 -0
  464. package/build/client/_app/immutable/chunks/C1rQHXql.js +0 -1
  465. package/build/client/_app/immutable/chunks/C1rQHXql.js.br +0 -0
  466. package/build/client/_app/immutable/chunks/C1rQHXql.js.gz +0 -0
  467. package/build/client/_app/immutable/chunks/C3cmQ-ZQ.js +0 -1
  468. package/build/client/_app/immutable/chunks/C3cmQ-ZQ.js.br +0 -0
  469. package/build/client/_app/immutable/chunks/C3cmQ-ZQ.js.gz +0 -0
  470. package/build/client/_app/immutable/chunks/C8-d_pGN.js +0 -11
  471. package/build/client/_app/immutable/chunks/C8-d_pGN.js.br +0 -0
  472. package/build/client/_app/immutable/chunks/C8-d_pGN.js.gz +0 -0
  473. package/build/client/_app/immutable/chunks/CAnrK2Rl.js +0 -5
  474. package/build/client/_app/immutable/chunks/CAnrK2Rl.js.br +0 -0
  475. package/build/client/_app/immutable/chunks/CAnrK2Rl.js.gz +0 -0
  476. package/build/client/_app/immutable/chunks/CB3MYTwM.js +0 -2
  477. package/build/client/_app/immutable/chunks/CB3MYTwM.js.br +0 -0
  478. package/build/client/_app/immutable/chunks/CB3MYTwM.js.gz +0 -0
  479. package/build/client/_app/immutable/chunks/CD54oo-Q.js +0 -1
  480. package/build/client/_app/immutable/chunks/CD54oo-Q.js.br +0 -0
  481. package/build/client/_app/immutable/chunks/CD54oo-Q.js.gz +0 -0
  482. package/build/client/_app/immutable/chunks/CJHvtD7r.js +0 -8
  483. package/build/client/_app/immutable/chunks/CJHvtD7r.js.br +0 -0
  484. package/build/client/_app/immutable/chunks/CJHvtD7r.js.gz +0 -0
  485. package/build/client/_app/immutable/chunks/CMN-Rq6J.js +0 -1
  486. package/build/client/_app/immutable/chunks/CMN-Rq6J.js.br +0 -0
  487. package/build/client/_app/immutable/chunks/CMN-Rq6J.js.gz +0 -0
  488. package/build/client/_app/immutable/chunks/CWj6FrbW.js +0 -1
  489. package/build/client/_app/immutable/chunks/CWj6FrbW.js.br +0 -0
  490. package/build/client/_app/immutable/chunks/CWj6FrbW.js.gz +0 -0
  491. package/build/client/_app/immutable/chunks/CmatTLDp.js +0 -1
  492. package/build/client/_app/immutable/chunks/CmatTLDp.js.br +0 -0
  493. package/build/client/_app/immutable/chunks/CmatTLDp.js.gz +0 -0
  494. package/build/client/_app/immutable/chunks/CnRh8Bgk.js +0 -33
  495. package/build/client/_app/immutable/chunks/CnRh8Bgk.js.br +0 -0
  496. package/build/client/_app/immutable/chunks/CnRh8Bgk.js.gz +0 -0
  497. package/build/client/_app/immutable/chunks/Cob_zFH5.js +0 -1
  498. package/build/client/_app/immutable/chunks/Cob_zFH5.js.br +0 -0
  499. package/build/client/_app/immutable/chunks/Cob_zFH5.js.gz +0 -0
  500. package/build/client/_app/immutable/chunks/DAyj7AJo.js +0 -1
  501. package/build/client/_app/immutable/chunks/DAyj7AJo.js.br +0 -0
  502. package/build/client/_app/immutable/chunks/DAyj7AJo.js.gz +0 -0
  503. package/build/client/_app/immutable/chunks/DCT4VKzQ.js +0 -1
  504. package/build/client/_app/immutable/chunks/DCT4VKzQ.js.br +0 -0
  505. package/build/client/_app/immutable/chunks/DCT4VKzQ.js.gz +0 -0
  506. package/build/client/_app/immutable/chunks/DJH8-Pxb.js +0 -1
  507. package/build/client/_app/immutable/chunks/DJH8-Pxb.js.br +0 -0
  508. package/build/client/_app/immutable/chunks/DJH8-Pxb.js.gz +0 -0
  509. package/build/client/_app/immutable/chunks/DMtzEpj5.js +0 -2
  510. package/build/client/_app/immutable/chunks/DMtzEpj5.js.br +0 -0
  511. package/build/client/_app/immutable/chunks/DMtzEpj5.js.gz +0 -0
  512. package/build/client/_app/immutable/chunks/DT74mAuZ.js +0 -1
  513. package/build/client/_app/immutable/chunks/DT74mAuZ.js.br +0 -0
  514. package/build/client/_app/immutable/chunks/DT74mAuZ.js.gz +0 -0
  515. package/build/client/_app/immutable/chunks/DYY6aMTA.js.br +0 -0
  516. package/build/client/_app/immutable/chunks/DYY6aMTA.js.gz +0 -0
  517. package/build/client/_app/immutable/chunks/D_iTaAhh.js +0 -1
  518. package/build/client/_app/immutable/chunks/D_iTaAhh.js.br +0 -0
  519. package/build/client/_app/immutable/chunks/D_iTaAhh.js.gz +0 -0
  520. package/build/client/_app/immutable/chunks/hp4PFHFv.js +0 -1
  521. package/build/client/_app/immutable/chunks/hp4PFHFv.js.br +0 -2
  522. package/build/client/_app/immutable/chunks/hp4PFHFv.js.gz +0 -0
  523. package/build/client/_app/immutable/chunks/rHISuZrQ.js +0 -1
  524. package/build/client/_app/immutable/chunks/rHISuZrQ.js.br +0 -0
  525. package/build/client/_app/immutable/chunks/rHISuZrQ.js.gz +0 -0
  526. package/build/client/_app/immutable/entry/app.DoUqDuhT.js +0 -2
  527. package/build/client/_app/immutable/entry/app.DoUqDuhT.js.br +0 -0
  528. package/build/client/_app/immutable/entry/app.DoUqDuhT.js.gz +0 -0
  529. package/build/client/_app/immutable/entry/start.Ck039vGm.js +0 -1
  530. package/build/client/_app/immutable/entry/start.Ck039vGm.js.br +0 -2
  531. package/build/client/_app/immutable/entry/start.Ck039vGm.js.gz +0 -0
  532. package/build/client/_app/immutable/nodes/0.DsSFrs8j.js.br +0 -0
  533. package/build/client/_app/immutable/nodes/0.DsSFrs8j.js.gz +0 -0
  534. package/build/client/_app/immutable/nodes/1.mgTJXkii.js +0 -1
  535. package/build/client/_app/immutable/nodes/1.mgTJXkii.js.br +0 -0
  536. package/build/client/_app/immutable/nodes/1.mgTJXkii.js.gz +0 -0
  537. package/build/client/_app/immutable/nodes/10.CNlp77FZ.js +0 -5
  538. package/build/client/_app/immutable/nodes/10.CNlp77FZ.js.br +0 -0
  539. package/build/client/_app/immutable/nodes/10.CNlp77FZ.js.gz +0 -0
  540. package/build/client/_app/immutable/nodes/11.BVI-eEdV.js.br +0 -0
  541. package/build/client/_app/immutable/nodes/11.BVI-eEdV.js.gz +0 -0
  542. package/build/client/_app/immutable/nodes/12.BHSGZYEC.js.br +0 -0
  543. package/build/client/_app/immutable/nodes/12.BHSGZYEC.js.gz +0 -0
  544. package/build/client/_app/immutable/nodes/13.CZ_7M4AF.js.br +0 -0
  545. package/build/client/_app/immutable/nodes/13.CZ_7M4AF.js.gz +0 -0
  546. package/build/client/_app/immutable/nodes/14.D96_XEm-.js.br +0 -0
  547. package/build/client/_app/immutable/nodes/14.D96_XEm-.js.gz +0 -0
  548. package/build/client/_app/immutable/nodes/15.DJq8KQca.js +0 -1
  549. package/build/client/_app/immutable/nodes/15.DJq8KQca.js.br +0 -0
  550. package/build/client/_app/immutable/nodes/15.DJq8KQca.js.gz +0 -0
  551. package/build/client/_app/immutable/nodes/16.MpUk9w5x.js.br +0 -0
  552. package/build/client/_app/immutable/nodes/16.MpUk9w5x.js.gz +0 -0
  553. package/build/client/_app/immutable/nodes/17.CgqWHP0Y.js +0 -4
  554. package/build/client/_app/immutable/nodes/17.CgqWHP0Y.js.br +0 -0
  555. package/build/client/_app/immutable/nodes/17.CgqWHP0Y.js.gz +0 -0
  556. package/build/client/_app/immutable/nodes/18.BV7lLFx7.js +0 -11
  557. package/build/client/_app/immutable/nodes/18.BV7lLFx7.js.br +0 -0
  558. package/build/client/_app/immutable/nodes/18.BV7lLFx7.js.gz +0 -0
  559. package/build/client/_app/immutable/nodes/2.COX-RTiI.js +0 -35
  560. package/build/client/_app/immutable/nodes/2.COX-RTiI.js.br +0 -0
  561. package/build/client/_app/immutable/nodes/2.COX-RTiI.js.gz +0 -0
  562. package/build/client/_app/immutable/nodes/3.CCDyeAHw.js +0 -1
  563. package/build/client/_app/immutable/nodes/3.CCDyeAHw.js.br +0 -0
  564. package/build/client/_app/immutable/nodes/3.CCDyeAHw.js.gz +0 -0
  565. package/build/client/_app/immutable/nodes/4.Cd9dzHLx.js +0 -1
  566. package/build/client/_app/immutable/nodes/4.Cd9dzHLx.js.br +0 -0
  567. package/build/client/_app/immutable/nodes/4.Cd9dzHLx.js.gz +0 -0
  568. package/build/client/_app/immutable/nodes/5.BqUmLlVD.js +0 -1
  569. package/build/client/_app/immutable/nodes/5.BqUmLlVD.js.br +0 -0
  570. package/build/client/_app/immutable/nodes/5.BqUmLlVD.js.gz +0 -0
  571. package/build/client/_app/immutable/nodes/6.kgmUVW62.js +0 -1
  572. package/build/client/_app/immutable/nodes/6.kgmUVW62.js.br +0 -0
  573. package/build/client/_app/immutable/nodes/6.kgmUVW62.js.gz +0 -0
  574. package/build/client/_app/immutable/nodes/7.CkeP1yO3.js.br +0 -0
  575. package/build/client/_app/immutable/nodes/7.CkeP1yO3.js.gz +0 -0
  576. package/build/client/_app/immutable/nodes/8.CaESldgZ.js +0 -2
  577. package/build/client/_app/immutable/nodes/8.CaESldgZ.js.br +0 -0
  578. package/build/client/_app/immutable/nodes/8.CaESldgZ.js.gz +0 -0
  579. package/build/client/_app/immutable/nodes/9.DatTKw7a.js +0 -2
  580. package/build/client/_app/immutable/nodes/9.DatTKw7a.js.br +0 -0
  581. package/build/client/_app/immutable/nodes/9.DatTKw7a.js.gz +0 -0
  582. package/build/server/chunks/0-CXtwDtnz.js +0 -9
  583. package/build/server/chunks/0-CXtwDtnz.js.map +0 -1
  584. package/build/server/chunks/1-D6-Ps83z.js +0 -9
  585. package/build/server/chunks/10-BWSo2Lz2.js +0 -9
  586. package/build/server/chunks/10-BWSo2Lz2.js.map +0 -1
  587. package/build/server/chunks/15-D8gRuCBg.js +0 -9
  588. package/build/server/chunks/15-D8gRuCBg.js.map +0 -1
  589. package/build/server/chunks/17-CH4MLdY7.js +0 -9
  590. package/build/server/chunks/17-CH4MLdY7.js.map +0 -1
  591. package/build/server/chunks/18-C48_VgcC.js +0 -9
  592. package/build/server/chunks/18-C48_VgcC.js.map +0 -1
  593. package/build/server/chunks/2-CSbZQChk.js +0 -9
  594. package/build/server/chunks/2-CSbZQChk.js.map +0 -1
  595. package/build/server/chunks/3-DMPvS2tl.js +0 -9
  596. package/build/server/chunks/3-DMPvS2tl.js.map +0 -1
  597. package/build/server/chunks/4-DJMua_Cs.js +0 -9
  598. package/build/server/chunks/4-DJMua_Cs.js.map +0 -1
  599. package/build/server/chunks/5-QQH3C-Ro.js +0 -9
  600. package/build/server/chunks/5-QQH3C-Ro.js.map +0 -1
  601. package/build/server/chunks/6-BdiDB4wj.js +0 -9
  602. package/build/server/chunks/6-BdiDB4wj.js.map +0 -1
  603. package/build/server/chunks/8-msXmgb8C.js +0 -9
  604. package/build/server/chunks/8-msXmgb8C.js.map +0 -1
  605. package/build/server/chunks/9-BtgYu4El.js +0 -9
  606. package/build/server/chunks/9-BtgYu4El.js.map +0 -1
  607. package/build/server/chunks/AgentSidebar-DqMxRWln.js.map +0 -1
  608. package/build/server/chunks/Button-qfXYs6Cv.js.map +0 -1
  609. package/build/server/chunks/ChatStepTrace-Bvxmgz7y.js.map +0 -1
  610. package/build/server/chunks/ContextEditor-CsiHhmH8.js.map +0 -1
  611. package/build/server/chunks/Dropdown-DroDbZQ6.js.map +0 -1
  612. package/build/server/chunks/Icon-SOvOgynh.js.map +0 -1
  613. package/build/server/chunks/Input-D-7S8dEO.js.map +0 -1
  614. package/build/server/chunks/Modal-CBKUwUGm.js.map +0 -1
  615. package/build/server/chunks/Tab-DMBlstpi.js.map +0 -1
  616. package/build/server/chunks/_layout.svelte-B3_pVwfN.js.map +0 -1
  617. package/build/server/chunks/_layout.svelte-BnUNGsUV.js.map +0 -1
  618. package/build/server/chunks/_layout.svelte-CqwbWo_W.js.map +0 -1
  619. package/build/server/chunks/_layout.svelte-DuOlsMHY.js.map +0 -1
  620. package/build/server/chunks/_page.svelte-B8NFVmqA.js.map +0 -1
  621. package/build/server/chunks/_page.svelte-BB_XBfMx.js.map +0 -1
  622. package/build/server/chunks/_page.svelte-BaDwHJpC.js.map +0 -1
  623. package/build/server/chunks/_page.svelte-Ch8DnIjK.js.map +0 -1
  624. package/build/server/chunks/_page.svelte-DASkT6Tk.js.map +0 -1
  625. package/build/server/chunks/_page.svelte-Tl1k8pGd.js.map +0 -1
  626. package/build/server/chunks/_page.svelte-VFizsKQC.js +0 -763
  627. package/build/server/chunks/_page.svelte-VFizsKQC.js.map +0 -1
  628. package/build/server/chunks/_page.svelte-c2LBV2K4.js.map +0 -1
  629. package/build/server/chunks/agents-context-DJAK2Ml6.js.map +0 -1
  630. package/build/server/chunks/client-tqD_VlIn.js.map +0 -1
  631. package/build/server/chunks/context-B0vutJuA.js +0 -1819
  632. package/build/server/chunks/context-B0vutJuA.js.map +0 -1
  633. package/build/server/chunks/edit-workspace-context-BQXwYkgE.js.map +0 -1
  634. package/build/server/chunks/error.svelte-DZg1sSW2.js +0 -14
  635. package/build/server/chunks/error.svelte-DZg1sSW2.js.map +0 -1
  636. package/build/server/chunks/events-Hd1jvlZp.js.map +0 -1
  637. package/build/server/chunks/hooks-BJphIAi-.js.map +0 -1
  638. package/build/server/chunks/index-Djsj11qr.js.map +0 -1
  639. package/build/server/chunks/index-server-BI-Ep7Rw.js.map +0 -1
  640. package/build/server/chunks/index2-BpEbpEAf.js +0 -828
  641. package/build/server/chunks/index2-BpEbpEAf.js.map +0 -1
  642. package/build/server/chunks/index3-Cp9d5nmD.js.map +0 -1
  643. package/build/server/chunks/source-selection-hOQHZ-fn.js.map +0 -1
  644. package/build/server/chunks/state.svelte-DbqYHGBV.js +0 -10
  645. package/build/server/chunks/state.svelte-DbqYHGBV.js.map +0 -1
  646. package/build/server/chunks/utils-KcIDVAAe.js +0 -238
  647. package/build/server/chunks/utils-KcIDVAAe.js.map +0 -1
@@ -0,0 +1,1040 @@
1
+ import { j as escape_html, l as derived, n as ensure_array_like, q as attr_style } from './index-CSpGrMM2.js';
2
+ import { o as onDestroy } from './index-server-DsYEXu5n.js';
3
+ import { p as page } from './index2-DO4B3D-P.js';
4
+ import { B as Button } from './Button-Dsy3QY7B.js';
5
+ import { g as getPersistedTelescopeSourceId } from './source-selection-eA--VEKo.js';
6
+ import './state.svelte-DT7cgvTK.js';
7
+ import './root-CDJwhpIB.js';
8
+ import './events-BQ65tUJo.js';
9
+ import './index3-qVi61CNf.js';
10
+ import 'zod';
11
+
12
+ function _page($$renderer, $$props) {
13
+ $$renderer.component(($$renderer2) => {
14
+ const TIMELINE_RULER_HEIGHT_PX = 32;
15
+ const TIMELINE_ROW_HEIGHT_PX = 40;
16
+ const WAVEFORM_ROW_HEIGHT_PX = 160;
17
+ const TIMELINE_SCALE_HEIGHT_PX = 32;
18
+ const BOSUN_COLORS = {
19
+ blue: "#569cd6",
20
+ green: "#93FF6D",
21
+ greenDark: "#00B58A",
22
+ orange: "#ce9178",
23
+ purple: "#81147D",
24
+ red: "#FF6666",
25
+ gray: "#767676"
26
+ };
27
+ const ROW_DEFS = [
28
+ { label: "Call", eventTypes: ["call.started", "call.ended"] },
29
+ {
30
+ label: "VAD",
31
+ eventTypes: ["vad.activated", "vad.deactivated"]
32
+ },
33
+ {
34
+ label: "STT",
35
+ eventTypes: ["stt.started", "stt.interim", "stt.final"]
36
+ },
37
+ { label: "Trigger", eventTypes: ["speech.created"] },
38
+ {
39
+ label: "Reply Pending",
40
+ eventTypes: ["reply.pending.started", "reply.pending.completed"]
41
+ },
42
+ {
43
+ label: "LLM Transport",
44
+ eventTypes: [
45
+ "llm.connect_tcp.started",
46
+ "llm.connect_tcp.completed",
47
+ "llm.connect_tcp.failed",
48
+ "llm.start_tls.started",
49
+ "llm.start_tls.completed",
50
+ "llm.start_tls.failed"
51
+ ]
52
+ },
53
+ {
54
+ label: "LLM Wait",
55
+ eventTypes: ["llm.wait.started", "llm.requested", "llm.wait.completed"]
56
+ },
57
+ {
58
+ label: "LLM Stream",
59
+ eventTypes: [
60
+ "llm.stream.started",
61
+ "llm.first_token",
62
+ "llm.completed",
63
+ "llm.stream.completed"
64
+ ]
65
+ },
66
+ {
67
+ label: "TTS Text",
68
+ eventTypes: ["tts.text.first_sent", "tts.text.completed"]
69
+ },
70
+ {
71
+ label: "Provider",
72
+ eventTypes: [
73
+ "tts.provider.started",
74
+ "tts.audio.first_received",
75
+ "tts.audio.last_received",
76
+ "tts.provider.completed"
77
+ ]
78
+ },
79
+ {
80
+ label: "Decode",
81
+ eventTypes: ["tts.decode.started", "tts.decode.completed"]
82
+ },
83
+ {
84
+ label: "Output Queue",
85
+ eventTypes: ["audio.output.wait.started", "audio.output.wait.completed"]
86
+ },
87
+ {
88
+ label: "Playback",
89
+ eventTypes: [
90
+ "audio.playback.started",
91
+ "audio.playback.stopped",
92
+ "audio.playback.ended"
93
+ ]
94
+ },
95
+ {
96
+ label: "Interruptions",
97
+ eventTypes: ["interruption.detected", "audio.playback.interrupted"]
98
+ },
99
+ { label: "Other" }
100
+ ];
101
+ const COLOR_BY_KEY = {
102
+ call: tintHex(BOSUN_COLORS.gray, 0.2),
103
+ vad: tintHex(BOSUN_COLORS.purple, 0.35),
104
+ stt: tintHex(BOSUN_COLORS.purple, 0.2),
105
+ trigger: BOSUN_COLORS.greenDark,
106
+ "reply.pending": tintHex(BOSUN_COLORS.greenDark, 0.18),
107
+ "llm.transport": tintHex(BOSUN_COLORS.blue, 0.18),
108
+ "llm.wait": tintHex(BOSUN_COLORS.blue, -0.25),
109
+ "llm.stream": BOSUN_COLORS.blue,
110
+ "tts.text": BOSUN_COLORS.orange,
111
+ "tts.provider.lifecycle": tintHex(BOSUN_COLORS.purple, -0.18),
112
+ "tts.provider": tintHex(BOSUN_COLORS.purple, 0.12),
113
+ "tts.decode": tintHex(BOSUN_COLORS.orange, -0.12),
114
+ "audio.output.wait": tintHex(BOSUN_COLORS.green, -0.1),
115
+ playback: tintHex(BOSUN_COLORS.greenDark, -0.08),
116
+ interruption: BOSUN_COLORS.red,
117
+ other: BOSUN_COLORS.gray
118
+ };
119
+ const SPAN_RULES = [
120
+ {
121
+ startEventType: "call.started",
122
+ endEventType: "call.ended",
123
+ row: "Call",
124
+ colorKey: "call",
125
+ label: "Call",
126
+ description: "Derived from adjacent call lifecycle events"
127
+ },
128
+ {
129
+ startEventType: "vad.activated",
130
+ endEventType: "vad.deactivated",
131
+ row: "VAD",
132
+ colorKey: "vad",
133
+ label: "VAD active",
134
+ description: "Derived from adjacent VAD activation and deactivation events"
135
+ },
136
+ {
137
+ startEventType: "reply.pending.started",
138
+ endEventType: "reply.pending.completed",
139
+ row: "Reply Pending",
140
+ colorKey: "reply.pending",
141
+ label: "Reply pending",
142
+ description: "Derived from adjacent reply-pending lifecycle events"
143
+ },
144
+ {
145
+ startEventType: "llm.connect_tcp.started",
146
+ endEventType: "llm.connect_tcp.completed",
147
+ row: "LLM Transport",
148
+ colorKey: "llm.transport",
149
+ label: "Connect TCP",
150
+ description: "Derived from adjacent TCP connect lifecycle events"
151
+ },
152
+ {
153
+ startEventType: "llm.start_tls.started",
154
+ endEventType: "llm.start_tls.completed",
155
+ row: "LLM Transport",
156
+ colorKey: "llm.transport",
157
+ label: "Start TLS",
158
+ description: "Derived from adjacent TLS lifecycle events"
159
+ },
160
+ {
161
+ startEventType: "llm.wait.started",
162
+ endEventType: "llm.wait.completed",
163
+ row: "LLM Wait",
164
+ colorKey: "llm.wait",
165
+ label: "LLM wait",
166
+ description: "Derived from adjacent LLM wait lifecycle events"
167
+ },
168
+ {
169
+ startEventType: "llm.stream.started",
170
+ endEventType: "llm.stream.completed",
171
+ row: "LLM Stream",
172
+ colorKey: "llm.stream",
173
+ label: "LLM stream",
174
+ description: "Derived from adjacent LLM stream lifecycle events"
175
+ },
176
+ {
177
+ startEventType: "tts.text.first_sent",
178
+ endEventType: "tts.text.completed",
179
+ row: "TTS Text",
180
+ colorKey: "tts.text",
181
+ label: "TTS text send",
182
+ description: "Derived from adjacent TTS text send and completion events"
183
+ },
184
+ {
185
+ startEventType: "tts.provider.started",
186
+ endEventType: "tts.audio.first_received",
187
+ row: "Provider",
188
+ colorKey: "tts.provider.lifecycle",
189
+ label: "Provider wait",
190
+ description: "Derived from adjacent provider start and first-audio events"
191
+ },
192
+ {
193
+ startEventType: "tts.audio.first_received",
194
+ endEventType: "tts.provider.completed",
195
+ row: "Provider",
196
+ colorKey: "tts.provider",
197
+ label: "Provider audio",
198
+ description: "Derived from adjacent provider first-audio and completion events"
199
+ },
200
+ {
201
+ startEventType: "tts.decode.started",
202
+ endEventType: "tts.decode.completed",
203
+ row: "Decode",
204
+ colorKey: "tts.decode",
205
+ label: "Decode",
206
+ description: "Derived from adjacent local decode lifecycle events"
207
+ },
208
+ {
209
+ startEventType: "audio.output.wait.started",
210
+ endEventType: "audio.output.wait.completed",
211
+ row: "Output Queue",
212
+ colorKey: "audio.output.wait",
213
+ label: "Output queue",
214
+ description: "Derived from adjacent audio-output wait lifecycle events"
215
+ },
216
+ {
217
+ startEventType: "audio.playback.started",
218
+ endEventType: "audio.playback.stopped",
219
+ row: "Playback",
220
+ colorKey: "playback",
221
+ label: "Playback",
222
+ description: "Derived from adjacent playback start and playback stop events"
223
+ }
224
+ ];
225
+ const SPAN_RULE_BY_START = new Map(SPAN_RULES.map((rule) => [rule.startEventType, rule]));
226
+ getPersistedTelescopeSourceId() ?? "";
227
+ let traces = [];
228
+ let recording = {
229
+ alignmentOffsetMs: 0
230
+ };
231
+ let uploadInFlight = false;
232
+ let playbackPositionMs = 0;
233
+ let playbackPlaying = false;
234
+ let viewportStartMs = null;
235
+ let viewportEndMs = null;
236
+ let fileInputEl = null;
237
+ let copyLatencyState = "idle";
238
+ let playbackAudioContext = null;
239
+ let playbackSourceNode = null;
240
+ let playbackStartedAtMs = null;
241
+ let playbackStartedAtContextTime = null;
242
+ const conversationId = derived(() => page.params.conversationId);
243
+ const timelineOriginMs = derived(() => {
244
+ let min = Number.POSITIVE_INFINITY;
245
+ for (const trace of traces) {
246
+ if (typeof trace.atMs !== "number" || !Number.isFinite(trace.atMs)) continue;
247
+ min = Math.min(min, trace.atMs);
248
+ }
249
+ if (Number.isFinite(min)) return min;
250
+ return Number.isFinite(min) ? min : 0;
251
+ });
252
+ const callSegments = derived(() => buildCallLatencySegments(traces));
253
+ const latencyTraceCount = derived(() => traces.length);
254
+ const timelineRows = derived(() => {
255
+ const grouped = /* @__PURE__ */ new Map();
256
+ for (const segment of callSegments()) {
257
+ const items = grouped.get(segment.row);
258
+ if (items) items.push(segment);
259
+ else grouped.set(segment.row, [segment]);
260
+ }
261
+ return [...ROW_DEFS].reverse().map((row) => ({ label: row.label, segments: grouped.get(row.label) ?? [] })).filter((row) => row.segments.length > 0);
262
+ });
263
+ const guideLines = derived(() => buildGuideLines(timelineRows()));
264
+ const recordingStartMs = derived(() => {
265
+ return null;
266
+ });
267
+ const timelinePlotHeightPx = derived(() => TIMELINE_RULER_HEIGHT_PX + timelineRows().length * TIMELINE_ROW_HEIGHT_PX + WAVEFORM_ROW_HEIGHT_PX + TIMELINE_SCALE_HEIGHT_PX);
268
+ const playbackAbsoluteMs = derived(() => {
269
+ if (recordingStartMs() == null) return null;
270
+ return recordingStartMs() + playbackPositionMs;
271
+ });
272
+ const playbackCursor = derived(() => {
273
+ const absoluteMs = playbackAbsoluteMs();
274
+ if (absoluteMs == null || viewportStartMs == null || viewportEndMs == null) return null;
275
+ const durationMs = viewportEndMs - viewportStartMs;
276
+ if (!Number.isFinite(durationMs) || durationMs <= 0) return null;
277
+ if (absoluteMs < viewportStartMs || absoluteMs > viewportEndMs) return null;
278
+ return {
279
+ leftPercent: clamp((absoluteMs - viewportStartMs) / durationMs * 100, 0, 100),
280
+ heightPx: timelinePlotHeightPx()
281
+ };
282
+ });
283
+ const contentExtent = derived(() => {
284
+ let min = Number.POSITIVE_INFINITY;
285
+ let max = Number.NEGATIVE_INFINITY;
286
+ for (const segment of callSegments()) {
287
+ min = Math.min(min, segment.start);
288
+ max = Math.max(max, segment.end);
289
+ }
290
+ if (!Number.isFinite(min) || !Number.isFinite(max) || max <= min) return null;
291
+ return { min, max };
292
+ });
293
+ const viewportDurationMs = derived(() => {
294
+ if (viewportStartMs == null || viewportEndMs == null) return null;
295
+ const duration = viewportEndMs - viewportStartMs;
296
+ return duration > 0 ? duration : null;
297
+ });
298
+ const visibleTicks = derived(() => {
299
+ if (viewportStartMs == null || viewportEndMs == null) return [];
300
+ return buildTicks(viewportStartMs, viewportEndMs, timelineOriginMs());
301
+ });
302
+ const visibleTickStepMs = derived(() => {
303
+ if (viewportStartMs == null || viewportEndMs == null) return null;
304
+ const durationMs = viewportEndMs - viewportStartMs;
305
+ if (!Number.isFinite(durationMs) || durationMs <= 0) return null;
306
+ return chooseTickStep(durationMs);
307
+ });
308
+ onDestroy(() => {
309
+ stopPlayback(false);
310
+ void closePlaybackAudioContext();
311
+ });
312
+ function normalizeNonEmptyString(value) {
313
+ if (typeof value !== "string") return null;
314
+ const trimmed = value.trim();
315
+ return trimmed ? trimmed : null;
316
+ }
317
+ function clampByte(value) {
318
+ return Math.max(0, Math.min(255, Math.round(value)));
319
+ }
320
+ function clamp(value, min, max) {
321
+ return Math.min(max, Math.max(min, value));
322
+ }
323
+ function tintHex(hex, amount) {
324
+ const raw = (hex ?? "").trim().replace(/^#/, "");
325
+ const expanded = raw.length === 3 ? raw.split("").map((part) => `${part}${part}`).join("") : raw;
326
+ if (expanded.length !== 6 || !/^[0-9a-fA-F]+$/.test(expanded)) return hex;
327
+ const r = parseInt(expanded.slice(0, 2), 16);
328
+ const g = parseInt(expanded.slice(2, 4), 16);
329
+ const b = parseInt(expanded.slice(4, 6), 16);
330
+ const t = Math.abs(Math.max(-1, Math.min(1, amount)));
331
+ const target = amount >= 0 ? 255 : 0;
332
+ 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")}`;
333
+ }
334
+ function fmtSignedMs(value) {
335
+ if (!Number.isFinite(value)) return "0 ms";
336
+ const rounded = Math.round(value);
337
+ if (rounded === 0) return "0 ms";
338
+ return `${rounded > 0 ? "+" : ""}${rounded} ms`;
339
+ }
340
+ function formatRelativeTime(offsetMs) {
341
+ if (!Number.isFinite(offsetMs)) return "—";
342
+ const sign = offsetMs < 0 ? "-" : "";
343
+ const abs = Math.abs(offsetMs);
344
+ if (abs < 1e4) return `${sign}${(abs / 1e3).toFixed(1)}s`;
345
+ if (abs < 6e4) return `${sign}${(abs / 1e3).toFixed(2)}s`;
346
+ const totalSeconds = abs / 1e3;
347
+ const minutes = Math.floor(totalSeconds / 60);
348
+ const seconds = totalSeconds - minutes * 60;
349
+ return `${sign}${minutes}:${seconds.toFixed(1).padStart(4, "0")}`;
350
+ }
351
+ function formatScaleStep(valueMs) {
352
+ if (valueMs == null || !Number.isFinite(valueMs) || valueMs <= 0) return "—";
353
+ if (valueMs < 1e3) return `${Math.round(valueMs)} ms`;
354
+ if (valueMs < 1e4) return `${Math.round(valueMs)} ms (${(valueMs / 1e3).toFixed(1)} s)`;
355
+ return `${Math.round(valueMs)} ms (${(valueMs / 1e3).toFixed(2)} s)`;
356
+ }
357
+ function safeJson(value) {
358
+ try {
359
+ return JSON.stringify(value ?? null, null, 2);
360
+ } catch {
361
+ return String(value);
362
+ }
363
+ }
364
+ async function copyLatencyStream() {
365
+ try {
366
+ await navigator.clipboard.writeText(safeJson(traces));
367
+ copyLatencyState = "ok";
368
+ window.setTimeout(
369
+ () => {
370
+ copyLatencyState = "idle";
371
+ },
372
+ 2e3
373
+ );
374
+ } catch (reason) {
375
+ console.error("Failed to copy latency stream", reason);
376
+ copyLatencyState = "error";
377
+ window.setTimeout(
378
+ () => {
379
+ copyLatencyState = "idle";
380
+ },
381
+ 3e3
382
+ );
383
+ }
384
+ }
385
+ function describeTrace(trace) {
386
+ const time = typeof trace.createdAt === "number" && Number.isFinite(trace.createdAt) ? new Date(trace.createdAt).toLocaleTimeString() : "unknown time";
387
+ if (trace.traceType === "LATENCY") {
388
+ return `Latency • #${trace.seq ?? "?"} • ${trace.eventType ?? "unknown"} • ${time}`;
389
+ }
390
+ if (trace.traceType === "CONVERSATIONAL") {
391
+ return `Conversational • ${trace.eventName} • ${time}`;
392
+ }
393
+ if (trace.traceType === "STEP") {
394
+ return `Step • ${trace.name ?? "unknown"} • ${time}`;
395
+ }
396
+ return `API • ${trace.operationName} • ${time}`;
397
+ }
398
+ function latencyPayload(trace) {
399
+ const payload = trace.payload;
400
+ return payload && typeof payload === "object" && !Array.isArray(payload) ? payload : {};
401
+ }
402
+ function latencyRow(eventType) {
403
+ if (eventType === "call.started" || eventType === "call.ended") return "Call";
404
+ if (eventType.startsWith("vad.")) return "VAD";
405
+ if (eventType.startsWith("stt.")) return "STT";
406
+ if (eventType === "speech.created") return "Trigger";
407
+ if (eventType.startsWith("reply.pending.")) return "Reply Pending";
408
+ if (eventType.startsWith("llm.connect_tcp.") || eventType.startsWith("llm.start_tls.")) {
409
+ return "LLM Transport";
410
+ }
411
+ if (eventType === "llm.requested" || eventType.startsWith("llm.wait.")) return "LLM Wait";
412
+ if (eventType === "llm.first_token" || eventType === "llm.completed" || eventType.startsWith("llm.stream.")) {
413
+ return "LLM Stream";
414
+ }
415
+ if (eventType.startsWith("tts.text.")) return "TTS Text";
416
+ if (eventType.startsWith("tts.provider.")) return "Provider";
417
+ if (eventType === "tts.audio.first_received" || eventType === "tts.audio.last_received") {
418
+ return "Provider";
419
+ }
420
+ if (eventType.startsWith("tts.decode.")) return "Decode";
421
+ if (eventType.startsWith("audio.output.wait.")) return "Output Queue";
422
+ if (eventType === "interruption.detected" || eventType === "audio.playback.interrupted") {
423
+ return "Interruptions";
424
+ }
425
+ if (eventType.startsWith("audio.playback.")) return "Playback";
426
+ return "Other";
427
+ }
428
+ function latencyColorKey(eventType) {
429
+ if (eventType === "call.started" || eventType === "call.ended") return "call";
430
+ if (eventType.startsWith("vad.")) return "vad";
431
+ if (eventType.startsWith("stt.")) return "stt";
432
+ if (eventType === "speech.created") return "trigger";
433
+ if (eventType.startsWith("reply.pending.")) return "reply.pending";
434
+ if (eventType.startsWith("llm.connect_tcp.") || eventType.startsWith("llm.start_tls.")) {
435
+ return "llm.transport";
436
+ }
437
+ if (eventType === "llm.requested" || eventType.startsWith("llm.wait.")) return "llm.wait";
438
+ if (eventType === "llm.first_token" || eventType === "llm.completed" || eventType.startsWith("llm.stream.")) {
439
+ return "llm.stream";
440
+ }
441
+ if (eventType.startsWith("tts.text.")) return "tts.text";
442
+ if (eventType.startsWith("tts.provider.")) return "tts.provider.lifecycle";
443
+ if (eventType === "tts.audio.first_received" || eventType === "tts.audio.last_received") {
444
+ return "tts.provider";
445
+ }
446
+ if (eventType.startsWith("tts.decode.")) return "tts.decode";
447
+ if (eventType.startsWith("audio.output.wait.")) return "audio.output.wait";
448
+ if (eventType === "interruption.detected" || eventType === "audio.playback.interrupted") {
449
+ return "interruption";
450
+ }
451
+ if (eventType.startsWith("audio.playback.")) return "playback";
452
+ return "other";
453
+ }
454
+ function latencyLabel(trace) {
455
+ switch (trace.eventType) {
456
+ case "call.started":
457
+ return "Call started";
458
+ case "call.ended":
459
+ return "Call ended";
460
+ case "vad.activated":
461
+ return "VAD activated";
462
+ case "vad.deactivated":
463
+ return "VAD deactivated";
464
+ case "stt.started":
465
+ return "STT start";
466
+ case "stt.interim":
467
+ return "STT interim";
468
+ case "stt.final":
469
+ return "STT final";
470
+ case "speech.created":
471
+ return "Speech created";
472
+ case "reply.pending.started":
473
+ return "Reply pending start";
474
+ case "reply.pending.completed":
475
+ return "Reply pending end";
476
+ case "llm.connect_tcp.started":
477
+ return "Connect TCP start";
478
+ case "llm.connect_tcp.completed":
479
+ return "Connect TCP end";
480
+ case "llm.connect_tcp.failed":
481
+ return "Connect TCP failed";
482
+ case "llm.start_tls.started":
483
+ return "TLS start";
484
+ case "llm.start_tls.completed":
485
+ return "TLS end";
486
+ case "llm.start_tls.failed":
487
+ return "TLS failed";
488
+ case "llm.wait.started":
489
+ return "LLM wait start";
490
+ case "llm.wait.completed":
491
+ return "LLM wait end";
492
+ case "llm.stream.started":
493
+ return "LLM stream start";
494
+ case "llm.stream.completed":
495
+ return "LLM stream end";
496
+ case "llm.requested":
497
+ return "LLM request";
498
+ case "llm.first_token":
499
+ return "LLM first token";
500
+ case "llm.completed":
501
+ return "LLM end";
502
+ case "tts.text.first_sent":
503
+ return "TTS first text";
504
+ case "tts.text.completed":
505
+ return "TTS text end";
506
+ case "tts.provider.started":
507
+ return "Provider start";
508
+ case "tts.provider.completed":
509
+ return "Provider end";
510
+ case "tts.audio.first_received":
511
+ return "Provider audio received";
512
+ case "tts.audio.last_received":
513
+ return "Provider audio end";
514
+ case "tts.decode.started":
515
+ return "Decode start";
516
+ case "tts.decode.completed":
517
+ return "Decode end";
518
+ case "audio.output.wait.started":
519
+ return "Output queue start";
520
+ case "audio.output.wait.completed":
521
+ return "Output queue end";
522
+ case "interruption.detected":
523
+ return "Interruption detected";
524
+ case "audio.playback.started":
525
+ return "Playback start";
526
+ case "audio.playback.stopped":
527
+ return "Playback stop";
528
+ case "audio.playback.ended":
529
+ return "Playback end";
530
+ case "audio.playback.interrupted":
531
+ return "Playback interrupted";
532
+ default:
533
+ return trace.eventType;
534
+ }
535
+ }
536
+ function latencyDescription(trace) {
537
+ const payload = latencyPayload(trace);
538
+ switch (trace.eventType) {
539
+ case "call.started":
540
+ return "Call-scoped latency stream started";
541
+ case "call.ended":
542
+ return "Call-scoped latency stream ended";
543
+ case "vad.activated":
544
+ return "Raw VAD activation event";
545
+ case "vad.deactivated":
546
+ return "Raw VAD deactivation event";
547
+ case "stt.started":
548
+ return "Speech-to-text detected speech start";
549
+ case "stt.interim":
550
+ return normalizeNonEmptyString(payload.originalType) === "preflight_transcript" ? "Speech-to-text preflight transcript" : "Speech-to-text interim transcript";
551
+ case "stt.final":
552
+ return "Speech-to-text final transcript";
553
+ case "speech.created":
554
+ return "LiveKit created a speech handle";
555
+ case "reply.pending.started":
556
+ return "Reply generation was committed, but downstream generation has not started yet";
557
+ case "reply.pending.completed":
558
+ return "Reply generation moved from pending into the LLM request phase";
559
+ case "llm.connect_tcp.started":
560
+ return "httpcore started opening a new TCP connection for the LLM request";
561
+ case "llm.connect_tcp.completed":
562
+ return "httpcore finished opening a new TCP connection for the LLM request";
563
+ case "llm.connect_tcp.failed":
564
+ return "httpcore failed while opening a new TCP connection for the LLM request";
565
+ case "llm.start_tls.started":
566
+ return "httpcore started TLS negotiation for the LLM request";
567
+ case "llm.start_tls.completed":
568
+ return "httpcore finished TLS negotiation for the LLM request";
569
+ case "llm.start_tls.failed":
570
+ return "httpcore failed during TLS negotiation for the LLM request";
571
+ case "llm.wait.started":
572
+ return "LLM request is in flight and waiting for the first token";
573
+ case "llm.wait.completed":
574
+ return "The LLM wait phase ended when the first token arrived";
575
+ case "llm.stream.started":
576
+ return "LLM streaming phase started";
577
+ case "llm.stream.completed":
578
+ return "LLM streaming phase ended";
579
+ case "llm.requested":
580
+ return "AnyVan received an LLM request";
581
+ case "llm.first_token":
582
+ return "First LLM token received";
583
+ case "llm.completed":
584
+ return "LLM streaming completed";
585
+ case "tts.text.first_sent":
586
+ return "First text chunk sent to the TTS provider";
587
+ case "tts.text.completed":
588
+ return "Last non-empty text chunk observed for this TTS stream";
589
+ case "tts.provider.started":
590
+ return "Provider lifecycle started when the first non-empty TTS text chunk was sent";
591
+ case "tts.provider.completed":
592
+ return "Provider lifecycle ended when the provider stream reported completion";
593
+ case "tts.audio.first_received":
594
+ return "First audio chunk received from the TTS provider";
595
+ case "tts.audio.last_received":
596
+ return "Last audio chunk received from the TTS provider";
597
+ case "tts.decode.started":
598
+ return "First provider audio bytes were handed into the local decode path";
599
+ case "tts.decode.completed":
600
+ return "The first decoded audio frame left the local decode path";
601
+ case "audio.output.wait.started":
602
+ return "The first local audio frame was handed to the LiveKit audio output";
603
+ case "audio.output.wait.completed":
604
+ return "The audio-output wait phase ended when low-level playback actually started";
605
+ case "interruption.detected":
606
+ return "User speech overlapped active playback; this does not guarantee playback stopped";
607
+ case "audio.playback.started":
608
+ return "First played audio frame";
609
+ case "audio.playback.stopped":
610
+ return "Playback lifecycle ended on the Playback row";
611
+ case "audio.playback.ended":
612
+ return "Audio playback finished normally";
613
+ case "audio.playback.interrupted":
614
+ return "Audio playback ended because the output buffer was interrupted";
615
+ default:
616
+ return null;
617
+ }
618
+ }
619
+ function latencyText(trace) {
620
+ const payload = latencyPayload(trace);
621
+ return normalizeNonEmptyString(payload.text);
622
+ }
623
+ function makeSegment(input) {
624
+ return {
625
+ id: input.id,
626
+ row: input.row,
627
+ start: input.start,
628
+ end: input.end,
629
+ durationMs: Math.max(0, input.end - input.start),
630
+ colorKey: input.colorKey,
631
+ label: input.label,
632
+ description: input.description ?? null,
633
+ explain: input.explain ?? null,
634
+ text: input.text ?? null,
635
+ traceLabel: input.traceLabel
636
+ };
637
+ }
638
+ function compareLatencyTraces(a, b) {
639
+ return a.seq - b.seq || a.atMs - b.atMs || (a.createdAt ?? 0) - (b.createdAt ?? 0) || String(a.traceId ?? "").localeCompare(String(b.traceId ?? ""));
640
+ }
641
+ function findNextLatencyEvent(events, startIndex, match, stop) {
642
+ for (let index = startIndex + 1; index < events.length; index += 1) {
643
+ const next = events[index];
644
+ if (stop(next)) return null;
645
+ if (match(next)) return next;
646
+ }
647
+ return null;
648
+ }
649
+ function buildDerivedSegments(events) {
650
+ const built = [];
651
+ events.forEach((trace, index) => {
652
+ const rule = SPAN_RULE_BY_START.get(trace.eventType);
653
+ if (!rule) return;
654
+ const next = findNextLatencyEvent(events, index, (candidate) => candidate.eventType === rule.endEventType, (candidate) => candidate.eventType === rule.startEventType);
655
+ if (!next || next.atMs < trace.atMs) return;
656
+ built.push(makeSegment({
657
+ id: `derived:${rule.row.toLowerCase().replaceAll(" ", "_")}:${trace.seq}:${next.seq}`,
658
+ row: rule.row,
659
+ start: trace.atMs,
660
+ end: next.atMs,
661
+ colorKey: rule.colorKey,
662
+ label: rule.label,
663
+ description: rule.description,
664
+ traceLabel: describeTrace(trace)
665
+ }));
666
+ });
667
+ return built;
668
+ }
669
+ function buildCallLatencySegments(input) {
670
+ const events = input.slice().filter((trace) => typeof trace.atMs === "number" && Number.isFinite(trace.atMs) && typeof trace.seq === "number" && Number.isFinite(trace.seq)).sort(compareLatencyTraces);
671
+ const pointSegments = events.map((trace, index) => makeSegment({
672
+ id: `point:${trace.traceId ?? trace.seq}:${index}`,
673
+ row: latencyRow(trace.eventType),
674
+ start: trace.atMs,
675
+ end: trace.atMs,
676
+ colorKey: latencyColorKey(trace.eventType),
677
+ label: latencyLabel(trace),
678
+ description: latencyDescription(trace),
679
+ text: latencyText(trace),
680
+ traceLabel: describeTrace(trace)
681
+ }));
682
+ const derivedSegments = buildDerivedSegments(events);
683
+ 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));
684
+ }
685
+ function segmentStyle(segment) {
686
+ if (viewportStartMs == null || viewportEndMs == null) return null;
687
+ const duration = viewportEndMs - viewportStartMs;
688
+ if (!Number.isFinite(duration) || duration <= 0) return null;
689
+ const fill = COLOR_BY_KEY[segment.colorKey] ?? BOSUN_COLORS.gray;
690
+ const border = tintHex(fill, -0.25);
691
+ if (segment.end === segment.start) {
692
+ if (segment.start < viewportStartMs || segment.start > viewportEndMs) return null;
693
+ const pointPercent = clamp((segment.start - viewportStartMs) / duration * 100, 0, 100);
694
+ return `left:calc(${pointPercent}% - 2px);width:4px;background:${fill};border-color:${border};`;
695
+ }
696
+ const visibleStart = Math.max(segment.start, viewportStartMs);
697
+ const visibleEnd = Math.min(segment.end, viewportEndMs);
698
+ if (visibleEnd < visibleStart) return null;
699
+ const leftPercent = (visibleStart - viewportStartMs) / duration * 100;
700
+ const widthPercent = (visibleEnd - visibleStart) / duration * 100;
701
+ return `left:${leftPercent}%;width:max(${widthPercent}%,2px);background:${fill};border-color:${border};`;
702
+ }
703
+ function guideLineStyle(guide) {
704
+ return `left:${guide.leftPercent}%;top:${guide.topPx}px;height:${guide.heightPx}px;border-color:${guide.color};opacity:${guide.opacity};`;
705
+ }
706
+ function buildGuideLines(rows) {
707
+ return [];
708
+ }
709
+ function chooseTickStep(durationMs) {
710
+ const approx = durationMs / 7;
711
+ const magnitude = 10 ** Math.floor(Math.log10(Math.max(1, approx)));
712
+ const normalized = approx / magnitude;
713
+ if (normalized <= 1) return 1 * magnitude;
714
+ if (normalized <= 2) return 2 * magnitude;
715
+ if (normalized <= 5) return 5 * magnitude;
716
+ return 10 * magnitude;
717
+ }
718
+ function buildTicks(startMs, endMs, originMs) {
719
+ const durationMs = endMs - startMs;
720
+ if (!Number.isFinite(durationMs) || durationMs <= 0) return [];
721
+ const stepMs = chooseTickStep(durationMs);
722
+ const firstTick = Math.ceil((startMs - originMs) / stepMs) * stepMs + originMs;
723
+ const ticks = [];
724
+ for (let tick = firstTick; tick <= endMs; tick += stepMs) {
725
+ const leftPercent = (tick - startMs) / durationMs * 100;
726
+ ticks.push({
727
+ time: tick,
728
+ leftPercent,
729
+ label: formatRelativeTime(tick - originMs)
730
+ });
731
+ }
732
+ return ticks;
733
+ }
734
+ async function closePlaybackAudioContext() {
735
+ const context = playbackAudioContext;
736
+ playbackAudioContext = null;
737
+ if (!context) return;
738
+ await context.close().catch(() => {
739
+ });
740
+ }
741
+ function getPlaybackPositionMs() {
742
+ const durationMs = getRecordingDurationMs();
743
+ if (playbackPlaying && playbackAudioContext && playbackStartedAtMs != null && playbackStartedAtContextTime != null) {
744
+ const elapsedMs = (playbackAudioContext.currentTime - playbackStartedAtContextTime) * 1e3;
745
+ const currentMs = playbackStartedAtMs + Math.max(0, elapsedMs);
746
+ return durationMs > 0 ? clamp(currentMs, 0, durationMs) : Math.max(0, currentMs);
747
+ }
748
+ return durationMs > 0 ? clamp(playbackPositionMs, 0, durationMs) : Math.max(0, playbackPositionMs);
749
+ }
750
+ function stopPlayback(preservePosition = true) {
751
+ if (preservePosition) {
752
+ playbackPositionMs = getPlaybackPositionMs();
753
+ }
754
+ const source = playbackSourceNode;
755
+ playbackSourceNode = null;
756
+ playbackStartedAtMs = null;
757
+ playbackStartedAtContextTime = null;
758
+ playbackPlaying = false;
759
+ if (!source) return;
760
+ source.onended = null;
761
+ try {
762
+ source.stop();
763
+ } catch {
764
+ }
765
+ source.disconnect();
766
+ }
767
+ function getRecordingDurationMs() {
768
+ return 0;
769
+ }
770
+ async function togglePlayback() {
771
+ return;
772
+ }
773
+ function fitViewport(markDirty = true) {
774
+ const extent = contentExtent();
775
+ if (!extent) return;
776
+ const paddingMs = Math.max(500, (extent.max - extent.min) * 0.05);
777
+ viewportStartMs = extent.min - paddingMs;
778
+ viewportEndMs = extent.max + paddingMs;
779
+ }
780
+ function clampViewport(startMs, endMs) {
781
+ const extent = contentExtent();
782
+ if (!extent) return { startMs, endMs };
783
+ const durationMs = endMs - startMs;
784
+ if (durationMs <= 0) return { startMs, endMs };
785
+ const marginMs = Math.max(1e3, durationMs * 0.25);
786
+ const minAllowed = extent.min - marginMs;
787
+ const maxAllowed = extent.max + marginMs;
788
+ if (durationMs >= maxAllowed - minAllowed) {
789
+ return { startMs: minAllowed, endMs: maxAllowed };
790
+ }
791
+ if (startMs < minAllowed) {
792
+ endMs += minAllowed - startMs;
793
+ startMs = minAllowed;
794
+ }
795
+ if (endMs > maxAllowed) {
796
+ startMs -= endMs - maxAllowed;
797
+ endMs = maxAllowed;
798
+ }
799
+ return { startMs, endMs };
800
+ }
801
+ function setViewport(startMs, endMs) {
802
+ if (!Number.isFinite(startMs) || !Number.isFinite(endMs) || endMs <= startMs) return;
803
+ const next = clampViewport(startMs, endMs);
804
+ viewportStartMs = next.startMs;
805
+ viewportEndMs = next.endMs;
806
+ }
807
+ function zoomViewport(factor, focusRatio = 0.5) {
808
+ if (viewportStartMs == null || viewportEndMs == null) return;
809
+ const currentDuration = viewportEndMs - viewportStartMs;
810
+ if (!Number.isFinite(currentDuration) || currentDuration <= 0) return;
811
+ const extent = contentExtent();
812
+ const contentDuration = extent ? extent.max - extent.min : currentDuration;
813
+ const minDuration = Math.min(100, currentDuration);
814
+ const maxDuration = Math.max(contentDuration + Math.max(2e3, contentDuration * 0.1), 5e3);
815
+ const nextDuration = clamp(currentDuration * factor, minDuration, maxDuration);
816
+ const nextFocusRatio = clamp(focusRatio, 0, 1);
817
+ const focusMs = viewportStartMs + currentDuration * nextFocusRatio;
818
+ const nextStartMs = focusMs - nextDuration * nextFocusRatio;
819
+ setViewport(nextStartMs, nextStartMs + nextDuration);
820
+ }
821
+ async function resetAlignment() {
822
+ return;
823
+ }
824
+ $$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 `);
825
+ if (conversationId()) {
826
+ $$renderer2.push("<!--[0-->");
827
+ $$renderer2.push(`<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200">${escape_html(conversationId())}</span>`);
828
+ } else {
829
+ $$renderer2.push("<!--[-1-->");
830
+ }
831
+ $$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> `);
832
+ {
833
+ $$renderer2.push("<!--[-1-->");
834
+ }
835
+ $$renderer2.push(`<!--]--> `);
836
+ if (viewportStartMs != null && viewportEndMs != null) {
837
+ $$renderer2.push("<!--[0-->");
838
+ $$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>`);
839
+ } else {
840
+ $$renderer2.push("<!--[-1-->");
841
+ }
842
+ $$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"/> `);
843
+ Button($$renderer2, {
844
+ variant: "secondary",
845
+ size: "small",
846
+ disabled: uploadInFlight,
847
+ onclick: () => fileInputEl?.click(),
848
+ children: ($$renderer3) => {
849
+ $$renderer3.push(`<!---->${escape_html("Upload WAV")}`);
850
+ },
851
+ $$slots: { default: true }
852
+ });
853
+ $$renderer2.push(`<!----> `);
854
+ Button($$renderer2, {
855
+ variant: "secondary",
856
+ size: "small",
857
+ disabled: true,
858
+ onclick: () => void togglePlayback(),
859
+ children: ($$renderer3) => {
860
+ $$renderer3.push(`<!---->${escape_html(playbackPlaying ? "Pause" : "Play")}`);
861
+ },
862
+ $$slots: { default: true }
863
+ });
864
+ $$renderer2.push(`<!----> `);
865
+ Button($$renderer2, {
866
+ variant: "secondary",
867
+ size: "small",
868
+ disabled: viewportDurationMs() == null,
869
+ onclick: () => zoomViewport(0.8),
870
+ children: ($$renderer3) => {
871
+ $$renderer3.push(`<!---->Zoom in`);
872
+ },
873
+ $$slots: { default: true }
874
+ });
875
+ $$renderer2.push(`<!----> `);
876
+ Button($$renderer2, {
877
+ variant: "secondary",
878
+ size: "small",
879
+ disabled: viewportDurationMs() == null,
880
+ onclick: () => zoomViewport(1.25),
881
+ children: ($$renderer3) => {
882
+ $$renderer3.push(`<!---->Zoom out`);
883
+ },
884
+ $$slots: { default: true }
885
+ });
886
+ $$renderer2.push(`<!----> `);
887
+ Button($$renderer2, {
888
+ variant: "secondary",
889
+ size: "small",
890
+ disabled: !contentExtent(),
891
+ onclick: () => fitViewport(true),
892
+ children: ($$renderer3) => {
893
+ $$renderer3.push(`<!---->Fit call`);
894
+ },
895
+ $$slots: { default: true }
896
+ });
897
+ $$renderer2.push(`<!----> `);
898
+ Button($$renderer2, {
899
+ variant: "secondary",
900
+ size: "small",
901
+ disabled: true,
902
+ onclick: resetAlignment,
903
+ children: ($$renderer3) => {
904
+ $$renderer3.push(`<!---->Reset alignment`);
905
+ },
906
+ $$slots: { default: true }
907
+ });
908
+ $$renderer2.push(`<!----> `);
909
+ Button($$renderer2, {
910
+ variant: "secondary",
911
+ size: "small",
912
+ disabled: !traces.length,
913
+ onclick: copyLatencyStream,
914
+ children: ($$renderer3) => {
915
+ $$renderer3.push(`<!---->${escape_html(copyLatencyState === "ok" ? "Copied" : copyLatencyState === "error" ? "Copy failed" : "Copy latency stream")}`);
916
+ },
917
+ $$slots: { default: true }
918
+ });
919
+ $$renderer2.push(`<!----></div></div> `);
920
+ {
921
+ $$renderer2.push("<!--[-1-->");
922
+ }
923
+ $$renderer2.push(`<!--]--> `);
924
+ {
925
+ $$renderer2.push("<!--[-1-->");
926
+ }
927
+ $$renderer2.push(`<!--]--> `);
928
+ {
929
+ $$renderer2.push("<!--[-1-->");
930
+ }
931
+ $$renderer2.push(`<!--]--> `);
932
+ {
933
+ $$renderer2.push("<!--[-1-->");
934
+ }
935
+ $$renderer2.push(`<!--]--> `);
936
+ {
937
+ $$renderer2.push("<!--[-1-->");
938
+ }
939
+ $$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 bg-rc-gray-900/60 p-3"><div class="flex flex-wrap items-start justify-between gap-3"><div><div class="text-sm font-semibold text-rc-gray-100">Recording</div> `);
940
+ {
941
+ $$renderer2.push("<!--[-1-->");
942
+ $$renderer2.push(`<div class="mt-1 text-sm text-rc-gray-300">Upload a WAV recording to overlay the call waveform and persist it under this
943
+ project's \`data/\` folder.</div>`);
944
+ }
945
+ $$renderer2.push(`<!--]--></div> <div class="text-xs text-rc-gray-300"><div>Drag the latency chart to pan the viewport.</div> <div>Scroll anywhere in the timeline to zoom traces and waveform together.</div> <div>Click the waveform to move the playhead.</div> <div>Press Space to play or pause.</div> <div>Drag the waveform itself to align the audio against the traces.</div> `);
946
+ {
947
+ $$renderer2.push("<!--[-1-->");
948
+ }
949
+ $$renderer2.push(`<!--]--></div></div></div> <div class="rounded-md border border-rc-gray-650 bg-rc-gray-900/60 p-3"><div class="mb-3 flex items-center justify-between gap-3"><div class="text-sm font-semibold text-rc-gray-100">Call timeline</div> <div class="text-xs text-rc-gray-400">Shared x-axis for traces and waveform</div></div> `);
950
+ if (!callSegments().length) {
951
+ $$renderer2.push("<!--[1-->");
952
+ $$renderer2.push(`<div class="text-sm text-rc-gray-300">No latency events were found on this call.</div>`);
953
+ } else if (viewportStartMs == null || viewportEndMs == null) {
954
+ $$renderer2.push("<!--[2-->");
955
+ $$renderer2.push(`<div class="text-sm text-rc-gray-300">Preparing timeline…</div>`);
956
+ } else {
957
+ $$renderer2.push("<!--[-1-->");
958
+ $$renderer2.push(`<div class="grid grid-cols-[140px_minmax(0,1fr)] gap-x-3"><div class="flex flex-col"><div class="h-8"></div> <!--[-->`);
959
+ const each_array = ensure_array_like(timelineRows());
960
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
961
+ let row = each_array[$$index];
962
+ $$renderer2.push(`<div class="flex h-10 items-center text-xs text-rc-gray-300">${escape_html(row.label)}</div>`);
963
+ }
964
+ $$renderer2.push(`<!--]--> <div class="flex h-40 items-center text-xs text-rc-gray-300">Waveform</div> <div class="flex h-8 items-center text-xs text-rc-gray-300">Scale</div></div> <div class="relative"><div class="pointer-events-none absolute inset-0 z-10 overflow-hidden"><!--[-->`);
965
+ const each_array_1 = ensure_array_like(guideLines());
966
+ for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
967
+ let guide = each_array_1[$$index_1];
968
+ $$renderer2.push(`<div class="absolute -translate-x-1/2 border-l border-dashed"${attr_style(guideLineStyle(guide))}></div>`);
969
+ }
970
+ $$renderer2.push(`<!--]--> `);
971
+ if (playbackCursor()) {
972
+ $$renderer2.push("<!--[0-->");
973
+ $$renderer2.push(`<div class="absolute top-0 -translate-x-1/2 border-l-2 border-rc-green-200/90"${attr_style(`left:${playbackCursor().leftPercent}%;height:${playbackCursor().heightPx}px;`)}></div> <div class="absolute top-1 h-2 w-2 -translate-x-1/2 rounded-full bg-rc-green-200"${attr_style(`left:${playbackCursor().leftPercent}%;`)}></div>`);
974
+ } else {
975
+ $$renderer2.push("<!--[-1-->");
976
+ }
977
+ $$renderer2.push(`<!--]--></div> <div class="relative z-0 h-8 overflow-hidden rounded-t border border-b-0 border-rc-gray-700/60 bg-rc-gray-800/30"><!--[-->`);
978
+ const each_array_2 = ensure_array_like(visibleTicks());
979
+ for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
980
+ let tick = each_array_2[$$index_2];
981
+ $$renderer2.push(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/70"${attr_style(`left:${tick.leftPercent}%;`)}></div> <div class="absolute bottom-1 -translate-x-1/2 whitespace-nowrap text-[11px] text-rc-gray-400"${attr_style(`left:${tick.leftPercent}%;`)}>${escape_html(tick.label)}</div>`);
982
+ }
983
+ $$renderer2.push(`<!--]--></div> <!--[-->`);
984
+ const each_array_3 = ensure_array_like(timelineRows());
985
+ for (let $$index_5 = 0, $$length = each_array_3.length; $$index_5 < $$length; $$index_5++) {
986
+ let row = each_array_3[$$index_5];
987
+ $$renderer2.push(`<div class="relative z-0 h-10 overflow-hidden border-x border-t border-rc-gray-700/60 bg-rc-gray-800/20"><!--[-->`);
988
+ const each_array_4 = ensure_array_like(visibleTicks());
989
+ for (let $$index_3 = 0, $$length2 = each_array_4.length; $$index_3 < $$length2; $$index_3++) {
990
+ let tick = each_array_4[$$index_3];
991
+ $$renderer2.push(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"${attr_style(`left:${tick.leftPercent}%;`)}></div>`);
992
+ }
993
+ $$renderer2.push(`<!--]--> <!--[-->`);
994
+ const each_array_5 = ensure_array_like(row.segments);
995
+ for (let $$index_4 = 0, $$length2 = each_array_5.length; $$index_4 < $$length2; $$index_4++) {
996
+ let segment = each_array_5[$$index_4];
997
+ const style = segmentStyle(segment);
998
+ if (style) {
999
+ $$renderer2.push("<!--[0-->");
1000
+ $$renderer2.push(`<div class="absolute top-1/2 h-5 -translate-y-1/2 rounded border shadow-[0_0_0_1px_rgba(0,0,0,0.12)]"${attr_style(style)}></div>`);
1001
+ } else {
1002
+ $$renderer2.push("<!--[-1-->");
1003
+ }
1004
+ $$renderer2.push(`<!--]-->`);
1005
+ }
1006
+ $$renderer2.push(`<!--]--></div>`);
1007
+ }
1008
+ $$renderer2.push(`<!--]--> <div class="relative z-0 h-40 overflow-hidden border-x border-t border-rc-gray-700/60 bg-rc-gray-800/30">`);
1009
+ {
1010
+ $$renderer2.push("<!--[0-->");
1011
+ $$renderer2.push(`<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Upload a WAV file to render the call waveform here.</div>`);
1012
+ }
1013
+ $$renderer2.push(`<!--]--> <!--[-->`);
1014
+ const each_array_6 = ensure_array_like(visibleTicks());
1015
+ for (let $$index_6 = 0, $$length = each_array_6.length; $$index_6 < $$length; $$index_6++) {
1016
+ let tick = each_array_6[$$index_6];
1017
+ $$renderer2.push(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"${attr_style(`left:${tick.leftPercent}%;`)}></div>`);
1018
+ }
1019
+ $$renderer2.push(`<!--]--> `);
1020
+ {
1021
+ $$renderer2.push("<!--[-1-->");
1022
+ }
1023
+ $$renderer2.push(`<!--]--></div> <div class="relative z-0 h-8 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60 bg-rc-gray-800/25"><div class="absolute left-3 top-1/2 -translate-y-1/2 rounded bg-rc-gray-900/80 px-2 py-0.5 text-[11px] text-rc-gray-300">Grid: ${escape_html(formatScaleStep(visibleTickStepMs()))}</div> <!--[-->`);
1024
+ const each_array_7 = ensure_array_like(visibleTicks());
1025
+ for (let $$index_7 = 0, $$length = each_array_7.length; $$index_7 < $$length; $$index_7++) {
1026
+ let tick = each_array_7[$$index_7];
1027
+ $$renderer2.push(`<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"${attr_style(`left:${tick.leftPercent}%;`)}></div> <div class="absolute bottom-1 -translate-x-1/2 whitespace-nowrap text-[11px] text-rc-gray-400"${attr_style(`left:${tick.leftPercent}%;`)}>${escape_html(tick.label)}</div>`);
1028
+ }
1029
+ $$renderer2.push(`<!--]--></div></div></div>`);
1030
+ }
1031
+ $$renderer2.push(`<!--]--></div></div></div></div> `);
1032
+ {
1033
+ $$renderer2.push("<!--[-1-->");
1034
+ }
1035
+ $$renderer2.push(`<!--]-->`);
1036
+ });
1037
+ }
1038
+
1039
+ export { _page as default };
1040
+ //# sourceMappingURL=_page.svelte-BhU1G2ip.js.map