@nocobase/app-plugin-agents 2.0.0-beta.1 → 2.0.0-beta.10

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 (337) hide show
  1. package/CHANGELOG.md +168 -0
  2. package/README.md +20 -4
  3. package/dist/client/chat/api.d.ts +6 -1
  4. package/dist/client/chat/api.d.ts.map +1 -1
  5. package/dist/client/chat/api.js +18 -0
  6. package/dist/client/chat/api.js.map +1 -1
  7. package/dist/client/chat/controller.d.ts +5 -0
  8. package/dist/client/chat/controller.d.ts.map +1 -1
  9. package/dist/client/chat/controller.js +37 -13
  10. package/dist/client/chat/controller.js.map +1 -1
  11. package/dist/client/chat/notices.d.ts +12 -0
  12. package/dist/client/chat/notices.d.ts.map +1 -0
  13. package/dist/client/chat/notices.js +15 -0
  14. package/dist/client/chat/notices.js.map +1 -0
  15. package/dist/client/chat/submissions.d.ts +16 -0
  16. package/dist/client/chat/submissions.d.ts.map +1 -1
  17. package/dist/client/chat/submissions.js +22 -0
  18. package/dist/client/chat/submissions.js.map +1 -1
  19. package/dist/client/chat/use-chat.d.ts.map +1 -1
  20. package/dist/client/chat/use-chat.js +1 -0
  21. package/dist/client/chat/use-chat.js.map +1 -1
  22. package/dist/client/chat.d.ts +1 -0
  23. package/dist/client/chat.d.ts.map +1 -1
  24. package/dist/client/chat.js +1 -0
  25. package/dist/client/chat.js.map +1 -1
  26. package/dist/client/components/page-container.js +1 -1
  27. package/dist/client/components/page-container.js.map +1 -1
  28. package/dist/client/components/route-child-page.d.ts +1 -1
  29. package/dist/client/components/route-child-page.d.ts.map +1 -1
  30. package/dist/client/components/route-child-page.js +18 -2
  31. package/dist/client/components/route-child-page.js.map +1 -1
  32. package/dist/client/components/route-overlay.d.ts +4 -1
  33. package/dist/client/components/route-overlay.d.ts.map +1 -1
  34. package/dist/client/components/route-overlay.js +32 -3
  35. package/dist/client/components/route-overlay.js.map +1 -1
  36. package/dist/client/components/ui/alert-dialog.d.ts +3 -1
  37. package/dist/client/components/ui/alert-dialog.d.ts.map +1 -1
  38. package/dist/client/components/ui/alert-dialog.js +2 -2
  39. package/dist/client/components/ui/alert-dialog.js.map +1 -1
  40. package/dist/client/components/unsaved-changes.d.ts.map +1 -1
  41. package/dist/client/components/unsaved-changes.js +17 -4
  42. package/dist/client/components/unsaved-changes.js.map +1 -1
  43. package/dist/client/components/use-route-overlay.d.ts +2 -9
  44. package/dist/client/components/use-route-overlay.d.ts.map +1 -1
  45. package/dist/client/components/use-route-overlay.js +5 -3
  46. package/dist/client/components/use-route-overlay.js.map +1 -1
  47. package/dist/client/locales/de-DE.d.ts.map +1 -1
  48. package/dist/client/locales/de-DE.js +137 -109
  49. package/dist/client/locales/de-DE.js.map +1 -1
  50. package/dist/client/locales/en-US.d.ts +2 -0
  51. package/dist/client/locales/en-US.d.ts.map +1 -1
  52. package/dist/client/locales/en-US.js +4 -2
  53. package/dist/client/locales/en-US.js.map +1 -1
  54. package/dist/client/locales/es-ES.d.ts.map +1 -1
  55. package/dist/client/locales/es-ES.js +214 -186
  56. package/dist/client/locales/es-ES.js.map +1 -1
  57. package/dist/client/locales/fr-FR.d.ts.map +1 -1
  58. package/dist/client/locales/fr-FR.js +146 -118
  59. package/dist/client/locales/fr-FR.js.map +1 -1
  60. package/dist/client/locales/id-ID.d.ts.map +1 -1
  61. package/dist/client/locales/id-ID.js +135 -107
  62. package/dist/client/locales/id-ID.js.map +1 -1
  63. package/dist/client/locales/index.d.ts.map +1 -1
  64. package/dist/client/locales/index.js +2 -0
  65. package/dist/client/locales/index.js.map +1 -1
  66. package/dist/client/locales/ja-JP.d.ts.map +1 -1
  67. package/dist/client/locales/ja-JP.js +218 -190
  68. package/dist/client/locales/ja-JP.js.map +1 -1
  69. package/dist/client/locales/ko-KR.d.ts +5 -0
  70. package/dist/client/locales/ko-KR.d.ts.map +1 -0
  71. package/dist/client/locales/ko-KR.js +1311 -0
  72. package/dist/client/locales/ko-KR.js.map +1 -0
  73. package/dist/client/locales/pt-BR.d.ts.map +1 -1
  74. package/dist/client/locales/pt-BR.js +208 -180
  75. package/dist/client/locales/pt-BR.js.map +1 -1
  76. package/dist/client/locales/ru-RU.d.ts +5 -0
  77. package/dist/client/locales/ru-RU.d.ts.map +1 -0
  78. package/dist/client/locales/ru-RU.js +1341 -0
  79. package/dist/client/locales/ru-RU.js.map +1 -0
  80. package/dist/client/locales/runWait.en-US.d.ts +2 -0
  81. package/dist/client/locales/runWait.en-US.d.ts.map +1 -1
  82. package/dist/client/locales/runWait.en-US.js +2 -0
  83. package/dist/client/locales/runWait.en-US.js.map +1 -1
  84. package/dist/client/locales/runWait.zh-CN.d.ts.map +1 -1
  85. package/dist/client/locales/runWait.zh-CN.js +2 -0
  86. package/dist/client/locales/runWait.zh-CN.js.map +1 -1
  87. package/dist/client/locales/runtimes.en-US.d.ts +1 -0
  88. package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
  89. package/dist/client/locales/runtimes.en-US.js +3 -2
  90. package/dist/client/locales/runtimes.en-US.js.map +1 -1
  91. package/dist/client/locales/runtimes.zh-CN.d.ts.map +1 -1
  92. package/dist/client/locales/runtimes.zh-CN.js +3 -2
  93. package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
  94. package/dist/client/locales/vi-VN.d.ts.map +1 -1
  95. package/dist/client/locales/vi-VN.js +174 -146
  96. package/dist/client/locales/vi-VN.js.map +1 -1
  97. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  98. package/dist/client/locales/zh-CN.js +4 -2
  99. package/dist/client/locales/zh-CN.js.map +1 -1
  100. package/dist/client/locales/zh-TW.d.ts.map +1 -1
  101. package/dist/client/locales/zh-TW.js +151 -123
  102. package/dist/client/locales/zh-TW.js.map +1 -1
  103. package/dist/client/pages/runtimes/quota.d.ts +3 -2
  104. package/dist/client/pages/runtimes/quota.d.ts.map +1 -1
  105. package/dist/client/pages/runtimes/quota.js +8 -3
  106. package/dist/client/pages/runtimes/quota.js.map +1 -1
  107. package/dist/client/pages/runtimes/runner-runs.d.ts.map +1 -1
  108. package/dist/client/pages/runtimes/runner-runs.js +2 -8
  109. package/dist/client/pages/runtimes/runner-runs.js.map +1 -1
  110. package/dist/client/pages/runtimes/runner-tools.d.ts.map +1 -1
  111. package/dist/client/pages/runtimes/runner-tools.js +7 -16
  112. package/dist/client/pages/runtimes/runner-tools.js.map +1 -1
  113. package/dist/client/pages/runtimes/workspace-diagnostics.js +3 -3
  114. package/dist/client/pages/runtimes/workspace-diagnostics.js.map +1 -1
  115. package/dist/client/pages/usage/date-range-picker.d.ts.map +1 -1
  116. package/dist/client/pages/usage/date-range-picker.js +3 -1
  117. package/dist/client/pages/usage/date-range-picker.js.map +1 -1
  118. package/dist/client/routes.d.ts.map +1 -1
  119. package/dist/client/routes.js +7 -0
  120. package/dist/client/routes.js.map +1 -1
  121. package/dist/client/runs/format-wait.d.ts.map +1 -1
  122. package/dist/client/runs/format-wait.js +2 -0
  123. package/dist/client/runs/format-wait.js.map +1 -1
  124. package/dist/database/migrations/.manifest.json +16 -0
  125. package/dist/database/migrations/202611070001_ag_run_runner_pin.d.ts +4 -0
  126. package/dist/database/migrations/202611070001_ag_run_runner_pin.d.ts.map +1 -0
  127. package/dist/database/migrations/202611070001_ag_run_runner_pin.js +17 -0
  128. package/dist/database/migrations/202611070001_ag_run_runner_pin.js.map +1 -0
  129. package/dist/database/migrations/202611080001_ag_conversation_shares.d.ts +4 -0
  130. package/dist/database/migrations/202611080001_ag_conversation_shares.d.ts.map +1 -0
  131. package/dist/database/migrations/202611080001_ag_conversation_shares.js +25 -0
  132. package/dist/database/migrations/202611080001_ag_conversation_shares.js.map +1 -0
  133. package/dist/database/migrations/202611080002_ag_run_failure_params.d.ts +4 -0
  134. package/dist/database/migrations/202611080002_ag_run_failure_params.d.ts.map +1 -0
  135. package/dist/database/migrations/202611080002_ag_run_failure_params.js +17 -0
  136. package/dist/database/migrations/202611080002_ag_run_failure_params.js.map +1 -0
  137. package/dist/database/migrations/202611090001_ag_runner_preference.d.ts +9 -0
  138. package/dist/database/migrations/202611090001_ag_runner_preference.d.ts.map +1 -0
  139. package/dist/database/migrations/202611090001_ag_runner_preference.js +28 -0
  140. package/dist/database/migrations/202611090001_ag_runner_preference.js.map +1 -0
  141. package/dist/package.json +1 -1
  142. package/dist/server/composition.d.ts +7 -1
  143. package/dist/server/composition.d.ts.map +1 -1
  144. package/dist/server/composition.js +14 -2
  145. package/dist/server/composition.js.map +1 -1
  146. package/dist/server/core/agents/agent.service.d.ts +2 -1
  147. package/dist/server/core/agents/agent.service.d.ts.map +1 -1
  148. package/dist/server/core/agents/agent.service.js.map +1 -1
  149. package/dist/server/core/agents/agent.store.d.ts +2 -2
  150. package/dist/server/core/agents/agent.store.d.ts.map +1 -1
  151. package/dist/server/core/agents/agent.store.js +8 -2
  152. package/dist/server/core/agents/agent.store.js.map +1 -1
  153. package/dist/server/core/brief/brief.d.ts +10 -5
  154. package/dist/server/core/brief/brief.d.ts.map +1 -1
  155. package/dist/server/core/brief/brief.js +36 -13
  156. package/dist/server/core/brief/brief.js.map +1 -1
  157. package/dist/server/core/brief/index.d.ts +1 -1
  158. package/dist/server/core/brief/index.d.ts.map +1 -1
  159. package/dist/server/core/brief/index.js +1 -1
  160. package/dist/server/core/brief/index.js.map +1 -1
  161. package/dist/server/core/conversations/attachments.d.ts +2 -12
  162. package/dist/server/core/conversations/attachments.d.ts.map +1 -1
  163. package/dist/server/core/conversations/attachments.js +56 -14
  164. package/dist/server/core/conversations/attachments.js.map +1 -1
  165. package/dist/server/core/conversations/chat-settings.d.ts +1 -1
  166. package/dist/server/core/conversations/chat-settings.d.ts.map +1 -1
  167. package/dist/server/core/conversations/chat-settings.js +6 -0
  168. package/dist/server/core/conversations/chat-settings.js.map +1 -1
  169. package/dist/server/core/conversations/conversation.service.d.ts +3 -1
  170. package/dist/server/core/conversations/conversation.service.d.ts.map +1 -1
  171. package/dist/server/core/conversations/conversation.service.js +198 -18
  172. package/dist/server/core/conversations/conversation.service.js.map +1 -1
  173. package/dist/server/core/conversations/conversation.store.d.ts +2 -0
  174. package/dist/server/core/conversations/conversation.store.d.ts.map +1 -1
  175. package/dist/server/core/conversations/conversation.store.js.map +1 -1
  176. package/dist/server/core/conversations/index.d.ts +1 -0
  177. package/dist/server/core/conversations/index.d.ts.map +1 -1
  178. package/dist/server/core/conversations/links.d.ts.map +1 -1
  179. package/dist/server/core/conversations/links.js +10 -5
  180. package/dist/server/core/conversations/links.js.map +1 -1
  181. package/dist/server/core/conversations/ports.d.ts +8 -2
  182. package/dist/server/core/conversations/ports.d.ts.map +1 -1
  183. package/dist/server/core/conversations/shares.d.ts +38 -0
  184. package/dist/server/core/conversations/shares.d.ts.map +1 -0
  185. package/dist/server/core/conversations/shares.js +189 -0
  186. package/dist/server/core/conversations/shares.js.map +1 -0
  187. package/dist/server/core/runs/claim.d.ts +22 -3
  188. package/dist/server/core/runs/claim.d.ts.map +1 -1
  189. package/dist/server/core/runs/claim.js +260 -42
  190. package/dist/server/core/runs/claim.js.map +1 -1
  191. package/dist/server/core/runs/extensions.d.ts +30 -2
  192. package/dist/server/core/runs/extensions.d.ts.map +1 -1
  193. package/dist/server/core/runs/extensions.js +18 -1
  194. package/dist/server/core/runs/extensions.js.map +1 -1
  195. package/dist/server/core/runs/git-credentials.d.ts.map +1 -1
  196. package/dist/server/core/runs/git-credentials.js +24 -2
  197. package/dist/server/core/runs/git-credentials.js.map +1 -1
  198. package/dist/server/core/runs/identity.d.ts.map +1 -1
  199. package/dist/server/core/runs/identity.js +9 -0
  200. package/dist/server/core/runs/identity.js.map +1 -1
  201. package/dist/server/core/runs/index.d.ts +3 -2
  202. package/dist/server/core/runs/index.d.ts.map +1 -1
  203. package/dist/server/core/runs/index.js +2 -1
  204. package/dist/server/core/runs/index.js.map +1 -1
  205. package/dist/server/core/runs/lifecycle.d.ts.map +1 -1
  206. package/dist/server/core/runs/lifecycle.js +14 -0
  207. package/dist/server/core/runs/lifecycle.js.map +1 -1
  208. package/dist/server/core/runs/npm-credentials.d.ts +35 -0
  209. package/dist/server/core/runs/npm-credentials.d.ts.map +1 -0
  210. package/dist/server/core/runs/npm-credentials.js +83 -0
  211. package/dist/server/core/runs/npm-credentials.js.map +1 -0
  212. package/dist/server/core/runs/ports.d.ts +19 -2
  213. package/dist/server/core/runs/ports.d.ts.map +1 -1
  214. package/dist/server/core/runs/ports.js.map +1 -1
  215. package/dist/server/core/runs/preview.d.ts +1 -4
  216. package/dist/server/core/runs/preview.d.ts.map +1 -1
  217. package/dist/server/core/runs/preview.js +10 -5
  218. package/dist/server/core/runs/preview.js.map +1 -1
  219. package/dist/server/core/runs/quota-wait.d.ts +7 -0
  220. package/dist/server/core/runs/quota-wait.d.ts.map +1 -0
  221. package/dist/server/core/runs/quota-wait.js +56 -0
  222. package/dist/server/core/runs/quota-wait.js.map +1 -0
  223. package/dist/server/core/runs/run-data-purge.d.ts.map +1 -1
  224. package/dist/server/core/runs/run-data-purge.js +1 -0
  225. package/dist/server/core/runs/run-data-purge.js.map +1 -1
  226. package/dist/server/core/runs/run.service.d.ts +28 -4
  227. package/dist/server/core/runs/run.service.d.ts.map +1 -1
  228. package/dist/server/core/runs/run.service.js +94 -9
  229. package/dist/server/core/runs/run.service.js.map +1 -1
  230. package/dist/server/core/runs/run.store.d.ts +24 -0
  231. package/dist/server/core/runs/run.store.d.ts.map +1 -1
  232. package/dist/server/core/runs/run.store.js +44 -0
  233. package/dist/server/core/runs/run.store.js.map +1 -1
  234. package/dist/server/core/runs/sweeper.d.ts.map +1 -1
  235. package/dist/server/core/runs/sweeper.js +2 -0
  236. package/dist/server/core/runs/sweeper.js.map +1 -1
  237. package/dist/server/core/runs/transitions.d.ts +1 -0
  238. package/dist/server/core/runs/transitions.d.ts.map +1 -1
  239. package/dist/server/core/runs/transitions.js +15 -1
  240. package/dist/server/core/runs/transitions.js.map +1 -1
  241. package/dist/server/core/runs/workload.d.ts +2 -2
  242. package/dist/server/core/runs/workload.d.ts.map +1 -1
  243. package/dist/server/core/runs/workload.js +62 -9
  244. package/dist/server/core/runs/workload.js.map +1 -1
  245. package/dist/server/kernel/clock.d.ts +2 -0
  246. package/dist/server/kernel/clock.d.ts.map +1 -1
  247. package/dist/server/kernel/clock.js +14 -0
  248. package/dist/server/kernel/clock.js.map +1 -1
  249. package/dist/server/kernel/events.d.ts +4 -1
  250. package/dist/server/kernel/events.d.ts.map +1 -1
  251. package/dist/server/kernel/events.js.map +1 -1
  252. package/dist/server/locales/de-DE.js +3 -3
  253. package/dist/server/locales/de-DE.js.map +1 -1
  254. package/dist/server/locales/es-ES.js +6 -6
  255. package/dist/server/locales/es-ES.js.map +1 -1
  256. package/dist/server/locales/fr-FR.js +4 -4
  257. package/dist/server/locales/fr-FR.js.map +1 -1
  258. package/dist/server/locales/id-ID.js +5 -5
  259. package/dist/server/locales/id-ID.js.map +1 -1
  260. package/dist/server/locales/index.d.ts.map +1 -1
  261. package/dist/server/locales/index.js +2 -0
  262. package/dist/server/locales/index.js.map +1 -1
  263. package/dist/server/locales/ja-JP.d.ts.map +1 -1
  264. package/dist/server/locales/ja-JP.js +6 -6
  265. package/dist/server/locales/ja-JP.js.map +1 -1
  266. package/dist/server/locales/ko-KR.d.ts +5 -0
  267. package/dist/server/locales/ko-KR.d.ts.map +1 -0
  268. package/dist/server/locales/ko-KR.js +59 -0
  269. package/dist/server/locales/ko-KR.js.map +1 -0
  270. package/dist/server/locales/pt-BR.js +6 -6
  271. package/dist/server/locales/pt-BR.js.map +1 -1
  272. package/dist/server/locales/ru-RU.d.ts +5 -0
  273. package/dist/server/locales/ru-RU.d.ts.map +1 -0
  274. package/dist/server/locales/ru-RU.js +59 -0
  275. package/dist/server/locales/ru-RU.js.map +1 -0
  276. package/dist/server/locales/vi-VN.js +6 -6
  277. package/dist/server/locales/vi-VN.js.map +1 -1
  278. package/dist/server/locales/zh-TW.d.ts.map +1 -1
  279. package/dist/server/locales/zh-TW.js +6 -6
  280. package/dist/server/locales/zh-TW.js.map +1 -1
  281. package/dist/server/online/agent/persistence/store.d.ts.map +1 -1
  282. package/dist/server/online/agent/persistence/store.js +3 -0
  283. package/dist/server/online/agent/persistence/store.js.map +1 -1
  284. package/dist/server/online/agent/runner/projection.d.ts +1 -1
  285. package/dist/server/online/agent/runner/projection.d.ts.map +1 -1
  286. package/dist/server/online/agent/runner/projection.js +8 -1
  287. package/dist/server/online/agent/runner/projection.js.map +1 -1
  288. package/dist/server/routes/admin.d.ts +1 -0
  289. package/dist/server/routes/admin.d.ts.map +1 -1
  290. package/dist/server/routes/admin.js +32 -2
  291. package/dist/server/routes/admin.js.map +1 -1
  292. package/dist/server/routes/chat.d.ts.map +1 -1
  293. package/dist/server/routes/chat.js +99 -16
  294. package/dist/server/routes/chat.js.map +1 -1
  295. package/dist/server/routes/index.d.ts.map +1 -1
  296. package/dist/server/routes/index.js +8 -2
  297. package/dist/server/routes/index.js.map +1 -1
  298. package/dist/server/routes/run.js +1 -1
  299. package/dist/server/routes/run.js.map +1 -1
  300. package/dist/server/routes/runners/admin.d.ts.map +1 -1
  301. package/dist/server/routes/runners/admin.js +3 -3
  302. package/dist/server/routes/runners/admin.js.map +1 -1
  303. package/dist/server/routes/runners/install.d.ts.map +1 -1
  304. package/dist/server/routes/runners/install.js +5 -0
  305. package/dist/server/routes/runners/install.js.map +1 -1
  306. package/dist/server/routes/runners/runner.d.ts.map +1 -1
  307. package/dist/server/routes/runners/runner.js +13 -22
  308. package/dist/server/routes/runners/runner.js.map +1 -1
  309. package/dist/server/routes/runners/runs.d.ts +1 -1
  310. package/dist/server/routes/runners/runs.d.ts.map +1 -1
  311. package/dist/server/routes/runners/runs.js +20 -1
  312. package/dist/server/routes/runners/runs.js.map +1 -1
  313. package/dist/server/routes/schemas.d.ts +4 -0
  314. package/dist/server/routes/schemas.d.ts.map +1 -1
  315. package/dist/server/routes/schemas.js +28 -6
  316. package/dist/server/routes/schemas.js.map +1 -1
  317. package/dist/server/runners/runner.service.d.ts.map +1 -1
  318. package/dist/server/runners/runner.service.js +17 -5
  319. package/dist/server/runners/runner.service.js.map +1 -1
  320. package/dist/server/tokens.d.ts +1 -1
  321. package/dist/server/tokens.d.ts.map +1 -1
  322. package/dist/server/tokens.js.map +1 -1
  323. package/dist/shared/briefs.d.ts +2 -6
  324. package/dist/shared/briefs.d.ts.map +1 -1
  325. package/dist/shared/conversations.d.ts +34 -1
  326. package/dist/shared/conversations.d.ts.map +1 -1
  327. package/dist/shared/conversations.js +10 -0
  328. package/dist/shared/conversations.js.map +1 -1
  329. package/dist/shared/runs.d.ts +11 -3
  330. package/dist/shared/runs.d.ts.map +1 -1
  331. package/dist/shared/runs.js +2 -0
  332. package/dist/shared/runs.js.map +1 -1
  333. package/docs/conversation-sharing.md +55 -0
  334. package/package.json +15 -15
  335. package/skills/nocobase-app-plugin-agents/references/extension-points.md +2 -0
  336. package/skills/nocobase-app-plugin-agents/references/runners.md +1 -1
  337. package/skills/nocobase-app-plugin-agents/references/verification-and-troubleshooting.md +2 -1
@@ -0,0 +1,56 @@
1
+ import { revokeTokens } from './transitions.js';
2
+ import { endExecution } from './execution.js';
3
+ import { findRunRecord, runsRepo, toRun } from './run.store.js';
4
+ /** Suspend the same run; unknown reset times remain terminal until a person retries. */
5
+ export async function waitForQuota(tx, deps, run, request) {
6
+ const now = deps.clock.now().toISOString();
7
+ const windows = request.quota?.windows.filter((window) => window.exhausted) ?? [];
8
+ const reset = windows.length && windows.every((window) => window.resetsAt !== null)
9
+ ? windows
10
+ .map((window) => window.resetsAt)
11
+ .sort()
12
+ .at(-1)
13
+ : null;
14
+ const availableAt = reset && Date.parse(reset) > Date.parse(now) ? reset : null;
15
+ const status = availableAt ? 'queued' : 'failed';
16
+ const result = await runsRepo(tx.conn).updateMany({
17
+ filter: {
18
+ id: run.id,
19
+ status: run.status,
20
+ attempt: run.attempt,
21
+ runnerId: run.runnerId,
22
+ },
23
+ values: {
24
+ status,
25
+ runnerPinId: run.runnerPinId ?? run.runnerId,
26
+ runnerId: null,
27
+ requires: [...new Set([...toRun(run).requires, 'strictSession'])],
28
+ sessionId: request.sessionId ?? run.sessionId,
29
+ freshSession: false,
30
+ availableAt,
31
+ queueEnteredAt: now,
32
+ attempt: Number(run.attempt) + (availableAt ? 1 : 0),
33
+ finishedAt: availableAt ? null : now,
34
+ leaseExpiresAt: null,
35
+ dispatchedAt: null,
36
+ startedAt: null,
37
+ acceptsInput: false,
38
+ failureReason: request.reason,
39
+ failureDetail: request.detail?.slice(0, 10_000) ?? null,
40
+ updatedAt: now,
41
+ },
42
+ });
43
+ if (result.updatedCount !== 1)
44
+ return null;
45
+ await endExecution(tx.conn, run, now, request.reason, undefined, request.quota);
46
+ await revokeTokens(tx, run.id, now);
47
+ const waiting = (await findRunRecord(tx.conn, run.id));
48
+ await deps.subjects
49
+ .get(run.subjectKind)
50
+ ?.sink?.onQuotaWait?.(tx, toRun(waiting));
51
+ tx.emit({ type: 'run.changed', quotaWait: true, runId: run.id, status });
52
+ if (availableAt)
53
+ tx.emit({ type: 'run.requeued', runId: run.id, availableAt });
54
+ return waiting;
55
+ }
56
+ //# sourceMappingURL=quota-wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-wait.js","sourceRoot":"","sources":["../../../../server/core/runs/quota-wait.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAkB,MAAM,gBAAgB,CAAC;AAEhF,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAM,EACN,IAAoB,EACpB,GAAc,EACd,OAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,OAAO,GACX,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACpE,MAAM,KAAK,GACT,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QACnE,CAAC,CAAC,OAAO;aACJ,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAS,CAAC;aACjC,IAAI,EAAE;aACN,EAAE,CAAC,CAAC,CAAC,CAAE;QACZ,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,WAAW,GACf,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;QAChD,MAAM,EAAE;YACN,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB;QACD,MAAM,EAAE;YACN,MAAM;YACN,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ;YAC5C,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;YACjE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS;YAC7C,YAAY,EAAE,KAAK;YACnB,WAAW;YACX,cAAc,EAAE,GAAG;YACnB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;YACpC,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI;YACvD,SAAS,EAAE,GAAG;SACf;KACF,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,YAAY,CAChB,EAAE,CAAC,IAAI,EACP,GAAG,EACH,GAAG,EACH,OAAO,CAAC,MAAM,EACd,SAAS,EACT,OAAO,CAAC,KAAK,CACd,CAAC;IACF,MAAM,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,CAAC,MAAM,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAE,CAAC;IACxD,MAAM,IAAI,CAAC,QAAQ;SAChB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;QACrB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,IAAI,WAAW;QACb,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAChE,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-data-purge.d.ts","sourceRoot":"","sources":["../../../../server/core/runs/run-data-purge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,eAAO,MAAM,0BAA0B,EAAE,MAAoB,CAAC;AAC9D,eAAO,MAAM,oBAAoB,EAAE,MAAY,CAAC;AAChD,eAAO,MAAM,oBAAoB,EAAE,MAAa,CAAC;AACjD,eAAO,MAAM,uBAAuB,EAAE,MAAY,CAAC;AACnD,eAAO,MAAM,sBAAsB,EAAE,MAAmB,CAAC;AAEzD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED,qFAAqF;AACrF,eAAO,MAAM,uCAAuC,EAAE,MAAyB,CAAC;AAEhF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO5D;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CA0ExB"}
1
+ {"version":3,"file":"run-data-purge.d.ts","sourceRoot":"","sources":["../../../../server/core/runs/run-data-purge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,eAAO,MAAM,0BAA0B,EAAE,MAAoB,CAAC;AAC9D,eAAO,MAAM,oBAAoB,EAAE,MAAY,CAAC;AAChD,eAAO,MAAM,oBAAoB,EAAE,MAAa,CAAC;AACjD,eAAO,MAAM,uBAAuB,EAAE,MAAY,CAAC;AACnD,eAAO,MAAM,sBAAsB,EAAE,MAAmB,CAAC;AAEzD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED,qFAAqF;AACrF,eAAO,MAAM,uCAAuC,EAAE,MAAyB,CAAC;AAEhF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO5D;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CA6ExB"}
@@ -44,6 +44,7 @@ export function createRunDataPurge(deps) {
44
44
  .select(['id', 'finishedAt'])
45
45
  .where('status', 'in', ['completed', 'failed', 'cancelled'])
46
46
  .where('finishedAt', '<', cutoff)
47
+ .where((eb) => eb.or([eb('runnerPinId', 'is', null), eb('status', '!=', 'failed')]))
47
48
  .where((eb) => eb.or([
48
49
  eb.exists(eb
49
50
  .selectFrom('agRunEvents')
@@ -1 +1 @@
1
- {"version":3,"file":"run-data-purge.js","sourceRoot":"","sources":["../../../../server/core/runs/run-data-purge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-data-purge.js","sourceRoot":"","sources":["../../../../server/core/runs/run-data-purge.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,8 @@ import type { AgentService } from '../agents/index.js';
20
20
  import type { ClaimEligibility } from './eligibility.js';
21
21
  import { type RunRequestService } from './run-requests.js';
22
22
  import { type RunTokenIdentity } from './run-tokens.js';
23
- import type { SubjectRegistry } from './ports.js';
23
+ import { type RecentRunSummary } from './run.store.js';
24
+ import type { CancelRequest, SubjectRegistry } from './ports.js';
24
25
  import { type WorkloadRunners } from './workload.js';
25
26
  import { type TransitionDeps } from './transitions.js';
26
27
  import type { ClaimService } from './claim.js';
@@ -32,6 +33,13 @@ export interface NewInput {
32
33
  readonly payload?: unknown;
33
34
  }
34
35
  export interface EnqueueRequest {
36
+ readonly runnerId?: string;
37
+ /**
38
+ * Hands a queued or failed run's work to the new run: the original is cancelled by `actorUserId` and the new run
39
+ * becomes its replacement (`retryOfRunId`). The original agent's lock serializes this with its retry and claim, so a
40
+ * run is replaced or retried once. Refused with `RUN_ALREADY_RETRIED`, `RUN_NOT_RETRYABLE` or `AGENT_BUSY`.
41
+ */
42
+ readonly replacesRunId?: string;
35
43
  /** Trusted application dispatch: prefer a compatible authorized active run across comment roots. */
36
44
  readonly preferActive?: boolean;
37
45
  /** Supplied only by a real comment entry point; subsequent comment dispatches share its first run. */
@@ -155,8 +163,11 @@ export interface RunService {
155
163
  readonly requests: RunRequestService;
156
164
  /** Adds input to a run that has not ended. */
157
165
  addInput(runId: string, input: NewInput, outer?: Tx): Promise<string>;
158
- /** A queued run ends at once; a held one is asked to stop. In `outer`, joins the caller's transaction. */
159
- cancel(runId: string, byUserId: string | null, outer?: Tx): Promise<Run>;
166
+ /**
167
+ * A queued run ends at once; a held one is asked to stop. In `outer`, joins the caller's transaction. `request`
168
+ * reaches the subject's `onCancelRequested` unchanged.
169
+ */
170
+ cancel(runId: string, byUserId: string | null, outer?: Tx, request?: CancelRequest): Promise<Run>;
160
171
  /**
161
172
  * Ends the queued runs on a subject, of one agent or of any, or of one agent on every subject; optionally only those
162
173
  * `actorUserId` woke. Held runs are left alone. Answers the runs it ended. In `outer`, joins the caller's transaction.
@@ -185,6 +196,12 @@ export interface RunService {
185
196
  readonly source: string;
186
197
  } | null>;
187
198
  list(filter: RunFilter): Promise<Run[]>;
199
+ /** The agents that have a run on the subject (only the runs `involvingUserId` started or owns, when given), each once. */
200
+ agentIds(filter: {
201
+ readonly subjectKind: string;
202
+ readonly subjectId: string;
203
+ readonly involvingUserId?: string;
204
+ }): Promise<string[]>;
188
205
  inputTriggers(runIds: readonly string[]): Promise<ReadonlyMap<string, readonly {
189
206
  type: string;
190
207
  payload: unknown;
@@ -204,7 +221,8 @@ export interface RunService {
204
221
  * candidate runners; null when the run does not exist or is not queued. Whoever calls decides what of it a person may
205
222
  * see.
206
223
  */
207
- queueWait(runId: string): Promise<RunWait | null>;
224
+ /** A conversation supplies its binding (null when unbound), restricting the existing queue facts to that runner. */
225
+ queueWait(runId: string, conversationRunnerId?: string | null): Promise<RunWait | null>;
208
226
  events(runId: string, afterSeq: number, limit: number, types?: readonly RunEventType[]): Promise<RunEventPage>;
209
227
  /** The run a run token belongs to; `RUN_TOKEN_INVALID` otherwise. */
210
228
  authenticateToken(value: string): Promise<RunTokenIdentity>;
@@ -242,6 +260,12 @@ export interface RunService {
242
260
  readonly subjectKind: string;
243
261
  readonly subjectId: string;
244
262
  }, exceptRunId: string): Promise<string | null>;
263
+ /** The five latest terminal runs of this agent on this subject, with summaries capped at 400 characters. */
264
+ recentSummaries(conn: DatabaseConnection, key: {
265
+ readonly agentId: string;
266
+ readonly subjectKind: string;
267
+ readonly subjectId: string;
268
+ }, exceptRunId: string): Promise<RecentRunSummary[]>;
245
269
  }
246
270
  export interface RunServiceDeps extends TransitionDeps {
247
271
  readonly diagnose?: ClaimService['diagnose'];
@@ -1 +1 @@
1
- {"version":3,"file":"run.service.d.ts","sourceRoot":"","sources":["../../../../server/core/runs/run.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.service.d.ts","sourceRoot":"","sources":["../../../../server/core/runs/run.service.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ import { findAgent, lockAgentForClaim } from '../agents/index.js';
14
14
  import { agentNamesOf } from '../agents/agent.store.js';
15
15
  import { createRunRequestService, insertRunRequest, } from './run-requests.js';
16
16
  import { authenticateRunToken } from './run-tokens.js';
17
- import { ACTIVE, eventsRepo, findRunRecord, inputsOnSince, inputsRepo, isActive, isTerminal, lastSummary, openRunsOn, openRunsOnEach, pendingInputs, reposRepo, runsOfKey, runsRepo, toInput, toInputView, toRepo, toRun, usageRepo, } from './run.store.js';
17
+ import { ACTIVE, eventsRepo, findRunRecord, inputsOnSince, inputsRepo, isActive, isTerminal, lastSummary, recentSummaries, openRunsOn, openRunsOnEach, pendingInputs, reposRepo, runnerPreferenceOf, runsOfKey, runsRepo, toInput, toInputView, toRepo, toRun, usageRepo, } from './run.store.js';
18
18
  import { readQueueWait, readWorkload, } from './workload.js';
19
19
  import { finishRun } from './transitions.js';
20
20
  import { gateInputs, gatePending } from './input-gate.js';
@@ -113,6 +113,9 @@ export function createRunService(deps) {
113
113
  agentId: agent.id,
114
114
  agentType: 'runner',
115
115
  runnerId: null,
116
+ runnerPinId: values.runnerPinId ?? null,
117
+ tool: values.tool ?? null,
118
+ model: values.model ?? null,
116
119
  status: 'queued',
117
120
  priority: values.priority,
118
121
  attempt: 1,
@@ -132,6 +135,8 @@ export function createRunService(deps) {
132
135
  requestedByUserId: values.requestedByUserId,
133
136
  confirmedByUserId: values.confirmedByUserId,
134
137
  ownerUserId: values.ownerUserId,
138
+ // The actor's choice now: a later change applies to runs queued after it.
139
+ runnerPreference: await runnerPreferenceOf(unit.conn, values.actorUserId),
135
140
  requires: cleanList([...values.requires]),
136
141
  acceptsInput: false,
137
142
  availableAt: values.availableAt ?? null,
@@ -145,8 +150,9 @@ export function createRunService(deps) {
145
150
  cancelledById: null,
146
151
  failureReason: null,
147
152
  failureDetail: null,
153
+ failureParams: null,
148
154
  summary: null,
149
- sessionId: null,
155
+ sessionId: values.sessionId ?? null,
150
156
  workDir: null,
151
157
  directoryKey: null,
152
158
  claimFailures: 0,
@@ -398,6 +404,10 @@ export function createRunService(deps) {
398
404
  }
399
405
  const waiting = open.find((run) => run.status === 'queued');
400
406
  const target = working ?? waiting;
407
+ if (target && work.retryOfRunId)
408
+ throw precondition('AGENT_BUSY', 'The agent is already working on this.', {
409
+ runId: target.id,
410
+ });
401
411
  const commentInput = (rootId) => rootId
402
412
  ? {
403
413
  ...work.input,
@@ -428,6 +438,7 @@ export function createRunService(deps) {
428
438
  commentExecution: work.commentExecution,
429
439
  commentOwnerKey: work.commentOwnerKey,
430
440
  freshSession: work.freshSession,
441
+ runnerPinId: work.runnerPinId,
431
442
  subject: work.subject,
432
443
  threadScope: work.threadScope,
433
444
  actorUserId: work.actorUserId,
@@ -436,7 +447,7 @@ export function createRunService(deps) {
436
447
  ownerUserId: work.ownerUserId,
437
448
  priority: work.priority,
438
449
  requires: work.requires,
439
- retryOfRunId: null,
450
+ retryOfRunId: work.retryOfRunId ?? null,
440
451
  availableAt: work.fireAt,
441
452
  ...(work.parentRunId ? { parentRunId: work.parentRunId } : {}),
442
453
  ...(work.maxAttempts ? { maxAttempts: work.maxAttempts } : {}),
@@ -444,6 +455,43 @@ export function createRunService(deps) {
444
455
  const inputId = await insertInput(unit, runId, commentInput(work.commentRootRunId === '' ? runId : work.commentRootRunId));
445
456
  return { runId, outcome: 'created', status: 'queued', inputId };
446
457
  }
458
+ /**
459
+ * Cancels a queued or failed run that is being replaced (`EnqueueRequest.replacesRunId`), under its agent's lock and
460
+ * revision. Not a stop request: the subject's cancel hooks do not run, since its work continues in the replacement.
461
+ */
462
+ async function withdrawReplaced(unit, runId, subject, byUserId) {
463
+ const target = await require(unit.conn, runId);
464
+ await lockAgentForClaim(unit.conn, target.agentId, clock.now().toISOString());
465
+ const run = await require(unit.conn, runId);
466
+ if (run.subjectKind !== subject.kind || run.subjectId !== subject.id)
467
+ throw invalid('A replacement cannot cross subjects.');
468
+ const retried = await runsRepo(unit.conn).findOne({
469
+ filter: { retryOfRunId: run.id },
470
+ });
471
+ if (retried)
472
+ throw precondition('RUN_ALREADY_RETRIED', 'This run has already been retried.', { runId: retried.id });
473
+ if (run.status === 'queued') {
474
+ const ended = await finishRun(unit, deps, run, { status: 'cancelled', reason: 'cancelled', cancelledById: byUserId }, true);
475
+ if (!ended)
476
+ throw conflict('The run changed; try again.');
477
+ return;
478
+ }
479
+ if (run.status !== 'failed')
480
+ throw precondition('RUN_NOT_RETRYABLE', 'Only a queued or failed run can be replaced.');
481
+ const now = clock.now().toISOString();
482
+ const changed = await runsRepo(unit.conn).updateMany({
483
+ filter: { id: run.id, status: 'failed', revision: run.revision },
484
+ values: { status: 'cancelled', cancelledById: byUserId, updatedAt: now },
485
+ });
486
+ if (changed.updatedCount !== 1)
487
+ throw conflict('The run changed; try again.');
488
+ unit.emit({
489
+ type: 'run.changed',
490
+ ...(run.runnerPinId ? { quotaWait: false } : {}),
491
+ runId: run.id,
492
+ status: 'cancelled',
493
+ });
494
+ }
447
495
  /** The source of the chain of work a request belongs to (`EnqueueRequest.requestedByUserId`). */
448
496
  async function sourceOf(unit, request) {
449
497
  if (request.comment &&
@@ -761,13 +809,19 @@ export function createRunService(deps) {
761
809
  const agent = await requireInvocable(unit, request.agentId, actorUserId);
762
810
  if (foreign)
763
811
  await requireRunnerFor(unit, agent, actorUserId, request.requires ?? []);
812
+ if (request.replacesRunId)
813
+ await withdrawReplaced(unit, request.replacesRunId, request.subject, request.actorUserId ?? actorUserId);
764
814
  const result = await queue(unit, agent, {
815
+ ...(request.replacesRunId
816
+ ? { retryOfRunId: request.replacesRunId }
817
+ : {}),
765
818
  preferActive: request.preferActive,
766
819
  sourceRunId: request.causedByRunId,
767
820
  commentRootRunId,
768
821
  commentExecution,
769
822
  commentOwnerKey,
770
823
  freshSession: request.freshSession,
824
+ runnerPinId: request.runnerId,
771
825
  subject: request.subject,
772
826
  threadScope,
773
827
  actorUserId,
@@ -848,7 +902,7 @@ export function createRunService(deps) {
848
902
  }
849
903
  return insertInput(unit, run.id, input);
850
904
  }, outer),
851
- cancel: (runId, byUserId, outer) => tx.run(async (unit) => {
905
+ cancel: (runId, byUserId, outer, request) => tx.run(async (unit) => {
852
906
  const run = await require(unit.conn, runId);
853
907
  if (isTerminal(run.status))
854
908
  throw new ProtocolError('RUN_NOT_ACTIVE', `The run is ${run.status}.`);
@@ -860,7 +914,7 @@ export function createRunService(deps) {
860
914
  }, false, async () => {
861
915
  await deps.subjects
862
916
  .get(run.subjectKind)
863
- ?.sink?.onCancelRequested?.(unit, toRun({ ...run, cancelledById: byUserId }));
917
+ ?.sink?.onCancelRequested?.(unit, toRun({ ...run, cancelledById: byUserId }), request);
864
918
  });
865
919
  if (!ended)
866
920
  throw conflict('The run changed; try again.');
@@ -882,7 +936,7 @@ export function createRunService(deps) {
882
936
  ...run,
883
937
  cancelRequestedAt: now,
884
938
  cancelledById: byUserId,
885
- }));
939
+ }), request);
886
940
  unit.emit({ type: 'run.changed', runId: run.id, status: run.status });
887
941
  }
888
942
  return toRun(await require(unit.conn, run.id));
@@ -947,6 +1001,15 @@ export function createRunService(deps) {
947
1001
  throw precondition('RUN_ALREADY_RETRIED', 'This run has already been retried.', {
948
1002
  runId: retried.id,
949
1003
  });
1004
+ // Take the original over by its revision. The conditional write reads the latest row on every dialect, so a
1005
+ // replacement (`replacesRunId`) whose transaction read an older snapshot before the lock fails to cancel it,
1006
+ // and this retry fails if a replacement committed first.
1007
+ const taken = await runsRepo(unit.conn).updateMany({
1008
+ filter: { id: run.id, status: run.status, revision: run.revision },
1009
+ values: { updatedAt: clock.now().toISOString() },
1010
+ });
1011
+ if (taken.updatedCount !== 1)
1012
+ throw conflict('The run changed; try again.');
950
1013
  const previousInputs = await inputsRepo(unit.conn).findMany({
951
1014
  filter: { runId: run.id },
952
1015
  });
@@ -1017,7 +1080,11 @@ export function createRunService(deps) {
1017
1080
  priority: Number(run.priority),
1018
1081
  requires: toRun(run).requires,
1019
1082
  retryOfRunId: run.id,
1020
- freshSession: run.freshSession,
1083
+ freshSession: run.runnerPinId ? false : run.freshSession,
1084
+ runnerPinId: run.runnerPinId,
1085
+ sessionId: run.sessionId,
1086
+ tool: run.tool,
1087
+ model: run.model,
1021
1088
  });
1022
1089
  if (renewComment && oldRoot) {
1023
1090
  const origins = await inputsRepo(unit.conn).findMany({
@@ -1224,6 +1291,22 @@ export function createRunService(deps) {
1224
1291
  });
1225
1292
  return readRuns(records);
1226
1293
  },
1294
+ async agentIds(filter) {
1295
+ let query = tx
1296
+ .read()
1297
+ .query.selectFrom('agRuns')
1298
+ .select('agentId')
1299
+ .distinct()
1300
+ .where('subjectKind', '=', filter.subjectKind)
1301
+ .where('subjectId', '=', filter.subjectId);
1302
+ const userId = filter.involvingUserId;
1303
+ if (userId !== undefined)
1304
+ query = query.where((eb) => eb.or([
1305
+ eb('actorUserId', '=', userId),
1306
+ eb('ownerUserId', '=', userId),
1307
+ ]));
1308
+ return (await query.execute()).map((row) => String(row.agentId));
1309
+ },
1227
1310
  async lastEnded(subjectKind, subjectIds) {
1228
1311
  if (subjectIds.length === 0)
1229
1312
  return [];
@@ -1271,8 +1354,8 @@ export function createRunService(deps) {
1271
1354
  workload(query) {
1272
1355
  return readWorkload(tx.read(), clock, deps.runners, query);
1273
1356
  },
1274
- queueWait(runId) {
1275
- return readQueueWait(tx.read(), clock, deps.runners, runId, deps.diagnose);
1357
+ queueWait(runId, conversationRunnerId) {
1358
+ return readQueueWait(tx.read(), clock, deps.runners, runId, conversationRunnerId === undefined ? deps.diagnose : undefined, conversationRunnerId);
1276
1359
  },
1277
1360
  async events(runId, afterSeq, limit, types) {
1278
1361
  const conn = tx.read();
@@ -1323,6 +1406,7 @@ export function createRunService(deps) {
1323
1406
  const agent = await findAgent(conn, run.agentId);
1324
1407
  return {
1325
1408
  runId: run.id,
1409
+ freshSession: run.freshSession === true,
1326
1410
  attempt: Number(run.attempt),
1327
1411
  status: run.status,
1328
1412
  agent: { id: run.agentId, name: agent?.name ?? run.agentId },
@@ -1366,6 +1450,7 @@ export function createRunService(deps) {
1366
1450
  pendingInputs: async (conn, runId) => (await pendingInputs(conn, runId)).map(toInput),
1367
1451
  inputsSince: inputsOnSince,
1368
1452
  lastSummary,
1453
+ recentSummaries,
1369
1454
  };
1370
1455
  }
1371
1456
  //# sourceMappingURL=run.service.js.map