@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,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
+ }