@recombine-ai/platform 0.5.0-test.0 → 0.6.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 (469) hide show
  1. package/README.md +0 -1
  2. package/build/agent/index.d.ts +0 -1
  3. package/build/agent/index.d.ts.map +1 -1
  4. package/build/agent/text-agent.d.ts +3 -4
  5. package/build/agent/text-agent.d.ts.map +1 -1
  6. package/build/agent/text-agent.js +1 -8
  7. package/build/agent/voice-agent.d.ts +3 -4
  8. package/build/agent/voice-agent.d.ts.map +1 -1
  9. package/build/agent/voice-agent.js +1 -8
  10. package/build/bosun/std-mocks/platform.d.ts.map +1 -1
  11. package/build/bosun/std-mocks/platform.js +0 -2
  12. package/build/bosun/test-agent.d.ts.map +1 -1
  13. package/build/bosun/test-agent.js +1 -2
  14. package/build/bosun-app/backend/server.js +1 -1
  15. package/build/bosun-app/backend/server.js.map +2 -2
  16. package/build/bosun-app/frontend/client/_app/immutable/assets/0.B5fEz2jr.css +1 -0
  17. package/build/bosun-app/frontend/client/_app/immutable/assets/0.B5fEz2jr.css.br +0 -0
  18. package/build/bosun-app/frontend/client/_app/immutable/assets/0.B5fEz2jr.css.gz +0 -0
  19. package/build/bosun-app/frontend/client/_app/immutable/chunks/9mOMnnWN.js +1 -0
  20. package/build/bosun-app/frontend/client/_app/immutable/chunks/9mOMnnWN.js.br +0 -0
  21. package/build/bosun-app/frontend/client/_app/immutable/chunks/9mOMnnWN.js.gz +0 -0
  22. package/build/bosun-app/frontend/client/_app/immutable/chunks/B0nqNj93.js +2 -0
  23. package/build/bosun-app/frontend/client/_app/immutable/chunks/B0nqNj93.js.br +0 -0
  24. package/build/bosun-app/frontend/client/_app/immutable/chunks/B0nqNj93.js.gz +0 -0
  25. package/build/bosun-app/frontend/client/_app/immutable/chunks/B1dhmiqQ.js +1 -0
  26. package/build/bosun-app/frontend/client/_app/immutable/chunks/B1dhmiqQ.js.br +0 -0
  27. package/build/bosun-app/frontend/client/_app/immutable/chunks/B1dhmiqQ.js.gz +0 -0
  28. package/build/bosun-app/frontend/client/_app/immutable/chunks/{B9e8MCJ2.js → B9pMb6OP.js} +1 -1
  29. package/build/bosun-app/frontend/client/_app/immutable/chunks/B9pMb6OP.js.br +0 -0
  30. package/build/bosun-app/frontend/client/_app/immutable/chunks/B9pMb6OP.js.gz +0 -0
  31. package/build/bosun-app/frontend/client/_app/immutable/chunks/{NwoUwoIi.js → BBk8_Xpk.js} +2 -2
  32. package/build/bosun-app/frontend/client/_app/immutable/chunks/BBk8_Xpk.js.br +0 -0
  33. package/build/bosun-app/frontend/client/_app/immutable/chunks/BBk8_Xpk.js.gz +0 -0
  34. package/build/bosun-app/frontend/client/_app/immutable/chunks/{BDIIq0ko.js → BEdAvgYp.js} +1 -1
  35. package/build/bosun-app/frontend/client/_app/immutable/chunks/BEdAvgYp.js.br +0 -0
  36. package/build/bosun-app/frontend/client/_app/immutable/chunks/BEdAvgYp.js.gz +0 -0
  37. package/build/bosun-app/frontend/client/_app/immutable/chunks/{DsRUoWL6.js → BJ9KKLWf.js} +1 -1
  38. package/build/bosun-app/frontend/client/_app/immutable/chunks/BJ9KKLWf.js.br +0 -0
  39. package/build/bosun-app/frontend/client/_app/immutable/chunks/BJ9KKLWf.js.gz +0 -0
  40. package/build/bosun-app/frontend/client/_app/immutable/chunks/{BZeEhZ9x.js → BQIf5msi.js} +1 -1
  41. package/build/bosun-app/frontend/client/_app/immutable/chunks/BQIf5msi.js.br +1 -0
  42. package/build/bosun-app/frontend/client/_app/immutable/chunks/BQIf5msi.js.gz +0 -0
  43. package/build/bosun-app/frontend/client/_app/immutable/chunks/{DOVgTfHj.js → BW6P0Ecp.js} +1 -1
  44. package/build/bosun-app/frontend/client/_app/immutable/chunks/BW6P0Ecp.js.br +0 -0
  45. package/build/bosun-app/frontend/client/_app/immutable/chunks/BW6P0Ecp.js.gz +0 -0
  46. package/build/bosun-app/frontend/client/_app/immutable/chunks/{D6r2pB3T.js → BcbX6huO.js} +1 -1
  47. package/build/bosun-app/frontend/client/_app/immutable/chunks/BcbX6huO.js.br +0 -0
  48. package/build/bosun-app/frontend/client/_app/immutable/chunks/BcbX6huO.js.gz +0 -0
  49. package/build/bosun-app/frontend/client/_app/immutable/chunks/BoX_BZZY.js +1 -0
  50. package/build/bosun-app/frontend/client/_app/immutable/chunks/BoX_BZZY.js.br +0 -0
  51. package/build/bosun-app/frontend/client/_app/immutable/chunks/BoX_BZZY.js.gz +0 -0
  52. package/build/bosun-app/frontend/client/_app/immutable/chunks/{BHwgmBN2.js → Bp8N7Z1t.js} +1 -1
  53. package/build/bosun-app/frontend/client/_app/immutable/chunks/Bp8N7Z1t.js.br +0 -0
  54. package/build/bosun-app/frontend/client/_app/immutable/chunks/Bp8N7Z1t.js.gz +0 -0
  55. package/build/bosun-app/frontend/client/_app/immutable/chunks/{9pOOTteE.js → C0rPkxmP.js} +1 -1
  56. package/build/bosun-app/frontend/client/_app/immutable/chunks/C0rPkxmP.js.br +0 -0
  57. package/build/bosun-app/frontend/client/_app/immutable/chunks/C0rPkxmP.js.gz +0 -0
  58. package/build/bosun-app/frontend/client/_app/immutable/chunks/C3cROXCy.js +9 -0
  59. package/build/bosun-app/frontend/client/_app/immutable/chunks/C3cROXCy.js.br +0 -0
  60. package/build/bosun-app/frontend/client/_app/immutable/chunks/C3cROXCy.js.gz +0 -0
  61. package/build/bosun-app/frontend/client/_app/immutable/chunks/{VLxbY_3V.js → C9yBjdYI.js} +1 -1
  62. package/build/bosun-app/frontend/client/_app/immutable/chunks/C9yBjdYI.js.br +0 -0
  63. package/build/bosun-app/frontend/client/_app/immutable/chunks/C9yBjdYI.js.gz +0 -0
  64. package/build/bosun-app/frontend/client/_app/immutable/chunks/{D24F_tet.js → CCYriF4C.js} +1 -1
  65. package/build/bosun-app/frontend/client/_app/immutable/chunks/CCYriF4C.js.br +0 -0
  66. package/build/bosun-app/frontend/client/_app/immutable/chunks/CCYriF4C.js.gz +0 -0
  67. package/build/bosun-app/frontend/client/_app/immutable/chunks/CHCMKZAC.js +1 -0
  68. package/build/bosun-app/frontend/client/_app/immutable/chunks/CHCMKZAC.js.br +0 -0
  69. package/build/bosun-app/frontend/client/_app/immutable/chunks/CHCMKZAC.js.gz +0 -0
  70. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR-uVjxM.js +1 -0
  71. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR-uVjxM.js.br +0 -0
  72. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR-uVjxM.js.gz +0 -0
  73. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR5IRTqC.js +1 -0
  74. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR5IRTqC.js.br +0 -0
  75. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR5IRTqC.js.gz +0 -0
  76. package/build/bosun-app/frontend/client/_app/immutable/chunks/{DJFKRYxi.js → ClLUwVGq.js} +1 -1
  77. package/build/bosun-app/frontend/client/_app/immutable/chunks/ClLUwVGq.js.br +0 -0
  78. package/build/bosun-app/frontend/client/_app/immutable/chunks/ClLUwVGq.js.gz +0 -0
  79. package/build/bosun-app/frontend/client/_app/immutable/chunks/{4OgEIyh1.js → DEz15oJb.js} +1 -1
  80. package/build/bosun-app/frontend/client/_app/immutable/chunks/DEz15oJb.js.br +0 -0
  81. package/build/bosun-app/frontend/client/_app/immutable/chunks/DEz15oJb.js.gz +0 -0
  82. package/build/bosun-app/frontend/client/_app/immutable/chunks/{BtJ1grIE.js → DJnDF3d9.js} +1 -1
  83. package/build/bosun-app/frontend/client/_app/immutable/chunks/DJnDF3d9.js.br +0 -0
  84. package/build/bosun-app/frontend/client/_app/immutable/chunks/DJnDF3d9.js.gz +0 -0
  85. package/build/bosun-app/frontend/client/_app/immutable/chunks/DLoeuYMu.js +1 -0
  86. package/build/bosun-app/frontend/client/_app/immutable/chunks/DLoeuYMu.js.br +0 -0
  87. package/build/bosun-app/frontend/client/_app/immutable/chunks/DLoeuYMu.js.gz +0 -0
  88. package/build/bosun-app/frontend/client/_app/immutable/chunks/{D35JKLYq.js → DNvczHUR.js} +1 -1
  89. package/build/bosun-app/frontend/client/_app/immutable/chunks/DNvczHUR.js.br +0 -0
  90. package/build/bosun-app/frontend/client/_app/immutable/chunks/DNvczHUR.js.gz +0 -0
  91. package/build/bosun-app/frontend/client/_app/immutable/chunks/DXsF11_5.js +1 -0
  92. package/build/bosun-app/frontend/client/_app/immutable/chunks/DXsF11_5.js.br +2 -0
  93. package/build/bosun-app/frontend/client/_app/immutable/chunks/DXsF11_5.js.gz +0 -0
  94. package/build/bosun-app/frontend/client/_app/immutable/chunks/D_AUB_Y_.js +3 -0
  95. package/build/bosun-app/frontend/client/_app/immutable/chunks/D_AUB_Y_.js.br +0 -0
  96. package/build/bosun-app/frontend/client/_app/immutable/chunks/D_AUB_Y_.js.gz +0 -0
  97. package/build/bosun-app/frontend/client/_app/immutable/chunks/Dba0_Upf.js +1 -0
  98. package/build/bosun-app/frontend/client/_app/immutable/chunks/Dba0_Upf.js.br +2 -0
  99. package/build/bosun-app/frontend/client/_app/immutable/chunks/Dba0_Upf.js.gz +0 -0
  100. package/build/bosun-app/frontend/client/_app/immutable/chunks/{FLx39vZ1.js → DjujL8K1.js} +1 -1
  101. package/build/bosun-app/frontend/client/_app/immutable/chunks/DjujL8K1.js.br +0 -0
  102. package/build/bosun-app/frontend/client/_app/immutable/chunks/DjujL8K1.js.gz +0 -0
  103. package/build/bosun-app/frontend/client/_app/immutable/chunks/{BHU9AXbn.js → DnMQeiTY.js} +1 -1
  104. package/build/bosun-app/frontend/client/_app/immutable/chunks/DnMQeiTY.js.br +0 -0
  105. package/build/bosun-app/frontend/client/_app/immutable/chunks/DnMQeiTY.js.gz +0 -0
  106. package/build/bosun-app/frontend/client/_app/immutable/chunks/DuQdgMax.js +1 -0
  107. package/build/bosun-app/frontend/client/_app/immutable/chunks/DuQdgMax.js.br +0 -0
  108. package/build/bosun-app/frontend/client/_app/immutable/chunks/DuQdgMax.js.gz +0 -0
  109. package/build/bosun-app/frontend/client/_app/immutable/chunks/Dz3Q78XL.js +1 -0
  110. package/build/bosun-app/frontend/client/_app/immutable/chunks/Dz3Q78XL.js.br +0 -0
  111. package/build/bosun-app/frontend/client/_app/immutable/chunks/Dz3Q78XL.js.gz +0 -0
  112. package/build/bosun-app/frontend/client/_app/immutable/chunks/{CINamuM5.js → DzLW1Mkz.js} +1 -1
  113. package/build/bosun-app/frontend/client/_app/immutable/chunks/DzLW1Mkz.js.br +0 -0
  114. package/build/bosun-app/frontend/client/_app/immutable/chunks/DzLW1Mkz.js.gz +0 -0
  115. package/build/bosun-app/frontend/client/_app/immutable/chunks/OERrxy3_.js +64 -0
  116. package/build/bosun-app/frontend/client/_app/immutable/chunks/OERrxy3_.js.br +0 -0
  117. package/build/bosun-app/frontend/client/_app/immutable/chunks/OERrxy3_.js.gz +0 -0
  118. package/build/bosun-app/frontend/client/_app/immutable/chunks/WoyQSrjz.js +1 -0
  119. package/build/bosun-app/frontend/client/_app/immutable/chunks/WoyQSrjz.js.br +0 -0
  120. package/build/bosun-app/frontend/client/_app/immutable/chunks/WoyQSrjz.js.gz +0 -0
  121. package/build/bosun-app/frontend/client/_app/immutable/chunks/ddC1NP9R.js +2 -0
  122. package/build/bosun-app/frontend/client/_app/immutable/chunks/ddC1NP9R.js.br +0 -0
  123. package/build/bosun-app/frontend/client/_app/immutable/chunks/ddC1NP9R.js.gz +0 -0
  124. package/build/bosun-app/frontend/client/_app/immutable/chunks/{Csai_DUZ.js → joiJcRPz.js} +1 -1
  125. package/build/bosun-app/frontend/client/_app/immutable/chunks/joiJcRPz.js.br +0 -0
  126. package/build/bosun-app/frontend/client/_app/immutable/chunks/joiJcRPz.js.gz +0 -0
  127. package/build/bosun-app/frontend/client/_app/immutable/chunks/{DSFEfk-V.js → ouMvMh56.js} +1 -1
  128. package/build/bosun-app/frontend/client/_app/immutable/chunks/ouMvMh56.js.br +0 -0
  129. package/build/bosun-app/frontend/client/_app/immutable/chunks/ouMvMh56.js.gz +0 -0
  130. package/build/bosun-app/frontend/client/_app/immutable/chunks/qiSVE_6c.js +1 -0
  131. package/build/bosun-app/frontend/client/_app/immutable/chunks/qiSVE_6c.js.br +0 -0
  132. package/build/bosun-app/frontend/client/_app/immutable/chunks/qiSVE_6c.js.gz +0 -0
  133. package/build/bosun-app/frontend/client/_app/immutable/chunks/{CkCJ1-zx.js → sKHuRf4Z.js} +1 -1
  134. package/build/bosun-app/frontend/client/_app/immutable/chunks/sKHuRf4Z.js.br +0 -0
  135. package/build/bosun-app/frontend/client/_app/immutable/chunks/sKHuRf4Z.js.gz +0 -0
  136. package/build/bosun-app/frontend/client/_app/immutable/entry/app.tlZ6ECO2.js +2 -0
  137. package/build/bosun-app/frontend/client/_app/immutable/entry/app.tlZ6ECO2.js.br +0 -0
  138. package/build/bosun-app/frontend/client/_app/immutable/entry/app.tlZ6ECO2.js.gz +0 -0
  139. package/build/bosun-app/frontend/client/_app/immutable/entry/start.CFPAx99R.js +1 -0
  140. package/build/bosun-app/frontend/client/_app/immutable/entry/start.CFPAx99R.js.br +0 -0
  141. package/build/bosun-app/frontend/client/_app/immutable/entry/start.CFPAx99R.js.gz +0 -0
  142. package/build/bosun-app/frontend/client/_app/immutable/nodes/{0.sWxZKx1V.js → 0.My9Ge0mp.js} +1 -1
  143. package/build/bosun-app/frontend/client/_app/immutable/nodes/0.My9Ge0mp.js.br +0 -0
  144. package/build/bosun-app/frontend/client/_app/immutable/nodes/0.My9Ge0mp.js.gz +0 -0
  145. package/build/bosun-app/frontend/client/_app/immutable/nodes/1.8soRNXH1.js +1 -0
  146. package/build/bosun-app/frontend/client/_app/immutable/nodes/1.8soRNXH1.js.br +0 -0
  147. package/build/bosun-app/frontend/client/_app/immutable/nodes/1.8soRNXH1.js.gz +0 -0
  148. package/build/bosun-app/frontend/client/_app/immutable/nodes/{10.BP2gctlm.js → 10.Dvsr2_-z.js} +7 -7
  149. package/build/bosun-app/frontend/client/_app/immutable/nodes/10.Dvsr2_-z.js.br +0 -0
  150. package/build/bosun-app/frontend/client/_app/immutable/nodes/10.Dvsr2_-z.js.gz +0 -0
  151. package/build/bosun-app/frontend/client/_app/immutable/nodes/{15.D4h0JT65.js → 15.drIyAxl2.js} +1 -1
  152. package/build/bosun-app/frontend/client/_app/immutable/nodes/15.drIyAxl2.js.br +1 -0
  153. package/build/bosun-app/frontend/client/_app/immutable/nodes/15.drIyAxl2.js.gz +0 -0
  154. package/build/bosun-app/frontend/client/_app/immutable/nodes/17.COoRz9YL.js +3 -0
  155. package/build/bosun-app/frontend/client/_app/immutable/nodes/17.COoRz9YL.js.br +0 -0
  156. package/build/bosun-app/frontend/client/_app/immutable/nodes/17.COoRz9YL.js.gz +0 -0
  157. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.BU9ol_TM.js +11 -0
  158. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.BU9ol_TM.js.br +0 -0
  159. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.BU9ol_TM.js.gz +0 -0
  160. package/build/bosun-app/frontend/client/_app/immutable/nodes/{2.DaZm8LbH.js → 2.BaCFGeUG.js} +3 -3
  161. package/build/bosun-app/frontend/client/_app/immutable/nodes/2.BaCFGeUG.js.br +0 -0
  162. package/build/bosun-app/frontend/client/_app/immutable/nodes/2.BaCFGeUG.js.gz +0 -0
  163. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.B2QuAahv.js +1 -0
  164. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.B2QuAahv.js.br +0 -0
  165. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.B2QuAahv.js.gz +0 -0
  166. package/build/bosun-app/frontend/client/_app/immutable/nodes/{4.BWY-PEkr.js → 4.XVLuiibs.js} +1 -1
  167. package/build/bosun-app/frontend/client/_app/immutable/nodes/4.XVLuiibs.js.br +0 -0
  168. package/build/bosun-app/frontend/client/_app/immutable/nodes/4.XVLuiibs.js.gz +0 -0
  169. package/build/bosun-app/frontend/client/_app/immutable/nodes/{5.Cl70jzrZ.js → 5.BV6hbTfJ.js} +1 -1
  170. package/build/bosun-app/frontend/client/_app/immutable/nodes/5.BV6hbTfJ.js.br +0 -0
  171. package/build/bosun-app/frontend/client/_app/immutable/nodes/5.BV6hbTfJ.js.gz +0 -0
  172. package/build/bosun-app/frontend/client/_app/immutable/nodes/{6.Cfkc99si.js → 6.cTvJXuC_.js} +1 -1
  173. package/build/bosun-app/frontend/client/_app/immutable/nodes/6.cTvJXuC_.js.br +0 -0
  174. package/build/bosun-app/frontend/client/_app/immutable/nodes/6.cTvJXuC_.js.gz +0 -0
  175. package/build/bosun-app/frontend/client/_app/immutable/nodes/{8.CmB3ZvKy.js → 8.4WVQLKHf.js} +1 -1
  176. package/build/bosun-app/frontend/client/_app/immutable/nodes/8.4WVQLKHf.js.br +0 -0
  177. package/build/bosun-app/frontend/client/_app/immutable/nodes/8.4WVQLKHf.js.gz +0 -0
  178. package/build/bosun-app/frontend/client/_app/immutable/nodes/{9.8UAsXj0n.js → 9.DDtd23BC.js} +1 -1
  179. package/build/bosun-app/frontend/client/_app/immutable/nodes/9.DDtd23BC.js.br +0 -0
  180. package/build/bosun-app/frontend/client/_app/immutable/nodes/9.DDtd23BC.js.gz +0 -0
  181. package/build/bosun-app/frontend/client/_app/version.json +1 -1
  182. package/build/bosun-app/frontend/client/_app/version.json.br +0 -0
  183. package/build/bosun-app/frontend/client/_app/version.json.gz +0 -0
  184. package/build/bosun-app/frontend/handler.js +4 -4
  185. package/build/bosun-app/frontend/index.js +4 -4
  186. package/build/bosun-app/frontend/server/chunks/chunks/{internal.js-BYUssiWE.js → internal.js-Bbhicye1.js} +2 -2
  187. package/build/bosun-app/frontend/server/chunks/chunks/{internal.js-BYUssiWE.js.map → internal.js-Bbhicye1.js.map} +1 -1
  188. package/build/bosun-app/frontend/server/chunks/chunks/{schemas.js-b9Mui_5N.js → schemas.js-W-DP3mDr.js} +2 -187
  189. package/build/bosun-app/frontend/server/chunks/chunks/schemas.js-W-DP3mDr.js.map +1 -0
  190. package/build/bosun-app/frontend/server/chunks/chunks/{source-selection.js-BpCr9ar-.js → source-selection.js-Cc6RX6-m.js} +4 -47
  191. package/build/bosun-app/frontend/server/chunks/chunks/source-selection.js-Cc6RX6-m.js.map +1 -0
  192. package/build/bosun-app/frontend/server/chunks/chunks/{sources.server.js-DIj2VjCx.js → sources.server.js-B6fpC51P.js} +2 -2
  193. package/build/bosun-app/frontend/server/chunks/chunks/{sources.server.js-DIj2VjCx.js.map → sources.server.js-B6fpC51P.js.map} +1 -1
  194. package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/latency/_conversationId_/{_server.ts.js-mL82mAit.js → _server.ts.js-hHR2eFvt.js} +2 -2
  195. package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/latency/_conversationId_/{_server.ts.js-mL82mAit.js.map → _server.ts.js-hHR2eFvt.js.map} +1 -1
  196. package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/proxy/_...path_/{_server.ts.js-DDDiZFhL.js → _server.ts.js-CHrOiduq.js} +10 -17
  197. package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/proxy/_...path_/_server.ts.js-CHrOiduq.js.map +1 -0
  198. package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/sources/{_server.ts.js-D_UoR_Ph.js → _server.ts.js-C2FIU8Kr.js} +3 -3
  199. package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/sources/{_server.ts.js-D_UoR_Ph.js.map → _server.ts.js-C2FIU8Kr.js.map} +1 -1
  200. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/{_page.svelte.js-DXMXSrkC.js → _page.svelte.js-tdUdTo4m.js} +5 -5
  201. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/_page.svelte.js-tdUdTo4m.js.map +1 -0
  202. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/traces/{_page.svelte.js-CZkbHRGl.js → _page.svelte.js-Ca79DBzJ.js} +9 -28
  203. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/traces/_page.svelte.js-Ca79DBzJ.js.map +1 -0
  204. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/{_layout.svelte.js-B4Yws-GS.js → _layout.svelte.js-Dvn3tfM7.js} +35 -328
  205. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_layout.svelte.js-Dvn3tfM7.js.map +1 -0
  206. package/build/bosun-app/frontend/server/chunks/{handler-B-UxYyko.js → handler-B9pVHSE7.js} +3 -3
  207. package/build/bosun-app/frontend/server/chunks/{handler-B-UxYyko.js.map → handler-B9pVHSE7.js.map} +1 -1
  208. package/build/bosun-app/frontend/server/chunks/{index.js-CleJzVFo.js → index.js-yM54Kd2A.js} +2 -2
  209. package/build/bosun-app/frontend/server/chunks/{index.js-CleJzVFo.js.map → index.js-yM54Kd2A.js.map} +1 -1
  210. package/build/bosun-app/frontend/server/chunks/{manifest.js-C8NquSUu.js → manifest.js-DolFIESH.js} +18 -18
  211. package/build/bosun-app/frontend/server/chunks/{manifest.js-C8NquSUu.js.map → manifest.js-DolFIESH.js.map} +1 -1
  212. package/build/bosun-app/frontend/server/chunks/nodes/0.js-Dq2ecpF9.js +9 -0
  213. package/build/bosun-app/frontend/server/chunks/nodes/0.js-Dq2ecpF9.js.map +1 -0
  214. package/build/bosun-app/frontend/server/chunks/nodes/1.js-DL4KxCNs.js +9 -0
  215. package/build/bosun-app/frontend/server/chunks/nodes/{1.js-BKMg62KW.js.map → 1.js-DL4KxCNs.js.map} +1 -1
  216. package/build/bosun-app/frontend/server/chunks/nodes/10.js-LOiFsxCJ.js +9 -0
  217. package/build/bosun-app/frontend/server/chunks/nodes/10.js-LOiFsxCJ.js.map +1 -0
  218. package/build/bosun-app/frontend/server/chunks/nodes/{15.js-nE6nl5S8.js → 15.js-cNd06B9T.js} +2 -2
  219. package/build/bosun-app/frontend/server/chunks/nodes/{15.js-nE6nl5S8.js.map → 15.js-cNd06B9T.js.map} +1 -1
  220. package/build/bosun-app/frontend/server/chunks/nodes/17.js-DMA8sOmE.js +9 -0
  221. package/build/bosun-app/frontend/server/chunks/nodes/17.js-DMA8sOmE.js.map +1 -0
  222. package/build/bosun-app/frontend/server/chunks/nodes/18.js-uFmm-sPa.js +9 -0
  223. package/build/bosun-app/frontend/server/chunks/nodes/18.js-uFmm-sPa.js.map +1 -0
  224. package/build/bosun-app/frontend/server/chunks/nodes/2.js-TSnVvl3L.js +9 -0
  225. package/build/bosun-app/frontend/server/chunks/nodes/2.js-TSnVvl3L.js.map +1 -0
  226. package/build/bosun-app/frontend/server/chunks/nodes/3.js-C-mekp3u.js +9 -0
  227. package/build/bosun-app/frontend/server/chunks/nodes/3.js-C-mekp3u.js.map +1 -0
  228. package/build/bosun-app/frontend/server/chunks/nodes/4.js-CKl_EX8L.js +9 -0
  229. package/build/bosun-app/frontend/server/chunks/nodes/4.js-CKl_EX8L.js.map +1 -0
  230. package/build/bosun-app/frontend/server/chunks/nodes/5.js-BWmqvxt2.js +9 -0
  231. package/build/bosun-app/frontend/server/chunks/nodes/{5.js-CqRWSoO5.js.map → 5.js-BWmqvxt2.js.map} +1 -1
  232. package/build/bosun-app/frontend/server/chunks/nodes/6.js-CjKPGJGt.js +9 -0
  233. package/build/bosun-app/frontend/server/chunks/nodes/6.js-CjKPGJGt.js.map +1 -0
  234. package/build/bosun-app/frontend/server/chunks/nodes/8.js-CpjYLyJe.js +9 -0
  235. package/build/bosun-app/frontend/server/chunks/nodes/8.js-CpjYLyJe.js.map +1 -0
  236. package/build/bosun-app/frontend/server/chunks/nodes/9.js-BLYfNmUw.js +9 -0
  237. package/build/bosun-app/frontend/server/chunks/nodes/9.js-BLYfNmUw.js.map +1 -0
  238. package/build/build/build.d.ts.map +1 -1
  239. package/build/build/build.js +1 -3
  240. package/build/build/common.d.ts +0 -1
  241. package/build/build/common.d.ts.map +1 -1
  242. package/build/build/common.js +0 -12
  243. package/build/call-control/types.d.ts +1 -1
  244. package/build/call-control/types.d.ts.map +1 -1
  245. package/build/core/get-text-platform.d.ts +15 -0
  246. package/build/core/get-text-platform.d.ts.map +1 -0
  247. package/build/core/{make-text-platform.js → get-text-platform.js} +8 -6
  248. package/build/core/{make-voice-platform.d.ts → get-voice-platform.d.ts} +4 -6
  249. package/build/core/get-voice-platform.d.ts.map +1 -0
  250. package/build/core/{make-voice-platform.js → get-voice-platform.js} +8 -6
  251. package/build/core/index.d.ts +4 -4
  252. package/build/core/index.d.ts.map +1 -1
  253. package/build/core/index.js +2 -2
  254. package/build/core/platform.d.ts +0 -2
  255. package/build/core/platform.d.ts.map +1 -1
  256. package/build/engine/interfaces/other.d.ts +1 -1
  257. package/build/engine/interfaces/other.d.ts.map +1 -1
  258. package/build/engine/stream/get-client.d.ts.map +1 -1
  259. package/build/engine/stream/get-client.js +8 -102
  260. package/build/text-agent-handlers/incoming-message.d.ts +4 -2
  261. package/build/text-agent-handlers/incoming-message.d.ts.map +1 -1
  262. package/build/text-agent-handlers/incoming-message.js +31 -14
  263. package/build/text-agent-handlers/index.d.ts +1 -1
  264. package/build/text-agent-handlers/index.d.ts.map +1 -1
  265. package/build/text-agent-handlers/instrument.d.ts +0 -1
  266. package/build/text-agent-handlers/instrument.d.ts.map +1 -1
  267. package/build/text-agent-handlers/instrument.js +5 -5
  268. package/build/text-agent-handlers/jobs-handler.d.ts +3 -2
  269. package/build/text-agent-handlers/jobs-handler.d.ts.map +1 -1
  270. package/build/text-agent-handlers/jobs-handler.js +12 -9
  271. package/build/text-agent-handlers/jobs.d.ts +1 -1
  272. package/build/text-agent-handlers/jobs.d.ts.map +1 -1
  273. package/build/text-agent-handlers/ports.d.ts +3 -4
  274. package/build/text-agent-handlers/ports.d.ts.map +1 -1
  275. package/build/text-agent-handlers/ports.js +12 -0
  276. package/build/voice-agent-api/voice-http.d.ts +1 -3
  277. package/build/voice-agent-api/voice-http.d.ts.map +1 -1
  278. package/build/voice-agent-api/voice-http.js +16 -53
  279. package/package.json +1 -5
  280. package/build/agent/agent-analytics.d.ts +0 -14
  281. package/build/agent/agent-analytics.d.ts.map +0 -1
  282. package/build/agent/agent-analytics.js +0 -29
  283. package/build/analytics/analytics.d.ts +0 -49
  284. package/build/analytics/analytics.d.ts.map +0 -1
  285. package/build/analytics/analytics.js +0 -223
  286. package/build/analytics/index.d.ts +0 -7
  287. package/build/analytics/index.d.ts.map +0 -1
  288. package/build/analytics/index.js +0 -3
  289. package/build/analytics/postgres-analytics-query.d.ts +0 -117
  290. package/build/analytics/postgres-analytics-query.d.ts.map +0 -1
  291. package/build/analytics/postgres-analytics-query.js +0 -504
  292. package/build/analytics/postgres-analytics.d.ts +0 -33
  293. package/build/analytics/postgres-analytics.d.ts.map +0 -1
  294. package/build/analytics/postgres-analytics.js +0 -310
  295. package/build/bosun-app/frontend/client/_app/immutable/assets/0.BhaOIA8N.css +0 -1
  296. package/build/bosun-app/frontend/client/_app/immutable/assets/0.BhaOIA8N.css.br +0 -0
  297. package/build/bosun-app/frontend/client/_app/immutable/assets/0.BhaOIA8N.css.gz +0 -0
  298. package/build/bosun-app/frontend/client/_app/immutable/chunks/-ZTJLlC3.js +0 -2
  299. package/build/bosun-app/frontend/client/_app/immutable/chunks/-ZTJLlC3.js.br +0 -0
  300. package/build/bosun-app/frontend/client/_app/immutable/chunks/-ZTJLlC3.js.gz +0 -0
  301. package/build/bosun-app/frontend/client/_app/immutable/chunks/0Q6TVg1G.js +0 -1
  302. package/build/bosun-app/frontend/client/_app/immutable/chunks/0Q6TVg1G.js.br +0 -0
  303. package/build/bosun-app/frontend/client/_app/immutable/chunks/0Q6TVg1G.js.gz +0 -0
  304. package/build/bosun-app/frontend/client/_app/immutable/chunks/4OgEIyh1.js.br +0 -0
  305. package/build/bosun-app/frontend/client/_app/immutable/chunks/4OgEIyh1.js.gz +0 -0
  306. package/build/bosun-app/frontend/client/_app/immutable/chunks/8bHWYDyT.js +0 -1
  307. package/build/bosun-app/frontend/client/_app/immutable/chunks/8bHWYDyT.js.br +0 -0
  308. package/build/bosun-app/frontend/client/_app/immutable/chunks/8bHWYDyT.js.gz +0 -0
  309. package/build/bosun-app/frontend/client/_app/immutable/chunks/9pOOTteE.js.br +0 -0
  310. package/build/bosun-app/frontend/client/_app/immutable/chunks/9pOOTteE.js.gz +0 -0
  311. package/build/bosun-app/frontend/client/_app/immutable/chunks/AlWqjAqK.js +0 -1
  312. package/build/bosun-app/frontend/client/_app/immutable/chunks/AlWqjAqK.js.br +0 -0
  313. package/build/bosun-app/frontend/client/_app/immutable/chunks/AlWqjAqK.js.gz +0 -0
  314. package/build/bosun-app/frontend/client/_app/immutable/chunks/B9e8MCJ2.js.br +0 -0
  315. package/build/bosun-app/frontend/client/_app/immutable/chunks/B9e8MCJ2.js.gz +0 -0
  316. package/build/bosun-app/frontend/client/_app/immutable/chunks/BDIIq0ko.js.br +0 -0
  317. package/build/bosun-app/frontend/client/_app/immutable/chunks/BDIIq0ko.js.gz +0 -0
  318. package/build/bosun-app/frontend/client/_app/immutable/chunks/BFiP5U7M.js +0 -3
  319. package/build/bosun-app/frontend/client/_app/immutable/chunks/BFiP5U7M.js.br +0 -0
  320. package/build/bosun-app/frontend/client/_app/immutable/chunks/BFiP5U7M.js.gz +0 -0
  321. package/build/bosun-app/frontend/client/_app/immutable/chunks/BHU9AXbn.js.br +0 -0
  322. package/build/bosun-app/frontend/client/_app/immutable/chunks/BHU9AXbn.js.gz +0 -0
  323. package/build/bosun-app/frontend/client/_app/immutable/chunks/BHwgmBN2.js.br +0 -0
  324. package/build/bosun-app/frontend/client/_app/immutable/chunks/BHwgmBN2.js.gz +0 -0
  325. package/build/bosun-app/frontend/client/_app/immutable/chunks/BOlSQbHE.js +0 -2
  326. package/build/bosun-app/frontend/client/_app/immutable/chunks/BOlSQbHE.js.br +0 -0
  327. package/build/bosun-app/frontend/client/_app/immutable/chunks/BOlSQbHE.js.gz +0 -0
  328. package/build/bosun-app/frontend/client/_app/immutable/chunks/BXO2WwQx.js +0 -1
  329. package/build/bosun-app/frontend/client/_app/immutable/chunks/BXO2WwQx.js.br +0 -0
  330. package/build/bosun-app/frontend/client/_app/immutable/chunks/BXO2WwQx.js.gz +0 -0
  331. package/build/bosun-app/frontend/client/_app/immutable/chunks/BZeEhZ9x.js.br +0 -0
  332. package/build/bosun-app/frontend/client/_app/immutable/chunks/BZeEhZ9x.js.gz +0 -0
  333. package/build/bosun-app/frontend/client/_app/immutable/chunks/BbB1C_YH.js +0 -1
  334. package/build/bosun-app/frontend/client/_app/immutable/chunks/BbB1C_YH.js.br +0 -0
  335. package/build/bosun-app/frontend/client/_app/immutable/chunks/BbB1C_YH.js.gz +0 -0
  336. package/build/bosun-app/frontend/client/_app/immutable/chunks/BtJ1grIE.js.br +0 -0
  337. package/build/bosun-app/frontend/client/_app/immutable/chunks/BtJ1grIE.js.gz +0 -0
  338. package/build/bosun-app/frontend/client/_app/immutable/chunks/C5z36vOP.js +0 -8
  339. package/build/bosun-app/frontend/client/_app/immutable/chunks/C5z36vOP.js.br +0 -0
  340. package/build/bosun-app/frontend/client/_app/immutable/chunks/C5z36vOP.js.gz +0 -0
  341. package/build/bosun-app/frontend/client/_app/immutable/chunks/CHNsNZYZ.js +0 -1
  342. package/build/bosun-app/frontend/client/_app/immutable/chunks/CHNsNZYZ.js.br +0 -0
  343. package/build/bosun-app/frontend/client/_app/immutable/chunks/CHNsNZYZ.js.gz +0 -0
  344. package/build/bosun-app/frontend/client/_app/immutable/chunks/CINamuM5.js.br +0 -1
  345. package/build/bosun-app/frontend/client/_app/immutable/chunks/CINamuM5.js.gz +0 -0
  346. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR6hF_YT.js +0 -1
  347. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR6hF_YT.js.br +0 -0
  348. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR6hF_YT.js.gz +0 -0
  349. package/build/bosun-app/frontend/client/_app/immutable/chunks/CbXT0Qet.js +0 -1
  350. package/build/bosun-app/frontend/client/_app/immutable/chunks/CbXT0Qet.js.br +0 -0
  351. package/build/bosun-app/frontend/client/_app/immutable/chunks/CbXT0Qet.js.gz +0 -0
  352. package/build/bosun-app/frontend/client/_app/immutable/chunks/CkCJ1-zx.js.br +0 -0
  353. package/build/bosun-app/frontend/client/_app/immutable/chunks/CkCJ1-zx.js.gz +0 -0
  354. package/build/bosun-app/frontend/client/_app/immutable/chunks/Cm25Ihk6.js +0 -1
  355. package/build/bosun-app/frontend/client/_app/immutable/chunks/Cm25Ihk6.js.br +0 -0
  356. package/build/bosun-app/frontend/client/_app/immutable/chunks/Cm25Ihk6.js.gz +0 -0
  357. package/build/bosun-app/frontend/client/_app/immutable/chunks/CmJrlnQL.js +0 -64
  358. package/build/bosun-app/frontend/client/_app/immutable/chunks/CmJrlnQL.js.br +0 -0
  359. package/build/bosun-app/frontend/client/_app/immutable/chunks/CmJrlnQL.js.gz +0 -0
  360. package/build/bosun-app/frontend/client/_app/immutable/chunks/CofRL0YY.js +0 -2
  361. package/build/bosun-app/frontend/client/_app/immutable/chunks/CofRL0YY.js.br +0 -0
  362. package/build/bosun-app/frontend/client/_app/immutable/chunks/CofRL0YY.js.gz +0 -0
  363. package/build/bosun-app/frontend/client/_app/immutable/chunks/Csai_DUZ.js.br +0 -6
  364. package/build/bosun-app/frontend/client/_app/immutable/chunks/Csai_DUZ.js.gz +0 -0
  365. package/build/bosun-app/frontend/client/_app/immutable/chunks/D24F_tet.js.br +0 -0
  366. package/build/bosun-app/frontend/client/_app/immutable/chunks/D24F_tet.js.gz +0 -0
  367. package/build/bosun-app/frontend/client/_app/immutable/chunks/D35JKLYq.js.br +0 -0
  368. package/build/bosun-app/frontend/client/_app/immutable/chunks/D35JKLYq.js.gz +0 -0
  369. package/build/bosun-app/frontend/client/_app/immutable/chunks/D6r2pB3T.js.br +0 -0
  370. package/build/bosun-app/frontend/client/_app/immutable/chunks/D6r2pB3T.js.gz +0 -0
  371. package/build/bosun-app/frontend/client/_app/immutable/chunks/DJFKRYxi.js.br +0 -0
  372. package/build/bosun-app/frontend/client/_app/immutable/chunks/DJFKRYxi.js.gz +0 -0
  373. package/build/bosun-app/frontend/client/_app/immutable/chunks/DOVgTfHj.js.br +0 -0
  374. package/build/bosun-app/frontend/client/_app/immutable/chunks/DOVgTfHj.js.gz +0 -0
  375. package/build/bosun-app/frontend/client/_app/immutable/chunks/DPfKTQVx.js +0 -1
  376. package/build/bosun-app/frontend/client/_app/immutable/chunks/DPfKTQVx.js.br +0 -0
  377. package/build/bosun-app/frontend/client/_app/immutable/chunks/DPfKTQVx.js.gz +0 -0
  378. package/build/bosun-app/frontend/client/_app/immutable/chunks/DSFEfk-V.js.br +0 -0
  379. package/build/bosun-app/frontend/client/_app/immutable/chunks/DSFEfk-V.js.gz +0 -0
  380. package/build/bosun-app/frontend/client/_app/immutable/chunks/DbY589nb.js +0 -1
  381. package/build/bosun-app/frontend/client/_app/immutable/chunks/DbY589nb.js.br +0 -2
  382. package/build/bosun-app/frontend/client/_app/immutable/chunks/DbY589nb.js.gz +0 -0
  383. package/build/bosun-app/frontend/client/_app/immutable/chunks/DfEgi1lN.js +0 -1
  384. package/build/bosun-app/frontend/client/_app/immutable/chunks/DfEgi1lN.js.br +0 -0
  385. package/build/bosun-app/frontend/client/_app/immutable/chunks/DfEgi1lN.js.gz +0 -0
  386. package/build/bosun-app/frontend/client/_app/immutable/chunks/DsRUoWL6.js.br +0 -0
  387. package/build/bosun-app/frontend/client/_app/immutable/chunks/DsRUoWL6.js.gz +0 -0
  388. package/build/bosun-app/frontend/client/_app/immutable/chunks/FLx39vZ1.js.br +0 -0
  389. package/build/bosun-app/frontend/client/_app/immutable/chunks/FLx39vZ1.js.gz +0 -0
  390. package/build/bosun-app/frontend/client/_app/immutable/chunks/NwoUwoIi.js.br +0 -0
  391. package/build/bosun-app/frontend/client/_app/immutable/chunks/NwoUwoIi.js.gz +0 -0
  392. package/build/bosun-app/frontend/client/_app/immutable/chunks/VLxbY_3V.js.br +0 -0
  393. package/build/bosun-app/frontend/client/_app/immutable/chunks/VLxbY_3V.js.gz +0 -0
  394. package/build/bosun-app/frontend/client/_app/immutable/chunks/uEzaTD9T.js +0 -1
  395. package/build/bosun-app/frontend/client/_app/immutable/chunks/uEzaTD9T.js.br +0 -2
  396. package/build/bosun-app/frontend/client/_app/immutable/chunks/uEzaTD9T.js.gz +0 -0
  397. package/build/bosun-app/frontend/client/_app/immutable/entry/app.fITODAfp.js +0 -2
  398. package/build/bosun-app/frontend/client/_app/immutable/entry/app.fITODAfp.js.br +0 -0
  399. package/build/bosun-app/frontend/client/_app/immutable/entry/app.fITODAfp.js.gz +0 -0
  400. package/build/bosun-app/frontend/client/_app/immutable/entry/start.CuqUO5EQ.js +0 -1
  401. package/build/bosun-app/frontend/client/_app/immutable/entry/start.CuqUO5EQ.js.br +0 -0
  402. package/build/bosun-app/frontend/client/_app/immutable/entry/start.CuqUO5EQ.js.gz +0 -0
  403. package/build/bosun-app/frontend/client/_app/immutable/nodes/0.sWxZKx1V.js.br +0 -0
  404. package/build/bosun-app/frontend/client/_app/immutable/nodes/0.sWxZKx1V.js.gz +0 -0
  405. package/build/bosun-app/frontend/client/_app/immutable/nodes/1.PQXY4edq.js +0 -1
  406. package/build/bosun-app/frontend/client/_app/immutable/nodes/1.PQXY4edq.js.br +0 -0
  407. package/build/bosun-app/frontend/client/_app/immutable/nodes/1.PQXY4edq.js.gz +0 -0
  408. package/build/bosun-app/frontend/client/_app/immutable/nodes/10.BP2gctlm.js.br +0 -0
  409. package/build/bosun-app/frontend/client/_app/immutable/nodes/10.BP2gctlm.js.gz +0 -0
  410. package/build/bosun-app/frontend/client/_app/immutable/nodes/15.D4h0JT65.js.br +0 -0
  411. package/build/bosun-app/frontend/client/_app/immutable/nodes/15.D4h0JT65.js.gz +0 -0
  412. package/build/bosun-app/frontend/client/_app/immutable/nodes/17.D5wsHo5R.js +0 -3
  413. package/build/bosun-app/frontend/client/_app/immutable/nodes/17.D5wsHo5R.js.br +0 -0
  414. package/build/bosun-app/frontend/client/_app/immutable/nodes/17.D5wsHo5R.js.gz +0 -0
  415. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.CZp-IBH8.js +0 -11
  416. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.CZp-IBH8.js.br +0 -0
  417. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.CZp-IBH8.js.gz +0 -0
  418. package/build/bosun-app/frontend/client/_app/immutable/nodes/2.DaZm8LbH.js.br +0 -0
  419. package/build/bosun-app/frontend/client/_app/immutable/nodes/2.DaZm8LbH.js.gz +0 -0
  420. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.Bk3buFqf.js +0 -1
  421. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.Bk3buFqf.js.br +0 -0
  422. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.Bk3buFqf.js.gz +0 -0
  423. package/build/bosun-app/frontend/client/_app/immutable/nodes/4.BWY-PEkr.js.br +0 -0
  424. package/build/bosun-app/frontend/client/_app/immutable/nodes/4.BWY-PEkr.js.gz +0 -0
  425. package/build/bosun-app/frontend/client/_app/immutable/nodes/5.Cl70jzrZ.js.br +0 -0
  426. package/build/bosun-app/frontend/client/_app/immutable/nodes/5.Cl70jzrZ.js.gz +0 -0
  427. package/build/bosun-app/frontend/client/_app/immutable/nodes/6.Cfkc99si.js.br +0 -0
  428. package/build/bosun-app/frontend/client/_app/immutable/nodes/6.Cfkc99si.js.gz +0 -0
  429. package/build/bosun-app/frontend/client/_app/immutable/nodes/8.CmB3ZvKy.js.br +0 -0
  430. package/build/bosun-app/frontend/client/_app/immutable/nodes/8.CmB3ZvKy.js.gz +0 -0
  431. package/build/bosun-app/frontend/client/_app/immutable/nodes/9.8UAsXj0n.js.br +0 -0
  432. package/build/bosun-app/frontend/client/_app/immutable/nodes/9.8UAsXj0n.js.gz +0 -0
  433. package/build/bosun-app/frontend/server/chunks/chunks/schemas.js-b9Mui_5N.js.map +0 -1
  434. package/build/bosun-app/frontend/server/chunks/chunks/source-selection.js-BpCr9ar-.js.map +0 -1
  435. package/build/bosun-app/frontend/server/chunks/entries/endpoints/traces/api/proxy/_...path_/_server.ts.js-DDDiZFhL.js.map +0 -1
  436. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/_page.svelte.js-DXMXSrkC.js.map +0 -1
  437. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/traces/_page.svelte.js-CZkbHRGl.js.map +0 -1
  438. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_layout.svelte.js-B4Yws-GS.js.map +0 -1
  439. package/build/bosun-app/frontend/server/chunks/nodes/0.js-BUVJh5Uv.js +0 -9
  440. package/build/bosun-app/frontend/server/chunks/nodes/0.js-BUVJh5Uv.js.map +0 -1
  441. package/build/bosun-app/frontend/server/chunks/nodes/1.js-BKMg62KW.js +0 -9
  442. package/build/bosun-app/frontend/server/chunks/nodes/10.js-Bz0enUzA.js +0 -9
  443. package/build/bosun-app/frontend/server/chunks/nodes/10.js-Bz0enUzA.js.map +0 -1
  444. package/build/bosun-app/frontend/server/chunks/nodes/17.js-CplX6Ruz.js +0 -9
  445. package/build/bosun-app/frontend/server/chunks/nodes/17.js-CplX6Ruz.js.map +0 -1
  446. package/build/bosun-app/frontend/server/chunks/nodes/18.js-cGVVSoEn.js +0 -9
  447. package/build/bosun-app/frontend/server/chunks/nodes/18.js-cGVVSoEn.js.map +0 -1
  448. package/build/bosun-app/frontend/server/chunks/nodes/2.js-CliMdUrH.js +0 -9
  449. package/build/bosun-app/frontend/server/chunks/nodes/2.js-CliMdUrH.js.map +0 -1
  450. package/build/bosun-app/frontend/server/chunks/nodes/3.js-BQpmmrUv.js +0 -9
  451. package/build/bosun-app/frontend/server/chunks/nodes/3.js-BQpmmrUv.js.map +0 -1
  452. package/build/bosun-app/frontend/server/chunks/nodes/4.js-BgSyMW3D.js +0 -9
  453. package/build/bosun-app/frontend/server/chunks/nodes/4.js-BgSyMW3D.js.map +0 -1
  454. package/build/bosun-app/frontend/server/chunks/nodes/5.js-CqRWSoO5.js +0 -9
  455. package/build/bosun-app/frontend/server/chunks/nodes/6.js-CrEQ411L.js +0 -9
  456. package/build/bosun-app/frontend/server/chunks/nodes/6.js-CrEQ411L.js.map +0 -1
  457. package/build/bosun-app/frontend/server/chunks/nodes/8.js-CiOj2-c5.js +0 -9
  458. package/build/bosun-app/frontend/server/chunks/nodes/8.js-CiOj2-c5.js.map +0 -1
  459. package/build/bosun-app/frontend/server/chunks/nodes/9.js-BMwqRSfy.js +0 -9
  460. package/build/bosun-app/frontend/server/chunks/nodes/9.js-BMwqRSfy.js.map +0 -1
  461. package/build/core/make-text-platform.d.ts +0 -17
  462. package/build/core/make-text-platform.d.ts.map +0 -1
  463. package/build/core/make-voice-platform.d.ts.map +0 -1
  464. package/build/voice-agent-api/call-end.d.ts +0 -19
  465. package/build/voice-agent-api/call-end.d.ts.map +0 -1
  466. package/build/voice-agent-api/call-end.js +0 -58
  467. /package/build/bosun-app/frontend/client/_app/immutable/assets/{Modal.iiWNRlR-.css → ReadOnlyMonacoDiff.iiWNRlR-.css} +0 -0
  468. /package/build/bosun-app/frontend/client/_app/immutable/assets/{Modal.iiWNRlR-.css.br → ReadOnlyMonacoDiff.iiWNRlR-.css.br} +0 -0
  469. /package/build/bosun-app/frontend/client/_app/immutable/assets/{Modal.iiWNRlR-.css.gz → ReadOnlyMonacoDiff.iiWNRlR-.css.gz} +0 -0
@@ -1,6 +1,5 @@
1
1
  import { FastifyRequest } from 'fastify';
2
2
  import { VoiceAgent } from '../agent';
3
- import type { ConversationRepository } from '../analytics';
4
3
  import type CallControl from '../call-control';
5
4
  import type { NotificationRouter } from '../notifications';
6
5
  import type { ITelescope } from '../telescope';
@@ -24,12 +23,11 @@ export interface VoiceHttpBindings<TMeta> {
24
23
  phoneNumber?: string;
25
24
  };
26
25
  callControl: CallControl;
27
- conversationRepository?: ConversationRepository;
28
26
  notificationRouter?: NotificationRouter;
29
27
  getExternalConversationId?: (headers: FastifyRequest['headers']) => string | undefined;
30
28
  stickyCookieName?: string;
31
29
  }
32
- export declare function voiceHttpConnect<TMeta>({ getVoiceAgent, telescope, onStart, hostsToPrewarm, headersToMeta, getConversationMeta, callControl, conversationRepository, notificationRouter, getExternalConversationId, stickyCookieName, }: VoiceHttpBindings<TMeta>): {
30
+ export declare function voiceHttpConnect<TMeta>({ getVoiceAgent, telescope, onStart, hostsToPrewarm, headersToMeta, getConversationMeta, callControl, notificationRouter, getExternalConversationId, stickyCookieName, }: VoiceHttpBindings<TMeta>): {
33
31
  start: () => Promise<void>;
34
32
  };
35
33
  //# sourceMappingURL=voice-http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"voice-http.d.ts","sourceRoot":"","sources":["../../src/voice-agent-api/voice-http.ts"],"names":[],"mappings":"AAGA,OAAgB,EAAgB,cAAc,EAAE,MAAM,SAAS,CAAA;AAG/D,OAAO,EAAY,UAAU,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAA;AAG9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAyB,MAAM,cAAc,CAAA;AAQrE,OAAO,QAAQ,SAAS,CAAC;IACrB,UAAU,cAAc;QACpB,MAAM,EAAE,MAAM,CAAA;QACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC3B,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB;CACJ;AAED,MAAM,WAAW,iBAAiB,CAAC,KAAK;IACpC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAChE,SAAS,EAAE,UAAU,CAAA;IAErB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,KAAK,CAAA;IAE5D,mBAAmB,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK;QACzD,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB,CAAA;IAED,WAAW,EAAE,WAAW,CAAA;IAExB,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;IAEtF,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,EACpC,aAAa,EACb,SAAS,EACT,OAAO,EACP,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,GACnB,EAAE,iBAAiB,CAAC,KAAK,CAAC;;EAue1B"}
1
+ {"version":3,"file":"voice-http.d.ts","sourceRoot":"","sources":["../../src/voice-agent-api/voice-http.ts"],"names":[],"mappings":"AAGA,OAAgB,EAAgB,cAAc,EAAE,MAAM,SAAS,CAAA;AAG/D,OAAO,EAAY,UAAU,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAA;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAyB,MAAM,cAAc,CAAA;AAOrE,OAAO,QAAQ,SAAS,CAAC;IACrB,UAAU,cAAc;QACpB,MAAM,EAAE,MAAM,CAAA;QACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC3B,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB;CACJ;AAED,MAAM,WAAW,iBAAiB,CAAC,KAAK;IACpC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAChE,SAAS,EAAE,UAAU,CAAA;IAErB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,KAAK,CAAA;IAE5D,mBAAmB,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK;QACzD,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB,CAAA;IAED,WAAW,EAAE,WAAW,CAAA;IACxB,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;IAEtF,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,EACpC,aAAa,EACb,SAAS,EACT,OAAO,EACP,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,GACnB,EAAE,iBAAiB,CAAC,KAAK,CAAC;;EA8b1B"}
@@ -3,11 +3,10 @@ import { promisify } from 'node:util';
3
3
  import Fastify from 'fastify';
4
4
  import { loggerContext } from '../dockyard';
5
5
  import { LATENCY_EVENT_SCHEMA, LATENCY_EVENT_TYPES } from '../telescope';
6
- import { runVoiceCallEnd } from './call-end';
7
6
  import { fail, isRecoverableError, mapFromOpenAiMessages } from './http-helpers';
8
7
  import { llmCompletionHandler } from './llm-completion-handler';
9
8
  import { logger } from './logger';
10
- export function voiceHttpConnect({ getVoiceAgent, telescope, onStart, hostsToPrewarm, headersToMeta, getConversationMeta, callControl, conversationRepository, notificationRouter, getExternalConversationId, stickyCookieName, }) {
9
+ export function voiceHttpConnect({ getVoiceAgent, telescope, onStart, hostsToPrewarm, headersToMeta, getConversationMeta, callControl, notificationRouter, getExternalConversationId, stickyCookieName, }) {
11
10
  const activeRequests = new Set();
12
11
  let started = false;
13
12
  const app = Fastify({
@@ -125,19 +124,8 @@ export function voiceHttpConnect({ getVoiceAgent, telescope, onStart, hostsToPre
125
124
  }
126
125
  notificationRouter?.unregister(req.callId);
127
126
  await telescope.runObservation(async () => {
128
- const callDetails = await getFinalCallDetails(req.callId);
129
- const call = reqToCallInfo(req);
130
- const { region, phoneNumber } = getConversationMeta(req.headers);
131
- await runVoiceCallEnd({
132
- agent,
133
- call,
134
- callDetails,
135
- conversationRepository,
136
- logger,
137
- region,
138
- phoneNumber: phoneNumber ?? req.phoneNumber,
139
- saveTelescopeConversation: () => createTelescopeConversation(req, callDetails),
140
- });
127
+ await agent.onCallEnd(reqToCallInfo(req));
128
+ await createTelescopeConversation(req);
141
129
  res.status(200);
142
130
  }, { conversationId: req.callId, agentId: agent.name });
143
131
  });
@@ -292,33 +280,16 @@ export function voiceHttpConnect({ getVoiceAgent, telescope, onStart, hostsToPre
292
280
  started = true;
293
281
  await prewarmDNS();
294
282
  }
295
- const agentForCall = {};
296
- const agentLoadingForCall = {};
297
- const callHandledBy = {};
298
- async function getAgent(req) {
299
- const agent = agentForCall[req.callId];
300
- if (agent && callHandledBy[req.callId] === req.agentName) {
301
- return agent;
302
- }
303
- let loadingAgent = agentLoadingForCall[req.callId];
304
- if (loadingAgent === undefined || callHandledBy[req.callId] !== req.agentName) {
283
+ const agents = new Map();
284
+ function getAgent(req) {
285
+ let agent = agents.get(req.agentName);
286
+ if (!agent) {
305
287
  logger.debug('Loading agent', { agentName: req.agentName });
306
- loadingAgent = getVoiceAgent(req.agentName);
307
- agentLoadingForCall[req.callId] = loadingAgent;
308
- callHandledBy[req.callId] = req.agentName;
309
- }
310
- try {
311
- const loadedAgent = await loadingAgent;
312
- if (callHandledBy[req.callId] === req.agentName) {
313
- agentForCall[req.callId] = loadedAgent;
314
- }
315
- return loadedAgent;
316
- }
317
- finally {
318
- if (agentLoadingForCall[req.callId] === loadingAgent) {
319
- delete agentLoadingForCall[req.callId];
320
- }
288
+ agent = getVoiceAgent(req.agentName);
289
+ agents.set(req.agentName, agent);
290
+ agent.catch(() => agents.delete(req.agentName));
321
291
  }
292
+ return agent;
322
293
  }
323
294
  async function prewarmDNS() {
324
295
  const dnsLookup = promisify(dns.lookup);
@@ -332,7 +303,7 @@ export function voiceHttpConnect({ getVoiceAgent, telescope, onStart, hostsToPre
332
303
  }
333
304
  }
334
305
  }
335
- async function createTelescopeConversation(req, knownCallDetails) {
306
+ async function createTelescopeConversation(req) {
336
307
  const conversationId = req.callId;
337
308
  if (!conversationId) {
338
309
  logger.error('No call ID provided, cannot create Telescope conversation');
@@ -343,29 +314,21 @@ export function voiceHttpConnect({ getVoiceAgent, telescope, onStart, hostsToPre
343
314
  const conversation = {
344
315
  conversationId,
345
316
  medium: 'phone',
346
- agentId: agentForCall[conversationId]?.name || req.agentName || undefined,
317
+ agentId: req.agentName || undefined,
347
318
  region,
348
319
  phoneNumber: phoneNumber ?? req.phoneNumber,
349
320
  createdAt: Date.now(),
350
321
  };
351
- const callDetails = knownCallDetails === undefined
352
- ? await getFinalCallDetails(conversationId)
353
- : knownCallDetails;
354
- if (callDetails) {
322
+ try {
323
+ const callDetails = await callControl.getCallDetails(conversationId);
355
324
  conversation.duration = callDetails?.callDuration;
356
325
  conversation.audioUrl = callDetails?.recording || undefined;
357
326
  conversation.transcript = JSON.stringify(callDetails?.transcript);
358
327
  }
359
- await telescope.saveConversation(conversation);
360
- }
361
- async function getFinalCallDetails(conversationId) {
362
- try {
363
- return await callControl.getCallDetails(conversationId);
364
- }
365
328
  catch (err) {
366
329
  logger.error('Failed to get call details', { conversationId, err });
367
- return null;
368
330
  }
331
+ await telescope.saveConversation(conversation);
369
332
  }
370
333
  function reqToCallInfo(req) {
371
334
  return {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@recombine-ai/platform",
3
3
  "type": "module",
4
- "version": "0.5.0-test.0",
4
+ "version": "0.6.0",
5
5
  "description": "The Recombine platform: engine, telescope, dockyard, call control, the voice agent API, and the Bosun bindings in one package",
6
6
  "license": "EULA",
7
7
  "author": "recombine.ai",
@@ -24,7 +24,6 @@
24
24
  "exports": {
25
25
  ".": "./build/index.js",
26
26
  "./agent": "./build/agent/index.js",
27
- "./analytics": "./build/analytics/index.js",
28
27
  "./engine": "./build/engine/index.js",
29
28
  "./telescope": "./build/telescope/index.js",
30
29
  "./dockyard": "./build/dockyard/index.js",
@@ -43,7 +42,6 @@
43
42
  "registry": "https://registry.npmjs.org"
44
43
  },
45
44
  "dependencies": {
46
- "@types/pg": "8.15.5",
47
45
  "dotenv": "17.4.2",
48
46
  "esbuild": "0.27.3",
49
47
  "fast-xml-parser": "5.7.3",
@@ -51,13 +49,11 @@
51
49
  "livekit-server-sdk": "2.18.0",
52
50
  "nunjucks": "3.2.4",
53
51
  "openai": "6.8.1",
54
- "pg": "8.23.0",
55
52
  "pino": "10.3.1",
56
53
  "promptfoo": "0.112.3",
57
54
  "redis": "5.11.0",
58
55
  "tsx": "4.21.0",
59
56
  "undici": "7.26.0",
60
- "yaml": "2.9.0",
61
57
  "zod": "4.4.3"
62
58
  },
63
59
  "devDependencies": {
@@ -1,14 +0,0 @@
1
- import { type AgentAnalytics, type AnalyticsStore } from '../analytics';
2
- export type AgentPlatform<TPlatform extends {
3
- analytics: AnalyticsStore;
4
- }> = Omit<TPlatform, 'analytics'> & {
5
- analytics: AgentAnalytics;
6
- };
7
- type BindAgentAnalytics = (store: AnalyticsStore, agentId: string) => AgentAnalytics;
8
- export interface DeferredAgentAnalytics {
9
- analytics: AgentAnalytics;
10
- bind(agentId: string): void;
11
- }
12
- export declare function createDeferredAgentAnalytics(store: AnalyticsStore, bindAgent?: BindAgentAnalytics): DeferredAgentAnalytics;
13
- export {};
14
- //# sourceMappingURL=agent-analytics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-analytics.d.ts","sourceRoot":"","sources":["../../src/agent/agent-analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAsB,MAAM,cAAc,CAAA;AAE3F,MAAM,MAAM,aAAa,CAAC,SAAS,SAAS;IAAE,SAAS,EAAE,cAAc,CAAA;CAAE,IAAI,IAAI,CAC7E,SAAS,EACT,WAAW,CACd,GAAG;IACA,SAAS,EAAE,cAAc,CAAA;CAC5B,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,KAAK,cAAc,CAAA;AAEpF,MAAM,WAAW,sBAAsB;IACnC,SAAS,EAAE,cAAc,CAAA;IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,cAAc,EACrB,SAAS,GAAE,kBAAuC,GACnD,sBAAsB,CA6BxB"}
@@ -1,29 +0,0 @@
1
- import { bindAgentAnalytics } from '../analytics';
2
- export function createDeferredAgentAnalytics(store, bindAgent = bindAgentAnalytics) {
3
- let boundAnalytics;
4
- const getBoundAnalytics = () => {
5
- if (!boundAnalytics) {
6
- throw new Error('Cannot use conversation analytics while the agent is being created');
7
- }
8
- return boundAnalytics;
9
- };
10
- return {
11
- analytics: {
12
- set(conversationId, values) {
13
- return getBoundAnalytics().set(conversationId, values);
14
- },
15
- clear(conversationId, fieldNames) {
16
- return getBoundAnalytics().clear(conversationId, fieldNames);
17
- },
18
- get(conversationId, fieldName) {
19
- return getBoundAnalytics().get(conversationId, fieldName);
20
- },
21
- },
22
- bind(agentId) {
23
- if (boundAnalytics) {
24
- throw new Error('Conversation analytics is already bound to an agent');
25
- }
26
- boundAnalytics = bindAgent(store, agentId);
27
- },
28
- };
29
- }
@@ -1,49 +0,0 @@
1
- export type AnalyticsScalar = boolean | number | string;
2
- export type AnalyticsFieldType = 'boolean' | 'number' | 'string';
3
- export interface AnalyticsFieldDefinition {
4
- readonly type: AnalyticsFieldType;
5
- readonly values?: readonly string[];
6
- }
7
- export type AnalyticsFieldDefinitions = Readonly<Record<string, AnalyticsFieldDefinition>>;
8
- export type AnalyticsConfiguration = Readonly<Record<string, AnalyticsFieldDefinitions>>;
9
- export interface AnalyticsStore {
10
- set(conversationId: string, agentId: string, values: Readonly<Record<string, AnalyticsScalar>>): Promise<void>;
11
- clear(conversationId: string, agentId: string, fieldNames: readonly string[]): Promise<void>;
12
- get(conversationId: string, agentId: string, fieldName: string): Promise<unknown>;
13
- }
14
- export interface ConversationRecord {
15
- conversationId: string;
16
- agentId: string;
17
- channel: string;
18
- region?: string;
19
- startedAt: Date;
20
- endedAt?: Date;
21
- }
22
- export interface PhoneCallRecord {
23
- phoneNumber?: string;
24
- recordingUrl?: string;
25
- endedReason?: string;
26
- durationSeconds?: number;
27
- }
28
- export interface ConversationRepository {
29
- saveConversation(conversation: ConversationRecord, phoneCall?: PhoneCallRecord): Promise<{
30
- changed: boolean;
31
- created: boolean;
32
- }>;
33
- }
34
- export interface AgentAnalytics {
35
- set(conversationId: string, values: Record<string, AnalyticsScalar>): Promise<void>;
36
- clear(conversationId: string, fieldNames: readonly string[]): Promise<void>;
37
- get(conversationId: string, fieldName: string): Promise<AnalyticsScalar | undefined>;
38
- }
39
- export declare const analyticsConfigurationPath = "src/analytics.yaml";
40
- export declare function bindAgentAnalytics(store: AnalyticsStore, agentId: string, projectRoot?: string): AgentAnalytics;
41
- export declare function loadAnalyticsConfiguration(projectRoot?: string): AnalyticsConfiguration;
42
- export declare function getAgentAnalyticsConfiguration(configuration: AnalyticsConfiguration, agentId: string): AnalyticsFieldDefinitions;
43
- export declare function createAgentAnalytics(store: AnalyticsStore, agentId: string, fields: AnalyticsFieldDefinitions): AgentAnalytics;
44
- export declare function createInMemoryAnalytics(seededConversations?: readonly {
45
- conversationId: string;
46
- agentId: string;
47
- }[]): AnalyticsStore;
48
- export declare function assertAnalyticsScalar(value: unknown): asserts value is AnalyticsScalar;
49
- //# sourceMappingURL=analytics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/analytics/analytics.ts"],"names":[],"mappings":"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"}
@@ -1,223 +0,0 @@
1
- import { readFileSync } from 'node:fs';
2
- import { resolve } from 'node:path';
3
- import { parse as parseYaml } from 'yaml';
4
- export const analyticsConfigurationPath = 'src/analytics.yaml';
5
- export function bindAgentAnalytics(store, agentId, projectRoot = process.cwd()) {
6
- if (agentId.trim() === '') {
7
- throw new Error('Analytics agent ID must not be empty');
8
- }
9
- let analytics;
10
- const getAnalytics = () => {
11
- analytics ??= createAgentAnalytics(store, agentId, getAgentAnalyticsConfiguration(loadAnalyticsConfiguration(projectRoot), agentId));
12
- return analytics;
13
- };
14
- return {
15
- set(conversationId, values) {
16
- return getAnalytics().set(conversationId, values);
17
- },
18
- clear(conversationId, fieldNames) {
19
- return getAnalytics().clear(conversationId, fieldNames);
20
- },
21
- get(conversationId, fieldName) {
22
- return getAnalytics().get(conversationId, fieldName);
23
- },
24
- };
25
- }
26
- export function loadAnalyticsConfiguration(projectRoot = process.cwd()) {
27
- const filePath = resolve(projectRoot, analyticsConfigurationPath);
28
- let source;
29
- try {
30
- source = readFileSync(filePath, 'utf8');
31
- }
32
- catch (cause) {
33
- throw new Error(`Cannot read analytics configuration at '${filePath}': ${getErrorMessage(cause)}`, { cause });
34
- }
35
- try {
36
- return parseAnalyticsConfiguration(parseYaml(source));
37
- }
38
- catch (cause) {
39
- throw new Error(`Invalid analytics configuration at '${filePath}': ${getErrorMessage(cause)}`, { cause });
40
- }
41
- }
42
- export function getAgentAnalyticsConfiguration(configuration, agentId) {
43
- if (agentId.trim() === '') {
44
- throw new Error('Analytics agent ID must not be empty');
45
- }
46
- if (!Object.hasOwn(configuration, agentId)) {
47
- throw new Error(`Analytics configuration does not contain agent '${agentId}'`);
48
- }
49
- const fields = configuration[agentId];
50
- return fields;
51
- }
52
- export function createAgentAnalytics(store, agentId, fields) {
53
- validateAgentAnalytics(agentId, fields);
54
- const getDefinition = (fieldName) => {
55
- if (!Object.hasOwn(fields, fieldName)) {
56
- throw new Error(`Analytics field '${fieldName}' is not declared for agent '${agentId}'`);
57
- }
58
- const definition = fields[fieldName];
59
- return definition;
60
- };
61
- const parseFieldValue = (fieldName, value) => {
62
- try {
63
- return parseAnalyticsValue(getDefinition(fieldName), value);
64
- }
65
- catch (cause) {
66
- const message = cause instanceof Error ? cause.message : String(cause);
67
- throw new Error(`Invalid analytics value for field '${fieldName}' on agent '${agentId}': ${message}`, { cause });
68
- }
69
- };
70
- return {
71
- async set(conversationId, values) {
72
- if (!isRecord(values)) {
73
- throw new Error('Analytics values must be an object');
74
- }
75
- const parsedValues = Object.fromEntries(Object.entries(values).map(([fieldName, value]) => [
76
- fieldName,
77
- parseFieldValue(fieldName, value),
78
- ]));
79
- await store.set(conversationId, agentId, parsedValues);
80
- },
81
- async clear(conversationId, fieldNames) {
82
- if (!Array.isArray(fieldNames)) {
83
- throw new Error('Analytics field names must be an array');
84
- }
85
- for (const fieldName of fieldNames) {
86
- if (typeof fieldName !== 'string') {
87
- throw new Error('Analytics field name must be a string');
88
- }
89
- getDefinition(fieldName);
90
- }
91
- await store.clear(conversationId, agentId, fieldNames);
92
- },
93
- async get(conversationId, fieldName) {
94
- getDefinition(fieldName);
95
- const value = await store.get(conversationId, agentId, fieldName);
96
- return value === undefined ? undefined : parseFieldValue(fieldName, value);
97
- },
98
- };
99
- }
100
- export function createInMemoryAnalytics(seededConversations = []) {
101
- const conversations = new Map();
102
- const conversationAgents = new Map(seededConversations.map(({ conversationId, agentId }) => [conversationId, agentId]));
103
- return {
104
- async set(conversationId, agentId, values) {
105
- claimConversation(conversationAgents, conversationId, agentId);
106
- const parsedValues = Object.entries(values).map(([fieldName, value]) => {
107
- assertAnalyticsScalar(value);
108
- return [fieldName, value];
109
- });
110
- const conversation = conversations.get(conversationId) ?? new Map();
111
- for (const [fieldName, value] of parsedValues) {
112
- conversation.set(fieldName, value);
113
- }
114
- conversations.set(conversationId, conversation);
115
- },
116
- async clear(conversationId, agentId, fieldNames) {
117
- claimConversation(conversationAgents, conversationId, agentId);
118
- const conversation = conversations.get(conversationId);
119
- for (const fieldName of fieldNames) {
120
- conversation?.delete(fieldName);
121
- }
122
- if (conversation?.size === 0) {
123
- conversations.delete(conversationId);
124
- }
125
- },
126
- async get(conversationId, agentId, fieldName) {
127
- if (conversationAgents.get(conversationId) !== agentId) {
128
- return undefined;
129
- }
130
- return conversations.get(conversationId)?.get(fieldName);
131
- },
132
- };
133
- }
134
- export function assertAnalyticsScalar(value) {
135
- if (typeof value === 'boolean' ||
136
- typeof value === 'string' ||
137
- (typeof value === 'number' && Number.isFinite(value))) {
138
- return;
139
- }
140
- throw new Error('Analytics value must be a boolean, finite number, or string');
141
- }
142
- function parseAnalyticsConfiguration(value) {
143
- if (!isRecord(value)) {
144
- throw new Error('Analytics configuration must be an object');
145
- }
146
- return Object.freeze(Object.fromEntries(Object.entries(value).map(([agentId, fields]) => {
147
- if (agentId.trim() === '') {
148
- throw new Error('Analytics agent ID must not be empty');
149
- }
150
- if (!isRecord(fields)) {
151
- throw new Error(`Analytics configuration for agent '${agentId}' must be an object`);
152
- }
153
- const definitions = Object.freeze(Object.fromEntries(Object.entries(fields).map(([fieldName, definition]) => [
154
- fieldName,
155
- parseFieldDefinition(agentId, fieldName, definition),
156
- ])));
157
- validateAgentAnalytics(agentId, definitions);
158
- return [agentId, definitions];
159
- })));
160
- }
161
- function parseFieldDefinition(agentId, fieldName, value) {
162
- if (!isRecord(value) || typeof value.type !== 'string') {
163
- throw new Error(`Analytics field '${fieldName}' for agent '${agentId}' must declare a type`);
164
- }
165
- if (value.type === 'boolean' || value.type === 'number' || value.type === 'string') {
166
- if (Object.keys(value).some((key) => key !== 'type')) {
167
- throw new Error(`Analytics field '${fieldName}' for agent '${agentId}' has unknown options`);
168
- }
169
- return Object.freeze({ type: value.type });
170
- }
171
- if (value.type === 'enum') {
172
- if (Object.keys(value).some((key) => key !== 'type' && key !== 'values')) {
173
- throw new Error(`Analytics field '${fieldName}' for agent '${agentId}' has unknown options`);
174
- }
175
- if (!Array.isArray(value.values) ||
176
- value.values.length === 0 ||
177
- value.values.some((item) => typeof item !== 'string')) {
178
- throw new Error(`Analytics enum field '${fieldName}' for agent '${agentId}' must contain string values`);
179
- }
180
- const values = value.values;
181
- if (new Set(values).size !== values.length) {
182
- throw new Error(`Analytics enum field '${fieldName}' for agent '${agentId}' contains duplicate values`);
183
- }
184
- return Object.freeze({ type: 'string', values: Object.freeze([...values]) });
185
- }
186
- throw new Error(`Analytics field '${fieldName}' for agent '${agentId}' has unsupported type '${value.type}'`);
187
- }
188
- function validateAgentAnalytics(agentId, fields) {
189
- if (agentId.trim() === '') {
190
- throw new Error('Analytics agent ID must not be empty');
191
- }
192
- for (const fieldName of Object.keys(fields)) {
193
- if (!/^[A-Za-z0-9_.:-]{1,128}$/.test(fieldName)) {
194
- throw new Error('Analytics field name contains unsupported characters');
195
- }
196
- }
197
- }
198
- function parseAnalyticsValue(definition, value) {
199
- assertAnalyticsScalar(value);
200
- if (typeof value !== definition.type) {
201
- throw new Error(`Analytics value must be a ${definition.type}`);
202
- }
203
- if (definition.values && !definition.values.includes(value)) {
204
- throw new Error('Analytics value is not in the configured enum');
205
- }
206
- return value;
207
- }
208
- function claimConversation(conversationAgents, conversationId, agentId) {
209
- const existingAgentId = conversationAgents.get(conversationId);
210
- if (existingAgentId === undefined) {
211
- conversationAgents.set(conversationId, agentId);
212
- return;
213
- }
214
- if (existingAgentId !== agentId) {
215
- throw new Error(`Conversation '${conversationId}' belongs to another agent`);
216
- }
217
- }
218
- function isRecord(value) {
219
- return typeof value === 'object' && value !== null && !Array.isArray(value);
220
- }
221
- function getErrorMessage(error) {
222
- return error instanceof Error ? error.message : String(error);
223
- }
@@ -1,7 +0,0 @@
1
- export { analyticsConfigurationPath, assertAnalyticsScalar, bindAgentAnalytics, createAgentAnalytics, createInMemoryAnalytics, getAgentAnalyticsConfiguration, loadAnalyticsConfiguration, } from './analytics';
2
- export type { AgentAnalytics, AnalyticsConfiguration, AnalyticsFieldDefinition, AnalyticsFieldDefinitions, AnalyticsFieldType, AnalyticsScalar, AnalyticsStore, ConversationRecord, ConversationRepository, PhoneCallRecord, } from './analytics';
3
- export { PostgresAnalytics, PostgresConversationRepository, createPostgresAnalyticsServices, migrateAnalyticsDatabase, } from './postgres-analytics';
4
- export type { PostgresAnalyticsServices } from './postgres-analytics';
5
- export { AnalyticsFieldNotFoundError, AnalyticsQueryError, PostgresAnalyticsQueryService, createPostgresAnalyticsQueryServices, } from './postgres-analytics-query';
6
- export type { AnalyticsFieldMetadata, AnalyticsFieldValue, AnalyticsFieldValues, AnalyticsFields, AnalyticsFilter, AnalyticsMetric, AnalyticsQueryParameters, AnalyticsTimeGranularity, AnalyticsTimeSeries, AnalyticsTimeSeriesItem, AnalyticsTimeSeriesRequest, PostgresAnalyticsQueryServices, TelescopeConversation, TelescopeConversationPage, } from './postgres-analytics-query';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,0BAA0B,GAC7B,MAAM,aAAa,CAAA;AACpB,YAAY,EACR,cAAc,EACd,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EACH,iBAAiB,EACjB,8BAA8B,EAC9B,+BAA+B,EAC/B,wBAAwB,GAC3B,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,EACnB,6BAA6B,EAC7B,oCAAoC,GACvC,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACR,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,GAC5B,MAAM,4BAA4B,CAAA"}
@@ -1,3 +0,0 @@
1
- export { analyticsConfigurationPath, assertAnalyticsScalar, bindAgentAnalytics, createAgentAnalytics, createInMemoryAnalytics, getAgentAnalyticsConfiguration, loadAnalyticsConfiguration, } from './analytics';
2
- export { PostgresAnalytics, PostgresConversationRepository, createPostgresAnalyticsServices, migrateAnalyticsDatabase, } from './postgres-analytics';
3
- export { AnalyticsFieldNotFoundError, AnalyticsQueryError, PostgresAnalyticsQueryService, createPostgresAnalyticsQueryServices, } from './postgres-analytics-query';
@@ -1,117 +0,0 @@
1
- import { PoolConfig, QueryResult } from 'pg';
2
- import { AnalyticsFieldType, AnalyticsScalar } from './analytics';
3
- export type AnalyticsFilter = {
4
- field: string;
5
- operator: 'exists';
6
- } | {
7
- field: string;
8
- operator: 'eq';
9
- value: AnalyticsScalar;
10
- } | {
11
- field: string;
12
- operator: 'in';
13
- values: AnalyticsScalar[];
14
- } | {
15
- field: string;
16
- operator: 'gt' | 'gte' | 'lt' | 'lte';
17
- value: number;
18
- };
19
- export type AnalyticsMetric = {
20
- operation: 'count';
21
- } | {
22
- operation: 'rate';
23
- filter: AnalyticsFilter;
24
- } | {
25
- operation: 'average' | 'sum';
26
- field: string;
27
- };
28
- export type AnalyticsTimeGranularity = 'hour' | 'day' | 'week' | 'month';
29
- export type AnalyticsQueryParameters = Readonly<Record<string, unknown>>;
30
- export interface AnalyticsTimeSeriesRequest {
31
- agentId: string;
32
- from: string | number;
33
- to: string | number;
34
- granularity: AnalyticsTimeGranularity;
35
- metric: AnalyticsMetric;
36
- filters?: AnalyticsFilter[];
37
- region?: string;
38
- channel?: string;
39
- phoneNumber?: string;
40
- minDurationSeconds?: number;
41
- maxDurationSeconds?: number;
42
- }
43
- export interface TelescopeConversation {
44
- conversationId: string;
45
- medium: string;
46
- agentId: string;
47
- region?: string;
48
- phoneNumber?: string;
49
- duration?: number;
50
- audioUrl?: string;
51
- createdAt: number;
52
- endedAt?: number;
53
- analytics: Record<string, AnalyticsScalar>;
54
- }
55
- export interface TelescopeConversationPage {
56
- limit: number;
57
- items: TelescopeConversation[];
58
- lastConversationId?: string;
59
- }
60
- export interface AnalyticsFieldValue {
61
- value: AnalyticsScalar;
62
- count: number;
63
- }
64
- export interface AnalyticsFieldMetadata {
65
- field: string;
66
- type: AnalyticsFieldType;
67
- distinctValueCount: number;
68
- }
69
- export interface AnalyticsFields {
70
- items: AnalyticsFieldMetadata[];
71
- }
72
- export interface AnalyticsFieldValues {
73
- items: AnalyticsFieldValue[];
74
- nextCursor: string | null;
75
- }
76
- export interface AnalyticsTimeSeriesItem {
77
- startAt: string;
78
- value: number | null;
79
- numerator?: number;
80
- denominator?: number;
81
- }
82
- export interface AnalyticsTimeSeries {
83
- metric: AnalyticsMetric;
84
- granularity: AnalyticsTimeGranularity;
85
- from: string;
86
- to: string;
87
- items: AnalyticsTimeSeriesItem[];
88
- }
89
- interface Queryable {
90
- query<TResult extends Record<string, unknown> = Record<string, unknown>>(text: string, values?: unknown[]): Promise<QueryResult<TResult>>;
91
- }
92
- export declare class AnalyticsQueryError extends Error {
93
- name: string;
94
- }
95
- export declare class AnalyticsFieldNotFoundError extends Error {
96
- readonly agentId: string;
97
- readonly field: string;
98
- name: string;
99
- constructor(agentId: string, field: string);
100
- }
101
- export declare class PostgresAnalyticsQueryService {
102
- private readonly database;
103
- constructor(database: Queryable);
104
- getConversation(conversationId: string): Promise<TelescopeConversation | undefined>;
105
- getConversations(query: AnalyticsQueryParameters): Promise<TelescopeConversationPage>;
106
- getAnalyticsFields(query: AnalyticsQueryParameters): Promise<AnalyticsFields>;
107
- getAnalyticsFieldValues(field: string, query: AnalyticsQueryParameters): Promise<AnalyticsFieldValues>;
108
- getTimeSeries(request: AnalyticsTimeSeriesRequest): Promise<AnalyticsTimeSeries>;
109
- private assertNumericAnalyticsField;
110
- }
111
- export interface PostgresAnalyticsQueryServices {
112
- queries: PostgresAnalyticsQueryService;
113
- close(): Promise<void>;
114
- }
115
- export declare function createPostgresAnalyticsQueryServices(config: PoolConfig): PostgresAnalyticsQueryServices;
116
- export {};
117
- //# sourceMappingURL=postgres-analytics-query.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres-analytics-query.d.ts","sourceRoot":"","sources":["../../src/analytics/postgres-analytics-query.ts"],"names":[],"mappings":"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"}