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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/bootstrap.json +10 -6
  2. package/dist/admin/admin.controller.d.ts +17 -17
  3. package/dist/admin/admin.controller.js +43 -26
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/extensions.controller.d.ts +14 -14
  7. package/dist/admin/extensions.controller.js +30 -17
  8. package/dist/admin/setup-lock.d.ts +16 -0
  9. package/dist/admin/setup-lock.js +47 -0
  10. package/dist/admin/setup.controller.d.ts +8 -8
  11. package/dist/admin/setup.controller.js +27 -25
  12. package/dist/admin/setup.service.d.ts +19 -27
  13. package/dist/admin/setup.service.js +61 -61
  14. package/dist/agents/agent-lookup.d.ts +53 -0
  15. package/dist/agents/agent-lookup.js +179 -0
  16. package/dist/agents/agents.controller.d.ts +1 -1
  17. package/dist/agents/agents.controller.js +14 -8
  18. package/dist/agents/agents.module.d.ts +7 -0
  19. package/dist/agents/agents.module.js +41 -0
  20. package/dist/agents/agents.service.d.ts +39 -58
  21. package/dist/agents/agents.service.js +261 -329
  22. package/dist/agents/definition.d.ts +8 -0
  23. package/dist/agents/definition.js +8 -0
  24. package/dist/agents/models.controller.d.ts +1 -1
  25. package/dist/agents/models.controller.js +2 -2
  26. package/dist/agents/templates.controller.d.ts +1 -1
  27. package/dist/agents/templates.controller.js +2 -2
  28. package/dist/agents/templates.d.ts +6 -8
  29. package/dist/agents/templates.js +20 -4
  30. package/dist/app.d.ts +93 -0
  31. package/dist/app.js +150 -0
  32. package/dist/catalog/admin-catalog.controller.d.ts +3 -3
  33. package/dist/catalog/admin-catalog.controller.js +27 -13
  34. package/dist/catalog/catalog-content.d.ts +185 -0
  35. package/dist/catalog/catalog-content.js +323 -0
  36. package/dist/catalog/catalog-items.d.ts +186 -0
  37. package/dist/catalog/catalog-items.js +410 -0
  38. package/dist/catalog/catalog.module.d.ts +14 -0
  39. package/dist/catalog/catalog.module.js +71 -0
  40. package/dist/catalog/catalog.service.d.ts +34 -188
  41. package/dist/catalog/catalog.service.js +155 -489
  42. package/dist/catalog/cli.d.ts +3 -2
  43. package/dist/catalog/cli.js +13 -31
  44. package/dist/catalog/job-ids.d.ts +15 -0
  45. package/dist/catalog/job-ids.js +15 -0
  46. package/dist/catalog/jobs.d.ts +27 -0
  47. package/dist/catalog/jobs.js +70 -0
  48. package/dist/catalog/locks.d.ts +24 -0
  49. package/dist/catalog/locks.js +63 -0
  50. package/dist/catalog/marketplaces.controller.d.ts +4 -4
  51. package/dist/catalog/marketplaces.controller.js +22 -11
  52. package/dist/catalog/marketplaces.service.d.ts +30 -13
  53. package/dist/catalog/marketplaces.service.js +330 -256
  54. package/dist/catalog/org-catalog.controller.d.ts +4 -3
  55. package/dist/catalog/org-catalog.controller.js +29 -14
  56. package/dist/catalog/org-catalog.service.d.ts +32 -198
  57. package/dist/catalog/org-catalog.service.js +159 -400
  58. package/dist/catalog/plugin-import.d.ts +73 -34
  59. package/dist/catalog/plugin-import.js +356 -217
  60. package/dist/catalog/plugin-install.d.ts +83 -41
  61. package/dist/catalog/plugin-install.js +421 -269
  62. package/dist/catalog/plugin-upgrade.d.ts +59 -4
  63. package/dist/catalog/plugin-upgrade.js +407 -282
  64. package/dist/catalog/requests.service.d.ts +27 -15
  65. package/dist/catalog/requests.service.js +201 -145
  66. package/dist/catalog/upgrade-targets.d.ts +4 -7
  67. package/dist/channels/actions.d.ts +6 -4
  68. package/dist/channels/actions.js +1 -1
  69. package/dist/channels/cards.d.ts +2 -2
  70. package/dist/channels/channels.module.d.ts +40 -0
  71. package/dist/channels/channels.module.js +128 -0
  72. package/dist/channels/connections.controller.d.ts +1 -1
  73. package/dist/channels/connections.controller.js +11 -6
  74. package/dist/channels/connections.service.d.ts +43 -21
  75. package/dist/channels/connections.service.js +236 -131
  76. package/dist/channels/inbound.d.ts +34 -38
  77. package/dist/channels/inbound.js +107 -41
  78. package/dist/channels/job-ids.d.ts +10 -0
  79. package/dist/channels/job-ids.js +10 -0
  80. package/dist/channels/jobs.d.ts +85 -0
  81. package/dist/channels/jobs.js +157 -0
  82. package/dist/channels/outbound.d.ts +60 -82
  83. package/dist/channels/outbound.js +165 -193
  84. package/dist/channels/supervisor.d.ts +88 -46
  85. package/dist/channels/supervisor.js +230 -132
  86. package/dist/channels/threads.d.ts +29 -8
  87. package/dist/channels/threads.js +71 -13
  88. package/dist/channels/webhook.d.ts +20 -14
  89. package/dist/channels/webhook.js +51 -20
  90. package/dist/config/load.d.ts +3 -2
  91. package/dist/config/load.js +3 -2
  92. package/dist/config/nacos-source.js +11 -2
  93. package/dist/config/schema.d.ts +16 -1
  94. package/dist/config/schema.js +54 -7
  95. package/dist/conversations/access.d.ts +29 -0
  96. package/dist/conversations/access.js +86 -0
  97. package/dist/conversations/artifacts.d.ts +10 -10
  98. package/dist/conversations/artifacts.js +35 -9
  99. package/dist/conversations/attachments.controller.d.ts +1 -1
  100. package/dist/conversations/attachments.controller.js +8 -6
  101. package/dist/conversations/attachments.module.d.ts +7 -0
  102. package/dist/conversations/attachments.module.js +25 -0
  103. package/dist/conversations/attachments.service.d.ts +30 -22
  104. package/dist/conversations/attachments.service.js +119 -46
  105. package/dist/conversations/conversations.controller.d.ts +8 -7
  106. package/dist/conversations/conversations.controller.js +59 -29
  107. package/dist/conversations/conversations.module.d.ts +8 -0
  108. package/dist/conversations/conversations.module.js +69 -0
  109. package/dist/conversations/conversations.service.d.ts +40 -38
  110. package/dist/conversations/conversations.service.js +130 -140
  111. package/dist/conversations/event-log.d.ts +28 -18
  112. package/dist/conversations/event-log.js +74 -27
  113. package/dist/conversations/files.d.ts +10 -10
  114. package/dist/conversations/files.js +37 -11
  115. package/dist/conversations/idem-keys.d.ts +5 -0
  116. package/dist/conversations/idem-keys.js +5 -0
  117. package/dist/conversations/job-ids.d.ts +6 -0
  118. package/dist/conversations/job-ids.js +6 -0
  119. package/dist/conversations/outputs-read.d.ts +11 -11
  120. package/dist/conversations/outputs-read.js +31 -7
  121. package/dist/conversations/queue.d.ts +48 -56
  122. package/dist/conversations/queue.js +13 -289
  123. package/dist/conversations/queue.service.d.ts +60 -0
  124. package/dist/conversations/queue.service.js +343 -0
  125. package/dist/conversations/sandbox-status.d.ts +13 -10
  126. package/dist/conversations/sandbox-status.js +36 -8
  127. package/dist/conversations/titles.d.ts +71 -24
  128. package/dist/conversations/titles.js +159 -62
  129. package/dist/ctx/bus.js +9 -3
  130. package/dist/ctx/create-ctx.d.ts +6 -0
  131. package/dist/ctx/create-ctx.js +7 -9
  132. package/dist/ctx/lock.d.ts +7 -3
  133. package/dist/ctx/lock.js +9 -20
  134. package/dist/ctx/queue.js +3 -2
  135. package/dist/ctx/secrets.d.ts +10 -2
  136. package/dist/ctx/secrets.js +7 -3
  137. package/dist/db/kernel-schema.d.ts +2 -2
  138. package/dist/db/pool.d.ts +5 -0
  139. package/dist/db/pool.js +1 -0
  140. package/dist/errors.d.ts +2 -0
  141. package/dist/errors.js +2 -0
  142. package/dist/evals/budget.d.ts +42 -21
  143. package/dist/evals/budget.js +114 -62
  144. package/dist/evals/evals.module.d.ts +31 -0
  145. package/dist/evals/evals.module.js +114 -0
  146. package/dist/evals/jobs.d.ts +20 -0
  147. package/dist/evals/jobs.js +45 -0
  148. package/dist/evals/run-replay.d.ts +56 -8
  149. package/dist/evals/run-replay.js +140 -80
  150. package/dist/evals/runs.controller.d.ts +1 -1
  151. package/dist/evals/runs.controller.js +17 -8
  152. package/dist/evals/runs.service.d.ts +23 -45
  153. package/dist/evals/runs.service.js +245 -234
  154. package/dist/evals/sets.controller.d.ts +1 -1
  155. package/dist/evals/sets.controller.js +17 -8
  156. package/dist/evals/sets.service.d.ts +22 -6
  157. package/dist/evals/sets.service.js +248 -194
  158. package/dist/evals/snapshot.d.ts +2 -2
  159. package/dist/evals/step-replay.d.ts +2 -2
  160. package/dist/evals/step-replay.js +1 -1
  161. package/dist/evals/trajectory.controller.d.ts +1 -1
  162. package/dist/evals/trajectory.controller.js +11 -7
  163. package/dist/evals/trajectory.service.d.ts +5 -4
  164. package/dist/evals/trajectory.service.js +30 -7
  165. package/dist/evals/worker.d.ts +44 -27
  166. package/dist/evals/worker.js +220 -120
  167. package/dist/extensions/admin-ops.d.ts +61 -33
  168. package/dist/extensions/admin-ops.js +248 -154
  169. package/dist/extensions/admin-view.d.ts +38 -27
  170. package/dist/extensions/admin-view.js +126 -55
  171. package/dist/extensions/approvals.d.ts +12 -8
  172. package/dist/extensions/approvals.js +73 -46
  173. package/dist/extensions/blobs.d.ts +27 -10
  174. package/dist/extensions/blobs.js +111 -45
  175. package/dist/extensions/bootstrap.d.ts +96 -42
  176. package/dist/extensions/bootstrap.js +303 -155
  177. package/dist/extensions/cli.d.ts +20 -10
  178. package/dist/extensions/cli.js +41 -96
  179. package/dist/extensions/config-issues.d.ts +7 -0
  180. package/dist/extensions/config-issues.js +31 -0
  181. package/dist/extensions/deployment-config-store.d.ts +49 -0
  182. package/dist/extensions/deployment-config-store.js +133 -0
  183. package/dist/extensions/deployment-config.d.ts +58 -67
  184. package/dist/extensions/deployment-config.js +202 -230
  185. package/dist/extensions/enabled.d.ts +5 -5
  186. package/dist/extensions/extensions.module.d.ts +8 -0
  187. package/dist/extensions/extensions.module.js +77 -0
  188. package/dist/extensions/hooks.d.ts +3 -2
  189. package/dist/extensions/hooks.js +1 -1
  190. package/dist/extensions/host.d.ts +72 -68
  191. package/dist/extensions/host.js +191 -152
  192. package/dist/extensions/installs.d.ts +49 -16
  193. package/dist/extensions/installs.js +128 -32
  194. package/dist/extensions/job-ids.d.ts +6 -0
  195. package/dist/extensions/job-ids.js +6 -0
  196. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  197. package/dist/extensions/lifecycle-topics.js +18 -0
  198. package/dist/extensions/lifecycle.d.ts +35 -47
  199. package/dist/extensions/lifecycle.js +103 -39
  200. package/dist/extensions/locks.d.ts +33 -0
  201. package/dist/extensions/locks.js +86 -0
  202. package/dist/extensions/migrate-lock.d.ts +3 -4
  203. package/dist/extensions/org-config.controller.d.ts +1 -1
  204. package/dist/extensions/org-config.controller.js +8 -5
  205. package/dist/extensions/org-config.d.ts +48 -46
  206. package/dist/extensions/org-config.js +284 -226
  207. package/dist/extensions/registry.d.ts +50 -2
  208. package/dist/extensions/registry.js +89 -4
  209. package/dist/extensions/sources.d.ts +12 -8
  210. package/dist/extensions/sources.js +34 -13
  211. package/dist/files/files.module.d.ts +3 -0
  212. package/dist/files/files.module.js +22 -0
  213. package/dist/files/previewers.controller.d.ts +7 -2
  214. package/dist/files/previewers.controller.js +17 -9
  215. package/dist/files/previewers.d.ts +13 -18
  216. package/dist/files/previewers.js +83 -36
  217. package/dist/http/adapter.d.ts +3 -0
  218. package/dist/http/adapter.js +25 -0
  219. package/dist/http/api.module.d.ts +3 -110
  220. package/dist/http/api.module.js +47 -355
  221. package/dist/http/app.d.ts +11 -15
  222. package/dist/http/app.js +52 -47
  223. package/dist/http/error-filter.module.d.ts +5 -0
  224. package/dist/http/error-filter.module.js +18 -0
  225. package/dist/http/error.filter.js +2 -2
  226. package/dist/identity/accounts.d.ts +82 -29
  227. package/dist/identity/accounts.js +294 -175
  228. package/dist/identity/api-tokens.d.ts +11 -7
  229. package/dist/identity/api-tokens.js +71 -44
  230. package/dist/identity/audit.d.ts +7 -4
  231. package/dist/identity/audit.js +5 -1
  232. package/dist/identity/auth.controller.d.ts +11 -10
  233. package/dist/identity/auth.controller.js +31 -25
  234. package/dist/identity/auth.guard.d.ts +3 -3
  235. package/dist/identity/auth.guard.js +6 -4
  236. package/dist/identity/binding.d.ts +9 -11
  237. package/dist/identity/binding.js +41 -13
  238. package/dist/identity/enterprise-admin.d.ts +18 -12
  239. package/dist/identity/enterprise-admin.js +67 -13
  240. package/dist/identity/external-identity-lock.d.ts +17 -0
  241. package/dist/identity/external-identity-lock.js +39 -0
  242. package/dist/identity/external.d.ts +19 -15
  243. package/dist/identity/external.js +163 -125
  244. package/dist/identity/identity.module.d.ts +6 -0
  245. package/dist/identity/identity.module.js +56 -0
  246. package/dist/identity/me.controller.d.ts +16 -15
  247. package/dist/identity/me.controller.js +37 -31
  248. package/dist/identity/sessions.d.ts +12 -10
  249. package/dist/identity/sessions.js +74 -42
  250. package/dist/identity/settings.d.ts +20 -14
  251. package/dist/identity/settings.js +85 -57
  252. package/dist/identity/sso.controller.d.ts +7 -7
  253. package/dist/identity/sso.controller.js +13 -9
  254. package/dist/identity/sso.d.ts +9 -12
  255. package/dist/identity/sso.js +54 -24
  256. package/dist/inbox/inbox.module.d.ts +3 -0
  257. package/dist/inbox/inbox.module.js +22 -0
  258. package/dist/inbox/inbox.service.d.ts +7 -9
  259. package/dist/inbox/inbox.service.js +32 -11
  260. package/dist/index.d.ts +19 -12
  261. package/dist/index.js +13 -8
  262. package/dist/infra/cache/cache.module.d.ts +3 -0
  263. package/dist/infra/cache/cache.module.js +16 -0
  264. package/dist/infra/cache/cache.service.d.ts +21 -0
  265. package/dist/infra/cache/cache.service.js +80 -0
  266. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  267. package/dist/infra/cache/cacheable.decorator.js +83 -0
  268. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  269. package/dist/infra/cli/kernel-cli.module.js +165 -0
  270. package/dist/infra/close-within.d.ts +15 -0
  271. package/dist/infra/close-within.js +36 -0
  272. package/dist/infra/config/config.module.d.ts +13 -0
  273. package/dist/infra/config/config.module.js +39 -0
  274. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  275. package/dist/infra/config/kernel-config.service.js +126 -0
  276. package/dist/infra/database/after-commit.d.ts +6 -0
  277. package/dist/infra/database/after-commit.js +9 -0
  278. package/dist/infra/database/database.module.d.ts +25 -0
  279. package/dist/infra/database/database.module.js +90 -0
  280. package/dist/infra/database/kernel-db.d.ts +22 -0
  281. package/dist/infra/database/kernel-db.js +65 -0
  282. package/dist/infra/database/transaction-host.d.ts +50 -0
  283. package/dist/infra/database/transaction-host.js +125 -0
  284. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  285. package/dist/infra/database/transactional.decorator.js +27 -0
  286. package/dist/infra/database/xact-lock.d.ts +17 -0
  287. package/dist/infra/database/xact-lock.js +43 -0
  288. package/dist/infra/events/kernel-events.d.ts +96 -0
  289. package/dist/infra/events/kernel-events.js +65 -0
  290. package/dist/infra/health/health.controller.d.ts +26 -0
  291. package/dist/infra/health/health.controller.js +104 -0
  292. package/dist/infra/health/health.module.d.ts +9 -0
  293. package/dist/infra/health/health.module.js +24 -0
  294. package/dist/infra/health/health.options.d.ts +10 -0
  295. package/dist/infra/health/health.options.js +15 -0
  296. package/dist/infra/health/shutdown-state.d.ts +6 -0
  297. package/dist/infra/health/shutdown-state.js +2 -0
  298. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  299. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  300. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  301. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  302. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  303. package/dist/infra/lifecycle/process-guards.js +86 -0
  304. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  305. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  306. package/dist/infra/lock/key-template.d.ts +13 -0
  307. package/dist/infra/lock/key-template.js +46 -0
  308. package/dist/infra/lock/lock.module.d.ts +3 -0
  309. package/dist/infra/lock/lock.module.js +16 -0
  310. package/dist/infra/lock/lock.service.d.ts +120 -0
  311. package/dist/infra/lock/lock.service.js +343 -0
  312. package/dist/infra/lock/shared-lease.d.ts +44 -0
  313. package/dist/infra/lock/shared-lease.js +121 -0
  314. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  315. package/dist/infra/lock/with-lock.decorator.js +49 -0
  316. package/dist/infra/logging/logging.module.d.ts +16 -0
  317. package/dist/infra/logging/logging.module.js +34 -0
  318. package/dist/infra/queue/configured-processor.d.ts +18 -0
  319. package/dist/infra/queue/configured-processor.js +23 -0
  320. package/dist/infra/queue/job-failure.d.ts +18 -0
  321. package/dist/infra/queue/job-failure.js +26 -0
  322. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  323. package/dist/infra/queue/queue-shutdown.js +81 -0
  324. package/dist/infra/queue/queue.module.d.ts +16 -0
  325. package/dist/infra/queue/queue.module.js +61 -0
  326. package/dist/infra/queue/redis-connection.d.ts +7 -0
  327. package/dist/infra/queue/redis-connection.js +18 -0
  328. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  329. package/dist/infra/queue/retired-schedulers.js +9 -0
  330. package/dist/infra/queue/run-job.d.ts +16 -0
  331. package/dist/infra/queue/run-job.js +19 -0
  332. package/dist/infra/redis/redis.module.d.ts +24 -0
  333. package/dist/infra/redis/redis.module.js +87 -0
  334. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  335. package/dist/infra/schedule/cron-tick.js +25 -0
  336. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  337. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  338. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  339. package/dist/infra/schedule/locked-interval.js +190 -0
  340. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  341. package/dist/infra/schedule/locked-tick.js +137 -0
  342. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  343. package/dist/infra/schedule/schedule.module.js +27 -0
  344. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  345. package/dist/infra/schedule/scheduled-runs.js +163 -0
  346. package/dist/infra/swagger/swagger.d.ts +16 -0
  347. package/dist/infra/swagger/swagger.js +31 -0
  348. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  349. package/dist/infra/throttler/credential-throttler.js +77 -0
  350. package/dist/infra/throttler/named-throttlers.d.ts +31 -0
  351. package/dist/infra/throttler/named-throttlers.js +119 -0
  352. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  353. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  354. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  355. package/dist/infra/throttler/throttler.guard.js +68 -0
  356. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  357. package/dist/infra/throttler/throttler.module.js +53 -0
  358. package/dist/infra/tokens.d.ts +15 -0
  359. package/dist/infra/tokens.js +15 -0
  360. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  361. package/dist/infra/validation/create-zod-dto.js +35 -0
  362. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  363. package/dist/infra/validation/parse-with-zod.js +12 -0
  364. package/dist/infra/validation/validation.module.d.ts +3 -0
  365. package/dist/infra/validation/validation.module.js +16 -0
  366. package/dist/infra/validation/zod-params.d.ts +7 -0
  367. package/dist/infra/validation/zod-params.js +42 -0
  368. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  369. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  370. package/dist/kernel.d.ts +9 -241
  371. package/dist/kernel.js +8 -1305
  372. package/dist/kernel.module.d.ts +17 -0
  373. package/dist/kernel.module.js +136 -0
  374. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  375. package/dist/lifecycle/kernel-lifecycle.js +451 -0
  376. package/dist/lifecycle/tokens.d.ts +3 -0
  377. package/dist/lifecycle/tokens.js +3 -0
  378. package/dist/log-config.d.ts +9 -0
  379. package/dist/log-config.js +27 -0
  380. package/dist/log-context.d.ts +34 -0
  381. package/dist/log-context.js +44 -0
  382. package/dist/log-loki.d.ts +34 -0
  383. package/dist/log-loki.js +145 -0
  384. package/dist/log.d.ts +41 -10
  385. package/dist/log.js +91 -17
  386. package/dist/models/models.module.d.ts +3 -0
  387. package/dist/models/models.module.js +24 -0
  388. package/dist/models/prices.d.ts +8 -2
  389. package/dist/models/prices.js +65 -37
  390. package/dist/models/purposes.controller.d.ts +1 -1
  391. package/dist/models/purposes.controller.js +5 -6
  392. package/dist/models/purposes.d.ts +35 -13
  393. package/dist/models/purposes.js +101 -51
  394. package/dist/net/public-address.js +3 -2
  395. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  396. package/dist/orgs/directory-sync.controller.js +2 -2
  397. package/dist/orgs/directory-sync.d.ts +61 -31
  398. package/dist/orgs/directory-sync.js +212 -125
  399. package/dist/orgs/invitations.controller.d.ts +8 -8
  400. package/dist/orgs/invitations.controller.js +27 -26
  401. package/dist/orgs/invitations.service.d.ts +12 -9
  402. package/dist/orgs/invitations.service.js +130 -92
  403. package/dist/orgs/job-ids.d.ts +8 -0
  404. package/dist/orgs/job-ids.js +8 -0
  405. package/dist/orgs/members.service.d.ts +19 -12
  406. package/dist/orgs/members.service.js +161 -117
  407. package/dist/orgs/offboarding.d.ts +54 -57
  408. package/dist/orgs/offboarding.js +161 -71
  409. package/dist/orgs/org-lock.d.ts +28 -19
  410. package/dist/orgs/org-lock.js +81 -35
  411. package/dist/orgs/org.guard.d.ts +1 -1
  412. package/dist/orgs/org.guard.js +2 -2
  413. package/dist/orgs/orgs.controller.d.ts +13 -13
  414. package/dist/orgs/orgs.controller.js +29 -17
  415. package/dist/orgs/orgs.module.d.ts +6 -0
  416. package/dist/orgs/orgs.module.js +68 -0
  417. package/dist/orgs/orgs.service.d.ts +30 -19
  418. package/dist/orgs/orgs.service.js +139 -86
  419. package/dist/orgs/settings.controller.d.ts +1 -1
  420. package/dist/orgs/settings.controller.js +8 -6
  421. package/dist/orgs/settings.service.d.ts +14 -8
  422. package/dist/orgs/settings.service.js +75 -46
  423. package/dist/overrides.d.ts +56 -0
  424. package/dist/overrides.js +30 -0
  425. package/dist/roles/gateway-role.d.ts +43 -0
  426. package/dist/roles/gateway-role.js +98 -0
  427. package/dist/roles/gateway.module.d.ts +8 -0
  428. package/dist/roles/gateway.module.js +28 -0
  429. package/dist/roles/worker-role.d.ts +63 -0
  430. package/dist/roles/worker-role.js +144 -0
  431. package/dist/roles/worker.module.d.ts +14 -0
  432. package/dist/roles/worker.module.js +90 -0
  433. package/dist/runtime/abort.js +19 -2
  434. package/dist/runtime/checkpointer.d.ts +8 -3
  435. package/dist/runtime/checkpointer.js +87 -55
  436. package/dist/runtime/conversation-lock.d.ts +20 -11
  437. package/dist/runtime/conversation-lock.js +62 -72
  438. package/dist/runtime/hook-calls.d.ts +3 -3
  439. package/dist/runtime/hook-calls.js +1 -6
  440. package/dist/runtime/job-ids.d.ts +10 -0
  441. package/dist/runtime/job-ids.js +10 -0
  442. package/dist/runtime/langgraph-loop.js +1 -1
  443. package/dist/runtime/loop.d.ts +7 -0
  444. package/dist/runtime/loop.js +14 -0
  445. package/dist/runtime/maintenance-queue.d.ts +10 -0
  446. package/dist/runtime/maintenance-queue.js +10 -0
  447. package/dist/runtime/maintenance.d.ts +45 -74
  448. package/dist/runtime/maintenance.js +139 -136
  449. package/dist/runtime/model-call.d.ts +7 -4
  450. package/dist/runtime/model-call.js +24 -57
  451. package/dist/runtime/providers.d.ts +17 -6
  452. package/dist/runtime/providers.js +66 -25
  453. package/dist/runtime/quota.d.ts +17 -3
  454. package/dist/runtime/quota.js +27 -2
  455. package/dist/runtime/retired-schedulers.d.ts +7 -0
  456. package/dist/runtime/retired-schedulers.js +31 -0
  457. package/dist/runtime/run-control.d.ts +33 -0
  458. package/dist/runtime/run-control.js +77 -0
  459. package/dist/runtime/run-finish.d.ts +26 -17
  460. package/dist/runtime/run-finish.js +98 -51
  461. package/dist/runtime/run-jobs.d.ts +48 -0
  462. package/dist/runtime/run-jobs.js +95 -0
  463. package/dist/runtime/run-processors.d.ts +60 -0
  464. package/dist/runtime/run-processors.js +185 -0
  465. package/dist/runtime/run-queue.d.ts +32 -57
  466. package/dist/runtime/run-queue.js +291 -295
  467. package/dist/runtime/run-steps.d.ts +39 -0
  468. package/dist/runtime/run-steps.js +96 -0
  469. package/dist/runtime/run-worker.d.ts +121 -75
  470. package/dist/runtime/run-worker.js +340 -225
  471. package/dist/runtime/runtime.module.d.ts +10 -0
  472. package/dist/runtime/runtime.module.js +112 -0
  473. package/dist/runtime/step-log.d.ts +40 -0
  474. package/dist/runtime/step-log.js +94 -0
  475. package/dist/runtime/stream.controller.d.ts +5 -8
  476. package/dist/runtime/stream.controller.js +14 -12
  477. package/dist/runtime/stream.d.ts +24 -6
  478. package/dist/runtime/stream.js +78 -7
  479. package/dist/runtime/subagents/child.d.ts +3 -44
  480. package/dist/runtime/subagents/child.js +0 -79
  481. package/dist/runtime/subagents/definition.d.ts +4 -4
  482. package/dist/runtime/subagents/definition.js +2 -2
  483. package/dist/runtime/subagents/dispatch.d.ts +87 -6
  484. package/dist/runtime/subagents/dispatch.js +135 -140
  485. package/dist/runtime/subagents/limits.d.ts +9 -4
  486. package/dist/runtime/subagents/limits.js +4 -2
  487. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  488. package/dist/runtime/subagents/org-agents.js +1 -1
  489. package/dist/runtime/subagents/progress.d.ts +2 -2
  490. package/dist/runtime/subagents/roster.d.ts +3 -3
  491. package/dist/runtime/subagents/roster.js +1 -1
  492. package/dist/runtime/subagents/skill-fork.d.ts +6 -7
  493. package/dist/runtime/subagents/skill-fork.js +16 -5
  494. package/dist/runtime/subagents/subagents.service.d.ts +40 -0
  495. package/dist/runtime/subagents/subagents.service.js +101 -0
  496. package/dist/runtime/usage-report.d.ts +94 -52
  497. package/dist/runtime/usage-report.js +200 -99
  498. package/dist/runtime/waits.d.ts +125 -57
  499. package/dist/runtime/waits.js +431 -208
  500. package/dist/sandbox/job-ids.d.ts +10 -0
  501. package/dist/sandbox/job-ids.js +10 -0
  502. package/dist/sandbox/jobs.d.ts +41 -0
  503. package/dist/sandbox/jobs.js +113 -0
  504. package/dist/sandbox/leases.d.ts +39 -31
  505. package/dist/sandbox/leases.js +117 -257
  506. package/dist/sandbox/providers.d.ts +19 -0
  507. package/dist/sandbox/providers.js +38 -0
  508. package/dist/sandbox/sandbox.module.d.ts +8 -0
  509. package/dist/sandbox/sandbox.module.js +30 -0
  510. package/dist/sandbox/sandbox.service.d.ts +24 -29
  511. package/dist/sandbox/sandbox.service.js +106 -75
  512. package/dist/skills/catalog.d.ts +33 -20
  513. package/dist/skills/catalog.js +96 -53
  514. package/dist/skills/changes.controller.d.ts +4 -4
  515. package/dist/skills/changes.controller.js +15 -9
  516. package/dist/skills/changes.service.d.ts +28 -18
  517. package/dist/skills/changes.service.js +421 -364
  518. package/dist/skills/invocable.controller.d.ts +1 -1
  519. package/dist/skills/invocable.controller.js +8 -5
  520. package/dist/skills/invoke.d.ts +16 -15
  521. package/dist/skills/invoke.js +48 -17
  522. package/dist/skills/skills.controller.d.ts +1 -1
  523. package/dist/skills/skills.controller.js +11 -6
  524. package/dist/skills/skills.module.d.ts +6 -0
  525. package/dist/skills/skills.module.js +30 -0
  526. package/dist/skills/skills.service.d.ts +47 -30
  527. package/dist/skills/skills.service.js +221 -158
  528. package/dist/storage/job-ids.d.ts +6 -0
  529. package/dist/storage/job-ids.js +6 -0
  530. package/dist/storage/purge.d.ts +22 -7
  531. package/dist/storage/purge.js +55 -3
  532. package/dist/storage/storage.module.d.ts +6 -0
  533. package/dist/storage/storage.module.js +23 -0
  534. package/dist/storage/storage.service.d.ts +18 -4
  535. package/dist/storage/storage.service.js +44 -3
  536. package/dist/tools/approvals.controller.d.ts +1 -1
  537. package/dist/tools/approvals.controller.js +12 -8
  538. package/dist/tools/approvals.service.d.ts +27 -25
  539. package/dist/tools/approvals.service.js +324 -258
  540. package/dist/tools/breaker.d.ts +2 -2
  541. package/dist/tools/breaker.js +21 -3
  542. package/dist/tools/builtins/ask-user.d.ts +2 -2
  543. package/dist/tools/builtins/ask-user.js +1 -1
  544. package/dist/tools/builtins/builtin-tools.d.ts +21 -0
  545. package/dist/tools/builtins/builtin-tools.js +80 -0
  546. package/dist/tools/builtins/read-tool-output.d.ts +2 -2
  547. package/dist/tools/builtins/read-tool-output.js +1 -1
  548. package/dist/tools/builtins/sandbox/bash.js +2 -2
  549. package/dist/tools/builtins/sandbox/common.d.ts +7 -4
  550. package/dist/tools/builtins/sandbox/common.js +5 -3
  551. package/dist/tools/builtins/sandbox/deliver.js +2 -2
  552. package/dist/tools/builtins/sandbox/edit.js +1 -1
  553. package/dist/tools/builtins/sandbox/glob.js +2 -2
  554. package/dist/tools/builtins/sandbox/grep.js +2 -2
  555. package/dist/tools/builtins/sandbox/read.js +1 -1
  556. package/dist/tools/builtins/sandbox/write.js +1 -1
  557. package/dist/tools/builtins/skill-load.d.ts +3 -3
  558. package/dist/tools/builtins/skill-load.js +1 -1
  559. package/dist/tools/canonical-json.d.ts +6 -0
  560. package/dist/tools/canonical-json.js +16 -0
  561. package/dist/tools/connector-content.controller.d.ts +1 -1
  562. package/dist/tools/connector-content.controller.js +11 -6
  563. package/dist/tools/connector-content.d.ts +12 -15
  564. package/dist/tools/connector-content.js +53 -18
  565. package/dist/tools/connectors.controller.d.ts +1 -1
  566. package/dist/tools/connectors.controller.js +21 -10
  567. package/dist/tools/connectors.service.d.ts +31 -13
  568. package/dist/tools/connectors.service.js +434 -344
  569. package/dist/tools/credentials.d.ts +17 -20
  570. package/dist/tools/credentials.js +55 -34
  571. package/dist/tools/drift.d.ts +29 -41
  572. package/dist/tools/drift.js +111 -79
  573. package/dist/tools/info.d.ts +12 -9
  574. package/dist/tools/info.js +33 -7
  575. package/dist/tools/job-ids.d.ts +13 -0
  576. package/dist/tools/job-ids.js +15 -0
  577. package/dist/tools/jobs.d.ts +24 -0
  578. package/dist/tools/jobs.js +69 -0
  579. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  580. package/dist/tools/oauth/flow-paths.js +38 -0
  581. package/dist/tools/oauth/flow.d.ts +30 -30
  582. package/dist/tools/oauth/flow.js +109 -81
  583. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  584. package/dist/tools/oauth/oauth.controller.js +12 -9
  585. package/dist/tools/oauth/tokens.d.ts +11 -3
  586. package/dist/tools/oauth/tokens.js +15 -14
  587. package/dist/tools/outputs.d.ts +13 -4
  588. package/dist/tools/outputs.js +47 -3
  589. package/dist/tools/pipeline.d.ts +62 -46
  590. package/dist/tools/pipeline.js +145 -64
  591. package/dist/tools/policy.d.ts +2 -2
  592. package/dist/tools/questions.controller.d.ts +1 -1
  593. package/dist/tools/questions.controller.js +8 -5
  594. package/dist/tools/questions.service.d.ts +25 -24
  595. package/dist/tools/questions.service.js +201 -142
  596. package/dist/tools/registry.d.ts +30 -20
  597. package/dist/tools/registry.js +73 -37
  598. package/dist/tools/specs.d.ts +5 -4
  599. package/dist/tools/specs.js +3 -1
  600. package/dist/tools/tools.module.d.ts +10 -0
  601. package/dist/tools/tools.module.js +91 -0
  602. package/dist/ui/call-extension.d.ts +16 -0
  603. package/dist/ui/call-extension.js +38 -0
  604. package/dist/ui/embed-token.d.ts +9 -5
  605. package/dist/ui/embed-token.js +34 -6
  606. package/dist/ui/ui-stream.d.ts +22 -17
  607. package/dist/ui/ui-stream.js +72 -12
  608. package/dist/ui/ui.module.d.ts +7 -0
  609. package/dist/ui/ui.module.js +28 -0
  610. package/dist/ui/views.controller.d.ts +14 -12
  611. package/dist/ui/views.controller.js +32 -25
  612. package/dist/ui/views.d.ts +9 -57
  613. package/dist/ui/views.js +43 -45
  614. package/package.json +11 -2
  615. package/dist/http/health.controller.d.ts +0 -26
  616. package/dist/http/health.controller.js +0 -79
  617. package/dist/http/tokens.d.ts +0 -131
  618. package/dist/http/tokens.js +0 -131
  619. package/dist/http/zod.pipe.d.ts +0 -8
  620. package/dist/http/zod.pipe.js +0 -14
  621. package/dist/identity/rate-limit.d.ts +0 -55
  622. package/dist/identity/rate-limit.js +0 -121
  623. package/dist/sandbox/lifecycle.d.ts +0 -21
  624. package/dist/sandbox/lifecycle.js +0 -68
  625. /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
  626. /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
@@ -1,3 +1,4 @@
1
+ import { type ModelParameter } from "@capybara-hq/plugin-sdk";
1
2
  import { z } from "zod";
2
3
  /** 模型引用:供应商插件名 + 模型 id。 */
3
4
  export declare const ModelRef: z.ZodObject<{
@@ -196,3 +197,10 @@ export type AgentDefinition = z.infer<typeof AgentDefinitionSchema>;
196
197
  * connector 形(C27)。其余字段原样保留;没有旧形引用时返回原对象。
197
198
  */
198
199
  export declare function normalizeStoredDefinition(def: unknown): AgentDefinition;
200
+ /** 按模型声明严格校验一组参数,返回 `{ path: "<field>.<key>", message }[]`(评测候选也用它)。 */
201
+ export declare function paramIssues(field: string, decl: ModelParameter[], params: Record<string, unknown>): {
202
+ path: string;
203
+ message: string;
204
+ }[];
205
+ /** Roster entries an agent may list (spec §4.3), general-purpose included. */
206
+ export declare const SUBAGENT_ROSTER_MAX = 20;
@@ -1,3 +1,4 @@
1
+ import { validateParams } from "@capybara-hq/plugin-sdk";
1
2
  import { z } from "zod";
2
3
  /** 模型引用:供应商插件名 + 模型 id。 */
3
4
  export const ModelRef = z.object({ provider: z.string(), model: z.string() });
@@ -150,3 +151,10 @@ export function normalizeStoredDefinition(def) {
150
151
  }
151
152
  return { ...d, tools: tools.map(normalizeToolRef) };
152
153
  }
154
+ /** 按模型声明严格校验一组参数,返回 `{ path: "<field>.<key>", message }[]`(评测候选也用它)。 */
155
+ export function paramIssues(field, decl, params) {
156
+ const r = validateParams(decl, params);
157
+ return r.ok ? [] : r.issues.map((i) => ({ path: `${field}.${i.key}`, message: i.message }));
158
+ }
159
+ /** Roster entries an agent may list (spec §4.3), general-purpose included. */
160
+ 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,4 +1,15 @@
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";
2
13
  import { canonicalJson } from "../tools/registry.js";
3
14
  const baseQuery = (db, orgId) => db
4
15
  .selectFrom("agent_templates as t")
@@ -35,14 +46,14 @@ export async function loadTemplates(db, orgId, ids) {
35
46
  return new Map(rows.map((r) => [r.id, rowOf(r)]));
36
47
  }
37
48
  /** Reads the org's agent templates (consumed by the roster, the agent page and Task 19's API). */
38
- export class AgentTemplatesService {
49
+ let AgentTemplatesService = class AgentTemplatesService {
39
50
  db;
40
51
  constructor(db) {
41
52
  this.db = db;
42
53
  }
43
54
  /** Every live template of the org, by plugin then name. */
44
55
  async listForOrg(orgId) {
45
- const rows = await baseQuery(this.db, orgId)
56
+ const rows = await baseQuery(this.db.db, orgId)
46
57
  .orderBy("t.plugin_name")
47
58
  .orderBy("t.name")
48
59
  .execute();
@@ -65,7 +76,7 @@ export class AgentTemplatesService {
65
76
  /** A live template by id or by `<plugin>:<name>`; null when there is none. */
66
77
  async resolve(orgId, ref) {
67
78
  const i = ref.indexOf(":");
68
- let q = baseQuery(this.db, orgId);
79
+ let q = baseQuery(this.db.db, orgId);
69
80
  q =
70
81
  i < 0
71
82
  ? q.where("t.id", "=", ref)
@@ -76,7 +87,12 @@ export class AgentTemplatesService {
76
87
  const t = rowOf(r);
77
88
  return { id: t.id, version: t.version, plugin: t.plugin, template: t.template };
78
89
  }
79
- }
90
+ };
91
+ AgentTemplatesService = __decorate([
92
+ Injectable(),
93
+ __param(0, Inject(KernelDb))
94
+ ], AgentTemplatesService);
95
+ export { AgentTemplatesService };
80
96
  /**
81
97
  * Writes `template` as the org's live template `<plugin>:<name>` in the caller's transaction (the
82
98
  * 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;
package/dist/app.js ADDED
@@ -0,0 +1,150 @@
1
+ import "reflect-metadata";
2
+ import { NestFactory } from "@nestjs/core";
3
+ import { createKernelAdapter } from "./http/adapter.js";
4
+ import { createHttpApp } from "./http/app.js";
5
+ import { NestLogAdapter } from "./http/nest-logger.js";
6
+ import { GracefulShutdown } from "./infra/lifecycle/graceful-shutdown.service.js";
7
+ import { handleShutdownSignals, } from "./infra/lifecycle/shutdown-signals.js";
8
+ import { setupSwagger } from "./infra/swagger/swagger.js";
9
+ import { KernelModule } from "./kernel.module.js";
10
+ import { KernelLifecycle } from "./lifecycle/kernel-lifecycle.js";
11
+ import { createConfiguredLogger } from "./log-config.js";
12
+ /**
13
+ * Builds the kernel application (one Nest application, root module {@link KernelModule}) and sets
14
+ * up its HTTP side, without initializing it: nothing connects and nothing starts. A failure
15
+ * releases what was created (Redis connections, the pool) before it is thrown. Internal (not
16
+ * exported from the package): {@link startKernelApp} and the kernel's own tests that need the
17
+ * application before its start; everything else uses {@link createKernelApp}.
18
+ */
19
+ export async function buildKernelApp(config, options = {}) {
20
+ const logger = options.logger ?? createConfiguredLogger(config);
21
+ const app = await NestFactory.create(KernelModule.forRoot(config, { ...options, logger }), createKernelAdapter(config.http.trustProxy), { logger: new NestLogAdapter(logger), abortOnError: false });
22
+ const lifecycle = app.get(KernelLifecycle);
23
+ const gateway = lifecycle.gatewayRoutes();
24
+ try {
25
+ lifecycle.attachHttp(await createHttpApp({
26
+ log: logger,
27
+ servePlugins: config.roles.includes("api") || config.roles.includes("gateway"),
28
+ ...(gateway !== undefined && { gateway }),
29
+ replicaId: config.http.replicaId === undefined ? undefined : String(config.http.replicaId),
30
+ packageMaxBytes: config.packages.maxBytes,
31
+ }, app));
32
+ setupSwagger(app, config.http.swagger);
33
+ }
34
+ catch (e) {
35
+ // Nothing started: only release the connections (the stop phases are skipped)
36
+ lifecycle.releaseOnly();
37
+ await app.close();
38
+ throw e;
39
+ }
40
+ return app;
41
+ }
42
+ const closing = new WeakMap();
43
+ /**
44
+ * Closes a kernel application once (later calls get the same promise): the stop phases begin at
45
+ * once (`KernelLifecycle.stop`: readiness 503, the start aborted at its next checkpoint), next to
46
+ * `app.close()`, which runs the shutdown hooks (the stop phases are the same promise, then Redis
47
+ * and the pool). Use it to stop an application from {@link createKernelApp} /
48
+ * {@link startKernelApp} (tests, `@capybara-hq/testing`), so the stop begins before Nest's
49
+ * `onModuleDestroy` hooks run.
50
+ */
51
+ export function closeKernelApp(app) {
52
+ let p = closing.get(app);
53
+ if (p === undefined) {
54
+ p = Promise.all([app.get(KernelLifecycle).stop(), app.close()]).then(() => { });
55
+ closing.set(app, p);
56
+ }
57
+ return p;
58
+ }
59
+ /**
60
+ * Initializes a built kernel application: `init()` runs the start sequence
61
+ * (`KernelLifecycle.onApplicationBootstrap`). A failure (unless the shutdown began meanwhile) is
62
+ * logged; either way the application is closed (the stop phases, then Redis and the pool) before
63
+ * the error is thrown.
64
+ */
65
+ async function initKernelApp(app) {
66
+ try {
67
+ await app.init();
68
+ }
69
+ catch (e) {
70
+ if (!app.get(GracefulShutdown).isShuttingDown()) {
71
+ app.get(KernelLifecycle).log.error("kernel start failed", { err: e });
72
+ }
73
+ await closeKernelApp(app);
74
+ throw e;
75
+ }
76
+ }
77
+ /**
78
+ * Creates the kernel application and runs its start sequence (nest kernel spec §4): Redis,
79
+ * migrations, the official marketplace, the bootstrap step, the extension load, the role parts,
80
+ * extension routes, the lifecycle reconcile and the config watch. Does not listen and installs no
81
+ * process-wide handler.
82
+ */
83
+ export async function createKernelApp(config, options = {}) {
84
+ const app = await buildKernelApp(config, options);
85
+ await initKernelApp(app);
86
+ return app;
87
+ }
88
+ /**
89
+ * Builds the kernel application, installs the SIGTERM / SIGINT handlers
90
+ * ({@link handleShutdownSignals}), runs the start sequence and listens on `config.http.port`:
91
+ * nothing is served before the start sequence finished. The handlers are installed before the
92
+ * start, so a signal during it aborts the start at its next checkpoint and closes the application
93
+ * cleanly; this function then rejects once the signal path has exited (with 0). A second signal
94
+ * exits with 1 at once. A failed build or start is logged (`kernel start failed`) before it is
95
+ * thrown.
96
+ */
97
+ export async function startKernelApp(config, options = {}, signalOptions = {}) {
98
+ const logger = options.logger ?? createConfiguredLogger(config);
99
+ let app;
100
+ try {
101
+ app = await buildKernelApp(config, { ...options, logger });
102
+ }
103
+ catch (e) {
104
+ // Nothing to stop (the build released what it created); the process entry only sees the error
105
+ logger.error("kernel start failed", { err: e });
106
+ throw e;
107
+ }
108
+ await startBuiltKernelApp(app, config, signalOptions);
109
+ return app;
110
+ }
111
+ /**
112
+ * The start half of {@link startKernelApp} for an application from {@link buildKernelApp}: installs
113
+ * the signal handlers, runs the start sequence and listens on `config.http.port`. Internal (not
114
+ * exported from the package): {@link startKernelApp} and the kernel's own tests that need the
115
+ * application before its start.
116
+ */
117
+ export async function startBuiltKernelApp(app, config, signalOptions = {}) {
118
+ const lifecycle = app.get(KernelLifecycle);
119
+ const signals = handleShutdownSignals(() => closeKernelApp(app), lifecycle.log, signalOptions);
120
+ try {
121
+ await initKernelApp(app);
122
+ try {
123
+ await lifecycle.listen(config.http.port);
124
+ }
125
+ catch (e) {
126
+ if (!app.get(GracefulShutdown).isShuttingDown()) {
127
+ lifecycle.log.error("kernel start failed", { err: e });
128
+ }
129
+ await closeKernelApp(app);
130
+ throw e;
131
+ }
132
+ }
133
+ catch (e) {
134
+ // Stopped by a signal: the signal path closes and exits; otherwise nothing is left to stop
135
+ const exiting = signals.exiting();
136
+ if (exiting)
137
+ await exiting;
138
+ else
139
+ signals.dispose();
140
+ throw e;
141
+ }
142
+ }
143
+ /** The in-process HTTP of a kernel application (`inject`, the route list). */
144
+ export function kernelAppHttp(app) {
145
+ return app.get(KernelLifecycle).http;
146
+ }
147
+ /** The port a kernel application listens on; undefined before it listens and after the stop. */
148
+ export function kernelAppPort(app) {
149
+ return app.get(KernelLifecycle).port;
150
+ }
@@ -2,9 +2,9 @@ import type { FastifyReply } from "fastify";
2
2
  import { z } from "zod";
3
3
  import type { AdminExtensionView } from "../extensions/permission-view.js";
4
4
  import { type Principal } from "../identity/principal.js";
5
- import { type CatalogItemDetail, type CatalogItemView, type CatalogService, type PermissionsMismatch } from "./catalog.service.js";
6
- import type { OrgCatalogService } from "./org-catalog.service.js";
7
- import type { PluginConfirmResult, PluginImport, PluginReview } from "./plugin-import.js";
5
+ import { type CatalogItemDetail, type CatalogItemView, CatalogService, type PermissionsMismatch } from "./catalog.service.js";
6
+ import { OrgCatalogService } from "./org-catalog.service.js";
7
+ import { type PluginConfirmResult, PluginImport, type PluginReview } from "./plugin-import.js";
8
8
  declare const NpmBody: z.ZodObject<{
9
9
  package: z.ZodString;
10
10
  version: z.ZodOptional<z.ZodString>;
@@ -7,14 +7,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
- import { Body, Controller, Delete, Get, HttpCode, Inject, Param, Post, Put, Query, Req, Res, } from "@nestjs/common";
10
+ import { Controller, Delete, Get, HttpCode, Inject, Param, Post, Put, Req, Res, } from "@nestjs/common";
11
11
  import { z } from "zod";
12
12
  import { ApiError } from "../errors.js";
13
- import { CATALOG, ORG_CATALOG, PLUGIN_IMPORT } from "../http/tokens.js";
14
- import { ZodPipe } from "../http/zod.pipe.js";
15
13
  import { CurrentPrincipal, EnterpriseAdmin, patTokenId, requireUser, } from "../identity/principal.js";
16
- import { CATALOG_LIST_MAX_LIMIT, } from "./catalog.service.js";
14
+ import { createZodDto } from "../infra/validation/create-zod-dto.js";
15
+ import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
16
+ import { CATALOG_LIST_MAX_LIMIT, CatalogService, } from "./catalog.service.js";
17
17
  import { sendCatalogIcon } from "./org-catalog.controller.js";
18
+ import { OrgCatalogService } from "./org-catalog.service.js";
19
+ import { PluginImport } from "./plugin-import.js";
18
20
  const NpmBody = z.object({
19
21
  package: z.string().min(1).max(214),
20
22
  version: z.string().min(1).max(256).optional(),
@@ -43,6 +45,18 @@ const actorOpts = (actor) => {
43
45
  const tokenId = patTokenId(actor);
44
46
  return tokenId !== undefined ? { actorTokenId: tokenId } : {};
45
47
  };
48
+ class CatalogImportConfirmBody extends createZodDto(ConfirmBody, "CatalogImportConfirmBody") {
49
+ }
50
+ class CatalogGitImportBody extends createZodDto(GitBody, "CatalogGitImportBody") {
51
+ }
52
+ class CatalogDeploymentInstallBody extends createZodDto(InstallBody, "CatalogDeploymentInstallBody") {
53
+ }
54
+ class CatalogItemsQuery extends createZodDto(ListQuery, "CatalogItemsQuery") {
55
+ }
56
+ class CatalogNpmImportBody extends createZodDto(NpmBody, "CatalogNpmImportBody") {
57
+ }
58
+ class CatalogPolicyBody extends createZodDto(PolicyBody, "CatalogPolicyBody") {
59
+ }
46
60
  /**
47
61
  * The enterprise catalog (`/api/v1/admin/catalog/*`, enterprise admins): plugin import (upload / npm
48
62
  * prepare, then confirm), the item list and detail, policy, delete, and installing an item's
@@ -184,13 +198,13 @@ __decorate([
184
198
  Post("import/npm"),
185
199
  HttpCode(200),
186
200
  __param(0, CurrentPrincipal()),
187
- __param(1, Body(new ZodPipe(NpmBody)))
201
+ __param(1, ZBody(CatalogNpmImportBody))
188
202
  ], AdminCatalogController.prototype, "importNpm", null);
189
203
  __decorate([
190
204
  Post("import/git"),
191
205
  HttpCode(200),
192
206
  __param(0, CurrentPrincipal()),
193
- __param(1, Body(new ZodPipe(GitBody)))
207
+ __param(1, ZBody(CatalogGitImportBody))
194
208
  ], AdminCatalogController.prototype, "importGit", null);
195
209
  __decorate([
196
210
  Get("imports/:stagingId"),
@@ -201,11 +215,11 @@ __decorate([
201
215
  HttpCode(201),
202
216
  __param(0, CurrentPrincipal()),
203
217
  __param(1, Param("stagingId")),
204
- __param(2, Body(new ZodPipe(ConfirmBody)))
218
+ __param(2, ZBody(CatalogImportConfirmBody))
205
219
  ], AdminCatalogController.prototype, "confirm", null);
206
220
  __decorate([
207
221
  Get("items"),
208
- __param(0, Query(new ZodPipe(ListQuery)))
222
+ __param(0, ZQuery(CatalogItemsQuery))
209
223
  ], AdminCatalogController.prototype, "list", null);
210
224
  __decorate([
211
225
  Get("items/:id"),
@@ -220,7 +234,7 @@ __decorate([
220
234
  Put("items/:id/policy"),
221
235
  __param(0, CurrentPrincipal()),
222
236
  __param(1, Param("id")),
223
- __param(2, Body(new ZodPipe(PolicyBody)))
237
+ __param(2, ZBody(CatalogPolicyBody))
224
238
  ], AdminCatalogController.prototype, "setPolicy", null);
225
239
  __decorate([
226
240
  Delete("items/:id"),
@@ -233,13 +247,13 @@ __decorate([
233
247
  HttpCode(200),
234
248
  __param(0, CurrentPrincipal()),
235
249
  __param(1, Param("id")),
236
- __param(2, Body(new ZodPipe(InstallBody)))
250
+ __param(2, ZBody(CatalogDeploymentInstallBody))
237
251
  ], AdminCatalogController.prototype, "installToDeployment", null);
238
252
  AdminCatalogController = __decorate([
239
253
  Controller("api/v1/admin/catalog"),
240
254
  EnterpriseAdmin(),
241
- __param(0, Inject(CATALOG)),
242
- __param(1, Inject(PLUGIN_IMPORT)),
243
- __param(2, Inject(ORG_CATALOG))
255
+ __param(0, Inject(CatalogService)),
256
+ __param(1, Inject(PluginImport)),
257
+ __param(2, Inject(OrgCatalogService))
244
258
  ], AdminCatalogController);
245
259
  export { AdminCatalogController };