@rudderhq/server 0.7.10 → 0.7.12

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 (260) hide show
  1. package/dist/bootstrap/register-api-routes.d.ts.map +1 -1
  2. package/dist/bootstrap/register-api-routes.js +1 -1
  3. package/dist/bootstrap/register-api-routes.js.map +1 -1
  4. package/dist/bootstrap/types.d.ts +7 -0
  5. package/dist/bootstrap/types.d.ts.map +1 -1
  6. package/dist/index.js +18 -3
  7. package/dist/index.js.map +1 -1
  8. package/dist/routes/agents.management-routes.d.ts.map +1 -1
  9. package/dist/routes/agents.management-routes.js +2 -0
  10. package/dist/routes/agents.management-routes.js.map +1 -1
  11. package/dist/routes/chats.d.ts +2 -1
  12. package/dist/routes/chats.d.ts.map +1 -1
  13. package/dist/routes/chats.js +356 -7
  14. package/dist/routes/chats.js.map +1 -1
  15. package/dist/routes/chats.stream-routes.d.ts.map +1 -1
  16. package/dist/routes/chats.stream-routes.js +55 -3
  17. package/dist/routes/chats.stream-routes.js.map +1 -1
  18. package/dist/routes/goals.d.ts.map +1 -1
  19. package/dist/routes/goals.js +68 -7
  20. package/dist/routes/goals.js.map +1 -1
  21. package/dist/routes/issues.mutations.d.ts.map +1 -1
  22. package/dist/routes/issues.mutations.js +3 -0
  23. package/dist/routes/issues.mutations.js.map +1 -1
  24. package/dist/routes/orgs.d.ts.map +1 -1
  25. package/dist/routes/orgs.js +22 -1
  26. package/dist/routes/orgs.js.map +1 -1
  27. package/dist/routes/run-intelligence.d.ts.map +1 -1
  28. package/dist/routes/run-intelligence.js +9 -0
  29. package/dist/routes/run-intelligence.js.map +1 -1
  30. package/dist/services/agent-instructions.d.ts +1 -0
  31. package/dist/services/agent-instructions.d.ts.map +1 -1
  32. package/dist/services/agent-instructions.js +124 -6
  33. package/dist/services/agent-instructions.js.map +1 -1
  34. package/dist/services/agent-run-context.d.ts.map +1 -1
  35. package/dist/services/agent-run-context.js +15 -0
  36. package/dist/services/agent-run-context.js.map +1 -1
  37. package/dist/services/agent-startup-context.d.ts +5 -1
  38. package/dist/services/agent-startup-context.d.ts.map +1 -1
  39. package/dist/services/agent-startup-context.js +67 -14
  40. package/dist/services/agent-startup-context.js.map +1 -1
  41. package/dist/services/agents.d.ts +218 -0
  42. package/dist/services/agents.d.ts.map +1 -1
  43. package/dist/services/automations.d.ts.map +1 -1
  44. package/dist/services/automations.js +3 -0
  45. package/dist/services/automations.js.map +1 -1
  46. package/dist/services/chat-agent-runs.d.ts +47 -1
  47. package/dist/services/chat-agent-runs.d.ts.map +1 -1
  48. package/dist/services/chat-agent-runs.js +91 -1
  49. package/dist/services/chat-agent-runs.js.map +1 -1
  50. package/dist/services/chat-assistant.d.ts.map +1 -1
  51. package/dist/services/chat-assistant.helpers.d.ts +12 -3
  52. package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
  53. package/dist/services/chat-assistant.helpers.js +3 -0
  54. package/dist/services/chat-assistant.helpers.js.map +1 -1
  55. package/dist/services/chat-assistant.js +65 -19
  56. package/dist/services/chat-assistant.js.map +1 -1
  57. package/dist/services/chat-generation-protocol.d.ts +119 -0
  58. package/dist/services/chat-generation-protocol.d.ts.map +1 -1
  59. package/dist/services/chat-generation-protocol.js +65 -0
  60. package/dist/services/chat-generation-protocol.js.map +1 -1
  61. package/dist/services/chats.constants.d.ts +1 -1
  62. package/dist/services/chats.constants.d.ts.map +1 -1
  63. package/dist/services/chats.constants.js +1 -0
  64. package/dist/services/chats.constants.js.map +1 -1
  65. package/dist/services/chats.d.ts +213 -0
  66. package/dist/services/chats.d.ts.map +1 -1
  67. package/dist/services/chats.js +46 -1
  68. package/dist/services/chats.js.map +1 -1
  69. package/dist/services/goals.d.ts +133 -5
  70. package/dist/services/goals.d.ts.map +1 -1
  71. package/dist/services/goals.js +260 -3
  72. package/dist/services/goals.js.map +1 -1
  73. package/dist/services/heartbeat-run-reference.d.ts.map +1 -1
  74. package/dist/services/heartbeat-run-reference.js +11 -5
  75. package/dist/services/heartbeat-run-reference.js.map +1 -1
  76. package/dist/services/index.d.ts +2 -1
  77. package/dist/services/index.d.ts.map +1 -1
  78. package/dist/services/index.js +2 -1
  79. package/dist/services/index.js.map +1 -1
  80. package/dist/services/integrations/feishu/runtime.d.ts +8 -0
  81. package/dist/services/integrations/feishu/runtime.d.ts.map +1 -1
  82. package/dist/services/integrations/feishu/runtime.js +124 -1
  83. package/dist/services/integrations/feishu/runtime.js.map +1 -1
  84. package/dist/services/issues.d.ts.map +1 -1
  85. package/dist/services/issues.helpers.d.ts +8 -0
  86. package/dist/services/issues.helpers.d.ts.map +1 -1
  87. package/dist/services/issues.helpers.js +17 -1
  88. package/dist/services/issues.helpers.js.map +1 -1
  89. package/dist/services/issues.js +108 -15
  90. package/dist/services/issues.js.map +1 -1
  91. package/dist/services/messenger.d.ts.map +1 -1
  92. package/dist/services/messenger.js +12 -3
  93. package/dist/services/messenger.js.map +1 -1
  94. package/dist/services/organization-members.d.ts +27 -0
  95. package/dist/services/organization-members.d.ts.map +1 -0
  96. package/dist/services/organization-members.js +169 -0
  97. package/dist/services/organization-members.js.map +1 -0
  98. package/dist/services/organization-workspace-browser.d.ts.map +1 -1
  99. package/dist/services/organization-workspace-browser.js +44 -10
  100. package/dist/services/organization-workspace-browser.js.map +1 -1
  101. package/dist/services/product-intelligence.d.ts.map +1 -1
  102. package/dist/services/product-intelligence.js +4 -0
  103. package/dist/services/product-intelligence.js.map +1 -1
  104. package/dist/services/projects.d.ts +1 -4
  105. package/dist/services/projects.d.ts.map +1 -1
  106. package/dist/services/projects.js +27 -2
  107. package/dist/services/projects.js.map +1 -1
  108. package/dist/services/rudder-plugin-catalog.d.ts +1 -1
  109. package/dist/services/rudder-plugin-catalog.d.ts.map +1 -1
  110. package/dist/services/rudder-plugin-catalog.js +281 -15
  111. package/dist/services/rudder-plugin-catalog.js.map +1 -1
  112. package/dist/services/rudder-plugin-catalog.test.js +55 -0
  113. package/dist/services/rudder-plugin-catalog.test.js.map +1 -1
  114. package/dist/services/run-intelligence.d.ts.map +1 -1
  115. package/dist/services/run-intelligence.js +2 -1
  116. package/dist/services/run-intelligence.js.map +1 -1
  117. package/dist/services/run-log-store.d.ts +3 -0
  118. package/dist/services/run-log-store.d.ts.map +1 -1
  119. package/dist/services/run-log-store.js +124 -18
  120. package/dist/services/run-log-store.js.map +1 -1
  121. package/dist/services/runtime-kernel/assignment-run-guardrail.d.ts +80 -23
  122. package/dist/services/runtime-kernel/assignment-run-guardrail.d.ts.map +1 -1
  123. package/dist/services/runtime-kernel/assignment-run-guardrail.js +230 -5
  124. package/dist/services/runtime-kernel/assignment-run-guardrail.js.map +1 -1
  125. package/dist/services/runtime-kernel/assignment-run-guardrail.test.js +122 -2
  126. package/dist/services/runtime-kernel/assignment-run-guardrail.test.js.map +1 -1
  127. package/dist/services/runtime-kernel/heartbeat-attempt-ledger.d.ts +124 -0
  128. package/dist/services/runtime-kernel/heartbeat-attempt-ledger.d.ts.map +1 -0
  129. package/dist/services/runtime-kernel/heartbeat-attempt-ledger.js +108 -0
  130. package/dist/services/runtime-kernel/heartbeat-attempt-ledger.js.map +1 -0
  131. package/dist/services/runtime-kernel/heartbeat.core.d.ts +111 -0
  132. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
  133. package/dist/services/runtime-kernel/heartbeat.core.js +13 -0
  134. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
  135. package/dist/services/runtime-kernel/heartbeat.d.ts +34 -0
  136. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  137. package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -1
  138. package/dist/services/runtime-kernel/heartbeat.execute.js +312 -16
  139. package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -1
  140. package/dist/services/runtime-kernel/heartbeat.js +205 -8
  141. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  142. package/dist/services/runtime-kernel/heartbeat.sessions.d.ts.map +1 -1
  143. package/dist/services/runtime-kernel/heartbeat.sessions.js +15 -3
  144. package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -1
  145. package/dist/services/runtime-kernel/heartbeat.terminal.d.ts +48 -0
  146. package/dist/services/runtime-kernel/heartbeat.terminal.d.ts.map +1 -1
  147. package/dist/services/runtime-kernel/heartbeat.wakeup.js +1 -1
  148. package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -1
  149. package/dist/services/runtime-kernel/model-fallback.d.ts +4 -0
  150. package/dist/services/runtime-kernel/model-fallback.d.ts.map +1 -1
  151. package/dist/services/runtime-kernel/model-fallback.js +25 -4
  152. package/dist/services/runtime-kernel/model-fallback.js.map +1 -1
  153. package/dist/services/workspace-backup-v2.d.ts +20 -0
  154. package/dist/services/workspace-backup-v2.d.ts.map +1 -1
  155. package/dist/services/workspace-backup-v2.js +155 -23
  156. package/dist/services/workspace-backup-v2.js.map +1 -1
  157. package/dist/services/workspace-backup-v2.test.js +34 -2
  158. package/dist/services/workspace-backup-v2.test.js.map +1 -1
  159. package/dist/services/workspace-backups.d.ts +0 -1
  160. package/dist/services/workspace-backups.d.ts.map +1 -1
  161. package/dist/services/workspace-backups.js +18 -19
  162. package/dist/services/workspace-backups.js.map +1 -1
  163. package/dist/services/workspace-manifest-native.d.ts +10 -0
  164. package/dist/services/workspace-manifest-native.d.ts.map +1 -0
  165. package/dist/services/workspace-manifest-native.js +219 -0
  166. package/dist/services/workspace-manifest-native.js.map +1 -0
  167. package/dist/services/workspace-restore-reconciliation.d.ts +11 -0
  168. package/dist/services/workspace-restore-reconciliation.d.ts.map +1 -0
  169. package/dist/services/workspace-restore-reconciliation.js +165 -0
  170. package/dist/services/workspace-restore-reconciliation.js.map +1 -0
  171. package/package.json +14 -14
  172. package/resources/bundled-skills/rudder-docs/references/api-reference.md +8 -0
  173. package/resources/bundled-skills/rudder-docs/references/cli-reference.md +14 -8
  174. package/skills/rudder-docs/references/api-reference.md +8 -0
  175. package/skills/rudder-docs/references/cli-reference.md +14 -8
  176. package/ui-dist/assets/LibraryLiveSurface-tCWxJKp5.js +1 -0
  177. package/ui-dist/assets/{abnfDiagram-VRR7QNED-CG3j5RmW.js → abnfDiagram-VRR7QNED-BcCms-hs.js} +1 -1
  178. package/ui-dist/assets/{addon-fit-D07m_e8_.js → addon-fit-CH3xNHN4.js} +1 -1
  179. package/ui-dist/assets/{arc-B2RI9_Dw.js → arc-h5W-EkRK.js} +1 -1
  180. package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-C5v1tMZi.js → architectureDiagram-ZJ3FMSHR-Bdehm1PB.js} +1 -1
  181. package/ui-dist/assets/{blockDiagram-677ZJIJ3-CgcSNhl8.js → blockDiagram-677ZJIJ3-BJ3W91Su.js} +1 -1
  182. package/ui-dist/assets/{c4Diagram-LMCZKHZV-B7qmWb0f.js → c4Diagram-LMCZKHZV-Bnft_fRy.js} +1 -1
  183. package/ui-dist/assets/channel-G6qIOCiV.js +1 -0
  184. package/ui-dist/assets/{chunk-2Q5K7J3B-cNlq0MJR.js → chunk-2Q5K7J3B-w1SF0tSk.js} +1 -1
  185. package/ui-dist/assets/{chunk-32BRIVSS-rcxFQzYk.js → chunk-32BRIVSS-C1UzXTFZ.js} +1 -1
  186. package/ui-dist/assets/{chunk-5VM5RSS4-9PSO_t10.js → chunk-5VM5RSS4-COVI3rNd.js} +1 -1
  187. package/ui-dist/assets/{chunk-EX3LRPZG-BlOFcT4O.js → chunk-EX3LRPZG-DxQOLy7z.js} +1 -1
  188. package/ui-dist/assets/{chunk-JWPE2WC7-B2Jgd3wO.js → chunk-JWPE2WC7-KTwmElcL.js} +1 -1
  189. package/ui-dist/assets/{chunk-MOJQB5TN-CaAqG9fp.js → chunk-MOJQB5TN-BynL4lzA.js} +1 -1
  190. package/ui-dist/assets/{chunk-RYQCIY6F-BDI7azm6.js → chunk-RYQCIY6F-CJksBfuJ.js} +1 -1
  191. package/ui-dist/assets/{chunk-V7JOEXUC-B-P0KC6p.js → chunk-V7JOEXUC-C_zED5WJ.js} +1 -1
  192. package/ui-dist/assets/{chunk-VR4S4FIN-CMfw-kF9.js → chunk-VR4S4FIN-BHDtMeiT.js} +1 -1
  193. package/ui-dist/assets/{chunk-XXDRQBXY-BBVqU1YP.js → chunk-XXDRQBXY-C0VvJgte.js} +1 -1
  194. package/ui-dist/assets/classDiagram-OUVF2IWQ-D15_PFCL.js +1 -0
  195. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-D15_PFCL.js +1 -0
  196. package/ui-dist/assets/{cose-bilkent-JH36ORCC-B_hARQDI.js → cose-bilkent-JH36ORCC-DsTTzpP7.js} +1 -1
  197. package/ui-dist/assets/{cynefin-VYW2F7L2-CTcM0j1n.js → cynefin-VYW2F7L2-BfULw90s.js} +1 -1
  198. package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-CL7MmdPn.js → cynefinDiagram-TSTJHNR4-BukSzKVC.js} +1 -1
  199. package/ui-dist/assets/{dagre-VKFMJZFB-mhGwmtXN.js → dagre-VKFMJZFB-BbZY_Ipf.js} +1 -1
  200. package/ui-dist/assets/{diagram-FQU43EPY-BMjw7iEL.js → diagram-FQU43EPY-BTYIYn2p.js} +1 -1
  201. package/ui-dist/assets/{diagram-G47NLZAW-BsTpJwdG.js → diagram-G47NLZAW-CikY_FKi.js} +1 -1
  202. package/ui-dist/assets/{diagram-NH7WQ7WH-Ne5TlLrd.js → diagram-NH7WQ7WH-BfZ7AlT8.js} +1 -1
  203. package/ui-dist/assets/{diagram-OA4YK3LP-YVpFkzL5.js → diagram-OA4YK3LP-f5AikxJj.js} +1 -1
  204. package/ui-dist/assets/{diagram-WEI45ONY-B5uEnE3n.js → diagram-WEI45ONY-BCbG5yas.js} +1 -1
  205. package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-i74y0Dqq.js → ebnfDiagram-CCIWWBDH-DT-3mJLY.js} +1 -1
  206. package/ui-dist/assets/{erDiagram-Q63AITRT-46MUSamZ.js → erDiagram-Q63AITRT-BsfOhDfe.js} +1 -1
  207. package/ui-dist/assets/{flowDiagram-23GEKE2U-C9jQx1Z9.js → flowDiagram-23GEKE2U-BfaeQCsg.js} +1 -1
  208. package/ui-dist/assets/{ganttDiagram-NO4QXBWP-BHoVYgnd.js → ganttDiagram-NO4QXBWP-CgPQruVz.js} +1 -1
  209. package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-BxCaqc4K.js → gitGraphDiagram-IHSO6WYX-CNrBFzjY.js} +1 -1
  210. package/ui-dist/assets/{graph-7yEA7MiX.js → graph-QqDTzUUJ.js} +1 -1
  211. package/ui-dist/assets/{index-55mSol35.js → index-2ZQZC89T.js} +1 -1
  212. package/ui-dist/assets/{index-Y9EFmtGV.js → index-2cYcOpZB.js} +1 -1
  213. package/ui-dist/assets/{index-Bk4h2xgb.js → index-BAt16m_U.js} +1 -1
  214. package/ui-dist/assets/{index-SnNVv85r.js → index-BY8xCKIE.js} +1 -1
  215. package/ui-dist/assets/{index-Bbr_dltJ.js → index-Befy20DN.js} +1 -1
  216. package/ui-dist/assets/{index-2l0f_0un.js → index-BfAP3xNl.js} +1 -1
  217. package/ui-dist/assets/{index-Cr_0vHJF.js → index-BogOyxlk.js} +1 -1
  218. package/ui-dist/assets/{index-BM2yCFug.js → index-BuIyK71w.js} +562 -557
  219. package/ui-dist/assets/{index-8SjcJx20.js → index-CQ92CxVC.js} +1 -1
  220. package/ui-dist/assets/{index-BMbspMfV.js → index-CQFwlD-o.js} +1 -1
  221. package/ui-dist/assets/{index-DEDA9JuC.js → index-Cu4qo_D7.js} +1 -1
  222. package/ui-dist/assets/index-DRuC5g8V.css +32 -0
  223. package/ui-dist/assets/{index-BYHrPlW0.js → index-DZ4gAeDM.js} +1 -1
  224. package/ui-dist/assets/{index-zsia7wHf.js → index-Dc_DUpPj.js} +1 -1
  225. package/ui-dist/assets/{index-CTe7L-bN.js → index-Dqv46mWS.js} +1 -1
  226. package/ui-dist/assets/{index-sorUqxO4.js → index-sFJMMyA3.js} +1 -1
  227. package/ui-dist/assets/{infoDiagram-FWYZ7A6U-tKN_HUk-.js → infoDiagram-FWYZ7A6U-BJHuaNA9.js} +1 -1
  228. package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-z7MJkWMv.js → ishikawaDiagram-FXEZZL3T-CmsA1Knp.js} +1 -1
  229. package/ui-dist/assets/{journeyDiagram-5HDEW3XC-CY9IRx-1.js → journeyDiagram-5HDEW3XC-iV_Nt9d4.js} +1 -1
  230. package/ui-dist/assets/{kanban-definition-HUTT4EX6-R6xzFCHM.js → kanban-definition-HUTT4EX6-D45s70Ny.js} +1 -1
  231. package/ui-dist/assets/{layout-BQx6ln2a.js → layout-DDC-iOzY.js} +1 -1
  232. package/ui-dist/assets/{linear-CH-dQ7Bg.js → linear-DCTJ7Pq3.js} +1 -1
  233. package/ui-dist/assets/{map-DmEHxVn2.js → map-RGy5k616.js} +1 -1
  234. package/ui-dist/assets/{mermaid.core-8TMqfMCO.js → mermaid.core-6MH04cvi.js} +4 -4
  235. package/ui-dist/assets/{mindmap-definition-LN4V7U3C-ClYlc1ss.js → mindmap-definition-LN4V7U3C-CA2LFmda.js} +1 -1
  236. package/ui-dist/assets/{pegDiagram-2B236MQR-DuQPcIJk.js → pegDiagram-2B236MQR-DDsUr2du.js} +1 -1
  237. package/ui-dist/assets/{pieDiagram-ENE6RG2P-Bc1fELpd.js → pieDiagram-ENE6RG2P-D7jEL8xK.js} +1 -1
  238. package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-DS9-N5ZO.js → quadrantDiagram-ABIIQ3AL-BsJxgVLb.js} +1 -1
  239. package/ui-dist/assets/{railroadDiagram-RFXS5EU6-BBAeUuch.js → railroadDiagram-RFXS5EU6-CBI457f6.js} +1 -1
  240. package/ui-dist/assets/{requirementDiagram-TGXJPOKE-BmDkrDi3.js → requirementDiagram-TGXJPOKE-_GAc0NOO.js} +1 -1
  241. package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-APPAQqTz.js → sankeyDiagram-HTMAVEWB-DNIaj5hu.js} +1 -1
  242. package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-B9G01Gl-.js → sequenceDiagram-DBY2YBRQ-BHDZs2dc.js} +1 -1
  243. package/ui-dist/assets/{sizeCapture-X5ZJPWSS-BYjnDqoI.js → sizeCapture-X5ZJPWSS-DwKT6aTP.js} +1 -1
  244. package/ui-dist/assets/{stateDiagram-2N3HPSRC-BQkWPBAj.js → stateDiagram-2N3HPSRC-D2hDsltG.js} +1 -1
  245. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-CMTeJdkk.js +1 -0
  246. package/ui-dist/assets/{swimlanes-5IMT3BWC-Cacv4UUq.js → swimlanes-5IMT3BWC-BV8xA0iq.js} +2 -2
  247. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-ChF8QLeM.js +8 -0
  248. package/ui-dist/assets/{timeline-definition-FHXFAJF6-COt3U2Pi.js → timeline-definition-FHXFAJF6-BPJMubhV.js} +1 -1
  249. package/ui-dist/assets/{vennDiagram-L72KCM5P-C7eLlxvT.js → vennDiagram-L72KCM5P-CY76J0Px.js} +1 -1
  250. package/ui-dist/assets/{wardleyDiagram-EHGQE667-Bufv0x60.js → wardleyDiagram-EHGQE667-pmNWLdE_.js} +1 -1
  251. package/ui-dist/assets/{xterm-BuWLsUNc.js → xterm-UByodpzD.js} +1 -1
  252. package/ui-dist/assets/{xychartDiagram-FW5EYKEG-9RQAf_Zw.js → xychartDiagram-FW5EYKEG-BWZC7gWV.js} +1 -1
  253. package/ui-dist/index.html +2 -2
  254. package/ui-dist/assets/LibraryLiveSurface-YMhPWwag.js +0 -1
  255. package/ui-dist/assets/channel-Cbzk2971.js +0 -1
  256. package/ui-dist/assets/classDiagram-OUVF2IWQ-hBDf22nr.js +0 -1
  257. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-hBDf22nr.js +0 -1
  258. package/ui-dist/assets/index-B_CDj4oF.css +0 -32
  259. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-BucPPlgK.js +0 -1
  260. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DPpGouCd.js +0 -8
@@ -12,8 +12,8 @@
12
12
  * - doc/product/domains/organizations-and-goals/goals-and-projects.md
13
13
  */
14
14
  import type { Db } from "@rudderhq/db";
15
- import { agents, goalActivities, goalChangeProposals, goalFeedbackEntries, goalOwnerAssignments, goalPlans, goalResultProposals, goals } from "@rudderhq/db";
16
- import type { AcceptGoalResultProposal, ActivateGoal, AssignGoalOwner, CreateGoalActivity, CreateGoalChangeProposal, CreateGoalFeedback, CreateGoalResultProposal, DecideGoalChangeProposal, EvaluateGoal, GoalContractPatch, GoalContractSnapshot, GoalDependencies, GoalEvaluationCandidate, GoalHistoryItem, GoalHistoryPage, GoalResultProposal, GoalResultReducerPreflight, GoalStartPreview, IssueAssigneeAgentRuntimeOverrides, PreviewGoalStart, PublicGoal, PublicGoalActivity, PublicGoalChangeProposal, PublicGoalOwnerAssignment, PublicGoalPlan, PublicGoalResultProposal, RejectGoalResultProposal, StartGoal, UpdateGoalPlan } from "@rudderhq/shared";
15
+ import { agents, goalActivities, goalChangeProposals, goalCheckpoints, goalFeedbackEntries, goalOwnerAssignments, goalPlans, goalResultProposals, goals } from "@rudderhq/db";
16
+ import type { AcceptGoalResultProposal, ActivateGoal, AssignGoalOwner, CreateGoalActivity, CreateGoalChangeProposal, CreateGoalFeedback, CreateGoalResultProposal, DecideGoalChangeProposal, EvaluateGoal, GoalCheckpointInput, GoalContractPatch, GoalContractSnapshot, GoalDependencies, GoalEvaluationCandidate, GoalHistoryItem, GoalHistoryPage, GoalResultProposal, GoalResultReducerPreflight, GoalStartPreview, IssueAssigneeAgentRuntimeOverrides, PreviewGoalStart, PublicGoal, PublicGoalActivity, PublicGoalChangeProposal, PublicGoalOwnerAssignment, PublicGoalPlan, PublicGoalResultProposal, RejectGoalResultProposal, StartGoal, UpdateGoalPlan } from "@rudderhq/shared";
17
17
  type GoalRow = typeof goals.$inferSelect;
18
18
  type GoalWakeupActor = {
19
19
  actorType: "user" | "agent" | "system";
@@ -24,7 +24,7 @@ type GoalWakeupDispatch = {
24
24
  wakeupRequestId: string;
25
25
  source: "on_demand";
26
26
  triggerDetail: "system";
27
- reason: "goal_started" | "goal_feedback" | "goal_change_decided";
27
+ reason: "goal_started" | "goal_feedback" | "goal_change_decided" | "goal_continuation";
28
28
  payload: Record<string, unknown>;
29
29
  contextSnapshot: Record<string, unknown>;
30
30
  requestedByActorType: GoalWakeupActor["actorType"];
@@ -45,6 +45,28 @@ type PublicEvidenceOptions = {
45
45
  export declare function publicGoalText(value: string): string;
46
46
  export declare function publicGoalView(goal: GoalRow): PublicGoal;
47
47
  export declare function publicGoalActivity(activity: typeof goalActivities.$inferSelect, options?: PublicEvidenceOptions): PublicGoalActivity;
48
+ export declare function publicGoalCheckpoint(checkpoint: typeof goalCheckpoints.$inferSelect): {
49
+ id: string;
50
+ orgId: string;
51
+ goalId: string;
52
+ runId: string;
53
+ ownerAgentId: string;
54
+ submittedByAgentId: string;
55
+ inputHash: string;
56
+ idempotencyKey: string;
57
+ summary: string;
58
+ evidenceRefs: string[];
59
+ planPayload: Record<string, unknown> | null;
60
+ planRevisionBefore: number;
61
+ planRevisionAfter: number;
62
+ continuation: {
63
+ kind: "commitment" | "wait" | "decision" | "verification";
64
+ summary: string;
65
+ wakeCondition: string | null;
66
+ };
67
+ continuationWakeupRequestId: string | null;
68
+ createdAt: Date;
69
+ };
48
70
  export declare function publicGoalDetail(input: GoalRow & {
49
71
  ownerAssignment: typeof goalOwnerAssignments.$inferSelect | null;
50
72
  plan: typeof goalPlans.$inferSelect | null;
@@ -62,6 +84,7 @@ export declare function publicGoalDetail(input: GoalRow & {
62
84
  } | null;
63
85
  activities: PublicGoalActivity[];
64
86
  id: string;
87
+ shortRef?: string;
65
88
  orgId: string;
66
89
  title: string;
67
90
  description: string | null;
@@ -1243,6 +1266,41 @@ export declare function goalService(db: Db): {
1243
1266
  createdAt: Date;
1244
1267
  updatedAt: Date;
1245
1268
  }>;
1269
+ resolveByReference: (orgId: string, reference: string) => Promise<{
1270
+ readonly goal: {
1271
+ id: string;
1272
+ orgId: string;
1273
+ title: string;
1274
+ description: string | null;
1275
+ alignmentQuestion: string | null;
1276
+ outcomeStatement: string | null;
1277
+ objectiveMode: string;
1278
+ lifecycle: string;
1279
+ contractRevision: number;
1280
+ criteria: unknown[];
1281
+ autonomyEnvelope: Record<string, unknown>;
1282
+ humanAuthorities: Record<string, unknown>;
1283
+ evaluationPolicy: Record<string, unknown>;
1284
+ actionDeadline: Date | null;
1285
+ evaluationDeadline: Date | null;
1286
+ evaluationResult: Record<string, unknown> | null;
1287
+ closeReason: string | null;
1288
+ resultPayload: Record<string, unknown> | null;
1289
+ focus: boolean;
1290
+ planRevision: number;
1291
+ continuationKind: string | null;
1292
+ continuationSummary: string | null;
1293
+ wakeCondition: string | null;
1294
+ level: string;
1295
+ status: string;
1296
+ parentId: string | null;
1297
+ ownerAgentId: string | null;
1298
+ ownerAgentRuntimeOverrides: IssueAssigneeAgentRuntimeOverrides | null;
1299
+ createdAt: Date;
1300
+ updatedAt: Date;
1301
+ } | null;
1302
+ readonly ambiguous: boolean;
1303
+ }>;
1246
1304
  getChangeProposalById: (id: string) => Promise<{
1247
1305
  id: string;
1248
1306
  orgId: string;
@@ -1467,6 +1525,53 @@ export declare function goalService(db: Db): {
1467
1525
  createdAt: Date;
1468
1526
  updatedAt: Date;
1469
1527
  }>;
1528
+ latestCheckpoint: (id: string) => Promise<{
1529
+ id: string;
1530
+ orgId: string;
1531
+ goalId: string;
1532
+ runId: string;
1533
+ ownerAgentId: string;
1534
+ submittedByAgentId: string;
1535
+ inputHash: string;
1536
+ idempotencyKey: string;
1537
+ summary: string;
1538
+ evidenceRefs: string[];
1539
+ planPayload: Record<string, unknown> | null;
1540
+ planRevisionBefore: number;
1541
+ planRevisionAfter: number;
1542
+ continuationKind: "commitment" | "wait" | "decision" | "verification";
1543
+ continuationSummary: string;
1544
+ wakeCondition: string | null;
1545
+ continuationWakeupRequestId: string | null;
1546
+ createdAt: Date;
1547
+ }>;
1548
+ recentCheckpoints: (id: string) => Promise<{
1549
+ id: string;
1550
+ orgId: string;
1551
+ goalId: string;
1552
+ runId: string;
1553
+ ownerAgentId: string;
1554
+ submittedByAgentId: string;
1555
+ inputHash: string;
1556
+ idempotencyKey: string;
1557
+ summary: string;
1558
+ evidenceRefs: string[];
1559
+ planPayload: Record<string, unknown> | null;
1560
+ planRevisionBefore: number;
1561
+ planRevisionAfter: number;
1562
+ continuationKind: "commitment" | "wait" | "decision" | "verification";
1563
+ continuationSummary: string;
1564
+ wakeCondition: string | null;
1565
+ continuationWakeupRequestId: string | null;
1566
+ createdAt: Date;
1567
+ }[]>;
1568
+ pendingContinuationWake: (id: string) => Promise<{
1569
+ id: string;
1570
+ status: string;
1571
+ planRevision: number | null;
1572
+ checkpointId: string | null;
1573
+ continuation: Record<string, unknown>;
1574
+ } | null>;
1470
1575
  create: (orgId: string, data: {
1471
1576
  title: string;
1472
1577
  description?: string | null;
@@ -1593,6 +1698,29 @@ export declare function goalService(db: Db): {
1593
1698
  invalidationConditions: unknown[];
1594
1699
  createdByAgentId: string | null;
1595
1700
  }>;
1701
+ checkpoint: (id: string, input: GoalCheckpointInput, actorAgentId: string | null, actorRunId: string | null) => Promise<{
1702
+ checkpoint: {
1703
+ id: string;
1704
+ runId: string;
1705
+ summary: string;
1706
+ orgId: string;
1707
+ ownerAgentId: string;
1708
+ createdAt: Date;
1709
+ goalId: string;
1710
+ wakeCondition: string | null;
1711
+ evidenceRefs: string[];
1712
+ idempotencyKey: string;
1713
+ continuationSummary: string;
1714
+ continuationKind: "commitment" | "wait" | "decision" | "verification";
1715
+ submittedByAgentId: string;
1716
+ inputHash: string;
1717
+ planPayload: Record<string, unknown> | null;
1718
+ planRevisionBefore: number;
1719
+ planRevisionAfter: number;
1720
+ continuationWakeupRequestId: string | null;
1721
+ };
1722
+ dispatch: GoalWakeupDispatch | null;
1723
+ }>;
1596
1724
  listActivities: (id: string) => Omit<import("drizzle-orm/pg-core").PgSelectBase<"goal_activities", {
1597
1725
  id: import("drizzle-orm/pg-core").PgColumn<{
1598
1726
  name: "id";
@@ -2098,10 +2226,10 @@ export declare function goalService(db: Db): {
2098
2226
  orgId: string;
2099
2227
  createdAt: Date;
2100
2228
  goalId: string;
2101
- commitmentRef: string | null;
2102
- runRef: string | null;
2103
2229
  evidenceRefs: unknown[];
2104
2230
  idempotencyKey: string | null;
2231
+ commitmentRef: string | null;
2232
+ runRef: string | null;
2105
2233
  occurredAt: Date;
2106
2234
  contractRevision: number;
2107
2235
  submittedByAgentId: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"goals.d.ts","sourceRoot":"","sources":["../../src/services/goals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"goals.d.ts","sourceRoot":"","sources":["../../src/services/goals.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,17 @@
1
- import { agentWakeupRequests, agents, approvals, assets, authUsers, automations, calendarEvents, costEvents, financeEvents, goalActivities, goalChangeProposals, goalFeedbackEntries, goalOwnerAssignments, goalPlans, goalResultProposals, goalStartRequests, goals, heartbeatRuns, issues, organizations, projectGoals, projects, } from "@rudderhq/db";
2
- import { activateGoalSchema, parseLibraryEntryMentionHref, parseLibraryFileMentionHref } from "@rudderhq/shared";
1
+ import { agentWakeupRequests, agents, approvals, assets, authUsers, automations, calendarEvents, costEvents, financeEvents, goalActivities, goalChangeProposals, goalCheckpoints, goalFeedbackEntries, goalOwnerAssignments, goalPlans, goalResultProposals, goalStartRequests, goals, heartbeatRuns, issues, organizations, projectGoals, projects, } from "@rudderhq/db";
2
+ import { activateGoalSchema, parseLibraryEntryMentionHref, parseLibraryFileMentionHref, parseShortRef, shortRefFor } from "@rudderhq/shared";
3
3
  import { and, asc, desc, eq, gt, inArray, isNotNull, isNull, lt, or, sql } from "drizzle-orm";
4
4
  import { createHash, randomUUID } from "node:crypto";
5
5
  import { badRequest, conflict, forbidden, notFound, unprocessable } from "../errors.js";
6
6
  import { buildDeferredWakePayload, readDeferredWakePayload } from "./runtime-kernel/heartbeat.sessions.js";
7
+ function safeGoalShortRef(id) {
8
+ try {
9
+ return shortRefFor("goal", id);
10
+ }
11
+ catch {
12
+ return undefined;
13
+ }
14
+ }
7
15
  const DEPENDENCY_PREVIEW_LIMIT = 5;
8
16
  const GOAL_HISTORY_DEFAULT_LIMIT = 50;
9
17
  const GOAL_HISTORY_MAX_LIMIT = 100;
@@ -364,6 +372,7 @@ export function publicGoalView(goal) {
364
372
  const evaluation = publicGoalRecord(goal.evaluationResult);
365
373
  return {
366
374
  id: goal.id,
375
+ ...(safeGoalShortRef(goal.id) ? { shortRef: safeGoalShortRef(goal.id) } : {}),
367
376
  orgId: goal.orgId,
368
377
  title: goal.title,
369
378
  description: goal.description,
@@ -400,6 +409,30 @@ export function publicGoalActivity(activity, options = {}) {
400
409
  createdAt: activity.createdAt,
401
410
  };
402
411
  }
412
+ export function publicGoalCheckpoint(checkpoint) {
413
+ return {
414
+ id: checkpoint.id,
415
+ orgId: checkpoint.orgId,
416
+ goalId: checkpoint.goalId,
417
+ runId: checkpoint.runId,
418
+ ownerAgentId: checkpoint.ownerAgentId,
419
+ submittedByAgentId: checkpoint.submittedByAgentId,
420
+ inputHash: checkpoint.inputHash,
421
+ idempotencyKey: checkpoint.idempotencyKey,
422
+ summary: publicGoalText(checkpoint.summary),
423
+ evidenceRefs: checkpoint.evidenceRefs,
424
+ planPayload: checkpoint.planPayload,
425
+ planRevisionBefore: checkpoint.planRevisionBefore,
426
+ planRevisionAfter: checkpoint.planRevisionAfter,
427
+ continuation: {
428
+ kind: checkpoint.continuationKind,
429
+ summary: publicGoalText(checkpoint.continuationSummary),
430
+ wakeCondition: checkpoint.wakeCondition,
431
+ },
432
+ continuationWakeupRequestId: checkpoint.continuationWakeupRequestId,
433
+ createdAt: checkpoint.createdAt,
434
+ };
435
+ }
403
436
  export function publicGoalDetail(input, options = {}) {
404
437
  return {
405
438
  ...publicGoalView(input),
@@ -1012,15 +1045,47 @@ export function goalService(db) {
1012
1045
  ]), isNull(agentWakeupRequests.runId))).orderBy(desc(agentWakeupRequests.requestedAt)).limit(1)
1013
1046
  .then((rows) => rows[0] ?? null);
1014
1047
  }
1048
+ async function cancelPendingGoalContinuationWakes(database, goalId, reason) {
1049
+ const pending = await database.select({
1050
+ id: agentWakeupRequests.id,
1051
+ runId: agentWakeupRequests.runId,
1052
+ }).from(agentWakeupRequests).where(and(sql `${agentWakeupRequests.payload} ->> 'goalId' = ${goalId}`, eq(agentWakeupRequests.reason, "goal_continuation"), inArray(agentWakeupRequests.status, ["queued", "deferred_goal_focus", "deferred_agent_paused", "deferred_goal_blocked"])));
1053
+ if (pending.length === 0)
1054
+ return;
1055
+ const now = new Date();
1056
+ for (const wake of pending) {
1057
+ if (wake.runId) {
1058
+ await database.update(heartbeatRuns).set({
1059
+ status: "cancelled",
1060
+ finishedAt: now,
1061
+ error: reason,
1062
+ errorCode: "goal.result_proposal_ready",
1063
+ updatedAt: now,
1064
+ }).where(and(eq(heartbeatRuns.id, wake.runId), eq(heartbeatRuns.status, "queued")));
1065
+ }
1066
+ await database.update(agentWakeupRequests).set({
1067
+ status: "cancelled",
1068
+ finishedAt: now,
1069
+ error: reason,
1070
+ updatedAt: now,
1071
+ }).where(and(eq(agentWakeupRequests.id, wake.id), inArray(agentWakeupRequests.status, ["queued", "deferred_goal_focus", "deferred_agent_paused", "deferred_goal_blocked"])));
1072
+ }
1073
+ }
1015
1074
  async function ensureGoalWakeupIntent(database, goal, input) {
1016
1075
  if (!goal.ownerAgentId)
1017
1076
  throw conflict("Goal has no Owner Agent to wake");
1077
+ const currentPlan = goal.planRevision > 0
1078
+ ? await database.select().from(goalPlans).where(and(eq(goalPlans.goalId, goal.id), eq(goalPlans.revision, goal.planRevision))).then((rows) => rows[0] ?? null)
1079
+ : null;
1080
+ const latestCheckpoint = await database.select().from(goalCheckpoints).where(eq(goalCheckpoints.goalId, goal.id)).orderBy(desc(goalCheckpoints.createdAt)).limit(1).then((rows) => rows[0] ?? null);
1018
1081
  const taskKey = `goal:${goal.id}:${input.event}:${input.eventId}`;
1019
1082
  const idempotencyKey = input.event === "goal_started"
1020
1083
  ? `goal-start:${input.eventId}`
1021
1084
  : input.event === "goal_feedback"
1022
1085
  ? `goal-feedback:${input.eventId}`
1023
- : `goal-change-decision:${input.eventId}:${input.decision?.decision ?? "unknown"}`;
1086
+ : input.event === "goal_change_decided"
1087
+ ? `goal-change-decision:${input.eventId}:${input.decision?.decision ?? "unknown"}`
1088
+ : `goal-continuation:${input.eventId}`;
1024
1089
  const payload = {
1025
1090
  event: input.event,
1026
1091
  goalId: goal.id,
@@ -1028,6 +1093,15 @@ export function goalService(db) {
1028
1093
  ...(input.event === "goal_started" ? { goalStartRequestId: input.eventId } : {}),
1029
1094
  ...(input.feedback ? { feedbackId: input.feedback.id } : {}),
1030
1095
  ...(input.decision ? { goalChangeProposalId: input.eventId, decision: input.decision.decision } : {}),
1096
+ ...(input.continuation ? {
1097
+ checkpointId: input.eventId,
1098
+ planRevision: input.continuation.planRevision,
1099
+ continuation: {
1100
+ kind: input.continuation.kind,
1101
+ summary: input.continuation.summary,
1102
+ wakeCondition: input.continuation.wakeCondition ?? null,
1103
+ },
1104
+ } : {}),
1031
1105
  };
1032
1106
  const contextSnapshot = {
1033
1107
  goalId: goal.id,
@@ -1046,6 +1120,18 @@ export function goalService(db) {
1046
1120
  actionDeadline: goal.actionDeadline,
1047
1121
  evaluationDeadline: goal.evaluationDeadline,
1048
1122
  },
1123
+ goalPlan: currentPlan
1124
+ ? {
1125
+ revision: currentPlan.revision,
1126
+ summary: currentPlan.summary,
1127
+ hypotheses: currentPlan.hypotheses,
1128
+ selectedPaths: currentPlan.selectedPaths,
1129
+ rejectedPaths: currentPlan.rejectedPaths,
1130
+ sequencing: currentPlan.sequencing,
1131
+ budgetAllocations: currentPlan.budgetAllocations,
1132
+ invalidationConditions: currentPlan.invalidationConditions,
1133
+ }
1134
+ : null,
1049
1135
  goalContinuation: {
1050
1136
  kind: goal.continuationKind,
1051
1137
  summary: goal.continuationSummary,
@@ -1066,6 +1152,21 @@ export function goalService(db) {
1066
1152
  status: input.decision.status,
1067
1153
  },
1068
1154
  } : {}),
1155
+ ...(latestCheckpoint ? {
1156
+ goalCheckpoint: {
1157
+ id: latestCheckpoint.id,
1158
+ summary: latestCheckpoint.summary,
1159
+ evidenceRefs: latestCheckpoint.evidenceRefs,
1160
+ planRevisionBefore: latestCheckpoint.planRevisionBefore,
1161
+ planRevisionAfter: latestCheckpoint.planRevisionAfter,
1162
+ continuationWakeupRequestId: latestCheckpoint.continuationWakeupRequestId,
1163
+ continuation: {
1164
+ kind: latestCheckpoint.continuationKind,
1165
+ summary: latestCheckpoint.continuationSummary,
1166
+ wakeCondition: latestCheckpoint.wakeCondition,
1167
+ },
1168
+ },
1169
+ } : {}),
1069
1170
  };
1070
1171
  const storedPayload = buildDeferredWakePayload(payload, contextSnapshot);
1071
1172
  const [inserted] = await database.insert(agentWakeupRequests).values({
@@ -1591,6 +1692,17 @@ export function goalService(db) {
1591
1692
  return {
1592
1693
  list: (orgId) => db.select().from(goals).where(eq(goals.orgId, orgId)).orderBy(asc(goals.createdAt)),
1593
1694
  getById: (id) => db.select().from(goals).where(eq(goals.id, id)).then((rows) => rows[0] ?? null),
1695
+ resolveByReference: async (orgId, reference) => {
1696
+ const parsed = parseShortRef(reference);
1697
+ if (parsed?.kind !== "goal")
1698
+ return { goal: null, ambiguous: false };
1699
+ const rows = await db.select().from(goals).where(eq(goals.orgId, orgId));
1700
+ const matches = rows.filter((row) => row.id.replaceAll("-", "").toLowerCase().startsWith(parsed.prefix));
1701
+ return {
1702
+ goal: matches.length === 1 ? matches[0] : null,
1703
+ ambiguous: matches.length > 1,
1704
+ };
1705
+ },
1594
1706
  getChangeProposalById: (id) => db.select().from(goalChangeProposals)
1595
1707
  .where(eq(goalChangeProposals.id, id)).then((rows) => rows[0] ?? null),
1596
1708
  getResultProposalById: (id) => db.select().from(goalResultProposals)
@@ -1834,6 +1946,32 @@ export function goalService(db) {
1834
1946
  ]);
1835
1947
  return { ...goal, ownerAssignment, plan, activities };
1836
1948
  },
1949
+ latestCheckpoint: async (id) => db.select().from(goalCheckpoints)
1950
+ .where(eq(goalCheckpoints.goalId, id))
1951
+ .orderBy(desc(goalCheckpoints.createdAt)).limit(1)
1952
+ .then((rows) => rows[0] ?? null),
1953
+ recentCheckpoints: async (id) => db.select().from(goalCheckpoints)
1954
+ .where(eq(goalCheckpoints.goalId, id))
1955
+ .orderBy(desc(goalCheckpoints.createdAt)).limit(3),
1956
+ pendingContinuationWake: async (id) => db.select({
1957
+ id: agentWakeupRequests.id,
1958
+ status: agentWakeupRequests.status,
1959
+ payload: agentWakeupRequests.payload,
1960
+ }).from(agentWakeupRequests).where(and(sql `${agentWakeupRequests.payload} ->> 'goalId' = ${id}`, eq(agentWakeupRequests.reason, "goal_continuation"), inArray(agentWakeupRequests.status, ["queued", "deferred_goal_focus", "deferred_agent_paused", "deferred_goal_blocked"]), isNull(agentWakeupRequests.runId))).orderBy(desc(agentWakeupRequests.requestedAt)).limit(1)
1961
+ .then((rows) => {
1962
+ const row = rows[0];
1963
+ if (!row)
1964
+ return null;
1965
+ const payload = publicGoalRecord(row.payload);
1966
+ const continuation = publicGoalRecord(payload.continuation);
1967
+ return {
1968
+ id: row.id,
1969
+ status: row.status,
1970
+ planRevision: typeof payload.planRevision === "number" ? payload.planRevision : null,
1971
+ checkpointId: typeof payload.checkpointId === "string" ? payload.checkpointId : null,
1972
+ continuation,
1973
+ };
1974
+ }),
1837
1975
  create: async (orgId, data) => {
1838
1976
  if (data.ownerAgentId)
1839
1977
  await requireInvokableOwner(db, orgId, data.ownerAgentId);
@@ -1970,6 +2108,119 @@ export function goalService(db) {
1970
2108
  return plan;
1971
2109
  });
1972
2110
  },
2111
+ checkpoint: async (id, input, actorAgentId, actorRunId) => {
2112
+ if (!actorAgentId)
2113
+ throw forbidden("Only the Goal Owner Agent can create a checkpoint");
2114
+ if (!actorRunId)
2115
+ throw unprocessable("Goal checkpoint must be attributed to the current Run");
2116
+ const inputHash = stableGoalHash({
2117
+ summary: input.summary,
2118
+ evidenceRefs: input.evidenceRefs,
2119
+ expectedPlanRevision: input.expectedPlanRevision,
2120
+ plan: input.plan ?? null,
2121
+ continuation: input.continuation,
2122
+ });
2123
+ return db.transaction(async (tx) => {
2124
+ const database = tx;
2125
+ const current = await requireGoalForUpdate(database, id);
2126
+ assertCanonicalActiveGoal(current);
2127
+ assertGoalOwner(current, actorAgentId);
2128
+ const run = await requireGoalRun(database, current, actorRunId, actorAgentId);
2129
+ const existing = await database.select().from(goalCheckpoints).where(and(eq(goalCheckpoints.goalId, id), eq(goalCheckpoints.idempotencyKey, input.idempotencyKey))).then((rows) => rows[0] ?? null);
2130
+ if (existing) {
2131
+ if (existing.runId !== actorRunId) {
2132
+ throw conflict("Goal checkpoint idempotency key belongs to a different Run");
2133
+ }
2134
+ if (existing.inputHash !== inputHash) {
2135
+ throw conflict("Goal checkpoint idempotency key was reused with a different payload");
2136
+ }
2137
+ return { checkpoint: existing, dispatch: null };
2138
+ }
2139
+ if (run.status !== "running") {
2140
+ throw conflict("Goal checkpoint must be attributed to the current running Run");
2141
+ }
2142
+ const readyProposal = await database.select({ id: goalResultProposals.id }).from(goalResultProposals).where(and(eq(goalResultProposals.goalId, id), eq(goalResultProposals.status, "ready"))).limit(1).then((rows) => rows[0] ?? null);
2143
+ if (readyProposal)
2144
+ throw conflict("Goal already has a Result Proposal ready for review");
2145
+ if (current.planRevision !== input.expectedPlanRevision) {
2146
+ throw conflict("Goal Plan changed before checkpoint", {
2147
+ expectedPlanRevision: input.expectedPlanRevision,
2148
+ currentPlanRevision: current.planRevision,
2149
+ });
2150
+ }
2151
+ const nextPlanRevision = input.plan ? current.planRevision + 1 : current.planRevision;
2152
+ if (input.plan) {
2153
+ await database.insert(goalPlans).values({
2154
+ orgId: current.orgId,
2155
+ goalId: current.id,
2156
+ revision: nextPlanRevision,
2157
+ ...input.plan,
2158
+ createdByAgentId: actorAgentId,
2159
+ });
2160
+ }
2161
+ const now = new Date();
2162
+ const changedGoal = await database.update(goals).set({
2163
+ planRevision: nextPlanRevision,
2164
+ continuationKind: input.continuation.kind,
2165
+ continuationSummary: input.continuation.summary,
2166
+ wakeCondition: input.continuation.wakeCondition ?? null,
2167
+ updatedAt: now,
2168
+ }).where(and(eq(goals.id, id), eq(goals.orgId, current.orgId), eq(goals.lifecycle, "active"), eq(goals.planRevision, input.expectedPlanRevision))).returning().then((rows) => rows[0] ?? null);
2169
+ if (!changedGoal)
2170
+ throw conflict("Goal changed before checkpoint could be committed");
2171
+ const [checkpoint] = await database.insert(goalCheckpoints).values({
2172
+ orgId: current.orgId,
2173
+ goalId: current.id,
2174
+ runId: actorRunId,
2175
+ ownerAgentId: current.ownerAgentId,
2176
+ submittedByAgentId: actorAgentId,
2177
+ inputHash,
2178
+ idempotencyKey: input.idempotencyKey,
2179
+ summary: input.summary,
2180
+ evidenceRefs: input.evidenceRefs,
2181
+ planPayload: input.plan ? { ...input.plan } : null,
2182
+ planRevisionBefore: current.planRevision,
2183
+ planRevisionAfter: nextPlanRevision,
2184
+ continuationKind: input.continuation.kind,
2185
+ continuationSummary: input.continuation.summary,
2186
+ wakeCondition: input.continuation.wakeCondition ?? null,
2187
+ }).returning();
2188
+ if (!checkpoint)
2189
+ throw conflict("Goal checkpoint could not be recorded");
2190
+ await database.insert(goalActivities).values({
2191
+ orgId: current.orgId,
2192
+ goalId: current.id,
2193
+ contractRevision: current.contractRevision,
2194
+ submittedByAgentId: actorAgentId,
2195
+ agentOwnerRefAtTime: current.ownerAgentId,
2196
+ activityKind: "checkpoint",
2197
+ runRef: actorRunId,
2198
+ summary: input.summary,
2199
+ evidenceRefs: input.evidenceRefs,
2200
+ idempotencyKey: `goal-checkpoint:${input.idempotencyKey}`,
2201
+ occurredAt: now,
2202
+ }).onConflictDoNothing();
2203
+ let dispatch = null;
2204
+ if (input.continuation.kind === "commitment" || input.continuation.kind === "verification") {
2205
+ dispatch = await ensureGoalWakeupIntent(database, changedGoal, {
2206
+ event: "goal_continuation",
2207
+ eventId: checkpoint.id,
2208
+ actor: { actorType: "agent", actorId: actorAgentId },
2209
+ continuation: {
2210
+ kind: input.continuation.kind,
2211
+ summary: input.continuation.summary,
2212
+ wakeCondition: input.continuation.wakeCondition ?? null,
2213
+ planRevision: nextPlanRevision,
2214
+ },
2215
+ });
2216
+ const updated = await database.update(goalCheckpoints).set({ continuationWakeupRequestId: dispatch.wakeupRequestId })
2217
+ .where(eq(goalCheckpoints.id, checkpoint.id)).returning().then((rows) => rows[0] ?? null);
2218
+ if (updated)
2219
+ return { checkpoint: updated, dispatch };
2220
+ }
2221
+ return { checkpoint, dispatch };
2222
+ });
2223
+ },
1973
2224
  listActivities: (id) => db.select().from(goalActivities).where(eq(goalActivities.goalId, id))
1974
2225
  .orderBy(desc(goalActivities.occurredAt), desc(goalActivities.createdAt)).limit(100),
1975
2226
  createActivity: async (id, input, actorAgentId = null) => {
@@ -2304,6 +2555,11 @@ export function goalService(db) {
2304
2555
  const candidateHash = stableGoalHash(candidate);
2305
2556
  return db.transaction(async (tx) => {
2306
2557
  const database = tx;
2558
+ // Heartbeat claims hold the Owner Agent row before Goal and Run rows;
2559
+ // take the same lock first so Result Proposal cancellation cannot
2560
+ // deadlock on heartbeat_runs.agent_id foreign-key checks.
2561
+ await database.select({ id: agents.id }).from(agents)
2562
+ .where(eq(agents.id, actorAgentId)).for("update");
2307
2563
  const current = await requireGoalForUpdate(database, id);
2308
2564
  assertGoalOwner(current, actorAgentId);
2309
2565
  if (actorRunId)
@@ -2328,6 +2584,7 @@ export function goalService(db) {
2328
2584
  if (readyProposal) {
2329
2585
  throw conflict("This Goal already has a Result Proposal ready for review");
2330
2586
  }
2587
+ await cancelPendingGoalContinuationWakes(database, id, "Cancelled because a Goal Result Proposal is ready for human Acceptance");
2331
2588
  }
2332
2589
  const [proposal] = await database.insert(goalResultProposals).values({
2333
2590
  orgId: current.orgId,