@capybara-hq/kernel 0.1.0-rc.1 → 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 (1146) hide show
  1. package/bootstrap.json +85 -5
  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 -202
  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 +36 -2
  228. package/dist/config/schema.js +226 -25
  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 -71
  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/secrets.d.ts +10 -2
  279. package/dist/ctx/secrets.js +7 -3
  280. package/dist/db/kernel-schema.d.ts +550 -25
  281. package/dist/db/pool.d.ts +10 -0
  282. package/dist/db/pool.js +4 -0
  283. package/dist/devices/device-auth.controller.d.ts +42 -0
  284. package/dist/devices/device-auth.controller.js +116 -0
  285. package/dist/devices/device-auth.d.ts +119 -0
  286. package/dist/devices/device-auth.js +403 -0
  287. package/dist/devices/device-auth.module.d.ts +7 -0
  288. package/dist/devices/device-auth.module.js +25 -0
  289. package/dist/devices/device-gateway.d.ts +128 -0
  290. package/dist/devices/device-gateway.js +530 -0
  291. package/dist/devices/device-provider.d.ts +89 -0
  292. package/dist/devices/device-provider.js +151 -0
  293. package/dist/devices/device-routes.d.ts +36 -0
  294. package/dist/devices/device-routes.js +90 -0
  295. package/dist/devices/devices.module.d.ts +16 -0
  296. package/dist/devices/devices.module.js +44 -0
  297. package/dist/devices/dto.d.ts +66 -0
  298. package/dist/devices/dto.js +44 -0
  299. package/dist/devices/keys.d.ts +25 -0
  300. package/dist/devices/keys.js +25 -0
  301. package/dist/devices/machines.d.ts +118 -0
  302. package/dist/devices/machines.js +366 -0
  303. package/dist/devices/relay.d.ts +100 -0
  304. package/dist/devices/relay.js +373 -0
  305. package/dist/devices/targets.d.ts +28 -0
  306. package/dist/devices/targets.js +73 -0
  307. package/dist/environments/access.d.ts +66 -0
  308. package/dist/environments/access.js +113 -0
  309. package/dist/environments/conversation-environments.d.ts +75 -0
  310. package/dist/environments/conversation-environments.js +231 -0
  311. package/dist/environments/dto.d.ts +25 -0
  312. package/dist/environments/dto.js +12 -0
  313. package/dist/environments/environments.controller.d.ts +36 -0
  314. package/dist/environments/environments.controller.js +124 -0
  315. package/dist/environments/environments.module.d.ts +8 -0
  316. package/dist/environments/environments.module.js +31 -0
  317. package/dist/environments/environments.schemas.d.ts +3 -0
  318. package/dist/environments/environments.schemas.js +14 -0
  319. package/dist/environments/environments.service.d.ts +251 -0
  320. package/dist/environments/environments.service.js +791 -0
  321. package/dist/environments/label.d.ts +11 -0
  322. package/dist/environments/label.js +25 -0
  323. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  324. package/dist/environments/legacy-cleanup.job.js +141 -0
  325. package/dist/errors.d.ts +135 -2
  326. package/dist/errors.js +135 -2
  327. package/dist/evals/budget.d.ts +42 -21
  328. package/dist/evals/budget.js +114 -62
  329. package/dist/evals/evals.module.d.ts +31 -0
  330. package/dist/evals/evals.module.js +114 -0
  331. package/dist/evals/evals.schemas.d.ts +110 -0
  332. package/dist/evals/evals.schemas.js +107 -0
  333. package/dist/evals/jobs.d.ts +20 -0
  334. package/dist/evals/jobs.js +45 -0
  335. package/dist/evals/reconstruct.d.ts +18 -9
  336. package/dist/evals/reconstruct.js +36 -10
  337. package/dist/evals/recorded-tools.d.ts +37 -1
  338. package/dist/evals/recorded-tools.js +120 -10
  339. package/dist/evals/run-replay.d.ts +75 -10
  340. package/dist/evals/run-replay.js +218 -94
  341. package/dist/evals/runs.controller.d.ts +3 -58
  342. package/dist/evals/runs.controller.js +18 -50
  343. package/dist/evals/runs.service.d.ts +31 -52
  344. package/dist/evals/runs.service.js +281 -255
  345. package/dist/evals/sets.controller.d.ts +3 -29
  346. package/dist/evals/sets.controller.js +18 -39
  347. package/dist/evals/sets.service.d.ts +29 -13
  348. package/dist/evals/sets.service.js +262 -202
  349. package/dist/evals/snapshot.d.ts +5 -4
  350. package/dist/evals/snapshot.js +17 -4
  351. package/dist/evals/step-replay.d.ts +6 -8
  352. package/dist/evals/step-replay.js +17 -10
  353. package/dist/evals/trajectory.controller.d.ts +1 -1
  354. package/dist/evals/trajectory.controller.js +11 -7
  355. package/dist/evals/trajectory.d.ts +2 -2
  356. package/dist/evals/trajectory.js +1 -1
  357. package/dist/evals/trajectory.service.d.ts +13 -7
  358. package/dist/evals/trajectory.service.js +56 -21
  359. package/dist/evals/worker.d.ts +48 -31
  360. package/dist/evals/worker.js +229 -124
  361. package/dist/extensions/admin-ops.d.ts +133 -41
  362. package/dist/extensions/admin-ops.js +378 -172
  363. package/dist/extensions/admin-view.d.ts +82 -32
  364. package/dist/extensions/admin-view.js +284 -71
  365. package/dist/extensions/approvals.d.ts +24 -10
  366. package/dist/extensions/approvals.js +73 -46
  367. package/dist/extensions/blobs.d.ts +27 -10
  368. package/dist/extensions/blobs.js +112 -45
  369. package/dist/extensions/bootstrap.d.ts +99 -36
  370. package/dist/extensions/bootstrap.js +290 -134
  371. package/dist/extensions/cli.d.ts +32 -10
  372. package/dist/extensions/cli.js +52 -98
  373. package/dist/extensions/config-hash.d.ts +10 -0
  374. package/dist/extensions/config-hash.js +38 -0
  375. package/dist/extensions/config-issues.d.ts +19 -0
  376. package/dist/extensions/config-issues.js +48 -0
  377. package/dist/extensions/config-json-schema.d.ts +43 -7
  378. package/dist/extensions/config-json-schema.js +124 -58
  379. package/dist/extensions/deployment-config-store.d.ts +55 -0
  380. package/dist/extensions/deployment-config-store.js +133 -0
  381. package/dist/extensions/deployment-config.d.ts +146 -70
  382. package/dist/extensions/deployment-config.js +439 -246
  383. package/dist/extensions/display-name.d.ts +22 -0
  384. package/dist/extensions/display-name.js +77 -0
  385. package/dist/extensions/effective-config.d.ts +127 -0
  386. package/dist/extensions/effective-config.js +368 -0
  387. package/dist/extensions/enabled.d.ts +5 -5
  388. package/dist/extensions/extensions.module.d.ts +8 -0
  389. package/dist/extensions/extensions.module.js +96 -0
  390. package/dist/extensions/hooks.d.ts +40 -6
  391. package/dist/extensions/hooks.js +83 -17
  392. package/dist/extensions/host.d.ts +161 -80
  393. package/dist/extensions/host.js +505 -213
  394. package/dist/extensions/installs.d.ts +73 -19
  395. package/dist/extensions/installs.js +174 -37
  396. package/dist/extensions/job-ids.d.ts +6 -0
  397. package/dist/extensions/job-ids.js +6 -0
  398. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  399. package/dist/extensions/lifecycle-topics.js +18 -0
  400. package/dist/extensions/lifecycle.d.ts +35 -47
  401. package/dist/extensions/lifecycle.js +103 -39
  402. package/dist/extensions/locks.d.ts +45 -0
  403. package/dist/extensions/locks.js +112 -0
  404. package/dist/extensions/migrate-lock.d.ts +3 -4
  405. package/dist/extensions/org-config.d.ts +141 -49
  406. package/dist/extensions/org-config.js +471 -243
  407. package/dist/extensions/org-levels.d.ts +37 -0
  408. package/dist/extensions/org-levels.js +71 -0
  409. package/dist/extensions/org-overrides.d.ts +151 -0
  410. package/dist/extensions/org-overrides.js +524 -0
  411. package/dist/extensions/package.d.ts +14 -1
  412. package/dist/extensions/package.js +51 -2
  413. package/dist/extensions/permission-view.d.ts +59 -6
  414. package/dist/extensions/permission-view.js +7 -5
  415. package/dist/extensions/plugin-guides.d.ts +129 -0
  416. package/dist/extensions/plugin-guides.js +283 -0
  417. package/dist/extensions/plugin-icons.d.ts +54 -0
  418. package/dist/extensions/plugin-icons.js +125 -0
  419. package/dist/extensions/plugin-items.d.ts +21 -0
  420. package/dist/extensions/plugin-items.js +42 -0
  421. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  422. package/dist/extensions/point-defaults.controller.js +69 -0
  423. package/dist/extensions/point-defaults.d.ts +73 -0
  424. package/dist/extensions/point-defaults.js +236 -0
  425. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  426. package/dist/extensions/point-defaults.schemas.js +14 -0
  427. package/dist/extensions/registry.d.ts +50 -2
  428. package/dist/extensions/registry.js +91 -4
  429. package/dist/extensions/resolve.d.ts +51 -1
  430. package/dist/extensions/resolve.js +85 -3
  431. package/dist/extensions/single-provider.d.ts +92 -0
  432. package/dist/extensions/single-provider.js +180 -0
  433. package/dist/extensions/sources.d.ts +19 -10
  434. package/dist/extensions/sources.js +34 -13
  435. package/dist/extensions/state.module.d.ts +9 -0
  436. package/dist/extensions/state.module.js +38 -0
  437. package/dist/extensions/unavailable.d.ts +50 -0
  438. package/dist/extensions/unavailable.js +115 -0
  439. package/dist/files/files.module.d.ts +3 -0
  440. package/dist/files/files.module.js +22 -0
  441. package/dist/files/previewers.controller.d.ts +7 -2
  442. package/dist/files/previewers.controller.js +19 -12
  443. package/dist/files/previewers.d.ts +21 -19
  444. package/dist/files/previewers.js +114 -38
  445. package/dist/files/previewers.schemas.d.ts +10 -0
  446. package/dist/files/previewers.schemas.js +9 -0
  447. package/dist/http/adapter.d.ts +3 -0
  448. package/dist/http/adapter.js +25 -0
  449. package/dist/http/api.module.d.ts +3 -110
  450. package/dist/http/api.module.js +86 -358
  451. package/dist/http/app.d.ts +22 -17
  452. package/dist/http/app.js +46 -65
  453. package/dist/http/error-filter.module.d.ts +5 -0
  454. package/dist/http/error-filter.module.js +18 -0
  455. package/dist/http/error.filter.js +2 -2
  456. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  457. package/dist/http/gateway-routes.js +16 -0
  458. package/dist/http/nest-logger.d.ts +6 -5
  459. package/dist/http/nest-logger.js +24 -10
  460. package/dist/http/plugin-dispatch.d.ts +4 -1
  461. package/dist/http/plugin-dispatch.js +14 -2
  462. package/dist/identity/accounts.d.ts +130 -38
  463. package/dist/identity/accounts.js +373 -186
  464. package/dist/identity/api-tokens.d.ts +11 -7
  465. package/dist/identity/api-tokens.js +71 -44
  466. package/dist/identity/audit.d.ts +9 -5
  467. package/dist/identity/audit.js +5 -1
  468. package/dist/identity/auth.controller.d.ts +11 -10
  469. package/dist/identity/auth.controller.js +40 -30
  470. package/dist/identity/auth.guard.d.ts +16 -8
  471. package/dist/identity/auth.guard.js +41 -13
  472. package/dist/identity/binding.d.ts +9 -11
  473. package/dist/identity/binding.js +41 -13
  474. package/dist/identity/cookies.d.ts +26 -5
  475. package/dist/identity/cookies.js +58 -6
  476. package/dist/identity/external-identity-lock.d.ts +17 -0
  477. package/dist/identity/external-identity-lock.js +39 -0
  478. package/dist/identity/external.d.ts +19 -15
  479. package/dist/identity/external.js +163 -125
  480. package/dist/identity/identity.module.d.ts +6 -0
  481. package/dist/identity/identity.module.js +59 -0
  482. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  483. package/dist/identity/initial-passwords.controller.js +49 -0
  484. package/dist/identity/initial-passwords.d.ts +61 -0
  485. package/dist/identity/initial-passwords.job.d.ts +16 -0
  486. package/dist/identity/initial-passwords.job.js +46 -0
  487. package/dist/identity/initial-passwords.js +159 -0
  488. package/dist/identity/me.controller.d.ts +32 -15
  489. package/dist/identity/me.controller.js +78 -33
  490. package/dist/identity/me.schemas.d.ts +14 -0
  491. package/dist/identity/me.schemas.js +17 -0
  492. package/dist/identity/principal.d.ts +11 -3
  493. package/dist/identity/principal.js +11 -3
  494. package/dist/identity/sessions.d.ts +24 -10
  495. package/dist/identity/sessions.js +119 -42
  496. package/dist/identity/settings.d.ts +42 -23
  497. package/dist/identity/settings.js +137 -72
  498. package/dist/identity/sso.controller.d.ts +7 -7
  499. package/dist/identity/sso.controller.js +13 -9
  500. package/dist/identity/sso.d.ts +9 -12
  501. package/dist/identity/sso.js +54 -24
  502. package/dist/identity/super-admin.d.ts +20 -0
  503. package/dist/identity/super-admin.js +81 -0
  504. package/dist/inbox/inbox.module.d.ts +6 -0
  505. package/dist/inbox/inbox.module.js +26 -0
  506. package/dist/inbox/inbox.schemas.d.ts +8 -0
  507. package/dist/inbox/inbox.schemas.js +11 -0
  508. package/dist/inbox/inbox.service.d.ts +68 -11
  509. package/dist/inbox/inbox.service.js +104 -13
  510. package/dist/inbox/org-notices.d.ts +63 -0
  511. package/dist/inbox/org-notices.js +91 -0
  512. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  513. package/dist/inbox/platform-inbox.controller.js +58 -0
  514. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  515. package/dist/inbox/platform-inbox.service.js +263 -0
  516. package/dist/inbox/platform-notices.d.ts +19 -0
  517. package/dist/inbox/platform-notices.js +9 -0
  518. package/dist/index.d.ts +22 -13
  519. package/dist/index.js +16 -7
  520. package/dist/infra/cache/cache.module.d.ts +3 -0
  521. package/dist/infra/cache/cache.module.js +16 -0
  522. package/dist/infra/cache/cache.service.d.ts +21 -0
  523. package/dist/infra/cache/cache.service.js +80 -0
  524. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  525. package/dist/infra/cache/cacheable.decorator.js +83 -0
  526. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  527. package/dist/infra/cli/kernel-cli.module.js +173 -0
  528. package/dist/infra/close-within.d.ts +15 -0
  529. package/dist/infra/close-within.js +36 -0
  530. package/dist/infra/config/config.module.d.ts +13 -0
  531. package/dist/infra/config/config.module.js +39 -0
  532. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  533. package/dist/infra/config/kernel-config.service.js +157 -0
  534. package/dist/infra/database/after-commit.d.ts +6 -0
  535. package/dist/infra/database/after-commit.js +9 -0
  536. package/dist/infra/database/database.module.d.ts +25 -0
  537. package/dist/infra/database/database.module.js +91 -0
  538. package/dist/infra/database/kernel-db.d.ts +22 -0
  539. package/dist/infra/database/kernel-db.js +65 -0
  540. package/dist/infra/database/transaction-host.d.ts +50 -0
  541. package/dist/infra/database/transaction-host.js +125 -0
  542. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  543. package/dist/infra/database/transactional.decorator.js +27 -0
  544. package/dist/infra/database/xact-lock.d.ts +17 -0
  545. package/dist/infra/database/xact-lock.js +43 -0
  546. package/dist/infra/events/kernel-events.d.ts +121 -0
  547. package/dist/infra/events/kernel-events.js +65 -0
  548. package/dist/infra/health/health.controller.d.ts +26 -0
  549. package/dist/infra/health/health.controller.js +104 -0
  550. package/dist/infra/health/health.module.d.ts +9 -0
  551. package/dist/infra/health/health.module.js +24 -0
  552. package/dist/infra/health/health.options.d.ts +10 -0
  553. package/dist/infra/health/health.options.js +15 -0
  554. package/dist/infra/health/shutdown-state.d.ts +6 -0
  555. package/dist/infra/health/shutdown-state.js +2 -0
  556. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  557. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  560. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  561. package/dist/infra/lifecycle/process-guards.js +90 -0
  562. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  563. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  564. package/dist/infra/lock/key-template.d.ts +13 -0
  565. package/dist/infra/lock/key-template.js +46 -0
  566. package/dist/infra/lock/lock.module.d.ts +3 -0
  567. package/dist/infra/lock/lock.module.js +16 -0
  568. package/dist/infra/lock/lock.service.d.ts +120 -0
  569. package/dist/infra/lock/lock.service.js +343 -0
  570. package/dist/infra/lock/shared-lease.d.ts +44 -0
  571. package/dist/infra/lock/shared-lease.js +121 -0
  572. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  573. package/dist/infra/lock/with-lock.decorator.js +49 -0
  574. package/dist/infra/logging/logging.module.d.ts +18 -0
  575. package/dist/infra/logging/logging.module.js +52 -0
  576. package/dist/infra/queue/add-job-once.d.ts +14 -0
  577. package/dist/infra/queue/add-job-once.js +16 -0
  578. package/dist/infra/queue/configured-processor.d.ts +18 -0
  579. package/dist/infra/queue/configured-processor.js +23 -0
  580. package/dist/infra/queue/job-failure.d.ts +18 -0
  581. package/dist/infra/queue/job-failure.js +26 -0
  582. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  583. package/dist/infra/queue/queue-shutdown.js +81 -0
  584. package/dist/infra/queue/queue.module.d.ts +16 -0
  585. package/dist/infra/queue/queue.module.js +61 -0
  586. package/dist/infra/queue/redis-connection.d.ts +13 -0
  587. package/dist/infra/queue/redis-connection.js +25 -0
  588. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  589. package/dist/infra/queue/retired-schedulers.js +9 -0
  590. package/dist/infra/queue/run-job.d.ts +16 -0
  591. package/dist/infra/queue/run-job.js +19 -0
  592. package/dist/infra/redis/redis.module.d.ts +24 -0
  593. package/dist/infra/redis/redis.module.js +91 -0
  594. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  595. package/dist/infra/schedule/cron-tick.js +25 -0
  596. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  597. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  598. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  599. package/dist/infra/schedule/locked-interval.js +190 -0
  600. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  601. package/dist/infra/schedule/locked-tick.js +137 -0
  602. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  603. package/dist/infra/schedule/schedule.module.js +27 -0
  604. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  605. package/dist/infra/schedule/scheduled-runs.js +163 -0
  606. package/dist/infra/swagger/swagger.d.ts +16 -0
  607. package/dist/infra/swagger/swagger.js +31 -0
  608. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  609. package/dist/infra/throttler/credential-throttler.js +77 -0
  610. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  611. package/dist/infra/throttler/named-throttlers.js +157 -0
  612. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  613. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  614. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  615. package/dist/infra/throttler/throttler.guard.js +68 -0
  616. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  617. package/dist/infra/throttler/throttler.module.js +53 -0
  618. package/dist/infra/tokens.d.ts +20 -0
  619. package/dist/infra/tokens.js +20 -0
  620. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  621. package/dist/infra/validation/create-zod-dto.js +35 -0
  622. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  623. package/dist/infra/validation/parse-with-zod.js +12 -0
  624. package/dist/infra/validation/validation.module.d.ts +3 -0
  625. package/dist/infra/validation/validation.module.js +16 -0
  626. package/dist/infra/validation/zod-params.d.ts +7 -0
  627. package/dist/infra/validation/zod-params.js +42 -0
  628. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  629. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  630. package/dist/kernel.d.ts +9 -244
  631. package/dist/kernel.js +8 -1305
  632. package/dist/kernel.module.d.ts +17 -0
  633. package/dist/kernel.module.js +145 -0
  634. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  635. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  636. package/dist/lifecycle/tokens.d.ts +3 -0
  637. package/dist/lifecycle/tokens.js +3 -0
  638. package/dist/log-context.d.ts +2 -0
  639. package/dist/log-context.js +4 -0
  640. package/dist/log.d.ts +13 -1
  641. package/dist/log.js +93 -17
  642. package/dist/models/embeddings.d.ts +82 -0
  643. package/dist/models/embeddings.js +326 -0
  644. package/dist/models/enablement.controller.d.ts +40 -0
  645. package/dist/models/enablement.controller.js +74 -0
  646. package/dist/models/enablement.d.ts +101 -0
  647. package/dist/models/enablement.js +264 -0
  648. package/dist/models/models.module.d.ts +7 -0
  649. package/dist/models/models.module.js +36 -0
  650. package/dist/models/org-models.schemas.d.ts +8 -0
  651. package/dist/models/org-models.schemas.js +22 -0
  652. package/dist/models/prices.d.ts +13 -5
  653. package/dist/models/prices.js +69 -39
  654. package/dist/models/purposes.controller.d.ts +6 -4
  655. package/dist/models/purposes.controller.js +16 -11
  656. package/dist/models/purposes.d.ts +103 -23
  657. package/dist/models/purposes.js +208 -77
  658. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  659. package/dist/orgs/directory-sync.controller.js +2 -2
  660. package/dist/orgs/directory-sync.d.ts +74 -35
  661. package/dist/orgs/directory-sync.js +243 -132
  662. package/dist/orgs/invitations.controller.d.ts +8 -8
  663. package/dist/orgs/invitations.controller.js +27 -26
  664. package/dist/orgs/invitations.service.d.ts +12 -9
  665. package/dist/orgs/invitations.service.js +130 -92
  666. package/dist/orgs/job-ids.d.ts +8 -0
  667. package/dist/orgs/job-ids.js +8 -0
  668. package/dist/orgs/members.service.d.ts +19 -12
  669. package/dist/orgs/members.service.js +161 -117
  670. package/dist/orgs/offboarding.d.ts +61 -60
  671. package/dist/orgs/offboarding.js +206 -95
  672. package/dist/orgs/org-lock.d.ts +33 -19
  673. package/dist/orgs/org-lock.js +94 -35
  674. package/dist/orgs/org.guard.d.ts +11 -1
  675. package/dist/orgs/org.guard.js +45 -34
  676. package/dist/orgs/orgs.controller.d.ts +13 -16
  677. package/dist/orgs/orgs.controller.js +29 -20
  678. package/dist/orgs/orgs.module.d.ts +6 -0
  679. package/dist/orgs/orgs.module.js +71 -0
  680. package/dist/orgs/orgs.schemas.d.ts +8 -0
  681. package/dist/orgs/orgs.schemas.js +16 -0
  682. package/dist/orgs/orgs.service.d.ts +47 -21
  683. package/dist/orgs/orgs.service.js +166 -91
  684. package/dist/orgs/roles.d.ts +1 -1
  685. package/dist/orgs/roles.js +5 -1
  686. package/dist/orgs/settings.controller.d.ts +2 -2
  687. package/dist/orgs/settings.controller.js +8 -6
  688. package/dist/orgs/settings.service.d.ts +45 -14
  689. package/dist/orgs/settings.service.js +110 -51
  690. package/dist/overrides.d.ts +63 -0
  691. package/dist/overrides.js +34 -0
  692. package/dist/platform/actor.d.ts +48 -0
  693. package/dist/platform/actor.js +100 -0
  694. package/dist/platform/agent-docs.d.ts +18 -0
  695. package/dist/platform/agent-docs.js +59 -0
  696. package/dist/platform/availability.d.ts +14 -0
  697. package/dist/platform/availability.js +43 -0
  698. package/dist/platform/errors.d.ts +28 -0
  699. package/dist/platform/errors.js +65 -0
  700. package/dist/platform/exclusions.d.ts +11 -0
  701. package/dist/platform/exclusions.js +667 -0
  702. package/dist/platform/method.d.ts +6 -0
  703. package/dist/platform/method.js +15 -0
  704. package/dist/platform/operation.d.ts +169 -0
  705. package/dist/platform/operation.js +90 -0
  706. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  707. package/dist/platform/ops/accounts.ops.js +291 -0
  708. package/dist/platform/ops/admin.ops.d.ts +36 -0
  709. package/dist/platform/ops/admin.ops.js +389 -0
  710. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  711. package/dist/platform/ops/agent-skills.ops.js +226 -0
  712. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  713. package/dist/platform/ops/agent-templates.ops.js +272 -0
  714. package/dist/platform/ops/agents.ops.d.ts +37 -0
  715. package/dist/platform/ops/agents.ops.js +717 -0
  716. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  717. package/dist/platform/ops/approvals.ops.js +116 -0
  718. package/dist/platform/ops/background.ops.d.ts +14 -0
  719. package/dist/platform/ops/background.ops.js +134 -0
  720. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  721. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  722. package/dist/platform/ops/channels.ops.d.ts +16 -0
  723. package/dist/platform/ops/channels.ops.js +195 -0
  724. package/dist/platform/ops/components.ops.d.ts +46 -0
  725. package/dist/platform/ops/components.ops.js +853 -0
  726. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  727. package/dist/platform/ops/connectors.ops.js +188 -0
  728. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  729. package/dist/platform/ops/conversations.ops.js +470 -0
  730. package/dist/platform/ops/environments.ops.d.ts +26 -0
  731. package/dist/platform/ops/environments.ops.js +311 -0
  732. package/dist/platform/ops/errors.d.ts +16 -0
  733. package/dist/platform/ops/errors.js +30 -0
  734. package/dist/platform/ops/evals.ops.d.ts +28 -0
  735. package/dist/platform/ops/evals.ops.js +783 -0
  736. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  737. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  738. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  739. package/dist/platform/ops/extensions.ops.js +347 -0
  740. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  741. package/dist/platform/ops/inbox.ops.js +378 -0
  742. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  743. package/dist/platform/ops/marketplaces.ops.js +466 -0
  744. package/dist/platform/ops/models.ops.d.ts +25 -0
  745. package/dist/platform/ops/models.ops.js +232 -0
  746. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  747. package/dist/platform/ops/org-plugins.ops.js +329 -0
  748. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  749. package/dist/platform/ops/org-settings.ops.js +102 -0
  750. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  751. package/dist/platform/ops/orgs.ops.js +295 -0
  752. package/dist/platform/ops/other-orgs.d.ts +20 -0
  753. package/dist/platform/ops/other-orgs.js +72 -0
  754. package/dist/platform/ops/paging.d.ts +14 -0
  755. package/dist/platform/ops/paging.js +20 -0
  756. package/dist/platform/ops/platform.ops.d.ts +28 -0
  757. package/dist/platform/ops/platform.ops.js +204 -0
  758. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  759. package/dist/platform/ops/plugins.ops.js +476 -0
  760. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  761. package/dist/platform/ops/previewers.ops.js +109 -0
  762. package/dist/platform/ops/requests.ops.d.ts +14 -0
  763. package/dist/platform/ops/requests.ops.js +191 -0
  764. package/dist/platform/ops/role.d.ts +4 -0
  765. package/dist/platform/ops/role.js +10 -0
  766. package/dist/platform/ops/skills.ops.d.ts +17 -0
  767. package/dist/platform/ops/skills.ops.js +216 -0
  768. package/dist/platform/ops/summary.d.ts +10 -0
  769. package/dist/platform/ops/summary.js +18 -0
  770. package/dist/platform/ops/unavailable.d.ts +23 -0
  771. package/dist/platform/ops/unavailable.js +118 -0
  772. package/dist/platform/parity.d.ts +33 -0
  773. package/dist/platform/parity.js +272 -0
  774. package/dist/platform/platform-ops.module.d.ts +39 -0
  775. package/dist/platform/platform-ops.module.js +122 -0
  776. package/dist/platform/platform.module.d.ts +8 -0
  777. package/dist/platform/platform.module.js +25 -0
  778. package/dist/platform/registry.d.ts +30 -0
  779. package/dist/platform/registry.js +111 -0
  780. package/dist/platform/route-schemas.d.ts +18 -0
  781. package/dist/platform/route-schemas.js +63 -0
  782. package/dist/roles/gateway-role.d.ts +54 -0
  783. package/dist/roles/gateway-role.js +118 -0
  784. package/dist/roles/gateway.module.d.ts +9 -0
  785. package/dist/roles/gateway.module.js +31 -0
  786. package/dist/roles/worker-role.d.ts +65 -0
  787. package/dist/roles/worker-role.js +151 -0
  788. package/dist/roles/worker.module.d.ts +14 -0
  789. package/dist/roles/worker.module.js +106 -0
  790. package/dist/runtime/abort.js +19 -2
  791. package/dist/runtime/checkpointer.d.ts +8 -3
  792. package/dist/runtime/checkpointer.js +87 -55
  793. package/dist/runtime/context/build.d.ts +21 -13
  794. package/dist/runtime/context/build.js +106 -29
  795. package/dist/runtime/context/claude-tools.d.ts +4 -1
  796. package/dist/runtime/context/claude-tools.js +13 -12
  797. package/dist/runtime/context/compaction.js +24 -1
  798. package/dist/runtime/context/environment-paths.d.ts +40 -0
  799. package/dist/runtime/context/environment-paths.js +48 -0
  800. package/dist/runtime/context/legacy-text.d.ts +22 -0
  801. package/dist/runtime/context/legacy-text.js +37 -0
  802. package/dist/runtime/context/reminders.d.ts +2 -0
  803. package/dist/runtime/context/reminders.js +2 -0
  804. package/dist/runtime/context/run-context.d.ts +65 -0
  805. package/dist/runtime/context/run-context.js +215 -0
  806. package/dist/runtime/context/skills.d.ts +29 -11
  807. package/dist/runtime/context/skills.js +46 -32
  808. package/dist/runtime/context/tool-changes.d.ts +27 -0
  809. package/dist/runtime/context/tool-changes.js +60 -0
  810. package/dist/runtime/conversation-lock.d.ts +20 -11
  811. package/dist/runtime/conversation-lock.js +62 -72
  812. package/dist/runtime/hook-calls.d.ts +11 -4
  813. package/dist/runtime/hook-calls.js +41 -13
  814. package/dist/runtime/job-ids.d.ts +10 -0
  815. package/dist/runtime/job-ids.js +10 -0
  816. package/dist/runtime/langgraph-loop.d.ts +3 -1
  817. package/dist/runtime/langgraph-loop.js +37 -18
  818. package/dist/runtime/loop.d.ts +42 -6
  819. package/dist/runtime/loop.js +14 -0
  820. package/dist/runtime/maintenance-queue.d.ts +10 -0
  821. package/dist/runtime/maintenance-queue.js +10 -0
  822. package/dist/runtime/maintenance.d.ts +50 -74
  823. package/dist/runtime/maintenance.js +166 -137
  824. package/dist/runtime/model-call.d.ts +61 -15
  825. package/dist/runtime/model-call.js +128 -84
  826. package/dist/runtime/providers.d.ts +158 -27
  827. package/dist/runtime/providers.js +373 -63
  828. package/dist/runtime/quota.d.ts +17 -3
  829. package/dist/runtime/quota.js +27 -2
  830. package/dist/runtime/retired-schedulers.d.ts +7 -0
  831. package/dist/runtime/retired-schedulers.js +31 -0
  832. package/dist/runtime/run-context.service.d.ts +65 -0
  833. package/dist/runtime/run-context.service.js +236 -0
  834. package/dist/runtime/run-control.d.ts +43 -0
  835. package/dist/runtime/run-control.js +89 -0
  836. package/dist/runtime/run-drafts.d.ts +85 -0
  837. package/dist/runtime/run-drafts.js +230 -0
  838. package/dist/runtime/run-finish.d.ts +27 -18
  839. package/dist/runtime/run-finish.js +98 -51
  840. package/dist/runtime/run-jobs.d.ts +46 -0
  841. package/dist/runtime/run-jobs.js +91 -0
  842. package/dist/runtime/run-processors.d.ts +60 -0
  843. package/dist/runtime/run-processors.js +185 -0
  844. package/dist/runtime/run-queue.d.ts +90 -58
  845. package/dist/runtime/run-queue.js +566 -297
  846. package/dist/runtime/run-steps.d.ts +39 -0
  847. package/dist/runtime/run-steps.js +96 -0
  848. package/dist/runtime/run-worker.d.ts +134 -77
  849. package/dist/runtime/run-worker.js +412 -237
  850. package/dist/runtime/runtime.module.d.ts +10 -0
  851. package/dist/runtime/runtime.module.js +122 -0
  852. package/dist/runtime/step-log.d.ts +51 -0
  853. package/dist/runtime/step-log.js +111 -0
  854. package/dist/runtime/stream.controller.d.ts +28 -9
  855. package/dist/runtime/stream.controller.js +72 -13
  856. package/dist/runtime/stream.d.ts +27 -6
  857. package/dist/runtime/stream.js +102 -7
  858. package/dist/runtime/subagents/child.d.ts +58 -51
  859. package/dist/runtime/subagents/child.js +105 -86
  860. package/dist/runtime/subagents/definition.d.ts +32 -28
  861. package/dist/runtime/subagents/definition.js +89 -143
  862. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  863. package/dist/runtime/subagents/deliveries.js +228 -0
  864. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  865. package/dist/runtime/subagents/dispatch.js +336 -270
  866. package/dist/runtime/subagents/limits.d.ts +32 -8
  867. package/dist/runtime/subagents/limits.js +44 -8
  868. package/dist/runtime/subagents/messages.d.ts +95 -0
  869. package/dist/runtime/subagents/messages.js +328 -0
  870. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  871. package/dist/runtime/subagents/org-agents.js +3 -2
  872. package/dist/runtime/subagents/preamble.d.ts +4 -4
  873. package/dist/runtime/subagents/preamble.js +9 -7
  874. package/dist/runtime/subagents/progress.d.ts +10 -8
  875. package/dist/runtime/subagents/progress.js +11 -6
  876. package/dist/runtime/subagents/render.d.ts +30 -0
  877. package/dist/runtime/subagents/render.js +53 -0
  878. package/dist/runtime/subagents/roster.d.ts +27 -10
  879. package/dist/runtime/subagents/roster.js +49 -13
  880. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  881. package/dist/runtime/subagents/skill-fork.js +23 -8
  882. package/dist/runtime/subagents/status.d.ts +14 -0
  883. package/dist/runtime/subagents/status.js +23 -0
  884. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  885. package/dist/runtime/subagents/subagents.service.js +106 -0
  886. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  887. package/dist/runtime/usage-report-jobs.js +158 -0
  888. package/dist/runtime/usage-report.d.ts +121 -83
  889. package/dist/runtime/usage-report.js +355 -181
  890. package/dist/runtime/waits.d.ts +258 -81
  891. package/dist/runtime/waits.js +800 -263
  892. package/dist/sandbox/job-ids.d.ts +10 -0
  893. package/dist/sandbox/job-ids.js +10 -0
  894. package/dist/sandbox/jobs.d.ts +68 -0
  895. package/dist/sandbox/jobs.js +150 -0
  896. package/dist/sandbox/leases.d.ts +73 -82
  897. package/dist/sandbox/leases.js +162 -346
  898. package/dist/sandbox/providers.d.ts +46 -0
  899. package/dist/sandbox/providers.js +83 -0
  900. package/dist/sandbox/sandbox.module.d.ts +9 -0
  901. package/dist/sandbox/sandbox.module.js +36 -0
  902. package/dist/sandbox/sandbox.service.d.ts +359 -151
  903. package/dist/sandbox/sandbox.service.js +950 -435
  904. package/dist/sandbox/unreachable.d.ts +30 -0
  905. package/dist/sandbox/unreachable.js +108 -0
  906. package/dist/skills/catalog.d.ts +40 -26
  907. package/dist/skills/catalog.js +120 -99
  908. package/dist/skills/changes.controller.d.ts +11 -4
  909. package/dist/skills/changes.controller.js +34 -9
  910. package/dist/skills/changes.service.d.ts +31 -21
  911. package/dist/skills/changes.service.js +426 -368
  912. package/dist/skills/invocable.controller.d.ts +2 -2
  913. package/dist/skills/invocable.controller.js +10 -7
  914. package/dist/skills/invocation-keys.d.ts +1 -1
  915. package/dist/skills/invocation-keys.js +1 -1
  916. package/dist/skills/invoke.d.ts +19 -18
  917. package/dist/skills/invoke.js +68 -24
  918. package/dist/skills/package.d.ts +20 -1
  919. package/dist/skills/package.js +28 -1
  920. package/dist/skills/skills.controller.d.ts +33 -7
  921. package/dist/skills/skills.controller.js +79 -12
  922. package/dist/skills/skills.module.d.ts +6 -0
  923. package/dist/skills/skills.module.js +39 -0
  924. package/dist/skills/skills.schemas.d.ts +48 -0
  925. package/dist/skills/skills.schemas.js +61 -0
  926. package/dist/skills/skills.service.d.ts +151 -44
  927. package/dist/skills/skills.service.js +636 -204
  928. package/dist/skills/usable.d.ts +81 -0
  929. package/dist/skills/usable.js +379 -0
  930. package/dist/storage/job-ids.d.ts +6 -0
  931. package/dist/storage/job-ids.js +6 -0
  932. package/dist/storage/purge.d.ts +22 -7
  933. package/dist/storage/purge.js +55 -3
  934. package/dist/storage/storage.module.d.ts +6 -0
  935. package/dist/storage/storage.module.js +23 -0
  936. package/dist/storage/storage.service.d.ts +18 -4
  937. package/dist/storage/storage.service.js +44 -3
  938. package/dist/time-zone.d.ts +5 -0
  939. package/dist/time-zone.js +19 -0
  940. package/dist/tools/approvals.controller.d.ts +1 -1
  941. package/dist/tools/approvals.controller.js +14 -11
  942. package/dist/tools/approvals.schemas.d.ts +21 -0
  943. package/dist/tools/approvals.schemas.js +15 -0
  944. package/dist/tools/approvals.service.d.ts +53 -27
  945. package/dist/tools/approvals.service.js +365 -260
  946. package/dist/tools/breaker.d.ts +2 -2
  947. package/dist/tools/breaker.js +21 -3
  948. package/dist/tools/builtin-names.d.ts +109 -0
  949. package/dist/tools/builtin-names.js +173 -0
  950. package/dist/tools/builtins/agent.d.ts +27 -25
  951. package/dist/tools/builtins/agent.js +66 -63
  952. package/dist/tools/builtins/ask-user.d.ts +3 -3
  953. package/dist/tools/builtins/ask-user.js +3 -3
  954. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  955. package/dist/tools/builtins/builtin-tools.js +151 -0
  956. package/dist/tools/builtins/current-time.d.ts +26 -0
  957. package/dist/tools/builtins/current-time.js +99 -0
  958. package/dist/tools/builtins/handback.d.ts +28 -0
  959. package/dist/tools/builtins/handback.js +53 -0
  960. package/dist/tools/builtins/platform.d.ts +51 -0
  961. package/dist/tools/builtins/platform.js +451 -0
  962. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  963. package/dist/tools/builtins/read-tool-output.js +3 -3
  964. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  965. package/dist/tools/builtins/sandbox/bash.js +293 -41
  966. package/dist/tools/builtins/sandbox/common.d.ts +137 -37
  967. package/dist/tools/builtins/sandbox/common.js +222 -62
  968. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  969. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  970. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  971. package/dist/tools/builtins/sandbox/edit.js +65 -51
  972. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  973. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  974. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  975. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  976. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  977. package/dist/tools/builtins/sandbox/glob.js +19 -14
  978. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  979. package/dist/tools/builtins/sandbox/grep.js +155 -36
  980. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  981. package/dist/tools/builtins/sandbox/index.js +13 -5
  982. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  983. package/dist/tools/builtins/sandbox/read.js +30 -20
  984. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  985. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  986. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  987. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  988. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  989. package/dist/tools/builtins/sandbox/write.js +52 -45
  990. package/dist/tools/builtins/send-message.d.ts +56 -0
  991. package/dist/tools/builtins/send-message.js +100 -0
  992. package/dist/tools/builtins/skill-load.d.ts +32 -21
  993. package/dist/tools/builtins/skill-load.js +125 -74
  994. package/dist/tools/builtins/skill-write.d.ts +4 -4
  995. package/dist/tools/builtins/skill-write.js +12 -12
  996. package/dist/tools/builtins/tool-search.d.ts +13 -9
  997. package/dist/tools/builtins/tool-search.js +25 -14
  998. package/dist/tools/builtins/web/errors.d.ts +8 -0
  999. package/dist/tools/builtins/web/errors.js +53 -0
  1000. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1001. package/dist/tools/builtins/web/extract.js +271 -0
  1002. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1003. package/dist/tools/builtins/web/fetch.js +175 -0
  1004. package/dist/tools/builtins/web/index.d.ts +13 -0
  1005. package/dist/tools/builtins/web/index.js +12 -0
  1006. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1007. package/dist/tools/builtins/web/page-cache.js +77 -0
  1008. package/dist/tools/builtins/web/search.d.ts +25 -0
  1009. package/dist/tools/builtins/web/search.js +210 -0
  1010. package/dist/tools/builtins/web/url.d.ts +17 -0
  1011. package/dist/tools/builtins/web/url.js +43 -0
  1012. package/dist/tools/canonical-json.d.ts +6 -0
  1013. package/dist/tools/canonical-json.js +16 -0
  1014. package/dist/tools/connector-content.controller.d.ts +1 -1
  1015. package/dist/tools/connector-content.controller.js +11 -6
  1016. package/dist/tools/connector-content.d.ts +12 -15
  1017. package/dist/tools/connector-content.js +53 -18
  1018. package/dist/tools/connectors.controller.d.ts +16 -3
  1019. package/dist/tools/connectors.controller.js +34 -14
  1020. package/dist/tools/connectors.schemas.d.ts +12 -0
  1021. package/dist/tools/connectors.schemas.js +19 -0
  1022. package/dist/tools/connectors.service.d.ts +80 -18
  1023. package/dist/tools/connectors.service.js +529 -358
  1024. package/dist/tools/credentials.d.ts +20 -20
  1025. package/dist/tools/credentials.js +55 -34
  1026. package/dist/tools/display-names.d.ts +9 -0
  1027. package/dist/tools/display-names.js +24 -0
  1028. package/dist/tools/drift.d.ts +29 -41
  1029. package/dist/tools/drift.js +116 -84
  1030. package/dist/tools/elicitation.js +1 -1
  1031. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1032. package/dist/tools/extension-tools.controller.js +37 -0
  1033. package/dist/tools/info.d.ts +73 -13
  1034. package/dist/tools/info.js +151 -39
  1035. package/dist/tools/job-ids.d.ts +13 -0
  1036. package/dist/tools/job-ids.js +15 -0
  1037. package/dist/tools/jobs.d.ts +24 -0
  1038. package/dist/tools/jobs.js +69 -0
  1039. package/dist/tools/legacy-data.d.ts +34 -0
  1040. package/dist/tools/legacy-data.js +76 -0
  1041. package/dist/tools/legacy-keys.d.ts +51 -0
  1042. package/dist/tools/legacy-keys.js +115 -0
  1043. package/dist/tools/naming.d.ts +1 -5
  1044. package/dist/tools/naming.js +1 -7
  1045. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1046. package/dist/tools/oauth/flow-paths.js +38 -0
  1047. package/dist/tools/oauth/flow.d.ts +30 -30
  1048. package/dist/tools/oauth/flow.js +109 -81
  1049. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1050. package/dist/tools/oauth/oauth.controller.js +12 -9
  1051. package/dist/tools/oauth/tokens.d.ts +45 -10
  1052. package/dist/tools/oauth/tokens.js +70 -24
  1053. package/dist/tools/org-tool-switches.d.ts +88 -0
  1054. package/dist/tools/org-tool-switches.js +201 -0
  1055. package/dist/tools/outputs.d.ts +13 -4
  1056. package/dist/tools/outputs.js +48 -4
  1057. package/dist/tools/pipeline.d.ts +108 -80
  1058. package/dist/tools/pipeline.js +396 -409
  1059. package/dist/tools/policy.d.ts +4 -17
  1060. package/dist/tools/policy.js +49 -35
  1061. package/dist/tools/questions.controller.d.ts +2 -2
  1062. package/dist/tools/questions.controller.js +9 -6
  1063. package/dist/tools/questions.service.d.ts +26 -25
  1064. package/dist/tools/questions.service.js +201 -142
  1065. package/dist/tools/registry.d.ts +215 -84
  1066. package/dist/tools/registry.js +382 -264
  1067. package/dist/tools/resources.d.ts +1 -1
  1068. package/dist/tools/resources.js +1 -1
  1069. package/dist/tools/specs.d.ts +5 -4
  1070. package/dist/tools/specs.js +3 -1
  1071. package/dist/tools/tools.module.d.ts +10 -0
  1072. package/dist/tools/tools.module.js +113 -0
  1073. package/dist/tools/validate.js +1 -1
  1074. package/dist/ui/call-extension.d.ts +16 -0
  1075. package/dist/ui/call-extension.js +38 -0
  1076. package/dist/ui/embed-token.d.ts +9 -5
  1077. package/dist/ui/embed-token.js +34 -6
  1078. package/dist/ui/ui-stream.d.ts +22 -17
  1079. package/dist/ui/ui-stream.js +72 -12
  1080. package/dist/ui/ui.module.d.ts +7 -0
  1081. package/dist/ui/ui.module.js +28 -0
  1082. package/dist/ui/views.controller.d.ts +14 -12
  1083. package/dist/ui/views.controller.js +32 -25
  1084. package/dist/ui/views.d.ts +10 -57
  1085. package/dist/ui/views.js +58 -46
  1086. package/package.json +13 -3
  1087. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1088. package/src/migrations/0064_account_last_org.sql +7 -0
  1089. package/src/migrations/0065_conversation_archive.sql +8 -0
  1090. package/src/migrations/0066_extension_display_name.sql +4 -0
  1091. package/src/migrations/0067_agent_profiles.sql +20 -0
  1092. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1093. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1094. package/src/migrations/0070_background_tasks.sql +37 -0
  1095. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1096. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1097. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1098. package/src/migrations/0074_subagent_tree.sql +50 -0
  1099. package/src/migrations/0075_plugin_scope.sql +61 -0
  1100. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1101. package/src/migrations/0077_scope_requests.sql +52 -0
  1102. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1103. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1104. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1105. package/src/migrations/0081_platform_components.sql +129 -0
  1106. package/src/migrations/0082_platform_migration.sql +33 -0
  1107. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1108. package/src/migrations/0084_org_owned_items.sql +85 -0
  1109. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1110. package/src/migrations/0086_org_layering.sql +30 -0
  1111. package/src/migrations/0087_approval_summary.sql +6 -0
  1112. package/src/migrations/0088_environments.sql +80 -0
  1113. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1114. package/src/migrations/0090_initial_passwords.sql +27 -0
  1115. package/src/migrations/0091_account_time_zone.sql +4 -0
  1116. package/src/migrations/0092_tools_default_on.sql +27 -0
  1117. package/src/migrations/0093_connected_environments.sql +37 -0
  1118. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1119. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1120. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1121. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1122. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1123. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1124. package/src/migrations/0100_catalog_files.sql +13 -0
  1125. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1126. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1127. package/dist/catalog/upgrade-targets.js +0 -90
  1128. package/dist/conversations/sandbox-status.d.ts +0 -21
  1129. package/dist/conversations/sandbox-status.js +0 -24
  1130. package/dist/extensions/org-config.controller.d.ts +0 -24
  1131. package/dist/extensions/org-config.controller.js +0 -59
  1132. package/dist/http/gateway.module.js +0 -13
  1133. package/dist/http/health.controller.d.ts +0 -26
  1134. package/dist/http/health.controller.js +0 -79
  1135. package/dist/http/tokens.d.ts +0 -131
  1136. package/dist/http/tokens.js +0 -131
  1137. package/dist/http/zod.pipe.d.ts +0 -8
  1138. package/dist/http/zod.pipe.js +0 -14
  1139. package/dist/identity/enterprise-admin.d.ts +0 -14
  1140. package/dist/identity/enterprise-admin.js +0 -27
  1141. package/dist/identity/rate-limit.d.ts +0 -55
  1142. package/dist/identity/rate-limit.js +0 -121
  1143. package/dist/sandbox/lifecycle.d.ts +0 -21
  1144. package/dist/sandbox/lifecycle.js +0 -68
  1145. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1146. package/dist/tools/builtins/sandbox/names.js +0 -20
@@ -1,11 +1,12 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { sql } from "kysely";
3
- import { normalizeStoredDefinition } from "../../agents/definition.js";
4
3
  import { audit } from "../../identity/audit.js";
5
4
  import { forkAgentUnknownText } from "../../skills/invoke.js";
6
- import { AGENT_REFUSALS } from "../../tools/builtins/agent.js";
7
- import { ACTIVE_RUN_STATUSES, runJobId } from "../run-queue.js";
8
- import { effectiveDefinition, narrowFollowUp, SubagentTypeGoneError, } from "./definition.js";
5
+ import { SEND_MESSAGE } from "../../tools/builtin-names.js";
6
+ import { AGENT_REFUSALS, AGENT_TOOL, agentStartedText, } from "../../tools/builtins/agent.js";
7
+ import { ACTIVE_RUN_STATUSES, runJobId } from "../run-jobs.js";
8
+ import { childResult, finishedEvent } from "./child.js";
9
+ import { effectiveDefinition, SubagentTypeGoneError, } from "./definition.js";
9
10
  import { subagentLimits } from "./limits.js";
10
11
  import { auditRefusal, checkOrgAgent, currentAgentDefinition } from "./org-agents.js";
11
12
  import { SUBAGENT_PREAMBLE } from "./preamble.js";
@@ -17,38 +18,40 @@ const GENERAL_ENTRY = {
17
18
  source: "general",
18
19
  description: GENERAL_PURPOSE_DESCRIPTION,
19
20
  };
21
+ /**
22
+ * The depth of the run behind `ctx` below the root (agent map spec §6): 0 for a root
23
+ * conversation's run, its parent's depth plus one for a sub-agent's.
24
+ */
25
+ export const runDepth = (ctx) => ctx.parent === undefined ? 0 : ctx.parent.depth + 1;
20
26
  /** Idempotency key of the parent's `subagent_dispatched` event. */
21
27
  export const dispatchedIdemKey = (runId, callId) => `subagent_dispatched:${runId}:${callId}`;
22
28
  /**
23
- * Dispatches the sub-agent of one `agent` call (spec §7.1), after the pipeline's validation,
24
- * policy, approval and `tool.preExecute` stages. A new sub-agent: resolves its type and effective
25
- * definition, then in one transaction (holding the parent run's row lock, so the dispatches of one
26
- * run serialize) inserts the child conversation, appends `subagent_started` and the task message,
27
- * inserts the child run (`queued`) and the `subagent_dispatches` row, appends `subagent_dispatched`
28
- * to the parent and audits `subagent.dispatched`. A `resume` appends the follow-up message and
29
- * starts the child's next run the same way. After commit the child run is enqueued; a failed
30
- * enqueue only logs (the dispatch is durable, the wait sweep re-enqueues it).
29
+ * Dispatches the sub-agent of one `Agent` call (spec §7.1, agent map spec §4.1), after the
30
+ * pipeline's validation, policy, approval and `tool.preExecute` stages: resolves its type and
31
+ * effective definition, then in one transaction (holding the parent run's row lock, so the
32
+ * dispatches of one run serialize) inserts the child conversation, appends `subagent_started` and
33
+ * the task message, inserts the child run (`queued`) and the `subagent_dispatches` row, appends
34
+ * `subagent_dispatched` and the call's `tool_result` ({@link agentStartedText}: the sub-agent runs
35
+ * in the background) to the parent and audits `subagent.dispatched` and `tool.called`. After
36
+ * commit the child run is enqueued; a failed enqueue only logs (the dispatch is durable, the wait
37
+ * sweep re-enqueues it). A fork invocation (`forSkill`) writes no `tool_result`: its run waits on
38
+ * the child (`advanceSkillForks`).
31
39
  *
32
- * Refusals (§4.5) start nothing: a call from a sub-agent, an unknown type, an org agent that fails
33
- * one of its gates ({@link orgAgentGates}, at every dispatch and follow-up; audited
34
- * `subagent.refused`), `resume` with `subagent_type` / `model`, a `resume` id that is not a
35
- * sub-agent of this conversation (whatever it is otherwise: no detail about other conversations),
36
- * or one whose run is still active.
40
+ * Refusals (§4.5) start nothing: a call from a run at `subagents.maxDepth` (agent map spec §4.1:
41
+ * its definition has no `Agent`, so only a forged call or a lowered limit gets here), an unknown
42
+ * type, or an org agent that fails one of its gates ({@link orgAgentGates}, checked at every
43
+ * level; audited `subagent.refused`).
37
44
  */
38
45
  export async function dispatchSubagent(d, a) {
39
46
  const { ctx, input } = a;
40
- if (ctx.parent !== undefined)
41
- return refused(AGENT_REFUSALS.notAvailableHere);
42
- if (input.resume !== undefined) {
43
- if (input.subagent_type !== undefined || input.model !== undefined) {
44
- return refused(AGENT_REFUSALS.resumeWithType);
45
- }
46
- return resume(d, { ...a, id: input.resume });
47
- }
47
+ const { maxDepth } = await subagentLimits(d.db, d.config, ctx.orgId);
48
+ const childDepth = runDepth(ctx) + 1;
49
+ if (childDepth > maxDepth)
50
+ return refused(AGENT_REFUSALS.depthLimit(maxDepth));
48
51
  const requested = input.subagent_type ?? "general-purpose";
49
52
  const unknown = (types) => refused(AGENT_REFUSALS.unknownType(requested, types.map((e) => e.type)));
50
53
  const fork = a.forSkill;
51
- const listed = await resolveRoster(d.db, ctx.orgId, ctx.agent);
54
+ const listed = await resolveRoster(d.db, ctx.orgId, ctx.agent, d.log);
52
55
  const roster = fork !== undefined && !listed.some((e) => e.type === GENERAL_ENTRY.type)
53
56
  ? [GENERAL_ENTRY, ...listed]
54
57
  : listed;
@@ -75,6 +78,8 @@ export async function dispatchSubagent(d, a) {
75
78
  parent: ctx.agent,
76
79
  parentAgentId: ctx.agentId,
77
80
  entry,
81
+ childDepth,
82
+ maxDepth,
78
83
  ...(input.model !== undefined && { tier: input.model }),
79
84
  ...(orgAgent !== undefined && { orgAgent }),
80
85
  });
@@ -84,7 +89,7 @@ export async function dispatchSubagent(d, a) {
84
89
  // the template went away since the roster was read (spec §13: refuse, never fail the run);
85
90
  // the list offered instead is read again, without it
86
91
  if (e instanceof SubagentTypeGoneError) {
87
- return unknown(await resolveRoster(d.db, ctx.orgId, ctx.agent));
92
+ return unknown(await resolveRoster(d.db, ctx.orgId, ctx.agent, d.log));
88
93
  }
89
94
  throw e;
90
95
  }
@@ -116,9 +121,10 @@ export async function dispatchSubagent(d, a) {
116
121
  kind: "subagent",
117
122
  parent_conversation_id: ctx.conversationId,
118
123
  subagent_type: entry.type,
124
+ subagent_depth: childDepth,
119
125
  })
120
126
  .execute();
121
- const [, task] = await d.eventLog.append(childId, [
127
+ const [, task] = await d.eventLog.appendIn(childId, [
122
128
  {
123
129
  type: "subagent_started",
124
130
  idemKey: "subagent_started",
@@ -149,95 +155,12 @@ export async function dispatchSubagent(d, a) {
149
155
  },
150
156
  },
151
157
  taskMessage(ctx, a.callId, fork === undefined ? input.prompt : fork.task(eff.definition), undefined, fork?.skill),
152
- ], t);
158
+ ]);
153
159
  return task;
154
160
  });
155
161
  // a new sub-agent's writer never refuses
156
162
  return out ?? refused(AGENT_REFUSALS.notAvailableHere);
157
163
  }
158
- /**
159
- * A follow-up to an existing sub-agent of this conversation (§4.2 `resume`). It keeps the frozen
160
- * definition's instructions and model (replay), but is checked against what the parent may use
161
- * now (final review I1): a `general` / inline / plugin child's type must still be in the roster
162
- * of the dispatching run's version (a plugin template by its template id), else the call is
163
- * refused as an unknown type; an org agent child passes its gates. Its tools and org skills are
164
- * intersected with the current version ({@link narrowFollowUp}: the dispatching run's version,
165
- * or the org agent's current version as the gates read it under the lock), and the result is
166
- * recorded on the follow-up's task message for the run and for replay.
167
- */
168
- async function resume(d, a) {
169
- const { ctx } = a;
170
- const child = await d.db
171
- .selectFrom("conversations")
172
- .select(["id", "subagent_type"])
173
- .where("id", "=", a.id)
174
- .where("org_id", "=", ctx.orgId)
175
- .where("kind", "=", "subagent")
176
- .where("parent_conversation_id", "=", ctx.conversationId)
177
- .executeTakeFirst();
178
- if (!child)
179
- return refused(AGENT_REFUSALS.noSuchAgent(a.id));
180
- const started = await d.eventLog.findByIdem(child.id, "subagent_started");
181
- if (started?.type !== "subagent_started")
182
- return refused(AGENT_REFUSALS.noSuchAgent(a.id));
183
- const { template } = started.payload;
184
- const agentType = child.subagent_type ?? started.payload.agentType;
185
- // an org agent's gates hold for every follow-up too (§5.5); it keeps its frozen version
186
- if (template.source === "agent") {
187
- const gates = await orgAgentGates(d.db, a, template.id ?? "", agentType, true);
188
- if ("refused" in gates)
189
- return gates.refused;
190
- }
191
- else {
192
- const roster = await resolveRoster(d.db, ctx.orgId, ctx.agent);
193
- const entry = template.source === "plugin"
194
- ? roster.find((e) => e.source === "plugin" && e.templateId === template.id)
195
- : findType(roster, agentType);
196
- if (entry?.source !== template.source) {
197
- return refused(AGENT_REFUSALS.unknownType(agentType, roster.map((e) => e.type)));
198
- }
199
- }
200
- const frozen = normalizeStoredDefinition(started.payload.definition);
201
- const plan = {
202
- childConversationId: child.id,
203
- agentType,
204
- source: template.source,
205
- agentId: template.source === "agent" ? (template.id ?? "") : ctx.agentId,
206
- agentVersion: template.source === "agent" ? (template.version ?? ctx.agentVersion) : ctx.agentVersion,
207
- resumed: true,
208
- model: started.payload.definition.model,
209
- tierFallback: false,
210
- };
211
- return commit(d, a, plan, async (t, checked) => {
212
- const current = template.source === "agent" ? checked?.definition : ctx.agent;
213
- if (current === undefined)
214
- throw new Error("org agent follow-up without its checked version");
215
- const activeRun = () => t
216
- .selectFrom("runs")
217
- .select("id")
218
- .where("conversation_id", "=", child.id)
219
- .where("status", "in", ACTIVE_RUN_STATUSES)
220
- .executeTakeFirst();
221
- // An active child is refused before its row is locked: a running child's token append locks
222
- // its conversation row and then this parent run's row, which `commit` already holds, so
223
- // waiting for the child's row here would be a lock-order cycle (review I1). The parent row
224
- // lock serializes this parent's dispatches, so an earlier follow-up's run is visible here.
225
- if (await activeRun())
226
- return null;
227
- // the child's row lock serializes follow-ups to one sub-agent; no run holds it now, so it is
228
- // never held by an append waiting for the parent row
229
- await t
230
- .selectFrom("conversations")
231
- .select("id")
232
- .where("id", "=", child.id)
233
- .forUpdate()
234
- .executeTakeFirst();
235
- if (await activeRun())
236
- return null;
237
- const [task] = await d.eventLog.append(child.id, [taskMessage(ctx, a.callId, a.input.prompt, narrowFollowUp(frozen, current))], t);
238
- return task;
239
- }).then((r) => r ?? refused(AGENT_REFUSALS.stillRunning(a.id)));
240
- }
241
164
  /**
242
165
  * The gates of an org agent sub-agent (§5.5) for this call: the allowlist of the parent agent's
243
166
  * **current** version (R5), the agent's `dispatchable`, its visibility to the person who started
@@ -246,7 +169,7 @@ async function resume(d, a) {
246
169
  * sub-agent freezes the definition read here) and again inside it under the parent run's row lock
247
170
  * ({@link commit}), so a gate revoked in between refuses (batch 9 review M1).
248
171
  */
249
- async function orgAgentGates(db, a, agentId, agentType, resumed) {
172
+ export async function orgAgentGates(db, a, agentId, agentType, resumed) {
250
173
  const { ctx } = a;
251
174
  const parentDefinition = (await currentAgentDefinition(db, ctx.agentId)) ?? {};
252
175
  const check = await checkOrgAgent(db, {
@@ -270,13 +193,19 @@ async function orgAgentGates(db, a, agentId, agentType, resumed) {
270
193
  });
271
194
  return { refused: refused(AGENT_REFUSALS.agentNotAvailable(agentType)) };
272
195
  }
273
- const taskMessage = (ctx, callId, prompt, narrowed,
274
196
  /**
275
- * A fork invocation's record: the child's log then holds the invocation, so its `skill_load`
197
+ * A sub-agent's task message, or (`message`) a `SendMessage` from its parent (agent map spec
198
+ * §5.1: `dispatch.kind: "message"`, idempotent by the sending call, with the follow-up narrowing
199
+ * the run it triggers uses).
200
+ */
201
+ export const taskMessage = (ctx, callId, prompt, narrowed,
202
+ /**
203
+ * A fork invocation's record: the child's log then holds the invocation, so its `Skill`
276
204
  * is offered and resolves the invoked version (phase D).
277
205
  */
278
- skill) => ({
206
+ skill, message = false) => ({
279
207
  type: "user_message",
208
+ ...(message && { idemKey: sentMessageIdemKey(ctx.runId, callId) }),
280
209
  payload: {
281
210
  content: [{ type: "text", text: prompt }],
282
211
  ...(skill !== undefined && { skill }),
@@ -285,158 +214,263 @@ skill) => ({
285
214
  parentConversationId: ctx.conversationId,
286
215
  parentRunId: ctx.runId,
287
216
  callId,
217
+ ...(message && { kind: "message" }),
288
218
  ...(narrowed !== undefined && { narrowed }),
289
219
  },
290
220
  },
291
221
  });
222
+ /** Idempotency key of a `SendMessage`'s `user_message` in the sub-agent's log. */
223
+ export const sentMessageIdemKey = (runId, callId) => `send_message:${runId}:${callId}`;
224
+ const isActiveStatus = (status) => ACTIVE_RUN_STATUSES.includes(status);
292
225
  /**
293
- * The dispatch transaction shared by new sub-agents and follow-ups: locks the parent conversation
294
- * row, then the parent run row (the order every terminal path uses),
295
- * runs `child` (writes the child conversation's first events and returns the task message, or
296
- * null to refuse), then inserts the child run and the dispatch row, appends `subagent_dispatched`
297
- * and the audit row. After commit: notifies both conversations and enqueues the child run.
298
- * Returns null when `child` refused.
299
- *
300
- * Under the parent run's row lock it first re-checks what the pipeline checked without it: a call
301
- * already dispatched (a second holder of the same step, e.g. after a stalled-job takeover) gets
302
- * the existing child run back and writes nothing, and a parent run that is no longer `running`
303
- * (stopped, orphaned) dispatches nothing. Then the run's limits (§8.2, {@link subagentLimits}),
304
- * read fresh: its children's token counter at or over the cap, its dispatches (follow-ups
305
- * included) at the cap, or as many active children as may run at once each refuse with the §4.5
306
- * text. The lock serializes the dispatches of one run, so the counts cannot race.
226
+ * The result text of a child run that ended before its parent's call got a result and was never
227
+ * delivered (agent map spec, rc upgrade: a foreground-era dispatch whose rc finisher wrote
228
+ * `subagent_finished` and resumed the parent): the child's report (`childResult`), with the
229
+ * parent's `subagent_finished` appended in this transaction when it is missing (idempotent by its
230
+ * key), so the undelivered sweep never delivers it a second time. Null when the parent already
231
+ * has a delivery for the run (it carries the result) or the run has no terminal event yet.
307
232
  */
308
- async function commit(d, a, plan,
309
- /** Writes the child's events; `checked` is the org agent version the in-lock gates passed. */
310
- child) {
233
+ async function rcFinishedResult(d, row) {
234
+ const delivered = await d.db
235
+ .selectFrom("conversation_events")
236
+ .select("seq")
237
+ .where("conversation_id", "=", row.parentConversationId)
238
+ .where("type", "=", "subagent_delivery")
239
+ .where(sql `payload ->> 'childRunId'`, "=", row.childRunId)
240
+ .limit(1)
241
+ .executeTakeFirst();
242
+ if (delivered)
243
+ return null;
244
+ const r = await childResult(d.eventLog, row);
245
+ if (!r)
246
+ return null;
247
+ await d.eventLog.appendIn(row.parentConversationId, [finishedEvent(row, r.finished)]);
248
+ return r.content;
249
+ }
250
+ /**
251
+ * {@link commit}'s transaction (run by `SubagentsService.commitDispatch`, `d.db` its handle).
252
+ * Null when `child` refused.
253
+ */
254
+ export async function commitDispatchIn(d, a, plan, child) {
311
255
  const { ctx, callId, input } = a;
312
256
  const childRunId = randomUUID();
313
- const out = await d.db.transaction().execute(async (t) => {
314
- // the documented order, conversation row then run row (run-finish.ts, abortWaiting): the
315
- // append to the parent below takes the conversation row, so it is taken first here, or a stop
316
- // racing this commit could deadlock (final review m2); the child's row comes last
317
- await t
318
- .selectFrom("conversations")
319
- .select("id")
320
- .where("id", "=", ctx.conversationId)
321
- .forUpdate()
322
- .executeTakeFirst();
323
- const parent = await t
257
+ const t = d.db;
258
+ // the documented order, conversation row then run row (run-finish.ts, abortWaiting): the
259
+ // append to the parent below takes the conversation row, so it is taken first here, or a stop
260
+ // racing this commit could deadlock (final review m2); the child's row comes last
261
+ await t
262
+ .selectFrom("conversations")
263
+ .select("id")
264
+ .where("id", "=", ctx.conversationId)
265
+ .forUpdate()
266
+ .executeTakeFirst();
267
+ const parent = await t
268
+ .selectFrom("runs")
269
+ .select(["status", "subagent_tokens_used", "budget_run_id"])
270
+ .where("id", "=", ctx.runId)
271
+ .forUpdate()
272
+ .executeTakeFirst();
273
+ const existing = await t
274
+ .selectFrom("subagent_dispatches as sd")
275
+ .leftJoin("runs as cr", "cr.id", "sd.child_run_id")
276
+ .select(["sd.child_run_id", "sd.child_conversation_id", "cr.status", "cr.trigger_seq"])
277
+ .where("sd.parent_run_id", "=", ctx.runId)
278
+ .where("sd.parent_call_id", "=", callId)
279
+ .executeTakeFirst();
280
+ if (existing) {
281
+ // An `Agent` call's result was written with its first dispatch (this returns it). A call
282
+ // dispatched before `Agent` ran in the background (a foreground wait in flight across the
283
+ // upgrade) gets the immediate result now, so the log never keeps it unpaired; such a call
284
+ // reaches here again through the pipeline's policy stages, so it may ask for approval again.
285
+ let result = null;
286
+ if (a.forSkill === undefined) {
287
+ // an rc child that already ended under the foreground wait, whose rc finisher wrote
288
+ // `subagent_finished` and resumed this run (no delivery; the sweep never delivers a run with
289
+ // `subagent_finished`): its report is this call's result, as the rc gave it, or it is lost.
290
+ // Only while the call has no result: a call that has one (a background dispatch's second
291
+ // holder) keeps it, and its child's finish stays to its delivery or the undelivered sweep.
292
+ const resultKey = resultEvent(ctx, callId, AGENT_TOOL, "").idemKey;
293
+ const finished = a.sent === undefined &&
294
+ existing.status !== null &&
295
+ !isActiveStatus(existing.status) &&
296
+ (await d.eventLog.findByIdem(ctx.conversationId, resultKey)) === undefined
297
+ ? await rcFinishedResult(d, {
298
+ parentRunId: ctx.runId,
299
+ parentCallId: callId,
300
+ parentConversationId: ctx.conversationId,
301
+ childConversationId: existing.child_conversation_id,
302
+ childRunId: existing.child_run_id,
303
+ })
304
+ : null;
305
+ const [ev] = await d.eventLog.appendIn(ctx.conversationId, [
306
+ resultEvent(ctx, callId, a.call?.toolKey ?? AGENT_TOOL, finished ?? a.sent?.content ?? agentStartedText(existing.child_conversation_id)),
307
+ ]);
308
+ if (ev?.type === "tool_result")
309
+ result = { content: ev.payload.content, seq: ev.seq };
310
+ }
311
+ return {
312
+ kind: "existing",
313
+ childRunId: existing.child_run_id,
314
+ childConversationId: existing.child_conversation_id,
315
+ result,
316
+ // still queued: the first holder may have died before its enqueue (review M4)
317
+ requeue: existing.status === "queued" && existing.trigger_seq !== null
318
+ ? {
319
+ conversationId: existing.child_conversation_id,
320
+ seq: Number(existing.trigger_seq),
321
+ }
322
+ : null,
323
+ };
324
+ }
325
+ if (parent?.status !== "running")
326
+ return { kind: "stopped" };
327
+ // the tree's budget run (agent map spec §6), locked after the parent run so the dispatches of
328
+ // every run of one tree serialize on it; the parent run itself when it opened the window
329
+ const budgetRunId = parent.budget_run_id ?? ctx.runId;
330
+ const tokensUsed = budgetRunId === ctx.runId
331
+ ? parent.subagent_tokens_used
332
+ : ((await t
324
333
  .selectFrom("runs")
325
- .select(["status", "subagent_tokens_used"])
326
- .where("id", "=", ctx.runId)
334
+ .select("subagent_tokens_used")
335
+ .where("id", "=", budgetRunId)
327
336
  .forUpdate()
328
- .executeTakeFirst();
329
- const existing = await t
330
- .selectFrom("subagent_dispatches as sd")
331
- .leftJoin("runs as cr", "cr.id", "sd.child_run_id")
332
- .select(["sd.child_run_id", "sd.child_conversation_id", "cr.status", "cr.trigger_seq"])
333
- .where("sd.parent_run_id", "=", ctx.runId)
334
- .where("sd.parent_call_id", "=", callId)
335
- .executeTakeFirst();
336
- if (existing) {
337
- return {
338
- kind: "existing",
339
- childRunId: existing.child_run_id,
340
- // still queued: the first holder may have died before its enqueue (review M4)
341
- requeue: existing.status === "queued" && existing.trigger_seq !== null
342
- ? {
343
- conversationId: existing.child_conversation_id,
344
- seq: Number(existing.trigger_seq),
345
- }
346
- : null,
347
- };
348
- }
349
- if (parent?.status !== "running")
350
- return { kind: "stopped" };
351
- const limit = await limitRefusal(t, d, ctx, parent.subagent_tokens_used);
352
- if (limit !== null)
353
- return { kind: "limit", content: limit };
354
- let checked;
355
- if (plan.source === "agent") {
356
- // the org agent's gates again, under the parent run's lock, with both agents' rows held
357
- // FOR SHARE (in id order) so a concurrent save of either serializes with this dispatch
358
- await t
359
- .selectFrom("agents")
360
- .select("id")
361
- .where("id", "in", [ctx.agentId, plan.agentId])
362
- .orderBy("id")
363
- .forShare()
364
- .execute();
365
- const gates = await orgAgentGates(t, a, plan.agentId, plan.agentType, plan.resumed);
366
- if ("refused" in gates)
367
- return { kind: "gate", outcome: gates.refused };
368
- checked = gates.checked;
369
- }
370
- const task = await child(t, checked);
371
- if (task === null)
372
- return null;
337
+ .executeTakeFirst())?.subagent_tokens_used ?? 0);
338
+ const limit = await limitRefusal(t, d, ctx, budgetRunId, tokensUsed, a.sent?.refusals ?? AGENT_REFUSALS);
339
+ if (limit !== null)
340
+ return { kind: "limit", content: limit };
341
+ let checked;
342
+ if (plan.source === "agent") {
343
+ // the org agent's gates again, under the parent run's lock, with both agents' rows held
344
+ // FOR SHARE (in id order) so a concurrent save of either serializes with this dispatch
373
345
  await t
374
- .insertInto("runs")
375
- .values({
376
- id: childRunId,
377
- conversation_id: plan.childConversationId,
378
- status: "queued",
379
- agent_version: plan.agentVersion,
380
- trigger_account_id: ctx.accountId,
381
- trigger_seq: task.seq,
382
- })
383
- .execute();
384
- await t
385
- .insertInto("subagent_dispatches")
386
- .values({
387
- parent_run_id: ctx.runId,
388
- parent_call_id: callId,
389
- parent_conversation_id: ctx.conversationId,
390
- step: ctx.step,
391
- child_conversation_id: plan.childConversationId,
392
- child_run_id: childRunId,
393
- resumed: plan.resumed,
394
- })
346
+ .selectFrom("agents")
347
+ .select("id")
348
+ .where("id", "in", [ctx.agentId, plan.agentId])
349
+ .orderBy("id")
350
+ .forShare()
395
351
  .execute();
396
- const [dispatched] = await d.eventLog.append(ctx.conversationId, [
397
- {
398
- type: "subagent_dispatched",
399
- runId: ctx.runId,
400
- idemKey: dispatchedIdemKey(ctx.runId, callId),
401
- payload: {
402
- step: ctx.step,
403
- callId,
404
- subagentId: plan.childConversationId,
405
- childRunId,
406
- agentType: plan.agentType,
407
- description: input.description,
408
- resumed: plan.resumed,
409
- model: { provider: plan.model.provider, model: plan.model.model },
410
- ...(plan.tierFallback && { tierFallback: true }),
411
- ...(a.forSkill !== undefined && { invokedSeq: a.forSkill.seq }),
412
- },
352
+ const gates = await orgAgentGates(t, a, plan.agentId, plan.agentType, plan.resumed);
353
+ if ("refused" in gates)
354
+ return { kind: "gate", outcome: gates.refused };
355
+ checked = gates.checked;
356
+ }
357
+ const task = await child(t, checked);
358
+ if (task === null)
359
+ return null;
360
+ await t
361
+ .insertInto("runs")
362
+ .values({
363
+ id: childRunId,
364
+ conversation_id: plan.childConversationId,
365
+ status: "queued",
366
+ agent_version: plan.agentVersion,
367
+ trigger_account_id: ctx.accountId,
368
+ trigger_seq: task.seq,
369
+ budget_run_id: budgetRunId,
370
+ })
371
+ .execute();
372
+ await t
373
+ .insertInto("subagent_dispatches")
374
+ .values({
375
+ parent_run_id: ctx.runId,
376
+ parent_call_id: callId,
377
+ parent_conversation_id: ctx.conversationId,
378
+ step: ctx.step,
379
+ child_conversation_id: plan.childConversationId,
380
+ child_run_id: childRunId,
381
+ resumed: plan.resumed,
382
+ budget_run_id: budgetRunId,
383
+ for_skill: a.forSkill !== undefined,
384
+ })
385
+ .execute();
386
+ // an org agent runs on its own model (§5.4): a `model` on the call was ignored
387
+ const ownModel = plan.source === "agent" && input.model !== undefined;
388
+ const content = a.sent?.content ?? agentStartedText(plan.childConversationId, { ownModel });
389
+ const parentEvents = await d.eventLog.appendIn(ctx.conversationId, [
390
+ {
391
+ type: "subagent_dispatched",
392
+ runId: ctx.runId,
393
+ idemKey: dispatchedIdemKey(ctx.runId, callId),
394
+ payload: {
395
+ step: ctx.step,
396
+ callId,
397
+ subagentId: plan.childConversationId,
398
+ childRunId,
399
+ agentType: plan.agentType,
400
+ description: input.description,
401
+ resumed: plan.resumed,
402
+ model: { provider: plan.model.provider, model: plan.model.model },
403
+ ...(plan.tierFallback && { tierFallback: true }),
404
+ ...(a.forSkill !== undefined && { invokedSeq: a.forSkill.seq }),
413
405
  },
414
- ], t);
406
+ },
407
+ // an `Agent` call's result is immediate (agent map spec §4.1): the sub-agent works in the
408
+ // background and reports through `subagent_delivery`; a fork invocation has no tool call
409
+ ...(a.forSkill === undefined
410
+ ? [resultEvent(ctx, callId, a.call?.toolKey ?? AGENT_TOOL, content)]
411
+ : []),
412
+ ]);
413
+ await audit(t, {
414
+ actorAccountId: ctx.accountId,
415
+ orgId: ctx.orgId,
416
+ action: "subagent.dispatched",
417
+ target: plan.childConversationId,
418
+ detail: {
419
+ parentConversationId: ctx.conversationId,
420
+ parentRunId: ctx.runId,
421
+ callId,
422
+ agentType: plan.agentType,
423
+ source: plan.source,
424
+ ...(plan.source === "agent" && {
425
+ agentId: plan.agentId,
426
+ agentVersion: plan.agentVersion,
427
+ }),
428
+ resumed: plan.resumed,
429
+ childRunId,
430
+ },
431
+ });
432
+ if (a.forSkill === undefined) {
415
433
  await audit(t, {
416
434
  actorAccountId: ctx.accountId,
417
435
  orgId: ctx.orgId,
418
- action: "subagent.dispatched",
419
- target: plan.childConversationId,
436
+ action: "tool.called",
437
+ target: ctx.conversationId,
420
438
  detail: {
421
- parentConversationId: ctx.conversationId,
422
- parentRunId: ctx.runId,
439
+ toolKey: a.sent !== undefined ? SEND_MESSAGE : AGENT_TOOL,
440
+ isError: false,
441
+ durationMs: a.call === undefined ? null : Math.max(0, Date.now() - a.call.startedAt),
442
+ agentId: ctx.agentId,
443
+ agentVersion: ctx.agentVersion,
444
+ conversationId: ctx.conversationId,
445
+ runId: ctx.runId,
423
446
  callId,
424
- agentType: plan.agentType,
425
- source: plan.source,
426
- ...(plan.source === "agent" && {
427
- agentId: plan.agentId,
428
- agentVersion: plan.agentVersion,
429
- }),
430
- resumed: plan.resumed,
431
- childRunId,
447
+ ...a.call?.authorization,
432
448
  },
433
449
  });
434
- return {
435
- kind: "written",
436
- childSeq: task.seq,
437
- parentSeq: dispatched.seq,
438
- };
439
- });
450
+ }
451
+ return {
452
+ kind: "written",
453
+ childRunId,
454
+ childSeq: task.seq,
455
+ parentSeq: Math.max(...parentEvents.map((e) => e.seq)),
456
+ content,
457
+ };
458
+ }
459
+ /**
460
+ * The immediate `tool_result` of an `Agent` call ({@link agentStartedText}) or of a `SendMessage`
461
+ * that started an idle sub-agent, idempotent by the call.
462
+ */
463
+ const resultEvent = (ctx, callId, toolKey, content) => ({
464
+ type: "tool_result",
465
+ runId: ctx.runId,
466
+ idemKey: `tool_result:${ctx.runId}:${callId}`,
467
+ payload: { step: ctx.step, callId, toolKey, content, isError: false },
468
+ });
469
+ export async function commit(d, a, plan,
470
+ /** Writes the child's events; `checked` is the org agent version the in-lock gates passed. */
471
+ child) {
472
+ const { ctx } = a;
473
+ const out = await d.commitDispatch(a, plan, child);
440
474
  if (out === null)
441
475
  return null;
442
476
  if (out.kind === "existing") {
@@ -453,17 +487,26 @@ child) {
453
487
  err,
454
488
  }));
455
489
  }
456
- return { kind: "dispatched", childRunId: out.childRunId };
490
+ if (out.result !== null)
491
+ await d.eventLog.notify(ctx.conversationId, out.result.seq);
492
+ return {
493
+ kind: "dispatched",
494
+ childRunId: out.childRunId,
495
+ childConversationId: out.childConversationId,
496
+ content: out.result?.content ?? a.sent?.content ?? agentStartedText(out.childConversationId),
497
+ };
457
498
  }
458
499
  // the result is never read: the run is over
459
- if (out.kind === "stopped")
460
- return refused(AGENT_REFUSALS.notAvailableHere);
500
+ if (out.kind === "stopped") {
501
+ return refused((a.sent?.refusals ?? AGENT_REFUSALS).notAvailableHere);
502
+ }
461
503
  if (out.kind === "limit")
462
504
  return refused(out.content);
463
505
  if (out.kind === "gate")
464
506
  return out.outcome;
465
507
  await d.eventLog.notify(plan.childConversationId, out.childSeq);
466
508
  await d.eventLog.notify(ctx.conversationId, out.parentSeq);
509
+ const childRunId = out.childRunId;
467
510
  const jobId = runJobId(plan.childConversationId, out.childSeq);
468
511
  try {
469
512
  await d.enqueue({ runId: childRunId, conversationId: plan.childConversationId }, jobId, "subagent");
@@ -472,31 +515,54 @@ child) {
472
515
  // the dispatch is committed: the wait sweep re-enqueues the queued child run
473
516
  d.log.error("cannot enqueue sub-agent run; the sweep retries", { childRunId, jobId, err });
474
517
  }
475
- return { kind: "dispatched", childRunId };
518
+ return {
519
+ kind: "dispatched",
520
+ childRunId,
521
+ childConversationId: plan.childConversationId,
522
+ content: out.content,
523
+ };
476
524
  }
477
525
  /**
478
- * The §4.5 refusal of a dispatch the parent run's limits forbid, or null. Runs under the parent
479
- * run's row lock; `tokensUsed` is the counter read with that lock.
526
+ * The §4.5 refusal of a dispatch the limits forbid, or null (agent map spec §6). Runs under the
527
+ * parent conversation's, the parent run's and the budget run's row locks; `tokensUsed` is the
528
+ * budget run's counter read with its lock. A dispatch from a run at `maxDepth` is refused (the
529
+ * limit may have been lowered since the call's definition was frozen); tokens and dispatches
530
+ * (follow-ups included) count the whole tree on its budget run; concurrency counts the child
531
+ * conversations of the parent conversation that have an active run, whatever started that run.
480
532
  */
481
- async function limitRefusal(t, d, ctx, tokensUsed) {
533
+ async function limitRefusal(t, d, ctx, budgetRunId, tokensUsed, texts) {
482
534
  const limits = await subagentLimits(t, d.config, ctx.orgId);
483
- if (Number(tokensUsed) >= limits.maxTokensPerRun) {
484
- return AGENT_REFUSALS.budget(limits.maxTokensPerRun);
535
+ if (runDepth(ctx) >= limits.maxDepth)
536
+ return texts.depthLimit(limits.maxDepth);
537
+ // 0: no limit (the deployment config or the org's override)
538
+ if (limits.maxTokensPerRun > 0 && Number(tokensUsed) >= limits.maxTokensPerRun) {
539
+ return texts.budget(limits.maxTokensPerRun);
485
540
  }
486
- const counts = await t
487
- .selectFrom("subagent_dispatches as sd")
488
- .innerJoin("runs as cr", "cr.id", "sd.child_run_id")
489
- .select([
490
- sql `count(*)`.as("total"),
491
- sql `count(*) FILTER (WHERE cr.status IN (${sql.join(ACTIVE_RUN_STATUSES)}))`.as("active"),
492
- ])
493
- .where("sd.parent_run_id", "=", ctx.runId)
494
- .executeTakeFirstOrThrow();
495
- if (Number(counts.total) >= limits.maxDispatchesPerRun) {
496
- return AGENT_REFUSALS.tooManyDispatches(limits.maxDispatchesPerRun);
541
+ if (limits.maxDispatchesPerRun > 0) {
542
+ const total = await t
543
+ .selectFrom("subagent_dispatches")
544
+ .select(sql `count(*)`.as("n"))
545
+ .where("budget_run_id", "=", budgetRunId)
546
+ .executeTakeFirstOrThrow();
547
+ if (Number(total.n) >= limits.maxDispatchesPerRun) {
548
+ return texts.tooManyDispatches(limits.maxDispatchesPerRun);
549
+ }
497
550
  }
498
- if (Number(counts.active) >= limits.maxConcurrentPerRun) {
499
- return AGENT_REFUSALS.tooManyConcurrent(limits.maxConcurrentPerRun);
551
+ // every child conversation with an active run of any origin: a dispatch, a message it never
552
+ // absorbed (a continuation run) or a wake run all hold its slot
553
+ const active = await t
554
+ .selectFrom("conversations as c")
555
+ .select(sql `count(*)`.as("n"))
556
+ .where("c.parent_conversation_id", "=", ctx.conversationId)
557
+ .where("c.kind", "=", "subagent")
558
+ .where("c.deleted_at", "is", null)
559
+ .where(({ exists, selectFrom }) => exists(selectFrom("runs as cr")
560
+ .select(sql `1`.as("one"))
561
+ .whereRef("cr.conversation_id", "=", "c.id")
562
+ .where("cr.status", "in", ACTIVE_RUN_STATUSES)))
563
+ .executeTakeFirstOrThrow();
564
+ if (Number(active.n) >= limits.maxConcurrentPerConversation) {
565
+ return texts.tooManyConcurrent(limits.maxConcurrentPerConversation);
500
566
  }
501
567
  return null;
502
568
  }