@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.3

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 (670) hide show
  1. package/dist/admin/admin.controller.d.ts +17 -17
  2. package/dist/admin/admin.controller.js +43 -26
  3. package/dist/admin/admin.module.d.ts +3 -0
  4. package/dist/admin/admin.module.js +22 -0
  5. package/dist/admin/extensions.controller.d.ts +14 -14
  6. package/dist/admin/extensions.controller.js +30 -17
  7. package/dist/admin/setup-lock.d.ts +16 -0
  8. package/dist/admin/setup-lock.js +47 -0
  9. package/dist/admin/setup.controller.d.ts +8 -8
  10. package/dist/admin/setup.controller.js +27 -25
  11. package/dist/admin/setup.service.d.ts +19 -27
  12. package/dist/admin/setup.service.js +61 -61
  13. package/dist/agents/agent-lookup.d.ts +53 -0
  14. package/dist/agents/agent-lookup.js +187 -0
  15. package/dist/agents/agents.controller.d.ts +1 -1
  16. package/dist/agents/agents.controller.js +14 -8
  17. package/dist/agents/agents.module.d.ts +7 -0
  18. package/dist/agents/agents.module.js +41 -0
  19. package/dist/agents/agents.service.d.ts +39 -58
  20. package/dist/agents/agents.service.js +280 -335
  21. package/dist/agents/definition.d.ts +39 -8
  22. package/dist/agents/definition.js +201 -17
  23. package/dist/agents/models.controller.d.ts +1 -1
  24. package/dist/agents/models.controller.js +2 -2
  25. package/dist/agents/templates.controller.d.ts +1 -1
  26. package/dist/agents/templates.controller.js +2 -2
  27. package/dist/agents/templates.d.ts +6 -8
  28. package/dist/agents/templates.js +39 -8
  29. package/dist/app.d.ts +93 -0
  30. package/dist/app.js +150 -0
  31. package/dist/catalog/admin-catalog.controller.d.ts +3 -3
  32. package/dist/catalog/admin-catalog.controller.js +27 -13
  33. package/dist/catalog/catalog-content.d.ts +185 -0
  34. package/dist/catalog/catalog-content.js +326 -0
  35. package/dist/catalog/catalog-items.d.ts +186 -0
  36. package/dist/catalog/catalog-items.js +410 -0
  37. package/dist/catalog/catalog.module.d.ts +14 -0
  38. package/dist/catalog/catalog.module.js +71 -0
  39. package/dist/catalog/catalog.service.d.ts +34 -188
  40. package/dist/catalog/catalog.service.js +155 -489
  41. package/dist/catalog/claude/agents.js +13 -10
  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 +31 -14
  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 +10 -4
  70. package/dist/channels/cards.js +16 -8
  71. package/dist/channels/channels.module.d.ts +40 -0
  72. package/dist/channels/channels.module.js +128 -0
  73. package/dist/channels/connections.controller.d.ts +1 -1
  74. package/dist/channels/connections.controller.js +11 -6
  75. package/dist/channels/connections.service.d.ts +43 -21
  76. package/dist/channels/connections.service.js +236 -131
  77. package/dist/channels/inbound.d.ts +34 -38
  78. package/dist/channels/inbound.js +107 -41
  79. package/dist/channels/job-ids.d.ts +10 -0
  80. package/dist/channels/job-ids.js +10 -0
  81. package/dist/channels/jobs.d.ts +85 -0
  82. package/dist/channels/jobs.js +157 -0
  83. package/dist/channels/outbound.d.ts +60 -82
  84. package/dist/channels/outbound.js +165 -194
  85. package/dist/channels/supervisor.d.ts +88 -46
  86. package/dist/channels/supervisor.js +230 -132
  87. package/dist/channels/threads.d.ts +29 -8
  88. package/dist/channels/threads.js +71 -13
  89. package/dist/channels/webhook.d.ts +20 -14
  90. package/dist/channels/webhook.js +51 -20
  91. package/dist/config/load.d.ts +3 -2
  92. package/dist/config/load.js +3 -2
  93. package/dist/config/nacos-source.js +11 -2
  94. package/dist/config/schema.d.ts +1 -0
  95. package/dist/config/schema.js +12 -6
  96. package/dist/conversations/access.d.ts +29 -0
  97. package/dist/conversations/access.js +86 -0
  98. package/dist/conversations/artifacts.d.ts +11 -11
  99. package/dist/conversations/artifacts.js +36 -10
  100. package/dist/conversations/attachments.controller.d.ts +1 -1
  101. package/dist/conversations/attachments.controller.js +8 -6
  102. package/dist/conversations/attachments.module.d.ts +7 -0
  103. package/dist/conversations/attachments.module.js +25 -0
  104. package/dist/conversations/attachments.service.d.ts +30 -22
  105. package/dist/conversations/attachments.service.js +119 -46
  106. package/dist/conversations/conversations.controller.d.ts +8 -7
  107. package/dist/conversations/conversations.controller.js +59 -29
  108. package/dist/conversations/conversations.module.d.ts +8 -0
  109. package/dist/conversations/conversations.module.js +69 -0
  110. package/dist/conversations/conversations.service.d.ts +40 -38
  111. package/dist/conversations/conversations.service.js +130 -140
  112. package/dist/conversations/event-log.d.ts +39 -18
  113. package/dist/conversations/event-log.js +93 -27
  114. package/dist/conversations/events.d.ts +23 -3
  115. package/dist/conversations/events.js +26 -14
  116. package/dist/conversations/files.d.ts +10 -10
  117. package/dist/conversations/files.js +37 -11
  118. package/dist/conversations/idem-keys.d.ts +5 -0
  119. package/dist/conversations/idem-keys.js +5 -0
  120. package/dist/conversations/job-ids.d.ts +6 -0
  121. package/dist/conversations/job-ids.js +6 -0
  122. package/dist/conversations/outputs-read.d.ts +11 -11
  123. package/dist/conversations/outputs-read.js +31 -7
  124. package/dist/conversations/queue.d.ts +48 -56
  125. package/dist/conversations/queue.js +13 -289
  126. package/dist/conversations/queue.service.d.ts +60 -0
  127. package/dist/conversations/queue.service.js +343 -0
  128. package/dist/conversations/sandbox-status.d.ts +13 -10
  129. package/dist/conversations/sandbox-status.js +36 -8
  130. package/dist/conversations/titles.d.ts +71 -24
  131. package/dist/conversations/titles.js +159 -63
  132. package/dist/ctx/bus.js +9 -3
  133. package/dist/ctx/create-ctx.d.ts +6 -0
  134. package/dist/ctx/create-ctx.js +7 -9
  135. package/dist/ctx/lock.d.ts +7 -3
  136. package/dist/ctx/lock.js +9 -20
  137. package/dist/ctx/secrets.d.ts +10 -2
  138. package/dist/ctx/secrets.js +7 -3
  139. package/dist/db/kernel-schema.d.ts +4 -4
  140. package/dist/db/pool.d.ts +5 -0
  141. package/dist/db/pool.js +1 -0
  142. package/dist/errors.d.ts +1 -0
  143. package/dist/errors.js +1 -0
  144. package/dist/evals/budget.d.ts +42 -21
  145. package/dist/evals/budget.js +114 -62
  146. package/dist/evals/evals.module.d.ts +31 -0
  147. package/dist/evals/evals.module.js +114 -0
  148. package/dist/evals/jobs.d.ts +20 -0
  149. package/dist/evals/jobs.js +45 -0
  150. package/dist/evals/recorded-tools.d.ts +27 -1
  151. package/dist/evals/recorded-tools.js +85 -10
  152. package/dist/evals/run-replay.d.ts +61 -8
  153. package/dist/evals/run-replay.js +159 -85
  154. package/dist/evals/runs.controller.d.ts +1 -1
  155. package/dist/evals/runs.controller.js +17 -8
  156. package/dist/evals/runs.service.d.ts +23 -45
  157. package/dist/evals/runs.service.js +245 -234
  158. package/dist/evals/sets.controller.d.ts +1 -1
  159. package/dist/evals/sets.controller.js +17 -8
  160. package/dist/evals/sets.service.d.ts +22 -6
  161. package/dist/evals/sets.service.js +248 -194
  162. package/dist/evals/snapshot.d.ts +2 -2
  163. package/dist/evals/step-replay.d.ts +2 -2
  164. package/dist/evals/step-replay.js +1 -1
  165. package/dist/evals/trajectory.controller.d.ts +1 -1
  166. package/dist/evals/trajectory.controller.js +11 -7
  167. package/dist/evals/trajectory.d.ts +2 -2
  168. package/dist/evals/trajectory.service.d.ts +5 -4
  169. package/dist/evals/trajectory.service.js +30 -7
  170. package/dist/evals/worker.d.ts +44 -27
  171. package/dist/evals/worker.js +220 -121
  172. package/dist/extensions/admin-ops.d.ts +61 -33
  173. package/dist/extensions/admin-ops.js +248 -154
  174. package/dist/extensions/admin-view.d.ts +38 -27
  175. package/dist/extensions/admin-view.js +126 -55
  176. package/dist/extensions/approvals.d.ts +12 -8
  177. package/dist/extensions/approvals.js +73 -46
  178. package/dist/extensions/blobs.d.ts +27 -10
  179. package/dist/extensions/blobs.js +111 -45
  180. package/dist/extensions/bootstrap.d.ts +58 -31
  181. package/dist/extensions/bootstrap.js +175 -121
  182. package/dist/extensions/cli.d.ts +20 -10
  183. package/dist/extensions/cli.js +41 -96
  184. package/dist/extensions/config-issues.d.ts +7 -0
  185. package/dist/extensions/config-issues.js +31 -0
  186. package/dist/extensions/deployment-config-store.d.ts +49 -0
  187. package/dist/extensions/deployment-config-store.js +133 -0
  188. package/dist/extensions/deployment-config.d.ts +58 -67
  189. package/dist/extensions/deployment-config.js +202 -230
  190. package/dist/extensions/enabled.d.ts +5 -5
  191. package/dist/extensions/extensions.module.d.ts +8 -0
  192. package/dist/extensions/extensions.module.js +77 -0
  193. package/dist/extensions/hooks.d.ts +3 -2
  194. package/dist/extensions/hooks.js +1 -1
  195. package/dist/extensions/host.d.ts +72 -68
  196. package/dist/extensions/host.js +191 -152
  197. package/dist/extensions/installs.d.ts +49 -16
  198. package/dist/extensions/installs.js +128 -32
  199. package/dist/extensions/job-ids.d.ts +6 -0
  200. package/dist/extensions/job-ids.js +6 -0
  201. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  202. package/dist/extensions/lifecycle-topics.js +18 -0
  203. package/dist/extensions/lifecycle.d.ts +35 -47
  204. package/dist/extensions/lifecycle.js +103 -39
  205. package/dist/extensions/locks.d.ts +33 -0
  206. package/dist/extensions/locks.js +86 -0
  207. package/dist/extensions/migrate-lock.d.ts +3 -4
  208. package/dist/extensions/org-config.controller.d.ts +1 -1
  209. package/dist/extensions/org-config.controller.js +8 -5
  210. package/dist/extensions/org-config.d.ts +48 -46
  211. package/dist/extensions/org-config.js +284 -226
  212. package/dist/extensions/registry.d.ts +50 -2
  213. package/dist/extensions/registry.js +89 -4
  214. package/dist/extensions/sources.d.ts +12 -8
  215. package/dist/extensions/sources.js +34 -13
  216. package/dist/files/files.module.d.ts +3 -0
  217. package/dist/files/files.module.js +22 -0
  218. package/dist/files/previewers.controller.d.ts +7 -2
  219. package/dist/files/previewers.controller.js +17 -9
  220. package/dist/files/previewers.d.ts +13 -18
  221. package/dist/files/previewers.js +83 -36
  222. package/dist/http/adapter.d.ts +3 -0
  223. package/dist/http/adapter.js +25 -0
  224. package/dist/http/api.module.d.ts +3 -110
  225. package/dist/http/api.module.js +47 -355
  226. package/dist/http/app.d.ts +11 -15
  227. package/dist/http/app.js +17 -62
  228. package/dist/http/error-filter.module.d.ts +5 -0
  229. package/dist/http/error-filter.module.js +18 -0
  230. package/dist/http/error.filter.js +2 -2
  231. package/dist/identity/accounts.d.ts +82 -29
  232. package/dist/identity/accounts.js +294 -175
  233. package/dist/identity/api-tokens.d.ts +11 -7
  234. package/dist/identity/api-tokens.js +71 -44
  235. package/dist/identity/audit.d.ts +7 -4
  236. package/dist/identity/audit.js +5 -1
  237. package/dist/identity/auth.controller.d.ts +11 -10
  238. package/dist/identity/auth.controller.js +31 -25
  239. package/dist/identity/auth.guard.d.ts +3 -3
  240. package/dist/identity/auth.guard.js +6 -4
  241. package/dist/identity/binding.d.ts +9 -11
  242. package/dist/identity/binding.js +41 -13
  243. package/dist/identity/enterprise-admin.d.ts +18 -12
  244. package/dist/identity/enterprise-admin.js +67 -13
  245. package/dist/identity/external-identity-lock.d.ts +17 -0
  246. package/dist/identity/external-identity-lock.js +39 -0
  247. package/dist/identity/external.d.ts +19 -15
  248. package/dist/identity/external.js +163 -125
  249. package/dist/identity/identity.module.d.ts +6 -0
  250. package/dist/identity/identity.module.js +56 -0
  251. package/dist/identity/me.controller.d.ts +16 -15
  252. package/dist/identity/me.controller.js +37 -31
  253. package/dist/identity/sessions.d.ts +12 -10
  254. package/dist/identity/sessions.js +74 -42
  255. package/dist/identity/settings.d.ts +20 -14
  256. package/dist/identity/settings.js +86 -58
  257. package/dist/identity/sso.controller.d.ts +7 -7
  258. package/dist/identity/sso.controller.js +13 -9
  259. package/dist/identity/sso.d.ts +9 -12
  260. package/dist/identity/sso.js +54 -24
  261. package/dist/inbox/inbox.module.d.ts +3 -0
  262. package/dist/inbox/inbox.module.js +22 -0
  263. package/dist/inbox/inbox.service.d.ts +7 -9
  264. package/dist/inbox/inbox.service.js +32 -11
  265. package/dist/index.d.ts +16 -11
  266. package/dist/index.js +9 -6
  267. package/dist/infra/cache/cache.module.d.ts +3 -0
  268. package/dist/infra/cache/cache.module.js +16 -0
  269. package/dist/infra/cache/cache.service.d.ts +21 -0
  270. package/dist/infra/cache/cache.service.js +80 -0
  271. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  272. package/dist/infra/cache/cacheable.decorator.js +83 -0
  273. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  274. package/dist/infra/cli/kernel-cli.module.js +165 -0
  275. package/dist/infra/close-within.d.ts +15 -0
  276. package/dist/infra/close-within.js +36 -0
  277. package/dist/infra/config/config.module.d.ts +13 -0
  278. package/dist/infra/config/config.module.js +39 -0
  279. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  280. package/dist/infra/config/kernel-config.service.js +126 -0
  281. package/dist/infra/database/after-commit.d.ts +6 -0
  282. package/dist/infra/database/after-commit.js +9 -0
  283. package/dist/infra/database/database.module.d.ts +25 -0
  284. package/dist/infra/database/database.module.js +90 -0
  285. package/dist/infra/database/kernel-db.d.ts +22 -0
  286. package/dist/infra/database/kernel-db.js +65 -0
  287. package/dist/infra/database/transaction-host.d.ts +50 -0
  288. package/dist/infra/database/transaction-host.js +125 -0
  289. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  290. package/dist/infra/database/transactional.decorator.js +27 -0
  291. package/dist/infra/database/xact-lock.d.ts +17 -0
  292. package/dist/infra/database/xact-lock.js +43 -0
  293. package/dist/infra/events/kernel-events.d.ts +96 -0
  294. package/dist/infra/events/kernel-events.js +65 -0
  295. package/dist/infra/health/health.controller.d.ts +26 -0
  296. package/dist/infra/health/health.controller.js +104 -0
  297. package/dist/infra/health/health.module.d.ts +9 -0
  298. package/dist/infra/health/health.module.js +24 -0
  299. package/dist/infra/health/health.options.d.ts +10 -0
  300. package/dist/infra/health/health.options.js +15 -0
  301. package/dist/infra/health/shutdown-state.d.ts +6 -0
  302. package/dist/infra/health/shutdown-state.js +2 -0
  303. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  304. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  305. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  306. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  307. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  308. package/dist/infra/lifecycle/process-guards.js +86 -0
  309. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  310. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  311. package/dist/infra/lock/key-template.d.ts +13 -0
  312. package/dist/infra/lock/key-template.js +46 -0
  313. package/dist/infra/lock/lock.module.d.ts +3 -0
  314. package/dist/infra/lock/lock.module.js +16 -0
  315. package/dist/infra/lock/lock.service.d.ts +120 -0
  316. package/dist/infra/lock/lock.service.js +343 -0
  317. package/dist/infra/lock/shared-lease.d.ts +44 -0
  318. package/dist/infra/lock/shared-lease.js +121 -0
  319. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  320. package/dist/infra/lock/with-lock.decorator.js +49 -0
  321. package/dist/infra/logging/logging.module.d.ts +16 -0
  322. package/dist/infra/logging/logging.module.js +34 -0
  323. package/dist/infra/queue/configured-processor.d.ts +18 -0
  324. package/dist/infra/queue/configured-processor.js +23 -0
  325. package/dist/infra/queue/job-failure.d.ts +18 -0
  326. package/dist/infra/queue/job-failure.js +26 -0
  327. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  328. package/dist/infra/queue/queue-shutdown.js +81 -0
  329. package/dist/infra/queue/queue.module.d.ts +16 -0
  330. package/dist/infra/queue/queue.module.js +61 -0
  331. package/dist/infra/queue/redis-connection.d.ts +7 -0
  332. package/dist/infra/queue/redis-connection.js +18 -0
  333. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  334. package/dist/infra/queue/retired-schedulers.js +9 -0
  335. package/dist/infra/queue/run-job.d.ts +16 -0
  336. package/dist/infra/queue/run-job.js +19 -0
  337. package/dist/infra/redis/redis.module.d.ts +24 -0
  338. package/dist/infra/redis/redis.module.js +87 -0
  339. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  340. package/dist/infra/schedule/cron-tick.js +25 -0
  341. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  342. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  343. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  344. package/dist/infra/schedule/locked-interval.js +190 -0
  345. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  346. package/dist/infra/schedule/locked-tick.js +137 -0
  347. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  348. package/dist/infra/schedule/schedule.module.js +27 -0
  349. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  350. package/dist/infra/schedule/scheduled-runs.js +163 -0
  351. package/dist/infra/swagger/swagger.d.ts +16 -0
  352. package/dist/infra/swagger/swagger.js +31 -0
  353. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  354. package/dist/infra/throttler/credential-throttler.js +77 -0
  355. package/dist/infra/throttler/named-throttlers.d.ts +31 -0
  356. package/dist/infra/throttler/named-throttlers.js +119 -0
  357. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  358. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  359. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  360. package/dist/infra/throttler/throttler.guard.js +68 -0
  361. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  362. package/dist/infra/throttler/throttler.module.js +53 -0
  363. package/dist/infra/tokens.d.ts +15 -0
  364. package/dist/infra/tokens.js +15 -0
  365. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  366. package/dist/infra/validation/create-zod-dto.js +35 -0
  367. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  368. package/dist/infra/validation/parse-with-zod.js +12 -0
  369. package/dist/infra/validation/validation.module.d.ts +3 -0
  370. package/dist/infra/validation/validation.module.js +16 -0
  371. package/dist/infra/validation/zod-params.d.ts +7 -0
  372. package/dist/infra/validation/zod-params.js +42 -0
  373. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  374. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  375. package/dist/kernel.d.ts +9 -244
  376. package/dist/kernel.js +8 -1305
  377. package/dist/kernel.module.d.ts +17 -0
  378. package/dist/kernel.module.js +136 -0
  379. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  380. package/dist/lifecycle/kernel-lifecycle.js +456 -0
  381. package/dist/lifecycle/tokens.d.ts +3 -0
  382. package/dist/lifecycle/tokens.js +3 -0
  383. package/dist/log-context.d.ts +2 -0
  384. package/dist/log-context.js +4 -0
  385. package/dist/models/models.module.d.ts +3 -0
  386. package/dist/models/models.module.js +24 -0
  387. package/dist/models/prices.d.ts +8 -2
  388. package/dist/models/prices.js +65 -37
  389. package/dist/models/purposes.controller.d.ts +1 -1
  390. package/dist/models/purposes.controller.js +5 -6
  391. package/dist/models/purposes.d.ts +35 -13
  392. package/dist/models/purposes.js +101 -51
  393. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  394. package/dist/orgs/directory-sync.controller.js +2 -2
  395. package/dist/orgs/directory-sync.d.ts +61 -31
  396. package/dist/orgs/directory-sync.js +212 -125
  397. package/dist/orgs/invitations.controller.d.ts +8 -8
  398. package/dist/orgs/invitations.controller.js +27 -26
  399. package/dist/orgs/invitations.service.d.ts +12 -9
  400. package/dist/orgs/invitations.service.js +130 -92
  401. package/dist/orgs/job-ids.d.ts +8 -0
  402. package/dist/orgs/job-ids.js +8 -0
  403. package/dist/orgs/members.service.d.ts +19 -12
  404. package/dist/orgs/members.service.js +161 -117
  405. package/dist/orgs/offboarding.d.ts +54 -57
  406. package/dist/orgs/offboarding.js +161 -71
  407. package/dist/orgs/org-lock.d.ts +28 -19
  408. package/dist/orgs/org-lock.js +81 -35
  409. package/dist/orgs/org.guard.d.ts +1 -1
  410. package/dist/orgs/org.guard.js +2 -2
  411. package/dist/orgs/orgs.controller.d.ts +13 -13
  412. package/dist/orgs/orgs.controller.js +29 -17
  413. package/dist/orgs/orgs.module.d.ts +6 -0
  414. package/dist/orgs/orgs.module.js +68 -0
  415. package/dist/orgs/orgs.service.d.ts +30 -19
  416. package/dist/orgs/orgs.service.js +139 -86
  417. package/dist/orgs/settings.controller.d.ts +1 -1
  418. package/dist/orgs/settings.controller.js +8 -6
  419. package/dist/orgs/settings.service.d.ts +16 -10
  420. package/dist/orgs/settings.service.js +77 -48
  421. package/dist/overrides.d.ts +56 -0
  422. package/dist/overrides.js +30 -0
  423. package/dist/roles/gateway-role.d.ts +43 -0
  424. package/dist/roles/gateway-role.js +98 -0
  425. package/dist/roles/gateway.module.d.ts +8 -0
  426. package/dist/roles/gateway.module.js +28 -0
  427. package/dist/roles/worker-role.d.ts +63 -0
  428. package/dist/roles/worker-role.js +144 -0
  429. package/dist/roles/worker.module.d.ts +14 -0
  430. package/dist/roles/worker.module.js +90 -0
  431. package/dist/runtime/abort.js +19 -2
  432. package/dist/runtime/checkpointer.d.ts +8 -3
  433. package/dist/runtime/checkpointer.js +87 -55
  434. package/dist/runtime/context/build.d.ts +6 -6
  435. package/dist/runtime/context/build.js +18 -8
  436. package/dist/runtime/context/claude-tools.d.ts +2 -1
  437. package/dist/runtime/context/claude-tools.js +9 -10
  438. package/dist/runtime/context/legacy-text.d.ts +22 -0
  439. package/dist/runtime/context/legacy-text.js +37 -0
  440. package/dist/runtime/context/skills.d.ts +29 -11
  441. package/dist/runtime/context/skills.js +37 -30
  442. package/dist/runtime/conversation-lock.d.ts +20 -11
  443. package/dist/runtime/conversation-lock.js +62 -72
  444. package/dist/runtime/hook-calls.d.ts +3 -3
  445. package/dist/runtime/hook-calls.js +1 -6
  446. package/dist/runtime/job-ids.d.ts +10 -0
  447. package/dist/runtime/job-ids.js +10 -0
  448. package/dist/runtime/langgraph-loop.js +1 -1
  449. package/dist/runtime/loop.d.ts +8 -1
  450. package/dist/runtime/loop.js +14 -0
  451. package/dist/runtime/maintenance-queue.d.ts +10 -0
  452. package/dist/runtime/maintenance-queue.js +10 -0
  453. package/dist/runtime/maintenance.d.ts +45 -74
  454. package/dist/runtime/maintenance.js +139 -137
  455. package/dist/runtime/model-call.d.ts +7 -4
  456. package/dist/runtime/model-call.js +25 -58
  457. package/dist/runtime/providers.d.ts +17 -6
  458. package/dist/runtime/providers.js +66 -25
  459. package/dist/runtime/quota.d.ts +17 -3
  460. package/dist/runtime/quota.js +27 -2
  461. package/dist/runtime/retired-schedulers.d.ts +7 -0
  462. package/dist/runtime/retired-schedulers.js +31 -0
  463. package/dist/runtime/run-control.d.ts +33 -0
  464. package/dist/runtime/run-control.js +77 -0
  465. package/dist/runtime/run-finish.d.ts +27 -18
  466. package/dist/runtime/run-finish.js +98 -51
  467. package/dist/runtime/run-jobs.d.ts +48 -0
  468. package/dist/runtime/run-jobs.js +95 -0
  469. package/dist/runtime/run-processors.d.ts +60 -0
  470. package/dist/runtime/run-processors.js +185 -0
  471. package/dist/runtime/run-queue.d.ts +32 -57
  472. package/dist/runtime/run-queue.js +291 -295
  473. package/dist/runtime/run-steps.d.ts +39 -0
  474. package/dist/runtime/run-steps.js +96 -0
  475. package/dist/runtime/run-worker.d.ts +122 -76
  476. package/dist/runtime/run-worker.js +343 -229
  477. package/dist/runtime/runtime.module.d.ts +10 -0
  478. package/dist/runtime/runtime.module.js +112 -0
  479. package/dist/runtime/step-log.d.ts +40 -0
  480. package/dist/runtime/step-log.js +94 -0
  481. package/dist/runtime/stream.controller.d.ts +5 -8
  482. package/dist/runtime/stream.controller.js +14 -12
  483. package/dist/runtime/stream.d.ts +24 -6
  484. package/dist/runtime/stream.js +78 -7
  485. package/dist/runtime/subagents/child.d.ts +3 -44
  486. package/dist/runtime/subagents/child.js +0 -79
  487. package/dist/runtime/subagents/definition.d.ts +5 -10
  488. package/dist/runtime/subagents/definition.js +13 -14
  489. package/dist/runtime/subagents/dispatch.d.ts +89 -8
  490. package/dist/runtime/subagents/dispatch.js +137 -142
  491. package/dist/runtime/subagents/limits.d.ts +9 -4
  492. package/dist/runtime/subagents/limits.js +4 -2
  493. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  494. package/dist/runtime/subagents/org-agents.js +3 -2
  495. package/dist/runtime/subagents/progress.d.ts +2 -2
  496. package/dist/runtime/subagents/roster.d.ts +4 -4
  497. package/dist/runtime/subagents/roster.js +2 -2
  498. package/dist/runtime/subagents/skill-fork.d.ts +8 -9
  499. package/dist/runtime/subagents/skill-fork.js +17 -6
  500. package/dist/runtime/subagents/subagents.service.d.ts +40 -0
  501. package/dist/runtime/subagents/subagents.service.js +101 -0
  502. package/dist/runtime/usage-report.d.ts +94 -52
  503. package/dist/runtime/usage-report.js +200 -100
  504. package/dist/runtime/waits.d.ts +127 -59
  505. package/dist/runtime/waits.js +433 -210
  506. package/dist/sandbox/job-ids.d.ts +10 -0
  507. package/dist/sandbox/job-ids.js +10 -0
  508. package/dist/sandbox/jobs.d.ts +41 -0
  509. package/dist/sandbox/jobs.js +113 -0
  510. package/dist/sandbox/leases.d.ts +39 -31
  511. package/dist/sandbox/leases.js +117 -257
  512. package/dist/sandbox/providers.d.ts +19 -0
  513. package/dist/sandbox/providers.js +38 -0
  514. package/dist/sandbox/sandbox.module.d.ts +8 -0
  515. package/dist/sandbox/sandbox.module.js +30 -0
  516. package/dist/sandbox/sandbox.service.d.ts +24 -29
  517. package/dist/sandbox/sandbox.service.js +106 -75
  518. package/dist/skills/catalog.d.ts +37 -24
  519. package/dist/skills/catalog.js +100 -57
  520. package/dist/skills/changes.controller.d.ts +4 -4
  521. package/dist/skills/changes.controller.js +15 -9
  522. package/dist/skills/changes.service.d.ts +30 -20
  523. package/dist/skills/changes.service.js +425 -367
  524. package/dist/skills/invocable.controller.d.ts +1 -1
  525. package/dist/skills/invocable.controller.js +8 -5
  526. package/dist/skills/invocation-keys.d.ts +1 -1
  527. package/dist/skills/invocation-keys.js +1 -1
  528. package/dist/skills/invoke.d.ts +17 -16
  529. package/dist/skills/invoke.js +53 -21
  530. package/dist/skills/skills.controller.d.ts +1 -1
  531. package/dist/skills/skills.controller.js +11 -6
  532. package/dist/skills/skills.module.d.ts +6 -0
  533. package/dist/skills/skills.module.js +30 -0
  534. package/dist/skills/skills.service.d.ts +47 -30
  535. package/dist/skills/skills.service.js +221 -158
  536. package/dist/storage/job-ids.d.ts +6 -0
  537. package/dist/storage/job-ids.js +6 -0
  538. package/dist/storage/purge.d.ts +22 -7
  539. package/dist/storage/purge.js +55 -3
  540. package/dist/storage/storage.module.d.ts +6 -0
  541. package/dist/storage/storage.module.js +23 -0
  542. package/dist/storage/storage.service.d.ts +18 -4
  543. package/dist/storage/storage.service.js +44 -3
  544. package/dist/tools/approvals.controller.d.ts +1 -1
  545. package/dist/tools/approvals.controller.js +12 -8
  546. package/dist/tools/approvals.service.d.ts +33 -25
  547. package/dist/tools/approvals.service.js +343 -259
  548. package/dist/tools/breaker.d.ts +2 -2
  549. package/dist/tools/breaker.js +21 -3
  550. package/dist/tools/builtin-names.d.ts +73 -0
  551. package/dist/tools/builtin-names.js +116 -0
  552. package/dist/tools/builtins/agent.d.ts +7 -7
  553. package/dist/tools/builtins/agent.js +7 -11
  554. package/dist/tools/builtins/ask-user.d.ts +3 -3
  555. package/dist/tools/builtins/ask-user.js +3 -3
  556. package/dist/tools/builtins/builtin-tools.d.ts +21 -0
  557. package/dist/tools/builtins/builtin-tools.js +80 -0
  558. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  559. package/dist/tools/builtins/read-tool-output.js +3 -3
  560. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  561. package/dist/tools/builtins/sandbox/bash.js +33 -30
  562. package/dist/tools/builtins/sandbox/common.d.ts +5 -4
  563. package/dist/tools/builtins/sandbox/common.js +2 -2
  564. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  565. package/dist/tools/builtins/sandbox/deliver.js +13 -13
  566. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  567. package/dist/tools/builtins/sandbox/edit.js +42 -31
  568. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  569. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  570. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  571. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  572. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  573. package/dist/tools/builtins/sandbox/glob.js +6 -6
  574. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  575. package/dist/tools/builtins/sandbox/grep.js +149 -32
  576. package/dist/tools/builtins/sandbox/index.d.ts +1 -1
  577. package/dist/tools/builtins/sandbox/index.js +1 -1
  578. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  579. package/dist/tools/builtins/sandbox/read.js +22 -15
  580. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  581. package/dist/tools/builtins/sandbox/write.js +38 -34
  582. package/dist/tools/builtins/skill-load.d.ts +6 -6
  583. package/dist/tools/builtins/skill-load.js +33 -17
  584. package/dist/tools/builtins/skill-write.d.ts +4 -4
  585. package/dist/tools/builtins/skill-write.js +10 -10
  586. package/dist/tools/builtins/tool-search.d.ts +13 -9
  587. package/dist/tools/builtins/tool-search.js +25 -14
  588. package/dist/tools/canonical-json.d.ts +6 -0
  589. package/dist/tools/canonical-json.js +16 -0
  590. package/dist/tools/connector-content.controller.d.ts +1 -1
  591. package/dist/tools/connector-content.controller.js +11 -6
  592. package/dist/tools/connector-content.d.ts +12 -15
  593. package/dist/tools/connector-content.js +53 -18
  594. package/dist/tools/connectors.controller.d.ts +1 -1
  595. package/dist/tools/connectors.controller.js +21 -10
  596. package/dist/tools/connectors.service.d.ts +31 -13
  597. package/dist/tools/connectors.service.js +438 -348
  598. package/dist/tools/credentials.d.ts +17 -20
  599. package/dist/tools/credentials.js +55 -34
  600. package/dist/tools/display-names.d.ts +9 -0
  601. package/dist/tools/display-names.js +24 -0
  602. package/dist/tools/drift.d.ts +29 -41
  603. package/dist/tools/drift.js +116 -84
  604. package/dist/tools/elicitation.js +1 -1
  605. package/dist/tools/info.d.ts +32 -13
  606. package/dist/tools/info.js +88 -39
  607. package/dist/tools/job-ids.d.ts +13 -0
  608. package/dist/tools/job-ids.js +15 -0
  609. package/dist/tools/jobs.d.ts +24 -0
  610. package/dist/tools/jobs.js +69 -0
  611. package/dist/tools/legacy-data.d.ts +34 -0
  612. package/dist/tools/legacy-data.js +76 -0
  613. package/dist/tools/legacy-keys.d.ts +51 -0
  614. package/dist/tools/legacy-keys.js +115 -0
  615. package/dist/tools/naming.d.ts +1 -5
  616. package/dist/tools/naming.js +1 -7
  617. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  618. package/dist/tools/oauth/flow-paths.js +38 -0
  619. package/dist/tools/oauth/flow.d.ts +30 -30
  620. package/dist/tools/oauth/flow.js +109 -81
  621. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  622. package/dist/tools/oauth/oauth.controller.js +12 -9
  623. package/dist/tools/oauth/tokens.d.ts +11 -3
  624. package/dist/tools/oauth/tokens.js +15 -14
  625. package/dist/tools/outputs.d.ts +13 -4
  626. package/dist/tools/outputs.js +48 -4
  627. package/dist/tools/pipeline.d.ts +72 -50
  628. package/dist/tools/pipeline.js +239 -100
  629. package/dist/tools/policy.d.ts +3 -16
  630. package/dist/tools/policy.js +13 -19
  631. package/dist/tools/questions.controller.d.ts +2 -2
  632. package/dist/tools/questions.controller.js +9 -6
  633. package/dist/tools/questions.service.d.ts +26 -25
  634. package/dist/tools/questions.service.js +201 -142
  635. package/dist/tools/registry.d.ts +43 -38
  636. package/dist/tools/registry.js +100 -72
  637. package/dist/tools/resources.d.ts +1 -1
  638. package/dist/tools/resources.js +1 -1
  639. package/dist/tools/specs.d.ts +5 -4
  640. package/dist/tools/specs.js +3 -1
  641. package/dist/tools/tools.module.d.ts +10 -0
  642. package/dist/tools/tools.module.js +91 -0
  643. package/dist/ui/call-extension.d.ts +16 -0
  644. package/dist/ui/call-extension.js +38 -0
  645. package/dist/ui/embed-token.d.ts +9 -5
  646. package/dist/ui/embed-token.js +34 -6
  647. package/dist/ui/ui-stream.d.ts +22 -17
  648. package/dist/ui/ui-stream.js +72 -12
  649. package/dist/ui/ui.module.d.ts +7 -0
  650. package/dist/ui/ui.module.js +28 -0
  651. package/dist/ui/views.controller.d.ts +14 -12
  652. package/dist/ui/views.controller.js +32 -25
  653. package/dist/ui/views.d.ts +9 -57
  654. package/dist/ui/views.js +43 -45
  655. package/package.json +10 -3
  656. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  657. package/dist/http/health.controller.d.ts +0 -26
  658. package/dist/http/health.controller.js +0 -79
  659. package/dist/http/tokens.d.ts +0 -131
  660. package/dist/http/tokens.js +0 -131
  661. package/dist/http/zod.pipe.d.ts +0 -8
  662. package/dist/http/zod.pipe.js +0 -14
  663. package/dist/identity/rate-limit.d.ts +0 -55
  664. package/dist/identity/rate-limit.js +0 -121
  665. package/dist/sandbox/lifecycle.d.ts +0 -21
  666. package/dist/sandbox/lifecycle.js +0 -68
  667. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  668. package/dist/tools/builtins/sandbox/names.js +0 -20
  669. /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
  670. /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
@@ -1,4 +1,6 @@
1
+ import { type ModelParameter } from "@capybara-hq/plugin-sdk";
1
2
  import { z } from "zod";
3
+ import { type LegacyScope } from "../tools/legacy-keys.js";
2
4
  /** 模型引用:供应商插件名 + 模型 id。 */
3
5
  export declare const ModelRef: z.ZodObject<{
4
6
  provider: z.ZodString;
@@ -33,11 +35,7 @@ export declare const AgentToolRef: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.Zo
33
35
  tools: z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>;
34
36
  }, z.core.$strict>], "kind">, unknown>;
35
37
  export type AgentToolRef = z.output<typeof AgentToolRef>;
36
- /**
37
- * 新建 agent 未给 `tools` 时的默认工具(`tool_search` 由注册表按组织设置自动加入,不进定义)。
38
- * 只用于创建请求;修改与读出旧版本都不注入默认值。
39
- */
40
- export declare const DEFAULT_AGENT_TOOLS: AgentToolRef[];
38
+ export { DEFAULT_AGENT_TOOLS } from "../tools/builtin-names.js";
41
39
  /** Roster names of inline templates and allowlisted org agents (the template name rule). */
42
40
  export declare const SUBAGENT_NAME_RE: RegExp;
43
41
  /**
@@ -74,7 +72,7 @@ export declare const InlineAgentTemplate: z.ZodObject<{
74
72
  }, z.core.$strict>;
75
73
  export type InlineAgentTemplate = z.infer<typeof InlineAgentTemplate>;
76
74
  /**
77
- * Sub-agents this agent may dispatch with the builtin `agent` tool (phase C, spec §5.2). No
75
+ * Sub-agents this agent may dispatch with the builtin `Agent` tool (phase C, spec §5.2). No
78
76
  * default: definitions without it are unchanged and gain no version.
79
77
  */
80
78
  export declare const SubagentsSchema: z.ZodObject<{
@@ -191,8 +189,41 @@ export declare const AgentDefinitionSchema: z.ZodObject<{
191
189
  }, z.core.$strict>>;
192
190
  }, z.core.$strip>;
193
191
  export type AgentDefinition = z.infer<typeof AgentDefinitionSchema>;
192
+ /** The connectors and extensions a definition's own tool refs name (to read an ambiguous rc key). */
193
+ interface OwnRefs {
194
+ connectors: ReadonlySet<string>;
195
+ extensions: ReadonlySet<string>;
196
+ }
197
+ /**
198
+ * Release-candidate tool keys in a stored definition, read as current keys (tool naming spec
199
+ * §8.3), the way {@link normalizeToolRef} reads the app -> connector rename: builtin refs in
200
+ * `tools`, the keys of `toolPolicies`, and the `tools` / `disallowedTools` / `toolPolicies` of a
201
+ * template, the agent's inline sub-agent templates included. Works on an agent definition and on
202
+ * an agent template alike. Old builtin names map without `scope`; an rc `<x>__<tool>` key maps
203
+ * only with one (the org's connector slugs and their ids, the deployment's extension names). When
204
+ * `x` is both a slug and an extension name, the definition's own tool refs decide; when they
205
+ * cannot, a policy or a deny list keeps the restriction on both candidate keys (a deny is never
206
+ * lost) and an allowlist keeps the old key (inert). An unknown key stays as it is. Keys in the
207
+ * current format are never touched. Returns the same object when nothing changes. Saving never
208
+ * goes through this: a new definition with an old key is refused (`AgentsService`).
209
+ */
210
+ export declare function normalizeToolKeys(definition: unknown, scope?: LegacyScope, inherited?: OwnRefs): unknown;
211
+ /**
212
+ * Does a stored definition or template hold an rc `<x>__<tool>` key, which only a
213
+ * {@link LegacyScope} can map? (Callers load the scope only then.)
214
+ */
215
+ export declare function needsLegacyScope(definition: unknown): boolean;
194
216
  /**
195
217
  * 库里读出的定义(`agent_versions.definition`,不经 zod 解析):把改名前的 `{ kind: "app" }` 工具引用规范化为
196
- * connector 形(C27)。其余字段原样保留;没有旧形引用时返回原对象。
218
+ * connector 形(C27),and rc tool keys to current keys ({@link normalizeToolKeys}: builtins
219
+ * always, `<x>__<tool>` keys with `scope`). Other fields are kept; without old forms the same
220
+ * object is returned.
197
221
  */
198
- export declare function normalizeStoredDefinition(def: unknown): AgentDefinition;
222
+ export declare function normalizeStoredDefinition(def: unknown, scope?: LegacyScope): AgentDefinition;
223
+ /** 按模型声明严格校验一组参数,返回 `{ path: "<field>.<key>", message }[]`(评测候选也用它)。 */
224
+ export declare function paramIssues(field: string, decl: ModelParameter[], params: Record<string, unknown>): {
225
+ path: string;
226
+ message: string;
227
+ }[];
228
+ /** Roster entries an agent may list (spec §4.3), general-purpose included. */
229
+ export declare const SUBAGENT_ROSTER_MAX = 20;
@@ -1,4 +1,6 @@
1
+ import { validateParams } from "@capybara-hq/plugin-sdk";
1
2
  import { z } from "zod";
3
+ import { isLegacyBuiltinKey, isLegacyPrefixedKey, legacyToolKey, } from "../tools/legacy-keys.js";
2
4
  /** 模型引用:供应商插件名 + 模型 id。 */
3
5
  export const ModelRef = z.object({ provider: z.string(), model: z.string() });
4
6
  /**
@@ -36,14 +38,7 @@ export const AgentToolRef = z.preprocess(normalizeToolRef, z.discriminatedUnion(
36
38
  })
37
39
  .strict(),
38
40
  ]));
39
- /**
40
- * 新建 agent 未给 `tools` 时的默认工具(`tool_search` 由注册表按组织设置自动加入,不进定义)。
41
- * 只用于创建请求;修改与读出旧版本都不注入默认值。
42
- */
43
- export const DEFAULT_AGENT_TOOLS = [
44
- { kind: "builtin", name: "ask_user" },
45
- { kind: "builtin", name: "read_tool_output" },
46
- ];
41
+ export { DEFAULT_AGENT_TOOLS } from "../tools/builtin-names.js";
47
42
  /** Roster names of inline templates and allowlisted org agents (the template name rule). */
48
43
  export const SUBAGENT_NAME_RE = /^[a-z0-9][a-z0-9-]{0,63}$/;
49
44
  /**
@@ -67,7 +62,7 @@ export const InlineAgentTemplate = z
67
62
  })
68
63
  .strict();
69
64
  /**
70
- * Sub-agents this agent may dispatch with the builtin `agent` tool (phase C, spec §5.2). No
65
+ * Sub-agents this agent may dispatch with the builtin `Agent` tool (phase C, spec §5.2). No
71
66
  * default: definitions without it are unchanged and gain no version.
72
67
  */
73
68
  export const SubagentsSchema = z
@@ -117,7 +112,7 @@ export const AgentDefinitionSchema = z.object({
117
112
  * 技能(M5 T13):`orgSkills` 是引用的组织技能 id(保存时校验属于本组织且未删除,不可重复)。
118
113
  * agent 自己的技能(`scope=agent`)自动对它生效,不进定义。可省略(较早保存的定义也没有),按空处理;
119
114
  * 不给默认值:没用技能的定义保存前后不变,不会因此多出一个版本。
120
- * `writePolicy`(M6 T27,D10):私有 agent 的 `skill_write` 是否固定确认,缺省按 `allow`(不写进定义);
115
+ * `writePolicy`(M6 T27,D10):私有 agent 的 `SkillWrite` 是否固定确认,缺省按 `allow`(不写进定义);
121
116
  * 共享 agent 不论取值都走 R3 + R4。
122
117
  */
123
118
  skills: z
@@ -135,18 +130,207 @@ export const AgentDefinitionSchema = z.object({
135
130
  })
136
131
  .strict()
137
132
  .optional(),
138
- /** Sub-agents (phase C); offered only when the builtin `agent` tool is in `tools`. */
133
+ /** Sub-agents (phase C); offered only when the builtin `Agent` tool is in `tools`. */
139
134
  subagents: SubagentsSchema.optional(),
140
135
  });
136
+ const isRecord = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
137
+ /**
138
+ * The connector slugs and extension names `definition`'s `tools` name: connector refs (through
139
+ * `scope.connectorSlugById`), plugin refs, and current-format keys of a template's `tools`;
140
+ * `inherited` (the parent agent's, for an inline template) is added.
141
+ */
142
+ function ownRefs(definition, scope, inherited) {
143
+ const connectors = new Set(inherited?.connectors);
144
+ const extensions = new Set(inherited?.extensions);
145
+ const tools = Array.isArray(definition.tools) ? definition.tools : [];
146
+ for (const r of tools) {
147
+ if (typeof r === "string") {
148
+ const m = /^(mcp|plugin)__([^_].*?)__./.exec(r);
149
+ if (m)
150
+ (m[1] === "mcp" ? connectors : extensions).add(m[2]);
151
+ }
152
+ else if (isRecord(r) && r.kind === "connector" && typeof r.connectorId === "string") {
153
+ const slug = scope.connectorSlugById?.get(r.connectorId);
154
+ if (slug !== undefined)
155
+ connectors.add(slug);
156
+ }
157
+ else if (isRecord(r) && r.kind === "plugin" && typeof r.plugin === "string") {
158
+ extensions.add(r.plugin);
159
+ }
160
+ }
161
+ return { connectors, extensions };
162
+ }
163
+ /**
164
+ * The current key(s) of a stored key. A builtin and an unambiguous `<x>__<tool>` map to one key
165
+ * ({@link legacyToolKey}). When `x` is both a connector slug and an extension name, the
166
+ * definition's own refs decide (only connector `x` -> `mcp__…`, only extension `x` ->
167
+ * `plugin__…`); when they name both or neither, both candidates are returned and the caller
168
+ * decides (a policy keeps a deny / ask on both: it must never be lost). Anything else: as is.
169
+ */
170
+ function currentKeys(key, scope, own) {
171
+ const one = legacyToolKey(key, scope);
172
+ if (one !== null)
173
+ return [one];
174
+ if (scope === undefined || !isLegacyPrefixedKey(key))
175
+ return [key];
176
+ const head = key.slice(0, key.indexOf("__"));
177
+ if (!scope.connectorSlugs.has(head) || !scope.extensionNames.has(head))
178
+ return [key];
179
+ const c = own?.connectors.has(head) === true;
180
+ const e = own?.extensions.has(head) === true;
181
+ if (c && !e)
182
+ return [`mcp__${key}`];
183
+ if (e && !c)
184
+ return [`plugin__${key}`];
185
+ return [`mcp__${key}`, `plugin__${key}`];
186
+ }
187
+ /**
188
+ * A list of tool keys (a template's `tools` / `disallowedTools`) in current keys, deduplicated.
189
+ * A still-ambiguous key becomes both candidates in a deny list (`widen`), and stays as is (inert,
190
+ * so narrower) in an allowlist.
191
+ */
192
+ function keyList(v, scope, own, widen) {
193
+ if (!Array.isArray(v))
194
+ return v;
195
+ let changed = false;
196
+ const out = [];
197
+ for (const x of v) {
198
+ let next = [x];
199
+ if (typeof x === "string") {
200
+ const keys = currentKeys(x, scope, own);
201
+ next = keys.length > 1 && !widen ? [x] : keys;
202
+ }
203
+ if (next.length !== 1 || next[0] !== x)
204
+ changed = true;
205
+ for (const n of next) {
206
+ if (typeof n === "string" && out.includes(n)) {
207
+ changed = true;
208
+ continue;
209
+ }
210
+ out.push(n);
211
+ }
212
+ }
213
+ return changed ? out : v;
214
+ }
215
+ /**
216
+ * `toolPolicies` in current keys; keys that become one keep the stricter policy, and a
217
+ * still-ambiguous key keeps its `ask` / `deny` on both candidates (anything else is dropped).
218
+ */
219
+ function policyKeys(v, scope, own) {
220
+ if (!isRecord(v))
221
+ return v;
222
+ const mapped = Object.entries(v).map(([k, p]) => [k, p, currentKeys(k, scope, own)]);
223
+ if (mapped.every(([k, , keys]) => keys.length === 1 && keys[0] === k))
224
+ return v;
225
+ const rank = (p) => (p === "deny" ? 2 : p === "ask" ? 1 : 0);
226
+ const out = {};
227
+ for (const [, p, keys] of mapped) {
228
+ if (keys.length > 1 && rank(p) === 0)
229
+ continue;
230
+ for (const next of keys) {
231
+ if (!Object.hasOwn(out, next) || rank(p) > rank(out[next]))
232
+ out[next] = p;
233
+ }
234
+ }
235
+ return out;
236
+ }
237
+ /** An agent definition's `tools`: builtin refs by their current names (connector and plugin refs name tools, not keys). */
238
+ function toolRefs(v, scope, own) {
239
+ if (!Array.isArray(v))
240
+ return v;
241
+ // template-shaped (`tools: string[]`): an allowlist
242
+ if (v.some((x) => typeof x === "string"))
243
+ return keyList(v, scope, own, false);
244
+ if (!v.some((r) => isRecord(r) &&
245
+ r.kind === "builtin" &&
246
+ typeof r.name === "string" &&
247
+ isLegacyBuiltinKey(r.name))) {
248
+ return v;
249
+ }
250
+ return v.map((r) => isRecord(r) && r.kind === "builtin" && typeof r.name === "string"
251
+ ? { ...r, name: legacyToolKey(r.name) ?? r.name }
252
+ : r);
253
+ }
254
+ /**
255
+ * Release-candidate tool keys in a stored definition, read as current keys (tool naming spec
256
+ * §8.3), the way {@link normalizeToolRef} reads the app -> connector rename: builtin refs in
257
+ * `tools`, the keys of `toolPolicies`, and the `tools` / `disallowedTools` / `toolPolicies` of a
258
+ * template, the agent's inline sub-agent templates included. Works on an agent definition and on
259
+ * an agent template alike. Old builtin names map without `scope`; an rc `<x>__<tool>` key maps
260
+ * only with one (the org's connector slugs and their ids, the deployment's extension names). When
261
+ * `x` is both a slug and an extension name, the definition's own tool refs decide; when they
262
+ * cannot, a policy or a deny list keeps the restriction on both candidate keys (a deny is never
263
+ * lost) and an allowlist keeps the old key (inert). An unknown key stays as it is. Keys in the
264
+ * current format are never touched. Returns the same object when nothing changes. Saving never
265
+ * goes through this: a new definition with an old key is refused (`AgentsService`).
266
+ */
267
+ export function normalizeToolKeys(definition, scope, inherited) {
268
+ if (!isRecord(definition))
269
+ return definition;
270
+ const own = scope === undefined ? undefined : ownRefs(definition, scope, inherited);
271
+ const next = { ...definition };
272
+ let changed = false;
273
+ const put = (field, value) => {
274
+ if (value === definition[field])
275
+ return;
276
+ next[field] = value;
277
+ changed = true;
278
+ };
279
+ if ("tools" in definition)
280
+ put("tools", toolRefs(definition.tools, scope, own));
281
+ if ("disallowedTools" in definition) {
282
+ put("disallowedTools", keyList(definition.disallowedTools, scope, own, true));
283
+ }
284
+ if ("toolPolicies" in definition) {
285
+ put("toolPolicies", policyKeys(definition.toolPolicies, scope, own));
286
+ }
287
+ const sub = definition.subagents;
288
+ if (isRecord(sub) && Array.isArray(sub.inline)) {
289
+ const inline = sub.inline.map((t) => normalizeToolKeys(t, scope, own));
290
+ if (inline.some((t, i) => t !== sub.inline[i])) {
291
+ put("subagents", { ...sub, inline });
292
+ }
293
+ }
294
+ return changed ? next : definition;
295
+ }
296
+ /**
297
+ * Does a stored definition or template hold an rc `<x>__<tool>` key, which only a
298
+ * {@link LegacyScope} can map? (Callers load the scope only then.)
299
+ */
300
+ export function needsLegacyScope(definition) {
301
+ if (!isRecord(definition))
302
+ return false;
303
+ const lists = [definition.tools, definition.disallowedTools];
304
+ for (const l of lists) {
305
+ if (Array.isArray(l) && l.some((x) => typeof x === "string" && isLegacyPrefixedKey(x))) {
306
+ return true;
307
+ }
308
+ }
309
+ if (isRecord(definition.toolPolicies)) {
310
+ if (Object.keys(definition.toolPolicies).some(isLegacyPrefixedKey))
311
+ return true;
312
+ }
313
+ const sub = definition.subagents;
314
+ return isRecord(sub) && Array.isArray(sub.inline) && sub.inline.some(needsLegacyScope);
315
+ }
141
316
  /**
142
317
  * 库里读出的定义(`agent_versions.definition`,不经 zod 解析):把改名前的 `{ kind: "app" }` 工具引用规范化为
143
- * connector 形(C27)。其余字段原样保留;没有旧形引用时返回原对象。
318
+ * connector 形(C27),and rc tool keys to current keys ({@link normalizeToolKeys}: builtins
319
+ * always, `<x>__<tool>` keys with `scope`). Other fields are kept; without old forms the same
320
+ * object is returned.
144
321
  */
145
- export function normalizeStoredDefinition(def) {
146
- const d = def;
322
+ export function normalizeStoredDefinition(def, scope) {
323
+ let d = def;
147
324
  const tools = d.tools;
148
- if (!Array.isArray(tools) || !tools.some((t) => t?.kind === "app")) {
149
- return d;
325
+ if (Array.isArray(tools) && tools.some((t) => t?.kind === "app")) {
326
+ d = { ...d, tools: tools.map(normalizeToolRef) };
150
327
  }
151
- return { ...d, tools: tools.map(normalizeToolRef) };
328
+ return normalizeToolKeys(d, scope);
329
+ }
330
+ /** 按模型声明严格校验一组参数,返回 `{ path: "<field>.<key>", message }[]`(评测候选也用它)。 */
331
+ export function paramIssues(field, decl, params) {
332
+ const r = validateParams(decl, params);
333
+ return r.ok ? [] : r.issues.map((i) => ({ path: `${field}.${i.key}`, message: i.message }));
152
334
  }
335
+ /** Roster entries an agent may list (spec §4.3), general-purpose included. */
336
+ export const SUBAGENT_ROSTER_MAX = 20;
@@ -1,5 +1,5 @@
1
1
  import type { ModelInfo } from "@capybara-hq/plugin-sdk";
2
- import type { ProviderRegistry } from "../runtime/providers.js";
2
+ import { ProviderRegistry } from "../runtime/providers.js";
3
3
  /** 可选模型(`/api/v1/orgs/:orgId/models`):已安装的模型供应商及其模型,列表缓存在 Redis。 */
4
4
  export declare class ModelsController {
5
5
  private readonly registry;
@@ -8,8 +8,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
10
  import { Controller, Get, Inject } from "@nestjs/common";
11
- import { PROVIDER_REGISTRY } from "../http/tokens.js";
12
11
  import { OrgAction } from "../orgs/org.guard.js";
12
+ import { ProviderRegistry } from "../runtime/providers.js";
13
13
  /** 可选模型(`/api/v1/orgs/:orgId/models`):已安装的模型供应商及其模型,列表缓存在 Redis。 */
14
14
  let ModelsController = class ModelsController {
15
15
  registry;
@@ -26,6 +26,6 @@ __decorate([
26
26
  ], ModelsController.prototype, "list", null);
27
27
  ModelsController = __decorate([
28
28
  Controller("api/v1/orgs/:orgId/models"),
29
- __param(0, Inject(PROVIDER_REGISTRY))
29
+ __param(0, Inject(ProviderRegistry))
30
30
  ], ModelsController);
31
31
  export { ModelsController };
@@ -1,5 +1,5 @@
1
1
  import { type OrgContext } from "../orgs/org.guard.js";
2
- import type { AgentTemplatesService, AgentTemplateView } from "./templates.js";
2
+ import { AgentTemplatesService, type AgentTemplateView } from "./templates.js";
3
3
  /**
4
4
  * The org's agent templates installed from plugins (`/api/v1/orgs/:orgId/agent-templates`, phase C
5
5
  * spec §17): the agent page lists them to select as sub-agents. Read with `agents.create`, the
@@ -8,8 +8,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
10
  import { Controller, Get, Inject } from "@nestjs/common";
11
- import { AGENT_TEMPLATES } from "../http/tokens.js";
12
11
  import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
12
+ import { AgentTemplatesService } from "./templates.js";
13
13
  /**
14
14
  * The org's agent templates installed from plugins (`/api/v1/orgs/:orgId/agent-templates`, phase C
15
15
  * spec §17): the agent page lists them to select as sub-agents. Read with `agents.create`, the
@@ -32,6 +32,6 @@ __decorate([
32
32
  ], AgentTemplatesController.prototype, "list", null);
33
33
  AgentTemplatesController = __decorate([
34
34
  Controller("api/v1/orgs/:orgId/agent-templates"),
35
- __param(0, Inject(AGENT_TEMPLATES))
35
+ __param(0, Inject(AgentTemplatesService))
36
36
  ], AgentTemplatesController);
37
37
  export { AgentTemplatesController };
@@ -1,7 +1,6 @@
1
1
  import type { AgentTemplate, AgentTemplateTier } from "@capybara-hq/plugin-sdk";
2
- import type { Transaction } from "kysely";
3
- import type { KernelDatabase, KernelDb, SourceFormat } from "../db/kernel-schema.js";
4
- type Trx = Transaction<KernelDatabase>;
2
+ import type { KernelSchemaDb, SourceFormat } from "../db/kernel-schema.js";
3
+ import { KernelDb } from "../infra/database/kernel-db.js";
5
4
  /**
6
5
  * Agent templates installed in an org from plugins (sub-agents spec §16): `agent_templates` (one
7
6
  * live row per org, plugin and name) and `agent_template_versions` (the parsed template). Plugin
@@ -35,7 +34,7 @@ export interface TemplateRow {
35
34
  catalogVersion: string | null;
36
35
  }
37
36
  /** The live templates of `ids` in the org (deleted and foreign ids are left out), by id. */
38
- export declare function loadTemplates(db: KernelDb | Trx, orgId: string, ids: readonly string[]): Promise<Map<string, TemplateRow>>;
37
+ export declare function loadTemplates(db: KernelSchemaDb, orgId: string, ids: readonly string[]): Promise<Map<string, TemplateRow>>;
39
38
  /** Reads the org's agent templates (consumed by the roster, the agent page and Task 19's API). */
40
39
  export declare class AgentTemplatesService {
41
40
  private readonly db;
@@ -63,7 +62,7 @@ export interface TemplateSource {
63
62
  * caller holds the org row lock): a new template (version 1, `created`), a new version of the live
64
63
  * one when its definition differs (`changed`, the version added), or nothing when it is equal.
65
64
  */
66
- export declare function putTemplateVersionIn(t: Trx, s: TemplateSource, template: AgentTemplate): Promise<{
65
+ export declare function putTemplateVersionIn(t: KernelSchemaDb, s: TemplateSource, template: AgentTemplate): Promise<{
67
66
  id: string;
68
67
  version: number;
69
68
  created: boolean;
@@ -74,10 +73,9 @@ export declare function putTemplateVersionIn(t: Trx, s: TemplateSource, template
74
73
  * rolled back): the version row goes and the template is back at the version before. Returns
75
74
  * whether anything changed.
76
75
  */
77
- export declare function revertTemplateVersionIn(t: Trx, orgId: string, id: string, version: number): Promise<boolean>;
76
+ export declare function revertTemplateVersionIn(t: KernelSchemaDb, orgId: string, id: string, version: number): Promise<boolean>;
78
77
  /**
79
78
  * Removes a template (soft delete: sub-agents already started keep their frozen definition, and
80
79
  * the roster skips it). Returns whether it was live.
81
80
  */
82
- export declare function softDeleteTemplateIn(t: Trx, orgId: string, id: string): Promise<boolean>;
83
- export {};
81
+ export declare function softDeleteTemplateIn(t: KernelSchemaDb, orgId: string, id: string): Promise<boolean>;
@@ -1,5 +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";
11
+ import { Inject, Injectable } from "@nestjs/common";
12
+ import { KernelDb } from "../infra/database/kernel-db.js";
13
+ import { loadLegacyScope } from "../tools/legacy-data.js";
2
14
  import { canonicalJson } from "../tools/registry.js";
15
+ import { needsLegacyScope, normalizeToolKeys } from "./definition.js";
3
16
  const baseQuery = (db, orgId) => db
4
17
  .selectFrom("agent_templates as t")
5
18
  .innerJoin("agent_template_versions as v", (j) => j.onRef("v.template_id", "=", "t.id").onRef("v.version", "=", "t.current_version"))
@@ -15,16 +28,27 @@ const baseQuery = (db, orgId) => db
15
28
  ])
16
29
  .where("t.org_id", "=", orgId)
17
30
  .where("t.deleted_at", "is", null);
18
- const rowOf = (r) => ({
31
+ /**
32
+ * A stored template row; its tool keys read as current keys (tool naming spec §8.3): old builtin
33
+ * names always, rc `<x>__<tool>` keys with `scope` (see {@link scopedRows}).
34
+ */
35
+ const rowOf = (r, scope) => ({
19
36
  id: r.id,
20
37
  name: r.name,
21
38
  plugin: r.plugin_name,
22
39
  version: r.current_version,
23
- template: r.definition,
40
+ template: normalizeToolKeys(r.definition, scope),
24
41
  sourceFormat: r.source_format,
25
42
  catalogItemId: r.catalog_item_id,
26
43
  catalogVersion: r.catalog_version,
27
44
  });
45
+ /** The rows of one org as {@link TemplateRow}s, reading the org's legacy scope once when needed. */
46
+ async function scopedRows(db, orgId, rows) {
47
+ const scope = rows.some((r) => needsLegacyScope(r.definition))
48
+ ? await loadLegacyScope(db, orgId)
49
+ : undefined;
50
+ return rows.map((r) => rowOf(r, scope));
51
+ }
28
52
  /** The live templates of `ids` in the org (deleted and foreign ids are left out), by id. */
29
53
  export async function loadTemplates(db, orgId, ids) {
30
54
  if (ids.length === 0)
@@ -32,17 +56,17 @@ export async function loadTemplates(db, orgId, ids) {
32
56
  const rows = await baseQuery(db, orgId)
33
57
  .where("t.id", "in", [...ids])
34
58
  .execute();
35
- return new Map(rows.map((r) => [r.id, rowOf(r)]));
59
+ return new Map((await scopedRows(db, orgId, rows)).map((t) => [t.id, t]));
36
60
  }
37
61
  /** Reads the org's agent templates (consumed by the roster, the agent page and Task 19's API). */
38
- export class AgentTemplatesService {
62
+ let AgentTemplatesService = class AgentTemplatesService {
39
63
  db;
40
64
  constructor(db) {
41
65
  this.db = db;
42
66
  }
43
67
  /** Every live template of the org, by plugin then name. */
44
68
  async listForOrg(orgId) {
45
- const rows = await baseQuery(this.db, orgId)
69
+ const rows = await baseQuery(this.db.db, orgId)
46
70
  .orderBy("t.plugin_name")
47
71
  .orderBy("t.name")
48
72
  .execute();
@@ -65,7 +89,7 @@ export class AgentTemplatesService {
65
89
  /** A live template by id or by `<plugin>:<name>`; null when there is none. */
66
90
  async resolve(orgId, ref) {
67
91
  const i = ref.indexOf(":");
68
- let q = baseQuery(this.db, orgId);
92
+ let q = baseQuery(this.db.db, orgId);
69
93
  q =
70
94
  i < 0
71
95
  ? q.where("t.id", "=", ref)
@@ -73,10 +97,17 @@ export class AgentTemplatesService {
73
97
  const r = await q.executeTakeFirst();
74
98
  if (!r)
75
99
  return null;
76
- const t = rowOf(r);
100
+ const [t] = await scopedRows(this.db.db, orgId, [r]);
101
+ if (!t)
102
+ return null;
77
103
  return { id: t.id, version: t.version, plugin: t.plugin, template: t.template };
78
104
  }
79
- }
105
+ };
106
+ AgentTemplatesService = __decorate([
107
+ Injectable(),
108
+ __param(0, Inject(KernelDb))
109
+ ], AgentTemplatesService);
110
+ export { AgentTemplatesService };
80
111
  /**
81
112
  * Writes `template` as the org's live template `<plugin>:<name>` in the caller's transaction (the
82
113
  * caller holds the org row lock): a new template (version 1, `created`), a new version of the live
package/dist/app.d.ts ADDED
@@ -0,0 +1,93 @@
1
+ import "reflect-metadata";
2
+ import type { BootstrapManifest } from "@capybara-hq/plugin-sdk";
3
+ import type { INestApplicationContext } from "@nestjs/common";
4
+ import type { NestFastifyApplication } from "@nestjs/platform-fastify";
5
+ import type { ConfigSource } from "./config/load.js";
6
+ import type { KernelConfig } from "./config/schema.js";
7
+ import type { ConfigSourceKind } from "./config/sources.js";
8
+ import { type KernelHttp } from "./http/app.js";
9
+ import { type ShutdownSignalOptions } from "./infra/lifecycle/shutdown-signals.js";
10
+ import type { KernelLogger } from "./log.js";
11
+ import type { KernelOverride } from "./overrides.js";
12
+ /** What {@link createKernelApp} takes besides the config. */
13
+ export interface KernelAppOptions {
14
+ /** 配置来源;提供 `watch` 时启用热更新。 */
15
+ source?: ConfigSource;
16
+ /** 解析插件裸包名的目录,默认 `process.cwd()`;相对路径按当前 cwd 解析。 */
17
+ resolveFrom?: string;
18
+ /** Defaults to a logger built from `config.log` and `config.roles` (createConfiguredLogger). */
19
+ logger?: KernelLogger;
20
+ /** 热更新时与来源原始值合并的环境变量,默认 `process.env`。 */
21
+ env?: NodeJS.ProcessEnv;
22
+ /**
23
+ * The bootstrap step (package ecosystem spec §7, startup bootstrap spec). When given, the start
24
+ * runs it (see `extensions/bootstrap.ts`) before loading extensions unless it is already done for
25
+ * the manifest, and refuses to start when it cannot complete a required entry. `dir`: the
26
+ * optional offline directory whose `*.tgz` files are matched to the entries by sha512 (a missing
27
+ * directory is an empty one); entries without a matching file are downloaded from
28
+ * `packages.npmRegistry`. Omitted: no bootstrap step (tests, unless they ask for it).
29
+ */
30
+ bootstrap?: {
31
+ dir?: string;
32
+ };
33
+ /** The bootstrap manifest; default the `bootstrap.json` shipped with the kernel package. */
34
+ bootstrapManifest?: BootstrapManifest;
35
+ /**
36
+ * Where each extension deployment config field of the startup config comes from (the
37
+ * `extensionConfigSources` returned by `loadConfigWithSources`); these fields are read-only in the
38
+ * admin console (D8). When omitted it is derived from `config.extensionConfig`: fields present in
39
+ * the environment are `env`, the rest take the `CAPYBARA_CONFIG_SOURCE` kind (file / nacos).
40
+ */
41
+ extensionConfigSources?: Record<string, Record<string, ConfigSourceKind>>;
42
+ /**
43
+ * The kernel's own tests' seams: values for the named seam tokens ({@link KernelOverride} lists
44
+ * every one), registered in a global module so the domain modules that resolve these optional
45
+ * tokens get them. Any other token is refused when the application is built.
46
+ */
47
+ overrides?: readonly KernelOverride[];
48
+ }
49
+ /**
50
+ * Builds the kernel application (one Nest application, root module {@link KernelModule}) and sets
51
+ * up its HTTP side, without initializing it: nothing connects and nothing starts. A failure
52
+ * releases what was created (Redis connections, the pool) before it is thrown. Internal (not
53
+ * exported from the package): {@link startKernelApp} and the kernel's own tests that need the
54
+ * application before its start; everything else uses {@link createKernelApp}.
55
+ */
56
+ export declare function buildKernelApp(config: KernelConfig, options?: KernelAppOptions): Promise<NestFastifyApplication>;
57
+ /**
58
+ * Closes a kernel application once (later calls get the same promise): the stop phases begin at
59
+ * once (`KernelLifecycle.stop`: readiness 503, the start aborted at its next checkpoint), next to
60
+ * `app.close()`, which runs the shutdown hooks (the stop phases are the same promise, then Redis
61
+ * and the pool). Use it to stop an application from {@link createKernelApp} /
62
+ * {@link startKernelApp} (tests, `@capybara-hq/testing`), so the stop begins before Nest's
63
+ * `onModuleDestroy` hooks run.
64
+ */
65
+ export declare function closeKernelApp(app: NestFastifyApplication): Promise<void>;
66
+ /**
67
+ * Creates the kernel application and runs its start sequence (nest kernel spec §4): Redis,
68
+ * migrations, the official marketplace, the bootstrap step, the extension load, the role parts,
69
+ * extension routes, the lifecycle reconcile and the config watch. Does not listen and installs no
70
+ * process-wide handler.
71
+ */
72
+ export declare function createKernelApp(config: KernelConfig, options?: KernelAppOptions): Promise<NestFastifyApplication>;
73
+ /**
74
+ * Builds the kernel application, installs the SIGTERM / SIGINT handlers
75
+ * ({@link handleShutdownSignals}), runs the start sequence and listens on `config.http.port`:
76
+ * nothing is served before the start sequence finished. The handlers are installed before the
77
+ * start, so a signal during it aborts the start at its next checkpoint and closes the application
78
+ * cleanly; this function then rejects once the signal path has exited (with 0). A second signal
79
+ * exits with 1 at once. A failed build or start is logged (`kernel start failed`) before it is
80
+ * thrown.
81
+ */
82
+ export declare function startKernelApp(config: KernelConfig, options?: KernelAppOptions, signalOptions?: ShutdownSignalOptions): Promise<NestFastifyApplication>;
83
+ /**
84
+ * The start half of {@link startKernelApp} for an application from {@link buildKernelApp}: installs
85
+ * the signal handlers, runs the start sequence and listens on `config.http.port`. Internal (not
86
+ * exported from the package): {@link startKernelApp} and the kernel's own tests that need the
87
+ * application before its start.
88
+ */
89
+ export declare function startBuiltKernelApp(app: NestFastifyApplication, config: KernelConfig, signalOptions?: ShutdownSignalOptions): Promise<void>;
90
+ /** The in-process HTTP of a kernel application (`inject`, the route list). */
91
+ export declare function kernelAppHttp(app: INestApplicationContext): KernelHttp;
92
+ /** The port a kernel application listens on; undefined before it listens and after the stop. */
93
+ export declare function kernelAppPort(app: INestApplicationContext): number | undefined;