@rudderhq/server 0.2.5-canary.8 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/dist/bootstrap/plugin-host-runtime.d.ts +39 -39
  2. package/dist/bundled-plugins/plugin-linear/dist/worker.js +101 -147
  3. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
  4. package/dist/bundled-plugins/plugin-linear/package.json +1 -1
  5. package/dist/routes/access-onboarding.helpers.d.ts +142 -0
  6. package/dist/routes/access-onboarding.helpers.d.ts.map +1 -0
  7. package/dist/routes/access-onboarding.helpers.js +762 -0
  8. package/dist/routes/access-onboarding.helpers.js.map +1 -0
  9. package/dist/routes/access.d.ts +2 -48
  10. package/dist/routes/access.d.ts.map +1 -1
  11. package/dist/routes/access.helpers.d.ts +109 -0
  12. package/dist/routes/access.helpers.d.ts.map +1 -0
  13. package/dist/routes/access.helpers.js +460 -0
  14. package/dist/routes/access.helpers.js.map +1 -0
  15. package/dist/routes/access.js +6 -1218
  16. package/dist/routes/access.js.map +1 -1
  17. package/dist/routes/agents.d.ts.map +1 -1
  18. package/dist/routes/agents.js +55 -1057
  19. package/dist/routes/agents.js.map +1 -1
  20. package/dist/routes/agents.management-routes.d.ts +12 -0
  21. package/dist/routes/agents.management-routes.d.ts.map +1 -0
  22. package/dist/routes/agents.management-routes.js +1067 -0
  23. package/dist/routes/agents.management-routes.js.map +1 -0
  24. package/dist/routes/chats.d.ts.map +1 -1
  25. package/dist/routes/chats.js +42 -652
  26. package/dist/routes/chats.js.map +1 -1
  27. package/dist/routes/chats.stream-routes.d.ts +12 -0
  28. package/dist/routes/chats.stream-routes.d.ts.map +1 -0
  29. package/dist/routes/chats.stream-routes.js +666 -0
  30. package/dist/routes/chats.stream-routes.js.map +1 -0
  31. package/dist/routes/issues.comments-attachments.d.ts +12 -0
  32. package/dist/routes/issues.comments-attachments.d.ts.map +1 -0
  33. package/dist/routes/issues.comments-attachments.js +511 -0
  34. package/dist/routes/issues.comments-attachments.js.map +1 -0
  35. package/dist/routes/issues.d.ts.map +1 -1
  36. package/dist/routes/issues.js +43 -1128
  37. package/dist/routes/issues.js.map +1 -1
  38. package/dist/routes/issues.mutations.d.ts +12 -0
  39. package/dist/routes/issues.mutations.d.ts.map +1 -0
  40. package/dist/routes/issues.mutations.js +635 -0
  41. package/dist/routes/issues.mutations.js.map +1 -0
  42. package/dist/routes/plugins.d.ts.map +1 -1
  43. package/dist/routes/plugins.js +14 -694
  44. package/dist/routes/plugins.js.map +1 -1
  45. package/dist/routes/plugins.operations-routes.d.ts +28 -0
  46. package/dist/routes/plugins.operations-routes.d.ts.map +1 -0
  47. package/dist/routes/plugins.operations-routes.js +720 -0
  48. package/dist/routes/plugins.operations-routes.js.map +1 -0
  49. package/dist/services/access.d.ts +21 -21
  50. package/dist/services/activity.d.ts +19 -19
  51. package/dist/services/agents.d.ts +158 -158
  52. package/dist/services/approvals.d.ts +29 -29
  53. package/dist/services/assets.d.ts +8 -8
  54. package/dist/services/automations.d.ts +41 -27
  55. package/dist/services/automations.d.ts.map +1 -1
  56. package/dist/services/automations.js +287 -110
  57. package/dist/services/automations.js.map +1 -1
  58. package/dist/services/automations.scheduler.d.ts +9 -0
  59. package/dist/services/automations.scheduler.d.ts.map +1 -0
  60. package/dist/services/automations.scheduler.js +101 -0
  61. package/dist/services/automations.scheduler.js.map +1 -0
  62. package/dist/services/board-auth.d.ts +32 -32
  63. package/dist/services/calendar.d.ts +26 -26
  64. package/dist/services/chat-assistant.d.ts +3 -47
  65. package/dist/services/chat-assistant.d.ts.map +1 -1
  66. package/dist/services/chat-assistant.helpers.d.ts +156 -0
  67. package/dist/services/chat-assistant.helpers.d.ts.map +1 -0
  68. package/dist/services/chat-assistant.helpers.js +862 -0
  69. package/dist/services/chat-assistant.helpers.js.map +1 -0
  70. package/dist/services/chat-assistant.js +2 -861
  71. package/dist/services/chat-assistant.js.map +1 -1
  72. package/dist/services/chats.d.ts +149 -247
  73. package/dist/services/chats.d.ts.map +1 -1
  74. package/dist/services/chats.helpers.d.ts +117 -0
  75. package/dist/services/chats.helpers.d.ts.map +1 -0
  76. package/dist/services/chats.helpers.js +285 -0
  77. package/dist/services/chats.helpers.js.map +1 -0
  78. package/dist/services/chats.js +6 -286
  79. package/dist/services/chats.js.map +1 -1
  80. package/dist/services/costs.d.ts +8 -8
  81. package/dist/services/finance.d.ts +18 -18
  82. package/dist/services/goals.d.ts +30 -30
  83. package/dist/services/heartbeat.d.ts +3 -1
  84. package/dist/services/heartbeat.d.ts.map +1 -1
  85. package/dist/services/heartbeat.js +3 -1
  86. package/dist/services/heartbeat.js.map +1 -1
  87. package/dist/services/issue-approvals.d.ts +4 -4
  88. package/dist/services/issue-review-wakeup.d.ts +3 -3
  89. package/dist/services/issues.comments-attachments.d.ts +141 -0
  90. package/dist/services/issues.comments-attachments.d.ts.map +1 -0
  91. package/dist/services/issues.comments-attachments.js +313 -0
  92. package/dist/services/issues.comments-attachments.js.map +1 -0
  93. package/dist/services/issues.d.ts +205 -256
  94. package/dist/services/issues.d.ts.map +1 -1
  95. package/dist/services/issues.helpers.d.ts +87 -0
  96. package/dist/services/issues.helpers.d.ts.map +1 -0
  97. package/dist/services/issues.helpers.js +270 -0
  98. package/dist/services/issues.helpers.js.map +1 -0
  99. package/dist/services/issues.js +5 -569
  100. package/dist/services/issues.js.map +1 -1
  101. package/dist/services/knowledge-portability/organization-portability.core.d.ts +210 -0
  102. package/dist/services/knowledge-portability/organization-portability.core.d.ts.map +1 -0
  103. package/dist/services/knowledge-portability/organization-portability.core.js +997 -0
  104. package/dist/services/knowledge-portability/organization-portability.core.js.map +1 -0
  105. package/dist/services/knowledge-portability/organization-portability.d.ts +6 -28
  106. package/dist/services/knowledge-portability/organization-portability.d.ts.map +1 -1
  107. package/dist/services/knowledge-portability/organization-portability.export.d.ts +24 -0
  108. package/dist/services/knowledge-portability/organization-portability.export.d.ts.map +1 -0
  109. package/dist/services/knowledge-portability/organization-portability.export.js +607 -0
  110. package/dist/services/knowledge-portability/organization-portability.export.js.map +1 -0
  111. package/dist/services/knowledge-portability/organization-portability.files.d.ts +69 -0
  112. package/dist/services/knowledge-portability/organization-portability.files.d.ts.map +1 -0
  113. package/dist/services/knowledge-portability/organization-portability.files.js +597 -0
  114. package/dist/services/knowledge-portability/organization-portability.files.js.map +1 -0
  115. package/dist/services/knowledge-portability/organization-portability.import.d.ts +31 -0
  116. package/dist/services/knowledge-portability/organization-portability.import.d.ts.map +1 -0
  117. package/dist/services/knowledge-portability/organization-portability.import.js +575 -0
  118. package/dist/services/knowledge-portability/organization-portability.import.js.map +1 -0
  119. package/dist/services/knowledge-portability/organization-portability.js +37 -3848
  120. package/dist/services/knowledge-portability/organization-portability.js.map +1 -1
  121. package/dist/services/knowledge-portability/organization-portability.package.d.ts +72 -0
  122. package/dist/services/knowledge-portability/organization-portability.package.d.ts.map +1 -0
  123. package/dist/services/knowledge-portability/organization-portability.package.js +749 -0
  124. package/dist/services/knowledge-portability/organization-portability.package.js.map +1 -0
  125. package/dist/services/knowledge-portability/organization-portability.preview.d.ts +18 -0
  126. package/dist/services/knowledge-portability/organization-portability.preview.d.ts.map +1 -0
  127. package/dist/services/knowledge-portability/organization-portability.preview.js +333 -0
  128. package/dist/services/knowledge-portability/organization-portability.preview.js.map +1 -0
  129. package/dist/services/knowledge-portability/organization-portability.resolve-source.d.ts +4 -0
  130. package/dist/services/knowledge-portability/organization-portability.resolve-source.d.ts.map +1 -0
  131. package/dist/services/knowledge-portability/organization-portability.resolve-source.js +86 -0
  132. package/dist/services/knowledge-portability/organization-portability.resolve-source.js.map +1 -0
  133. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +221 -0
  134. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -0
  135. package/dist/services/knowledge-portability/organization-skills.catalog.js +999 -0
  136. package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -0
  137. package/dist/services/knowledge-portability/organization-skills.d.ts +4 -75
  138. package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
  139. package/dist/services/knowledge-portability/organization-skills.js +11 -2008
  140. package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
  141. package/dist/services/knowledge-portability/organization-skills.scans.d.ts +16 -0
  142. package/dist/services/knowledge-portability/organization-skills.scans.d.ts.map +1 -0
  143. package/dist/services/knowledge-portability/organization-skills.scans.js +300 -0
  144. package/dist/services/knowledge-portability/organization-skills.scans.js.map +1 -0
  145. package/dist/services/knowledge-portability/organization-skills.sources.d.ts +68 -0
  146. package/dist/services/knowledge-portability/organization-skills.sources.d.ts.map +1 -0
  147. package/dist/services/knowledge-portability/organization-skills.sources.js +728 -0
  148. package/dist/services/knowledge-portability/organization-skills.sources.js.map +1 -0
  149. package/dist/services/messenger.d.ts +2 -2
  150. package/dist/services/messenger.js +2 -2
  151. package/dist/services/messenger.js.map +1 -1
  152. package/dist/services/organization-skills.d.ts +3 -1
  153. package/dist/services/organization-skills.d.ts.map +1 -1
  154. package/dist/services/organization-skills.js +3 -1
  155. package/dist/services/organization-skills.js.map +1 -1
  156. package/dist/services/orgs.d.ts +9 -9
  157. package/dist/services/plugin-loader.core.d.ts +14 -0
  158. package/dist/services/plugin-loader.core.d.ts.map +1 -0
  159. package/dist/services/plugin-loader.core.js +905 -0
  160. package/dist/services/plugin-loader.core.js.map +1 -0
  161. package/dist/services/plugin-loader.d.ts +3 -440
  162. package/dist/services/plugin-loader.d.ts.map +1 -1
  163. package/dist/services/plugin-loader.helpers.d.ts +468 -0
  164. package/dist/services/plugin-loader.helpers.d.ts.map +1 -0
  165. package/dist/services/plugin-loader.helpers.js +263 -0
  166. package/dist/services/plugin-loader.helpers.js.map +1 -0
  167. package/dist/services/plugin-loader.js +3 -1191
  168. package/dist/services/plugin-loader.js.map +1 -1
  169. package/dist/services/plugin-loader.worker-paths.d.ts +7 -0
  170. package/dist/services/plugin-loader.worker-paths.d.ts.map +1 -0
  171. package/dist/services/plugin-loader.worker-paths.js +85 -0
  172. package/dist/services/plugin-loader.worker-paths.js.map +1 -0
  173. package/dist/services/plugin-registry.d.ts +123 -123
  174. package/dist/services/projects.d.ts +8 -8
  175. package/dist/services/runtime-kernel/heartbeat.core.d.ts +725 -0
  176. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -0
  177. package/dist/services/runtime-kernel/heartbeat.core.js +525 -0
  178. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -0
  179. package/dist/services/runtime-kernel/heartbeat.d.ts +38 -259
  180. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  181. package/dist/services/runtime-kernel/heartbeat.execute.d.ts +5 -0
  182. package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -0
  183. package/dist/services/runtime-kernel/heartbeat.execute.js +1052 -0
  184. package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -0
  185. package/dist/services/runtime-kernel/heartbeat.js +50 -4142
  186. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  187. package/dist/services/runtime-kernel/heartbeat.misc.d.ts +30 -0
  188. package/dist/services/runtime-kernel/heartbeat.misc.d.ts.map +1 -0
  189. package/dist/services/runtime-kernel/heartbeat.misc.js +483 -0
  190. package/dist/services/runtime-kernel/heartbeat.misc.js.map +1 -0
  191. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts +38 -0
  192. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -0
  193. package/dist/services/runtime-kernel/heartbeat.recovery.js +605 -0
  194. package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -0
  195. package/dist/services/runtime-kernel/heartbeat.release.d.ts +6 -0
  196. package/dist/services/runtime-kernel/heartbeat.release.d.ts.map +1 -0
  197. package/dist/services/runtime-kernel/heartbeat.release.js +398 -0
  198. package/dist/services/runtime-kernel/heartbeat.release.js.map +1 -0
  199. package/dist/services/runtime-kernel/heartbeat.sessions.d.ts +229 -0
  200. package/dist/services/runtime-kernel/heartbeat.sessions.d.ts.map +1 -0
  201. package/dist/services/runtime-kernel/heartbeat.sessions.js +708 -0
  202. package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -0
  203. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts +5 -0
  204. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -0
  205. package/dist/services/runtime-kernel/heartbeat.wakeup.js +552 -0
  206. package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -0
  207. package/dist/services/secrets.d.ts +25 -25
  208. package/dist/services/sidebar-badges.js +1 -1
  209. package/dist/services/sidebar-badges.js.map +1 -1
  210. package/dist/services/workspace-runtime.comments.d.ts +6 -0
  211. package/dist/services/workspace-runtime.comments.d.ts.map +1 -0
  212. package/dist/services/workspace-runtime.comments.js +17 -0
  213. package/dist/services/workspace-runtime.comments.js.map +1 -0
  214. package/dist/services/workspace-runtime.d.ts +4 -163
  215. package/dist/services/workspace-runtime.d.ts.map +1 -1
  216. package/dist/services/workspace-runtime.helpers.d.ts +163 -0
  217. package/dist/services/workspace-runtime.helpers.d.ts.map +1 -0
  218. package/dist/services/workspace-runtime.helpers.js +360 -0
  219. package/dist/services/workspace-runtime.helpers.js.map +1 -0
  220. package/dist/services/workspace-runtime.js +4 -1236
  221. package/dist/services/workspace-runtime.js.map +1 -1
  222. package/dist/services/workspace-runtime.lifecycle.d.ts +35 -0
  223. package/dist/services/workspace-runtime.lifecycle.d.ts.map +1 -0
  224. package/dist/services/workspace-runtime.lifecycle.js +266 -0
  225. package/dist/services/workspace-runtime.lifecycle.js.map +1 -0
  226. package/dist/services/workspace-runtime.services.d.ts +140 -0
  227. package/dist/services/workspace-runtime.services.d.ts.map +1 -0
  228. package/dist/services/workspace-runtime.services.js +606 -0
  229. package/dist/services/workspace-runtime.services.js.map +1 -0
  230. package/package.json +21 -15
  231. package/ui-dist/assets/{_basePickBy-DeCw-kw3.js → _basePickBy-N8I9ml5Y.js} +1 -1
  232. package/ui-dist/assets/{_baseUniq-CVepsVZm.js → _baseUniq-BuSlpRSQ.js} +1 -1
  233. package/ui-dist/assets/{arc-QifRrkx2.js → arc-qX-dPyA1.js} +1 -1
  234. package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-CT4me0hw.js → architectureDiagram-2XIMDMQ5-DhjkbXsp.js} +1 -1
  235. package/ui-dist/assets/{blockDiagram-WCTKOSBZ-uD6J91MI.js → blockDiagram-WCTKOSBZ-JS-tTu3J.js} +1 -1
  236. package/ui-dist/assets/{c4Diagram-IC4MRINW-D2GM2pzG.js → c4Diagram-IC4MRINW-4DqwCWIx.js} +1 -1
  237. package/ui-dist/assets/channel-CccCW5_a.js +1 -0
  238. package/ui-dist/assets/{chunk-4BX2VUAB-D8pPrlss.js → chunk-4BX2VUAB-T37SqBpp.js} +1 -1
  239. package/ui-dist/assets/{chunk-55IACEB6-CHF68vwj.js → chunk-55IACEB6-BSj9hdqK.js} +1 -1
  240. package/ui-dist/assets/{chunk-FMBD7UC4-CKmGUf9X.js → chunk-FMBD7UC4-Dkrlh0Wk.js} +1 -1
  241. package/ui-dist/assets/{chunk-JSJVCQXG-CTBCV-7X.js → chunk-JSJVCQXG-C0ZE3QdB.js} +1 -1
  242. package/ui-dist/assets/{chunk-KX2RTZJC-DV5XzGob.js → chunk-KX2RTZJC-DOZQM9gW.js} +1 -1
  243. package/ui-dist/assets/{chunk-NQ4KR5QH-B7diT0e4.js → chunk-NQ4KR5QH-5Yr3U2k8.js} +1 -1
  244. package/ui-dist/assets/{chunk-QZHKN3VN-BphcSb1i.js → chunk-QZHKN3VN-CvKTufwF.js} +1 -1
  245. package/ui-dist/assets/{chunk-WL4C6EOR-Bs_jQBMG.js → chunk-WL4C6EOR-IoEM0jyx.js} +1 -1
  246. package/ui-dist/assets/classDiagram-VBA2DB6C-JKk4tCW2.js +1 -0
  247. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-JKk4tCW2.js +1 -0
  248. package/ui-dist/assets/clone-Onaweg8D.js +1 -0
  249. package/ui-dist/assets/{cose-bilkent-S5V4N54A-BxfO0pV9.js → cose-bilkent-S5V4N54A-CTvr1OFj.js} +1 -1
  250. package/ui-dist/assets/{dagre-KLK3FWXG-BiDkAX-Z.js → dagre-KLK3FWXG-UZ-SNjVK.js} +1 -1
  251. package/ui-dist/assets/{diagram-E7M64L7V-Btz_oxkC.js → diagram-E7M64L7V-D7RAN0Hr.js} +1 -1
  252. package/ui-dist/assets/{diagram-IFDJBPK2-Cdp8lQxJ.js → diagram-IFDJBPK2-B4LViaFR.js} +1 -1
  253. package/ui-dist/assets/{diagram-P4PSJMXO-DuTbeAS1.js → diagram-P4PSJMXO-CY1be7ak.js} +1 -1
  254. package/ui-dist/assets/{erDiagram-INFDFZHY-CzoQlOwo.js → erDiagram-INFDFZHY-Dca0KkvJ.js} +1 -1
  255. package/ui-dist/assets/{flowDiagram-PKNHOUZH-Diz_MWi3.js → flowDiagram-PKNHOUZH-i-qMvfwg.js} +1 -1
  256. package/ui-dist/assets/{ganttDiagram-A5KZAMGK-CWeGI1E-.js → ganttDiagram-A5KZAMGK-Wxq2lhbh.js} +1 -1
  257. package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-C3QhZnAN.js → gitGraphDiagram-K3NZZRJ6-DwzgPlAY.js} +1 -1
  258. package/ui-dist/assets/{graph-KQH4eaLv.js → graph-BAqf89Tz.js} +1 -1
  259. package/ui-dist/assets/{index-CkEEsJ_9.js → index-4eCzaLuY.js} +1 -1
  260. package/ui-dist/assets/{index-DCOA92Vt.js → index-8uu-nKqK.js} +1 -1
  261. package/ui-dist/assets/{index-DtsZnqcf.js → index-B-1NEcI_.js} +1 -1
  262. package/ui-dist/assets/{index-BvGpil9e.js → index-B0b_3Eu5.js} +1 -1
  263. package/ui-dist/assets/{index-BMhxh9sB.js → index-B8v0eZjP.js} +1 -1
  264. package/ui-dist/assets/{index-aKvEm2pJ.js → index-BN7Moj3u.js} +1 -1
  265. package/ui-dist/assets/{index-iJyjaIGd.js → index-BSpxh3cY.js} +1 -1
  266. package/ui-dist/assets/{index-DhRKQjzu.js → index-BY44RIi9.js} +1 -1
  267. package/ui-dist/assets/{index-Z4rTzdcL.js → index-BhyQJhdZ.js} +1 -1
  268. package/ui-dist/assets/{index-DBxBUiZC.js → index-BkPL_iGU.js} +1 -1
  269. package/ui-dist/assets/{index-CsSppW5U.js → index-BsPfoHXS.js} +1 -1
  270. package/ui-dist/assets/{index-B8J1oewY.js → index-BstW7nmv.js} +1 -1
  271. package/ui-dist/assets/{index-CVZYu_kq.js → index-BwB67Zyz.js} +1 -1
  272. package/ui-dist/assets/index-C2peSkmT.css +1 -0
  273. package/ui-dist/assets/{index-Djz3PL1M.js → index-C3ktOsS_.js} +1 -1
  274. package/ui-dist/assets/{index-BMZfWLwr.js → index-CMyABlS-.js} +1 -1
  275. package/ui-dist/assets/{index-Cqdw7Lnc.js → index-CyBJ8ujC.js} +1 -1
  276. package/ui-dist/assets/{index-Ctp_0y5X.js → index-DAxM2W3O.js} +1 -1
  277. package/ui-dist/assets/{index-_jGthZ-1.js → index-DVZXPmhk.js} +1 -1
  278. package/ui-dist/assets/{index-CBLnbZVL.js → index-Dc19uAyw.js} +1 -1
  279. package/ui-dist/assets/index-DzHrwZu1.js +1511 -0
  280. package/ui-dist/assets/{index-ChTjk1gO.js → index-LJuf53Ye.js} +1 -1
  281. package/ui-dist/assets/{index-wXEAD8rI.js → index-Ugw5VWWz.js} +1 -1
  282. package/ui-dist/assets/{index-ciyPUpT9.js → index-YGraEFR7.js} +1 -1
  283. package/ui-dist/assets/{infoDiagram-LFFYTUFH-DbMzKsuw.js → infoDiagram-LFFYTUFH-jLmDtFVR.js} +1 -1
  284. package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-CcKXcf2V.js → ishikawaDiagram-PHBUUO56-6OGMyLT8.js} +1 -1
  285. package/ui-dist/assets/{journeyDiagram-4ABVD52K-BY2GuHyR.js → journeyDiagram-4ABVD52K-yQjl6E0t.js} +1 -1
  286. package/ui-dist/assets/{kanban-definition-K7BYSVSG-BlZWM0Uz.js → kanban-definition-K7BYSVSG-DkdCeQlS.js} +1 -1
  287. package/ui-dist/assets/{layout-qHGAYgRY.js → layout-CqSYvZ_w.js} +1 -1
  288. package/ui-dist/assets/{linear-BigkGXbh.js → linear-B8xGZaoi.js} +1 -1
  289. package/ui-dist/assets/{mermaid.core-DZ099nW4.js → mermaid.core-AKL_cdyk.js} +4 -4
  290. package/ui-dist/assets/{mindmap-definition-YRQLILUH-CElDqDe0.js → mindmap-definition-YRQLILUH-Zr-dXC0x.js} +1 -1
  291. package/ui-dist/assets/{pieDiagram-SKSYHLDU-I2LDYrgm.js → pieDiagram-SKSYHLDU-BvDAU-Nk.js} +1 -1
  292. package/ui-dist/assets/{quadrantDiagram-337W2JSQ-D-U35edU.js → quadrantDiagram-337W2JSQ-Dn9kM62o.js} +1 -1
  293. package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-FAWtaOKe.js → requirementDiagram-Z7DCOOCP-GIsIh7Sd.js} +1 -1
  294. package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-CzFHHNNh.js → sankeyDiagram-WA2Y5GQK-CUCuBkuf.js} +1 -1
  295. package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-Cy-UViPL.js → sequenceDiagram-2WXFIKYE-MDpUY2HM.js} +1 -1
  296. package/ui-dist/assets/{stateDiagram-RAJIS63D-BEdt3CLl.js → stateDiagram-RAJIS63D-BymMpuUU.js} +1 -1
  297. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-Bi2oCU6d.js +1 -0
  298. package/ui-dist/assets/{timeline-definition-YZTLITO2-YD1e-WHS.js → timeline-definition-YZTLITO2-B6ofPhhy.js} +1 -1
  299. package/ui-dist/assets/{treemap-KZPCXAKY-BnqlVkAC.js → treemap-KZPCXAKY-DnLO6w1l.js} +1 -1
  300. package/ui-dist/assets/{vennDiagram-LZ73GAT5-f4WCy3o6.js → vennDiagram-LZ73GAT5-D0MyZIDl.js} +1 -1
  301. package/ui-dist/assets/{xychartDiagram-JWTSCODW-CWA35znA.js → xychartDiagram-JWTSCODW-rADY1iUG.js} +1 -1
  302. package/ui-dist/index.html +2 -2
  303. package/ui-dist/assets/channel-BV7st2TW.js +0 -1
  304. package/ui-dist/assets/classDiagram-VBA2DB6C-Cw_xj5ie.js +0 -1
  305. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-Cw_xj5ie.js +0 -1
  306. package/ui-dist/assets/clone-DGshofUt.js +0 -1
  307. package/ui-dist/assets/index-Ded0dPwB.css +0 -1
  308. package/ui-dist/assets/index-Jhxth516.js +0 -1510
  309. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-cW7aES_v.js +0 -1
@@ -0,0 +1,398 @@
1
+ import { and, asc, eq, sql } from "drizzle-orm";
2
+ import { agents, agentWakeupRequests, heartbeatRuns, issues, } from "@rudderhq/db";
3
+ import { logger } from "../../middleware/logger.js";
4
+ import { publishLiveEvent } from "../live-events.js";
5
+ import { parseObject } from "../../agent-runtimes/utils.js";
6
+ import { buildIssueConvergenceReviewWakeupOptions, buildIssueReviewCloseoutWakeupOptions, } from "../issue-review-wakeup.js";
7
+ import { logActivity } from "../activity-log.js";
8
+ export { prioritizeProjectWorkspaceCandidatesForRun } from "../agent-run-context.js";
9
+ import * as heartbeatCore from "./heartbeat.core.js";
10
+ import * as heartbeatSessions from "./heartbeat.sessions.js";
11
+ const { MAX_LIVE_LOG_CHUNK_BYTES, HEARTBEAT_MAX_CONCURRENT_RUNS_DEFAULT, HEARTBEAT_MAX_CONCURRENT_RUNS_MIN, HEARTBEAT_MAX_CONCURRENT_RUNS_MAX, DEFERRED_WAKE_CONTEXT_KEY, DETACHED_PROCESS_ERROR_CODE, ORPHANED_PROCESS_TERMINATION_GRACE_MS, ORPHANED_PROCESS_KILL_WAIT_MS, ORPHANED_PROCESS_POLL_INTERVAL_MS, startLocksByAgent, MAX_RECOVERY_CHAIN_DEPTH, ISSUE_PASSIVE_FOLLOWUP_REASON, ISSUE_PASSIVE_FOLLOWUP_WAKE_SOURCE, ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON, ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS, ISSUE_REVIEW_CLOSEOUT_REASON, ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON, ISSUE_REVIEW_CLOSEOUT_MAX_ATTEMPTS, ISSUE_PASSIVE_FOLLOWUP_COOLDOWN_MS_BY_ATTEMPT, ISSUE_PASSIVE_FOLLOWUP_TIMER_CONTINUITY_MAX_WINDOW_MS, SESSIONED_LOCAL_ADAPTERS, heartbeatRunListColumns, appendExcerpt, appendTranscriptEntriesFromChunk, normalizeMaxConcurrentRuns, withAgentStartLock, readNonEmptyString, resolveHeartbeatObservabilitySurface, buildHeartbeatObservationName, compactTraceText, buildIssueRunTraceName, buildHeartbeatRuntimeTraceMetadata, buildHeartbeatAdapterInvokePayload, buildRecentDateKeys, buildDateKeysBetween, fallbackSkillLabel, normalizeLoadedSkill, normalizeLoadedSkillForPayload, emptySkillEvidenceCounts, incrementSkillEvidenceCount, strongestSkillEvidence, resolveSkillEvidence, readSkillEvidenceFromPayload, extractSkillSlugFromPath, collectSkillPathsFromText, collectStringValues, normalizeSkillUseFromPath, dedupeSkillUses, collectSkillUsesFromText, readToolCommandInput, isCommandTranscriptTool, isReadTranscriptTool, inferUsedSkillsFromTranscript, normalizeSkillCandidate, addSkillCandidate, readSkillReferenceSlug, collectSkillReferences, inferUsedSkillsFromPrompt, normalizeLedgerBillingType, resolveLedgerBiller, normalizeBilledCostCents, resolveLedgerScopeForRun } = heartbeatCore;
12
+ const { buildExplicitResumeSessionOverride, normalizeUsageTotals, readRawUsageTotals, deriveNormalizedUsageDelta, formatCount, parseSessionCompactionPolicy, resolveRuntimeSessionParamsForWorkspace, parseIssueAssigneeAgentRuntimeOverrides, deriveTaskKey, shouldResetTaskSessionForWake, formatRuntimeWorkspaceWarningLog, describeSessionResetReason, deriveCommentId, enrichWakeContextSnapshot, mergeCoalescedContextSnapshot, issueCommentAuthorKind, issueCommentAuthorLabel, buildDeferredWakePayload, readDeferredWakeContext, readDeferredWakePayload, deriveDeferredWakeTaskKey, hydrateWakeContextSnapshot, firstNonEmptyLine, deriveRecoveryFailureKind, deriveRecoveryFailureSummary, mergeMissingRecoveryContextFields, hydrateRecoveryBaseContextSnapshot, buildRecoveryContextSnapshot, normalizePassiveFollowupContext, normalizeReviewCloseoutContext, passiveFollowupCooldownMs, issueHasReviewer, isAgentEligibleForTimerContinuation, hasCredibleTimerContinuation, buildPassiveFollowupContextSnapshot, runTaskKey, isSameTaskScope, isTrackedLocalChildProcessAdapter, isProcessAlive, waitForProcessExit, terminateOrphanedProcess, truncateDisplayId, normalizeAgentNameKey, defaultSessionCodec, getAgentRuntimeSessionCodec, normalizeSessionParams, resolveNextSessionState } = heartbeatSessions;
13
+ export function createHeartbeatReleaseHandlers(context) {
14
+ const { db, instanceSettings, getCurrentUserRedactionOptions, runLogStore, runContextSvc, issuesSvc, documentsSvc, executionWorkspacesSvc, workspaceOperationsSvc, activeRunExecutions, budgetHooks, budgets, getAgent, getRun, getRuntimeState, getTaskSession, getLatestRunForSession, getOldestRunForSession, resolveNormalizedUsageForSession, evaluateSessionCompaction, resolveSessionBeforeForWakeup, resolveExplicitResumeSessionOverride, upsertTaskSession, clearTaskSessions, ensureRuntimeState, buildHeartbeatObservabilityContext, emitHeartbeatObservationEvent, emitHeartbeatLiveEval, setRunStatus, setWakeupStatus, updateWakeupRequestRecord, insertWakeupRequestRecord, appendRunEvent, nextRunEventSeq, persistRunProcessMetadata, clearDetachedRunWarning, enqueueRecoveryRun, enqueueProcessLossRetry, parseHeartbeatPolicy, markAgentHeartbeatChecked, evaluateTimerPreflight, runHasIssueClosureComment, runHasIssueReviewDecision, issueHasDeferredWake, passiveFollowupAlreadyRecorded, reviewerCloseoutAlreadyRecorded, issueHasConfirmedBlockedReviewerHandoff, evaluatePassiveIssueClosureForLockedIssue, countRunningRunsForAgent, claimQueuedRun, finalizeAgentStatus, reapOrphanedRuns, resumeQueuedRuns, updateRuntimeState, startNextQueuedRunForAgent, executeRun, enqueueWakeup, resumeDeferredWakeupsForAgent, listProjectScopedRunIds, listProjectScopedWakeupIds, cancelPendingWakeupsForBudgetScope, cancelRunInternal, cancelActiveForAgentInternal, cancelBudgetScopeWork, retryRunInternal, buildSkillAnalytics } = context;
15
+ async function releaseIssueExecutionAndPromote(run) {
16
+ const outcome = await db.transaction(async (tx) => {
17
+ await tx.execute(sql `select id from issues where org_id = ${run.orgId} and execution_run_id = ${run.id} for update`);
18
+ const issue = await tx
19
+ .select({
20
+ id: issues.id,
21
+ orgId: issues.orgId,
22
+ identifier: issues.identifier,
23
+ title: issues.title,
24
+ description: issues.description,
25
+ status: issues.status,
26
+ priority: issues.priority,
27
+ projectId: issues.projectId,
28
+ assigneeAgentId: issues.assigneeAgentId,
29
+ reviewerAgentId: issues.reviewerAgentId,
30
+ reviewerUserId: issues.reviewerUserId,
31
+ })
32
+ .from(issues)
33
+ .where(and(eq(issues.orgId, run.orgId), eq(issues.executionRunId, run.id)))
34
+ .then((rows) => rows[0] ?? null);
35
+ if (!issue)
36
+ return { promotedRun: null, passiveClosure: null };
37
+ const now = new Date();
38
+ const passiveClosure = await evaluatePassiveIssueClosureForLockedIssue({
39
+ tx,
40
+ run,
41
+ issue,
42
+ now,
43
+ });
44
+ if (passiveClosure.kind === "queued") {
45
+ return { promotedRun: passiveClosure.run, passiveClosure };
46
+ }
47
+ await tx
48
+ .update(issues)
49
+ .set({
50
+ executionRunId: null,
51
+ executionAgentNameKey: null,
52
+ executionLockedAt: null,
53
+ updatedAt: now,
54
+ })
55
+ .where(eq(issues.id, issue.id));
56
+ while (true) {
57
+ const deferred = await tx
58
+ .select()
59
+ .from(agentWakeupRequests)
60
+ .where(and(eq(agentWakeupRequests.orgId, issue.orgId), eq(agentWakeupRequests.status, "deferred_issue_execution"), sql `${agentWakeupRequests.payload} ->> 'issueId' = ${issue.id}`))
61
+ .orderBy(asc(agentWakeupRequests.requestedAt))
62
+ .limit(1)
63
+ .then((rows) => rows[0] ?? null);
64
+ if (!deferred)
65
+ return { promotedRun: null, passiveClosure };
66
+ const deferredAgent = await tx
67
+ .select()
68
+ .from(agents)
69
+ .where(eq(agents.id, deferred.agentId))
70
+ .then((rows) => rows[0] ?? null);
71
+ if (!deferredAgent ||
72
+ deferredAgent.orgId !== issue.orgId ||
73
+ deferredAgent.status === "paused" ||
74
+ deferredAgent.status === "terminated" ||
75
+ deferredAgent.status === "pending_approval") {
76
+ await tx
77
+ .update(agentWakeupRequests)
78
+ .set({
79
+ status: "failed",
80
+ finishedAt: new Date(),
81
+ error: "Deferred wake could not be promoted: agent is not invokable",
82
+ updatedAt: new Date(),
83
+ })
84
+ .where(eq(agentWakeupRequests.id, deferred.id));
85
+ continue;
86
+ }
87
+ const deferredPayload = parseObject(deferred.payload);
88
+ const deferredContextSeed = parseObject(deferredPayload[DEFERRED_WAKE_CONTEXT_KEY]);
89
+ const promotedContextSeed = { ...deferredContextSeed };
90
+ const promotedReason = readNonEmptyString(deferred.reason) ?? "issue_execution_promoted";
91
+ const promotedSource = readNonEmptyString(deferred.source) ?? "automation";
92
+ const promotedTriggerDetail = readNonEmptyString(deferred.triggerDetail) ?? null;
93
+ const promotedPayload = deferredPayload;
94
+ delete promotedPayload[DEFERRED_WAKE_CONTEXT_KEY];
95
+ const { contextSnapshot: promotedContextSnapshot, taskKey: promotedTaskKey, } = enrichWakeContextSnapshot({
96
+ contextSnapshot: promotedContextSeed,
97
+ reason: promotedReason,
98
+ source: promotedSource,
99
+ triggerDetail: promotedTriggerDetail,
100
+ payload: promotedPayload,
101
+ });
102
+ const sessionBefore = readNonEmptyString(promotedContextSnapshot.resumeSessionDisplayId) ??
103
+ await resolveSessionBeforeForWakeup(deferredAgent, promotedTaskKey);
104
+ const now = new Date();
105
+ const newRun = await tx
106
+ .insert(heartbeatRuns)
107
+ .values({
108
+ orgId: deferredAgent.orgId,
109
+ agentId: deferredAgent.id,
110
+ invocationSource: promotedSource,
111
+ triggerDetail: promotedTriggerDetail,
112
+ status: "queued",
113
+ wakeupRequestId: deferred.id,
114
+ contextSnapshot: promotedContextSnapshot,
115
+ sessionIdBefore: sessionBefore,
116
+ })
117
+ .returning()
118
+ .then((rows) => rows[0]);
119
+ await tx
120
+ .update(agentWakeupRequests)
121
+ .set({
122
+ status: "queued",
123
+ reason: "issue_execution_promoted",
124
+ runId: newRun.id,
125
+ claimedAt: null,
126
+ finishedAt: null,
127
+ error: null,
128
+ updatedAt: now,
129
+ })
130
+ .where(eq(agentWakeupRequests.id, deferred.id));
131
+ await tx
132
+ .update(issues)
133
+ .set({
134
+ executionRunId: newRun.id,
135
+ executionAgentNameKey: normalizeAgentNameKey(deferredAgent.name),
136
+ executionLockedAt: now,
137
+ updatedAt: now,
138
+ })
139
+ .where(eq(issues.id, issue.id));
140
+ return { promotedRun: newRun, passiveClosure };
141
+ }
142
+ });
143
+ const passiveClosure = outcome.passiveClosure;
144
+ if (passiveClosure?.kind === "queued") {
145
+ await appendRunEvent(run, await nextRunEventSeq(run.id), {
146
+ eventType: "issue.passive_followup_queued",
147
+ stream: "system",
148
+ level: "warn",
149
+ message: `Queued passive issue follow-up ${passiveClosure.run.id}`,
150
+ payload: {
151
+ issueId: passiveClosure.issue.id,
152
+ followupRunId: passiveClosure.run.id,
153
+ originRunId: passiveClosure.originRunId,
154
+ previousRunId: passiveClosure.previousRunId,
155
+ attempt: passiveClosure.attempt,
156
+ maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
157
+ reason: ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON,
158
+ requestedAt: passiveClosure.requestedAt.toISOString(),
159
+ },
160
+ });
161
+ await appendRunEvent(passiveClosure.run, await nextRunEventSeq(passiveClosure.run.id), {
162
+ eventType: "issue.passive_followup_queued",
163
+ stream: "system",
164
+ level: "warn",
165
+ message: `Passive follow-up queued because run ${run.id} ended without issue close-out`,
166
+ payload: {
167
+ issueId: passiveClosure.issue.id,
168
+ originRunId: passiveClosure.originRunId,
169
+ previousRunId: passiveClosure.previousRunId,
170
+ attempt: passiveClosure.attempt,
171
+ maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
172
+ reason: ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON,
173
+ requestedAt: passiveClosure.requestedAt.toISOString(),
174
+ },
175
+ });
176
+ await logActivity(db, {
177
+ orgId: passiveClosure.issue.orgId,
178
+ actorType: "system",
179
+ actorId: "issue_closure_governance",
180
+ action: "issue.passive_followup_queued",
181
+ entityType: "issue",
182
+ entityId: passiveClosure.issue.id,
183
+ agentId: run.agentId,
184
+ runId: run.id,
185
+ details: {
186
+ issueId: passiveClosure.issue.id,
187
+ issueTitle: passiveClosure.issue.title,
188
+ followupRunId: passiveClosure.run.id,
189
+ originRunId: passiveClosure.originRunId,
190
+ previousRunId: passiveClosure.previousRunId,
191
+ attempt: passiveClosure.attempt,
192
+ maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
193
+ reason: ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON,
194
+ requestedAt: passiveClosure.requestedAt.toISOString(),
195
+ },
196
+ });
197
+ }
198
+ else if (passiveClosure?.kind === "operator_review") {
199
+ await appendRunEvent(run, await nextRunEventSeq(run.id), {
200
+ eventType: "issue.closure_needs_operator_review",
201
+ stream: "system",
202
+ level: "warn",
203
+ message: "Passive issue follow-up stopped and needs operator review",
204
+ payload: {
205
+ issueId: passiveClosure.issue.id,
206
+ originRunId: passiveClosure.originRunId,
207
+ previousRunId: passiveClosure.previousRunId,
208
+ attempts: passiveClosure.attempts,
209
+ maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
210
+ reason: passiveClosure.reason,
211
+ },
212
+ });
213
+ await logActivity(db, {
214
+ orgId: passiveClosure.issue.orgId,
215
+ actorType: "system",
216
+ actorId: "issue_closure_governance",
217
+ action: "issue.closure_needs_operator_review",
218
+ entityType: "issue",
219
+ entityId: passiveClosure.issue.id,
220
+ agentId: run.agentId,
221
+ runId: run.id,
222
+ details: {
223
+ issueId: passiveClosure.issue.id,
224
+ issueTitle: passiveClosure.issue.title,
225
+ originRunId: passiveClosure.originRunId,
226
+ previousRunId: passiveClosure.previousRunId,
227
+ attempts: passiveClosure.attempts,
228
+ maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
229
+ reason: passiveClosure.reason,
230
+ },
231
+ });
232
+ }
233
+ else if (passiveClosure?.kind === "reviewer_convergence") {
234
+ await appendRunEvent(run, await nextRunEventSeq(run.id), {
235
+ eventType: "issue.convergence_review_requested",
236
+ stream: "system",
237
+ level: "warn",
238
+ message: "Passive issue follow-up stopped and needs reviewer convergence",
239
+ payload: {
240
+ issueId: passiveClosure.issue.id,
241
+ reviewerAgentId: passiveClosure.issue.reviewerAgentId,
242
+ reviewerUserId: passiveClosure.issue.reviewerUserId,
243
+ originRunId: passiveClosure.originRunId,
244
+ previousRunId: passiveClosure.previousRunId,
245
+ attempts: passiveClosure.attempts,
246
+ maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
247
+ reason: passiveClosure.reason,
248
+ },
249
+ });
250
+ await logActivity(db, {
251
+ orgId: passiveClosure.issue.orgId,
252
+ actorType: "system",
253
+ actorId: "issue_closure_governance",
254
+ action: "issue.convergence_review_requested",
255
+ entityType: "issue",
256
+ entityId: passiveClosure.issue.id,
257
+ agentId: run.agentId,
258
+ runId: run.id,
259
+ details: {
260
+ issueId: passiveClosure.issue.id,
261
+ issueTitle: passiveClosure.issue.title,
262
+ reviewerAgentId: passiveClosure.issue.reviewerAgentId,
263
+ reviewerUserId: passiveClosure.issue.reviewerUserId,
264
+ originRunId: passiveClosure.originRunId,
265
+ previousRunId: passiveClosure.previousRunId,
266
+ attempts: passiveClosure.attempts,
267
+ maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
268
+ reason: passiveClosure.reason,
269
+ },
270
+ });
271
+ if (passiveClosure.issue.reviewerAgentId) {
272
+ await enqueueWakeup(passiveClosure.issue.reviewerAgentId, {
273
+ ...buildIssueConvergenceReviewWakeupOptions({
274
+ issue: passiveClosure.issue,
275
+ contextSource: "issue.passive_followup_exhausted",
276
+ originRunId: passiveClosure.originRunId,
277
+ previousRunId: passiveClosure.previousRunId,
278
+ attempts: passiveClosure.attempts,
279
+ maxAttempts: ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS,
280
+ requestedByActorType: "system",
281
+ requestedByActorId: "issue_closure_governance",
282
+ }),
283
+ idempotencyKey: `issue_convergence_review_requested:${passiveClosure.originRunId}`,
284
+ }).catch((err) => {
285
+ logger.warn({ err, issueId: passiveClosure.issue.id }, "failed to wake reviewer after passive issue close-out exhaustion");
286
+ return null;
287
+ });
288
+ }
289
+ }
290
+ else if (passiveClosure?.kind === "reviewer_closeout") {
291
+ await appendRunEvent(run, await nextRunEventSeq(run.id), {
292
+ eventType: "issue.review_closeout_missing",
293
+ stream: "system",
294
+ level: "warn",
295
+ message: "Reviewer run finished without a structured review decision",
296
+ payload: {
297
+ issueId: passiveClosure.issue.id,
298
+ originRunId: passiveClosure.originRunId,
299
+ previousRunId: passiveClosure.previousRunId,
300
+ attempts: passiveClosure.attempts,
301
+ maxAttempts: passiveClosure.maxAttempts,
302
+ reason: passiveClosure.reason,
303
+ },
304
+ });
305
+ await logActivity(db, {
306
+ orgId: passiveClosure.issue.orgId,
307
+ actorType: "system",
308
+ actorId: "issue_review_closeout_governance",
309
+ action: "issue.review_closeout_missing",
310
+ entityType: "issue",
311
+ entityId: passiveClosure.issue.id,
312
+ agentId: run.agentId,
313
+ runId: run.id,
314
+ details: {
315
+ issueId: passiveClosure.issue.id,
316
+ issueTitle: passiveClosure.issue.title,
317
+ reviewerAgentId: passiveClosure.issue.reviewerAgentId,
318
+ originRunId: passiveClosure.originRunId,
319
+ previousRunId: passiveClosure.previousRunId,
320
+ attempts: passiveClosure.attempts,
321
+ maxAttempts: passiveClosure.maxAttempts,
322
+ reason: passiveClosure.reason,
323
+ },
324
+ });
325
+ if (passiveClosure.issue.reviewerAgentId) {
326
+ await enqueueWakeup(passiveClosure.issue.reviewerAgentId, {
327
+ ...buildIssueReviewCloseoutWakeupOptions({
328
+ issue: passiveClosure.issue,
329
+ contextSource: "issue.review_closeout_missing",
330
+ originRunId: passiveClosure.originRunId,
331
+ previousRunId: passiveClosure.previousRunId,
332
+ attempts: passiveClosure.attempts,
333
+ maxAttempts: passiveClosure.maxAttempts,
334
+ requestedByActorType: "system",
335
+ requestedByActorId: "issue_review_closeout_governance",
336
+ }),
337
+ idempotencyKey: `${ISSUE_REVIEW_CLOSEOUT_REASON}:${run.id}`,
338
+ }).catch((err) => {
339
+ logger.warn({ err, issueId: passiveClosure.issue.id }, "failed to wake reviewer after missing review close-out");
340
+ return null;
341
+ });
342
+ }
343
+ }
344
+ else if (passiveClosure?.kind === "reviewer_closeout_operator_review") {
345
+ await appendRunEvent(run, await nextRunEventSeq(run.id), {
346
+ eventType: "issue.review_closure_needs_operator_review",
347
+ stream: "system",
348
+ level: "warn",
349
+ message: "Reviewer close-out attempts stopped and need operator review",
350
+ payload: {
351
+ issueId: passiveClosure.issue.id,
352
+ originRunId: passiveClosure.originRunId,
353
+ previousRunId: passiveClosure.previousRunId,
354
+ attempts: passiveClosure.attempts,
355
+ maxAttempts: passiveClosure.maxAttempts,
356
+ reason: passiveClosure.reason,
357
+ },
358
+ });
359
+ await logActivity(db, {
360
+ orgId: passiveClosure.issue.orgId,
361
+ actorType: "system",
362
+ actorId: "issue_review_closeout_governance",
363
+ action: "issue.review_closure_needs_operator_review",
364
+ entityType: "issue",
365
+ entityId: passiveClosure.issue.id,
366
+ agentId: run.agentId,
367
+ runId: run.id,
368
+ details: {
369
+ issueId: passiveClosure.issue.id,
370
+ issueTitle: passiveClosure.issue.title,
371
+ reviewerAgentId: passiveClosure.issue.reviewerAgentId,
372
+ originRunId: passiveClosure.originRunId,
373
+ previousRunId: passiveClosure.previousRunId,
374
+ attempts: passiveClosure.attempts,
375
+ maxAttempts: passiveClosure.maxAttempts,
376
+ reason: passiveClosure.reason,
377
+ },
378
+ });
379
+ }
380
+ const promotedRun = outcome.promotedRun;
381
+ if (!promotedRun)
382
+ return;
383
+ publishLiveEvent({
384
+ orgId: promotedRun.orgId,
385
+ type: "heartbeat.run.queued",
386
+ payload: {
387
+ runId: promotedRun.id,
388
+ agentId: promotedRun.agentId,
389
+ invocationSource: promotedRun.invocationSource,
390
+ triggerDetail: promotedRun.triggerDetail,
391
+ wakeupRequestId: promotedRun.wakeupRequestId,
392
+ },
393
+ });
394
+ await startNextQueuedRunForAgent(promotedRun.agentId);
395
+ }
396
+ return { releaseIssueExecutionAndPromote };
397
+ }
398
+ //# sourceMappingURL=heartbeat.release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeat.release.js","sourceRoot":"","sources":["../../../src/services/runtime-kernel/heartbeat.release.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,229 @@
1
+ import type { Db } from "@rudderhq/db";
2
+ import type { HeartbeatRecoveryTrigger } from "@rudderhq/shared";
3
+ import { agents, heartbeatRuns, issues } from "@rudderhq/db";
4
+ import type { AgentRuntimeExecutionResult, AgentRuntimeSessionCodec, UsageSummary } from "../../agent-runtimes/index.js";
5
+ import { type ResolvedWorkspaceForRun } from "../agent-run-context.js";
6
+ import { type SessionCompactionPolicy } from "@rudderhq/agent-runtime-utils";
7
+ export { prioritizeProjectWorkspaceCandidatesForRun, type ResolvedWorkspaceForRun } from "../agent-run-context.js";
8
+ import type { ParsedIssueAssigneeAgentRuntimeOverrides, UsageTotals, WakeupOptions } from "./heartbeat.core.js";
9
+ declare const ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON: string, ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON: string;
10
+ export type ResumeSessionRow = {
11
+ sessionParamsJson: Record<string, unknown> | null;
12
+ sessionDisplayId: string | null;
13
+ lastRunId: string | null;
14
+ };
15
+ export declare function buildExplicitResumeSessionOverride(input: {
16
+ resumeFromRunId: string;
17
+ resumeRunSessionIdBefore: string | null;
18
+ resumeRunSessionIdAfter: string | null;
19
+ taskSession: ResumeSessionRow | null;
20
+ sessionCodec: AgentRuntimeSessionCodec;
21
+ }): {
22
+ sessionDisplayId: string | null;
23
+ sessionParams: Record<string, unknown> | null;
24
+ } | null;
25
+ export declare function normalizeUsageTotals(usage: UsageSummary | null | undefined): UsageTotals | null;
26
+ export declare function readRawUsageTotals(usageJson: unknown): UsageTotals | null;
27
+ export declare function deriveNormalizedUsageDelta(current: UsageTotals | null, previous: UsageTotals | null): UsageTotals | null;
28
+ export declare function formatCount(value: number | null | undefined): string;
29
+ export declare function parseSessionCompactionPolicy(agent: typeof agents.$inferSelect): SessionCompactionPolicy;
30
+ export declare function resolveRuntimeSessionParamsForWorkspace(input: {
31
+ orgId: string;
32
+ agent: {
33
+ id: string;
34
+ name?: string | null;
35
+ workspaceKey?: string | null;
36
+ };
37
+ previousSessionParams: Record<string, unknown> | null;
38
+ resolvedWorkspace: ResolvedWorkspaceForRun;
39
+ }): {
40
+ sessionParams: Record<string, unknown> | null;
41
+ warning: string | null;
42
+ };
43
+ export declare function parseIssueAssigneeAgentRuntimeOverrides(raw: unknown): ParsedIssueAssigneeAgentRuntimeOverrides | null;
44
+ export declare function deriveTaskKey(contextSnapshot: Record<string, unknown> | null | undefined, payload: Record<string, unknown> | null | undefined): string | null;
45
+ export declare function shouldResetTaskSessionForWake(contextSnapshot: Record<string, unknown> | null | undefined): boolean;
46
+ export declare function formatRuntimeWorkspaceWarningLog(warning: string): {
47
+ stream: "stdout";
48
+ chunk: string;
49
+ };
50
+ export declare function describeSessionResetReason(contextSnapshot: Record<string, unknown> | null | undefined): "forceFreshSession was requested" | "wake reason is issue_assigned" | null;
51
+ export declare function deriveCommentId(contextSnapshot: Record<string, unknown> | null | undefined, payload: Record<string, unknown> | null | undefined): string | null;
52
+ export declare function enrichWakeContextSnapshot(input: {
53
+ contextSnapshot: Record<string, unknown>;
54
+ reason: string | null;
55
+ source: WakeupOptions["source"];
56
+ triggerDetail: WakeupOptions["triggerDetail"] | null;
57
+ payload: Record<string, unknown> | null;
58
+ }): {
59
+ contextSnapshot: Record<string, unknown>;
60
+ issueIdFromPayload: string | null;
61
+ commentIdFromPayload: string | null;
62
+ taskKey: string | null;
63
+ wakeCommentId: string | null;
64
+ };
65
+ export declare function mergeCoalescedContextSnapshot(existingRaw: unknown, incoming: Record<string, unknown>): Record<string, unknown>;
66
+ export declare function issueCommentAuthorKind(comment: {
67
+ authorAgentId?: string | null;
68
+ authorUserId?: string | null;
69
+ }): "agent" | "user" | "system";
70
+ export declare function issueCommentAuthorLabel(comment: {
71
+ authorAgentId?: string | null;
72
+ authorUserId?: string | null;
73
+ authorAgentName?: string | null;
74
+ authorUserName?: string | null;
75
+ }): string;
76
+ export declare function buildDeferredWakePayload(payload: Record<string, unknown> | null, contextSnapshot: Record<string, unknown>, issueId?: string | null): Record<string, unknown>;
77
+ export declare function readDeferredWakeContext(payloadRaw: unknown): Record<string, unknown>;
78
+ export declare function readDeferredWakePayload(payloadRaw: unknown): Record<string, unknown>;
79
+ export declare function deriveDeferredWakeTaskKey(payloadRaw: unknown): string | null;
80
+ export declare function hydrateWakeContextSnapshot(db: Db, orgId: string, contextSnapshot: Record<string, unknown>): Promise<void>;
81
+ export declare function firstNonEmptyLine(value: unknown): string | null;
82
+ export declare function deriveRecoveryFailureKind(run: typeof heartbeatRuns.$inferSelect): string;
83
+ export declare function deriveRecoveryFailureSummary(run: typeof heartbeatRuns.$inferSelect): string;
84
+ export declare function mergeMissingRecoveryContextFields(target: Record<string, unknown>, source: Record<string, unknown>): void;
85
+ export declare function hydrateRecoveryBaseContextSnapshot(run: typeof heartbeatRuns.$inferSelect, getRunById: (runId: string) => Promise<typeof heartbeatRuns.$inferSelect | null>): Promise<{
86
+ [x: string]: unknown;
87
+ }>;
88
+ export declare function buildRecoveryContextSnapshot(input: {
89
+ baseContextSnapshot: Record<string, unknown>;
90
+ run: typeof heartbeatRuns.$inferSelect;
91
+ recoveryTrigger: HeartbeatRecoveryTrigger;
92
+ wakeReason: string;
93
+ wakeSource: string;
94
+ triggerDetail: NonNullable<WakeupOptions["triggerDetail"]>;
95
+ }): Record<string, unknown>;
96
+ export type PassiveFollowupIssueRow = Pick<typeof issues.$inferSelect, "id" | "orgId" | "identifier" | "title" | "description" | "status" | "priority" | "projectId" | "assigneeAgentId" | "reviewerAgentId" | "reviewerUserId">;
97
+ export type PassiveFollowupContext = {
98
+ originRunId: string;
99
+ previousRunId: string | null;
100
+ attempt: number;
101
+ maxAttempts: number;
102
+ reason: typeof ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON;
103
+ queuedAt: string | null;
104
+ };
105
+ export type ReviewCloseoutContext = {
106
+ originRunId: string;
107
+ previousRunId: string | null;
108
+ attempt: number;
109
+ maxAttempts: number;
110
+ reason: typeof ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON;
111
+ };
112
+ export type PassiveIssueClosureOutcome = {
113
+ kind: "none";
114
+ reason: string;
115
+ } | {
116
+ kind: "queued";
117
+ run: typeof heartbeatRuns.$inferSelect;
118
+ issue: PassiveFollowupIssueRow;
119
+ originRunId: string;
120
+ previousRunId: string;
121
+ attempt: number;
122
+ requestedAt: Date;
123
+ } | {
124
+ kind: "operator_review";
125
+ issue: PassiveFollowupIssueRow;
126
+ originRunId: string;
127
+ previousRunId: string;
128
+ attempts: number;
129
+ reason: typeof ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON;
130
+ } | {
131
+ kind: "reviewer_convergence";
132
+ issue: PassiveFollowupIssueRow;
133
+ originRunId: string;
134
+ previousRunId: string;
135
+ attempts: number;
136
+ reason: typeof ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON;
137
+ } | {
138
+ kind: "reviewer_closeout";
139
+ issue: PassiveFollowupIssueRow;
140
+ originRunId: string;
141
+ previousRunId: string;
142
+ attempts: number;
143
+ maxAttempts: number;
144
+ reason: typeof ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON;
145
+ } | {
146
+ kind: "reviewer_closeout_operator_review";
147
+ issue: PassiveFollowupIssueRow;
148
+ originRunId: string;
149
+ previousRunId: string;
150
+ attempts: number;
151
+ maxAttempts: number;
152
+ reason: typeof ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON;
153
+ };
154
+ export declare function normalizePassiveFollowupContext(raw: unknown): PassiveFollowupContext | null;
155
+ export declare function normalizeReviewCloseoutContext(raw: unknown): ReviewCloseoutContext | null;
156
+ export declare function passiveFollowupCooldownMs(attempt: number): number;
157
+ export declare function issueHasReviewer(issue: Pick<PassiveFollowupIssueRow, "reviewerAgentId" | "reviewerUserId">): boolean;
158
+ export declare function isAgentEligibleForTimerContinuation(agent: typeof agents.$inferSelect): boolean;
159
+ export declare function hasCredibleTimerContinuation(input: {
160
+ agent: typeof agents.$inferSelect;
161
+ policy: {
162
+ enabled: boolean;
163
+ intervalSec: number;
164
+ };
165
+ run: typeof heartbeatRuns.$inferSelect;
166
+ now: Date;
167
+ }): boolean;
168
+ export declare function buildPassiveFollowupContextSnapshot(input: {
169
+ run: typeof heartbeatRuns.$inferSelect;
170
+ issue: PassiveFollowupIssueRow;
171
+ originRunId: string;
172
+ attempt: number;
173
+ now: Date;
174
+ }): {
175
+ reviewGate?: {
176
+ reviewerAgentId: string | null;
177
+ reviewerUserId: string | null;
178
+ closeOutRequirement: string;
179
+ } | undefined;
180
+ issueId: string;
181
+ taskId: string;
182
+ taskKey: string;
183
+ projectId: string | undefined;
184
+ wakeReason: string;
185
+ wakeSource: string;
186
+ wakeTriggerDetail: string;
187
+ issue: {
188
+ id: string;
189
+ title: string;
190
+ description: string | null;
191
+ status: string;
192
+ priority: string;
193
+ };
194
+ passiveFollowup: {
195
+ originRunId: string;
196
+ previousRunId: string;
197
+ attempt: number;
198
+ maxAttempts: number;
199
+ reason: string;
200
+ queuedAt: string;
201
+ };
202
+ };
203
+ export declare function runTaskKey(run: typeof heartbeatRuns.$inferSelect): string | null;
204
+ export declare function isSameTaskScope(left: string | null, right: string | null): boolean;
205
+ export declare function isTrackedLocalChildProcessAdapter(agentRuntimeType: string): boolean;
206
+ export declare function isProcessAlive(pid: number | null | undefined): boolean;
207
+ export declare function waitForProcessExit(pid: number, timeoutMs: number): Promise<boolean>;
208
+ export declare function terminateOrphanedProcess(pid: number): Promise<{
209
+ stillAlive: boolean;
210
+ terminationSignal: NodeJS.Signals | null;
211
+ error: string | null;
212
+ }>;
213
+ export declare function truncateDisplayId(value: string | null | undefined, max?: number): string | null;
214
+ export declare function normalizeAgentNameKey(value: string | null | undefined): string | null;
215
+ export declare const defaultSessionCodec: AgentRuntimeSessionCodec;
216
+ export declare function getAgentRuntimeSessionCodec(agentRuntimeType: string): AgentRuntimeSessionCodec;
217
+ export declare function normalizeSessionParams(params: Record<string, unknown> | null | undefined): Record<string, unknown> | null;
218
+ export declare function resolveNextSessionState(input: {
219
+ codec: AgentRuntimeSessionCodec;
220
+ adapterResult: AgentRuntimeExecutionResult;
221
+ previousParams: Record<string, unknown> | null;
222
+ previousDisplayId: string | null;
223
+ previousLegacySessionId: string | null;
224
+ }): {
225
+ params: Record<string, unknown> | null;
226
+ displayId: string | null;
227
+ legacySessionId: string | null;
228
+ };
229
+ //# sourceMappingURL=heartbeat.sessions.d.ts.map