@rudderhq/server 0.4.6-canary.9 → 0.5.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 (350) hide show
  1. package/dist/agent-runtimes/http/execute.d.ts.map +1 -1
  2. package/dist/agent-runtimes/http/execute.js +8 -2
  3. package/dist/agent-runtimes/http/execute.js.map +1 -1
  4. package/dist/agent-runtimes/process/execute.d.ts.map +1 -1
  5. package/dist/agent-runtimes/process/execute.js +3 -1
  6. package/dist/agent-runtimes/process/execute.js.map +1 -1
  7. package/dist/agent-runtimes/utils.d.ts +6 -1
  8. package/dist/agent-runtimes/utils.d.ts.map +1 -1
  9. package/dist/agent-runtimes/utils.js +1 -1
  10. package/dist/agent-runtimes/utils.js.map +1 -1
  11. package/dist/app.d.ts +3 -3
  12. package/dist/app.d.ts.map +1 -1
  13. package/dist/app.js +17 -8
  14. package/dist/app.js.map +1 -1
  15. package/dist/bootstrap/create-http-app.d.ts +6 -1
  16. package/dist/bootstrap/create-http-app.d.ts.map +1 -1
  17. package/dist/bootstrap/create-http-app.js +122 -46
  18. package/dist/bootstrap/create-http-app.js.map +1 -1
  19. package/dist/bootstrap/plugin-host-runtime.d.ts.map +1 -1
  20. package/dist/bootstrap/plugin-host-runtime.js +89 -31
  21. package/dist/bootstrap/plugin-host-runtime.js.map +1 -1
  22. package/dist/bootstrap/register-api-routes.d.ts +3 -1
  23. package/dist/bootstrap/register-api-routes.d.ts.map +1 -1
  24. package/dist/bootstrap/register-api-routes.js +3 -3
  25. package/dist/bootstrap/register-api-routes.js.map +1 -1
  26. package/dist/bootstrap/types.d.ts +1 -0
  27. package/dist/bootstrap/types.d.ts.map +1 -1
  28. package/dist/bundled-plugins/plugin-linear/dist/worker.js +348 -172
  29. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +3 -3
  30. package/dist/config.d.ts +2 -0
  31. package/dist/config.d.ts.map +1 -1
  32. package/dist/config.js +23 -0
  33. package/dist/config.js.map +1 -1
  34. package/dist/home-paths.d.ts.map +1 -1
  35. package/dist/home-paths.js +79 -7
  36. package/dist/home-paths.js.map +1 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +31 -54
  39. package/dist/index.js.map +1 -1
  40. package/dist/routes/access-onboarding.helpers.js +3 -3
  41. package/dist/routes/access-onboarding.helpers.js.map +1 -1
  42. package/dist/routes/access.helpers.d.ts.map +1 -1
  43. package/dist/routes/access.helpers.js +3 -2
  44. package/dist/routes/access.helpers.js.map +1 -1
  45. package/dist/routes/access.js +1 -1
  46. package/dist/routes/access.js.map +1 -1
  47. package/dist/routes/activity.d.ts.map +1 -1
  48. package/dist/routes/activity.js +5 -1
  49. package/dist/routes/activity.js.map +1 -1
  50. package/dist/routes/agents.management-routes.d.ts.map +1 -1
  51. package/dist/routes/agents.management-routes.js +13 -13
  52. package/dist/routes/agents.management-routes.js.map +1 -1
  53. package/dist/routes/assets.d.ts.map +1 -1
  54. package/dist/routes/assets.js +9 -2
  55. package/dist/routes/assets.js.map +1 -1
  56. package/dist/routes/chat-background-runtime.d.ts +19 -0
  57. package/dist/routes/chat-background-runtime.d.ts.map +1 -0
  58. package/dist/routes/chat-background-runtime.js +129 -0
  59. package/dist/routes/chat-background-runtime.js.map +1 -0
  60. package/dist/routes/chats.d.ts +2 -1
  61. package/dist/routes/chats.d.ts.map +1 -1
  62. package/dist/routes/chats.js +944 -24
  63. package/dist/routes/chats.js.map +1 -1
  64. package/dist/routes/chats.stream-routes.d.ts.map +1 -1
  65. package/dist/routes/chats.stream-routes.js +552 -76
  66. package/dist/routes/chats.stream-routes.js.map +1 -1
  67. package/dist/routes/issues.comments-attachments.d.ts.map +1 -1
  68. package/dist/routes/issues.comments-attachments.js +14 -31
  69. package/dist/routes/issues.comments-attachments.js.map +1 -1
  70. package/dist/routes/onboarding.js +1 -1
  71. package/dist/routes/onboarding.js.map +1 -1
  72. package/dist/routes/orgs.d.ts +2 -1
  73. package/dist/routes/orgs.d.ts.map +1 -1
  74. package/dist/routes/orgs.js +31 -2
  75. package/dist/routes/orgs.js.map +1 -1
  76. package/dist/routes/run-intelligence.d.ts.map +1 -1
  77. package/dist/routes/run-intelligence.js +76 -16
  78. package/dist/routes/run-intelligence.js.map +1 -1
  79. package/dist/services/activity-log.d.ts +4 -1
  80. package/dist/services/activity-log.d.ts.map +1 -1
  81. package/dist/services/activity-log.js +12 -4
  82. package/dist/services/activity-log.js.map +1 -1
  83. package/dist/services/activity.d.ts +11 -394
  84. package/dist/services/activity.d.ts.map +1 -1
  85. package/dist/services/activity.js +24 -18
  86. package/dist/services/activity.js.map +1 -1
  87. package/dist/services/agents.d.ts +741 -118
  88. package/dist/services/agents.d.ts.map +1 -1
  89. package/dist/services/approvals.d.ts +3 -3
  90. package/dist/services/automation-chat-output.d.ts.map +1 -1
  91. package/dist/services/automation-chat-output.js +115 -94
  92. package/dist/services/automation-chat-output.js.map +1 -1
  93. package/dist/services/budgets.d.ts.map +1 -1
  94. package/dist/services/budgets.js +38 -36
  95. package/dist/services/budgets.js.map +1 -1
  96. package/dist/services/chat-agent-runs.d.ts +3 -1
  97. package/dist/services/chat-agent-runs.d.ts.map +1 -1
  98. package/dist/services/chat-agent-runs.js +95 -34
  99. package/dist/services/chat-agent-runs.js.map +1 -1
  100. package/dist/services/chat-assistant.d.ts.map +1 -1
  101. package/dist/services/chat-assistant.helpers.d.ts +27 -4
  102. package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
  103. package/dist/services/chat-assistant.helpers.js +66 -2
  104. package/dist/services/chat-assistant.helpers.js.map +1 -1
  105. package/dist/services/chat-assistant.inline-visuals.test.d.ts +2 -0
  106. package/dist/services/chat-assistant.inline-visuals.test.d.ts.map +1 -0
  107. package/dist/services/chat-assistant.inline-visuals.test.js +86 -0
  108. package/dist/services/chat-assistant.inline-visuals.test.js.map +1 -0
  109. package/dist/services/chat-assistant.js +115 -22
  110. package/dist/services/chat-assistant.js.map +1 -1
  111. package/dist/services/chat-generation-locks.d.ts +85 -0
  112. package/dist/services/chat-generation-locks.d.ts.map +1 -1
  113. package/dist/services/chat-generation-locks.js +371 -9
  114. package/dist/services/chat-generation-locks.js.map +1 -1
  115. package/dist/services/chat-generation-locks.test.d.ts +2 -0
  116. package/dist/services/chat-generation-locks.test.d.ts.map +1 -0
  117. package/dist/services/chat-generation-locks.test.js +324 -0
  118. package/dist/services/chat-generation-locks.test.js.map +1 -0
  119. package/dist/services/chat-generation-protocol.d.ts +674 -0
  120. package/dist/services/chat-generation-protocol.d.ts.map +1 -0
  121. package/dist/services/chat-generation-protocol.js +1571 -0
  122. package/dist/services/chat-generation-protocol.js.map +1 -0
  123. package/dist/services/chat-generation-protocol.test.d.ts +2 -0
  124. package/dist/services/chat-generation-protocol.test.d.ts.map +1 -0
  125. package/dist/services/chat-generation-protocol.test.js +1156 -0
  126. package/dist/services/chat-generation-protocol.test.js.map +1 -0
  127. package/dist/services/chat-title-generation.d.ts +0 -3
  128. package/dist/services/chat-title-generation.d.ts.map +1 -1
  129. package/dist/services/chat-title-generation.js +2 -32
  130. package/dist/services/chat-title-generation.js.map +1 -1
  131. package/dist/services/chat-work-manifest.d.ts.map +1 -1
  132. package/dist/services/chat-work-manifest.js +5 -1
  133. package/dist/services/chat-work-manifest.js.map +1 -1
  134. package/dist/services/chats.d.ts +1451 -272
  135. package/dist/services/chats.d.ts.map +1 -1
  136. package/dist/services/chats.js +1372 -35
  137. package/dist/services/chats.js.map +1 -1
  138. package/dist/services/costs.d.ts +34 -7
  139. package/dist/services/costs.d.ts.map +1 -1
  140. package/dist/services/costs.js +129 -61
  141. package/dist/services/costs.js.map +1 -1
  142. package/dist/services/finance.d.ts +3 -3
  143. package/dist/services/goals.d.ts +2 -2
  144. package/dist/services/heartbeat.d.ts +1 -1
  145. package/dist/services/heartbeat.d.ts.map +1 -1
  146. package/dist/services/heartbeat.js +1 -1
  147. package/dist/services/heartbeat.js.map +1 -1
  148. package/dist/services/index.d.ts +1 -0
  149. package/dist/services/index.d.ts.map +1 -1
  150. package/dist/services/index.js +1 -0
  151. package/dist/services/index.js.map +1 -1
  152. package/dist/services/integrations/agent-integrations.d.ts +1 -1
  153. package/dist/services/integrations/custom-integrations.d.ts +1 -1
  154. package/dist/services/integrations/feishu/runtime.d.ts.map +1 -1
  155. package/dist/services/integrations/feishu/runtime.js +16 -0
  156. package/dist/services/integrations/feishu/runtime.js.map +1 -1
  157. package/dist/services/issues.comments-attachments.d.ts +111 -0
  158. package/dist/services/issues.comments-attachments.d.ts.map +1 -1
  159. package/dist/services/issues.comments-attachments.js +138 -66
  160. package/dist/services/issues.comments-attachments.js.map +1 -1
  161. package/dist/services/issues.d.ts +56 -0
  162. package/dist/services/issues.d.ts.map +1 -1
  163. package/dist/services/issues.helpers.d.ts.map +1 -1
  164. package/dist/services/issues.helpers.js +2 -2
  165. package/dist/services/issues.helpers.js.map +1 -1
  166. package/dist/services/issues.js +5 -2
  167. package/dist/services/issues.js.map +1 -1
  168. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
  169. package/dist/services/knowledge-portability/organization-skills.catalog.js +7 -1
  170. package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
  171. package/dist/services/messenger.d.ts.map +1 -1
  172. package/dist/services/messenger.js +11 -9
  173. package/dist/services/messenger.js.map +1 -1
  174. package/dist/services/organization-workspace-browser.d.ts.map +1 -1
  175. package/dist/services/organization-workspace-browser.js +19 -3
  176. package/dist/services/organization-workspace-browser.js.map +1 -1
  177. package/dist/services/orgs.d.ts.map +1 -1
  178. package/dist/services/orgs.js +36 -12
  179. package/dist/services/orgs.js.map +1 -1
  180. package/dist/services/plugin-dev-watcher.d.ts +19 -2
  181. package/dist/services/plugin-dev-watcher.d.ts.map +1 -1
  182. package/dist/services/plugin-dev-watcher.js +45 -11
  183. package/dist/services/plugin-dev-watcher.js.map +1 -1
  184. package/dist/services/plugin-registry.d.ts +28 -28
  185. package/dist/services/projects.d.ts +1 -1
  186. package/dist/services/run-events.d.ts +20 -0
  187. package/dist/services/run-events.d.ts.map +1 -0
  188. package/dist/services/run-events.js +34 -0
  189. package/dist/services/run-events.js.map +1 -0
  190. package/dist/services/run-intelligence.d.ts +16 -4
  191. package/dist/services/run-intelligence.d.ts.map +1 -1
  192. package/dist/services/run-intelligence.js +90 -15
  193. package/dist/services/run-intelligence.js.map +1 -1
  194. package/dist/services/runtime-kernel/heartbeat.core.d.ts +23 -0
  195. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
  196. package/dist/services/runtime-kernel/heartbeat.core.js +1 -0
  197. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
  198. package/dist/services/runtime-kernel/heartbeat.d.ts +95 -37
  199. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  200. package/dist/services/runtime-kernel/heartbeat.execute.d.ts +3 -1
  201. package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -1
  202. package/dist/services/runtime-kernel/heartbeat.execute.js +389 -219
  203. package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -1
  204. package/dist/services/runtime-kernel/heartbeat.js +594 -204
  205. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  206. package/dist/services/runtime-kernel/heartbeat.misc.d.ts.map +1 -1
  207. package/dist/services/runtime-kernel/heartbeat.misc.js +34 -24
  208. package/dist/services/runtime-kernel/heartbeat.misc.js.map +1 -1
  209. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
  210. package/dist/services/runtime-kernel/heartbeat.recovery.js +56 -6
  211. package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
  212. package/dist/services/runtime-kernel/heartbeat.release.d.ts +3 -1
  213. package/dist/services/runtime-kernel/heartbeat.release.d.ts.map +1 -1
  214. package/dist/services/runtime-kernel/heartbeat.release.js +276 -44
  215. package/dist/services/runtime-kernel/heartbeat.release.js.map +1 -1
  216. package/dist/services/runtime-kernel/heartbeat.sessions.d.ts +42 -1
  217. package/dist/services/runtime-kernel/heartbeat.sessions.d.ts.map +1 -1
  218. package/dist/services/runtime-kernel/heartbeat.sessions.js +110 -8
  219. package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -1
  220. package/dist/services/runtime-kernel/heartbeat.terminal.d.ts +575 -0
  221. package/dist/services/runtime-kernel/heartbeat.terminal.d.ts.map +1 -0
  222. package/dist/services/runtime-kernel/heartbeat.terminal.js +589 -0
  223. package/dist/services/runtime-kernel/heartbeat.terminal.js.map +1 -0
  224. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -1
  225. package/dist/services/runtime-kernel/heartbeat.wakeup.js +238 -92
  226. package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -1
  227. package/dist/services/runtime-kernel/model-fallback.d.ts.map +1 -1
  228. package/dist/services/runtime-kernel/model-fallback.js +11 -0
  229. package/dist/services/runtime-kernel/model-fallback.js.map +1 -1
  230. package/dist/services/side-chats.d.ts +212 -0
  231. package/dist/services/side-chats.d.ts.map +1 -0
  232. package/dist/services/side-chats.js +379 -0
  233. package/dist/services/side-chats.js.map +1 -0
  234. package/dist/services/workspace-runtime.services.d.ts +1 -1
  235. package/dist/services/workspace-web-preview.d.ts +36 -0
  236. package/dist/services/workspace-web-preview.d.ts.map +1 -0
  237. package/dist/services/workspace-web-preview.js +566 -0
  238. package/dist/services/workspace-web-preview.js.map +1 -0
  239. package/package.json +13 -13
  240. package/resources/bundled-skills/rudder-docs/SKILL.md +161 -0
  241. package/resources/bundled-skills/rudder-docs/evals/trigger-evals.json +82 -0
  242. package/{skills/rudder → resources/bundled-skills/rudder-docs}/references/api-reference.md +17 -1
  243. package/{skills/rudder → resources/bundled-skills/rudder-docs}/references/cli-reference.md +49 -94
  244. package/resources/bundled-skills/rudder-docs/references/control-plane-practices.md +231 -0
  245. package/{skills/rudder → resources/bundled-skills/rudder-docs}/references/organization-skills.md +15 -1
  246. package/resources/bundled-skills/rudder-docs/references/source-map.md +138 -0
  247. package/resources/bundled-skills/visualize/SKILL.md +132 -0
  248. package/resources/bundled-skills/visualize/agents/openai.yaml +7 -0
  249. package/resources/bundled-skills/visualize/assets/example-chart.html +89 -0
  250. package/resources/bundled-skills/visualize/references/runtime-contract.md +114 -0
  251. package/skills/rudder-docs/SKILL.md +161 -0
  252. package/skills/rudder-docs/evals/trigger-evals.json +82 -0
  253. package/{resources/bundled-skills/rudder → skills/rudder-docs}/references/api-reference.md +17 -1
  254. package/{resources/bundled-skills/rudder → skills/rudder-docs}/references/cli-reference.md +49 -94
  255. package/skills/rudder-docs/references/control-plane-practices.md +231 -0
  256. package/{resources/bundled-skills/rudder → skills/rudder-docs}/references/organization-skills.md +15 -1
  257. package/skills/rudder-docs/references/source-map.md +138 -0
  258. package/skills/visualize/SKILL.md +132 -0
  259. package/skills/visualize/agents/openai.yaml +7 -0
  260. package/skills/visualize/assets/example-chart.html +89 -0
  261. package/skills/visualize/references/runtime-contract.md +114 -0
  262. package/ui-dist/assets/{abnfDiagram-VRR7QNED-CKLAbEpH.js → abnfDiagram-VRR7QNED-Dpnx79fp.js} +1 -1
  263. package/ui-dist/assets/{arc-CS20WjB1.js → arc-Cpvh_rCf.js} +1 -1
  264. package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-BY4lounK.js → architectureDiagram-ZJ3FMSHR-sDD_mBAI.js} +1 -1
  265. package/ui-dist/assets/{blockDiagram-677ZJIJ3-BHtHl-hm.js → blockDiagram-677ZJIJ3-4O4wWti1.js} +1 -1
  266. package/ui-dist/assets/{c4Diagram-LMCZKHZV-DgOJp7yn.js → c4Diagram-LMCZKHZV-BkGODE4P.js} +1 -1
  267. package/ui-dist/assets/channel-CM4Myg_6.js +1 -0
  268. package/ui-dist/assets/{chunk-2Q5K7J3B-Uin6HTPH.js → chunk-2Q5K7J3B-DsDQQpID.js} +1 -1
  269. package/ui-dist/assets/{chunk-32BRIVSS-BxAI7yMx.js → chunk-32BRIVSS-Bzx_VnIw.js} +1 -1
  270. package/ui-dist/assets/{chunk-5VM5RSS4-Ce6AR6Sg.js → chunk-5VM5RSS4-D4LoPCni.js} +1 -1
  271. package/ui-dist/assets/{chunk-EX3LRPZG-DgxPO59e.js → chunk-EX3LRPZG-BO0R-mS4.js} +3 -3
  272. package/ui-dist/assets/{chunk-JWPE2WC7-Bn3BYmxA.js → chunk-JWPE2WC7-B4Nr8KRL.js} +1 -1
  273. package/ui-dist/assets/{chunk-MOJQB5TN-BlTdGU58.js → chunk-MOJQB5TN--uaDDrYM.js} +1 -1
  274. package/ui-dist/assets/{chunk-RYQCIY6F-C0V6evNH.js → chunk-RYQCIY6F-CyBY2w_j.js} +1 -1
  275. package/ui-dist/assets/{chunk-V7JOEXUC-DjvZ40fp.js → chunk-V7JOEXUC-BMid_x8S.js} +3 -3
  276. package/ui-dist/assets/{chunk-VR4S4FIN-CejmQVxi.js → chunk-VR4S4FIN-DVqdPKuG.js} +1 -1
  277. package/ui-dist/assets/{chunk-XXDRQBXY-tj-vHLHN.js → chunk-XXDRQBXY-vy03lLSS.js} +1 -1
  278. package/ui-dist/assets/classDiagram-OUVF2IWQ-CtlIEzTt.js +1 -0
  279. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-CtlIEzTt.js +1 -0
  280. package/ui-dist/assets/{cose-bilkent-JH36ORCC-Ci7DAkTj.js → cose-bilkent-JH36ORCC-jQDZmrG3.js} +1 -1
  281. package/ui-dist/assets/{cynefin-VYW2F7L2-CHU2plsQ.js → cynefin-VYW2F7L2-BxBj6aea.js} +1 -1
  282. package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-pqqNoczb.js → cynefinDiagram-TSTJHNR4-BuUubF5I.js} +1 -1
  283. package/ui-dist/assets/{dagre-VKFMJZFB-Bk8Y_kGf.js → dagre-VKFMJZFB-B8HipJ3a.js} +1 -1
  284. package/ui-dist/assets/{diagram-FQU43EPY-CiSxIS2M.js → diagram-FQU43EPY-r7gkbKSt.js} +2 -2
  285. package/ui-dist/assets/{diagram-G47NLZAW-qpVsOLnz.js → diagram-G47NLZAW-CxClRsxD.js} +1 -1
  286. package/ui-dist/assets/{diagram-NH7WQ7WH-Cda5JA3K.js → diagram-NH7WQ7WH-C8HYTLlq.js} +1 -1
  287. package/ui-dist/assets/{diagram-OA4YK3LP-Dh_DdE2d.js → diagram-OA4YK3LP-CjwqqLKz.js} +1 -1
  288. package/ui-dist/assets/{diagram-WEI45ONY-r5ouUhNZ.js → diagram-WEI45ONY-2IWfCqZb.js} +1 -1
  289. package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-C6lDAmmi.js → ebnfDiagram-CCIWWBDH-DVGZkgjy.js} +1 -1
  290. package/ui-dist/assets/{erDiagram-Q63AITRT-BznPfnRu.js → erDiagram-Q63AITRT-C_-u3Gmw.js} +1 -1
  291. package/ui-dist/assets/{flowDiagram-23GEKE2U-bCaogpDj.js → flowDiagram-23GEKE2U-BvGg0NCq.js} +4 -4
  292. package/ui-dist/assets/{ganttDiagram-NO4QXBWP-Bn-e5kP6.js → ganttDiagram-NO4QXBWP-U3CZUUUR.js} +1 -1
  293. package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-D7E-RLhl.js → gitGraphDiagram-IHSO6WYX-CIWuEBIo.js} +1 -1
  294. package/ui-dist/assets/{graph-3haZvvEy.js → graph-D3P5q-7m.js} +1 -1
  295. package/ui-dist/assets/index-B1rLBtZ1.js +1875 -0
  296. package/ui-dist/assets/{index-BUneV0z1.js → index-BAMXpiI5.js} +1 -1
  297. package/ui-dist/assets/{index-CheuLaX8.js → index-BAgtKYR1.js} +1 -1
  298. package/ui-dist/assets/{index-BDji4WI2.js → index-CBOr9F6w.js} +1 -1
  299. package/ui-dist/assets/{index-DlcNrNku.js → index-CbHqnWUe.js} +1 -1
  300. package/ui-dist/assets/{index-C1NcizE3.js → index-CjztBLJi.js} +1 -1
  301. package/ui-dist/assets/{index-JqztCnnf.js → index-Cu1iMhjl.js} +1 -1
  302. package/ui-dist/assets/{index-BFnwTV9t.js → index-D7ycf1qU.js} +1 -1
  303. package/ui-dist/assets/{index-JLGi6sfB.js → index-DAYlwxsg.js} +1 -1
  304. package/ui-dist/assets/{index-Bje1DqHh.js → index-DCFf9dps.js} +4 -4
  305. package/ui-dist/assets/{index-zyCQr__a.js → index-DOPIV8vd.js} +1 -1
  306. package/ui-dist/assets/{index-JEy5ZJbE.js → index-DRxLJD40.js} +1 -1
  307. package/ui-dist/assets/{index-Doc88zxN.js → index-DYMtCDKT.js} +1 -1
  308. package/ui-dist/assets/index-DekHKOsL.css +1 -0
  309. package/ui-dist/assets/{index-BN3GMGqN.js → index-DidCCw78.js} +1 -1
  310. package/ui-dist/assets/{index-DKRH0hjR.js → index-Ds_qma4-.js} +1 -1
  311. package/ui-dist/assets/{index-B2bHoMTu.js → index-HkQRx1D6.js} +1 -1
  312. package/ui-dist/assets/{index-DLxzQvPB.js → index-ikpL--zj.js} +1 -1
  313. package/ui-dist/assets/{index-mE0kmjy0.js → index-mnl55Stn.js} +1 -1
  314. package/ui-dist/assets/{infoDiagram-FWYZ7A6U-NSQ6saR1.js → infoDiagram-FWYZ7A6U-Cx8Fa-I4.js} +1 -1
  315. package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-XhGk3DMM.js → ishikawaDiagram-FXEZZL3T-Cmuz1QUN.js} +1 -1
  316. package/ui-dist/assets/{journeyDiagram-5HDEW3XC-CUyh1IKu.js → journeyDiagram-5HDEW3XC-CJgkiVXG.js} +1 -1
  317. package/ui-dist/assets/{kanban-definition-HUTT4EX6-P_0zllUc.js → kanban-definition-HUTT4EX6-RAWpefOB.js} +1 -1
  318. package/ui-dist/assets/layout-DyWQv0Rr.js +1 -0
  319. package/ui-dist/assets/{linear-DWu-hp7y.js → linear-D5pdgIf9.js} +1 -1
  320. package/ui-dist/assets/{map-B2IiHu-a.js → map-bVSzNLl2.js} +1 -1
  321. package/ui-dist/assets/mermaid.core-CeaXGD6B.js +312 -0
  322. package/ui-dist/assets/{mindmap-definition-LN4V7U3C-DpKo7DKc.js → mindmap-definition-LN4V7U3C-B8B8AX5C.js} +1 -1
  323. package/ui-dist/assets/{pegDiagram-2B236MQR-DzDDMRRX.js → pegDiagram-2B236MQR-C4Sv-ua6.js} +1 -1
  324. package/ui-dist/assets/{pieDiagram-ENE6RG2P-Dr7ZCi_a.js → pieDiagram-ENE6RG2P-CLARlOHx.js} +1 -1
  325. package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-BB_gv9s9.js → quadrantDiagram-ABIIQ3AL-DPCXQmeT.js} +1 -1
  326. package/ui-dist/assets/{railroadDiagram-RFXS5EU6-C2ji_jMN.js → railroadDiagram-RFXS5EU6-BpqRuKUQ.js} +1 -1
  327. package/ui-dist/assets/{requirementDiagram-TGXJPOKE-BJg8vYwc.js → requirementDiagram-TGXJPOKE-Dd-h62HZ.js} +1 -1
  328. package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-msvrlvO_.js → sankeyDiagram-HTMAVEWB-DylT_pqq.js} +1 -1
  329. package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-B_B68qK5.js → sequenceDiagram-DBY2YBRQ-RiCF1REj.js} +1 -1
  330. package/ui-dist/assets/{sizeCapture-X5ZJPWSS-D0VdKiQi.js → sizeCapture-X5ZJPWSS-DXW4JQz2.js} +1 -1
  331. package/ui-dist/assets/{stateDiagram-2N3HPSRC-B4V-owEQ.js → stateDiagram-2N3HPSRC-6U3ESIGT.js} +1 -1
  332. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-KQTrcZvp.js +1 -0
  333. package/ui-dist/assets/{swimlanes-5IMT3BWC-B1JTwGb7.js → swimlanes-5IMT3BWC-CeNHVNCi.js} +2 -2
  334. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-CcxS1c6r.js +8 -0
  335. package/ui-dist/assets/{timeline-definition-FHXFAJF6-C-8YlQA9.js → timeline-definition-FHXFAJF6-Vlwoe_1b.js} +1 -1
  336. package/ui-dist/assets/{vennDiagram-L72KCM5P-DP13xuPX.js → vennDiagram-L72KCM5P-DBP7D3HE.js} +6 -6
  337. package/ui-dist/assets/{wardleyDiagram-EHGQE667-D6BNPJwb.js → wardleyDiagram-EHGQE667-DG-wzqpy.js} +1 -1
  338. package/ui-dist/assets/{xychartDiagram-FW5EYKEG-my7CwP2H.js → xychartDiagram-FW5EYKEG-BAq3mbha.js} +1 -1
  339. package/ui-dist/index.html +2 -2
  340. package/resources/bundled-skills/rudder/SKILL.md +0 -314
  341. package/skills/rudder/SKILL.md +0 -314
  342. package/ui-dist/assets/channel-D-nDuwao.js +0 -1
  343. package/ui-dist/assets/classDiagram-OUVF2IWQ-Ds2nJ2Kt.js +0 -1
  344. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-Ds2nJ2Kt.js +0 -1
  345. package/ui-dist/assets/index-BA7XbHmf.css +0 -1
  346. package/ui-dist/assets/index-hE0ZX3Ud.js +0 -1820
  347. package/ui-dist/assets/layout-C-tMX-j8.js +0 -1
  348. package/ui-dist/assets/mermaid.core-WA5rvr0F.js +0 -314
  349. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-DAB9Vdyb.js +0 -1
  350. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DRt36f68.js +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/agent-runtimes/http/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAG7F,wBAAsB,OAAO,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAsCrG"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/agent-runtimes/http/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAG7F,wBAAsB,OAAO,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CA0CrG"}
@@ -1,6 +1,6 @@
1
1
  import { asNumber, asString, parseObject } from "../utils.js";
2
2
  export async function execute(ctx) {
3
- const { config, runId, agent, context } = ctx;
3
+ const { config, runId, agent, context, abortSignal } = ctx;
4
4
  const url = asString(config.url, "");
5
5
  if (!url)
6
6
  throw new Error("HTTP adapter missing url");
@@ -11,6 +11,11 @@ export async function execute(ctx) {
11
11
  const body = { ...payloadTemplate, agentId: agent.id, runId, context };
12
12
  const controller = new AbortController();
13
13
  const timer = timeoutMs > 0 ? setTimeout(() => controller.abort(), timeoutMs) : null;
14
+ const abortFromContext = () => controller.abort();
15
+ if (abortSignal?.aborted)
16
+ controller.abort();
17
+ else
18
+ abortSignal?.addEventListener("abort", abortFromContext, { once: true });
14
19
  try {
15
20
  const res = await fetch(url, {
16
21
  method,
@@ -19,7 +24,7 @@ export async function execute(ctx) {
19
24
  ...headers,
20
25
  },
21
26
  body: JSON.stringify(body),
22
- ...(timer ? { signal: controller.signal } : {}),
27
+ ...((timer || abortSignal) ? { signal: controller.signal } : {}),
23
28
  });
24
29
  if (!res.ok) {
25
30
  throw new Error(`HTTP invoke failed with status ${res.status}`);
@@ -34,6 +39,7 @@ export async function execute(ctx) {
34
39
  finally {
35
40
  if (timer)
36
41
  clearTimeout(timer);
42
+ abortSignal?.removeEventListener("abort", abortFromContext);
37
43
  }
38
44
  }
39
45
  //# sourceMappingURL=execute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/agent-runtimes/http/execute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAiC;IAC7D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAA2B,CAAC;IACtE,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAEvE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,OAAO;aACX;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,QAAQ,MAAM,IAAI,GAAG,EAAE;SACjC,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/agent-runtimes/http/execute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAiC;IAC7D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAA2B,CAAC;IACtE,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAEvE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAClD,IAAI,WAAW,EAAE,OAAO;QAAE,UAAU,CAAC,KAAK,EAAE,CAAC;;QACxC,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,OAAO;aACX;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,GAAG,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,QAAQ,MAAM,IAAI,GAAG,EAAE;SACjC,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,WAAW,EAAE,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/agent-runtimes/process/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAW7F,wBAAsB,OAAO,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAiErG"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/agent-runtimes/process/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAW7F,wBAAsB,OAAO,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAmErG"}
@@ -1,6 +1,6 @@
1
1
  import { asNumber, asString, asStringArray, buildRudderEnv, parseObject, redactEnvForLogs, runChildProcess, } from "../utils.js";
2
2
  export async function execute(ctx) {
3
- const { runId, agent, config, onLog, onMeta } = ctx;
3
+ const { runId, agent, config, onLog, onMeta, onSpawn, abortSignal } = ctx;
4
4
  const command = asString(config.command, "");
5
5
  if (!command)
6
6
  throw new Error("Process adapter missing command");
@@ -29,6 +29,8 @@ export async function execute(ctx) {
29
29
  timeoutSec,
30
30
  graceSec,
31
31
  onLog,
32
+ onSpawn,
33
+ abortSignal,
32
34
  });
33
35
  if (proc.timedOut) {
34
36
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/agent-runtimes/process/execute.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAiC;IAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,GAAG,GAA2B,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE/C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,CAAC;YACX,gBAAgB,EAAE,SAAS;YAC3B,OAAO;YACP,GAAG;YACH,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QACvD,GAAG;QACH,GAAG;QACH,UAAU;QACV,QAAQ;QACR,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,mBAAmB,UAAU,GAAG;SAC/C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,4BAA4B,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE;YAC/D,UAAU,EAAE;gBACV,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE;YACV,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/agent-runtimes/process/execute.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAiC;IAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC1E,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,GAAG,GAA2B,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE/C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,CAAC;YACX,gBAAgB,EAAE,SAAS;YAC3B,OAAO;YACP,GAAG;YACH,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QACvD,GAAG;QACH,GAAG;QACH,UAAU;QACV,QAAQ;QACR,KAAK;QACL,OAAO;QACP,WAAW;KACZ,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,mBAAmB,UAAU,GAAG;SAC/C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,4BAA4B,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE;YAC/D,UAAU,EAAE;gBACV,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE;YACV,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;KACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- export { appendWithCap, asBoolean, asNumber, asString, asStringArray, buildRudderEnv, defaultPathForPlatform, ensureAbsoluteDirectory, ensureCommandResolvable, ensurePathInEnv, MAX_CAPTURE_BYTES, MAX_EXCERPT_BYTES, parseJson, parseObject, redactEnvForLogs, renderTemplate, resolvePathValue, runningProcesses, type RunProcessResult } from "@rudderhq/agent-runtime-utils/server-utils";
1
+ export { appendWithCap, asBoolean, asNumber, asString, asStringArray, buildRudderEnv, defaultPathForPlatform, ensureAbsoluteDirectory, ensureCommandResolvable, ensurePathInEnv, killChildProcessTree, MAX_CAPTURE_BYTES, MAX_EXCERPT_BYTES, parseJson, parseObject, redactEnvForLogs, renderTemplate, resolvePathValue, runningProcesses, type RunProcessResult } from "@rudderhq/agent-runtime-utils/server-utils";
2
2
  import type { RunProcessResult } from "@rudderhq/agent-runtime-utils/server-utils";
3
3
  export declare function runChildProcess(runId: string, command: string, args: string[], opts: {
4
4
  cwd: string;
@@ -6,5 +6,10 @@ export declare function runChildProcess(runId: string, command: string, args: st
6
6
  timeoutSec: number;
7
7
  graceSec: number;
8
8
  onLog: (stream: "stdout" | "stderr", chunk: string) => Promise<void>;
9
+ onSpawn?: (meta: {
10
+ pid: number;
11
+ startedAt: string;
12
+ }) => Promise<void>;
13
+ abortSignal?: AbortSignal;
9
14
  }): Promise<RunProcessResult>;
10
15
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/agent-runtimes/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAC3E,sBAAsB,EAAE,uBAAuB,EAC/C,uBAAuB,EAAE,eAAe,EAAE,iBAAiB,EAC3D,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EACvI,MAAM,4CAA4C,CAAC;AAGpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAGnF,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE;IACJ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE,GACA,OAAO,CAAC,gBAAgB,CAAC,CAK3B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/agent-runtimes/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAC3E,sBAAsB,EAAE,uBAAuB,EAC/C,uBAAuB,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAC1N,MAAM,4CAA4C,CAAC;AAGpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAGnF,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE;IACJ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,GACA,OAAO,CAAC,gBAAgB,CAAC,CAK3B"}
@@ -2,7 +2,7 @@
2
2
  // This file is kept as a convenience shim so existing in-tree
3
3
  // imports (process/, http/, heartbeat.ts) don't need rewriting.
4
4
  import { logger } from "../middleware/logger.js";
5
- export { appendWithCap, asBoolean, asNumber, asString, asStringArray, buildRudderEnv, defaultPathForPlatform, ensureAbsoluteDirectory, ensureCommandResolvable, ensurePathInEnv, MAX_CAPTURE_BYTES, MAX_EXCERPT_BYTES, parseJson, parseObject, redactEnvForLogs, renderTemplate, resolvePathValue, runningProcesses } from "@rudderhq/agent-runtime-utils/server-utils";
5
+ export { appendWithCap, asBoolean, asNumber, asString, asStringArray, buildRudderEnv, defaultPathForPlatform, ensureAbsoluteDirectory, ensureCommandResolvable, ensurePathInEnv, killChildProcessTree, MAX_CAPTURE_BYTES, MAX_EXCERPT_BYTES, parseJson, parseObject, redactEnvForLogs, renderTemplate, resolvePathValue, runningProcesses } from "@rudderhq/agent-runtime-utils/server-utils";
6
6
  import { runChildProcess as _runChildProcess } from "@rudderhq/agent-runtime-utils/server-utils";
7
7
  export async function runChildProcess(runId, command, args, opts) {
8
8
  return _runChildProcess(runId, command, args, {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/agent-runtimes/utils.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8DAA8D;AAC9D,gEAAgE;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EACL,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAC3E,sBAAsB,EAAE,uBAAuB,EAC/C,uBAAuB,EAAE,eAAe,EAAE,iBAAiB,EAC3D,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAChH,MAAM,4CAA4C,CAAC;AAIpD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAEjG,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,OAAe,EACf,IAAc,EACd,IAMC;IAED,OAAO,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAC5C,GAAG,IAAI;QACP,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;KACnE,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/agent-runtimes/utils.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8DAA8D;AAC9D,gEAAgE;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EACL,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAC3E,sBAAsB,EAAE,uBAAuB,EAC/C,uBAAuB,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EACnM,MAAM,4CAA4C,CAAC;AAIpD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAEjG,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,OAAe,EACf,IAAc,EACd,IAQC;IAED,OAAO,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAC5C,GAAG,IAAI;QACP,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;KACnE,CAAC,CAAC;AACL,CAAC"}
package/dist/app.d.ts CHANGED
@@ -7,8 +7,8 @@ export interface RudderAppHandle {
7
7
  close(): Promise<void>;
8
8
  }
9
9
  export declare function createRudderApp(db: Db, opts: RudderAppOptions): Promise<{
10
- app: import("express-serve-static-core").Express;
11
- close(): Promise<void>;
10
+ app: express.Express;
11
+ close: () => Promise<void>;
12
12
  }>;
13
- export declare function createApp(db: Db, opts: Parameters<typeof createRudderApp>[1]): Promise<import("express-serve-static-core").Express>;
13
+ export declare function createApp(db: Db, opts: Parameters<typeof createRudderApp>[1]): Promise<express.Express>;
14
14
  //# sourceMappingURL=app.d.ts.map
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,gBAAgB;;aASL,OAAO,CAAC,IAAI,CAAC;GAI/B;AAED,wBAAsB,SAAS,CAC7B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,wDAI5C"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAI7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,gBAAgB;;;GAuBvB;AAED,wBAAsB,SAAS,CAC7B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,4BAI5C"}
package/dist/app.js CHANGED
@@ -1,18 +1,27 @@
1
1
  import { createHttpApp } from "./bootstrap/create-http-app.js";
2
2
  import { createPluginHostRuntime } from "./bootstrap/plugin-host-runtime.js";
3
+ import { logger } from "./middleware/logger.js";
4
+ import { RuntimeSupervisor, supervisedStart } from "./runtime/runtime-supervisor.js";
3
5
  import { configureBrowserCapabilityDeployment } from "./services/browser-capability.js";
4
6
  export { resolveViteHmrPort } from "./bootstrap/create-http-app.js";
5
7
  export async function createRudderApp(db, opts) {
6
8
  configureBrowserCapabilityDeployment(db, opts.deploymentMode);
7
- const pluginRuntime = createPluginHostRuntime(db, opts);
8
- const app = await createHttpApp(db, opts, pluginRuntime);
9
- await pluginRuntime.start();
10
- return {
11
- app,
12
- async close() {
13
- await pluginRuntime.close();
9
+ const supervisor = new RuntimeSupervisor({
10
+ onDisposeError: ({ name, error }) => {
11
+ logger.warn({ err: error, resource: name }, "Failed to close Rudder app resource");
14
12
  },
15
- };
13
+ });
14
+ return supervisedStart(supervisor, async () => {
15
+ const pluginRuntime = createPluginHostRuntime(db, opts);
16
+ supervisor.own("plugin-host-runtime", () => pluginRuntime.close());
17
+ const httpApp = await createHttpApp(db, opts, pluginRuntime);
18
+ supervisor.own("http-app", () => httpApp.close());
19
+ await pluginRuntime.start();
20
+ return {
21
+ app: httpApp.app,
22
+ close: () => supervisor.dispose(),
23
+ };
24
+ });
16
25
  }
17
26
  export async function createApp(db, opts) {
18
27
  const handle = await createRudderApp(db, opts);
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,OAAO,EAAE,oCAAoC,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAOpE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAM,EACN,IAAsB;IAEtB,oCAAoC,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IACzD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAE5B,OAAO;QACL,GAAG;QACH,KAAK,CAAC,KAAK;YACT,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAM,EACN,IAA2C;IAE3C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,oCAAoC,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAOpE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAM,EACN,IAAsB;IAEtB,oCAAoC,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC;QACvC,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YAClC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,qCAAqC,CAAC,CAAC;QACrF,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,aAAa,GAAG,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxD,UAAU,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAC7D,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAElD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAE5B,OAAO;YACL,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE;SACR,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAM,EACN,IAA2C;IAE3C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB,CAAC"}
@@ -1,6 +1,11 @@
1
1
  import type { Db } from "@rudderhq/db";
2
+ import express from "express";
2
3
  import type { PluginHostRuntime } from "./plugin-host-runtime.js";
3
4
  import type { RudderAppOptions } from "./types.js";
5
+ export interface HttpAppHandle {
6
+ app: express.Express;
7
+ close(): Promise<void>;
8
+ }
4
9
  export declare function resolveViteHmrPort(serverPort: number): number;
5
- export declare function createHttpApp(db: Db, opts: RudderAppOptions, pluginRuntime: PluginHostRuntime): Promise<import("express-serve-static-core").Express>;
10
+ export declare function createHttpApp(db: Db, opts: RudderAppOptions, pluginRuntime: PluginHostRuntime): Promise<HttpAppHandle>;
6
11
  //# sourceMappingURL=create-http-app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-http-app.d.ts","sourceRoot":"","sources":["../../src/bootstrap/create-http-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAYvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,gBAAgB,EACtB,aAAa,EAAE,iBAAiB,wDA+GjC"}
1
+ {"version":3,"file":"create-http-app.d.ts","sourceRoot":"","sources":["../../src/bootstrap/create-http-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,OAAO,MAAM,SAAS,CAAC;AAc9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,gBAAgB,EACtB,aAAa,EAAE,iBAAiB,GAC/B,OAAO,CAAC,aAAa,CAAC,CAiLxB"}
@@ -4,10 +4,13 @@ import path from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { actorMiddleware } from "../middleware/auth.js";
6
6
  import { errorHandler, httpLogger } from "../middleware/index.js";
7
+ import { logger } from "../middleware/logger.js";
7
8
  import { privateHostnameGuard, resolvePrivateHostnameAllowSet } from "../middleware/private-hostname-guard.js";
9
+ import { createChatBackgroundRuntime } from "../routes/chat-background-runtime.js";
8
10
  import { llmRoutes } from "../routes/llms.js";
9
11
  import { pluginUiStaticRoutes } from "../routes/plugin-ui-static.js";
10
12
  import { DEFAULT_LOCAL_PLUGIN_DIR } from "../services/plugin-loader.js";
13
+ import { workspaceWebPreviewRuntime } from "../services/workspace-web-preview.js";
11
14
  import { applyUiBranding } from "../ui-branding.js";
12
15
  import { registerApiRoutes } from "./register-api-routes.js";
13
16
  export function resolveViteHmrPort(serverPort) {
@@ -18,11 +21,58 @@ export function resolveViteHmrPort(serverPort) {
18
21
  }
19
22
  export async function createHttpApp(db, opts, pluginRuntime) {
20
23
  const app = express();
24
+ const previewOrigin = opts.workspacePreviewOrigin ?? `http://preview.localhost:${opts.serverPort}`;
25
+ const workspacePreview = workspaceWebPreviewRuntime(db, {
26
+ previewOrigin,
27
+ requireLoopbackParent: !opts.workspacePreviewOrigin,
28
+ });
29
+ const chatBackgroundRuntime = createChatBackgroundRuntime();
30
+ let closeVite = null;
31
+ let closeInFlight = null;
32
+ const close = () => {
33
+ if (closeInFlight)
34
+ return closeInFlight;
35
+ closeInFlight = Promise.resolve().then(async () => {
36
+ const disposeVite = closeVite;
37
+ closeVite = null;
38
+ const results = await Promise.allSettled([
39
+ Promise.resolve().then(() => chatBackgroundRuntime.close()),
40
+ Promise.resolve().then(() => disposeVite?.()),
41
+ ]);
42
+ const failures = results
43
+ .filter((result) => result.status === "rejected")
44
+ .map((result) => result.reason);
45
+ if (failures.length === 1)
46
+ throw failures[0];
47
+ if (failures.length > 1)
48
+ throw new AggregateError(failures, "HTTP app cleanup failed");
49
+ });
50
+ return closeInFlight;
51
+ };
52
+ const rollbackStartup = async (startupError) => {
53
+ try {
54
+ await close();
55
+ }
56
+ catch (cleanupError) {
57
+ logger.error({ err: cleanupError, startupError }, "HTTP app startup rollback failed");
58
+ }
59
+ throw startupError;
60
+ };
21
61
  const privateHostnameGateEnabled = opts.deploymentMode === "authenticated" && opts.deploymentExposure === "private";
22
62
  const privateHostnameAllowSet = resolvePrivateHostnameAllowSet({
23
63
  allowedHostnames: opts.allowedHostnames,
24
64
  bindHost: opts.bindHost,
25
65
  });
66
+ // Preview capabilities are bearer secrets, so this Host-only branch runs
67
+ // before the ordinary request logger and never mounts Rudder API/UI routes.
68
+ app.use(async (req, res, next) => {
69
+ if (await workspacePreview.handlePreviewHostRequest(req, res))
70
+ return;
71
+ next();
72
+ });
73
+ app.use("/workspace-preview", (_req, res) => {
74
+ res.status(404).type("text/plain").send("Not found");
75
+ });
26
76
  app.use(express.json({
27
77
  // Organization import/export payloads can inline full portable packages.
28
78
  limit: "10mb",
@@ -61,62 +111,88 @@ export async function createHttpApp(db, opts, pluginRuntime) {
61
111
  app.all("/api/auth/*authPath", opts.betterAuthHandler);
62
112
  }
63
113
  app.use(llmRoutes(db));
64
- app.use("/api", registerApiRoutes(db, opts, pluginRuntime));
114
+ try {
115
+ app.use("/api", registerApiRoutes(db, opts, pluginRuntime, workspacePreview, chatBackgroundRuntime));
116
+ }
117
+ catch (error) {
118
+ return rollbackStartup(error);
119
+ }
65
120
  app.use("/api", (_req, res) => {
66
121
  res.status(404).json({ error: "API route not found" });
67
122
  });
68
- app.use(pluginUiStaticRoutes(db, {
69
- localPluginDir: opts.localPluginDir ?? DEFAULT_LOCAL_PLUGIN_DIR,
70
- }));
123
+ try {
124
+ app.use(pluginUiStaticRoutes(db, {
125
+ localPluginDir: opts.localPluginDir ?? DEFAULT_LOCAL_PLUGIN_DIR,
126
+ }));
127
+ }
128
+ catch (error) {
129
+ return rollbackStartup(error);
130
+ }
71
131
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
72
132
  if (opts.uiMode === "static") {
73
- const candidates = [
74
- path.resolve(__dirname, "../../ui-dist"),
75
- path.resolve(__dirname, "../../../ui/dist"),
76
- ];
77
- const uiDist = candidates.find((candidate) => fs.existsSync(path.join(candidate, "index.html")));
78
- if (uiDist) {
79
- const indexHtml = applyUiBranding(fs.readFileSync(path.join(uiDist, "index.html"), "utf-8"));
80
- app.use(express.static(uiDist));
81
- app.get(/.*/, (_req, res) => {
82
- res.status(200).set("Content-Type", "text/html").end(indexHtml);
83
- });
133
+ try {
134
+ const candidates = [
135
+ path.resolve(__dirname, "../../ui-dist"),
136
+ path.resolve(__dirname, "../../../ui/dist"),
137
+ ];
138
+ const uiDist = candidates.find((candidate) => fs.existsSync(path.join(candidate, "index.html")));
139
+ if (uiDist) {
140
+ const indexHtml = applyUiBranding(fs.readFileSync(path.join(uiDist, "index.html"), "utf-8"));
141
+ app.use(express.static(uiDist));
142
+ app.get(/.*/, (_req, res) => {
143
+ res.status(200).set("Content-Type", "text/html").end(indexHtml);
144
+ });
145
+ }
146
+ else {
147
+ console.warn("[rudder] UI dist not found; running in API-only mode");
148
+ }
84
149
  }
85
- else {
86
- console.warn("[rudder] UI dist not found; running in API-only mode");
150
+ catch (error) {
151
+ return rollbackStartup(error);
87
152
  }
88
153
  }
89
154
  if (opts.uiMode === "vite-dev") {
90
- const uiRoot = path.resolve(__dirname, "../../../ui");
91
- const hmrPort = resolveViteHmrPort(opts.serverPort);
92
- const { createServer: createViteServer } = await import("vite");
93
- const vite = await createViteServer({
94
- root: uiRoot,
95
- appType: "custom",
96
- server: {
97
- middlewareMode: true,
98
- hmr: {
99
- host: opts.bindHost,
100
- port: hmrPort,
101
- clientPort: hmrPort,
155
+ try {
156
+ const uiRoot = path.resolve(__dirname, "../../../ui");
157
+ const hmrPort = resolveViteHmrPort(opts.serverPort);
158
+ const { createServer: createViteServer } = await import("vite");
159
+ const vite = await createViteServer({
160
+ root: uiRoot,
161
+ appType: "custom",
162
+ server: {
163
+ middlewareMode: true,
164
+ hmr: {
165
+ host: opts.bindHost,
166
+ port: hmrPort,
167
+ clientPort: hmrPort,
168
+ },
169
+ allowedHosts: privateHostnameGateEnabled ? Array.from(privateHostnameAllowSet) : undefined,
102
170
  },
103
- allowedHosts: privateHostnameGateEnabled ? Array.from(privateHostnameAllowSet) : undefined,
104
- },
105
- });
106
- app.use(vite.middlewares);
107
- app.get(/.*/, async (req, res, next) => {
108
- try {
109
- const templatePath = path.resolve(uiRoot, "index.html");
110
- const template = fs.readFileSync(templatePath, "utf-8");
111
- const html = applyUiBranding(await vite.transformIndexHtml(req.originalUrl, template));
112
- res.status(200).set({ "Content-Type": "text/html" }).end(html);
113
- }
114
- catch (err) {
115
- next(err);
116
- }
117
- });
171
+ });
172
+ closeVite = () => vite.close();
173
+ app.use(vite.middlewares);
174
+ app.get(/.*/, async (req, res, next) => {
175
+ try {
176
+ const templatePath = path.resolve(uiRoot, "index.html");
177
+ const template = fs.readFileSync(templatePath, "utf-8");
178
+ const html = applyUiBranding(await vite.transformIndexHtml(req.originalUrl, template));
179
+ res.status(200).set({ "Content-Type": "text/html" }).end(html);
180
+ }
181
+ catch (err) {
182
+ next(err);
183
+ }
184
+ });
185
+ }
186
+ catch (error) {
187
+ return rollbackStartup(error);
188
+ }
189
+ }
190
+ try {
191
+ app.use(errorHandler);
192
+ return { app, close };
193
+ }
194
+ catch (error) {
195
+ return rollbackStartup(error);
118
196
  }
119
- app.use(errorHandler);
120
- return app;
121
197
  }
122
198
  //# sourceMappingURL=create-http-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-http-app.js","sourceRoot":"","sources":["../../src/bootstrap/create-http-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-http-app.js","sourceRoot":"","sources":["../../src/bootstrap/create-http-app.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-host-runtime.d.ts","sourceRoot":"","sources":["../../src/bootstrap/plugin-host-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAgBvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgHrE;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"plugin-host-runtime.d.ts","sourceRoot":"","sources":["../../src/bootstrap/plugin-host-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAgBvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkLrE;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -65,17 +65,49 @@ export function createPluginHostRuntime(db, opts) {
65
65
  },
66
66
  });
67
67
  let devWatcher = null;
68
+ let started = false;
69
+ let startupWork = null;
70
+ let closeInFlight = null;
71
+ const reportDisposeFailure = (name, error) => {
72
+ logger.warn({ err: error, resource: name }, "Failed to close plugin host resource");
73
+ };
74
+ const disposeResource = async (name, dispose) => {
75
+ try {
76
+ await dispose();
77
+ }
78
+ catch (error) {
79
+ reportDisposeFailure(name, error);
80
+ }
81
+ };
82
+ const disposeResourceSync = (name, dispose) => {
83
+ try {
84
+ dispose();
85
+ }
86
+ catch (error) {
87
+ reportDisposeFailure(name, error);
88
+ }
89
+ };
68
90
  const disposeHostRuntime = () => {
69
- devWatcher?.close();
70
- hostServiceCleanup.disposeAll();
71
- hostServiceCleanup.teardown();
91
+ void devWatcher?.close().catch((error) => reportDisposeFailure("plugin-dev-watcher", error));
92
+ devWatcher = null;
93
+ disposeResourceSync("plugin-job-coordinator", () => jobCoordinator.stop());
94
+ disposeResourceSync("plugin-job-scheduler", () => scheduler.stop());
95
+ disposeResourceSync("plugin-tool-dispatcher", () => toolDispatcher.teardown());
96
+ disposeResourceSync("plugin-host-services", () => hostServiceCleanup.disposeAll());
97
+ disposeResourceSync("plugin-host-service-listeners", () => hostServiceCleanup.teardown());
72
98
  };
73
- process.once("exit", () => {
99
+ const onProcessExit = () => {
74
100
  disposeHostRuntime();
75
- });
76
- process.once("beforeExit", () => {
101
+ };
102
+ const onProcessBeforeExit = () => {
77
103
  void flushPluginLogBuffer();
78
- });
104
+ };
105
+ const removeProcessListeners = () => {
106
+ process.removeListener("exit", onProcessExit);
107
+ process.removeListener("beforeExit", onProcessBeforeExit);
108
+ };
109
+ process.once("exit", onProcessExit);
110
+ process.once("beforeExit", onProcessBeforeExit);
79
111
  return {
80
112
  loader,
81
113
  scheduler,
@@ -83,38 +115,64 @@ export function createPluginHostRuntime(db, opts) {
83
115
  workerManager,
84
116
  toolDispatcher,
85
117
  async start() {
86
- jobCoordinator.start();
87
- scheduler.start();
88
- void toolDispatcher.initialize().catch((err) => {
89
- logger.error({ err }, "Failed to initialize plugin tool dispatcher");
90
- });
91
- devWatcher = opts.uiMode === "vite-dev"
92
- ? createPluginDevWatcher(lifecycle, async (pluginId) => (await pluginRegistry.getById(pluginId))?.packagePath ?? null)
93
- : null;
94
- void loader.loadAll().then((result) => {
95
- if (!result)
118
+ if (closeInFlight) {
119
+ throw new Error("Cannot start plugin host runtime after close has started");
120
+ }
121
+ if (started)
122
+ return;
123
+ started = true;
124
+ try {
125
+ jobCoordinator.start();
126
+ scheduler.start();
127
+ devWatcher = opts.uiMode === "vite-dev"
128
+ ? createPluginDevWatcher(lifecycle, async (pluginId) => (await pluginRegistry.getById(pluginId))?.packagePath ?? null)
129
+ : null;
130
+ }
131
+ catch (error) {
132
+ started = false;
133
+ throw error;
134
+ }
135
+ startupWork = Promise.resolve().then(async () => {
136
+ const [dispatcherResult, loadResult] = await Promise.allSettled([
137
+ toolDispatcher.initialize(),
138
+ loader.loadAll(),
139
+ ]);
140
+ if (dispatcherResult.status === "rejected") {
141
+ logger.error({ err: dispatcherResult.reason }, "Failed to initialize plugin tool dispatcher");
142
+ }
143
+ if (loadResult.status === "rejected") {
144
+ logger.error({ err: loadResult.reason }, "Failed to load ready plugins on startup");
145
+ return;
146
+ }
147
+ if (!loadResult.value)
96
148
  return;
97
- for (const loaded of result.results) {
149
+ for (const loaded of loadResult.value.results) {
98
150
  if (devWatcher && loaded.success && loaded.plugin.packagePath) {
99
151
  devWatcher.watch(loaded.plugin.id, loaded.plugin.packagePath);
100
152
  }
101
153
  }
102
154
  }).catch((err) => {
103
- logger.error({ err }, "Failed to load ready plugins on startup");
155
+ logger.error({ err }, "Failed to finish plugin host startup work");
104
156
  });
105
157
  },
106
- async close() {
107
- devWatcher?.close();
108
- jobCoordinator.stop();
109
- try {
110
- await loader.shutdownAll();
111
- }
112
- catch (err) {
113
- logger.warn({ err }, "Failed to shutdown plugins cleanly");
114
- }
115
- hostServiceCleanup.disposeAll();
116
- hostServiceCleanup.teardown();
117
- await flushPluginLogBuffer();
158
+ close() {
159
+ if (closeInFlight)
160
+ return closeInFlight;
161
+ removeProcessListeners();
162
+ closeInFlight = Promise.resolve().then(async () => {
163
+ const watcher = devWatcher;
164
+ devWatcher = null;
165
+ await disposeResource("plugin-dev-watcher", () => watcher?.close() ?? Promise.resolve());
166
+ await disposeResource("plugin-job-coordinator", () => jobCoordinator.stop());
167
+ await disposeResource("plugin-job-scheduler", () => scheduler.stop());
168
+ await disposeResource("plugin-startup-work", () => startupWork ?? Promise.resolve());
169
+ await disposeResource("plugin-loader", () => loader.shutdownAll());
170
+ await disposeResource("plugin-tool-dispatcher", () => toolDispatcher.teardown());
171
+ await disposeResource("plugin-host-services", () => hostServiceCleanup.disposeAll());
172
+ await disposeResource("plugin-host-service-listeners", () => hostServiceCleanup.teardown());
173
+ await disposeResource("plugin-log-buffer", () => flushPluginLogBuffer());
174
+ });
175
+ return closeInFlight;
118
176
  },
119
177
  };
120
178
  }