@rudderhq/server 0.2.5-canary.8 → 0.2.5

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 (309) hide show
  1. package/dist/bootstrap/plugin-host-runtime.d.ts +39 -39
  2. package/dist/bundled-plugins/plugin-linear/dist/worker.js +101 -147
  3. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
  4. package/dist/bundled-plugins/plugin-linear/package.json +1 -1
  5. package/dist/routes/access-onboarding.helpers.d.ts +142 -0
  6. package/dist/routes/access-onboarding.helpers.d.ts.map +1 -0
  7. package/dist/routes/access-onboarding.helpers.js +762 -0
  8. package/dist/routes/access-onboarding.helpers.js.map +1 -0
  9. package/dist/routes/access.d.ts +2 -48
  10. package/dist/routes/access.d.ts.map +1 -1
  11. package/dist/routes/access.helpers.d.ts +109 -0
  12. package/dist/routes/access.helpers.d.ts.map +1 -0
  13. package/dist/routes/access.helpers.js +460 -0
  14. package/dist/routes/access.helpers.js.map +1 -0
  15. package/dist/routes/access.js +6 -1218
  16. package/dist/routes/access.js.map +1 -1
  17. package/dist/routes/agents.d.ts.map +1 -1
  18. package/dist/routes/agents.js +55 -1057
  19. package/dist/routes/agents.js.map +1 -1
  20. package/dist/routes/agents.management-routes.d.ts +12 -0
  21. package/dist/routes/agents.management-routes.d.ts.map +1 -0
  22. package/dist/routes/agents.management-routes.js +1067 -0
  23. package/dist/routes/agents.management-routes.js.map +1 -0
  24. package/dist/routes/chats.d.ts.map +1 -1
  25. package/dist/routes/chats.js +42 -652
  26. package/dist/routes/chats.js.map +1 -1
  27. package/dist/routes/chats.stream-routes.d.ts +12 -0
  28. package/dist/routes/chats.stream-routes.d.ts.map +1 -0
  29. package/dist/routes/chats.stream-routes.js +666 -0
  30. package/dist/routes/chats.stream-routes.js.map +1 -0
  31. package/dist/routes/issues.comments-attachments.d.ts +12 -0
  32. package/dist/routes/issues.comments-attachments.d.ts.map +1 -0
  33. package/dist/routes/issues.comments-attachments.js +511 -0
  34. package/dist/routes/issues.comments-attachments.js.map +1 -0
  35. package/dist/routes/issues.d.ts.map +1 -1
  36. package/dist/routes/issues.js +43 -1128
  37. package/dist/routes/issues.js.map +1 -1
  38. package/dist/routes/issues.mutations.d.ts +12 -0
  39. package/dist/routes/issues.mutations.d.ts.map +1 -0
  40. package/dist/routes/issues.mutations.js +635 -0
  41. package/dist/routes/issues.mutations.js.map +1 -0
  42. package/dist/routes/plugins.d.ts.map +1 -1
  43. package/dist/routes/plugins.js +14 -694
  44. package/dist/routes/plugins.js.map +1 -1
  45. package/dist/routes/plugins.operations-routes.d.ts +28 -0
  46. package/dist/routes/plugins.operations-routes.d.ts.map +1 -0
  47. package/dist/routes/plugins.operations-routes.js +720 -0
  48. package/dist/routes/plugins.operations-routes.js.map +1 -0
  49. package/dist/services/access.d.ts +21 -21
  50. package/dist/services/activity.d.ts +19 -19
  51. package/dist/services/agents.d.ts +158 -158
  52. package/dist/services/approvals.d.ts +29 -29
  53. package/dist/services/assets.d.ts +8 -8
  54. package/dist/services/automations.d.ts +41 -27
  55. package/dist/services/automations.d.ts.map +1 -1
  56. package/dist/services/automations.js +287 -110
  57. package/dist/services/automations.js.map +1 -1
  58. package/dist/services/automations.scheduler.d.ts +9 -0
  59. package/dist/services/automations.scheduler.d.ts.map +1 -0
  60. package/dist/services/automations.scheduler.js +101 -0
  61. package/dist/services/automations.scheduler.js.map +1 -0
  62. package/dist/services/board-auth.d.ts +32 -32
  63. package/dist/services/calendar.d.ts +26 -26
  64. package/dist/services/chat-assistant.d.ts +3 -47
  65. package/dist/services/chat-assistant.d.ts.map +1 -1
  66. package/dist/services/chat-assistant.helpers.d.ts +156 -0
  67. package/dist/services/chat-assistant.helpers.d.ts.map +1 -0
  68. package/dist/services/chat-assistant.helpers.js +862 -0
  69. package/dist/services/chat-assistant.helpers.js.map +1 -0
  70. package/dist/services/chat-assistant.js +2 -861
  71. package/dist/services/chat-assistant.js.map +1 -1
  72. package/dist/services/chats.d.ts +149 -247
  73. package/dist/services/chats.d.ts.map +1 -1
  74. package/dist/services/chats.helpers.d.ts +117 -0
  75. package/dist/services/chats.helpers.d.ts.map +1 -0
  76. package/dist/services/chats.helpers.js +285 -0
  77. package/dist/services/chats.helpers.js.map +1 -0
  78. package/dist/services/chats.js +6 -286
  79. package/dist/services/chats.js.map +1 -1
  80. package/dist/services/costs.d.ts +8 -8
  81. package/dist/services/finance.d.ts +18 -18
  82. package/dist/services/goals.d.ts +30 -30
  83. package/dist/services/heartbeat.d.ts +3 -1
  84. package/dist/services/heartbeat.d.ts.map +1 -1
  85. package/dist/services/heartbeat.js +3 -1
  86. package/dist/services/heartbeat.js.map +1 -1
  87. package/dist/services/issue-approvals.d.ts +4 -4
  88. package/dist/services/issue-review-wakeup.d.ts +3 -3
  89. package/dist/services/issues.comments-attachments.d.ts +141 -0
  90. package/dist/services/issues.comments-attachments.d.ts.map +1 -0
  91. package/dist/services/issues.comments-attachments.js +313 -0
  92. package/dist/services/issues.comments-attachments.js.map +1 -0
  93. package/dist/services/issues.d.ts +205 -256
  94. package/dist/services/issues.d.ts.map +1 -1
  95. package/dist/services/issues.helpers.d.ts +87 -0
  96. package/dist/services/issues.helpers.d.ts.map +1 -0
  97. package/dist/services/issues.helpers.js +270 -0
  98. package/dist/services/issues.helpers.js.map +1 -0
  99. package/dist/services/issues.js +5 -569
  100. package/dist/services/issues.js.map +1 -1
  101. package/dist/services/knowledge-portability/organization-portability.core.d.ts +210 -0
  102. package/dist/services/knowledge-portability/organization-portability.core.d.ts.map +1 -0
  103. package/dist/services/knowledge-portability/organization-portability.core.js +997 -0
  104. package/dist/services/knowledge-portability/organization-portability.core.js.map +1 -0
  105. package/dist/services/knowledge-portability/organization-portability.d.ts +6 -28
  106. package/dist/services/knowledge-portability/organization-portability.d.ts.map +1 -1
  107. package/dist/services/knowledge-portability/organization-portability.export.d.ts +24 -0
  108. package/dist/services/knowledge-portability/organization-portability.export.d.ts.map +1 -0
  109. package/dist/services/knowledge-portability/organization-portability.export.js +607 -0
  110. package/dist/services/knowledge-portability/organization-portability.export.js.map +1 -0
  111. package/dist/services/knowledge-portability/organization-portability.files.d.ts +69 -0
  112. package/dist/services/knowledge-portability/organization-portability.files.d.ts.map +1 -0
  113. package/dist/services/knowledge-portability/organization-portability.files.js +597 -0
  114. package/dist/services/knowledge-portability/organization-portability.files.js.map +1 -0
  115. package/dist/services/knowledge-portability/organization-portability.import.d.ts +31 -0
  116. package/dist/services/knowledge-portability/organization-portability.import.d.ts.map +1 -0
  117. package/dist/services/knowledge-portability/organization-portability.import.js +575 -0
  118. package/dist/services/knowledge-portability/organization-portability.import.js.map +1 -0
  119. package/dist/services/knowledge-portability/organization-portability.js +37 -3848
  120. package/dist/services/knowledge-portability/organization-portability.js.map +1 -1
  121. package/dist/services/knowledge-portability/organization-portability.package.d.ts +72 -0
  122. package/dist/services/knowledge-portability/organization-portability.package.d.ts.map +1 -0
  123. package/dist/services/knowledge-portability/organization-portability.package.js +749 -0
  124. package/dist/services/knowledge-portability/organization-portability.package.js.map +1 -0
  125. package/dist/services/knowledge-portability/organization-portability.preview.d.ts +18 -0
  126. package/dist/services/knowledge-portability/organization-portability.preview.d.ts.map +1 -0
  127. package/dist/services/knowledge-portability/organization-portability.preview.js +333 -0
  128. package/dist/services/knowledge-portability/organization-portability.preview.js.map +1 -0
  129. package/dist/services/knowledge-portability/organization-portability.resolve-source.d.ts +4 -0
  130. package/dist/services/knowledge-portability/organization-portability.resolve-source.d.ts.map +1 -0
  131. package/dist/services/knowledge-portability/organization-portability.resolve-source.js +86 -0
  132. package/dist/services/knowledge-portability/organization-portability.resolve-source.js.map +1 -0
  133. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +221 -0
  134. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -0
  135. package/dist/services/knowledge-portability/organization-skills.catalog.js +999 -0
  136. package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -0
  137. package/dist/services/knowledge-portability/organization-skills.d.ts +4 -75
  138. package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
  139. package/dist/services/knowledge-portability/organization-skills.js +11 -2008
  140. package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
  141. package/dist/services/knowledge-portability/organization-skills.scans.d.ts +16 -0
  142. package/dist/services/knowledge-portability/organization-skills.scans.d.ts.map +1 -0
  143. package/dist/services/knowledge-portability/organization-skills.scans.js +300 -0
  144. package/dist/services/knowledge-portability/organization-skills.scans.js.map +1 -0
  145. package/dist/services/knowledge-portability/organization-skills.sources.d.ts +68 -0
  146. package/dist/services/knowledge-portability/organization-skills.sources.d.ts.map +1 -0
  147. package/dist/services/knowledge-portability/organization-skills.sources.js +728 -0
  148. package/dist/services/knowledge-portability/organization-skills.sources.js.map +1 -0
  149. package/dist/services/messenger.d.ts +2 -2
  150. package/dist/services/messenger.js +2 -2
  151. package/dist/services/messenger.js.map +1 -1
  152. package/dist/services/organization-skills.d.ts +3 -1
  153. package/dist/services/organization-skills.d.ts.map +1 -1
  154. package/dist/services/organization-skills.js +3 -1
  155. package/dist/services/organization-skills.js.map +1 -1
  156. package/dist/services/orgs.d.ts +9 -9
  157. package/dist/services/plugin-loader.core.d.ts +14 -0
  158. package/dist/services/plugin-loader.core.d.ts.map +1 -0
  159. package/dist/services/plugin-loader.core.js +905 -0
  160. package/dist/services/plugin-loader.core.js.map +1 -0
  161. package/dist/services/plugin-loader.d.ts +3 -440
  162. package/dist/services/plugin-loader.d.ts.map +1 -1
  163. package/dist/services/plugin-loader.helpers.d.ts +468 -0
  164. package/dist/services/plugin-loader.helpers.d.ts.map +1 -0
  165. package/dist/services/plugin-loader.helpers.js +263 -0
  166. package/dist/services/plugin-loader.helpers.js.map +1 -0
  167. package/dist/services/plugin-loader.js +3 -1191
  168. package/dist/services/plugin-loader.js.map +1 -1
  169. package/dist/services/plugin-loader.worker-paths.d.ts +7 -0
  170. package/dist/services/plugin-loader.worker-paths.d.ts.map +1 -0
  171. package/dist/services/plugin-loader.worker-paths.js +85 -0
  172. package/dist/services/plugin-loader.worker-paths.js.map +1 -0
  173. package/dist/services/plugin-registry.d.ts +123 -123
  174. package/dist/services/projects.d.ts +8 -8
  175. package/dist/services/runtime-kernel/heartbeat.core.d.ts +725 -0
  176. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -0
  177. package/dist/services/runtime-kernel/heartbeat.core.js +525 -0
  178. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -0
  179. package/dist/services/runtime-kernel/heartbeat.d.ts +38 -259
  180. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  181. package/dist/services/runtime-kernel/heartbeat.execute.d.ts +5 -0
  182. package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -0
  183. package/dist/services/runtime-kernel/heartbeat.execute.js +1052 -0
  184. package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -0
  185. package/dist/services/runtime-kernel/heartbeat.js +50 -4142
  186. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  187. package/dist/services/runtime-kernel/heartbeat.misc.d.ts +30 -0
  188. package/dist/services/runtime-kernel/heartbeat.misc.d.ts.map +1 -0
  189. package/dist/services/runtime-kernel/heartbeat.misc.js +483 -0
  190. package/dist/services/runtime-kernel/heartbeat.misc.js.map +1 -0
  191. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts +38 -0
  192. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -0
  193. package/dist/services/runtime-kernel/heartbeat.recovery.js +605 -0
  194. package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -0
  195. package/dist/services/runtime-kernel/heartbeat.release.d.ts +6 -0
  196. package/dist/services/runtime-kernel/heartbeat.release.d.ts.map +1 -0
  197. package/dist/services/runtime-kernel/heartbeat.release.js +398 -0
  198. package/dist/services/runtime-kernel/heartbeat.release.js.map +1 -0
  199. package/dist/services/runtime-kernel/heartbeat.sessions.d.ts +229 -0
  200. package/dist/services/runtime-kernel/heartbeat.sessions.d.ts.map +1 -0
  201. package/dist/services/runtime-kernel/heartbeat.sessions.js +708 -0
  202. package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -0
  203. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts +5 -0
  204. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -0
  205. package/dist/services/runtime-kernel/heartbeat.wakeup.js +552 -0
  206. package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -0
  207. package/dist/services/secrets.d.ts +25 -25
  208. package/dist/services/sidebar-badges.js +1 -1
  209. package/dist/services/sidebar-badges.js.map +1 -1
  210. package/dist/services/workspace-runtime.comments.d.ts +6 -0
  211. package/dist/services/workspace-runtime.comments.d.ts.map +1 -0
  212. package/dist/services/workspace-runtime.comments.js +17 -0
  213. package/dist/services/workspace-runtime.comments.js.map +1 -0
  214. package/dist/services/workspace-runtime.d.ts +4 -163
  215. package/dist/services/workspace-runtime.d.ts.map +1 -1
  216. package/dist/services/workspace-runtime.helpers.d.ts +163 -0
  217. package/dist/services/workspace-runtime.helpers.d.ts.map +1 -0
  218. package/dist/services/workspace-runtime.helpers.js +360 -0
  219. package/dist/services/workspace-runtime.helpers.js.map +1 -0
  220. package/dist/services/workspace-runtime.js +4 -1236
  221. package/dist/services/workspace-runtime.js.map +1 -1
  222. package/dist/services/workspace-runtime.lifecycle.d.ts +35 -0
  223. package/dist/services/workspace-runtime.lifecycle.d.ts.map +1 -0
  224. package/dist/services/workspace-runtime.lifecycle.js +266 -0
  225. package/dist/services/workspace-runtime.lifecycle.js.map +1 -0
  226. package/dist/services/workspace-runtime.services.d.ts +140 -0
  227. package/dist/services/workspace-runtime.services.d.ts.map +1 -0
  228. package/dist/services/workspace-runtime.services.js +606 -0
  229. package/dist/services/workspace-runtime.services.js.map +1 -0
  230. package/package.json +21 -15
  231. package/ui-dist/assets/{_basePickBy-DeCw-kw3.js → _basePickBy-N8I9ml5Y.js} +1 -1
  232. package/ui-dist/assets/{_baseUniq-CVepsVZm.js → _baseUniq-BuSlpRSQ.js} +1 -1
  233. package/ui-dist/assets/{arc-QifRrkx2.js → arc-qX-dPyA1.js} +1 -1
  234. package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-CT4me0hw.js → architectureDiagram-2XIMDMQ5-DhjkbXsp.js} +1 -1
  235. package/ui-dist/assets/{blockDiagram-WCTKOSBZ-uD6J91MI.js → blockDiagram-WCTKOSBZ-JS-tTu3J.js} +1 -1
  236. package/ui-dist/assets/{c4Diagram-IC4MRINW-D2GM2pzG.js → c4Diagram-IC4MRINW-4DqwCWIx.js} +1 -1
  237. package/ui-dist/assets/channel-CccCW5_a.js +1 -0
  238. package/ui-dist/assets/{chunk-4BX2VUAB-D8pPrlss.js → chunk-4BX2VUAB-T37SqBpp.js} +1 -1
  239. package/ui-dist/assets/{chunk-55IACEB6-CHF68vwj.js → chunk-55IACEB6-BSj9hdqK.js} +1 -1
  240. package/ui-dist/assets/{chunk-FMBD7UC4-CKmGUf9X.js → chunk-FMBD7UC4-Dkrlh0Wk.js} +1 -1
  241. package/ui-dist/assets/{chunk-JSJVCQXG-CTBCV-7X.js → chunk-JSJVCQXG-C0ZE3QdB.js} +1 -1
  242. package/ui-dist/assets/{chunk-KX2RTZJC-DV5XzGob.js → chunk-KX2RTZJC-DOZQM9gW.js} +1 -1
  243. package/ui-dist/assets/{chunk-NQ4KR5QH-B7diT0e4.js → chunk-NQ4KR5QH-5Yr3U2k8.js} +1 -1
  244. package/ui-dist/assets/{chunk-QZHKN3VN-BphcSb1i.js → chunk-QZHKN3VN-CvKTufwF.js} +1 -1
  245. package/ui-dist/assets/{chunk-WL4C6EOR-Bs_jQBMG.js → chunk-WL4C6EOR-IoEM0jyx.js} +1 -1
  246. package/ui-dist/assets/classDiagram-VBA2DB6C-JKk4tCW2.js +1 -0
  247. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-JKk4tCW2.js +1 -0
  248. package/ui-dist/assets/clone-Onaweg8D.js +1 -0
  249. package/ui-dist/assets/{cose-bilkent-S5V4N54A-BxfO0pV9.js → cose-bilkent-S5V4N54A-CTvr1OFj.js} +1 -1
  250. package/ui-dist/assets/{dagre-KLK3FWXG-BiDkAX-Z.js → dagre-KLK3FWXG-UZ-SNjVK.js} +1 -1
  251. package/ui-dist/assets/{diagram-E7M64L7V-Btz_oxkC.js → diagram-E7M64L7V-D7RAN0Hr.js} +1 -1
  252. package/ui-dist/assets/{diagram-IFDJBPK2-Cdp8lQxJ.js → diagram-IFDJBPK2-B4LViaFR.js} +1 -1
  253. package/ui-dist/assets/{diagram-P4PSJMXO-DuTbeAS1.js → diagram-P4PSJMXO-CY1be7ak.js} +1 -1
  254. package/ui-dist/assets/{erDiagram-INFDFZHY-CzoQlOwo.js → erDiagram-INFDFZHY-Dca0KkvJ.js} +1 -1
  255. package/ui-dist/assets/{flowDiagram-PKNHOUZH-Diz_MWi3.js → flowDiagram-PKNHOUZH-i-qMvfwg.js} +1 -1
  256. package/ui-dist/assets/{ganttDiagram-A5KZAMGK-CWeGI1E-.js → ganttDiagram-A5KZAMGK-Wxq2lhbh.js} +1 -1
  257. package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-C3QhZnAN.js → gitGraphDiagram-K3NZZRJ6-DwzgPlAY.js} +1 -1
  258. package/ui-dist/assets/{graph-KQH4eaLv.js → graph-BAqf89Tz.js} +1 -1
  259. package/ui-dist/assets/{index-CkEEsJ_9.js → index-4eCzaLuY.js} +1 -1
  260. package/ui-dist/assets/{index-DCOA92Vt.js → index-8uu-nKqK.js} +1 -1
  261. package/ui-dist/assets/{index-DtsZnqcf.js → index-B-1NEcI_.js} +1 -1
  262. package/ui-dist/assets/{index-BvGpil9e.js → index-B0b_3Eu5.js} +1 -1
  263. package/ui-dist/assets/{index-BMhxh9sB.js → index-B8v0eZjP.js} +1 -1
  264. package/ui-dist/assets/{index-aKvEm2pJ.js → index-BN7Moj3u.js} +1 -1
  265. package/ui-dist/assets/{index-iJyjaIGd.js → index-BSpxh3cY.js} +1 -1
  266. package/ui-dist/assets/{index-DhRKQjzu.js → index-BY44RIi9.js} +1 -1
  267. package/ui-dist/assets/{index-Z4rTzdcL.js → index-BhyQJhdZ.js} +1 -1
  268. package/ui-dist/assets/{index-DBxBUiZC.js → index-BkPL_iGU.js} +1 -1
  269. package/ui-dist/assets/{index-CsSppW5U.js → index-BsPfoHXS.js} +1 -1
  270. package/ui-dist/assets/{index-B8J1oewY.js → index-BstW7nmv.js} +1 -1
  271. package/ui-dist/assets/{index-CVZYu_kq.js → index-BwB67Zyz.js} +1 -1
  272. package/ui-dist/assets/index-C2peSkmT.css +1 -0
  273. package/ui-dist/assets/{index-Djz3PL1M.js → index-C3ktOsS_.js} +1 -1
  274. package/ui-dist/assets/{index-BMZfWLwr.js → index-CMyABlS-.js} +1 -1
  275. package/ui-dist/assets/{index-Cqdw7Lnc.js → index-CyBJ8ujC.js} +1 -1
  276. package/ui-dist/assets/{index-Ctp_0y5X.js → index-DAxM2W3O.js} +1 -1
  277. package/ui-dist/assets/{index-_jGthZ-1.js → index-DVZXPmhk.js} +1 -1
  278. package/ui-dist/assets/{index-CBLnbZVL.js → index-Dc19uAyw.js} +1 -1
  279. package/ui-dist/assets/index-DzHrwZu1.js +1511 -0
  280. package/ui-dist/assets/{index-ChTjk1gO.js → index-LJuf53Ye.js} +1 -1
  281. package/ui-dist/assets/{index-wXEAD8rI.js → index-Ugw5VWWz.js} +1 -1
  282. package/ui-dist/assets/{index-ciyPUpT9.js → index-YGraEFR7.js} +1 -1
  283. package/ui-dist/assets/{infoDiagram-LFFYTUFH-DbMzKsuw.js → infoDiagram-LFFYTUFH-jLmDtFVR.js} +1 -1
  284. package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-CcKXcf2V.js → ishikawaDiagram-PHBUUO56-6OGMyLT8.js} +1 -1
  285. package/ui-dist/assets/{journeyDiagram-4ABVD52K-BY2GuHyR.js → journeyDiagram-4ABVD52K-yQjl6E0t.js} +1 -1
  286. package/ui-dist/assets/{kanban-definition-K7BYSVSG-BlZWM0Uz.js → kanban-definition-K7BYSVSG-DkdCeQlS.js} +1 -1
  287. package/ui-dist/assets/{layout-qHGAYgRY.js → layout-CqSYvZ_w.js} +1 -1
  288. package/ui-dist/assets/{linear-BigkGXbh.js → linear-B8xGZaoi.js} +1 -1
  289. package/ui-dist/assets/{mermaid.core-DZ099nW4.js → mermaid.core-AKL_cdyk.js} +4 -4
  290. package/ui-dist/assets/{mindmap-definition-YRQLILUH-CElDqDe0.js → mindmap-definition-YRQLILUH-Zr-dXC0x.js} +1 -1
  291. package/ui-dist/assets/{pieDiagram-SKSYHLDU-I2LDYrgm.js → pieDiagram-SKSYHLDU-BvDAU-Nk.js} +1 -1
  292. package/ui-dist/assets/{quadrantDiagram-337W2JSQ-D-U35edU.js → quadrantDiagram-337W2JSQ-Dn9kM62o.js} +1 -1
  293. package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-FAWtaOKe.js → requirementDiagram-Z7DCOOCP-GIsIh7Sd.js} +1 -1
  294. package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-CzFHHNNh.js → sankeyDiagram-WA2Y5GQK-CUCuBkuf.js} +1 -1
  295. package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-Cy-UViPL.js → sequenceDiagram-2WXFIKYE-MDpUY2HM.js} +1 -1
  296. package/ui-dist/assets/{stateDiagram-RAJIS63D-BEdt3CLl.js → stateDiagram-RAJIS63D-BymMpuUU.js} +1 -1
  297. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-Bi2oCU6d.js +1 -0
  298. package/ui-dist/assets/{timeline-definition-YZTLITO2-YD1e-WHS.js → timeline-definition-YZTLITO2-B6ofPhhy.js} +1 -1
  299. package/ui-dist/assets/{treemap-KZPCXAKY-BnqlVkAC.js → treemap-KZPCXAKY-DnLO6w1l.js} +1 -1
  300. package/ui-dist/assets/{vennDiagram-LZ73GAT5-f4WCy3o6.js → vennDiagram-LZ73GAT5-D0MyZIDl.js} +1 -1
  301. package/ui-dist/assets/{xychartDiagram-JWTSCODW-CWA35znA.js → xychartDiagram-JWTSCODW-rADY1iUG.js} +1 -1
  302. package/ui-dist/index.html +2 -2
  303. package/ui-dist/assets/channel-BV7st2TW.js +0 -1
  304. package/ui-dist/assets/classDiagram-VBA2DB6C-Cw_xj5ie.js +0 -1
  305. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-Cw_xj5ie.js +0 -1
  306. package/ui-dist/assets/clone-DGshofUt.js +0 -1
  307. package/ui-dist/assets/index-Ded0dPwB.css +0 -1
  308. package/ui-dist/assets/index-Jhxth516.js +0 -1510
  309. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-cW7aES_v.js +0 -1
@@ -0,0 +1,606 @@
1
+ import { spawn } from "node:child_process";
2
+ import net from "node:net";
3
+ import { createHash, randomUUID } from "node:crypto";
4
+ import path from "node:path";
5
+ import { setTimeout as delay } from "node:timers/promises";
6
+ import { workspaceRuntimeServices } from "@rudderhq/db";
7
+ import { and, desc, eq, inArray } from "drizzle-orm";
8
+ import { asNumber, asString, parseObject, renderTemplate } from "../agent-runtimes/utils.js";
9
+ import { runtimeServicesById, runtimeServicesByReuseKey, runtimeServiceLeasesByRun, stableStringify, sanitizeRuntimeServiceBaseEnv, stableRuntimeServiceId, toRuntimeServiceRef, resolveConfiguredPath, terminateChildProcess } from "./workspace-runtime.helpers.js";
10
+ export async function allocatePort() {
11
+ return await new Promise((resolve, reject) => {
12
+ const server = net.createServer();
13
+ server.listen(0, "127.0.0.1", () => {
14
+ const address = server.address();
15
+ server.close((err) => {
16
+ if (err) {
17
+ reject(err);
18
+ return;
19
+ }
20
+ if (!address || typeof address === "string") {
21
+ reject(new Error("Failed to allocate port"));
22
+ return;
23
+ }
24
+ resolve(address.port);
25
+ });
26
+ });
27
+ server.on("error", reject);
28
+ });
29
+ }
30
+ export function buildTemplateData(input) {
31
+ return {
32
+ workspace: {
33
+ cwd: input.workspace.cwd,
34
+ branchName: input.workspace.branchName ?? "",
35
+ worktreePath: input.workspace.worktreePath ?? "",
36
+ repoUrl: input.workspace.repoUrl ?? "",
37
+ repoRef: input.workspace.repoRef ?? "",
38
+ env: input.adapterEnv,
39
+ },
40
+ issue: {
41
+ id: input.issue?.id ?? "",
42
+ identifier: input.issue?.identifier ?? "",
43
+ title: input.issue?.title ?? "",
44
+ },
45
+ agent: {
46
+ id: input.agent.id,
47
+ name: input.agent.name,
48
+ },
49
+ port: input.port ?? "",
50
+ };
51
+ }
52
+ export function resolveServiceScopeId(input) {
53
+ const scopeTypeRaw = asString(input.service.reuseScope, input.service.lifecycle === "shared" ? "project_workspace" : "run");
54
+ const scopeType = scopeTypeRaw === "project_workspace" ||
55
+ scopeTypeRaw === "execution_workspace" ||
56
+ scopeTypeRaw === "agent"
57
+ ? scopeTypeRaw
58
+ : "run";
59
+ if (scopeType === "project_workspace")
60
+ return { scopeType, scopeId: input.workspace.workspaceId ?? input.workspace.projectId };
61
+ if (scopeType === "execution_workspace") {
62
+ return { scopeType, scopeId: input.executionWorkspaceId ?? input.workspace.cwd };
63
+ }
64
+ if (scopeType === "agent")
65
+ return { scopeType, scopeId: input.agent.id };
66
+ return { scopeType: "run", scopeId: input.runId };
67
+ }
68
+ export async function waitForReadiness(input) {
69
+ const readiness = parseObject(input.service.readiness);
70
+ const readinessType = asString(readiness.type, "");
71
+ if (readinessType !== "http" || !input.url)
72
+ return;
73
+ const timeoutSec = Math.max(1, asNumber(readiness.timeoutSec, 30));
74
+ const intervalMs = Math.max(100, asNumber(readiness.intervalMs, 500));
75
+ const deadline = Date.now() + timeoutSec * 1000;
76
+ let lastError = "service did not become ready";
77
+ while (Date.now() < deadline) {
78
+ try {
79
+ const response = await fetch(input.url);
80
+ if (response.ok)
81
+ return;
82
+ lastError = `received HTTP ${response.status}`;
83
+ }
84
+ catch (err) {
85
+ lastError = err instanceof Error ? err.message : String(err);
86
+ }
87
+ await delay(intervalMs);
88
+ }
89
+ throw new Error(`Readiness check failed for ${input.url}: ${lastError}`);
90
+ }
91
+ export function toPersistedWorkspaceRuntimeService(record) {
92
+ return {
93
+ id: record.id,
94
+ orgId: record.orgId,
95
+ projectId: record.projectId,
96
+ projectWorkspaceId: record.projectWorkspaceId,
97
+ executionWorkspaceId: record.executionWorkspaceId,
98
+ issueId: record.issueId,
99
+ scopeType: record.scopeType,
100
+ scopeId: record.scopeId,
101
+ serviceName: record.serviceName,
102
+ status: record.status,
103
+ lifecycle: record.lifecycle,
104
+ reuseKey: record.reuseKey,
105
+ command: record.command,
106
+ cwd: record.cwd,
107
+ port: record.port,
108
+ url: record.url,
109
+ provider: record.provider,
110
+ providerRef: record.providerRef,
111
+ ownerAgentId: record.ownerAgentId,
112
+ startedByRunId: record.startedByRunId,
113
+ lastUsedAt: new Date(record.lastUsedAt),
114
+ startedAt: new Date(record.startedAt),
115
+ stoppedAt: record.stoppedAt ? new Date(record.stoppedAt) : null,
116
+ stopPolicy: record.stopPolicy,
117
+ healthStatus: record.healthStatus,
118
+ updatedAt: new Date(),
119
+ };
120
+ }
121
+ export async function persistRuntimeServiceRecord(db, record) {
122
+ if (!db)
123
+ return;
124
+ const values = toPersistedWorkspaceRuntimeService(record);
125
+ await db
126
+ .insert(workspaceRuntimeServices)
127
+ .values(values)
128
+ .onConflictDoUpdate({
129
+ target: workspaceRuntimeServices.id,
130
+ set: {
131
+ projectId: values.projectId,
132
+ projectWorkspaceId: values.projectWorkspaceId,
133
+ executionWorkspaceId: values.executionWorkspaceId,
134
+ issueId: values.issueId,
135
+ scopeType: values.scopeType,
136
+ scopeId: values.scopeId,
137
+ serviceName: values.serviceName,
138
+ status: values.status,
139
+ lifecycle: values.lifecycle,
140
+ reuseKey: values.reuseKey,
141
+ command: values.command,
142
+ cwd: values.cwd,
143
+ port: values.port,
144
+ url: values.url,
145
+ provider: values.provider,
146
+ providerRef: values.providerRef,
147
+ ownerAgentId: values.ownerAgentId,
148
+ startedByRunId: values.startedByRunId,
149
+ lastUsedAt: values.lastUsedAt,
150
+ startedAt: values.startedAt,
151
+ stoppedAt: values.stoppedAt,
152
+ stopPolicy: values.stopPolicy,
153
+ healthStatus: values.healthStatus,
154
+ updatedAt: values.updatedAt,
155
+ },
156
+ });
157
+ }
158
+ export function clearIdleTimer(record) {
159
+ if (!record.idleTimer)
160
+ return;
161
+ clearTimeout(record.idleTimer);
162
+ record.idleTimer = null;
163
+ }
164
+ export function normalizeAdapterManagedRuntimeServices(input) {
165
+ const nowIso = (input.now ?? new Date()).toISOString();
166
+ return input.reports.map((report) => {
167
+ const scopeType = report.scopeType ?? "run";
168
+ const scopeId = report.scopeId ??
169
+ (scopeType === "project_workspace"
170
+ ? input.workspace.workspaceId
171
+ : scopeType === "execution_workspace"
172
+ ? input.executionWorkspaceId ?? input.workspace.cwd
173
+ : scopeType === "agent"
174
+ ? input.agent.id
175
+ : input.runId) ??
176
+ null;
177
+ const serviceName = asString(report.serviceName, "").trim() || "service";
178
+ const status = report.status ?? "running";
179
+ const lifecycle = report.lifecycle ?? "ephemeral";
180
+ const healthStatus = report.healthStatus ??
181
+ (status === "running" ? "healthy" : status === "failed" ? "unhealthy" : "unknown");
182
+ return {
183
+ id: stableRuntimeServiceId({
184
+ agentRuntimeType: input.agentRuntimeType,
185
+ runId: input.runId,
186
+ scopeType,
187
+ scopeId,
188
+ serviceName,
189
+ reportId: report.id ?? null,
190
+ providerRef: report.providerRef ?? null,
191
+ reuseKey: report.reuseKey ?? null,
192
+ }),
193
+ orgId: input.agent.orgId,
194
+ projectId: report.projectId ?? input.workspace.projectId,
195
+ projectWorkspaceId: report.projectWorkspaceId ?? input.workspace.workspaceId,
196
+ executionWorkspaceId: input.executionWorkspaceId ?? null,
197
+ issueId: report.issueId ?? input.issue?.id ?? null,
198
+ serviceName,
199
+ status,
200
+ lifecycle,
201
+ scopeType,
202
+ scopeId,
203
+ reuseKey: report.reuseKey ?? null,
204
+ command: report.command ?? null,
205
+ cwd: report.cwd ?? null,
206
+ port: report.port ?? null,
207
+ url: report.url ?? null,
208
+ provider: "adapter_managed",
209
+ providerRef: report.providerRef ?? null,
210
+ ownerAgentId: report.ownerAgentId ?? input.agent.id,
211
+ startedByRunId: input.runId,
212
+ lastUsedAt: nowIso,
213
+ startedAt: nowIso,
214
+ stoppedAt: status === "running" || status === "starting" ? null : nowIso,
215
+ stopPolicy: report.stopPolicy ?? null,
216
+ healthStatus,
217
+ reused: false,
218
+ };
219
+ });
220
+ }
221
+ export async function startLocalRuntimeService(input) {
222
+ const serviceName = asString(input.service.name, "service");
223
+ const lifecycle = asString(input.service.lifecycle, "shared") === "ephemeral" ? "ephemeral" : "shared";
224
+ const command = asString(input.service.command, "");
225
+ if (!command)
226
+ throw new Error(`Runtime service "${serviceName}" is missing command`);
227
+ const serviceCwdTemplate = asString(input.service.cwd, ".");
228
+ const portConfig = parseObject(input.service.port);
229
+ const port = asString(portConfig.type, "") === "auto" ? await allocatePort() : null;
230
+ const envConfig = parseObject(input.service.env);
231
+ const templateData = buildTemplateData({
232
+ workspace: input.workspace,
233
+ agent: input.agent,
234
+ issue: input.issue,
235
+ adapterEnv: input.adapterEnv,
236
+ port,
237
+ });
238
+ const serviceCwd = resolveConfiguredPath(renderTemplate(serviceCwdTemplate, templateData), input.workspace.cwd);
239
+ const env = {
240
+ ...sanitizeRuntimeServiceBaseEnv(process.env),
241
+ ...input.adapterEnv,
242
+ };
243
+ for (const [key, value] of Object.entries(envConfig)) {
244
+ if (typeof value === "string") {
245
+ env[key] = renderTemplate(value, templateData);
246
+ }
247
+ }
248
+ if (port) {
249
+ const portEnvKey = asString(portConfig.envKey, "PORT");
250
+ env[portEnvKey] = String(port);
251
+ }
252
+ const shell = process.env.SHELL?.trim() || "/bin/sh";
253
+ const child = spawn(shell, ["-lc", command], {
254
+ cwd: serviceCwd,
255
+ env,
256
+ detached: process.platform !== "win32",
257
+ stdio: ["ignore", "pipe", "pipe"],
258
+ });
259
+ let stderrExcerpt = "";
260
+ let stdoutExcerpt = "";
261
+ child.stdout?.on("data", async (chunk) => {
262
+ const text = String(chunk);
263
+ stdoutExcerpt = (stdoutExcerpt + text).slice(-4096);
264
+ if (input.onLog)
265
+ await input.onLog("stdout", `[service:${serviceName}] ${text}`);
266
+ });
267
+ child.stderr?.on("data", async (chunk) => {
268
+ const text = String(chunk);
269
+ stderrExcerpt = (stderrExcerpt + text).slice(-4096);
270
+ if (input.onLog)
271
+ await input.onLog("stderr", `[service:${serviceName}] ${text}`);
272
+ });
273
+ const expose = parseObject(input.service.expose);
274
+ const readiness = parseObject(input.service.readiness);
275
+ const urlTemplate = asString(expose.urlTemplate, "") ||
276
+ asString(readiness.urlTemplate, "");
277
+ const url = urlTemplate ? renderTemplate(urlTemplate, templateData) : null;
278
+ try {
279
+ await waitForReadiness({ service: input.service, url });
280
+ }
281
+ catch (err) {
282
+ terminateChildProcess(child);
283
+ throw new Error(`Failed to start runtime service "${serviceName}": ${err instanceof Error ? err.message : String(err)}${stderrExcerpt ? ` | stderr: ${stderrExcerpt.trim()}` : ""}`);
284
+ }
285
+ const envFingerprint = createHash("sha256").update(stableStringify(envConfig)).digest("hex");
286
+ return {
287
+ id: randomUUID(),
288
+ orgId: input.agent.orgId,
289
+ projectId: input.workspace.projectId,
290
+ projectWorkspaceId: input.workspace.workspaceId,
291
+ executionWorkspaceId: input.executionWorkspaceId ?? null,
292
+ issueId: input.issue?.id ?? null,
293
+ serviceName,
294
+ status: "running",
295
+ lifecycle,
296
+ scopeType: input.scopeType,
297
+ scopeId: input.scopeId,
298
+ reuseKey: input.reuseKey,
299
+ command,
300
+ cwd: serviceCwd,
301
+ port,
302
+ url,
303
+ provider: "local_process",
304
+ providerRef: child.pid ? String(child.pid) : null,
305
+ ownerAgentId: input.agent.id,
306
+ startedByRunId: input.runId,
307
+ lastUsedAt: new Date().toISOString(),
308
+ startedAt: new Date().toISOString(),
309
+ stoppedAt: null,
310
+ stopPolicy: parseObject(input.service.stopPolicy),
311
+ healthStatus: "healthy",
312
+ reused: false,
313
+ db: input.db,
314
+ child,
315
+ leaseRunIds: new Set([input.runId]),
316
+ idleTimer: null,
317
+ envFingerprint,
318
+ };
319
+ }
320
+ export function scheduleIdleStop(record) {
321
+ clearIdleTimer(record);
322
+ const stopType = asString(record.stopPolicy?.type, "manual");
323
+ if (stopType !== "idle_timeout")
324
+ return;
325
+ const idleSeconds = Math.max(1, asNumber(record.stopPolicy?.idleSeconds, 1800));
326
+ record.idleTimer = setTimeout(() => {
327
+ stopRuntimeService(record.id).catch(() => undefined);
328
+ }, idleSeconds * 1000);
329
+ }
330
+ export async function stopRuntimeService(serviceId) {
331
+ const record = runtimeServicesById.get(serviceId);
332
+ if (!record)
333
+ return;
334
+ clearIdleTimer(record);
335
+ record.status = "stopped";
336
+ record.lastUsedAt = new Date().toISOString();
337
+ record.stoppedAt = new Date().toISOString();
338
+ if (record.child && record.child.pid) {
339
+ terminateChildProcess(record.child);
340
+ }
341
+ runtimeServicesById.delete(serviceId);
342
+ if (record.reuseKey) {
343
+ runtimeServicesByReuseKey.delete(record.reuseKey);
344
+ }
345
+ await persistRuntimeServiceRecord(record.db, record);
346
+ }
347
+ export async function markPersistedRuntimeServicesStoppedForExecutionWorkspace(input) {
348
+ const now = new Date();
349
+ await input.db
350
+ .update(workspaceRuntimeServices)
351
+ .set({
352
+ status: "stopped",
353
+ healthStatus: "unknown",
354
+ stoppedAt: now,
355
+ lastUsedAt: now,
356
+ updatedAt: now,
357
+ })
358
+ .where(and(eq(workspaceRuntimeServices.executionWorkspaceId, input.executionWorkspaceId), inArray(workspaceRuntimeServices.status, ["starting", "running"])));
359
+ }
360
+ export function registerRuntimeService(db, record) {
361
+ record.db = db;
362
+ runtimeServicesById.set(record.id, record);
363
+ if (record.reuseKey) {
364
+ runtimeServicesByReuseKey.set(record.reuseKey, record.id);
365
+ }
366
+ record.child?.on("exit", (code, signal) => {
367
+ const current = runtimeServicesById.get(record.id);
368
+ if (!current)
369
+ return;
370
+ clearIdleTimer(current);
371
+ current.status = code === 0 || signal === "SIGTERM" ? "stopped" : "failed";
372
+ current.healthStatus = current.status === "failed" ? "unhealthy" : "unknown";
373
+ current.lastUsedAt = new Date().toISOString();
374
+ current.stoppedAt = new Date().toISOString();
375
+ runtimeServicesById.delete(current.id);
376
+ if (current.reuseKey && runtimeServicesByReuseKey.get(current.reuseKey) === current.id) {
377
+ runtimeServicesByReuseKey.delete(current.reuseKey);
378
+ }
379
+ void persistRuntimeServiceRecord(db, current);
380
+ });
381
+ }
382
+ export async function ensureRuntimeServicesForRun(input) {
383
+ const runtime = parseObject(input.config.workspaceRuntime);
384
+ const rawServices = Array.isArray(runtime.services)
385
+ ? runtime.services.filter((entry) => typeof entry === "object" && entry !== null)
386
+ : [];
387
+ const acquiredServiceIds = [];
388
+ const refs = [];
389
+ runtimeServiceLeasesByRun.set(input.runId, acquiredServiceIds);
390
+ try {
391
+ for (const service of rawServices) {
392
+ const lifecycle = asString(service.lifecycle, "shared") === "ephemeral" ? "ephemeral" : "shared";
393
+ const { scopeType, scopeId } = resolveServiceScopeId({
394
+ service,
395
+ workspace: input.workspace,
396
+ executionWorkspaceId: input.executionWorkspaceId,
397
+ issue: input.issue,
398
+ runId: input.runId,
399
+ agent: input.agent,
400
+ });
401
+ const envConfig = parseObject(service.env);
402
+ const envFingerprint = createHash("sha256").update(stableStringify(envConfig)).digest("hex");
403
+ const serviceName = asString(service.name, "service");
404
+ const reuseKey = lifecycle === "shared"
405
+ ? [scopeType, scopeId ?? "", serviceName, envFingerprint].join(":")
406
+ : null;
407
+ if (reuseKey) {
408
+ const existingId = runtimeServicesByReuseKey.get(reuseKey);
409
+ const existing = existingId ? runtimeServicesById.get(existingId) : null;
410
+ if (existing && existing.status === "running") {
411
+ existing.leaseRunIds.add(input.runId);
412
+ existing.lastUsedAt = new Date().toISOString();
413
+ existing.stoppedAt = null;
414
+ clearIdleTimer(existing);
415
+ await persistRuntimeServiceRecord(input.db, existing);
416
+ acquiredServiceIds.push(existing.id);
417
+ refs.push(toRuntimeServiceRef(existing, { reused: true }));
418
+ continue;
419
+ }
420
+ }
421
+ const record = await startLocalRuntimeService({
422
+ db: input.db,
423
+ runId: input.runId,
424
+ agent: input.agent,
425
+ issue: input.issue,
426
+ workspace: input.workspace,
427
+ executionWorkspaceId: input.executionWorkspaceId,
428
+ adapterEnv: input.adapterEnv,
429
+ service,
430
+ onLog: input.onLog,
431
+ reuseKey,
432
+ scopeType,
433
+ scopeId,
434
+ });
435
+ registerRuntimeService(input.db, record);
436
+ await persistRuntimeServiceRecord(input.db, record);
437
+ acquiredServiceIds.push(record.id);
438
+ refs.push(toRuntimeServiceRef(record));
439
+ }
440
+ }
441
+ catch (err) {
442
+ await releaseRuntimeServicesForRun(input.runId);
443
+ throw err;
444
+ }
445
+ return refs;
446
+ }
447
+ export async function releaseRuntimeServicesForRun(runId) {
448
+ const acquired = runtimeServiceLeasesByRun.get(runId) ?? [];
449
+ runtimeServiceLeasesByRun.delete(runId);
450
+ for (const serviceId of acquired) {
451
+ const record = runtimeServicesById.get(serviceId);
452
+ if (!record)
453
+ continue;
454
+ record.leaseRunIds.delete(runId);
455
+ record.lastUsedAt = new Date().toISOString();
456
+ const stopType = asString(record.stopPolicy?.type, record.lifecycle === "ephemeral" ? "on_run_finish" : "manual");
457
+ await persistRuntimeServiceRecord(record.db, record);
458
+ if (record.leaseRunIds.size === 0) {
459
+ if (record.lifecycle === "ephemeral" || stopType === "on_run_finish") {
460
+ await stopRuntimeService(serviceId);
461
+ continue;
462
+ }
463
+ scheduleIdleStop(record);
464
+ }
465
+ }
466
+ }
467
+ export async function stopRuntimeServicesForExecutionWorkspace(input) {
468
+ const normalizedWorkspaceCwd = input.workspaceCwd ? path.resolve(input.workspaceCwd) : null;
469
+ const matchingServiceIds = Array.from(runtimeServicesById.values())
470
+ .filter((record) => {
471
+ if (record.executionWorkspaceId === input.executionWorkspaceId)
472
+ return true;
473
+ if (!normalizedWorkspaceCwd || !record.cwd)
474
+ return false;
475
+ const resolvedCwd = path.resolve(record.cwd);
476
+ return (resolvedCwd === normalizedWorkspaceCwd ||
477
+ resolvedCwd.startsWith(`${normalizedWorkspaceCwd}${path.sep}`));
478
+ })
479
+ .map((record) => record.id);
480
+ for (const serviceId of matchingServiceIds) {
481
+ await stopRuntimeService(serviceId);
482
+ }
483
+ if (input.db) {
484
+ await markPersistedRuntimeServicesStoppedForExecutionWorkspace({
485
+ db: input.db,
486
+ executionWorkspaceId: input.executionWorkspaceId,
487
+ });
488
+ }
489
+ }
490
+ export async function listWorkspaceRuntimeServicesForProjectWorkspaces(db, orgId, projectWorkspaceIds) {
491
+ if (projectWorkspaceIds.length === 0)
492
+ return new Map();
493
+ const rows = await db
494
+ .select()
495
+ .from(workspaceRuntimeServices)
496
+ .where(and(eq(workspaceRuntimeServices.orgId, orgId), inArray(workspaceRuntimeServices.projectWorkspaceId, projectWorkspaceIds)))
497
+ .orderBy(desc(workspaceRuntimeServices.updatedAt), desc(workspaceRuntimeServices.createdAt));
498
+ const grouped = new Map();
499
+ for (const row of rows) {
500
+ if (!row.projectWorkspaceId)
501
+ continue;
502
+ const existing = grouped.get(row.projectWorkspaceId);
503
+ if (existing)
504
+ existing.push(row);
505
+ else
506
+ grouped.set(row.projectWorkspaceId, [row]);
507
+ }
508
+ return grouped;
509
+ }
510
+ export async function reconcilePersistedRuntimeServicesOnStartup(db) {
511
+ const staleRows = await db
512
+ .select({ id: workspaceRuntimeServices.id })
513
+ .from(workspaceRuntimeServices)
514
+ .where(and(eq(workspaceRuntimeServices.provider, "local_process"), inArray(workspaceRuntimeServices.status, ["starting", "running"])));
515
+ if (staleRows.length === 0)
516
+ return { reconciled: 0 };
517
+ const now = new Date();
518
+ await db
519
+ .update(workspaceRuntimeServices)
520
+ .set({
521
+ status: "stopped",
522
+ healthStatus: "unknown",
523
+ stoppedAt: now,
524
+ lastUsedAt: now,
525
+ updatedAt: now,
526
+ })
527
+ .where(and(eq(workspaceRuntimeServices.provider, "local_process"), inArray(workspaceRuntimeServices.status, ["starting", "running"])));
528
+ return { reconciled: staleRows.length };
529
+ }
530
+ export async function persistAdapterManagedRuntimeServices(input) {
531
+ const refs = normalizeAdapterManagedRuntimeServices(input);
532
+ if (refs.length === 0)
533
+ return refs;
534
+ const existingRows = await input.db
535
+ .select()
536
+ .from(workspaceRuntimeServices)
537
+ .where(inArray(workspaceRuntimeServices.id, refs.map((ref) => ref.id)));
538
+ const existingById = new Map(existingRows.map((row) => [row.id, row]));
539
+ for (const ref of refs) {
540
+ const existing = existingById.get(ref.id);
541
+ const startedAt = existing?.startedAt ?? new Date(ref.startedAt);
542
+ const createdAt = existing?.createdAt ?? new Date();
543
+ await input.db
544
+ .insert(workspaceRuntimeServices)
545
+ .values({
546
+ id: ref.id,
547
+ orgId: ref.orgId,
548
+ projectId: ref.projectId,
549
+ projectWorkspaceId: ref.projectWorkspaceId,
550
+ executionWorkspaceId: ref.executionWorkspaceId,
551
+ issueId: ref.issueId,
552
+ scopeType: ref.scopeType,
553
+ scopeId: ref.scopeId,
554
+ serviceName: ref.serviceName,
555
+ status: ref.status,
556
+ lifecycle: ref.lifecycle,
557
+ reuseKey: ref.reuseKey,
558
+ command: ref.command,
559
+ cwd: ref.cwd,
560
+ port: ref.port,
561
+ url: ref.url,
562
+ provider: ref.provider,
563
+ providerRef: ref.providerRef,
564
+ ownerAgentId: ref.ownerAgentId,
565
+ startedByRunId: ref.startedByRunId,
566
+ lastUsedAt: new Date(ref.lastUsedAt),
567
+ startedAt,
568
+ stoppedAt: ref.stoppedAt ? new Date(ref.stoppedAt) : null,
569
+ stopPolicy: ref.stopPolicy,
570
+ healthStatus: ref.healthStatus,
571
+ createdAt,
572
+ updatedAt: new Date(),
573
+ })
574
+ .onConflictDoUpdate({
575
+ target: workspaceRuntimeServices.id,
576
+ set: {
577
+ projectId: ref.projectId,
578
+ projectWorkspaceId: ref.projectWorkspaceId,
579
+ executionWorkspaceId: ref.executionWorkspaceId,
580
+ issueId: ref.issueId,
581
+ scopeType: ref.scopeType,
582
+ scopeId: ref.scopeId,
583
+ serviceName: ref.serviceName,
584
+ status: ref.status,
585
+ lifecycle: ref.lifecycle,
586
+ reuseKey: ref.reuseKey,
587
+ command: ref.command,
588
+ cwd: ref.cwd,
589
+ port: ref.port,
590
+ url: ref.url,
591
+ provider: ref.provider,
592
+ providerRef: ref.providerRef,
593
+ ownerAgentId: ref.ownerAgentId,
594
+ startedByRunId: ref.startedByRunId,
595
+ lastUsedAt: new Date(ref.lastUsedAt),
596
+ startedAt,
597
+ stoppedAt: ref.stoppedAt ? new Date(ref.stoppedAt) : null,
598
+ stopPolicy: ref.stopPolicy,
599
+ healthStatus: ref.healthStatus,
600
+ updatedAt: new Date(),
601
+ },
602
+ });
603
+ }
604
+ return refs;
605
+ }
606
+ //# sourceMappingURL=workspace-runtime.services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-runtime.services.js","sourceRoot":"","sources":["../../src/services/workspace-runtime.services.ts"],"names":[],"mappings":"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"}