@capybara-hq/kernel 0.1.0-rc.1 → 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 (616) 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 +179 -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 +261 -329
  21. package/dist/agents/definition.d.ts +8 -0
  22. package/dist/agents/definition.js +8 -0
  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 +20 -4
  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 +323 -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/cli.d.ts +3 -2
  42. package/dist/catalog/cli.js +13 -31
  43. package/dist/catalog/job-ids.d.ts +15 -0
  44. package/dist/catalog/job-ids.js +15 -0
  45. package/dist/catalog/jobs.d.ts +27 -0
  46. package/dist/catalog/jobs.js +70 -0
  47. package/dist/catalog/locks.d.ts +24 -0
  48. package/dist/catalog/locks.js +63 -0
  49. package/dist/catalog/marketplaces.controller.d.ts +4 -4
  50. package/dist/catalog/marketplaces.controller.js +22 -11
  51. package/dist/catalog/marketplaces.service.d.ts +30 -13
  52. package/dist/catalog/marketplaces.service.js +330 -256
  53. package/dist/catalog/org-catalog.controller.d.ts +4 -3
  54. package/dist/catalog/org-catalog.controller.js +29 -14
  55. package/dist/catalog/org-catalog.service.d.ts +32 -198
  56. package/dist/catalog/org-catalog.service.js +159 -400
  57. package/dist/catalog/plugin-import.d.ts +73 -34
  58. package/dist/catalog/plugin-import.js +356 -217
  59. package/dist/catalog/plugin-install.d.ts +83 -41
  60. package/dist/catalog/plugin-install.js +421 -269
  61. package/dist/catalog/plugin-upgrade.d.ts +59 -4
  62. package/dist/catalog/plugin-upgrade.js +407 -282
  63. package/dist/catalog/requests.service.d.ts +27 -15
  64. package/dist/catalog/requests.service.js +201 -145
  65. package/dist/catalog/upgrade-targets.d.ts +4 -7
  66. package/dist/channels/actions.d.ts +6 -4
  67. package/dist/channels/actions.js +1 -1
  68. package/dist/channels/cards.d.ts +2 -2
  69. package/dist/channels/channels.module.d.ts +40 -0
  70. package/dist/channels/channels.module.js +128 -0
  71. package/dist/channels/connections.controller.d.ts +1 -1
  72. package/dist/channels/connections.controller.js +11 -6
  73. package/dist/channels/connections.service.d.ts +43 -21
  74. package/dist/channels/connections.service.js +236 -131
  75. package/dist/channels/inbound.d.ts +34 -38
  76. package/dist/channels/inbound.js +107 -41
  77. package/dist/channels/job-ids.d.ts +10 -0
  78. package/dist/channels/job-ids.js +10 -0
  79. package/dist/channels/jobs.d.ts +85 -0
  80. package/dist/channels/jobs.js +157 -0
  81. package/dist/channels/outbound.d.ts +60 -82
  82. package/dist/channels/outbound.js +165 -194
  83. package/dist/channels/supervisor.d.ts +88 -46
  84. package/dist/channels/supervisor.js +230 -132
  85. package/dist/channels/threads.d.ts +29 -8
  86. package/dist/channels/threads.js +71 -13
  87. package/dist/channels/webhook.d.ts +20 -14
  88. package/dist/channels/webhook.js +51 -20
  89. package/dist/config/load.d.ts +3 -2
  90. package/dist/config/load.js +3 -2
  91. package/dist/config/nacos-source.js +11 -2
  92. package/dist/config/schema.d.ts +1 -0
  93. package/dist/config/schema.js +10 -4
  94. package/dist/conversations/access.d.ts +29 -0
  95. package/dist/conversations/access.js +86 -0
  96. package/dist/conversations/artifacts.d.ts +10 -10
  97. package/dist/conversations/artifacts.js +35 -9
  98. package/dist/conversations/attachments.controller.d.ts +1 -1
  99. package/dist/conversations/attachments.controller.js +8 -6
  100. package/dist/conversations/attachments.module.d.ts +7 -0
  101. package/dist/conversations/attachments.module.js +25 -0
  102. package/dist/conversations/attachments.service.d.ts +30 -22
  103. package/dist/conversations/attachments.service.js +119 -46
  104. package/dist/conversations/conversations.controller.d.ts +8 -7
  105. package/dist/conversations/conversations.controller.js +59 -29
  106. package/dist/conversations/conversations.module.d.ts +8 -0
  107. package/dist/conversations/conversations.module.js +69 -0
  108. package/dist/conversations/conversations.service.d.ts +40 -38
  109. package/dist/conversations/conversations.service.js +130 -140
  110. package/dist/conversations/event-log.d.ts +28 -18
  111. package/dist/conversations/event-log.js +74 -27
  112. package/dist/conversations/files.d.ts +10 -10
  113. package/dist/conversations/files.js +37 -11
  114. package/dist/conversations/idem-keys.d.ts +5 -0
  115. package/dist/conversations/idem-keys.js +5 -0
  116. package/dist/conversations/job-ids.d.ts +6 -0
  117. package/dist/conversations/job-ids.js +6 -0
  118. package/dist/conversations/outputs-read.d.ts +11 -11
  119. package/dist/conversations/outputs-read.js +31 -7
  120. package/dist/conversations/queue.d.ts +48 -56
  121. package/dist/conversations/queue.js +13 -289
  122. package/dist/conversations/queue.service.d.ts +60 -0
  123. package/dist/conversations/queue.service.js +343 -0
  124. package/dist/conversations/sandbox-status.d.ts +13 -10
  125. package/dist/conversations/sandbox-status.js +36 -8
  126. package/dist/conversations/titles.d.ts +71 -24
  127. package/dist/conversations/titles.js +159 -63
  128. package/dist/ctx/bus.js +9 -3
  129. package/dist/ctx/create-ctx.d.ts +6 -0
  130. package/dist/ctx/create-ctx.js +7 -9
  131. package/dist/ctx/lock.d.ts +7 -3
  132. package/dist/ctx/lock.js +9 -20
  133. package/dist/ctx/secrets.d.ts +10 -2
  134. package/dist/ctx/secrets.js +7 -3
  135. package/dist/db/kernel-schema.d.ts +2 -2
  136. package/dist/db/pool.d.ts +5 -0
  137. package/dist/db/pool.js +1 -0
  138. package/dist/errors.d.ts +1 -0
  139. package/dist/errors.js +1 -0
  140. package/dist/evals/budget.d.ts +42 -21
  141. package/dist/evals/budget.js +114 -62
  142. package/dist/evals/evals.module.d.ts +31 -0
  143. package/dist/evals/evals.module.js +114 -0
  144. package/dist/evals/jobs.d.ts +20 -0
  145. package/dist/evals/jobs.js +45 -0
  146. package/dist/evals/run-replay.d.ts +56 -8
  147. package/dist/evals/run-replay.js +140 -80
  148. package/dist/evals/runs.controller.d.ts +1 -1
  149. package/dist/evals/runs.controller.js +17 -8
  150. package/dist/evals/runs.service.d.ts +23 -45
  151. package/dist/evals/runs.service.js +245 -234
  152. package/dist/evals/sets.controller.d.ts +1 -1
  153. package/dist/evals/sets.controller.js +17 -8
  154. package/dist/evals/sets.service.d.ts +22 -6
  155. package/dist/evals/sets.service.js +248 -194
  156. package/dist/evals/snapshot.d.ts +2 -2
  157. package/dist/evals/step-replay.d.ts +2 -2
  158. package/dist/evals/step-replay.js +1 -1
  159. package/dist/evals/trajectory.controller.d.ts +1 -1
  160. package/dist/evals/trajectory.controller.js +11 -7
  161. package/dist/evals/trajectory.service.d.ts +5 -4
  162. package/dist/evals/trajectory.service.js +30 -7
  163. package/dist/evals/worker.d.ts +44 -27
  164. package/dist/evals/worker.js +220 -121
  165. package/dist/extensions/admin-ops.d.ts +61 -33
  166. package/dist/extensions/admin-ops.js +248 -154
  167. package/dist/extensions/admin-view.d.ts +38 -27
  168. package/dist/extensions/admin-view.js +126 -55
  169. package/dist/extensions/approvals.d.ts +12 -8
  170. package/dist/extensions/approvals.js +73 -46
  171. package/dist/extensions/blobs.d.ts +27 -10
  172. package/dist/extensions/blobs.js +111 -45
  173. package/dist/extensions/bootstrap.d.ts +58 -31
  174. package/dist/extensions/bootstrap.js +175 -121
  175. package/dist/extensions/cli.d.ts +20 -10
  176. package/dist/extensions/cli.js +41 -96
  177. package/dist/extensions/config-issues.d.ts +7 -0
  178. package/dist/extensions/config-issues.js +31 -0
  179. package/dist/extensions/deployment-config-store.d.ts +49 -0
  180. package/dist/extensions/deployment-config-store.js +133 -0
  181. package/dist/extensions/deployment-config.d.ts +58 -67
  182. package/dist/extensions/deployment-config.js +202 -230
  183. package/dist/extensions/enabled.d.ts +5 -5
  184. package/dist/extensions/extensions.module.d.ts +8 -0
  185. package/dist/extensions/extensions.module.js +77 -0
  186. package/dist/extensions/hooks.d.ts +3 -2
  187. package/dist/extensions/hooks.js +1 -1
  188. package/dist/extensions/host.d.ts +72 -68
  189. package/dist/extensions/host.js +191 -152
  190. package/dist/extensions/installs.d.ts +49 -16
  191. package/dist/extensions/installs.js +128 -32
  192. package/dist/extensions/job-ids.d.ts +6 -0
  193. package/dist/extensions/job-ids.js +6 -0
  194. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  195. package/dist/extensions/lifecycle-topics.js +18 -0
  196. package/dist/extensions/lifecycle.d.ts +35 -47
  197. package/dist/extensions/lifecycle.js +103 -39
  198. package/dist/extensions/locks.d.ts +33 -0
  199. package/dist/extensions/locks.js +86 -0
  200. package/dist/extensions/migrate-lock.d.ts +3 -4
  201. package/dist/extensions/org-config.controller.d.ts +1 -1
  202. package/dist/extensions/org-config.controller.js +8 -5
  203. package/dist/extensions/org-config.d.ts +48 -46
  204. package/dist/extensions/org-config.js +284 -226
  205. package/dist/extensions/registry.d.ts +50 -2
  206. package/dist/extensions/registry.js +89 -4
  207. package/dist/extensions/sources.d.ts +12 -8
  208. package/dist/extensions/sources.js +34 -13
  209. package/dist/files/files.module.d.ts +3 -0
  210. package/dist/files/files.module.js +22 -0
  211. package/dist/files/previewers.controller.d.ts +7 -2
  212. package/dist/files/previewers.controller.js +17 -9
  213. package/dist/files/previewers.d.ts +13 -18
  214. package/dist/files/previewers.js +83 -36
  215. package/dist/http/adapter.d.ts +3 -0
  216. package/dist/http/adapter.js +25 -0
  217. package/dist/http/api.module.d.ts +3 -110
  218. package/dist/http/api.module.js +47 -355
  219. package/dist/http/app.d.ts +11 -15
  220. package/dist/http/app.js +17 -62
  221. package/dist/http/error-filter.module.d.ts +5 -0
  222. package/dist/http/error-filter.module.js +18 -0
  223. package/dist/http/error.filter.js +2 -2
  224. package/dist/identity/accounts.d.ts +82 -29
  225. package/dist/identity/accounts.js +294 -175
  226. package/dist/identity/api-tokens.d.ts +11 -7
  227. package/dist/identity/api-tokens.js +71 -44
  228. package/dist/identity/audit.d.ts +7 -4
  229. package/dist/identity/audit.js +5 -1
  230. package/dist/identity/auth.controller.d.ts +11 -10
  231. package/dist/identity/auth.controller.js +31 -25
  232. package/dist/identity/auth.guard.d.ts +3 -3
  233. package/dist/identity/auth.guard.js +6 -4
  234. package/dist/identity/binding.d.ts +9 -11
  235. package/dist/identity/binding.js +41 -13
  236. package/dist/identity/enterprise-admin.d.ts +18 -12
  237. package/dist/identity/enterprise-admin.js +67 -13
  238. package/dist/identity/external-identity-lock.d.ts +17 -0
  239. package/dist/identity/external-identity-lock.js +39 -0
  240. package/dist/identity/external.d.ts +19 -15
  241. package/dist/identity/external.js +163 -125
  242. package/dist/identity/identity.module.d.ts +6 -0
  243. package/dist/identity/identity.module.js +56 -0
  244. package/dist/identity/me.controller.d.ts +16 -15
  245. package/dist/identity/me.controller.js +37 -31
  246. package/dist/identity/sessions.d.ts +12 -10
  247. package/dist/identity/sessions.js +74 -42
  248. package/dist/identity/settings.d.ts +20 -14
  249. package/dist/identity/settings.js +85 -57
  250. package/dist/identity/sso.controller.d.ts +7 -7
  251. package/dist/identity/sso.controller.js +13 -9
  252. package/dist/identity/sso.d.ts +9 -12
  253. package/dist/identity/sso.js +54 -24
  254. package/dist/inbox/inbox.module.d.ts +3 -0
  255. package/dist/inbox/inbox.module.js +22 -0
  256. package/dist/inbox/inbox.service.d.ts +7 -9
  257. package/dist/inbox/inbox.service.js +32 -11
  258. package/dist/index.d.ts +16 -11
  259. package/dist/index.js +9 -6
  260. package/dist/infra/cache/cache.module.d.ts +3 -0
  261. package/dist/infra/cache/cache.module.js +16 -0
  262. package/dist/infra/cache/cache.service.d.ts +21 -0
  263. package/dist/infra/cache/cache.service.js +80 -0
  264. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  265. package/dist/infra/cache/cacheable.decorator.js +83 -0
  266. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  267. package/dist/infra/cli/kernel-cli.module.js +165 -0
  268. package/dist/infra/close-within.d.ts +15 -0
  269. package/dist/infra/close-within.js +36 -0
  270. package/dist/infra/config/config.module.d.ts +13 -0
  271. package/dist/infra/config/config.module.js +39 -0
  272. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  273. package/dist/infra/config/kernel-config.service.js +126 -0
  274. package/dist/infra/database/after-commit.d.ts +6 -0
  275. package/dist/infra/database/after-commit.js +9 -0
  276. package/dist/infra/database/database.module.d.ts +25 -0
  277. package/dist/infra/database/database.module.js +90 -0
  278. package/dist/infra/database/kernel-db.d.ts +22 -0
  279. package/dist/infra/database/kernel-db.js +65 -0
  280. package/dist/infra/database/transaction-host.d.ts +50 -0
  281. package/dist/infra/database/transaction-host.js +125 -0
  282. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  283. package/dist/infra/database/transactional.decorator.js +27 -0
  284. package/dist/infra/database/xact-lock.d.ts +17 -0
  285. package/dist/infra/database/xact-lock.js +43 -0
  286. package/dist/infra/events/kernel-events.d.ts +96 -0
  287. package/dist/infra/events/kernel-events.js +65 -0
  288. package/dist/infra/health/health.controller.d.ts +26 -0
  289. package/dist/infra/health/health.controller.js +104 -0
  290. package/dist/infra/health/health.module.d.ts +9 -0
  291. package/dist/infra/health/health.module.js +24 -0
  292. package/dist/infra/health/health.options.d.ts +10 -0
  293. package/dist/infra/health/health.options.js +15 -0
  294. package/dist/infra/health/shutdown-state.d.ts +6 -0
  295. package/dist/infra/health/shutdown-state.js +2 -0
  296. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  297. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  298. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  299. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  300. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  301. package/dist/infra/lifecycle/process-guards.js +86 -0
  302. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  303. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  304. package/dist/infra/lock/key-template.d.ts +13 -0
  305. package/dist/infra/lock/key-template.js +46 -0
  306. package/dist/infra/lock/lock.module.d.ts +3 -0
  307. package/dist/infra/lock/lock.module.js +16 -0
  308. package/dist/infra/lock/lock.service.d.ts +120 -0
  309. package/dist/infra/lock/lock.service.js +343 -0
  310. package/dist/infra/lock/shared-lease.d.ts +44 -0
  311. package/dist/infra/lock/shared-lease.js +121 -0
  312. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  313. package/dist/infra/lock/with-lock.decorator.js +49 -0
  314. package/dist/infra/logging/logging.module.d.ts +16 -0
  315. package/dist/infra/logging/logging.module.js +34 -0
  316. package/dist/infra/queue/configured-processor.d.ts +18 -0
  317. package/dist/infra/queue/configured-processor.js +23 -0
  318. package/dist/infra/queue/job-failure.d.ts +18 -0
  319. package/dist/infra/queue/job-failure.js +26 -0
  320. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  321. package/dist/infra/queue/queue-shutdown.js +81 -0
  322. package/dist/infra/queue/queue.module.d.ts +16 -0
  323. package/dist/infra/queue/queue.module.js +61 -0
  324. package/dist/infra/queue/redis-connection.d.ts +7 -0
  325. package/dist/infra/queue/redis-connection.js +18 -0
  326. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  327. package/dist/infra/queue/retired-schedulers.js +9 -0
  328. package/dist/infra/queue/run-job.d.ts +16 -0
  329. package/dist/infra/queue/run-job.js +19 -0
  330. package/dist/infra/redis/redis.module.d.ts +24 -0
  331. package/dist/infra/redis/redis.module.js +87 -0
  332. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  333. package/dist/infra/schedule/cron-tick.js +25 -0
  334. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  335. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  336. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  337. package/dist/infra/schedule/locked-interval.js +190 -0
  338. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  339. package/dist/infra/schedule/locked-tick.js +137 -0
  340. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  341. package/dist/infra/schedule/schedule.module.js +27 -0
  342. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  343. package/dist/infra/schedule/scheduled-runs.js +163 -0
  344. package/dist/infra/swagger/swagger.d.ts +16 -0
  345. package/dist/infra/swagger/swagger.js +31 -0
  346. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  347. package/dist/infra/throttler/credential-throttler.js +77 -0
  348. package/dist/infra/throttler/named-throttlers.d.ts +31 -0
  349. package/dist/infra/throttler/named-throttlers.js +119 -0
  350. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  351. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  352. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  353. package/dist/infra/throttler/throttler.guard.js +68 -0
  354. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  355. package/dist/infra/throttler/throttler.module.js +53 -0
  356. package/dist/infra/tokens.d.ts +15 -0
  357. package/dist/infra/tokens.js +15 -0
  358. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  359. package/dist/infra/validation/create-zod-dto.js +35 -0
  360. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  361. package/dist/infra/validation/parse-with-zod.js +12 -0
  362. package/dist/infra/validation/validation.module.d.ts +3 -0
  363. package/dist/infra/validation/validation.module.js +16 -0
  364. package/dist/infra/validation/zod-params.d.ts +7 -0
  365. package/dist/infra/validation/zod-params.js +42 -0
  366. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  367. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  368. package/dist/kernel.d.ts +9 -244
  369. package/dist/kernel.js +8 -1305
  370. package/dist/kernel.module.d.ts +17 -0
  371. package/dist/kernel.module.js +136 -0
  372. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  373. package/dist/lifecycle/kernel-lifecycle.js +451 -0
  374. package/dist/lifecycle/tokens.d.ts +3 -0
  375. package/dist/lifecycle/tokens.js +3 -0
  376. package/dist/log-context.d.ts +2 -0
  377. package/dist/log-context.js +4 -0
  378. package/dist/models/models.module.d.ts +3 -0
  379. package/dist/models/models.module.js +24 -0
  380. package/dist/models/prices.d.ts +8 -2
  381. package/dist/models/prices.js +65 -37
  382. package/dist/models/purposes.controller.d.ts +1 -1
  383. package/dist/models/purposes.controller.js +5 -6
  384. package/dist/models/purposes.d.ts +35 -13
  385. package/dist/models/purposes.js +101 -51
  386. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  387. package/dist/orgs/directory-sync.controller.js +2 -2
  388. package/dist/orgs/directory-sync.d.ts +61 -31
  389. package/dist/orgs/directory-sync.js +212 -125
  390. package/dist/orgs/invitations.controller.d.ts +8 -8
  391. package/dist/orgs/invitations.controller.js +27 -26
  392. package/dist/orgs/invitations.service.d.ts +12 -9
  393. package/dist/orgs/invitations.service.js +130 -92
  394. package/dist/orgs/job-ids.d.ts +8 -0
  395. package/dist/orgs/job-ids.js +8 -0
  396. package/dist/orgs/members.service.d.ts +19 -12
  397. package/dist/orgs/members.service.js +161 -117
  398. package/dist/orgs/offboarding.d.ts +54 -57
  399. package/dist/orgs/offboarding.js +161 -71
  400. package/dist/orgs/org-lock.d.ts +28 -19
  401. package/dist/orgs/org-lock.js +81 -35
  402. package/dist/orgs/org.guard.d.ts +1 -1
  403. package/dist/orgs/org.guard.js +2 -2
  404. package/dist/orgs/orgs.controller.d.ts +13 -13
  405. package/dist/orgs/orgs.controller.js +29 -17
  406. package/dist/orgs/orgs.module.d.ts +6 -0
  407. package/dist/orgs/orgs.module.js +68 -0
  408. package/dist/orgs/orgs.service.d.ts +30 -19
  409. package/dist/orgs/orgs.service.js +139 -86
  410. package/dist/orgs/settings.controller.d.ts +1 -1
  411. package/dist/orgs/settings.controller.js +8 -6
  412. package/dist/orgs/settings.service.d.ts +14 -8
  413. package/dist/orgs/settings.service.js +75 -46
  414. package/dist/overrides.d.ts +56 -0
  415. package/dist/overrides.js +30 -0
  416. package/dist/roles/gateway-role.d.ts +43 -0
  417. package/dist/roles/gateway-role.js +98 -0
  418. package/dist/roles/gateway.module.d.ts +8 -0
  419. package/dist/roles/gateway.module.js +28 -0
  420. package/dist/roles/worker-role.d.ts +63 -0
  421. package/dist/roles/worker-role.js +144 -0
  422. package/dist/roles/worker.module.d.ts +14 -0
  423. package/dist/roles/worker.module.js +90 -0
  424. package/dist/runtime/abort.js +19 -2
  425. package/dist/runtime/checkpointer.d.ts +8 -3
  426. package/dist/runtime/checkpointer.js +87 -55
  427. package/dist/runtime/conversation-lock.d.ts +20 -11
  428. package/dist/runtime/conversation-lock.js +62 -72
  429. package/dist/runtime/hook-calls.d.ts +3 -3
  430. package/dist/runtime/hook-calls.js +1 -6
  431. package/dist/runtime/job-ids.d.ts +10 -0
  432. package/dist/runtime/job-ids.js +10 -0
  433. package/dist/runtime/langgraph-loop.js +1 -1
  434. package/dist/runtime/loop.d.ts +7 -0
  435. package/dist/runtime/loop.js +14 -0
  436. package/dist/runtime/maintenance-queue.d.ts +10 -0
  437. package/dist/runtime/maintenance-queue.js +10 -0
  438. package/dist/runtime/maintenance.d.ts +45 -74
  439. package/dist/runtime/maintenance.js +139 -137
  440. package/dist/runtime/model-call.d.ts +7 -4
  441. package/dist/runtime/model-call.js +24 -57
  442. package/dist/runtime/providers.d.ts +17 -6
  443. package/dist/runtime/providers.js +66 -25
  444. package/dist/runtime/quota.d.ts +17 -3
  445. package/dist/runtime/quota.js +27 -2
  446. package/dist/runtime/retired-schedulers.d.ts +7 -0
  447. package/dist/runtime/retired-schedulers.js +31 -0
  448. package/dist/runtime/run-control.d.ts +33 -0
  449. package/dist/runtime/run-control.js +77 -0
  450. package/dist/runtime/run-finish.d.ts +26 -17
  451. package/dist/runtime/run-finish.js +98 -51
  452. package/dist/runtime/run-jobs.d.ts +48 -0
  453. package/dist/runtime/run-jobs.js +95 -0
  454. package/dist/runtime/run-processors.d.ts +60 -0
  455. package/dist/runtime/run-processors.js +185 -0
  456. package/dist/runtime/run-queue.d.ts +32 -57
  457. package/dist/runtime/run-queue.js +291 -295
  458. package/dist/runtime/run-steps.d.ts +39 -0
  459. package/dist/runtime/run-steps.js +96 -0
  460. package/dist/runtime/run-worker.d.ts +121 -75
  461. package/dist/runtime/run-worker.js +340 -226
  462. package/dist/runtime/runtime.module.d.ts +10 -0
  463. package/dist/runtime/runtime.module.js +112 -0
  464. package/dist/runtime/step-log.d.ts +40 -0
  465. package/dist/runtime/step-log.js +94 -0
  466. package/dist/runtime/stream.controller.d.ts +5 -8
  467. package/dist/runtime/stream.controller.js +14 -12
  468. package/dist/runtime/stream.d.ts +24 -6
  469. package/dist/runtime/stream.js +78 -7
  470. package/dist/runtime/subagents/child.d.ts +3 -44
  471. package/dist/runtime/subagents/child.js +0 -79
  472. package/dist/runtime/subagents/definition.d.ts +4 -4
  473. package/dist/runtime/subagents/definition.js +2 -2
  474. package/dist/runtime/subagents/dispatch.d.ts +87 -6
  475. package/dist/runtime/subagents/dispatch.js +135 -140
  476. package/dist/runtime/subagents/limits.d.ts +9 -4
  477. package/dist/runtime/subagents/limits.js +4 -2
  478. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  479. package/dist/runtime/subagents/org-agents.js +1 -1
  480. package/dist/runtime/subagents/progress.d.ts +2 -2
  481. package/dist/runtime/subagents/roster.d.ts +3 -3
  482. package/dist/runtime/subagents/roster.js +1 -1
  483. package/dist/runtime/subagents/skill-fork.d.ts +6 -7
  484. package/dist/runtime/subagents/skill-fork.js +16 -5
  485. package/dist/runtime/subagents/subagents.service.d.ts +40 -0
  486. package/dist/runtime/subagents/subagents.service.js +101 -0
  487. package/dist/runtime/usage-report.d.ts +94 -52
  488. package/dist/runtime/usage-report.js +200 -100
  489. package/dist/runtime/waits.d.ts +125 -57
  490. package/dist/runtime/waits.js +431 -208
  491. package/dist/sandbox/job-ids.d.ts +10 -0
  492. package/dist/sandbox/job-ids.js +10 -0
  493. package/dist/sandbox/jobs.d.ts +41 -0
  494. package/dist/sandbox/jobs.js +113 -0
  495. package/dist/sandbox/leases.d.ts +39 -31
  496. package/dist/sandbox/leases.js +117 -257
  497. package/dist/sandbox/providers.d.ts +19 -0
  498. package/dist/sandbox/providers.js +38 -0
  499. package/dist/sandbox/sandbox.module.d.ts +8 -0
  500. package/dist/sandbox/sandbox.module.js +30 -0
  501. package/dist/sandbox/sandbox.service.d.ts +24 -29
  502. package/dist/sandbox/sandbox.service.js +106 -75
  503. package/dist/skills/catalog.d.ts +33 -20
  504. package/dist/skills/catalog.js +96 -53
  505. package/dist/skills/changes.controller.d.ts +4 -4
  506. package/dist/skills/changes.controller.js +15 -9
  507. package/dist/skills/changes.service.d.ts +28 -18
  508. package/dist/skills/changes.service.js +421 -364
  509. package/dist/skills/invocable.controller.d.ts +1 -1
  510. package/dist/skills/invocable.controller.js +8 -5
  511. package/dist/skills/invoke.d.ts +16 -15
  512. package/dist/skills/invoke.js +48 -17
  513. package/dist/skills/skills.controller.d.ts +1 -1
  514. package/dist/skills/skills.controller.js +11 -6
  515. package/dist/skills/skills.module.d.ts +6 -0
  516. package/dist/skills/skills.module.js +30 -0
  517. package/dist/skills/skills.service.d.ts +47 -30
  518. package/dist/skills/skills.service.js +221 -158
  519. package/dist/storage/job-ids.d.ts +6 -0
  520. package/dist/storage/job-ids.js +6 -0
  521. package/dist/storage/purge.d.ts +22 -7
  522. package/dist/storage/purge.js +55 -3
  523. package/dist/storage/storage.module.d.ts +6 -0
  524. package/dist/storage/storage.module.js +23 -0
  525. package/dist/storage/storage.service.d.ts +18 -4
  526. package/dist/storage/storage.service.js +44 -3
  527. package/dist/tools/approvals.controller.d.ts +1 -1
  528. package/dist/tools/approvals.controller.js +12 -8
  529. package/dist/tools/approvals.service.d.ts +27 -25
  530. package/dist/tools/approvals.service.js +324 -258
  531. package/dist/tools/breaker.d.ts +2 -2
  532. package/dist/tools/breaker.js +21 -3
  533. package/dist/tools/builtins/ask-user.d.ts +2 -2
  534. package/dist/tools/builtins/ask-user.js +1 -1
  535. package/dist/tools/builtins/builtin-tools.d.ts +21 -0
  536. package/dist/tools/builtins/builtin-tools.js +80 -0
  537. package/dist/tools/builtins/read-tool-output.d.ts +2 -2
  538. package/dist/tools/builtins/read-tool-output.js +1 -1
  539. package/dist/tools/builtins/sandbox/bash.js +2 -2
  540. package/dist/tools/builtins/sandbox/common.d.ts +2 -1
  541. package/dist/tools/builtins/sandbox/deliver.js +2 -2
  542. package/dist/tools/builtins/sandbox/edit.js +1 -1
  543. package/dist/tools/builtins/sandbox/glob.js +2 -2
  544. package/dist/tools/builtins/sandbox/grep.js +2 -2
  545. package/dist/tools/builtins/sandbox/read.js +1 -1
  546. package/dist/tools/builtins/sandbox/write.js +1 -1
  547. package/dist/tools/builtins/skill-load.d.ts +3 -3
  548. package/dist/tools/builtins/skill-load.js +1 -1
  549. package/dist/tools/canonical-json.d.ts +6 -0
  550. package/dist/tools/canonical-json.js +16 -0
  551. package/dist/tools/connector-content.controller.d.ts +1 -1
  552. package/dist/tools/connector-content.controller.js +11 -6
  553. package/dist/tools/connector-content.d.ts +12 -15
  554. package/dist/tools/connector-content.js +53 -18
  555. package/dist/tools/connectors.controller.d.ts +1 -1
  556. package/dist/tools/connectors.controller.js +21 -10
  557. package/dist/tools/connectors.service.d.ts +31 -13
  558. package/dist/tools/connectors.service.js +434 -344
  559. package/dist/tools/credentials.d.ts +17 -20
  560. package/dist/tools/credentials.js +55 -34
  561. package/dist/tools/drift.d.ts +29 -41
  562. package/dist/tools/drift.js +111 -79
  563. package/dist/tools/info.d.ts +12 -9
  564. package/dist/tools/info.js +33 -7
  565. package/dist/tools/job-ids.d.ts +13 -0
  566. package/dist/tools/job-ids.js +15 -0
  567. package/dist/tools/jobs.d.ts +24 -0
  568. package/dist/tools/jobs.js +69 -0
  569. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  570. package/dist/tools/oauth/flow-paths.js +38 -0
  571. package/dist/tools/oauth/flow.d.ts +30 -30
  572. package/dist/tools/oauth/flow.js +109 -81
  573. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  574. package/dist/tools/oauth/oauth.controller.js +12 -9
  575. package/dist/tools/oauth/tokens.d.ts +11 -3
  576. package/dist/tools/oauth/tokens.js +15 -14
  577. package/dist/tools/outputs.d.ts +13 -4
  578. package/dist/tools/outputs.js +47 -3
  579. package/dist/tools/pipeline.d.ts +62 -46
  580. package/dist/tools/pipeline.js +145 -64
  581. package/dist/tools/policy.d.ts +2 -2
  582. package/dist/tools/questions.controller.d.ts +1 -1
  583. package/dist/tools/questions.controller.js +8 -5
  584. package/dist/tools/questions.service.d.ts +25 -24
  585. package/dist/tools/questions.service.js +201 -142
  586. package/dist/tools/registry.d.ts +30 -20
  587. package/dist/tools/registry.js +73 -37
  588. package/dist/tools/specs.d.ts +5 -4
  589. package/dist/tools/specs.js +3 -1
  590. package/dist/tools/tools.module.d.ts +10 -0
  591. package/dist/tools/tools.module.js +91 -0
  592. package/dist/ui/call-extension.d.ts +16 -0
  593. package/dist/ui/call-extension.js +38 -0
  594. package/dist/ui/embed-token.d.ts +9 -5
  595. package/dist/ui/embed-token.js +34 -6
  596. package/dist/ui/ui-stream.d.ts +22 -17
  597. package/dist/ui/ui-stream.js +72 -12
  598. package/dist/ui/ui.module.d.ts +7 -0
  599. package/dist/ui/ui.module.js +28 -0
  600. package/dist/ui/views.controller.d.ts +14 -12
  601. package/dist/ui/views.controller.js +32 -25
  602. package/dist/ui/views.d.ts +9 -57
  603. package/dist/ui/views.js +43 -45
  604. package/package.json +9 -2
  605. package/dist/http/health.controller.d.ts +0 -26
  606. package/dist/http/health.controller.js +0 -79
  607. package/dist/http/tokens.d.ts +0 -131
  608. package/dist/http/tokens.js +0 -131
  609. package/dist/http/zod.pipe.d.ts +0 -8
  610. package/dist/http/zod.pipe.js +0 -14
  611. package/dist/identity/rate-limit.d.ts +0 -55
  612. package/dist/identity/rate-limit.js +0 -121
  613. package/dist/sandbox/lifecycle.d.ts +0 -21
  614. package/dist/sandbox/lifecycle.js +0 -68
  615. /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
  616. /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { type Principal } from "../identity/principal.js";
3
3
  import { type OrgContext } from "../orgs/org.guard.js";
4
- import type { InvocableSkill, SkillInvoker } from "./invoke.js";
4
+ import { type InvocableSkill, SkillInvoker } from "./invoke.js";
5
5
  declare const ListQuery: z.ZodObject<{
6
6
  conversationId: z.ZodOptional<z.ZodString>;
7
7
  }, z.core.$strict>;
@@ -7,13 +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 { Controller, Get, Header, Inject, Param, Query } from "@nestjs/common";
10
+ import { Controller, Get, Header, Inject, Param } from "@nestjs/common";
11
11
  import { z } from "zod";
12
- import { SKILL_INVOKER } from "../http/tokens.js";
13
- import { ZodPipe } from "../http/zod.pipe.js";
14
12
  import { CurrentPrincipal, requireUser } from "../identity/principal.js";
13
+ import { createZodDto } from "../infra/validation/create-zod-dto.js";
14
+ import { ZQuery } from "../infra/validation/zod-params.js";
15
15
  import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
16
+ import { SkillInvoker } from "./invoke.js";
16
17
  const ListQuery = z.object({ conversationId: z.string().min(1).max(100).optional() }).strict();
18
+ class InvocableSkillsQuery extends createZodDto(ListQuery, "InvocableSkillsQuery") {
19
+ }
17
20
  /**
18
21
  * The composer's `/` menu (phase D spec §4.5): `GET /api/v1/orgs/:orgId/agents/:agentId/
19
22
  * invocable-skills?conversationId=` lists the agent's effective skills a person can invoke, sorted
@@ -41,10 +44,10 @@ __decorate([
41
44
  __param(0, CurrentPrincipal()),
42
45
  __param(1, CurrentOrg()),
43
46
  __param(2, Param("agentId")),
44
- __param(3, Query(new ZodPipe(ListQuery)))
47
+ __param(3, ZQuery(InvocableSkillsQuery))
45
48
  ], InvocableSkillsController.prototype, "list", null);
46
49
  InvocableSkillsController = __decorate([
47
50
  Controller("api/v1/orgs/:orgId/agents/:agentId/invocable-skills"),
48
- __param(0, Inject(SKILL_INVOKER))
51
+ __param(0, Inject(SkillInvoker))
49
52
  ], InvocableSkillsController);
50
53
  export { InvocableSkillsController };
@@ -1,10 +1,11 @@
1
- import { type Logger } from "@capybara-hq/plugin-sdk";
2
- import type { AgentsService } from "../agents/agents.service.js";
1
+ import { AgentLookup } from "../agents/agent-lookup.js";
3
2
  import type { AgentDefinition } from "../agents/definition.js";
4
3
  import type { EventPayload } from "../conversations/events.js";
5
- import type { KernelDb } from "../db/kernel-schema.js";
4
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
6
5
  import { ApiError } from "../errors.js";
7
- import type { StorageService } from "../storage/storage.service.js";
6
+ import { KernelDb } from "../infra/database/kernel-db.js";
7
+ import type { KernelLogger } from "../log.js";
8
+ import { StorageService } from "../storage/storage.service.js";
8
9
  /**
9
10
  * A person's skill invocation (phase D spec §3, §4): the `/` menu's list of the agent's invocable
10
11
  * skills, and the rendering of `/name args` into the model-visible text of their message. The skill
@@ -57,7 +58,7 @@ export declare const notInvocable: (reason: NotInvocableReason, name: string) =>
57
58
  * agent's effective skills now, with `user` not false. Its version may have changed: the queued
58
59
  * text stays as rendered when queued. Null when it is, else the reason.
59
60
  */
60
- export declare function recordedSkillBlocked(db: KernelDb, a: {
61
+ export declare function recordedSkillBlocked(db: KernelSchemaDb, a: {
61
62
  orgId: string;
62
63
  agentId: string;
63
64
  agent: Pick<AgentDefinition, "skills">;
@@ -68,17 +69,17 @@ export declare function recordedSkillBlocked(db: KernelDb, a: {
68
69
  export declare const forkLeadText: (name: string, agentType: string, args: string) => string;
69
70
  /** The warning recorded when a forked skill's `agent` does not resolve (spec §6.2). */
70
71
  export declare const forkAgentUnknownText: (name: string, agent: string) => string;
71
- export interface SkillInvokerDeps {
72
- db: KernelDb;
73
- storage: StorageService;
74
- /** For {@link SkillInvoker.listFor} (the HTTP route's access check). */
75
- agents?: Pick<AgentsService, "get">;
76
- /** An unreadable SKILL.md is logged at `error` (skill id, version, source), as pinned skills. */
77
- log?: Pick<Logger, "error">;
78
- }
72
+ /**
73
+ * Skill invocations by a person (one provider: the HTTP routes, IM channels and fork dispatch all
74
+ * use it). Unreadable SKILL.md files are logged at `error` (skill id, version, source), as pinned
75
+ * skills; the agent access check of {@link SkillInvoker.listFor} is `AgentLookup.get`.
76
+ */
79
77
  export declare class SkillInvoker {
80
- private readonly d;
81
- constructor(d: SkillInvokerDeps);
78
+ private readonly db;
79
+ private readonly storage;
80
+ private readonly agents;
81
+ private readonly log;
82
+ constructor(db: KernelDb, storage: StorageService, agents: Pick<AgentLookup, "get">, log: KernelLogger);
82
83
  /**
83
84
  * The `/` menu for `accountId`: the agent must be usable by them (`agent.not_found`), and with
84
85
  * `conversationId` the conversation must be theirs and the agent's (`conversation.not_found`);
@@ -1,6 +1,20 @@
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 { escapeSkillInvocationTags, hasShellInjection, parseSkillMd, renderSkillBody, renderSkillInvocation, SKILL_ENTRY_FILE, SKILL_INVOCATION_LIMITS, } from "@capybara-hq/plugin-sdk";
11
+ import { Inject, Injectable } from "@nestjs/common";
12
+ import { AgentLookup } from "../agents/agent-lookup.js";
2
13
  import { ApiError } from "../errors.js";
14
+ import { KernelDb } from "../infra/database/kernel-db.js";
15
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
3
16
  import { isGeneralAlias, resolveSkillForkType } from "../runtime/subagents/roster.js";
17
+ import { StorageService } from "../storage/storage.service.js";
4
18
  import { findSkillVersion, readSkillFile, SkillIntegrityError, } from "../tools/builtins/skill-load.js";
5
19
  import { invocationOf, resolveSkills } from "./catalog.js";
6
20
  /** A leading `/<name>` or `/<plugin>:<name>`, then whitespace or the end (spec §3.2). */
@@ -43,10 +57,21 @@ export async function recordedSkillBlocked(db, a) {
43
57
  export const forkLeadText = (name, agentType, args) => escapeSkillInvocationTags(`The user ran the skill "${name}" in a sub-agent (${agentType}) with /${name}${args === "" ? "" : ` ${args}`}. The sub-agent gets the skill's instructions as its task; its report follows. Do not do the task yourself.`);
44
58
  /** The warning recorded when a forked skill's `agent` does not resolve (spec §6.2). */
45
59
  export const forkAgentUnknownText = (name, agent) => `Skill "${name}" asked for sub-agent type "${agent}", which this agent does not have; it ran as general-purpose.`;
46
- export class SkillInvoker {
47
- d;
48
- constructor(d) {
49
- this.d = d;
60
+ /**
61
+ * Skill invocations by a person (one provider: the HTTP routes, IM channels and fork dispatch all
62
+ * use it). Unreadable SKILL.md files are logged at `error` (skill id, version, source), as pinned
63
+ * skills; the agent access check of {@link SkillInvoker.listFor} is `AgentLookup.get`.
64
+ */
65
+ let SkillInvoker = class SkillInvoker {
66
+ db;
67
+ storage;
68
+ agents;
69
+ log;
70
+ constructor(db, storage, agents, log) {
71
+ this.db = db;
72
+ this.storage = storage;
73
+ this.agents = agents;
74
+ this.log = log;
50
75
  }
51
76
  /**
52
77
  * The `/` menu for `accountId`: the agent must be usable by them (`agent.not_found`), and with
@@ -54,11 +79,9 @@ export class SkillInvoker {
54
79
  * then its trial drafts apply.
55
80
  */
56
81
  async listFor(orgId, agentId, accountId, conversationId) {
57
- if (!this.d.agents)
58
- throw new Error("SkillInvoker.listFor needs agents");
59
- const agent = await this.d.agents.get(orgId, agentId, accountId);
82
+ const agent = await this.agents.get(orgId, agentId, accountId);
60
83
  if (conversationId !== undefined) {
61
- const row = await this.d.db
84
+ const row = await this.db
62
85
  .selectFrom("conversations")
63
86
  .select("id")
64
87
  .where("id", "=", conversationId)
@@ -82,7 +105,7 @@ export class SkillInvoker {
82
105
  * point order), model-invocable and manual-only alike (spec §3.1).
83
106
  */
84
107
  async list(a) {
85
- const all = await resolveSkills(this.d.db, a);
108
+ const all = await resolveSkills(this.db.db, a);
86
109
  const out = [];
87
110
  for (const r of all) {
88
111
  const inv = invocationOf(r.manifest);
@@ -109,7 +132,7 @@ export class SkillInvoker {
109
132
  * that fails its integrity check → `storage.unavailable` (503). Nothing is written here.
110
133
  */
111
134
  async prepare(a) {
112
- const all = await resolveSkills(this.d.db, a);
135
+ const all = await resolveSkills(this.db.db, a);
113
136
  const found = findSkill(all, a.name);
114
137
  if (!found)
115
138
  throw notInvocable("not_found", a.name);
@@ -149,7 +172,7 @@ export class SkillInvoker {
149
172
  if (!inv.fork)
150
173
  return { text: rendered(() => renderSkillInvocation(input)), skill: record };
151
174
  const task = rendered(() => renderSkillInvocation({ ...input, lead: false }));
152
- const type = await resolveSkillForkType(this.d.db, a.orgId, a.agent, inv.fork.agent, found.skill.plugin);
175
+ const type = await resolveSkillForkType(this.db.db, a.orgId, a.agent, inv.fork.agent, found.skill.plugin);
153
176
  return {
154
177
  text: forkLeadText(a.name, type.agentType, args),
155
178
  skill: { ...record, agentType: type.agentType },
@@ -173,9 +196,9 @@ export class SkillInvoker {
173
196
  */
174
197
  async renderTask(a) {
175
198
  const { skill } = a;
176
- const found = await findSkillVersion(this.d.db, a, { id: skill.id, source: skill.source });
199
+ const found = await findSkillVersion(this.db.db, a, { id: skill.id, source: skill.source });
177
200
  if (!found) {
178
- this.d.log?.error("invoked skill unreadable", {
201
+ this.log.error("invoked skill unreadable", {
179
202
  orgId: a.orgId,
180
203
  skillId: skill.id,
181
204
  version: skill.version,
@@ -213,7 +236,7 @@ export class SkillInvoker {
213
236
  /** Reads and parses the version's SKILL.md (checked against the manifest), returns the body. */
214
237
  async readBody(orgId, r) {
215
238
  const unreadable = (problem) => {
216
- this.d.log?.error("invoked skill unreadable", {
239
+ this.log.error("invoked skill unreadable", {
217
240
  orgId,
218
241
  skillId: r.skill.id,
219
242
  version: r.skill.version,
@@ -227,10 +250,10 @@ export class SkillInvoker {
227
250
  const md = r.manifest.files.find((f) => f.path === SKILL_ENTRY_FILE);
228
251
  if (!md)
229
252
  throw unreadable(`has no ${SKILL_ENTRY_FILE}`);
230
- this.d.storage.assertAvailable();
253
+ this.storage.assertAvailable();
231
254
  let bytes;
232
255
  try {
233
- bytes = await readSkillFile(this.d.storage.kernel(orgId), `${r.skill.source}${SKILL_ENTRY_FILE}`, md);
256
+ bytes = await readSkillFile(this.storage.kernel(orgId), `${r.skill.source}${SKILL_ENTRY_FILE}`, md);
234
257
  }
235
258
  catch (e) {
236
259
  if (e instanceof SkillIntegrityError)
@@ -251,7 +274,15 @@ export class SkillInvoker {
251
274
  throw unreadable("cannot be parsed");
252
275
  return parsed.body;
253
276
  }
254
- }
277
+ };
278
+ SkillInvoker = __decorate([
279
+ Injectable(),
280
+ __param(0, Inject(KernelDb)),
281
+ __param(1, Inject(StorageService)),
282
+ __param(2, Inject(AgentLookup)),
283
+ __param(3, Inject(KERNEL_LOGGER))
284
+ ], SkillInvoker);
285
+ export { SkillInvoker };
255
286
  const hasBuiltin = (agent, name) => (agent.tools ?? []).some((t) => t.kind === "builtin" && t.name === name);
256
287
  /** The skill's own body over the rendered limit: a 400 on `skill` naming the skill. */
257
288
  function tooLarge(name, render) {
@@ -2,7 +2,7 @@ import { z } from "zod";
2
2
  import { type CreatedAttachment } from "../conversations/attachments.service.js";
3
3
  import { type Principal } from "../identity/principal.js";
4
4
  import { type OrgContext } from "../orgs/org.guard.js";
5
- import type { SkillDetail, SkillSummary, SkillsService, UploadedSkill } from "./skills.service.js";
5
+ import { type SkillDetail, type SkillSummary, SkillsService, type UploadedSkill } from "./skills.service.js";
6
6
  declare const UploadBody: z.ZodObject<{
7
7
  name: z.ZodString;
8
8
  size: z.ZodNumber;
@@ -8,13 +8,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
10
  import { hasControlChars, MEDIA_NAME_MAX_CHARS } from "@capybara-hq/plugin-sdk";
11
- import { Body, Controller, Delete, Get, HttpCode, Inject, Param, Post } from "@nestjs/common";
11
+ import { Controller, Delete, Get, HttpCode, Inject, Param, Post } from "@nestjs/common";
12
12
  import { z } from "zod";
13
13
  import { SKILL_PACKAGE_UPLOAD_MAX_BYTES, } from "../conversations/attachments.service.js";
14
- import { SKILLS } from "../http/tokens.js";
15
- import { ZodPipe } from "../http/zod.pipe.js";
16
14
  import { CurrentPrincipal, patTokenId, requireUser, } from "../identity/principal.js";
15
+ import { createZodDto } from "../infra/validation/create-zod-dto.js";
16
+ import { ZBody } from "../infra/validation/zod-params.js";
17
17
  import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
18
+ import { SkillsService, } from "./skills.service.js";
18
19
  const UploadBody = z
19
20
  .object({
20
21
  name: z
@@ -26,6 +27,10 @@ const UploadBody = z
26
27
  })
27
28
  .strict();
28
29
  const CreateBody = z.object({ uploadId: z.string().min(1).max(100) }).strict();
30
+ class SkillUploadBody extends createZodDto(UploadBody, "SkillUploadBody") {
31
+ }
32
+ class SkillCreateBody extends createZodDto(CreateBody, "SkillCreateBody") {
33
+ }
29
34
  /**
30
35
  * The org skill library (`/api/v1/orgs/:orgId/skills`, human users only):
31
36
  * - read: `skills.read` (member and up) — `GET /` list, `GET /:id` detail (versions and file
@@ -73,14 +78,14 @@ __decorate([
73
78
  OrgAction("skills.manage"),
74
79
  __param(0, CurrentPrincipal()),
75
80
  __param(1, CurrentOrg()),
76
- __param(2, Body(new ZodPipe(UploadBody)))
81
+ __param(2, ZBody(SkillUploadBody))
77
82
  ], SkillsController.prototype, "createUpload", null);
78
83
  __decorate([
79
84
  Post(),
80
85
  OrgAction("skills.manage"),
81
86
  __param(0, CurrentPrincipal()),
82
87
  __param(1, CurrentOrg()),
83
- __param(2, Body(new ZodPipe(CreateBody)))
88
+ __param(2, ZBody(SkillCreateBody))
84
89
  ], SkillsController.prototype, "create", null);
85
90
  __decorate([
86
91
  Get(),
@@ -105,6 +110,6 @@ __decorate([
105
110
  ], SkillsController.prototype, "remove", null);
106
111
  SkillsController = __decorate([
107
112
  Controller("api/v1/orgs/:orgId/skills"),
108
- __param(0, Inject(SKILLS))
113
+ __param(0, Inject(SkillsService))
109
114
  ], SkillsController);
110
115
  export { SkillsController };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Skills: the org library, agent-written skills and their approvals, the run start's skills
3
+ * catalog snapshot and the one {@link SkillInvoker}.
4
+ */
5
+ export declare class SkillsModule {
6
+ }
@@ -0,0 +1,30 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Module } from "@nestjs/common";
8
+ import { AgentLookupModule } from "../agents/agent-lookup.js";
9
+ import { AttachmentsModule } from "../conversations/attachments.module.js";
10
+ import { EventLogModule } from "../conversations/event-log.js";
11
+ import { OrgLockModule } from "../orgs/org-lock.js";
12
+ import { StorageModule } from "../storage/storage.module.js";
13
+ import { SkillsCatalogService } from "./catalog.js";
14
+ import { SkillChangesService } from "./changes.service.js";
15
+ import { SkillInvoker } from "./invoke.js";
16
+ import { SkillsService } from "./skills.service.js";
17
+ /**
18
+ * Skills: the org library, agent-written skills and their approvals, the run start's skills
19
+ * catalog snapshot and the one {@link SkillInvoker}.
20
+ */
21
+ let SkillsModule = class SkillsModule {
22
+ };
23
+ SkillsModule = __decorate([
24
+ Module({
25
+ imports: [StorageModule, OrgLockModule, EventLogModule, AttachmentsModule, AgentLookupModule],
26
+ providers: [SkillsService, SkillChangesService, SkillsCatalogService, SkillInvoker],
27
+ exports: [SkillsService, SkillChangesService, SkillsCatalogService, SkillInvoker],
28
+ })
29
+ ], SkillsModule);
30
+ export { SkillsModule };
@@ -1,12 +1,13 @@
1
1
  import { type SkillInvocation } from "@capybara-hq/plugin-sdk";
2
- import { type Transaction } from "kysely";
3
2
  import type { AgentDefinition } from "../agents/definition.js";
4
- import { type AttachmentsService, type CreatedAttachment } from "../conversations/attachments.service.js";
5
- import type { KernelDatabase, KernelDb, SkillManifest, SourceFormat } from "../db/kernel-schema.js";
3
+ import { AttachmentsService, type CreatedAttachment } from "../conversations/attachments.service.js";
4
+ import type { KernelSchemaDb, SkillManifest, SourceFormat } from "../db/kernel-schema.js";
6
5
  import { ApiError } from "../errors.js";
7
- import type { StorageService } from "../storage/storage.service.js";
6
+ import { KernelDb } from "../infra/database/kernel-db.js";
7
+ import { TransactionHost } from "../infra/database/transaction-host.js";
8
+ import { OrgLock } from "../orgs/org-lock.js";
9
+ import { StorageService } from "../storage/storage.service.js";
8
10
  import { type SkillPackageFile } from "./package.js";
9
- type Trx = Transaction<KernelDatabase>;
10
11
  /** Where an org skill came from (spec §9.2): the org's own, or a catalog plugin at a version. */
11
12
  export type SkillSource = {
12
13
  kind: "org";
@@ -26,7 +27,7 @@ export interface SkillConflict {
26
27
  * agent) and the skills of other catalog items. A skill of the same item (a reinstall or upgrade)
27
28
  * is not a conflict. In the order of `skillNames`.
28
29
  */
29
- export declare function skillConflicts(db: KernelDb | Trx, orgId: string, itemId: string, skillNames: readonly string[]): Promise<SkillConflict[]>;
30
+ export declare function skillConflicts(db: KernelSchemaDb, orgId: string, itemId: string, skillNames: readonly string[]): Promise<SkillConflict[]>;
30
31
  /** One line of the conflict message (spec §9.2). */
31
32
  export declare function skillConflictLine(c: SkillConflict): string;
32
33
  /** 409 `plugin.skill_conflict`: one message line and one detail per conflicting skill. */
@@ -82,17 +83,12 @@ export interface UploadedSkill {
82
83
  version: number;
83
84
  created: boolean;
84
85
  }
85
- export interface SkillsDeps {
86
- db: KernelDb;
87
- storage: StorageService;
88
- attachments: Pick<AttachmentsService, "create" | "readSkillPackage" | "consumeSkillPackage">;
89
- }
90
86
  /**
91
87
  * 在调用方事务里核对 agent 定义引用的组织技能:每个 id 都必须是该组织未删除的 `scope=org` 技能,
92
88
  * 否则 `validation_failed`(path `skills.orgSkills.<i>`);不可重复。调用方须已锁组织行(技能删除同样锁组织行,二者串行)。
93
89
  * `kept`:当前版本里已有的引用(保存时合法),修改时不再核对——技能之后被删也不挡住其他改动(运行时由 T14 忽略已删除的技能)。
94
90
  */
95
- export declare function assertOrgSkills(t: Trx, orgId: string, ids: readonly string[], kept?: ReadonlySet<string>): Promise<void>;
91
+ export declare function assertOrgSkills(db: KernelSchemaDb, orgId: string, ids: readonly string[], kept?: ReadonlySet<string>): Promise<void>;
96
92
  /** Why a pinned skill reference is refused (`agent.pinned_invalid` details). */
97
93
  export type PinnedSkillProblem = "not_selected" | "not_found" | "duplicate" | "too_many" | "too_large"
98
94
  /** Phase D: the skill's current version is manual-only (not in the model's catalog). */
@@ -113,14 +109,26 @@ export type PinnedSkillProblem = "not_selected" | "not_found" | "duplicate" | "t
113
109
  * when the pinned list changed: a pinned skill's new version never blocks an unrelated edit (the
114
110
  * run keeps what fits).
115
111
  */
116
- export declare function assertPinnedSkills(t: Trx, orgId: string, agentId: string | null, skills: AgentDefinition["skills"], kept?: readonly string[]): Promise<void>;
112
+ export declare function assertPinnedSkills(db: KernelSchemaDb, orgId: string, agentId: string | null, skills: AgentDefinition["skills"], kept?: readonly string[]): Promise<void>;
117
113
  /**
118
114
  * 技能库(M5 T13):组织技能的上传(新技能或新版本)、列表、详情与软删除。
119
115
  * 字节在对象存储 `kernel/<orgId>/skills/<uploadId>/<path>`,元数据在 PG;无进程内状态,可多副本共用。
120
116
  */
117
+ /** A validated skill package: its name, description, files and invocation. */
118
+ interface SkillPackageInput {
119
+ name: string;
120
+ description: string;
121
+ files: SkillPackageFile[];
122
+ /** Phase D: stored in the manifest when it is not the default. */
123
+ invocation?: SkillInvocation;
124
+ }
121
125
  export declare class SkillsService {
122
- private readonly d;
123
- constructor(d: SkillsDeps);
126
+ private readonly db;
127
+ private readonly storage;
128
+ private readonly attachments;
129
+ readonly txHost: TransactionHost;
130
+ private readonly orgLock;
131
+ constructor(db: KernelDb, storage: StorageService, attachments: AttachmentsService, txHost: TransactionHost, orgLock: OrgLock);
124
132
  /** 登记一个技能包上传(预签名 POST,`application/zip`,≤ 50MB);角色由路由的 `skills.manage` 把关。 */
125
133
  createUpload(orgId: string, accountId: string, input: {
126
134
  name: string;
@@ -136,24 +144,24 @@ export declare class SkillsService {
136
144
  * 同一上传已经产生过版本(上次提交了、响应丢了而重试)→ 直接返回那个版本(同组织、同一发起人)。
137
145
  */
138
146
  upload(orgId: string, actorAccountId: string, uploadId: string, actorTokenId?: string): Promise<UploadedSkill>;
147
+ /**
148
+ * The transaction of {@link upload}: under the org row lock (re-checking `skills.manage`), the
149
+ * custom-skill policy is re-checked and the upload consumed (of concurrent requests for the same
150
+ * upload only one succeeds), then the version is written in the same transaction
151
+ * ({@link createVersionIn} joins it).
152
+ */
153
+ private createUploadedVersionIn;
139
154
  /**
140
155
  * 用一组已校验的技能文件创建组织技能或给同名技能新增版本(上传与企业目录安装共用):
141
156
  * 1. 把文件写到 `kernel/<orgId>/<prefix>`(缺省 `skills/<新 id>/`);
142
- * 2. 一个事务里:锁组织行并复核 `skills.manage`,执行 `inTransaction`(上传:标记上传已用;目录:按条目策略复核),
157
+ * 2. 一个事务里:锁组织行并复核 `skills.manage`(目录安装:按条目策略复核),
143
158
  * 同名未删除的组织技能存在则 `current_version + 1`,否则新建;技能与版本都记下 `directory` 来源(没有则清空:
144
159
  * 自定义上传盖在目录技能上就不再算目录安装),写版本与审计
145
160
  * (`skill.created` / `skill.version_created`,目录安装时 detail 带 directory)。
146
161
  */
147
- createVersionFromFiles(orgId: string, actorAccountId: string, pkg: {
148
- name: string;
149
- description: string;
150
- files: SkillPackageFile[];
151
- /** Phase D: stored in the manifest when it is not the default. */
152
- invocation?: SkillInvocation;
153
- }, opts?: {
162
+ createVersionFromFiles(orgId: string, actorAccountId: string, pkg: SkillPackageInput, opts?: {
154
163
  prefix?: string;
155
164
  actorTokenId?: string;
156
- inTransaction?: (t: Trx) => Promise<void>;
157
165
  /** Catalog provenance; `approvedBy` is the item whose policy approves it (default `itemId`). */
158
166
  catalog?: {
159
167
  itemId: string;
@@ -165,16 +173,23 @@ export declare class SkillsService {
165
173
  suggestPinned?: boolean;
166
174
  };
167
175
  }): Promise<UploadedSkill>;
176
+ /** Writes a skill package's files to `kernel/<orgId>/<prefix>` (a few at a time). */
177
+ private putFiles;
178
+ /** The transaction of {@link createVersionFromFiles}. */
179
+ private createVersionIn;
168
180
  /**
169
- * 在调用方事务里撤销应用安装给已有技能加的版本(调用方已锁组织行):只有当前版本仍是 `version` 时才退回上一版本并删掉
170
- * 该版本行(之后又有新版本则不动,返回 false),技能的描述与目录来源也退回上一版本的。审计 `skill.version_reverted`。
181
+ * In the caller's transaction (`mandatory`: the caller holds the org row lock), reverts the
182
+ * version a plugin install added to an existing skill: only while `version` is still current,
183
+ * back to the previous version, deleting this version's row (returns false when a newer version
184
+ * exists); the skill's description and catalog source revert too. Audit `skill.version_reverted`.
171
185
  */
172
- revertVersionIn(t: Trx, orgId: string, skillId: string, version: number, actorAccountId: string, reason: string): Promise<boolean>;
186
+ revertVersionIn(orgId: string, skillId: string, version: number, actorAccountId: string, reason: string): Promise<boolean>;
173
187
  /**
174
- * 在调用方事务里软删除组织技能(调用方已锁组织行;应用安装的回滚与卸载用)。审计 `skill.deleted`(带 reason)。
175
- * 已删除 / 不存在时返回 false。
188
+ * In the caller's transaction (`mandatory`: the caller holds the org row lock), soft-deletes an
189
+ * org skill (plugin install rollback and uninstall). Audit `skill.deleted` with the reason.
190
+ * Returns false when it is already deleted or missing.
176
191
  */
177
- softDeleteIn(t: Trx, orgId: string, skillId: string, actorAccountId: string, reason: string): Promise<boolean>;
192
+ softDeleteIn(orgId: string, skillId: string, actorAccountId: string, reason: string): Promise<boolean>;
178
193
  /** 组织技能库(`scope=org`、未删除),按名字排序。 */
179
194
  list(orgId: string): Promise<SkillSummary[]>;
180
195
  /** 对该 agent 自动生效的技能(`scope=agent`、未删除),按名字排序。 */
@@ -188,5 +203,7 @@ export declare class SkillsService {
188
203
  * 保存时会被拒绝(运行时由 T14 忽略已删除的技能)。不存在 / 已删除 → `skill.not_found`。
189
204
  */
190
205
  softDelete(orgId: string, skillId: string, actorAccountId: string, actorTokenId?: string): Promise<void>;
206
+ /** The transaction of {@link softDelete}. */
207
+ private softDeleteTx;
191
208
  }
192
209
  export {};