@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,4 +1,4 @@
1
- import { isAgentVisibleTo } from "../../agents/agents.service.js";
1
+ import { isAgentVisibleTo } from "../../agents/agent-lookup.js";
2
2
  import { normalizeStoredDefinition } from "../../agents/definition.js";
3
3
  import { audit } from "../../identity/audit.js";
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import type { Logger } from "@capybara-hq/plugin-sdk";
2
- import type { KernelDb } from "../../db/kernel-schema.js";
2
+ import type { KernelSchemaDb } from "../../db/kernel-schema.js";
3
3
  /** A finished step of a sub-agent run, as the loop reports it. */
4
4
  export interface SubagentStep {
5
5
  /** The parent conversation, whose topic gets the message. */
@@ -10,7 +10,7 @@ export interface SubagentStep {
10
10
  step: number;
11
11
  }
12
12
  export interface SubagentProgressDeps {
13
- db: KernelDb;
13
+ db: KernelSchemaDb;
14
14
  bus: {
15
15
  publish(topic: string, payload: unknown): Promise<void>;
16
16
  };
@@ -1,5 +1,5 @@
1
1
  import type { AgentDefinition } from "../../agents/definition.js";
2
- import type { KernelDb } from "../../db/kernel-schema.js";
2
+ import type { KernelSchemaDb } from "../../db/kernel-schema.js";
3
3
  /**
4
4
  * The sub-agent roster of an agent version (phase C, spec §4.3, §5.1): the agent types its `agent`
5
5
  * tool offers, in the order the description lists them.
@@ -31,7 +31,7 @@ export declare const templateType: (plugin: string, name: string) => string;
31
31
  * since the save are skipped; allowlisted org agents stay listed (the dispatch checks their gates
32
32
  * and refuses with the §4.5 text), with `agentName` only while the agent is live.
33
33
  */
34
- export declare function resolveRoster(db: KernelDb, orgId: string, parent: Pick<AgentDefinition, "subagents">): Promise<RosterEntry[]>;
34
+ export declare function resolveRoster(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">): Promise<RosterEntry[]>;
35
35
  /**
36
36
  * The roster entry for a requested `subagent_type`: an exact type first; else a bare `<name>`
37
37
  * matches the plugin template `<plugin>:<name>` when exactly one has it (as Claude Code accepts
@@ -48,7 +48,7 @@ export declare const isGeneralAlias: (agent: string) => boolean;
48
48
  * the type is one the parent's `agent` tool offers (`general-purpose` is not when
49
49
  * `subagents.general === false`, which does not block a person's fork invocation).
50
50
  */
51
- export declare function resolveSkillForkType(db: KernelDb, orgId: string, parent: Pick<AgentDefinition, "subagents">, agent: string | undefined, plugin: string | undefined): Promise<{
51
+ export declare function resolveSkillForkType(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">, agent: string | undefined, plugin: string | undefined): Promise<{
52
52
  agentType: string;
53
53
  unknown?: string;
54
54
  inRoster: boolean;
@@ -1,4 +1,4 @@
1
- import { SUBAGENT_ROSTER_MAX } from "../../agents/agents.service.js";
1
+ import { SUBAGENT_ROSTER_MAX } from "../../agents/definition.js";
2
2
  import { loadTemplates } from "../../agents/templates.js";
3
3
  export const ROSTER_DESCRIPTION_MAX = 1024;
4
4
  /** The description of `general-purpose` in the roster (spec §4.3, model-visible). */
@@ -1,10 +1,9 @@
1
- import type { Transaction } from "kysely";
2
1
  import type { EventLog } from "../../conversations/event-log.js";
3
2
  import type { ConversationEvent, EventPayload } from "../../conversations/events.js";
4
- import type { KernelDatabase } from "../../db/kernel-schema.js";
3
+ import type { KernelSchemaDb } from "../../db/kernel-schema.js";
5
4
  import { ApiError } from "../../errors.js";
6
5
  import type { SkillInvoker } from "../../skills/invoke.js";
7
- import type { LoopContext, WaitingFor } from "../loop.js";
6
+ import { type LoopContext, type WaitingFor } from "../loop.js";
8
7
  import { type DispatchDeps } from "./dispatch.js";
9
8
  /**
10
9
  * Forked skills (phase D spec §6): a person's invocation of a `context: fork` skill starts its own
@@ -15,7 +14,6 @@ import { type DispatchDeps } from "./dispatch.js";
15
14
  * sweep) pairs a fork invocation without a report ({@link pairStoppedForks}), so the log never holds
16
15
  * a fork lead whose report is missing before the next model call.
17
16
  */
18
- type KernelTrx = Transaction<KernelDatabase>;
19
17
  /** The dispatch's parent call id (no `:`; there is no tool call). */
20
18
  export declare const skillCallId: (seq: number) => string;
21
19
  /** Idempotency key of a fork invocation's report (one per invocation, whatever the run). */
@@ -109,15 +107,16 @@ export declare const recordedSkillForks: (eventLog: Pick<EventLog, "append" | "f
109
107
  payload: unknown;
110
108
  }[]) => SkillForks;
111
109
  /**
112
- * In the transaction `t` of a run's terminal path (or the wait sweep): the run's fork invocation
110
+ * In the transaction of a run's terminal path (or the wait sweep): the run's fork invocation
113
111
  * (its trigger message, by the run boundary) without a report gets one now: the ended child's
114
112
  * result (and the parent's missing `subagent_finished`), {@link AGENT_STOPPED_WITH_RUN_TEXT} for a
115
113
  * child still active (the caller stops it after its commit, as for `agent` calls), or
116
114
  * {@link FORK_NOT_STARTED_TEXT} when nothing was dispatched. Returns the call ids written
117
115
  * (`skill-<seq>`) and the highest seq; the caller notifies after its commit.
118
116
  */
119
- export declare function pairStoppedForks(t: KernelTrx, eventLog: EventLog, runId: string): Promise<{
117
+ export declare function pairStoppedForks(
118
+ /** The caller's transaction (the context's handle). */
119
+ t: KernelSchemaDb, eventLog: EventLog, runId: string): Promise<{
120
120
  callIds: string[];
121
121
  toSeq: number | null;
122
122
  }>;
123
- export {};
@@ -1,9 +1,18 @@
1
1
  import { ApiError } from "../../errors.js";
2
2
  import { AGENT_STOPPED_WITH_RUN_TEXT } from "../../tools/builtins/agent.js";
3
- import { subagentsWait } from "../../tools/pipeline.js";
3
+ import { subagentsWait } from "../loop.js";
4
4
  import { TERMINAL_STATUSES } from "../run-finish.js";
5
5
  import { childResult, dispatchOfCall, finishedEvent } from "./child.js";
6
6
  import { dispatchSubagent } from "./dispatch.js";
7
+ /**
8
+ * Forked skills (phase D spec §6): a person's invocation of a `context: fork` skill starts its own
9
+ * run (the run boundary, {@link forkBoundary}), whose `prepare` node dispatches the sub-agent
10
+ * through phase C's `dispatchSubagent` before any model call and waits on it like an `agent` call
11
+ * (`subagents` wait `sa-<runId>-0`). When the child has ended, `prepare` appends the model-visible
12
+ * `skill_fork_result` and the parent's model answers. Every terminal path of the run (and the wait
13
+ * sweep) pairs a fork invocation without a report ({@link pairStoppedForks}), so the log never holds
14
+ * a fork lead whose report is missing before the next model call.
15
+ */
7
16
  /** The dispatch's parent call id (no `:`; there is no tool call). */
8
17
  export const skillCallId = (seq) => `skill-${seq}`;
9
18
  /** Idempotency key of a fork invocation's report (one per invocation, whatever the run). */
@@ -146,7 +155,7 @@ export async function advanceSkillForks(d, a) {
146
155
  }
147
156
  const suspend = (d, ctx) => ({
148
157
  kind: "suspend",
149
- waitingFor: subagentsWait(ctx.runId, FORK_STEP, d.config()),
158
+ waitingFor: subagentsWait(ctx.runId, FORK_STEP, d.config.get()),
150
159
  });
151
160
  /** The live handler for the loop (`LoopDeps.skillForks`). */
152
161
  export const liveSkillForks = (d) => ({
@@ -178,14 +187,16 @@ export const recordedSkillForks = (eventLog, recorded) => ({
178
187
  },
179
188
  });
180
189
  /**
181
- * In the transaction `t` of a run's terminal path (or the wait sweep): the run's fork invocation
190
+ * In the transaction of a run's terminal path (or the wait sweep): the run's fork invocation
182
191
  * (its trigger message, by the run boundary) without a report gets one now: the ended child's
183
192
  * result (and the parent's missing `subagent_finished`), {@link AGENT_STOPPED_WITH_RUN_TEXT} for a
184
193
  * child still active (the caller stops it after its commit, as for `agent` calls), or
185
194
  * {@link FORK_NOT_STARTED_TEXT} when nothing was dispatched. Returns the call ids written
186
195
  * (`skill-<seq>`) and the highest seq; the caller notifies after its commit.
187
196
  */
188
- export async function pairStoppedForks(t, eventLog, runId) {
197
+ export async function pairStoppedForks(
198
+ /** The caller's transaction (the context's handle). */
199
+ t, eventLog, runId) {
189
200
  const none = { callIds: [], toSeq: null };
190
201
  const run = await t
191
202
  .selectFrom("runs as r")
@@ -254,6 +265,6 @@ export async function pairStoppedForks(t, eventLog, runId) {
254
265
  events.push(finishedEvent(row, ended.finished));
255
266
  events.push(reportEvent(runId, seq, forkReportText(skill.name, ended ? ended.content : AGENT_STOPPED_WITH_RUN_TEXT), row));
256
267
  }
257
- const out = await eventLog.append(conversationId, events, t);
268
+ const out = await eventLog.appendIn(conversationId, events);
258
269
  return { callIds: [callId], toSeq: Math.max(...out.map((e) => e.seq)) };
259
270
  }
@@ -0,0 +1,40 @@
1
+ import type { ExtensionContext } from "@capybara-hq/plugin-sdk";
2
+ import { EventLog } from "../../conversations/event-log.js";
3
+ import { KernelConfigService } from "../../infra/config/kernel-config.service.js";
4
+ import { KernelDb } from "../../infra/database/kernel-db.js";
5
+ import { TransactionHost } from "../../infra/database/transaction-host.js";
6
+ import type { KernelLogger } from "../../log.js";
7
+ import { ModelPurposesService } from "../../models/purposes.js";
8
+ import { SkillInvoker } from "../../skills/invoke.js";
9
+ import { ProviderRegistry } from "../providers.js";
10
+ import { RunJobs } from "../run-jobs.js";
11
+ import { type ChildWriter, type DispatchArgs, type DispatchCommit, type DispatchOutcome, type DispatchPlan } from "./dispatch.js";
12
+ import { type SubagentStep } from "./progress.js";
13
+ import { type SkillForkDeps, type SkillForks } from "./skill-fork.js";
14
+ /**
15
+ * Sub-agents (phase C, spec §7) and forked skills (phase D): the `agent` tool's dispatch (the
16
+ * tool pipeline calls {@link dispatch}), a run's fork invocation ({@link skillForks}, the loop's
17
+ * `prepare`) and a child step's progress on the parent's stream ({@link progress}). Child runs go
18
+ * to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch (a
19
+ * finished child resumes its parent, a stopped parent stops its children) is the waits'
20
+ * (`Waits.childFinished` / `stopChildren`).
21
+ */
22
+ export declare class SubagentsService {
23
+ private readonly bus;
24
+ private readonly log;
25
+ readonly txHost: TransactionHost;
26
+ /** The dispatch's dependencies (`dispatch.ts`, `skill-fork.ts`). */
27
+ readonly deps: SkillForkDeps;
28
+ /** The live fork handler of the loop (`LoopDeps.skillForks`). */
29
+ readonly skillForks: SkillForks;
30
+ constructor(kdb: KernelDb, eventLog: EventLog, purposes: ModelPurposesService, registry: ProviderRegistry, config: KernelConfigService, jobs: RunJobs, invoker: SkillInvoker, bus: ExtensionContext["bus"], log: KernelLogger, txHost: TransactionHost);
31
+ /** Dispatches the sub-agent of one `agent` call (`dispatchSubagent`). */
32
+ dispatch(a: DispatchArgs): Promise<DispatchOutcome>;
33
+ /** The dispatch's writes in a transaction of their own (see `commitDispatchIn`). */
34
+ commitDispatch(a: DispatchArgs, plan: DispatchPlan, child: ChildWriter): Promise<DispatchCommit | null>;
35
+ /** A sub-agent's finished step on its parent's stream (sub-agents spec §14.2). Never throws. */
36
+ progress(s: SubagentStep): Promise<void>;
37
+ }
38
+ /** Sub-agent dispatch (the tools domain's `agent` tool and the run loop use it). */
39
+ export declare class SubagentsModule {
40
+ }
@@ -0,0 +1,101 @@
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, Module } from "@nestjs/common";
11
+ import { EventLog, EventLogModule } from "../../conversations/event-log.js";
12
+ import { KernelConfigService } from "../../infra/config/kernel-config.service.js";
13
+ import { KernelDb } from "../../infra/database/kernel-db.js";
14
+ import { TransactionHost } from "../../infra/database/transaction-host.js";
15
+ import { Transactional } from "../../infra/database/transactional.decorator.js";
16
+ import { KERNEL_BUS, KERNEL_LOGGER } from "../../infra/tokens.js";
17
+ import { ModelsModule } from "../../models/models.module.js";
18
+ import { ModelPurposesService } from "../../models/purposes.js";
19
+ import { SkillInvoker } from "../../skills/invoke.js";
20
+ import { SkillsModule } from "../../skills/skills.module.js";
21
+ import { ProviderRegistry, ProvidersModule } from "../providers.js";
22
+ import { RunJobs, RunJobsModule } from "../run-jobs.js";
23
+ import { commitDispatchIn, dispatchSubagent, } from "./dispatch.js";
24
+ import { publishSubagentProgress } from "./progress.js";
25
+ import { liveSkillForks } from "./skill-fork.js";
26
+ /**
27
+ * Sub-agents (phase C, spec §7) and forked skills (phase D): the `agent` tool's dispatch (the
28
+ * tool pipeline calls {@link dispatch}), a run's fork invocation ({@link skillForks}, the loop's
29
+ * `prepare`) and a child step's progress on the parent's stream ({@link progress}). Child runs go
30
+ * to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch (a
31
+ * finished child resumes its parent, a stopped parent stops its children) is the waits'
32
+ * (`Waits.childFinished` / `stopChildren`).
33
+ */
34
+ let SubagentsService = class SubagentsService {
35
+ bus;
36
+ log;
37
+ txHost;
38
+ /** The dispatch's dependencies (`dispatch.ts`, `skill-fork.ts`). */
39
+ deps;
40
+ /** The live fork handler of the loop (`LoopDeps.skillForks`). */
41
+ skillForks;
42
+ constructor(kdb, eventLog, purposes, registry, config, jobs, invoker, bus, log, txHost) {
43
+ this.bus = bus;
44
+ this.log = log;
45
+ this.txHost = txHost;
46
+ this.deps = {
47
+ get db() {
48
+ return kdb.db;
49
+ },
50
+ eventLog,
51
+ purposes,
52
+ registry,
53
+ config,
54
+ enqueue: (data, jobId, kind) => jobs.enqueue(data, jobId, kind),
55
+ log,
56
+ invoker,
57
+ commitDispatch: (a, plan, child) => this.commitDispatch(a, plan, child),
58
+ };
59
+ this.skillForks = liveSkillForks(this.deps);
60
+ }
61
+ /** Dispatches the sub-agent of one `agent` call (`dispatchSubagent`). */
62
+ dispatch(a) {
63
+ return dispatchSubagent(this.deps, a);
64
+ }
65
+ /** The dispatch's writes in a transaction of their own (see `commitDispatchIn`). */
66
+ commitDispatch(a, plan, child) {
67
+ return commitDispatchIn(this.deps, a, plan, child);
68
+ }
69
+ /** A sub-agent's finished step on its parent's stream (sub-agents spec §14.2). Never throws. */
70
+ progress(s) {
71
+ return publishSubagentProgress({ db: this.deps.db, bus: this.bus, log: this.log }, s);
72
+ }
73
+ };
74
+ __decorate([
75
+ Transactional({ propagation: "requires_new" })
76
+ ], SubagentsService.prototype, "commitDispatch", null);
77
+ SubagentsService = __decorate([
78
+ Injectable(),
79
+ __param(0, Inject(KernelDb)),
80
+ __param(1, Inject(EventLog)),
81
+ __param(2, Inject(ModelPurposesService)),
82
+ __param(3, Inject(ProviderRegistry)),
83
+ __param(4, Inject(KernelConfigService)),
84
+ __param(5, Inject(RunJobs)),
85
+ __param(6, Inject(SkillInvoker)),
86
+ __param(7, Inject(KERNEL_BUS)),
87
+ __param(8, Inject(KERNEL_LOGGER)),
88
+ __param(9, Inject(TransactionHost))
89
+ ], SubagentsService);
90
+ export { SubagentsService };
91
+ /** Sub-agent dispatch (the tools domain's `agent` tool and the run loop use it). */
92
+ let SubagentsModule = class SubagentsModule {
93
+ };
94
+ SubagentsModule = __decorate([
95
+ Module({
96
+ imports: [EventLogModule, ModelsModule, ProvidersModule, RunJobsModule, SkillsModule],
97
+ providers: [SubagentsService],
98
+ exports: [SubagentsService],
99
+ })
100
+ ], SubagentsModule);
101
+ export { SubagentsModule };
@@ -1,7 +1,11 @@
1
1
  import type { Logger } from "@capybara-hq/plugin-sdk";
2
- import type { KernelConfig } from "../config/schema.js";
3
- import type { KernelDb } from "../db/kernel-schema.js";
4
- import { type HookRegistry } from "../extensions/hooks.js";
2
+ import { Job, type Queue, type Worker } from "bullmq";
3
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
4
+ import { ExtensionHost } from "../extensions/host.js";
5
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
6
+ import { KernelDb } from "../infra/database/kernel-db.js";
7
+ import { LockService } from "../infra/lock/lock.service.js";
8
+ import type { KernelLogger } from "../log.js";
5
9
  /** Queue of `usage.report` deliveries (no `:` in the name). */
6
10
  export declare const USAGE_REPORT_QUEUE = "cap-kernel-usage-report";
7
11
  /** One job per `usage` event (no `:`: conversation ids are UUIDs, seq is a number). */
@@ -23,10 +27,17 @@ export interface UsageReportJob {
23
27
  export declare const USAGE_REPORT_ATTEMPTS = 6;
24
28
  /** Retry backoff: 2 s, doubling (2, 4, 8, 16, 32 s). */
25
29
  export declare const USAGE_REPORT_BACKOFF_MS = 2000;
26
- /** Maintenance job of the sweeper (no `:`), its scheduler id and period. */
30
+ /** The delivery retry policy of {@link UsageReporter}: attempts and the first exponential backoff. */
31
+ export interface UsageReportRetry {
32
+ attempts: number;
33
+ backoffMs: number;
34
+ }
35
+ /** Optional provider: the {@link UsageReportRetry} instead of the defaults above (tests). */
36
+ export declare const USAGE_REPORT_RETRY: unique symbol;
37
+ /** The sweeper's cron job name (no `:`; every minute, once across replicas). */
27
38
  export declare const USAGE_SWEEP_JOB = "usage-report-sweep";
28
- export declare const USAGE_SWEEP_SCHEDULER_ID = "usage-report-sweep-every";
29
- export declare const USAGE_SWEEP_EVERY_MS = 60000;
39
+ /** The maintenance scheduler the sweep ran on before it became a `@LockedCron` (retired). */
40
+ export { USAGE_SWEEP_SCHEDULER_ID } from "./job-ids.js";
30
41
  /** The sweep leaves the newest events to the fast path (and to transactions still committing). */
31
42
  export declare const USAGE_SWEEP_LAG_MS = 30000;
32
43
  /**
@@ -35,45 +46,13 @@ export declare const USAGE_SWEEP_LAG_MS = 30000;
35
46
  * (`hooks.usageReportKeepHours` ≥ 1 h), so re-enqueued events dedupe on the kept job.
36
47
  */
37
48
  export declare const USAGE_SWEEP_OVERLAP_MS: number;
38
- export interface UsageReporterDeps {
39
- db: KernelDb;
40
- redisUrl: string;
41
- /**
42
- * The host's registry: handlers of the current local plugin generations (through inflight.run), and
43
- * `has("usage.report")`, the in-process check that lets `enqueue` skip all I/O without handlers.
44
- */
45
- hooks: Pick<HookRegistry, "handlers" | "has">;
46
- /**
47
- * Whether the plugin's current instance is active on this replica (I-2): an active instance that
48
- * registered no `usage.report` handler is not a subscriber, and its target is dropped. Absent: never.
49
- */
50
- isActive?(plugin: string): boolean;
51
- /**
52
- * Of these plugins, the ones no replica can serve right now (I-2): replicas report them (live
53
- * `extension_replica_status` rows) and none has them loaded. Their targets are dropped at once instead
54
- * of failing every attempt. See {@link queryUnservable}. Absent: none.
55
- */
56
- unservable?(plugins: readonly string[]): Promise<Set<string>>;
57
- /**
58
- * Plugins that subscribe to `usage.report`, from deployment state (approved manifests in PG), not from this replica's loaded handlers. With `orgId`: only those the
59
- * organization enabled. See {@link queryUsageSubscribers}.
60
- */
61
- subscribers(orgId?: string): Promise<Set<string>>;
62
- config: () => KernelConfig;
63
- log: Logger;
64
- /** Tests: retry policy (defaults {@link USAGE_REPORT_ATTEMPTS} / {@link USAGE_REPORT_BACKOFF_MS}). */
65
- retry?: {
66
- attempts: number;
67
- backoffMs: number;
68
- };
69
- }
70
49
  /**
71
50
  * Plugins that subscribe to `usage.report` according to deployment state: an approved permission
72
51
  * snapshot that declares the `usage.report` hook, for a plugin the deployment still knows: an enabled
73
52
  * install, or a config-declared plugin with a replica status row that is not `unloaded`. With `orgId`, only plugins
74
53
  * the organization enabled (org config rows and required bootstrap plugins).
75
54
  */
76
- export declare function queryUsageSubscribers(db: KernelDb, orgId?: string): Promise<Set<string>>;
55
+ export declare function queryUsageSubscribers(db: KernelSchemaDb, orgId?: string): Promise<Set<string>>;
77
56
  /**
78
57
  * Of `plugins`, those that are **definitely** unservable right now (I-2, N-3): live replicas report
79
58
  * them (a `extension_replica_status` row with a heartbeat newer than `staleSeconds`), no live row is
@@ -82,7 +61,7 @@ export declare function queryUsageSubscribers(db: KernelDb, orgId?: string): Pro
82
61
  * reconcile). A plugin with no live row at all is unknown too (slow to load, or a host without a
83
62
  * status store). Unknown plugins are never listed.
84
63
  */
85
- export declare function queryUnservable(db: KernelDb, plugins: readonly string[], staleSeconds: number): Promise<Set<string>>;
64
+ export declare function queryUnservable(db: KernelSchemaDb, plugins: readonly string[], staleSeconds: number): Promise<Set<string>>;
86
65
  /**
87
66
  * The next `pending` set (m-2 fence): plugins that failed now, narrowed to what the stored job data
88
67
  * still lists. A plugin another (stalled-over) execution already delivered never comes back.
@@ -118,14 +97,50 @@ export declare function narrowPending(stored: readonly string[] | undefined, fai
118
97
  * Single-step eval replays and judge requests log no usage: not reported (M7).
119
98
  */
120
99
  export declare class UsageReporter {
121
- private readonly d;
122
- private queue;
123
- private queueConn;
100
+ private readonly kdb;
101
+ private readonly queue;
102
+ /**
103
+ * The host's hook registry: handlers of the current local plugin generations (through
104
+ * inflight.run), and `has("usage.report")`, the in-process check that lets `enqueue` skip all
105
+ * I/O without handlers; and whether a plugin's current instance is active here.
106
+ */
107
+ private readonly host;
108
+ private readonly config;
109
+ /** The warning throttle's markers (`capk:usage-warn:<plugin>:<kind>`, SET NX PX). */
110
+ private readonly locks;
111
+ private readonly log;
112
+ private readonly retry;
124
113
  private worker;
125
- private workerConn;
126
114
  private closed;
127
115
  private readonly stopping;
128
- constructor(d: UsageReporterDeps);
116
+ constructor(kdb: KernelDb, queue: Queue<UsageReportJob>,
117
+ /**
118
+ * The host's hook registry: handlers of the current local plugin generations (through
119
+ * inflight.run), and `has("usage.report")`, the in-process check that lets `enqueue` skip all
120
+ * I/O without handlers; and whether a plugin's current instance is active here.
121
+ */
122
+ host: Pick<ExtensionHost, "hooks" | "current">, config: Pick<KernelConfigService, "get">,
123
+ /** The warning throttle's markers (`capk:usage-warn:<plugin>:<kind>`, SET NX PX). */
124
+ locks: Pick<LockService, "lease">, log: Logger, retry?: UsageReportRetry);
125
+ private get db();
126
+ private get hooks();
127
+ /**
128
+ * Whether the plugin's current instance is active on this replica (I-2): an active instance that
129
+ * registered no `usage.report` handler is not a subscriber, and its target is dropped.
130
+ */
131
+ isActive(plugin: string): boolean;
132
+ /**
133
+ * Of these plugins, the ones no replica can serve right now (I-2): replicas report them (live
134
+ * `extension_replica_status` rows) and none has them loaded. Their targets are dropped at once
135
+ * instead of failing every attempt. See {@link queryUnservable}.
136
+ */
137
+ unservable(plugins: readonly string[]): Promise<Set<string>>;
138
+ /**
139
+ * Plugins that subscribe to `usage.report`, from deployment state (approved manifests in PG),
140
+ * not from this replica's loaded handlers. With `orgId`: only those the organization enabled.
141
+ * See {@link queryUsageSubscribers}.
142
+ */
143
+ subscribers(orgId?: string): Promise<Set<string>>;
129
144
  private jobOpts;
130
145
  /**
131
146
  * Enqueues the delivery of one `usage` event. Returns without a job when no plugin subscribes.
@@ -140,11 +155,20 @@ export declare class UsageReporter {
140
155
  sweep(opts?: {
141
156
  now?: number;
142
157
  }): Promise<number>;
143
- /** Starts the worker (worker role only). Job lock and stalled detection follow the run queue. */
144
- startWorker(): void;
145
- /** Stops the worker (in-flight calls are aborted, their jobs requeued) and the queue. */
158
+ /**
159
+ * Starts consuming (worker role only): `worker` is the `@Processor` worker of
160
+ * {@link USAGE_REPORT_QUEUE} (built with the run queue's job lock and stalled detection).
161
+ */
162
+ startWorker(worker: Worker<UsageReportJob>): void;
163
+ /** The worker's `error` event. */
164
+ onError(err: Error): void;
165
+ /** A job failed (the worker's `failed` event): logs retries and the final failure. */
166
+ onFailed(j: Job<UsageReportJob> | undefined, err: Error): void;
167
+ /**
168
+ * Stops: no more enqueues, in-flight calls are aborted (their jobs requeued) and the worker
169
+ * closes. The queue itself closes with the application.
170
+ */
146
171
  stop(): Promise<void>;
147
- private getQueue;
148
172
  /** The payload of one usage event, read from the log; null when the event no longer exists. */
149
173
  private payloadOf;
150
174
  /**
@@ -153,11 +177,29 @@ export declare class UsageReporter {
153
177
  * dropped can stay, so a plugin another execution delivered never comes back.
154
178
  */
155
179
  private writePending;
156
- private process;
157
- /** {@link UsageReporterDeps.unservable}; a lookup failure counts as "unknown" (keep retrying). */
158
- private unservable;
180
+ /** One delivery job (the `@Processor` of {@link USAGE_REPORT_QUEUE} calls it). */
181
+ process(j: Job<UsageReportJob>, token: string | undefined): Promise<void>;
182
+ /** {@link unservable}; a lookup failure counts as "unknown" (keep retrying). */
183
+ private unservableOrNone;
159
184
  /** Logs a warning at most once per plugin and kind per minute (Redis key with a TTL). */
160
185
  private warnOnce;
161
186
  /** One handler call with its own signal (timeout or replica stop aborts it); rejects on either. */
162
187
  private call;
163
188
  }
189
+ /**
190
+ * The usage sweeper (R13), every minute, once across replicas: {@link UsageReporter.sweep}.
191
+ * Replaces the maintenance scheduler `usage-report-sweep-every` (retired at worker start).
192
+ */
193
+ export declare class UsageSweepJob {
194
+ private readonly reporter;
195
+ readonly lockService: LockService;
196
+ readonly log: KernelLogger;
197
+ constructor(reporter: Pick<UsageReporter, "sweep">, lockService: LockService, log: KernelLogger);
198
+ run(): Promise<void>;
199
+ }
200
+ /**
201
+ * `usage.report` delivery: the producer on every role; the consumer and the sweep ({@link UsageSweepJob})
202
+ * on the worker role (`WorkerModule`).
203
+ */
204
+ export declare class UsageReportModule {
205
+ }