@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,25 +1,54 @@
1
- import { ToolError, validateInputForm, validateToolDisplay, } from "@capybara-hq/plugin-sdk";
2
- import { normalizeStoredDefinition } from "../agents/definition.js";
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { parseToolKey, ToolError, validateInputForm, validateToolDisplay, } from "@capybara-hq/plugin-sdk";
11
+ import { Inject, Injectable, Optional } from "@nestjs/common";
12
+ import { EventLog } from "../conversations/event-log.js";
3
13
  import { ToolViewSchema } from "../conversations/events.js";
14
+ import { ApiError } from "../errors.js";
15
+ import { EffectiveConfigs, NEEDS_CONFIG_REASON } from "../extensions/effective-config.js";
4
16
  import { clipText } from "../extensions/hooks.js";
17
+ import { ExtensionHost } from "../extensions/host.js";
5
18
  import { ExtensionUnloadedError, PLUGIN_UNLOADED_TOOL_ERROR } from "../extensions/inflight.js";
6
19
  import { audit } from "../identity/audit.js";
20
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
21
+ import { KernelDb } from "../infra/database/kernel-db.js";
22
+ import { TransactionHost } from "../infra/database/transaction-host.js";
23
+ import { Transactional } from "../infra/database/transactional.decorator.js";
24
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
7
25
  import { UNKNOWN_RESULT_TEXT } from "../runtime/context/pairing.js";
8
26
  import { fireObserve, hookDeniedAudit, hookDeniedEvent, hookScope, } from "../runtime/hook-calls.js";
9
- import { subagentsWaitId, subagentWaitingIdemKey, } from "../runtime/loop.js";
27
+ import { subagentWaitingIdemKey } from "../runtime/loop.js";
10
28
  import { assistantIdemKey, MAX_MODEL_ATTEMPTS, modelCallIdemKey } from "../runtime/model-call.js";
11
- import { TERMINAL_STATUSES } from "../runtime/run-finish.js";
12
- import { childResult, dispatchOfCall, finishedEvent, } from "../runtime/subagents/child.js";
13
- import { forkSeqOfCall, pairStoppedForks } from "../runtime/subagents/skill-fork.js";
29
+ import { rootSurfaceOf } from "../runtime/subagents/child.js";
30
+ import { SubagentMessages } from "../runtime/subagents/messages.js";
31
+ import { pairStoppedForks } from "../runtime/subagents/skill-fork.js";
32
+ import { SubagentsService } from "../runtime/subagents/subagents.service.js";
14
33
  import { skillLoadOfferedIn } from "../skills/catalog.js";
15
- import { breakerOpenMessage } from "./breaker.js";
16
- import { AGENT_STOPPED_WITH_RUN_TEXT, AGENT_TOOL, AgentToolInput, } from "./builtins/agent.js";
34
+ import { ApprovalsService } from "./approvals.service.js";
35
+ import { Breaker, breakerOpenMessage } from "./breaker.js";
36
+ import { SEND_MESSAGE, SUBAGENT_HANDBACK, TOOL_SEARCH } from "./builtin-names.js";
37
+ import { AGENT_TOOL, AgentToolInput } from "./builtins/agent.js";
38
+ import { HandbackInput } from "./builtins/handback.js";
39
+ import { SendMessageInput } from "./builtins/send-message.js";
17
40
  import { isAlwaysLoaded, notLoadedText } from "./builtins/tool-search.js";
18
- import { CredentialMissing } from "./credentials.js";
41
+ import { canonicalJson } from "./canonical-json.js";
42
+ import { CredentialMissing, Credentials } from "./credentials.js";
43
+ import { ToolDrift } from "./drift.js";
19
44
  import { ElicitationSession } from "./elicitation.js";
20
- import { renderResult, resolveOutputRefs, spillIfLarge } from "./outputs.js";
45
+ import { legacyHint, legacyToolInput, legacyToolKey } from "./legacy-keys.js";
46
+ import { OrgToolSwitches, toolTurnedOffReason } from "./org-tool-switches.js";
47
+ import { renderResult, resolveOutputRefs, spillIfLarge, ToolOutputs } from "./outputs.js";
21
48
  import { createDecidePolicy } from "./policy.js";
49
+ import { QuestionsService } from "./questions.service.js";
22
50
  import { redactDeep, redactorFor } from "./redact.js";
51
+ import { ToolRegistry, } from "./registry.js";
23
52
  import { runResourceTool } from "./resources.js";
24
53
  import { validateInput } from "./validate.js";
25
54
  // ---- 模型可见文案(英文) ----
@@ -45,10 +74,27 @@ export const RUN_STOPPED_TEXT = "The run was stopped before this tool call was e
45
74
  export const RUN_STOPPED_DURING_TEXT = "The run was stopped while this tool call was running; its outcome is unknown. Verify before retrying.";
46
75
  const timeoutText = (key, ms) => `Tool ${key} timed out after ${ms / 1000}s. The operation may or may not have completed; verify before retrying.`;
47
76
  const failedText = (key, errName) => `Tool ${key} failed (${errName}). The operation may not have completed; check before retrying or try another approach.`;
48
- const unknownToolText = (name, keys, toolSearch) => `Unknown tool "${name}". Available tools: ${keys.length === 0 ? "(none)" : keys.join(", ")}.` +
49
- (toolSearch ? " Use tool_search to load other tools." : "");
77
+ /** The connector slugs and extension names among the run's tools (to read old `<x>__<tool>` keys). */
78
+ const legacyScopeOf = (tools) => {
79
+ const connectorSlugs = new Set();
80
+ const extensionNames = new Set();
81
+ for (const t of tools) {
82
+ const p = parseToolKey(t.key);
83
+ if (p?.kind === "connector")
84
+ connectorSlugs.add(p.slug);
85
+ else if (p?.kind === "extension")
86
+ extensionNames.add(p.plugin);
87
+ }
88
+ return { connectorSlugs, extensionNames };
89
+ };
90
+ const unknownToolText = (name, keys, toolSearch, hint = null) => `Unknown tool "${name}". Available tools: ${keys.length === 0 ? "(none)" : keys.join(", ")}.` +
91
+ (toolSearch ? " Use ToolSearch to load other tools." : "") +
92
+ (hint === null ? "" : ` ${hint}`);
50
93
  const unavailableText = (name, reason) => `Tool "${name}" is unavailable: ${reason}.`;
51
- const deniedText = (key) => `Tool ${key} is denied by policy.`;
94
+ /** With a per-call policy key (`Platform:<operation>`), the text names it. */
95
+ const deniedText = (key, policyKey) => policyKey === undefined || policyKey === key
96
+ ? `Tool ${key} is denied by policy.`
97
+ : `Tool ${key} is denied by policy for ${policyKey}.`;
52
98
  /** Longest hook reason quoted in {@link hookDeniedText}. */
53
99
  const HOOK_REASON_MAX = 500;
54
100
  /**
@@ -60,22 +106,8 @@ const invalidFormText = (key, problems) => `Tool ${key} returned an invalid inpu
60
106
  const stateTooLargeText = (key) => `Tool ${key} returned input state larger than ${MAX_INPUT_STATE_BYTES / 1024} KB.`;
61
107
  const personalMissingText = (connectorName) => `The user has not connected ${connectorName}. A connect card was shown; ask the user to connect, then retry.`;
62
108
  const orgMissingText = (connectorName) => `${connectorName} has no organization credential configured; ask an organization admin to set it up.`;
63
- /** `runCall` dispatched a sub-agent: the call stays open until the child run finishes. */
64
- const OPEN = "open";
65
- /**
66
- * The wait of a step whose sub-agents still run (spec §7.2): id `sa-<runId>-<step>`, expiring after
67
- * the approval timeout plus one run's duration plus 10 minutes (a child may itself wait for an
68
- * approval); the timeout is a safety net.
69
- */
70
- export function subagentsWait(runId, step, config, now = Date.now()) {
71
- const ms = config.tools.approvalTimeoutHours * 3_600_000 + config.runtime.maxRunSeconds * 1000 + 600_000;
72
- return {
73
- kind: "subagents",
74
- id: subagentsWaitId(runId, step),
75
- expiresAt: new Date(now + ms).toISOString(),
76
- step,
77
- };
78
- }
109
+ /** Optional provider: the pipeline's {@link ToolPipelineHooks} (tests). */
110
+ export const TOOL_PIPELINE_HOOKS = Symbol("TOOL_PIPELINE_HOOKS");
79
111
  const approvalAuthorization = (a) => ({
80
112
  approvalId: a.id,
81
113
  approvedByAccountId: a.decidedBy,
@@ -143,12 +175,52 @@ const inputWait = (q) => ({
143
175
  *
144
176
  * 有副作用不盲目重跑(spec 4.3):执行前写 `tool_call_started`;续跑时「有开始无结果」的调用记为结果未知,不再执行。
145
177
  */
146
- export class ToolPipeline {
147
- deps;
178
+ let ToolPipeline = class ToolPipeline {
179
+ config;
180
+ txHost;
148
181
  decide;
149
- constructor(deps) {
150
- this.deps = deps;
151
- this.decide = deps.decidePolicy ?? createDecidePolicy(deps.db);
182
+ deps;
183
+ constructor(kdb, eventLog,
184
+ /** The `Agent` tool's sub-agent dispatch; absent (tests): `Agent` calls are refused. */
185
+ subagents,
186
+ /** The message tools between agents; absent (tests): their calls are refused. */
187
+ messages, registry, credentials, breaker, outputs, approvals, questions, config, log,
188
+ /** Plugin hooks and inline ui contributions; absent (tests): no hooks, cards dropped. */
189
+ host, drift, effective, switches, txHost, hooks) {
190
+ this.config = config;
191
+ this.txHost = txHost;
192
+ this.deps = {
193
+ get db() {
194
+ return kdb.db;
195
+ },
196
+ eventLog,
197
+ registry,
198
+ credentials,
199
+ breaker,
200
+ outputs,
201
+ approvals,
202
+ questions,
203
+ log,
204
+ hooks,
205
+ get pluginHooks() {
206
+ return host?.hooks;
207
+ },
208
+ effective,
209
+ switches,
210
+ inlineViews: (plugin) => new Set((host?.current(plugin)?.manifest.ui ?? [])
211
+ .filter((c) => c.place === "inline" && c.aliasOf === undefined)
212
+ .map((c) => c.id)),
213
+ onToolsChanged: (orgId, connectorId) => {
214
+ void drift?.onToolsChanged(orgId, connectorId);
215
+ },
216
+ get subagents() {
217
+ return subagents ? { dispatch: (a) => subagents.dispatch(a) } : undefined;
218
+ },
219
+ messages,
220
+ };
221
+ const decide = hooks?.decidePolicy;
222
+ // the default policy reads live, on the context's handle
223
+ this.decide = decide ?? ((tool, def, c) => createDecidePolicy(kdb.db)(tool, def, c));
152
224
  }
153
225
  /**
154
226
  * tools 节点:按顺序处理本步 assistant 消息里的全部 `tool_call`,每个调用都以一条 `tool_result` 结束
@@ -168,318 +240,43 @@ export class ToolPipeline {
168
240
  // 每步实时解析(连接器 / 插件状态可能在模型调用之后变化)
169
241
  if (!resolved) {
170
242
  // the request builder's rule: a skills catalog snapshot (even an empty one) or a person's
171
- // skill invocation in the log → skill_load is offered (see skillLoadOffered)
243
+ // skill invocation in the log → Skill is offered (see skillLoadOffered)
172
244
  const skillLoad = await skillLoadOfferedIn(this.deps.db, this.deps.eventLog, ctx.conversationId);
173
245
  resolved = await this.deps.registry.forAgent(ctx.orgId, {
174
- tools: ctx.agent.tools ?? [],
246
+ disabledTools: ctx.agent.disabledTools,
247
+ subagentTools: ctx.agent.subagentTools,
175
248
  skillLoad,
176
249
  subagents: ctx.agent.subagents,
250
+ child: ctx.parent !== undefined,
251
+ forkChild: ctx.parent?.forSkill === true,
252
+ sandboxConversationId: ctx.parent?.rootConversationId ?? ctx.conversationId,
253
+ replay: ctx.conversationKind === "eval",
177
254
  });
178
255
  }
179
256
  return resolved;
180
257
  };
181
- // `agent` calls whose sub-agent still runs (spec §7.1): a dispatch never blocks later calls;
182
- // once every call was handled, the step waits for them
183
- let open = 0;
258
+ // an `Agent` call's dispatch writes its result (the sub-agent runs in the background, agent
259
+ // map spec §4.1), so no call keeps the step waiting on a sub-agent
184
260
  for (const call of calls) {
185
261
  if (await eventLog.findByIdem(ctx.conversationId, idem.result(ctx.runId, call.id)))
186
262
  continue;
187
- if (call.name === AGENT_TOOL) {
188
- const row = await dispatchOfCall(this.deps.db, ctx.runId, call.id);
189
- if (row) {
190
- if (!(await this.finishAgentCall(ctx, row, call, resolve)))
191
- open++;
192
- continue;
193
- }
194
- }
195
263
  const waitingFor = await this.processCall(ctx, call, resolve);
196
- if (waitingFor === OPEN)
197
- open++;
198
- else if (waitingFor)
264
+ if (waitingFor)
199
265
  return { kind: "suspended", waitingFor };
200
266
  }
201
- if (open > 0) {
202
- // the run is being stopped (a person, its deadline): it does not wait for its sub-agents;
203
- // their calls get their results now, and the children are stopped after the run's terminal
204
- // commit (spec §12)
205
- if (ctx.signal.aborted) {
206
- const stopped = await this.deps.db
207
- .transaction()
208
- .execute((t) => this.stopOpenAgentCalls(t, ctx.runId, ctx.agent));
209
- if (stopped.toSeq !== null) {
210
- await eventLog.notify(ctx.conversationId, stopped.toSeq);
211
- }
212
- stopped.fire();
213
- return { kind: "done" };
214
- }
215
- return {
216
- kind: "suspended",
217
- waitingFor: subagentsWait(ctx.runId, ctx.step, this.deps.config()),
218
- };
219
- }
220
267
  return { kind: "done" };
221
268
  }
222
269
  /**
223
- * An `agent` call that was dispatched (spec §7.1 "already dispatched"): when its child run is
224
- * terminal, writes the parent's `subagent_finished` (if the child's finisher did not) and the
225
- * call's `tool_result` from the child's log, and returns true; else false (still open).
226
- *
227
- * The call ran like any tool, so the result is audited `tool.called` (duration = the child's;
228
- * the authorization is known only when an approval let it run: a policy or remembered grant at
229
- * dispatch time is not recorded, so nothing is guessed) and fires `tool.postExecute` with the
230
- * result, from the replica that writes it (spec §11).
231
- */
232
- async finishAgentCall(ctx, row, call, resolve) {
233
- const modelGiven = typeof call.input === "object" &&
234
- call.input !== null &&
235
- call.input.model !== undefined;
236
- const r = await childResult(this.deps.eventLog, row, { modelGiven });
237
- if (!r)
238
- return false;
239
- // No spec-hash check as in processCall: an `agent` call writes no tool_call_started holding
240
- // the executed definition's hash, and its description changes with the roster and limits
241
- // while the child runs. The call's approval (forCall: its latest) is by construction the one
242
- // that let this dispatch start, since a dispatch happens only after an approved decision.
243
- const approval = await this.deps.approvals.forCall(ctx.runId, call.id);
244
- await this.writeResult(ctx, row.parentCallId, AGENT_TOOL, { content: r.content, isError: r.isError }, [finishedEvent(row, r.finished)], {
245
- durationMs: r.finished.durationMs,
246
- connectorId: null,
247
- ...(approval?.status === "approved" && {
248
- authorization: approvalAuthorization(approval),
249
- }),
250
- });
251
- const hooks = this.deps.pluginHooks;
252
- const scope = hookScope(hooks, ctx);
253
- if (hooks && scope && hooks.has("tool.postExecute")) {
254
- const tool = (await resolve()).tools.find((t) => t.key === AGENT_TOOL);
255
- if (tool) {
256
- fireObserve(hooks, "tool.postExecute", {
257
- ...scope,
258
- step: ctx.step,
259
- callId: call.id,
260
- toolKey: AGENT_TOOL,
261
- specHash: tool.specHash,
262
- input: call.input,
263
- isError: r.isError,
264
- content: r.content,
265
- durationMs: r.finished.durationMs,
266
- }, ctx.signal, this.deps.log);
267
- }
268
- }
269
- return true;
270
- }
271
- /**
272
- * Writes, in `t`, the `tool_result` of every open `agent` call of a run that is being stopped
273
- * (sub-agents spec §12: a person stopped it while it waited on sub-agents, or its deadline or a
274
- * stop hit its tools node after a dispatch). A call whose child already ended gets the child's
275
- * result (and the missing `subagent_finished`); one whose child is still active gets
276
- * {@link AGENT_STOPPED_WITH_RUN_TEXT}. The caller stops those children after its commit.
277
- *
278
- * Like every `agent` result (see {@link finishAgentCall}), each is audited `tool.called` in `t`
279
- * (duration: the child's, or the time since the dispatch) and fires `tool.postExecute`, through
280
- * `fire()`, which the caller runs after its commit. Returns the steps and calls written (the
281
- * caller must not write a "not executed" result for them) and the highest seq written.
270
+ * Writes, in the caller's transaction (`mandatory`), what a run that is being stopped (a person,
271
+ * its deadline, a failure, the wait sweep) still owes its log: the report of its fork invocation
272
+ * (phase D, `pairStoppedForks`; a still active fork child is stopped by the caller after its
273
+ * commit). An `Agent` call has its result from its dispatch (agent map spec §4.1), so there is
274
+ * nothing to write for it. Returns the fork's call id (the caller must not write a "not executed"
275
+ * result for it), the highest seq written, and `fire`, a no-op kept for the callers' hook phase.
282
276
  */
283
- async stopOpenAgentCalls(t, runId, agent) {
284
- // phase D: the run's fork invocation without a report gets one (a fork has no tool call)
285
- const forks = await pairStoppedForks(t, this.deps.eventLog, runId);
286
- const none = {
287
- steps: [],
288
- callIds: new Set(forks.callIds),
289
- toSeq: forks.toSeq,
290
- fire: () => { },
291
- };
292
- const all = await t
293
- .selectFrom("subagent_dispatches")
294
- .select([
295
- "parent_run_id",
296
- "parent_call_id",
297
- "parent_conversation_id",
298
- "child_conversation_id",
299
- "child_run_id",
300
- "step",
301
- "created_at",
302
- ])
303
- .where("parent_run_id", "=", runId)
304
- .orderBy("step")
305
- .orderBy("created_at")
306
- .execute();
307
- const dispatches = all.filter((d) => forkSeqOfCall(d.parent_call_id, d.step) === null);
308
- if (dispatches.length === 0)
309
- return none;
310
- const run = await t
311
- .selectFrom("runs as r")
312
- .innerJoin("conversations as c", "c.id", "r.conversation_id")
313
- .select([
314
- "r.conversation_id",
315
- "r.trigger_account_id",
316
- "r.agent_version",
317
- "c.org_id",
318
- "c.agent_id",
319
- "c.kind",
320
- ])
321
- .where("r.id", "=", runId)
322
- .executeTakeFirst();
323
- if (!run)
324
- return none;
325
- const conversationId = run.conversation_id;
326
- const inputs = new Map();
327
- const events = [];
328
- const calls = [];
329
- for (const d of dispatches) {
330
- const written = await t
331
- .selectFrom("conversation_events")
332
- .select("seq")
333
- .where("conversation_id", "=", conversationId)
334
- .where("idem_key", "=", idem.result(runId, d.parent_call_id))
335
- .executeTakeFirst();
336
- if (written)
337
- continue;
338
- if (!inputs.has(`step:${d.step}`)) {
339
- inputs.set(`step:${d.step}`, true);
340
- const msg = await t
341
- .selectFrom("conversation_events")
342
- .select("payload")
343
- .where("conversation_id", "=", conversationId)
344
- .where("idem_key", "=", assistantIdemKey(runId, d.step))
345
- .executeTakeFirst();
346
- const content = msg?.payload?.content ?? [];
347
- for (const b of content) {
348
- if (b.type === "tool_call" && b.id !== undefined)
349
- inputs.set(b.id, b.input);
350
- }
351
- }
352
- const input = inputs.get(d.parent_call_id);
353
- const row = {
354
- parentRunId: d.parent_run_id,
355
- parentCallId: d.parent_call_id,
356
- parentConversationId: d.parent_conversation_id,
357
- childConversationId: d.child_conversation_id,
358
- childRunId: d.child_run_id,
359
- };
360
- const child = await t
361
- .selectFrom("runs")
362
- .select("status")
363
- .where("id", "=", d.child_run_id)
364
- .executeTakeFirst();
365
- // a child that already ended keeps its own result (its log is committed)
366
- const ended = child !== undefined && TERMINAL_STATUSES.has(child.status)
367
- ? await childResult(this.deps.eventLog, row, {
368
- modelGiven: typeof input === "object" &&
369
- input !== null &&
370
- input.model !== undefined,
371
- })
372
- : null;
373
- if (ended)
374
- events.push(finishedEvent(row, ended.finished));
375
- const r = ended
376
- ? { content: ended.content, isError: ended.isError, durationMs: ended.finished.durationMs }
377
- : {
378
- content: AGENT_STOPPED_WITH_RUN_TEXT,
379
- isError: true,
380
- durationMs: Math.max(0, Date.now() - new Date(d.created_at).getTime()),
381
- };
382
- events.push({
383
- type: "tool_result",
384
- runId,
385
- idemKey: idem.result(runId, d.parent_call_id),
386
- payload: {
387
- step: d.step,
388
- callId: d.parent_call_id,
389
- toolKey: AGENT_TOOL,
390
- content: r.content,
391
- isError: r.isError,
392
- },
393
- });
394
- calls.push({ step: d.step, callId: d.parent_call_id, input, r });
395
- }
396
- if (calls.length === 0)
397
- return none;
398
- const written = await this.deps.eventLog.append(conversationId, events, t);
399
- for (const c of calls) {
400
- const approval = await t
401
- .selectFrom("approvals")
402
- .select(["id", "status", "decided_by", "scope"])
403
- .where("run_id", "=", runId)
404
- .where("call_id", "=", c.callId)
405
- .orderBy("attempt", "desc")
406
- .limit(1)
407
- .executeTakeFirst();
408
- await audit(t, {
409
- actorAccountId: run.trigger_account_id,
410
- orgId: run.org_id,
411
- action: "tool.called",
412
- target: conversationId,
413
- detail: {
414
- toolKey: AGENT_TOOL,
415
- isError: c.r.isError,
416
- durationMs: c.r.durationMs,
417
- agentId: run.agent_id,
418
- agentVersion: run.agent_version,
419
- conversationId,
420
- runId,
421
- callId: c.callId,
422
- ...(approval?.status === "approved" && {
423
- approvalId: approval.id,
424
- approvedByAccountId: approval.decided_by,
425
- scope: approval.scope,
426
- }),
427
- },
428
- });
429
- }
430
- const fire = () => {
431
- const hooks = this.deps.pluginHooks;
432
- const scope = hookScope(hooks, {
433
- conversationKind: run.kind,
434
- orgId: run.org_id,
435
- accountId: run.trigger_account_id,
436
- agentId: run.agent_id,
437
- agentVersion: run.agent_version,
438
- conversationId,
439
- runId,
440
- });
441
- if (!hooks || !scope || !hooks.has("tool.postExecute"))
442
- return;
443
- void (async () => {
444
- const def = agent ??
445
- normalizeStoredDefinition((await this.deps.db
446
- .selectFrom("agent_versions")
447
- .select("definition")
448
- .where("agent_id", "=", run.agent_id)
449
- .where("version", "=", run.agent_version)
450
- .executeTakeFirstOrThrow()).definition);
451
- const skillLoad = await skillLoadOfferedIn(this.deps.db, this.deps.eventLog, conversationId);
452
- const resolved = await this.deps.registry.forAgent(run.org_id, {
453
- tools: def.tools ?? [],
454
- skillLoad,
455
- subagents: def.subagents,
456
- });
457
- const tool = resolved.tools.find((x) => x.key === AGENT_TOOL);
458
- if (!tool)
459
- return;
460
- // the run is over: nothing aborts these observe hooks but their own timeouts
461
- const signal = new AbortController().signal;
462
- for (const c of calls) {
463
- fireObserve(hooks, "tool.postExecute", {
464
- ...scope,
465
- step: c.step,
466
- callId: c.callId,
467
- toolKey: AGENT_TOOL,
468
- specHash: tool.specHash,
469
- input: c.input,
470
- isError: c.r.isError,
471
- content: c.r.content,
472
- durationMs: c.r.durationMs,
473
- }, signal, this.deps.log);
474
- }
475
- })().catch((err) => this.deps.log.warn("cannot fire tool.postExecute for stopped agent calls", { runId, err }));
476
- };
477
- return {
478
- steps: [...new Set(calls.map((c) => c.step))],
479
- callIds: new Set([...forks.callIds, ...calls.map((c) => c.callId)]),
480
- toSeq: Math.max(forks.toSeq ?? 0, ...written.map((e) => e.seq)),
481
- fire,
482
- };
277
+ async stopOpenAgentCalls(runId) {
278
+ const forks = await pairStoppedForks(this.deps.db, this.deps.eventLog, runId);
279
+ return { steps: [], callIds: new Set(forks.callIds), toSeq: forks.toSeq, fire: () => { } };
483
280
  }
484
281
  /**
485
282
  * 处理一个尚无结果的调用。先看输入请求的轮次:最近一轮仍 pending → 继续等;否则本次是第
@@ -529,36 +326,49 @@ export class ToolPipeline {
529
326
  await this.writeResult(ctx, call.id, key, { content, isError: true });
530
327
  return undefined;
531
328
  };
532
- const tool = resolved.tools.find((t) => t.key === call.name);
329
+ let tool = resolved.tools.find((t) => t.key === call.name);
330
+ // A call logged before the tool keys were renamed (spec 8.1): the request that issued it offered
331
+ // the old key. It runs as the current tool with translated input; the result keeps the logged key.
332
+ let legacy = false;
333
+ if (!tool) {
334
+ const next = legacyToolKey(call.name, legacyScopeOf(resolved.tools));
335
+ const current = next === null ? undefined : resolved.tools.find((t) => t.key === next);
336
+ if (current && (await this.requestToolKeys(ctx))?.has(call.name) === true) {
337
+ tool = current;
338
+ legacy = true;
339
+ }
340
+ }
533
341
  if (!tool) {
534
342
  const why = resolved.unavailable.find((u) => u.ref === call.name) ??
535
343
  resolved.hidden?.find((u) => u.ref === call.name);
536
344
  if (why)
537
345
  return fail(unavailableText(call.name, why.reason));
538
346
  let keys = resolved.tools.map((t) => t.key);
539
- // tool_search 模式:目录可能很大,只列内置工具与发出本次调用的请求里带了定义的工具
347
+ // ToolSearch 模式:目录可能很大,只列内置工具与发出本次调用的请求里带了定义的工具
540
348
  if (resolved.toolSearch === true) {
541
349
  const sent = await this.sentTools(ctx);
542
350
  if (sent !== null)
543
351
  keys = keys.filter((k) => isAlwaysLoaded(k) || sent.has(k));
544
352
  }
545
353
  keys.sort();
546
- return fail(unknownToolText(call.name, keys, keys.includes("tool_search")));
354
+ return fail(unknownToolText(call.name, keys, keys.includes(TOOL_SEARCH), legacyHint(call.name)));
547
355
  }
548
- // tool_search 模式下,模型只能调用请求里带了完整定义的工具:目录里有、但发出本次调用的请求没加载 →
549
- // 明确错误,不自动加载(spec 5.5 / 6.3)。同一步里先 tool_search 再调用刚加载的工具同样报错。
550
- if (resolved.toolSearch === true && !isAlwaysLoaded(tool.key)) {
356
+ const outKey = legacy ? call.name : tool.key;
357
+ // ToolSearch 模式下,模型只能调用请求里带了完整定义的工具:目录里有、但发出本次调用的请求没加载 →
358
+ // 明确错误,不自动加载(spec 5.5 / 6.3)。同一步里先 ToolSearch 再调用刚加载的工具同样报错。
359
+ if (!legacy && resolved.toolSearch === true && !isAlwaysLoaded(tool.key)) {
551
360
  const sent = await this.sentTools(ctx);
552
361
  if (sent !== null && !sent.has(tool.key))
553
- return fail(notLoadedText(tool.key), tool.key);
362
+ return fail(notLoadedText(tool.key), outKey);
554
363
  }
364
+ const rawInput = legacy ? legacyToolInput(call.name, call.input) : call.input;
555
365
  let input;
556
366
  try {
557
- input = await resolveOutputRefs(call.input, (id) => this.deps.outputs.load({ orgId: ctx.orgId, conversationId: ctx.conversationId }, id));
367
+ input = await resolveOutputRefs(rawInput, (id) => this.deps.outputs.load({ orgId: ctx.orgId, conversationId: ctx.conversationId }, id));
558
368
  }
559
369
  catch (e) {
560
370
  if (e instanceof ToolError)
561
- return fail(e.message, tool.key);
371
+ return fail(e.message, outKey);
562
372
  throw e;
563
373
  }
564
374
  // 连接器工具的 schema 来自连接器(不受信任):去掉有风险的关键字并限制大小 / 层数
@@ -567,7 +377,23 @@ export class ToolPipeline {
567
377
  log: this.deps.log,
568
378
  });
569
379
  if (invalid !== null)
570
- return fail(invalid, tool.key);
380
+ return fail(invalid, outKey);
381
+ // the per-call policy key (Platform tool spec §6.2): key and summary come from the resolved
382
+ // input, while the approval binding below compares the raw call.input
383
+ const callPolicy = (await tool.callPolicy?.(input, {
384
+ orgId: ctx.orgId,
385
+ accountId: ctx.accountId,
386
+ agentId: ctx.agentId,
387
+ conversationId: ctx.conversationId,
388
+ runId: ctx.runId,
389
+ rawInput,
390
+ signal: ctx.signal,
391
+ })) ?? null;
392
+ // a deny with a reason (e.g. an unavailable operation): the reason is the tool error
393
+ if (callPolicy?.policy === "deny" && callPolicy.denyReason !== undefined) {
394
+ return fail(callPolicy.denyReason, outKey);
395
+ }
396
+ const policyKey = callPolicy?.key ?? tool.key;
571
397
  const decision = await this.decide(tool, ctx.agent, {
572
398
  orgId: ctx.orgId,
573
399
  accountId: ctx.accountId,
@@ -576,19 +402,29 @@ export class ToolPipeline {
576
402
  runId: ctx.runId,
577
403
  ...(ctx.parent !== undefined && {
578
404
  parentConversationId: ctx.parent.conversationId,
405
+ rootConversationId: ctx.parent.rootConversationId,
579
406
  ...(ctx.parent.otherAgent !== undefined && { parentAgentDiffers: ctx.parent.otherAgent }),
580
407
  }),
408
+ callPolicy,
581
409
  });
582
410
  if (decision === "deny")
583
- return fail(deniedText(tool.key), tool.key);
411
+ return fail(deniedText(tool.key, callPolicy?.key), outKey);
584
412
  if (typeof decision === "object" && "unavailable" in decision) {
585
- return fail(unavailableText(tool.key, decision.unavailable), tool.key);
413
+ return fail(unavailableText(tool.key, decision.unavailable), outKey);
586
414
  }
587
415
  // 该调用已有审批(续跑)→ 按审批结果;没有且策略为 ask → 建审批并等待
588
416
  // (不写 tool_call_started:此时尚未开始执行)。
589
417
  let approval = await this.deps.approvals.forCall(ctx.runId, call.id);
590
418
  // 批准的是旧定义(等待期间工具定义变了):原批准不适用于当前定义,策略仍需审批时按新定义重新审批。
591
- const stale = approval?.status === "approved" && approval.specHash !== tool.specHash;
419
+ // An in-flight rc call (spec §9) is the exception: its approval was asked under the rc definition
420
+ // of the same call, and the rename changed every builtin's definition; the person approved this
421
+ // very call, so the approval stands.
422
+ // An approval binds the exact input it showed (Platform tool spec §6.3): an approved record
423
+ // whose stored input differs from the call's is not used.
424
+ const approvedHere = approval?.status === "approved" &&
425
+ (legacy || approval.specHash === tool.specHash) &&
426
+ canonicalJson(approval.input) === canonicalJson(call.input ?? {});
427
+ const stale = approval?.status === "approved" && !approvedHere;
592
428
  if ((!approval || stale) && typeof decision === "object" && "ask" in decision) {
593
429
  approval = await this.deps.approvals.request({
594
430
  attempt: (approval?.attempt ?? 0) + 1,
@@ -597,21 +433,23 @@ export class ToolPipeline {
597
433
  runId: ctx.runId,
598
434
  step: ctx.step,
599
435
  callId: call.id,
600
- toolKey: tool.key,
436
+ toolKey: policyKey,
601
437
  specHash: decision.ask.specHash,
602
438
  connectorId: decision.ask.connectorId,
603
439
  input: call.input,
604
440
  requestedFor: decision.ask.requestedFor,
605
441
  approverRole: decision.ask.approverRole,
606
442
  policy: decision.ask.policy,
443
+ ...(callPolicy?.summary !== undefined && { summary: callPolicy.summary }),
444
+ ...(callPolicy !== null && !callPolicy.remember && { scopes: ["once"] }),
607
445
  });
608
446
  }
609
447
  if (approval && approval.status !== "approved") {
610
448
  const refused = this.refusalText(approval);
611
- return refused === null ? approvalWait(approval) : fail(refused, tool.key);
449
+ return refused === null ? approvalWait(approval) : fail(refused, outKey);
612
450
  }
613
451
  // 走到这里即放行:在(与当前定义一致的)审批下执行,否则是授权或策略放行
614
- const authorization = approval?.status === "approved" && approval.specHash === tool.specHash
452
+ const authorization = approval?.status === "approved" && approvedHere
615
453
  ? approvalAuthorization(approval)
616
454
  : typeof decision === "object" && "grant" in decision
617
455
  ? { grant: decision.grant }
@@ -626,7 +464,7 @@ export class ToolPipeline {
626
464
  // written with the call's tool_result, so a call with a logged denial never runs again anyway.
627
465
  const prior = await this.deps.eventLog.findByIdem(ctx.conversationId, idem.hookDenied(ctx.runId, call.id));
628
466
  if (prior?.type === "hook_denied") {
629
- return fail(hookDeniedText(prior.payload.plugin, prior.payload.reason), tool.key);
467
+ return fail(hookDeniedText(prior.payload.plugin, prior.payload.reason), outKey);
630
468
  }
631
469
  }
632
470
  // payload only built when a tool hook is registered (zero overhead otherwise)
@@ -648,7 +486,7 @@ export class ToolPipeline {
648
486
  catch (e) {
649
487
  // run() rejects only when the run's signal aborted: an abort, never a deny
650
488
  if (ctx.signal.aborted)
651
- return fail(RUN_STOPPED_TEXT, tool.key);
489
+ return fail(RUN_STOPPED_TEXT, outKey);
652
490
  throw e;
653
491
  }
654
492
  if (!verdict.allowed) {
@@ -666,20 +504,76 @@ export class ToolPipeline {
666
504
  step: ctx.step,
667
505
  callId: call.id,
668
506
  });
669
- await this.writeResult(ctx, call.id, tool.key, { content: hookDeniedText(verdict.plugin, verdict.reason), isError: true }, [event], undefined, [hookDeniedAudit(site, event.payload, verdict)]);
507
+ await this.writeResult(ctx, call.id, outKey, { content: hookDeniedText(verdict.plugin, verdict.reason), isError: true }, [event], undefined, [hookDeniedAudit(site, event.payload, verdict)]);
670
508
  return undefined;
671
509
  }
672
510
  }
673
- // `agent` (sub-agents spec §7.1): no tool_call_started; the dispatch is made durable in one
674
- // transaction (its marker is the subagent_dispatches row) and the call stays open
511
+ // `Agent` (sub-agents spec §7.1, agent map spec §4.1): no tool_call_started; one transaction
512
+ // makes the dispatch durable (its marker is the subagent_dispatches row) and writes the call's
513
+ // immediate result, while the sub-agent runs in the background
675
514
  const dispatcher = this.deps.subagents;
676
515
  if (tool.source.kind === "builtin" && tool.key === AGENT_TOOL && dispatcher) {
677
516
  const parsed = AgentToolInput.safeParse(input);
678
517
  if (!parsed.success) {
679
- return fail("Invalid agent call: pass description and prompt, and optionally subagent_type, model or resume.", tool.key);
518
+ return fail("Invalid agent call: pass description and prompt, and optionally subagent_type and model.", outKey);
519
+ }
520
+ const r = await dispatcher.dispatch({
521
+ ctx,
522
+ callId: call.id,
523
+ input: parsed.data,
524
+ call: { toolKey: outKey, authorization, startedAt: Date.now() },
525
+ });
526
+ if (r.kind === "refused")
527
+ return fail(r.content, outKey);
528
+ if (hooks && hookBase) {
529
+ fireObserve(hooks, "tool.postExecute", {
530
+ ...hookBase,
531
+ isError: false,
532
+ content: r.content,
533
+ durationMs: 0,
534
+ }, ctx.signal, this.deps.log);
535
+ }
536
+ return undefined;
537
+ }
538
+ // `SendMessage` and `SubagentHandback` (agent map spec §4.2, §4.3): no tool_call_started; each
539
+ // write is idempotent by the call (the message in the sub-agent's log, the delivery in the
540
+ // parent's), so a call retried after a crash sends nothing twice. A send that starts an idle
541
+ // sub-agent writes its result with the dispatch, like `Agent`
542
+ const messenger = this.deps.messages;
543
+ if (tool.source.kind === "builtin" &&
544
+ (tool.key === SEND_MESSAGE || tool.key === SUBAGENT_HANDBACK) &&
545
+ messenger) {
546
+ const t0 = Date.now();
547
+ let r;
548
+ if (tool.key === SEND_MESSAGE) {
549
+ const parsed = SendMessageInput.safeParse(input);
550
+ if (!parsed.success) {
551
+ return fail("Invalid SendMessage call: pass to and message.", outKey);
552
+ }
553
+ r = await messenger.toChild(ctx, call.id, parsed.data.to, parsed.data.message, {
554
+ authorization,
555
+ });
556
+ }
557
+ else {
558
+ const parsed = HandbackInput.safeParse(input);
559
+ if (!parsed.success)
560
+ return fail("Invalid SubagentHandback call: pass message.", outKey);
561
+ r = await messenger.toParent(ctx, "report", parsed.data.message, call.id);
562
+ }
563
+ if (r.isError)
564
+ return fail(r.content, outKey);
565
+ const durationMs = Date.now() - t0;
566
+ if (r.logged !== true) {
567
+ await this.writeResult(ctx, call.id, outKey, { content: r.content, isError: false }, [], {
568
+ durationMs,
569
+ connectorId: null,
570
+ authorization,
571
+ });
572
+ }
573
+ if (hooks && hookBase) {
574
+ fireObserve(hooks, "tool.postExecute", { ...hookBase, isError: false, content: r.content, durationMs }, ctx.signal, this.deps.log);
680
575
  }
681
- const r = await dispatcher.dispatch({ ctx, callId: call.id, input: parsed.data });
682
- return r.kind === "refused" ? fail(r.content, tool.key) : OPEN;
576
+ return undefined;
683
577
  }
684
578
  await this.deps.eventLog.append(ctx.conversationId, [
685
579
  {
@@ -702,7 +596,7 @@ export class ToolPipeline {
702
596
  const rendered = outcome.kind === "result"
703
597
  ? renderResult(outcome.result)
704
598
  : { text: outcome.message, contentTypes: [], isError: true };
705
- // 内置工具(tool_search)报告的已加载工具:只认本步可用、非内置的 key,写进 tool_result(日志即事实源)
599
+ // 内置工具(ToolSearch)报告的已加载工具:只认本步可用、非内置的 key,写进 tool_result(日志即事实源)
706
600
  const loadedTools = outcome.kind === "result" && tool.source.kind === "builtin"
707
601
  ? loadedFrom(outcome.result, resolved.tools)
708
602
  : [];
@@ -719,7 +613,7 @@ export class ToolPipeline {
719
613
  const card = outcome.kind === "result" && tool.source.kind === "plugin"
720
614
  ? this.cardOf(outcome.result, tool.source.plugin, tool.key)
721
615
  : undefined;
722
- const cfg = this.deps.config().tools;
616
+ const cfg = this.config.get().tools;
723
617
  const spilled = await spillIfLarge(rendered.text, {
724
618
  // 内置工具可给更低的转存阈值(沙箱 bash 30000 字符)
725
619
  spillChars: Math.min(cfg.outputSpillChars, tool.spillChars ?? Number.POSITIVE_INFINITY),
@@ -746,7 +640,7 @@ export class ToolPipeline {
746
640
  },
747
641
  ]
748
642
  : [];
749
- await this.writeResult(ctx, call.id, tool.key, {
643
+ await this.writeResult(ctx, call.id, outKey, {
750
644
  content: spilled.content,
751
645
  isError: rendered.isError,
752
646
  ...(spilled.outputId !== undefined && { outputId: spilled.outputId }),
@@ -760,24 +654,11 @@ export class ToolPipeline {
760
654
  connectorId: tool.source.kind === "connector" ? tool.source.connectorId : null,
761
655
  authorization,
762
656
  });
763
- // a sub-agent that needs a personal connection: mirrored in the parent for display (spec §9;
764
- // not a wait, the child got the connect text as its result)
657
+ // a sub-agent that needs a personal connection: mirrored in the root conversation of its tree
658
+ // for display (sub-agents spec §9, agent map spec §7; not a wait, the child got the connect
659
+ // text as its result)
765
660
  if (outcome.kind === "connection_required" && ctx.parent !== undefined) {
766
- await this.deps.eventLog
767
- .append(ctx.parent.conversationId, [
768
- {
769
- type: "subagent_waiting",
770
- runId: ctx.parent.runId,
771
- idemKey: subagentWaitingIdemKey(ctx.runId, `connect-${call.id}`),
772
- payload: {
773
- subagentId: ctx.conversationId,
774
- childRunId: ctx.runId,
775
- kind: "connect",
776
- toolKey: tool.key,
777
- },
778
- },
779
- ])
780
- .catch((err) => this.deps.log.warn("cannot surface a sub-agent's connect card in its parent", {
661
+ await this.surfaceConnectInRoot(ctx, ctx.parent, call.id, tool.key).catch((err) => this.deps.log.warn("cannot surface a sub-agent's connect card in its root conversation", {
781
662
  runId: ctx.runId,
782
663
  err,
783
664
  }));
@@ -787,9 +668,44 @@ export class ToolPipeline {
787
668
  }
788
669
  return undefined;
789
670
  }
671
+ /** Appends a sub-agent's connect card to its root conversation ({@link rootSurfaceOf}). */
672
+ async surfaceConnectInRoot(ctx, parent, callId, toolKey) {
673
+ const target = await rootSurfaceOf(this.deps.db, ctx.conversationId, ctx.runId, parent);
674
+ if (!target)
675
+ return;
676
+ await this.deps.eventLog.append(target.conversationId, [
677
+ {
678
+ type: "subagent_waiting",
679
+ runId: target.runId,
680
+ idemKey: subagentWaitingIdemKey(ctx.runId, `connect-${callId}`),
681
+ payload: {
682
+ subagentId: ctx.conversationId,
683
+ childRunId: ctx.runId,
684
+ path: target.path,
685
+ kind: "connect",
686
+ toolKey,
687
+ },
688
+ },
689
+ ]);
690
+ }
691
+ /**
692
+ * Every tool key the request that issued this step's calls offered (`request.tools` plus the
693
+ * `catalog` keys), in any mode; null when its model_call is not found. Used to tell a call to an
694
+ * old key that was offered (in flight across the rename) from one that never was.
695
+ */
696
+ async requestToolKeys(ctx) {
697
+ for (let attempt = MAX_MODEL_ATTEMPTS; attempt >= 1; attempt--) {
698
+ const e = await this.deps.eventLog.findByIdem(ctx.conversationId, modelCallIdemKey(ctx.runId, ctx.step, attempt));
699
+ if (e?.type !== "model_call")
700
+ continue;
701
+ const { tools, catalog } = e.payload.request;
702
+ return new Set([...(tools ?? []), ...(catalog ?? [])].map((t) => t.key));
703
+ }
704
+ return null;
705
+ }
790
706
  /**
791
707
  * 发出本步调用的请求里带了完整定义的工具 key:本步最后一次尝试的 `model_call.request.tools`
792
- * (`assistant_message` 来自最后一次尝试)。该请求不在 tool_search 模式(没有 `catalog`,工具全部发送)
708
+ * (`assistant_message` 来自最后一次尝试)。该请求不在 ToolSearch 模式(没有 `catalog`,工具全部发送)
793
709
  * 或找不到 model_call 时返回 null(不做加载检查)。已加载集合由此从日志得出,不放进程内存。
794
710
  */
795
711
  async sentTools(ctx) {
@@ -863,7 +779,7 @@ export class ToolPipeline {
863
779
  const handler = this.deps.registry.handler(tool.source);
864
780
  if (!handler)
865
781
  return { kind: "error", message: `Tool ${tool.key} is no longer available.` };
866
- // 插件处理函数只拿到 SDK 的 ToolCallContext;内置工具另外拿到本步解析出的工具(tool_search 用)
782
+ // 插件处理函数只拿到 SDK 的 ToolCallContext;内置工具另外拿到本步解析出的工具(ToolSearch 用)
867
783
  const base = {
868
784
  orgId: ctx.orgId,
869
785
  accountId: ctx.accountId,
@@ -875,14 +791,48 @@ export class ToolPipeline {
875
791
  ...(tool.source.kind === "builtin" && { runId: ctx.runId }),
876
792
  ...(tool.source.kind === "builtin" &&
877
793
  ctx.deadline !== undefined && { runDeadline: ctx.deadline }),
878
- // a sub-agent works in its parent conversation's sandbox (spec §10.1)
794
+ // a sub-agent works in its root conversation's sandbox (spec §10.1, at every depth)
795
+ ...(tool.source.kind === "builtin" &&
796
+ ctx.parent !== undefined && { sandboxConversationId: ctx.parent.rootConversationId }),
879
797
  ...(tool.source.kind === "builtin" &&
880
- ctx.parent !== undefined && { sandboxConversationId: ctx.parent.conversationId }),
798
+ ctx.parent !== undefined && { parentRunId: ctx.parent.runId }),
799
+ ...(tool.source.kind === "builtin" &&
800
+ ctx.parent?.budgetRunId !== undefined && { budgetRunId: ctx.parent.budgetRunId }),
801
+ // the hook scope of a builtin's own model call (the WebFetch extraction)
802
+ ...(tool.source.kind === "builtin" && {
803
+ step: ctx.step,
804
+ agentVersion: ctx.agentVersion,
805
+ ...(ctx.conversationKind !== undefined && { conversationKind: ctx.conversationKind }),
806
+ ...(ctx.parent !== undefined && {
807
+ parent: {
808
+ conversationId: ctx.parent.conversationId,
809
+ runId: ctx.parent.runId,
810
+ callId: ctx.parent.callId,
811
+ },
812
+ }),
813
+ }),
881
814
  };
882
815
  // 内置工具可按输入给自己的时限(沙箱 bash 按命令超时加余量);缺省 tools.timeoutMs
883
- const timeoutMs = tool.timeoutMs?.(input) ?? this.deps.config().tools.timeoutMs;
816
+ const timeoutMs = tool.timeoutMs?.(input) ?? this.config.get().tools.timeoutMs;
884
817
  try {
885
- const r = await this.bounded(ctx.signal, (signal) => handler(input, { ...base, signal }), undefined, timeoutMs);
818
+ // a plugin tool runs with the extension's effective config for the org, never without it
819
+ // (layering spec A §6): one read per call, cached by EffectiveConfigs
820
+ let config = {};
821
+ if (tool.source.kind === "plugin") {
822
+ // turned off in the org since the step resolved its tools (spec A §7)
823
+ if (await this.deps.switches.isToolOff(ctx.orgId, tool.source.plugin, tool.source.name)) {
824
+ return { kind: "error", message: `${toolTurnedOffReason(tool.key)}.` };
825
+ }
826
+ const effective = await this.deps.effective.get(ctx.orgId, tool.source.plugin);
827
+ if (!effective.ok) {
828
+ // unloaded or disabled since the step resolved its tools: the documented unloaded error
829
+ if (effective.notRunning)
830
+ return { kind: "error", message: PLUGIN_UNLOADED_TOOL_ERROR };
831
+ return { kind: "error", message: unavailableText(tool.key, NEEDS_CONFIG_REASON) };
832
+ }
833
+ config = { config: effective.config };
834
+ }
835
+ const r = await this.bounded(ctx.signal, (signal) => handler(input, { ...base, ...config, signal }), undefined, timeoutMs);
886
836
  if (r === "timeout") {
887
837
  return { kind: "error", message: timeoutText(tool.key, timeoutMs) };
888
838
  }
@@ -898,7 +848,7 @@ export class ToolPipeline {
898
848
  }
899
849
  }
900
850
  async executeConnector(tool, source, input, ctx, resume) {
901
- const { db, registry, breaker, credentials, config } = this.deps;
851
+ const { db, registry, breaker, credentials } = this.deps;
902
852
  const { orgId } = ctx;
903
853
  const connectorId = source.connectorId;
904
854
  const app = await db
@@ -1011,7 +961,7 @@ export class ToolPipeline {
1011
961
  onElicit: elicit.handle,
1012
962
  onToolsChanged: () => {
1013
963
  try {
1014
- this.deps.onToolsChanged?.(orgId, connectorId);
964
+ this.deps.onToolsChanged(orgId, connectorId);
1015
965
  }
1016
966
  catch (err) {
1017
967
  this.deps.log.warn("tools changed notification failed", {
@@ -1037,7 +987,7 @@ export class ToolPipeline {
1037
987
  return ask;
1038
988
  if (r === "timeout") {
1039
989
  await breaker.failure(orgId, connectorId);
1040
- return { kind: "error", message: timeoutText(tool.key, config().tools.timeoutMs) };
990
+ return { kind: "error", message: timeoutText(tool.key, this.config.get().tools.timeoutMs) };
1041
991
  }
1042
992
  // 工具自己报告的错误(isError)说明服务可用,也算成功。
1043
993
  await breaker.success(orgId, connectorId);
@@ -1067,6 +1017,11 @@ export class ToolPipeline {
1067
1017
  thrown(key, e) {
1068
1018
  if (e instanceof ToolError)
1069
1019
  return { kind: "error", message: e.message };
1020
+ // an extension tool's ctx.models.embed denied by a policy hook (spec B §5.4): the model sees the
1021
+ // deny text (sanitized reason), as for a denied tool call, not a generic failure
1022
+ if (e instanceof ApiError && e.code === "model.hook_denied") {
1023
+ return { kind: "error", message: e.message };
1024
+ }
1070
1025
  // 提供工具的插件实例在调用进行中被撤销(停用 / 升级),排空时限到后中止(C17)
1071
1026
  if (e instanceof ExtensionUnloadedError) {
1072
1027
  this.deps.log.warn("tool call aborted: plugin unloaded", { toolKey: key, plugin: e.plugin });
@@ -1084,7 +1039,7 @@ export class ToolPipeline {
1084
1039
  /** 额外参与竞速的信号(不传给 work):中止时以 `Stopped` 抛出,由调用方判断原因。 */
1085
1040
  interrupt,
1086
1041
  /** 时限(毫秒),缺省 `tools.timeoutMs`。 */
1087
- timeoutMs = this.deps.config().tools.timeoutMs) {
1042
+ timeoutMs = this.config.get().tools.timeoutMs) {
1088
1043
  if (runSignal.aborted)
1089
1044
  return "aborted";
1090
1045
  const timeout = new AbortController();
@@ -1157,7 +1112,7 @@ export class ToolPipeline {
1157
1112
  if (c === undefined)
1158
1113
  return undefined;
1159
1114
  const x = (typeof c === "object" && c !== null ? c : {});
1160
- const views = this.deps.inlineViews?.(plugin);
1115
+ const views = this.deps.inlineViews(plugin);
1161
1116
  const keyOk = x.key === undefined || (typeof x.key === "string" && x.key !== "" && x.key.length <= 200);
1162
1117
  if (typeof x.view !== "string" || !views?.has(x.view) || !keyOk) {
1163
1118
  this.deps.log.warn("tool returned an inline card that is not an inline view of its extension; dropped", {
@@ -1205,32 +1160,64 @@ export class ToolPipeline {
1205
1160
  await this.deps.eventLog.append(ctx.conversationId, events);
1206
1161
  return;
1207
1162
  }
1208
- const written = await this.deps.db.transaction().execute(async (t) => {
1209
- const out = await this.deps.eventLog.append(ctx.conversationId, events, t);
1210
- for (const a of audits)
1211
- await audit(t, a);
1212
- if (callAudit === undefined)
1213
- return out;
1214
- await audit(t, {
1215
- actorAccountId: ctx.accountId,
1216
- orgId: ctx.orgId,
1217
- action: "tool.called",
1218
- target: ctx.conversationId,
1219
- detail: {
1220
- toolKey,
1221
- isError: r.isError,
1222
- durationMs: callAudit.durationMs,
1223
- agentId: ctx.agentId,
1224
- agentVersion: ctx.agentVersion,
1225
- conversationId: ctx.conversationId,
1226
- runId: ctx.runId,
1227
- callId,
1228
- ...(callAudit.connectorId !== null && { connectorId: callAudit.connectorId }),
1229
- ...callAudit.authorization,
1230
- },
1231
- });
1163
+ const written = await this.writeResultIn(ctx, callId, toolKey, r, events, callAudit, audits);
1164
+ await this.deps.eventLog.notify(ctx.conversationId, Math.max(...written.map((e) => e.seq)));
1165
+ }
1166
+ /** The result's events and audit rows in one transaction (see {@link writeResult}). */
1167
+ async writeResultIn(ctx, callId, toolKey, r, events, callAudit, audits) {
1168
+ const t = this.deps.db;
1169
+ const out = await this.deps.eventLog.appendIn(ctx.conversationId, events);
1170
+ for (const a of audits)
1171
+ await audit(t, a);
1172
+ if (callAudit === undefined)
1232
1173
  return out;
1174
+ await audit(t, {
1175
+ actorAccountId: ctx.accountId,
1176
+ orgId: ctx.orgId,
1177
+ action: "tool.called",
1178
+ target: ctx.conversationId,
1179
+ detail: {
1180
+ toolKey,
1181
+ isError: r.isError,
1182
+ durationMs: callAudit.durationMs,
1183
+ agentId: ctx.agentId,
1184
+ agentVersion: ctx.agentVersion,
1185
+ conversationId: ctx.conversationId,
1186
+ runId: ctx.runId,
1187
+ callId,
1188
+ ...(callAudit.connectorId !== null && { connectorId: callAudit.connectorId }),
1189
+ ...callAudit.authorization,
1190
+ },
1233
1191
  });
1234
- await this.deps.eventLog.notify(ctx.conversationId, Math.max(...written.map((e) => e.seq)));
1192
+ return out;
1235
1193
  }
1236
- }
1194
+ };
1195
+ __decorate([
1196
+ Transactional({ propagation: "mandatory" })
1197
+ ], ToolPipeline.prototype, "stopOpenAgentCalls", null);
1198
+ __decorate([
1199
+ Transactional()
1200
+ ], ToolPipeline.prototype, "writeResultIn", null);
1201
+ ToolPipeline = __decorate([
1202
+ Injectable(),
1203
+ __param(0, Inject(KernelDb)),
1204
+ __param(1, Inject(EventLog)),
1205
+ __param(2, Inject(SubagentsService)),
1206
+ __param(3, Inject(SubagentMessages)),
1207
+ __param(4, Inject(ToolRegistry)),
1208
+ __param(5, Inject(Credentials)),
1209
+ __param(6, Inject(Breaker)),
1210
+ __param(7, Inject(ToolOutputs)),
1211
+ __param(8, Inject(ApprovalsService)),
1212
+ __param(9, Inject(QuestionsService)),
1213
+ __param(10, Inject(KernelConfigService)),
1214
+ __param(11, Inject(KERNEL_LOGGER)),
1215
+ __param(12, Inject(ExtensionHost)),
1216
+ __param(13, Inject(ToolDrift)),
1217
+ __param(14, Inject(EffectiveConfigs)),
1218
+ __param(15, Inject(OrgToolSwitches)),
1219
+ __param(16, Inject(TransactionHost)),
1220
+ __param(17, Optional()),
1221
+ __param(17, Inject(TOOL_PIPELINE_HOOKS))
1222
+ ], ToolPipeline);
1223
+ export { ToolPipeline };