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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/dist/admin/admin.controller.d.ts +17 -17
  2. package/dist/admin/admin.controller.js +43 -26
  3. package/dist/admin/admin.module.d.ts +3 -0
  4. package/dist/admin/admin.module.js +22 -0
  5. package/dist/admin/extensions.controller.d.ts +14 -14
  6. package/dist/admin/extensions.controller.js +30 -17
  7. package/dist/admin/setup-lock.d.ts +16 -0
  8. package/dist/admin/setup-lock.js +47 -0
  9. package/dist/admin/setup.controller.d.ts +8 -8
  10. package/dist/admin/setup.controller.js +27 -25
  11. package/dist/admin/setup.service.d.ts +19 -27
  12. package/dist/admin/setup.service.js +61 -61
  13. package/dist/agents/agent-lookup.d.ts +53 -0
  14. package/dist/agents/agent-lookup.js +179 -0
  15. package/dist/agents/agents.controller.d.ts +1 -1
  16. package/dist/agents/agents.controller.js +14 -8
  17. package/dist/agents/agents.module.d.ts +7 -0
  18. package/dist/agents/agents.module.js +41 -0
  19. package/dist/agents/agents.service.d.ts +39 -58
  20. package/dist/agents/agents.service.js +261 -329
  21. package/dist/agents/definition.d.ts +8 -0
  22. package/dist/agents/definition.js +8 -0
  23. package/dist/agents/models.controller.d.ts +1 -1
  24. package/dist/agents/models.controller.js +2 -2
  25. package/dist/agents/templates.controller.d.ts +1 -1
  26. package/dist/agents/templates.controller.js +2 -2
  27. package/dist/agents/templates.d.ts +6 -8
  28. package/dist/agents/templates.js +20 -4
  29. package/dist/app.d.ts +93 -0
  30. package/dist/app.js +150 -0
  31. package/dist/catalog/admin-catalog.controller.d.ts +3 -3
  32. package/dist/catalog/admin-catalog.controller.js +27 -13
  33. package/dist/catalog/catalog-content.d.ts +185 -0
  34. package/dist/catalog/catalog-content.js +323 -0
  35. package/dist/catalog/catalog-items.d.ts +186 -0
  36. package/dist/catalog/catalog-items.js +410 -0
  37. package/dist/catalog/catalog.module.d.ts +14 -0
  38. package/dist/catalog/catalog.module.js +71 -0
  39. package/dist/catalog/catalog.service.d.ts +34 -188
  40. package/dist/catalog/catalog.service.js +155 -489
  41. package/dist/catalog/cli.d.ts +3 -2
  42. package/dist/catalog/cli.js +13 -31
  43. package/dist/catalog/job-ids.d.ts +15 -0
  44. package/dist/catalog/job-ids.js +15 -0
  45. package/dist/catalog/jobs.d.ts +27 -0
  46. package/dist/catalog/jobs.js +70 -0
  47. package/dist/catalog/locks.d.ts +24 -0
  48. package/dist/catalog/locks.js +63 -0
  49. package/dist/catalog/marketplaces.controller.d.ts +4 -4
  50. package/dist/catalog/marketplaces.controller.js +22 -11
  51. package/dist/catalog/marketplaces.service.d.ts +30 -13
  52. package/dist/catalog/marketplaces.service.js +330 -256
  53. package/dist/catalog/org-catalog.controller.d.ts +4 -3
  54. package/dist/catalog/org-catalog.controller.js +29 -14
  55. package/dist/catalog/org-catalog.service.d.ts +32 -198
  56. package/dist/catalog/org-catalog.service.js +159 -400
  57. package/dist/catalog/plugin-import.d.ts +73 -34
  58. package/dist/catalog/plugin-import.js +356 -217
  59. package/dist/catalog/plugin-install.d.ts +83 -41
  60. package/dist/catalog/plugin-install.js +421 -269
  61. package/dist/catalog/plugin-upgrade.d.ts +59 -4
  62. package/dist/catalog/plugin-upgrade.js +407 -282
  63. package/dist/catalog/requests.service.d.ts +27 -15
  64. package/dist/catalog/requests.service.js +201 -145
  65. package/dist/catalog/upgrade-targets.d.ts +4 -7
  66. package/dist/channels/actions.d.ts +6 -4
  67. package/dist/channels/actions.js +1 -1
  68. package/dist/channels/cards.d.ts +2 -2
  69. package/dist/channels/channels.module.d.ts +40 -0
  70. package/dist/channels/channels.module.js +128 -0
  71. package/dist/channels/connections.controller.d.ts +1 -1
  72. package/dist/channels/connections.controller.js +11 -6
  73. package/dist/channels/connections.service.d.ts +43 -21
  74. package/dist/channels/connections.service.js +236 -131
  75. package/dist/channels/inbound.d.ts +34 -38
  76. package/dist/channels/inbound.js +107 -41
  77. package/dist/channels/job-ids.d.ts +10 -0
  78. package/dist/channels/job-ids.js +10 -0
  79. package/dist/channels/jobs.d.ts +85 -0
  80. package/dist/channels/jobs.js +157 -0
  81. package/dist/channels/outbound.d.ts +60 -82
  82. package/dist/channels/outbound.js +165 -194
  83. package/dist/channels/supervisor.d.ts +88 -46
  84. package/dist/channels/supervisor.js +230 -132
  85. package/dist/channels/threads.d.ts +29 -8
  86. package/dist/channels/threads.js +71 -13
  87. package/dist/channels/webhook.d.ts +20 -14
  88. package/dist/channels/webhook.js +51 -20
  89. package/dist/config/load.d.ts +3 -2
  90. package/dist/config/load.js +3 -2
  91. package/dist/config/nacos-source.js +11 -2
  92. package/dist/config/schema.d.ts +1 -0
  93. package/dist/config/schema.js +10 -4
  94. package/dist/conversations/access.d.ts +29 -0
  95. package/dist/conversations/access.js +86 -0
  96. package/dist/conversations/artifacts.d.ts +10 -10
  97. package/dist/conversations/artifacts.js +35 -9
  98. package/dist/conversations/attachments.controller.d.ts +1 -1
  99. package/dist/conversations/attachments.controller.js +8 -6
  100. package/dist/conversations/attachments.module.d.ts +7 -0
  101. package/dist/conversations/attachments.module.js +25 -0
  102. package/dist/conversations/attachments.service.d.ts +30 -22
  103. package/dist/conversations/attachments.service.js +119 -46
  104. package/dist/conversations/conversations.controller.d.ts +8 -7
  105. package/dist/conversations/conversations.controller.js +59 -29
  106. package/dist/conversations/conversations.module.d.ts +8 -0
  107. package/dist/conversations/conversations.module.js +69 -0
  108. package/dist/conversations/conversations.service.d.ts +40 -38
  109. package/dist/conversations/conversations.service.js +130 -140
  110. package/dist/conversations/event-log.d.ts +28 -18
  111. package/dist/conversations/event-log.js +74 -27
  112. package/dist/conversations/files.d.ts +10 -10
  113. package/dist/conversations/files.js +37 -11
  114. package/dist/conversations/idem-keys.d.ts +5 -0
  115. package/dist/conversations/idem-keys.js +5 -0
  116. package/dist/conversations/job-ids.d.ts +6 -0
  117. package/dist/conversations/job-ids.js +6 -0
  118. package/dist/conversations/outputs-read.d.ts +11 -11
  119. package/dist/conversations/outputs-read.js +31 -7
  120. package/dist/conversations/queue.d.ts +48 -56
  121. package/dist/conversations/queue.js +13 -289
  122. package/dist/conversations/queue.service.d.ts +60 -0
  123. package/dist/conversations/queue.service.js +343 -0
  124. package/dist/conversations/sandbox-status.d.ts +13 -10
  125. package/dist/conversations/sandbox-status.js +36 -8
  126. package/dist/conversations/titles.d.ts +71 -24
  127. package/dist/conversations/titles.js +159 -63
  128. package/dist/ctx/bus.js +9 -3
  129. package/dist/ctx/create-ctx.d.ts +6 -0
  130. package/dist/ctx/create-ctx.js +7 -9
  131. package/dist/ctx/lock.d.ts +7 -3
  132. package/dist/ctx/lock.js +9 -20
  133. package/dist/ctx/secrets.d.ts +10 -2
  134. package/dist/ctx/secrets.js +7 -3
  135. package/dist/db/kernel-schema.d.ts +2 -2
  136. package/dist/db/pool.d.ts +5 -0
  137. package/dist/db/pool.js +1 -0
  138. package/dist/errors.d.ts +1 -0
  139. package/dist/errors.js +1 -0
  140. package/dist/evals/budget.d.ts +42 -21
  141. package/dist/evals/budget.js +114 -62
  142. package/dist/evals/evals.module.d.ts +31 -0
  143. package/dist/evals/evals.module.js +114 -0
  144. package/dist/evals/jobs.d.ts +20 -0
  145. package/dist/evals/jobs.js +45 -0
  146. package/dist/evals/run-replay.d.ts +56 -8
  147. package/dist/evals/run-replay.js +140 -80
  148. package/dist/evals/runs.controller.d.ts +1 -1
  149. package/dist/evals/runs.controller.js +17 -8
  150. package/dist/evals/runs.service.d.ts +23 -45
  151. package/dist/evals/runs.service.js +245 -234
  152. package/dist/evals/sets.controller.d.ts +1 -1
  153. package/dist/evals/sets.controller.js +17 -8
  154. package/dist/evals/sets.service.d.ts +22 -6
  155. package/dist/evals/sets.service.js +248 -194
  156. package/dist/evals/snapshot.d.ts +2 -2
  157. package/dist/evals/step-replay.d.ts +2 -2
  158. package/dist/evals/step-replay.js +1 -1
  159. package/dist/evals/trajectory.controller.d.ts +1 -1
  160. package/dist/evals/trajectory.controller.js +11 -7
  161. package/dist/evals/trajectory.service.d.ts +5 -4
  162. package/dist/evals/trajectory.service.js +30 -7
  163. package/dist/evals/worker.d.ts +44 -27
  164. package/dist/evals/worker.js +220 -121
  165. package/dist/extensions/admin-ops.d.ts +61 -33
  166. package/dist/extensions/admin-ops.js +248 -154
  167. package/dist/extensions/admin-view.d.ts +38 -27
  168. package/dist/extensions/admin-view.js +126 -55
  169. package/dist/extensions/approvals.d.ts +12 -8
  170. package/dist/extensions/approvals.js +73 -46
  171. package/dist/extensions/blobs.d.ts +27 -10
  172. package/dist/extensions/blobs.js +111 -45
  173. package/dist/extensions/bootstrap.d.ts +58 -31
  174. package/dist/extensions/bootstrap.js +175 -121
  175. package/dist/extensions/cli.d.ts +20 -10
  176. package/dist/extensions/cli.js +41 -96
  177. package/dist/extensions/config-issues.d.ts +7 -0
  178. package/dist/extensions/config-issues.js +31 -0
  179. package/dist/extensions/deployment-config-store.d.ts +49 -0
  180. package/dist/extensions/deployment-config-store.js +133 -0
  181. package/dist/extensions/deployment-config.d.ts +58 -67
  182. package/dist/extensions/deployment-config.js +202 -230
  183. package/dist/extensions/enabled.d.ts +5 -5
  184. package/dist/extensions/extensions.module.d.ts +8 -0
  185. package/dist/extensions/extensions.module.js +77 -0
  186. package/dist/extensions/hooks.d.ts +3 -2
  187. package/dist/extensions/hooks.js +1 -1
  188. package/dist/extensions/host.d.ts +72 -68
  189. package/dist/extensions/host.js +191 -152
  190. package/dist/extensions/installs.d.ts +49 -16
  191. package/dist/extensions/installs.js +128 -32
  192. package/dist/extensions/job-ids.d.ts +6 -0
  193. package/dist/extensions/job-ids.js +6 -0
  194. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  195. package/dist/extensions/lifecycle-topics.js +18 -0
  196. package/dist/extensions/lifecycle.d.ts +35 -47
  197. package/dist/extensions/lifecycle.js +103 -39
  198. package/dist/extensions/locks.d.ts +33 -0
  199. package/dist/extensions/locks.js +86 -0
  200. package/dist/extensions/migrate-lock.d.ts +3 -4
  201. package/dist/extensions/org-config.controller.d.ts +1 -1
  202. package/dist/extensions/org-config.controller.js +8 -5
  203. package/dist/extensions/org-config.d.ts +48 -46
  204. package/dist/extensions/org-config.js +284 -226
  205. package/dist/extensions/registry.d.ts +50 -2
  206. package/dist/extensions/registry.js +89 -4
  207. package/dist/extensions/sources.d.ts +12 -8
  208. package/dist/extensions/sources.js +34 -13
  209. package/dist/files/files.module.d.ts +3 -0
  210. package/dist/files/files.module.js +22 -0
  211. package/dist/files/previewers.controller.d.ts +7 -2
  212. package/dist/files/previewers.controller.js +17 -9
  213. package/dist/files/previewers.d.ts +13 -18
  214. package/dist/files/previewers.js +83 -36
  215. package/dist/http/adapter.d.ts +3 -0
  216. package/dist/http/adapter.js +25 -0
  217. package/dist/http/api.module.d.ts +3 -110
  218. package/dist/http/api.module.js +47 -355
  219. package/dist/http/app.d.ts +11 -15
  220. package/dist/http/app.js +17 -62
  221. package/dist/http/error-filter.module.d.ts +5 -0
  222. package/dist/http/error-filter.module.js +18 -0
  223. package/dist/http/error.filter.js +2 -2
  224. package/dist/identity/accounts.d.ts +82 -29
  225. package/dist/identity/accounts.js +294 -175
  226. package/dist/identity/api-tokens.d.ts +11 -7
  227. package/dist/identity/api-tokens.js +71 -44
  228. package/dist/identity/audit.d.ts +7 -4
  229. package/dist/identity/audit.js +5 -1
  230. package/dist/identity/auth.controller.d.ts +11 -10
  231. package/dist/identity/auth.controller.js +31 -25
  232. package/dist/identity/auth.guard.d.ts +3 -3
  233. package/dist/identity/auth.guard.js +6 -4
  234. package/dist/identity/binding.d.ts +9 -11
  235. package/dist/identity/binding.js +41 -13
  236. package/dist/identity/enterprise-admin.d.ts +18 -12
  237. package/dist/identity/enterprise-admin.js +67 -13
  238. package/dist/identity/external-identity-lock.d.ts +17 -0
  239. package/dist/identity/external-identity-lock.js +39 -0
  240. package/dist/identity/external.d.ts +19 -15
  241. package/dist/identity/external.js +163 -125
  242. package/dist/identity/identity.module.d.ts +6 -0
  243. package/dist/identity/identity.module.js +56 -0
  244. package/dist/identity/me.controller.d.ts +16 -15
  245. package/dist/identity/me.controller.js +37 -31
  246. package/dist/identity/sessions.d.ts +12 -10
  247. package/dist/identity/sessions.js +74 -42
  248. package/dist/identity/settings.d.ts +20 -14
  249. package/dist/identity/settings.js +85 -57
  250. package/dist/identity/sso.controller.d.ts +7 -7
  251. package/dist/identity/sso.controller.js +13 -9
  252. package/dist/identity/sso.d.ts +9 -12
  253. package/dist/identity/sso.js +54 -24
  254. package/dist/inbox/inbox.module.d.ts +3 -0
  255. package/dist/inbox/inbox.module.js +22 -0
  256. package/dist/inbox/inbox.service.d.ts +7 -9
  257. package/dist/inbox/inbox.service.js +32 -11
  258. package/dist/index.d.ts +16 -11
  259. package/dist/index.js +9 -6
  260. package/dist/infra/cache/cache.module.d.ts +3 -0
  261. package/dist/infra/cache/cache.module.js +16 -0
  262. package/dist/infra/cache/cache.service.d.ts +21 -0
  263. package/dist/infra/cache/cache.service.js +80 -0
  264. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  265. package/dist/infra/cache/cacheable.decorator.js +83 -0
  266. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  267. package/dist/infra/cli/kernel-cli.module.js +165 -0
  268. package/dist/infra/close-within.d.ts +15 -0
  269. package/dist/infra/close-within.js +36 -0
  270. package/dist/infra/config/config.module.d.ts +13 -0
  271. package/dist/infra/config/config.module.js +39 -0
  272. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  273. package/dist/infra/config/kernel-config.service.js +126 -0
  274. package/dist/infra/database/after-commit.d.ts +6 -0
  275. package/dist/infra/database/after-commit.js +9 -0
  276. package/dist/infra/database/database.module.d.ts +25 -0
  277. package/dist/infra/database/database.module.js +90 -0
  278. package/dist/infra/database/kernel-db.d.ts +22 -0
  279. package/dist/infra/database/kernel-db.js +65 -0
  280. package/dist/infra/database/transaction-host.d.ts +50 -0
  281. package/dist/infra/database/transaction-host.js +125 -0
  282. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  283. package/dist/infra/database/transactional.decorator.js +27 -0
  284. package/dist/infra/database/xact-lock.d.ts +17 -0
  285. package/dist/infra/database/xact-lock.js +43 -0
  286. package/dist/infra/events/kernel-events.d.ts +96 -0
  287. package/dist/infra/events/kernel-events.js +65 -0
  288. package/dist/infra/health/health.controller.d.ts +26 -0
  289. package/dist/infra/health/health.controller.js +104 -0
  290. package/dist/infra/health/health.module.d.ts +9 -0
  291. package/dist/infra/health/health.module.js +24 -0
  292. package/dist/infra/health/health.options.d.ts +10 -0
  293. package/dist/infra/health/health.options.js +15 -0
  294. package/dist/infra/health/shutdown-state.d.ts +6 -0
  295. package/dist/infra/health/shutdown-state.js +2 -0
  296. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  297. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  298. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  299. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  300. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  301. package/dist/infra/lifecycle/process-guards.js +86 -0
  302. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  303. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  304. package/dist/infra/lock/key-template.d.ts +13 -0
  305. package/dist/infra/lock/key-template.js +46 -0
  306. package/dist/infra/lock/lock.module.d.ts +3 -0
  307. package/dist/infra/lock/lock.module.js +16 -0
  308. package/dist/infra/lock/lock.service.d.ts +120 -0
  309. package/dist/infra/lock/lock.service.js +343 -0
  310. package/dist/infra/lock/shared-lease.d.ts +44 -0
  311. package/dist/infra/lock/shared-lease.js +121 -0
  312. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  313. package/dist/infra/lock/with-lock.decorator.js +49 -0
  314. package/dist/infra/logging/logging.module.d.ts +16 -0
  315. package/dist/infra/logging/logging.module.js +34 -0
  316. package/dist/infra/queue/configured-processor.d.ts +18 -0
  317. package/dist/infra/queue/configured-processor.js +23 -0
  318. package/dist/infra/queue/job-failure.d.ts +18 -0
  319. package/dist/infra/queue/job-failure.js +26 -0
  320. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  321. package/dist/infra/queue/queue-shutdown.js +81 -0
  322. package/dist/infra/queue/queue.module.d.ts +16 -0
  323. package/dist/infra/queue/queue.module.js +61 -0
  324. package/dist/infra/queue/redis-connection.d.ts +7 -0
  325. package/dist/infra/queue/redis-connection.js +18 -0
  326. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  327. package/dist/infra/queue/retired-schedulers.js +9 -0
  328. package/dist/infra/queue/run-job.d.ts +16 -0
  329. package/dist/infra/queue/run-job.js +19 -0
  330. package/dist/infra/redis/redis.module.d.ts +24 -0
  331. package/dist/infra/redis/redis.module.js +87 -0
  332. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  333. package/dist/infra/schedule/cron-tick.js +25 -0
  334. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  335. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  336. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  337. package/dist/infra/schedule/locked-interval.js +190 -0
  338. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  339. package/dist/infra/schedule/locked-tick.js +137 -0
  340. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  341. package/dist/infra/schedule/schedule.module.js +27 -0
  342. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  343. package/dist/infra/schedule/scheduled-runs.js +163 -0
  344. package/dist/infra/swagger/swagger.d.ts +16 -0
  345. package/dist/infra/swagger/swagger.js +31 -0
  346. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  347. package/dist/infra/throttler/credential-throttler.js +77 -0
  348. package/dist/infra/throttler/named-throttlers.d.ts +31 -0
  349. package/dist/infra/throttler/named-throttlers.js +119 -0
  350. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  351. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  352. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  353. package/dist/infra/throttler/throttler.guard.js +68 -0
  354. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  355. package/dist/infra/throttler/throttler.module.js +53 -0
  356. package/dist/infra/tokens.d.ts +15 -0
  357. package/dist/infra/tokens.js +15 -0
  358. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  359. package/dist/infra/validation/create-zod-dto.js +35 -0
  360. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  361. package/dist/infra/validation/parse-with-zod.js +12 -0
  362. package/dist/infra/validation/validation.module.d.ts +3 -0
  363. package/dist/infra/validation/validation.module.js +16 -0
  364. package/dist/infra/validation/zod-params.d.ts +7 -0
  365. package/dist/infra/validation/zod-params.js +42 -0
  366. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  367. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  368. package/dist/kernel.d.ts +9 -244
  369. package/dist/kernel.js +8 -1305
  370. package/dist/kernel.module.d.ts +17 -0
  371. package/dist/kernel.module.js +136 -0
  372. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  373. package/dist/lifecycle/kernel-lifecycle.js +451 -0
  374. package/dist/lifecycle/tokens.d.ts +3 -0
  375. package/dist/lifecycle/tokens.js +3 -0
  376. package/dist/log-context.d.ts +2 -0
  377. package/dist/log-context.js +4 -0
  378. package/dist/models/models.module.d.ts +3 -0
  379. package/dist/models/models.module.js +24 -0
  380. package/dist/models/prices.d.ts +8 -2
  381. package/dist/models/prices.js +65 -37
  382. package/dist/models/purposes.controller.d.ts +1 -1
  383. package/dist/models/purposes.controller.js +5 -6
  384. package/dist/models/purposes.d.ts +35 -13
  385. package/dist/models/purposes.js +101 -51
  386. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  387. package/dist/orgs/directory-sync.controller.js +2 -2
  388. package/dist/orgs/directory-sync.d.ts +61 -31
  389. package/dist/orgs/directory-sync.js +212 -125
  390. package/dist/orgs/invitations.controller.d.ts +8 -8
  391. package/dist/orgs/invitations.controller.js +27 -26
  392. package/dist/orgs/invitations.service.d.ts +12 -9
  393. package/dist/orgs/invitations.service.js +130 -92
  394. package/dist/orgs/job-ids.d.ts +8 -0
  395. package/dist/orgs/job-ids.js +8 -0
  396. package/dist/orgs/members.service.d.ts +19 -12
  397. package/dist/orgs/members.service.js +161 -117
  398. package/dist/orgs/offboarding.d.ts +54 -57
  399. package/dist/orgs/offboarding.js +161 -71
  400. package/dist/orgs/org-lock.d.ts +28 -19
  401. package/dist/orgs/org-lock.js +81 -35
  402. package/dist/orgs/org.guard.d.ts +1 -1
  403. package/dist/orgs/org.guard.js +2 -2
  404. package/dist/orgs/orgs.controller.d.ts +13 -13
  405. package/dist/orgs/orgs.controller.js +29 -17
  406. package/dist/orgs/orgs.module.d.ts +6 -0
  407. package/dist/orgs/orgs.module.js +68 -0
  408. package/dist/orgs/orgs.service.d.ts +30 -19
  409. package/dist/orgs/orgs.service.js +139 -86
  410. package/dist/orgs/settings.controller.d.ts +1 -1
  411. package/dist/orgs/settings.controller.js +8 -6
  412. package/dist/orgs/settings.service.d.ts +14 -8
  413. package/dist/orgs/settings.service.js +75 -46
  414. package/dist/overrides.d.ts +56 -0
  415. package/dist/overrides.js +30 -0
  416. package/dist/roles/gateway-role.d.ts +43 -0
  417. package/dist/roles/gateway-role.js +98 -0
  418. package/dist/roles/gateway.module.d.ts +8 -0
  419. package/dist/roles/gateway.module.js +28 -0
  420. package/dist/roles/worker-role.d.ts +63 -0
  421. package/dist/roles/worker-role.js +144 -0
  422. package/dist/roles/worker.module.d.ts +14 -0
  423. package/dist/roles/worker.module.js +90 -0
  424. package/dist/runtime/abort.js +19 -2
  425. package/dist/runtime/checkpointer.d.ts +8 -3
  426. package/dist/runtime/checkpointer.js +87 -55
  427. package/dist/runtime/conversation-lock.d.ts +20 -11
  428. package/dist/runtime/conversation-lock.js +62 -72
  429. package/dist/runtime/hook-calls.d.ts +3 -3
  430. package/dist/runtime/hook-calls.js +1 -6
  431. package/dist/runtime/job-ids.d.ts +10 -0
  432. package/dist/runtime/job-ids.js +10 -0
  433. package/dist/runtime/langgraph-loop.js +1 -1
  434. package/dist/runtime/loop.d.ts +7 -0
  435. package/dist/runtime/loop.js +14 -0
  436. package/dist/runtime/maintenance-queue.d.ts +10 -0
  437. package/dist/runtime/maintenance-queue.js +10 -0
  438. package/dist/runtime/maintenance.d.ts +45 -74
  439. package/dist/runtime/maintenance.js +139 -137
  440. package/dist/runtime/model-call.d.ts +7 -4
  441. package/dist/runtime/model-call.js +24 -57
  442. package/dist/runtime/providers.d.ts +17 -6
  443. package/dist/runtime/providers.js +66 -25
  444. package/dist/runtime/quota.d.ts +17 -3
  445. package/dist/runtime/quota.js +27 -2
  446. package/dist/runtime/retired-schedulers.d.ts +7 -0
  447. package/dist/runtime/retired-schedulers.js +31 -0
  448. package/dist/runtime/run-control.d.ts +33 -0
  449. package/dist/runtime/run-control.js +77 -0
  450. package/dist/runtime/run-finish.d.ts +26 -17
  451. package/dist/runtime/run-finish.js +98 -51
  452. package/dist/runtime/run-jobs.d.ts +48 -0
  453. package/dist/runtime/run-jobs.js +95 -0
  454. package/dist/runtime/run-processors.d.ts +60 -0
  455. package/dist/runtime/run-processors.js +185 -0
  456. package/dist/runtime/run-queue.d.ts +32 -57
  457. package/dist/runtime/run-queue.js +291 -295
  458. package/dist/runtime/run-steps.d.ts +39 -0
  459. package/dist/runtime/run-steps.js +96 -0
  460. package/dist/runtime/run-worker.d.ts +121 -75
  461. package/dist/runtime/run-worker.js +340 -226
  462. package/dist/runtime/runtime.module.d.ts +10 -0
  463. package/dist/runtime/runtime.module.js +112 -0
  464. package/dist/runtime/step-log.d.ts +40 -0
  465. package/dist/runtime/step-log.js +94 -0
  466. package/dist/runtime/stream.controller.d.ts +5 -8
  467. package/dist/runtime/stream.controller.js +14 -12
  468. package/dist/runtime/stream.d.ts +24 -6
  469. package/dist/runtime/stream.js +78 -7
  470. package/dist/runtime/subagents/child.d.ts +3 -44
  471. package/dist/runtime/subagents/child.js +0 -79
  472. package/dist/runtime/subagents/definition.d.ts +4 -4
  473. package/dist/runtime/subagents/definition.js +2 -2
  474. package/dist/runtime/subagents/dispatch.d.ts +87 -6
  475. package/dist/runtime/subagents/dispatch.js +135 -140
  476. package/dist/runtime/subagents/limits.d.ts +9 -4
  477. package/dist/runtime/subagents/limits.js +4 -2
  478. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  479. package/dist/runtime/subagents/org-agents.js +1 -1
  480. package/dist/runtime/subagents/progress.d.ts +2 -2
  481. package/dist/runtime/subagents/roster.d.ts +3 -3
  482. package/dist/runtime/subagents/roster.js +1 -1
  483. package/dist/runtime/subagents/skill-fork.d.ts +6 -7
  484. package/dist/runtime/subagents/skill-fork.js +16 -5
  485. package/dist/runtime/subagents/subagents.service.d.ts +40 -0
  486. package/dist/runtime/subagents/subagents.service.js +101 -0
  487. package/dist/runtime/usage-report.d.ts +94 -52
  488. package/dist/runtime/usage-report.js +200 -100
  489. package/dist/runtime/waits.d.ts +125 -57
  490. package/dist/runtime/waits.js +431 -208
  491. package/dist/sandbox/job-ids.d.ts +10 -0
  492. package/dist/sandbox/job-ids.js +10 -0
  493. package/dist/sandbox/jobs.d.ts +41 -0
  494. package/dist/sandbox/jobs.js +113 -0
  495. package/dist/sandbox/leases.d.ts +39 -31
  496. package/dist/sandbox/leases.js +117 -257
  497. package/dist/sandbox/providers.d.ts +19 -0
  498. package/dist/sandbox/providers.js +38 -0
  499. package/dist/sandbox/sandbox.module.d.ts +8 -0
  500. package/dist/sandbox/sandbox.module.js +30 -0
  501. package/dist/sandbox/sandbox.service.d.ts +24 -29
  502. package/dist/sandbox/sandbox.service.js +106 -75
  503. package/dist/skills/catalog.d.ts +33 -20
  504. package/dist/skills/catalog.js +96 -53
  505. package/dist/skills/changes.controller.d.ts +4 -4
  506. package/dist/skills/changes.controller.js +15 -9
  507. package/dist/skills/changes.service.d.ts +28 -18
  508. package/dist/skills/changes.service.js +421 -364
  509. package/dist/skills/invocable.controller.d.ts +1 -1
  510. package/dist/skills/invocable.controller.js +8 -5
  511. package/dist/skills/invoke.d.ts +16 -15
  512. package/dist/skills/invoke.js +48 -17
  513. package/dist/skills/skills.controller.d.ts +1 -1
  514. package/dist/skills/skills.controller.js +11 -6
  515. package/dist/skills/skills.module.d.ts +6 -0
  516. package/dist/skills/skills.module.js +30 -0
  517. package/dist/skills/skills.service.d.ts +47 -30
  518. package/dist/skills/skills.service.js +221 -158
  519. package/dist/storage/job-ids.d.ts +6 -0
  520. package/dist/storage/job-ids.js +6 -0
  521. package/dist/storage/purge.d.ts +22 -7
  522. package/dist/storage/purge.js +55 -3
  523. package/dist/storage/storage.module.d.ts +6 -0
  524. package/dist/storage/storage.module.js +23 -0
  525. package/dist/storage/storage.service.d.ts +18 -4
  526. package/dist/storage/storage.service.js +44 -3
  527. package/dist/tools/approvals.controller.d.ts +1 -1
  528. package/dist/tools/approvals.controller.js +12 -8
  529. package/dist/tools/approvals.service.d.ts +27 -25
  530. package/dist/tools/approvals.service.js +324 -258
  531. package/dist/tools/breaker.d.ts +2 -2
  532. package/dist/tools/breaker.js +21 -3
  533. package/dist/tools/builtins/ask-user.d.ts +2 -2
  534. package/dist/tools/builtins/ask-user.js +1 -1
  535. package/dist/tools/builtins/builtin-tools.d.ts +21 -0
  536. package/dist/tools/builtins/builtin-tools.js +80 -0
  537. package/dist/tools/builtins/read-tool-output.d.ts +2 -2
  538. package/dist/tools/builtins/read-tool-output.js +1 -1
  539. package/dist/tools/builtins/sandbox/bash.js +2 -2
  540. package/dist/tools/builtins/sandbox/common.d.ts +2 -1
  541. package/dist/tools/builtins/sandbox/deliver.js +2 -2
  542. package/dist/tools/builtins/sandbox/edit.js +1 -1
  543. package/dist/tools/builtins/sandbox/glob.js +2 -2
  544. package/dist/tools/builtins/sandbox/grep.js +2 -2
  545. package/dist/tools/builtins/sandbox/read.js +1 -1
  546. package/dist/tools/builtins/sandbox/write.js +1 -1
  547. package/dist/tools/builtins/skill-load.d.ts +3 -3
  548. package/dist/tools/builtins/skill-load.js +1 -1
  549. package/dist/tools/canonical-json.d.ts +6 -0
  550. package/dist/tools/canonical-json.js +16 -0
  551. package/dist/tools/connector-content.controller.d.ts +1 -1
  552. package/dist/tools/connector-content.controller.js +11 -6
  553. package/dist/tools/connector-content.d.ts +12 -15
  554. package/dist/tools/connector-content.js +53 -18
  555. package/dist/tools/connectors.controller.d.ts +1 -1
  556. package/dist/tools/connectors.controller.js +21 -10
  557. package/dist/tools/connectors.service.d.ts +31 -13
  558. package/dist/tools/connectors.service.js +434 -344
  559. package/dist/tools/credentials.d.ts +17 -20
  560. package/dist/tools/credentials.js +55 -34
  561. package/dist/tools/drift.d.ts +29 -41
  562. package/dist/tools/drift.js +111 -79
  563. package/dist/tools/info.d.ts +12 -9
  564. package/dist/tools/info.js +33 -7
  565. package/dist/tools/job-ids.d.ts +13 -0
  566. package/dist/tools/job-ids.js +15 -0
  567. package/dist/tools/jobs.d.ts +24 -0
  568. package/dist/tools/jobs.js +69 -0
  569. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  570. package/dist/tools/oauth/flow-paths.js +38 -0
  571. package/dist/tools/oauth/flow.d.ts +30 -30
  572. package/dist/tools/oauth/flow.js +109 -81
  573. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  574. package/dist/tools/oauth/oauth.controller.js +12 -9
  575. package/dist/tools/oauth/tokens.d.ts +11 -3
  576. package/dist/tools/oauth/tokens.js +15 -14
  577. package/dist/tools/outputs.d.ts +13 -4
  578. package/dist/tools/outputs.js +47 -3
  579. package/dist/tools/pipeline.d.ts +62 -46
  580. package/dist/tools/pipeline.js +145 -64
  581. package/dist/tools/policy.d.ts +2 -2
  582. package/dist/tools/questions.controller.d.ts +1 -1
  583. package/dist/tools/questions.controller.js +8 -5
  584. package/dist/tools/questions.service.d.ts +25 -24
  585. package/dist/tools/questions.service.js +201 -142
  586. package/dist/tools/registry.d.ts +30 -20
  587. package/dist/tools/registry.js +73 -37
  588. package/dist/tools/specs.d.ts +5 -4
  589. package/dist/tools/specs.js +3 -1
  590. package/dist/tools/tools.module.d.ts +10 -0
  591. package/dist/tools/tools.module.js +91 -0
  592. package/dist/ui/call-extension.d.ts +16 -0
  593. package/dist/ui/call-extension.js +38 -0
  594. package/dist/ui/embed-token.d.ts +9 -5
  595. package/dist/ui/embed-token.js +34 -6
  596. package/dist/ui/ui-stream.d.ts +22 -17
  597. package/dist/ui/ui-stream.js +72 -12
  598. package/dist/ui/ui.module.d.ts +7 -0
  599. package/dist/ui/ui.module.js +28 -0
  600. package/dist/ui/views.controller.d.ts +14 -12
  601. package/dist/ui/views.controller.js +32 -25
  602. package/dist/ui/views.d.ts +9 -57
  603. package/dist/ui/views.js +43 -45
  604. package/package.json +9 -2
  605. package/dist/http/health.controller.d.ts +0 -26
  606. package/dist/http/health.controller.js +0 -79
  607. package/dist/http/tokens.d.ts +0 -131
  608. package/dist/http/tokens.js +0 -131
  609. package/dist/http/zod.pipe.d.ts +0 -8
  610. package/dist/http/zod.pipe.js +0 -14
  611. package/dist/identity/rate-limit.d.ts +0 -55
  612. package/dist/identity/rate-limit.js +0 -121
  613. package/dist/sandbox/lifecycle.d.ts +0 -21
  614. package/dist/sandbox/lifecycle.js +0 -68
  615. /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
  616. /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
@@ -1,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
+ };
10
+ import { Inject, Injectable, Module } from "@nestjs/common";
1
11
  import { sql } from "kysely";
2
12
  import { audit } from "../identity/audit.js";
13
+ import { KernelDb } from "../infra/database/kernel-db.js";
14
+ import { TransactionHost } from "../infra/database/transaction-host.js";
15
+ import { Transactional } from "../infra/database/transactional.decorator.js";
3
16
  /**
4
17
  * 评测运行的 token 预算(C7):`eval_runs.tokens_used` 在 PG 里原子累加,达到 `token_cap` 的同一条语句把
5
18
  * 状态置为 `capped`;worker 每次请求前查 {@link runActive},不活跃就不再发新请求。在途请求可以越过上限,
@@ -83,13 +96,44 @@ export async function skipPendingJudges(db, runId, caseId) {
83
96
  await q.execute();
84
97
  }
85
98
  /**
86
- * 重算 `cases_done` = 结果全部结束、且没有等评委的结果的用例数(幂等:任务重做不会重复计数),达到 `cases_total` 且运行仍在执行 →
87
- * `completed`。先锁运行行再数(READ COMMITTED 下新语句看得到其他任务已提交的结果),并发完成的任务不会互相覆盖。
88
- * worker 每做完一个用例、取消、入队失败时都调用。在事务里调用时锁随事务释放。
99
+ * 运行仍在执行(queued / running),且所属组织与评测集的 agent 都没有删除:取消、达到上限、已结束、运行行已删除、
100
+ * 组织或 agent 已删除都为 false(删除组织 / agent 时会显式取消运行,这里再兜一次底,挡住删除与请求之间的竞争)。
89
101
  */
90
- export async function recountCases(db, runId) {
91
- const run = async (trx) => {
92
- const row = await trx
102
+ export async function runActive(db, runId) {
103
+ const r = await db
104
+ .selectFrom("eval_runs as r")
105
+ .innerJoin("eval_sets as s", "s.id", "r.set_id")
106
+ .innerJoin("agents as a", "a.id", "s.agent_id")
107
+ .innerJoin("orgs as o", "o.id", "r.org_id")
108
+ .select("r.id")
109
+ .where("r.id", "=", runId)
110
+ .where("r.status", "in", [...ACTIVE_EVAL_STATUSES])
111
+ .where("a.deleted_at", "is", null)
112
+ .where("o.deleted_at", "is", null)
113
+ .executeTakeFirst();
114
+ return r !== undefined;
115
+ }
116
+ /**
117
+ * The eval run bookkeeping that needs a transaction: the progress recount (it locks the run row)
118
+ * and the cancellation of an org's or agent's runs when it is deleted. One provider, shared by the
119
+ * evals, the agents and the orgs.
120
+ */
121
+ let EvalBudget = class EvalBudget {
122
+ db;
123
+ txHost;
124
+ constructor(db, txHost) {
125
+ this.db = db;
126
+ this.txHost = txHost;
127
+ }
128
+ /**
129
+ * 重算 `cases_done` = 结果全部结束、且没有等评委的结果的用例数(幂等:任务重做不会重复计数),达到 `cases_total` 且运行仍在执行 →
130
+ * `completed`。先锁运行行再数(READ COMMITTED 下新语句看得到其他任务已提交的结果),并发完成的任务不会互相覆盖。
131
+ * worker 每做完一个用例、取消、入队失败时都调用。Joins the caller's transaction (the lock is released with it),
132
+ * else runs in its own.
133
+ */
134
+ async recountCases(runId) {
135
+ const db = this.db.db;
136
+ const row = await db
93
137
  .selectFrom("eval_runs")
94
138
  .select(["cases_total", "status"])
95
139
  .where("id", "=", runId)
@@ -102,10 +146,10 @@ export async function recountCases(db, runId) {
102
146
  SELECT case_id FROM capybara.eval_results WHERE run_id = ${runId}
103
147
  GROUP BY case_id
104
148
  HAVING bool_and(status IN ('done', 'error', 'skipped') AND judge_status <> 'pending')
105
- ) finished`.execute(trx);
149
+ ) finished`.execute(db);
106
150
  const done = Number(r.rows[0]?.n ?? 0);
107
151
  const complete = done >= row.cases_total && ACTIVE_EVAL_STATUSES.includes(row.status);
108
- await trx
152
+ await db
109
153
  .updateTable("eval_runs")
110
154
  .set({
111
155
  cases_done: done,
@@ -113,66 +157,74 @@ export async function recountCases(db, runId) {
113
157
  })
114
158
  .where("id", "=", runId)
115
159
  .execute();
116
- };
117
- if (db.isTransaction)
118
- await run(db);
119
- else
120
- await db.transaction().execute((trx) => run(trx));
121
- }
122
- /**
123
- * 运行仍在执行(queued / running),且所属组织与评测集的 agent 都没有删除:取消、达到上限、已结束、运行行已删除、
124
- * 组织或 agent 已删除都为 false(删除组织 / agent 时会显式取消运行,这里再兜一次底,挡住删除与请求之间的竞争)。
125
- */
126
- export async function runActive(db, runId) {
127
- const r = await db
128
- .selectFrom("eval_runs as r")
129
- .innerJoin("eval_sets as s", "s.id", "r.set_id")
130
- .innerJoin("agents as a", "a.id", "s.agent_id")
131
- .innerJoin("orgs as o", "o.id", "r.org_id")
132
- .select("r.id")
133
- .where("r.id", "=", runId)
134
- .where("r.status", "in", [...ACTIVE_EVAL_STATUSES])
135
- .where("a.deleted_at", "is", null)
136
- .where("o.deleted_at", "is", null)
137
- .executeTakeFirst();
138
- return r !== undefined;
139
- }
140
- /**
141
- * 删除组织或 agent 时(调用方的事务内)取消其在执行的评测运行:运行置 `cancelled`,未开始的结果 `skipped`、
142
- * 等评委的记 `skipped`,重算进度,每个运行写审计 `eval.run_cancelled`(detail 带原因)。在途请求做完后写不进新的请求
143
- * (worker 每次请求前查 {@link runActive})。运行创建者离开组织不取消(Ruling S1-b:管理员的评测运行是组织的工作)。
144
- */
145
- export async function cancelEvalRuns(trx, scope, actor, reason) {
146
- let q = trx
147
- .updateTable("eval_runs")
148
- .set({ status: "cancelled", finished_at: sql `now()` })
149
- .where("org_id", "=", scope.orgId)
150
- .where("status", "in", [...ACTIVE_EVAL_STATUSES]);
151
- if (scope.agentId !== undefined) {
152
- const agentId = scope.agentId;
153
- q = q.where("set_id", "in", (eb) => eb.selectFrom("eval_sets").select("id").where("agent_id", "=", agentId));
154
160
  }
155
- const runs = await q.returning("id").execute();
156
- for (const r of runs) {
157
- await trx
161
+ /**
162
+ * 删除组织或 agent 时(调用方的事务内)取消其在执行的评测运行:运行置 `cancelled`,未开始的结果 `skipped`、
163
+ * 等评委的记 `skipped`,重算进度,每个运行写审计 `eval.run_cancelled`(detail 带原因)。在途请求做完后写不进新的请求
164
+ * (worker 每次请求前查 {@link runActive})。运行创建者离开组织不取消(Ruling S1-b:管理员的评测运行是组织的工作)。
165
+ */
166
+ async cancelRuns(scope, actor, reason) {
167
+ const db = this.db.db;
168
+ let q = db
169
+ .updateTable("eval_runs")
170
+ .set({ status: "cancelled", finished_at: sql `now()` })
171
+ .where("org_id", "=", scope.orgId)
172
+ .where("status", "in", [...ACTIVE_EVAL_STATUSES]);
173
+ if (scope.agentId !== undefined) {
174
+ const agentId = scope.agentId;
175
+ q = q.where("set_id", "in", (eb) => eb.selectFrom("eval_sets").select("id").where("agent_id", "=", agentId));
176
+ }
177
+ const runs = await q.returning("id").execute();
178
+ for (const r of runs) {
179
+ await this.skipRun(r.id);
180
+ await audit(db, {
181
+ actorAccountId: actor.accountId,
182
+ ...(actor.tokenId !== undefined && { actorTokenId: actor.tokenId }),
183
+ orgId: scope.orgId,
184
+ action: "eval.run_cancelled",
185
+ target: r.id,
186
+ detail: { reason },
187
+ });
188
+ }
189
+ return runs.map((r) => r.id);
190
+ }
191
+ /**
192
+ * A run that stopped (cancelled, its set deleted): its results not started yet are `skipped`,
193
+ * the pending judges too, and the progress is recounted, in the caller's transaction.
194
+ */
195
+ async skipRun(runId) {
196
+ await this.db
158
197
  .updateTable("eval_results")
159
198
  .set({ status: "skipped", updated_at: sql `now()` })
160
- .where("run_id", "=", r.id)
199
+ .where("run_id", "=", runId)
161
200
  .where("status", "=", "pending")
162
201
  .execute();
163
- await skipPendingJudges(trx, r.id);
164
- await recountCases(trx, r.id);
165
- await audit(trx, {
166
- actorAccountId: actor.accountId,
167
- ...(actor.tokenId !== undefined && { actorTokenId: actor.tokenId }),
168
- orgId: scope.orgId,
169
- action: "eval.run_cancelled",
170
- target: r.id,
171
- detail: { reason },
172
- });
202
+ await skipPendingJudges(this.db.db, runId);
203
+ await this.recountCases(runId);
173
204
  }
174
- return runs.map((r) => r.id);
175
- }
205
+ };
206
+ __decorate([
207
+ Transactional()
208
+ ], EvalBudget.prototype, "recountCases", null);
209
+ __decorate([
210
+ Transactional({ propagation: "mandatory" })
211
+ ], EvalBudget.prototype, "cancelRuns", null);
212
+ __decorate([
213
+ Transactional({ propagation: "mandatory" })
214
+ ], EvalBudget.prototype, "skipRun", null);
215
+ EvalBudget = __decorate([
216
+ Injectable(),
217
+ __param(0, Inject(KernelDb)),
218
+ __param(1, Inject(TransactionHost))
219
+ ], EvalBudget);
220
+ export { EvalBudget };
221
+ /** {@link EvalBudget} on its own: the agents and the orgs import it without the evals. */
222
+ let EvalBudgetModule = class EvalBudgetModule {
223
+ };
224
+ EvalBudgetModule = __decorate([
225
+ Module({ providers: [EvalBudget], exports: [EvalBudget] })
226
+ ], EvalBudgetModule);
227
+ export { EvalBudgetModule };
176
228
  export const addUsage = (a, b) => ({
177
229
  inputTokens: a.inputTokens + b.inputTokens,
178
230
  outputTokens: a.outputTokens + b.outputTokens,
@@ -0,0 +1,31 @@
1
+ import { WorkerHost } from "@nestjs/bullmq";
2
+ import { type DynamicModule } from "@nestjs/common";
3
+ import type { Job, Worker } from "bullmq";
4
+ import type { KernelConfig } from "../config/schema.js";
5
+ import { type EvalJobData } from "./jobs.js";
6
+ import { EvalWorker } from "./worker.js";
7
+ /**
8
+ * Evals: the trajectory viewer, eval sets and cases, eval runs (the producer of
9
+ * `cap-kernel-evals`) and the run bookkeeping ({@link EvalBudgetModule}, re-exported).
10
+ */
11
+ export declare class EvalsModule {
12
+ }
13
+ /** The consumer of `cap-kernel-evals` (one case per job): {@link EvalWorker}. */
14
+ export declare class EvalsProcessor extends WorkerHost<Worker<EvalJobData>> {
15
+ private readonly evals;
16
+ constructor(evals: EvalWorker);
17
+ process(job: Job<EvalJobData>, token?: string): Promise<void>;
18
+ failed(job: Job<EvalJobData> | undefined, err: Error): void;
19
+ error(err: Error): void;
20
+ }
21
+ /**
22
+ * The eval worker (step and full-run replays, the judge) over the runtime's loop and model
23
+ * registry, and the consumer of `cap-kernel-evals`, its options from the startup config
24
+ * (concurrency `evals.workerConcurrency`, the run queues' job lock and stalled detection). Imported
25
+ * only by the worker role (`WorkerModule`), so other roles get no processor and no BullMQ worker.
26
+ * The worker never starts by itself: the worker role (`WorkerRole`) starts it after the extensions
27
+ * loaded, and drains it on stop.
28
+ */
29
+ export declare class EvalWorkersModule {
30
+ static forRoot(config: KernelConfig): DynamicModule;
31
+ }
@@ -0,0 +1,114 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ var EvalWorkersModule_1;
11
+ import { hostname } from "node:os";
12
+ import { OnWorkerEvent, WorkerHost } from "@nestjs/bullmq";
13
+ import { Inject, Injectable, Module } from "@nestjs/common";
14
+ import { EventLogModule } from "../conversations/event-log.js";
15
+ import { IdentityModule } from "../identity/identity.module.js";
16
+ import { configuredProcessor } from "../infra/queue/configured-processor.js";
17
+ import { QueueModule } from "../infra/queue/queue.module.js";
18
+ import { runJob } from "../infra/queue/run-job.js";
19
+ import { ModelsModule } from "../models/models.module.js";
20
+ import { OrgLockModule } from "../orgs/org-lock.js";
21
+ import { ProvidersModule } from "../runtime/providers.js";
22
+ import { RuntimeModule } from "../runtime/runtime.module.js";
23
+ import { EvalBudgetModule } from "./budget.js";
24
+ import { EVAL_QUEUE_NAME, EvalJobs } from "./jobs.js";
25
+ import { EvalReplaySeeder } from "./run-replay.js";
26
+ import { EvalRunsService } from "./runs.service.js";
27
+ import { EvalSetsService } from "./sets.service.js";
28
+ import { TrajectoryService } from "./trajectory.service.js";
29
+ import { EVAL_MAX_STALLED_COUNT, EvalWorker } from "./worker.js";
30
+ /**
31
+ * Evals: the trajectory viewer, eval sets and cases, eval runs (the producer of
32
+ * `cap-kernel-evals`) and the run bookkeeping ({@link EvalBudgetModule}, re-exported).
33
+ */
34
+ let EvalsModule = class EvalsModule {
35
+ };
36
+ EvalsModule = __decorate([
37
+ Module({
38
+ imports: [
39
+ EventLogModule,
40
+ ModelsModule,
41
+ IdentityModule,
42
+ OrgLockModule,
43
+ ProvidersModule,
44
+ EvalBudgetModule,
45
+ QueueModule.registerQueue(EVAL_QUEUE_NAME),
46
+ ],
47
+ providers: [TrajectoryService, EvalSetsService, EvalRunsService, EvalJobs],
48
+ exports: [TrajectoryService, EvalSetsService, EvalRunsService, EvalJobs, EvalBudgetModule],
49
+ })
50
+ ], EvalsModule);
51
+ export { EvalsModule };
52
+ /** The consumer of `cap-kernel-evals` (one case per job): {@link EvalWorker}. */
53
+ let EvalsProcessor = class EvalsProcessor extends WorkerHost {
54
+ evals;
55
+ constructor(evals) {
56
+ super();
57
+ this.evals = evals;
58
+ }
59
+ process(job, token) {
60
+ return runJob(EVAL_QUEUE_NAME, job, () => this.evals.process(job, token));
61
+ }
62
+ failed(job, err) {
63
+ this.evals.onFailed(job, err);
64
+ }
65
+ error(err) {
66
+ this.evals.onError(err);
67
+ }
68
+ };
69
+ __decorate([
70
+ OnWorkerEvent("failed")
71
+ ], EvalsProcessor.prototype, "failed", null);
72
+ __decorate([
73
+ OnWorkerEvent("error")
74
+ ], EvalsProcessor.prototype, "error", null);
75
+ EvalsProcessor = __decorate([
76
+ Injectable(),
77
+ __param(0, Inject(EvalWorker))
78
+ ], EvalsProcessor);
79
+ export { EvalsProcessor };
80
+ /**
81
+ * The eval worker (step and full-run replays, the judge) over the runtime's loop and model
82
+ * registry, and the consumer of `cap-kernel-evals`, its options from the startup config
83
+ * (concurrency `evals.workerConcurrency`, the run queues' job lock and stalled detection). Imported
84
+ * only by the worker role (`WorkerModule`), so other roles get no processor and no BullMQ worker.
85
+ * The worker never starts by itself: the worker role (`WorkerRole`) starts it after the extensions
86
+ * loaded, and drains it on stop.
87
+ */
88
+ let EvalWorkersModule = EvalWorkersModule_1 = class EvalWorkersModule {
89
+ static forRoot(config) {
90
+ const { jobLockMs, stalledIntervalMs } = config.runtime;
91
+ return {
92
+ module: EvalWorkersModule_1,
93
+ imports: [EvalsModule, RuntimeModule, EventLogModule, ModelsModule],
94
+ providers: [
95
+ EvalReplaySeeder,
96
+ EvalWorker,
97
+ configuredProcessor(EvalsProcessor, EVAL_QUEUE_NAME, {
98
+ // the worker name is recorded on the job (BullMQ processedBy): which replica ran it
99
+ name: `${hostname()}-${process.pid}`,
100
+ concurrency: config.evals.workerConcurrency,
101
+ lockDuration: jobLockMs,
102
+ stalledInterval: stalledIntervalMs,
103
+ maxStalledCount: EVAL_MAX_STALLED_COUNT,
104
+ }),
105
+ ],
106
+ exports: [EvalWorker, EvalsProcessor],
107
+ };
108
+ }
109
+ };
110
+ EvalWorkersModule = EvalWorkersModule_1 = __decorate([
111
+ Module({})
112
+ // biome-ignore lint/complexity/noStaticOnlyClass: a Nest dynamic module
113
+ ], EvalWorkersModule);
114
+ export { EvalWorkersModule };
@@ -0,0 +1,20 @@
1
+ import type { Queue } from "bullmq";
2
+ /** 评测队列的 BullMQ 队列名(不含 `:`,C7)。 */
3
+ export declare const EVAL_QUEUE_NAME = "cap-kernel-evals";
4
+ /** 每个用例一个任务(C7;不含 `:`)。 */
5
+ export declare const evalJobId: (runId: string, caseId: string) => string;
6
+ /** 评测任务的数据。 */
7
+ export interface EvalJobData {
8
+ runId: string;
9
+ caseId: string;
10
+ orgId: string;
11
+ }
12
+ /**
13
+ * The producer of `cap-kernel-evals` (one job per case, {@link evalJobId}); the eval worker
14
+ * consumes it on the worker role. A leaf module: the runs service and the worker import it.
15
+ */
16
+ export declare class EvalJobs {
17
+ private readonly queue;
18
+ constructor(queue: Pick<Queue, "addBulk">);
19
+ enqueue(jobs: EvalJobData[]): Promise<void>;
20
+ }
@@ -0,0 +1,45 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { getQueueToken } from "@nestjs/bullmq";
11
+ import { Inject, Injectable } from "@nestjs/common";
12
+ /** 评测队列的 BullMQ 队列名(不含 `:`,C7)。 */
13
+ export const EVAL_QUEUE_NAME = "cap-kernel-evals";
14
+ /** 每个用例一个任务(C7;不含 `:`)。 */
15
+ export const evalJobId = (runId, caseId) => `eval-${runId}-${caseId}`;
16
+ /**
17
+ * The producer of `cap-kernel-evals` (one job per case, {@link evalJobId}); the eval worker
18
+ * consumes it on the worker role. A leaf module: the runs service and the worker import it.
19
+ */
20
+ let EvalJobs = class EvalJobs {
21
+ queue;
22
+ constructor(queue) {
23
+ this.queue = queue;
24
+ }
25
+ async enqueue(jobs) {
26
+ await this.queue.addBulk(jobs.map((data) => ({
27
+ name: "case",
28
+ data,
29
+ opts: {
30
+ jobId: evalJobId(data.runId, data.caseId),
31
+ // 处理函数外的暂时故障(PG / Redis):指数退避重试,不让整个用例一次失败。
32
+ // 结果按认领号写入,重做不会重复写结果
33
+ attempts: 3,
34
+ backoff: { type: "exponential", delay: 1000 },
35
+ removeOnComplete: true,
36
+ removeOnFail: 1000,
37
+ },
38
+ })));
39
+ }
40
+ };
41
+ EvalJobs = __decorate([
42
+ Injectable(),
43
+ __param(0, Inject(getQueueToken(EVAL_QUEUE_NAME)))
44
+ ], EvalJobs);
45
+ export { EvalJobs };
@@ -1,13 +1,17 @@
1
1
  import { type ContentBlock, type Logger, type ModelUsage, type StopReason } from "@capybara-hq/plugin-sdk";
2
- import type { KernelConfig } from "../config/schema.js";
3
- import type { EventLog } from "../conversations/event-log.js";
4
- import type { KernelDb } from "../db/kernel-schema.js";
2
+ import { type ModelRef } from "../agents/definition.js";
3
+ import { EventLog } from "../conversations/event-log.js";
4
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
5
+ import type { KernelConfigService } from "../infra/config/kernel-config.service.js";
6
+ import { KernelDb } from "../infra/database/kernel-db.js";
7
+ import { TransactionHost } from "../infra/database/transaction-host.js";
5
8
  import type { KyselyCheckpointSaver } from "../runtime/checkpointer.js";
6
9
  import type { LoopDeps } from "../runtime/langgraph-loop.js";
7
10
  import type { AgentLoop, LoopOutcome } from "../runtime/loop.js";
8
11
  import { type MediaSourceDeps } from "../runtime/model-call.js";
9
12
  import type { ProviderRegistry } from "../runtime/providers.js";
10
- import type { CaseSnapshot } from "./snapshot.js";
13
+ import type { RunFinish } from "../runtime/run-finish.js";
14
+ import type { CaseSnapshot, SnapshotEvent } from "./snapshot.js";
11
15
  import type { ResolvedCandidate } from "./step-replay.js";
12
16
  /**
13
17
  * 整轮回放(D2 / C6):在 `kind = 'eval'` 的隐藏对话里跑**同一个** `LangGraphLoop`,工具管线换成
@@ -50,9 +54,14 @@ export interface EvalReplayHooks {
50
54
  beforeJudge?(evalRunId: string): Promise<void>;
51
55
  }
52
56
  export interface RunReplayDeps {
53
- db: KernelDb;
57
+ /** The context-aware handle (reads, the eval conversation's cleanup). */
58
+ readonly db: KernelSchemaDb;
54
59
  eventLog: EventLog;
55
- config: () => KernelConfig;
60
+ /** Writes the seed (the eval conversation, its events, the run) in a transaction of its own. */
61
+ seeder: Pick<EvalReplaySeeder, "seed">;
62
+ /** Writes the replayed run's terminal state. */
63
+ runFinish: Pick<RunFinish, "finish">;
64
+ config: Pick<KernelConfigService, "get">;
56
65
  log: Logger;
57
66
  registry: Pick<ProviderRegistry, "resolve">;
58
67
  media?: MediaSourceDeps;
@@ -64,15 +73,54 @@ export interface RunReplayDeps {
64
73
  /** 本次执行是否仍持有结果的认领(失去认领 → 不再发请求);不给 = 不检查。 */
65
74
  stillClaimed?: () => Promise<boolean>;
66
75
  /**
67
- * 种子事务内调用:把评测对话记到结果上(以认领为条件)。返回 false = 已失去认领,种子回滚、抛 {@link ReplayClaimLost}。
76
+ * 种子事务内调用(its queries join the seed's transaction through the context-aware handle):把评测对话记到结果上
77
+ * (以认领为条件)。返回 false = 已失去认领,种子回滚、抛 {@link ReplayClaimLost}。
68
78
  */
69
- onSeeded?: (trx: KernelDb, conversationId: string) => Promise<boolean>;
79
+ onSeeded?: (conversationId: string) => Promise<boolean>;
70
80
  hooks?: EvalReplayHooks;
71
81
  }
72
82
  /** 写种子时发现已失去认领或运行已不在执行:本次执行停下,不留评测对话。 */
73
83
  export declare class ReplayClaimLost extends Error {
74
84
  constructor();
75
85
  }
86
+ /** What {@link EvalReplaySeeder.seed} writes. */
87
+ export interface ReplaySeed {
88
+ evalRunId: string;
89
+ orgId: string;
90
+ agentId: string;
91
+ accountId: string;
92
+ conversationId: string;
93
+ runId: string;
94
+ /** The original run's `run_started` seq: the seeds are the events before it. */
95
+ runStartedSeq: number;
96
+ /** The conversation's `consumed_seq` when the original run started. */
97
+ consumed: number;
98
+ seeds: SnapshotEvent[];
99
+ /** The run's trigger seq (the last user message before it). */
100
+ trigger: number;
101
+ agentVersion: number;
102
+ model: ModelRef;
103
+ /** The original run's `skills_catalog` event, its payload copied as is. */
104
+ catalog: {
105
+ payload: unknown;
106
+ } | undefined;
107
+ }
108
+ /**
109
+ * The seed of a full-run replay (C6): the `kind = 'eval'` conversation with the events before the
110
+ * original run at their original seqs, the run row and its `run_started` (and the original
111
+ * `skills_catalog`), in one transaction of its own.
112
+ */
113
+ export declare class EvalReplaySeeder {
114
+ private readonly db;
115
+ private readonly eventLog;
116
+ readonly txHost: TransactionHost;
117
+ constructor(db: KernelDb, eventLog: Pick<EventLog, "appendIn">, txHost: TransactionHost);
118
+ /**
119
+ * Writes the seed; `onSeeded` runs inside the same transaction (false = the claim is lost: the
120
+ * seed rolls back and {@link ReplayClaimLost} is thrown).
121
+ */
122
+ seed(p: ReplaySeed, onSeeded?: (conversationId: string) => Promise<boolean>): Promise<void>;
123
+ }
76
124
  /** 整轮回放被停下的原因(`run_aborted.detail`)。 */
77
125
  export type StopDetail = "cancelled" | "capped" | "too_many_errors" | "claim_lost" | "shutdown";
78
126
  /** 原运行(快照)的摘要,作为整轮回放的基线。 */