@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
@@ -0,0 +1,68 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { applyDecorators, Inject, Injectable, SetMetadata, UseGuards, } from "@nestjs/common";
11
+ import { Reflector } from "@nestjs/core";
12
+ import { getOptionsToken, getStorageToken, ThrottlerGuard, } from "@nestjs/throttler";
13
+ import { ApiError } from "../../errors.js";
14
+ import { NAMED_THROTTLERS } from "./named-throttlers.js";
15
+ const THROTTLED = "kernel:throttled";
16
+ /** The throttler names selected for the route `context` runs (empty: none, the guard passes). */
17
+ export function selectedThrottlers(context) {
18
+ return (Reflect.getMetadata(THROTTLED, context.getHandler()) ??
19
+ Reflect.getMetadata(THROTTLED, context.getClass()) ??
20
+ []);
21
+ }
22
+ /**
23
+ * Opts a route (or controller) in to the named throttlers `names` (see `NAMED_THROTTLERS`).
24
+ * Throttling is per-route opt-in because the kernel limits only credential-checking routes today;
25
+ * health, SSE and extension routes stay unlimited.
26
+ */
27
+ export const Throttled = (...names) => {
28
+ for (const n of names) {
29
+ if (!NAMED_THROTTLERS.some((t) => t.name === n))
30
+ throw new Error(`unknown throttler "${n}"`);
31
+ }
32
+ return applyDecorators(SetMetadata(THROTTLED, names), UseGuards(KernelThrottlerGuard));
33
+ };
34
+ /**
35
+ * `@nestjs/throttler`'s guard with the kernel's error contract: the first named throttler of the
36
+ * route at its limit answers 429 `auth.rate_limited` with its own message and `retry-after`
37
+ * (seconds, 1..window), as the credential routes answer; no `x-ratelimit-*` headers (the
38
+ * kernel sends none today). Which throttlers apply to a route is chosen by `@Throttled`; they are
39
+ * counted one after another in `NAMED_THROTTLERS` order (table order is check order). Fail-open on
40
+ * Redis errors (see `RedisThrottlerStorage`). For credential checks use `CredentialThrottler`.
41
+ */
42
+ let KernelThrottlerGuard = class KernelThrottlerGuard extends ThrottlerGuard {
43
+ constructor(options, storage, reflector) {
44
+ super(options, storage, reflector);
45
+ }
46
+ async handleRequest(props) {
47
+ const { context, limit, ttl, throttler, blockDuration, getTracker, generateKey } = props;
48
+ const http = context.switchToHttp();
49
+ const name = throttler.name ?? "default";
50
+ const tracker = await getTracker(http.getRequest(), context);
51
+ const key = generateKey(context, tracker, name);
52
+ const r = await this.storageService.increment(key, ttl, limit, blockDuration, name);
53
+ if (!r.isBlocked)
54
+ return true;
55
+ http.getResponse().header("retry-after", String(r.timeToBlockExpire));
56
+ const known = NAMED_THROTTLERS.find((t) => t.name === name);
57
+ if (!known)
58
+ throw new Error(`unknown throttler "${name}"`);
59
+ throw new ApiError("auth.rate_limited", known.message);
60
+ }
61
+ };
62
+ KernelThrottlerGuard = __decorate([
63
+ Injectable(),
64
+ __param(0, Inject(getOptionsToken())),
65
+ __param(1, Inject(getStorageToken())),
66
+ __param(2, Inject(Reflector))
67
+ ], KernelThrottlerGuard);
68
+ export { KernelThrottlerGuard };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Two limiters share the named-throttler table and the Redis storage, with opposite failure modes:
3
+ * - `@Throttled` (`KernelThrottlerGuard`): plain per-route limits, counted before the handler,
4
+ * FAIL-OPEN on Redis errors (octok's rule: a Redis blip must not 5xx every limited route).
5
+ * - `CredentialThrottler`: called inside a handler for credential checks, all-or-nothing across
6
+ * keys, FAIL-CLOSED on Redis errors (an attacker must not get unlimited guesses by making Redis
7
+ * fail).
8
+ *
9
+ * Global: `@nestjs/throttler` over the Redis storage with the kernel's named throttlers, and the
10
+ * guard behind `@Throttled(...)`. The storage is injectable as `ThrottlerStorage`;
11
+ * `CredentialThrottler` casts it to `RedisThrottlerStorage` for its multi-key `reserve` /
12
+ * `succeeded`.
13
+ */
14
+ export declare class KernelThrottlerModule {
15
+ }
@@ -0,0 +1,53 @@
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
+ import { Global, Module } from "@nestjs/common";
8
+ import { ThrottlerModule } from "@nestjs/throttler";
9
+ import { KERNEL_LOGGER, REDIS } from "../tokens.js";
10
+ import { CredentialThrottler } from "./credential-throttler.js";
11
+ import { NAMED_THROTTLERS, throttlerKey } from "./named-throttlers.js";
12
+ import { RedisThrottlerStorage } from "./redis-throttler-storage.js";
13
+ import { KernelThrottlerGuard, selectedThrottlers } from "./throttler.guard.js";
14
+ /**
15
+ * Two limiters share the named-throttler table and the Redis storage, with opposite failure modes:
16
+ * - `@Throttled` (`KernelThrottlerGuard`): plain per-route limits, counted before the handler,
17
+ * FAIL-OPEN on Redis errors (octok's rule: a Redis blip must not 5xx every limited route).
18
+ * - `CredentialThrottler`: called inside a handler for credential checks, all-or-nothing across
19
+ * keys, FAIL-CLOSED on Redis errors (an attacker must not get unlimited guesses by making Redis
20
+ * fail).
21
+ *
22
+ * Global: `@nestjs/throttler` over the Redis storage with the kernel's named throttlers, and the
23
+ * guard behind `@Throttled(...)`. The storage is injectable as `ThrottlerStorage`;
24
+ * `CredentialThrottler` casts it to `RedisThrottlerStorage` for its multi-key `reserve` /
25
+ * `succeeded`.
26
+ */
27
+ let KernelThrottlerModule = class KernelThrottlerModule {
28
+ };
29
+ KernelThrottlerModule = __decorate([
30
+ Global(),
31
+ Module({
32
+ imports: [
33
+ ThrottlerModule.forRootAsync({
34
+ inject: [REDIS, KERNEL_LOGGER],
35
+ useFactory: (redis, log) => ({
36
+ storage: new RedisThrottlerStorage(redis, log),
37
+ setHeaders: false,
38
+ throttlers: NAMED_THROTTLERS.map((t) => ({
39
+ name: t.name,
40
+ limit: t.limit,
41
+ ttl: t.ttl,
42
+ getTracker: (req) => t.getTracker(req),
43
+ generateKey: (_ctx, tracker, name) => throttlerKey(name, tracker),
44
+ skipIf: (ctx) => !selectedThrottlers(ctx).includes(t.name),
45
+ })),
46
+ }),
47
+ }),
48
+ ],
49
+ providers: [KernelThrottlerGuard, CredentialThrottler],
50
+ exports: [KernelThrottlerGuard, CredentialThrottler],
51
+ })
52
+ ], KernelThrottlerModule);
53
+ export { KernelThrottlerModule };
@@ -0,0 +1,15 @@
1
+ /** Injection tokens of the global infra modules. */
2
+ /** The process logger (`KernelLogger`). */
3
+ export declare const KERNEL_LOGGER: unique symbol;
4
+ /** The startup input of `KernelConfigService`: `{ config, env }`. */
5
+ export declare const KERNEL_CONFIG_INPUT: unique symbol;
6
+ /** The Kysely pool, untyped (`Kysely<any>`); infra only, services inject `KernelDb`. */
7
+ export declare const KERNEL_POOL: unique symbol;
8
+ /** The main ioredis connection (lazy: connects on first command or an explicit `connect()`). */
9
+ export declare const REDIS: unique symbol;
10
+ /** The shared bus subscriber connection (`BusSubscriber` with `close()`). */
11
+ export declare const REDIS_SUBSCRIBER: unique symbol;
12
+ /** The kernel bus (`createBus(..., "kernel")`, `ExtensionContext["bus"]`). */
13
+ export declare const KERNEL_BUS: unique symbol;
14
+ /** The master keyring (`createKeyring` over `masterKey` / `masterKeyPrevious`). */
15
+ export declare const KEYRING: unique symbol;
@@ -0,0 +1,15 @@
1
+ /** Injection tokens of the global infra modules. */
2
+ /** The process logger (`KernelLogger`). */
3
+ export const KERNEL_LOGGER = Symbol("KERNEL_LOGGER");
4
+ /** The startup input of `KernelConfigService`: `{ config, env }`. */
5
+ export const KERNEL_CONFIG_INPUT = Symbol("KERNEL_CONFIG_INPUT");
6
+ /** The Kysely pool, untyped (`Kysely<any>`); infra only, services inject `KernelDb`. */
7
+ export const KERNEL_POOL = Symbol("KERNEL_POOL");
8
+ /** The main ioredis connection (lazy: connects on first command or an explicit `connect()`). */
9
+ export const REDIS = Symbol("REDIS");
10
+ /** The shared bus subscriber connection (`BusSubscriber` with `close()`). */
11
+ export const REDIS_SUBSCRIBER = Symbol("REDIS_SUBSCRIBER");
12
+ /** The kernel bus (`createBus(..., "kernel")`, `ExtensionContext["bus"]`). */
13
+ export const KERNEL_BUS = Symbol("KERNEL_BUS");
14
+ /** The master keyring (`createKeyring` over `masterKey` / `masterKeyPrevious`). */
15
+ export const KEYRING = Symbol("KEYRING");
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ /** A class carrying a zod schema; the global validation pipe validates parameters typed with one. */
3
+ export interface ZodDtoClass<S extends z.ZodType = z.ZodType> {
4
+ new (): z.infer<S>;
5
+ readonly schema: S;
6
+ /** The name the swagger document lists the schema under. */
7
+ readonly dtoName: string | undefined;
8
+ /** The schema as JSON Schema (input side: what a client sends). */
9
+ jsonSchema(): Record<string, unknown>;
10
+ }
11
+ /** Every DTO created so far (the swagger document lists the named ones). */
12
+ export declare function registeredZodDtos(): readonly ZodDtoClass[];
13
+ /**
14
+ * Creates a DTO class from a zod schema (nestjs-zod does not support Nest 12, so the kernel has its
15
+ * own, same shape as octok's `createI18nZodDto`). Use it as the metatype of `@Body()`, `@Query()`
16
+ * or `@Param()`: `class CreateX extends createZodDto(schema, "CreateX") {}`. The instance type is
17
+ * the schema's output type.
18
+ */
19
+ export declare function createZodDto<S extends z.ZodType>(schema: S, name?: string): ZodDtoClass<S>;
20
+ /** The DTO's schema when `metatype` is one, else undefined. */
21
+ export declare function zodSchemaOf(metatype: unknown): z.ZodType | undefined;
22
+ /** What `@ZBody` / `@ZQuery` / `@ZParam` hand to the global pipe as the argument's `data`. */
23
+ export declare function isZodDto(value: unknown): value is ZodDtoClass;
@@ -0,0 +1,35 @@
1
+ // Ported from octok-platform libs/common/src/validation/create-i18n-zod-dto.ts (owner-approved, 2026-10-28).
2
+ import { z } from "zod";
3
+ const registry = new Set();
4
+ /** Every DTO created so far (the swagger document lists the named ones). */
5
+ export function registeredZodDtos() {
6
+ return [...registry];
7
+ }
8
+ /**
9
+ * Creates a DTO class from a zod schema (nestjs-zod does not support Nest 12, so the kernel has its
10
+ * own, same shape as octok's `createI18nZodDto`). Use it as the metatype of `@Body()`, `@Query()`
11
+ * or `@Param()`: `class CreateX extends createZodDto(schema, "CreateX") {}`. The instance type is
12
+ * the schema's output type.
13
+ */
14
+ export function createZodDto(schema, name) {
15
+ class ZodDto {
16
+ static schema = schema;
17
+ static dtoName = name;
18
+ static jsonSchema() {
19
+ return z.toJSONSchema(schema, { io: "input", unrepresentable: "any" });
20
+ }
21
+ }
22
+ registry.add(ZodDto);
23
+ return ZodDto;
24
+ }
25
+ /** The DTO's schema when `metatype` is one, else undefined. */
26
+ export function zodSchemaOf(metatype) {
27
+ if (typeof metatype !== "function")
28
+ return undefined;
29
+ const s = metatype.schema;
30
+ return s instanceof z.ZodType ? s : undefined;
31
+ }
32
+ /** What `@ZBody` / `@ZQuery` / `@ZParam` hand to the global pipe as the argument's `data`. */
33
+ export function isZodDto(value) {
34
+ return zodSchemaOf(value) !== undefined;
35
+ }
@@ -0,0 +1,7 @@
1
+ import type { z } from "zod";
2
+ /**
3
+ * Parses `value` with a zod schema and returns the output (transforms and defaults applied); a
4
+ * failure throws `validation_failed` whose details list each issue's path and message. The
5
+ * implementation behind the global `ZodValidationPipe`.
6
+ */
7
+ export declare function parseWithZod<S extends z.ZodType>(schema: S, value: unknown): z.infer<S>;
@@ -0,0 +1,12 @@
1
+ import { ApiError } from "../../errors.js";
2
+ /**
3
+ * Parses `value` with a zod schema and returns the output (transforms and defaults applied); a
4
+ * failure throws `validation_failed` whose details list each issue's path and message. The
5
+ * implementation behind the global `ZodValidationPipe`.
6
+ */
7
+ export function parseWithZod(schema, value) {
8
+ const r = schema.safeParse(value);
9
+ if (r.success)
10
+ return r.data;
11
+ throw new ApiError("validation_failed", "Request validation failed", r.error.issues.map((i) => ({ path: i.path.map(String).join("."), message: i.message })));
12
+ }
@@ -0,0 +1,3 @@
1
+ /** Registers the global zod validation pipe. */
2
+ export declare class ValidationModule {
3
+ }
@@ -0,0 +1,16 @@
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
+ import { Module } from "@nestjs/common";
8
+ import { APP_PIPE } from "@nestjs/core";
9
+ import { ZodValidationPipe } from "./zod-validation.pipe.js";
10
+ /** Registers the global zod validation pipe. */
11
+ let ValidationModule = class ValidationModule {
12
+ };
13
+ ValidationModule = __decorate([
14
+ Module({ providers: [{ provide: APP_PIPE, useClass: ZodValidationPipe }] })
15
+ ], ValidationModule);
16
+ export { ValidationModule };
@@ -0,0 +1,7 @@
1
+ import type { ZodDtoClass } from "./create-zod-dto.js";
2
+ /** The request body, validated against the DTO's schema; the parameter is the schema's output. */
3
+ export declare const ZBody: (dto: ZodDtoClass) => ParameterDecorator;
4
+ /** The query string, validated against the DTO's schema; each property is a swagger query parameter. */
5
+ export declare const ZQuery: (dto: ZodDtoClass) => ParameterDecorator;
6
+ /** The path parameters, validated against the DTO's schema; each property is a swagger path parameter. */
7
+ export declare const ZParam: (dto: ZodDtoClass) => ParameterDecorator;
@@ -0,0 +1,42 @@
1
+ import { createParamDecorator } from "@nestjs/common";
2
+ import { ApiBody, ApiParam, ApiQuery } from "@nestjs/swagger";
3
+ // esbuild, tsx and the kernel's own tsc build emit no decorator metadata, so a parameter's type is
4
+ // never visible to a pipe or to @nestjs/swagger. These decorators name the DTO explicitly: they
5
+ // pass the raw request part through, hand the DTO to the global ZodValidationPipe as the argument's
6
+ // `data`, and describe the parameter to swagger on the method.
7
+ const part = (key) => createParamDecorator((_dto, ctx) => ctx.switchToHttp().getRequest()[key]);
8
+ const body = part("body");
9
+ const query = part("query");
10
+ const params = part("params");
11
+ function onMethod(decorators, target, key) {
12
+ if (key === undefined)
13
+ return;
14
+ const desc = Object.getOwnPropertyDescriptor(target, key);
15
+ if (desc === undefined)
16
+ return;
17
+ for (const d of decorators)
18
+ d(target, key, desc);
19
+ }
20
+ function perProperty(dto, make) {
21
+ const js = dto.jsonSchema();
22
+ const required = new Set(js.required ?? []);
23
+ return Object.entries(js.properties ?? {}).map(([name, schema]) => make({ name, required: required.has(name), schema }));
24
+ }
25
+ /** The request body, validated against the DTO's schema; the parameter is the schema's output. */
26
+ export const ZBody = (dto) => (target, key, index) => {
27
+ body(dto)(target, key, index);
28
+ const schema = dto.dtoName === undefined
29
+ ? dto.jsonSchema()
30
+ : { $ref: `#/components/schemas/${dto.dtoName}` };
31
+ onMethod([ApiBody({ schema: schema })], target, key);
32
+ };
33
+ /** The query string, validated against the DTO's schema; each property is a swagger query parameter. */
34
+ export const ZQuery = (dto) => (target, key, index) => {
35
+ query(dto)(target, key, index);
36
+ onMethod(perProperty(dto, ApiQuery), target, key);
37
+ };
38
+ /** The path parameters, validated against the DTO's schema; each property is a swagger path parameter. */
39
+ export const ZParam = (dto) => (target, key, index) => {
40
+ params(dto)(target, key, index);
41
+ onMethod(perProperty(dto, ApiParam), target, key);
42
+ };
@@ -0,0 +1,11 @@
1
+ import { type ArgumentMetadata, type PipeTransform } from "@nestjs/common";
2
+ /**
3
+ * Global pipe (`APP_PIPE`): validates the arguments declared with `@ZBody(Dto)` / `@ZQuery(Dto)` /
4
+ * `@ZParam(Dto)` (the DTO arrives as `metadata.data`; a parameter whose metatype is a DTO, where
5
+ * the build emits decorator metadata, is validated too) and returns the parse output (transforms
6
+ * and defaults applied). Failures are `validation_failed` ({@link parseWithZod}). Any
7
+ * other argument (primitives, the raw request, other custom decorators) passes untouched.
8
+ */
9
+ export declare class ZodValidationPipe implements PipeTransform {
10
+ transform(value: unknown, metadata: ArgumentMetadata): unknown;
11
+ }
@@ -0,0 +1,31 @@
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
+ // Ported from octok-platform libs/common/src/validation (owner-approved, 2026-10-28).
8
+ import { Injectable } from "@nestjs/common";
9
+ import { zodSchemaOf } from "./create-zod-dto.js";
10
+ import { parseWithZod } from "./parse-with-zod.js";
11
+ /**
12
+ * Global pipe (`APP_PIPE`): validates the arguments declared with `@ZBody(Dto)` / `@ZQuery(Dto)` /
13
+ * `@ZParam(Dto)` (the DTO arrives as `metadata.data`; a parameter whose metatype is a DTO, where
14
+ * the build emits decorator metadata, is validated too) and returns the parse output (transforms
15
+ * and defaults applied). Failures are `validation_failed` ({@link parseWithZod}). Any
16
+ * other argument (primitives, the raw request, other custom decorators) passes untouched.
17
+ */
18
+ let ZodValidationPipe = class ZodValidationPipe {
19
+ transform(value, metadata) {
20
+ const schema = metadata.type === "custom"
21
+ ? zodSchemaOf(metadata.data)
22
+ : metadata.type === "body" || metadata.type === "query" || metadata.type === "param"
23
+ ? zodSchemaOf(metadata.metatype)
24
+ : undefined;
25
+ return schema === undefined ? value : parseWithZod(schema, value);
26
+ }
27
+ };
28
+ ZodValidationPipe = __decorate([
29
+ Injectable()
30
+ ], ZodValidationPipe);
31
+ export { ZodValidationPipe };
package/dist/kernel.d.ts CHANGED
@@ -1,251 +1,18 @@
1
- import { type BootstrapManifest, type ExtensionContext } from "@capybara-hq/plugin-sdk";
2
- import { CatalogService } from "./catalog/catalog.service.js";
3
- import { MarketplacesService } from "./catalog/marketplaces.service.js";
4
- import { PluginImport } from "./catalog/plugin-import.js";
5
- import { ChannelConnections } from "./channels/connections.service.js";
6
- import { ChannelInbound } from "./channels/inbound.js";
7
- import { ChannelOutbound } from "./channels/outbound.js";
8
- import { type ConfigSource } from "./config/load.js";
9
- import { type KernelConfig } from "./config/schema.js";
10
- import { type ConfigSourceKind } from "./config/sources.js";
11
- import { AttachmentsService } from "./conversations/attachments.service.js";
12
- import { EventLog } from "./conversations/event-log.js";
13
- import type { EvalReplayHooks } from "./evals/run-replay.js";
14
- import { ExtensionAdminOps } from "./extensions/admin-ops.js";
15
- import { ExtensionAdmin } from "./extensions/admin-view.js";
1
+ import type { KernelConfig } from "./config/schema.js";
16
2
  import type { PendingExtension } from "./extensions/approvals.js";
17
- import { ExtensionBlobs } from "./extensions/blobs.js";
18
- import { BootstrapService } from "./extensions/bootstrap.js";
19
- import { ExtensionDeploymentConfigService } from "./extensions/deployment-config.js";
20
- import { ExtensionHost } from "./extensions/host.js";
21
- import { ExtensionInstalls } from "./extensions/installs.js";
22
- import { ExtensionLifecycle } from "./extensions/lifecycle.js";
23
- import { OrgExtensionConfigs } from "./extensions/org-config.js";
24
- import { type KernelHttp } from "./http/app.js";
25
- import { IdentityBinding } from "./identity/binding.js";
26
- import { ExternalIdentities } from "./identity/external.js";
27
- import { SsoFlow } from "./identity/sso.js";
28
- import type { KernelLogger } from "./log.js";
29
- import { PricesService } from "./models/prices.js";
30
- import { ModelPurposesService } from "./models/purposes.js";
31
- import { DirectorySync } from "./orgs/directory-sync.js";
32
- import { Offboarding } from "./orgs/offboarding.js";
33
- import { RunAbort } from "./runtime/abort.js";
34
- import { ConversationLock } from "./runtime/conversation-lock.js";
35
- import { type LoopDeps } from "./runtime/langgraph-loop.js";
36
- import type { AgentLoop } from "./runtime/loop.js";
37
- import { Maintenance } from "./runtime/maintenance.js";
38
- import { ProviderRegistry } from "./runtime/providers.js";
39
- import { OrgQuota } from "./runtime/quota.js";
40
- import { RunQueue } from "./runtime/run-queue.js";
41
- import { type RunHooks } from "./runtime/run-worker.js";
42
- import { UsageReporter } from "./runtime/usage-report.js";
43
- import { Waits } from "./runtime/waits.js";
44
- import { SandboxService } from "./sandbox/sandbox.service.js";
45
- import { SkillChangesService } from "./skills/changes.service.js";
46
- import { SkillsService } from "./skills/skills.service.js";
47
- import { StorageService } from "./storage/storage.service.js";
48
- import { ApprovalsService } from "./tools/approvals.service.js";
49
- import { ConnectorContent } from "./tools/connector-content.js";
50
- import { Credentials } from "./tools/credentials.js";
51
- import { ToolDrift } from "./tools/drift.js";
52
- import { ToolOutputs } from "./tools/outputs.js";
53
- import { ToolPipeline } from "./tools/pipeline.js";
54
- import { QuestionsService } from "./tools/questions.service.js";
55
- import { ToolRegistry } from "./tools/registry.js";
56
3
  /**
57
- * 内核迁移目录。src/ 与 dist/ 都在包根下一层,所以统一指向 `<包根>/src/migrations`:
58
- * 用 tsx 从源码运行与运行 tsc 产物时解析到同一个目录(SQL 文件不进 dist,随包发布 src/migrations)。
4
+ * The kernel migrations directory. `src/` and `dist/` are both one level below the package root,
5
+ * so this always points at `<package root>/src/migrations`: running from source with tsx and
6
+ * running the tsc output resolve to the same directory (the SQL files are not copied into dist;
7
+ * the package ships `src/migrations`).
59
8
  */
60
9
  export declare const KERNEL_MIGRATIONS_DIR: string;
61
- /** 内核 PG schema。 */
10
+ /** The kernel's PG schema. */
62
11
  export declare const KERNEL_SCHEMA = "capybara";
63
12
  /**
64
- * 停机分阶段预算:每阶段实际等待 `min(阶段预算, 总剩余)`,按顺序为
65
- * migrate(中止进行中的内核迁移并等其会话结束)2s → http 10s → runs 10s → plugins 5s,合计 27s,
66
- * 余下 3s 给 bus / redis / pg 收尾(这三步共享总剩余)。
67
- * http 阶段是一个截止时间:先等进行中的监听完成(否则关闭会与监听交错留下端口),再关闭 HTTP,
68
- * 两步共用这 10s;到点仍未关完就强制断开所有连接。
69
- * runs 阶段(从原插件阶段的 15s 中划出 10s):本进程的运行收到停机信号,在下一个步骤边界停下、
70
- * 任务回到队列;超出预算的运行交给 BullMQ stalled 机制由其他 worker 续跑(spec 8.5)。
71
- * 因此任一前序阶段卡死时,插件队列仍至少有 5s 排空,总时长不超过 30s。
72
- */
73
- export declare const STOP_BUDGET_MS: {
74
- readonly migrate: 2000;
75
- readonly http: 10000;
76
- readonly runs: 10000;
77
- readonly plugins: 5000;
78
- };
79
- /** 运行编排相关的内核服务(后续任务的 loop / SSE 使用)。 */
80
- export interface KernelRuns {
81
- readonly eventLog: EventLog;
82
- readonly registry: ProviderRegistry;
83
- readonly queue: RunQueue;
84
- readonly lock: ConversationLock;
85
- readonly quota: OrgQuota;
86
- readonly abort: RunAbort;
87
- /** 构造 loop 用的依赖(单步模型调用 + 工具执行管线)。 */
88
- readonly stepDeps: LoopDeps;
89
- /** 运行等待人处理:续跑、超时、等待中中止。 */
90
- readonly waits: Waits;
91
- /** 内核维护队列(等待超时、输出存档清理等)。 */
92
- readonly maintenance: Maintenance;
93
- }
94
- /** 工具相关的内核服务。 */
95
- export interface KernelTools {
96
- readonly registry: ToolRegistry;
97
- readonly credentials: Credentials;
98
- /** 输出存档(超大工具结果)。 */
99
- readonly outputs: ToolOutputs;
100
- /** 工具执行管线(tools 节点使用)。 */
101
- readonly pipeline: ToolPipeline;
102
- /** 工具调用审批与「以后都允许」授权。 */
103
- readonly approvals: ApprovalsService;
104
- /** 工具调用的输入请求(回答后续跑)。 */
105
- readonly questions: QuestionsService;
106
- /** 工具定义漂移检测(周期扫描、list_changed、手动刷新)。 */
107
- readonly drift: ToolDrift;
108
- /** 连接器的 prompts / resources(斜杠命令、@ 资源引用与消息附件)。 */
109
- readonly connectorContent: ConnectorContent;
110
- }
111
- /** 外部身份相关的内核服务(渠道运行时、通讯录同步与 HTTP 共用)。 */
112
- export interface KernelIdentity {
113
- /** 外部身份 ↔ 账号(登录、渠道入站、通讯录共用 `(source, externalId)` 键)。 */
114
- readonly external: ExternalIdentities;
115
- /** IM 身份的一次性绑定链接。 */
116
- readonly binding: IdentityBinding;
117
- /** 第三方登录(`identity-source@1`)。 */
118
- readonly sso: SsoFlow;
119
- /** 成员离职处理(移出、离开、通讯录同步共用)。 */
120
- readonly offboarding: Offboarding;
121
- /** 通讯录同步(`directory@1`:每小时扫描、手动、`directory_changed` 提示)。 */
122
- readonly directory: DirectorySync;
123
- }
124
- /** 渠道运行时(连接、入站、出站投递)。 */
125
- export interface KernelChannels {
126
- /** 组织的渠道连接(CRUD、运行时配置、出站会话 `outbound` / `send`)。 */
127
- readonly connections: ChannelConnections;
128
- /** 出站投递与入站任务(队列 `cap-kernel-channels`;worker 角色消费)。 */
129
- readonly outbound: ChannelOutbound;
130
- /** 入站事件:`onEvent`(插件 `connect` 的回调,去重并入队)与 `handle`(worker 上处理入站任务)。 */
131
- readonly inbound: ChannelInbound;
132
- }
133
- /** 运行中的内核实例。 */
134
- export interface Kernel {
135
- /** 内核 HTTP:进程内注入请求、列出路由。 */
136
- readonly http: KernelHttp;
137
- readonly host: ExtensionHost;
138
- /** usage.report delivery (fast path, sweeper and, on the worker role, the worker). */
139
- readonly usageReport: UsageReporter;
140
- /** This process's replica id (`<hostname>-<pid>-<6 random chars>`, written to `extension_replica_status`). */
141
- readonly replicaId: string;
142
- /** 插件包的导入(上传 / npm)与安装记录。 */
143
- readonly extensionInstalls: ExtensionInstalls;
144
- /** 部署级插件后台:列表、状态与网页批准权限。 */
145
- readonly extensionAdmin: ExtensionAdmin;
146
- /** 部署级插件的安装 / 启用 / 停用 / 卸载(只写期望状态并发布 `kernel.plugins.changed`)。 */
147
- readonly extensionAdminOps: ExtensionAdminOps;
148
- /** 本副本的插件生命周期:订阅 bus 并 reconcile 到 PG 期望状态(C16)。 */
149
- readonly extensionLifecycle: ExtensionLifecycle;
150
- /** 内容寻址的插件包存储(对象存储或 PG)。 */
151
- readonly extensionBlobs: ExtensionBlobs;
152
- /** The enterprise catalog: items and imports (plugins / connector templates / skills). */
153
- readonly catalog: CatalogService;
154
- /** Enterprise import of plugins (plugin tgz files): prepare / confirm and staging cleanup. */
155
- readonly pluginImport: PluginImport;
156
- /** The bootstrap step (package ecosystem spec §7); `start()` runs it when given `bootstrap`. */
157
- readonly bootstrap: BootstrapService;
158
- /** Marketplaces: official / enterprise marketplaces and their refresh. */
159
- readonly marketplaces: MarketplacesService;
160
- /** 部署级插件配置(PG,文件 / 环境变量里有的字段只读;C10)。 */
161
- readonly extensionDeploymentConfigs: ExtensionDeploymentConfigService;
162
- /** 组织级插件启用状态与配置(密钥字段加密存储)。 */
163
- readonly orgExtensionConfigs: OrgExtensionConfigs;
164
- /** 内核总线(命名空间 `kernel`)。 */
165
- readonly bus: ExtensionContext["bus"];
166
- /** 运行编排服务。 */
167
- readonly runs: KernelRuns;
168
- /** 工具注册表与连接器凭据。 */
169
- readonly tools: KernelTools;
170
- /** 外部身份、绑定、第三方登录与离职处理。 */
171
- readonly identity: KernelIdentity;
172
- /** 渠道连接与入站。 */
173
- readonly channels: KernelChannels;
174
- /**
175
- * 对象存储(`object-store@1` 提供方之上的前缀隔离,内核用 `kernel(orgId)`);
176
- * 没有提供方时 `available` 为 false,各方法 reject `storage.unavailable`。
177
- */
178
- readonly storage: StorageService;
179
- /** 对话附件(上传、finalize、绑定、取字节、过期清理)。 */
180
- readonly attachments: AttachmentsService;
181
- /** 技能库(组织技能的上传、版本、列表与软删除)。 */
182
- readonly skills: SkillsService;
183
- /** agent 自写技能(`skill_write`)与共享 agent 的技能变更审批(R4)。 */
184
- readonly skillChanges: SkillChangesService;
185
- /** 模型价格表(PG `model_prices`,成本读时计算)。 */
186
- readonly prices: PricesService;
187
- /** 模型用途映射(部署默认 + 组织覆盖;评委用途 `eval`)。 */
188
- readonly purposes: ModelPurposesService;
189
- /**
190
- * 按对话的沙箱(`sandbox@1` 提供方之上:懒创建、锁、休眠与销毁);
191
- * 没有提供方时 `available` 为 false,使用时抛 `sandbox.unavailable`(503)。
192
- */
193
- readonly sandbox: SandboxService;
194
- readonly log: KernelLogger;
195
- /** 当前生效的配置(热更新只替换 `hot` 字段)。 */
196
- readonly config: KernelConfig;
197
- /**
198
- * 实际监听的端口;尚未 start 或已 stop 时为 undefined。
199
- * 所有角色都监听:worker-only 只暴露 `/healthz` 与 `/readyz`(供 K8s 探针)。
200
- */
201
- readonly port: number | undefined;
202
- start(): Promise<void>;
203
- /** 优雅停机:幂等,总时长不超过 30s。 */
204
- stop(): Promise<void>;
205
- }
206
- /** createKernel 的可选项。 */
207
- export interface KernelOptions {
208
- /** 配置来源;提供 `watch` 时启用热更新。 */
209
- source?: ConfigSource;
210
- /** 解析插件裸包名的目录,默认 `process.cwd()`;相对路径按当前 cwd 解析。 */
211
- resolveFrom?: string;
212
- /** Defaults to a logger built from `config.log` and `config.roles` (createConfiguredLogger). */
213
- logger?: KernelLogger;
214
- /** 热更新时与来源原始值合并的环境变量,默认 `process.env`。 */
215
- env?: NodeJS.ProcessEnv;
216
- /**
217
- * 运行使用的 AgentLoop 工厂(测试用)。默认是 {@link LangGraphLoop}:checkpoint 存在内核的
218
- * `KyselyCheckpointSaver`,worker 崩溃后其他副本从 checkpoint 续跑。
219
- */
220
- loop?: (deps: LoopDeps) => AgentLoop;
221
- /** 运行 worker 的测试钩子。 */
222
- runHooks?: RunHooks;
223
- /** 评测整轮回放的测试钩子。 */
224
- evalHooks?: EvalReplayHooks;
225
- /**
226
- * The bootstrap step (package ecosystem spec §7, startup bootstrap spec). When given, `start()`
227
- * runs it (see `extensions/bootstrap.ts`) before loading extensions unless it is already done for
228
- * the manifest, and refuses to start when it cannot complete a required entry. `dir`: the
229
- * optional offline directory whose `*.tgz` files are matched to the entries by sha512 (a missing
230
- * directory is an empty one); entries without a matching file are downloaded from
231
- * `packages.npmRegistry`. Omitted: no bootstrap step (tests, unless they ask for it).
232
- */
233
- bootstrap?: {
234
- dir?: string;
235
- };
236
- /** The bootstrap manifest; default the `bootstrap.json` shipped with the kernel package. */
237
- bootstrapManifest?: BootstrapManifest;
238
- /**
239
- * Where each extension deployment config field of the startup config comes from (the
240
- * `extensionConfigSources` returned by `loadConfigWithSources`); these fields are read-only in the
241
- * admin console (D8). When omitted it is derived from `config.extensionConfig`: fields present in
242
- * the environment are `env`, the rest take the `CAPYBARA_CONFIG_SOURCE` kind (file / nacos).
243
- */
244
- extensionConfigSources?: Record<string, Record<string, ConfigSourceKind>>;
245
- }
246
- /**
247
- * 运行内核迁移与所有已配置插件的迁移(不调用插件 setup,不连接 Redis)。
248
- * 权限待批准的插件不迁移(`extensionPermissions.autoApprove` 时除外),经 `opts.onPending` 报告。
13
+ * Runs the kernel migrations and those of every configured extension (no extension `setup`, no
14
+ * Redis connection). Extensions whose permissions await approval are not migrated (unless
15
+ * `extensionPermissions.autoApprove`); they are reported through `opts.onPending`.
249
16
  */
250
17
  export declare function migrateAll(config: KernelConfig, opts?: {
251
18
  resolveFrom?: string;
@@ -255,5 +22,3 @@ export declare function migrateAll(config: KernelConfig, opts?: {
255
22
  plugin?: string;
256
23
  applied: string[];
257
24
  }[]>;
258
- /** 构建内核:创建连接(Redis 惰性连接)、插件宿主与 HTTP 应用;`start()` 才真正连接、迁移、加载插件与监听。 */
259
- export declare function createKernel(config: KernelConfig, opts?: KernelOptions): Promise<Kernel>;