@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
@@ -13,16 +13,19 @@ import { item } from "./report.js";
13
13
  export const GENERATED_AGENTS_DIR = ".capybara-generated/agents";
14
14
  /** Claude Code tool names -> Capybara tool keys (spec §16.4; anything else is dropped). */
15
15
  const TOOL_MAP = {
16
- Bash: "sandbox_bash",
17
- Read: "sandbox_read",
18
- Write: "sandbox_write",
19
- Edit: "sandbox_edit",
20
- MultiEdit: "sandbox_edit",
21
- Glob: "sandbox_glob",
22
- Grep: "sandbox_grep",
23
- Skill: "skill_load",
24
- TodoWrite: "todo__write",
25
- ToolSearch: "tool_search",
16
+ Bash: "Bash",
17
+ Read: "Read",
18
+ Write: "Write",
19
+ Edit: "Edit",
20
+ MultiEdit: "Edit",
21
+ Glob: "Glob",
22
+ Grep: "Grep",
23
+ Skill: "Skill",
24
+ AskUserQuestion: "AskUserQuestion",
25
+ ToolSearch: "ToolSearch",
26
+ Agent: "Agent",
27
+ Task: "Agent",
28
+ TodoWrite: "plugin__todo__write",
26
29
  };
27
30
  /** Claude ignores these for plugin agents: `not_applicable`. */
28
31
  const NOT_APPLICABLE = new Set(["permissionMode", "hooks", "mcpServers"]);
@@ -32,8 +32,9 @@ export type CliObjectStore = {
32
32
  */
33
33
  export declare function loadCliObjectStore(cli: Pick<ExtensionCli, "inspected" | "deploymentConfigs" | "deploymentConfigOf" | "approvals" | "config" | "configIssues" | "installs" | "packageSet" | "readPackage">, log: Pick<KernelLogger, "warn">, syncDir: string): Promise<CliObjectStore>;
34
34
  /**
35
- * The CLI's plugin catalog context (`capybara plugins *`): {@link openExtensionCli} plus
36
- * {@link PluginImport} and {@link CatalogService}. Imports run with actor `null` (the operator of the
35
+ * The CLI's plugin catalog context (`capybara plugins *`): {@link openExtensionCli} with the
36
+ * catalog's {@link CatalogImportModule}, so {@link PluginImport} and {@link CatalogService} are the
37
+ * kernel's providers. Imports run with actor `null` (the operator of the
37
38
  * deployment, like `capybara extensions install`: no enterprise-admin re-check, audits without an
38
39
  * actor, permission snapshots written with source `cli`). Files of the plugin (skills, connector
39
40
  * templates, icons) go to the deployment's object store, set up in-process from the declared or
@@ -9,7 +9,8 @@ import { assertSecretsReachable } from "../extensions/host.js";
9
9
  import { importExtensionModule, matchesSection } from "../extensions/instance.js";
10
10
  import { packageRootOf, syncPackage } from "../extensions/sync.js";
11
11
  import { packagePath } from "../packages/tgz.js";
12
- import { StorageService } from "../storage/storage.service.js";
12
+ import { PrefixedStorage } from "../storage/storage.service.js";
13
+ import { CatalogImportModule } from "./catalog.module.js";
13
14
  import { CatalogService } from "./catalog.service.js";
14
15
  import { PluginImport } from "./plugin-import.js";
15
16
  /**
@@ -131,7 +132,7 @@ export async function loadCliObjectStore(cli, log, syncDir) {
131
132
  return { store: undefined, reason: reasons.join("; ") };
132
133
  }
133
134
  /** `storage.unavailable` with the CLI's constraint spelled out (the generic text points to a plugin install). */
134
- class CliStorage extends StorageService {
135
+ class CliStorage extends PrefixedStorage {
135
136
  reason;
136
137
  constructor(deps, reason) {
137
138
  super(deps);
@@ -144,8 +145,9 @@ class CliStorage extends StorageService {
144
145
  }
145
146
  }
146
147
  /**
147
- * The CLI's plugin catalog context (`capybara plugins *`): {@link openExtensionCli} plus
148
- * {@link PluginImport} and {@link CatalogService}. Imports run with actor `null` (the operator of the
148
+ * The CLI's plugin catalog context (`capybara plugins *`): {@link openExtensionCli} with the
149
+ * catalog's {@link CatalogImportModule}, so {@link PluginImport} and {@link CatalogService} are the
150
+ * kernel's providers. Imports run with actor `null` (the operator of the
149
151
  * deployment, like `capybara extensions install`: no enterprise-admin re-check, audits without an
150
152
  * actor, permission snapshots written with source `cli`). Files of the plugin (skills, connector
151
153
  * templates, icons) go to the deployment's object store, set up in-process from the declared or
@@ -154,7 +156,7 @@ class CliStorage extends StorageService {
154
156
  * plugin does not bring are checked statically only (the CLI loads no connector).
155
157
  */
156
158
  export async function openCatalogCli(config, log, opts = {}) {
157
- const cli = await openExtensionCli(config, log, opts);
159
+ const cli = await openExtensionCli(config, log, { ...opts, modules: [CatalogImportModule] });
158
160
  let syncDir;
159
161
  const removeSyncDir = async () => {
160
162
  if (syncDir !== undefined)
@@ -167,32 +169,12 @@ export async function openCatalogCli(config, log, opts = {}) {
167
169
  provider: () => store,
168
170
  plugins: async () => cli.inspected.map((p) => p.manifest.name),
169
171
  }, "reason" in rest ? rest.reason : undefined);
170
- const declared = new Map(cli.inspected.map((p) => [p.manifest.name, p.source]));
171
- const imports = new PluginImport({
172
- db: cli.db,
173
- config: () => config,
174
- storage,
175
- installs: cli.installs,
176
- ops: cli.ops,
177
- blobs: { get: (sha256) => cli.readPackage(sha256) },
178
- declared: () => declared,
179
- // The CLI loads no connectors: templates get static checks only (the org install re-checks)
180
- findConnector: () => undefined,
181
- connectorsLoaded: false,
182
- log,
183
- });
184
- const catalog = new CatalogService({
185
- db: cli.db,
186
- config: () => config,
187
- installs: cli.installs,
188
- ops: cli.ops,
189
- pluginImport: imports,
190
- // Unreachable from the CLI: only marketplace imports (CatalogService.importFromMarketplace)
191
- // download archives, and the CLI offers file, npm and direct git imports only.
192
- fetchArchive: () => Promise.reject(new ApiError("internal", "marketplace imports are not available in the CLI")),
193
- // Only marketplace imports send a marketplace token; a direct git import has none
194
- marketplaceToken: async () => undefined,
195
- });
172
+ // Plugin files go to that store; connector templates get static checks only (the CLI loads
173
+ // no connector; the org install re-checks them). Config-declared names come from the
174
+ // inspection (the registry), marketplace imports are not offered by the CLI.
175
+ const imports = cli.app.get(PluginImport);
176
+ imports.useCliStorage(storage);
177
+ const catalog = cli.app.get(CatalogService);
196
178
  return {
197
179
  ...cli,
198
180
  catalog,
@@ -0,0 +1,15 @@
1
+ /** The catalog's periodic jobs (a leaf module: no imports). */
2
+ /**
3
+ * Periodic marketplace refresh (C26), every `marketplaces.refreshIntervalMinutes` (a
4
+ * `@LockedInterval`, once per tick across replicas): refreshes each enabled marketplace in turn.
5
+ */
6
+ export declare const MARKETPLACES_REFRESH_JOB = "catalogs-refresh";
7
+ /** The BullMQ repeatable scheduler the refresh had before it became `@LockedInterval` (retired). */
8
+ export declare const MARKETPLACES_REFRESH_SCHEDULER_ID = "catalogs-refresh-every";
9
+ /**
10
+ * Hourly cleanup of plugin import staging (T25, F-AE; a `@LockedCron`): deletes expired (24-hour)
11
+ * staging rows and their object storage prefixes (`PluginImport.cleanupExpired`).
12
+ */
13
+ export declare const PLUGIN_STAGING_CLEANUP_JOB = "app-staging-cleanup";
14
+ /** The BullMQ repeatable scheduler the cleanup had before it became `@LockedCron` (retired). */
15
+ export declare const PLUGIN_STAGING_CLEANUP_SCHEDULER_ID = "app-staging-cleanup-hourly";
@@ -0,0 +1,15 @@
1
+ /** The catalog's periodic jobs (a leaf module: no imports). */
2
+ /**
3
+ * Periodic marketplace refresh (C26), every `marketplaces.refreshIntervalMinutes` (a
4
+ * `@LockedInterval`, once per tick across replicas): refreshes each enabled marketplace in turn.
5
+ */
6
+ export const MARKETPLACES_REFRESH_JOB = "catalogs-refresh";
7
+ /** The BullMQ repeatable scheduler the refresh had before it became `@LockedInterval` (retired). */
8
+ export const MARKETPLACES_REFRESH_SCHEDULER_ID = "catalogs-refresh-every";
9
+ /**
10
+ * Hourly cleanup of plugin import staging (T25, F-AE; a `@LockedCron`): deletes expired (24-hour)
11
+ * staging rows and their object storage prefixes (`PluginImport.cleanupExpired`).
12
+ */
13
+ export const PLUGIN_STAGING_CLEANUP_JOB = "app-staging-cleanup";
14
+ /** The BullMQ repeatable scheduler the cleanup had before it became `@LockedCron` (retired). */
15
+ export const PLUGIN_STAGING_CLEANUP_SCHEDULER_ID = "app-staging-cleanup-hourly";
@@ -0,0 +1,27 @@
1
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
2
+ import { LockService } from "../infra/lock/lock.service.js";
3
+ import type { KernelLogger } from "../log.js";
4
+ import { MarketplacesService } from "./marketplaces.service.js";
5
+ import { PluginImport } from "./plugin-import.js";
6
+ /**
7
+ * The catalog's periodic jobs, each run once per tick across replicas: the marketplace refresh
8
+ * (`catalogs-refresh`, every `marketplaces.refreshIntervalMinutes` and once after the start:
9
+ * `@LockedInterval` with `runOnStart`) and the
10
+ * hourly cleanup of expired plugin import staging (`app-staging-cleanup`: `@LockedCron`).
11
+ */
12
+ export declare class CatalogJobs {
13
+ private readonly marketplaces;
14
+ private readonly imports;
15
+ readonly config: KernelConfigService;
16
+ readonly lockService: LockService;
17
+ readonly log: KernelLogger;
18
+ constructor(marketplaces: MarketplacesService, imports: PluginImport, config: KernelConfigService, lockService: LockService, log: KernelLogger);
19
+ /**
20
+ * Refreshes every enabled marketplace in turn (overall deadline
21
+ * {@link MARKETPLACES_REFRESH_DEADLINE_MS}; the job's signal aborts it: the stop, or the run
22
+ * lock lost).
23
+ */
24
+ refreshMarketplaces(stop?: AbortSignal): Promise<void>;
25
+ /** Deletes expired staging rows and their objects. */
26
+ cleanupStaging(): Promise<void>;
27
+ }
@@ -0,0 +1,70 @@
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 { Inject, Injectable } from "@nestjs/common";
11
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
12
+ import { LockService } from "../infra/lock/lock.service.js";
13
+ import { LockedCron } from "../infra/schedule/locked-cron.decorator.js";
14
+ import { LockedInterval } from "../infra/schedule/locked-interval.js";
15
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
16
+ import { MARKETPLACES_REFRESH_JOB, PLUGIN_STAGING_CLEANUP_JOB } from "./job-ids.js";
17
+ import { MARKETPLACES_REFRESH_DEADLINE_MS, MarketplacesService } from "./marketplaces.service.js";
18
+ import { PluginImport } from "./plugin-import.js";
19
+ /**
20
+ * The catalog's periodic jobs, each run once per tick across replicas: the marketplace refresh
21
+ * (`catalogs-refresh`, every `marketplaces.refreshIntervalMinutes` and once after the start:
22
+ * `@LockedInterval` with `runOnStart`) and the
23
+ * hourly cleanup of expired plugin import staging (`app-staging-cleanup`: `@LockedCron`).
24
+ */
25
+ let CatalogJobs = class CatalogJobs {
26
+ marketplaces;
27
+ imports;
28
+ config;
29
+ lockService;
30
+ log;
31
+ constructor(marketplaces, imports, config, lockService, log) {
32
+ this.marketplaces = marketplaces;
33
+ this.imports = imports;
34
+ this.config = config;
35
+ this.lockService = lockService;
36
+ this.log = log;
37
+ }
38
+ /**
39
+ * Refreshes every enabled marketplace in turn (overall deadline
40
+ * {@link MARKETPLACES_REFRESH_DEADLINE_MS}; the job's signal aborts it: the stop, or the run
41
+ * lock lost).
42
+ */
43
+ async refreshMarketplaces(stop) {
44
+ const deadline = AbortSignal.timeout(MARKETPLACES_REFRESH_DEADLINE_MS);
45
+ await this.marketplaces.refreshAll(stop ? AbortSignal.any([deadline, stop]) : deadline);
46
+ }
47
+ /** Deletes expired staging rows and their objects. */
48
+ async cleanupStaging() {
49
+ const n = await this.imports.cleanupExpired();
50
+ if (n > 0)
51
+ this.log.info("expired plugin imports cleaned up", { count: n });
52
+ }
53
+ };
54
+ __decorate([
55
+ LockedInterval(MARKETPLACES_REFRESH_JOB, (c) => c.marketplaces.refreshIntervalMinutes * 60_000,
56
+ // a fresh deployment's marketplaces are refreshed right after the start
57
+ { runOnStart: true })
58
+ ], CatalogJobs.prototype, "refreshMarketplaces", null);
59
+ __decorate([
60
+ LockedCron("0 * * * *", { name: PLUGIN_STAGING_CLEANUP_JOB })
61
+ ], CatalogJobs.prototype, "cleanupStaging", null);
62
+ CatalogJobs = __decorate([
63
+ Injectable(),
64
+ __param(0, Inject(MarketplacesService)),
65
+ __param(1, Inject(PluginImport)),
66
+ __param(2, Inject(KernelConfigService)),
67
+ __param(3, Inject(LockService)),
68
+ __param(4, Inject(KERNEL_LOGGER))
69
+ ], CatalogJobs);
70
+ export { CatalogJobs };
@@ -0,0 +1,24 @@
1
+ import { TransactionHost } from "../infra/database/transaction-host.js";
2
+ import { XactLock } from "../infra/database/xact-lock.js";
3
+ /**
4
+ * Serializes the writes of one marketplace's cached entries and refresh status (a refresh's
5
+ * result against concurrent refreshes and the admin's changes). Joins the caller's transaction
6
+ * (`mandatory`), which holds the lock until it ends.
7
+ */
8
+ export declare class CatalogSourceLock {
9
+ private readonly xactLock;
10
+ readonly txHost: TransactionHost;
11
+ constructor(xactLock: XactLock, txHost: TransactionHost);
12
+ lock(marketplaceId: string): Promise<void>;
13
+ }
14
+ /**
15
+ * Serializes the imports of one catalog item name (the conflict re-check and the item / version
16
+ * write of a confirm), including a first import that has no item row to lock yet. Joins the
17
+ * caller's transaction (`mandatory`).
18
+ */
19
+ export declare class CatalogItemLock {
20
+ private readonly xactLock;
21
+ readonly txHost: TransactionHost;
22
+ constructor(xactLock: XactLock, txHost: TransactionHost);
23
+ lock(name: string): Promise<void>;
24
+ }
@@ -0,0 +1,63 @@
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 { Inject, Injectable } from "@nestjs/common";
11
+ import { TransactionHost } from "../infra/database/transaction-host.js";
12
+ import { Transactional } from "../infra/database/transactional.decorator.js";
13
+ import { XactLock } from "../infra/database/xact-lock.js";
14
+ /**
15
+ * Serializes the writes of one marketplace's cached entries and refresh status (a refresh's
16
+ * result against concurrent refreshes and the admin's changes). Joins the caller's transaction
17
+ * (`mandatory`), which holds the lock until it ends.
18
+ */
19
+ let CatalogSourceLock = class CatalogSourceLock {
20
+ xactLock;
21
+ txHost;
22
+ constructor(xactLock, txHost) {
23
+ this.xactLock = xactLock;
24
+ this.txHost = txHost;
25
+ }
26
+ async lock(marketplaceId) {
27
+ await this.xactLock.lock(`capybara.catalog-source:${marketplaceId}`);
28
+ }
29
+ };
30
+ __decorate([
31
+ Transactional({ propagation: "mandatory" })
32
+ ], CatalogSourceLock.prototype, "lock", null);
33
+ CatalogSourceLock = __decorate([
34
+ Injectable(),
35
+ __param(0, Inject(XactLock)),
36
+ __param(1, Inject(TransactionHost))
37
+ ], CatalogSourceLock);
38
+ export { CatalogSourceLock };
39
+ /**
40
+ * Serializes the imports of one catalog item name (the conflict re-check and the item / version
41
+ * write of a confirm), including a first import that has no item row to lock yet. Joins the
42
+ * caller's transaction (`mandatory`).
43
+ */
44
+ let CatalogItemLock = class CatalogItemLock {
45
+ xactLock;
46
+ txHost;
47
+ constructor(xactLock, txHost) {
48
+ this.xactLock = xactLock;
49
+ this.txHost = txHost;
50
+ }
51
+ async lock(name) {
52
+ await this.xactLock.lock(`capybara.directory-item:${name}`);
53
+ }
54
+ };
55
+ __decorate([
56
+ Transactional({ propagation: "mandatory" })
57
+ ], CatalogItemLock.prototype, "lock", null);
58
+ CatalogItemLock = __decorate([
59
+ Injectable(),
60
+ __param(0, Inject(XactLock)),
61
+ __param(1, Inject(TransactionHost))
62
+ ], CatalogItemLock);
63
+ export { CatalogItemLock };
@@ -1,8 +1,8 @@
1
1
  import { z } from "zod";
2
- import { type KernelConfig } from "../config/schema.js";
3
2
  import { type Principal } from "../identity/principal.js";
4
- import type { CatalogService, MarketplaceImportResult } from "./catalog.service.js";
5
- import type { MarketplaceEntryView, MarketplacesService, MarketplaceView } from "./marketplaces.service.js";
3
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
4
+ import { CatalogService, type MarketplaceImportResult } from "./catalog.service.js";
5
+ import { type MarketplaceEntryView, MarketplacesService, type MarketplaceView } from "./marketplaces.service.js";
6
6
  declare const AddBody: z.ZodObject<{
7
7
  name: z.ZodString;
8
8
  url: z.ZodString;
@@ -42,7 +42,7 @@ export declare class MarketplacesController {
42
42
  private readonly marketplaces;
43
43
  private readonly catalog;
44
44
  private readonly config;
45
- constructor(marketplaces: MarketplacesService, catalog: CatalogService, config: () => KernelConfig);
45
+ constructor(marketplaces: MarketplacesService, catalog: CatalogService, config: KernelConfigService);
46
46
  /** 全部来源;`offline` 为 true 表示 `marketplaces.official.enabled` 为 false(界面显示「离线模式」)。 */
47
47
  list(): Promise<{
48
48
  items: MarketplaceView[];
@@ -7,12 +7,15 @@ 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, Patch, Post, Query, } from "@nestjs/common";
10
+ import { Controller, Delete, Get, HttpCode, Inject, Param, Patch, Post } from "@nestjs/common";
11
11
  import { z } from "zod";
12
12
  import { MARKETPLACE_MAX_MIRRORS } from "../config/schema.js";
13
- import { CATALOG, KERNEL_CONFIG, MARKETPLACES } from "../http/tokens.js";
14
- import { ZodPipe } from "../http/zod.pipe.js";
15
13
  import { CurrentPrincipal, EnterpriseAdmin, patTokenId, requireUser, } from "../identity/principal.js";
14
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
15
+ import { createZodDto } from "../infra/validation/create-zod-dto.js";
16
+ import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
17
+ import { CatalogService } from "./catalog.service.js";
18
+ import { MarketplacesService, } from "./marketplaces.service.js";
16
19
  const Url = z.string().min(1).max(2000);
17
20
  const Form = z.enum(["http", "git"]);
18
21
  const Ref = z.string().min(1).max(256);
@@ -46,6 +49,14 @@ const actorOpts = (actor) => {
46
49
  const tokenId = patTokenId(actor);
47
50
  return tokenId !== undefined ? { actorTokenId: tokenId } : {};
48
51
  };
52
+ class MarketplaceAddBody extends createZodDto(AddBody, "MarketplaceAddBody") {
53
+ }
54
+ class MarketplaceEntriesQuery extends createZodDto(EntriesQuery, "MarketplaceEntriesQuery") {
55
+ }
56
+ class MarketplaceImportBody extends createZodDto(ImportBody, "MarketplaceImportBody") {
57
+ }
58
+ class MarketplacePatchBody extends createZodDto(PatchBody, "MarketplacePatchBody") {
59
+ }
49
60
  /**
50
61
  * Marketplaces (`/api/v1/admin/marketplaces/*`, enterprise admins): create, update, delete and
51
62
  * refresh the official and enterprise marketplaces, browse entries, import from a marketplace.
@@ -64,7 +75,7 @@ let MarketplacesController = class MarketplacesController {
64
75
  async list() {
65
76
  return {
66
77
  items: await this.marketplaces.list(),
67
- offline: !this.config().marketplaces.official.enabled,
78
+ offline: !this.config.get().marketplaces.official.enabled,
68
79
  };
69
80
  }
70
81
  /**
@@ -155,17 +166,17 @@ __decorate([
155
166
  Post(),
156
167
  HttpCode(201),
157
168
  __param(0, CurrentPrincipal()),
158
- __param(1, Body(new ZodPipe(AddBody)))
169
+ __param(1, ZBody(MarketplaceAddBody))
159
170
  ], MarketplacesController.prototype, "add", null);
160
171
  __decorate([
161
172
  Get("entries"),
162
- __param(0, Query(new ZodPipe(EntriesQuery)))
173
+ __param(0, ZQuery(MarketplaceEntriesQuery))
163
174
  ], MarketplacesController.prototype, "entries", null);
164
175
  __decorate([
165
176
  Patch(":id"),
166
177
  __param(0, CurrentPrincipal()),
167
178
  __param(1, Param("id")),
168
- __param(2, Body(new ZodPipe(PatchBody)))
179
+ __param(2, ZBody(MarketplacePatchBody))
169
180
  ], MarketplacesController.prototype, "update", null);
170
181
  __decorate([
171
182
  Delete(":id"),
@@ -185,13 +196,13 @@ __decorate([
185
196
  __param(0, CurrentPrincipal()),
186
197
  __param(1, Param("id")),
187
198
  __param(2, Param("name")),
188
- __param(3, Body(new ZodPipe(ImportBody)))
199
+ __param(3, ZBody(MarketplaceImportBody))
189
200
  ], MarketplacesController.prototype, "importEntry", null);
190
201
  MarketplacesController = __decorate([
191
202
  Controller("api/v1/admin/marketplaces"),
192
203
  EnterpriseAdmin(),
193
- __param(0, Inject(MARKETPLACES)),
194
- __param(1, Inject(CATALOG)),
195
- __param(2, Inject(KERNEL_CONFIG))
204
+ __param(0, Inject(MarketplacesService)),
205
+ __param(1, Inject(CatalogService)),
206
+ __param(2, Inject(KernelConfigService))
196
207
  ], MarketplacesController);
197
208
  export { MarketplacesController };
@@ -1,9 +1,15 @@
1
- import { type Logger, type MarketplaceEntry, type MarketplaceSource } from "@capybara-hq/plugin-sdk";
1
+ import { type MarketplaceEntry, type MarketplaceSource } from "@capybara-hq/plugin-sdk";
2
2
  import { type KernelConfig } from "../config/schema.js";
3
3
  import { type Keyring } from "../ctx/secrets.js";
4
- import type { KernelDb } from "../db/kernel-schema.js";
4
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
5
+ import { EnterpriseAdminLock } from "../identity/enterprise-admin.js";
6
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
7
+ import { KernelDb } from "../infra/database/kernel-db.js";
8
+ import { TransactionHost } from "../infra/database/transaction-host.js";
9
+ import type { KernelLogger } from "../log.js";
5
10
  import { type ClaudeEntryOverlay } from "./claude/manifest.js";
6
11
  import { type MarketplaceSkipReason } from "./claude/marketplace.js";
12
+ import { CatalogSourceLock } from "./locks.js";
7
13
  /** 官方清单来源的 id。 */
8
14
  export declare const OFFICIAL_MARKETPLACE_ID = "official";
9
15
  /** 拉取一份清单的超时。 */
@@ -98,14 +104,6 @@ export interface MarketplaceEntryView {
98
104
  */
99
105
  contentChanged: boolean;
100
106
  }
101
- export interface MarketplacesServiceDeps {
102
- db: KernelDb;
103
- config: () => KernelConfig;
104
- keyring: Keyring;
105
- log: Pick<Logger, "info" | "warn" | "error">;
106
- /** 测试可调短。 */
107
- fetchTimeoutMs?: number;
108
- }
109
107
  export interface ActorOpts {
110
108
  actorTokenId?: string;
111
109
  }
@@ -166,7 +164,7 @@ export declare function headsToResolve(entries: readonly MarketplaceEntry[], imp
166
164
  /** The host versions (an entry's `minKernel` is judged against them). */
167
165
  export declare const HOST_VERSIONS: {
168
166
  readonly kernel: string;
169
- readonly sdk: "0.1.0-rc.0";
167
+ readonly sdk: "0.1.0-rc.1";
170
168
  };
171
169
  /** Whether this deployment satisfies the entry's `minKernel`. */
172
170
  export declare const entryCompatible: (e: Pick<MarketplaceEntry, "minKernel">) => boolean;
@@ -204,7 +202,7 @@ export declare const sourceEffective: (row: {
204
202
  * marketplace disabled (official offline included), entry or version missing ->
205
203
  * `marketplace.entry_not_found`.
206
204
  */
207
- export declare function loadMarketplaceEntry(db: KernelDb, config: KernelConfig, sourceId: string, name: string, version?: string): Promise<{
205
+ export declare function loadMarketplaceEntry(db: KernelSchemaDb, config: KernelConfig, sourceId: string, name: string, version?: string): Promise<{
208
206
  entry: MarketplaceEntry;
209
207
  marketplace: MarketplaceOfEntry;
210
208
  /** The overlay of an entry of a Claude Code marketplace. */
@@ -221,8 +219,19 @@ export declare function loadMarketplaceEntry(db: KernelDb, config: KernelConfig,
221
219
  * by every replica.
222
220
  */
223
221
  export declare class MarketplacesService {
224
- private readonly d;
225
- constructor(d: MarketplacesServiceDeps);
222
+ private readonly kdb;
223
+ /** The enterprise admin lock (identity/enterprise-admin.ts): joins the caller's transaction. */
224
+ private readonly adminLock;
225
+ private readonly sourceLock;
226
+ private readonly config;
227
+ private readonly keyring;
228
+ private readonly log;
229
+ readonly txHost: TransactionHost;
230
+ constructor(kdb: KernelDb,
231
+ /** The enterprise admin lock (identity/enterprise-admin.ts): joins the caller's transaction. */
232
+ adminLock: EnterpriseAdminLock, sourceLock: CatalogSourceLock, config: KernelConfigService, keyring: Keyring, log: KernelLogger, txHost: TransactionHost);
233
+ /** The kernel-schema handle of the current context (the transaction, else the pool). */
234
+ private get db();
226
235
  /**
227
236
  * Creates / updates the official marketplace from config (name, URL, its form per
228
237
  * {@link marketplaceForm}, mirrors; the admin's enable switch is left alone). Called by every
@@ -248,6 +257,7 @@ export declare class MarketplacesService {
248
257
  mirrors?: string[];
249
258
  token?: string;
250
259
  }, opts?: ActorOpts): Promise<MarketplaceView>;
260
+ private writeAdd;
251
261
  /**
252
262
  * Updates an enterprise marketplace (audit `marketplace.updated`, listing the changed fields, the
253
263
  * token's value never recorded; not written when unchanged). `token: null` clears the token.
@@ -266,6 +276,7 @@ export declare class MarketplacesService {
266
276
  enabled?: boolean;
267
277
  token?: string | null;
268
278
  }, opts?: ActorOpts): Promise<MarketplaceView>;
279
+ private writeUpdate;
269
280
  /**
270
281
  * Deletes an enterprise marketplace (audit `marketplace.removed`): its cached entries and token
271
282
  * are deleted; imported catalog items are kept (their marketplace becomes null). Official can
@@ -324,12 +335,18 @@ export declare class MarketplacesService {
324
335
  items: MarketplaceEntryView[];
325
336
  truncated: boolean;
326
337
  }>;
338
+ /**
339
+ * Writes a refresh's result under the marketplace's lock (entries, heads, status, the status
340
+ * change audit); `stale` when the marketplace changed during the fetch (nothing is written).
341
+ */
342
+ private recordRefresh;
327
343
  /**
328
344
  * Replaces the entries of a marketplace; `trees` (a git marketplace) gives each path entry the
329
345
  * tree oid of its directory.
330
346
  */
331
347
  private replaceEntries;
332
348
  private views;
349
+ /** The deployment secrets on the current context's handle (the transaction, else the pool). */
333
350
  private secrets;
334
351
  private checkName;
335
352
  private checkUrls;