@rudderhq/server 0.2.5-canary.9 → 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-B5mJzzqZ.js → _basePickBy-N8I9ml5Y.js} +1 -1
  232. package/ui-dist/assets/{_baseUniq-B10Ec09o.js → _baseUniq-BuSlpRSQ.js} +1 -1
  233. package/ui-dist/assets/{arc-Bw7wimOa.js → arc-qX-dPyA1.js} +1 -1
  234. package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-DZr0XEvv.js → architectureDiagram-2XIMDMQ5-DhjkbXsp.js} +1 -1
  235. package/ui-dist/assets/{blockDiagram-WCTKOSBZ-D0jl0LgB.js → blockDiagram-WCTKOSBZ-JS-tTu3J.js} +1 -1
  236. package/ui-dist/assets/{c4Diagram-IC4MRINW-BEFxBnEm.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-Cbul1GoA.js → chunk-4BX2VUAB-T37SqBpp.js} +1 -1
  239. package/ui-dist/assets/{chunk-55IACEB6-DuouC3bT.js → chunk-55IACEB6-BSj9hdqK.js} +1 -1
  240. package/ui-dist/assets/{chunk-FMBD7UC4-bN1jF9xw.js → chunk-FMBD7UC4-Dkrlh0Wk.js} +1 -1
  241. package/ui-dist/assets/{chunk-JSJVCQXG-B0-Ij6ZF.js → chunk-JSJVCQXG-C0ZE3QdB.js} +1 -1
  242. package/ui-dist/assets/{chunk-KX2RTZJC-BjI3IEjI.js → chunk-KX2RTZJC-DOZQM9gW.js} +1 -1
  243. package/ui-dist/assets/{chunk-NQ4KR5QH-MUoGr46n.js → chunk-NQ4KR5QH-5Yr3U2k8.js} +1 -1
  244. package/ui-dist/assets/{chunk-QZHKN3VN-CQoI9Ouy.js → chunk-QZHKN3VN-CvKTufwF.js} +1 -1
  245. package/ui-dist/assets/{chunk-WL4C6EOR-DSJh3iDp.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-BPepglgB.js → cose-bilkent-S5V4N54A-CTvr1OFj.js} +1 -1
  250. package/ui-dist/assets/{dagre-KLK3FWXG-DhnHVZkt.js → dagre-KLK3FWXG-UZ-SNjVK.js} +1 -1
  251. package/ui-dist/assets/{diagram-E7M64L7V-DNvXtoOO.js → diagram-E7M64L7V-D7RAN0Hr.js} +1 -1
  252. package/ui-dist/assets/{diagram-IFDJBPK2-DhGlDTgn.js → diagram-IFDJBPK2-B4LViaFR.js} +1 -1
  253. package/ui-dist/assets/{diagram-P4PSJMXO-BmXEloWS.js → diagram-P4PSJMXO-CY1be7ak.js} +1 -1
  254. package/ui-dist/assets/{erDiagram-INFDFZHY-BTYVzaLM.js → erDiagram-INFDFZHY-Dca0KkvJ.js} +1 -1
  255. package/ui-dist/assets/{flowDiagram-PKNHOUZH-CqMNQUVv.js → flowDiagram-PKNHOUZH-i-qMvfwg.js} +1 -1
  256. package/ui-dist/assets/{ganttDiagram-A5KZAMGK-B2le_64a.js → ganttDiagram-A5KZAMGK-Wxq2lhbh.js} +1 -1
  257. package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-BtxOBq5A.js → gitGraphDiagram-K3NZZRJ6-DwzgPlAY.js} +1 -1
  258. package/ui-dist/assets/{graph-C5E6qFfm.js → graph-BAqf89Tz.js} +1 -1
  259. package/ui-dist/assets/{index-Piq-IPXt.js → index-4eCzaLuY.js} +1 -1
  260. package/ui-dist/assets/{index-DT6UN2ec.js → index-8uu-nKqK.js} +1 -1
  261. package/ui-dist/assets/{index-T5NVZ3nR.js → index-B-1NEcI_.js} +1 -1
  262. package/ui-dist/assets/{index-D-MoarxG.js → index-B0b_3Eu5.js} +1 -1
  263. package/ui-dist/assets/{index-CZiP3FBQ.js → index-B8v0eZjP.js} +1 -1
  264. package/ui-dist/assets/{index-C1Ga66FM.js → index-BN7Moj3u.js} +1 -1
  265. package/ui-dist/assets/{index-xBUfBdQn.js → index-BSpxh3cY.js} +1 -1
  266. package/ui-dist/assets/{index-CQcMWp51.js → index-BY44RIi9.js} +1 -1
  267. package/ui-dist/assets/{index-3a93sZNI.js → index-BhyQJhdZ.js} +1 -1
  268. package/ui-dist/assets/{index-BsVDit5y.js → index-BkPL_iGU.js} +1 -1
  269. package/ui-dist/assets/{index-88lBSTsW.js → index-BsPfoHXS.js} +1 -1
  270. package/ui-dist/assets/{index-CyJtcUF0.js → index-BstW7nmv.js} +1 -1
  271. package/ui-dist/assets/{index-BvZ0Ptfl.js → index-BwB67Zyz.js} +1 -1
  272. package/ui-dist/assets/index-C2peSkmT.css +1 -0
  273. package/ui-dist/assets/{index-vkCrQLeX.js → index-C3ktOsS_.js} +1 -1
  274. package/ui-dist/assets/{index-D2hZpQJT.js → index-CMyABlS-.js} +1 -1
  275. package/ui-dist/assets/{index-C4WCPEY4.js → index-CyBJ8ujC.js} +1 -1
  276. package/ui-dist/assets/{index-Bf7NB_lK.js → index-DAxM2W3O.js} +1 -1
  277. package/ui-dist/assets/{index-Dq7H6-Lm.js → index-DVZXPmhk.js} +1 -1
  278. package/ui-dist/assets/{index-CskDu6A3.js → index-Dc19uAyw.js} +1 -1
  279. package/ui-dist/assets/index-DzHrwZu1.js +1511 -0
  280. package/ui-dist/assets/{index-B20JneLK.js → index-LJuf53Ye.js} +1 -1
  281. package/ui-dist/assets/{index-D6McTDMQ.js → index-Ugw5VWWz.js} +1 -1
  282. package/ui-dist/assets/{index-CcVGS6HJ.js → index-YGraEFR7.js} +1 -1
  283. package/ui-dist/assets/{infoDiagram-LFFYTUFH-BiCCZcIW.js → infoDiagram-LFFYTUFH-jLmDtFVR.js} +1 -1
  284. package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-BiwBemM5.js → ishikawaDiagram-PHBUUO56-6OGMyLT8.js} +1 -1
  285. package/ui-dist/assets/{journeyDiagram-4ABVD52K-D8RGr2xl.js → journeyDiagram-4ABVD52K-yQjl6E0t.js} +1 -1
  286. package/ui-dist/assets/{kanban-definition-K7BYSVSG-C733Fj-E.js → kanban-definition-K7BYSVSG-DkdCeQlS.js} +1 -1
  287. package/ui-dist/assets/{layout-CM4c3NA_.js → layout-CqSYvZ_w.js} +1 -1
  288. package/ui-dist/assets/{linear-DzH21Xsf.js → linear-B8xGZaoi.js} +1 -1
  289. package/ui-dist/assets/{mermaid.core-Z2rpoVP2.js → mermaid.core-AKL_cdyk.js} +4 -4
  290. package/ui-dist/assets/{mindmap-definition-YRQLILUH-DylLLj9w.js → mindmap-definition-YRQLILUH-Zr-dXC0x.js} +1 -1
  291. package/ui-dist/assets/{pieDiagram-SKSYHLDU-617wI_rr.js → pieDiagram-SKSYHLDU-BvDAU-Nk.js} +1 -1
  292. package/ui-dist/assets/{quadrantDiagram-337W2JSQ-lxoCPJIL.js → quadrantDiagram-337W2JSQ-Dn9kM62o.js} +1 -1
  293. package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-C5XydQ9-.js → requirementDiagram-Z7DCOOCP-GIsIh7Sd.js} +1 -1
  294. package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK--grmq-Q8.js → sankeyDiagram-WA2Y5GQK-CUCuBkuf.js} +1 -1
  295. package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-BS2PeYH-.js → sequenceDiagram-2WXFIKYE-MDpUY2HM.js} +1 -1
  296. package/ui-dist/assets/{stateDiagram-RAJIS63D-CeuZtj2z.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-DxHdMpRr.js → timeline-definition-YZTLITO2-B6ofPhhy.js} +1 -1
  299. package/ui-dist/assets/{treemap-KZPCXAKY-Bv1ZlC5h.js → treemap-KZPCXAKY-DnLO6w1l.js} +1 -1
  300. package/ui-dist/assets/{vennDiagram-LZ73GAT5-DvpZSXY2.js → vennDiagram-LZ73GAT5-D0MyZIDl.js} +1 -1
  301. package/ui-dist/assets/{xychartDiagram-JWTSCODW-DttOu1GC.js → xychartDiagram-JWTSCODW-rADY1iUG.js} +1 -1
  302. package/ui-dist/index.html +2 -2
  303. package/ui-dist/assets/channel-DGUh6rEi.js +0 -1
  304. package/ui-dist/assets/classDiagram-VBA2DB6C-1ntk2IOV.js +0 -1
  305. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-1ntk2IOV.js +0 -1
  306. package/ui-dist/assets/clone-BpddY88c.js +0 -1
  307. package/ui-dist/assets/index-C8AD6s7S.js +0 -1510
  308. package/ui-dist/assets/index-Ded0dPwB.css +0 -1
  309. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-DXq0yC5C.js +0 -1
@@ -0,0 +1,605 @@
1
+ import { and, eq, inArray, lte, sql } from "drizzle-orm";
2
+ import { agents, agentWakeupRequests, activityLog, heartbeatRuns, issues, } from "@rudderhq/db";
3
+ import { conflict } from "../../errors.js";
4
+ import { publishLiveEvent } from "../live-events.js";
5
+ import { parseObject, asBoolean, asNumber } from "../../agent-runtimes/utils.js";
6
+ export { prioritizeProjectWorkspaceCandidatesForRun } from "../agent-run-context.js";
7
+ import * as heartbeatCore from "./heartbeat.core.js";
8
+ import * as heartbeatSessions from "./heartbeat.sessions.js";
9
+ 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;
10
+ 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;
11
+ export function createHeartbeatRecoveryHandlers(context) {
12
+ 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, countRunningRunsForAgent, claimQueuedRun, finalizeAgentStatus, reapOrphanedRuns, resumeQueuedRuns, updateRuntimeState, startNextQueuedRunForAgent, executeRun, releaseIssueExecutionAndPromote, enqueueWakeup, resumeDeferredWakeupsForAgent, listProjectScopedRunIds, listProjectScopedWakeupIds, cancelPendingWakeupsForBudgetScope, cancelRunInternal, cancelActiveForAgentInternal, cancelBudgetScopeWork, retryRunInternal, buildSkillAnalytics } = context;
13
+ async function enqueueRecoveryRun(run, agent, opts) {
14
+ /**
15
+ * Recovery runs intentionally clone the prior run's task context and then
16
+ * layer explicit recovery metadata on top. This keeps retries visible and
17
+ * auditable while preserving "continue preferred" semantics for issue work.
18
+ *
19
+ * Reasoning:
20
+ * - Manual retry and automatic process-loss retry must assemble the same
21
+ * recovery contract so prompts/runtime behavior stay aligned.
22
+ * - We backfill missing context from the retry chain to recover from older
23
+ * lossy retry runs without mutating the historical source run rows.
24
+ *
25
+ * Traceability:
26
+ * - doc/developing/RUN-RECOVERY.md
27
+ * - doc/DEVELOPING.md
28
+ */
29
+ const baseContextSnapshot = await hydrateRecoveryBaseContextSnapshot(run, getRun);
30
+ const recoveryContextSnapshot = buildRecoveryContextSnapshot({
31
+ baseContextSnapshot,
32
+ run,
33
+ recoveryTrigger: opts.recoveryTrigger,
34
+ wakeReason: opts.wakeReason,
35
+ wakeSource: `recovery.${opts.recoveryTrigger}`,
36
+ triggerDetail: opts.triggerDetail,
37
+ });
38
+ const issueId = readNonEmptyString(recoveryContextSnapshot.issueId);
39
+ const taskKey = deriveTaskKey(recoveryContextSnapshot, null);
40
+ const sessionBefore = await resolveSessionBeforeForWakeup(agent, taskKey);
41
+ const recovery = recoveryContextSnapshot.recovery;
42
+ const requestPayload = {
43
+ originalRunId: run.id,
44
+ failureKind: recovery.failureKind,
45
+ recoveryTrigger: recovery.recoveryTrigger,
46
+ ...(issueId ? { issueId } : {}),
47
+ };
48
+ const outcome = await db.transaction(async (tx) => {
49
+ let issueRow = null;
50
+ if (issueId) {
51
+ await tx.execute(sql `select id from issues where id = ${issueId} and org_id = ${run.orgId} for update`);
52
+ issueRow = await tx
53
+ .select({
54
+ id: issues.id,
55
+ orgId: issues.orgId,
56
+ executionRunId: issues.executionRunId,
57
+ executionAgentNameKey: issues.executionAgentNameKey,
58
+ })
59
+ .from(issues)
60
+ .where(and(eq(issues.id, issueId), eq(issues.orgId, run.orgId)))
61
+ .then((rows) => rows[0] ?? null);
62
+ }
63
+ if (issueRow?.executionRunId) {
64
+ const activeExecutionRun = await tx
65
+ .select()
66
+ .from(heartbeatRuns)
67
+ .where(eq(heartbeatRuns.id, issueRow.executionRunId))
68
+ .then((rows) => rows[0] ?? null);
69
+ const isActiveExecutionRun = activeExecutionRun &&
70
+ (activeExecutionRun.status === "queued" || activeExecutionRun.status === "running");
71
+ if (!isActiveExecutionRun) {
72
+ await tx
73
+ .update(issues)
74
+ .set({
75
+ executionRunId: null,
76
+ executionAgentNameKey: null,
77
+ executionLockedAt: null,
78
+ updatedAt: opts.now,
79
+ })
80
+ .where(eq(issues.id, issueRow.id));
81
+ issueRow = {
82
+ ...issueRow,
83
+ executionRunId: null,
84
+ executionAgentNameKey: null,
85
+ };
86
+ }
87
+ else if (activeExecutionRun) {
88
+ const activeContext = parseObject(activeExecutionRun.contextSnapshot);
89
+ const activeRecovery = parseObject(activeContext.recovery);
90
+ if (activeExecutionRun.agentId === run.agentId &&
91
+ (activeExecutionRun.retryOfRunId === run.id ||
92
+ readNonEmptyString(activeRecovery.originalRunId) === run.id)) {
93
+ return { kind: "existing", run: activeExecutionRun };
94
+ }
95
+ throw conflict("Issue already has an active execution run", {
96
+ issueId: issueRow.id,
97
+ executionRunId: activeExecutionRun.id,
98
+ });
99
+ }
100
+ }
101
+ const wakeupRequest = await tx
102
+ .insert(agentWakeupRequests)
103
+ .values({
104
+ orgId: run.orgId,
105
+ agentId: run.agentId,
106
+ source: opts.source,
107
+ triggerDetail: opts.triggerDetail,
108
+ reason: opts.wakeReason,
109
+ payload: requestPayload,
110
+ status: "queued",
111
+ requestedByActorType: opts.requestedByActorType ?? null,
112
+ requestedByActorId: opts.requestedByActorId ?? null,
113
+ updatedAt: opts.now,
114
+ })
115
+ .returning()
116
+ .then((rows) => rows[0]);
117
+ const recoveryRun = await tx
118
+ .insert(heartbeatRuns)
119
+ .values({
120
+ orgId: run.orgId,
121
+ agentId: run.agentId,
122
+ invocationSource: opts.source,
123
+ triggerDetail: opts.triggerDetail,
124
+ status: "queued",
125
+ wakeupRequestId: wakeupRequest.id,
126
+ contextSnapshot: recoveryContextSnapshot,
127
+ sessionIdBefore: sessionBefore,
128
+ retryOfRunId: run.id,
129
+ processLossRetryCount: opts.recoveryTrigger === "automatic"
130
+ ? (run.processLossRetryCount ?? 0) + 1
131
+ : (run.processLossRetryCount ?? 0),
132
+ updatedAt: opts.now,
133
+ })
134
+ .returning()
135
+ .then((rows) => rows[0]);
136
+ await tx
137
+ .update(agentWakeupRequests)
138
+ .set({
139
+ runId: recoveryRun.id,
140
+ updatedAt: opts.now,
141
+ })
142
+ .where(eq(agentWakeupRequests.id, wakeupRequest.id));
143
+ if (issueRow) {
144
+ await tx
145
+ .update(issues)
146
+ .set({
147
+ executionRunId: recoveryRun.id,
148
+ executionAgentNameKey: normalizeAgentNameKey(agent.name),
149
+ executionLockedAt: opts.now,
150
+ updatedAt: opts.now,
151
+ })
152
+ .where(eq(issues.id, issueRow.id));
153
+ }
154
+ return { kind: "queued", run: recoveryRun };
155
+ });
156
+ if (outcome.kind === "existing")
157
+ return outcome.run;
158
+ const recoveryRun = outcome.run;
159
+ await appendRunEvent(recoveryRun, await nextRunEventSeq(recoveryRun.id), {
160
+ eventType: "lifecycle",
161
+ stream: "system",
162
+ level: opts.recoveryTrigger === "automatic" ? "warn" : "info",
163
+ message: `Recovery queued from run ${run.id}`,
164
+ payload: {
165
+ originalRunId: run.id,
166
+ failureKind: recovery.failureKind,
167
+ failureSummary: recovery.failureSummary,
168
+ recoveryTrigger: recovery.recoveryTrigger,
169
+ recoveryMode: recovery.recoveryMode,
170
+ },
171
+ });
172
+ publishLiveEvent({
173
+ orgId: recoveryRun.orgId,
174
+ type: "heartbeat.run.queued",
175
+ payload: {
176
+ runId: recoveryRun.id,
177
+ agentId: recoveryRun.agentId,
178
+ invocationSource: recoveryRun.invocationSource,
179
+ triggerDetail: recoveryRun.triggerDetail,
180
+ wakeupRequestId: recoveryRun.wakeupRequestId,
181
+ },
182
+ });
183
+ if (opts.startImmediately !== false) {
184
+ await startNextQueuedRunForAgent(agent.id);
185
+ }
186
+ return recoveryRun;
187
+ }
188
+ async function enqueueProcessLossRetry(run, agent, now) {
189
+ return enqueueRecoveryRun(run, agent, {
190
+ recoveryTrigger: "automatic",
191
+ source: "automation",
192
+ triggerDetail: "system",
193
+ wakeReason: "process_lost_retry",
194
+ requestedByActorType: "system",
195
+ requestedByActorId: null,
196
+ startImmediately: false,
197
+ now,
198
+ });
199
+ }
200
+ function parseHeartbeatPolicy(agent) {
201
+ const runtimeConfig = parseObject(agent.runtimeConfig);
202
+ const heartbeat = parseObject(runtimeConfig.heartbeat);
203
+ return {
204
+ enabled: asBoolean(heartbeat.enabled, true),
205
+ intervalSec: Math.max(0, asNumber(heartbeat.intervalSec, 0)),
206
+ wakeOnDemand: asBoolean(heartbeat.wakeOnDemand ?? heartbeat.wakeOnAssignment ?? heartbeat.wakeOnOnDemand ?? heartbeat.wakeOnAutomation, true),
207
+ preflightEnabled: asBoolean(heartbeat.preflightEnabled ?? heartbeat.timerPreflightEnabled, true),
208
+ maxConcurrentRuns: normalizeMaxConcurrentRuns(heartbeat.maxConcurrentRuns),
209
+ };
210
+ }
211
+ async function markAgentHeartbeatChecked(agent, outcome) {
212
+ const now = new Date();
213
+ const updated = await db
214
+ .update(agents)
215
+ .set({
216
+ lastHeartbeatAt: now,
217
+ updatedAt: now,
218
+ })
219
+ .where(eq(agents.id, agent.id))
220
+ .returning()
221
+ .then((rows) => rows[0] ?? null);
222
+ if (updated) {
223
+ publishLiveEvent({
224
+ orgId: updated.orgId,
225
+ type: "agent.status",
226
+ payload: {
227
+ agentId: updated.id,
228
+ status: updated.status,
229
+ lastHeartbeatAt: updated.lastHeartbeatAt
230
+ ? new Date(updated.lastHeartbeatAt).toISOString()
231
+ : null,
232
+ outcome,
233
+ },
234
+ });
235
+ }
236
+ }
237
+ async function evaluateTimerPreflight(agent) {
238
+ const pendingWakeup = await db
239
+ .select({ id: agentWakeupRequests.id })
240
+ .from(agentWakeupRequests)
241
+ .where(and(eq(agentWakeupRequests.orgId, agent.orgId), eq(agentWakeupRequests.agentId, agent.id), inArray(agentWakeupRequests.status, ["queued", "deferred_issue_execution"]), sql `${agentWakeupRequests.runId} is null`, lte(agentWakeupRequests.requestedAt, new Date())))
242
+ .limit(1)
243
+ .then((rows) => rows[0] ?? null);
244
+ if (pendingWakeup) {
245
+ return { shouldRun: false, skipReason: "heartbeat.preflight.pending_wakeup_request" };
246
+ }
247
+ const assigneeIssue = await db
248
+ .select({ id: issues.id })
249
+ .from(issues)
250
+ .where(and(eq(issues.orgId, agent.orgId), eq(issues.assigneeAgentId, agent.id), inArray(issues.status, ["todo", "in_progress", "blocked"]), sql `${issues.hiddenAt} is null`))
251
+ .limit(1)
252
+ .then((rows) => rows[0] ?? null);
253
+ if (assigneeIssue) {
254
+ return { shouldRun: true, reason: "assignee_issue" };
255
+ }
256
+ const reviewerIssue = await db
257
+ .select({ id: issues.id })
258
+ .from(issues)
259
+ .where(and(eq(issues.orgId, agent.orgId), eq(issues.reviewerAgentId, agent.id), inArray(issues.status, ["in_review", "blocked"]), sql `${issues.hiddenAt} is null`, sql `
260
+ NOT (
261
+ ${issues.status} = 'blocked'
262
+ AND EXISTS (
263
+ SELECT 1
264
+ FROM activity_log confirmed_blocked_review
265
+ WHERE confirmed_blocked_review.org_id = ${agent.orgId}
266
+ AND confirmed_blocked_review.entity_type = 'issue'
267
+ AND confirmed_blocked_review.entity_id = ${issues.id}::text
268
+ AND confirmed_blocked_review.action = 'issue.review_decision_recorded'
269
+ AND confirmed_blocked_review.actor_type = 'agent'
270
+ AND confirmed_blocked_review.actor_id = ${agent.id}::text
271
+ AND confirmed_blocked_review.details ->> 'decision' = 'blocked'
272
+ AND confirmed_blocked_review.created_at >= COALESCE((
273
+ SELECT MAX(material_activity.created_at)
274
+ FROM activity_log material_activity
275
+ WHERE material_activity.org_id = ${agent.orgId}
276
+ AND material_activity.entity_type = 'issue'
277
+ AND material_activity.entity_id = ${issues.id}::text
278
+ AND (
279
+ (
280
+ material_activity.action = 'issue.updated'
281
+ AND jsonb_typeof(material_activity.details) = 'object'
282
+ AND EXISTS (
283
+ SELECT 1
284
+ FROM jsonb_object_keys(material_activity.details) AS detail_key(key)
285
+ WHERE detail_key.key NOT IN (
286
+ 'identifier',
287
+ 'issueIdentifier',
288
+ '_previous',
289
+ 'source',
290
+ 'reopened',
291
+ 'reopenedFrom',
292
+ 'normalizedFromStatus',
293
+ 'normalizedReason'
294
+ )
295
+ )
296
+ )
297
+ OR (
298
+ material_activity.action = 'issue.comment_added'
299
+ AND NOT (
300
+ material_activity.actor_type = 'agent'
301
+ AND material_activity.actor_id = ${agent.id}::text
302
+ )
303
+ )
304
+ )
305
+ ), to_timestamp(0))
306
+ )
307
+ )
308
+ `))
309
+ .limit(1)
310
+ .then((rows) => rows[0] ?? null);
311
+ if (reviewerIssue) {
312
+ return { shouldRun: true, reason: "reviewer_issue" };
313
+ }
314
+ return { shouldRun: false, skipReason: "heartbeat.preflight.no_actionable_work" };
315
+ }
316
+ async function runHasIssueClosureComment(tx, run, issueId) {
317
+ const commentActivity = await tx
318
+ .select({ id: activityLog.id })
319
+ .from(activityLog)
320
+ .where(and(eq(activityLog.orgId, run.orgId), eq(activityLog.action, "issue.comment_added"), eq(activityLog.entityType, "issue"), eq(activityLog.entityId, issueId), eq(activityLog.runId, run.id)))
321
+ .limit(1)
322
+ .then((rows) => rows[0] ?? null);
323
+ return Boolean(commentActivity);
324
+ }
325
+ async function runHasIssueReviewDecision(tx, run, issueId) {
326
+ const decisionActivity = await tx
327
+ .select({ id: activityLog.id })
328
+ .from(activityLog)
329
+ .where(and(eq(activityLog.orgId, run.orgId), eq(activityLog.action, "issue.review_decision_recorded"), eq(activityLog.entityType, "issue"), eq(activityLog.entityId, issueId), eq(activityLog.runId, run.id)))
330
+ .limit(1)
331
+ .then((rows) => rows[0] ?? null);
332
+ return Boolean(decisionActivity);
333
+ }
334
+ async function issueHasDeferredWake(tx, orgId, issueId) {
335
+ const deferred = await tx
336
+ .select({ id: agentWakeupRequests.id })
337
+ .from(agentWakeupRequests)
338
+ .where(and(eq(agentWakeupRequests.orgId, orgId), eq(agentWakeupRequests.status, "deferred_issue_execution"), sql `${agentWakeupRequests.payload} ->> 'issueId' = ${issueId}`))
339
+ .limit(1)
340
+ .then((rows) => rows[0] ?? null);
341
+ return Boolean(deferred);
342
+ }
343
+ async function passiveFollowupAlreadyRecorded(tx, runId) {
344
+ const idempotencyKey = `${ISSUE_PASSIVE_FOLLOWUP_REASON}:${runId}`;
345
+ const existingWake = await tx
346
+ .select({ id: agentWakeupRequests.id })
347
+ .from(agentWakeupRequests)
348
+ .where(eq(agentWakeupRequests.idempotencyKey, idempotencyKey))
349
+ .limit(1)
350
+ .then((rows) => rows[0] ?? null);
351
+ if (existingWake)
352
+ return true;
353
+ const existingReview = await tx
354
+ .select({ id: activityLog.id })
355
+ .from(activityLog)
356
+ .where(and(eq(activityLog.runId, runId), inArray(activityLog.action, [
357
+ "issue.closure_needs_operator_review",
358
+ "issue.convergence_review_requested",
359
+ ])))
360
+ .limit(1)
361
+ .then((rows) => rows[0] ?? null);
362
+ return Boolean(existingReview);
363
+ }
364
+ async function reviewerCloseoutAlreadyRecorded(tx, runId) {
365
+ const existingWake = await tx
366
+ .select({ id: agentWakeupRequests.id })
367
+ .from(agentWakeupRequests)
368
+ .where(eq(agentWakeupRequests.idempotencyKey, `${ISSUE_REVIEW_CLOSEOUT_REASON}:${runId}`))
369
+ .limit(1)
370
+ .then((rows) => rows[0] ?? null);
371
+ if (existingWake)
372
+ return true;
373
+ const existingReview = await tx
374
+ .select({ id: activityLog.id })
375
+ .from(activityLog)
376
+ .where(and(eq(activityLog.runId, runId), eq(activityLog.action, "issue.review_closure_needs_operator_review")))
377
+ .limit(1)
378
+ .then((rows) => rows[0] ?? null);
379
+ return Boolean(existingReview);
380
+ }
381
+ async function issueHasConfirmedBlockedReviewerHandoff(tx, issue, reviewerAgentId) {
382
+ if (issue.status !== "blocked")
383
+ return false;
384
+ const existingHandoff = await tx
385
+ .select({ id: activityLog.id })
386
+ .from(activityLog)
387
+ .where(and(eq(activityLog.orgId, issue.orgId), eq(activityLog.action, "issue.review_decision_recorded"), eq(activityLog.entityType, "issue"), sql `${activityLog.entityId} = ${issue.id}::text`, eq(activityLog.actorType, "agent"), sql `${activityLog.actorId} = ${reviewerAgentId}::text`, sql `${activityLog.details} ->> 'decision' = 'blocked'`, sql `${activityLog.createdAt} >= COALESCE((
388
+ SELECT MAX(material_activity.created_at)
389
+ FROM activity_log material_activity
390
+ WHERE material_activity.org_id = ${issue.orgId}
391
+ AND material_activity.entity_type = 'issue'
392
+ AND material_activity.entity_id = ${issue.id}::text
393
+ AND (
394
+ (
395
+ material_activity.action = 'issue.updated'
396
+ AND jsonb_typeof(material_activity.details) = 'object'
397
+ AND EXISTS (
398
+ SELECT 1
399
+ FROM jsonb_object_keys(material_activity.details) AS detail_key(key)
400
+ WHERE detail_key.key NOT IN (
401
+ 'identifier',
402
+ 'issueIdentifier',
403
+ '_previous',
404
+ 'source',
405
+ 'reopened',
406
+ 'reopenedFrom',
407
+ 'normalizedFromStatus',
408
+ 'normalizedReason'
409
+ )
410
+ )
411
+ )
412
+ OR (
413
+ material_activity.action = 'issue.comment_added'
414
+ AND NOT (
415
+ material_activity.actor_type = 'agent'
416
+ AND material_activity.actor_id = ${reviewerAgentId}::text
417
+ )
418
+ )
419
+ )
420
+ ), to_timestamp(0))`))
421
+ .limit(1)
422
+ .then((rows) => rows[0] ?? null);
423
+ return Boolean(existingHandoff);
424
+ }
425
+ async function evaluatePassiveIssueClosureForLockedIssue(input) {
426
+ const { tx, run, issue, now } = input;
427
+ const context = parseObject(run.contextSnapshot);
428
+ const runIssueId = readNonEmptyString(context.issueId);
429
+ if (!runIssueId || runIssueId !== issue.id)
430
+ return { kind: "none", reason: "run_not_issue_backed" };
431
+ if (run.status !== "succeeded")
432
+ return { kind: "none", reason: "run_not_successful" };
433
+ const reviewerRun = (issue.status === "in_review" || issue.status === "blocked") &&
434
+ issue.reviewerAgentId === run.agentId &&
435
+ (run.invocationSource === "review" ||
436
+ readNonEmptyString(context.role) === "reviewer" ||
437
+ readNonEmptyString(context.wakeSource) === "review");
438
+ if (reviewerRun) {
439
+ if (await runHasIssueReviewDecision(tx, run, issue.id)) {
440
+ return { kind: "none", reason: "review_decision_recorded" };
441
+ }
442
+ if (await issueHasConfirmedBlockedReviewerHandoff(tx, issue, run.agentId)) {
443
+ return { kind: "none", reason: "blocked_reviewer_handoff_confirmed" };
444
+ }
445
+ if (await issueHasDeferredWake(tx, issue.orgId, issue.id)) {
446
+ return { kind: "none", reason: "deferred_issue_wake_exists" };
447
+ }
448
+ if (await reviewerCloseoutAlreadyRecorded(tx, run.id)) {
449
+ return { kind: "none", reason: "reviewer_closeout_already_recorded" };
450
+ }
451
+ const reviewCloseout = normalizeReviewCloseoutContext(context.reviewCloseout);
452
+ const currentAttempt = reviewCloseout?.attempt ?? 0;
453
+ const maxAttempts = reviewCloseout?.maxAttempts ?? ISSUE_REVIEW_CLOSEOUT_MAX_ATTEMPTS;
454
+ const originRunId = reviewCloseout?.originRunId ?? run.id;
455
+ if (currentAttempt >= maxAttempts) {
456
+ return {
457
+ kind: "reviewer_closeout_operator_review",
458
+ issue,
459
+ originRunId,
460
+ previousRunId: run.id,
461
+ attempts: currentAttempt,
462
+ maxAttempts,
463
+ reason: ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON,
464
+ };
465
+ }
466
+ return {
467
+ kind: "reviewer_closeout",
468
+ issue,
469
+ originRunId,
470
+ previousRunId: run.id,
471
+ attempts: currentAttempt + 1,
472
+ maxAttempts,
473
+ reason: ISSUE_REVIEW_CLOSEOUT_FAILURE_REASON,
474
+ };
475
+ }
476
+ if (issue.status !== "todo" && issue.status !== "in_progress") {
477
+ return { kind: "none", reason: "issue_has_closure_status" };
478
+ }
479
+ if (issue.assigneeAgentId !== run.agentId) {
480
+ return { kind: "none", reason: "issue_no_longer_assigned_to_run_agent" };
481
+ }
482
+ if (!issueHasReviewer(issue) && await runHasIssueClosureComment(tx, run, issue.id)) {
483
+ return { kind: "none", reason: "run_authored_issue_comment" };
484
+ }
485
+ if (await issueHasDeferredWake(tx, issue.orgId, issue.id)) {
486
+ return { kind: "none", reason: "deferred_issue_wake_exists" };
487
+ }
488
+ if (await passiveFollowupAlreadyRecorded(tx, run.id)) {
489
+ return { kind: "none", reason: "passive_followup_already_recorded" };
490
+ }
491
+ const agent = await tx
492
+ .select()
493
+ .from(agents)
494
+ .where(eq(agents.id, run.agentId))
495
+ .then((rows) => rows[0] ?? null);
496
+ if (!agent || agent.orgId !== run.orgId) {
497
+ return { kind: "none", reason: "agent_not_found" };
498
+ }
499
+ const policy = parseHeartbeatPolicy(agent);
500
+ if (hasCredibleTimerContinuation({ agent, policy, run, now })) {
501
+ return { kind: "none", reason: "timer_continuity_expected" };
502
+ }
503
+ const passiveContext = normalizePassiveFollowupContext(context.passiveFollowup);
504
+ const currentAttempt = passiveContext?.attempt ?? 0;
505
+ const originRunId = passiveContext?.originRunId ?? run.id;
506
+ if (currentAttempt >= ISSUE_PASSIVE_FOLLOWUP_MAX_ATTEMPTS) {
507
+ if (issueHasReviewer(issue)) {
508
+ return {
509
+ kind: "reviewer_convergence",
510
+ issue,
511
+ originRunId,
512
+ previousRunId: run.id,
513
+ attempts: currentAttempt,
514
+ reason: ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON,
515
+ };
516
+ }
517
+ return {
518
+ kind: "operator_review",
519
+ issue,
520
+ originRunId,
521
+ previousRunId: run.id,
522
+ attempts: currentAttempt,
523
+ reason: ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON,
524
+ };
525
+ }
526
+ const nextAttempt = currentAttempt + 1;
527
+ const requestedAt = new Date(now.getTime() + passiveFollowupCooldownMs(nextAttempt));
528
+ const contextSnapshot = buildPassiveFollowupContextSnapshot({
529
+ run,
530
+ issue,
531
+ originRunId,
532
+ attempt: nextAttempt,
533
+ now,
534
+ });
535
+ const taskKey = deriveTaskKey(contextSnapshot, { issueId: issue.id });
536
+ const sessionBefore = await resolveSessionBeforeForWakeup(agent, taskKey);
537
+ const requestPayload = {
538
+ issueId: issue.id,
539
+ originRunId,
540
+ previousRunId: run.id,
541
+ attempt: nextAttempt,
542
+ reason: ISSUE_PASSIVE_FOLLOWUP_FAILURE_REASON,
543
+ };
544
+ const wakeupRequest = await tx
545
+ .insert(agentWakeupRequests)
546
+ .values({
547
+ orgId: run.orgId,
548
+ agentId: run.agentId,
549
+ source: "automation",
550
+ triggerDetail: "system",
551
+ reason: ISSUE_PASSIVE_FOLLOWUP_REASON,
552
+ payload: requestPayload,
553
+ status: "queued",
554
+ requestedByActorType: "system",
555
+ requestedByActorId: "issue_closure_governance",
556
+ idempotencyKey: `${ISSUE_PASSIVE_FOLLOWUP_REASON}:${run.id}`,
557
+ requestedAt,
558
+ updatedAt: now,
559
+ })
560
+ .returning()
561
+ .then((rows) => rows[0]);
562
+ const followupRun = await tx
563
+ .insert(heartbeatRuns)
564
+ .values({
565
+ orgId: run.orgId,
566
+ agentId: run.agentId,
567
+ invocationSource: "automation",
568
+ triggerDetail: "system",
569
+ status: "queued",
570
+ wakeupRequestId: wakeupRequest.id,
571
+ contextSnapshot,
572
+ sessionIdBefore: sessionBefore,
573
+ updatedAt: now,
574
+ })
575
+ .returning()
576
+ .then((rows) => rows[0]);
577
+ await tx
578
+ .update(agentWakeupRequests)
579
+ .set({
580
+ runId: followupRun.id,
581
+ updatedAt: now,
582
+ })
583
+ .where(eq(agentWakeupRequests.id, wakeupRequest.id));
584
+ await tx
585
+ .update(issues)
586
+ .set({
587
+ executionRunId: followupRun.id,
588
+ executionAgentNameKey: normalizeAgentNameKey(agent.name),
589
+ executionLockedAt: now,
590
+ updatedAt: now,
591
+ })
592
+ .where(eq(issues.id, issue.id));
593
+ return {
594
+ kind: "queued",
595
+ run: followupRun,
596
+ issue,
597
+ originRunId,
598
+ previousRunId: run.id,
599
+ attempt: nextAttempt,
600
+ requestedAt,
601
+ };
602
+ }
603
+ return { enqueueRecoveryRun, enqueueProcessLossRetry, parseHeartbeatPolicy, markAgentHeartbeatChecked, evaluateTimerPreflight, runHasIssueClosureComment, runHasIssueReviewDecision, issueHasDeferredWake, passiveFollowupAlreadyRecorded, reviewerCloseoutAlreadyRecorded, issueHasConfirmedBlockedReviewerHandoff, evaluatePassiveIssueClosureForLockedIssue };
604
+ }
605
+ //# sourceMappingURL=heartbeat.recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeat.recovery.js","sourceRoot":"","sources":["../../../src/services/runtime-kernel/heartbeat.recovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { heartbeatRuns } from "@rudderhq/db";
2
+ export { prioritizeProjectWorkspaceCandidatesForRun, type ResolvedWorkspaceForRun } from "../agent-run-context.js";
3
+ export declare function createHeartbeatReleaseHandlers(context: any): {
4
+ releaseIssueExecutionAndPromote: (run: typeof heartbeatRuns.$inferSelect) => Promise<void>;
5
+ };
6
+ //# sourceMappingURL=heartbeat.release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeat.release.d.ts","sourceRoot":"","sources":["../../../src/services/runtime-kernel/heartbeat.release.ts"],"names":[],"mappings":"AAsBA,OAAO,EAQL,aAAa,EAKd,MAAM,cAAc,CAAC;AAiFtB,OAAO,EAAE,0CAA0C,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAOnH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,GAAG;2CAGL,OAAO,aAAa,CAAC,YAAY;EA2ZtF"}