@rudderhq/server 0.7.2 → 0.7.3

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 (428) hide show
  1. package/dist/agent-runtimes/registry.d.ts.map +1 -1
  2. package/dist/agent-runtimes/registry.js +0 -2
  3. package/dist/agent-runtimes/registry.js.map +1 -1
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +1 -5
  6. package/dist/app.js.map +1 -1
  7. package/dist/bootstrap/create-http-app.d.ts +1 -2
  8. package/dist/bootstrap/create-http-app.d.ts.map +1 -1
  9. package/dist/bootstrap/create-http-app.js +13 -12
  10. package/dist/bootstrap/create-http-app.js.map +1 -1
  11. package/dist/bootstrap/register-api-routes.d.ts +1 -2
  12. package/dist/bootstrap/register-api-routes.d.ts.map +1 -1
  13. package/dist/bootstrap/register-api-routes.js +20 -4
  14. package/dist/bootstrap/register-api-routes.js.map +1 -1
  15. package/dist/middleware/logger.js +2 -2
  16. package/dist/middleware/logger.js.map +1 -1
  17. package/dist/middleware/logger.test.js +26 -10
  18. package/dist/middleware/logger.test.js.map +1 -1
  19. package/dist/routes/agent-issue-creation.d.ts +25 -0
  20. package/dist/routes/agent-issue-creation.d.ts.map +1 -0
  21. package/dist/routes/agent-issue-creation.js +201 -0
  22. package/dist/routes/agent-issue-creation.js.map +1 -0
  23. package/dist/routes/app-builder.d.ts +3 -1
  24. package/dist/routes/app-builder.d.ts.map +1 -1
  25. package/dist/routes/app-builder.js +31 -11
  26. package/dist/routes/app-builder.js.map +1 -1
  27. package/dist/routes/computer.d.ts +30 -0
  28. package/dist/routes/computer.d.ts.map +1 -0
  29. package/dist/routes/computer.js +231 -0
  30. package/dist/routes/computer.js.map +1 -0
  31. package/dist/routes/health.d.ts.map +1 -1
  32. package/dist/routes/health.js +2 -0
  33. package/dist/routes/health.js.map +1 -1
  34. package/dist/routes/instance-settings.d.ts.map +1 -1
  35. package/dist/routes/instance-settings.js +3 -0
  36. package/dist/routes/instance-settings.js.map +1 -1
  37. package/dist/routes/issues.comments-attachments.d.ts.map +1 -1
  38. package/dist/routes/issues.comments-attachments.js +90 -8
  39. package/dist/routes/issues.comments-attachments.js.map +1 -1
  40. package/dist/routes/issues.d.ts.map +1 -1
  41. package/dist/routes/issues.js +12 -1
  42. package/dist/routes/issues.js.map +1 -1
  43. package/dist/routes/issues.mutations.d.ts.map +1 -1
  44. package/dist/routes/issues.mutations.js +85 -33
  45. package/dist/routes/issues.mutations.js.map +1 -1
  46. package/dist/routes/managed-mcp-runtime.d.ts.map +1 -1
  47. package/dist/routes/managed-mcp-runtime.js +109 -7
  48. package/dist/routes/managed-mcp-runtime.js.map +1 -1
  49. package/dist/routes/rudder-plugins.d.ts +4 -0
  50. package/dist/routes/rudder-plugins.d.ts.map +1 -0
  51. package/dist/routes/rudder-plugins.js +213 -0
  52. package/dist/routes/rudder-plugins.js.map +1 -0
  53. package/dist/services/activity-log.d.ts +0 -3
  54. package/dist/services/activity-log.d.ts.map +1 -1
  55. package/dist/services/activity-log.js +0 -33
  56. package/dist/services/activity-log.js.map +1 -1
  57. package/dist/services/activity.d.ts +3 -3
  58. package/dist/services/agent-issue-creation.d.ts +344 -0
  59. package/dist/services/agent-issue-creation.d.ts.map +1 -0
  60. package/dist/services/agent-issue-creation.js +675 -0
  61. package/dist/services/agent-issue-creation.js.map +1 -0
  62. package/dist/services/agent-run-context.d.ts.map +1 -1
  63. package/dist/services/agent-run-context.js +13 -2
  64. package/dist/services/agent-run-context.js.map +1 -1
  65. package/dist/services/app-builder.d.ts.map +1 -1
  66. package/dist/services/app-builder.js +24 -3
  67. package/dist/services/app-builder.js.map +1 -1
  68. package/dist/services/chat-assistant.d.ts.map +1 -1
  69. package/dist/services/chat-assistant.helpers.d.ts +1 -1
  70. package/dist/services/chat-assistant.js +11 -2
  71. package/dist/services/chat-assistant.js.map +1 -1
  72. package/dist/services/chat-generation-protocol.test.js +2 -2
  73. package/dist/services/chat-generation-protocol.test.js.map +1 -1
  74. package/dist/services/chats.d.ts +2 -2
  75. package/dist/services/computer-broker.d.ts +35 -0
  76. package/dist/services/computer-broker.d.ts.map +1 -0
  77. package/dist/services/computer-broker.js +211 -0
  78. package/dist/services/computer-broker.js.map +1 -0
  79. package/dist/services/computer-broker.test.d.ts +2 -0
  80. package/dist/services/computer-broker.test.d.ts.map +1 -0
  81. package/dist/services/computer-broker.test.js +70 -0
  82. package/dist/services/computer-broker.test.js.map +1 -0
  83. package/dist/services/computer-capability.d.ts +13 -0
  84. package/dist/services/computer-capability.d.ts.map +1 -0
  85. package/dist/services/computer-capability.js +11 -0
  86. package/dist/services/computer-capability.js.map +1 -0
  87. package/dist/services/computer-capability.test.d.ts +2 -0
  88. package/dist/services/computer-capability.test.d.ts.map +1 -0
  89. package/dist/services/computer-capability.test.js +27 -0
  90. package/dist/services/computer-capability.test.js.map +1 -0
  91. package/dist/services/finance.d.ts +1 -1
  92. package/dist/services/index.d.ts +2 -0
  93. package/dist/services/index.d.ts.map +1 -1
  94. package/dist/services/index.js +2 -0
  95. package/dist/services/index.js.map +1 -1
  96. package/dist/services/instance-settings.d.ts.map +1 -1
  97. package/dist/services/instance-settings.js +15 -2
  98. package/dist/services/instance-settings.js.map +1 -1
  99. package/dist/services/integrations/agent-integrations.d.ts +1 -1
  100. package/dist/services/issues.d.ts +86 -1
  101. package/dist/services/issues.d.ts.map +1 -1
  102. package/dist/services/issues.helpers.d.ts +4 -0
  103. package/dist/services/issues.helpers.d.ts.map +1 -1
  104. package/dist/services/issues.helpers.js +28 -6
  105. package/dist/services/issues.helpers.js.map +1 -1
  106. package/dist/services/issues.js +207 -127
  107. package/dist/services/issues.js.map +1 -1
  108. package/dist/services/knowledge-portability/organization-portability.files.d.ts +1 -1
  109. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +7 -1
  110. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
  111. package/dist/services/knowledge-portability/organization-skills.catalog.js +10 -0
  112. package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
  113. package/dist/services/knowledge-portability/organization-skills.d.ts +1 -0
  114. package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
  115. package/dist/services/knowledge-portability/organization-skills.js +36 -3
  116. package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
  117. package/dist/services/mcp/managed-bindings.d.ts +3 -1
  118. package/dist/services/mcp/managed-bindings.d.ts.map +1 -1
  119. package/dist/services/mcp/managed-bindings.js +20 -3
  120. package/dist/services/mcp/managed-bindings.js.map +1 -1
  121. package/dist/services/mcp/managed-client.d.ts +15 -0
  122. package/dist/services/mcp/managed-client.d.ts.map +1 -1
  123. package/dist/services/mcp/managed-client.js +23 -1
  124. package/dist/services/mcp/managed-client.js.map +1 -1
  125. package/dist/services/mcp/managed-client.test.js +73 -9
  126. package/dist/services/mcp/managed-client.test.js.map +1 -1
  127. package/dist/services/messenger.d.ts +2 -2
  128. package/dist/services/messenger.d.ts.map +1 -1
  129. package/dist/services/messenger.js +126 -49
  130. package/dist/services/messenger.js.map +1 -1
  131. package/dist/services/product-analytics.d.ts +1 -1
  132. package/dist/services/rudder-plugins.d.ts +107 -0
  133. package/dist/services/rudder-plugins.d.ts.map +1 -0
  134. package/dist/services/rudder-plugins.js +1746 -0
  135. package/dist/services/rudder-plugins.js.map +1 -0
  136. package/dist/services/rudder-plugins.test.d.ts +2 -0
  137. package/dist/services/rudder-plugins.test.d.ts.map +1 -0
  138. package/dist/services/rudder-plugins.test.js +191 -0
  139. package/dist/services/rudder-plugins.test.js.map +1 -0
  140. package/dist/services/runtime-kernel/heartbeat.core.d.ts +1 -0
  141. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
  142. package/dist/services/runtime-kernel/heartbeat.core.js +1 -1
  143. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
  144. package/dist/services/runtime-kernel/heartbeat.d.ts +53 -0
  145. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  146. package/dist/services/runtime-kernel/heartbeat.js +227 -107
  147. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  148. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
  149. package/dist/services/runtime-kernel/heartbeat.recovery.js +23 -2
  150. package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
  151. package/dist/services/runtime-kernel/heartbeat.terminal.d.ts +14 -1
  152. package/dist/services/runtime-kernel/heartbeat.terminal.d.ts.map +1 -1
  153. package/dist/services/runtime-kernel/heartbeat.terminal.js +31 -0
  154. package/dist/services/runtime-kernel/heartbeat.terminal.js.map +1 -1
  155. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -1
  156. package/dist/services/runtime-kernel/heartbeat.wakeup.js +35 -3
  157. package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -1
  158. package/package.json +18 -18
  159. package/resources/bundled-skills/app-builder/SKILL.md +39 -9
  160. package/resources/bundled-skills/app-builder/assets/scaffold/app/globals.css +109 -16
  161. package/resources/bundled-skills/app-builder/assets/scaffold/components/contacts-workspace.tsx +176 -152
  162. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/alert.tsx +12 -0
  163. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/badge.tsx +27 -0
  164. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/button.tsx +9 -7
  165. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/card.tsx +15 -3
  166. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/empty.tsx +18 -0
  167. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/field.tsx +23 -0
  168. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/input.tsx +1 -1
  169. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/label.tsx +1 -1
  170. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/separator.tsx +6 -0
  171. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/skeleton.tsx +6 -0
  172. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/table.tsx +30 -0
  173. package/resources/bundled-skills/app-builder/assets/scaffold/components.json +20 -0
  174. package/resources/bundled-skills/app-builder/assets/scaffold/next-env.d.ts +1 -1
  175. package/resources/bundled-skills/app-builder/assets/scaffold/next.config.ts +19 -0
  176. package/resources/bundled-skills/app-builder/assets/scaffold/package.json +2 -1
  177. package/resources/bundled-skills/app-builder/assets/scaffold/rudder.app.json +1 -1
  178. package/resources/bundled-skills/app-builder/assets/scaffold/rudder.ui.json +13 -0
  179. package/resources/bundled-skills/app-builder/assets/scaffold/scripts/validate-rudder-ui.mjs +50 -0
  180. package/resources/bundled-skills/app-builder/assets/scaffold/tests/e2e/app.spec.ts +35 -1
  181. package/resources/bundled-skills/app-builder/evals/evals.json +2 -1
  182. package/resources/bundled-skills/app-builder/references/design-guidelines.md +19 -2
  183. package/resources/bundled-skills/app-builder/references/rudder-ui-preset.md +73 -0
  184. package/resources/bundled-skills/app-builder/references/scaffold-contract.md +12 -0
  185. package/resources/bundled-skills/app-builder/references/verification.md +6 -0
  186. package/resources/bundled-skills/app-builder/scripts/report-build-status.mjs +83 -0
  187. package/resources/bundled-skills/rudder-docs/SKILL.md +2 -2
  188. package/resources/bundled-skills/rudder-docs/evals/retrieval-authority-evals.json +40 -0
  189. package/resources/bundled-skills/rudder-docs/evals/trigger-evals.json +2 -2
  190. package/resources/bundled-skills/rudder-docs/references/api-reference.md +0 -2
  191. package/resources/bundled-skills/rudder-docs/references/plugin-authoring.md +38 -114
  192. package/resources/bundled-skills/rudder-docs/references/source-map.md +2 -0
  193. package/skills/app-builder/SKILL.md +39 -9
  194. package/skills/app-builder/assets/scaffold/app/globals.css +109 -16
  195. package/skills/app-builder/assets/scaffold/components/contacts-workspace.tsx +176 -152
  196. package/skills/app-builder/assets/scaffold/components/ui/alert.tsx +12 -0
  197. package/skills/app-builder/assets/scaffold/components/ui/badge.tsx +27 -0
  198. package/skills/app-builder/assets/scaffold/components/ui/button.tsx +9 -7
  199. package/skills/app-builder/assets/scaffold/components/ui/card.tsx +15 -3
  200. package/skills/app-builder/assets/scaffold/components/ui/empty.tsx +18 -0
  201. package/skills/app-builder/assets/scaffold/components/ui/field.tsx +23 -0
  202. package/skills/app-builder/assets/scaffold/components/ui/input.tsx +1 -1
  203. package/skills/app-builder/assets/scaffold/components/ui/label.tsx +1 -1
  204. package/skills/app-builder/assets/scaffold/components/ui/separator.tsx +6 -0
  205. package/skills/app-builder/assets/scaffold/components/ui/skeleton.tsx +6 -0
  206. package/skills/app-builder/assets/scaffold/components/ui/table.tsx +30 -0
  207. package/skills/app-builder/assets/scaffold/components.json +20 -0
  208. package/skills/app-builder/assets/scaffold/next-env.d.ts +1 -1
  209. package/skills/app-builder/assets/scaffold/next.config.ts +19 -0
  210. package/skills/app-builder/assets/scaffold/package.json +2 -1
  211. package/skills/app-builder/assets/scaffold/rudder.app.json +1 -1
  212. package/skills/app-builder/assets/scaffold/rudder.ui.json +13 -0
  213. package/skills/app-builder/assets/scaffold/scripts/validate-rudder-ui.mjs +50 -0
  214. package/skills/app-builder/assets/scaffold/tests/e2e/app.spec.ts +35 -1
  215. package/skills/app-builder/evals/evals.json +2 -1
  216. package/skills/app-builder/references/design-guidelines.md +19 -2
  217. package/skills/app-builder/references/rudder-ui-preset.md +73 -0
  218. package/skills/app-builder/references/scaffold-contract.md +12 -0
  219. package/skills/app-builder/references/verification.md +6 -0
  220. package/skills/app-builder/scripts/report-build-status.mjs +83 -0
  221. package/skills/rudder-docs/SKILL.md +2 -2
  222. package/skills/rudder-docs/evals/retrieval-authority-evals.json +40 -0
  223. package/skills/rudder-docs/evals/trigger-evals.json +2 -2
  224. package/skills/rudder-docs/references/api-reference.md +0 -2
  225. package/skills/rudder-docs/references/plugin-authoring.md +38 -114
  226. package/skills/rudder-docs/references/source-map.md +2 -0
  227. package/ui-dist/assets/{LibraryLiveSurface-cHCJmmsl.js → LibraryLiveSurface-CoGcDfo0.js} +1 -1
  228. package/ui-dist/assets/{abnfDiagram-VRR7QNED-BORJvkew.js → abnfDiagram-VRR7QNED-BnPHHNfu.js} +1 -1
  229. package/ui-dist/assets/{arc-DPUzhx87.js → arc-CAvqQQR_.js} +1 -1
  230. package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-Bz_hY8LM.js → architectureDiagram-ZJ3FMSHR-DDa31YAK.js} +1 -1
  231. package/ui-dist/assets/{blockDiagram-677ZJIJ3-Bq1X3YkP.js → blockDiagram-677ZJIJ3-DDXLU9Ej.js} +1 -1
  232. package/ui-dist/assets/{c4Diagram-LMCZKHZV-BawEM9Pc.js → c4Diagram-LMCZKHZV-zEm0rHCp.js} +1 -1
  233. package/ui-dist/assets/channel-M_3GhwHQ.js +1 -0
  234. package/ui-dist/assets/{chunk-2Q5K7J3B-D0D5ZOaA.js → chunk-2Q5K7J3B-y1Rw45sz.js} +1 -1
  235. package/ui-dist/assets/{chunk-32BRIVSS-T90P7lug.js → chunk-32BRIVSS-Cq8cQBba.js} +1 -1
  236. package/ui-dist/assets/{chunk-5VM5RSS4-jcAERTgh.js → chunk-5VM5RSS4-CjQA6jGI.js} +1 -1
  237. package/ui-dist/assets/{chunk-EX3LRPZG-t9-JXwnR.js → chunk-EX3LRPZG-VVYt7jh3.js} +1 -1
  238. package/ui-dist/assets/{chunk-JWPE2WC7-hqgD1saC.js → chunk-JWPE2WC7-BJC3ISop.js} +1 -1
  239. package/ui-dist/assets/{chunk-MOJQB5TN-BsSUoYzd.js → chunk-MOJQB5TN-ClZgTqQk.js} +1 -1
  240. package/ui-dist/assets/{chunk-RYQCIY6F-YcdDh2Zn.js → chunk-RYQCIY6F-DRei3pn2.js} +1 -1
  241. package/ui-dist/assets/{chunk-V7JOEXUC-ChFyH9Su.js → chunk-V7JOEXUC-BGWrQfpZ.js} +1 -1
  242. package/ui-dist/assets/{chunk-VR4S4FIN-BjVK8IyX.js → chunk-VR4S4FIN-BBYT57Lt.js} +1 -1
  243. package/ui-dist/assets/{chunk-XXDRQBXY-D-TvO9vT.js → chunk-XXDRQBXY-D7P4SoZB.js} +1 -1
  244. package/ui-dist/assets/classDiagram-OUVF2IWQ-G44FJFnB.js +1 -0
  245. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-G44FJFnB.js +1 -0
  246. package/ui-dist/assets/{cose-bilkent-JH36ORCC-DBwhASJG.js → cose-bilkent-JH36ORCC-mJXY7GQo.js} +1 -1
  247. package/ui-dist/assets/{cynefin-VYW2F7L2-SlCRmwl2.js → cynefin-VYW2F7L2-C-I_lPmH.js} +1 -1
  248. package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-DImV6N_p.js → cynefinDiagram-TSTJHNR4-Bm1S_w7H.js} +1 -1
  249. package/ui-dist/assets/{dagre-VKFMJZFB-FH4Wv8Zn.js → dagre-VKFMJZFB-BuPIm1AB.js} +1 -1
  250. package/ui-dist/assets/{diagram-FQU43EPY-CrZvQjId.js → diagram-FQU43EPY-DTBCuV0W.js} +1 -1
  251. package/ui-dist/assets/{diagram-G47NLZAW-B7IGl_T3.js → diagram-G47NLZAW-B4CK8uR2.js} +1 -1
  252. package/ui-dist/assets/{diagram-NH7WQ7WH-CB4i7H1a.js → diagram-NH7WQ7WH-BkbS0GkL.js} +1 -1
  253. package/ui-dist/assets/{diagram-OA4YK3LP-DNyWPYY9.js → diagram-OA4YK3LP-C_mkRe0c.js} +1 -1
  254. package/ui-dist/assets/{diagram-WEI45ONY-BAhxbhpi.js → diagram-WEI45ONY-CHUb3TIJ.js} +1 -1
  255. package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-ClXtQ9qt.js → ebnfDiagram-CCIWWBDH-D_lN4ZOY.js} +1 -1
  256. package/ui-dist/assets/{erDiagram-Q63AITRT-DGXiMYfn.js → erDiagram-Q63AITRT-CRnDqcsy.js} +1 -1
  257. package/ui-dist/assets/{flowDiagram-23GEKE2U-CdZ-02zc.js → flowDiagram-23GEKE2U-ChELY-8y.js} +1 -1
  258. package/ui-dist/assets/{ganttDiagram-NO4QXBWP-TxhzNpta.js → ganttDiagram-NO4QXBWP-QIML25-M.js} +1 -1
  259. package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-D6Q_w6wR.js → gitGraphDiagram-IHSO6WYX-TB_AKH8l.js} +1 -1
  260. package/ui-dist/assets/{graph-CxNmbpl9.js → graph-HKPvyYQ1.js} +1 -1
  261. package/ui-dist/assets/{index-C12QC1Ex.js → index-Ar0zIwom.js} +1 -1
  262. package/ui-dist/assets/{index-CW21qWFm.js → index-BeNxgoKd.js} +1 -1
  263. package/ui-dist/assets/{index-BujwWE3j.js → index-CB-UdrKN.js} +1 -1
  264. package/ui-dist/assets/{index-Cx6oIZPm.js → index-CfpFS1Tl.js} +555 -581
  265. package/ui-dist/assets/{index-C_nwI4Yj.js → index-CjIeIR2m.js} +1 -1
  266. package/ui-dist/assets/{index-Rau2cGm0.js → index-DCgbySwf.js} +1 -1
  267. package/ui-dist/assets/{index-Do78GymY.js → index-DDMaBNLI.js} +1 -1
  268. package/ui-dist/assets/{index-DU2LI7f9.js → index-DSZmO4bA.js} +1 -1
  269. package/ui-dist/assets/{index-BA9tMBhO.js → index-DfzFi2fx.js} +1 -1
  270. package/ui-dist/assets/{index-BoTz5S-X.js → index-DmEf_U5I.js} +1 -1
  271. package/ui-dist/assets/{index-kbWUQ1um.js → index-OfGDMJiA.js} +1 -1
  272. package/ui-dist/assets/{index-AkhgKOxC.js → index-ZzX8P4M5.js} +1 -1
  273. package/ui-dist/assets/{index-BQ87dGIq.js → index-fDtlbG8Y.js} +1 -1
  274. package/ui-dist/assets/{index-CXnqg1Oq.js → index-gdvFtffQ.js} +1 -1
  275. package/ui-dist/assets/index-noipz8bE.css +1 -0
  276. package/ui-dist/assets/{index-Bxz75ICF.js → index-rnOTiIXd.js} +1 -1
  277. package/ui-dist/assets/{infoDiagram-FWYZ7A6U-CnJd4-Jq.js → infoDiagram-FWYZ7A6U-DUR3sDTd.js} +1 -1
  278. package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-Bq-qc3pD.js → ishikawaDiagram-FXEZZL3T-CcnYT0s0.js} +1 -1
  279. package/ui-dist/assets/{journeyDiagram-5HDEW3XC-NSmpUGUA.js → journeyDiagram-5HDEW3XC-CqfbG8T1.js} +1 -1
  280. package/ui-dist/assets/{kanban-definition-HUTT4EX6-D7pgWtfA.js → kanban-definition-HUTT4EX6-CYwQM9eR.js} +1 -1
  281. package/ui-dist/assets/{layout-BRuo6LWe.js → layout-B2IlJgLE.js} +1 -1
  282. package/ui-dist/assets/{linear-CkaWI9Nd.js → linear-CcEPcfbO.js} +1 -1
  283. package/ui-dist/assets/{map-CgA6tTpZ.js → map-Bmhfvlpu.js} +1 -1
  284. package/ui-dist/assets/{mermaid.core-DrXOt-P6.js → mermaid.core-T9Q0CuQx.js} +4 -4
  285. package/ui-dist/assets/{mindmap-definition-LN4V7U3C-D9ImeWBe.js → mindmap-definition-LN4V7U3C-CRjQlwN4.js} +1 -1
  286. package/ui-dist/assets/{pegDiagram-2B236MQR-Cq-zZ_zz.js → pegDiagram-2B236MQR-DenccdY8.js} +1 -1
  287. package/ui-dist/assets/{pieDiagram-ENE6RG2P-FgNgy726.js → pieDiagram-ENE6RG2P-CPiTrJcY.js} +1 -1
  288. package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-BxQbmGmi.js → quadrantDiagram-ABIIQ3AL-fKbvGl_-.js} +1 -1
  289. package/ui-dist/assets/{railroadDiagram-RFXS5EU6-CrpbkPH2.js → railroadDiagram-RFXS5EU6-D6uOjEmA.js} +1 -1
  290. package/ui-dist/assets/{requirementDiagram-TGXJPOKE-DQ-65ZW6.js → requirementDiagram-TGXJPOKE-CQIQ387O.js} +1 -1
  291. package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-Bom0lMZm.js → sankeyDiagram-HTMAVEWB-CKrnONJL.js} +1 -1
  292. package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-C1MSDLDj.js → sequenceDiagram-DBY2YBRQ-C3vaOiZO.js} +1 -1
  293. package/ui-dist/assets/{sizeCapture-X5ZJPWSS-Bn1vxebD.js → sizeCapture-X5ZJPWSS-F39EvxY0.js} +1 -1
  294. package/ui-dist/assets/{stateDiagram-2N3HPSRC-GRRQpmzI.js → stateDiagram-2N3HPSRC-Bq2sVFQq.js} +1 -1
  295. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-B94IPtHC.js +1 -0
  296. package/ui-dist/assets/{swimlanes-5IMT3BWC-BcOOCZ4q.js → swimlanes-5IMT3BWC-CSrygB7m.js} +2 -2
  297. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-9WQr2_E9.js +8 -0
  298. package/ui-dist/assets/{timeline-definition-FHXFAJF6-gi6amswh.js → timeline-definition-FHXFAJF6-DSMMlntv.js} +1 -1
  299. package/ui-dist/assets/{vennDiagram-L72KCM5P-B9uqeyQt.js → vennDiagram-L72KCM5P-D5XH96zV.js} +1 -1
  300. package/ui-dist/assets/{wardleyDiagram-EHGQE667-BnqWAMiE.js → wardleyDiagram-EHGQE667-BXX2RFsU.js} +1 -1
  301. package/ui-dist/assets/{xychartDiagram-FW5EYKEG-BJXKltIN.js → xychartDiagram-FW5EYKEG-awBW2lwG.js} +1 -1
  302. package/ui-dist/index.html +2 -2
  303. package/dist/bootstrap/plugin-host-runtime.d.ts +0 -116
  304. package/dist/bootstrap/plugin-host-runtime.d.ts.map +0 -1
  305. package/dist/bootstrap/plugin-host-runtime.js +0 -179
  306. package/dist/bootstrap/plugin-host-runtime.js.map +0 -1
  307. package/dist/bundled-plugins/plugin-linear/README.md +0 -22
  308. package/dist/bundled-plugins/plugin-linear/dist/manifest.js +0 -183
  309. package/dist/bundled-plugins/plugin-linear/dist/manifest.js.map +0 -7
  310. package/dist/bundled-plugins/plugin-linear/dist/ui/index.js +0 -1285
  311. package/dist/bundled-plugins/plugin-linear/dist/ui/index.js.map +0 -7
  312. package/dist/bundled-plugins/plugin-linear/dist/worker.js +0 -10699
  313. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +0 -7
  314. package/dist/bundled-plugins/plugin-linear/package.json +0 -42
  315. package/dist/routes/plugin-ui-static.d.ts +0 -70
  316. package/dist/routes/plugin-ui-static.d.ts.map +0 -1
  317. package/dist/routes/plugin-ui-static.js +0 -375
  318. package/dist/routes/plugin-ui-static.js.map +0 -1
  319. package/dist/routes/plugins.d.ts +0 -120
  320. package/dist/routes/plugins.d.ts.map +0 -1
  321. package/dist/routes/plugins.js +0 -1125
  322. package/dist/routes/plugins.js.map +0 -1
  323. package/dist/routes/plugins.operations-routes.d.ts +0 -28
  324. package/dist/routes/plugins.operations-routes.d.ts.map +0 -1
  325. package/dist/routes/plugins.operations-routes.js +0 -720
  326. package/dist/routes/plugins.operations-routes.js.map +0 -1
  327. package/dist/services/plugin-capability-validator.d.ts +0 -108
  328. package/dist/services/plugin-capability-validator.d.ts.map +0 -1
  329. package/dist/services/plugin-capability-validator.js +0 -268
  330. package/dist/services/plugin-capability-validator.js.map +0 -1
  331. package/dist/services/plugin-config-validator.d.ts +0 -26
  332. package/dist/services/plugin-config-validator.d.ts.map +0 -1
  333. package/dist/services/plugin-config-validator.js +0 -41
  334. package/dist/services/plugin-config-validator.js.map +0 -1
  335. package/dist/services/plugin-dev-watcher.d.ts +0 -47
  336. package/dist/services/plugin-dev-watcher.d.ts.map +0 -1
  337. package/dist/services/plugin-dev-watcher.js +0 -275
  338. package/dist/services/plugin-dev-watcher.js.map +0 -1
  339. package/dist/services/plugin-event-bus.d.ts +0 -149
  340. package/dist/services/plugin-event-bus.d.ts.map +0 -1
  341. package/dist/services/plugin-event-bus.js +0 -258
  342. package/dist/services/plugin-event-bus.js.map +0 -1
  343. package/dist/services/plugin-host-service-cleanup.d.ts +0 -14
  344. package/dist/services/plugin-host-service-cleanup.d.ts.map +0 -1
  345. package/dist/services/plugin-host-service-cleanup.js +0 -37
  346. package/dist/services/plugin-host-service-cleanup.js.map +0 -1
  347. package/dist/services/plugin-host-services.d.ts +0 -13
  348. package/dist/services/plugin-host-services.d.ts.map +0 -1
  349. package/dist/services/plugin-host-services.js +0 -933
  350. package/dist/services/plugin-host-services.js.map +0 -1
  351. package/dist/services/plugin-job-coordinator.d.ts +0 -81
  352. package/dist/services/plugin-job-coordinator.d.ts.map +0 -1
  353. package/dist/services/plugin-job-coordinator.js +0 -172
  354. package/dist/services/plugin-job-coordinator.js.map +0 -1
  355. package/dist/services/plugin-job-scheduler.d.ts +0 -163
  356. package/dist/services/plugin-job-scheduler.d.ts.map +0 -1
  357. package/dist/services/plugin-job-scheduler.js +0 -452
  358. package/dist/services/plugin-job-scheduler.js.map +0 -1
  359. package/dist/services/plugin-job-store.d.ts +0 -208
  360. package/dist/services/plugin-job-store.d.ts.map +0 -1
  361. package/dist/services/plugin-job-store.js +0 -350
  362. package/dist/services/plugin-job-store.js.map +0 -1
  363. package/dist/services/plugin-lifecycle.d.ts +0 -240
  364. package/dist/services/plugin-lifecycle.d.ts.map +0 -1
  365. package/dist/services/plugin-lifecycle.js +0 -439
  366. package/dist/services/plugin-lifecycle.js.map +0 -1
  367. package/dist/services/plugin-loader.core.d.ts +0 -40
  368. package/dist/services/plugin-loader.core.d.ts.map +0 -1
  369. package/dist/services/plugin-loader.core.js +0 -879
  370. package/dist/services/plugin-loader.core.js.map +0 -1
  371. package/dist/services/plugin-loader.d.ts +0 -30
  372. package/dist/services/plugin-loader.d.ts.map +0 -1
  373. package/dist/services/plugin-loader.helpers.d.ts +0 -495
  374. package/dist/services/plugin-loader.helpers.d.ts.map +0 -1
  375. package/dist/services/plugin-loader.helpers.js +0 -238
  376. package/dist/services/plugin-loader.helpers.js.map +0 -1
  377. package/dist/services/plugin-loader.js +0 -30
  378. package/dist/services/plugin-loader.js.map +0 -1
  379. package/dist/services/plugin-loader.worker-paths.d.ts +0 -37
  380. package/dist/services/plugin-loader.worker-paths.d.ts.map +0 -1
  381. package/dist/services/plugin-loader.worker-paths.js +0 -62
  382. package/dist/services/plugin-loader.worker-paths.js.map +0 -1
  383. package/dist/services/plugin-log-retention.d.ts +0 -20
  384. package/dist/services/plugin-log-retention.d.ts.map +0 -1
  385. package/dist/services/plugin-log-retention.js +0 -63
  386. package/dist/services/plugin-log-retention.js.map +0 -1
  387. package/dist/services/plugin-manifest-validator.d.ts +0 -90
  388. package/dist/services/plugin-manifest-validator.d.ts.map +0 -1
  389. package/dist/services/plugin-manifest-validator.js +0 -72
  390. package/dist/services/plugin-manifest-validator.js.map +0 -1
  391. package/dist/services/plugin-registry.d.ts +0 -2542
  392. package/dist/services/plugin-registry.d.ts.map +0 -1
  393. package/dist/services/plugin-registry.js +0 -536
  394. package/dist/services/plugin-registry.js.map +0 -1
  395. package/dist/services/plugin-runtime-sandbox.d.ts +0 -40
  396. package/dist/services/plugin-runtime-sandbox.d.ts.map +0 -1
  397. package/dist/services/plugin-runtime-sandbox.js +0 -154
  398. package/dist/services/plugin-runtime-sandbox.js.map +0 -1
  399. package/dist/services/plugin-secrets-handler.d.ts +0 -81
  400. package/dist/services/plugin-secrets-handler.d.ts.map +0 -1
  401. package/dist/services/plugin-secrets-handler.js +0 -275
  402. package/dist/services/plugin-secrets-handler.js.map +0 -1
  403. package/dist/services/plugin-state-store.d.ts +0 -92
  404. package/dist/services/plugin-state-store.d.ts.map +0 -1
  405. package/dist/services/plugin-state-store.js +0 -190
  406. package/dist/services/plugin-state-store.js.map +0 -1
  407. package/dist/services/plugin-stream-bus.d.ts +0 -29
  408. package/dist/services/plugin-stream-bus.d.ts.map +0 -1
  409. package/dist/services/plugin-stream-bus.js +0 -48
  410. package/dist/services/plugin-stream-bus.js.map +0 -1
  411. package/dist/services/plugin-tool-dispatcher.d.ts +0 -180
  412. package/dist/services/plugin-tool-dispatcher.d.ts.map +0 -1
  413. package/dist/services/plugin-tool-dispatcher.js +0 -224
  414. package/dist/services/plugin-tool-dispatcher.js.map +0 -1
  415. package/dist/services/plugin-tool-registry.d.ts +0 -192
  416. package/dist/services/plugin-tool-registry.d.ts.map +0 -1
  417. package/dist/services/plugin-tool-registry.js +0 -224
  418. package/dist/services/plugin-tool-registry.js.map +0 -1
  419. package/dist/services/plugin-worker-manager.d.ts +0 -260
  420. package/dist/services/plugin-worker-manager.d.ts.map +0 -1
  421. package/dist/services/plugin-worker-manager.js +0 -836
  422. package/dist/services/plugin-worker-manager.js.map +0 -1
  423. package/ui-dist/assets/channel-C08AyYJr.js +0 -1
  424. package/ui-dist/assets/classDiagram-OUVF2IWQ-BIXq6fec.js +0 -1
  425. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-BIXq6fec.js +0 -1
  426. package/ui-dist/assets/index-BmXb0yC1.css +0 -1
  427. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-KvSJhiLM.js +0 -1
  428. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-Cr92NnJ4.js +0 -8
@@ -1,4 +1,4 @@
1
- import { activityLog, agents, approvalComments, approvals, authUsers, chatConversations, heartbeatRuns, issueComments, issueFollows, issues, joinRequests, messengerCustomGroupEntries, messengerCustomGroups, messengerSavedViews, messengerThreadUserStates, projects } from "@rudderhq/db";
1
+ import { activityLog, agentIssueCreationRequests, agents, approvalComments, approvals, authUsers, chatConversations, heartbeatRuns, issueComments, issueFollows, issues, joinRequests, messengerCustomGroupEntries, messengerCustomGroups, messengerSavedViews, messengerThreadUserStates, projects } from "@rudderhq/db";
2
2
  import { formatMessengerPreview, formatMessengerTitle, isUuidLike, issueUpdatedChangedKeys, messengerSavedViewIdSchema } from "@rudderhq/shared";
3
3
  import { and, asc, desc, eq, gt, inArray, isNull, ne, or, sql } from "drizzle-orm";
4
4
  import { badRequest, conflict, notFound } from "../errors.js";
@@ -16,6 +16,7 @@ const ISSUE_ACTIVITY_ACTIONS = [
16
16
  "issue.updated",
17
17
  "issue.followed",
18
18
  "automation.issue_created_notification",
19
+ "agent.issue_created_notification",
19
20
  "issue.approval_linked",
20
21
  "issue.work_product_created",
21
22
  "issue.work_product_updated",
@@ -48,6 +49,15 @@ function maxDate(...values) {
48
49
  return null;
49
50
  return dates.sort((a, b) => b.getTime() - a.getTime())[0] ?? null;
50
51
  }
52
+ function failedRunSummary(run) {
53
+ const summary = failedRunUserSummary(run);
54
+ return run.agentIssueCreationRequestId
55
+ ? `Agent Issue creation failed. ${summary}`
56
+ : summary;
57
+ }
58
+ function failedAgentIssueRequestSummary(request) {
59
+ return `Agent Issue creation failed. ${request.error ?? "Agent run completed without creating an Issue"}`;
60
+ }
51
61
  function compareLatestActivity(a, b) {
52
62
  const aTime = a.latestActivityAt?.getTime() ?? Number.NEGATIVE_INFINITY;
53
63
  const bTime = b.latestActivityAt?.getTime() ?? Number.NEGATIVE_INFINITY;
@@ -228,6 +238,8 @@ function summarizeIssueActivity(activity, issue) {
228
238
  return "Followed";
229
239
  case "automation.issue_created_notification":
230
240
  return "Automation created issue";
241
+ case "agent.issue_created_notification":
242
+ return "Agent created issue";
231
243
  case "issue.approval_linked":
232
244
  return "Approval linked";
233
245
  case "issue.work_product_created":
@@ -525,21 +537,31 @@ function approvalCard(approval, requesterAgent, latestComment, currentUserId, la
525
537
  requesterAgent,
526
538
  };
527
539
  }
528
- function failedRunCard(run, agentName, origin) {
529
- const summary = failedRunUserSummary(run);
540
+ function failedRunCard(run, agentName, origin, orgId, userId) {
541
+ const summary = failedRunSummary(run);
530
542
  const sourceAction = messengerFailedRunSourceAction(origin);
543
+ const agentIssueRequestId = run.agentIssueCreationRequestId;
544
+ const canRetryAgentIssue = Boolean(agentIssueRequestId
545
+ && run.agentIssueCreationRequestedByUserId === userId);
546
+ const retryAction = agentIssueRequestId
547
+ ? canRetryAgentIssue
548
+ ? buildAction("Retry Agent Issue", `/orgs/${orgId}/agent-issue-creation-requests/${agentIssueRequestId}/retry`, "POST")
549
+ : null
550
+ : buildAction("Retry", `/agent-runs/${run.id}/retry`, "POST");
531
551
  return {
532
552
  id: run.id,
533
553
  threadKey: "failed-runs",
534
554
  kind: "failed-runs",
535
- title: agentName ? `${agentName} · Failed run` : "Failed run",
536
- subtitle: run.status.replaceAll("_", " "),
555
+ title: agentIssueRequestId
556
+ ? (agentName ? `${agentName} · Agent Issue creation failed` : "Agent Issue creation failed")
557
+ : (agentName ? `${agentName} · Failed run` : "Failed run"),
558
+ subtitle: agentIssueRequestId ? "Agent Issue request failed" : run.status.replaceAll("_", " "),
537
559
  body: summary,
538
560
  preview: summary,
539
561
  href: `/agents/${run.agentId}/runs/${run.id}`,
540
562
  latestActivityAt: run.updatedAt ?? run.createdAt,
541
563
  actions: [
542
- buildAction("Retry", `/agent-runs/${run.id}/retry`, "POST"),
564
+ ...(retryAction ? [retryAction] : []),
543
565
  ...(sourceAction ? [sourceAction] : []),
544
566
  buildAction("Open run", `/agents/${run.agentId}/runs/${run.id}`, "GET"),
545
567
  ],
@@ -547,10 +569,46 @@ function failedRunCard(run, agentName, origin) {
547
569
  runId: run.id,
548
570
  agentId: run.agentId,
549
571
  status: run.status,
572
+ ...(agentIssueRequestId
573
+ ? {
574
+ agentIssueCreationRequestId: agentIssueRequestId,
575
+ agentIssueCreationRetryable: canRetryAgentIssue,
576
+ agentIssueCreationError: run.agentIssueCreationError,
577
+ }
578
+ : {}),
550
579
  },
551
580
  origin,
552
581
  };
553
582
  }
583
+ function failedAgentIssueRequestCard(request, agentName, orgId) {
584
+ const summary = failedAgentIssueRequestSummary(request);
585
+ return {
586
+ id: request.id,
587
+ threadKey: "failed-runs",
588
+ kind: "failed-runs",
589
+ title: agentName ? `${agentName} · Agent Issue creation failed` : "Agent Issue creation failed",
590
+ subtitle: "Agent Issue request failed",
591
+ body: summary,
592
+ preview: summary,
593
+ href: request.runId ? `/agents/${request.agentId}/runs/${request.runId}` : null,
594
+ latestActivityAt: request.updatedAt ?? request.createdAt,
595
+ actions: [
596
+ buildAction("Retry Agent Issue", `/orgs/${orgId}/agent-issue-creation-requests/${request.id}/retry`, "POST"),
597
+ ...(request.runId
598
+ ? [buildAction("Open run", `/agents/${request.agentId}/runs/${request.runId}`, "GET")]
599
+ : []),
600
+ ],
601
+ metadata: {
602
+ requestId: request.id,
603
+ agentId: request.agentId,
604
+ status: request.status,
605
+ agentIssueCreationRequestId: request.id,
606
+ agentIssueCreationRetryable: true,
607
+ agentIssueCreationError: request.error,
608
+ ...(request.runId ? { runId: request.runId } : {}),
609
+ },
610
+ };
611
+ }
554
612
  function budgetCard(incident) {
555
613
  return {
556
614
  id: incident.id,
@@ -1181,7 +1239,7 @@ export function messengerService(db) {
1181
1239
  and notification_issue.org_id = automation_notification_activity.org_id
1182
1240
  where automation_notification_activity.org_id = ${orgId}
1183
1241
  and automation_notification_activity.entity_type = 'issue'
1184
- and automation_notification_activity.action = 'automation.issue_created_notification'
1242
+ and automation_notification_activity.action in ('automation.issue_created_notification', 'agent.issue_created_notification')
1185
1243
  and automation_notification_activity.details->>'userId' = ${userId}
1186
1244
  and notification_issue.hidden_at is null
1187
1245
  ),
@@ -1285,7 +1343,7 @@ export function messengerService(db) {
1285
1343
  where automation_notification_visibility.org_id = ${orgId}
1286
1344
  and automation_notification_visibility.entity_type = 'issue'
1287
1345
  and automation_notification_visibility.entity_id = issue_row.id::text
1288
- and automation_notification_visibility.action = 'automation.issue_created_notification'
1346
+ and automation_notification_visibility.action in ('automation.issue_created_notification', 'agent.issue_created_notification')
1289
1347
  and automation_notification_visibility.details->>'userId' = ${userId}
1290
1348
  )
1291
1349
  )
@@ -1327,6 +1385,10 @@ export function messengerService(db) {
1327
1385
  and activity_row.entity_id = issue_row.id::text
1328
1386
  and activity_row.action in (${issueActionSqlList})
1329
1387
  and not ${lowSignalContentOnlyActivity}
1388
+ and (
1389
+ activity_row.action not in ('automation.issue_created_notification', 'agent.issue_created_notification')
1390
+ or activity_row.details->>'userId' = ${userId}
1391
+ )
1330
1392
  order by activity_row.created_at desc, activity_row.id desc
1331
1393
  limit 1
1332
1394
  ) latest_activity on true
@@ -1346,6 +1408,10 @@ export function messengerService(db) {
1346
1408
  and external_activity_row.action in (${issueActionSqlList})
1347
1409
  and not ${externalLowSignalContentOnlyActivity}
1348
1410
  and (external_activity_row.actor_type <> 'user' or external_activity_row.actor_id <> ${userId})
1411
+ and (
1412
+ external_activity_row.action not in ('automation.issue_created_notification', 'agent.issue_created_notification')
1413
+ or external_activity_row.details->>'userId' = ${userId}
1414
+ )
1349
1415
  order by external_activity_row.created_at desc, external_activity_row.id desc
1350
1416
  limit 1
1351
1417
  ) latest_external_activity on true
@@ -1818,9 +1884,8 @@ export function messengerService(db) {
1818
1884
  summary: approvalSummary(itemCount, latestItem?.latestActivityAt ?? null, Number(unreadRows[0]?.unreadCount ?? 0), lastReadAt, latestItem?.preview ?? null),
1819
1885
  };
1820
1886
  }
1821
- async function loadFailedRunData(orgId, userId, threadStates) {
1822
- const lastReadAtPromise = lastReadAtForThread(db, orgId, userId, "failed-runs", threadStates);
1823
- const [runRows, agentRows] = await Promise.all([
1887
+ async function loadFailedRunRows(orgId, userId) {
1888
+ const [runRows, requestRows, agentRows] = await Promise.all([
1824
1889
  db
1825
1890
  .select({
1826
1891
  id: heartbeatRuns.id,
@@ -1835,10 +1900,28 @@ export function messengerService(db) {
1835
1900
  contextSnapshot: heartbeatRuns.contextSnapshot,
1836
1901
  createdAt: heartbeatRuns.createdAt,
1837
1902
  updatedAt: heartbeatRuns.updatedAt,
1903
+ agentIssueCreationRequestId: agentIssueCreationRequests.id,
1904
+ agentIssueCreationRequestedByUserId: agentIssueCreationRequests.requestedByUserId,
1905
+ agentIssueCreationError: agentIssueCreationRequests.error,
1838
1906
  })
1839
1907
  .from(heartbeatRuns)
1908
+ .leftJoin(agentIssueCreationRequests, and(eq(agentIssueCreationRequests.orgId, heartbeatRuns.orgId), eq(agentIssueCreationRequests.runId, heartbeatRuns.id)))
1840
1909
  .where(and(eq(heartbeatRuns.orgId, orgId), eq(heartbeatRuns.status, "failed")))
1841
1910
  .orderBy(desc(heartbeatRuns.updatedAt), desc(heartbeatRuns.createdAt)),
1911
+ db
1912
+ .select({
1913
+ id: agentIssueCreationRequests.id,
1914
+ orgId: agentIssueCreationRequests.orgId,
1915
+ agentId: agentIssueCreationRequests.agentId,
1916
+ runId: agentIssueCreationRequests.runId,
1917
+ status: agentIssueCreationRequests.status,
1918
+ error: agentIssueCreationRequests.error,
1919
+ createdAt: agentIssueCreationRequests.createdAt,
1920
+ updatedAt: agentIssueCreationRequests.updatedAt,
1921
+ })
1922
+ .from(agentIssueCreationRequests)
1923
+ .where(and(eq(agentIssueCreationRequests.orgId, orgId), eq(agentIssueCreationRequests.requestedByUserId, userId), inArray(agentIssueCreationRequests.status, ["failed", "cancelled"]), isNull(agentIssueCreationRequests.createdIssueId)))
1924
+ .orderBy(desc(agentIssueCreationRequests.updatedAt), desc(agentIssueCreationRequests.createdAt)),
1842
1925
  db
1843
1926
  .select({
1844
1927
  id: agents.id,
@@ -1847,14 +1930,28 @@ export function messengerService(db) {
1847
1930
  .from(agents)
1848
1931
  .where(eq(agents.orgId, orgId)),
1849
1932
  ]);
1933
+ const linkedRequestIds = new Set(runRows
1934
+ .map((run) => run.agentIssueCreationRequestId)
1935
+ .filter((requestId) => Boolean(requestId)));
1936
+ return {
1937
+ runRows,
1938
+ requestRows: requestRows.filter((request) => !linkedRequestIds.has(request.id)),
1939
+ agentRows,
1940
+ };
1941
+ }
1942
+ async function loadFailedRunData(orgId, userId, threadStates) {
1943
+ const lastReadAtPromise = lastReadAtForThread(db, orgId, userId, "failed-runs", threadStates);
1944
+ const { runRows, requestRows, agentRows } = await loadFailedRunRows(orgId, userId);
1850
1945
  const lastReadAt = await lastReadAtPromise;
1851
1946
  const agentNames = new Map(agentRows.map((row) => [row.id, row.name]));
1852
1947
  const origins = await hydrateMessengerFailedRunOrigins(db, orgId, runRows);
1853
- const items = runRows.map((run) => failedRunCard(run, agentNames.get(run.agentId) ?? null, origins.get(run.id)));
1948
+ const runItems = runRows.map((run) => failedRunCard(run, agentNames.get(run.agentId) ?? null, origins.get(run.id), orgId, userId));
1949
+ const requestItems = requestRows.map((request) => failedAgentIssueRequestCard(request, agentNames.get(request.agentId) ?? null, orgId));
1950
+ const items = [...runItems, ...requestItems];
1854
1951
  const latestFirstItems = [...items].sort(compareLatestActivity);
1855
1952
  const chronologicalItems = [...items].sort(compareChronologicalActivity);
1856
1953
  const latestActivityAt = latestFirstItems[0]?.latestActivityAt ?? null;
1857
- const unreadCount = systemUnreadCountSince(runRows, lastReadAt);
1954
+ const unreadCount = systemUnreadCountSince([...runRows, ...requestRows], lastReadAt);
1858
1955
  return {
1859
1956
  summary: systemSummary("failed-runs", "Failed runs", runRows.length, latestActivityAt, unreadCount, lastReadAt, "No failed runs yet", latestFirstItems[0]?.preview ?? null),
1860
1957
  detail: {
@@ -1876,43 +1973,23 @@ export function messengerService(db) {
1876
1973
  }
1877
1974
  async function loadFailedRunSummaryData(orgId, userId, threadStates) {
1878
1975
  const lastReadAt = await lastReadAtForThread(db, orgId, userId, "failed-runs", threadStates);
1879
- const latestActivitySql = sql `max(coalesce(${heartbeatRuns.updatedAt}, ${heartbeatRuns.createdAt}))`;
1880
- const failedRunPredicate = and(eq(heartbeatRuns.orgId, orgId), eq(heartbeatRuns.status, "failed"));
1881
- const [summaryRows, latestRows, unreadRows] = await Promise.all([
1882
- db
1883
- .select({
1884
- itemCount: sql `count(*)::int`,
1885
- latestActivityAt: latestActivitySql,
1886
- })
1887
- .from(heartbeatRuns)
1888
- .where(failedRunPredicate),
1889
- db
1890
- .select({
1891
- error: heartbeatRuns.error,
1892
- errorCode: heartbeatRuns.errorCode,
1893
- resultJson: heartbeatRuns.resultJson,
1894
- stderrExcerpt: heartbeatRuns.stderrExcerpt,
1895
- })
1896
- .from(heartbeatRuns)
1897
- .where(failedRunPredicate)
1898
- .orderBy(desc(heartbeatRuns.updatedAt), desc(heartbeatRuns.createdAt))
1899
- .limit(1),
1900
- lastReadAt
1901
- ? db
1902
- .select({
1903
- unreadCount: sql `count(*)::int`,
1904
- })
1905
- .from(heartbeatRuns)
1906
- .where(and(failedRunPredicate, gt(heartbeatRuns.updatedAt, lastReadAt)))
1907
- : Promise.resolve([]),
1908
- ]);
1909
- const summaryRow = summaryRows[0];
1910
- const latestRun = latestRows[0] ?? null;
1911
- const itemCount = Number(summaryRow?.itemCount ?? 0);
1912
- const unreadCount = lastReadAt ? Number(unreadRows[0]?.unreadCount ?? 0) : itemCount;
1976
+ const { runRows, requestRows } = await loadFailedRunRows(orgId, userId);
1977
+ const failureRows = [...runRows, ...requestRows];
1978
+ const itemCount = failureRows.length;
1979
+ const latestRow = [...failureRows].sort((a, b) => {
1980
+ const aTime = normalizeDate(a.updatedAt ?? a.createdAt)?.getTime() ?? Number.NEGATIVE_INFINITY;
1981
+ const bTime = normalizeDate(b.updatedAt ?? b.createdAt)?.getTime() ?? Number.NEGATIVE_INFINITY;
1982
+ return bTime - aTime;
1983
+ })[0] ?? null;
1984
+ const unreadCount = systemUnreadCountSince(failureRows, lastReadAt);
1985
+ const latestPreview = latestRow
1986
+ ? "agentIssueCreationRequestId" in latestRow
1987
+ ? failedRunSummary(latestRow)
1988
+ : failedAgentIssueRequestSummary(latestRow)
1989
+ : null;
1913
1990
  return {
1914
1991
  itemCount,
1915
- summary: systemSummary("failed-runs", "Failed runs", itemCount, normalizeDate(summaryRow?.latestActivityAt ?? null), unreadCount, lastReadAt, "No failed runs yet", latestRun ? failedRunUserSummary(latestRun) : null),
1992
+ summary: systemSummary("failed-runs", "Failed runs", itemCount, normalizeDate(latestRow?.updatedAt ?? latestRow?.createdAt ?? null), unreadCount, lastReadAt, "No failed runs yet", latestPreview),
1916
1993
  };
1917
1994
  }
1918
1995
  async function loadBudgetAlertData(orgId, userId, threadStates) {
@@ -2238,7 +2315,7 @@ export function messengerService(db) {
2238
2315
  where automation_notification_activity.org_id = ${orgId}
2239
2316
  and automation_notification_activity.entity_type = 'issue'
2240
2317
  and automation_notification_activity.entity_id = ${issues.id}::text
2241
- and automation_notification_activity.action = 'automation.issue_created_notification'
2318
+ and automation_notification_activity.action in ('automation.issue_created_notification', 'agent.issue_created_notification')
2242
2319
  and automation_notification_activity.details->>'userId' = ${userId}
2243
2320
  )`)))
2244
2321
  .limit(1);