@capybara-hq/kernel 0.1.0-rc.0 → 0.1.0-rc.2

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 (626) hide show
  1. package/bootstrap.json +10 -6
  2. package/dist/admin/admin.controller.d.ts +17 -17
  3. package/dist/admin/admin.controller.js +43 -26
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/extensions.controller.d.ts +14 -14
  7. package/dist/admin/extensions.controller.js +30 -17
  8. package/dist/admin/setup-lock.d.ts +16 -0
  9. package/dist/admin/setup-lock.js +47 -0
  10. package/dist/admin/setup.controller.d.ts +8 -8
  11. package/dist/admin/setup.controller.js +27 -25
  12. package/dist/admin/setup.service.d.ts +19 -27
  13. package/dist/admin/setup.service.js +61 -61
  14. package/dist/agents/agent-lookup.d.ts +53 -0
  15. package/dist/agents/agent-lookup.js +179 -0
  16. package/dist/agents/agents.controller.d.ts +1 -1
  17. package/dist/agents/agents.controller.js +14 -8
  18. package/dist/agents/agents.module.d.ts +7 -0
  19. package/dist/agents/agents.module.js +41 -0
  20. package/dist/agents/agents.service.d.ts +39 -58
  21. package/dist/agents/agents.service.js +261 -329
  22. package/dist/agents/definition.d.ts +8 -0
  23. package/dist/agents/definition.js +8 -0
  24. package/dist/agents/models.controller.d.ts +1 -1
  25. package/dist/agents/models.controller.js +2 -2
  26. package/dist/agents/templates.controller.d.ts +1 -1
  27. package/dist/agents/templates.controller.js +2 -2
  28. package/dist/agents/templates.d.ts +6 -8
  29. package/dist/agents/templates.js +20 -4
  30. package/dist/app.d.ts +93 -0
  31. package/dist/app.js +150 -0
  32. package/dist/catalog/admin-catalog.controller.d.ts +3 -3
  33. package/dist/catalog/admin-catalog.controller.js +27 -13
  34. package/dist/catalog/catalog-content.d.ts +185 -0
  35. package/dist/catalog/catalog-content.js +323 -0
  36. package/dist/catalog/catalog-items.d.ts +186 -0
  37. package/dist/catalog/catalog-items.js +410 -0
  38. package/dist/catalog/catalog.module.d.ts +14 -0
  39. package/dist/catalog/catalog.module.js +71 -0
  40. package/dist/catalog/catalog.service.d.ts +34 -188
  41. package/dist/catalog/catalog.service.js +155 -489
  42. package/dist/catalog/cli.d.ts +3 -2
  43. package/dist/catalog/cli.js +13 -31
  44. package/dist/catalog/job-ids.d.ts +15 -0
  45. package/dist/catalog/job-ids.js +15 -0
  46. package/dist/catalog/jobs.d.ts +27 -0
  47. package/dist/catalog/jobs.js +70 -0
  48. package/dist/catalog/locks.d.ts +24 -0
  49. package/dist/catalog/locks.js +63 -0
  50. package/dist/catalog/marketplaces.controller.d.ts +4 -4
  51. package/dist/catalog/marketplaces.controller.js +22 -11
  52. package/dist/catalog/marketplaces.service.d.ts +30 -13
  53. package/dist/catalog/marketplaces.service.js +330 -256
  54. package/dist/catalog/org-catalog.controller.d.ts +4 -3
  55. package/dist/catalog/org-catalog.controller.js +29 -14
  56. package/dist/catalog/org-catalog.service.d.ts +32 -198
  57. package/dist/catalog/org-catalog.service.js +159 -400
  58. package/dist/catalog/plugin-import.d.ts +73 -34
  59. package/dist/catalog/plugin-import.js +356 -217
  60. package/dist/catalog/plugin-install.d.ts +83 -41
  61. package/dist/catalog/plugin-install.js +421 -269
  62. package/dist/catalog/plugin-upgrade.d.ts +59 -4
  63. package/dist/catalog/plugin-upgrade.js +407 -282
  64. package/dist/catalog/requests.service.d.ts +27 -15
  65. package/dist/catalog/requests.service.js +201 -145
  66. package/dist/catalog/upgrade-targets.d.ts +4 -7
  67. package/dist/channels/actions.d.ts +6 -4
  68. package/dist/channels/actions.js +1 -1
  69. package/dist/channels/cards.d.ts +2 -2
  70. package/dist/channels/channels.module.d.ts +40 -0
  71. package/dist/channels/channels.module.js +128 -0
  72. package/dist/channels/connections.controller.d.ts +1 -1
  73. package/dist/channels/connections.controller.js +11 -6
  74. package/dist/channels/connections.service.d.ts +43 -21
  75. package/dist/channels/connections.service.js +236 -131
  76. package/dist/channels/inbound.d.ts +34 -38
  77. package/dist/channels/inbound.js +107 -41
  78. package/dist/channels/job-ids.d.ts +10 -0
  79. package/dist/channels/job-ids.js +10 -0
  80. package/dist/channels/jobs.d.ts +85 -0
  81. package/dist/channels/jobs.js +157 -0
  82. package/dist/channels/outbound.d.ts +60 -82
  83. package/dist/channels/outbound.js +165 -193
  84. package/dist/channels/supervisor.d.ts +88 -46
  85. package/dist/channels/supervisor.js +230 -132
  86. package/dist/channels/threads.d.ts +29 -8
  87. package/dist/channels/threads.js +71 -13
  88. package/dist/channels/webhook.d.ts +20 -14
  89. package/dist/channels/webhook.js +51 -20
  90. package/dist/config/load.d.ts +3 -2
  91. package/dist/config/load.js +3 -2
  92. package/dist/config/nacos-source.js +11 -2
  93. package/dist/config/schema.d.ts +16 -1
  94. package/dist/config/schema.js +54 -7
  95. package/dist/conversations/access.d.ts +29 -0
  96. package/dist/conversations/access.js +86 -0
  97. package/dist/conversations/artifacts.d.ts +10 -10
  98. package/dist/conversations/artifacts.js +35 -9
  99. package/dist/conversations/attachments.controller.d.ts +1 -1
  100. package/dist/conversations/attachments.controller.js +8 -6
  101. package/dist/conversations/attachments.module.d.ts +7 -0
  102. package/dist/conversations/attachments.module.js +25 -0
  103. package/dist/conversations/attachments.service.d.ts +30 -22
  104. package/dist/conversations/attachments.service.js +119 -46
  105. package/dist/conversations/conversations.controller.d.ts +8 -7
  106. package/dist/conversations/conversations.controller.js +59 -29
  107. package/dist/conversations/conversations.module.d.ts +8 -0
  108. package/dist/conversations/conversations.module.js +69 -0
  109. package/dist/conversations/conversations.service.d.ts +40 -38
  110. package/dist/conversations/conversations.service.js +130 -140
  111. package/dist/conversations/event-log.d.ts +28 -18
  112. package/dist/conversations/event-log.js +74 -27
  113. package/dist/conversations/files.d.ts +10 -10
  114. package/dist/conversations/files.js +37 -11
  115. package/dist/conversations/idem-keys.d.ts +5 -0
  116. package/dist/conversations/idem-keys.js +5 -0
  117. package/dist/conversations/job-ids.d.ts +6 -0
  118. package/dist/conversations/job-ids.js +6 -0
  119. package/dist/conversations/outputs-read.d.ts +11 -11
  120. package/dist/conversations/outputs-read.js +31 -7
  121. package/dist/conversations/queue.d.ts +48 -56
  122. package/dist/conversations/queue.js +13 -289
  123. package/dist/conversations/queue.service.d.ts +60 -0
  124. package/dist/conversations/queue.service.js +343 -0
  125. package/dist/conversations/sandbox-status.d.ts +13 -10
  126. package/dist/conversations/sandbox-status.js +36 -8
  127. package/dist/conversations/titles.d.ts +71 -24
  128. package/dist/conversations/titles.js +159 -62
  129. package/dist/ctx/bus.js +9 -3
  130. package/dist/ctx/create-ctx.d.ts +6 -0
  131. package/dist/ctx/create-ctx.js +7 -9
  132. package/dist/ctx/lock.d.ts +7 -3
  133. package/dist/ctx/lock.js +9 -20
  134. package/dist/ctx/queue.js +3 -2
  135. package/dist/ctx/secrets.d.ts +10 -2
  136. package/dist/ctx/secrets.js +7 -3
  137. package/dist/db/kernel-schema.d.ts +2 -2
  138. package/dist/db/pool.d.ts +5 -0
  139. package/dist/db/pool.js +1 -0
  140. package/dist/errors.d.ts +2 -0
  141. package/dist/errors.js +2 -0
  142. package/dist/evals/budget.d.ts +42 -21
  143. package/dist/evals/budget.js +114 -62
  144. package/dist/evals/evals.module.d.ts +31 -0
  145. package/dist/evals/evals.module.js +114 -0
  146. package/dist/evals/jobs.d.ts +20 -0
  147. package/dist/evals/jobs.js +45 -0
  148. package/dist/evals/run-replay.d.ts +56 -8
  149. package/dist/evals/run-replay.js +140 -80
  150. package/dist/evals/runs.controller.d.ts +1 -1
  151. package/dist/evals/runs.controller.js +17 -8
  152. package/dist/evals/runs.service.d.ts +23 -45
  153. package/dist/evals/runs.service.js +245 -234
  154. package/dist/evals/sets.controller.d.ts +1 -1
  155. package/dist/evals/sets.controller.js +17 -8
  156. package/dist/evals/sets.service.d.ts +22 -6
  157. package/dist/evals/sets.service.js +248 -194
  158. package/dist/evals/snapshot.d.ts +2 -2
  159. package/dist/evals/step-replay.d.ts +2 -2
  160. package/dist/evals/step-replay.js +1 -1
  161. package/dist/evals/trajectory.controller.d.ts +1 -1
  162. package/dist/evals/trajectory.controller.js +11 -7
  163. package/dist/evals/trajectory.service.d.ts +5 -4
  164. package/dist/evals/trajectory.service.js +30 -7
  165. package/dist/evals/worker.d.ts +44 -27
  166. package/dist/evals/worker.js +220 -120
  167. package/dist/extensions/admin-ops.d.ts +61 -33
  168. package/dist/extensions/admin-ops.js +248 -154
  169. package/dist/extensions/admin-view.d.ts +38 -27
  170. package/dist/extensions/admin-view.js +126 -55
  171. package/dist/extensions/approvals.d.ts +12 -8
  172. package/dist/extensions/approvals.js +73 -46
  173. package/dist/extensions/blobs.d.ts +27 -10
  174. package/dist/extensions/blobs.js +111 -45
  175. package/dist/extensions/bootstrap.d.ts +96 -42
  176. package/dist/extensions/bootstrap.js +303 -155
  177. package/dist/extensions/cli.d.ts +20 -10
  178. package/dist/extensions/cli.js +41 -96
  179. package/dist/extensions/config-issues.d.ts +7 -0
  180. package/dist/extensions/config-issues.js +31 -0
  181. package/dist/extensions/deployment-config-store.d.ts +49 -0
  182. package/dist/extensions/deployment-config-store.js +133 -0
  183. package/dist/extensions/deployment-config.d.ts +58 -67
  184. package/dist/extensions/deployment-config.js +202 -230
  185. package/dist/extensions/enabled.d.ts +5 -5
  186. package/dist/extensions/extensions.module.d.ts +8 -0
  187. package/dist/extensions/extensions.module.js +77 -0
  188. package/dist/extensions/hooks.d.ts +3 -2
  189. package/dist/extensions/hooks.js +1 -1
  190. package/dist/extensions/host.d.ts +72 -68
  191. package/dist/extensions/host.js +191 -152
  192. package/dist/extensions/installs.d.ts +49 -16
  193. package/dist/extensions/installs.js +128 -32
  194. package/dist/extensions/job-ids.d.ts +6 -0
  195. package/dist/extensions/job-ids.js +6 -0
  196. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  197. package/dist/extensions/lifecycle-topics.js +18 -0
  198. package/dist/extensions/lifecycle.d.ts +35 -47
  199. package/dist/extensions/lifecycle.js +103 -39
  200. package/dist/extensions/locks.d.ts +33 -0
  201. package/dist/extensions/locks.js +86 -0
  202. package/dist/extensions/migrate-lock.d.ts +3 -4
  203. package/dist/extensions/org-config.controller.d.ts +1 -1
  204. package/dist/extensions/org-config.controller.js +8 -5
  205. package/dist/extensions/org-config.d.ts +48 -46
  206. package/dist/extensions/org-config.js +284 -226
  207. package/dist/extensions/registry.d.ts +50 -2
  208. package/dist/extensions/registry.js +89 -4
  209. package/dist/extensions/sources.d.ts +12 -8
  210. package/dist/extensions/sources.js +34 -13
  211. package/dist/files/files.module.d.ts +3 -0
  212. package/dist/files/files.module.js +22 -0
  213. package/dist/files/previewers.controller.d.ts +7 -2
  214. package/dist/files/previewers.controller.js +17 -9
  215. package/dist/files/previewers.d.ts +13 -18
  216. package/dist/files/previewers.js +83 -36
  217. package/dist/http/adapter.d.ts +3 -0
  218. package/dist/http/adapter.js +25 -0
  219. package/dist/http/api.module.d.ts +3 -110
  220. package/dist/http/api.module.js +47 -355
  221. package/dist/http/app.d.ts +11 -15
  222. package/dist/http/app.js +52 -47
  223. package/dist/http/error-filter.module.d.ts +5 -0
  224. package/dist/http/error-filter.module.js +18 -0
  225. package/dist/http/error.filter.js +2 -2
  226. package/dist/identity/accounts.d.ts +82 -29
  227. package/dist/identity/accounts.js +294 -175
  228. package/dist/identity/api-tokens.d.ts +11 -7
  229. package/dist/identity/api-tokens.js +71 -44
  230. package/dist/identity/audit.d.ts +7 -4
  231. package/dist/identity/audit.js +5 -1
  232. package/dist/identity/auth.controller.d.ts +11 -10
  233. package/dist/identity/auth.controller.js +31 -25
  234. package/dist/identity/auth.guard.d.ts +3 -3
  235. package/dist/identity/auth.guard.js +6 -4
  236. package/dist/identity/binding.d.ts +9 -11
  237. package/dist/identity/binding.js +41 -13
  238. package/dist/identity/enterprise-admin.d.ts +18 -12
  239. package/dist/identity/enterprise-admin.js +67 -13
  240. package/dist/identity/external-identity-lock.d.ts +17 -0
  241. package/dist/identity/external-identity-lock.js +39 -0
  242. package/dist/identity/external.d.ts +19 -15
  243. package/dist/identity/external.js +163 -125
  244. package/dist/identity/identity.module.d.ts +6 -0
  245. package/dist/identity/identity.module.js +56 -0
  246. package/dist/identity/me.controller.d.ts +16 -15
  247. package/dist/identity/me.controller.js +37 -31
  248. package/dist/identity/sessions.d.ts +12 -10
  249. package/dist/identity/sessions.js +74 -42
  250. package/dist/identity/settings.d.ts +20 -14
  251. package/dist/identity/settings.js +85 -57
  252. package/dist/identity/sso.controller.d.ts +7 -7
  253. package/dist/identity/sso.controller.js +13 -9
  254. package/dist/identity/sso.d.ts +9 -12
  255. package/dist/identity/sso.js +54 -24
  256. package/dist/inbox/inbox.module.d.ts +3 -0
  257. package/dist/inbox/inbox.module.js +22 -0
  258. package/dist/inbox/inbox.service.d.ts +7 -9
  259. package/dist/inbox/inbox.service.js +32 -11
  260. package/dist/index.d.ts +19 -12
  261. package/dist/index.js +13 -8
  262. package/dist/infra/cache/cache.module.d.ts +3 -0
  263. package/dist/infra/cache/cache.module.js +16 -0
  264. package/dist/infra/cache/cache.service.d.ts +21 -0
  265. package/dist/infra/cache/cache.service.js +80 -0
  266. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  267. package/dist/infra/cache/cacheable.decorator.js +83 -0
  268. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  269. package/dist/infra/cli/kernel-cli.module.js +165 -0
  270. package/dist/infra/close-within.d.ts +15 -0
  271. package/dist/infra/close-within.js +36 -0
  272. package/dist/infra/config/config.module.d.ts +13 -0
  273. package/dist/infra/config/config.module.js +39 -0
  274. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  275. package/dist/infra/config/kernel-config.service.js +126 -0
  276. package/dist/infra/database/after-commit.d.ts +6 -0
  277. package/dist/infra/database/after-commit.js +9 -0
  278. package/dist/infra/database/database.module.d.ts +25 -0
  279. package/dist/infra/database/database.module.js +90 -0
  280. package/dist/infra/database/kernel-db.d.ts +22 -0
  281. package/dist/infra/database/kernel-db.js +65 -0
  282. package/dist/infra/database/transaction-host.d.ts +50 -0
  283. package/dist/infra/database/transaction-host.js +125 -0
  284. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  285. package/dist/infra/database/transactional.decorator.js +27 -0
  286. package/dist/infra/database/xact-lock.d.ts +17 -0
  287. package/dist/infra/database/xact-lock.js +43 -0
  288. package/dist/infra/events/kernel-events.d.ts +96 -0
  289. package/dist/infra/events/kernel-events.js +65 -0
  290. package/dist/infra/health/health.controller.d.ts +26 -0
  291. package/dist/infra/health/health.controller.js +104 -0
  292. package/dist/infra/health/health.module.d.ts +9 -0
  293. package/dist/infra/health/health.module.js +24 -0
  294. package/dist/infra/health/health.options.d.ts +10 -0
  295. package/dist/infra/health/health.options.js +15 -0
  296. package/dist/infra/health/shutdown-state.d.ts +6 -0
  297. package/dist/infra/health/shutdown-state.js +2 -0
  298. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  299. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  300. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  301. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  302. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  303. package/dist/infra/lifecycle/process-guards.js +86 -0
  304. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  305. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  306. package/dist/infra/lock/key-template.d.ts +13 -0
  307. package/dist/infra/lock/key-template.js +46 -0
  308. package/dist/infra/lock/lock.module.d.ts +3 -0
  309. package/dist/infra/lock/lock.module.js +16 -0
  310. package/dist/infra/lock/lock.service.d.ts +120 -0
  311. package/dist/infra/lock/lock.service.js +343 -0
  312. package/dist/infra/lock/shared-lease.d.ts +44 -0
  313. package/dist/infra/lock/shared-lease.js +121 -0
  314. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  315. package/dist/infra/lock/with-lock.decorator.js +49 -0
  316. package/dist/infra/logging/logging.module.d.ts +16 -0
  317. package/dist/infra/logging/logging.module.js +34 -0
  318. package/dist/infra/queue/configured-processor.d.ts +18 -0
  319. package/dist/infra/queue/configured-processor.js +23 -0
  320. package/dist/infra/queue/job-failure.d.ts +18 -0
  321. package/dist/infra/queue/job-failure.js +26 -0
  322. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  323. package/dist/infra/queue/queue-shutdown.js +81 -0
  324. package/dist/infra/queue/queue.module.d.ts +16 -0
  325. package/dist/infra/queue/queue.module.js +61 -0
  326. package/dist/infra/queue/redis-connection.d.ts +7 -0
  327. package/dist/infra/queue/redis-connection.js +18 -0
  328. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  329. package/dist/infra/queue/retired-schedulers.js +9 -0
  330. package/dist/infra/queue/run-job.d.ts +16 -0
  331. package/dist/infra/queue/run-job.js +19 -0
  332. package/dist/infra/redis/redis.module.d.ts +24 -0
  333. package/dist/infra/redis/redis.module.js +87 -0
  334. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  335. package/dist/infra/schedule/cron-tick.js +25 -0
  336. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  337. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  338. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  339. package/dist/infra/schedule/locked-interval.js +190 -0
  340. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  341. package/dist/infra/schedule/locked-tick.js +137 -0
  342. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  343. package/dist/infra/schedule/schedule.module.js +27 -0
  344. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  345. package/dist/infra/schedule/scheduled-runs.js +163 -0
  346. package/dist/infra/swagger/swagger.d.ts +16 -0
  347. package/dist/infra/swagger/swagger.js +31 -0
  348. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  349. package/dist/infra/throttler/credential-throttler.js +77 -0
  350. package/dist/infra/throttler/named-throttlers.d.ts +31 -0
  351. package/dist/infra/throttler/named-throttlers.js +119 -0
  352. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  353. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  354. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  355. package/dist/infra/throttler/throttler.guard.js +68 -0
  356. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  357. package/dist/infra/throttler/throttler.module.js +53 -0
  358. package/dist/infra/tokens.d.ts +15 -0
  359. package/dist/infra/tokens.js +15 -0
  360. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  361. package/dist/infra/validation/create-zod-dto.js +35 -0
  362. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  363. package/dist/infra/validation/parse-with-zod.js +12 -0
  364. package/dist/infra/validation/validation.module.d.ts +3 -0
  365. package/dist/infra/validation/validation.module.js +16 -0
  366. package/dist/infra/validation/zod-params.d.ts +7 -0
  367. package/dist/infra/validation/zod-params.js +42 -0
  368. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  369. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  370. package/dist/kernel.d.ts +9 -241
  371. package/dist/kernel.js +8 -1305
  372. package/dist/kernel.module.d.ts +17 -0
  373. package/dist/kernel.module.js +136 -0
  374. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  375. package/dist/lifecycle/kernel-lifecycle.js +451 -0
  376. package/dist/lifecycle/tokens.d.ts +3 -0
  377. package/dist/lifecycle/tokens.js +3 -0
  378. package/dist/log-config.d.ts +9 -0
  379. package/dist/log-config.js +27 -0
  380. package/dist/log-context.d.ts +34 -0
  381. package/dist/log-context.js +44 -0
  382. package/dist/log-loki.d.ts +34 -0
  383. package/dist/log-loki.js +145 -0
  384. package/dist/log.d.ts +41 -10
  385. package/dist/log.js +91 -17
  386. package/dist/models/models.module.d.ts +3 -0
  387. package/dist/models/models.module.js +24 -0
  388. package/dist/models/prices.d.ts +8 -2
  389. package/dist/models/prices.js +65 -37
  390. package/dist/models/purposes.controller.d.ts +1 -1
  391. package/dist/models/purposes.controller.js +5 -6
  392. package/dist/models/purposes.d.ts +35 -13
  393. package/dist/models/purposes.js +101 -51
  394. package/dist/net/public-address.js +3 -2
  395. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  396. package/dist/orgs/directory-sync.controller.js +2 -2
  397. package/dist/orgs/directory-sync.d.ts +61 -31
  398. package/dist/orgs/directory-sync.js +212 -125
  399. package/dist/orgs/invitations.controller.d.ts +8 -8
  400. package/dist/orgs/invitations.controller.js +27 -26
  401. package/dist/orgs/invitations.service.d.ts +12 -9
  402. package/dist/orgs/invitations.service.js +130 -92
  403. package/dist/orgs/job-ids.d.ts +8 -0
  404. package/dist/orgs/job-ids.js +8 -0
  405. package/dist/orgs/members.service.d.ts +19 -12
  406. package/dist/orgs/members.service.js +161 -117
  407. package/dist/orgs/offboarding.d.ts +54 -57
  408. package/dist/orgs/offboarding.js +161 -71
  409. package/dist/orgs/org-lock.d.ts +28 -19
  410. package/dist/orgs/org-lock.js +81 -35
  411. package/dist/orgs/org.guard.d.ts +1 -1
  412. package/dist/orgs/org.guard.js +2 -2
  413. package/dist/orgs/orgs.controller.d.ts +13 -13
  414. package/dist/orgs/orgs.controller.js +29 -17
  415. package/dist/orgs/orgs.module.d.ts +6 -0
  416. package/dist/orgs/orgs.module.js +68 -0
  417. package/dist/orgs/orgs.service.d.ts +30 -19
  418. package/dist/orgs/orgs.service.js +139 -86
  419. package/dist/orgs/settings.controller.d.ts +1 -1
  420. package/dist/orgs/settings.controller.js +8 -6
  421. package/dist/orgs/settings.service.d.ts +14 -8
  422. package/dist/orgs/settings.service.js +75 -46
  423. package/dist/overrides.d.ts +56 -0
  424. package/dist/overrides.js +30 -0
  425. package/dist/roles/gateway-role.d.ts +43 -0
  426. package/dist/roles/gateway-role.js +98 -0
  427. package/dist/roles/gateway.module.d.ts +8 -0
  428. package/dist/roles/gateway.module.js +28 -0
  429. package/dist/roles/worker-role.d.ts +63 -0
  430. package/dist/roles/worker-role.js +144 -0
  431. package/dist/roles/worker.module.d.ts +14 -0
  432. package/dist/roles/worker.module.js +90 -0
  433. package/dist/runtime/abort.js +19 -2
  434. package/dist/runtime/checkpointer.d.ts +8 -3
  435. package/dist/runtime/checkpointer.js +87 -55
  436. package/dist/runtime/conversation-lock.d.ts +20 -11
  437. package/dist/runtime/conversation-lock.js +62 -72
  438. package/dist/runtime/hook-calls.d.ts +3 -3
  439. package/dist/runtime/hook-calls.js +1 -6
  440. package/dist/runtime/job-ids.d.ts +10 -0
  441. package/dist/runtime/job-ids.js +10 -0
  442. package/dist/runtime/langgraph-loop.js +1 -1
  443. package/dist/runtime/loop.d.ts +7 -0
  444. package/dist/runtime/loop.js +14 -0
  445. package/dist/runtime/maintenance-queue.d.ts +10 -0
  446. package/dist/runtime/maintenance-queue.js +10 -0
  447. package/dist/runtime/maintenance.d.ts +45 -74
  448. package/dist/runtime/maintenance.js +139 -136
  449. package/dist/runtime/model-call.d.ts +7 -4
  450. package/dist/runtime/model-call.js +24 -57
  451. package/dist/runtime/providers.d.ts +17 -6
  452. package/dist/runtime/providers.js +66 -25
  453. package/dist/runtime/quota.d.ts +17 -3
  454. package/dist/runtime/quota.js +27 -2
  455. package/dist/runtime/retired-schedulers.d.ts +7 -0
  456. package/dist/runtime/retired-schedulers.js +31 -0
  457. package/dist/runtime/run-control.d.ts +33 -0
  458. package/dist/runtime/run-control.js +77 -0
  459. package/dist/runtime/run-finish.d.ts +26 -17
  460. package/dist/runtime/run-finish.js +98 -51
  461. package/dist/runtime/run-jobs.d.ts +48 -0
  462. package/dist/runtime/run-jobs.js +95 -0
  463. package/dist/runtime/run-processors.d.ts +60 -0
  464. package/dist/runtime/run-processors.js +185 -0
  465. package/dist/runtime/run-queue.d.ts +32 -57
  466. package/dist/runtime/run-queue.js +291 -295
  467. package/dist/runtime/run-steps.d.ts +39 -0
  468. package/dist/runtime/run-steps.js +96 -0
  469. package/dist/runtime/run-worker.d.ts +121 -75
  470. package/dist/runtime/run-worker.js +340 -225
  471. package/dist/runtime/runtime.module.d.ts +10 -0
  472. package/dist/runtime/runtime.module.js +112 -0
  473. package/dist/runtime/step-log.d.ts +40 -0
  474. package/dist/runtime/step-log.js +94 -0
  475. package/dist/runtime/stream.controller.d.ts +5 -8
  476. package/dist/runtime/stream.controller.js +14 -12
  477. package/dist/runtime/stream.d.ts +24 -6
  478. package/dist/runtime/stream.js +78 -7
  479. package/dist/runtime/subagents/child.d.ts +3 -44
  480. package/dist/runtime/subagents/child.js +0 -79
  481. package/dist/runtime/subagents/definition.d.ts +4 -4
  482. package/dist/runtime/subagents/definition.js +2 -2
  483. package/dist/runtime/subagents/dispatch.d.ts +87 -6
  484. package/dist/runtime/subagents/dispatch.js +135 -140
  485. package/dist/runtime/subagents/limits.d.ts +9 -4
  486. package/dist/runtime/subagents/limits.js +4 -2
  487. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  488. package/dist/runtime/subagents/org-agents.js +1 -1
  489. package/dist/runtime/subagents/progress.d.ts +2 -2
  490. package/dist/runtime/subagents/roster.d.ts +3 -3
  491. package/dist/runtime/subagents/roster.js +1 -1
  492. package/dist/runtime/subagents/skill-fork.d.ts +6 -7
  493. package/dist/runtime/subagents/skill-fork.js +16 -5
  494. package/dist/runtime/subagents/subagents.service.d.ts +40 -0
  495. package/dist/runtime/subagents/subagents.service.js +101 -0
  496. package/dist/runtime/usage-report.d.ts +94 -52
  497. package/dist/runtime/usage-report.js +200 -99
  498. package/dist/runtime/waits.d.ts +125 -57
  499. package/dist/runtime/waits.js +431 -208
  500. package/dist/sandbox/job-ids.d.ts +10 -0
  501. package/dist/sandbox/job-ids.js +10 -0
  502. package/dist/sandbox/jobs.d.ts +41 -0
  503. package/dist/sandbox/jobs.js +113 -0
  504. package/dist/sandbox/leases.d.ts +39 -31
  505. package/dist/sandbox/leases.js +117 -257
  506. package/dist/sandbox/providers.d.ts +19 -0
  507. package/dist/sandbox/providers.js +38 -0
  508. package/dist/sandbox/sandbox.module.d.ts +8 -0
  509. package/dist/sandbox/sandbox.module.js +30 -0
  510. package/dist/sandbox/sandbox.service.d.ts +24 -29
  511. package/dist/sandbox/sandbox.service.js +106 -75
  512. package/dist/skills/catalog.d.ts +33 -20
  513. package/dist/skills/catalog.js +96 -53
  514. package/dist/skills/changes.controller.d.ts +4 -4
  515. package/dist/skills/changes.controller.js +15 -9
  516. package/dist/skills/changes.service.d.ts +28 -18
  517. package/dist/skills/changes.service.js +421 -364
  518. package/dist/skills/invocable.controller.d.ts +1 -1
  519. package/dist/skills/invocable.controller.js +8 -5
  520. package/dist/skills/invoke.d.ts +16 -15
  521. package/dist/skills/invoke.js +48 -17
  522. package/dist/skills/skills.controller.d.ts +1 -1
  523. package/dist/skills/skills.controller.js +11 -6
  524. package/dist/skills/skills.module.d.ts +6 -0
  525. package/dist/skills/skills.module.js +30 -0
  526. package/dist/skills/skills.service.d.ts +47 -30
  527. package/dist/skills/skills.service.js +221 -158
  528. package/dist/storage/job-ids.d.ts +6 -0
  529. package/dist/storage/job-ids.js +6 -0
  530. package/dist/storage/purge.d.ts +22 -7
  531. package/dist/storage/purge.js +55 -3
  532. package/dist/storage/storage.module.d.ts +6 -0
  533. package/dist/storage/storage.module.js +23 -0
  534. package/dist/storage/storage.service.d.ts +18 -4
  535. package/dist/storage/storage.service.js +44 -3
  536. package/dist/tools/approvals.controller.d.ts +1 -1
  537. package/dist/tools/approvals.controller.js +12 -8
  538. package/dist/tools/approvals.service.d.ts +27 -25
  539. package/dist/tools/approvals.service.js +324 -258
  540. package/dist/tools/breaker.d.ts +2 -2
  541. package/dist/tools/breaker.js +21 -3
  542. package/dist/tools/builtins/ask-user.d.ts +2 -2
  543. package/dist/tools/builtins/ask-user.js +1 -1
  544. package/dist/tools/builtins/builtin-tools.d.ts +21 -0
  545. package/dist/tools/builtins/builtin-tools.js +80 -0
  546. package/dist/tools/builtins/read-tool-output.d.ts +2 -2
  547. package/dist/tools/builtins/read-tool-output.js +1 -1
  548. package/dist/tools/builtins/sandbox/bash.js +2 -2
  549. package/dist/tools/builtins/sandbox/common.d.ts +7 -4
  550. package/dist/tools/builtins/sandbox/common.js +5 -3
  551. package/dist/tools/builtins/sandbox/deliver.js +2 -2
  552. package/dist/tools/builtins/sandbox/edit.js +1 -1
  553. package/dist/tools/builtins/sandbox/glob.js +2 -2
  554. package/dist/tools/builtins/sandbox/grep.js +2 -2
  555. package/dist/tools/builtins/sandbox/read.js +1 -1
  556. package/dist/tools/builtins/sandbox/write.js +1 -1
  557. package/dist/tools/builtins/skill-load.d.ts +3 -3
  558. package/dist/tools/builtins/skill-load.js +1 -1
  559. package/dist/tools/canonical-json.d.ts +6 -0
  560. package/dist/tools/canonical-json.js +16 -0
  561. package/dist/tools/connector-content.controller.d.ts +1 -1
  562. package/dist/tools/connector-content.controller.js +11 -6
  563. package/dist/tools/connector-content.d.ts +12 -15
  564. package/dist/tools/connector-content.js +53 -18
  565. package/dist/tools/connectors.controller.d.ts +1 -1
  566. package/dist/tools/connectors.controller.js +21 -10
  567. package/dist/tools/connectors.service.d.ts +31 -13
  568. package/dist/tools/connectors.service.js +434 -344
  569. package/dist/tools/credentials.d.ts +17 -20
  570. package/dist/tools/credentials.js +55 -34
  571. package/dist/tools/drift.d.ts +29 -41
  572. package/dist/tools/drift.js +111 -79
  573. package/dist/tools/info.d.ts +12 -9
  574. package/dist/tools/info.js +33 -7
  575. package/dist/tools/job-ids.d.ts +13 -0
  576. package/dist/tools/job-ids.js +15 -0
  577. package/dist/tools/jobs.d.ts +24 -0
  578. package/dist/tools/jobs.js +69 -0
  579. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  580. package/dist/tools/oauth/flow-paths.js +38 -0
  581. package/dist/tools/oauth/flow.d.ts +30 -30
  582. package/dist/tools/oauth/flow.js +109 -81
  583. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  584. package/dist/tools/oauth/oauth.controller.js +12 -9
  585. package/dist/tools/oauth/tokens.d.ts +11 -3
  586. package/dist/tools/oauth/tokens.js +15 -14
  587. package/dist/tools/outputs.d.ts +13 -4
  588. package/dist/tools/outputs.js +47 -3
  589. package/dist/tools/pipeline.d.ts +62 -46
  590. package/dist/tools/pipeline.js +145 -64
  591. package/dist/tools/policy.d.ts +2 -2
  592. package/dist/tools/questions.controller.d.ts +1 -1
  593. package/dist/tools/questions.controller.js +8 -5
  594. package/dist/tools/questions.service.d.ts +25 -24
  595. package/dist/tools/questions.service.js +201 -142
  596. package/dist/tools/registry.d.ts +30 -20
  597. package/dist/tools/registry.js +73 -37
  598. package/dist/tools/specs.d.ts +5 -4
  599. package/dist/tools/specs.js +3 -1
  600. package/dist/tools/tools.module.d.ts +10 -0
  601. package/dist/tools/tools.module.js +91 -0
  602. package/dist/ui/call-extension.d.ts +16 -0
  603. package/dist/ui/call-extension.js +38 -0
  604. package/dist/ui/embed-token.d.ts +9 -5
  605. package/dist/ui/embed-token.js +34 -6
  606. package/dist/ui/ui-stream.d.ts +22 -17
  607. package/dist/ui/ui-stream.js +72 -12
  608. package/dist/ui/ui.module.d.ts +7 -0
  609. package/dist/ui/ui.module.js +28 -0
  610. package/dist/ui/views.controller.d.ts +14 -12
  611. package/dist/ui/views.controller.js +32 -25
  612. package/dist/ui/views.d.ts +9 -57
  613. package/dist/ui/views.js +43 -45
  614. package/package.json +11 -2
  615. package/dist/http/health.controller.d.ts +0 -26
  616. package/dist/http/health.controller.js +0 -79
  617. package/dist/http/tokens.d.ts +0 -131
  618. package/dist/http/tokens.js +0 -131
  619. package/dist/http/zod.pipe.d.ts +0 -8
  620. package/dist/http/zod.pipe.js +0 -14
  621. package/dist/identity/rate-limit.d.ts +0 -55
  622. package/dist/identity/rate-limit.js +0 -121
  623. package/dist/sandbox/lifecycle.d.ts +0 -21
  624. package/dist/sandbox/lifecycle.js +0 -68
  625. /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
  626. /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
@@ -1,6 +1,18 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
1
10
  import { randomUUID } from "node:crypto";
2
11
  import { ToolError } from "@capybara-hq/plugin-sdk";
12
+ import { Inject, Injectable } from "@nestjs/common";
3
13
  import { sql } from "kysely";
14
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
15
+ import { KernelDb } from "../infra/database/kernel-db.js";
4
16
  /** 文本行数(按 `\n` 切分;空串算 1 行,与按行分页读取一致)。 */
5
17
  export function countLines(s) {
6
18
  let n = 1;
@@ -10,9 +22,10 @@ export function countLines(s) {
10
22
  }
11
23
  /**
12
24
  * 输出存档(spec 5.4):超大工具结果的全文存进 `capybara.tool_outputs`,保留 `tools.outputRetentionDays` 天。
13
- * 只能在产生它的会话里读取(同组织别的会话也不行:会话之间可见范围不同),过期即视为不存在(清理由维护任务负责)。
25
+ * 只能在产生它的会话里读取(同组织别的会话也不行:会话之间可见范围不同),过期即视为不存在(清理由
26
+ * `output-cleanup` 每小时一次,见 {@link deleteExpiredOutputs})。
14
27
  */
15
- export class ToolOutputs {
28
+ let ToolOutputs = class ToolOutputs {
16
29
  db;
17
30
  config;
18
31
  constructor(db, config) {
@@ -23,7 +36,7 @@ export class ToolOutputs {
23
36
  const id = randomUUID();
24
37
  const sizeChars = a.content.length;
25
38
  const lineCount = countLines(a.content);
26
- const days = this.config().tools.outputRetentionDays;
39
+ const days = this.config.get().tools.outputRetentionDays;
27
40
  await this.db
28
41
  .insertInto("tool_outputs")
29
42
  .values({
@@ -51,6 +64,37 @@ export class ToolOutputs {
51
64
  .executeTakeFirst();
52
65
  return row?.content ?? null;
53
66
  }
67
+ };
68
+ ToolOutputs = __decorate([
69
+ Injectable(),
70
+ __param(0, Inject(KernelDb)),
71
+ __param(1, Inject(KernelConfigService))
72
+ ], ToolOutputs);
73
+ export { ToolOutputs };
74
+ /** Rows deleted per statement by {@link deleteExpiredOutputs}. */
75
+ export const OUTPUT_CLEANUP_BATCH = 1000;
76
+ /**
77
+ * 删除已过期(`expires_at < now()`)的输出存档,每批 `batch` 行,直到删完;返回删除的总行数。
78
+ * 每批一条独立语句(不开长事务);多个 worker 同时清理时 `SKIP LOCKED` 互不等待。
79
+ */
80
+ export async function deleteExpiredOutputs(db, batch = OUTPUT_CLEANUP_BATCH) {
81
+ let total = 0;
82
+ for (;;) {
83
+ const r = await db
84
+ .deleteFrom("tool_outputs")
85
+ .where("id", "in", db
86
+ .selectFrom("tool_outputs")
87
+ .select("id")
88
+ .where("expires_at", "<", sql `now()`)
89
+ .limit(batch)
90
+ .forUpdate()
91
+ .skipLocked())
92
+ .executeTakeFirst();
93
+ const n = Number(r.numDeletedRows);
94
+ total += n;
95
+ if (n < batch)
96
+ return total;
97
+ }
54
98
  }
55
99
  /** 存档不存在 / 过期 / 不属于本会话(模型可见,英文;不区分几种情况,不泄露别处的存档是否存在)。 */
56
100
  export const outputNotFoundText = (id) => `Output ${id} not found or expired. Run the tool that produced it again to get a new output id.`;
@@ -1,20 +1,24 @@
1
1
  import { type FormAnswer, type InputForm, type Logger } from "@capybara-hq/plugin-sdk";
2
- import type { Transaction } from "kysely";
3
2
  import { type AgentDefinition } from "../agents/definition.js";
4
- import type { KernelConfig } from "../config/schema.js";
5
- import type { EventLog } from "../conversations/event-log.js";
6
- import type { KernelDatabase, KernelDb } from "../db/kernel-schema.js";
3
+ import { EventLog } from "../conversations/event-log.js";
4
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
5
+ import { ExtensionHost } from "../extensions/host.js";
6
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
7
+ import { KernelDb } from "../infra/database/kernel-db.js";
8
+ import { TransactionHost } from "../infra/database/transaction-host.js";
7
9
  import type { OrgRole } from "../orgs/roles.js";
8
10
  import { type ConversationKindForHooks, type HookRunner } from "../runtime/hook-calls.js";
9
11
  import { type SubagentParent, type WaitingFor } from "../runtime/loop.js";
10
12
  import type { DispatchOutcome } from "../runtime/subagents/dispatch.js";
11
- import type { ApprovalsService } from "./approvals.service.js";
12
- import { type Breaker } from "./breaker.js";
13
+ import { SubagentsService } from "../runtime/subagents/subagents.service.js";
14
+ import { ApprovalsService } from "./approvals.service.js";
15
+ import { Breaker } from "./breaker.js";
13
16
  import { type AgentToolInputT } from "./builtins/agent.js";
14
- import { type Credentials } from "./credentials.js";
15
- import { type ToolOutputs } from "./outputs.js";
16
- import type { QuestionsService } from "./questions.service.js";
17
- import type { ResolvedTool, ToolRegistry } from "./registry.js";
17
+ import { Credentials } from "./credentials.js";
18
+ import { ToolDrift } from "./drift.js";
19
+ import { ToolOutputs } from "./outputs.js";
20
+ import { QuestionsService } from "./questions.service.js";
21
+ import { type ResolvedTool, ToolRegistry } from "./registry.js";
18
22
  /** 审批被拒绝。 */
19
23
  export declare const APPROVAL_DENIED_TEXT = "The user denied this tool call.";
20
24
  /**
@@ -94,55 +98,63 @@ export interface PolicyContext {
94
98
  }
95
99
  /** 管线第 3 阶段:策略判定。 */
96
100
  export type DecidePolicy = (tool: ResolvedTool, agentDef: AgentDefinition, ctx: PolicyContext) => Promise<PolicyDecision>;
97
- /** 测试钩子。 */
101
+ /** The pipeline's test seams (`TOOL_PIPELINE_HOOKS`; the kernel never provides them). */
98
102
  export interface ToolPipelineHooks {
99
- /** 工具执行返回之后、结果写入日志之前调用:抛错即模拟「工具已执行、结果未记录」时进程崩溃。 */
103
+ /**
104
+ * Called after a tool returned and before its result is logged: throwing simulates a crash
105
+ * between the execution and the record ("executed, result not recorded").
106
+ */
100
107
  afterExecute?(runId: string, callId: string): Promise<void>;
108
+ /** The policy decision; default {@link createDecidePolicy} (reads policies and grants live). */
109
+ decidePolicy?: DecidePolicy;
101
110
  }
102
- export interface ToolPipelineDeps {
103
- db: KernelDb;
104
- eventLog: EventLog;
105
- registry: Pick<ToolRegistry, "forAgent" | "findConnector" | "handler">;
106
- credentials: Pick<Credentials, "injection" | "onUnauthorized">;
107
- breaker: Pick<Breaker, "check" | "failure" | "success">;
108
- outputs: Pick<ToolOutputs, "save" | "load">;
111
+ /** Optional provider: the pipeline's {@link ToolPipelineHooks} (tests). */
112
+ export declare const TOOL_PIPELINE_HOOKS: unique symbol;
113
+ /** What the pipeline calls through (the sub-agent dispatch is read at call time). */
114
+ interface PipelineDeps {
115
+ /** The kernel-schema handle of the current context (its transaction, else the pool). */
116
+ readonly db: KernelSchemaDb;
117
+ readonly eventLog: EventLog;
118
+ readonly registry: Pick<ToolRegistry, "forAgent" | "findConnector" | "handler">;
119
+ readonly credentials: Pick<Credentials, "injection" | "onUnauthorized">;
120
+ readonly breaker: Pick<Breaker, "check" | "failure" | "success">;
121
+ readonly outputs: Pick<ToolOutputs, "save" | "load">;
109
122
  /** 策略为 `ask` 时建审批;续跑时读该调用的审批结果。 */
110
- approvals: Pick<ApprovalsService, "request" | "forCall">;
123
+ readonly approvals: Pick<ApprovalsService, "request" | "forCall">;
111
124
  /** 处理函数返回 `input_required` 时建输入请求;续跑时读该调用的各轮输入请求。 */
112
- questions: Pick<QuestionsService, "ask" | "forCall">;
113
- config: () => KernelConfig;
114
- log: Logger;
115
- /** 默认 {@link createDecidePolicy}(执行时实时读取策略与授权)。 */
116
- decidePolicy?: DecidePolicy;
117
- hooks?: ToolPipelineHooks;
125
+ readonly questions: Pick<QuestionsService, "ask" | "forCall">;
126
+ readonly log: Logger;
127
+ readonly hooks: ToolPipelineHooks | undefined;
118
128
  /**
119
129
  * Plugin hooks (`tool.preExecute` policy / observe after policy and approval, `tool.postExecute`
120
- * observe after the result). Only the chat pipeline gets it; the eval replay uses
130
+ * observe after the result). Only the chat pipeline has them; the eval replay uses
121
131
  * `RecordedToolPipeline`, which never runs hooks. Also needs `conversationKind: "chat"` (P-18).
122
132
  */
123
- pluginHooks?: HookRunner;
133
+ readonly pluginHooks: HookRunner | undefined;
124
134
  /**
125
- * Ids of an extension's `inline` ui contributions (read live): a plugin tool's `ToolResult.card`
126
- * must name one of them, otherwise it is dropped with a warning. Absent: cards are dropped.
135
+ * Ids of an extension's `inline` ui contributions (read live, no alias): a plugin tool's
136
+ * `ToolResult.card` must name one of them, otherwise it is dropped with a warning.
127
137
  */
128
- inlineViews?: (plugin: string) => ReadonlySet<string>;
138
+ inlineViews(plugin: string): ReadonlySet<string>;
129
139
  /**
130
140
  * 连接器在调用途中报告工具清单变了(MCP `notifications/tools/list_changed`):内核安排一次该连接器的漂移检查。
131
141
  * 不等待、不抛错(实现自己吞掉错误)。
132
142
  */
133
- onToolsChanged?: (orgId: string, connectorId: string) => void;
143
+ onToolsChanged(orgId: string, connectorId: string): void;
134
144
  /**
135
145
  * Dispatches the sub-agent of an `agent` call (sub-agents spec §7.1; `dispatchSubagent`). Without
136
146
  * it, `agent` calls reach the builtin's guard, which refuses them.
137
147
  */
138
- subagents?: {
148
+ readonly subagents: {
139
149
  dispatch(a: {
140
150
  ctx: ToolStepContext;
141
151
  callId: string;
142
152
  input: AgentToolInputT;
143
153
  }): Promise<DispatchOutcome>;
144
- };
154
+ } | undefined;
145
155
  }
156
+ /** The sub-agent dispatch the pipeline calls (`SubagentsService.dispatch`). */
157
+ export type SubagentDispatch = NonNullable<PipelineDeps["subagents"]>["dispatch"];
146
158
  /** tools 节点处理一步工具调用所需的上下文。 */
147
159
  export interface ToolStepContext {
148
160
  orgId: string;
@@ -204,13 +216,6 @@ export type ExecOutcome =
204
216
  connectorName: string;
205
217
  message: string;
206
218
  };
207
- type KernelTrx = Transaction<KernelDatabase>;
208
- /**
209
- * The wait of a step whose sub-agents still run (spec §7.2): id `sa-<runId>-<step>`, expiring after
210
- * the approval timeout plus one run's duration plus 10 minutes (a child may itself wait for an
211
- * approval); the timeout is a safety net.
212
- */
213
- export declare function subagentsWait(runId: string, step: number, config: Pick<KernelConfig, "tools" | "runtime">, now?: number): WaitingFor;
214
219
  /**
215
220
  * 工具执行管线(spec 5.4 / 6.2):每个阶段是独立函数——
216
221
  * `resolveOutputRefs` → `validateInput` → `decidePolicy` → `execute`(超时、熔断)→ `renderResult` / `spillIfLarge`
@@ -219,9 +224,15 @@ export declare function subagentsWait(runId: string, step: number, config: Pick<
219
224
  * 有副作用不盲目重跑(spec 4.3):执行前写 `tool_call_started`;续跑时「有开始无结果」的调用记为结果未知,不再执行。
220
225
  */
221
226
  export declare class ToolPipeline {
222
- private readonly deps;
227
+ private readonly config;
228
+ readonly txHost: TransactionHost;
223
229
  private readonly decide;
224
- constructor(deps: ToolPipelineDeps);
230
+ private readonly deps;
231
+ constructor(kdb: KernelDb, eventLog: EventLog,
232
+ /** The `agent` tool's sub-agent dispatch; absent (tests): `agent` calls are refused. */
233
+ subagents: Pick<SubagentsService, "dispatch"> | undefined, registry: Pick<ToolRegistry, "forAgent" | "findConnector" | "handler">, credentials: Pick<Credentials, "injection" | "onUnauthorized">, breaker: Pick<Breaker, "check" | "failure" | "success">, outputs: Pick<ToolOutputs, "save" | "load">, approvals: Pick<ApprovalsService, "request" | "forCall">, questions: Pick<QuestionsService, "ask" | "forCall">, config: Pick<KernelConfigService, "get">, log: Logger,
234
+ /** Plugin hooks and inline ui contributions; absent (tests): no hooks, cards dropped. */
235
+ host: Pick<ExtensionHost, "hooks" | "current"> | undefined, drift: Pick<ToolDrift, "onToolsChanged"> | undefined, txHost: TransactionHost, hooks?: ToolPipelineHooks);
225
236
  /**
226
237
  * tools 节点:按顺序处理本步 assistant 消息里的全部 `tool_call`,每个调用都以一条 `tool_result` 结束
227
238
  * (之后才回到 prepare 构建下一次请求,保持「已记录调用、未记录结果之间不构建请求」的不变式)。
@@ -241,19 +252,22 @@ export declare class ToolPipeline {
241
252
  * result, from the replica that writes it (spec §11).
242
253
  */
243
254
  private finishAgentCall;
255
+ /** {@link stopOpenAgentCalls} in a transaction of its own (a stop seen by the tools node). */
256
+ private stopOpenAgentCallsNow;
244
257
  /**
245
- * Writes, in `t`, the `tool_result` of every open `agent` call of a run that is being stopped
258
+ * Writes, in the caller's transaction (`mandatory`), the `tool_result` of every open `agent` call
259
+ * of a run that is being stopped
246
260
  * (sub-agents spec §12: a person stopped it while it waited on sub-agents, or its deadline or a
247
261
  * stop hit its tools node after a dispatch). A call whose child already ended gets the child's
248
262
  * result (and the missing `subagent_finished`); one whose child is still active gets
249
263
  * {@link AGENT_STOPPED_WITH_RUN_TEXT}. The caller stops those children after its commit.
250
264
  *
251
- * Like every `agent` result (see {@link finishAgentCall}), each is audited `tool.called` in `t`
265
+ * Like every `agent` result (see {@link finishAgentCall}), each is audited `tool.called` in it
252
266
  * (duration: the child's, or the time since the dispatch) and fires `tool.postExecute`, through
253
267
  * `fire()`, which the caller runs after its commit. Returns the steps and calls written (the
254
268
  * caller must not write a "not executed" result for them) and the highest seq written.
255
269
  */
256
- stopOpenAgentCalls(t: KernelTrx, runId: string, agent?: AgentDefinition): Promise<{
270
+ stopOpenAgentCalls(runId: string, agent?: AgentDefinition): Promise<{
257
271
  steps: number[];
258
272
  callIds: Set<string>;
259
273
  toSeq: number | null;
@@ -318,5 +332,7 @@ export declare class ToolPipeline {
318
332
  * 放行依据(审批人 / 授权 / 策略)。不含参数、结果与凭据。
319
333
  */
320
334
  private writeResult;
335
+ /** The result's events and audit rows in one transaction (see {@link writeResult}). */
336
+ private writeResultIn;
321
337
  }
322
338
  export {};
@@ -1,25 +1,47 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
1
10
  import { ToolError, validateInputForm, validateToolDisplay, } from "@capybara-hq/plugin-sdk";
11
+ import { Inject, Injectable, Optional } from "@nestjs/common";
2
12
  import { normalizeStoredDefinition } from "../agents/definition.js";
13
+ import { EventLog } from "../conversations/event-log.js";
3
14
  import { ToolViewSchema } from "../conversations/events.js";
4
15
  import { clipText } from "../extensions/hooks.js";
16
+ import { ExtensionHost } from "../extensions/host.js";
5
17
  import { ExtensionUnloadedError, PLUGIN_UNLOADED_TOOL_ERROR } from "../extensions/inflight.js";
6
18
  import { audit } from "../identity/audit.js";
19
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
20
+ import { KernelDb } from "../infra/database/kernel-db.js";
21
+ import { TransactionHost } from "../infra/database/transaction-host.js";
22
+ import { Transactional } from "../infra/database/transactional.decorator.js";
23
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
7
24
  import { UNKNOWN_RESULT_TEXT } from "../runtime/context/pairing.js";
8
25
  import { fireObserve, hookDeniedAudit, hookDeniedEvent, hookScope, } from "../runtime/hook-calls.js";
9
- import { subagentsWaitId, subagentWaitingIdemKey, } from "../runtime/loop.js";
26
+ import { subagentsWait, subagentWaitingIdemKey, } from "../runtime/loop.js";
10
27
  import { assistantIdemKey, MAX_MODEL_ATTEMPTS, modelCallIdemKey } from "../runtime/model-call.js";
11
28
  import { TERMINAL_STATUSES } from "../runtime/run-finish.js";
12
29
  import { childResult, dispatchOfCall, finishedEvent, } from "../runtime/subagents/child.js";
13
30
  import { forkSeqOfCall, pairStoppedForks } from "../runtime/subagents/skill-fork.js";
31
+ import { SubagentsService } from "../runtime/subagents/subagents.service.js";
14
32
  import { skillLoadOfferedIn } from "../skills/catalog.js";
15
- import { breakerOpenMessage } from "./breaker.js";
33
+ import { ApprovalsService } from "./approvals.service.js";
34
+ import { Breaker, breakerOpenMessage } from "./breaker.js";
16
35
  import { AGENT_STOPPED_WITH_RUN_TEXT, AGENT_TOOL, AgentToolInput, } from "./builtins/agent.js";
17
36
  import { isAlwaysLoaded, notLoadedText } from "./builtins/tool-search.js";
18
- import { CredentialMissing } from "./credentials.js";
37
+ import { CredentialMissing, Credentials } from "./credentials.js";
38
+ import { ToolDrift } from "./drift.js";
19
39
  import { ElicitationSession } from "./elicitation.js";
20
- import { renderResult, resolveOutputRefs, spillIfLarge } from "./outputs.js";
40
+ import { renderResult, resolveOutputRefs, spillIfLarge, ToolOutputs } from "./outputs.js";
21
41
  import { createDecidePolicy } from "./policy.js";
42
+ import { QuestionsService } from "./questions.service.js";
22
43
  import { redactDeep, redactorFor } from "./redact.js";
44
+ import { ToolRegistry, } from "./registry.js";
23
45
  import { runResourceTool } from "./resources.js";
24
46
  import { validateInput } from "./validate.js";
25
47
  // ---- 模型可见文案(英文) ----
@@ -60,22 +82,10 @@ const invalidFormText = (key, problems) => `Tool ${key} returned an invalid inpu
60
82
  const stateTooLargeText = (key) => `Tool ${key} returned input state larger than ${MAX_INPUT_STATE_BYTES / 1024} KB.`;
61
83
  const personalMissingText = (connectorName) => `The user has not connected ${connectorName}. A connect card was shown; ask the user to connect, then retry.`;
62
84
  const orgMissingText = (connectorName) => `${connectorName} has no organization credential configured; ask an organization admin to set it up.`;
85
+ /** Optional provider: the pipeline's {@link ToolPipelineHooks} (tests). */
86
+ export const TOOL_PIPELINE_HOOKS = Symbol("TOOL_PIPELINE_HOOKS");
63
87
  /** `runCall` dispatched a sub-agent: the call stays open until the child run finishes. */
64
88
  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
- }
79
89
  const approvalAuthorization = (a) => ({
80
90
  approvalId: a.id,
81
91
  approvedByAccountId: a.decidedBy,
@@ -143,12 +153,47 @@ const inputWait = (q) => ({
143
153
  *
144
154
  * 有副作用不盲目重跑(spec 4.3):执行前写 `tool_call_started`;续跑时「有开始无结果」的调用记为结果未知,不再执行。
145
155
  */
146
- export class ToolPipeline {
147
- deps;
156
+ let ToolPipeline = class ToolPipeline {
157
+ config;
158
+ txHost;
148
159
  decide;
149
- constructor(deps) {
150
- this.deps = deps;
151
- this.decide = deps.decidePolicy ?? createDecidePolicy(deps.db);
160
+ deps;
161
+ constructor(kdb, eventLog,
162
+ /** The `agent` tool's sub-agent dispatch; absent (tests): `agent` calls are refused. */
163
+ subagents, registry, credentials, breaker, outputs, approvals, questions, config, log,
164
+ /** Plugin hooks and inline ui contributions; absent (tests): no hooks, cards dropped. */
165
+ host, drift, txHost, hooks) {
166
+ this.config = config;
167
+ this.txHost = txHost;
168
+ this.deps = {
169
+ get db() {
170
+ return kdb.db;
171
+ },
172
+ eventLog,
173
+ registry,
174
+ credentials,
175
+ breaker,
176
+ outputs,
177
+ approvals,
178
+ questions,
179
+ log,
180
+ hooks,
181
+ get pluginHooks() {
182
+ return host?.hooks;
183
+ },
184
+ inlineViews: (plugin) => new Set((host?.current(plugin)?.manifest.ui ?? [])
185
+ .filter((c) => c.place === "inline" && c.aliasOf === undefined)
186
+ .map((c) => c.id)),
187
+ onToolsChanged: (orgId, connectorId) => {
188
+ void drift?.onToolsChanged(orgId, connectorId);
189
+ },
190
+ get subagents() {
191
+ return subagents ? { dispatch: (a) => subagents.dispatch(a) } : undefined;
192
+ },
193
+ };
194
+ const decide = hooks?.decidePolicy;
195
+ // the default policy reads live, on the context's handle
196
+ this.decide = decide ?? ((tool, def, c) => createDecidePolicy(kdb.db)(tool, def, c));
152
197
  }
153
198
  /**
154
199
  * tools 节点:按顺序处理本步 assistant 消息里的全部 `tool_call`,每个调用都以一条 `tool_result` 结束
@@ -203,9 +248,7 @@ export class ToolPipeline {
203
248
  // their calls get their results now, and the children are stopped after the run's terminal
204
249
  // commit (spec §12)
205
250
  if (ctx.signal.aborted) {
206
- const stopped = await this.deps.db
207
- .transaction()
208
- .execute((t) => this.stopOpenAgentCalls(t, ctx.runId, ctx.agent));
251
+ const stopped = await this.stopOpenAgentCallsNow(ctx.runId, ctx.agent);
209
252
  if (stopped.toSeq !== null) {
210
253
  await eventLog.notify(ctx.conversationId, stopped.toSeq);
211
254
  }
@@ -214,7 +257,7 @@ export class ToolPipeline {
214
257
  }
215
258
  return {
216
259
  kind: "suspended",
217
- waitingFor: subagentsWait(ctx.runId, ctx.step, this.deps.config()),
260
+ waitingFor: subagentsWait(ctx.runId, ctx.step, this.config.get()),
218
261
  };
219
262
  }
220
263
  return { kind: "done" };
@@ -268,19 +311,25 @@ export class ToolPipeline {
268
311
  }
269
312
  return true;
270
313
  }
314
+ /** {@link stopOpenAgentCalls} in a transaction of its own (a stop seen by the tools node). */
315
+ async stopOpenAgentCallsNow(runId, agent) {
316
+ return this.stopOpenAgentCalls(runId, agent);
317
+ }
271
318
  /**
272
- * Writes, in `t`, the `tool_result` of every open `agent` call of a run that is being stopped
319
+ * Writes, in the caller's transaction (`mandatory`), the `tool_result` of every open `agent` call
320
+ * of a run that is being stopped
273
321
  * (sub-agents spec §12: a person stopped it while it waited on sub-agents, or its deadline or a
274
322
  * stop hit its tools node after a dispatch). A call whose child already ended gets the child's
275
323
  * result (and the missing `subagent_finished`); one whose child is still active gets
276
324
  * {@link AGENT_STOPPED_WITH_RUN_TEXT}. The caller stops those children after its commit.
277
325
  *
278
- * Like every `agent` result (see {@link finishAgentCall}), each is audited `tool.called` in `t`
326
+ * Like every `agent` result (see {@link finishAgentCall}), each is audited `tool.called` in it
279
327
  * (duration: the child's, or the time since the dispatch) and fires `tool.postExecute`, through
280
328
  * `fire()`, which the caller runs after its commit. Returns the steps and calls written (the
281
329
  * caller must not write a "not executed" result for them) and the highest seq written.
282
330
  */
283
- async stopOpenAgentCalls(t, runId, agent) {
331
+ async stopOpenAgentCalls(runId, agent) {
332
+ const t = this.deps.db;
284
333
  // phase D: the run's fork invocation without a report gets one (a fork has no tool call)
285
334
  const forks = await pairStoppedForks(t, this.deps.eventLog, runId);
286
335
  const none = {
@@ -395,7 +444,7 @@ export class ToolPipeline {
395
444
  }
396
445
  if (calls.length === 0)
397
446
  return none;
398
- const written = await this.deps.eventLog.append(conversationId, events, t);
447
+ const written = await this.deps.eventLog.appendIn(conversationId, events);
399
448
  for (const c of calls) {
400
449
  const approval = await t
401
450
  .selectFrom("approvals")
@@ -719,7 +768,7 @@ export class ToolPipeline {
719
768
  const card = outcome.kind === "result" && tool.source.kind === "plugin"
720
769
  ? this.cardOf(outcome.result, tool.source.plugin, tool.key)
721
770
  : undefined;
722
- const cfg = this.deps.config().tools;
771
+ const cfg = this.config.get().tools;
723
772
  const spilled = await spillIfLarge(rendered.text, {
724
773
  // 内置工具可给更低的转存阈值(沙箱 bash 30000 字符)
725
774
  spillChars: Math.min(cfg.outputSpillChars, tool.spillChars ?? Number.POSITIVE_INFINITY),
@@ -880,7 +929,7 @@ export class ToolPipeline {
880
929
  ctx.parent !== undefined && { sandboxConversationId: ctx.parent.conversationId }),
881
930
  };
882
931
  // 内置工具可按输入给自己的时限(沙箱 bash 按命令超时加余量);缺省 tools.timeoutMs
883
- const timeoutMs = tool.timeoutMs?.(input) ?? this.deps.config().tools.timeoutMs;
932
+ const timeoutMs = tool.timeoutMs?.(input) ?? this.config.get().tools.timeoutMs;
884
933
  try {
885
934
  const r = await this.bounded(ctx.signal, (signal) => handler(input, { ...base, signal }), undefined, timeoutMs);
886
935
  if (r === "timeout") {
@@ -898,7 +947,7 @@ export class ToolPipeline {
898
947
  }
899
948
  }
900
949
  async executeConnector(tool, source, input, ctx, resume) {
901
- const { db, registry, breaker, credentials, config } = this.deps;
950
+ const { db, registry, breaker, credentials } = this.deps;
902
951
  const { orgId } = ctx;
903
952
  const connectorId = source.connectorId;
904
953
  const app = await db
@@ -1011,7 +1060,7 @@ export class ToolPipeline {
1011
1060
  onElicit: elicit.handle,
1012
1061
  onToolsChanged: () => {
1013
1062
  try {
1014
- this.deps.onToolsChanged?.(orgId, connectorId);
1063
+ this.deps.onToolsChanged(orgId, connectorId);
1015
1064
  }
1016
1065
  catch (err) {
1017
1066
  this.deps.log.warn("tools changed notification failed", {
@@ -1037,7 +1086,7 @@ export class ToolPipeline {
1037
1086
  return ask;
1038
1087
  if (r === "timeout") {
1039
1088
  await breaker.failure(orgId, connectorId);
1040
- return { kind: "error", message: timeoutText(tool.key, config().tools.timeoutMs) };
1089
+ return { kind: "error", message: timeoutText(tool.key, this.config.get().tools.timeoutMs) };
1041
1090
  }
1042
1091
  // 工具自己报告的错误(isError)说明服务可用,也算成功。
1043
1092
  await breaker.success(orgId, connectorId);
@@ -1084,7 +1133,7 @@ export class ToolPipeline {
1084
1133
  /** 额外参与竞速的信号(不传给 work):中止时以 `Stopped` 抛出,由调用方判断原因。 */
1085
1134
  interrupt,
1086
1135
  /** 时限(毫秒),缺省 `tools.timeoutMs`。 */
1087
- timeoutMs = this.deps.config().tools.timeoutMs) {
1136
+ timeoutMs = this.config.get().tools.timeoutMs) {
1088
1137
  if (runSignal.aborted)
1089
1138
  return "aborted";
1090
1139
  const timeout = new AbortController();
@@ -1157,7 +1206,7 @@ export class ToolPipeline {
1157
1206
  if (c === undefined)
1158
1207
  return undefined;
1159
1208
  const x = (typeof c === "object" && c !== null ? c : {});
1160
- const views = this.deps.inlineViews?.(plugin);
1209
+ const views = this.deps.inlineViews(plugin);
1161
1210
  const keyOk = x.key === undefined || (typeof x.key === "string" && x.key !== "" && x.key.length <= 200);
1162
1211
  if (typeof x.view !== "string" || !views?.has(x.view) || !keyOk) {
1163
1212
  this.deps.log.warn("tool returned an inline card that is not an inline view of its extension; dropped", {
@@ -1205,32 +1254,64 @@ export class ToolPipeline {
1205
1254
  await this.deps.eventLog.append(ctx.conversationId, events);
1206
1255
  return;
1207
1256
  }
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
- });
1257
+ const written = await this.writeResultIn(ctx, callId, toolKey, r, events, callAudit, audits);
1258
+ await this.deps.eventLog.notify(ctx.conversationId, Math.max(...written.map((e) => e.seq)));
1259
+ }
1260
+ /** The result's events and audit rows in one transaction (see {@link writeResult}). */
1261
+ async writeResultIn(ctx, callId, toolKey, r, events, callAudit, audits) {
1262
+ const t = this.deps.db;
1263
+ const out = await this.deps.eventLog.appendIn(ctx.conversationId, events);
1264
+ for (const a of audits)
1265
+ await audit(t, a);
1266
+ if (callAudit === undefined)
1232
1267
  return out;
1268
+ await audit(t, {
1269
+ actorAccountId: ctx.accountId,
1270
+ orgId: ctx.orgId,
1271
+ action: "tool.called",
1272
+ target: ctx.conversationId,
1273
+ detail: {
1274
+ toolKey,
1275
+ isError: r.isError,
1276
+ durationMs: callAudit.durationMs,
1277
+ agentId: ctx.agentId,
1278
+ agentVersion: ctx.agentVersion,
1279
+ conversationId: ctx.conversationId,
1280
+ runId: ctx.runId,
1281
+ callId,
1282
+ ...(callAudit.connectorId !== null && { connectorId: callAudit.connectorId }),
1283
+ ...callAudit.authorization,
1284
+ },
1233
1285
  });
1234
- await this.deps.eventLog.notify(ctx.conversationId, Math.max(...written.map((e) => e.seq)));
1286
+ return out;
1235
1287
  }
1236
- }
1288
+ };
1289
+ __decorate([
1290
+ Transactional()
1291
+ ], ToolPipeline.prototype, "stopOpenAgentCallsNow", null);
1292
+ __decorate([
1293
+ Transactional({ propagation: "mandatory" })
1294
+ ], ToolPipeline.prototype, "stopOpenAgentCalls", null);
1295
+ __decorate([
1296
+ Transactional()
1297
+ ], ToolPipeline.prototype, "writeResultIn", null);
1298
+ ToolPipeline = __decorate([
1299
+ Injectable(),
1300
+ __param(0, Inject(KernelDb)),
1301
+ __param(1, Inject(EventLog)),
1302
+ __param(2, Inject(SubagentsService)),
1303
+ __param(3, Inject(ToolRegistry)),
1304
+ __param(4, Inject(Credentials)),
1305
+ __param(5, Inject(Breaker)),
1306
+ __param(6, Inject(ToolOutputs)),
1307
+ __param(7, Inject(ApprovalsService)),
1308
+ __param(8, Inject(QuestionsService)),
1309
+ __param(9, Inject(KernelConfigService)),
1310
+ __param(10, Inject(KERNEL_LOGGER)),
1311
+ __param(11, Inject(ExtensionHost)),
1312
+ __param(12, Inject(ToolDrift)),
1313
+ __param(13, Inject(TransactionHost)),
1314
+ __param(14, Optional()),
1315
+ __param(14, Inject(TOOL_PIPELINE_HOOKS))
1316
+ ], ToolPipeline);
1317
+ export { ToolPipeline };
@@ -1,4 +1,4 @@
1
- import type { KernelDb } from "../db/kernel-schema.js";
1
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
2
2
  import type { DecidePolicy } from "./pipeline.js";
3
3
  import type { ResolvedTool, ToolPolicy } from "./registry.js";
4
4
  /**
@@ -57,4 +57,4 @@ export declare function isFixedAsk(tool: ResolvedTool, visibility?: "private" |
57
57
  *
58
58
  * 结果为 `ask` 时返回审批请求,默认指向发起人本人;记住的授权把 `ask` 放行时返回 `{ grant }`(按 allow 执行)。
59
59
  */
60
- export declare function createDecidePolicy(db: KernelDb): DecidePolicy;
60
+ export declare function createDecidePolicy(db: KernelSchemaDb): DecidePolicy;
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { type Principal } from "../identity/principal.js";
3
3
  import { type OrgContext } from "../orgs/org.guard.js";
4
- import type { QuestionsService, QuestionView } from "./questions.service.js";
4
+ import { QuestionsService, type QuestionView } from "./questions.service.js";
5
5
  /** 回答体:`answer` 的形状由服务按表单校验(`validateAnswer`,不符 → `validation_failed`)。 */
6
6
  declare const AnswerBody: z.ZodObject<{
7
7
  answer: z.ZodRecord<z.ZodString, z.ZodUnknown>;