@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
@@ -0,0 +1,144 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { Inject, Injectable } from "@nestjs/common";
11
+ import { ChannelsProcessor } from "../channels/channels.module.js";
12
+ import { ChannelOutbound } from "../channels/outbound.js";
13
+ import { TitleQueue } from "../conversations/titles.js";
14
+ import { EvalsProcessor } from "../evals/evals.module.js";
15
+ import { EvalWorker } from "../evals/worker.js";
16
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
17
+ import { LockedIntervalScheduler } from "../infra/schedule/locked-interval.js";
18
+ import { ScheduledRuns } from "../infra/schedule/scheduled-runs.js";
19
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
20
+ import { MaintenanceProcessor } from "../runtime/maintenance.js";
21
+ import { RunsProcessor, SubagentRunsProcessor, TitleProcessor, UsageReportProcessor, } from "../runtime/run-processors.js";
22
+ import { RunWorker } from "../runtime/run-worker.js";
23
+ import { UsageReporter } from "../runtime/usage-report.js";
24
+ /**
25
+ * The worker role's parts, driven by `KernelLifecycle` at fixed points of its start order and stop
26
+ * phases (so they stay ordered after the extension load and before the extension host closes): the
27
+ * queue consumers (runs, sub-agent runs, evals, maintenance, channel deliveries, `usage.report`,
28
+ * titles) and the schedulers of the `@LockedCron` / `@LockedInterval` jobs. Provided only by
29
+ * `WorkerModule`, so a process without the worker role has none of them.
30
+ */
31
+ let WorkerRole = class WorkerRole {
32
+ log;
33
+ intervals;
34
+ scheduledRuns;
35
+ runWorker;
36
+ evalWorker;
37
+ usageReport;
38
+ titles;
39
+ channelOutbound;
40
+ runsProcessor;
41
+ subagentRunsProcessor;
42
+ usageProcessor;
43
+ titleProcessor;
44
+ channelsProcessor;
45
+ evalsProcessor;
46
+ maintenanceProcessor;
47
+ /** The startup config (the roles). */
48
+ config;
49
+ /** The run worker was started: the runs phase drains it. */
50
+ runsStarted = false;
51
+ /** The eval worker was started: the runs phase drains it. */
52
+ evalsStarted = false;
53
+ constructor(config, log, intervals, scheduledRuns, runWorker, evalWorker, usageReport, titles, channelOutbound, runsProcessor, subagentRunsProcessor, usageProcessor, titleProcessor, channelsProcessor, evalsProcessor, maintenanceProcessor) {
54
+ this.log = log;
55
+ this.intervals = intervals;
56
+ this.scheduledRuns = scheduledRuns;
57
+ this.runWorker = runWorker;
58
+ this.evalWorker = evalWorker;
59
+ this.usageReport = usageReport;
60
+ this.titles = titles;
61
+ this.channelOutbound = channelOutbound;
62
+ this.runsProcessor = runsProcessor;
63
+ this.subagentRunsProcessor = subagentRunsProcessor;
64
+ this.usageProcessor = usageProcessor;
65
+ this.titleProcessor = titleProcessor;
66
+ this.channelsProcessor = channelsProcessor;
67
+ this.evalsProcessor = evalsProcessor;
68
+ this.maintenanceProcessor = maintenanceProcessor;
69
+ this.config = config.get();
70
+ }
71
+ /**
72
+ * Starts the queue consumers (after the extension load), then opens the schedules' start gate:
73
+ * the cron and interval timers were armed at application bootstrap, but every tick before this
74
+ * point skipped (decision R21 of the Nest kernel spec); the `@LockedInterval({ runOnStart })`
75
+ * jobs run now, in the background (once across replicas starting together). `checkpoint` throws
76
+ * when a stop began meanwhile.
77
+ */
78
+ async start(checkpoint) {
79
+ // both run queues' @Processor workers (built with the run config, never autorun)
80
+ this.runWorker.start([this.runsProcessor.worker, this.subagentRunsProcessor.worker]);
81
+ this.runsStarted = true;
82
+ this.evalWorker.start(this.evalsProcessor.worker);
83
+ this.evalsStarted = true;
84
+ // The maintenance queue: remove the retired job schedulers (idempotent, harmless when several
85
+ // replicas do it), then start its one consumer. A failure is only logged and does not stop the
86
+ // start (like the workers' connection errors): any worker replica removes them on its next start.
87
+ try {
88
+ await this.maintenanceProcessor.removeRetiredSchedulers();
89
+ }
90
+ catch (err) {
91
+ this.log.error("cannot register maintenance job schedulers", { err });
92
+ }
93
+ checkpoint();
94
+ this.maintenanceProcessor.start();
95
+ this.channelOutbound.startWorker(this.channelsProcessor.worker);
96
+ this.usageReport.startWorker(this.usageProcessor.worker);
97
+ this.titles.startWorker(this.titleProcessor.worker);
98
+ if (!this.config.roles.includes("gateway")) {
99
+ this.log.info("this process runs the worker role without gateway; channel long connections are held only by processes with the gateway role", { roles: this.config.roles });
100
+ }
101
+ // The gate opens: from here on ticks run; the runOnStart jobs run once now, in the background
102
+ this.scheduledRuns.open();
103
+ this.intervals.runStartJobs();
104
+ }
105
+ /**
106
+ * Closes the start gate and stops the schedulers (no new tick; the runs in progress get the stop
107
+ * signal) and returns the wait for those runs, at most `budgetMs`.
108
+ */
109
+ stopSchedules(budgetMs) {
110
+ return this.scheduledRuns.stop(budgetMs);
111
+ }
112
+ /** The runs phase: this process's runs stop at their next step boundary (undefined: never started). */
113
+ drainRuns(budgetMs) {
114
+ return this.runsStarted ? this.runWorker.close(budgetMs) : undefined;
115
+ }
116
+ /** The eval cases in progress stop (undefined: never started). */
117
+ drainEvals(budgetMs) {
118
+ return this.evalsStarted ? this.evalWorker.close(budgetMs) : undefined;
119
+ }
120
+ /** Closes the maintenance queue's worker. */
121
+ closeMaintenance() {
122
+ return this.maintenanceProcessor.worker.close();
123
+ }
124
+ };
125
+ WorkerRole = __decorate([
126
+ Injectable(),
127
+ __param(0, Inject(KernelConfigService)),
128
+ __param(1, Inject(KERNEL_LOGGER)),
129
+ __param(2, Inject(LockedIntervalScheduler)),
130
+ __param(3, Inject(ScheduledRuns)),
131
+ __param(4, Inject(RunWorker)),
132
+ __param(5, Inject(EvalWorker)),
133
+ __param(6, Inject(UsageReporter)),
134
+ __param(7, Inject(TitleQueue)),
135
+ __param(8, Inject(ChannelOutbound)),
136
+ __param(9, Inject(RunsProcessor)),
137
+ __param(10, Inject(SubagentRunsProcessor)),
138
+ __param(11, Inject(UsageReportProcessor)),
139
+ __param(12, Inject(TitleProcessor)),
140
+ __param(13, Inject(ChannelsProcessor)),
141
+ __param(14, Inject(EvalsProcessor)),
142
+ __param(15, Inject(MaintenanceProcessor))
143
+ ], WorkerRole);
144
+ export { WorkerRole };
@@ -0,0 +1,14 @@
1
+ import { type DynamicModule } from "@nestjs/common";
2
+ import type { KernelConfig } from "../config/schema.js";
3
+ /**
4
+ * The worker role (nest kernel spec §2), imported by `KernelModule` only when `roles` includes
5
+ * `worker`: the cron scheduler and the `@LockedInterval` scheduler (`KernelScheduleModule`, the one
6
+ * place `ScheduleModule.forRoot` is imported), every fixed-period job (`@LockedCron` /
7
+ * `@LockedInterval`, each once per tick across replicas), every queue consumer (`@Processor`: runs,
8
+ * sub-agent runs, `usage.report`, titles, evals, maintenance, channel deliveries) and
9
+ * {@link WorkerRole}, which `KernelLifecycle` drives. A process without the worker role runs no cron
10
+ * and no BullMQ worker (the queues' producers exist on every role).
11
+ */
12
+ export declare class WorkerModule {
13
+ static forRoot(config: KernelConfig): DynamicModule;
14
+ }
@@ -0,0 +1,90 @@
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 WorkerModule_1;
8
+ import { Module } from "@nestjs/common";
9
+ import { CatalogModule } from "../catalog/catalog.module.js";
10
+ import { CatalogJobs } from "../catalog/jobs.js";
11
+ import { ChannelsModule, ChannelWorkersModule } from "../channels/channels.module.js";
12
+ import { GatewayCheckJob } from "../channels/supervisor.js";
13
+ import { AttachmentsModule } from "../conversations/attachments.module.js";
14
+ import { AttachmentCleanupJob } from "../conversations/attachments.service.js";
15
+ import { TitlesModule } from "../conversations/titles.js";
16
+ import { EvalWorkersModule } from "../evals/evals.module.js";
17
+ import { ExtensionsModule } from "../extensions/extensions.module.js";
18
+ import { PluginsReconcileJob } from "../extensions/lifecycle.js";
19
+ import { KernelScheduleModule } from "../infra/schedule/schedule.module.js";
20
+ import { DirectoryScanJob } from "../orgs/directory-sync.js";
21
+ import { OffboardSweepJob } from "../orgs/offboarding.js";
22
+ import { OrgsModule } from "../orgs/orgs.module.js";
23
+ import { MaintenanceModule } from "../runtime/maintenance.js";
24
+ import { RuntimeWorkersModule } from "../runtime/run-processors.js";
25
+ import { RuntimeModule } from "../runtime/runtime.module.js";
26
+ import { UsageReportModule, UsageSweepJob } from "../runtime/usage-report.js";
27
+ import { WaitSweepJob } from "../runtime/waits.js";
28
+ import { SandboxSweepJobs } from "../sandbox/jobs.js";
29
+ import { SandboxModule } from "../sandbox/sandbox.module.js";
30
+ import { StoragePurgeJob } from "../storage/purge.js";
31
+ import { StorageModule } from "../storage/storage.module.js";
32
+ import { ToolJobs } from "../tools/jobs.js";
33
+ import { ToolsModule } from "../tools/tools.module.js";
34
+ import { WorkerRole } from "./worker-role.js";
35
+ /**
36
+ * The worker role (nest kernel spec §2), imported by `KernelModule` only when `roles` includes
37
+ * `worker`: the cron scheduler and the `@LockedInterval` scheduler (`KernelScheduleModule`, the one
38
+ * place `ScheduleModule.forRoot` is imported), every fixed-period job (`@LockedCron` /
39
+ * `@LockedInterval`, each once per tick across replicas), every queue consumer (`@Processor`: runs,
40
+ * sub-agent runs, `usage.report`, titles, evals, maintenance, channel deliveries) and
41
+ * {@link WorkerRole}, which `KernelLifecycle` drives. A process without the worker role runs no cron
42
+ * and no BullMQ worker (the queues' producers exist on every role).
43
+ */
44
+ let WorkerModule = WorkerModule_1 = class WorkerModule {
45
+ static forRoot(config) {
46
+ return {
47
+ module: WorkerModule_1,
48
+ imports: [
49
+ KernelScheduleModule,
50
+ // the queue consumers (their worker options come from the startup config)
51
+ RuntimeWorkersModule.forRoot(config),
52
+ EvalWorkersModule.forRoot(config),
53
+ ChannelWorkersModule.forRoot(config),
54
+ MaintenanceModule,
55
+ // the domains the fixed-period jobs call
56
+ RuntimeModule,
57
+ UsageReportModule,
58
+ TitlesModule,
59
+ AttachmentsModule,
60
+ StorageModule,
61
+ SandboxModule,
62
+ ToolsModule,
63
+ CatalogModule,
64
+ OrgsModule,
65
+ ExtensionsModule,
66
+ ChannelsModule,
67
+ ],
68
+ providers: [
69
+ WaitSweepJob,
70
+ UsageSweepJob,
71
+ AttachmentCleanupJob,
72
+ StoragePurgeJob,
73
+ SandboxSweepJobs,
74
+ ToolJobs,
75
+ CatalogJobs,
76
+ DirectoryScanJob,
77
+ OffboardSweepJob,
78
+ PluginsReconcileJob,
79
+ GatewayCheckJob,
80
+ WorkerRole,
81
+ ],
82
+ exports: [WorkerRole],
83
+ };
84
+ }
85
+ };
86
+ WorkerModule = WorkerModule_1 = __decorate([
87
+ Module({})
88
+ // biome-ignore lint/complexity/noStaticOnlyClass: a Nest dynamic module
89
+ ], WorkerModule);
90
+ export { WorkerModule };
@@ -1,3 +1,14 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { Inject, Injectable } from "@nestjs/common";
11
+ import { KERNEL_BUS, REDIS } from "../infra/tokens.js";
1
12
  /** 中止广播的内核 bus 主题。 */
2
13
  export const RUN_ABORT_TOPIC = "run.abort";
3
14
  /** 中止标记的保留时长(秒)。 */
@@ -15,7 +26,7 @@ const parseStored = (stored) => {
15
26
  * 跨副本中止(spec 4.3「中止信号经 Redis 广播」):`request` 先写标记键再广播;
16
27
  * `watch` 先订阅、再检查一次标记键,订阅之前发出的中止也不会丢。
17
28
  */
18
- export class RunAbort {
29
+ let RunAbort = class RunAbort {
19
30
  redis;
20
31
  bus;
21
32
  constructor(redis, bus) {
@@ -68,4 +79,10 @@ export class RunAbort {
68
79
  }
69
80
  return unsubscribe;
70
81
  }
71
- }
82
+ };
83
+ RunAbort = __decorate([
84
+ Injectable(),
85
+ __param(0, Inject(REDIS)),
86
+ __param(1, Inject(KERNEL_BUS))
87
+ ], RunAbort);
88
+ export { RunAbort };
@@ -1,6 +1,7 @@
1
1
  import type { RunnableConfig } from "@langchain/core/runnables";
2
2
  import { BaseCheckpointSaver, type ChannelVersions, type Checkpoint, type CheckpointListOptions, type CheckpointMetadata, type CheckpointTuple, type PendingWrite } from "@langchain/langgraph-checkpoint";
3
- import type { KernelDb } from "../db/kernel-schema.js";
3
+ import { KernelDb } from "../infra/database/kernel-db.js";
4
+ import { TransactionHost } from "../infra/database/transaction-host.js";
4
5
  /**
5
6
  * LangGraph checkpoint saver,存在内核 schema 的 `lg_checkpoints` / `lg_checkpoint_writes` 里(0007_checkpoints.sql)。
6
7
  *
@@ -10,12 +11,16 @@ import type { KernelDb } from "../db/kernel-schema.js";
10
11
  * - 所有状态都在 PG 里,不持有进程内状态,任意副本都能续跑。
11
12
  */
12
13
  export declare class KyselyCheckpointSaver extends BaseCheckpointSaver {
13
- private readonly db;
14
- constructor(db: KernelDb);
14
+ private readonly kdb;
15
+ readonly txHost: TransactionHost;
16
+ constructor(kdb: KernelDb, txHost: TransactionHost);
17
+ /** The context's handle (the transaction of a `@Transactional` method, else the pool). */
18
+ private get db();
15
19
  getTuple(config: RunnableConfig): Promise<CheckpointTuple | undefined>;
16
20
  list(config: RunnableConfig, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple>;
17
21
  put(config: RunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata, _newVersions: ChannelVersions): Promise<RunnableConfig>;
18
22
  putWrites(config: RunnableConfig, writes: PendingWrite[], taskId: string, taskPath?: string): Promise<void>;
23
+ private insertWrites;
19
24
  deleteThread(threadId: string): Promise<void>;
20
25
  /**
21
26
  * 一轮运行结束后调用:根命名空间(`checkpoint_ns = ''`)下只保留最新一个 checkpoint 及其 writes,
@@ -1,5 +1,18 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
1
10
  import { BaseCheckpointSaver, compareWritesSortKeys, copyCheckpoint, getCheckpointId, maxChannelVersion, TASKS, WRITES_IDX_MAP, writesSortKey, } from "@langchain/langgraph-checkpoint";
11
+ import { Inject, Injectable } from "@nestjs/common";
2
12
  import { sql } from "kysely";
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";
3
16
  const CHECKPOINT_COLUMNS = [
4
17
  "thread_id",
5
18
  "checkpoint_ns",
@@ -20,11 +33,17 @@ const idC = sql `checkpoint_id collate "C"`;
20
33
  * - thread_id 约定为 runId。
21
34
  * - 所有状态都在 PG 里,不持有进程内状态,任意副本都能续跑。
22
35
  */
23
- export class KyselyCheckpointSaver extends BaseCheckpointSaver {
24
- db;
25
- constructor(db) {
36
+ let KyselyCheckpointSaver = class KyselyCheckpointSaver extends BaseCheckpointSaver {
37
+ kdb;
38
+ txHost;
39
+ constructor(kdb, txHost) {
26
40
  super();
27
- this.db = db;
41
+ this.kdb = kdb;
42
+ this.txHost = txHost;
43
+ }
44
+ /** The context's handle (the transaction of a `@Transactional` method, else the pool). */
45
+ get db() {
46
+ return this.kdb.db;
28
47
  }
29
48
  async getTuple(config) {
30
49
  const threadId = config.configurable?.thread_id;
@@ -130,34 +149,33 @@ export class KyselyCheckpointSaver extends BaseCheckpointSaver {
130
149
  // 特殊 channel(错误、中断等,idx < 0)以最后一次为准;普通 write 已存在则保留先写入的。
131
150
  const special = rows.filter((r) => r.idx < 0);
132
151
  const regular = rows.filter((r) => r.idx >= 0);
152
+ await this.insertWrites(regular, special);
153
+ }
154
+ async insertWrites(regular, special) {
133
155
  const key = ["thread_id", "checkpoint_ns", "checkpoint_id", "task_id", "idx"];
134
- await this.db.transaction().execute(async (trx) => {
135
- if (regular.length > 0) {
136
- await trx
137
- .insertInto("lg_checkpoint_writes")
138
- .values(regular)
139
- .onConflict((oc) => oc.columns(key).doNothing())
140
- .execute();
141
- }
142
- if (special.length > 0) {
143
- await trx
144
- .insertInto("lg_checkpoint_writes")
145
- .values(special)
146
- .onConflict((oc) => oc.columns(key).doUpdateSet((eb) => ({
147
- channel: eb.ref("excluded.channel"),
148
- value_type: eb.ref("excluded.value_type"),
149
- value: eb.ref("excluded.value"),
150
- task_path: eb.ref("excluded.task_path"),
151
- })))
152
- .execute();
153
- }
154
- });
156
+ if (regular.length > 0) {
157
+ await this.db
158
+ .insertInto("lg_checkpoint_writes")
159
+ .values(regular)
160
+ .onConflict((oc) => oc.columns(key).doNothing())
161
+ .execute();
162
+ }
163
+ if (special.length > 0) {
164
+ await this.db
165
+ .insertInto("lg_checkpoint_writes")
166
+ .values(special)
167
+ .onConflict((oc) => oc.columns(key).doUpdateSet((eb) => ({
168
+ channel: eb.ref("excluded.channel"),
169
+ value_type: eb.ref("excluded.value_type"),
170
+ value: eb.ref("excluded.value"),
171
+ task_path: eb.ref("excluded.task_path"),
172
+ })))
173
+ .execute();
174
+ }
155
175
  }
156
176
  async deleteThread(threadId) {
157
- await this.db.transaction().execute(async (trx) => {
158
- await trx.deleteFrom("lg_checkpoint_writes").where("thread_id", "=", threadId).execute();
159
- await trx.deleteFrom("lg_checkpoints").where("thread_id", "=", threadId).execute();
160
- });
177
+ await this.db.deleteFrom("lg_checkpoint_writes").where("thread_id", "=", threadId).execute();
178
+ await this.db.deleteFrom("lg_checkpoints").where("thread_id", "=", threadId).execute();
161
179
  }
162
180
  /**
163
181
  * 一轮运行结束后调用:根命名空间(`checkpoint_ns = ''`)下只保留最新一个 checkpoint 及其 writes,
@@ -166,31 +184,30 @@ export class KyselyCheckpointSaver extends BaseCheckpointSaver {
166
184
  * 保留下来的 checkpoint 的 parent_checkpoint_id 原样保留(父 checkpoint 已不存在)。
167
185
  */
168
186
  async pruneToLatest(threadId) {
169
- return this.db.transaction().execute(async (trx) => {
170
- const latest = await trx
171
- .selectFrom("lg_checkpoints")
172
- .select("checkpoint_id")
173
- .where("thread_id", "=", threadId)
174
- .where("checkpoint_ns", "=", "")
175
- .orderBy(sql `${idC} desc`)
176
- .limit(1)
177
- .executeTakeFirst();
178
- if (!latest)
179
- return 0;
180
- await trx
181
- .deleteFrom("lg_checkpoint_writes")
182
- .where("thread_id", "=", threadId)
183
- .where("checkpoint_ns", "=", "")
184
- .where(idC, "<", latest.checkpoint_id)
185
- .execute();
186
- const res = await trx
187
- .deleteFrom("lg_checkpoints")
188
- .where("thread_id", "=", threadId)
189
- .where("checkpoint_ns", "=", "")
190
- .where(idC, "<", latest.checkpoint_id)
191
- .executeTakeFirst();
192
- return Number(res.numDeletedRows);
193
- });
187
+ const db = this.db;
188
+ const latest = await db
189
+ .selectFrom("lg_checkpoints")
190
+ .select("checkpoint_id")
191
+ .where("thread_id", "=", threadId)
192
+ .where("checkpoint_ns", "=", "")
193
+ .orderBy(sql `${idC} desc`)
194
+ .limit(1)
195
+ .executeTakeFirst();
196
+ if (!latest)
197
+ return 0;
198
+ await db
199
+ .deleteFrom("lg_checkpoint_writes")
200
+ .where("thread_id", "=", threadId)
201
+ .where("checkpoint_ns", "=", "")
202
+ .where(idC, "<", latest.checkpoint_id)
203
+ .execute();
204
+ const res = await db
205
+ .deleteFrom("lg_checkpoints")
206
+ .where("thread_id", "=", threadId)
207
+ .where("checkpoint_ns", "=", "")
208
+ .where(idC, "<", latest.checkpoint_id)
209
+ .executeTakeFirst();
210
+ return Number(res.numDeletedRows);
194
211
  }
195
212
  async toTuple(row, metadata) {
196
213
  const { thread_id, checkpoint_ns, checkpoint_id, parent_checkpoint_id } = row;
@@ -240,4 +257,19 @@ export class KyselyCheckpointSaver extends BaseCheckpointSaver {
240
257
  checkpoint.channel_versions[TASKS] =
241
258
  versions.length > 0 ? maxChannelVersion(...versions) : this.getNextVersion(undefined);
242
259
  }
243
- }
260
+ };
261
+ __decorate([
262
+ Transactional({ propagation: "requires_new" })
263
+ ], KyselyCheckpointSaver.prototype, "insertWrites", null);
264
+ __decorate([
265
+ Transactional({ propagation: "requires_new" })
266
+ ], KyselyCheckpointSaver.prototype, "deleteThread", null);
267
+ __decorate([
268
+ Transactional({ propagation: "requires_new" })
269
+ ], KyselyCheckpointSaver.prototype, "pruneToLatest", null);
270
+ KyselyCheckpointSaver = __decorate([
271
+ Injectable(),
272
+ __param(0, Inject(KernelDb)),
273
+ __param(1, Inject(TransactionHost))
274
+ ], KyselyCheckpointSaver);
275
+ export { KyselyCheckpointSaver };
@@ -1,12 +1,11 @@
1
- import type { Logger } from "@capybara-hq/plugin-sdk";
2
- import type { Redis } from "ioredis";
1
+ import { LockService } from "../infra/lock/lock.service.js";
3
2
  /** 会话运行锁的默认 TTL(毫秒):持有方每 `ttlMs / 3` 续租一次。 */
4
3
  export declare const CONVERSATION_LOCK_TTL_MS = 30000;
5
4
  /** 本进程持有的会话运行锁。 */
6
5
  export interface Lease {
7
6
  readonly conversationId: string;
8
7
  readonly runId: string;
9
- /** 续租时发现锁已不属于自己(过期后被他人取得);此后不再续租。 */
8
+ /** 续租时发现锁已不属于自己(过期后被他人取得,或续租一直失败到过期);此后不再续租。 */
10
9
  readonly lost: boolean;
11
10
  /** 立即续租一次;锁已不属于自己 → false(并标记 lost)。 */
12
11
  renew(): Promise<boolean>;
@@ -18,16 +17,17 @@ export interface Lease {
18
17
  onLost(cb: () => void): void;
19
18
  }
20
19
  /**
21
- * 会话级运行锁(spec 4.3「同一会话同一时刻只跑一轮」):Redis 键 `capk:conv-run:<id>`,值为 runId,
22
- * 带 TTL;持有期间由本进程的定时器每 `ttlMs / 3` 续租(本进程持有的锁的续租,允许的进程内定时器)。
23
- * 持有方崩溃时停止续租,锁在 TTL 后过期,其他副本可以取得。
20
+ * A per-conversation lease on {@link LockService.hold}: key `<prefix><conversationId>`, value the
21
+ * holder's run id (other replicas read it with {@link holder}), renewed every TTL/3 by the lock
22
+ * service while held; a crashed holder's key expires within the TTL and another replica can take
23
+ * it. Built by {@link ConversationLock} (the run lock) and its {@link ConversationLock.scoped}
24
+ * views (the same lock for another purpose, e.g. the channel delivery `capk:channel-deliver:`).
25
+ * A loss is logged once, by the lock service (`lock lost`, with the key).
24
26
  */
25
- export declare class ConversationLock {
26
- private readonly redis;
27
- private readonly log?;
27
+ export declare class ConversationLeases {
28
+ protected readonly locks: LockService;
28
29
  private readonly keyPrefix;
29
- /** `keyPrefix`:同样语义、按会话互斥的其他用途用别的前缀(如渠道出站投递 `capk:channel-deliver:`)。 */
30
- constructor(redis: Redis, log?: Pick<Logger, "warn"> | undefined, keyPrefix?: string);
30
+ constructor(locks: LockService, keyPrefix: string);
31
31
  private lockKey;
32
32
  acquire(conversationId: string, runId: string, ttlMs?: number): Promise<Lease | null>;
33
33
  /**
@@ -38,3 +38,12 @@ export declare class ConversationLock {
38
38
  /** 当前持有者的 runId;无人持有 → null。 */
39
39
  holder(conversationId: string): Promise<string | null>;
40
40
  }
41
+ /**
42
+ * 会话级运行锁(spec 4.3「同一会话同一时刻只跑一轮」):Redis 键 `capk:conv-run:<id>`,值为 runId,
43
+ * 带 TTL,由 {@link LockService} 每 TTL/3 续租。持有方崩溃时停止续租,锁在 TTL 后过期,其他副本可以取得。
44
+ */
45
+ export declare class ConversationLock extends ConversationLeases {
46
+ constructor(locks: LockService);
47
+ /** The same per-conversation lease under another key prefix (another purpose). */
48
+ scoped(keyPrefix: string): ConversationLeases;
49
+ }