@capybara-hq/kernel 0.1.0-rc.0 → 0.1.0-rc.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 (1152) hide show
  1. package/bootstrap.json +92 -8
  2. package/dist/admin/admin.controller.d.ts +52 -71
  3. package/dist/admin/admin.controller.js +117 -63
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/admin.schemas.d.ts +57 -0
  7. package/dist/admin/admin.schemas.js +50 -0
  8. package/dist/admin/extensions.controller.d.ts +47 -16
  9. package/dist/admin/extensions.controller.js +94 -23
  10. package/dist/admin/extensions.schemas.d.ts +7 -0
  11. package/dist/admin/extensions.schemas.js +10 -0
  12. package/dist/admin/limit-defaults.d.ts +20 -0
  13. package/dist/admin/limit-defaults.js +10 -0
  14. package/dist/admin/setup-lock.d.ts +16 -0
  15. package/dist/admin/setup-lock.js +47 -0
  16. package/dist/admin/setup.controller.d.ts +9 -9
  17. package/dist/admin/setup.controller.js +28 -26
  18. package/dist/admin/setup.service.d.ts +20 -28
  19. package/dist/admin/setup.service.js +65 -65
  20. package/dist/agents/agent-lookup.d.ts +72 -0
  21. package/dist/agents/agent-lookup.js +208 -0
  22. package/dist/agents/agent-profile.service.d.ts +31 -0
  23. package/dist/agents/agent-profile.service.js +122 -0
  24. package/dist/agents/agents.controller.d.ts +54 -169
  25. package/dist/agents/agents.controller.js +172 -37
  26. package/dist/agents/agents.module.d.ts +10 -0
  27. package/dist/agents/agents.module.js +71 -0
  28. package/dist/agents/agents.schemas.d.ts +389 -0
  29. package/dist/agents/agents.schemas.js +126 -0
  30. package/dist/agents/agents.service.d.ts +104 -76
  31. package/dist/agents/agents.service.js +509 -383
  32. package/dist/agents/definition.d.ts +133 -21
  33. package/dist/agents/definition.js +361 -41
  34. package/dist/agents/from-template.d.ts +106 -0
  35. package/dist/agents/from-template.js +680 -0
  36. package/dist/agents/from-template.service.d.ts +72 -0
  37. package/dist/agents/from-template.service.js +178 -0
  38. package/dist/agents/instruction-files.d.ts +60 -0
  39. package/dist/agents/instruction-files.js +111 -0
  40. package/dist/agents/models.controller.d.ts +44 -6
  41. package/dist/agents/models.controller.js +84 -8
  42. package/dist/agents/org-templates.d.ts +186 -0
  43. package/dist/agents/org-templates.js +868 -0
  44. package/dist/agents/pending-connector-requests.d.ts +79 -0
  45. package/dist/agents/pending-connector-requests.js +215 -0
  46. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  47. package/dist/agents/pending-connectors.controller.js +91 -0
  48. package/dist/agents/pending-connectors.service.d.ts +62 -0
  49. package/dist/agents/pending-connectors.service.js +282 -0
  50. package/dist/agents/profile.d.ts +114 -0
  51. package/dist/agents/profile.js +55 -0
  52. package/dist/agents/readiness.controller.d.ts +26 -0
  53. package/dist/agents/readiness.controller.js +56 -0
  54. package/dist/agents/templates.controller.d.ts +78 -6
  55. package/dist/agents/templates.controller.js +154 -8
  56. package/dist/agents/templates.d.ts +132 -30
  57. package/dist/agents/templates.js +500 -46
  58. package/dist/agents/templates.schemas.d.ts +20 -0
  59. package/dist/agents/templates.schemas.js +45 -0
  60. package/dist/app.d.ts +93 -0
  61. package/dist/app.js +150 -0
  62. package/dist/background/background.controller.d.ts +38 -0
  63. package/dist/background/background.controller.js +88 -0
  64. package/dist/background/background.module.d.ts +10 -0
  65. package/dist/background/background.module.js +39 -0
  66. package/dist/background/background.schemas.d.ts +10 -0
  67. package/dist/background/background.schemas.js +16 -0
  68. package/dist/background/finish.d.ts +44 -0
  69. package/dist/background/finish.js +95 -0
  70. package/dist/background/launch-lock.d.ts +15 -0
  71. package/dist/background/launch-lock.js +40 -0
  72. package/dist/background/launch.d.ts +42 -0
  73. package/dist/background/launch.js +77 -0
  74. package/dist/background/poll.job.d.ts +56 -0
  75. package/dist/background/poll.job.js +195 -0
  76. package/dist/background/render.d.ts +23 -0
  77. package/dist/background/render.js +48 -0
  78. package/dist/background/session.d.ts +48 -0
  79. package/dist/background/session.js +80 -0
  80. package/dist/background/status.d.ts +35 -0
  81. package/dist/background/status.js +57 -0
  82. package/dist/background/stop.d.ts +68 -0
  83. package/dist/background/stop.js +244 -0
  84. package/dist/background/store.d.ts +167 -0
  85. package/dist/background/store.js +361 -0
  86. package/dist/background/store.module.d.ts +6 -0
  87. package/dist/background/store.module.js +22 -0
  88. package/dist/background/tasks.service.d.ts +77 -0
  89. package/dist/background/tasks.service.js +216 -0
  90. package/dist/background/wake-rules.d.ts +66 -0
  91. package/dist/background/wake-rules.js +113 -0
  92. package/dist/background/wake.d.ts +30 -0
  93. package/dist/background/wake.js +63 -0
  94. package/dist/catalog/admin-catalog.controller.d.ts +102 -52
  95. package/dist/catalog/admin-catalog.controller.js +222 -67
  96. package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
  97. package/dist/catalog/admin-catalog.schemas.js +92 -0
  98. package/dist/catalog/catalog-content.d.ts +232 -0
  99. package/dist/catalog/catalog-content.js +367 -0
  100. package/dist/catalog/catalog-files.d.ts +41 -0
  101. package/dist/catalog/catalog-files.js +86 -0
  102. package/dist/catalog/catalog-import.module.d.ts +7 -0
  103. package/dist/catalog/catalog-import.module.js +60 -0
  104. package/dist/catalog/catalog-items.d.ts +290 -0
  105. package/dist/catalog/catalog-items.js +676 -0
  106. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  107. package/dist/catalog/catalog-scope.service.js +1124 -0
  108. package/dist/catalog/catalog.module.d.ts +12 -0
  109. package/dist/catalog/catalog.module.js +81 -0
  110. package/dist/catalog/catalog.service.d.ts +141 -206
  111. package/dist/catalog/catalog.service.js +237 -528
  112. package/dist/catalog/claude/agents.js +15 -10
  113. package/dist/catalog/cli.d.ts +14 -3
  114. package/dist/catalog/cli.js +39 -32
  115. package/dist/catalog/component-promotion.d.ts +96 -0
  116. package/dist/catalog/component-promotion.js +395 -0
  117. package/dist/catalog/component-scope.controller.d.ts +90 -0
  118. package/dist/catalog/component-scope.controller.js +234 -0
  119. package/dist/catalog/component-scope.schemas.d.ts +114 -0
  120. package/dist/catalog/component-scope.schemas.js +97 -0
  121. package/dist/catalog/component-scope.service.d.ts +327 -0
  122. package/dist/catalog/component-scope.service.js +990 -0
  123. package/dist/catalog/component-state.d.ts +188 -0
  124. package/dist/catalog/component-state.js +455 -0
  125. package/dist/catalog/git-source.d.ts +9 -1
  126. package/dist/catalog/git-source.js +29 -2
  127. package/dist/catalog/job-ids.d.ts +45 -0
  128. package/dist/catalog/job-ids.js +40 -0
  129. package/dist/catalog/jobs.d.ts +27 -0
  130. package/dist/catalog/jobs.js +70 -0
  131. package/dist/catalog/locks.d.ts +24 -0
  132. package/dist/catalog/locks.js +63 -0
  133. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  134. package/dist/catalog/marketplace-icons.d.ts +64 -0
  135. package/dist/catalog/marketplace-icons.js +131 -0
  136. package/dist/catalog/marketplaces.controller.d.ts +53 -44
  137. package/dist/catalog/marketplaces.controller.js +146 -51
  138. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  139. package/dist/catalog/marketplaces.schemas.js +53 -0
  140. package/dist/catalog/marketplaces.service.d.ts +136 -26
  141. package/dist/catalog/marketplaces.service.js +663 -281
  142. package/dist/catalog/org-catalog.controller.d.ts +115 -63
  143. package/dist/catalog/org-catalog.controller.js +207 -100
  144. package/dist/catalog/org-catalog.schemas.d.ts +88 -0
  145. package/dist/catalog/org-catalog.schemas.js +93 -0
  146. package/dist/catalog/org-catalog.service.d.ts +89 -216
  147. package/dist/catalog/org-catalog.service.js +431 -472
  148. package/dist/catalog/org-extension-switch.d.ts +41 -0
  149. package/dist/catalog/org-extension-switch.js +115 -0
  150. package/dist/catalog/org-extension.controller.d.ts +113 -0
  151. package/dist/catalog/org-extension.controller.js +271 -0
  152. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  153. package/dist/catalog/org-extension.schemas.js +22 -0
  154. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  155. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  156. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  157. package/dist/catalog/org-plugin-uploads.js +122 -0
  158. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  159. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  160. package/dist/catalog/owned-items.d.ts +188 -0
  161. package/dist/catalog/owned-items.js +801 -0
  162. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  163. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  164. package/dist/catalog/ownership.d.ts +172 -0
  165. package/dist/catalog/ownership.js +326 -0
  166. package/dist/catalog/platform-components.d.ts +223 -0
  167. package/dist/catalog/platform-components.js +763 -0
  168. package/dist/catalog/platform-migration.d.ts +115 -0
  169. package/dist/catalog/platform-migration.js +582 -0
  170. package/dist/catalog/plugin-import.d.ts +270 -68
  171. package/dist/catalog/plugin-import.js +1004 -277
  172. package/dist/catalog/plugin-install.d.ts +251 -65
  173. package/dist/catalog/plugin-install.js +1128 -344
  174. package/dist/catalog/plugin-package.js +14 -1
  175. package/dist/catalog/plugin-upgrade.d.ts +301 -188
  176. package/dist/catalog/plugin-upgrade.js +1256 -1068
  177. package/dist/catalog/request-rules.d.ts +65 -0
  178. package/dist/catalog/request-rules.js +217 -0
  179. package/dist/catalog/requests.service.d.ts +205 -117
  180. package/dist/catalog/requests.service.js +612 -369
  181. package/dist/catalog/reserved-names.d.ts +8 -0
  182. package/dist/catalog/reserved-names.js +42 -0
  183. package/dist/catalog/scope-orgs.d.ts +21 -0
  184. package/dist/catalog/scope-orgs.js +67 -0
  185. package/dist/catalog/scope-state.d.ts +35 -0
  186. package/dist/catalog/scope-state.js +87 -0
  187. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  188. package/dist/catalog/scope-sync-workers.js +29 -0
  189. package/dist/catalog/scope-sync.d.ts +176 -0
  190. package/dist/catalog/scope-sync.js +576 -0
  191. package/dist/catalog/scope.d.ts +42 -0
  192. package/dist/catalog/scope.js +42 -0
  193. package/dist/catalog/unshare.d.ts +22 -0
  194. package/dist/catalog/unshare.js +118 -0
  195. package/dist/channels/actions.d.ts +6 -4
  196. package/dist/channels/actions.js +11 -4
  197. package/dist/channels/cards.d.ts +33 -11
  198. package/dist/channels/cards.js +96 -24
  199. package/dist/channels/channels.module.d.ts +40 -0
  200. package/dist/channels/channels.module.js +130 -0
  201. package/dist/channels/channels.schemas.d.ts +37 -0
  202. package/dist/channels/channels.schemas.js +38 -0
  203. package/dist/channels/connections.controller.d.ts +44 -37
  204. package/dist/channels/connections.controller.js +83 -38
  205. package/dist/channels/connections.service.d.ts +101 -30
  206. package/dist/channels/connections.service.js +380 -147
  207. package/dist/channels/inbound.d.ts +44 -38
  208. package/dist/channels/inbound.js +190 -44
  209. package/dist/channels/job-ids.d.ts +10 -0
  210. package/dist/channels/job-ids.js +10 -0
  211. package/dist/channels/jobs.d.ts +85 -0
  212. package/dist/channels/jobs.js +157 -0
  213. package/dist/channels/outbound.d.ts +71 -80
  214. package/dist/channels/outbound.js +219 -201
  215. package/dist/channels/phrases.d.ts +33 -2
  216. package/dist/channels/phrases.js +29 -1
  217. package/dist/channels/supervisor.d.ts +88 -46
  218. package/dist/channels/supervisor.js +230 -132
  219. package/dist/channels/threads.d.ts +34 -8
  220. package/dist/channels/threads.js +79 -13
  221. package/dist/channels/webhook.d.ts +20 -14
  222. package/dist/channels/webhook.js +51 -20
  223. package/dist/config/docs.js +5 -1
  224. package/dist/config/load.d.ts +3 -2
  225. package/dist/config/load.js +3 -2
  226. package/dist/config/nacos-source.js +11 -2
  227. package/dist/config/schema.d.ts +51 -3
  228. package/dist/config/schema.js +269 -27
  229. package/dist/conversations/access.d.ts +31 -0
  230. package/dist/conversations/access.js +110 -0
  231. package/dist/conversations/agent-tree.d.ts +46 -0
  232. package/dist/conversations/agent-tree.js +92 -0
  233. package/dist/conversations/artifacts.d.ts +11 -11
  234. package/dist/conversations/artifacts.js +36 -10
  235. package/dist/conversations/attachments.controller.d.ts +1 -1
  236. package/dist/conversations/attachments.controller.js +8 -6
  237. package/dist/conversations/attachments.module.d.ts +7 -0
  238. package/dist/conversations/attachments.module.js +25 -0
  239. package/dist/conversations/attachments.service.d.ts +60 -22
  240. package/dist/conversations/attachments.service.js +249 -51
  241. package/dist/conversations/conversations.controller.d.ts +86 -50
  242. package/dist/conversations/conversations.controller.js +184 -103
  243. package/dist/conversations/conversations.module.d.ts +8 -0
  244. package/dist/conversations/conversations.module.js +72 -0
  245. package/dist/conversations/conversations.schemas.d.ts +52 -0
  246. package/dist/conversations/conversations.schemas.js +79 -0
  247. package/dist/conversations/conversations.service.d.ts +166 -49
  248. package/dist/conversations/conversations.service.js +383 -179
  249. package/dist/conversations/environment-status.d.ts +24 -0
  250. package/dist/conversations/environment-status.js +71 -0
  251. package/dist/conversations/event-log.d.ts +64 -27
  252. package/dist/conversations/event-log.js +167 -31
  253. package/dist/conversations/events.d.ts +252 -9
  254. package/dist/conversations/events.js +243 -32
  255. package/dist/conversations/files.d.ts +10 -10
  256. package/dist/conversations/files.js +37 -11
  257. package/dist/conversations/idem-keys.d.ts +5 -0
  258. package/dist/conversations/idem-keys.js +5 -0
  259. package/dist/conversations/job-ids.d.ts +6 -0
  260. package/dist/conversations/job-ids.js +6 -0
  261. package/dist/conversations/message-context.d.ts +79 -0
  262. package/dist/conversations/message-context.js +145 -0
  263. package/dist/conversations/outputs-read.d.ts +11 -11
  264. package/dist/conversations/outputs-read.js +31 -7
  265. package/dist/conversations/queue.d.ts +53 -58
  266. package/dist/conversations/queue.js +37 -293
  267. package/dist/conversations/queue.service.d.ts +60 -0
  268. package/dist/conversations/queue.service.js +350 -0
  269. package/dist/conversations/titles.d.ts +83 -27
  270. package/dist/conversations/titles.js +195 -70
  271. package/dist/conversations/tree.d.ts +17 -0
  272. package/dist/conversations/tree.js +42 -0
  273. package/dist/ctx/bus.js +9 -3
  274. package/dist/ctx/create-ctx.d.ts +26 -1
  275. package/dist/ctx/create-ctx.js +45 -16
  276. package/dist/ctx/lock.d.ts +7 -3
  277. package/dist/ctx/lock.js +9 -20
  278. package/dist/ctx/queue.js +3 -2
  279. package/dist/ctx/secrets.d.ts +10 -2
  280. package/dist/ctx/secrets.js +7 -3
  281. package/dist/db/kernel-schema.d.ts +550 -25
  282. package/dist/db/pool.d.ts +10 -0
  283. package/dist/db/pool.js +4 -0
  284. package/dist/devices/device-auth.controller.d.ts +42 -0
  285. package/dist/devices/device-auth.controller.js +116 -0
  286. package/dist/devices/device-auth.d.ts +119 -0
  287. package/dist/devices/device-auth.js +403 -0
  288. package/dist/devices/device-auth.module.d.ts +7 -0
  289. package/dist/devices/device-auth.module.js +25 -0
  290. package/dist/devices/device-gateway.d.ts +128 -0
  291. package/dist/devices/device-gateway.js +530 -0
  292. package/dist/devices/device-provider.d.ts +89 -0
  293. package/dist/devices/device-provider.js +151 -0
  294. package/dist/devices/device-routes.d.ts +36 -0
  295. package/dist/devices/device-routes.js +90 -0
  296. package/dist/devices/devices.module.d.ts +16 -0
  297. package/dist/devices/devices.module.js +44 -0
  298. package/dist/devices/dto.d.ts +66 -0
  299. package/dist/devices/dto.js +44 -0
  300. package/dist/devices/keys.d.ts +25 -0
  301. package/dist/devices/keys.js +25 -0
  302. package/dist/devices/machines.d.ts +118 -0
  303. package/dist/devices/machines.js +366 -0
  304. package/dist/devices/relay.d.ts +100 -0
  305. package/dist/devices/relay.js +373 -0
  306. package/dist/devices/targets.d.ts +28 -0
  307. package/dist/devices/targets.js +73 -0
  308. package/dist/environments/access.d.ts +66 -0
  309. package/dist/environments/access.js +113 -0
  310. package/dist/environments/conversation-environments.d.ts +75 -0
  311. package/dist/environments/conversation-environments.js +231 -0
  312. package/dist/environments/dto.d.ts +25 -0
  313. package/dist/environments/dto.js +12 -0
  314. package/dist/environments/environments.controller.d.ts +36 -0
  315. package/dist/environments/environments.controller.js +124 -0
  316. package/dist/environments/environments.module.d.ts +8 -0
  317. package/dist/environments/environments.module.js +31 -0
  318. package/dist/environments/environments.schemas.d.ts +3 -0
  319. package/dist/environments/environments.schemas.js +14 -0
  320. package/dist/environments/environments.service.d.ts +251 -0
  321. package/dist/environments/environments.service.js +791 -0
  322. package/dist/environments/label.d.ts +11 -0
  323. package/dist/environments/label.js +25 -0
  324. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  325. package/dist/environments/legacy-cleanup.job.js +141 -0
  326. package/dist/errors.d.ts +136 -2
  327. package/dist/errors.js +136 -2
  328. package/dist/evals/budget.d.ts +42 -21
  329. package/dist/evals/budget.js +114 -62
  330. package/dist/evals/evals.module.d.ts +31 -0
  331. package/dist/evals/evals.module.js +114 -0
  332. package/dist/evals/evals.schemas.d.ts +110 -0
  333. package/dist/evals/evals.schemas.js +107 -0
  334. package/dist/evals/jobs.d.ts +20 -0
  335. package/dist/evals/jobs.js +45 -0
  336. package/dist/evals/reconstruct.d.ts +18 -9
  337. package/dist/evals/reconstruct.js +36 -10
  338. package/dist/evals/recorded-tools.d.ts +37 -1
  339. package/dist/evals/recorded-tools.js +120 -10
  340. package/dist/evals/run-replay.d.ts +75 -10
  341. package/dist/evals/run-replay.js +218 -94
  342. package/dist/evals/runs.controller.d.ts +3 -58
  343. package/dist/evals/runs.controller.js +18 -50
  344. package/dist/evals/runs.service.d.ts +31 -52
  345. package/dist/evals/runs.service.js +281 -255
  346. package/dist/evals/sets.controller.d.ts +3 -29
  347. package/dist/evals/sets.controller.js +18 -39
  348. package/dist/evals/sets.service.d.ts +29 -13
  349. package/dist/evals/sets.service.js +262 -202
  350. package/dist/evals/snapshot.d.ts +5 -4
  351. package/dist/evals/snapshot.js +17 -4
  352. package/dist/evals/step-replay.d.ts +6 -8
  353. package/dist/evals/step-replay.js +17 -10
  354. package/dist/evals/trajectory.controller.d.ts +1 -1
  355. package/dist/evals/trajectory.controller.js +11 -7
  356. package/dist/evals/trajectory.d.ts +2 -2
  357. package/dist/evals/trajectory.js +1 -1
  358. package/dist/evals/trajectory.service.d.ts +13 -7
  359. package/dist/evals/trajectory.service.js +56 -21
  360. package/dist/evals/worker.d.ts +48 -31
  361. package/dist/evals/worker.js +229 -123
  362. package/dist/extensions/admin-ops.d.ts +133 -41
  363. package/dist/extensions/admin-ops.js +378 -172
  364. package/dist/extensions/admin-view.d.ts +82 -32
  365. package/dist/extensions/admin-view.js +284 -71
  366. package/dist/extensions/approvals.d.ts +24 -10
  367. package/dist/extensions/approvals.js +73 -46
  368. package/dist/extensions/blobs.d.ts +27 -10
  369. package/dist/extensions/blobs.js +112 -45
  370. package/dist/extensions/bootstrap.d.ts +136 -46
  371. package/dist/extensions/bootstrap.js +417 -167
  372. package/dist/extensions/cli.d.ts +32 -10
  373. package/dist/extensions/cli.js +52 -98
  374. package/dist/extensions/config-hash.d.ts +10 -0
  375. package/dist/extensions/config-hash.js +38 -0
  376. package/dist/extensions/config-issues.d.ts +19 -0
  377. package/dist/extensions/config-issues.js +48 -0
  378. package/dist/extensions/config-json-schema.d.ts +43 -7
  379. package/dist/extensions/config-json-schema.js +124 -58
  380. package/dist/extensions/deployment-config-store.d.ts +55 -0
  381. package/dist/extensions/deployment-config-store.js +133 -0
  382. package/dist/extensions/deployment-config.d.ts +146 -70
  383. package/dist/extensions/deployment-config.js +439 -246
  384. package/dist/extensions/display-name.d.ts +22 -0
  385. package/dist/extensions/display-name.js +77 -0
  386. package/dist/extensions/effective-config.d.ts +127 -0
  387. package/dist/extensions/effective-config.js +368 -0
  388. package/dist/extensions/enabled.d.ts +5 -5
  389. package/dist/extensions/extensions.module.d.ts +8 -0
  390. package/dist/extensions/extensions.module.js +96 -0
  391. package/dist/extensions/hooks.d.ts +40 -6
  392. package/dist/extensions/hooks.js +83 -17
  393. package/dist/extensions/host.d.ts +161 -80
  394. package/dist/extensions/host.js +505 -213
  395. package/dist/extensions/installs.d.ts +73 -19
  396. package/dist/extensions/installs.js +174 -37
  397. package/dist/extensions/job-ids.d.ts +6 -0
  398. package/dist/extensions/job-ids.js +6 -0
  399. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  400. package/dist/extensions/lifecycle-topics.js +18 -0
  401. package/dist/extensions/lifecycle.d.ts +35 -47
  402. package/dist/extensions/lifecycle.js +103 -39
  403. package/dist/extensions/locks.d.ts +45 -0
  404. package/dist/extensions/locks.js +112 -0
  405. package/dist/extensions/migrate-lock.d.ts +3 -4
  406. package/dist/extensions/org-config.d.ts +141 -49
  407. package/dist/extensions/org-config.js +471 -243
  408. package/dist/extensions/org-levels.d.ts +37 -0
  409. package/dist/extensions/org-levels.js +71 -0
  410. package/dist/extensions/org-overrides.d.ts +151 -0
  411. package/dist/extensions/org-overrides.js +524 -0
  412. package/dist/extensions/package.d.ts +14 -1
  413. package/dist/extensions/package.js +51 -2
  414. package/dist/extensions/permission-view.d.ts +59 -6
  415. package/dist/extensions/permission-view.js +7 -5
  416. package/dist/extensions/plugin-guides.d.ts +129 -0
  417. package/dist/extensions/plugin-guides.js +283 -0
  418. package/dist/extensions/plugin-icons.d.ts +54 -0
  419. package/dist/extensions/plugin-icons.js +125 -0
  420. package/dist/extensions/plugin-items.d.ts +21 -0
  421. package/dist/extensions/plugin-items.js +42 -0
  422. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  423. package/dist/extensions/point-defaults.controller.js +69 -0
  424. package/dist/extensions/point-defaults.d.ts +73 -0
  425. package/dist/extensions/point-defaults.js +236 -0
  426. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  427. package/dist/extensions/point-defaults.schemas.js +14 -0
  428. package/dist/extensions/registry.d.ts +50 -2
  429. package/dist/extensions/registry.js +91 -4
  430. package/dist/extensions/resolve.d.ts +51 -1
  431. package/dist/extensions/resolve.js +85 -3
  432. package/dist/extensions/single-provider.d.ts +92 -0
  433. package/dist/extensions/single-provider.js +180 -0
  434. package/dist/extensions/sources.d.ts +19 -10
  435. package/dist/extensions/sources.js +34 -13
  436. package/dist/extensions/state.module.d.ts +9 -0
  437. package/dist/extensions/state.module.js +38 -0
  438. package/dist/extensions/unavailable.d.ts +50 -0
  439. package/dist/extensions/unavailable.js +115 -0
  440. package/dist/files/files.module.d.ts +3 -0
  441. package/dist/files/files.module.js +22 -0
  442. package/dist/files/previewers.controller.d.ts +7 -2
  443. package/dist/files/previewers.controller.js +19 -12
  444. package/dist/files/previewers.d.ts +21 -19
  445. package/dist/files/previewers.js +114 -38
  446. package/dist/files/previewers.schemas.d.ts +10 -0
  447. package/dist/files/previewers.schemas.js +9 -0
  448. package/dist/http/adapter.d.ts +3 -0
  449. package/dist/http/adapter.js +25 -0
  450. package/dist/http/api.module.d.ts +3 -110
  451. package/dist/http/api.module.js +86 -358
  452. package/dist/http/app.d.ts +22 -17
  453. package/dist/http/app.js +83 -52
  454. package/dist/http/error-filter.module.d.ts +5 -0
  455. package/dist/http/error-filter.module.js +18 -0
  456. package/dist/http/error.filter.js +2 -2
  457. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  458. package/dist/http/gateway-routes.js +16 -0
  459. package/dist/http/nest-logger.d.ts +6 -5
  460. package/dist/http/nest-logger.js +24 -10
  461. package/dist/http/plugin-dispatch.d.ts +4 -1
  462. package/dist/http/plugin-dispatch.js +14 -2
  463. package/dist/identity/accounts.d.ts +130 -38
  464. package/dist/identity/accounts.js +373 -186
  465. package/dist/identity/api-tokens.d.ts +11 -7
  466. package/dist/identity/api-tokens.js +71 -44
  467. package/dist/identity/audit.d.ts +9 -5
  468. package/dist/identity/audit.js +5 -1
  469. package/dist/identity/auth.controller.d.ts +11 -10
  470. package/dist/identity/auth.controller.js +40 -30
  471. package/dist/identity/auth.guard.d.ts +16 -8
  472. package/dist/identity/auth.guard.js +41 -13
  473. package/dist/identity/binding.d.ts +9 -11
  474. package/dist/identity/binding.js +41 -13
  475. package/dist/identity/cookies.d.ts +26 -5
  476. package/dist/identity/cookies.js +58 -6
  477. package/dist/identity/external-identity-lock.d.ts +17 -0
  478. package/dist/identity/external-identity-lock.js +39 -0
  479. package/dist/identity/external.d.ts +19 -15
  480. package/dist/identity/external.js +163 -125
  481. package/dist/identity/identity.module.d.ts +6 -0
  482. package/dist/identity/identity.module.js +59 -0
  483. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  484. package/dist/identity/initial-passwords.controller.js +49 -0
  485. package/dist/identity/initial-passwords.d.ts +61 -0
  486. package/dist/identity/initial-passwords.job.d.ts +16 -0
  487. package/dist/identity/initial-passwords.job.js +46 -0
  488. package/dist/identity/initial-passwords.js +159 -0
  489. package/dist/identity/me.controller.d.ts +32 -15
  490. package/dist/identity/me.controller.js +78 -33
  491. package/dist/identity/me.schemas.d.ts +14 -0
  492. package/dist/identity/me.schemas.js +17 -0
  493. package/dist/identity/principal.d.ts +11 -3
  494. package/dist/identity/principal.js +11 -3
  495. package/dist/identity/sessions.d.ts +24 -10
  496. package/dist/identity/sessions.js +119 -42
  497. package/dist/identity/settings.d.ts +42 -23
  498. package/dist/identity/settings.js +137 -72
  499. package/dist/identity/sso.controller.d.ts +7 -7
  500. package/dist/identity/sso.controller.js +13 -9
  501. package/dist/identity/sso.d.ts +9 -12
  502. package/dist/identity/sso.js +54 -24
  503. package/dist/identity/super-admin.d.ts +20 -0
  504. package/dist/identity/super-admin.js +81 -0
  505. package/dist/inbox/inbox.module.d.ts +6 -0
  506. package/dist/inbox/inbox.module.js +26 -0
  507. package/dist/inbox/inbox.schemas.d.ts +8 -0
  508. package/dist/inbox/inbox.schemas.js +11 -0
  509. package/dist/inbox/inbox.service.d.ts +68 -11
  510. package/dist/inbox/inbox.service.js +104 -13
  511. package/dist/inbox/org-notices.d.ts +63 -0
  512. package/dist/inbox/org-notices.js +91 -0
  513. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  514. package/dist/inbox/platform-inbox.controller.js +58 -0
  515. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  516. package/dist/inbox/platform-inbox.service.js +263 -0
  517. package/dist/inbox/platform-notices.d.ts +19 -0
  518. package/dist/inbox/platform-notices.js +9 -0
  519. package/dist/index.d.ts +25 -14
  520. package/dist/index.js +20 -9
  521. package/dist/infra/cache/cache.module.d.ts +3 -0
  522. package/dist/infra/cache/cache.module.js +16 -0
  523. package/dist/infra/cache/cache.service.d.ts +21 -0
  524. package/dist/infra/cache/cache.service.js +80 -0
  525. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  526. package/dist/infra/cache/cacheable.decorator.js +83 -0
  527. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  528. package/dist/infra/cli/kernel-cli.module.js +173 -0
  529. package/dist/infra/close-within.d.ts +15 -0
  530. package/dist/infra/close-within.js +36 -0
  531. package/dist/infra/config/config.module.d.ts +13 -0
  532. package/dist/infra/config/config.module.js +39 -0
  533. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  534. package/dist/infra/config/kernel-config.service.js +157 -0
  535. package/dist/infra/database/after-commit.d.ts +6 -0
  536. package/dist/infra/database/after-commit.js +9 -0
  537. package/dist/infra/database/database.module.d.ts +25 -0
  538. package/dist/infra/database/database.module.js +91 -0
  539. package/dist/infra/database/kernel-db.d.ts +22 -0
  540. package/dist/infra/database/kernel-db.js +65 -0
  541. package/dist/infra/database/transaction-host.d.ts +50 -0
  542. package/dist/infra/database/transaction-host.js +125 -0
  543. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  544. package/dist/infra/database/transactional.decorator.js +27 -0
  545. package/dist/infra/database/xact-lock.d.ts +17 -0
  546. package/dist/infra/database/xact-lock.js +43 -0
  547. package/dist/infra/events/kernel-events.d.ts +121 -0
  548. package/dist/infra/events/kernel-events.js +65 -0
  549. package/dist/infra/health/health.controller.d.ts +26 -0
  550. package/dist/infra/health/health.controller.js +104 -0
  551. package/dist/infra/health/health.module.d.ts +9 -0
  552. package/dist/infra/health/health.module.js +24 -0
  553. package/dist/infra/health/health.options.d.ts +10 -0
  554. package/dist/infra/health/health.options.js +15 -0
  555. package/dist/infra/health/shutdown-state.d.ts +6 -0
  556. package/dist/infra/health/shutdown-state.js +2 -0
  557. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  560. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  561. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  562. package/dist/infra/lifecycle/process-guards.js +90 -0
  563. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  564. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  565. package/dist/infra/lock/key-template.d.ts +13 -0
  566. package/dist/infra/lock/key-template.js +46 -0
  567. package/dist/infra/lock/lock.module.d.ts +3 -0
  568. package/dist/infra/lock/lock.module.js +16 -0
  569. package/dist/infra/lock/lock.service.d.ts +120 -0
  570. package/dist/infra/lock/lock.service.js +343 -0
  571. package/dist/infra/lock/shared-lease.d.ts +44 -0
  572. package/dist/infra/lock/shared-lease.js +121 -0
  573. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  574. package/dist/infra/lock/with-lock.decorator.js +49 -0
  575. package/dist/infra/logging/logging.module.d.ts +18 -0
  576. package/dist/infra/logging/logging.module.js +52 -0
  577. package/dist/infra/queue/add-job-once.d.ts +14 -0
  578. package/dist/infra/queue/add-job-once.js +16 -0
  579. package/dist/infra/queue/configured-processor.d.ts +18 -0
  580. package/dist/infra/queue/configured-processor.js +23 -0
  581. package/dist/infra/queue/job-failure.d.ts +18 -0
  582. package/dist/infra/queue/job-failure.js +26 -0
  583. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  584. package/dist/infra/queue/queue-shutdown.js +81 -0
  585. package/dist/infra/queue/queue.module.d.ts +16 -0
  586. package/dist/infra/queue/queue.module.js +61 -0
  587. package/dist/infra/queue/redis-connection.d.ts +13 -0
  588. package/dist/infra/queue/redis-connection.js +25 -0
  589. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  590. package/dist/infra/queue/retired-schedulers.js +9 -0
  591. package/dist/infra/queue/run-job.d.ts +16 -0
  592. package/dist/infra/queue/run-job.js +19 -0
  593. package/dist/infra/redis/redis.module.d.ts +24 -0
  594. package/dist/infra/redis/redis.module.js +91 -0
  595. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  596. package/dist/infra/schedule/cron-tick.js +25 -0
  597. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  598. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  599. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  600. package/dist/infra/schedule/locked-interval.js +190 -0
  601. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  602. package/dist/infra/schedule/locked-tick.js +137 -0
  603. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  604. package/dist/infra/schedule/schedule.module.js +27 -0
  605. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  606. package/dist/infra/schedule/scheduled-runs.js +163 -0
  607. package/dist/infra/swagger/swagger.d.ts +16 -0
  608. package/dist/infra/swagger/swagger.js +31 -0
  609. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  610. package/dist/infra/throttler/credential-throttler.js +77 -0
  611. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  612. package/dist/infra/throttler/named-throttlers.js +157 -0
  613. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  614. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  615. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  616. package/dist/infra/throttler/throttler.guard.js +68 -0
  617. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  618. package/dist/infra/throttler/throttler.module.js +53 -0
  619. package/dist/infra/tokens.d.ts +20 -0
  620. package/dist/infra/tokens.js +20 -0
  621. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  622. package/dist/infra/validation/create-zod-dto.js +35 -0
  623. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  624. package/dist/infra/validation/parse-with-zod.js +12 -0
  625. package/dist/infra/validation/validation.module.d.ts +3 -0
  626. package/dist/infra/validation/validation.module.js +16 -0
  627. package/dist/infra/validation/zod-params.d.ts +7 -0
  628. package/dist/infra/validation/zod-params.js +42 -0
  629. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  630. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  631. package/dist/kernel.d.ts +9 -241
  632. package/dist/kernel.js +8 -1305
  633. package/dist/kernel.module.d.ts +17 -0
  634. package/dist/kernel.module.js +145 -0
  635. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  636. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  637. package/dist/lifecycle/tokens.d.ts +3 -0
  638. package/dist/lifecycle/tokens.js +3 -0
  639. package/dist/log-config.d.ts +9 -0
  640. package/dist/log-config.js +27 -0
  641. package/dist/log-context.d.ts +34 -0
  642. package/dist/log-context.js +44 -0
  643. package/dist/log-loki.d.ts +34 -0
  644. package/dist/log-loki.js +145 -0
  645. package/dist/log.d.ts +53 -10
  646. package/dist/log.js +168 -18
  647. package/dist/models/embeddings.d.ts +82 -0
  648. package/dist/models/embeddings.js +326 -0
  649. package/dist/models/enablement.controller.d.ts +40 -0
  650. package/dist/models/enablement.controller.js +74 -0
  651. package/dist/models/enablement.d.ts +101 -0
  652. package/dist/models/enablement.js +264 -0
  653. package/dist/models/models.module.d.ts +7 -0
  654. package/dist/models/models.module.js +36 -0
  655. package/dist/models/org-models.schemas.d.ts +8 -0
  656. package/dist/models/org-models.schemas.js +22 -0
  657. package/dist/models/prices.d.ts +13 -5
  658. package/dist/models/prices.js +69 -39
  659. package/dist/models/purposes.controller.d.ts +6 -4
  660. package/dist/models/purposes.controller.js +16 -11
  661. package/dist/models/purposes.d.ts +103 -23
  662. package/dist/models/purposes.js +208 -77
  663. package/dist/net/public-address.js +3 -2
  664. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  665. package/dist/orgs/directory-sync.controller.js +2 -2
  666. package/dist/orgs/directory-sync.d.ts +74 -35
  667. package/dist/orgs/directory-sync.js +243 -132
  668. package/dist/orgs/invitations.controller.d.ts +8 -8
  669. package/dist/orgs/invitations.controller.js +27 -26
  670. package/dist/orgs/invitations.service.d.ts +12 -9
  671. package/dist/orgs/invitations.service.js +130 -92
  672. package/dist/orgs/job-ids.d.ts +8 -0
  673. package/dist/orgs/job-ids.js +8 -0
  674. package/dist/orgs/members.service.d.ts +19 -12
  675. package/dist/orgs/members.service.js +161 -117
  676. package/dist/orgs/offboarding.d.ts +61 -60
  677. package/dist/orgs/offboarding.js +206 -95
  678. package/dist/orgs/org-lock.d.ts +33 -19
  679. package/dist/orgs/org-lock.js +94 -35
  680. package/dist/orgs/org.guard.d.ts +11 -1
  681. package/dist/orgs/org.guard.js +45 -34
  682. package/dist/orgs/orgs.controller.d.ts +13 -16
  683. package/dist/orgs/orgs.controller.js +29 -20
  684. package/dist/orgs/orgs.module.d.ts +6 -0
  685. package/dist/orgs/orgs.module.js +71 -0
  686. package/dist/orgs/orgs.schemas.d.ts +8 -0
  687. package/dist/orgs/orgs.schemas.js +16 -0
  688. package/dist/orgs/orgs.service.d.ts +47 -21
  689. package/dist/orgs/orgs.service.js +166 -91
  690. package/dist/orgs/roles.d.ts +1 -1
  691. package/dist/orgs/roles.js +5 -1
  692. package/dist/orgs/settings.controller.d.ts +2 -2
  693. package/dist/orgs/settings.controller.js +8 -6
  694. package/dist/orgs/settings.service.d.ts +45 -14
  695. package/dist/orgs/settings.service.js +110 -51
  696. package/dist/overrides.d.ts +63 -0
  697. package/dist/overrides.js +34 -0
  698. package/dist/platform/actor.d.ts +48 -0
  699. package/dist/platform/actor.js +100 -0
  700. package/dist/platform/agent-docs.d.ts +18 -0
  701. package/dist/platform/agent-docs.js +59 -0
  702. package/dist/platform/availability.d.ts +14 -0
  703. package/dist/platform/availability.js +43 -0
  704. package/dist/platform/errors.d.ts +28 -0
  705. package/dist/platform/errors.js +65 -0
  706. package/dist/platform/exclusions.d.ts +11 -0
  707. package/dist/platform/exclusions.js +667 -0
  708. package/dist/platform/method.d.ts +6 -0
  709. package/dist/platform/method.js +15 -0
  710. package/dist/platform/operation.d.ts +169 -0
  711. package/dist/platform/operation.js +90 -0
  712. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  713. package/dist/platform/ops/accounts.ops.js +291 -0
  714. package/dist/platform/ops/admin.ops.d.ts +36 -0
  715. package/dist/platform/ops/admin.ops.js +389 -0
  716. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  717. package/dist/platform/ops/agent-skills.ops.js +226 -0
  718. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  719. package/dist/platform/ops/agent-templates.ops.js +272 -0
  720. package/dist/platform/ops/agents.ops.d.ts +37 -0
  721. package/dist/platform/ops/agents.ops.js +717 -0
  722. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  723. package/dist/platform/ops/approvals.ops.js +116 -0
  724. package/dist/platform/ops/background.ops.d.ts +14 -0
  725. package/dist/platform/ops/background.ops.js +134 -0
  726. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  727. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  728. package/dist/platform/ops/channels.ops.d.ts +16 -0
  729. package/dist/platform/ops/channels.ops.js +195 -0
  730. package/dist/platform/ops/components.ops.d.ts +46 -0
  731. package/dist/platform/ops/components.ops.js +853 -0
  732. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  733. package/dist/platform/ops/connectors.ops.js +188 -0
  734. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  735. package/dist/platform/ops/conversations.ops.js +470 -0
  736. package/dist/platform/ops/environments.ops.d.ts +26 -0
  737. package/dist/platform/ops/environments.ops.js +311 -0
  738. package/dist/platform/ops/errors.d.ts +16 -0
  739. package/dist/platform/ops/errors.js +30 -0
  740. package/dist/platform/ops/evals.ops.d.ts +28 -0
  741. package/dist/platform/ops/evals.ops.js +783 -0
  742. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  743. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  744. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  745. package/dist/platform/ops/extensions.ops.js +347 -0
  746. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  747. package/dist/platform/ops/inbox.ops.js +378 -0
  748. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  749. package/dist/platform/ops/marketplaces.ops.js +466 -0
  750. package/dist/platform/ops/models.ops.d.ts +25 -0
  751. package/dist/platform/ops/models.ops.js +232 -0
  752. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  753. package/dist/platform/ops/org-plugins.ops.js +329 -0
  754. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  755. package/dist/platform/ops/org-settings.ops.js +102 -0
  756. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  757. package/dist/platform/ops/orgs.ops.js +295 -0
  758. package/dist/platform/ops/other-orgs.d.ts +20 -0
  759. package/dist/platform/ops/other-orgs.js +72 -0
  760. package/dist/platform/ops/paging.d.ts +14 -0
  761. package/dist/platform/ops/paging.js +20 -0
  762. package/dist/platform/ops/platform.ops.d.ts +28 -0
  763. package/dist/platform/ops/platform.ops.js +204 -0
  764. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  765. package/dist/platform/ops/plugins.ops.js +476 -0
  766. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  767. package/dist/platform/ops/previewers.ops.js +109 -0
  768. package/dist/platform/ops/requests.ops.d.ts +14 -0
  769. package/dist/platform/ops/requests.ops.js +191 -0
  770. package/dist/platform/ops/role.d.ts +4 -0
  771. package/dist/platform/ops/role.js +10 -0
  772. package/dist/platform/ops/skills.ops.d.ts +17 -0
  773. package/dist/platform/ops/skills.ops.js +216 -0
  774. package/dist/platform/ops/summary.d.ts +10 -0
  775. package/dist/platform/ops/summary.js +18 -0
  776. package/dist/platform/ops/unavailable.d.ts +23 -0
  777. package/dist/platform/ops/unavailable.js +118 -0
  778. package/dist/platform/parity.d.ts +33 -0
  779. package/dist/platform/parity.js +272 -0
  780. package/dist/platform/platform-ops.module.d.ts +39 -0
  781. package/dist/platform/platform-ops.module.js +122 -0
  782. package/dist/platform/platform.module.d.ts +8 -0
  783. package/dist/platform/platform.module.js +25 -0
  784. package/dist/platform/registry.d.ts +30 -0
  785. package/dist/platform/registry.js +111 -0
  786. package/dist/platform/route-schemas.d.ts +18 -0
  787. package/dist/platform/route-schemas.js +63 -0
  788. package/dist/roles/gateway-role.d.ts +54 -0
  789. package/dist/roles/gateway-role.js +118 -0
  790. package/dist/roles/gateway.module.d.ts +9 -0
  791. package/dist/roles/gateway.module.js +31 -0
  792. package/dist/roles/worker-role.d.ts +65 -0
  793. package/dist/roles/worker-role.js +151 -0
  794. package/dist/roles/worker.module.d.ts +14 -0
  795. package/dist/roles/worker.module.js +106 -0
  796. package/dist/runtime/abort.js +19 -2
  797. package/dist/runtime/checkpointer.d.ts +8 -3
  798. package/dist/runtime/checkpointer.js +87 -55
  799. package/dist/runtime/context/build.d.ts +21 -13
  800. package/dist/runtime/context/build.js +106 -29
  801. package/dist/runtime/context/claude-tools.d.ts +4 -1
  802. package/dist/runtime/context/claude-tools.js +13 -12
  803. package/dist/runtime/context/compaction.js +24 -1
  804. package/dist/runtime/context/environment-paths.d.ts +40 -0
  805. package/dist/runtime/context/environment-paths.js +48 -0
  806. package/dist/runtime/context/legacy-text.d.ts +22 -0
  807. package/dist/runtime/context/legacy-text.js +37 -0
  808. package/dist/runtime/context/reminders.d.ts +2 -0
  809. package/dist/runtime/context/reminders.js +2 -0
  810. package/dist/runtime/context/run-context.d.ts +65 -0
  811. package/dist/runtime/context/run-context.js +215 -0
  812. package/dist/runtime/context/skills.d.ts +29 -11
  813. package/dist/runtime/context/skills.js +46 -32
  814. package/dist/runtime/context/tool-changes.d.ts +27 -0
  815. package/dist/runtime/context/tool-changes.js +60 -0
  816. package/dist/runtime/conversation-lock.d.ts +20 -11
  817. package/dist/runtime/conversation-lock.js +62 -72
  818. package/dist/runtime/hook-calls.d.ts +11 -4
  819. package/dist/runtime/hook-calls.js +41 -13
  820. package/dist/runtime/job-ids.d.ts +10 -0
  821. package/dist/runtime/job-ids.js +10 -0
  822. package/dist/runtime/langgraph-loop.d.ts +3 -1
  823. package/dist/runtime/langgraph-loop.js +37 -18
  824. package/dist/runtime/loop.d.ts +42 -6
  825. package/dist/runtime/loop.js +14 -0
  826. package/dist/runtime/maintenance-queue.d.ts +10 -0
  827. package/dist/runtime/maintenance-queue.js +10 -0
  828. package/dist/runtime/maintenance.d.ts +50 -74
  829. package/dist/runtime/maintenance.js +166 -136
  830. package/dist/runtime/model-call.d.ts +61 -15
  831. package/dist/runtime/model-call.js +128 -84
  832. package/dist/runtime/providers.d.ts +158 -27
  833. package/dist/runtime/providers.js +373 -63
  834. package/dist/runtime/quota.d.ts +17 -3
  835. package/dist/runtime/quota.js +27 -2
  836. package/dist/runtime/retired-schedulers.d.ts +7 -0
  837. package/dist/runtime/retired-schedulers.js +31 -0
  838. package/dist/runtime/run-context.service.d.ts +65 -0
  839. package/dist/runtime/run-context.service.js +236 -0
  840. package/dist/runtime/run-control.d.ts +43 -0
  841. package/dist/runtime/run-control.js +89 -0
  842. package/dist/runtime/run-drafts.d.ts +85 -0
  843. package/dist/runtime/run-drafts.js +230 -0
  844. package/dist/runtime/run-finish.d.ts +27 -18
  845. package/dist/runtime/run-finish.js +98 -51
  846. package/dist/runtime/run-jobs.d.ts +46 -0
  847. package/dist/runtime/run-jobs.js +91 -0
  848. package/dist/runtime/run-processors.d.ts +60 -0
  849. package/dist/runtime/run-processors.js +185 -0
  850. package/dist/runtime/run-queue.d.ts +90 -58
  851. package/dist/runtime/run-queue.js +566 -297
  852. package/dist/runtime/run-steps.d.ts +39 -0
  853. package/dist/runtime/run-steps.js +96 -0
  854. package/dist/runtime/run-worker.d.ts +134 -77
  855. package/dist/runtime/run-worker.js +412 -236
  856. package/dist/runtime/runtime.module.d.ts +10 -0
  857. package/dist/runtime/runtime.module.js +122 -0
  858. package/dist/runtime/step-log.d.ts +51 -0
  859. package/dist/runtime/step-log.js +111 -0
  860. package/dist/runtime/stream.controller.d.ts +28 -9
  861. package/dist/runtime/stream.controller.js +72 -13
  862. package/dist/runtime/stream.d.ts +27 -6
  863. package/dist/runtime/stream.js +102 -7
  864. package/dist/runtime/subagents/child.d.ts +58 -51
  865. package/dist/runtime/subagents/child.js +105 -86
  866. package/dist/runtime/subagents/definition.d.ts +32 -28
  867. package/dist/runtime/subagents/definition.js +89 -143
  868. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  869. package/dist/runtime/subagents/deliveries.js +228 -0
  870. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  871. package/dist/runtime/subagents/dispatch.js +336 -270
  872. package/dist/runtime/subagents/limits.d.ts +32 -8
  873. package/dist/runtime/subagents/limits.js +44 -8
  874. package/dist/runtime/subagents/messages.d.ts +95 -0
  875. package/dist/runtime/subagents/messages.js +328 -0
  876. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  877. package/dist/runtime/subagents/org-agents.js +3 -2
  878. package/dist/runtime/subagents/preamble.d.ts +4 -4
  879. package/dist/runtime/subagents/preamble.js +9 -7
  880. package/dist/runtime/subagents/progress.d.ts +10 -8
  881. package/dist/runtime/subagents/progress.js +11 -6
  882. package/dist/runtime/subagents/render.d.ts +30 -0
  883. package/dist/runtime/subagents/render.js +53 -0
  884. package/dist/runtime/subagents/roster.d.ts +27 -10
  885. package/dist/runtime/subagents/roster.js +49 -13
  886. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  887. package/dist/runtime/subagents/skill-fork.js +23 -8
  888. package/dist/runtime/subagents/status.d.ts +14 -0
  889. package/dist/runtime/subagents/status.js +23 -0
  890. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  891. package/dist/runtime/subagents/subagents.service.js +106 -0
  892. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  893. package/dist/runtime/usage-report-jobs.js +158 -0
  894. package/dist/runtime/usage-report.d.ts +121 -83
  895. package/dist/runtime/usage-report.js +355 -180
  896. package/dist/runtime/waits.d.ts +258 -81
  897. package/dist/runtime/waits.js +800 -263
  898. package/dist/sandbox/job-ids.d.ts +10 -0
  899. package/dist/sandbox/job-ids.js +10 -0
  900. package/dist/sandbox/jobs.d.ts +68 -0
  901. package/dist/sandbox/jobs.js +150 -0
  902. package/dist/sandbox/leases.d.ts +73 -82
  903. package/dist/sandbox/leases.js +162 -346
  904. package/dist/sandbox/providers.d.ts +46 -0
  905. package/dist/sandbox/providers.js +83 -0
  906. package/dist/sandbox/sandbox.module.d.ts +9 -0
  907. package/dist/sandbox/sandbox.module.js +36 -0
  908. package/dist/sandbox/sandbox.service.d.ts +359 -151
  909. package/dist/sandbox/sandbox.service.js +950 -435
  910. package/dist/sandbox/unreachable.d.ts +30 -0
  911. package/dist/sandbox/unreachable.js +108 -0
  912. package/dist/skills/catalog.d.ts +40 -26
  913. package/dist/skills/catalog.js +120 -99
  914. package/dist/skills/changes.controller.d.ts +11 -4
  915. package/dist/skills/changes.controller.js +34 -9
  916. package/dist/skills/changes.service.d.ts +31 -21
  917. package/dist/skills/changes.service.js +426 -368
  918. package/dist/skills/invocable.controller.d.ts +2 -2
  919. package/dist/skills/invocable.controller.js +10 -7
  920. package/dist/skills/invocation-keys.d.ts +1 -1
  921. package/dist/skills/invocation-keys.js +1 -1
  922. package/dist/skills/invoke.d.ts +19 -18
  923. package/dist/skills/invoke.js +68 -24
  924. package/dist/skills/package.d.ts +20 -1
  925. package/dist/skills/package.js +28 -1
  926. package/dist/skills/skills.controller.d.ts +33 -7
  927. package/dist/skills/skills.controller.js +79 -12
  928. package/dist/skills/skills.module.d.ts +6 -0
  929. package/dist/skills/skills.module.js +39 -0
  930. package/dist/skills/skills.schemas.d.ts +48 -0
  931. package/dist/skills/skills.schemas.js +61 -0
  932. package/dist/skills/skills.service.d.ts +151 -44
  933. package/dist/skills/skills.service.js +636 -204
  934. package/dist/skills/usable.d.ts +81 -0
  935. package/dist/skills/usable.js +379 -0
  936. package/dist/storage/job-ids.d.ts +6 -0
  937. package/dist/storage/job-ids.js +6 -0
  938. package/dist/storage/purge.d.ts +22 -7
  939. package/dist/storage/purge.js +55 -3
  940. package/dist/storage/storage.module.d.ts +6 -0
  941. package/dist/storage/storage.module.js +23 -0
  942. package/dist/storage/storage.service.d.ts +18 -4
  943. package/dist/storage/storage.service.js +44 -3
  944. package/dist/time-zone.d.ts +5 -0
  945. package/dist/time-zone.js +19 -0
  946. package/dist/tools/approvals.controller.d.ts +1 -1
  947. package/dist/tools/approvals.controller.js +14 -11
  948. package/dist/tools/approvals.schemas.d.ts +21 -0
  949. package/dist/tools/approvals.schemas.js +15 -0
  950. package/dist/tools/approvals.service.d.ts +53 -27
  951. package/dist/tools/approvals.service.js +365 -260
  952. package/dist/tools/breaker.d.ts +2 -2
  953. package/dist/tools/breaker.js +21 -3
  954. package/dist/tools/builtin-names.d.ts +109 -0
  955. package/dist/tools/builtin-names.js +173 -0
  956. package/dist/tools/builtins/agent.d.ts +27 -25
  957. package/dist/tools/builtins/agent.js +66 -63
  958. package/dist/tools/builtins/ask-user.d.ts +3 -3
  959. package/dist/tools/builtins/ask-user.js +3 -3
  960. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  961. package/dist/tools/builtins/builtin-tools.js +151 -0
  962. package/dist/tools/builtins/current-time.d.ts +26 -0
  963. package/dist/tools/builtins/current-time.js +99 -0
  964. package/dist/tools/builtins/handback.d.ts +28 -0
  965. package/dist/tools/builtins/handback.js +53 -0
  966. package/dist/tools/builtins/platform.d.ts +51 -0
  967. package/dist/tools/builtins/platform.js +451 -0
  968. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  969. package/dist/tools/builtins/read-tool-output.js +3 -3
  970. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  971. package/dist/tools/builtins/sandbox/bash.js +293 -41
  972. package/dist/tools/builtins/sandbox/common.d.ts +142 -40
  973. package/dist/tools/builtins/sandbox/common.js +227 -65
  974. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  975. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  976. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  977. package/dist/tools/builtins/sandbox/edit.js +65 -51
  978. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  979. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  980. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  981. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  982. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  983. package/dist/tools/builtins/sandbox/glob.js +19 -14
  984. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  985. package/dist/tools/builtins/sandbox/grep.js +155 -36
  986. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  987. package/dist/tools/builtins/sandbox/index.js +13 -5
  988. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  989. package/dist/tools/builtins/sandbox/read.js +30 -20
  990. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  991. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  992. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  993. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  994. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  995. package/dist/tools/builtins/sandbox/write.js +52 -45
  996. package/dist/tools/builtins/send-message.d.ts +56 -0
  997. package/dist/tools/builtins/send-message.js +100 -0
  998. package/dist/tools/builtins/skill-load.d.ts +32 -21
  999. package/dist/tools/builtins/skill-load.js +125 -74
  1000. package/dist/tools/builtins/skill-write.d.ts +4 -4
  1001. package/dist/tools/builtins/skill-write.js +12 -12
  1002. package/dist/tools/builtins/tool-search.d.ts +13 -9
  1003. package/dist/tools/builtins/tool-search.js +25 -14
  1004. package/dist/tools/builtins/web/errors.d.ts +8 -0
  1005. package/dist/tools/builtins/web/errors.js +53 -0
  1006. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1007. package/dist/tools/builtins/web/extract.js +271 -0
  1008. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1009. package/dist/tools/builtins/web/fetch.js +175 -0
  1010. package/dist/tools/builtins/web/index.d.ts +13 -0
  1011. package/dist/tools/builtins/web/index.js +12 -0
  1012. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1013. package/dist/tools/builtins/web/page-cache.js +77 -0
  1014. package/dist/tools/builtins/web/search.d.ts +25 -0
  1015. package/dist/tools/builtins/web/search.js +210 -0
  1016. package/dist/tools/builtins/web/url.d.ts +17 -0
  1017. package/dist/tools/builtins/web/url.js +43 -0
  1018. package/dist/tools/canonical-json.d.ts +6 -0
  1019. package/dist/tools/canonical-json.js +16 -0
  1020. package/dist/tools/connector-content.controller.d.ts +1 -1
  1021. package/dist/tools/connector-content.controller.js +11 -6
  1022. package/dist/tools/connector-content.d.ts +12 -15
  1023. package/dist/tools/connector-content.js +53 -18
  1024. package/dist/tools/connectors.controller.d.ts +16 -3
  1025. package/dist/tools/connectors.controller.js +34 -14
  1026. package/dist/tools/connectors.schemas.d.ts +12 -0
  1027. package/dist/tools/connectors.schemas.js +19 -0
  1028. package/dist/tools/connectors.service.d.ts +80 -18
  1029. package/dist/tools/connectors.service.js +529 -358
  1030. package/dist/tools/credentials.d.ts +20 -20
  1031. package/dist/tools/credentials.js +55 -34
  1032. package/dist/tools/display-names.d.ts +9 -0
  1033. package/dist/tools/display-names.js +24 -0
  1034. package/dist/tools/drift.d.ts +29 -41
  1035. package/dist/tools/drift.js +116 -84
  1036. package/dist/tools/elicitation.js +1 -1
  1037. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1038. package/dist/tools/extension-tools.controller.js +37 -0
  1039. package/dist/tools/info.d.ts +73 -13
  1040. package/dist/tools/info.js +151 -39
  1041. package/dist/tools/job-ids.d.ts +13 -0
  1042. package/dist/tools/job-ids.js +15 -0
  1043. package/dist/tools/jobs.d.ts +24 -0
  1044. package/dist/tools/jobs.js +69 -0
  1045. package/dist/tools/legacy-data.d.ts +34 -0
  1046. package/dist/tools/legacy-data.js +76 -0
  1047. package/dist/tools/legacy-keys.d.ts +51 -0
  1048. package/dist/tools/legacy-keys.js +115 -0
  1049. package/dist/tools/naming.d.ts +1 -5
  1050. package/dist/tools/naming.js +1 -7
  1051. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1052. package/dist/tools/oauth/flow-paths.js +38 -0
  1053. package/dist/tools/oauth/flow.d.ts +30 -30
  1054. package/dist/tools/oauth/flow.js +109 -81
  1055. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1056. package/dist/tools/oauth/oauth.controller.js +12 -9
  1057. package/dist/tools/oauth/tokens.d.ts +45 -10
  1058. package/dist/tools/oauth/tokens.js +70 -24
  1059. package/dist/tools/org-tool-switches.d.ts +88 -0
  1060. package/dist/tools/org-tool-switches.js +201 -0
  1061. package/dist/tools/outputs.d.ts +13 -4
  1062. package/dist/tools/outputs.js +48 -4
  1063. package/dist/tools/pipeline.d.ts +108 -80
  1064. package/dist/tools/pipeline.js +396 -409
  1065. package/dist/tools/policy.d.ts +4 -17
  1066. package/dist/tools/policy.js +49 -35
  1067. package/dist/tools/questions.controller.d.ts +2 -2
  1068. package/dist/tools/questions.controller.js +9 -6
  1069. package/dist/tools/questions.service.d.ts +26 -25
  1070. package/dist/tools/questions.service.js +201 -142
  1071. package/dist/tools/registry.d.ts +215 -84
  1072. package/dist/tools/registry.js +382 -264
  1073. package/dist/tools/resources.d.ts +1 -1
  1074. package/dist/tools/resources.js +1 -1
  1075. package/dist/tools/specs.d.ts +5 -4
  1076. package/dist/tools/specs.js +3 -1
  1077. package/dist/tools/tools.module.d.ts +10 -0
  1078. package/dist/tools/tools.module.js +113 -0
  1079. package/dist/tools/validate.js +1 -1
  1080. package/dist/ui/call-extension.d.ts +16 -0
  1081. package/dist/ui/call-extension.js +38 -0
  1082. package/dist/ui/embed-token.d.ts +9 -5
  1083. package/dist/ui/embed-token.js +34 -6
  1084. package/dist/ui/ui-stream.d.ts +22 -17
  1085. package/dist/ui/ui-stream.js +72 -12
  1086. package/dist/ui/ui.module.d.ts +7 -0
  1087. package/dist/ui/ui.module.js +28 -0
  1088. package/dist/ui/views.controller.d.ts +14 -12
  1089. package/dist/ui/views.controller.js +32 -25
  1090. package/dist/ui/views.d.ts +10 -57
  1091. package/dist/ui/views.js +58 -46
  1092. package/package.json +15 -3
  1093. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1094. package/src/migrations/0064_account_last_org.sql +7 -0
  1095. package/src/migrations/0065_conversation_archive.sql +8 -0
  1096. package/src/migrations/0066_extension_display_name.sql +4 -0
  1097. package/src/migrations/0067_agent_profiles.sql +20 -0
  1098. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1099. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1100. package/src/migrations/0070_background_tasks.sql +37 -0
  1101. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1102. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1103. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1104. package/src/migrations/0074_subagent_tree.sql +50 -0
  1105. package/src/migrations/0075_plugin_scope.sql +61 -0
  1106. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1107. package/src/migrations/0077_scope_requests.sql +52 -0
  1108. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1109. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1110. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1111. package/src/migrations/0081_platform_components.sql +129 -0
  1112. package/src/migrations/0082_platform_migration.sql +33 -0
  1113. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1114. package/src/migrations/0084_org_owned_items.sql +85 -0
  1115. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1116. package/src/migrations/0086_org_layering.sql +30 -0
  1117. package/src/migrations/0087_approval_summary.sql +6 -0
  1118. package/src/migrations/0088_environments.sql +80 -0
  1119. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1120. package/src/migrations/0090_initial_passwords.sql +27 -0
  1121. package/src/migrations/0091_account_time_zone.sql +4 -0
  1122. package/src/migrations/0092_tools_default_on.sql +27 -0
  1123. package/src/migrations/0093_connected_environments.sql +37 -0
  1124. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1125. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1126. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1127. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1128. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1129. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1130. package/src/migrations/0100_catalog_files.sql +13 -0
  1131. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1132. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1133. package/dist/catalog/upgrade-targets.js +0 -90
  1134. package/dist/conversations/sandbox-status.d.ts +0 -21
  1135. package/dist/conversations/sandbox-status.js +0 -24
  1136. package/dist/extensions/org-config.controller.d.ts +0 -24
  1137. package/dist/extensions/org-config.controller.js +0 -59
  1138. package/dist/http/gateway.module.js +0 -13
  1139. package/dist/http/health.controller.d.ts +0 -26
  1140. package/dist/http/health.controller.js +0 -79
  1141. package/dist/http/tokens.d.ts +0 -131
  1142. package/dist/http/tokens.js +0 -131
  1143. package/dist/http/zod.pipe.d.ts +0 -8
  1144. package/dist/http/zod.pipe.js +0 -14
  1145. package/dist/identity/enterprise-admin.d.ts +0 -14
  1146. package/dist/identity/enterprise-admin.js +0 -27
  1147. package/dist/identity/rate-limit.d.ts +0 -55
  1148. package/dist/identity/rate-limit.js +0 -121
  1149. package/dist/sandbox/lifecycle.d.ts +0 -21
  1150. package/dist/sandbox/lifecycle.js +0 -68
  1151. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1152. package/dist/tools/builtins/sandbox/names.js +0 -20
@@ -1,96 +1,112 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
1
10
  import { randomUUID } from "node:crypto";
2
- import { Queue } from "bullmq";
3
- import { Redis } from "ioredis";
11
+ import { getQueueToken } from "@nestjs/bullmq";
12
+ import { Inject, Injectable } from "@nestjs/common";
4
13
  import { sql } from "kysely";
5
- import { visibleTo } from "../agents/agents.service.js";
14
+ import { visibleTo } from "../agents/agent-lookup.js";
15
+ import { BG_WAKE_JOB, bgWakeJobId, wakeDecisionIn, } from "../background/wake-rules.js";
16
+ import { EventLog } from "../conversations/event-log.js";
6
17
  import { dispatchQueuedIn, pauseQueueWith } from "../conversations/queue.js";
7
- import { finishRunIn, notifyFinished } from "./run-finish.js";
8
- /** 内核运行队列的 BullMQ 队列名(不含 `:`;与插件队列 `cap.<插件>.<名>` 不会重名)。 */
9
- export const RUN_QUEUE_NAME = "cap-kernel-runs";
10
- /**
11
- * Queue of sub-agent (child) runs (sub-agents spec §7.4): a replica still on a version without
12
- * sub-agents never takes a child job, and child load shows apart from conversations.
13
- */
14
- export const SUBAGENT_RUN_QUEUE_NAME = "cap-kernel-subagent-runs";
15
- /** The run queue of a conversation kind: sub-agent conversations have their own. */
16
- export const runQueueNameFor = (kind) => kind === "subagent" ? SUBAGENT_RUN_QUEUE_NAME : RUN_QUEUE_NAME;
17
- /** 同一触发点(会话 + 最新用户消息 seq)只投递一次。 */
18
- export const runJobId = (conversationId, maxUserSeq) => `run-${conversationId}-${maxUserSeq}`;
19
- /** 未结束的运行状态(waiting:等人处理审批 / 输入请求,没有任务、不占会话锁与配额)。 */
20
- export const ACTIVE_RUN_STATUSES = ["queued", "running", "waiting"];
18
+ import { conversationTree } from "../conversations/tree.js";
19
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
20
+ import { KernelDb } from "../infra/database/kernel-db.js";
21
+ import { TransactionHost } from "../infra/database/transaction-host.js";
22
+ import { Transactional } from "../infra/database/transactional.decorator.js";
23
+ import { KernelEvents } from "../infra/events/kernel-events.js";
24
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
25
+ import { ToolPipeline } from "../tools/pipeline.js";
26
+ import { KyselyCheckpointSaver } from "./checkpointer.js";
27
+ import { ConversationLock } from "./conversation-lock.js";
28
+ import { MAINTENANCE_QUEUE_NAME } from "./maintenance-queue.js";
29
+ import { notifyFinished, RunFinish } from "./run-finish.js";
30
+ import { ACTIVE_RUN_STATUSES, RunJobs, runJobId, runQueueNameFor, } from "./run-jobs.js";
31
+ import { rootConversationOf } from "./subagents/child.js";
32
+ import { budgetWindowOf } from "./subagents/limits.js";
33
+ export { ACTIVE_RUN_STATUSES, RUN_QUEUE_NAME, runJobId, runQueueNameFor, SUBAGENT_RUN_QUEUE_NAME, } from "./run-jobs.js";
21
34
  /**
22
35
  * queued 运行的宽限期(秒):`ensureRun` / 续跑先提交 runs 行、再投递任务,两步之间任务暂时不存在;
23
36
  * 只有进入 queued 超过这么久(`COALESCE(queued_at, created_at)`)仍没有任务的 queued 行才视为孤儿。
24
37
  */
25
38
  const ORPHAN_QUEUED_GRACE_SECONDS = 30;
26
- /** BullMQ 连接要求 maxRetriesPerRequest 为 null(Worker 的阻塞连接);Queue 复用同样的配置。 */
27
- export function bullConnection(redisUrl, log) {
28
- const c = new Redis(redisUrl, { maxRetriesPerRequest: null });
29
- c.on("error", (err) => log.error("run queue redis connection error", { err }));
30
- return c;
31
- }
39
+ /**
40
+ * Margin added to the delayed wake job: its window is read on the database's clock, the delay runs
41
+ * on this process's and Redis's, so the job does not usually fire just before the window ends (one
42
+ * that does reschedules itself under its next retry id, `bgWakeJobId`).
43
+ */
44
+ const WAKE_JOB_MARGIN_MS = 1000;
32
45
  /**
33
46
  * 运行队列(生产方):`ensureRun` 在会话有未消费的用户消息、且没有进行中的运行时插入 `runs` 行并投递任务。
34
47
  * 「是否已有运行」以 PG 为准(会话行锁内检查 `runs` 中的 queued / running),并参考会话锁的持有者;
35
48
  * 多副本并发调用对同一会话串行化,同一时刻至多一个未结束的运行。
36
49
  */
37
- export class RunQueue {
38
- db;
50
+ let RunQueue = class RunQueue {
51
+ kdb;
39
52
  eventLog;
40
53
  lock;
41
- redisUrl;
42
- log;
54
+ jobs;
55
+ finisher;
43
56
  checkpoints;
44
- subagents;
45
- queues = new Map();
46
- conn;
47
- closed = false;
48
- constructor(db, eventLog, lock, redisUrl, log,
57
+ pipeline;
58
+ events;
59
+ log;
60
+ txHost;
61
+ config;
62
+ maintenance;
63
+ constructor(kdb, eventLog, lock, jobs, finisher,
49
64
  /** 运行以孤儿结束(标记失败 / 直接中止)后删除它的 checkpoint thread(thread_id = runId)。 */
50
65
  checkpoints,
51
- /** Sub-agent cleanup when an orphan repair ends a parent run (sub-agents spec §12). */
52
- subagents) {
53
- this.db = db;
66
+ /** The run's open `Agent` call results, in the orphan repair's transaction (sub-agents spec §12). */
67
+ pipeline, events, log, txHost, config,
68
+ /** The producer side of the delayed `bg-wake` job (`MaintenanceProcessor` consumes it). */
69
+ maintenance) {
70
+ this.kdb = kdb;
54
71
  this.eventLog = eventLog;
55
72
  this.lock = lock;
56
- this.redisUrl = redisUrl;
57
- this.log = log;
73
+ this.jobs = jobs;
74
+ this.finisher = finisher;
58
75
  this.checkpoints = checkpoints;
59
- this.subagents = subagents;
76
+ this.pipeline = pipeline;
77
+ this.events = events;
78
+ this.log = log;
79
+ this.txHost = txHost;
80
+ this.config = config;
81
+ this.maintenance = maintenance;
82
+ }
83
+ get db() {
84
+ return this.kdb.db;
60
85
  }
61
86
  /**
62
- * The `beforeTerminal` of an orphan repair: writes the run's open `agent` call results in `t`;
63
- * `fire()` runs their observe hooks after the commit (review m1).
87
+ * The `beforeTerminal` of an orphan repair: writes the run's open `Agent` call results in the
88
+ * repair's transaction; `fire()` runs their observe hooks after the commit (review m1).
64
89
  */
65
90
  stopOpenCalls(runId) {
66
- const sub = this.subagents;
67
- if (!sub)
68
- return { fire: () => { } };
69
91
  let fire = () => { };
70
92
  return {
71
- beforeTerminal: async (t) => {
72
- fire = (await sub.stopOpenCalls(t, runId)).fire;
93
+ beforeTerminal: async () => {
94
+ fire = (await this.pipeline.stopOpenAgentCalls(runId)).fire;
73
95
  },
74
96
  fire: () => fire(),
75
97
  };
76
98
  }
77
- /** The BullMQ queue `name` (default: conversation runs); both share one connection. */
78
- getQueue(name = RUN_QUEUE_NAME) {
79
- if (this.closed)
80
- throw new Error("run queue is closed");
81
- let queue = this.queues.get(name);
82
- if (!queue) {
83
- this.conn ??= bullConnection(this.redisUrl, this.log);
84
- queue = new Queue(name, { connection: this.conn });
85
- queue.on("error", (err) => this.log.error("run queue error", { err, queue: name }));
86
- this.queues.set(name, queue);
87
- }
88
- return queue;
89
- }
90
99
  /**
91
100
  * 有未消费的用户消息(最新 user_message 的 seq > `consumed_seq`)、会话锁无人持有、
92
101
  * 且没有 queued / running / waiting 的运行时:插入 `runs`(queued)并投递任务,返回 runId;否则返回 null。
93
102
  *
103
+ * The boundary (`trigger_seq`) is that newest message; with none unconsumed, the queue's head
104
+ * once it is sent; with no head either, a wake-eligible finished background task or sub-agent
105
+ * delivery (background Bash spec §3, agent map spec §5.3, {@link wakeDecisionIn}): the run is
106
+ * then attributed to the event's trigger account and joins the tree's budget window, and an
107
+ * event inside the wake window schedules the delayed `bg-wake` job instead. A sub-agent's
108
+ * conversation is only woken this way ({@link childWakeIn}).
109
+ *
94
110
  * 孤儿清理(R29,按需进行,没有定时器):已有的 queued / running 运行若 BullMQ 任务已不存在、
95
111
  * 会话锁也无人持有(queued 的还要超过宽限期),说明没有任何 worker 会再执行它——写
96
112
  * `run_failed { code: "run.orphaned" }` 把它标记为失败(consumed_seq 推进到它的触发消息),
@@ -99,155 +115,33 @@ export class RunQueue {
99
115
  *
100
116
  * agent 已软删除的会话不起新运行(孤儿清理照常进行)。
101
117
  */
102
- async ensureRun(conversationId) {
118
+ async ensureRun(conversationId,
119
+ /** From the `bg-wake` job: it fired `wakeRetry - 1` times before its window ended. */
120
+ opts = {}) {
103
121
  if ((await this.lock.holder(conversationId)) !== null)
104
122
  return null;
105
- let orphanSeq = null;
106
- let orphanRunId = null;
107
- let dispatchedSeq = null;
108
- let dispatchedSwitch = false;
109
- /** The queue paused in this transaction: the open pages hear it after the commit. */
110
- let pausedNow = false;
111
- let orphanStop;
112
- const created = await this.db.transaction().execute(async (t) => {
113
- const conv = await t
114
- .selectFrom("conversations")
115
- .select(["consumed_seq", "agent_id", "kind", "queue_paused", "account_id"])
116
- .where("id", "=", conversationId)
117
- .forUpdate()
118
- .executeTakeFirst();
119
- // 评测回放的隐藏对话:运行由评测 worker 在里面直接驱动(工具只回放记录),绝不为它起真实运行
120
- if (conv?.kind !== "chat")
121
- return null;
122
- let last = await t
123
- .selectFrom("conversation_events")
124
- .select(["seq", "payload"])
125
- .where("conversation_id", "=", conversationId)
126
- .where("type", "=", "user_message")
127
- .orderBy("seq", "desc")
128
- .limit(1)
129
- .executeTakeFirst();
130
- if (!last || Number(last.seq) <= Number(conv.consumed_seq)) {
131
- // Nothing unconsumed: the queue's head goes out when the conversation is idle (no active
132
- // run, which includes runs waiting for approval or an answer) and the queue is not paused.
133
- // Interjections are always unconsumed messages, so the queue never jumps ahead of them.
134
- if (conv.queue_paused || (await this.activeRun(t, conversationId)))
135
- return null;
136
- const owner = await t
137
- .selectFrom("agents")
138
- .select("deleted_at")
139
- .where("id", "=", conv.agent_id)
140
- .executeTakeFirstOrThrow();
141
- if (owner.deleted_at !== null)
142
- return null;
143
- const head = await t
144
- .selectFrom("conversation_queue")
145
- .select("id")
146
- .where("conversation_id", "=", conversationId)
147
- .limit(1)
148
- .executeTakeFirst();
149
- if (!head)
150
- return null;
151
- // A queued message may wait for hours: it goes out only while its author can still use
152
- // the conversation (active, a member, the agent visible to them; the isAccessible rule).
153
- // Otherwise the queue pauses instead of posting as someone who lost access.
154
- if (!(await authorCanSend(t, conversationId, conv.account_id))) {
155
- await pauseQueueWith(t, conversationId, "author_cannot_send");
156
- pausedNow = true;
157
- this.log.warn("queued message not sent: its author can no longer use the conversation", {
158
- conversationId,
159
- });
160
- return null;
161
- }
162
- const sent = await dispatchQueuedIn(t, this.eventLog, conversationId);
163
- if (!sent)
164
- return null;
165
- if ("paused" in sent) {
166
- pausedNow = true;
167
- this.log.warn("queued skill invocation not sent: the skill can no longer be invoked", {
168
- conversationId,
169
- });
170
- return null;
171
- }
172
- dispatchedSeq = sent.event.seq;
173
- dispatchedSwitch = sent.switched;
174
- last = { seq: String(sent.event.seq), payload: sent.event.payload };
175
- }
176
- const active = await this.activeRun(t, conversationId);
177
- if (active) {
178
- if (!(await this.isOrphan(conversationId, active, conv.kind)))
179
- return null;
180
- this.log.warn("marking orphaned run as failed", { conversationId, runId: active.id });
181
- orphanRunId = active.id;
182
- const stop = this.stopOpenCalls(active.id);
183
- orphanStop = stop;
184
- orphanSeq = await finishRunIn(t, this.eventLog, {
185
- conversationId,
186
- runId: active.id,
187
- status: "failed",
188
- consumed: null,
189
- ...(stop.beforeTerminal !== undefined && { beforeTerminal: stop.beforeTerminal }),
190
- event: {
191
- type: "run_failed",
192
- payload: {
193
- error: { code: "run.orphaned", message: "The run was lost and will not continue" },
194
- },
195
- },
196
- });
197
- // 孤儿运行的触发消息已被消费:之后没有更新的消息就不起新一轮。
198
- if (Number(last.seq) <= Math.max(Number(conv.consumed_seq), Number(active.trigger_seq))) {
199
- return null;
200
- }
201
- }
202
- // what is consumed now (an orphan's failure consumed up to its trigger)
203
- const consumedNow = Math.max(Number(conv.consumed_seq), orphanRunId !== null && active ? Number(active.trigger_seq) : 0);
204
- // phase D run boundary: the first unconsumed fork invocation is the trigger of the run that
205
- // absorbs it (`forkBoundary`); later messages wait for the next run
206
- const fork = await t
207
- .selectFrom("conversation_events")
208
- .select(["seq", "payload"])
209
- .where("conversation_id", "=", conversationId)
210
- .where("type", "=", "user_message")
211
- .where("seq", ">", String(consumedNow))
212
- .where(sql `payload -> 'skill' ->> 'mode' = 'fork'`)
213
- .orderBy("seq")
214
- .limit(1)
215
- .executeTakeFirst();
216
- const trigger = fork ?? last;
217
- // BullMQ 对重复的 jobId 静默忽略(add 返回的 Job 由调用方数据构造,看不出是否真的入队):
218
- // 先显式查同一触发点的任务;仍存在(例如属于刚结束、尚未从队列移除的运行)就不插入 runs 行。
219
- const jobId = runJobId(conversationId, Number(trigger.seq));
220
- const existing = await this.getQueue().getJob(jobId);
221
- if (existing) {
222
- this.log.warn("run job for this trigger already exists; not enqueuing", {
223
- conversationId,
224
- jobId,
225
- existingRunId: existing.data?.runId,
226
- });
227
- return null;
228
- }
229
- const agent = await t
230
- .selectFrom("agents")
231
- .select(["current_version", "deleted_at"])
232
- .where("id", "=", conv.agent_id)
233
- .executeTakeFirstOrThrow();
234
- // agent 已软删除:会话对任何人都不可见,不再为它起运行。
235
- if (agent.deleted_at !== null)
236
- return null;
237
- const runId = randomUUID();
238
- await t
239
- .insertInto("runs")
240
- .values({
241
- id: runId,
242
- conversation_id: conversationId,
243
- status: "queued",
244
- agent_version: agent.current_version,
245
- trigger_account_id: trigger.payload.authorAccountId,
246
- trigger_seq: Number(trigger.seq),
247
- })
248
- .execute();
249
- return { runId, jobId };
250
- });
123
+ const st = {
124
+ orphanSeq: null,
125
+ orphanRunId: null,
126
+ dispatchedSeq: null,
127
+ dispatchedSwitch: false,
128
+ dispatchedUnarchived: false,
129
+ pausedNow: false,
130
+ orphanStop: undefined,
131
+ wakeLater: null,
132
+ repairRunId: null,
133
+ };
134
+ const created = await this.ensureRunIn(conversationId, st);
135
+ if (st.repairRunId !== null) {
136
+ // a sub-agent's run nobody runs any more: requeued when queued, failed when running (its
137
+ // finish then reaches the parent through the wait sweep's undelivered repair)
138
+ await this.repairOrphan(conversationId, st.repairRunId);
139
+ }
140
+ if (st.wakeLater !== null) {
141
+ await this.scheduleWake(conversationId, st.wakeLater, opts.wakeRetry ?? 0);
142
+ }
143
+ const { orphanSeq, orphanRunId, dispatchedSeq, dispatchedSwitch, pausedNow, orphanStop } = st;
144
+ const { dispatchedUnarchived } = st;
251
145
  if (orphanSeq !== null) {
252
146
  await notifyFinished(this.eventLog, conversationId, orphanSeq, "failed");
253
147
  orphanStop?.fire();
@@ -260,23 +154,22 @@ export class RunQueue {
260
154
  await this.eventLog.publishChanged(conversationId, "queue");
261
155
  if (dispatchedSwitch)
262
156
  await this.eventLog.publishChanged(conversationId, "selection");
157
+ if (dispatchedUnarchived)
158
+ await this.eventLog.publishChanged(conversationId, "archived");
263
159
  }
264
160
  if (orphanRunId !== null) {
265
161
  await this.dropCheckpoints(orphanRunId);
266
162
  // a lost parent stops its children now, not at the next sweep (review m2)
267
163
  if (orphanSeq !== null) {
268
- await this.subagents?.stopChildren(orphanRunId).catch((err) => this.log.error("cannot stop the sub-agents of an orphaned run", {
269
- runId: orphanRunId,
270
- err,
271
- }));
164
+ await this.events.emit("run.orphaned", { runId: orphanRunId });
272
165
  }
273
166
  }
274
167
  if (!created)
275
168
  return null;
276
- const { runId, jobId } = created;
169
+ const { runId, jobId, kind } = created;
277
170
  try {
278
- const queue = this.getQueue();
279
- await queue.add("run", { runId, conversationId }, { jobId, attempts: 1, removeOnComplete: true, removeOnFail: true });
171
+ const queue = this.jobs.queue(runQueueNameFor(kind));
172
+ await this.jobs.enqueue({ runId, conversationId }, jobId, kind);
280
173
  // 从 Redis 读回核对:检查与 add 之间出现了同 jobId 的任务时 add 被静默忽略,撤销本次插入,
281
174
  // 不留下没有任务的 queued 行。读不到说明任务已被领取并移除(只可能是本次投递的),不撤销。
282
175
  const stored = await queue.getJob(jobId);
@@ -297,25 +190,381 @@ export class RunQueue {
297
190
  }
298
191
  return runId;
299
192
  }
193
+ /** {@link ensureRun}'s transaction: what it decided goes back through `st`. */
194
+ async ensureRunIn(conversationId, st) {
195
+ const t = this.db;
196
+ const conv = await t
197
+ .selectFrom("conversations")
198
+ .select([
199
+ "consumed_seq",
200
+ "org_id",
201
+ "agent_id",
202
+ "kind",
203
+ "queue_paused",
204
+ "account_id",
205
+ "deleted_at",
206
+ ])
207
+ .where("id", "=", conversationId)
208
+ .forUpdate()
209
+ .executeTakeFirst();
210
+ // 评测回放的隐藏对话:运行由评测 worker 在里面直接驱动(工具只回放记录),绝不为它起真实运行
211
+ if (conv?.kind !== "chat" && conv?.kind !== "subagent")
212
+ return null;
213
+ // A deleted conversation starts no run, whatever is still unconsumed or queued
214
+ if (conv.deleted_at !== null)
215
+ return null;
216
+ if (conv.kind === "subagent")
217
+ return this.childWakeIn(conversationId, conv, st);
218
+ const newest = await t
219
+ .selectFrom("conversation_events")
220
+ .select(["seq", "payload"])
221
+ .where("conversation_id", "=", conversationId)
222
+ .where("type", "=", "user_message")
223
+ .orderBy("seq", "desc")
224
+ .limit(1)
225
+ .executeTakeFirst();
226
+ /** The boundary is a wake event: the run joins the tree's budget window (agent map §6). */
227
+ let isWake = false;
228
+ /** The run's boundary: its `trigger_seq` and the account it runs as. */
229
+ let last = newest && {
230
+ seq: newest.seq,
231
+ accountId: newest.payload.authorAccountId,
232
+ };
233
+ const idleActive = !last || Number(last.seq) <= Number(conv.consumed_seq)
234
+ ? await this.activeRun(t, conversationId)
235
+ : undefined;
236
+ if (idleActive && Number(idleActive.trigger_seq) > Number(conv.consumed_seq)) {
237
+ // No unconsumed message, but a run whose boundary is not consumed yet (a wake run, whose
238
+ // boundary is a finished background task or a sub-agent's delivery): it goes through the
239
+ // orphan check below with that boundary, as a message's run does
240
+ last = { seq: idleActive.trigger_seq, accountId: idleActive.trigger_account_id };
241
+ }
242
+ else if (!last || Number(last.seq) <= Number(conv.consumed_seq)) {
243
+ // Nothing unconsumed: the queue's head goes out when the conversation is idle (no active
244
+ // run, which includes runs waiting for approval or an answer) and the queue is not paused.
245
+ // Interjections are always unconsumed messages, so the queue never jumps ahead of them.
246
+ if (conv.queue_paused || idleActive)
247
+ return null;
248
+ const owner = await t
249
+ .selectFrom("agents")
250
+ .select("deleted_at")
251
+ .where("id", "=", conv.agent_id)
252
+ .executeTakeFirstOrThrow();
253
+ if (owner.deleted_at !== null)
254
+ return null;
255
+ const head = await t
256
+ .selectFrom("conversation_queue")
257
+ .select("id")
258
+ .where("conversation_id", "=", conversationId)
259
+ .limit(1)
260
+ .executeTakeFirst();
261
+ if (head) {
262
+ // A queued message may wait for hours: it goes out only while its author can still use
263
+ // the conversation (active, a member, the agent visible to them; the isAccessible rule).
264
+ // Otherwise the queue pauses instead of posting as someone who lost access.
265
+ if (!(await authorCanSend(t, conversationId, conv.account_id))) {
266
+ await pauseQueueWith(t, conversationId, "author_cannot_send");
267
+ st.pausedNow = true;
268
+ this.log.warn("queued message not sent: its author can no longer use the conversation", {
269
+ conversationId,
270
+ });
271
+ return null;
272
+ }
273
+ const sent = await dispatchQueuedIn(t, this.eventLog, conversationId);
274
+ if (!sent)
275
+ return null;
276
+ if ("paused" in sent) {
277
+ st.pausedNow = true;
278
+ this.log.warn("queued skill invocation not sent: the skill can no longer be invoked", {
279
+ conversationId,
280
+ });
281
+ return null;
282
+ }
283
+ st.dispatchedSeq = sent.event.seq;
284
+ st.dispatchedSwitch = sent.switched;
285
+ st.dispatchedUnarchived = sent.unarchived;
286
+ last = {
287
+ seq: String(sent.event.seq),
288
+ accountId: sent.event.payload.authorAccountId,
289
+ };
290
+ }
291
+ else {
292
+ // Nothing queued either: a finished background task may wake the idle conversation
293
+ // (background Bash spec §3; a person's message or the queue always goes first)
294
+ const wake = await wakeDecisionIn(t, { id: conversationId, orgId: conv.org_id, rootId: conversationId }, Number(conv.consumed_seq), this.config.get().runtime.wakeOnBackgroundTask, (accountId) => authorCanSend(t, conversationId, accountId));
295
+ if (wake?.kind === "later")
296
+ st.wakeLater = wake;
297
+ if (wake?.kind !== "wake")
298
+ return null;
299
+ last = { seq: String(wake.seq), accountId: wake.triggerAccountId };
300
+ isWake = true;
301
+ }
302
+ }
303
+ const active = await this.activeRun(t, conversationId);
304
+ if (active) {
305
+ if (!(await this.isOrphan(conversationId, active, conv.kind)))
306
+ return null;
307
+ this.log.warn("marking orphaned run as failed", { conversationId, runId: active.id });
308
+ st.orphanRunId = active.id;
309
+ const stop = this.stopOpenCalls(active.id);
310
+ st.orphanStop = stop;
311
+ st.orphanSeq = await this.finisher.finishIn({
312
+ conversationId,
313
+ runId: active.id,
314
+ status: "failed",
315
+ consumed: null,
316
+ ...(stop.beforeTerminal !== undefined && { beforeTerminal: stop.beforeTerminal }),
317
+ event: {
318
+ type: "run_failed",
319
+ payload: {
320
+ error: { code: "run.orphaned", message: "The run was lost and will not continue" },
321
+ },
322
+ },
323
+ });
324
+ // 孤儿运行的触发消息已被消费:之后没有更新的消息就不起新一轮。
325
+ if (Number(last.seq) <= Math.max(Number(conv.consumed_seq), Number(active.trigger_seq))) {
326
+ return null;
327
+ }
328
+ }
329
+ // what is consumed now (an orphan's failure consumed up to its trigger)
330
+ const consumedNow = Math.max(Number(conv.consumed_seq), st.orphanRunId !== null && active ? Number(active.trigger_seq) : 0);
331
+ // phase D run boundary: the first unconsumed fork invocation is the trigger of the run that
332
+ // absorbs it (`forkBoundary`); later messages wait for the next run
333
+ const fork = await t
334
+ .selectFrom("conversation_events")
335
+ .select(["seq", "payload"])
336
+ .where("conversation_id", "=", conversationId)
337
+ .where("type", "=", "user_message")
338
+ .where("seq", ">", String(consumedNow))
339
+ .where(sql `payload -> 'skill' ->> 'mode' = 'fork'`)
340
+ .orderBy("seq")
341
+ .limit(1)
342
+ .executeTakeFirst();
343
+ const trigger = fork
344
+ ? { seq: fork.seq, accountId: fork.payload.authorAccountId }
345
+ : last;
346
+ // BullMQ 对重复的 jobId 静默忽略(add 返回的 Job 由调用方数据构造,看不出是否真的入队):
347
+ // 先显式查同一触发点的任务;仍存在(例如属于刚结束、尚未从队列移除的运行)就不插入 runs 行。
348
+ const jobId = runJobId(conversationId, Number(trigger.seq));
349
+ const existing = await this.jobs.getJob(jobId);
350
+ if (existing) {
351
+ this.log.warn("run job for this trigger already exists; not enqueuing", {
352
+ conversationId,
353
+ jobId,
354
+ existingRunId: existing.data?.runId,
355
+ });
356
+ return null;
357
+ }
358
+ const agent = await t
359
+ .selectFrom("agents")
360
+ .select(["current_version", "deleted_at"])
361
+ .where("id", "=", conv.agent_id)
362
+ .executeTakeFirstOrThrow();
363
+ // agent 已软删除:会话对任何人都不可见,不再为它起运行。
364
+ if (agent.deleted_at !== null)
365
+ return null;
366
+ const runId = randomUUID();
367
+ await t
368
+ .insertInto("runs")
369
+ .values({
370
+ id: runId,
371
+ conversation_id: conversationId,
372
+ status: "queued",
373
+ agent_version: agent.current_version,
374
+ trigger_account_id: trigger.accountId,
375
+ trigger_seq: Number(trigger.seq),
376
+ // a chat conversation always has its person-triggered run before any wake (a wake event
377
+ // comes from a run of it or of its tree); null would only make the wake run its own window
378
+ budget_run_id: isWake ? await budgetWindowOf(t, conversationId) : null,
379
+ })
380
+ .execute();
381
+ return { runId, jobId, kind: "chat" };
382
+ }
383
+ /**
384
+ * {@link ensureRunIn} for a sub-agent's conversation (agent map spec §5.3), under its row lock.
385
+ * Its runs from a task, or from a message to an idle sub-agent, are started by the dispatch
386
+ * (`Agent`, `SendMessage`), which also records the dispatch. Here it is started from a parent's
387
+ * message that reached its run after that run's last model call (agent map spec §10: a message
388
+ * racing the run's end starts a new run, never lost); and it is woken by its own background
389
+ * task's finish or a delivery from its own sub-agent, under the same rules as a chat
390
+ * conversation. Neither happens once its last run was stopped (`aborted`): a stopped sub-agent is
391
+ * started again only by its parent. Both read the queue and the trigger account's access on the root
392
+ * of its tree; a message needs no wake setting and has no wake window. The run counts against
393
+ * the root's budget window and runs on the sub-agent queue under `runJobId(child, boundary
394
+ * seq)`. An active run is left to the orphan repair after the commit (`repairRunId`), never
395
+ * started past.
396
+ */
397
+ async childWakeIn(conversationId, conv, st) {
398
+ const t = this.db;
399
+ const active = await this.activeRun(t, conversationId);
400
+ if (active) {
401
+ if (active.status !== "waiting")
402
+ st.repairRunId = active.id;
403
+ return null;
404
+ }
405
+ // a stopped sub-agent (its last run `aborted`: a person's or a tree stop) stays stopped: no
406
+ // message, task finish or delivery that reached it before or during the stop wakes it (a
407
+ // descendant's report that landed just before the stop would otherwise restart the stopped
408
+ // branch); they are parked for its next run, which only its parent starts (`Agent`,
409
+ // `SendMessage`)
410
+ const last = await t
411
+ .selectFrom("runs")
412
+ .select("status")
413
+ .where("conversation_id", "=", conversationId)
414
+ .orderBy("created_at", "desc")
415
+ .orderBy("id", "desc")
416
+ .limit(1)
417
+ .executeTakeFirst();
418
+ if (last?.status === "aborted")
419
+ return null;
420
+ const rootId = await rootConversationOf(t, conversationId);
421
+ const wake = (await this.pendingMessageIn(conversationId, Number(conv.consumed_seq), rootId)) ??
422
+ (await wakeDecisionIn(t, { id: conversationId, orgId: conv.org_id, rootId }, Number(conv.consumed_seq), this.config.get().runtime.wakeOnBackgroundTask, (accountId) => authorCanSend(t, rootId, accountId)));
423
+ if (wake?.kind === "later")
424
+ st.wakeLater = wake;
425
+ if (wake?.kind !== "wake")
426
+ return null;
427
+ const jobId = runJobId(conversationId, wake.seq);
428
+ const existing = await this.jobs.getJob(jobId, runQueueNameFor("subagent"));
429
+ if (existing) {
430
+ this.log.warn("run job for this trigger already exists; not enqueuing", {
431
+ conversationId,
432
+ jobId,
433
+ existingRunId: existing.data?.runId,
434
+ });
435
+ return null;
436
+ }
437
+ const agent = await t
438
+ .selectFrom("agents")
439
+ .select(["current_version", "deleted_at"])
440
+ .where("id", "=", conv.agent_id)
441
+ .executeTakeFirstOrThrow();
442
+ if (agent.deleted_at !== null)
443
+ return null;
444
+ // a sub-agent runs its definition frozen at dispatch: its runs keep the version recorded then
445
+ const previous = await t
446
+ .selectFrom("runs")
447
+ .select("agent_version")
448
+ .where("conversation_id", "=", conversationId)
449
+ .orderBy("created_at", "desc")
450
+ .limit(1)
451
+ .executeTakeFirst();
452
+ const runId = randomUUID();
453
+ await t
454
+ .insertInto("runs")
455
+ .values({
456
+ id: runId,
457
+ conversation_id: conversationId,
458
+ status: "queued",
459
+ agent_version: previous?.agent_version ?? agent.current_version,
460
+ trigger_account_id: wake.triggerAccountId,
461
+ trigger_seq: wake.seq,
462
+ budget_run_id: await budgetWindowOf(t, rootId),
463
+ })
464
+ .execute();
465
+ return { runId, jobId, kind: "subagent" };
466
+ }
467
+ /**
468
+ * The newest unconsumed message of an idle sub-agent (a `SendMessage` its last run did not absorb)
469
+ * as a run boundary, or null: none; the root's queue is paused or the root deleted (the
470
+ * message waits for the unpause, {@link wakeHeldTree}); or its author can no longer send to the
471
+ * root (it waits for a later run). The caller already refused a stopped sub-agent (last run
472
+ * `aborted`): a message that reached it while running and then stopped is parked, and the next
473
+ * run its parent starts absorbs it. Called under the sub-agent's row lock.
474
+ */
475
+ async pendingMessageIn(conversationId, consumed, rootId) {
476
+ const t = this.db;
477
+ const message = await t
478
+ .selectFrom("conversation_events")
479
+ .select(["seq", "payload"])
480
+ .where("conversation_id", "=", conversationId)
481
+ .where("type", "=", "user_message")
482
+ .where("seq", ">", String(consumed))
483
+ .orderBy("seq", "desc")
484
+ .limit(1)
485
+ .executeTakeFirst();
486
+ if (!message)
487
+ return null;
488
+ const root = await t
489
+ .selectFrom("conversations")
490
+ .select(["queue_paused", "deleted_at"])
491
+ .where("id", "=", rootId)
492
+ .executeTakeFirst();
493
+ if (!root || root.queue_paused || root.deleted_at !== null)
494
+ return null;
495
+ const accountId = message.payload.authorAccountId;
496
+ if (!(await authorCanSend(t, rootId, accountId)))
497
+ return null;
498
+ return { kind: "wake", seq: Number(message.seq), triggerAccountId: accountId };
499
+ }
500
+ /**
501
+ * Re-derives the wakes a paused root held for its tree (agent map spec §5.3: a paused root queue
502
+ * holds the wakes of the whole tree): after the root's queue is unpaused, {@link ensureRun} on
503
+ * every sub-agent conversation below it that has an unconsumed wake event or message and no
504
+ * active run (the root itself is the caller's own `ensureRun`). Errors are logged; the next
505
+ * event, run end or page opening of that conversation re-derives its wake.
506
+ */
507
+ async wakeHeldTree(rootId) {
508
+ const ids = (await conversationTree(this.db, rootId))
509
+ .filter((c) => c.level > 0)
510
+ .map((c) => c.id);
511
+ if (ids.length === 0)
512
+ return;
513
+ const held = await this.db
514
+ .selectFrom("conversations as c")
515
+ .select("c.id")
516
+ .where("c.id", "in", ids)
517
+ .where("c.deleted_at", "is", null)
518
+ .where(({ exists, selectFrom }) => exists(selectFrom("conversation_events as e")
519
+ .select(sql `1`.as("one"))
520
+ .whereRef("e.conversation_id", "=", "c.id")
521
+ .where("e.type", "in", [
522
+ "background_task_finished",
523
+ "subagent_delivery",
524
+ "user_message",
525
+ ])
526
+ .whereRef("e.seq", ">", "c.consumed_seq")))
527
+ .where(({ not, exists, selectFrom }) => not(exists(selectFrom("runs as r")
528
+ .select(sql `1`.as("one"))
529
+ .whereRef("r.conversation_id", "=", "c.id")
530
+ .where("r.status", "in", ACTIVE_RUN_STATUSES))))
531
+ .execute();
532
+ for (const c of held) {
533
+ try {
534
+ await this.ensureRun(c.id);
535
+ }
536
+ catch (err) {
537
+ this.log.warn("cannot wake a held sub-agent", { conversationId: c.id, err });
538
+ }
539
+ }
540
+ }
541
+ /**
542
+ * Schedules the delayed `bg-wake` job at the end of the conversation's wake window (after the
543
+ * commit): one job per conversation and window end, so finishes inside one window share it. It
544
+ * calls {@link ensureRun}, which wakes the conversation if a finish is still unconsumed. A failed
545
+ * enqueue is logged: the next message, run end or page opening re-derives the wake.
546
+ */
547
+ async scheduleWake(conversationId, w, retry) {
548
+ const data = { conversationId, ...(retry > 0 && { retry }) };
549
+ try {
550
+ await this.maintenance.add(BG_WAKE_JOB, data, {
551
+ // a job that fired early reschedules under a new id (its own is still taken)
552
+ jobId: bgWakeJobId(conversationId, w.windowEnd, retry),
553
+ delay: w.delayMs + WAKE_JOB_MARGIN_MS,
554
+ removeOnComplete: true,
555
+ removeOnFail: true,
556
+ });
557
+ }
558
+ catch (err) {
559
+ this.log.error("cannot schedule the background task wake", { conversationId, err });
560
+ }
561
+ }
300
562
  /**
301
563
  * Enqueues a run job under the caller's job id (resumes, dispatches, repairs), with the same
302
- * options as {@link ensureRun}. The queue follows the conversation's kind (a sub-agent's runs go
303
- * to {@link SUBAGENT_RUN_QUEUE_NAME}); pass `kind` when the caller knows it, else it is read.
564
+ * options as {@link ensureRun} (see {@link RunJobs.enqueue}).
304
565
  */
305
- async enqueue(data, jobId, kind) {
306
- const k = kind ??
307
- (await this.db
308
- .selectFrom("conversations")
309
- .select("kind")
310
- .where("id", "=", data.conversationId)
311
- .executeTakeFirst())?.kind ??
312
- "chat";
313
- await this.getQueue(runQueueNameFor(k)).add("run", data, {
314
- jobId,
315
- attempts: 1,
316
- removeOnComplete: true,
317
- removeOnFail: true,
318
- });
566
+ enqueue(data, jobId, kind) {
567
+ return this.jobs.enqueue(data, jobId, kind);
319
568
  }
320
569
  /**
321
570
  * 中止一个孤儿运行(`POST .../abort` 用):运行仍是 queued / running、会话锁无人持有、BullMQ 任务已不存在
@@ -327,31 +576,7 @@ export class RunQueue {
327
576
  if ((await this.lock.holder(conversationId)) !== null)
328
577
  return false;
329
578
  const stop = this.stopOpenCalls(runId);
330
- const toSeq = await this.db.transaction().execute(async (t) => {
331
- const conv = await t
332
- .selectFrom("conversations")
333
- .select("kind")
334
- .where("id", "=", conversationId)
335
- .forUpdate()
336
- .executeTakeFirst();
337
- const active = await this.activeRun(t, conversationId);
338
- if (!conv || !active || active.id !== runId)
339
- return null;
340
- if (!(await this.isOrphan(conversationId, active, conv.kind)))
341
- return null;
342
- this.log.warn("aborting orphaned run directly", { conversationId, runId });
343
- return finishRunIn(t, this.eventLog, {
344
- conversationId,
345
- runId,
346
- status: "aborted",
347
- consumed: null,
348
- ...(stop.beforeTerminal !== undefined && { beforeTerminal: stop.beforeTerminal }),
349
- event: {
350
- type: "run_aborted",
351
- payload: { byAccountId, reason: "user", ...(detail !== undefined && { detail }) },
352
- },
353
- });
354
- });
579
+ const toSeq = await this.abortOrphanIn(conversationId, runId, byAccountId, detail, stop);
355
580
  if (toSeq === null)
356
581
  return false;
357
582
  await notifyFinished(this.eventLog, conversationId, toSeq, "aborted");
@@ -359,6 +584,32 @@ export class RunQueue {
359
584
  await this.dropCheckpoints(runId);
360
585
  return true;
361
586
  }
587
+ async abortOrphanIn(conversationId, runId, byAccountId, detail, stop) {
588
+ const t = this.db;
589
+ const conv = await t
590
+ .selectFrom("conversations")
591
+ .select("kind")
592
+ .where("id", "=", conversationId)
593
+ .forUpdate()
594
+ .executeTakeFirst();
595
+ const active = await this.activeRun(t, conversationId);
596
+ if (!conv || !active || active.id !== runId)
597
+ return null;
598
+ if (!(await this.isOrphan(conversationId, active, conv.kind)))
599
+ return null;
600
+ this.log.warn("aborting orphaned run directly", { conversationId, runId });
601
+ return this.finisher.finishIn({
602
+ conversationId,
603
+ runId,
604
+ status: "aborted",
605
+ consumed: null,
606
+ beforeTerminal: stop.beforeTerminal,
607
+ event: {
608
+ type: "run_aborted",
609
+ payload: { byAccountId, reason: "user", ...(detail !== undefined && { detail }) },
610
+ },
611
+ });
612
+ }
362
613
  /**
363
614
  * Repairs an orphaned run of a conversation nobody else repairs on demand (a sub-agent's: no
364
615
  * `ensureRun` ever runs for it; sub-agents spec §7.5), with the same orphan test as
@@ -374,37 +625,7 @@ export class RunQueue {
374
625
  async repairOrphan(conversationId, runId) {
375
626
  if ((await this.lock.holder(conversationId)) !== null)
376
627
  return null;
377
- const r = await this.db.transaction().execute(async (t) => {
378
- const conv = await t
379
- .selectFrom("conversations")
380
- .select("kind")
381
- .where("id", "=", conversationId)
382
- .forUpdate()
383
- .executeTakeFirst();
384
- const active = await this.activeRun(t, conversationId);
385
- if (!conv || !active || active.id !== runId)
386
- return null;
387
- if (!(await this.isOrphan(conversationId, active, conv.kind)))
388
- return null;
389
- if (active.status === "queued") {
390
- const jobId = active.job_id ?? runJobId(conversationId, Number(active.trigger_seq));
391
- return { kind: "requeued", jobId, convKind: conv.kind };
392
- }
393
- this.log.warn("marking orphaned run as failed", { conversationId, runId });
394
- const seq = await finishRunIn(t, this.eventLog, {
395
- conversationId,
396
- runId,
397
- status: "failed",
398
- consumed: null,
399
- event: {
400
- type: "run_failed",
401
- payload: {
402
- error: { code: "run.orphaned", message: "The run was lost and will not continue" },
403
- },
404
- },
405
- });
406
- return { kind: "failed", seq };
407
- });
628
+ const r = await this.repairOrphanIn(conversationId, runId);
408
629
  if (!r)
409
630
  return null;
410
631
  if (r.kind === "requeued") {
@@ -416,6 +637,38 @@ export class RunQueue {
416
637
  await this.dropCheckpoints(runId);
417
638
  return "failed";
418
639
  }
640
+ async repairOrphanIn(conversationId, runId) {
641
+ const t = this.db;
642
+ const conv = await t
643
+ .selectFrom("conversations")
644
+ .select("kind")
645
+ .where("id", "=", conversationId)
646
+ .forUpdate()
647
+ .executeTakeFirst();
648
+ const active = await this.activeRun(t, conversationId);
649
+ if (!conv || !active || active.id !== runId)
650
+ return null;
651
+ if (!(await this.isOrphan(conversationId, active, conv.kind)))
652
+ return null;
653
+ if (active.status === "queued") {
654
+ const jobId = active.job_id ?? runJobId(conversationId, Number(active.trigger_seq));
655
+ return { kind: "requeued", jobId, convKind: conv.kind };
656
+ }
657
+ this.log.warn("marking orphaned run as failed", { conversationId, runId });
658
+ const seq = await this.finisher.finishIn({
659
+ conversationId,
660
+ runId,
661
+ status: "failed",
662
+ consumed: null,
663
+ event: {
664
+ type: "run_failed",
665
+ payload: {
666
+ error: { code: "run.orphaned", message: "The run was lost and will not continue" },
667
+ },
668
+ },
669
+ });
670
+ return { kind: "failed", seq };
671
+ }
419
672
  /** 会话当前未结束的运行(调用方已持有会话行锁)。 */
420
673
  activeRun(t, conversationId) {
421
674
  return t
@@ -424,6 +677,7 @@ export class RunQueue {
424
677
  "id",
425
678
  "status",
426
679
  "trigger_seq",
680
+ "trigger_account_id",
427
681
  "job_id",
428
682
  sql `COALESCE(queued_at, created_at) < now() - make_interval(secs => ${ORPHAN_QUEUED_GRACE_SECONDS})`.as("past_grace"),
429
683
  ])
@@ -442,13 +696,13 @@ export class RunQueue {
442
696
  if (active.status === "queued" && !active.past_grace)
443
697
  return false;
444
698
  const jobId = active.job_id ?? runJobId(conversationId, Number(active.trigger_seq));
445
- const job = await this.getQueue(runQueueNameFor(kind)).getJob(jobId);
699
+ const job = await this.jobs.getJob(jobId, runQueueNameFor(kind));
446
700
  return !job;
447
701
  }
448
702
  /** 删除已结束运行的 checkpoint thread(失败只记日志)。 */
449
703
  async dropCheckpoints(runId) {
450
704
  await this.checkpoints
451
- ?.deleteThread(runId)
705
+ .deleteThread(runId)
452
706
  .catch((err) => this.log.warn("checkpoint delete failed", { runId, err }));
453
707
  }
454
708
  async deleteQueued(runId) {
@@ -458,17 +712,32 @@ export class RunQueue {
458
712
  .where("status", "=", "queued")
459
713
  .execute();
460
714
  }
461
- async close() {
462
- this.closed = true;
463
- const qs = [...this.queues.values()];
464
- const c = this.conn;
465
- this.queues.clear();
466
- this.conn = undefined;
467
- await Promise.all(qs.map((q) => q.close().catch(() => { })));
468
- if (c)
469
- await c.quit().catch(() => c.disconnect());
470
- }
471
- }
715
+ };
716
+ __decorate([
717
+ Transactional({ propagation: "requires_new" })
718
+ ], RunQueue.prototype, "ensureRunIn", null);
719
+ __decorate([
720
+ Transactional({ propagation: "requires_new" })
721
+ ], RunQueue.prototype, "abortOrphanIn", null);
722
+ __decorate([
723
+ Transactional({ propagation: "requires_new" })
724
+ ], RunQueue.prototype, "repairOrphanIn", null);
725
+ RunQueue = __decorate([
726
+ Injectable(),
727
+ __param(0, Inject(KernelDb)),
728
+ __param(1, Inject(EventLog)),
729
+ __param(2, Inject(ConversationLock)),
730
+ __param(3, Inject(RunJobs)),
731
+ __param(4, Inject(RunFinish)),
732
+ __param(5, Inject(KyselyCheckpointSaver)),
733
+ __param(6, Inject(ToolPipeline)),
734
+ __param(7, Inject(KernelEvents)),
735
+ __param(8, Inject(KERNEL_LOGGER)),
736
+ __param(9, Inject(TransactionHost)),
737
+ __param(10, Inject(KernelConfigService)),
738
+ __param(11, Inject(getQueueToken(MAINTENANCE_QUEUE_NAME)))
739
+ ], RunQueue);
740
+ export { RunQueue };
472
741
  /** The conversation's owner is active and can still see its agent (`isAccessible`'s rule). */
473
742
  async function authorCanSend(t, conversationId, accountId) {
474
743
  const row = await t