@recombine-ai/platform 0.8.0-test.1 → 0.8.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 (504) hide show
  1. package/build/agent/experiment.d.ts +21 -0
  2. package/build/agent/experiment.d.ts.map +1 -0
  3. package/build/agent/experiment.js +29 -0
  4. package/build/agent/index.d.ts +6 -4
  5. package/build/agent/index.d.ts.map +1 -1
  6. package/build/agent/index.js +3 -2
  7. package/build/agent/text-agent.d.ts +2 -2
  8. package/build/agent/text-agent.d.ts.map +1 -1
  9. package/build/agent/text-agent.js +2 -2
  10. package/build/agent/voice-agent.d.ts +2 -2
  11. package/build/agent/voice-agent.d.ts.map +1 -1
  12. package/build/agent/voice-agent.js +2 -2
  13. package/build/bosun/index.d.ts +11 -10
  14. package/build/bosun/index.d.ts.map +1 -1
  15. package/build/bosun/index.js +7 -7
  16. package/build/bosun/interfaces/agent.d.ts +6 -5
  17. package/build/bosun/interfaces/agent.d.ts.map +1 -1
  18. package/build/bosun/interfaces/project.d.ts +25 -0
  19. package/build/bosun/interfaces/project.d.ts.map +1 -0
  20. package/build/bosun/interfaces/project.js +1 -0
  21. package/build/bosun/mock.d.ts +1 -1
  22. package/build/bosun/mock.d.ts.map +1 -1
  23. package/build/bosun/std-mocks/call-control.d.ts +2 -2
  24. package/build/bosun/std-mocks/call-control.d.ts.map +1 -1
  25. package/build/bosun/std-mocks/platform.d.ts +2 -2
  26. package/build/bosun/std-mocks/platform.d.ts.map +1 -1
  27. package/build/bosun/std-mocks/platform.js +6 -6
  28. package/build/bosun/test-agent.d.ts +2 -2
  29. package/build/bosun/test-agent.d.ts.map +1 -1
  30. package/build/bosun/test-agent.js +1 -1
  31. package/build/bosun/test-step-registry.d.ts +1 -1
  32. package/build/bosun/test-step-registry.d.ts.map +1 -1
  33. package/build/bosun-app/backend/server.js +252 -60
  34. package/build/bosun-app/backend/server.js.map +2 -2
  35. package/build/bosun-app/frontend/client/_app/immutable/chunks/{CR5IRTqC.js → AmpxVxY6.js} +1 -1
  36. package/build/bosun-app/frontend/client/_app/immutable/chunks/AmpxVxY6.js.br +0 -0
  37. package/build/bosun-app/frontend/client/_app/immutable/chunks/AmpxVxY6.js.gz +0 -0
  38. package/build/bosun-app/frontend/client/_app/immutable/chunks/{DjDpMqch.js → B-5g3xS8.js} +20 -20
  39. package/build/bosun-app/frontend/client/_app/immutable/chunks/B-5g3xS8.js.br +0 -0
  40. package/build/bosun-app/frontend/client/_app/immutable/chunks/B-5g3xS8.js.gz +0 -0
  41. package/build/bosun-app/frontend/client/_app/immutable/chunks/{BBk8_Xpk.js → B1MxGo6p.js} +1 -1
  42. package/build/bosun-app/frontend/client/_app/immutable/chunks/B1MxGo6p.js.br +0 -0
  43. package/build/bosun-app/frontend/client/_app/immutable/chunks/B1MxGo6p.js.gz +0 -0
  44. package/build/bosun-app/frontend/client/_app/immutable/chunks/{joiJcRPz.js → BqH4VDQz.js} +1 -1
  45. package/build/bosun-app/frontend/client/_app/immutable/chunks/BqH4VDQz.js.br +0 -0
  46. package/build/bosun-app/frontend/client/_app/immutable/chunks/BqH4VDQz.js.gz +0 -0
  47. package/build/bosun-app/frontend/client/_app/immutable/chunks/{B3KppP__.js → CQvDMTjY.js} +1 -1
  48. package/build/bosun-app/frontend/client/_app/immutable/chunks/CQvDMTjY.js.br +0 -0
  49. package/build/bosun-app/frontend/client/_app/immutable/chunks/CQvDMTjY.js.gz +0 -0
  50. package/build/bosun-app/frontend/client/_app/immutable/chunks/{C0rPkxmP.js → CVZT6n14.js} +1 -1
  51. package/build/bosun-app/frontend/client/_app/immutable/chunks/CVZT6n14.js.br +0 -0
  52. package/build/bosun-app/frontend/client/_app/immutable/chunks/CVZT6n14.js.gz +0 -0
  53. package/build/bosun-app/frontend/client/_app/immutable/chunks/{Csk7d6BP.js → CWPN78Jk.js} +1 -1
  54. package/build/bosun-app/frontend/client/_app/immutable/chunks/CWPN78Jk.js.br +0 -0
  55. package/build/bosun-app/frontend/client/_app/immutable/chunks/CWPN78Jk.js.gz +0 -0
  56. package/build/bosun-app/frontend/client/_app/immutable/chunks/{ouMvMh56.js → CkstLsmI.js} +1 -1
  57. package/build/bosun-app/frontend/client/_app/immutable/chunks/CkstLsmI.js.br +0 -0
  58. package/build/bosun-app/frontend/client/_app/immutable/chunks/CkstLsmI.js.gz +0 -0
  59. package/build/bosun-app/frontend/client/_app/immutable/chunks/{C3cROXCy.js → CuwQtXBl.js} +1 -1
  60. package/build/bosun-app/frontend/client/_app/immutable/chunks/CuwQtXBl.js.br +0 -0
  61. package/build/bosun-app/frontend/client/_app/immutable/chunks/CuwQtXBl.js.gz +0 -0
  62. package/build/bosun-app/frontend/client/_app/immutable/chunks/{BEdAvgYp.js → D9YsE4-8.js} +1 -1
  63. package/build/bosun-app/frontend/client/_app/immutable/chunks/D9YsE4-8.js.br +0 -0
  64. package/build/bosun-app/frontend/client/_app/immutable/chunks/D9YsE4-8.js.gz +0 -0
  65. package/build/bosun-app/frontend/client/_app/immutable/chunks/{CFHTd1Rp.js → DK7_9Rr4.js} +1 -1
  66. package/build/bosun-app/frontend/client/_app/immutable/chunks/DK7_9Rr4.js.br +3 -0
  67. package/build/bosun-app/frontend/client/_app/immutable/chunks/DK7_9Rr4.js.gz +0 -0
  68. package/build/bosun-app/frontend/client/_app/immutable/chunks/{g-PBecQM.js → O3fJLrRA.js} +1 -1
  69. package/build/bosun-app/frontend/client/_app/immutable/chunks/O3fJLrRA.js.br +0 -0
  70. package/build/bosun-app/frontend/client/_app/immutable/chunks/O3fJLrRA.js.gz +0 -0
  71. package/build/bosun-app/frontend/client/_app/immutable/chunks/{DJnDF3d9.js → dL_jwANm.js} +1 -1
  72. package/build/bosun-app/frontend/client/_app/immutable/chunks/dL_jwANm.js.br +0 -0
  73. package/build/bosun-app/frontend/client/_app/immutable/chunks/dL_jwANm.js.gz +0 -0
  74. package/build/bosun-app/frontend/client/_app/immutable/chunks/w7_NKWP1.js +3 -0
  75. package/build/bosun-app/frontend/client/_app/immutable/chunks/w7_NKWP1.js.br +0 -0
  76. package/build/bosun-app/frontend/client/_app/immutable/chunks/w7_NKWP1.js.gz +0 -0
  77. package/build/bosun-app/frontend/client/_app/immutable/entry/{app.Trw4ULuE.js → app.Bq7QRKSZ.js} +2 -2
  78. package/build/bosun-app/frontend/client/_app/immutable/entry/app.Bq7QRKSZ.js.br +0 -0
  79. package/build/bosun-app/frontend/client/_app/immutable/entry/app.Bq7QRKSZ.js.gz +0 -0
  80. package/build/bosun-app/frontend/client/_app/immutable/entry/start.Ct26YHfm.js +1 -0
  81. package/build/bosun-app/frontend/client/_app/immutable/entry/start.Ct26YHfm.js.br +0 -0
  82. package/build/bosun-app/frontend/client/_app/immutable/entry/start.Ct26YHfm.js.gz +0 -0
  83. package/build/bosun-app/frontend/client/_app/immutable/nodes/{0.D_60dBJ-.js → 0.CIBqOQKB.js} +1 -1
  84. package/build/bosun-app/frontend/client/_app/immutable/nodes/0.CIBqOQKB.js.br +0 -0
  85. package/build/bosun-app/frontend/client/_app/immutable/nodes/0.CIBqOQKB.js.gz +0 -0
  86. package/build/bosun-app/frontend/client/_app/immutable/nodes/{1.Cb20jEGe.js → 1.Dv78wD0F.js} +1 -1
  87. package/build/bosun-app/frontend/client/_app/immutable/nodes/1.Dv78wD0F.js.br +0 -0
  88. package/build/bosun-app/frontend/client/_app/immutable/nodes/1.Dv78wD0F.js.gz +0 -0
  89. package/build/bosun-app/frontend/client/_app/immutable/nodes/10.Htrpia-u.js +35 -0
  90. package/build/bosun-app/frontend/client/_app/immutable/nodes/10.Htrpia-u.js.br +0 -0
  91. package/build/bosun-app/frontend/client/_app/immutable/nodes/10.Htrpia-u.js.gz +0 -0
  92. package/build/bosun-app/frontend/client/_app/immutable/nodes/{17.Dn5eKe2Q.js → 17.DmVfus5a.js} +1 -1
  93. package/build/bosun-app/frontend/client/_app/immutable/nodes/17.DmVfus5a.js.br +0 -0
  94. package/build/bosun-app/frontend/client/_app/immutable/nodes/17.DmVfus5a.js.gz +0 -0
  95. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.DvJVYeXp.js +11 -0
  96. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.DvJVYeXp.js.br +0 -0
  97. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.DvJVYeXp.js.gz +0 -0
  98. package/build/bosun-app/frontend/client/_app/immutable/nodes/2.tyuQRxDb.js +35 -0
  99. package/build/bosun-app/frontend/client/_app/immutable/nodes/2.tyuQRxDb.js.br +0 -0
  100. package/build/bosun-app/frontend/client/_app/immutable/nodes/2.tyuQRxDb.js.gz +0 -0
  101. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.B0NtJamE.js +1 -0
  102. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.B0NtJamE.js.br +0 -0
  103. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.B0NtJamE.js.gz +0 -0
  104. package/build/bosun-app/frontend/client/_app/immutable/nodes/{4.BhBj3Qad.js → 4.DKTRRObl.js} +1 -1
  105. package/build/bosun-app/frontend/client/_app/immutable/nodes/4.DKTRRObl.js.br +0 -0
  106. package/build/bosun-app/frontend/client/_app/immutable/nodes/4.DKTRRObl.js.gz +0 -0
  107. package/build/bosun-app/frontend/client/_app/immutable/nodes/{5.CMK8bzwn.js → 5.D9SClLPX.js} +1 -1
  108. package/build/bosun-app/frontend/client/_app/immutable/nodes/5.D9SClLPX.js.br +0 -0
  109. package/build/bosun-app/frontend/client/_app/immutable/nodes/5.D9SClLPX.js.gz +0 -0
  110. package/build/bosun-app/frontend/client/_app/immutable/nodes/{6.crW0u6fy.js → 6.DdAs7BvU.js} +1 -1
  111. package/build/bosun-app/frontend/client/_app/immutable/nodes/6.DdAs7BvU.js.br +0 -0
  112. package/build/bosun-app/frontend/client/_app/immutable/nodes/6.DdAs7BvU.js.gz +0 -0
  113. package/build/bosun-app/frontend/client/_app/immutable/nodes/{8.CxQxpCTc.js → 8.DNEyJy0a.js} +1 -1
  114. package/build/bosun-app/frontend/client/_app/immutable/nodes/8.DNEyJy0a.js.br +0 -0
  115. package/build/bosun-app/frontend/client/_app/immutable/nodes/8.DNEyJy0a.js.gz +0 -0
  116. package/build/bosun-app/frontend/client/_app/immutable/nodes/9.DcyIUk-F.js +2 -0
  117. package/build/bosun-app/frontend/client/_app/immutable/nodes/9.DcyIUk-F.js.br +0 -0
  118. package/build/bosun-app/frontend/client/_app/immutable/nodes/9.DcyIUk-F.js.gz +0 -0
  119. package/build/bosun-app/frontend/client/_app/version.json +1 -1
  120. package/build/bosun-app/frontend/client/_app/version.json.br +0 -0
  121. package/build/bosun-app/frontend/client/_app/version.json.gz +0 -0
  122. package/build/bosun-app/frontend/handler.js +4 -4
  123. package/build/bosun-app/frontend/index.js +4 -4
  124. package/build/bosun-app/frontend/server/chunks/chunks/{ChatStepTrace.js-VTtwaKGp.js → ChatStepTrace.js-BY0y3Vbb.js} +3 -1
  125. package/build/bosun-app/frontend/server/chunks/chunks/ChatStepTrace.js-BY0y3Vbb.js.map +1 -0
  126. package/build/bosun-app/frontend/server/chunks/chunks/{internal.js-BTDNvJ-c.js → internal.js-CTNBeiir.js} +2 -2
  127. package/build/bosun-app/frontend/server/chunks/chunks/{internal.js-BTDNvJ-c.js.map → internal.js-CTNBeiir.js.map} +1 -1
  128. package/build/bosun-app/frontend/server/chunks/chunks/{source-selection.js-D5B8gfq2.js → source-selection.js-DFpObbhz.js} +3 -1
  129. package/build/bosun-app/frontend/server/chunks/chunks/source-selection.js-DFpObbhz.js.map +1 -0
  130. package/build/bosun-app/frontend/server/chunks/entries/pages/edit/_agent_/{_layout.svelte.js-B2wHKJV7.js → _layout.svelte.js-b9Q5TFEZ.js} +134 -24
  131. package/build/bosun-app/frontend/server/chunks/entries/pages/edit/_agent_/_layout.svelte.js-b9Q5TFEZ.js.map +1 -0
  132. package/build/bosun-app/frontend/server/chunks/entries/pages/edit/_agent_/roleplay/{_page.svelte.js-DDcIjgZD.js → _page.svelte.js-Chv8ybaj.js} +10 -4
  133. package/build/bosun-app/frontend/server/chunks/entries/pages/edit/_agent_/roleplay/_page.svelte.js-Chv8ybaj.js.map +1 -0
  134. package/build/bosun-app/frontend/server/chunks/entries/pages/edit/_agent_/tests/{_page.svelte.js-UVUg89-t.js → _page.svelte.js-Dkst1C_3.js} +3 -1
  135. package/build/bosun-app/frontend/server/chunks/entries/pages/edit/_agent_/tests/_page.svelte.js-Dkst1C_3.js.map +1 -0
  136. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/{_page.svelte.js-SjAtxtA0.js → _page.svelte.js-DFZznMhQ.js} +2 -2
  137. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/{_page.svelte.js-SjAtxtA0.js.map → _page.svelte.js-DFZznMhQ.js.map} +1 -1
  138. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/traces/{_page.svelte.js-DiZKDT2v.js → _page.svelte.js-Bxdn8vG5.js} +7 -3
  139. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/traces/_page.svelte.js-Bxdn8vG5.js.map +1 -0
  140. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/{_layout.svelte.js-CfkCQ2Th.js → _layout.svelte.js-DhdYiNVL.js} +61 -9
  141. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_layout.svelte.js-DhdYiNVL.js.map +1 -0
  142. package/build/bosun-app/frontend/server/chunks/{handler-BXPSqa_7.js → handler-kZm9DU-v.js} +3 -3
  143. package/build/bosun-app/frontend/server/chunks/{handler-BXPSqa_7.js.map → handler-kZm9DU-v.js.map} +1 -1
  144. package/build/bosun-app/frontend/server/chunks/{index.js-BZbRqClk.js → index.js-BYV_PeV-.js} +2 -2
  145. package/build/bosun-app/frontend/server/chunks/{index.js-BZbRqClk.js.map → index.js-BYV_PeV-.js.map} +1 -1
  146. package/build/bosun-app/frontend/server/chunks/{manifest.js-p3UnZHmy.js → manifest.js-DknJwtFc.js} +14 -14
  147. package/build/bosun-app/frontend/server/chunks/{manifest.js-p3UnZHmy.js.map → manifest.js-DknJwtFc.js.map} +1 -1
  148. package/build/bosun-app/frontend/server/chunks/nodes/{0.js-BQwWqY6O.js → 0.js-B947oA7Q.js} +2 -2
  149. package/build/bosun-app/frontend/server/chunks/nodes/{0.js-BQwWqY6O.js.map → 0.js-B947oA7Q.js.map} +1 -1
  150. package/build/bosun-app/frontend/server/chunks/nodes/{1.js-DWMXqkHn.js → 1.js-D-bO8SBw.js} +2 -2
  151. package/build/bosun-app/frontend/server/chunks/nodes/{1.js-DWMXqkHn.js.map → 1.js-D-bO8SBw.js.map} +1 -1
  152. package/build/bosun-app/frontend/server/chunks/nodes/{10.js-CB3GNMkF.js → 10.js-BPINRsAS.js} +3 -3
  153. package/build/bosun-app/frontend/server/chunks/nodes/{10.js-CB3GNMkF.js.map → 10.js-BPINRsAS.js.map} +1 -1
  154. package/build/bosun-app/frontend/server/chunks/nodes/{17.js-DPvcLgLR.js → 17.js-BvBqWcLx.js} +3 -3
  155. package/build/bosun-app/frontend/server/chunks/nodes/{17.js-DPvcLgLR.js.map → 17.js-BvBqWcLx.js.map} +1 -1
  156. package/build/bosun-app/frontend/server/chunks/nodes/{18.js-B_lhm3O6.js → 18.js-BEfVGplP.js} +3 -3
  157. package/build/bosun-app/frontend/server/chunks/nodes/{18.js-B_lhm3O6.js.map → 18.js-BEfVGplP.js.map} +1 -1
  158. package/build/bosun-app/frontend/server/chunks/nodes/{2.js-Jm4bxpsW.js → 2.js-XaMsKwVG.js} +3 -3
  159. package/build/bosun-app/frontend/server/chunks/nodes/{2.js-Jm4bxpsW.js.map → 2.js-XaMsKwVG.js.map} +1 -1
  160. package/build/bosun-app/frontend/server/chunks/nodes/{3.js-DQMKjGbU.js → 3.js-9Rmo9ovG.js} +3 -3
  161. package/build/bosun-app/frontend/server/chunks/nodes/{3.js-DQMKjGbU.js.map → 3.js-9Rmo9ovG.js.map} +1 -1
  162. package/build/bosun-app/frontend/server/chunks/nodes/{4.js-BKjbVr3z.js → 4.js-DHzNp2kw.js} +2 -2
  163. package/build/bosun-app/frontend/server/chunks/nodes/{4.js-BKjbVr3z.js.map → 4.js-DHzNp2kw.js.map} +1 -1
  164. package/build/bosun-app/frontend/server/chunks/nodes/{5.js-zoBBtYRJ.js → 5.js-BtTetd8U.js} +2 -2
  165. package/build/bosun-app/frontend/server/chunks/nodes/{5.js-zoBBtYRJ.js.map → 5.js-BtTetd8U.js.map} +1 -1
  166. package/build/bosun-app/frontend/server/chunks/nodes/{6.js-x3TWBh2g.js → 6.js-dyYItn4O.js} +2 -2
  167. package/build/bosun-app/frontend/server/chunks/nodes/{6.js-x3TWBh2g.js.map → 6.js-dyYItn4O.js.map} +1 -1
  168. package/build/bosun-app/frontend/server/chunks/nodes/{8.js-lsQ6rRax.js → 8.js-D5qfNA9r.js} +2 -2
  169. package/build/bosun-app/frontend/server/chunks/nodes/{8.js-lsQ6rRax.js.map → 8.js-D5qfNA9r.js.map} +1 -1
  170. package/build/bosun-app/frontend/server/chunks/nodes/{9.js-MXqtxrRo.js → 9.js-CxI4tPnx.js} +3 -3
  171. package/build/bosun-app/frontend/server/chunks/nodes/{9.js-MXqtxrRo.js.map → 9.js-CxI4tPnx.js.map} +1 -1
  172. package/build/build/build.d.ts +1 -1
  173. package/build/build/build.d.ts.map +1 -1
  174. package/build/build/build.js +1 -1
  175. package/build/build/cli.js +2 -2
  176. package/build/build/index.d.ts +4 -4
  177. package/build/build/index.d.ts.map +1 -1
  178. package/build/build/index.js +3 -3
  179. package/build/call-control/call-control.d.ts +4 -4
  180. package/build/call-control/call-control.d.ts.map +1 -1
  181. package/build/call-control/call-control.js +4 -6
  182. package/build/call-control/call-details/index.d.ts +1 -1
  183. package/build/call-control/call-details/index.d.ts.map +1 -1
  184. package/build/call-control/call-details/index.js +1 -1
  185. package/build/call-control/call-details/noop-storage.d.ts +1 -1
  186. package/build/call-control/call-details/noop-storage.d.ts.map +1 -1
  187. package/build/call-control/index.d.ts +6 -7
  188. package/build/call-control/index.d.ts.map +1 -1
  189. package/build/call-control/index.js +4 -5
  190. package/build/call-control/port.d.ts +2 -2
  191. package/build/call-control/port.d.ts.map +1 -1
  192. package/build/call-control/schemas.generated.d.ts +2 -1
  193. package/build/call-control/schemas.generated.d.ts.map +1 -1
  194. package/build/call-control/schemas.generated.js +4 -4
  195. package/build/call-control/sip-setup-lock.d.ts +1 -1
  196. package/build/call-control/sip-setup-lock.d.ts.map +1 -1
  197. package/build/call-control/sip-setup-lock.js +1 -1
  198. package/build/call-control/sip.d.ts +2 -2
  199. package/build/call-control/sip.d.ts.map +1 -1
  200. package/build/call-control/sip.js +3 -3
  201. package/build/call-control/types.d.ts +160 -7
  202. package/build/call-control/types.d.ts.map +1 -1
  203. package/build/call-control/types.js +3 -3
  204. package/build/call-control/utils.d.ts +1 -1
  205. package/build/call-control/utils.d.ts.map +1 -1
  206. package/build/core/get-text-platform.d.ts +4 -4
  207. package/build/core/get-text-platform.d.ts.map +1 -1
  208. package/build/core/get-text-platform.js +4 -4
  209. package/build/core/get-voice-platform.d.ts +6 -6
  210. package/build/core/get-voice-platform.d.ts.map +1 -1
  211. package/build/core/get-voice-platform.js +5 -5
  212. package/build/core/index.d.ts +5 -5
  213. package/build/core/index.d.ts.map +1 -1
  214. package/build/core/index.js +2 -2
  215. package/build/core/platform.d.ts +6 -6
  216. package/build/core/platform.d.ts.map +1 -1
  217. package/build/dockyard/index.d.ts +3 -3
  218. package/build/dockyard/index.d.ts.map +1 -1
  219. package/build/dockyard/index.js +2 -2
  220. package/build/dockyard/logger/base.d.ts +1 -1
  221. package/build/dockyard/logger/base.d.ts.map +1 -1
  222. package/build/dockyard/logger/helpers.d.ts +1 -1
  223. package/build/dockyard/logger/helpers.d.ts.map +1 -1
  224. package/build/dockyard/logger/index.d.ts +3 -3
  225. package/build/dockyard/logger/index.d.ts.map +1 -1
  226. package/build/dockyard/logger/index.js +4 -4
  227. package/build/engine/bosun/agent.d.ts +6 -6
  228. package/build/engine/bosun/agent.d.ts.map +1 -1
  229. package/build/engine/bosun/api-call-tracer.d.ts +3 -3
  230. package/build/engine/bosun/api-call-tracer.d.ts.map +1 -1
  231. package/build/engine/bosun/conversational-tracer.d.ts +3 -3
  232. package/build/engine/bosun/conversational-tracer.d.ts.map +1 -1
  233. package/build/engine/bosun/index.d.ts +8 -8
  234. package/build/engine/bosun/index.d.ts.map +1 -1
  235. package/build/engine/bosun/index.js +7 -7
  236. package/build/engine/bosun/mock.d.ts +1 -1
  237. package/build/engine/bosun/mock.d.ts.map +1 -1
  238. package/build/engine/bosun/step-tracer.d.ts +3 -3
  239. package/build/engine/bosun/step-tracer.d.ts.map +1 -1
  240. package/build/engine/default-logger.d.ts +1 -1
  241. package/build/engine/default-logger.d.ts.map +1 -1
  242. package/build/engine/default-logger.js +1 -1
  243. package/build/engine/engine.d.ts +2 -2
  244. package/build/engine/engine.d.ts.map +1 -1
  245. package/build/engine/engine.js +4 -4
  246. package/build/engine/index.d.ts +14 -14
  247. package/build/engine/index.d.ts.map +1 -1
  248. package/build/engine/index.js +7 -7
  249. package/build/engine/interfaces/adapter.d.ts +1 -1
  250. package/build/engine/interfaces/adapter.d.ts.map +1 -1
  251. package/build/engine/interfaces/engine.d.ts +6 -6
  252. package/build/engine/interfaces/engine.d.ts.map +1 -1
  253. package/build/engine/interfaces/index.d.ts +7 -7
  254. package/build/engine/interfaces/index.d.ts.map +1 -1
  255. package/build/engine/interfaces/index.js +7 -7
  256. package/build/engine/interfaces/other.d.ts +2 -2
  257. package/build/engine/interfaces/other.d.ts.map +1 -1
  258. package/build/engine/interfaces/steps.d.ts +4 -4
  259. package/build/engine/interfaces/steps.d.ts.map +1 -1
  260. package/build/engine/interfaces/stream.d.ts +6 -6
  261. package/build/engine/interfaces/stream.d.ts.map +1 -1
  262. package/build/engine/interfaces/workflow.d.ts +2 -2
  263. package/build/engine/interfaces/workflow.d.ts.map +1 -1
  264. package/build/engine/llm-adapters/index.d.ts +4 -4
  265. package/build/engine/llm-adapters/index.d.ts.map +1 -1
  266. package/build/engine/llm-adapters/index.js +4 -4
  267. package/build/engine/llm-adapters/mock.d.ts +1 -1
  268. package/build/engine/llm-adapters/mock.d.ts.map +1 -1
  269. package/build/engine/llm-adapters/openai-stream.d.ts +1 -1
  270. package/build/engine/llm-adapters/openai-stream.d.ts.map +1 -1
  271. package/build/engine/llm-adapters/openai-stream.js +2 -2
  272. package/build/engine/llm-adapters/openai.d.ts +1 -1
  273. package/build/engine/llm-adapters/openai.d.ts.map +1 -1
  274. package/build/engine/llm-adapters/openai.js +2 -2
  275. package/build/engine/llm-adapters/provider.d.ts +1 -1
  276. package/build/engine/llm-adapters/provider.d.ts.map +1 -1
  277. package/build/engine/monitoring/index.d.ts +1 -1
  278. package/build/engine/monitoring/index.d.ts.map +1 -1
  279. package/build/engine/monitoring/index.js +1 -1
  280. package/build/engine/monitoring/provider-errors.d.ts +3 -3
  281. package/build/engine/monitoring/provider-errors.d.ts.map +1 -1
  282. package/build/engine/prompt-fs.d.ts +1 -1
  283. package/build/engine/prompt-fs.d.ts.map +1 -1
  284. package/build/engine/prompt-fs.js +1 -1
  285. package/build/engine/step-registry.d.ts +2 -2
  286. package/build/engine/step-registry.d.ts.map +1 -1
  287. package/build/engine/stream/engine.d.ts +1 -1
  288. package/build/engine/stream/engine.d.ts.map +1 -1
  289. package/build/engine/stream/engine.js +5 -5
  290. package/build/engine/stream/get-client.d.ts +1 -1
  291. package/build/engine/stream/get-client.d.ts.map +1 -1
  292. package/build/engine/stream/index.d.ts +3 -3
  293. package/build/engine/stream/index.d.ts.map +1 -1
  294. package/build/engine/stream/index.js +2 -2
  295. package/build/index.d.ts +2 -2
  296. package/build/index.d.ts.map +1 -1
  297. package/build/index.js +2 -2
  298. package/build/notifications/index.d.ts +4 -4
  299. package/build/notifications/index.d.ts.map +1 -1
  300. package/build/notifications/index.js +4 -4
  301. package/build/notifications/logger.d.ts +1 -1
  302. package/build/notifications/logger.d.ts.map +1 -1
  303. package/build/notifications/logger.js +1 -1
  304. package/build/notifications/publisher.d.ts +1 -1
  305. package/build/notifications/publisher.d.ts.map +1 -1
  306. package/build/notifications/publisher.js +2 -2
  307. package/build/notifications/router.d.ts +3 -3
  308. package/build/notifications/router.d.ts.map +1 -1
  309. package/build/notifications/router.js +2 -2
  310. package/build/notifications/transport.d.ts +1 -1
  311. package/build/notifications/transport.d.ts.map +1 -1
  312. package/build/notifications/transport.js +1 -1
  313. package/build/steps/helpers.d.ts +2 -2
  314. package/build/steps/helpers.d.ts.map +1 -1
  315. package/build/steps/index.d.ts +9 -9
  316. package/build/steps/index.d.ts.map +1 -1
  317. package/build/steps/index.js +5 -5
  318. package/build/steps/slot-booker/book-slot/step.d.ts +4 -4
  319. package/build/steps/slot-booker/book-slot/step.d.ts.map +1 -1
  320. package/build/steps/slot-booker/book-slot/step.js +2 -2
  321. package/build/steps/slot-booker/check-slots-for-match/step.d.ts +4 -4
  322. package/build/steps/slot-booker/check-slots-for-match/step.d.ts.map +1 -1
  323. package/build/steps/slot-booker/check-slots-for-match/step.js +1 -1
  324. package/build/steps/slot-booker/cleanup/step.d.ts +4 -4
  325. package/build/steps/slot-booker/cleanup/step.d.ts.map +1 -1
  326. package/build/steps/slot-booker/find-slots/step.d.ts +4 -4
  327. package/build/steps/slot-booker/find-slots/step.d.ts.map +1 -1
  328. package/build/steps/slot-booker/find-slots/step.js +2 -2
  329. package/build/steps/slot-booker/init/step.d.ts +4 -4
  330. package/build/steps/slot-booker/init/step.d.ts.map +1 -1
  331. package/build/steps/slot-booker/interfaces.d.ts +4 -4
  332. package/build/steps/slot-booker/interfaces.d.ts.map +1 -1
  333. package/build/steps/slot-booker/slot-booker.d.ts +7 -7
  334. package/build/steps/slot-booker/slot-booker.d.ts.map +1 -1
  335. package/build/steps/slot-booker/slot-booker.js +6 -6
  336. package/build/steps/slot-booker/util.d.ts +1 -1
  337. package/build/steps/slot-booker/util.d.ts.map +1 -1
  338. package/build/telescope/api.d.ts +1 -1
  339. package/build/telescope/api.d.ts.map +1 -1
  340. package/build/telescope/api.js +8 -2
  341. package/build/telescope/create-telescope.d.ts +3 -3
  342. package/build/telescope/create-telescope.d.ts.map +1 -1
  343. package/build/telescope/create-telescope.js +3 -3
  344. package/build/telescope/index.d.ts +21 -21
  345. package/build/telescope/index.d.ts.map +1 -1
  346. package/build/telescope/index.js +8 -8
  347. package/build/telescope/interfaces/conversation.d.ts +8 -0
  348. package/build/telescope/interfaces/conversation.d.ts.map +1 -1
  349. package/build/telescope/interfaces/event-tracer.d.ts +8 -0
  350. package/build/telescope/interfaces/event-tracer.d.ts.map +1 -1
  351. package/build/telescope/interfaces/storage.d.ts +3 -3
  352. package/build/telescope/interfaces/storage.d.ts.map +1 -1
  353. package/build/telescope/interfaces/telescope.d.ts +7 -6
  354. package/build/telescope/interfaces/telescope.d.ts.map +1 -1
  355. package/build/telescope/interfaces/traces.d.ts +1 -1
  356. package/build/telescope/interfaces/traces.d.ts.map +1 -1
  357. package/build/telescope/stub-storage.d.ts +5 -5
  358. package/build/telescope/stub-storage.d.ts.map +1 -1
  359. package/build/telescope/stub-storage.js +4 -9
  360. package/build/telescope/stub-telescope.d.ts +2 -2
  361. package/build/telescope/stub-telescope.d.ts.map +1 -1
  362. package/build/telescope/stub-telescope.js +1 -1
  363. package/build/telescope/stubs.d.ts +5 -5
  364. package/build/telescope/stubs.d.ts.map +1 -1
  365. package/build/telescope/telescope.d.ts +6 -6
  366. package/build/telescope/telescope.d.ts.map +1 -1
  367. package/build/telescope/telescope.js +1 -1
  368. package/build/telescope/trace-helpers.d.ts +3 -3
  369. package/build/telescope/trace-helpers.d.ts.map +1 -1
  370. package/build/telescope/tracers/api-call-tracer.d.ts +4 -4
  371. package/build/telescope/tracers/api-call-tracer.d.ts.map +1 -1
  372. package/build/telescope/tracers/conversational-tracer.d.ts +4 -4
  373. package/build/telescope/tracers/conversational-tracer.d.ts.map +1 -1
  374. package/build/telescope/tracers/event-tracer.d.ts +2 -2
  375. package/build/telescope/tracers/event-tracer.d.ts.map +1 -1
  376. package/build/telescope/tracers/event-tracer.js +5 -0
  377. package/build/telescope/tracers/index.d.ts +6 -6
  378. package/build/telescope/tracers/index.d.ts.map +1 -1
  379. package/build/telescope/tracers/index.js +5 -5
  380. package/build/telescope/tracers/latency-tracer.d.ts +4 -4
  381. package/build/telescope/tracers/latency-tracer.d.ts.map +1 -1
  382. package/build/telescope/tracers/step-tracer.d.ts +4 -4
  383. package/build/telescope/tracers/step-tracer.d.ts.map +1 -1
  384. package/build/text-agent-handlers/incoming-message.d.ts +3 -3
  385. package/build/text-agent-handlers/incoming-message.d.ts.map +1 -1
  386. package/build/text-agent-handlers/incoming-message.js +2 -2
  387. package/build/text-agent-handlers/index.d.ts +15 -14
  388. package/build/text-agent-handlers/index.d.ts.map +1 -1
  389. package/build/text-agent-handlers/index.js +7 -6
  390. package/build/text-agent-handlers/instrument.d.ts +4 -3
  391. package/build/text-agent-handlers/instrument.d.ts.map +1 -1
  392. package/build/text-agent-handlers/instrument.js +7 -3
  393. package/build/text-agent-handlers/jobs-handler.d.ts +3 -3
  394. package/build/text-agent-handlers/jobs-handler.d.ts.map +1 -1
  395. package/build/text-agent-handlers/jobs-handler.js +2 -2
  396. package/build/text-agent-handlers/jobs.d.ts +1 -0
  397. package/build/text-agent-handlers/jobs.d.ts.map +1 -1
  398. package/build/text-agent-handlers/message-acceptor.d.ts +8 -4
  399. package/build/text-agent-handlers/message-acceptor.d.ts.map +1 -1
  400. package/build/text-agent-handlers/message-acceptor.js +9 -3
  401. package/build/text-agent-handlers/notification-hook.d.ts +3 -3
  402. package/build/text-agent-handlers/notification-hook.d.ts.map +1 -1
  403. package/build/text-agent-handlers/notification-hook.js +2 -2
  404. package/build/text-agent-handlers/ports.d.ts +5 -4
  405. package/build/text-agent-handlers/ports.d.ts.map +1 -1
  406. package/build/text-agent-handlers/ports.js +6 -5
  407. package/build/text-agent-handlers/variant-scheduler.d.ts +3 -0
  408. package/build/text-agent-handlers/variant-scheduler.d.ts.map +1 -0
  409. package/build/text-agent-handlers/variant-scheduler.js +9 -0
  410. package/build/timeout-manager/index.d.ts +2 -2
  411. package/build/timeout-manager/index.d.ts.map +1 -1
  412. package/build/voice-agent-api/http-helpers.d.ts +1 -1
  413. package/build/voice-agent-api/http-helpers.d.ts.map +1 -1
  414. package/build/voice-agent-api/http-helpers.js +1 -1
  415. package/build/voice-agent-api/index.d.ts +7 -5
  416. package/build/voice-agent-api/index.d.ts.map +1 -1
  417. package/build/voice-agent-api/index.js +4 -3
  418. package/build/voice-agent-api/llm-completion-handler.d.ts +2 -2
  419. package/build/voice-agent-api/llm-completion-handler.d.ts.map +1 -1
  420. package/build/voice-agent-api/llm-completion-handler.js +3 -3
  421. package/build/voice-agent-api/logger.d.ts +2 -2
  422. package/build/voice-agent-api/logger.d.ts.map +1 -1
  423. package/build/voice-agent-api/logger.js +1 -1
  424. package/build/voice-agent-api/route-resolver.d.ts +19 -0
  425. package/build/voice-agent-api/route-resolver.d.ts.map +1 -0
  426. package/build/voice-agent-api/route-resolver.js +57 -0
  427. package/build/voice-agent-api/voice-http.d.ts +10 -6
  428. package/build/voice-agent-api/voice-http.d.ts.map +1 -1
  429. package/build/voice-agent-api/voice-http.js +36 -37
  430. package/package.json +3 -7
  431. package/build/bosun-app/frontend/client/_app/immutable/chunks/B3KppP__.js.br +0 -0
  432. package/build/bosun-app/frontend/client/_app/immutable/chunks/B3KppP__.js.gz +0 -0
  433. package/build/bosun-app/frontend/client/_app/immutable/chunks/BBk8_Xpk.js.br +0 -0
  434. package/build/bosun-app/frontend/client/_app/immutable/chunks/BBk8_Xpk.js.gz +0 -0
  435. package/build/bosun-app/frontend/client/_app/immutable/chunks/BEdAvgYp.js.br +0 -0
  436. package/build/bosun-app/frontend/client/_app/immutable/chunks/BEdAvgYp.js.gz +0 -0
  437. package/build/bosun-app/frontend/client/_app/immutable/chunks/C0rPkxmP.js.br +0 -0
  438. package/build/bosun-app/frontend/client/_app/immutable/chunks/C0rPkxmP.js.gz +0 -0
  439. package/build/bosun-app/frontend/client/_app/immutable/chunks/C3cROXCy.js.br +0 -0
  440. package/build/bosun-app/frontend/client/_app/immutable/chunks/C3cROXCy.js.gz +0 -0
  441. package/build/bosun-app/frontend/client/_app/immutable/chunks/CFHTd1Rp.js.br +0 -2
  442. package/build/bosun-app/frontend/client/_app/immutable/chunks/CFHTd1Rp.js.gz +0 -0
  443. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR5IRTqC.js.br +0 -0
  444. package/build/bosun-app/frontend/client/_app/immutable/chunks/CR5IRTqC.js.gz +0 -0
  445. package/build/bosun-app/frontend/client/_app/immutable/chunks/Csk7d6BP.js.br +0 -0
  446. package/build/bosun-app/frontend/client/_app/immutable/chunks/Csk7d6BP.js.gz +0 -0
  447. package/build/bosun-app/frontend/client/_app/immutable/chunks/DJnDF3d9.js.br +0 -0
  448. package/build/bosun-app/frontend/client/_app/immutable/chunks/DJnDF3d9.js.gz +0 -0
  449. package/build/bosun-app/frontend/client/_app/immutable/chunks/DjDpMqch.js.br +0 -0
  450. package/build/bosun-app/frontend/client/_app/immutable/chunks/DjDpMqch.js.gz +0 -0
  451. package/build/bosun-app/frontend/client/_app/immutable/chunks/g-PBecQM.js.br +0 -0
  452. package/build/bosun-app/frontend/client/_app/immutable/chunks/g-PBecQM.js.gz +0 -0
  453. package/build/bosun-app/frontend/client/_app/immutable/chunks/joiJcRPz.js.br +0 -0
  454. package/build/bosun-app/frontend/client/_app/immutable/chunks/joiJcRPz.js.gz +0 -0
  455. package/build/bosun-app/frontend/client/_app/immutable/chunks/ouMvMh56.js.br +0 -0
  456. package/build/bosun-app/frontend/client/_app/immutable/chunks/ouMvMh56.js.gz +0 -0
  457. package/build/bosun-app/frontend/client/_app/immutable/chunks/zEK2_zeg.js +0 -3
  458. package/build/bosun-app/frontend/client/_app/immutable/chunks/zEK2_zeg.js.br +0 -0
  459. package/build/bosun-app/frontend/client/_app/immutable/chunks/zEK2_zeg.js.gz +0 -0
  460. package/build/bosun-app/frontend/client/_app/immutable/entry/app.Trw4ULuE.js.br +0 -0
  461. package/build/bosun-app/frontend/client/_app/immutable/entry/app.Trw4ULuE.js.gz +0 -0
  462. package/build/bosun-app/frontend/client/_app/immutable/entry/start.DAo7jQEf.js +0 -1
  463. package/build/bosun-app/frontend/client/_app/immutable/entry/start.DAo7jQEf.js.br +0 -0
  464. package/build/bosun-app/frontend/client/_app/immutable/entry/start.DAo7jQEf.js.gz +0 -0
  465. package/build/bosun-app/frontend/client/_app/immutable/nodes/0.D_60dBJ-.js.br +0 -0
  466. package/build/bosun-app/frontend/client/_app/immutable/nodes/0.D_60dBJ-.js.gz +0 -0
  467. package/build/bosun-app/frontend/client/_app/immutable/nodes/1.Cb20jEGe.js.br +0 -0
  468. package/build/bosun-app/frontend/client/_app/immutable/nodes/1.Cb20jEGe.js.gz +0 -0
  469. package/build/bosun-app/frontend/client/_app/immutable/nodes/10.ihk_thZi.js +0 -35
  470. package/build/bosun-app/frontend/client/_app/immutable/nodes/10.ihk_thZi.js.br +0 -0
  471. package/build/bosun-app/frontend/client/_app/immutable/nodes/10.ihk_thZi.js.gz +0 -0
  472. package/build/bosun-app/frontend/client/_app/immutable/nodes/17.Dn5eKe2Q.js.br +0 -0
  473. package/build/bosun-app/frontend/client/_app/immutable/nodes/17.Dn5eKe2Q.js.gz +0 -0
  474. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.C0bK6rdq.js +0 -11
  475. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.C0bK6rdq.js.br +0 -0
  476. package/build/bosun-app/frontend/client/_app/immutable/nodes/18.C0bK6rdq.js.gz +0 -0
  477. package/build/bosun-app/frontend/client/_app/immutable/nodes/2.C2UMBwkC.js +0 -35
  478. package/build/bosun-app/frontend/client/_app/immutable/nodes/2.C2UMBwkC.js.br +0 -0
  479. package/build/bosun-app/frontend/client/_app/immutable/nodes/2.C2UMBwkC.js.gz +0 -0
  480. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.D35G6Br8.js +0 -1
  481. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.D35G6Br8.js.br +0 -0
  482. package/build/bosun-app/frontend/client/_app/immutable/nodes/3.D35G6Br8.js.gz +0 -0
  483. package/build/bosun-app/frontend/client/_app/immutable/nodes/4.BhBj3Qad.js.br +0 -0
  484. package/build/bosun-app/frontend/client/_app/immutable/nodes/4.BhBj3Qad.js.gz +0 -0
  485. package/build/bosun-app/frontend/client/_app/immutable/nodes/5.CMK8bzwn.js.br +0 -0
  486. package/build/bosun-app/frontend/client/_app/immutable/nodes/5.CMK8bzwn.js.gz +0 -0
  487. package/build/bosun-app/frontend/client/_app/immutable/nodes/6.crW0u6fy.js.br +0 -0
  488. package/build/bosun-app/frontend/client/_app/immutable/nodes/6.crW0u6fy.js.gz +0 -0
  489. package/build/bosun-app/frontend/client/_app/immutable/nodes/8.CxQxpCTc.js.br +0 -0
  490. package/build/bosun-app/frontend/client/_app/immutable/nodes/8.CxQxpCTc.js.gz +0 -0
  491. package/build/bosun-app/frontend/client/_app/immutable/nodes/9.BXh1IZwx.js +0 -2
  492. package/build/bosun-app/frontend/client/_app/immutable/nodes/9.BXh1IZwx.js.br +0 -0
  493. package/build/bosun-app/frontend/client/_app/immutable/nodes/9.BXh1IZwx.js.gz +0 -0
  494. package/build/bosun-app/frontend/server/chunks/chunks/ChatStepTrace.js-VTtwaKGp.js.map +0 -1
  495. package/build/bosun-app/frontend/server/chunks/chunks/source-selection.js-D5B8gfq2.js.map +0 -1
  496. package/build/bosun-app/frontend/server/chunks/entries/pages/edit/_agent_/_layout.svelte.js-B2wHKJV7.js.map +0 -1
  497. package/build/bosun-app/frontend/server/chunks/entries/pages/edit/_agent_/roleplay/_page.svelte.js-DDcIjgZD.js.map +0 -1
  498. package/build/bosun-app/frontend/server/chunks/entries/pages/edit/_agent_/tests/_page.svelte.js-UVUg89-t.js.map +0 -1
  499. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/traces/_page.svelte.js-DiZKDT2v.js.map +0 -1
  500. package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_layout.svelte.js-CfkCQ2Th.js.map +0 -1
  501. package/build/call-control/voice-agent-config.d.ts +0 -155
  502. package/build/call-control/voice-agent-config.d.ts.map +0 -1
  503. package/build/call-control/voice-agent-config.js +0 -53
  504. package/build/call-control.runtime.js +0 -1057
@@ -8058,6 +8058,9 @@ function _layout($$renderer, $$props) {
8058
8058
  region: null,
8059
8059
  availableRegions: [],
8060
8060
  defaultRegion: null,
8061
+ variant: null,
8062
+ experimentVariants: [],
8063
+ experimentHasDefault: false,
8061
8064
  agentType: void 0,
8062
8065
  wsLoaded: false,
8063
8066
  chatReady: false,
@@ -8075,6 +8078,13 @@ function _layout($$renderer, $$props) {
8075
8078
  const regionDropdownId = "region-dropdown";
8076
8079
  let regionDropdownOpen = false;
8077
8080
  let regionDropdownAnchorEl = null;
8081
+ const variantDropdownId = "variant-dropdown";
8082
+ let variantDropdownOpen = false;
8083
+ let variantDropdownAnchorEl = null;
8084
+ const variantOptions = derived(() => [
8085
+ ...workspace.experimentHasDefault ? [null] : [],
8086
+ ...workspace.experimentVariants
8087
+ ]);
8078
8088
  function setQueryParam(key, value) {
8079
8089
  if (typeof window === "undefined") return;
8080
8090
  const url = new URL(window.location.href);
@@ -8086,11 +8096,11 @@ function _layout($$renderer, $$props) {
8086
8096
  wsClient.sendMessage({ channel: "app-events", event });
8087
8097
  }
8088
8098
  const activeStepName = derived(() => workspace.currentStep?.name ?? null);
8089
- const promptEditKey = (agentId, stepName) => `${agentId}\0${stepName}`;
8099
+ const promptEditKey = (agentId, stepName, variantId) => `${agentId}\0${variantId ?? ""}\0${stepName}`;
8090
8100
  const activePromptEdit = derived(() => {
8091
8101
  const stepName = activeStepName();
8092
8102
  if (!stepName) return null;
8093
- return workspace.promptEdits[promptEditKey(workspace.agentId, stepName)] ?? null;
8103
+ return workspace.promptEdits[promptEditKey(workspace.agentId, stepName, workspace.variant)] ?? null;
8094
8104
  });
8095
8105
  const activePromptDraft = derived(() => {
8096
8106
  const stepName = activeStepName();
@@ -8101,8 +8111,11 @@ function _layout($$renderer, $$props) {
8101
8111
  const activeRuntimePrompt = derived(() => activePromptEdit()?.suggestedPrompt ?? activePromptDraft());
8102
8112
  function getPromptOverrides(agentId = workspace.agentId) {
8103
8113
  const overrides = {};
8114
+ const variantId = agentId === workspace.agentId ? workspace.variant : null;
8104
8115
  for (const proposal of Object.values(workspace.promptEdits)) {
8105
- if (proposal.agentId === agentId) overrides[proposal.step] = proposal.suggestedPrompt;
8116
+ if (proposal.agentId === agentId && (proposal.variantId ?? null) === variantId) {
8117
+ overrides[proposal.step] = proposal.suggestedPrompt;
8118
+ }
8106
8119
  }
8107
8120
  return overrides;
8108
8121
  }
@@ -8115,7 +8128,8 @@ function _layout($$renderer, $$props) {
8115
8128
  }
8116
8129
  function activePromptEditFor(agentId, stepName) {
8117
8130
  if (!stepName) return null;
8118
- return workspace.promptEdits[promptEditKey(agentId, stepName)] ?? null;
8131
+ const variantId = agentId === workspace.agentId ? workspace.variant : null;
8132
+ return workspace.promptEdits[promptEditKey(agentId, stepName, variantId)] ?? null;
8119
8133
  }
8120
8134
  let promptSaveTimer = null;
8121
8135
  let pendingPromptSave = null;
@@ -8126,21 +8140,21 @@ function _layout($$renderer, $$props) {
8126
8140
  clearTimeout(promptSaveTimer);
8127
8141
  promptSaveTimer = null;
8128
8142
  }
8129
- async function persistPromptSave(agentId, stepName, prompt) {
8143
+ async function persistPromptSave(agentId, stepName, prompt, variant) {
8130
8144
  try {
8131
- await trpc.agents.savePrompt.mutate({ agentId, step: stepName, prompt });
8145
+ await trpc.agents.savePrompt.mutate({ agentId, step: stepName, prompt, variant });
8132
8146
  } catch (error) {
8133
8147
  console.error("Failed to save prompt", error);
8134
8148
  const currentDraft = workspace.promptDrafts[stepName];
8135
- if (workspace.agentId === agentId && currentDraft === prompt) {
8136
- pendingPromptSave = { stepName, prompt };
8149
+ if (workspace.agentId === agentId && workspace.variant === variant && currentDraft === prompt) {
8150
+ pendingPromptSave = { stepName, prompt, variant };
8137
8151
  }
8138
8152
  throw error;
8139
8153
  }
8140
8154
  }
8141
- function queuePromptSave(agentId, stepName, prompt) {
8155
+ function queuePromptSave(agentId, stepName, prompt, variant) {
8142
8156
  const op = promptSaveQueue.catch(() => {
8143
- }).then(() => persistPromptSave(agentId, stepName, prompt));
8157
+ }).then(() => persistPromptSave(agentId, stepName, prompt, variant));
8144
8158
  promptSaveQueue = op.catch(() => {
8145
8159
  });
8146
8160
  return op;
@@ -8149,13 +8163,13 @@ function _layout($$renderer, $$props) {
8149
8163
  if (!pendingPromptSave) return;
8150
8164
  const agentId = workspace.agentId.trim();
8151
8165
  if (!agentId) return;
8152
- const { stepName, prompt } = pendingPromptSave;
8166
+ const { stepName, prompt, variant } = pendingPromptSave;
8153
8167
  clearPromptSaveTimer();
8154
8168
  pendingPromptSave = null;
8155
- await queuePromptSave(agentId, stepName, prompt);
8169
+ await queuePromptSave(agentId, stepName, prompt, variant);
8156
8170
  }
8157
8171
  function schedulePromptSave(stepName, prompt) {
8158
- pendingPromptSave = { stepName, prompt };
8172
+ pendingPromptSave = { stepName, prompt, variant: workspace.variant };
8159
8173
  clearPromptSaveTimer();
8160
8174
  promptSaveTimer = setTimeout(
8161
8175
  () => {
@@ -8231,14 +8245,20 @@ function _layout($$renderer, $$props) {
8231
8245
  void pollAiEditProgress(progressId, requestId);
8232
8246
  try {
8233
8247
  await flushPromptSave();
8234
- const result = await trpc.agents.suggestPromptEdit.mutate({ agentId, step: stepName, request, progressId });
8248
+ const result = await trpc.agents.suggestPromptEdit.mutate({
8249
+ agentId,
8250
+ step: stepName,
8251
+ variant: workspace.variant,
8252
+ request,
8253
+ progressId
8254
+ });
8235
8255
  if (requestId !== aiEditRequestId) return;
8236
8256
  if (result.status === "unchanged") {
8237
8257
  noChangesModalOpen = true;
8238
8258
  return;
8239
8259
  }
8240
8260
  const proposal = result.proposal;
8241
- workspace.promptEdits[promptEditKey(proposal.agentId, proposal.step)] = proposal;
8261
+ workspace.promptEdits[promptEditKey(proposal.agentId, proposal.step, proposal.variantId)] = proposal;
8242
8262
  setQueryParam("promptEdit", proposal.id);
8243
8263
  aiEditModalOpen = false;
8244
8264
  previewEnabled = false;
@@ -8335,7 +8355,12 @@ function _layout($$renderer, $$props) {
8335
8355
  schemaSaveNotice = null;
8336
8356
  try {
8337
8357
  await flushPromptSave();
8338
- const result = await trpc.agents.saveSchema.mutate({ agentId, step: stepName, schema: schemaDraft });
8358
+ const result = await trpc.agents.saveSchema.mutate({
8359
+ agentId,
8360
+ step: stepName,
8361
+ variant: workspace.variant,
8362
+ schema: schemaDraft
8363
+ });
8339
8364
  workspace.steps = workspace.steps.map((step) => step.name === stepName ? { ...step, schema: schemaDraft } : step);
8340
8365
  workspace.currentStep = workspace.steps.find((step) => step.name === stepName) ?? workspace.currentStep;
8341
8366
  schemaSaveNotice = result.restartScheduled ? "Saved. Reloading the project…" : "Saved. Restart Bosun to use this schema in tests.";
@@ -8355,10 +8380,12 @@ function _layout($$renderer, $$props) {
8355
8380
  closeAllPopovers();
8356
8381
  const stepName = page.url.searchParams.get("step");
8357
8382
  const region = page.url.searchParams.get("region");
8383
+ const variant = page.url.searchParams.get("variant");
8358
8384
  const base = `/edit/${enc(workspace.agentId)}/${value}`;
8359
8385
  const qs = new URLSearchParams();
8360
8386
  if (stepName) qs.set("step", stepName);
8361
8387
  if (region) qs.set("region", region);
8388
+ if (variant) qs.set("variant", variant);
8362
8389
  if (activePromptEdit()) qs.set("promptEdit", activePromptEdit().id);
8363
8390
  qs.size ? `${base}?${qs.toString()}` : base;
8364
8391
  goto();
@@ -8375,6 +8402,7 @@ function _layout($$renderer, $$props) {
8375
8402
  if (value === "view") {
8376
8403
  const qs = new URLSearchParams({ agent: workspace.agentId });
8377
8404
  if (workspace.region) qs.set("region", workspace.region);
8405
+ if (workspace.variant) qs.set("variant", workspace.variant);
8378
8406
  return goto(`/view?${qs.toString()}`);
8379
8407
  }
8380
8408
  goto();
@@ -8517,10 +8545,12 @@ function _layout($$renderer, $$props) {
8517
8545
  closeAllPopovers();
8518
8546
  const stepName = page.url.searchParams.get("step");
8519
8547
  const region = page.url.searchParams.get("region");
8548
+ const variant = page.url.searchParams.get("variant");
8520
8549
  const base = `/edit/${enc(agentId)}/${workspace.edit.tab}`;
8521
8550
  const qs = new URLSearchParams();
8522
8551
  if (stepName) qs.set("step", stepName);
8523
8552
  if (region) qs.set("region", region);
8553
+ if (variant) qs.set("variant", variant);
8524
8554
  const targetProposal = activePromptEditFor(agentId, stepName);
8525
8555
  if (targetProposal) qs.set("promptEdit", targetProposal.id);
8526
8556
  qs.size ? `${base}?${qs.toString()}` : base;
@@ -8532,6 +8562,12 @@ function _layout($$renderer, $$props) {
8532
8562
  workspace.region = next;
8533
8563
  setQueryParam("region", next);
8534
8564
  }
8565
+ function handleVariantSelectChange(next) {
8566
+ if (next === workspace.variant) return;
8567
+ void flushPromptSave();
8568
+ workspace.variant = next;
8569
+ setQueryParam("variant", next);
8570
+ }
8535
8571
  setEditWorkspaceContext({
8536
8572
  state: workspace,
8537
8573
  actions: {
@@ -8568,6 +8604,7 @@ function _layout($$renderer, $$props) {
8568
8604
  agent: workspace.agentId,
8569
8605
  state: stateId,
8570
8606
  region: workspace.region,
8607
+ variant: workspace.variant,
8571
8608
  promptOverrides: getPromptOverrides()
8572
8609
  });
8573
8610
  },
@@ -8575,7 +8612,8 @@ function _layout($$renderer, $$props) {
8575
8612
  sendAppEvent({
8576
8613
  type: "hangup",
8577
8614
  agentId: workspace.agentId,
8578
- region: workspace.region
8615
+ region: workspace.region,
8616
+ variant: workspace.variant
8579
8617
  });
8580
8618
  }
8581
8619
  }
@@ -8625,6 +8663,78 @@ function _layout($$renderer, $$props) {
8625
8663
  $$slots: { default: true }
8626
8664
  });
8627
8665
  $$renderer3.push(`<!----></div> <div class="flex w-1/3 items-center justify-end gap-2 pr-2">`);
8666
+ if (workspace.experimentVariants.length > 0) {
8667
+ $$renderer3.push("<!--[0-->");
8668
+ $$renderer3.push(`<span class="text-sm text-rc-gray-300">Variant</span> <div>`);
8669
+ Button($$renderer3, {
8670
+ variant: "secondary",
8671
+ size: "small",
8672
+ "aria-expanded": variantDropdownOpen,
8673
+ "aria-haspopup": "listbox",
8674
+ "aria-controls": variantDropdownId,
8675
+ onclick: (e2) => {
8676
+ e2.stopPropagation();
8677
+ variantDropdownOpen = !variantDropdownOpen;
8678
+ },
8679
+ class: "flex w-40 items-center justify-between gap-1 !px-3 !py-1",
8680
+ get el() {
8681
+ return variantDropdownAnchorEl;
8682
+ },
8683
+ set el($$value) {
8684
+ variantDropdownAnchorEl = $$value;
8685
+ $$settled = false;
8686
+ },
8687
+ children: ($$renderer4) => {
8688
+ $$renderer4.push(`<span class="truncate">${escape_html(workspace.variant ?? "default")}</span> `);
8689
+ Icon($$renderer4, {
8690
+ name: "chevron-down",
8691
+ class: "size-5 text-rc-gray-400 transition-transform duration-200 " + (variantDropdownOpen ? "rotate-180" : "")
8692
+ });
8693
+ $$renderer4.push(`<!---->`);
8694
+ },
8695
+ $$slots: { default: true }
8696
+ });
8697
+ $$renderer3.push(`<!----> `);
8698
+ {
8699
+ let children2 = function($$renderer4) {
8700
+ $$renderer4.push(`<div class="mt-1 overflow-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 shadow-inner-white-soft backdrop-blur-2xl" role="listbox" aria-label="Variant"><!--[-->`);
8701
+ const each_array = ensure_array_like(variantOptions());
8702
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
8703
+ let v = each_array[$$index];
8704
+ Button($$renderer4, {
8705
+ variant: "ghost",
8706
+ size: "small",
8707
+ role: "option",
8708
+ "aria-selected": v === workspace.variant,
8709
+ onclick: (e2) => {
8710
+ e2.stopPropagation();
8711
+ variantDropdownOpen = false;
8712
+ handleVariantSelectChange(v);
8713
+ },
8714
+ class: `w-full rounded-none py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400 ${v === workspace.variant ? "bg-rc-gray-800 text-rc-gray-100" : "text-rc-gray-200"}`,
8715
+ children: ($$renderer5) => {
8716
+ $$renderer5.push(`<!---->${escape_html(v ?? "default")}`);
8717
+ },
8718
+ $$slots: { default: true }
8719
+ });
8720
+ }
8721
+ $$renderer4.push(`<!--]--></div>`);
8722
+ };
8723
+ Dropdown($$renderer3, {
8724
+ id: variantDropdownId,
8725
+ open: variantDropdownOpen,
8726
+ onClose: () => variantDropdownOpen = false,
8727
+ anchorEl: variantDropdownAnchorEl,
8728
+ placement: "bottom-end",
8729
+ offset: [0, 1],
8730
+ children: children2
8731
+ });
8732
+ }
8733
+ $$renderer3.push(`<!----></div>`);
8734
+ } else {
8735
+ $$renderer3.push("<!--[-1-->");
8736
+ }
8737
+ $$renderer3.push(`<!--]--> `);
8628
8738
  if (workspace.availableRegions.length > 0 && workspace.region) {
8629
8739
  $$renderer3.push("<!--[0-->");
8630
8740
  $$renderer3.push(`<span class="text-sm text-rc-gray-300">Region</span> <div>`);
@@ -8660,9 +8770,9 @@ function _layout($$renderer, $$props) {
8660
8770
  {
8661
8771
  let children2 = function($$renderer4) {
8662
8772
  $$renderer4.push(`<div class="mt-1 overflow-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 shadow-inner-white-soft backdrop-blur-2xl" role="listbox" aria-label="Region"><!--[-->`);
8663
- const each_array = ensure_array_like(workspace.availableRegions);
8664
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
8665
- let r2 = each_array[$$index];
8773
+ const each_array_1 = ensure_array_like(workspace.availableRegions);
8774
+ for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
8775
+ let r2 = each_array_1[$$index_1];
8666
8776
  Button($$renderer4, {
8667
8777
  variant: "ghost",
8668
8778
  size: "small",
@@ -8710,9 +8820,9 @@ function _layout($$renderer, $$props) {
8710
8820
  } else {
8711
8821
  $$renderer4.push("<!--[-1-->");
8712
8822
  $$renderer4.push(`<!--[-->`);
8713
- const each_array_1 = ensure_array_like(workspace.steps);
8714
- for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
8715
- let step = each_array_1[$$index_1];
8823
+ const each_array_2 = ensure_array_like(workspace.steps);
8824
+ for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
8825
+ let step = each_array_2[$$index_2];
8716
8826
  $$renderer4.push(`<button${attr_class(`my-1 w-full rounded-lg px-3 py-2 text-left text-rc-gray-200 hover:bg-rc-gray-700 ${step.name === workspace.currentStep?.name ? "bg-rc-gray-600" : "bg-transparent"}`)}><span class="block truncate">${escape_html(step.name)}</span></button>`);
8717
8827
  }
8718
8828
  $$renderer4.push(`<!--]-->`);
@@ -9086,4 +9196,4 @@ function _layout($$renderer, $$props) {
9086
9196
  }
9087
9197
 
9088
9198
  export { _layout as default };
9089
- //# sourceMappingURL=_layout.svelte.js-B2wHKJV7.js.map
9199
+ //# sourceMappingURL=_layout.svelte.js-b9Q5TFEZ.js.map