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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/bootstrap.json +10 -6
  2. package/dist/admin/admin.controller.d.ts +17 -17
  3. package/dist/admin/admin.controller.js +43 -26
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/extensions.controller.d.ts +14 -14
  7. package/dist/admin/extensions.controller.js +30 -17
  8. package/dist/admin/setup-lock.d.ts +16 -0
  9. package/dist/admin/setup-lock.js +47 -0
  10. package/dist/admin/setup.controller.d.ts +8 -8
  11. package/dist/admin/setup.controller.js +27 -25
  12. package/dist/admin/setup.service.d.ts +19 -27
  13. package/dist/admin/setup.service.js +61 -61
  14. package/dist/agents/agent-lookup.d.ts +53 -0
  15. package/dist/agents/agent-lookup.js +179 -0
  16. package/dist/agents/agents.controller.d.ts +1 -1
  17. package/dist/agents/agents.controller.js +14 -8
  18. package/dist/agents/agents.module.d.ts +7 -0
  19. package/dist/agents/agents.module.js +41 -0
  20. package/dist/agents/agents.service.d.ts +39 -58
  21. package/dist/agents/agents.service.js +261 -329
  22. package/dist/agents/definition.d.ts +8 -0
  23. package/dist/agents/definition.js +8 -0
  24. package/dist/agents/models.controller.d.ts +1 -1
  25. package/dist/agents/models.controller.js +2 -2
  26. package/dist/agents/templates.controller.d.ts +1 -1
  27. package/dist/agents/templates.controller.js +2 -2
  28. package/dist/agents/templates.d.ts +6 -8
  29. package/dist/agents/templates.js +20 -4
  30. package/dist/app.d.ts +93 -0
  31. package/dist/app.js +150 -0
  32. package/dist/catalog/admin-catalog.controller.d.ts +3 -3
  33. package/dist/catalog/admin-catalog.controller.js +27 -13
  34. package/dist/catalog/catalog-content.d.ts +185 -0
  35. package/dist/catalog/catalog-content.js +323 -0
  36. package/dist/catalog/catalog-items.d.ts +186 -0
  37. package/dist/catalog/catalog-items.js +410 -0
  38. package/dist/catalog/catalog.module.d.ts +14 -0
  39. package/dist/catalog/catalog.module.js +71 -0
  40. package/dist/catalog/catalog.service.d.ts +34 -188
  41. package/dist/catalog/catalog.service.js +155 -489
  42. package/dist/catalog/cli.d.ts +3 -2
  43. package/dist/catalog/cli.js +13 -31
  44. package/dist/catalog/job-ids.d.ts +15 -0
  45. package/dist/catalog/job-ids.js +15 -0
  46. package/dist/catalog/jobs.d.ts +27 -0
  47. package/dist/catalog/jobs.js +70 -0
  48. package/dist/catalog/locks.d.ts +24 -0
  49. package/dist/catalog/locks.js +63 -0
  50. package/dist/catalog/marketplaces.controller.d.ts +4 -4
  51. package/dist/catalog/marketplaces.controller.js +22 -11
  52. package/dist/catalog/marketplaces.service.d.ts +30 -13
  53. package/dist/catalog/marketplaces.service.js +330 -256
  54. package/dist/catalog/org-catalog.controller.d.ts +4 -3
  55. package/dist/catalog/org-catalog.controller.js +29 -14
  56. package/dist/catalog/org-catalog.service.d.ts +32 -198
  57. package/dist/catalog/org-catalog.service.js +159 -400
  58. package/dist/catalog/plugin-import.d.ts +73 -34
  59. package/dist/catalog/plugin-import.js +356 -217
  60. package/dist/catalog/plugin-install.d.ts +83 -41
  61. package/dist/catalog/plugin-install.js +421 -269
  62. package/dist/catalog/plugin-upgrade.d.ts +59 -4
  63. package/dist/catalog/plugin-upgrade.js +407 -282
  64. package/dist/catalog/requests.service.d.ts +27 -15
  65. package/dist/catalog/requests.service.js +201 -145
  66. package/dist/catalog/upgrade-targets.d.ts +4 -7
  67. package/dist/channels/actions.d.ts +6 -4
  68. package/dist/channels/actions.js +1 -1
  69. package/dist/channels/cards.d.ts +2 -2
  70. package/dist/channels/channels.module.d.ts +40 -0
  71. package/dist/channels/channels.module.js +128 -0
  72. package/dist/channels/connections.controller.d.ts +1 -1
  73. package/dist/channels/connections.controller.js +11 -6
  74. package/dist/channels/connections.service.d.ts +43 -21
  75. package/dist/channels/connections.service.js +236 -131
  76. package/dist/channels/inbound.d.ts +34 -38
  77. package/dist/channels/inbound.js +107 -41
  78. package/dist/channels/job-ids.d.ts +10 -0
  79. package/dist/channels/job-ids.js +10 -0
  80. package/dist/channels/jobs.d.ts +85 -0
  81. package/dist/channels/jobs.js +157 -0
  82. package/dist/channels/outbound.d.ts +60 -82
  83. package/dist/channels/outbound.js +165 -193
  84. package/dist/channels/supervisor.d.ts +88 -46
  85. package/dist/channels/supervisor.js +230 -132
  86. package/dist/channels/threads.d.ts +29 -8
  87. package/dist/channels/threads.js +71 -13
  88. package/dist/channels/webhook.d.ts +20 -14
  89. package/dist/channels/webhook.js +51 -20
  90. package/dist/config/load.d.ts +3 -2
  91. package/dist/config/load.js +3 -2
  92. package/dist/config/nacos-source.js +11 -2
  93. package/dist/config/schema.d.ts +16 -1
  94. package/dist/config/schema.js +54 -7
  95. package/dist/conversations/access.d.ts +29 -0
  96. package/dist/conversations/access.js +86 -0
  97. package/dist/conversations/artifacts.d.ts +10 -10
  98. package/dist/conversations/artifacts.js +35 -9
  99. package/dist/conversations/attachments.controller.d.ts +1 -1
  100. package/dist/conversations/attachments.controller.js +8 -6
  101. package/dist/conversations/attachments.module.d.ts +7 -0
  102. package/dist/conversations/attachments.module.js +25 -0
  103. package/dist/conversations/attachments.service.d.ts +30 -22
  104. package/dist/conversations/attachments.service.js +119 -46
  105. package/dist/conversations/conversations.controller.d.ts +8 -7
  106. package/dist/conversations/conversations.controller.js +59 -29
  107. package/dist/conversations/conversations.module.d.ts +8 -0
  108. package/dist/conversations/conversations.module.js +69 -0
  109. package/dist/conversations/conversations.service.d.ts +40 -38
  110. package/dist/conversations/conversations.service.js +130 -140
  111. package/dist/conversations/event-log.d.ts +28 -18
  112. package/dist/conversations/event-log.js +74 -27
  113. package/dist/conversations/files.d.ts +10 -10
  114. package/dist/conversations/files.js +37 -11
  115. package/dist/conversations/idem-keys.d.ts +5 -0
  116. package/dist/conversations/idem-keys.js +5 -0
  117. package/dist/conversations/job-ids.d.ts +6 -0
  118. package/dist/conversations/job-ids.js +6 -0
  119. package/dist/conversations/outputs-read.d.ts +11 -11
  120. package/dist/conversations/outputs-read.js +31 -7
  121. package/dist/conversations/queue.d.ts +48 -56
  122. package/dist/conversations/queue.js +13 -289
  123. package/dist/conversations/queue.service.d.ts +60 -0
  124. package/dist/conversations/queue.service.js +343 -0
  125. package/dist/conversations/sandbox-status.d.ts +13 -10
  126. package/dist/conversations/sandbox-status.js +36 -8
  127. package/dist/conversations/titles.d.ts +71 -24
  128. package/dist/conversations/titles.js +159 -62
  129. package/dist/ctx/bus.js +9 -3
  130. package/dist/ctx/create-ctx.d.ts +6 -0
  131. package/dist/ctx/create-ctx.js +7 -9
  132. package/dist/ctx/lock.d.ts +7 -3
  133. package/dist/ctx/lock.js +9 -20
  134. package/dist/ctx/queue.js +3 -2
  135. package/dist/ctx/secrets.d.ts +10 -2
  136. package/dist/ctx/secrets.js +7 -3
  137. package/dist/db/kernel-schema.d.ts +2 -2
  138. package/dist/db/pool.d.ts +5 -0
  139. package/dist/db/pool.js +1 -0
  140. package/dist/errors.d.ts +2 -0
  141. package/dist/errors.js +2 -0
  142. package/dist/evals/budget.d.ts +42 -21
  143. package/dist/evals/budget.js +114 -62
  144. package/dist/evals/evals.module.d.ts +31 -0
  145. package/dist/evals/evals.module.js +114 -0
  146. package/dist/evals/jobs.d.ts +20 -0
  147. package/dist/evals/jobs.js +45 -0
  148. package/dist/evals/run-replay.d.ts +56 -8
  149. package/dist/evals/run-replay.js +140 -80
  150. package/dist/evals/runs.controller.d.ts +1 -1
  151. package/dist/evals/runs.controller.js +17 -8
  152. package/dist/evals/runs.service.d.ts +23 -45
  153. package/dist/evals/runs.service.js +245 -234
  154. package/dist/evals/sets.controller.d.ts +1 -1
  155. package/dist/evals/sets.controller.js +17 -8
  156. package/dist/evals/sets.service.d.ts +22 -6
  157. package/dist/evals/sets.service.js +248 -194
  158. package/dist/evals/snapshot.d.ts +2 -2
  159. package/dist/evals/step-replay.d.ts +2 -2
  160. package/dist/evals/step-replay.js +1 -1
  161. package/dist/evals/trajectory.controller.d.ts +1 -1
  162. package/dist/evals/trajectory.controller.js +11 -7
  163. package/dist/evals/trajectory.service.d.ts +5 -4
  164. package/dist/evals/trajectory.service.js +30 -7
  165. package/dist/evals/worker.d.ts +44 -27
  166. package/dist/evals/worker.js +220 -120
  167. package/dist/extensions/admin-ops.d.ts +61 -33
  168. package/dist/extensions/admin-ops.js +248 -154
  169. package/dist/extensions/admin-view.d.ts +38 -27
  170. package/dist/extensions/admin-view.js +126 -55
  171. package/dist/extensions/approvals.d.ts +12 -8
  172. package/dist/extensions/approvals.js +73 -46
  173. package/dist/extensions/blobs.d.ts +27 -10
  174. package/dist/extensions/blobs.js +111 -45
  175. package/dist/extensions/bootstrap.d.ts +96 -42
  176. package/dist/extensions/bootstrap.js +303 -155
  177. package/dist/extensions/cli.d.ts +20 -10
  178. package/dist/extensions/cli.js +41 -96
  179. package/dist/extensions/config-issues.d.ts +7 -0
  180. package/dist/extensions/config-issues.js +31 -0
  181. package/dist/extensions/deployment-config-store.d.ts +49 -0
  182. package/dist/extensions/deployment-config-store.js +133 -0
  183. package/dist/extensions/deployment-config.d.ts +58 -67
  184. package/dist/extensions/deployment-config.js +202 -230
  185. package/dist/extensions/enabled.d.ts +5 -5
  186. package/dist/extensions/extensions.module.d.ts +8 -0
  187. package/dist/extensions/extensions.module.js +77 -0
  188. package/dist/extensions/hooks.d.ts +3 -2
  189. package/dist/extensions/hooks.js +1 -1
  190. package/dist/extensions/host.d.ts +72 -68
  191. package/dist/extensions/host.js +191 -152
  192. package/dist/extensions/installs.d.ts +49 -16
  193. package/dist/extensions/installs.js +128 -32
  194. package/dist/extensions/job-ids.d.ts +6 -0
  195. package/dist/extensions/job-ids.js +6 -0
  196. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  197. package/dist/extensions/lifecycle-topics.js +18 -0
  198. package/dist/extensions/lifecycle.d.ts +35 -47
  199. package/dist/extensions/lifecycle.js +103 -39
  200. package/dist/extensions/locks.d.ts +33 -0
  201. package/dist/extensions/locks.js +86 -0
  202. package/dist/extensions/migrate-lock.d.ts +3 -4
  203. package/dist/extensions/org-config.controller.d.ts +1 -1
  204. package/dist/extensions/org-config.controller.js +8 -5
  205. package/dist/extensions/org-config.d.ts +48 -46
  206. package/dist/extensions/org-config.js +284 -226
  207. package/dist/extensions/registry.d.ts +50 -2
  208. package/dist/extensions/registry.js +89 -4
  209. package/dist/extensions/sources.d.ts +12 -8
  210. package/dist/extensions/sources.js +34 -13
  211. package/dist/files/files.module.d.ts +3 -0
  212. package/dist/files/files.module.js +22 -0
  213. package/dist/files/previewers.controller.d.ts +7 -2
  214. package/dist/files/previewers.controller.js +17 -9
  215. package/dist/files/previewers.d.ts +13 -18
  216. package/dist/files/previewers.js +83 -36
  217. package/dist/http/adapter.d.ts +3 -0
  218. package/dist/http/adapter.js +25 -0
  219. package/dist/http/api.module.d.ts +3 -110
  220. package/dist/http/api.module.js +47 -355
  221. package/dist/http/app.d.ts +11 -15
  222. package/dist/http/app.js +52 -47
  223. package/dist/http/error-filter.module.d.ts +5 -0
  224. package/dist/http/error-filter.module.js +18 -0
  225. package/dist/http/error.filter.js +2 -2
  226. package/dist/identity/accounts.d.ts +82 -29
  227. package/dist/identity/accounts.js +294 -175
  228. package/dist/identity/api-tokens.d.ts +11 -7
  229. package/dist/identity/api-tokens.js +71 -44
  230. package/dist/identity/audit.d.ts +7 -4
  231. package/dist/identity/audit.js +5 -1
  232. package/dist/identity/auth.controller.d.ts +11 -10
  233. package/dist/identity/auth.controller.js +31 -25
  234. package/dist/identity/auth.guard.d.ts +3 -3
  235. package/dist/identity/auth.guard.js +6 -4
  236. package/dist/identity/binding.d.ts +9 -11
  237. package/dist/identity/binding.js +41 -13
  238. package/dist/identity/enterprise-admin.d.ts +18 -12
  239. package/dist/identity/enterprise-admin.js +67 -13
  240. package/dist/identity/external-identity-lock.d.ts +17 -0
  241. package/dist/identity/external-identity-lock.js +39 -0
  242. package/dist/identity/external.d.ts +19 -15
  243. package/dist/identity/external.js +163 -125
  244. package/dist/identity/identity.module.d.ts +6 -0
  245. package/dist/identity/identity.module.js +56 -0
  246. package/dist/identity/me.controller.d.ts +16 -15
  247. package/dist/identity/me.controller.js +37 -31
  248. package/dist/identity/sessions.d.ts +12 -10
  249. package/dist/identity/sessions.js +74 -42
  250. package/dist/identity/settings.d.ts +20 -14
  251. package/dist/identity/settings.js +85 -57
  252. package/dist/identity/sso.controller.d.ts +7 -7
  253. package/dist/identity/sso.controller.js +13 -9
  254. package/dist/identity/sso.d.ts +9 -12
  255. package/dist/identity/sso.js +54 -24
  256. package/dist/inbox/inbox.module.d.ts +3 -0
  257. package/dist/inbox/inbox.module.js +22 -0
  258. package/dist/inbox/inbox.service.d.ts +7 -9
  259. package/dist/inbox/inbox.service.js +32 -11
  260. package/dist/index.d.ts +19 -12
  261. package/dist/index.js +13 -8
  262. package/dist/infra/cache/cache.module.d.ts +3 -0
  263. package/dist/infra/cache/cache.module.js +16 -0
  264. package/dist/infra/cache/cache.service.d.ts +21 -0
  265. package/dist/infra/cache/cache.service.js +80 -0
  266. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  267. package/dist/infra/cache/cacheable.decorator.js +83 -0
  268. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  269. package/dist/infra/cli/kernel-cli.module.js +165 -0
  270. package/dist/infra/close-within.d.ts +15 -0
  271. package/dist/infra/close-within.js +36 -0
  272. package/dist/infra/config/config.module.d.ts +13 -0
  273. package/dist/infra/config/config.module.js +39 -0
  274. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  275. package/dist/infra/config/kernel-config.service.js +126 -0
  276. package/dist/infra/database/after-commit.d.ts +6 -0
  277. package/dist/infra/database/after-commit.js +9 -0
  278. package/dist/infra/database/database.module.d.ts +25 -0
  279. package/dist/infra/database/database.module.js +90 -0
  280. package/dist/infra/database/kernel-db.d.ts +22 -0
  281. package/dist/infra/database/kernel-db.js +65 -0
  282. package/dist/infra/database/transaction-host.d.ts +50 -0
  283. package/dist/infra/database/transaction-host.js +125 -0
  284. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  285. package/dist/infra/database/transactional.decorator.js +27 -0
  286. package/dist/infra/database/xact-lock.d.ts +17 -0
  287. package/dist/infra/database/xact-lock.js +43 -0
  288. package/dist/infra/events/kernel-events.d.ts +96 -0
  289. package/dist/infra/events/kernel-events.js +65 -0
  290. package/dist/infra/health/health.controller.d.ts +26 -0
  291. package/dist/infra/health/health.controller.js +104 -0
  292. package/dist/infra/health/health.module.d.ts +9 -0
  293. package/dist/infra/health/health.module.js +24 -0
  294. package/dist/infra/health/health.options.d.ts +10 -0
  295. package/dist/infra/health/health.options.js +15 -0
  296. package/dist/infra/health/shutdown-state.d.ts +6 -0
  297. package/dist/infra/health/shutdown-state.js +2 -0
  298. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  299. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  300. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  301. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  302. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  303. package/dist/infra/lifecycle/process-guards.js +86 -0
  304. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  305. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  306. package/dist/infra/lock/key-template.d.ts +13 -0
  307. package/dist/infra/lock/key-template.js +46 -0
  308. package/dist/infra/lock/lock.module.d.ts +3 -0
  309. package/dist/infra/lock/lock.module.js +16 -0
  310. package/dist/infra/lock/lock.service.d.ts +120 -0
  311. package/dist/infra/lock/lock.service.js +343 -0
  312. package/dist/infra/lock/shared-lease.d.ts +44 -0
  313. package/dist/infra/lock/shared-lease.js +121 -0
  314. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  315. package/dist/infra/lock/with-lock.decorator.js +49 -0
  316. package/dist/infra/logging/logging.module.d.ts +16 -0
  317. package/dist/infra/logging/logging.module.js +34 -0
  318. package/dist/infra/queue/configured-processor.d.ts +18 -0
  319. package/dist/infra/queue/configured-processor.js +23 -0
  320. package/dist/infra/queue/job-failure.d.ts +18 -0
  321. package/dist/infra/queue/job-failure.js +26 -0
  322. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  323. package/dist/infra/queue/queue-shutdown.js +81 -0
  324. package/dist/infra/queue/queue.module.d.ts +16 -0
  325. package/dist/infra/queue/queue.module.js +61 -0
  326. package/dist/infra/queue/redis-connection.d.ts +7 -0
  327. package/dist/infra/queue/redis-connection.js +18 -0
  328. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  329. package/dist/infra/queue/retired-schedulers.js +9 -0
  330. package/dist/infra/queue/run-job.d.ts +16 -0
  331. package/dist/infra/queue/run-job.js +19 -0
  332. package/dist/infra/redis/redis.module.d.ts +24 -0
  333. package/dist/infra/redis/redis.module.js +87 -0
  334. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  335. package/dist/infra/schedule/cron-tick.js +25 -0
  336. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  337. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  338. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  339. package/dist/infra/schedule/locked-interval.js +190 -0
  340. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  341. package/dist/infra/schedule/locked-tick.js +137 -0
  342. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  343. package/dist/infra/schedule/schedule.module.js +27 -0
  344. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  345. package/dist/infra/schedule/scheduled-runs.js +163 -0
  346. package/dist/infra/swagger/swagger.d.ts +16 -0
  347. package/dist/infra/swagger/swagger.js +31 -0
  348. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  349. package/dist/infra/throttler/credential-throttler.js +77 -0
  350. package/dist/infra/throttler/named-throttlers.d.ts +31 -0
  351. package/dist/infra/throttler/named-throttlers.js +119 -0
  352. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  353. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  354. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  355. package/dist/infra/throttler/throttler.guard.js +68 -0
  356. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  357. package/dist/infra/throttler/throttler.module.js +53 -0
  358. package/dist/infra/tokens.d.ts +15 -0
  359. package/dist/infra/tokens.js +15 -0
  360. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  361. package/dist/infra/validation/create-zod-dto.js +35 -0
  362. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  363. package/dist/infra/validation/parse-with-zod.js +12 -0
  364. package/dist/infra/validation/validation.module.d.ts +3 -0
  365. package/dist/infra/validation/validation.module.js +16 -0
  366. package/dist/infra/validation/zod-params.d.ts +7 -0
  367. package/dist/infra/validation/zod-params.js +42 -0
  368. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  369. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  370. package/dist/kernel.d.ts +9 -241
  371. package/dist/kernel.js +8 -1305
  372. package/dist/kernel.module.d.ts +17 -0
  373. package/dist/kernel.module.js +136 -0
  374. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  375. package/dist/lifecycle/kernel-lifecycle.js +451 -0
  376. package/dist/lifecycle/tokens.d.ts +3 -0
  377. package/dist/lifecycle/tokens.js +3 -0
  378. package/dist/log-config.d.ts +9 -0
  379. package/dist/log-config.js +27 -0
  380. package/dist/log-context.d.ts +34 -0
  381. package/dist/log-context.js +44 -0
  382. package/dist/log-loki.d.ts +34 -0
  383. package/dist/log-loki.js +145 -0
  384. package/dist/log.d.ts +41 -10
  385. package/dist/log.js +91 -17
  386. package/dist/models/models.module.d.ts +3 -0
  387. package/dist/models/models.module.js +24 -0
  388. package/dist/models/prices.d.ts +8 -2
  389. package/dist/models/prices.js +65 -37
  390. package/dist/models/purposes.controller.d.ts +1 -1
  391. package/dist/models/purposes.controller.js +5 -6
  392. package/dist/models/purposes.d.ts +35 -13
  393. package/dist/models/purposes.js +101 -51
  394. package/dist/net/public-address.js +3 -2
  395. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  396. package/dist/orgs/directory-sync.controller.js +2 -2
  397. package/dist/orgs/directory-sync.d.ts +61 -31
  398. package/dist/orgs/directory-sync.js +212 -125
  399. package/dist/orgs/invitations.controller.d.ts +8 -8
  400. package/dist/orgs/invitations.controller.js +27 -26
  401. package/dist/orgs/invitations.service.d.ts +12 -9
  402. package/dist/orgs/invitations.service.js +130 -92
  403. package/dist/orgs/job-ids.d.ts +8 -0
  404. package/dist/orgs/job-ids.js +8 -0
  405. package/dist/orgs/members.service.d.ts +19 -12
  406. package/dist/orgs/members.service.js +161 -117
  407. package/dist/orgs/offboarding.d.ts +54 -57
  408. package/dist/orgs/offboarding.js +161 -71
  409. package/dist/orgs/org-lock.d.ts +28 -19
  410. package/dist/orgs/org-lock.js +81 -35
  411. package/dist/orgs/org.guard.d.ts +1 -1
  412. package/dist/orgs/org.guard.js +2 -2
  413. package/dist/orgs/orgs.controller.d.ts +13 -13
  414. package/dist/orgs/orgs.controller.js +29 -17
  415. package/dist/orgs/orgs.module.d.ts +6 -0
  416. package/dist/orgs/orgs.module.js +68 -0
  417. package/dist/orgs/orgs.service.d.ts +30 -19
  418. package/dist/orgs/orgs.service.js +139 -86
  419. package/dist/orgs/settings.controller.d.ts +1 -1
  420. package/dist/orgs/settings.controller.js +8 -6
  421. package/dist/orgs/settings.service.d.ts +14 -8
  422. package/dist/orgs/settings.service.js +75 -46
  423. package/dist/overrides.d.ts +56 -0
  424. package/dist/overrides.js +30 -0
  425. package/dist/roles/gateway-role.d.ts +43 -0
  426. package/dist/roles/gateway-role.js +98 -0
  427. package/dist/roles/gateway.module.d.ts +8 -0
  428. package/dist/roles/gateway.module.js +28 -0
  429. package/dist/roles/worker-role.d.ts +63 -0
  430. package/dist/roles/worker-role.js +144 -0
  431. package/dist/roles/worker.module.d.ts +14 -0
  432. package/dist/roles/worker.module.js +90 -0
  433. package/dist/runtime/abort.js +19 -2
  434. package/dist/runtime/checkpointer.d.ts +8 -3
  435. package/dist/runtime/checkpointer.js +87 -55
  436. package/dist/runtime/conversation-lock.d.ts +20 -11
  437. package/dist/runtime/conversation-lock.js +62 -72
  438. package/dist/runtime/hook-calls.d.ts +3 -3
  439. package/dist/runtime/hook-calls.js +1 -6
  440. package/dist/runtime/job-ids.d.ts +10 -0
  441. package/dist/runtime/job-ids.js +10 -0
  442. package/dist/runtime/langgraph-loop.js +1 -1
  443. package/dist/runtime/loop.d.ts +7 -0
  444. package/dist/runtime/loop.js +14 -0
  445. package/dist/runtime/maintenance-queue.d.ts +10 -0
  446. package/dist/runtime/maintenance-queue.js +10 -0
  447. package/dist/runtime/maintenance.d.ts +45 -74
  448. package/dist/runtime/maintenance.js +139 -136
  449. package/dist/runtime/model-call.d.ts +7 -4
  450. package/dist/runtime/model-call.js +24 -57
  451. package/dist/runtime/providers.d.ts +17 -6
  452. package/dist/runtime/providers.js +66 -25
  453. package/dist/runtime/quota.d.ts +17 -3
  454. package/dist/runtime/quota.js +27 -2
  455. package/dist/runtime/retired-schedulers.d.ts +7 -0
  456. package/dist/runtime/retired-schedulers.js +31 -0
  457. package/dist/runtime/run-control.d.ts +33 -0
  458. package/dist/runtime/run-control.js +77 -0
  459. package/dist/runtime/run-finish.d.ts +26 -17
  460. package/dist/runtime/run-finish.js +98 -51
  461. package/dist/runtime/run-jobs.d.ts +48 -0
  462. package/dist/runtime/run-jobs.js +95 -0
  463. package/dist/runtime/run-processors.d.ts +60 -0
  464. package/dist/runtime/run-processors.js +185 -0
  465. package/dist/runtime/run-queue.d.ts +32 -57
  466. package/dist/runtime/run-queue.js +291 -295
  467. package/dist/runtime/run-steps.d.ts +39 -0
  468. package/dist/runtime/run-steps.js +96 -0
  469. package/dist/runtime/run-worker.d.ts +121 -75
  470. package/dist/runtime/run-worker.js +340 -225
  471. package/dist/runtime/runtime.module.d.ts +10 -0
  472. package/dist/runtime/runtime.module.js +112 -0
  473. package/dist/runtime/step-log.d.ts +40 -0
  474. package/dist/runtime/step-log.js +94 -0
  475. package/dist/runtime/stream.controller.d.ts +5 -8
  476. package/dist/runtime/stream.controller.js +14 -12
  477. package/dist/runtime/stream.d.ts +24 -6
  478. package/dist/runtime/stream.js +78 -7
  479. package/dist/runtime/subagents/child.d.ts +3 -44
  480. package/dist/runtime/subagents/child.js +0 -79
  481. package/dist/runtime/subagents/definition.d.ts +4 -4
  482. package/dist/runtime/subagents/definition.js +2 -2
  483. package/dist/runtime/subagents/dispatch.d.ts +87 -6
  484. package/dist/runtime/subagents/dispatch.js +135 -140
  485. package/dist/runtime/subagents/limits.d.ts +9 -4
  486. package/dist/runtime/subagents/limits.js +4 -2
  487. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  488. package/dist/runtime/subagents/org-agents.js +1 -1
  489. package/dist/runtime/subagents/progress.d.ts +2 -2
  490. package/dist/runtime/subagents/roster.d.ts +3 -3
  491. package/dist/runtime/subagents/roster.js +1 -1
  492. package/dist/runtime/subagents/skill-fork.d.ts +6 -7
  493. package/dist/runtime/subagents/skill-fork.js +16 -5
  494. package/dist/runtime/subagents/subagents.service.d.ts +40 -0
  495. package/dist/runtime/subagents/subagents.service.js +101 -0
  496. package/dist/runtime/usage-report.d.ts +94 -52
  497. package/dist/runtime/usage-report.js +200 -99
  498. package/dist/runtime/waits.d.ts +125 -57
  499. package/dist/runtime/waits.js +431 -208
  500. package/dist/sandbox/job-ids.d.ts +10 -0
  501. package/dist/sandbox/job-ids.js +10 -0
  502. package/dist/sandbox/jobs.d.ts +41 -0
  503. package/dist/sandbox/jobs.js +113 -0
  504. package/dist/sandbox/leases.d.ts +39 -31
  505. package/dist/sandbox/leases.js +117 -257
  506. package/dist/sandbox/providers.d.ts +19 -0
  507. package/dist/sandbox/providers.js +38 -0
  508. package/dist/sandbox/sandbox.module.d.ts +8 -0
  509. package/dist/sandbox/sandbox.module.js +30 -0
  510. package/dist/sandbox/sandbox.service.d.ts +24 -29
  511. package/dist/sandbox/sandbox.service.js +106 -75
  512. package/dist/skills/catalog.d.ts +33 -20
  513. package/dist/skills/catalog.js +96 -53
  514. package/dist/skills/changes.controller.d.ts +4 -4
  515. package/dist/skills/changes.controller.js +15 -9
  516. package/dist/skills/changes.service.d.ts +28 -18
  517. package/dist/skills/changes.service.js +421 -364
  518. package/dist/skills/invocable.controller.d.ts +1 -1
  519. package/dist/skills/invocable.controller.js +8 -5
  520. package/dist/skills/invoke.d.ts +16 -15
  521. package/dist/skills/invoke.js +48 -17
  522. package/dist/skills/skills.controller.d.ts +1 -1
  523. package/dist/skills/skills.controller.js +11 -6
  524. package/dist/skills/skills.module.d.ts +6 -0
  525. package/dist/skills/skills.module.js +30 -0
  526. package/dist/skills/skills.service.d.ts +47 -30
  527. package/dist/skills/skills.service.js +221 -158
  528. package/dist/storage/job-ids.d.ts +6 -0
  529. package/dist/storage/job-ids.js +6 -0
  530. package/dist/storage/purge.d.ts +22 -7
  531. package/dist/storage/purge.js +55 -3
  532. package/dist/storage/storage.module.d.ts +6 -0
  533. package/dist/storage/storage.module.js +23 -0
  534. package/dist/storage/storage.service.d.ts +18 -4
  535. package/dist/storage/storage.service.js +44 -3
  536. package/dist/tools/approvals.controller.d.ts +1 -1
  537. package/dist/tools/approvals.controller.js +12 -8
  538. package/dist/tools/approvals.service.d.ts +27 -25
  539. package/dist/tools/approvals.service.js +324 -258
  540. package/dist/tools/breaker.d.ts +2 -2
  541. package/dist/tools/breaker.js +21 -3
  542. package/dist/tools/builtins/ask-user.d.ts +2 -2
  543. package/dist/tools/builtins/ask-user.js +1 -1
  544. package/dist/tools/builtins/builtin-tools.d.ts +21 -0
  545. package/dist/tools/builtins/builtin-tools.js +80 -0
  546. package/dist/tools/builtins/read-tool-output.d.ts +2 -2
  547. package/dist/tools/builtins/read-tool-output.js +1 -1
  548. package/dist/tools/builtins/sandbox/bash.js +2 -2
  549. package/dist/tools/builtins/sandbox/common.d.ts +7 -4
  550. package/dist/tools/builtins/sandbox/common.js +5 -3
  551. package/dist/tools/builtins/sandbox/deliver.js +2 -2
  552. package/dist/tools/builtins/sandbox/edit.js +1 -1
  553. package/dist/tools/builtins/sandbox/glob.js +2 -2
  554. package/dist/tools/builtins/sandbox/grep.js +2 -2
  555. package/dist/tools/builtins/sandbox/read.js +1 -1
  556. package/dist/tools/builtins/sandbox/write.js +1 -1
  557. package/dist/tools/builtins/skill-load.d.ts +3 -3
  558. package/dist/tools/builtins/skill-load.js +1 -1
  559. package/dist/tools/canonical-json.d.ts +6 -0
  560. package/dist/tools/canonical-json.js +16 -0
  561. package/dist/tools/connector-content.controller.d.ts +1 -1
  562. package/dist/tools/connector-content.controller.js +11 -6
  563. package/dist/tools/connector-content.d.ts +12 -15
  564. package/dist/tools/connector-content.js +53 -18
  565. package/dist/tools/connectors.controller.d.ts +1 -1
  566. package/dist/tools/connectors.controller.js +21 -10
  567. package/dist/tools/connectors.service.d.ts +31 -13
  568. package/dist/tools/connectors.service.js +434 -344
  569. package/dist/tools/credentials.d.ts +17 -20
  570. package/dist/tools/credentials.js +55 -34
  571. package/dist/tools/drift.d.ts +29 -41
  572. package/dist/tools/drift.js +111 -79
  573. package/dist/tools/info.d.ts +12 -9
  574. package/dist/tools/info.js +33 -7
  575. package/dist/tools/job-ids.d.ts +13 -0
  576. package/dist/tools/job-ids.js +15 -0
  577. package/dist/tools/jobs.d.ts +24 -0
  578. package/dist/tools/jobs.js +69 -0
  579. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  580. package/dist/tools/oauth/flow-paths.js +38 -0
  581. package/dist/tools/oauth/flow.d.ts +30 -30
  582. package/dist/tools/oauth/flow.js +109 -81
  583. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  584. package/dist/tools/oauth/oauth.controller.js +12 -9
  585. package/dist/tools/oauth/tokens.d.ts +11 -3
  586. package/dist/tools/oauth/tokens.js +15 -14
  587. package/dist/tools/outputs.d.ts +13 -4
  588. package/dist/tools/outputs.js +47 -3
  589. package/dist/tools/pipeline.d.ts +62 -46
  590. package/dist/tools/pipeline.js +145 -64
  591. package/dist/tools/policy.d.ts +2 -2
  592. package/dist/tools/questions.controller.d.ts +1 -1
  593. package/dist/tools/questions.controller.js +8 -5
  594. package/dist/tools/questions.service.d.ts +25 -24
  595. package/dist/tools/questions.service.js +201 -142
  596. package/dist/tools/registry.d.ts +30 -20
  597. package/dist/tools/registry.js +73 -37
  598. package/dist/tools/specs.d.ts +5 -4
  599. package/dist/tools/specs.js +3 -1
  600. package/dist/tools/tools.module.d.ts +10 -0
  601. package/dist/tools/tools.module.js +91 -0
  602. package/dist/ui/call-extension.d.ts +16 -0
  603. package/dist/ui/call-extension.js +38 -0
  604. package/dist/ui/embed-token.d.ts +9 -5
  605. package/dist/ui/embed-token.js +34 -6
  606. package/dist/ui/ui-stream.d.ts +22 -17
  607. package/dist/ui/ui-stream.js +72 -12
  608. package/dist/ui/ui.module.d.ts +7 -0
  609. package/dist/ui/ui.module.js +28 -0
  610. package/dist/ui/views.controller.d.ts +14 -12
  611. package/dist/ui/views.controller.js +32 -25
  612. package/dist/ui/views.d.ts +9 -57
  613. package/dist/ui/views.js +43 -45
  614. package/package.json +11 -2
  615. package/dist/http/health.controller.d.ts +0 -26
  616. package/dist/http/health.controller.js +0 -79
  617. package/dist/http/tokens.d.ts +0 -131
  618. package/dist/http/tokens.js +0 -131
  619. package/dist/http/zod.pipe.d.ts +0 -8
  620. package/dist/http/zod.pipe.js +0 -14
  621. package/dist/identity/rate-limit.d.ts +0 -55
  622. package/dist/identity/rate-limit.js +0 -121
  623. package/dist/sandbox/lifecycle.d.ts +0 -21
  624. package/dist/sandbox/lifecycle.js +0 -68
  625. /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
  626. /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
@@ -0,0 +1,48 @@
1
+ import type { Job, Queue } from "bullmq";
2
+ import type { ConversationKind } from "../db/kernel-schema.js";
3
+ import { KernelDb } from "../infra/database/kernel-db.js";
4
+ import type { KernelLogger } from "../log.js";
5
+ /** 内核运行队列的 BullMQ 队列名(不含 `:`;与插件队列 `cap.<插件>.<名>` 不会重名)。 */
6
+ export declare const RUN_QUEUE_NAME = "cap-kernel-runs";
7
+ /**
8
+ * Queue of sub-agent (child) runs (sub-agents spec §7.4): a replica still on a version without
9
+ * sub-agents never takes a child job, and child load shows apart from conversations.
10
+ */
11
+ export declare const SUBAGENT_RUN_QUEUE_NAME = "cap-kernel-subagent-runs";
12
+ /** The run queue of a conversation kind: sub-agent conversations have their own. */
13
+ export declare const runQueueNameFor: (kind: ConversationKind) => string;
14
+ /** 未结束的运行状态(waiting:等人处理审批 / 输入请求,没有任务、不占会话锁与配额)。 */
15
+ export declare const ACTIVE_RUN_STATUSES: readonly ["queued", "running", "waiting"];
16
+ /** 运行任务的数据。 */
17
+ export interface RunJobData {
18
+ runId: string;
19
+ conversationId: string;
20
+ }
21
+ /** 同一触发点(会话 + 最新用户消息 seq)只投递一次。 */
22
+ export declare const runJobId: (conversationId: string, maxUserSeq: number) => string;
23
+ /**
24
+ * The producer side of the two run queues (`cap-kernel-runs`, `cap-kernel-subagent-runs`): adds
25
+ * run jobs under the caller's job id and looks them up. The run queue (`ensureRun`, orphan
26
+ * repairs), the waits (resumes) and the sub-agent dispatch enqueue through it; the run worker
27
+ * consumes both queues.
28
+ */
29
+ export declare class RunJobs {
30
+ private readonly kdb;
31
+ private readonly queues;
32
+ constructor(kdb: KernelDb, runs: Queue<RunJobData>, subagentRuns: Queue<RunJobData>, log: KernelLogger);
33
+ /** The BullMQ queue `name` (default: conversation runs). */
34
+ queue(name?: string): Queue<RunJobData>;
35
+ /** A run job by id on the queue `name`, or undefined. */
36
+ getJob(jobId: string, name?: string): Promise<Job<RunJobData> | undefined>;
37
+ /** Adds a conversation run job (`ensureRun`'s own enqueue). */
38
+ add(data: RunJobData, jobId: string): Promise<void>;
39
+ /**
40
+ * Enqueues a run job under the caller's job id (resumes, dispatches, repairs). The queue follows
41
+ * the conversation's kind (a sub-agent's runs go to {@link SUBAGENT_RUN_QUEUE_NAME}); pass
42
+ * `kind` when the caller knows it, else it is read.
43
+ */
44
+ enqueue(data: RunJobData, jobId: string, kind?: ConversationKind): Promise<void>;
45
+ }
46
+ /** The run queues' producer (the sub-agent dispatch, the run queue and the waits use it). */
47
+ export declare class RunJobsModule {
48
+ }
@@ -0,0 +1,95 @@
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 { getQueueToken } from "@nestjs/bullmq";
11
+ import { Inject, Injectable, Module } from "@nestjs/common";
12
+ import { KernelDb } from "../infra/database/kernel-db.js";
13
+ import { QueueModule } from "../infra/queue/queue.module.js";
14
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
15
+ /** 内核运行队列的 BullMQ 队列名(不含 `:`;与插件队列 `cap.<插件>.<名>` 不会重名)。 */
16
+ export const RUN_QUEUE_NAME = "cap-kernel-runs";
17
+ /**
18
+ * Queue of sub-agent (child) runs (sub-agents spec §7.4): a replica still on a version without
19
+ * sub-agents never takes a child job, and child load shows apart from conversations.
20
+ */
21
+ export const SUBAGENT_RUN_QUEUE_NAME = "cap-kernel-subagent-runs";
22
+ /** The run queue of a conversation kind: sub-agent conversations have their own. */
23
+ export const runQueueNameFor = (kind) => kind === "subagent" ? SUBAGENT_RUN_QUEUE_NAME : RUN_QUEUE_NAME;
24
+ /** 未结束的运行状态(waiting:等人处理审批 / 输入请求,没有任务、不占会话锁与配额)。 */
25
+ export const ACTIVE_RUN_STATUSES = ["queued", "running", "waiting"];
26
+ /** 同一触发点(会话 + 最新用户消息 seq)只投递一次。 */
27
+ export const runJobId = (conversationId, maxUserSeq) => `run-${conversationId}-${maxUserSeq}`;
28
+ /** The options of every run job: one attempt (the run's own paths handle failures), not kept. */
29
+ const RUN_JOB_OPTIONS = { attempts: 1, removeOnComplete: true, removeOnFail: true };
30
+ /**
31
+ * The producer side of the two run queues (`cap-kernel-runs`, `cap-kernel-subagent-runs`): adds
32
+ * run jobs under the caller's job id and looks them up. The run queue (`ensureRun`, orphan
33
+ * repairs), the waits (resumes) and the sub-agent dispatch enqueue through it; the run worker
34
+ * consumes both queues.
35
+ */
36
+ let RunJobs = class RunJobs {
37
+ kdb;
38
+ queues;
39
+ constructor(kdb, runs, subagentRuns, log) {
40
+ this.kdb = kdb;
41
+ this.queues = { [RUN_QUEUE_NAME]: runs, [SUBAGENT_RUN_QUEUE_NAME]: subagentRuns };
42
+ for (const [name, q] of Object.entries(this.queues)) {
43
+ q.on("error", (err) => log.error("run queue error", { err, queue: name }));
44
+ }
45
+ }
46
+ /** The BullMQ queue `name` (default: conversation runs). */
47
+ queue(name = RUN_QUEUE_NAME) {
48
+ const q = this.queues[name];
49
+ if (!q)
50
+ throw new Error(`unknown run queue ${name}`);
51
+ return q;
52
+ }
53
+ /** A run job by id on the queue `name`, or undefined. */
54
+ getJob(jobId, name = RUN_QUEUE_NAME) {
55
+ return this.queue(name).getJob(jobId);
56
+ }
57
+ /** Adds a conversation run job (`ensureRun`'s own enqueue). */
58
+ async add(data, jobId) {
59
+ await this.queue().add("run", data, { jobId, ...RUN_JOB_OPTIONS });
60
+ }
61
+ /**
62
+ * Enqueues a run job under the caller's job id (resumes, dispatches, repairs). The queue follows
63
+ * the conversation's kind (a sub-agent's runs go to {@link SUBAGENT_RUN_QUEUE_NAME}); pass
64
+ * `kind` when the caller knows it, else it is read.
65
+ */
66
+ async enqueue(data, jobId, kind) {
67
+ const k = kind ??
68
+ (await this.kdb.db
69
+ .selectFrom("conversations")
70
+ .select("kind")
71
+ .where("id", "=", data.conversationId)
72
+ .executeTakeFirst())?.kind ??
73
+ "chat";
74
+ await this.queue(runQueueNameFor(k)).add("run", data, { jobId, ...RUN_JOB_OPTIONS });
75
+ }
76
+ };
77
+ RunJobs = __decorate([
78
+ Injectable(),
79
+ __param(0, Inject(KernelDb)),
80
+ __param(1, Inject(getQueueToken(RUN_QUEUE_NAME))),
81
+ __param(2, Inject(getQueueToken(SUBAGENT_RUN_QUEUE_NAME))),
82
+ __param(3, Inject(KERNEL_LOGGER))
83
+ ], RunJobs);
84
+ export { RunJobs };
85
+ /** The run queues' producer (the sub-agent dispatch, the run queue and the waits use it). */
86
+ let RunJobsModule = class RunJobsModule {
87
+ };
88
+ RunJobsModule = __decorate([
89
+ Module({
90
+ imports: [QueueModule.registerQueue(RUN_QUEUE_NAME, SUBAGENT_RUN_QUEUE_NAME)],
91
+ providers: [RunJobs],
92
+ exports: [RunJobs],
93
+ })
94
+ ], RunJobsModule);
95
+ export { RunJobsModule };
@@ -0,0 +1,60 @@
1
+ import { WorkerHost } from "@nestjs/bullmq";
2
+ import { type DynamicModule } from "@nestjs/common";
3
+ import type { Job, Worker } from "bullmq";
4
+ import type { KernelConfig } from "../config/schema.js";
5
+ import { TitleQueue } from "../conversations/titles.js";
6
+ import { type RunJobData } from "./run-jobs.js";
7
+ import { RunWorker } from "./run-worker.js";
8
+ import { UsageReporter, type UsageReportJob } from "./usage-report.js";
9
+ type RunResult = Awaited<ReturnType<RunWorker["process"]>>;
10
+ /** The consumer of `cap-kernel-runs` (conversation runs): {@link RunWorker}. */
11
+ export declare class RunsProcessor extends WorkerHost<Worker<RunJobData, RunResult>> {
12
+ private readonly runs;
13
+ constructor(runs: RunWorker);
14
+ process(job: Job<RunJobData>, token?: string): Promise<RunResult>;
15
+ completed(job: Job<RunJobData>, result: RunResult): void;
16
+ failed(job: Job<RunJobData> | undefined, err: Error): void;
17
+ error(err: Error): void;
18
+ }
19
+ /** The consumer of `cap-kernel-subagent-runs` (sub-agent runs, spec §7.4): {@link RunWorker}. */
20
+ export declare class SubagentRunsProcessor extends WorkerHost<Worker<RunJobData, RunResult>> {
21
+ private readonly runs;
22
+ constructor(runs: RunWorker);
23
+ process(job: Job<RunJobData>, token?: string): Promise<RunResult>;
24
+ completed(job: Job<RunJobData>, result: RunResult): void;
25
+ failed(job: Job<RunJobData> | undefined, err: Error): void;
26
+ error(err: Error): void;
27
+ }
28
+ /** The consumer of `cap-kernel-usage-report`: {@link UsageReporter}. */
29
+ export declare class UsageReportProcessor extends WorkerHost<Worker<UsageReportJob>> {
30
+ private readonly reporter;
31
+ constructor(reporter: UsageReporter);
32
+ process(job: Job<UsageReportJob>, token?: string): Promise<void>;
33
+ failed(job: Job<UsageReportJob> | undefined, err: Error): void;
34
+ error(err: Error): void;
35
+ }
36
+ /** The consumer of `cap-kernel-titles`: {@link TitleQueue}. */
37
+ export declare class TitleProcessor extends WorkerHost<Worker<{
38
+ conversationId: string;
39
+ attempt: number;
40
+ }>> {
41
+ private readonly titles;
42
+ constructor(titles: TitleQueue);
43
+ process(job: Job<{
44
+ conversationId: string;
45
+ attempt: number;
46
+ }>): Promise<void>;
47
+ error(err: Error): void;
48
+ }
49
+ /**
50
+ * The runtime's queue consumers: the run worker on both run queues, `usage.report` deliveries and
51
+ * conversation titles. Imported only by the worker role (`WorkerModule`), so other roles get no
52
+ * processor and no BullMQ worker. Their worker options come from the startup config (concurrency
53
+ * per queue, the run queues' job lock and stalled detection, which the usage and title workers
54
+ * follow). The workers never start by themselves: the worker role (`WorkerRole`) starts them after
55
+ * the extensions loaded, and pauses them on stop.
56
+ */
57
+ export declare class RuntimeWorkersModule {
58
+ static forRoot(config: KernelConfig): DynamicModule;
59
+ }
60
+ export {};
@@ -0,0 +1,185 @@
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
+ var RuntimeWorkersModule_1;
11
+ import { hostname } from "node:os";
12
+ import { OnWorkerEvent, WorkerHost } from "@nestjs/bullmq";
13
+ import { Inject, Injectable, Module } from "@nestjs/common";
14
+ import { TITLE_QUEUE, TitleQueue, TitlesModule } from "../conversations/titles.js";
15
+ import { configuredProcessor } from "../infra/queue/configured-processor.js";
16
+ import { runJob } from "../infra/queue/run-job.js";
17
+ import { RUN_QUEUE_NAME, SUBAGENT_RUN_QUEUE_NAME } from "./run-jobs.js";
18
+ import { MAX_STALLED_COUNT, RunWorker } from "./run-worker.js";
19
+ import { RuntimeModule } from "./runtime.module.js";
20
+ import { USAGE_REPORT_QUEUE, UsageReporter, UsageReportModule, } from "./usage-report.js";
21
+ /** The consumer of `cap-kernel-runs` (conversation runs): {@link RunWorker}. */
22
+ let RunsProcessor = class RunsProcessor extends WorkerHost {
23
+ runs;
24
+ constructor(runs) {
25
+ super();
26
+ this.runs = runs;
27
+ }
28
+ process(job, token) {
29
+ return runJob(RUN_QUEUE_NAME, job, () => this.runs.process(job, token));
30
+ }
31
+ completed(job, result) {
32
+ this.runs.onCompleted(job, result);
33
+ }
34
+ failed(job, err) {
35
+ this.runs.onFailed(job, err);
36
+ }
37
+ error(err) {
38
+ this.runs.onError(err, RUN_QUEUE_NAME);
39
+ }
40
+ };
41
+ __decorate([
42
+ OnWorkerEvent("completed")
43
+ ], RunsProcessor.prototype, "completed", null);
44
+ __decorate([
45
+ OnWorkerEvent("failed")
46
+ ], RunsProcessor.prototype, "failed", null);
47
+ __decorate([
48
+ OnWorkerEvent("error")
49
+ ], RunsProcessor.prototype, "error", null);
50
+ RunsProcessor = __decorate([
51
+ Injectable(),
52
+ __param(0, Inject(RunWorker))
53
+ ], RunsProcessor);
54
+ export { RunsProcessor };
55
+ /** The consumer of `cap-kernel-subagent-runs` (sub-agent runs, spec §7.4): {@link RunWorker}. */
56
+ let SubagentRunsProcessor = class SubagentRunsProcessor extends WorkerHost {
57
+ runs;
58
+ constructor(runs) {
59
+ super();
60
+ this.runs = runs;
61
+ }
62
+ process(job, token) {
63
+ return runJob(SUBAGENT_RUN_QUEUE_NAME, job, () => this.runs.process(job, token));
64
+ }
65
+ completed(job, result) {
66
+ this.runs.onCompleted(job, result);
67
+ }
68
+ failed(job, err) {
69
+ this.runs.onFailed(job, err);
70
+ }
71
+ error(err) {
72
+ this.runs.onError(err, SUBAGENT_RUN_QUEUE_NAME);
73
+ }
74
+ };
75
+ __decorate([
76
+ OnWorkerEvent("completed")
77
+ ], SubagentRunsProcessor.prototype, "completed", null);
78
+ __decorate([
79
+ OnWorkerEvent("failed")
80
+ ], SubagentRunsProcessor.prototype, "failed", null);
81
+ __decorate([
82
+ OnWorkerEvent("error")
83
+ ], SubagentRunsProcessor.prototype, "error", null);
84
+ SubagentRunsProcessor = __decorate([
85
+ Injectable(),
86
+ __param(0, Inject(RunWorker))
87
+ ], SubagentRunsProcessor);
88
+ export { SubagentRunsProcessor };
89
+ /** The consumer of `cap-kernel-usage-report`: {@link UsageReporter}. */
90
+ let UsageReportProcessor = class UsageReportProcessor extends WorkerHost {
91
+ reporter;
92
+ constructor(reporter) {
93
+ super();
94
+ this.reporter = reporter;
95
+ }
96
+ process(job, token) {
97
+ return runJob(USAGE_REPORT_QUEUE, job, () => this.reporter.process(job, token));
98
+ }
99
+ failed(job, err) {
100
+ this.reporter.onFailed(job, err);
101
+ }
102
+ error(err) {
103
+ this.reporter.onError(err);
104
+ }
105
+ };
106
+ __decorate([
107
+ OnWorkerEvent("failed")
108
+ ], UsageReportProcessor.prototype, "failed", null);
109
+ __decorate([
110
+ OnWorkerEvent("error")
111
+ ], UsageReportProcessor.prototype, "error", null);
112
+ UsageReportProcessor = __decorate([
113
+ Injectable(),
114
+ __param(0, Inject(UsageReporter))
115
+ ], UsageReportProcessor);
116
+ export { UsageReportProcessor };
117
+ /** The consumer of `cap-kernel-titles`: {@link TitleQueue}. */
118
+ let TitleProcessor = class TitleProcessor extends WorkerHost {
119
+ titles;
120
+ constructor(titles) {
121
+ super();
122
+ this.titles = titles;
123
+ }
124
+ process(job) {
125
+ return runJob(TITLE_QUEUE, job, () => this.titles.process(job));
126
+ }
127
+ error(err) {
128
+ this.titles.onError(err);
129
+ }
130
+ };
131
+ __decorate([
132
+ OnWorkerEvent("error")
133
+ ], TitleProcessor.prototype, "error", null);
134
+ TitleProcessor = __decorate([
135
+ Injectable(),
136
+ __param(0, Inject(TitleQueue))
137
+ ], TitleProcessor);
138
+ export { TitleProcessor };
139
+ /**
140
+ * The runtime's queue consumers: the run worker on both run queues, `usage.report` deliveries and
141
+ * conversation titles. Imported only by the worker role (`WorkerModule`), so other roles get no
142
+ * processor and no BullMQ worker. Their worker options come from the startup config (concurrency
143
+ * per queue, the run queues' job lock and stalled detection, which the usage and title workers
144
+ * follow). The workers never start by themselves: the worker role (`WorkerRole`) starts them after
145
+ * the extensions loaded, and pauses them on stop.
146
+ */
147
+ let RuntimeWorkersModule = RuntimeWorkersModule_1 = class RuntimeWorkersModule {
148
+ static forRoot(config) {
149
+ const { workerConcurrency, jobLockMs, stalledIntervalMs } = config.runtime;
150
+ const runs = {
151
+ // the worker name is recorded on the job (BullMQ processedBy): which replica ran it
152
+ name: `${hostname()}-${process.pid}`,
153
+ concurrency: workerConcurrency,
154
+ lockDuration: jobLockMs,
155
+ stalledInterval: stalledIntervalMs,
156
+ maxStalledCount: MAX_STALLED_COUNT,
157
+ };
158
+ return {
159
+ module: RuntimeWorkersModule_1,
160
+ imports: [RuntimeModule, TitlesModule, UsageReportModule],
161
+ providers: [
162
+ configuredProcessor(RunsProcessor, RUN_QUEUE_NAME, runs),
163
+ configuredProcessor(SubagentRunsProcessor, SUBAGENT_RUN_QUEUE_NAME, runs),
164
+ configuredProcessor(UsageReportProcessor, USAGE_REPORT_QUEUE, {
165
+ concurrency: config.hooks.usageReportConcurrency,
166
+ lockDuration: jobLockMs,
167
+ stalledInterval: stalledIntervalMs,
168
+ maxStalledCount: 3,
169
+ }),
170
+ configuredProcessor(TitleProcessor, TITLE_QUEUE, {
171
+ concurrency: 4,
172
+ lockDuration: jobLockMs,
173
+ stalledInterval: stalledIntervalMs,
174
+ maxStalledCount: 1,
175
+ }),
176
+ ],
177
+ exports: [RunsProcessor, SubagentRunsProcessor, UsageReportProcessor, TitleProcessor],
178
+ };
179
+ }
180
+ };
181
+ RuntimeWorkersModule = RuntimeWorkersModule_1 = __decorate([
182
+ Module({})
183
+ // biome-ignore lint/complexity/noStaticOnlyClass: a Nest dynamic module
184
+ ], RuntimeWorkersModule);
185
+ export { RuntimeWorkersModule };
@@ -1,71 +1,45 @@
1
1
  import type { Logger } from "@capybara-hq/plugin-sdk";
2
- import { Redis } from "ioredis";
3
- import { type Transaction } from "kysely";
4
- import type { EventLog } from "../conversations/event-log.js";
5
- import type { ConversationKind, KernelDatabase, KernelDb } from "../db/kernel-schema.js";
2
+ import { EventLog } from "../conversations/event-log.js";
3
+ import type { ConversationKind } from "../db/kernel-schema.js";
4
+ import { KernelDb } from "../infra/database/kernel-db.js";
5
+ import { TransactionHost } from "../infra/database/transaction-host.js";
6
+ import { KernelEvents } from "../infra/events/kernel-events.js";
7
+ import { ToolPipeline } from "../tools/pipeline.js";
6
8
  import type { RunAbortDetail } from "./abort.js";
7
- import type { KyselyCheckpointSaver } from "./checkpointer.js";
8
- import type { ConversationLock } from "./conversation-lock.js";
9
- /** 内核运行队列的 BullMQ 队列名(不含 `:`;与插件队列 `cap.<插件>.<名>` 不会重名)。 */
10
- export declare const RUN_QUEUE_NAME = "cap-kernel-runs";
11
- /**
12
- * Queue of sub-agent (child) runs (sub-agents spec §7.4): a replica still on a version without
13
- * sub-agents never takes a child job, and child load shows apart from conversations.
14
- */
15
- export declare const SUBAGENT_RUN_QUEUE_NAME = "cap-kernel-subagent-runs";
16
- /** The run queue of a conversation kind: sub-agent conversations have their own. */
17
- export declare const runQueueNameFor: (kind: ConversationKind) => string;
18
- /** 运行任务的数据。 */
19
- export interface RunJobData {
20
- runId: string;
21
- conversationId: string;
22
- }
23
- /** 同一触发点(会话 + 最新用户消息 seq)只投递一次。 */
24
- export declare const runJobId: (conversationId: string, maxUserSeq: number) => string;
25
- /** 未结束的运行状态(waiting:等人处理审批 / 输入请求,没有任务、不占会话锁与配额)。 */
26
- export declare const ACTIVE_RUN_STATUSES: readonly ["queued", "running", "waiting"];
27
- type KernelTrx = Transaction<KernelDatabase>;
28
- /** What an orphan repair does for a parent's sub-agents (wired by the kernel). */
29
- export interface OrphanSubagents {
30
- /** `ToolPipeline.stopOpenAgentCalls`: the run's open `agent` call results, in `t`. */
31
- stopOpenCalls(t: KernelTrx, runId: string): Promise<{
32
- fire: () => void;
33
- }>;
34
- /** `stopChildren(runId, null)`: after the commit, its active children stop. */
35
- stopChildren(runId: string): Promise<unknown>;
36
- }
37
- /** BullMQ 连接要求 maxRetriesPerRequest 为 null(Worker 的阻塞连接);Queue 复用同样的配置。 */
38
- export declare function bullConnection(redisUrl: string, log: Pick<Logger, "error">): Redis;
9
+ import { KyselyCheckpointSaver } from "./checkpointer.js";
10
+ import { ConversationLock } from "./conversation-lock.js";
11
+ import { RunFinish } from "./run-finish.js";
12
+ import { type RunJobData, RunJobs } from "./run-jobs.js";
13
+ export { ACTIVE_RUN_STATUSES, RUN_QUEUE_NAME, type RunJobData, runJobId, runQueueNameFor, SUBAGENT_RUN_QUEUE_NAME, } from "./run-jobs.js";
39
14
  /**
40
15
  * 运行队列(生产方):`ensureRun` 在会话有未消费的用户消息、且没有进行中的运行时插入 `runs` 行并投递任务。
41
16
  * 「是否已有运行」以 PG 为准(会话行锁内检查 `runs` 中的 queued / running),并参考会话锁的持有者;
42
17
  * 多副本并发调用对同一会话串行化,同一时刻至多一个未结束的运行。
43
18
  */
44
19
  export declare class RunQueue {
45
- private readonly db;
20
+ private readonly kdb;
46
21
  private readonly eventLog;
47
22
  private readonly lock;
48
- private readonly redisUrl;
49
- private readonly log;
23
+ private readonly jobs;
24
+ private readonly finisher;
50
25
  /** 运行以孤儿结束(标记失败 / 直接中止)后删除它的 checkpoint thread(thread_id = runId)。 */
51
- private readonly checkpoints?;
52
- /** Sub-agent cleanup when an orphan repair ends a parent run (sub-agents spec §12). */
53
- private readonly subagents?;
54
- private readonly queues;
55
- private conn;
56
- private closed;
57
- constructor(db: KernelDb, eventLog: EventLog, lock: Pick<ConversationLock, "holder">, redisUrl: string, log: Pick<Logger, "error" | "warn">,
26
+ private readonly checkpoints;
27
+ /** The run's open `agent` call results, in the orphan repair's transaction (sub-agents spec §12). */
28
+ private readonly pipeline;
29
+ private readonly events;
30
+ private readonly log;
31
+ readonly txHost: TransactionHost;
32
+ constructor(kdb: KernelDb, eventLog: EventLog, lock: Pick<ConversationLock, "holder">, jobs: RunJobs, finisher: Pick<RunFinish, "finishIn">,
58
33
  /** 运行以孤儿结束(标记失败 / 直接中止)后删除它的 checkpoint thread(thread_id = runId)。 */
59
- checkpoints?: Pick<KyselyCheckpointSaver, "deleteThread"> | undefined,
60
- /** Sub-agent cleanup when an orphan repair ends a parent run (sub-agents spec §12). */
61
- subagents?: OrphanSubagents | undefined);
34
+ checkpoints: Pick<KyselyCheckpointSaver, "deleteThread">,
35
+ /** The run's open `agent` call results, in the orphan repair's transaction (sub-agents spec §12). */
36
+ pipeline: Pick<ToolPipeline, "stopOpenAgentCalls">, events: KernelEvents, log: Pick<Logger, "error" | "warn">, txHost: TransactionHost);
37
+ private get db();
62
38
  /**
63
- * The `beforeTerminal` of an orphan repair: writes the run's open `agent` call results in `t`;
64
- * `fire()` runs their observe hooks after the commit (review m1).
39
+ * The `beforeTerminal` of an orphan repair: writes the run's open `agent` call results in the
40
+ * repair's transaction; `fire()` runs their observe hooks after the commit (review m1).
65
41
  */
66
42
  private stopOpenCalls;
67
- /** The BullMQ queue `name` (default: conversation runs); both share one connection. */
68
- private getQueue;
69
43
  /**
70
44
  * 有未消费的用户消息(最新 user_message 的 seq > `consumed_seq`)、会话锁无人持有、
71
45
  * 且没有 queued / running / waiting 的运行时:插入 `runs`(queued)并投递任务,返回 runId;否则返回 null。
@@ -79,10 +53,11 @@ export declare class RunQueue {
79
53
  * agent 已软删除的会话不起新运行(孤儿清理照常进行)。
80
54
  */
81
55
  ensureRun(conversationId: string): Promise<string | null>;
56
+ /** {@link ensureRun}'s transaction: what it decided goes back through `st`. */
57
+ private ensureRunIn;
82
58
  /**
83
59
  * Enqueues a run job under the caller's job id (resumes, dispatches, repairs), with the same
84
- * options as {@link ensureRun}. The queue follows the conversation's kind (a sub-agent's runs go
85
- * to {@link SUBAGENT_RUN_QUEUE_NAME}); pass `kind` when the caller knows it, else it is read.
60
+ * options as {@link ensureRun} (see {@link RunJobs.enqueue}).
86
61
  */
87
62
  enqueue(data: RunJobData, jobId: string, kind?: ConversationKind): Promise<void>;
88
63
  /**
@@ -92,6 +67,7 @@ export declare class RunQueue {
92
67
  * 不是孤儿(有人在执行或即将执行)或运行已结束 → 返回 false,由调用方走广播中止。
93
68
  */
94
69
  abortIfOrphaned(conversationId: string, runId: string, byAccountId: string | null, detail?: RunAbortDetail): Promise<boolean>;
70
+ private abortOrphanIn;
95
71
  /**
96
72
  * Repairs an orphaned run of a conversation nobody else repairs on demand (a sub-agent's: no
97
73
  * `ensureRun` ever runs for it; sub-agents spec §7.5), with the same orphan test as
@@ -105,6 +81,7 @@ export declare class RunQueue {
105
81
  * Not an orphan, or already finished → null.
106
82
  */
107
83
  repairOrphan(conversationId: string, runId: string): Promise<"requeued" | "failed" | null>;
84
+ private repairOrphanIn;
108
85
  /** 会话当前未结束的运行(调用方已持有会话行锁)。 */
109
86
  private activeRun;
110
87
  /**
@@ -116,6 +93,4 @@ export declare class RunQueue {
116
93
  /** 删除已结束运行的 checkpoint thread(失败只记日志)。 */
117
94
  private dropCheckpoints;
118
95
  private deleteQueued;
119
- close(): Promise<void>;
120
96
  }
121
- export {};