@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
@@ -7,12 +7,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
- import { Body, Controller, Get, Inject, Patch } from "@nestjs/common";
11
- import { ORG_SETTINGS } from "../http/tokens.js";
12
- import { ZodPipe } from "../http/zod.pipe.js";
10
+ import { Controller, Get, Inject, Patch } from "@nestjs/common";
13
11
  import { CurrentPrincipal, patTokenId, requireUser, } from "../identity/principal.js";
12
+ import { createZodDto } from "../infra/validation/create-zod-dto.js";
13
+ import { ZBody } from "../infra/validation/zod-params.js";
14
14
  import { CurrentOrg, OrgAction } from "./org.guard.js";
15
- import { OrgSettingsPatchSchema, } from "./settings.service.js";
15
+ import { OrgSettingsPatchSchema, OrgSettingsService, } from "./settings.service.js";
16
+ class OrgSettingsPatchBody extends createZodDto(OrgSettingsPatchSchema, "OrgSettingsPatch") {
17
+ }
16
18
  let OrgSettingsController = class OrgSettingsController {
17
19
  settings;
18
20
  constructor(settings) {
@@ -44,10 +46,10 @@ __decorate([
44
46
  OrgAction("org.update"),
45
47
  __param(0, CurrentPrincipal()),
46
48
  __param(1, CurrentOrg()),
47
- __param(2, Body(new ZodPipe(OrgSettingsPatchSchema)))
49
+ __param(2, ZBody(OrgSettingsPatchBody))
48
50
  ], OrgSettingsController.prototype, "update", null);
49
51
  OrgSettingsController = __decorate([
50
52
  Controller("api/v1/orgs/:orgId/settings"),
51
- __param(0, Inject(ORG_SETTINGS))
53
+ __param(0, Inject(OrgSettingsService))
52
54
  ], OrgSettingsController);
53
55
  export { OrgSettingsController };
@@ -1,7 +1,10 @@
1
1
  import { type SandboxLimits } from "@capybara-hq/plugin-sdk";
2
2
  import { z } from "zod";
3
- import type { KernelConfig } from "../config/schema.js";
4
- import type { KernelDb } from "../db/kernel-schema.js";
3
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
4
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
5
+ import { KernelDb } from "../infra/database/kernel-db.js";
6
+ import { TransactionHost } from "../infra/database/transaction-host.js";
7
+ import { OrgLock } from "./org-lock.js";
5
8
  /**
6
9
  * 组织设置(`capybara.orgs.settings` jsonb)。读取宽松:缺失或非法的字段按默认值,未知键保留不动
7
10
  * (更新时与存量合并),新版本加字段不需要迁移。
@@ -102,19 +105,22 @@ export interface OrgSettingsDeployment {
102
105
  /** 把存储的 jsonb 解析为设置(宽松,见 {@link OrgSettingsSchema})。 */
103
106
  export declare function parseOrgSettings(raw: unknown): OrgSettings;
104
107
  /** 读组织设置(每次实时读 PG,多副本下改动立即生效);组织不存在或已删除按默认值。 */
105
- export declare function readOrgSettings(db: KernelDb, orgId: string): Promise<OrgSettings>;
108
+ export declare function readOrgSettings(db: KernelSchemaDb, orgId: string): Promise<OrgSettings>;
106
109
  /** 组织设置服务:读取与修改(修改需 `org.update`,锁内实时复核角色,写审计)。 */
107
110
  export declare class OrgSettingsService {
108
111
  private readonly db;
109
- /** 部署配置(校验 `sandboxEgress` 不超出部署);省略视为部署出站 `allowlist` + 空白名单。 */
110
- private readonly config?;
111
- constructor(db: KernelDb,
112
- /** 部署配置(校验 `sandboxEgress` 不超出部署);省略视为部署出站 `allowlist` + 空白名单。 */
113
- config?: (() => Pick<KernelConfig, "sandbox">) | undefined);
112
+ readonly txHost: TransactionHost;
113
+ private readonly orgLock;
114
+ /** The deployment config (`sandboxEgress` may not exceed the deployment's). */
115
+ private readonly config;
116
+ constructor(db: KernelDb, txHost: TransactionHost, orgLock: OrgLock,
117
+ /** The deployment config (`sandboxEgress` may not exceed the deployment's). */
118
+ config: Pick<KernelConfigService, "get">);
114
119
  /** 部署默认值(设置页展示「跟随部署」时的实际取值)。 */
115
120
  deployment(): OrgSettingsDeployment;
116
121
  /** 组织实际生效的沙箱 cpu / 内存(只读;由企业管理员在部署设置里覆盖)。 */
117
122
  sandboxLimits(orgId: string): Promise<OrgSandboxLimits>;
118
123
  get(orgId: string): Promise<OrgSettings>;
119
124
  update(orgId: string, patch: OrgSettingsPatch, actorAccountId: string, actorTokenId?: string): Promise<OrgSettings>;
125
+ private updateIn;
120
126
  }
@@ -1,9 +1,23 @@
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 { validateAllowHost } from "@capybara-hq/plugin-sdk";
11
+ import { Inject, Injectable } from "@nestjs/common";
2
12
  import { z } from "zod";
3
13
  import { ApiError } from "../errors.js";
4
14
  import { audit } from "../identity/audit.js";
5
15
  import { readSandboxLimitOverride } from "../identity/settings.js";
6
- import { lockOrgAndAuthorize } from "./org-lock.js";
16
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
17
+ import { KernelDb } from "../infra/database/kernel-db.js";
18
+ import { TransactionHost } from "../infra/database/transaction-host.js";
19
+ import { Transactional } from "../infra/database/transactional.decorator.js";
20
+ import { OrgLock } from "./org-lock.js";
7
21
  /**
8
22
  * 组织设置(`capybara.orgs.settings` jsonb)。读取宽松:缺失或非法的字段按默认值,未知键保留不动
9
23
  * (更新时与存量合并),新版本加字段不需要迁移。
@@ -96,30 +110,33 @@ export async function readOrgSettings(db, orgId) {
96
110
  return parseOrgSettings(row?.settings);
97
111
  }
98
112
  /** 组织设置服务:读取与修改(修改需 `org.update`,锁内实时复核角色,写审计)。 */
99
- export class OrgSettingsService {
113
+ let OrgSettingsService = class OrgSettingsService {
100
114
  db;
115
+ txHost;
116
+ orgLock;
101
117
  config;
102
- constructor(db,
103
- /** 部署配置(校验 `sandboxEgress` 不超出部署);省略视为部署出站 `allowlist` + 空白名单。 */
118
+ constructor(db, txHost, orgLock,
119
+ /** The deployment config (`sandboxEgress` may not exceed the deployment's). */
104
120
  config) {
105
121
  this.db = db;
122
+ this.txHost = txHost;
123
+ this.orgLock = orgLock;
106
124
  this.config = config;
107
125
  }
108
126
  /** 部署默认值(设置页展示「跟随部署」时的实际取值)。 */
109
127
  deployment() {
110
- const lim = this.config?.().sandbox.limits;
128
+ const lim = this.config.get().sandbox.limits;
111
129
  return {
112
- sandboxEgress: { mode: lim?.egress ?? "allowlist", allowHosts: [...(lim?.allowHosts ?? [])] },
130
+ sandboxEgress: { mode: lim.egress, allowHosts: [...lim.allowHosts] },
113
131
  };
114
132
  }
115
133
  /** 组织实际生效的沙箱 cpu / 内存(只读;由企业管理员在部署设置里覆盖)。 */
116
134
  async sandboxLimits(orgId) {
117
- const lim = this.config?.().sandbox.limits;
118
- const override = await readSandboxLimitOverride(this.db, orgId);
135
+ const lim = this.config.get().sandbox.limits;
136
+ const override = await readSandboxLimitOverride(this.db.db, orgId);
119
137
  return {
120
- // 没有部署配置(测试构造)时用 schema 默认值 1 核 / 2048 MiB
121
- cpu: override?.cpu ?? lim?.cpu ?? 1,
122
- memoryMb: override?.memoryMb ?? lim?.memoryMb ?? 2048,
138
+ cpu: override?.cpu ?? lim.cpu,
139
+ memoryMb: override?.memoryMb ?? lim.memoryMb,
123
140
  source: override === undefined ? "deployment" : "override",
124
141
  };
125
142
  }
@@ -139,40 +156,52 @@ export class OrgSettingsService {
139
156
  this.deployment().sandboxEgress.mode === "none") {
140
157
  throw new ApiError("org.sandbox_egress_not_allowed", "This deployment disables sandbox network access (sandbox.limits.egress is none); an organization can only set sandboxEgress to none");
141
158
  }
142
- return this.db.transaction().execute(async (trx) => {
143
- await lockOrgAndAuthorize(trx, orgId, actorAccountId, "org.update");
144
- const row = await trx
145
- .selectFrom("orgs")
146
- .select("settings")
147
- .where("id", "=", orgId)
148
- .executeTakeFirstOrThrow();
149
- const stored = asObject(row.settings);
150
- const before = parseOrgSettings(stored);
151
- const changes = Object.fromEntries(Object.entries(patch)
152
- .filter(([, v]) => v !== undefined)
153
- // null 清除 sandboxEgress:恢复跟随部署默认
154
- .map(([k, v]) => [k, v === null ? undefined : v]));
155
- const after = { ...before, ...changes };
156
- if (after.sandboxEgress === undefined)
157
- delete after.sandboxEgress;
158
- if (sameSettings(before, after))
159
- return before;
160
- // 与存量合并:保留本版本不认识的键(清除的 sandboxEgress 不留在存量里)
161
- const { sandboxEgress: _old, ...rest } = stored;
162
- await trx
163
- .updateTable("orgs")
164
- .set({ settings: JSON.stringify({ ...rest, ...after }) })
165
- .where("id", "=", orgId)
166
- .execute();
167
- await audit(trx, {
168
- actorAccountId,
169
- ...(actorTokenId !== undefined && { actorTokenId }),
170
- orgId,
171
- action: "org.settings_updated",
172
- target: orgId,
173
- detail: { before, after },
174
- });
175
- return after;
159
+ return this.updateIn(orgId, patch, actorAccountId, actorTokenId);
160
+ }
161
+ async updateIn(orgId, patch, actorAccountId, actorTokenId) {
162
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "org.update");
163
+ const row = await this.db
164
+ .selectFrom("orgs")
165
+ .select("settings")
166
+ .where("id", "=", orgId)
167
+ .executeTakeFirstOrThrow();
168
+ const stored = asObject(row.settings);
169
+ const before = parseOrgSettings(stored);
170
+ const changes = Object.fromEntries(Object.entries(patch)
171
+ .filter(([, v]) => v !== undefined)
172
+ // null 清除 sandboxEgress:恢复跟随部署默认
173
+ .map(([k, v]) => [k, v === null ? undefined : v]));
174
+ const after = { ...before, ...changes };
175
+ if (after.sandboxEgress === undefined)
176
+ delete after.sandboxEgress;
177
+ if (sameSettings(before, after))
178
+ return before;
179
+ // 与存量合并:保留本版本不认识的键(清除的 sandboxEgress 不留在存量里)
180
+ const { sandboxEgress: _old, ...rest } = stored;
181
+ await this.db
182
+ .updateTable("orgs")
183
+ .set({ settings: JSON.stringify({ ...rest, ...after }) })
184
+ .where("id", "=", orgId)
185
+ .execute();
186
+ await audit(this.db.db, {
187
+ actorAccountId,
188
+ ...(actorTokenId !== undefined && { actorTokenId }),
189
+ orgId,
190
+ action: "org.settings_updated",
191
+ target: orgId,
192
+ detail: { before, after },
176
193
  });
194
+ return after;
177
195
  }
178
- }
196
+ };
197
+ __decorate([
198
+ Transactional()
199
+ ], OrgSettingsService.prototype, "updateIn", null);
200
+ OrgSettingsService = __decorate([
201
+ Injectable(),
202
+ __param(0, Inject(KernelDb)),
203
+ __param(1, Inject(TransactionHost)),
204
+ __param(2, Inject(OrgLock)),
205
+ __param(3, Inject(KernelConfigService))
206
+ ], OrgSettingsService);
207
+ export { OrgSettingsService };
@@ -0,0 +1,56 @@
1
+ import type { NestInterceptor } from "@nestjs/common";
2
+ import { APP_INTERCEPTOR } from "@nestjs/core";
3
+ import { CHANNEL_WEBHOOK_TIMINGS, type ChannelWebhookTimings } from "./channels/webhook.js";
4
+ import type { EvalReplayHooks } from "./evals/run-replay.js";
5
+ import { EVAL_REPLAY_HOOKS } from "./evals/worker.js";
6
+ import { BOOTSTRAP_LOCK_TTL } from "./extensions/bootstrap.js";
7
+ import { FILE_PREVIEW_TIMEOUT } from "./files/previewers.js";
8
+ import { LIST_MODELS_TIMEOUT } from "./runtime/providers.js";
9
+ import { AGENT_LOOP_FACTORY, type AgentLoopFactory } from "./runtime/run-steps.js";
10
+ import { RUN_HOOKS, type RunHooks } from "./runtime/run-worker.js";
11
+ import { USAGE_REPORT_RETRY, type UsageReportRetry } from "./runtime/usage-report.js";
12
+ import { SANDBOX_LEASE_TIMINGS, type SandboxLeaseTimings } from "./sandbox/leases.js";
13
+ import { TOOL_PIPELINE_HOOKS, type ToolPipelineHooks } from "./tools/pipeline.js";
14
+ import { EMBED_TOKEN_CLOCK } from "./ui/embed-token.js";
15
+ /**
16
+ * The value each seam token takes. Every token is an optional provider the kernel itself never
17
+ * provides (its consumer falls back to the production default):
18
+ *
19
+ * - `AGENT_LOOP_FACTORY`: the agent loop runs execute (default the LangGraph loop);
20
+ * - `RUN_HOOKS`: the run worker's hooks;
21
+ * - `EVAL_REPLAY_HOOKS`: the hooks of the eval full-run replay and the judge;
22
+ * - `TOOL_PIPELINE_HOOKS`: the tool pipeline's hooks and policy decision;
23
+ * - `BOOTSTRAP_LOCK_TTL`, `FILE_PREVIEW_TIMEOUT`, `LIST_MODELS_TIMEOUT`, `USAGE_REPORT_RETRY`,
24
+ * `SANDBOX_LEASE_TIMINGS`, `CHANNEL_WEBHOOK_TIMINGS`: shorter timings;
25
+ * - `EMBED_TOKEN_CLOCK`: the clock embed tokens are issued and checked with;
26
+ * - `APP_INTERCEPTOR`: one more global interceptor (a probe of the matched routes).
27
+ */
28
+ interface KernelSeams {
29
+ [AGENT_LOOP_FACTORY]: AgentLoopFactory;
30
+ [RUN_HOOKS]: RunHooks;
31
+ [EVAL_REPLAY_HOOKS]: EvalReplayHooks;
32
+ [TOOL_PIPELINE_HOOKS]: ToolPipelineHooks;
33
+ [BOOTSTRAP_LOCK_TTL]: number;
34
+ [FILE_PREVIEW_TIMEOUT]: number;
35
+ [LIST_MODELS_TIMEOUT]: number;
36
+ [USAGE_REPORT_RETRY]: UsageReportRetry;
37
+ [SANDBOX_LEASE_TIMINGS]: Partial<SandboxLeaseTimings>;
38
+ [CHANNEL_WEBHOOK_TIMINGS]: Partial<ChannelWebhookTimings>;
39
+ [EMBED_TOKEN_CLOCK]: () => number;
40
+ [APP_INTERCEPTOR]: NestInterceptor;
41
+ }
42
+ /**
43
+ * A seam of the kernel's own tests (`KernelAppOptions.overrides`): a value for one of the named
44
+ * seam tokens of {@link KernelSeams}. Domain classes cannot be replaced this way. The tokens are
45
+ * not exported from the package, and `@capybara-hq/testing`'s `startTestKernel` takes no
46
+ * overrides (decision R22 of the Nest kernel spec).
47
+ */
48
+ export type KernelOverride = {
49
+ [K in keyof KernelSeams]: {
50
+ provide: K;
51
+ useValue: KernelSeams[K];
52
+ };
53
+ }[keyof KernelSeams];
54
+ /** The tokens {@link KernelOverride} may name; any other token is refused when the application is built. */
55
+ export declare const KERNEL_OVERRIDE_TOKENS: ReadonlySet<unknown>;
56
+ export {};
@@ -0,0 +1,30 @@
1
+ import { APP_INTERCEPTOR } from "@nestjs/core";
2
+ import { CHANNEL_WEBHOOK_TIMINGS } from "./channels/webhook.js";
3
+ import { EVAL_REPLAY_HOOKS } from "./evals/worker.js";
4
+ import { BOOTSTRAP_LOCK_TTL } from "./extensions/bootstrap.js";
5
+ import { FILE_PREVIEW_TIMEOUT } from "./files/previewers.js";
6
+ import { LIST_MODELS_TIMEOUT } from "./runtime/providers.js";
7
+ import { AGENT_LOOP_FACTORY } from "./runtime/run-steps.js";
8
+ import { RUN_HOOKS } from "./runtime/run-worker.js";
9
+ import { USAGE_REPORT_RETRY } from "./runtime/usage-report.js";
10
+ import { SANDBOX_LEASE_TIMINGS } from "./sandbox/leases.js";
11
+ import { TOOL_PIPELINE_HOOKS } from "./tools/pipeline.js";
12
+ import { EMBED_TOKEN_CLOCK } from "./ui/embed-token.js";
13
+ const SEAM_TOKENS = [
14
+ AGENT_LOOP_FACTORY,
15
+ RUN_HOOKS,
16
+ EVAL_REPLAY_HOOKS,
17
+ TOOL_PIPELINE_HOOKS,
18
+ BOOTSTRAP_LOCK_TTL,
19
+ FILE_PREVIEW_TIMEOUT,
20
+ LIST_MODELS_TIMEOUT,
21
+ USAGE_REPORT_RETRY,
22
+ SANDBOX_LEASE_TIMINGS,
23
+ CHANNEL_WEBHOOK_TIMINGS,
24
+ EMBED_TOKEN_CLOCK,
25
+ APP_INTERCEPTOR,
26
+ ];
27
+ const allSeamsListed = true;
28
+ void allSeamsListed;
29
+ /** The tokens {@link KernelOverride} may name; any other token is refused when the application is built. */
30
+ export const KERNEL_OVERRIDE_TOKENS = new Set(SEAM_TOKENS);
@@ -0,0 +1,43 @@
1
+ import type { ExtensionContext } from "@capybara-hq/plugin-sdk";
2
+ import { ChannelSupervisor } from "../channels/supervisor.js";
3
+ import { ChannelWebhooks } from "../channels/webhook.js";
4
+ import { ExtensionHost } from "../extensions/host.js";
5
+ import type { GatewayRoutes } from "../http/gateway-routes.js";
6
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
7
+ /**
8
+ * The gateway role's parts, driven by `KernelLifecycle` at fixed points of its start order and
9
+ * stop phases: the channel long-connection supervisor (leader election and share) and the webhook
10
+ * inbound (its raw Fastify route, {@link routes}, and its runtime cache's invalidation). Provided
11
+ * only by `GatewayModule`, so a process without the gateway role has none of them.
12
+ */
13
+ export declare class GatewayRole {
14
+ private readonly config;
15
+ private readonly host;
16
+ private readonly bus;
17
+ private readonly supervisor;
18
+ private readonly webhooks;
19
+ /** The supervisor's subscription to extension instance changes. */
20
+ private unwatchPlugins;
21
+ private unwatchWebhooks;
22
+ /** The webhook cache's `channel.changed` subscription (a field: a test replaces it). */
23
+ private unsubscribeWebhooks;
24
+ /** The supervisor was started: the runs phase stops it. */
25
+ private supervisorStarted;
26
+ constructor(config: KernelConfigService, host: ExtensionHost, bus: Pick<ExtensionContext["bus"], "subscribe">, supervisor: ChannelSupervisor, webhooks: ChannelWebhooks);
27
+ /** The gateway role's HTTP routes (the channel webhook), registered when the app is built. */
28
+ routes(): GatewayRoutes;
29
+ /**
30
+ * Starts the supervisor and the webhook cache invalidation (after the extension load).
31
+ * `checkpoint` throws when a stop began meanwhile.
32
+ */
33
+ start(checkpoint: () => void): Promise<void>;
34
+ /** Stops watching extension instance changes (the stop's first step). */
35
+ unwatch(): void;
36
+ /** Ends the webhook cache's `channel.changed` subscription. */
37
+ unsubscribe(): Promise<void>;
38
+ /**
39
+ * The runs phase: the supervisor aborts its connects and hands back its leases (undefined: never
40
+ * started).
41
+ */
42
+ stopSupervisor(): Promise<void> | undefined;
43
+ }
@@ -0,0 +1,98 @@
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 { CHANNEL_CHANGED_TOPIC } from "../channels/connections.service.js";
12
+ import { ChannelSupervisor } from "../channels/supervisor.js";
13
+ import { ChannelWebhooks } from "../channels/webhook.js";
14
+ import { ExtensionHost } from "../extensions/host.js";
15
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
16
+ import { KERNEL_BUS } from "../infra/tokens.js";
17
+ /**
18
+ * The gateway role's parts, driven by `KernelLifecycle` at fixed points of its start order and
19
+ * stop phases: the channel long-connection supervisor (leader election and share) and the webhook
20
+ * inbound (its raw Fastify route, {@link routes}, and its runtime cache's invalidation). Provided
21
+ * only by `GatewayModule`, so a process without the gateway role has none of them.
22
+ */
23
+ let GatewayRole = class GatewayRole {
24
+ config;
25
+ host;
26
+ bus;
27
+ supervisor;
28
+ webhooks;
29
+ /** The supervisor's subscription to extension instance changes. */
30
+ unwatchPlugins;
31
+ unwatchWebhooks;
32
+ /** The webhook cache's `channel.changed` subscription (a field: a test replaces it). */
33
+ unsubscribeWebhooks;
34
+ /** The supervisor was started: the runs phase stops it. */
35
+ supervisorStarted = false;
36
+ constructor(config, host, bus, supervisor, webhooks) {
37
+ this.config = config;
38
+ this.host = host;
39
+ this.bus = bus;
40
+ this.supervisor = supervisor;
41
+ this.webhooks = webhooks;
42
+ }
43
+ /** The gateway role's HTTP routes (the channel webhook), registered when the app is built. */
44
+ routes() {
45
+ return {
46
+ webhooks: this.webhooks,
47
+ webhookMaxBodyBytes: this.config.get().channels.webhookMaxBodyBytes,
48
+ };
49
+ }
50
+ /**
51
+ * Starts the supervisor and the webhook cache invalidation (after the extension load).
52
+ * `checkpoint` throws when a stop began meanwhile.
53
+ */
54
+ async start(checkpoint) {
55
+ const supervisor = this.supervisor;
56
+ this.supervisorStarted = true;
57
+ await supervisor.start();
58
+ // An extension instance revoked or replaced: hand back the long connections it holds and
59
+ // elect again on the new instance (C17)
60
+ this.unwatchPlugins = this.host.onChange((plugin) => supervisor.pluginChanged(plugin));
61
+ checkpoint();
62
+ // The webhook runtime cache is read-through only: drop entries on every connection change and
63
+ // whenever a plugin instance changes
64
+ const webhooks = this.webhooks;
65
+ this.unsubscribeWebhooks = await this.bus.subscribe(CHANNEL_CHANGED_TOPIC, (payload) => {
66
+ const id = payload?.connectionId;
67
+ if (typeof id === "string")
68
+ webhooks.invalidate(id);
69
+ });
70
+ this.unwatchWebhooks = this.host.onChange(() => webhooks.invalidateAll());
71
+ checkpoint();
72
+ }
73
+ /** Stops watching extension instance changes (the stop's first step). */
74
+ unwatch() {
75
+ this.unwatchPlugins?.();
76
+ this.unwatchWebhooks?.();
77
+ }
78
+ /** Ends the webhook cache's `channel.changed` subscription. */
79
+ unsubscribe() {
80
+ return this.unsubscribeWebhooks?.() ?? Promise.resolve();
81
+ }
82
+ /**
83
+ * The runs phase: the supervisor aborts its connects and hands back its leases (undefined: never
84
+ * started).
85
+ */
86
+ stopSupervisor() {
87
+ return this.supervisorStarted ? this.supervisor.stop() : undefined;
88
+ }
89
+ };
90
+ GatewayRole = __decorate([
91
+ Injectable(),
92
+ __param(0, Inject(KernelConfigService)),
93
+ __param(1, Inject(ExtensionHost)),
94
+ __param(2, Inject(KERNEL_BUS)),
95
+ __param(3, Inject(ChannelSupervisor)),
96
+ __param(4, Inject(ChannelWebhooks))
97
+ ], GatewayRole);
98
+ export { GatewayRole };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The gateway role (nest kernel spec §2), imported by `KernelModule` only when `roles` includes
3
+ * `gateway`: the channel long-connection supervisor, the webhook inbound (served as a raw Fastify
4
+ * route, `http/gateway-routes.ts`) and {@link GatewayRole}, which `KernelLifecycle` drives. It runs
5
+ * no cron and no queue consumer (those are the worker role's).
6
+ */
7
+ export declare class GatewayModule {
8
+ }
@@ -0,0 +1,28 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Module } from "@nestjs/common";
8
+ import { ChannelsModule } from "../channels/channels.module.js";
9
+ import { ChannelSupervisor } from "../channels/supervisor.js";
10
+ import { ChannelWebhooks } from "../channels/webhook.js";
11
+ import { ExtensionsModule } from "../extensions/extensions.module.js";
12
+ import { GatewayRole } from "./gateway-role.js";
13
+ /**
14
+ * The gateway role (nest kernel spec §2), imported by `KernelModule` only when `roles` includes
15
+ * `gateway`: the channel long-connection supervisor, the webhook inbound (served as a raw Fastify
16
+ * route, `http/gateway-routes.ts`) and {@link GatewayRole}, which `KernelLifecycle` drives. It runs
17
+ * no cron and no queue consumer (those are the worker role's).
18
+ */
19
+ let GatewayModule = class GatewayModule {
20
+ };
21
+ GatewayModule = __decorate([
22
+ Module({
23
+ imports: [ChannelsModule, ExtensionsModule],
24
+ providers: [ChannelSupervisor, ChannelWebhooks, GatewayRole],
25
+ exports: [GatewayRole],
26
+ })
27
+ ], GatewayModule);
28
+ export { GatewayModule };
@@ -0,0 +1,63 @@
1
+ import { ChannelsProcessor } from "../channels/channels.module.js";
2
+ import { ChannelOutbound } from "../channels/outbound.js";
3
+ import { TitleQueue } from "../conversations/titles.js";
4
+ import { EvalsProcessor } from "../evals/evals.module.js";
5
+ import { EvalWorker } from "../evals/worker.js";
6
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
7
+ import { LockedIntervalScheduler } from "../infra/schedule/locked-interval.js";
8
+ import { ScheduledRuns } from "../infra/schedule/scheduled-runs.js";
9
+ import type { KernelLogger } from "../log.js";
10
+ import { MaintenanceProcessor } from "../runtime/maintenance.js";
11
+ import { RunsProcessor, SubagentRunsProcessor, TitleProcessor, UsageReportProcessor } from "../runtime/run-processors.js";
12
+ import { RunWorker } from "../runtime/run-worker.js";
13
+ import { UsageReporter } from "../runtime/usage-report.js";
14
+ /**
15
+ * The worker role's parts, driven by `KernelLifecycle` at fixed points of its start order and stop
16
+ * phases (so they stay ordered after the extension load and before the extension host closes): the
17
+ * queue consumers (runs, sub-agent runs, evals, maintenance, channel deliveries, `usage.report`,
18
+ * titles) and the schedulers of the `@LockedCron` / `@LockedInterval` jobs. Provided only by
19
+ * `WorkerModule`, so a process without the worker role has none of them.
20
+ */
21
+ export declare class WorkerRole {
22
+ private readonly log;
23
+ private readonly intervals;
24
+ private readonly scheduledRuns;
25
+ private readonly runWorker;
26
+ private readonly evalWorker;
27
+ private readonly usageReport;
28
+ private readonly titles;
29
+ private readonly channelOutbound;
30
+ private readonly runsProcessor;
31
+ private readonly subagentRunsProcessor;
32
+ private readonly usageProcessor;
33
+ private readonly titleProcessor;
34
+ private readonly channelsProcessor;
35
+ private readonly evalsProcessor;
36
+ private readonly maintenanceProcessor;
37
+ /** The startup config (the roles). */
38
+ private readonly config;
39
+ /** The run worker was started: the runs phase drains it. */
40
+ private runsStarted;
41
+ /** The eval worker was started: the runs phase drains it. */
42
+ private evalsStarted;
43
+ constructor(config: KernelConfigService, log: KernelLogger, intervals: LockedIntervalScheduler, scheduledRuns: ScheduledRuns, runWorker: RunWorker, evalWorker: EvalWorker, usageReport: UsageReporter, titles: TitleQueue, channelOutbound: ChannelOutbound, runsProcessor: RunsProcessor, subagentRunsProcessor: SubagentRunsProcessor, usageProcessor: UsageReportProcessor, titleProcessor: TitleProcessor, channelsProcessor: ChannelsProcessor, evalsProcessor: EvalsProcessor, maintenanceProcessor: MaintenanceProcessor);
44
+ /**
45
+ * Starts the queue consumers (after the extension load), then opens the schedules' start gate:
46
+ * the cron and interval timers were armed at application bootstrap, but every tick before this
47
+ * point skipped (decision R21 of the Nest kernel spec); the `@LockedInterval({ runOnStart })`
48
+ * jobs run now, in the background (once across replicas starting together). `checkpoint` throws
49
+ * when a stop began meanwhile.
50
+ */
51
+ start(checkpoint: () => void): Promise<void>;
52
+ /**
53
+ * Closes the start gate and stops the schedulers (no new tick; the runs in progress get the stop
54
+ * signal) and returns the wait for those runs, at most `budgetMs`.
55
+ */
56
+ stopSchedules(budgetMs: number): Promise<void>;
57
+ /** The runs phase: this process's runs stop at their next step boundary (undefined: never started). */
58
+ drainRuns(budgetMs: number): Promise<void> | undefined;
59
+ /** The eval cases in progress stop (undefined: never started). */
60
+ drainEvals(budgetMs: number): Promise<void> | undefined;
61
+ /** Closes the maintenance queue's worker. */
62
+ closeMaintenance(): Promise<void>;
63
+ }