@rudderhq/server 0.7.2 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/dist/agent-runtimes/registry.d.ts.map +1 -1
  2. package/dist/agent-runtimes/registry.js +0 -2
  3. package/dist/agent-runtimes/registry.js.map +1 -1
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +1 -5
  6. package/dist/app.js.map +1 -1
  7. package/dist/bootstrap/create-http-app.d.ts +1 -2
  8. package/dist/bootstrap/create-http-app.d.ts.map +1 -1
  9. package/dist/bootstrap/create-http-app.js +13 -12
  10. package/dist/bootstrap/create-http-app.js.map +1 -1
  11. package/dist/bootstrap/register-api-routes.d.ts +1 -2
  12. package/dist/bootstrap/register-api-routes.d.ts.map +1 -1
  13. package/dist/bootstrap/register-api-routes.js +22 -4
  14. package/dist/bootstrap/register-api-routes.js.map +1 -1
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/middleware/logger.js +2 -2
  18. package/dist/middleware/logger.js.map +1 -1
  19. package/dist/middleware/logger.test.js +26 -10
  20. package/dist/middleware/logger.test.js.map +1 -1
  21. package/dist/redaction.d.ts +4 -0
  22. package/dist/redaction.d.ts.map +1 -1
  23. package/dist/redaction.js +15 -0
  24. package/dist/redaction.js.map +1 -1
  25. package/dist/routes/agent-issue-creation.d.ts +25 -0
  26. package/dist/routes/agent-issue-creation.d.ts.map +1 -0
  27. package/dist/routes/agent-issue-creation.js +201 -0
  28. package/dist/routes/agent-issue-creation.js.map +1 -0
  29. package/dist/routes/app-builder.d.ts +3 -1
  30. package/dist/routes/app-builder.d.ts.map +1 -1
  31. package/dist/routes/app-builder.js +30 -22
  32. package/dist/routes/app-builder.js.map +1 -1
  33. package/dist/routes/approvals.d.ts.map +1 -1
  34. package/dist/routes/approvals.js +36 -9
  35. package/dist/routes/approvals.js.map +1 -1
  36. package/dist/routes/chats.d.ts.map +1 -1
  37. package/dist/routes/chats.js +23 -4
  38. package/dist/routes/chats.js.map +1 -1
  39. package/dist/routes/chats.preflight.d.ts +2 -1
  40. package/dist/routes/chats.preflight.d.ts.map +1 -1
  41. package/dist/routes/chats.preflight.js +7 -0
  42. package/dist/routes/chats.preflight.js.map +1 -1
  43. package/dist/routes/chats.stream-routes.d.ts.map +1 -1
  44. package/dist/routes/chats.stream-routes.js +14 -3
  45. package/dist/routes/chats.stream-routes.js.map +1 -1
  46. package/dist/routes/chats.stream-support.d.ts.map +1 -1
  47. package/dist/routes/chats.stream-support.js +8 -0
  48. package/dist/routes/chats.stream-support.js.map +1 -1
  49. package/dist/routes/computer.d.ts +30 -0
  50. package/dist/routes/computer.d.ts.map +1 -0
  51. package/dist/routes/computer.js +231 -0
  52. package/dist/routes/computer.js.map +1 -0
  53. package/dist/routes/goals.d.ts.map +1 -1
  54. package/dist/routes/goals.js +176 -27
  55. package/dist/routes/goals.js.map +1 -1
  56. package/dist/routes/health.d.ts.map +1 -1
  57. package/dist/routes/health.js +2 -0
  58. package/dist/routes/health.js.map +1 -1
  59. package/dist/routes/index.d.ts +1 -0
  60. package/dist/routes/index.d.ts.map +1 -1
  61. package/dist/routes/index.js +1 -0
  62. package/dist/routes/index.js.map +1 -1
  63. package/dist/routes/instance-settings.d.ts.map +1 -1
  64. package/dist/routes/instance-settings.js +3 -0
  65. package/dist/routes/instance-settings.js.map +1 -1
  66. package/dist/routes/issues.comments-attachments.d.ts.map +1 -1
  67. package/dist/routes/issues.comments-attachments.js +90 -8
  68. package/dist/routes/issues.comments-attachments.js.map +1 -1
  69. package/dist/routes/issues.d.ts.map +1 -1
  70. package/dist/routes/issues.js +14 -2
  71. package/dist/routes/issues.js.map +1 -1
  72. package/dist/routes/issues.mutations.d.ts.map +1 -1
  73. package/dist/routes/issues.mutations.js +206 -52
  74. package/dist/routes/issues.mutations.js.map +1 -1
  75. package/dist/routes/managed-mcp-runtime.d.ts.map +1 -1
  76. package/dist/routes/managed-mcp-runtime.js +109 -7
  77. package/dist/routes/managed-mcp-runtime.js.map +1 -1
  78. package/dist/routes/organization-skills.d.ts.map +1 -1
  79. package/dist/routes/organization-skills.js +23 -1
  80. package/dist/routes/organization-skills.js.map +1 -1
  81. package/dist/routes/requests.d.ts +3 -0
  82. package/dist/routes/requests.d.ts.map +1 -0
  83. package/dist/routes/requests.js +122 -0
  84. package/dist/routes/requests.js.map +1 -0
  85. package/dist/routes/rudder-plugins.d.ts +4 -0
  86. package/dist/routes/rudder-plugins.d.ts.map +1 -0
  87. package/dist/routes/rudder-plugins.js +203 -0
  88. package/dist/routes/rudder-plugins.js.map +1 -0
  89. package/dist/services/activity-log.d.ts +0 -3
  90. package/dist/services/activity-log.d.ts.map +1 -1
  91. package/dist/services/activity-log.js +19 -42
  92. package/dist/services/activity-log.js.map +1 -1
  93. package/dist/services/activity.d.ts +3 -3
  94. package/dist/services/agent-issue-creation.d.ts +344 -0
  95. package/dist/services/agent-issue-creation.d.ts.map +1 -0
  96. package/dist/services/agent-issue-creation.js +675 -0
  97. package/dist/services/agent-issue-creation.js.map +1 -0
  98. package/dist/services/agent-run-context.d.ts.map +1 -1
  99. package/dist/services/agent-run-context.js +10 -4
  100. package/dist/services/agent-run-context.js.map +1 -1
  101. package/dist/services/agents.d.ts +14 -14
  102. package/dist/services/agents.d.ts.map +1 -1
  103. package/dist/services/agents.js +2 -1
  104. package/dist/services/agents.js.map +1 -1
  105. package/dist/services/app-builder.d.ts.map +1 -1
  106. package/dist/services/app-builder.js +24 -3
  107. package/dist/services/app-builder.js.map +1 -1
  108. package/dist/services/chat-agent-runs.d.ts +1 -0
  109. package/dist/services/chat-agent-runs.d.ts.map +1 -1
  110. package/dist/services/chat-agent-runs.js +1 -0
  111. package/dist/services/chat-agent-runs.js.map +1 -1
  112. package/dist/services/chat-assistant.d.ts.map +1 -1
  113. package/dist/services/chat-assistant.helpers.d.ts +3 -1
  114. package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
  115. package/dist/services/chat-assistant.helpers.js +25 -0
  116. package/dist/services/chat-assistant.helpers.js.map +1 -1
  117. package/dist/services/chat-assistant.js +57 -11
  118. package/dist/services/chat-assistant.js.map +1 -1
  119. package/dist/services/chat-generation-protocol.test.js +2 -2
  120. package/dist/services/chat-generation-protocol.test.js.map +1 -1
  121. package/dist/services/chat-queued-message-materialization.d.ts +1 -1
  122. package/dist/services/chats.create.d.ts +2 -2
  123. package/dist/services/chats.create.d.ts.map +1 -1
  124. package/dist/services/chats.d.ts +15 -15
  125. package/dist/services/chats.d.ts.map +1 -1
  126. package/dist/services/chats.helpers.d.ts +2 -2
  127. package/dist/services/chats.helpers.d.ts.map +1 -1
  128. package/dist/services/chats.helpers.goal-context.test.d.ts +2 -0
  129. package/dist/services/chats.helpers.goal-context.test.d.ts.map +1 -0
  130. package/dist/services/chats.helpers.goal-context.test.js +40 -0
  131. package/dist/services/chats.helpers.goal-context.test.js.map +1 -0
  132. package/dist/services/chats.helpers.js +27 -2
  133. package/dist/services/chats.helpers.js.map +1 -1
  134. package/dist/services/chats.js.map +1 -1
  135. package/dist/services/computer-broker.d.ts +35 -0
  136. package/dist/services/computer-broker.d.ts.map +1 -0
  137. package/dist/services/computer-broker.js +211 -0
  138. package/dist/services/computer-broker.js.map +1 -0
  139. package/dist/services/computer-broker.test.d.ts +2 -0
  140. package/dist/services/computer-broker.test.d.ts.map +1 -0
  141. package/dist/services/computer-broker.test.js +70 -0
  142. package/dist/services/computer-broker.test.js.map +1 -0
  143. package/dist/services/computer-capability.d.ts +13 -0
  144. package/dist/services/computer-capability.d.ts.map +1 -0
  145. package/dist/services/computer-capability.js +11 -0
  146. package/dist/services/computer-capability.js.map +1 -0
  147. package/dist/services/computer-capability.test.d.ts +2 -0
  148. package/dist/services/computer-capability.test.d.ts.map +1 -0
  149. package/dist/services/computer-capability.test.js +27 -0
  150. package/dist/services/computer-capability.test.js.map +1 -0
  151. package/dist/services/finance.d.ts +2 -2
  152. package/dist/services/goals.d.ts +267 -244
  153. package/dist/services/goals.d.ts.map +1 -1
  154. package/dist/services/goals.js +1279 -297
  155. package/dist/services/goals.js.map +1 -1
  156. package/dist/services/index.d.ts +3 -0
  157. package/dist/services/index.d.ts.map +1 -1
  158. package/dist/services/index.js +3 -0
  159. package/dist/services/index.js.map +1 -1
  160. package/dist/services/instance-settings.d.ts.map +1 -1
  161. package/dist/services/instance-settings.js +8 -3
  162. package/dist/services/instance-settings.js.map +1 -1
  163. package/dist/services/integrations/agent-integrations.d.ts +1 -1
  164. package/dist/services/issues.d.ts +86 -1
  165. package/dist/services/issues.d.ts.map +1 -1
  166. package/dist/services/issues.helpers.d.ts +4 -0
  167. package/dist/services/issues.helpers.d.ts.map +1 -1
  168. package/dist/services/issues.helpers.js +28 -6
  169. package/dist/services/issues.helpers.js.map +1 -1
  170. package/dist/services/issues.js +207 -127
  171. package/dist/services/issues.js.map +1 -1
  172. package/dist/services/knowledge-portability/organization-portability.files.d.ts +1 -1
  173. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +7 -1
  174. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
  175. package/dist/services/knowledge-portability/organization-skills.catalog.js +10 -0
  176. package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
  177. package/dist/services/knowledge-portability/organization-skills.d.ts +3 -1
  178. package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
  179. package/dist/services/knowledge-portability/organization-skills.js +80 -12
  180. package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
  181. package/dist/services/mcp/managed-bindings.d.ts.map +1 -1
  182. package/dist/services/mcp/managed-bindings.js +18 -2
  183. package/dist/services/mcp/managed-bindings.js.map +1 -1
  184. package/dist/services/mcp/managed-client.d.ts +15 -0
  185. package/dist/services/mcp/managed-client.d.ts.map +1 -1
  186. package/dist/services/mcp/managed-client.js +23 -1
  187. package/dist/services/mcp/managed-client.js.map +1 -1
  188. package/dist/services/mcp/managed-client.test.js +73 -9
  189. package/dist/services/mcp/managed-client.test.js.map +1 -1
  190. package/dist/services/messenger.d.ts +3 -3
  191. package/dist/services/messenger.d.ts.map +1 -1
  192. package/dist/services/messenger.js +201 -65
  193. package/dist/services/messenger.js.map +1 -1
  194. package/dist/services/orgs.d.ts.map +1 -1
  195. package/dist/services/orgs.js +3 -1
  196. package/dist/services/orgs.js.map +1 -1
  197. package/dist/services/product-analytics.d.ts +2 -2
  198. package/dist/services/requests.d.ts +919 -0
  199. package/dist/services/requests.d.ts.map +1 -0
  200. package/dist/services/requests.js +532 -0
  201. package/dist/services/requests.js.map +1 -0
  202. package/dist/services/rudder-plugins.d.ts +107 -0
  203. package/dist/services/rudder-plugins.d.ts.map +1 -0
  204. package/dist/services/rudder-plugins.js +1760 -0
  205. package/dist/services/rudder-plugins.js.map +1 -0
  206. package/dist/services/rudder-plugins.test.d.ts +2 -0
  207. package/dist/services/rudder-plugins.test.d.ts.map +1 -0
  208. package/dist/services/rudder-plugins.test.js +191 -0
  209. package/dist/services/rudder-plugins.test.js.map +1 -0
  210. package/dist/services/runtime-kernel/heartbeat.core.d.ts +1 -0
  211. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
  212. package/dist/services/runtime-kernel/heartbeat.core.js +1 -1
  213. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
  214. package/dist/services/runtime-kernel/heartbeat.d.ts +65 -0
  215. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  216. package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -1
  217. package/dist/services/runtime-kernel/heartbeat.execute.js +21 -5
  218. package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -1
  219. package/dist/services/runtime-kernel/heartbeat.js +320 -108
  220. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  221. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts +1 -0
  222. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
  223. package/dist/services/runtime-kernel/heartbeat.recovery.js +39 -4
  224. package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
  225. package/dist/services/runtime-kernel/heartbeat.sessions.js +1 -1
  226. package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -1
  227. package/dist/services/runtime-kernel/heartbeat.terminal.d.ts +14 -1
  228. package/dist/services/runtime-kernel/heartbeat.terminal.d.ts.map +1 -1
  229. package/dist/services/runtime-kernel/heartbeat.terminal.js +46 -1
  230. package/dist/services/runtime-kernel/heartbeat.terminal.js.map +1 -1
  231. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts +1 -0
  232. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -1
  233. package/dist/services/runtime-kernel/heartbeat.wakeup.js +124 -6
  234. package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -1
  235. package/dist/services/workspace-runtime.services.d.ts +1 -1
  236. package/package.json +18 -18
  237. package/resources/bundled-skills/app-builder/SKILL.md +39 -9
  238. package/resources/bundled-skills/app-builder/assets/scaffold/app/globals.css +109 -16
  239. package/resources/bundled-skills/app-builder/assets/scaffold/components/contacts-workspace.tsx +176 -152
  240. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/alert.tsx +12 -0
  241. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/badge.tsx +27 -0
  242. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/button.tsx +9 -7
  243. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/card.tsx +15 -3
  244. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/empty.tsx +18 -0
  245. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/field.tsx +23 -0
  246. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/input.tsx +1 -1
  247. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/label.tsx +1 -1
  248. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/separator.tsx +6 -0
  249. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/skeleton.tsx +6 -0
  250. package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/table.tsx +30 -0
  251. package/resources/bundled-skills/app-builder/assets/scaffold/components.json +20 -0
  252. package/resources/bundled-skills/app-builder/assets/scaffold/next-env.d.ts +1 -1
  253. package/resources/bundled-skills/app-builder/assets/scaffold/next.config.ts +19 -0
  254. package/resources/bundled-skills/app-builder/assets/scaffold/package.json +2 -1
  255. package/resources/bundled-skills/app-builder/assets/scaffold/rudder.app.json +1 -1
  256. package/resources/bundled-skills/app-builder/assets/scaffold/rudder.ui.json +13 -0
  257. package/resources/bundled-skills/app-builder/assets/scaffold/scripts/validate-rudder-ui.mjs +50 -0
  258. package/resources/bundled-skills/app-builder/assets/scaffold/tests/e2e/app.spec.ts +35 -1
  259. package/resources/bundled-skills/app-builder/evals/evals.json +2 -1
  260. package/resources/bundled-skills/app-builder/references/design-guidelines.md +19 -2
  261. package/resources/bundled-skills/app-builder/references/rudder-ui-preset.md +73 -0
  262. package/resources/bundled-skills/app-builder/references/scaffold-contract.md +12 -0
  263. package/resources/bundled-skills/app-builder/references/verification.md +6 -0
  264. package/resources/bundled-skills/app-builder/scripts/report-build-status.mjs +83 -0
  265. package/resources/bundled-skills/rudder-docs/SKILL.md +2 -2
  266. package/resources/bundled-skills/rudder-docs/evals/retrieval-authority-evals.json +40 -0
  267. package/resources/bundled-skills/rudder-docs/evals/trigger-evals.json +2 -2
  268. package/resources/bundled-skills/rudder-docs/references/api-reference.md +0 -2
  269. package/resources/bundled-skills/rudder-docs/references/cli-reference.md +7 -2
  270. package/resources/bundled-skills/rudder-docs/references/operating-practices.md +10 -6
  271. package/resources/bundled-skills/rudder-docs/references/plugin-authoring.md +38 -114
  272. package/resources/bundled-skills/rudder-docs/references/source-map.md +2 -0
  273. package/skills/app-builder/SKILL.md +39 -9
  274. package/skills/app-builder/assets/scaffold/app/globals.css +109 -16
  275. package/skills/app-builder/assets/scaffold/components/contacts-workspace.tsx +176 -152
  276. package/skills/app-builder/assets/scaffold/components/ui/alert.tsx +12 -0
  277. package/skills/app-builder/assets/scaffold/components/ui/badge.tsx +27 -0
  278. package/skills/app-builder/assets/scaffold/components/ui/button.tsx +9 -7
  279. package/skills/app-builder/assets/scaffold/components/ui/card.tsx +15 -3
  280. package/skills/app-builder/assets/scaffold/components/ui/empty.tsx +18 -0
  281. package/skills/app-builder/assets/scaffold/components/ui/field.tsx +23 -0
  282. package/skills/app-builder/assets/scaffold/components/ui/input.tsx +1 -1
  283. package/skills/app-builder/assets/scaffold/components/ui/label.tsx +1 -1
  284. package/skills/app-builder/assets/scaffold/components/ui/separator.tsx +6 -0
  285. package/skills/app-builder/assets/scaffold/components/ui/skeleton.tsx +6 -0
  286. package/skills/app-builder/assets/scaffold/components/ui/table.tsx +30 -0
  287. package/skills/app-builder/assets/scaffold/components.json +20 -0
  288. package/skills/app-builder/assets/scaffold/next-env.d.ts +1 -1
  289. package/skills/app-builder/assets/scaffold/next.config.ts +19 -0
  290. package/skills/app-builder/assets/scaffold/package.json +2 -1
  291. package/skills/app-builder/assets/scaffold/rudder.app.json +1 -1
  292. package/skills/app-builder/assets/scaffold/rudder.ui.json +13 -0
  293. package/skills/app-builder/assets/scaffold/scripts/validate-rudder-ui.mjs +50 -0
  294. package/skills/app-builder/assets/scaffold/tests/e2e/app.spec.ts +35 -1
  295. package/skills/app-builder/evals/evals.json +2 -1
  296. package/skills/app-builder/references/design-guidelines.md +19 -2
  297. package/skills/app-builder/references/rudder-ui-preset.md +73 -0
  298. package/skills/app-builder/references/scaffold-contract.md +12 -0
  299. package/skills/app-builder/references/verification.md +6 -0
  300. package/skills/app-builder/scripts/report-build-status.mjs +83 -0
  301. package/skills/rudder-docs/SKILL.md +2 -2
  302. package/skills/rudder-docs/evals/retrieval-authority-evals.json +40 -0
  303. package/skills/rudder-docs/evals/trigger-evals.json +2 -2
  304. package/skills/rudder-docs/references/api-reference.md +0 -2
  305. package/skills/rudder-docs/references/cli-reference.md +7 -2
  306. package/skills/rudder-docs/references/operating-practices.md +10 -6
  307. package/skills/rudder-docs/references/plugin-authoring.md +38 -114
  308. package/skills/rudder-docs/references/source-map.md +2 -0
  309. package/ui-dist/assets/{LibraryLiveSurface-cHCJmmsl.js → LibraryLiveSurface-D4uCo0l0.js} +1 -1
  310. package/ui-dist/assets/{abnfDiagram-VRR7QNED-BORJvkew.js → abnfDiagram-VRR7QNED-FF2qcR6A.js} +1 -1
  311. package/ui-dist/assets/addon-fit-4gL7JXzc.js +1 -0
  312. package/ui-dist/assets/{arc-DPUzhx87.js → arc-D5pLjh6B.js} +1 -1
  313. package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-Bz_hY8LM.js → architectureDiagram-ZJ3FMSHR-BvqY-HXg.js} +1 -1
  314. package/ui-dist/assets/{blockDiagram-677ZJIJ3-Bq1X3YkP.js → blockDiagram-677ZJIJ3-BU6ZbJ0s.js} +1 -1
  315. package/ui-dist/assets/{c4Diagram-LMCZKHZV-BawEM9Pc.js → c4Diagram-LMCZKHZV-Cl5Gsovj.js} +1 -1
  316. package/ui-dist/assets/channel-HcmprA3I.js +1 -0
  317. package/ui-dist/assets/{chunk-2Q5K7J3B-D0D5ZOaA.js → chunk-2Q5K7J3B-4a2agt_p.js} +1 -1
  318. package/ui-dist/assets/{chunk-32BRIVSS-T90P7lug.js → chunk-32BRIVSS-CF0oOO2T.js} +1 -1
  319. package/ui-dist/assets/{chunk-5VM5RSS4-jcAERTgh.js → chunk-5VM5RSS4-CsSq2zX2.js} +1 -1
  320. package/ui-dist/assets/{chunk-EX3LRPZG-t9-JXwnR.js → chunk-EX3LRPZG-B6riETVZ.js} +1 -1
  321. package/ui-dist/assets/{chunk-JWPE2WC7-hqgD1saC.js → chunk-JWPE2WC7-S-p1xu0r.js} +1 -1
  322. package/ui-dist/assets/{chunk-MOJQB5TN-BsSUoYzd.js → chunk-MOJQB5TN-mVE4v_LV.js} +1 -1
  323. package/ui-dist/assets/{chunk-RYQCIY6F-YcdDh2Zn.js → chunk-RYQCIY6F-CElbgpgs.js} +1 -1
  324. package/ui-dist/assets/{chunk-V7JOEXUC-ChFyH9Su.js → chunk-V7JOEXUC-8XM3povP.js} +1 -1
  325. package/ui-dist/assets/{chunk-VR4S4FIN-BjVK8IyX.js → chunk-VR4S4FIN-LrThp3ht.js} +1 -1
  326. package/ui-dist/assets/{chunk-XXDRQBXY-D-TvO9vT.js → chunk-XXDRQBXY-D38vLb4t.js} +1 -1
  327. package/ui-dist/assets/classDiagram-OUVF2IWQ-Dpe8LaLf.js +1 -0
  328. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-Dpe8LaLf.js +1 -0
  329. package/ui-dist/assets/{cose-bilkent-JH36ORCC-DBwhASJG.js → cose-bilkent-JH36ORCC-CmpZMaDV.js} +1 -1
  330. package/ui-dist/assets/{cynefin-VYW2F7L2-SlCRmwl2.js → cynefin-VYW2F7L2-D3RnbBvI.js} +1 -1
  331. package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-DImV6N_p.js → cynefinDiagram-TSTJHNR4-DZTcUojp.js} +1 -1
  332. package/ui-dist/assets/{dagre-VKFMJZFB-FH4Wv8Zn.js → dagre-VKFMJZFB-6jXSDi0S.js} +1 -1
  333. package/ui-dist/assets/{diagram-FQU43EPY-CrZvQjId.js → diagram-FQU43EPY-DIMm3mfS.js} +1 -1
  334. package/ui-dist/assets/{diagram-G47NLZAW-B7IGl_T3.js → diagram-G47NLZAW-Cyo22v0_.js} +1 -1
  335. package/ui-dist/assets/{diagram-NH7WQ7WH-CB4i7H1a.js → diagram-NH7WQ7WH-CHDV0nSL.js} +1 -1
  336. package/ui-dist/assets/{diagram-OA4YK3LP-DNyWPYY9.js → diagram-OA4YK3LP-Jijx9vQO.js} +1 -1
  337. package/ui-dist/assets/{diagram-WEI45ONY-BAhxbhpi.js → diagram-WEI45ONY-CcL19HLE.js} +1 -1
  338. package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-ClXtQ9qt.js → ebnfDiagram-CCIWWBDH-D94h-RFQ.js} +1 -1
  339. package/ui-dist/assets/{erDiagram-Q63AITRT-DGXiMYfn.js → erDiagram-Q63AITRT-B3ypUGZX.js} +1 -1
  340. package/ui-dist/assets/{flowDiagram-23GEKE2U-CdZ-02zc.js → flowDiagram-23GEKE2U-DjCT6Y1o.js} +1 -1
  341. package/ui-dist/assets/{ganttDiagram-NO4QXBWP-TxhzNpta.js → ganttDiagram-NO4QXBWP-C3QVhTc9.js} +1 -1
  342. package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-D6Q_w6wR.js → gitGraphDiagram-IHSO6WYX-D0trBzU5.js} +1 -1
  343. package/ui-dist/assets/{graph-CxNmbpl9.js → graph-D1zFmVUP.js} +1 -1
  344. package/ui-dist/assets/{index-Cx6oIZPm.js → index-B0GEsWui.js} +568 -593
  345. package/ui-dist/assets/{index-BA9tMBhO.js → index-B8bxQLfN.js} +1 -1
  346. package/ui-dist/assets/{index-C_nwI4Yj.js → index-BFktZ2tu.js} +1 -1
  347. package/ui-dist/assets/index-BT7dphT4.css +32 -0
  348. package/ui-dist/assets/{index-BoTz5S-X.js → index-Bk_yesiO.js} +1 -1
  349. package/ui-dist/assets/{index-CXnqg1Oq.js → index-BwutQLG1.js} +1 -1
  350. package/ui-dist/assets/{index-AkhgKOxC.js → index-CB4zr_Ku.js} +1 -1
  351. package/ui-dist/assets/{index-Rau2cGm0.js → index-CC89UPa-.js} +1 -1
  352. package/ui-dist/assets/{index-kbWUQ1um.js → index-CFWOO6yn.js} +1 -1
  353. package/ui-dist/assets/{index-DU2LI7f9.js → index-CK8u9b07.js} +1 -1
  354. package/ui-dist/assets/{index-C12QC1Ex.js → index-CRolpP90.js} +1 -1
  355. package/ui-dist/assets/{index-Bxz75ICF.js → index-CiCRRUVV.js} +1 -1
  356. package/ui-dist/assets/{index-Do78GymY.js → index-D8JG-IU9.js} +1 -1
  357. package/ui-dist/assets/{index-CW21qWFm.js → index-DKCiVvJo.js} +1 -1
  358. package/ui-dist/assets/{index-BujwWE3j.js → index-G2yfKEf_.js} +1 -1
  359. package/ui-dist/assets/{index-BQ87dGIq.js → index-or2C22bw.js} +1 -1
  360. package/ui-dist/assets/{infoDiagram-FWYZ7A6U-CnJd4-Jq.js → infoDiagram-FWYZ7A6U-Co0nkcV4.js} +1 -1
  361. package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-Bq-qc3pD.js → ishikawaDiagram-FXEZZL3T-CkIg1Jdu.js} +1 -1
  362. package/ui-dist/assets/{journeyDiagram-5HDEW3XC-NSmpUGUA.js → journeyDiagram-5HDEW3XC-AYUT6JuJ.js} +1 -1
  363. package/ui-dist/assets/{kanban-definition-HUTT4EX6-D7pgWtfA.js → kanban-definition-HUTT4EX6-C3H2XW08.js} +1 -1
  364. package/ui-dist/assets/{layout-BRuo6LWe.js → layout-sZWyqNOu.js} +1 -1
  365. package/ui-dist/assets/{linear-CkaWI9Nd.js → linear-BLTYou8N.js} +1 -1
  366. package/ui-dist/assets/{map-CgA6tTpZ.js → map-zKBdHkX8.js} +1 -1
  367. package/ui-dist/assets/{mermaid.core-DrXOt-P6.js → mermaid.core-DbjdFip8.js} +4 -4
  368. package/ui-dist/assets/{mindmap-definition-LN4V7U3C-D9ImeWBe.js → mindmap-definition-LN4V7U3C-DcDNQ4GQ.js} +1 -1
  369. package/ui-dist/assets/{pegDiagram-2B236MQR-Cq-zZ_zz.js → pegDiagram-2B236MQR-BGq1PngU.js} +1 -1
  370. package/ui-dist/assets/{pieDiagram-ENE6RG2P-FgNgy726.js → pieDiagram-ENE6RG2P-BfXWRzNb.js} +1 -1
  371. package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-BxQbmGmi.js → quadrantDiagram-ABIIQ3AL-AYMVAbo1.js} +1 -1
  372. package/ui-dist/assets/{railroadDiagram-RFXS5EU6-CrpbkPH2.js → railroadDiagram-RFXS5EU6-B0PoG0Ih.js} +1 -1
  373. package/ui-dist/assets/{requirementDiagram-TGXJPOKE-DQ-65ZW6.js → requirementDiagram-TGXJPOKE-Cuuu9wfw.js} +1 -1
  374. package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-Bom0lMZm.js → sankeyDiagram-HTMAVEWB-BceAc42f.js} +1 -1
  375. package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-C1MSDLDj.js → sequenceDiagram-DBY2YBRQ-cqJ71-Rw.js} +1 -1
  376. package/ui-dist/assets/{sizeCapture-X5ZJPWSS-Bn1vxebD.js → sizeCapture-X5ZJPWSS-DQ6MibbA.js} +1 -1
  377. package/ui-dist/assets/{stateDiagram-2N3HPSRC-GRRQpmzI.js → stateDiagram-2N3HPSRC-Bdl-XY7t.js} +1 -1
  378. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-Cjj7yPIO.js +1 -0
  379. package/ui-dist/assets/{swimlanes-5IMT3BWC-BcOOCZ4q.js → swimlanes-5IMT3BWC-Dpo2HDtE.js} +2 -2
  380. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-CPmIkNCu.js +8 -0
  381. package/ui-dist/assets/{timeline-definition-FHXFAJF6-gi6amswh.js → timeline-definition-FHXFAJF6-BzmJ-xnC.js} +1 -1
  382. package/ui-dist/assets/{vennDiagram-L72KCM5P-B9uqeyQt.js → vennDiagram-L72KCM5P-BF2EI7vn.js} +1 -1
  383. package/ui-dist/assets/{wardleyDiagram-EHGQE667-BnqWAMiE.js → wardleyDiagram-EHGQE667-DM65x1i1.js} +1 -1
  384. package/ui-dist/assets/xterm-DZP7bLZ5.js +9 -0
  385. package/ui-dist/assets/{xychartDiagram-FW5EYKEG-BJXKltIN.js → xychartDiagram-FW5EYKEG-3Q2t9pdU.js} +1 -1
  386. package/ui-dist/index.html +2 -2
  387. package/dist/bootstrap/plugin-host-runtime.d.ts +0 -116
  388. package/dist/bootstrap/plugin-host-runtime.d.ts.map +0 -1
  389. package/dist/bootstrap/plugin-host-runtime.js +0 -179
  390. package/dist/bootstrap/plugin-host-runtime.js.map +0 -1
  391. package/dist/bundled-plugins/plugin-linear/README.md +0 -22
  392. package/dist/bundled-plugins/plugin-linear/dist/manifest.js +0 -183
  393. package/dist/bundled-plugins/plugin-linear/dist/manifest.js.map +0 -7
  394. package/dist/bundled-plugins/plugin-linear/dist/ui/index.js +0 -1285
  395. package/dist/bundled-plugins/plugin-linear/dist/ui/index.js.map +0 -7
  396. package/dist/bundled-plugins/plugin-linear/dist/worker.js +0 -10699
  397. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +0 -7
  398. package/dist/bundled-plugins/plugin-linear/package.json +0 -42
  399. package/dist/routes/plugin-ui-static.d.ts +0 -70
  400. package/dist/routes/plugin-ui-static.d.ts.map +0 -1
  401. package/dist/routes/plugin-ui-static.js +0 -375
  402. package/dist/routes/plugin-ui-static.js.map +0 -1
  403. package/dist/routes/plugins.d.ts +0 -120
  404. package/dist/routes/plugins.d.ts.map +0 -1
  405. package/dist/routes/plugins.js +0 -1125
  406. package/dist/routes/plugins.js.map +0 -1
  407. package/dist/routes/plugins.operations-routes.d.ts +0 -28
  408. package/dist/routes/plugins.operations-routes.d.ts.map +0 -1
  409. package/dist/routes/plugins.operations-routes.js +0 -720
  410. package/dist/routes/plugins.operations-routes.js.map +0 -1
  411. package/dist/services/plugin-capability-validator.d.ts +0 -108
  412. package/dist/services/plugin-capability-validator.d.ts.map +0 -1
  413. package/dist/services/plugin-capability-validator.js +0 -268
  414. package/dist/services/plugin-capability-validator.js.map +0 -1
  415. package/dist/services/plugin-config-validator.d.ts +0 -26
  416. package/dist/services/plugin-config-validator.d.ts.map +0 -1
  417. package/dist/services/plugin-config-validator.js +0 -41
  418. package/dist/services/plugin-config-validator.js.map +0 -1
  419. package/dist/services/plugin-dev-watcher.d.ts +0 -47
  420. package/dist/services/plugin-dev-watcher.d.ts.map +0 -1
  421. package/dist/services/plugin-dev-watcher.js +0 -275
  422. package/dist/services/plugin-dev-watcher.js.map +0 -1
  423. package/dist/services/plugin-event-bus.d.ts +0 -149
  424. package/dist/services/plugin-event-bus.d.ts.map +0 -1
  425. package/dist/services/plugin-event-bus.js +0 -258
  426. package/dist/services/plugin-event-bus.js.map +0 -1
  427. package/dist/services/plugin-host-service-cleanup.d.ts +0 -14
  428. package/dist/services/plugin-host-service-cleanup.d.ts.map +0 -1
  429. package/dist/services/plugin-host-service-cleanup.js +0 -37
  430. package/dist/services/plugin-host-service-cleanup.js.map +0 -1
  431. package/dist/services/plugin-host-services.d.ts +0 -13
  432. package/dist/services/plugin-host-services.d.ts.map +0 -1
  433. package/dist/services/plugin-host-services.js +0 -933
  434. package/dist/services/plugin-host-services.js.map +0 -1
  435. package/dist/services/plugin-job-coordinator.d.ts +0 -81
  436. package/dist/services/plugin-job-coordinator.d.ts.map +0 -1
  437. package/dist/services/plugin-job-coordinator.js +0 -172
  438. package/dist/services/plugin-job-coordinator.js.map +0 -1
  439. package/dist/services/plugin-job-scheduler.d.ts +0 -163
  440. package/dist/services/plugin-job-scheduler.d.ts.map +0 -1
  441. package/dist/services/plugin-job-scheduler.js +0 -452
  442. package/dist/services/plugin-job-scheduler.js.map +0 -1
  443. package/dist/services/plugin-job-store.d.ts +0 -208
  444. package/dist/services/plugin-job-store.d.ts.map +0 -1
  445. package/dist/services/plugin-job-store.js +0 -350
  446. package/dist/services/plugin-job-store.js.map +0 -1
  447. package/dist/services/plugin-lifecycle.d.ts +0 -240
  448. package/dist/services/plugin-lifecycle.d.ts.map +0 -1
  449. package/dist/services/plugin-lifecycle.js +0 -439
  450. package/dist/services/plugin-lifecycle.js.map +0 -1
  451. package/dist/services/plugin-loader.core.d.ts +0 -40
  452. package/dist/services/plugin-loader.core.d.ts.map +0 -1
  453. package/dist/services/plugin-loader.core.js +0 -879
  454. package/dist/services/plugin-loader.core.js.map +0 -1
  455. package/dist/services/plugin-loader.d.ts +0 -30
  456. package/dist/services/plugin-loader.d.ts.map +0 -1
  457. package/dist/services/plugin-loader.helpers.d.ts +0 -495
  458. package/dist/services/plugin-loader.helpers.d.ts.map +0 -1
  459. package/dist/services/plugin-loader.helpers.js +0 -238
  460. package/dist/services/plugin-loader.helpers.js.map +0 -1
  461. package/dist/services/plugin-loader.js +0 -30
  462. package/dist/services/plugin-loader.js.map +0 -1
  463. package/dist/services/plugin-loader.worker-paths.d.ts +0 -37
  464. package/dist/services/plugin-loader.worker-paths.d.ts.map +0 -1
  465. package/dist/services/plugin-loader.worker-paths.js +0 -62
  466. package/dist/services/plugin-loader.worker-paths.js.map +0 -1
  467. package/dist/services/plugin-log-retention.d.ts +0 -20
  468. package/dist/services/plugin-log-retention.d.ts.map +0 -1
  469. package/dist/services/plugin-log-retention.js +0 -63
  470. package/dist/services/plugin-log-retention.js.map +0 -1
  471. package/dist/services/plugin-manifest-validator.d.ts +0 -90
  472. package/dist/services/plugin-manifest-validator.d.ts.map +0 -1
  473. package/dist/services/plugin-manifest-validator.js +0 -72
  474. package/dist/services/plugin-manifest-validator.js.map +0 -1
  475. package/dist/services/plugin-registry.d.ts +0 -2542
  476. package/dist/services/plugin-registry.d.ts.map +0 -1
  477. package/dist/services/plugin-registry.js +0 -536
  478. package/dist/services/plugin-registry.js.map +0 -1
  479. package/dist/services/plugin-runtime-sandbox.d.ts +0 -40
  480. package/dist/services/plugin-runtime-sandbox.d.ts.map +0 -1
  481. package/dist/services/plugin-runtime-sandbox.js +0 -154
  482. package/dist/services/plugin-runtime-sandbox.js.map +0 -1
  483. package/dist/services/plugin-secrets-handler.d.ts +0 -81
  484. package/dist/services/plugin-secrets-handler.d.ts.map +0 -1
  485. package/dist/services/plugin-secrets-handler.js +0 -275
  486. package/dist/services/plugin-secrets-handler.js.map +0 -1
  487. package/dist/services/plugin-state-store.d.ts +0 -92
  488. package/dist/services/plugin-state-store.d.ts.map +0 -1
  489. package/dist/services/plugin-state-store.js +0 -190
  490. package/dist/services/plugin-state-store.js.map +0 -1
  491. package/dist/services/plugin-stream-bus.d.ts +0 -29
  492. package/dist/services/plugin-stream-bus.d.ts.map +0 -1
  493. package/dist/services/plugin-stream-bus.js +0 -48
  494. package/dist/services/plugin-stream-bus.js.map +0 -1
  495. package/dist/services/plugin-tool-dispatcher.d.ts +0 -180
  496. package/dist/services/plugin-tool-dispatcher.d.ts.map +0 -1
  497. package/dist/services/plugin-tool-dispatcher.js +0 -224
  498. package/dist/services/plugin-tool-dispatcher.js.map +0 -1
  499. package/dist/services/plugin-tool-registry.d.ts +0 -192
  500. package/dist/services/plugin-tool-registry.d.ts.map +0 -1
  501. package/dist/services/plugin-tool-registry.js +0 -224
  502. package/dist/services/plugin-tool-registry.js.map +0 -1
  503. package/dist/services/plugin-worker-manager.d.ts +0 -260
  504. package/dist/services/plugin-worker-manager.d.ts.map +0 -1
  505. package/dist/services/plugin-worker-manager.js +0 -836
  506. package/dist/services/plugin-worker-manager.js.map +0 -1
  507. package/ui-dist/assets/channel-C08AyYJr.js +0 -1
  508. package/ui-dist/assets/classDiagram-OUVF2IWQ-BIXq6fec.js +0 -1
  509. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-BIXq6fec.js +0 -1
  510. package/ui-dist/assets/index-BmXb0yC1.css +0 -1
  511. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-KvSJhiLM.js +0 -1
  512. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-Cr92NnJ4.js +0 -8
@@ -1,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, requests } 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":
@@ -410,11 +422,11 @@ function approvalSummary(approvalCount, latestActivityAt, unreadCount, lastReadA
410
422
  return {
411
423
  threadKey: "approvals",
412
424
  kind: "approvals",
413
- title: "Approvals",
425
+ title: "Requests",
414
426
  subtitle: approvalCount > 0
415
- ? `${approvalCount} approval${approvalCount === 1 ? "" : "s"}`
416
- : "No approvals yet",
417
- preview: approvalCount > 0 ? preview ?? "Review and decide on pending approvals" : "No approvals in this organization",
427
+ ? `${approvalCount} request${approvalCount === 1 ? "" : "s"}`
428
+ : "No requests yet",
429
+ preview: approvalCount > 0 ? preview ?? "Review requests needing your input" : "No requests in this organization",
418
430
  latestActivityAt,
419
431
  lastReadAt,
420
432
  unreadCount,
@@ -522,24 +534,67 @@ function approvalCard(approval, requesterAgent, latestComment, currentUserId, la
522
534
  requester: approvalRequesterLabel(approval, currentUserId),
523
535
  },
524
536
  approval: approval,
537
+ requestKind: "approval",
525
538
  requesterAgent,
526
539
  };
527
540
  }
528
- function failedRunCard(run, agentName, origin) {
529
- const summary = failedRunUserSummary(run);
541
+ function assistanceRequestCard(request, requesterAgent) {
542
+ return {
543
+ id: request.id,
544
+ threadKey: "approvals",
545
+ kind: "approvals",
546
+ requestKind: "assistance",
547
+ title: request.title,
548
+ subtitle: request.status === "open" ? "Waiting on you" : request.status.replaceAll("_", " "),
549
+ body: request.prompt,
550
+ preview: request.prompt,
551
+ href: request.issueId ? `/issues/${request.issueId}` : "/messenger/approvals",
552
+ latestActivityAt: request.updatedAt,
553
+ actions: request.issueId ? [buildAction("Open issue", `/issues/${request.issueId}`, "GET")] : [],
554
+ metadata: {
555
+ requestId: request.id,
556
+ requestKind: "assistance",
557
+ subtype: request.subtype,
558
+ status: request.status,
559
+ issueId: request.issueId,
560
+ },
561
+ assistanceRequest: {
562
+ ...request,
563
+ kind: "assistance",
564
+ subtype: "issue_blocker",
565
+ status: request.status,
566
+ resolution: request.resolution,
567
+ issueId: request.issueId,
568
+ blockerFingerprint: request.blockerFingerprint,
569
+ },
570
+ requesterAgent,
571
+ };
572
+ }
573
+ function failedRunCard(run, agentName, origin, orgId, userId) {
574
+ const summary = failedRunSummary(run);
530
575
  const sourceAction = messengerFailedRunSourceAction(origin);
576
+ const agentIssueRequestId = run.agentIssueCreationRequestId;
577
+ const canRetryAgentIssue = Boolean(agentIssueRequestId
578
+ && run.agentIssueCreationRequestedByUserId === userId);
579
+ const retryAction = agentIssueRequestId
580
+ ? canRetryAgentIssue
581
+ ? buildAction("Retry Agent Issue", `/orgs/${orgId}/agent-issue-creation-requests/${agentIssueRequestId}/retry`, "POST")
582
+ : null
583
+ : buildAction("Retry", `/agent-runs/${run.id}/retry`, "POST");
531
584
  return {
532
585
  id: run.id,
533
586
  threadKey: "failed-runs",
534
587
  kind: "failed-runs",
535
- title: agentName ? `${agentName} · Failed run` : "Failed run",
536
- subtitle: run.status.replaceAll("_", " "),
588
+ title: agentIssueRequestId
589
+ ? (agentName ? `${agentName} · Agent Issue creation failed` : "Agent Issue creation failed")
590
+ : (agentName ? `${agentName} · Failed run` : "Failed run"),
591
+ subtitle: agentIssueRequestId ? "Agent Issue request failed" : run.status.replaceAll("_", " "),
537
592
  body: summary,
538
593
  preview: summary,
539
594
  href: `/agents/${run.agentId}/runs/${run.id}`,
540
595
  latestActivityAt: run.updatedAt ?? run.createdAt,
541
596
  actions: [
542
- buildAction("Retry", `/agent-runs/${run.id}/retry`, "POST"),
597
+ ...(retryAction ? [retryAction] : []),
543
598
  ...(sourceAction ? [sourceAction] : []),
544
599
  buildAction("Open run", `/agents/${run.agentId}/runs/${run.id}`, "GET"),
545
600
  ],
@@ -547,10 +602,46 @@ function failedRunCard(run, agentName, origin) {
547
602
  runId: run.id,
548
603
  agentId: run.agentId,
549
604
  status: run.status,
605
+ ...(agentIssueRequestId
606
+ ? {
607
+ agentIssueCreationRequestId: agentIssueRequestId,
608
+ agentIssueCreationRetryable: canRetryAgentIssue,
609
+ agentIssueCreationError: run.agentIssueCreationError,
610
+ }
611
+ : {}),
550
612
  },
551
613
  origin,
552
614
  };
553
615
  }
616
+ function failedAgentIssueRequestCard(request, agentName, orgId) {
617
+ const summary = failedAgentIssueRequestSummary(request);
618
+ return {
619
+ id: request.id,
620
+ threadKey: "failed-runs",
621
+ kind: "failed-runs",
622
+ title: agentName ? `${agentName} · Agent Issue creation failed` : "Agent Issue creation failed",
623
+ subtitle: "Agent Issue request failed",
624
+ body: summary,
625
+ preview: summary,
626
+ href: request.runId ? `/agents/${request.agentId}/runs/${request.runId}` : null,
627
+ latestActivityAt: request.updatedAt ?? request.createdAt,
628
+ actions: [
629
+ buildAction("Retry Agent Issue", `/orgs/${orgId}/agent-issue-creation-requests/${request.id}/retry`, "POST"),
630
+ ...(request.runId
631
+ ? [buildAction("Open run", `/agents/${request.agentId}/runs/${request.runId}`, "GET")]
632
+ : []),
633
+ ],
634
+ metadata: {
635
+ requestId: request.id,
636
+ agentId: request.agentId,
637
+ status: request.status,
638
+ agentIssueCreationRequestId: request.id,
639
+ agentIssueCreationRetryable: true,
640
+ agentIssueCreationError: request.error,
641
+ ...(request.runId ? { runId: request.runId } : {}),
642
+ },
643
+ };
644
+ }
554
645
  function budgetCard(incident) {
555
646
  return {
556
647
  id: incident.id,
@@ -1181,7 +1272,7 @@ export function messengerService(db) {
1181
1272
  and notification_issue.org_id = automation_notification_activity.org_id
1182
1273
  where automation_notification_activity.org_id = ${orgId}
1183
1274
  and automation_notification_activity.entity_type = 'issue'
1184
- and automation_notification_activity.action = 'automation.issue_created_notification'
1275
+ and automation_notification_activity.action in ('automation.issue_created_notification', 'agent.issue_created_notification')
1185
1276
  and automation_notification_activity.details->>'userId' = ${userId}
1186
1277
  and notification_issue.hidden_at is null
1187
1278
  ),
@@ -1285,7 +1376,7 @@ export function messengerService(db) {
1285
1376
  where automation_notification_visibility.org_id = ${orgId}
1286
1377
  and automation_notification_visibility.entity_type = 'issue'
1287
1378
  and automation_notification_visibility.entity_id = issue_row.id::text
1288
- and automation_notification_visibility.action = 'automation.issue_created_notification'
1379
+ and automation_notification_visibility.action in ('automation.issue_created_notification', 'agent.issue_created_notification')
1289
1380
  and automation_notification_visibility.details->>'userId' = ${userId}
1290
1381
  )
1291
1382
  )
@@ -1327,6 +1418,10 @@ export function messengerService(db) {
1327
1418
  and activity_row.entity_id = issue_row.id::text
1328
1419
  and activity_row.action in (${issueActionSqlList})
1329
1420
  and not ${lowSignalContentOnlyActivity}
1421
+ and (
1422
+ activity_row.action not in ('automation.issue_created_notification', 'agent.issue_created_notification')
1423
+ or activity_row.details->>'userId' = ${userId}
1424
+ )
1330
1425
  order by activity_row.created_at desc, activity_row.id desc
1331
1426
  limit 1
1332
1427
  ) latest_activity on true
@@ -1346,6 +1441,10 @@ export function messengerService(db) {
1346
1441
  and external_activity_row.action in (${issueActionSqlList})
1347
1442
  and not ${externalLowSignalContentOnlyActivity}
1348
1443
  and (external_activity_row.actor_type <> 'user' or external_activity_row.actor_id <> ${userId})
1444
+ and (
1445
+ external_activity_row.action not in ('automation.issue_created_notification', 'agent.issue_created_notification')
1446
+ or external_activity_row.details->>'userId' = ${userId}
1447
+ )
1349
1448
  order by external_activity_row.created_at desc, external_activity_row.id desc
1350
1449
  limit 1
1351
1450
  ) latest_external_activity on true
@@ -1645,12 +1744,17 @@ export function messengerService(db) {
1645
1744
  }
1646
1745
  async function loadApprovalSummaryData(orgId, userId, threadStates) {
1647
1746
  const lastReadAtPromise = lastReadAtForThread(db, orgId, userId, "approvals", threadStates);
1648
- const [approvalRows, latestComments] = await Promise.all([
1747
+ const [approvalRows, assistanceRows, latestComments] = await Promise.all([
1649
1748
  db
1650
1749
  .select()
1651
1750
  .from(approvals)
1652
1751
  .where(eq(approvals.orgId, orgId))
1653
1752
  .orderBy(desc(approvals.updatedAt), desc(approvals.createdAt)),
1753
+ db
1754
+ .select()
1755
+ .from(requests)
1756
+ .where(eq(requests.orgId, orgId))
1757
+ .orderBy(desc(requests.updatedAt), desc(requests.createdAt)),
1654
1758
  db
1655
1759
  .select({
1656
1760
  approvalId: approvalComments.approvalId,
@@ -1670,8 +1774,10 @@ export function messengerService(db) {
1670
1774
  }
1671
1775
  }
1672
1776
  const typedApprovalRows = approvalRows;
1673
- const requesterAgentIds = typedApprovalRows
1674
- .map((approval) => approvalRequesterAgentId(approval))
1777
+ const requesterAgentIds = [
1778
+ ...typedApprovalRows.map((approval) => approvalRequesterAgentId(approval)),
1779
+ ...assistanceRows.map((request) => request.requestedByAgentId),
1780
+ ]
1675
1781
  .filter((agentId) => Boolean(agentId));
1676
1782
  const requesterAgents = requesterAgentIds.length > 0
1677
1783
  ? await db
@@ -1700,11 +1806,19 @@ export function messengerService(db) {
1700
1806
  : null;
1701
1807
  return approvalCard(approval, requesterAgent, latestComment, userId, latestActivityAt);
1702
1808
  });
1809
+ for (const request of assistanceRows) {
1810
+ const requesterAgent = request.requestedByAgentId
1811
+ ? requesterAgentById.get(request.requestedByAgentId) ?? null
1812
+ : null;
1813
+ unsortedItems.push(assistanceRequestCard(request, requesterAgent));
1814
+ }
1703
1815
  const latestFirstItems = [...unsortedItems].sort(compareLatestActivity);
1704
1816
  const chronologicalItems = [...unsortedItems].sort(compareChronologicalActivity);
1705
- const actionable = typedApprovalRows.filter((approval) => ACTIONABLE_APPROVAL_STATUSES.has(approval.status));
1706
- const unreadCount = actionable.filter((approval) => {
1707
- const activityAt = normalizeDate(approval.updatedAt);
1817
+ const actionable = unsortedItems.filter((item) => item.requestKind === "approval"
1818
+ ? ACTIONABLE_APPROVAL_STATUSES.has(item.approval.status)
1819
+ : item.assistanceRequest.status === "open");
1820
+ const unreadCount = actionable.filter((item) => {
1821
+ const activityAt = normalizeDate(item.latestActivityAt);
1708
1822
  if (!activityAt)
1709
1823
  return false;
1710
1824
  if (!lastReadAt)
@@ -1713,12 +1827,12 @@ export function messengerService(db) {
1713
1827
  }).length;
1714
1828
  const latestActivityAt = latestFirstItems[0]?.latestActivityAt ?? null;
1715
1829
  return {
1716
- summary: approvalSummary(approvalRows.length, latestActivityAt, unreadCount, lastReadAt, latestFirstItems[0]?.preview ?? null),
1830
+ summary: approvalSummary(unsortedItems.length, latestActivityAt, unreadCount, lastReadAt, latestFirstItems[0]?.preview ?? null),
1717
1831
  detail: {
1718
1832
  threadKey: "approvals",
1719
1833
  kind: "approvals",
1720
- title: "Approvals",
1721
- subtitle: `${approvalRows.length} approval${approvalRows.length === 1 ? "" : "s"}`,
1834
+ title: "Requests",
1835
+ subtitle: `${unsortedItems.length} request${unsortedItems.length === 1 ? "" : "s"}`,
1722
1836
  preview: latestFirstItems[0]?.preview ?? null,
1723
1837
  latestActivityAt,
1724
1838
  lastReadAt,
@@ -1726,7 +1840,7 @@ export function messengerService(db) {
1726
1840
  needsAttention: unreadCount > 0,
1727
1841
  isPinned: false,
1728
1842
  href: "/messenger/approvals",
1729
- description: "Approvals needing attention",
1843
+ description: "Approvals and assistance needing attention",
1730
1844
  items: chronologicalItems,
1731
1845
  },
1732
1846
  };
@@ -1812,15 +1926,25 @@ export function messengerService(db) {
1812
1926
  }
1813
1927
  }
1814
1928
  const latestItem = candidateItems.sort(compareLatestActivity)[0] ?? null;
1815
- const itemCount = Number(summaryRows[0]?.itemCount ?? 0);
1929
+ const openAssistancePredicate = and(eq(requests.orgId, orgId), eq(requests.status, "open"));
1930
+ const [assistanceCountRows, latestAssistanceRows, unreadAssistanceRows] = await Promise.all([
1931
+ db.select({ itemCount: sql `count(*)::int` }).from(requests).where(openAssistancePredicate),
1932
+ db.select().from(requests).where(openAssistancePredicate).orderBy(desc(requests.updatedAt)).limit(1),
1933
+ db.select({ unreadCount: sql `count(*)::int` }).from(requests)
1934
+ .where(lastReadAt ? and(openAssistancePredicate, gt(requests.updatedAt, lastReadAt)) : openAssistancePredicate),
1935
+ ]);
1936
+ const latestAssistance = latestAssistanceRows[0] ?? null;
1937
+ const latestApprovalAt = latestItem ? normalizeDate(latestItem.latestActivityAt) : null;
1938
+ const latestAssistanceAt = latestAssistance ? normalizeDate(latestAssistance.updatedAt) : null;
1939
+ const assistanceIsLatest = Boolean(latestAssistanceAt && (!latestApprovalAt || latestAssistanceAt > latestApprovalAt));
1940
+ const itemCount = Number(summaryRows[0]?.itemCount ?? 0) + Number(assistanceCountRows[0]?.itemCount ?? 0);
1816
1941
  return {
1817
1942
  itemCount,
1818
- summary: approvalSummary(itemCount, latestItem?.latestActivityAt ?? null, Number(unreadRows[0]?.unreadCount ?? 0), lastReadAt, latestItem?.preview ?? null),
1943
+ summary: approvalSummary(itemCount, assistanceIsLatest ? latestAssistanceAt : latestItem?.latestActivityAt ?? null, Number(unreadRows[0]?.unreadCount ?? 0) + Number(unreadAssistanceRows[0]?.unreadCount ?? 0), lastReadAt, assistanceIsLatest ? latestAssistance?.prompt ?? null : latestItem?.preview ?? null),
1819
1944
  };
1820
1945
  }
1821
- async function loadFailedRunData(orgId, userId, threadStates) {
1822
- const lastReadAtPromise = lastReadAtForThread(db, orgId, userId, "failed-runs", threadStates);
1823
- const [runRows, agentRows] = await Promise.all([
1946
+ async function loadFailedRunRows(orgId, userId) {
1947
+ const [runRows, requestRows, agentRows] = await Promise.all([
1824
1948
  db
1825
1949
  .select({
1826
1950
  id: heartbeatRuns.id,
@@ -1835,10 +1959,28 @@ export function messengerService(db) {
1835
1959
  contextSnapshot: heartbeatRuns.contextSnapshot,
1836
1960
  createdAt: heartbeatRuns.createdAt,
1837
1961
  updatedAt: heartbeatRuns.updatedAt,
1962
+ agentIssueCreationRequestId: agentIssueCreationRequests.id,
1963
+ agentIssueCreationRequestedByUserId: agentIssueCreationRequests.requestedByUserId,
1964
+ agentIssueCreationError: agentIssueCreationRequests.error,
1838
1965
  })
1839
1966
  .from(heartbeatRuns)
1967
+ .leftJoin(agentIssueCreationRequests, and(eq(agentIssueCreationRequests.orgId, heartbeatRuns.orgId), eq(agentIssueCreationRequests.runId, heartbeatRuns.id)))
1840
1968
  .where(and(eq(heartbeatRuns.orgId, orgId), eq(heartbeatRuns.status, "failed")))
1841
1969
  .orderBy(desc(heartbeatRuns.updatedAt), desc(heartbeatRuns.createdAt)),
1970
+ db
1971
+ .select({
1972
+ id: agentIssueCreationRequests.id,
1973
+ orgId: agentIssueCreationRequests.orgId,
1974
+ agentId: agentIssueCreationRequests.agentId,
1975
+ runId: agentIssueCreationRequests.runId,
1976
+ status: agentIssueCreationRequests.status,
1977
+ error: agentIssueCreationRequests.error,
1978
+ createdAt: agentIssueCreationRequests.createdAt,
1979
+ updatedAt: agentIssueCreationRequests.updatedAt,
1980
+ })
1981
+ .from(agentIssueCreationRequests)
1982
+ .where(and(eq(agentIssueCreationRequests.orgId, orgId), eq(agentIssueCreationRequests.requestedByUserId, userId), inArray(agentIssueCreationRequests.status, ["failed", "cancelled"]), isNull(agentIssueCreationRequests.createdIssueId)))
1983
+ .orderBy(desc(agentIssueCreationRequests.updatedAt), desc(agentIssueCreationRequests.createdAt)),
1842
1984
  db
1843
1985
  .select({
1844
1986
  id: agents.id,
@@ -1847,14 +1989,28 @@ export function messengerService(db) {
1847
1989
  .from(agents)
1848
1990
  .where(eq(agents.orgId, orgId)),
1849
1991
  ]);
1992
+ const linkedRequestIds = new Set(runRows
1993
+ .map((run) => run.agentIssueCreationRequestId)
1994
+ .filter((requestId) => Boolean(requestId)));
1995
+ return {
1996
+ runRows,
1997
+ requestRows: requestRows.filter((request) => !linkedRequestIds.has(request.id)),
1998
+ agentRows,
1999
+ };
2000
+ }
2001
+ async function loadFailedRunData(orgId, userId, threadStates) {
2002
+ const lastReadAtPromise = lastReadAtForThread(db, orgId, userId, "failed-runs", threadStates);
2003
+ const { runRows, requestRows, agentRows } = await loadFailedRunRows(orgId, userId);
1850
2004
  const lastReadAt = await lastReadAtPromise;
1851
2005
  const agentNames = new Map(agentRows.map((row) => [row.id, row.name]));
1852
2006
  const origins = await hydrateMessengerFailedRunOrigins(db, orgId, runRows);
1853
- const items = runRows.map((run) => failedRunCard(run, agentNames.get(run.agentId) ?? null, origins.get(run.id)));
2007
+ const runItems = runRows.map((run) => failedRunCard(run, agentNames.get(run.agentId) ?? null, origins.get(run.id), orgId, userId));
2008
+ const requestItems = requestRows.map((request) => failedAgentIssueRequestCard(request, agentNames.get(request.agentId) ?? null, orgId));
2009
+ const items = [...runItems, ...requestItems];
1854
2010
  const latestFirstItems = [...items].sort(compareLatestActivity);
1855
2011
  const chronologicalItems = [...items].sort(compareChronologicalActivity);
1856
2012
  const latestActivityAt = latestFirstItems[0]?.latestActivityAt ?? null;
1857
- const unreadCount = systemUnreadCountSince(runRows, lastReadAt);
2013
+ const unreadCount = systemUnreadCountSince([...runRows, ...requestRows], lastReadAt);
1858
2014
  return {
1859
2015
  summary: systemSummary("failed-runs", "Failed runs", runRows.length, latestActivityAt, unreadCount, lastReadAt, "No failed runs yet", latestFirstItems[0]?.preview ?? null),
1860
2016
  detail: {
@@ -1876,43 +2032,23 @@ export function messengerService(db) {
1876
2032
  }
1877
2033
  async function loadFailedRunSummaryData(orgId, userId, threadStates) {
1878
2034
  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;
2035
+ const { runRows, requestRows } = await loadFailedRunRows(orgId, userId);
2036
+ const failureRows = [...runRows, ...requestRows];
2037
+ const itemCount = failureRows.length;
2038
+ const latestRow = [...failureRows].sort((a, b) => {
2039
+ const aTime = normalizeDate(a.updatedAt ?? a.createdAt)?.getTime() ?? Number.NEGATIVE_INFINITY;
2040
+ const bTime = normalizeDate(b.updatedAt ?? b.createdAt)?.getTime() ?? Number.NEGATIVE_INFINITY;
2041
+ return bTime - aTime;
2042
+ })[0] ?? null;
2043
+ const unreadCount = systemUnreadCountSince(failureRows, lastReadAt);
2044
+ const latestPreview = latestRow
2045
+ ? "agentIssueCreationRequestId" in latestRow
2046
+ ? failedRunSummary(latestRow)
2047
+ : failedAgentIssueRequestSummary(latestRow)
2048
+ : null;
1913
2049
  return {
1914
2050
  itemCount,
1915
- summary: systemSummary("failed-runs", "Failed runs", itemCount, normalizeDate(summaryRow?.latestActivityAt ?? null), unreadCount, lastReadAt, "No failed runs yet", latestRun ? failedRunUserSummary(latestRun) : null),
2051
+ summary: systemSummary("failed-runs", "Failed runs", itemCount, normalizeDate(latestRow?.updatedAt ?? latestRow?.createdAt ?? null), unreadCount, lastReadAt, "No failed runs yet", latestPreview),
1916
2052
  };
1917
2053
  }
1918
2054
  async function loadBudgetAlertData(orgId, userId, threadStates) {
@@ -2238,7 +2374,7 @@ export function messengerService(db) {
2238
2374
  where automation_notification_activity.org_id = ${orgId}
2239
2375
  and automation_notification_activity.entity_type = 'issue'
2240
2376
  and automation_notification_activity.entity_id = ${issues.id}::text
2241
- and automation_notification_activity.action = 'automation.issue_created_notification'
2377
+ and automation_notification_activity.action in ('automation.issue_created_notification', 'agent.issue_created_notification')
2242
2378
  and automation_notification_activity.details->>'userId' = ${userId}
2243
2379
  )`)))
2244
2380
  .limit(1);