@rudderhq/server 0.7.2 → 0.7.4

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 (512) hide show
  1. package/dist/agent-runtimes/registry.d.ts.map +1 -1
  2. package/dist/agent-runtimes/registry.js +0 -2
  3. package/dist/agent-runtimes/registry.js.map +1 -1
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +1 -5
  6. package/dist/app.js.map +1 -1
  7. package/dist/bootstrap/create-http-app.d.ts +1 -2
  8. package/dist/bootstrap/create-http-app.d.ts.map +1 -1
  9. package/dist/bootstrap/create-http-app.js +13 -12
  10. package/dist/bootstrap/create-http-app.js.map +1 -1
  11. package/dist/bootstrap/register-api-routes.d.ts +1 -2
  12. package/dist/bootstrap/register-api-routes.d.ts.map +1 -1
  13. package/dist/bootstrap/register-api-routes.js +22 -4
  14. package/dist/bootstrap/register-api-routes.js.map +1 -1
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/middleware/logger.js +2 -2
  18. package/dist/middleware/logger.js.map +1 -1
  19. package/dist/middleware/logger.test.js +26 -10
  20. package/dist/middleware/logger.test.js.map +1 -1
  21. package/dist/redaction.d.ts +4 -0
  22. package/dist/redaction.d.ts.map +1 -1
  23. package/dist/redaction.js +15 -0
  24. package/dist/redaction.js.map +1 -1
  25. package/dist/routes/agent-issue-creation.d.ts +25 -0
  26. package/dist/routes/agent-issue-creation.d.ts.map +1 -0
  27. package/dist/routes/agent-issue-creation.js +201 -0
  28. package/dist/routes/agent-issue-creation.js.map +1 -0
  29. package/dist/routes/app-builder.d.ts +3 -1
  30. package/dist/routes/app-builder.d.ts.map +1 -1
  31. package/dist/routes/app-builder.js +30 -22
  32. package/dist/routes/app-builder.js.map +1 -1
  33. package/dist/routes/approvals.d.ts.map +1 -1
  34. package/dist/routes/approvals.js +36 -9
  35. package/dist/routes/approvals.js.map +1 -1
  36. package/dist/routes/chats.d.ts.map +1 -1
  37. package/dist/routes/chats.js +23 -4
  38. package/dist/routes/chats.js.map +1 -1
  39. package/dist/routes/chats.preflight.d.ts +2 -1
  40. package/dist/routes/chats.preflight.d.ts.map +1 -1
  41. package/dist/routes/chats.preflight.js +7 -0
  42. package/dist/routes/chats.preflight.js.map +1 -1
  43. package/dist/routes/chats.stream-routes.d.ts.map +1 -1
  44. package/dist/routes/chats.stream-routes.js +14 -3
  45. package/dist/routes/chats.stream-routes.js.map +1 -1
  46. package/dist/routes/chats.stream-support.d.ts.map +1 -1
  47. package/dist/routes/chats.stream-support.js +8 -0
  48. package/dist/routes/chats.stream-support.js.map +1 -1
  49. package/dist/routes/computer.d.ts +30 -0
  50. package/dist/routes/computer.d.ts.map +1 -0
  51. package/dist/routes/computer.js +231 -0
  52. package/dist/routes/computer.js.map +1 -0
  53. package/dist/routes/goals.d.ts.map +1 -1
  54. package/dist/routes/goals.js +176 -27
  55. package/dist/routes/goals.js.map +1 -1
  56. package/dist/routes/health.d.ts.map +1 -1
  57. package/dist/routes/health.js +2 -0
  58. package/dist/routes/health.js.map +1 -1
  59. package/dist/routes/index.d.ts +1 -0
  60. package/dist/routes/index.d.ts.map +1 -1
  61. package/dist/routes/index.js +1 -0
  62. package/dist/routes/index.js.map +1 -1
  63. package/dist/routes/instance-settings.d.ts.map +1 -1
  64. package/dist/routes/instance-settings.js +3 -0
  65. package/dist/routes/instance-settings.js.map +1 -1
  66. package/dist/routes/issues.comments-attachments.d.ts.map +1 -1
  67. package/dist/routes/issues.comments-attachments.js +90 -8
  68. package/dist/routes/issues.comments-attachments.js.map +1 -1
  69. package/dist/routes/issues.d.ts.map +1 -1
  70. package/dist/routes/issues.js +14 -2
  71. package/dist/routes/issues.js.map +1 -1
  72. package/dist/routes/issues.mutations.d.ts.map +1 -1
  73. package/dist/routes/issues.mutations.js +206 -52
  74. package/dist/routes/issues.mutations.js.map +1 -1
  75. package/dist/routes/managed-mcp-runtime.d.ts.map +1 -1
  76. package/dist/routes/managed-mcp-runtime.js +109 -7
  77. package/dist/routes/managed-mcp-runtime.js.map +1 -1
  78. package/dist/routes/organization-skills.d.ts.map +1 -1
  79. package/dist/routes/organization-skills.js +23 -1
  80. package/dist/routes/organization-skills.js.map +1 -1
  81. package/dist/routes/requests.d.ts +3 -0
  82. package/dist/routes/requests.d.ts.map +1 -0
  83. package/dist/routes/requests.js +122 -0
  84. package/dist/routes/requests.js.map +1 -0
  85. package/dist/routes/rudder-plugins.d.ts +4 -0
  86. package/dist/routes/rudder-plugins.d.ts.map +1 -0
  87. package/dist/routes/rudder-plugins.js +203 -0
  88. package/dist/routes/rudder-plugins.js.map +1 -0
  89. package/dist/services/activity-log.d.ts +0 -3
  90. package/dist/services/activity-log.d.ts.map +1 -1
  91. package/dist/services/activity-log.js +19 -42
  92. package/dist/services/activity-log.js.map +1 -1
  93. package/dist/services/activity.d.ts +3 -3
  94. package/dist/services/agent-issue-creation.d.ts +344 -0
  95. package/dist/services/agent-issue-creation.d.ts.map +1 -0
  96. package/dist/services/agent-issue-creation.js +675 -0
  97. package/dist/services/agent-issue-creation.js.map +1 -0
  98. package/dist/services/agent-run-context.d.ts.map +1 -1
  99. package/dist/services/agent-run-context.js +10 -4
  100. package/dist/services/agent-run-context.js.map +1 -1
  101. package/dist/services/agents.d.ts +14 -14
  102. package/dist/services/agents.d.ts.map +1 -1
  103. package/dist/services/agents.js +2 -1
  104. package/dist/services/agents.js.map +1 -1
  105. package/dist/services/app-builder.d.ts.map +1 -1
  106. package/dist/services/app-builder.js +24 -3
  107. package/dist/services/app-builder.js.map +1 -1
  108. package/dist/services/chat-agent-runs.d.ts +1 -0
  109. package/dist/services/chat-agent-runs.d.ts.map +1 -1
  110. package/dist/services/chat-agent-runs.js +1 -0
  111. package/dist/services/chat-agent-runs.js.map +1 -1
  112. package/dist/services/chat-assistant.d.ts.map +1 -1
  113. package/dist/services/chat-assistant.helpers.d.ts +3 -1
  114. package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
  115. package/dist/services/chat-assistant.helpers.js +25 -0
  116. package/dist/services/chat-assistant.helpers.js.map +1 -1
  117. package/dist/services/chat-assistant.js +57 -11
  118. package/dist/services/chat-assistant.js.map +1 -1
  119. package/dist/services/chat-generation-protocol.test.js +2 -2
  120. package/dist/services/chat-generation-protocol.test.js.map +1 -1
  121. package/dist/services/chat-queued-message-materialization.d.ts +1 -1
  122. package/dist/services/chats.create.d.ts +2 -2
  123. package/dist/services/chats.create.d.ts.map +1 -1
  124. package/dist/services/chats.d.ts +15 -15
  125. package/dist/services/chats.d.ts.map +1 -1
  126. package/dist/services/chats.helpers.d.ts +2 -2
  127. package/dist/services/chats.helpers.d.ts.map +1 -1
  128. package/dist/services/chats.helpers.goal-context.test.d.ts +2 -0
  129. package/dist/services/chats.helpers.goal-context.test.d.ts.map +1 -0
  130. package/dist/services/chats.helpers.goal-context.test.js +40 -0
  131. package/dist/services/chats.helpers.goal-context.test.js.map +1 -0
  132. package/dist/services/chats.helpers.js +27 -2
  133. package/dist/services/chats.helpers.js.map +1 -1
  134. package/dist/services/chats.js.map +1 -1
  135. package/dist/services/computer-broker.d.ts +35 -0
  136. package/dist/services/computer-broker.d.ts.map +1 -0
  137. package/dist/services/computer-broker.js +211 -0
  138. package/dist/services/computer-broker.js.map +1 -0
  139. package/dist/services/computer-broker.test.d.ts +2 -0
  140. package/dist/services/computer-broker.test.d.ts.map +1 -0
  141. package/dist/services/computer-broker.test.js +70 -0
  142. package/dist/services/computer-broker.test.js.map +1 -0
  143. package/dist/services/computer-capability.d.ts +13 -0
  144. package/dist/services/computer-capability.d.ts.map +1 -0
  145. package/dist/services/computer-capability.js +11 -0
  146. package/dist/services/computer-capability.js.map +1 -0
  147. package/dist/services/computer-capability.test.d.ts +2 -0
  148. package/dist/services/computer-capability.test.d.ts.map +1 -0
  149. package/dist/services/computer-capability.test.js +27 -0
  150. package/dist/services/computer-capability.test.js.map +1 -0
  151. package/dist/services/finance.d.ts +2 -2
  152. package/dist/services/goals.d.ts +267 -244
  153. package/dist/services/goals.d.ts.map +1 -1
  154. package/dist/services/goals.js +1279 -297
  155. package/dist/services/goals.js.map +1 -1
  156. package/dist/services/index.d.ts +3 -0
  157. package/dist/services/index.d.ts.map +1 -1
  158. package/dist/services/index.js +3 -0
  159. package/dist/services/index.js.map +1 -1
  160. package/dist/services/instance-settings.d.ts.map +1 -1
  161. package/dist/services/instance-settings.js +8 -3
  162. package/dist/services/instance-settings.js.map +1 -1
  163. package/dist/services/integrations/agent-integrations.d.ts +1 -1
  164. package/dist/services/issues.d.ts +86 -1
  165. package/dist/services/issues.d.ts.map +1 -1
  166. package/dist/services/issues.helpers.d.ts +4 -0
  167. package/dist/services/issues.helpers.d.ts.map +1 -1
  168. package/dist/services/issues.helpers.js +28 -6
  169. package/dist/services/issues.helpers.js.map +1 -1
  170. package/dist/services/issues.js +207 -127
  171. package/dist/services/issues.js.map +1 -1
  172. package/dist/services/knowledge-portability/organization-portability.files.d.ts +1 -1
  173. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +7 -1
  174. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
  175. package/dist/services/knowledge-portability/organization-skills.catalog.js +10 -0
  176. package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
  177. package/dist/services/knowledge-portability/organization-skills.d.ts +3 -1
  178. package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
  179. package/dist/services/knowledge-portability/organization-skills.js +80 -12
  180. package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
  181. package/dist/services/mcp/managed-bindings.d.ts.map +1 -1
  182. package/dist/services/mcp/managed-bindings.js +18 -2
  183. package/dist/services/mcp/managed-bindings.js.map +1 -1
  184. package/dist/services/mcp/managed-client.d.ts +15 -0
  185. package/dist/services/mcp/managed-client.d.ts.map +1 -1
  186. package/dist/services/mcp/managed-client.js +23 -1
  187. package/dist/services/mcp/managed-client.js.map +1 -1
  188. package/dist/services/mcp/managed-client.test.js +73 -9
  189. package/dist/services/mcp/managed-client.test.js.map +1 -1
  190. package/dist/services/messenger.d.ts +3 -3
  191. package/dist/services/messenger.d.ts.map +1 -1
  192. package/dist/services/messenger.js +201 -65
  193. package/dist/services/messenger.js.map +1 -1
  194. package/dist/services/orgs.d.ts.map +1 -1
  195. package/dist/services/orgs.js +3 -1
  196. package/dist/services/orgs.js.map +1 -1
  197. package/dist/services/product-analytics.d.ts +2 -2
  198. package/dist/services/requests.d.ts +919 -0
  199. package/dist/services/requests.d.ts.map +1 -0
  200. package/dist/services/requests.js +532 -0
  201. package/dist/services/requests.js.map +1 -0
  202. package/dist/services/rudder-plugins.d.ts +107 -0
  203. package/dist/services/rudder-plugins.d.ts.map +1 -0
  204. package/dist/services/rudder-plugins.js +1760 -0
  205. package/dist/services/rudder-plugins.js.map +1 -0
  206. package/dist/services/rudder-plugins.test.d.ts +2 -0
  207. package/dist/services/rudder-plugins.test.d.ts.map +1 -0
  208. package/dist/services/rudder-plugins.test.js +191 -0
  209. package/dist/services/rudder-plugins.test.js.map +1 -0
  210. package/dist/services/runtime-kernel/heartbeat.core.d.ts +1 -0
  211. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
  212. package/dist/services/runtime-kernel/heartbeat.core.js +1 -1
  213. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
  214. package/dist/services/runtime-kernel/heartbeat.d.ts +65 -0
  215. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  216. package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -1
  217. package/dist/services/runtime-kernel/heartbeat.execute.js +21 -5
  218. package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -1
  219. package/dist/services/runtime-kernel/heartbeat.js +320 -108
  220. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  221. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts +1 -0
  222. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
  223. package/dist/services/runtime-kernel/heartbeat.recovery.js +39 -4
  224. package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
  225. package/dist/services/runtime-kernel/heartbeat.sessions.js +1 -1
  226. package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -1
  227. package/dist/services/runtime-kernel/heartbeat.terminal.d.ts +14 -1
  228. package/dist/services/runtime-kernel/heartbeat.terminal.d.ts.map +1 -1
  229. package/dist/services/runtime-kernel/heartbeat.terminal.js +46 -1
  230. package/dist/services/runtime-kernel/heartbeat.terminal.js.map +1 -1
  231. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts +1 -0
  232. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -1
  233. package/dist/services/runtime-kernel/heartbeat.wakeup.js +124 -6
  234. package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -1
  235. package/dist/services/workspace-runtime.services.d.ts +1 -1
  236. package/package.json +18 -18
  237. package/resources/bundled-skills/app-builder/SKILL.md +39 -9
  238. package/resources/bundled-skills/app-builder/assets/scaffold/app/globals.css +109 -16
  239. package/resources/bundled-skills/app-builder/assets/scaffold/components/contacts-workspace.tsx +176 -152
  240. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/alert.tsx +12 -0
  241. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/badge.tsx +27 -0
  242. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/button.tsx +9 -7
  243. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/card.tsx +15 -3
  244. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/empty.tsx +18 -0
  245. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/field.tsx +23 -0
  246. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/input.tsx +1 -1
  247. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/label.tsx +1 -1
  248. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/separator.tsx +6 -0
  249. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/skeleton.tsx +6 -0
  250. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/table.tsx +30 -0
  251. package/resources/bundled-skills/app-builder/assets/scaffold/components.json +20 -0
  252. package/resources/bundled-skills/app-builder/assets/scaffold/next-env.d.ts +1 -1
  253. package/resources/bundled-skills/app-builder/assets/scaffold/next.config.ts +19 -0
  254. package/resources/bundled-skills/app-builder/assets/scaffold/package.json +2 -1
  255. package/resources/bundled-skills/app-builder/assets/scaffold/rudder.app.json +1 -1
  256. package/resources/bundled-skills/app-builder/assets/scaffold/rudder.ui.json +13 -0
  257. package/resources/bundled-skills/app-builder/assets/scaffold/scripts/validate-rudder-ui.mjs +50 -0
  258. package/resources/bundled-skills/app-builder/assets/scaffold/tests/e2e/app.spec.ts +35 -1
  259. package/resources/bundled-skills/app-builder/evals/evals.json +2 -1
  260. package/resources/bundled-skills/app-builder/references/design-guidelines.md +19 -2
  261. package/resources/bundled-skills/app-builder/references/rudder-ui-preset.md +73 -0
  262. package/resources/bundled-skills/app-builder/references/scaffold-contract.md +12 -0
  263. package/resources/bundled-skills/app-builder/references/verification.md +6 -0
  264. package/resources/bundled-skills/app-builder/scripts/report-build-status.mjs +83 -0
  265. package/resources/bundled-skills/rudder-docs/SKILL.md +2 -2
  266. package/resources/bundled-skills/rudder-docs/evals/retrieval-authority-evals.json +40 -0
  267. package/resources/bundled-skills/rudder-docs/evals/trigger-evals.json +2 -2
  268. package/resources/bundled-skills/rudder-docs/references/api-reference.md +0 -2
  269. package/resources/bundled-skills/rudder-docs/references/cli-reference.md +7 -2
  270. package/resources/bundled-skills/rudder-docs/references/operating-practices.md +10 -6
  271. package/resources/bundled-skills/rudder-docs/references/plugin-authoring.md +38 -114
  272. package/resources/bundled-skills/rudder-docs/references/source-map.md +2 -0
  273. package/skills/app-builder/SKILL.md +39 -9
  274. package/skills/app-builder/assets/scaffold/app/globals.css +109 -16
  275. package/skills/app-builder/assets/scaffold/components/contacts-workspace.tsx +176 -152
  276. package/skills/app-builder/assets/scaffold/components/ui/alert.tsx +12 -0
  277. package/skills/app-builder/assets/scaffold/components/ui/badge.tsx +27 -0
  278. package/skills/app-builder/assets/scaffold/components/ui/button.tsx +9 -7
  279. package/skills/app-builder/assets/scaffold/components/ui/card.tsx +15 -3
  280. package/skills/app-builder/assets/scaffold/components/ui/empty.tsx +18 -0
  281. package/skills/app-builder/assets/scaffold/components/ui/field.tsx +23 -0
  282. package/skills/app-builder/assets/scaffold/components/ui/input.tsx +1 -1
  283. package/skills/app-builder/assets/scaffold/components/ui/label.tsx +1 -1
  284. package/skills/app-builder/assets/scaffold/components/ui/separator.tsx +6 -0
  285. package/skills/app-builder/assets/scaffold/components/ui/skeleton.tsx +6 -0
  286. package/skills/app-builder/assets/scaffold/components/ui/table.tsx +30 -0
  287. package/skills/app-builder/assets/scaffold/components.json +20 -0
  288. package/skills/app-builder/assets/scaffold/next-env.d.ts +1 -1
  289. package/skills/app-builder/assets/scaffold/next.config.ts +19 -0
  290. package/skills/app-builder/assets/scaffold/package.json +2 -1
  291. package/skills/app-builder/assets/scaffold/rudder.app.json +1 -1
  292. package/skills/app-builder/assets/scaffold/rudder.ui.json +13 -0
  293. package/skills/app-builder/assets/scaffold/scripts/validate-rudder-ui.mjs +50 -0
  294. package/skills/app-builder/assets/scaffold/tests/e2e/app.spec.ts +35 -1
  295. package/skills/app-builder/evals/evals.json +2 -1
  296. package/skills/app-builder/references/design-guidelines.md +19 -2
  297. package/skills/app-builder/references/rudder-ui-preset.md +73 -0
  298. package/skills/app-builder/references/scaffold-contract.md +12 -0
  299. package/skills/app-builder/references/verification.md +6 -0
  300. package/skills/app-builder/scripts/report-build-status.mjs +83 -0
  301. package/skills/rudder-docs/SKILL.md +2 -2
  302. package/skills/rudder-docs/evals/retrieval-authority-evals.json +40 -0
  303. package/skills/rudder-docs/evals/trigger-evals.json +2 -2
  304. package/skills/rudder-docs/references/api-reference.md +0 -2
  305. package/skills/rudder-docs/references/cli-reference.md +7 -2
  306. package/skills/rudder-docs/references/operating-practices.md +10 -6
  307. package/skills/rudder-docs/references/plugin-authoring.md +38 -114
  308. package/skills/rudder-docs/references/source-map.md +2 -0
  309. package/ui-dist/assets/{LibraryLiveSurface-cHCJmmsl.js → LibraryLiveSurface-D4uCo0l0.js} +1 -1
  310. package/ui-dist/assets/{abnfDiagram-VRR7QNED-BORJvkew.js → abnfDiagram-VRR7QNED-FF2qcR6A.js} +1 -1
  311. package/ui-dist/assets/addon-fit-4gL7JXzc.js +1 -0
  312. package/ui-dist/assets/{arc-DPUzhx87.js → arc-D5pLjh6B.js} +1 -1
  313. package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-Bz_hY8LM.js → architectureDiagram-ZJ3FMSHR-BvqY-HXg.js} +1 -1
  314. package/ui-dist/assets/{blockDiagram-677ZJIJ3-Bq1X3YkP.js → blockDiagram-677ZJIJ3-BU6ZbJ0s.js} +1 -1
  315. package/ui-dist/assets/{c4Diagram-LMCZKHZV-BawEM9Pc.js → c4Diagram-LMCZKHZV-Cl5Gsovj.js} +1 -1
  316. package/ui-dist/assets/channel-HcmprA3I.js +1 -0
  317. package/ui-dist/assets/{chunk-2Q5K7J3B-D0D5ZOaA.js → chunk-2Q5K7J3B-4a2agt_p.js} +1 -1
  318. package/ui-dist/assets/{chunk-32BRIVSS-T90P7lug.js → chunk-32BRIVSS-CF0oOO2T.js} +1 -1
  319. package/ui-dist/assets/{chunk-5VM5RSS4-jcAERTgh.js → chunk-5VM5RSS4-CsSq2zX2.js} +1 -1
  320. package/ui-dist/assets/{chunk-EX3LRPZG-t9-JXwnR.js → chunk-EX3LRPZG-B6riETVZ.js} +1 -1
  321. package/ui-dist/assets/{chunk-JWPE2WC7-hqgD1saC.js → chunk-JWPE2WC7-S-p1xu0r.js} +1 -1
  322. package/ui-dist/assets/{chunk-MOJQB5TN-BsSUoYzd.js → chunk-MOJQB5TN-mVE4v_LV.js} +1 -1
  323. package/ui-dist/assets/{chunk-RYQCIY6F-YcdDh2Zn.js → chunk-RYQCIY6F-CElbgpgs.js} +1 -1
  324. package/ui-dist/assets/{chunk-V7JOEXUC-ChFyH9Su.js → chunk-V7JOEXUC-8XM3povP.js} +1 -1
  325. package/ui-dist/assets/{chunk-VR4S4FIN-BjVK8IyX.js → chunk-VR4S4FIN-LrThp3ht.js} +1 -1
  326. package/ui-dist/assets/{chunk-XXDRQBXY-D-TvO9vT.js → chunk-XXDRQBXY-D38vLb4t.js} +1 -1
  327. package/ui-dist/assets/classDiagram-OUVF2IWQ-Dpe8LaLf.js +1 -0
  328. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-Dpe8LaLf.js +1 -0
  329. package/ui-dist/assets/{cose-bilkent-JH36ORCC-DBwhASJG.js → cose-bilkent-JH36ORCC-CmpZMaDV.js} +1 -1
  330. package/ui-dist/assets/{cynefin-VYW2F7L2-SlCRmwl2.js → cynefin-VYW2F7L2-D3RnbBvI.js} +1 -1
  331. package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-DImV6N_p.js → cynefinDiagram-TSTJHNR4-DZTcUojp.js} +1 -1
  332. package/ui-dist/assets/{dagre-VKFMJZFB-FH4Wv8Zn.js → dagre-VKFMJZFB-6jXSDi0S.js} +1 -1
  333. package/ui-dist/assets/{diagram-FQU43EPY-CrZvQjId.js → diagram-FQU43EPY-DIMm3mfS.js} +1 -1
  334. package/ui-dist/assets/{diagram-G47NLZAW-B7IGl_T3.js → diagram-G47NLZAW-Cyo22v0_.js} +1 -1
  335. package/ui-dist/assets/{diagram-NH7WQ7WH-CB4i7H1a.js → diagram-NH7WQ7WH-CHDV0nSL.js} +1 -1
  336. package/ui-dist/assets/{diagram-OA4YK3LP-DNyWPYY9.js → diagram-OA4YK3LP-Jijx9vQO.js} +1 -1
  337. package/ui-dist/assets/{diagram-WEI45ONY-BAhxbhpi.js → diagram-WEI45ONY-CcL19HLE.js} +1 -1
  338. package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-ClXtQ9qt.js → ebnfDiagram-CCIWWBDH-D94h-RFQ.js} +1 -1
  339. package/ui-dist/assets/{erDiagram-Q63AITRT-DGXiMYfn.js → erDiagram-Q63AITRT-B3ypUGZX.js} +1 -1
  340. package/ui-dist/assets/{flowDiagram-23GEKE2U-CdZ-02zc.js → flowDiagram-23GEKE2U-DjCT6Y1o.js} +1 -1
  341. package/ui-dist/assets/{ganttDiagram-NO4QXBWP-TxhzNpta.js → ganttDiagram-NO4QXBWP-C3QVhTc9.js} +1 -1
  342. package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-D6Q_w6wR.js → gitGraphDiagram-IHSO6WYX-D0trBzU5.js} +1 -1
  343. package/ui-dist/assets/{graph-CxNmbpl9.js → graph-D1zFmVUP.js} +1 -1
  344. package/ui-dist/assets/{index-Cx6oIZPm.js → index-B0GEsWui.js} +568 -593
  345. package/ui-dist/assets/{index-BA9tMBhO.js → index-B8bxQLfN.js} +1 -1
  346. package/ui-dist/assets/{index-C_nwI4Yj.js → index-BFktZ2tu.js} +1 -1
  347. package/ui-dist/assets/index-BT7dphT4.css +32 -0
  348. package/ui-dist/assets/{index-BoTz5S-X.js → index-Bk_yesiO.js} +1 -1
  349. package/ui-dist/assets/{index-CXnqg1Oq.js → index-BwutQLG1.js} +1 -1
  350. package/ui-dist/assets/{index-AkhgKOxC.js → index-CB4zr_Ku.js} +1 -1
  351. package/ui-dist/assets/{index-Rau2cGm0.js → index-CC89UPa-.js} +1 -1
  352. package/ui-dist/assets/{index-kbWUQ1um.js → index-CFWOO6yn.js} +1 -1
  353. package/ui-dist/assets/{index-DU2LI7f9.js → index-CK8u9b07.js} +1 -1
  354. package/ui-dist/assets/{index-C12QC1Ex.js → index-CRolpP90.js} +1 -1
  355. package/ui-dist/assets/{index-Bxz75ICF.js → index-CiCRRUVV.js} +1 -1
  356. package/ui-dist/assets/{index-Do78GymY.js → index-D8JG-IU9.js} +1 -1
  357. package/ui-dist/assets/{index-CW21qWFm.js → index-DKCiVvJo.js} +1 -1
  358. package/ui-dist/assets/{index-BujwWE3j.js → index-G2yfKEf_.js} +1 -1
  359. package/ui-dist/assets/{index-BQ87dGIq.js → index-or2C22bw.js} +1 -1
  360. package/ui-dist/assets/{infoDiagram-FWYZ7A6U-CnJd4-Jq.js → infoDiagram-FWYZ7A6U-Co0nkcV4.js} +1 -1
  361. package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-Bq-qc3pD.js → ishikawaDiagram-FXEZZL3T-CkIg1Jdu.js} +1 -1
  362. package/ui-dist/assets/{journeyDiagram-5HDEW3XC-NSmpUGUA.js → journeyDiagram-5HDEW3XC-AYUT6JuJ.js} +1 -1
  363. package/ui-dist/assets/{kanban-definition-HUTT4EX6-D7pgWtfA.js → kanban-definition-HUTT4EX6-C3H2XW08.js} +1 -1
  364. package/ui-dist/assets/{layout-BRuo6LWe.js → layout-sZWyqNOu.js} +1 -1
  365. package/ui-dist/assets/{linear-CkaWI9Nd.js → linear-BLTYou8N.js} +1 -1
  366. package/ui-dist/assets/{map-CgA6tTpZ.js → map-zKBdHkX8.js} +1 -1
  367. package/ui-dist/assets/{mermaid.core-DrXOt-P6.js → mermaid.core-DbjdFip8.js} +4 -4
  368. package/ui-dist/assets/{mindmap-definition-LN4V7U3C-D9ImeWBe.js → mindmap-definition-LN4V7U3C-DcDNQ4GQ.js} +1 -1
  369. package/ui-dist/assets/{pegDiagram-2B236MQR-Cq-zZ_zz.js → pegDiagram-2B236MQR-BGq1PngU.js} +1 -1
  370. package/ui-dist/assets/{pieDiagram-ENE6RG2P-FgNgy726.js → pieDiagram-ENE6RG2P-BfXWRzNb.js} +1 -1
  371. package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-BxQbmGmi.js → quadrantDiagram-ABIIQ3AL-AYMVAbo1.js} +1 -1
  372. package/ui-dist/assets/{railroadDiagram-RFXS5EU6-CrpbkPH2.js → railroadDiagram-RFXS5EU6-B0PoG0Ih.js} +1 -1
  373. package/ui-dist/assets/{requirementDiagram-TGXJPOKE-DQ-65ZW6.js → requirementDiagram-TGXJPOKE-Cuuu9wfw.js} +1 -1
  374. package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-Bom0lMZm.js → sankeyDiagram-HTMAVEWB-BceAc42f.js} +1 -1
  375. package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-C1MSDLDj.js → sequenceDiagram-DBY2YBRQ-cqJ71-Rw.js} +1 -1
  376. package/ui-dist/assets/{sizeCapture-X5ZJPWSS-Bn1vxebD.js → sizeCapture-X5ZJPWSS-DQ6MibbA.js} +1 -1
  377. package/ui-dist/assets/{stateDiagram-2N3HPSRC-GRRQpmzI.js → stateDiagram-2N3HPSRC-Bdl-XY7t.js} +1 -1
  378. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-Cjj7yPIO.js +1 -0
  379. package/ui-dist/assets/{swimlanes-5IMT3BWC-BcOOCZ4q.js → swimlanes-5IMT3BWC-Dpo2HDtE.js} +2 -2
  380. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-CPmIkNCu.js +8 -0
  381. package/ui-dist/assets/{timeline-definition-FHXFAJF6-gi6amswh.js → timeline-definition-FHXFAJF6-BzmJ-xnC.js} +1 -1
  382. package/ui-dist/assets/{vennDiagram-L72KCM5P-B9uqeyQt.js → vennDiagram-L72KCM5P-BF2EI7vn.js} +1 -1
  383. package/ui-dist/assets/{wardleyDiagram-EHGQE667-BnqWAMiE.js → wardleyDiagram-EHGQE667-DM65x1i1.js} +1 -1
  384. package/ui-dist/assets/xterm-DZP7bLZ5.js +9 -0
  385. package/ui-dist/assets/{xychartDiagram-FW5EYKEG-BJXKltIN.js → xychartDiagram-FW5EYKEG-3Q2t9pdU.js} +1 -1
  386. package/ui-dist/index.html +2 -2
  387. package/dist/bootstrap/plugin-host-runtime.d.ts +0 -116
  388. package/dist/bootstrap/plugin-host-runtime.d.ts.map +0 -1
  389. package/dist/bootstrap/plugin-host-runtime.js +0 -179
  390. package/dist/bootstrap/plugin-host-runtime.js.map +0 -1
  391. package/dist/bundled-plugins/plugin-linear/README.md +0 -22
  392. package/dist/bundled-plugins/plugin-linear/dist/manifest.js +0 -183
  393. package/dist/bundled-plugins/plugin-linear/dist/manifest.js.map +0 -7
  394. package/dist/bundled-plugins/plugin-linear/dist/ui/index.js +0 -1285
  395. package/dist/bundled-plugins/plugin-linear/dist/ui/index.js.map +0 -7
  396. package/dist/bundled-plugins/plugin-linear/dist/worker.js +0 -10699
  397. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +0 -7
  398. package/dist/bundled-plugins/plugin-linear/package.json +0 -42
  399. package/dist/routes/plugin-ui-static.d.ts +0 -70
  400. package/dist/routes/plugin-ui-static.d.ts.map +0 -1
  401. package/dist/routes/plugin-ui-static.js +0 -375
  402. package/dist/routes/plugin-ui-static.js.map +0 -1
  403. package/dist/routes/plugins.d.ts +0 -120
  404. package/dist/routes/plugins.d.ts.map +0 -1
  405. package/dist/routes/plugins.js +0 -1125
  406. package/dist/routes/plugins.js.map +0 -1
  407. package/dist/routes/plugins.operations-routes.d.ts +0 -28
  408. package/dist/routes/plugins.operations-routes.d.ts.map +0 -1
  409. package/dist/routes/plugins.operations-routes.js +0 -720
  410. package/dist/routes/plugins.operations-routes.js.map +0 -1
  411. package/dist/services/plugin-capability-validator.d.ts +0 -108
  412. package/dist/services/plugin-capability-validator.d.ts.map +0 -1
  413. package/dist/services/plugin-capability-validator.js +0 -268
  414. package/dist/services/plugin-capability-validator.js.map +0 -1
  415. package/dist/services/plugin-config-validator.d.ts +0 -26
  416. package/dist/services/plugin-config-validator.d.ts.map +0 -1
  417. package/dist/services/plugin-config-validator.js +0 -41
  418. package/dist/services/plugin-config-validator.js.map +0 -1
  419. package/dist/services/plugin-dev-watcher.d.ts +0 -47
  420. package/dist/services/plugin-dev-watcher.d.ts.map +0 -1
  421. package/dist/services/plugin-dev-watcher.js +0 -275
  422. package/dist/services/plugin-dev-watcher.js.map +0 -1
  423. package/dist/services/plugin-event-bus.d.ts +0 -149
  424. package/dist/services/plugin-event-bus.d.ts.map +0 -1
  425. package/dist/services/plugin-event-bus.js +0 -258
  426. package/dist/services/plugin-event-bus.js.map +0 -1
  427. package/dist/services/plugin-host-service-cleanup.d.ts +0 -14
  428. package/dist/services/plugin-host-service-cleanup.d.ts.map +0 -1
  429. package/dist/services/plugin-host-service-cleanup.js +0 -37
  430. package/dist/services/plugin-host-service-cleanup.js.map +0 -1
  431. package/dist/services/plugin-host-services.d.ts +0 -13
  432. package/dist/services/plugin-host-services.d.ts.map +0 -1
  433. package/dist/services/plugin-host-services.js +0 -933
  434. package/dist/services/plugin-host-services.js.map +0 -1
  435. package/dist/services/plugin-job-coordinator.d.ts +0 -81
  436. package/dist/services/plugin-job-coordinator.d.ts.map +0 -1
  437. package/dist/services/plugin-job-coordinator.js +0 -172
  438. package/dist/services/plugin-job-coordinator.js.map +0 -1
  439. package/dist/services/plugin-job-scheduler.d.ts +0 -163
  440. package/dist/services/plugin-job-scheduler.d.ts.map +0 -1
  441. package/dist/services/plugin-job-scheduler.js +0 -452
  442. package/dist/services/plugin-job-scheduler.js.map +0 -1
  443. package/dist/services/plugin-job-store.d.ts +0 -208
  444. package/dist/services/plugin-job-store.d.ts.map +0 -1
  445. package/dist/services/plugin-job-store.js +0 -350
  446. package/dist/services/plugin-job-store.js.map +0 -1
  447. package/dist/services/plugin-lifecycle.d.ts +0 -240
  448. package/dist/services/plugin-lifecycle.d.ts.map +0 -1
  449. package/dist/services/plugin-lifecycle.js +0 -439
  450. package/dist/services/plugin-lifecycle.js.map +0 -1
  451. package/dist/services/plugin-loader.core.d.ts +0 -40
  452. package/dist/services/plugin-loader.core.d.ts.map +0 -1
  453. package/dist/services/plugin-loader.core.js +0 -879
  454. package/dist/services/plugin-loader.core.js.map +0 -1
  455. package/dist/services/plugin-loader.d.ts +0 -30
  456. package/dist/services/plugin-loader.d.ts.map +0 -1
  457. package/dist/services/plugin-loader.helpers.d.ts +0 -495
  458. package/dist/services/plugin-loader.helpers.d.ts.map +0 -1
  459. package/dist/services/plugin-loader.helpers.js +0 -238
  460. package/dist/services/plugin-loader.helpers.js.map +0 -1
  461. package/dist/services/plugin-loader.js +0 -30
  462. package/dist/services/plugin-loader.js.map +0 -1
  463. package/dist/services/plugin-loader.worker-paths.d.ts +0 -37
  464. package/dist/services/plugin-loader.worker-paths.d.ts.map +0 -1
  465. package/dist/services/plugin-loader.worker-paths.js +0 -62
  466. package/dist/services/plugin-loader.worker-paths.js.map +0 -1
  467. package/dist/services/plugin-log-retention.d.ts +0 -20
  468. package/dist/services/plugin-log-retention.d.ts.map +0 -1
  469. package/dist/services/plugin-log-retention.js +0 -63
  470. package/dist/services/plugin-log-retention.js.map +0 -1
  471. package/dist/services/plugin-manifest-validator.d.ts +0 -90
  472. package/dist/services/plugin-manifest-validator.d.ts.map +0 -1
  473. package/dist/services/plugin-manifest-validator.js +0 -72
  474. package/dist/services/plugin-manifest-validator.js.map +0 -1
  475. package/dist/services/plugin-registry.d.ts +0 -2542
  476. package/dist/services/plugin-registry.d.ts.map +0 -1
  477. package/dist/services/plugin-registry.js +0 -536
  478. package/dist/services/plugin-registry.js.map +0 -1
  479. package/dist/services/plugin-runtime-sandbox.d.ts +0 -40
  480. package/dist/services/plugin-runtime-sandbox.d.ts.map +0 -1
  481. package/dist/services/plugin-runtime-sandbox.js +0 -154
  482. package/dist/services/plugin-runtime-sandbox.js.map +0 -1
  483. package/dist/services/plugin-secrets-handler.d.ts +0 -81
  484. package/dist/services/plugin-secrets-handler.d.ts.map +0 -1
  485. package/dist/services/plugin-secrets-handler.js +0 -275
  486. package/dist/services/plugin-secrets-handler.js.map +0 -1
  487. package/dist/services/plugin-state-store.d.ts +0 -92
  488. package/dist/services/plugin-state-store.d.ts.map +0 -1
  489. package/dist/services/plugin-state-store.js +0 -190
  490. package/dist/services/plugin-state-store.js.map +0 -1
  491. package/dist/services/plugin-stream-bus.d.ts +0 -29
  492. package/dist/services/plugin-stream-bus.d.ts.map +0 -1
  493. package/dist/services/plugin-stream-bus.js +0 -48
  494. package/dist/services/plugin-stream-bus.js.map +0 -1
  495. package/dist/services/plugin-tool-dispatcher.d.ts +0 -180
  496. package/dist/services/plugin-tool-dispatcher.d.ts.map +0 -1
  497. package/dist/services/plugin-tool-dispatcher.js +0 -224
  498. package/dist/services/plugin-tool-dispatcher.js.map +0 -1
  499. package/dist/services/plugin-tool-registry.d.ts +0 -192
  500. package/dist/services/plugin-tool-registry.d.ts.map +0 -1
  501. package/dist/services/plugin-tool-registry.js +0 -224
  502. package/dist/services/plugin-tool-registry.js.map +0 -1
  503. package/dist/services/plugin-worker-manager.d.ts +0 -260
  504. package/dist/services/plugin-worker-manager.d.ts.map +0 -1
  505. package/dist/services/plugin-worker-manager.js +0 -836
  506. package/dist/services/plugin-worker-manager.js.map +0 -1
  507. package/ui-dist/assets/channel-C08AyYJr.js +0 -1
  508. package/ui-dist/assets/classDiagram-OUVF2IWQ-BIXq6fec.js +0 -1
  509. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-BIXq6fec.js +0 -1
  510. package/ui-dist/assets/index-BmXb0yC1.css +0 -1
  511. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-KvSJhiLM.js +0 -1
  512. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-Cr92NnJ4.js +0 -8
@@ -1,439 +0,0 @@
1
- import { EventEmitter } from "node:events";
2
- import { badRequest, notFound } from "../errors.js";
3
- import { logger } from "../middleware/logger.js";
4
- import { pluginLoader } from "./plugin-loader.js";
5
- import { pluginRegistryService } from "./plugin-registry.js";
6
- // ---------------------------------------------------------------------------
7
- // Lifecycle state machine
8
- // ---------------------------------------------------------------------------
9
- /**
10
- * Valid state transitions for the plugin lifecycle.
11
- *
12
- * installed → ready (initial load succeeds)
13
- * installed → error (initial load fails)
14
- * installed → uninstalled (abort installation)
15
- *
16
- * ready → disabled (operator disables plugin)
17
- * ready → error (runtime failure)
18
- * ready → upgrade_pending (upgrade with new capabilities)
19
- * ready → uninstalled (uninstall)
20
- *
21
- * disabled → ready (operator re-enables plugin)
22
- * disabled → uninstalled (uninstall while disabled)
23
- *
24
- * error → ready (retry / recovery)
25
- * error → uninstalled (give up and uninstall)
26
- *
27
- * upgrade_pending → ready (operator approves new capabilities)
28
- * upgrade_pending → error (upgrade worker fails)
29
- * upgrade_pending → uninstalled (reject upgrade and uninstall)
30
- *
31
- * uninstalled → installed (reinstall)
32
- */
33
- const VALID_TRANSITIONS = {
34
- installed: ["ready", "error", "uninstalled"],
35
- ready: ["ready", "disabled", "error", "upgrade_pending", "uninstalled"],
36
- disabled: ["ready", "uninstalled"],
37
- error: ["ready", "uninstalled"],
38
- upgrade_pending: ["ready", "error", "uninstalled"],
39
- uninstalled: ["installed"], // reinstall
40
- };
41
- /**
42
- * Check whether a transition from `from` → `to` is valid.
43
- */
44
- function isValidTransition(from, to) {
45
- return VALID_TRANSITIONS[from]?.includes(to) ?? false;
46
- }
47
- /**
48
- * Create a PluginLifecycleManager.
49
- *
50
- * This service orchestrates plugin state transitions on top of the
51
- * `pluginRegistryService` (which handles raw DB persistence). It enforces
52
- * the lifecycle state machine, emits events for downstream consumers
53
- * (routing tables, UI, observability), and manages worker processes via
54
- * the `PluginWorkerManager` when one is provided.
55
- *
56
- * Usage:
57
- * ```ts
58
- * const lifecycle = pluginLifecycleManager(db, {
59
- * workerManager: createPluginWorkerManager(),
60
- * });
61
- * lifecycle.on("plugin.enabled", ({ pluginId }) => { ... });
62
- * await lifecycle.load(pluginId);
63
- * ```
64
- *
65
- * @see doc/engineering/PLUGIN_RUNTIME_CONTRACT.md — `plugins.status` column
66
- * @see doc/engineering/PLUGIN_RUNTIME_CONTRACT.md — Process Model
67
- */
68
- export function pluginLifecycleManager(db, options) {
69
- // Support the legacy signature: pluginLifecycleManager(db, loader)
70
- // as well as the new options object form.
71
- let loaderArg;
72
- let workerManager;
73
- if (options && typeof options === "object" && "discoverAll" in options) {
74
- // Legacy: second arg is a PluginLoader directly
75
- loaderArg = options;
76
- }
77
- else if (options && typeof options === "object") {
78
- const opts = options;
79
- loaderArg = opts.loader;
80
- workerManager = opts.workerManager;
81
- }
82
- const registry = pluginRegistryService(db);
83
- const pluginLoaderInstance = loaderArg ?? pluginLoader(db);
84
- const emitter = new EventEmitter();
85
- emitter.setMaxListeners(100); // plugins may have many listeners; 100 is a safe upper bound
86
- const log = logger.child({ service: "plugin-lifecycle" });
87
- // -----------------------------------------------------------------------
88
- // Internal helpers
89
- // -----------------------------------------------------------------------
90
- async function requirePlugin(pluginId) {
91
- const plugin = await registry.getById(pluginId);
92
- if (!plugin)
93
- throw notFound(`Plugin not found: ${pluginId}`);
94
- return plugin;
95
- }
96
- function assertTransition(plugin, to) {
97
- if (!isValidTransition(plugin.status, to)) {
98
- throw badRequest(`Invalid lifecycle transition: ${plugin.status} → ${to} for plugin ${plugin.pluginKey}`);
99
- }
100
- }
101
- async function transition(pluginId, to, lastError = null, existingPlugin) {
102
- const plugin = existingPlugin ?? await requirePlugin(pluginId);
103
- assertTransition(plugin, to);
104
- const previousStatus = plugin.status;
105
- const updated = await registry.updateStatus(pluginId, {
106
- status: to,
107
- lastError,
108
- });
109
- if (!updated)
110
- throw notFound(`Plugin not found after status update: ${pluginId}`);
111
- const result = updated;
112
- log.info({ pluginId, pluginKey: result.pluginKey, from: previousStatus, to }, `plugin lifecycle: ${previousStatus} → ${to}`);
113
- // Emit the generic status_changed event
114
- emitter.emit("plugin.status_changed", {
115
- pluginId,
116
- pluginKey: result.pluginKey,
117
- previousStatus,
118
- newStatus: to,
119
- });
120
- return result;
121
- }
122
- function emitDomain(event, payload) {
123
- emitter.emit(event, payload);
124
- }
125
- // -----------------------------------------------------------------------
126
- // Worker management helpers
127
- // -----------------------------------------------------------------------
128
- /**
129
- * Stop the worker for a plugin if one is running.
130
- * This is a best-effort operation — if no worker manager is configured
131
- * or no worker is running, it silently succeeds.
132
- */
133
- async function stopWorkerIfRunning(pluginId, pluginKey) {
134
- if (!workerManager)
135
- return;
136
- if (!workerManager.isRunning(pluginId) && !workerManager.getWorker(pluginId))
137
- return;
138
- try {
139
- await workerManager.stopWorker(pluginId);
140
- log.info({ pluginId, pluginKey }, "plugin lifecycle: worker stopped");
141
- emitDomain("plugin.worker_stopped", { pluginId, pluginKey });
142
- }
143
- catch (err) {
144
- log.warn({ pluginId, pluginKey, err: err instanceof Error ? err.message : String(err) }, "plugin lifecycle: failed to stop worker (best-effort)");
145
- }
146
- }
147
- async function activateReadyPlugin(pluginId) {
148
- const supportsRuntimeActivation = typeof pluginLoaderInstance.hasRuntimeServices === "function"
149
- && typeof pluginLoaderInstance.loadSingle === "function";
150
- if (!supportsRuntimeActivation || !pluginLoaderInstance.hasRuntimeServices()) {
151
- return;
152
- }
153
- const loadResult = await pluginLoaderInstance.loadSingle(pluginId);
154
- if (!loadResult.success) {
155
- throw new Error(loadResult.error
156
- ?? `Failed to activate plugin ${loadResult.plugin.pluginKey}`);
157
- }
158
- }
159
- async function deactivatePluginRuntime(pluginId, pluginKey) {
160
- const supportsRuntimeDeactivation = typeof pluginLoaderInstance.hasRuntimeServices === "function"
161
- && typeof pluginLoaderInstance.unloadSingle === "function";
162
- if (supportsRuntimeDeactivation && pluginLoaderInstance.hasRuntimeServices()) {
163
- await pluginLoaderInstance.unloadSingle(pluginId, pluginKey);
164
- return;
165
- }
166
- await stopWorkerIfRunning(pluginId, pluginKey);
167
- }
168
- // -----------------------------------------------------------------------
169
- // Public API
170
- // -----------------------------------------------------------------------
171
- return {
172
- // -- load -------------------------------------------------------------
173
- /**
174
- * load — Transitions a plugin to 'ready' status and starts its worker.
175
- *
176
- * This method is called after a plugin has been successfully installed and
177
- * validated. It marks the plugin as ready in the database and immediately
178
- * triggers the plugin loader to start the worker process.
179
- *
180
- * @param pluginId - The UUID of the plugin to load.
181
- * @returns The updated plugin record.
182
- */
183
- async load(pluginId) {
184
- const result = await transition(pluginId, "ready");
185
- await activateReadyPlugin(pluginId);
186
- emitDomain("plugin.loaded", {
187
- pluginId,
188
- pluginKey: result.pluginKey,
189
- });
190
- emitDomain("plugin.enabled", {
191
- pluginId,
192
- pluginKey: result.pluginKey,
193
- });
194
- return result;
195
- },
196
- // -- enable -----------------------------------------------------------
197
- /**
198
- * enable — Re-enables a plugin that was previously in an error or upgrade state.
199
- *
200
- * Similar to load(), this method transitions the plugin to 'ready' and starts
201
- * its worker, but it specifically targets plugins that are currently disabled.
202
- *
203
- * @param pluginId - The UUID of the plugin to enable.
204
- * @returns The updated plugin record.
205
- */
206
- async enable(pluginId) {
207
- const plugin = await requirePlugin(pluginId);
208
- // Only allow enabling from disabled, error, or upgrade_pending states
209
- if (plugin.status !== "disabled" && plugin.status !== "error" && plugin.status !== "upgrade_pending") {
210
- throw badRequest(`Cannot enable plugin in status '${plugin.status}'. ` +
211
- `Plugin must be in 'disabled', 'error', or 'upgrade_pending' status to be enabled.`);
212
- }
213
- const result = await transition(pluginId, "ready", null, plugin);
214
- await activateReadyPlugin(pluginId);
215
- emitDomain("plugin.enabled", {
216
- pluginId,
217
- pluginKey: result.pluginKey,
218
- });
219
- return result;
220
- },
221
- // -- disable ----------------------------------------------------------
222
- async disable(pluginId, reason) {
223
- const plugin = await requirePlugin(pluginId);
224
- // Only allow disabling from ready state
225
- if (plugin.status !== "ready") {
226
- throw badRequest(`Cannot disable plugin in status '${plugin.status}'. ` +
227
- `Plugin must be in 'ready' status to be disabled.`);
228
- }
229
- await deactivatePluginRuntime(pluginId, plugin.pluginKey);
230
- const result = await transition(pluginId, "disabled", reason ?? null, plugin);
231
- emitDomain("plugin.disabled", {
232
- pluginId,
233
- pluginKey: result.pluginKey,
234
- reason,
235
- });
236
- return result;
237
- },
238
- // -- unload -----------------------------------------------------------
239
- async unload(pluginId, removeData = false) {
240
- const plugin = await requirePlugin(pluginId);
241
- // If already uninstalled and removeData, hard-delete
242
- if (plugin.status === "uninstalled") {
243
- if (removeData) {
244
- await pluginLoaderInstance.cleanupInstallArtifacts(plugin);
245
- const deleted = await registry.uninstall(pluginId, true);
246
- log.info({ pluginId, pluginKey: plugin.pluginKey }, "plugin lifecycle: hard-deleted already-uninstalled plugin");
247
- emitDomain("plugin.unloaded", {
248
- pluginId,
249
- pluginKey: plugin.pluginKey,
250
- removeData: true,
251
- });
252
- return deleted;
253
- }
254
- throw badRequest(`Plugin ${plugin.pluginKey} is already uninstalled. ` +
255
- `Use removeData=true to permanently delete it.`);
256
- }
257
- await deactivatePluginRuntime(pluginId, plugin.pluginKey);
258
- await pluginLoaderInstance.cleanupInstallArtifacts(plugin);
259
- // Perform the uninstall via registry (handles soft/hard delete)
260
- const result = await registry.uninstall(pluginId, removeData);
261
- log.info({ pluginId, pluginKey: plugin.pluginKey, removeData }, `plugin lifecycle: ${plugin.status} → uninstalled${removeData ? " (hard delete)" : ""}`);
262
- emitter.emit("plugin.status_changed", {
263
- pluginId,
264
- pluginKey: plugin.pluginKey,
265
- previousStatus: plugin.status,
266
- newStatus: "uninstalled",
267
- });
268
- emitDomain("plugin.unloaded", {
269
- pluginId,
270
- pluginKey: plugin.pluginKey,
271
- removeData,
272
- });
273
- return result;
274
- },
275
- // -- markError --------------------------------------------------------
276
- async markError(pluginId, error) {
277
- // Stop the worker — the plugin is in an error state and should not
278
- // continue running. The worker manager's auto-restart is disabled
279
- // because we are intentionally taking the plugin offline.
280
- const plugin = await requirePlugin(pluginId);
281
- await deactivatePluginRuntime(pluginId, plugin.pluginKey);
282
- const result = await transition(pluginId, "error", error, plugin);
283
- emitDomain("plugin.error", {
284
- pluginId,
285
- pluginKey: result.pluginKey,
286
- error,
287
- });
288
- return result;
289
- },
290
- // -- markUpgradePending -----------------------------------------------
291
- async markUpgradePending(pluginId) {
292
- const plugin = await requirePlugin(pluginId);
293
- await deactivatePluginRuntime(pluginId, plugin.pluginKey);
294
- const result = await transition(pluginId, "upgrade_pending", null, plugin);
295
- emitDomain("plugin.upgrade_pending", {
296
- pluginId,
297
- pluginKey: result.pluginKey,
298
- });
299
- return result;
300
- },
301
- // -- upgrade ----------------------------------------------------------
302
- /**
303
- * Upgrade a plugin to a newer version by performing a package update and
304
- * managing the lifecycle state transition.
305
- *
306
- * Following doc/engineering/PLUGIN_RUNTIME_CONTRACT.md, the upgrade process:
307
- * 1. Stops the current worker process (if running).
308
- * 2. Fetches and validates the new plugin package via the `PluginLoader`.
309
- * 3. Compares the capabilities declared in the new manifest against the old one.
310
- * 4. If new capabilities are added, transitions the plugin to `upgrade_pending`
311
- * to await operator approval (worker stays stopped).
312
- * 5. If no new capabilities are added, transitions the plugin back to `ready`
313
- * with the updated version and manifest metadata.
314
- *
315
- * @param pluginId - The UUID of the plugin to upgrade.
316
- * @param version - Optional target version specifier.
317
- * @returns The updated `PluginRecord`.
318
- * @throws {BadRequest} If the plugin is not in a ready or upgrade_pending state.
319
- */
320
- async upgrade(pluginId, version) {
321
- const plugin = await requirePlugin(pluginId);
322
- // Can only upgrade plugins that are ready or already in upgrade_pending
323
- if (plugin.status !== "ready" && plugin.status !== "upgrade_pending") {
324
- throw badRequest(`Cannot upgrade plugin in status '${plugin.status}'. ` +
325
- `Plugin must be in 'ready' or 'upgrade_pending' status to be upgraded.`);
326
- }
327
- log.info({ pluginId, pluginKey: plugin.pluginKey, targetVersion: version }, "plugin lifecycle: upgrade requested");
328
- await deactivatePluginRuntime(pluginId, plugin.pluginKey);
329
- // 1. Download and validate new package via loader
330
- const { oldManifest, newManifest, discovered } = await pluginLoaderInstance.upgradePlugin(pluginId, { version });
331
- log.info({
332
- pluginId,
333
- pluginKey: plugin.pluginKey,
334
- oldVersion: oldManifest.version,
335
- newVersion: newManifest.version,
336
- }, "plugin lifecycle: package upgraded on disk");
337
- // 2. Compare capabilities
338
- const addedCaps = newManifest.capabilities.filter((cap) => !oldManifest.capabilities.includes(cap));
339
- // 3. Transition state
340
- if (addedCaps.length > 0) {
341
- // New capabilities require operator approval — worker stays stopped
342
- log.info({ pluginId, pluginKey: plugin.pluginKey, addedCaps }, "plugin lifecycle: new capabilities detected, transitioning to upgrade_pending");
343
- // Skip the inner stopWorkerIfRunning since we already stopped above
344
- const result = await transition(pluginId, "upgrade_pending", null, plugin);
345
- emitDomain("plugin.upgrade_pending", {
346
- pluginId,
347
- pluginKey: result.pluginKey,
348
- });
349
- return result;
350
- }
351
- else {
352
- const result = await transition(pluginId, "ready", null, {
353
- ...plugin,
354
- version: discovered.version,
355
- manifestJson: newManifest,
356
- });
357
- await activateReadyPlugin(pluginId);
358
- emitDomain("plugin.loaded", {
359
- pluginId,
360
- pluginKey: result.pluginKey,
361
- });
362
- emitDomain("plugin.enabled", {
363
- pluginId,
364
- pluginKey: result.pluginKey,
365
- });
366
- return result;
367
- }
368
- },
369
- // -- startWorker ------------------------------------------------------
370
- async startWorker(pluginId, options) {
371
- if (!workerManager) {
372
- throw badRequest("Cannot start worker: no PluginWorkerManager is configured. " +
373
- "Provide a workerManager option when constructing the lifecycle manager.");
374
- }
375
- const plugin = await requirePlugin(pluginId);
376
- if (plugin.status !== "ready") {
377
- throw badRequest(`Cannot start worker for plugin in status '${plugin.status}'. ` +
378
- `Plugin must be in 'ready' status.`);
379
- }
380
- log.info({ pluginId, pluginKey: plugin.pluginKey }, "plugin lifecycle: starting worker");
381
- await workerManager.startWorker(pluginId, options);
382
- emitDomain("plugin.worker_started", {
383
- pluginId,
384
- pluginKey: plugin.pluginKey,
385
- });
386
- log.info({ pluginId, pluginKey: plugin.pluginKey }, "plugin lifecycle: worker started");
387
- },
388
- // -- stopWorker -------------------------------------------------------
389
- async stopWorker(pluginId) {
390
- if (!workerManager)
391
- return; // No worker manager — nothing to stop
392
- const plugin = await requirePlugin(pluginId);
393
- await stopWorkerIfRunning(pluginId, plugin.pluginKey);
394
- },
395
- // -- restartWorker ----------------------------------------------------
396
- async restartWorker(pluginId) {
397
- if (!workerManager) {
398
- throw badRequest("Cannot restart worker: no PluginWorkerManager is configured.");
399
- }
400
- const plugin = await requirePlugin(pluginId);
401
- if (plugin.status !== "ready") {
402
- throw badRequest(`Cannot restart worker for plugin in status '${plugin.status}'. ` +
403
- `Plugin must be in 'ready' status.`);
404
- }
405
- const handle = workerManager.getWorker(pluginId);
406
- if (!handle) {
407
- throw badRequest(`Cannot restart worker for plugin "${plugin.pluginKey}": no worker is running.`);
408
- }
409
- log.info({ pluginId, pluginKey: plugin.pluginKey }, "plugin lifecycle: restarting worker");
410
- await handle.restart();
411
- emitDomain("plugin.worker_stopped", { pluginId, pluginKey: plugin.pluginKey });
412
- emitDomain("plugin.worker_started", { pluginId, pluginKey: plugin.pluginKey });
413
- log.info({ pluginId, pluginKey: plugin.pluginKey }, "plugin lifecycle: worker restarted");
414
- },
415
- // -- getStatus --------------------------------------------------------
416
- async getStatus(pluginId) {
417
- const plugin = await registry.getById(pluginId);
418
- return plugin?.status ?? null;
419
- },
420
- // -- canTransition ----------------------------------------------------
421
- async canTransition(pluginId, to) {
422
- const plugin = await registry.getById(pluginId);
423
- if (!plugin)
424
- return false;
425
- return isValidTransition(plugin.status, to);
426
- },
427
- // -- Event subscriptions ----------------------------------------------
428
- on(event, listener) {
429
- emitter.on(event, listener);
430
- },
431
- off(event, listener) {
432
- emitter.off(event, listener);
433
- },
434
- once(event, listener) {
435
- emitter.once(event, listener);
436
- },
437
- };
438
- }
439
- //# sourceMappingURL=plugin-lifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-lifecycle.js","sourceRoot":"","sources":["../../src/services/plugin-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- /**
2
- * PluginLoader — discovery, installation, and runtime activation of plugins.
3
- *
4
- * This service is the entry point for the plugin system's I/O boundary:
5
- *
6
- * 1. **Discovery** — Scans the local plugin directory
7
- * (`~/.rudder/plugins/`) and `node_modules` for packages matching
8
- * the `rudder-plugin-*` naming convention. Aggregates results with
9
- * path-based deduplication.
10
- *
11
- * 2. **Installation** — `installPlugin()` downloads from npm (or reads a
12
- * local path), validates the manifest, checks capability consistency,
13
- * and persists the install record.
14
- *
15
- * 3. **Runtime activation** — `activatePlugin()` wires up a loaded plugin
16
- * with all runtime services: resolves its entrypoint, builds
17
- * capability-gated host handlers, spawns a worker process, syncs job
18
- * declarations, registers event subscriptions, and discovers tools.
19
- *
20
- * 4. **Shutdown** — `shutdownAll()` gracefully stops all active workers
21
- * and unregisters runtime hooks.
22
- *
23
- * @see doc/engineering/PLUGIN_RUNTIME_CONTRACT.md — Plugin Discovery
24
- * @see doc/engineering/PLUGIN_RUNTIME_CONTRACT.md — Package Contract
25
- * @see doc/engineering/PLUGIN_RUNTIME_CONTRACT.md — Process Model
26
- */
27
- import type { Db } from "@rudderhq/db";
28
- import { PluginLoader, PluginLoaderOptions, PluginRuntimeServices } from "./plugin-loader.helpers.js";
29
- export declare function pluginLoader(db: Db, options?: PluginLoaderOptions, runtimeServices?: PluginRuntimeServices): PluginLoader;
30
- /**
31
- * Resolve the absolute path to a plugin's worker entrypoint from its manifest
32
- * and known install locations.
33
- *
34
- * The manifest `entrypoints.worker` field is relative to the package root.
35
- * We check the local plugin directory (where the package was installed) and
36
- * also the package directory if it was a local-path install.
37
- *
38
- * @see doc/engineering/PLUGIN_RUNTIME_CONTRACT.md — Package Contract
39
- */
40
- //# sourceMappingURL=plugin-loader.core.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-loader.core.d.ts","sourceRoot":"","sources":["../../src/services/plugin-loader.core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAUvC,OAAO,EAA0O,YAAY,EAAE,mBAAmB,EAAoB,qBAAqB,EAAsD,MAAM,4BAA4B,CAAC;AAMpZ,wBAAgB,YAAY,CAC1B,EAAE,EAAE,EAAE,EACN,OAAO,GAAE,mBAAwB,EACjC,eAAe,CAAC,EAAE,qBAAqB,GACtC,YAAY,CA6mCd;AAMD;;;;;;;;;GASG"}