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

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 (670) 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 +187 -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 +280 -335
  21. package/dist/agents/definition.d.ts +39 -8
  22. package/dist/agents/definition.js +201 -17
  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 +39 -8
  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 +326 -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/claude/agents.js +13 -10
  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 +31 -14
  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 +10 -4
  70. package/dist/channels/cards.js +16 -8
  71. package/dist/channels/channels.module.d.ts +40 -0
  72. package/dist/channels/channels.module.js +128 -0
  73. package/dist/channels/connections.controller.d.ts +1 -1
  74. package/dist/channels/connections.controller.js +11 -6
  75. package/dist/channels/connections.service.d.ts +43 -21
  76. package/dist/channels/connections.service.js +236 -131
  77. package/dist/channels/inbound.d.ts +34 -38
  78. package/dist/channels/inbound.js +107 -41
  79. package/dist/channels/job-ids.d.ts +10 -0
  80. package/dist/channels/job-ids.js +10 -0
  81. package/dist/channels/jobs.d.ts +85 -0
  82. package/dist/channels/jobs.js +157 -0
  83. package/dist/channels/outbound.d.ts +60 -82
  84. package/dist/channels/outbound.js +165 -194
  85. package/dist/channels/supervisor.d.ts +88 -46
  86. package/dist/channels/supervisor.js +230 -132
  87. package/dist/channels/threads.d.ts +29 -8
  88. package/dist/channels/threads.js +71 -13
  89. package/dist/channels/webhook.d.ts +20 -14
  90. package/dist/channels/webhook.js +51 -20
  91. package/dist/config/load.d.ts +3 -2
  92. package/dist/config/load.js +3 -2
  93. package/dist/config/nacos-source.js +11 -2
  94. package/dist/config/schema.d.ts +1 -0
  95. package/dist/config/schema.js +12 -6
  96. package/dist/conversations/access.d.ts +29 -0
  97. package/dist/conversations/access.js +86 -0
  98. package/dist/conversations/artifacts.d.ts +11 -11
  99. package/dist/conversations/artifacts.js +36 -10
  100. package/dist/conversations/attachments.controller.d.ts +1 -1
  101. package/dist/conversations/attachments.controller.js +8 -6
  102. package/dist/conversations/attachments.module.d.ts +7 -0
  103. package/dist/conversations/attachments.module.js +25 -0
  104. package/dist/conversations/attachments.service.d.ts +30 -22
  105. package/dist/conversations/attachments.service.js +119 -46
  106. package/dist/conversations/conversations.controller.d.ts +8 -7
  107. package/dist/conversations/conversations.controller.js +59 -29
  108. package/dist/conversations/conversations.module.d.ts +8 -0
  109. package/dist/conversations/conversations.module.js +69 -0
  110. package/dist/conversations/conversations.service.d.ts +40 -38
  111. package/dist/conversations/conversations.service.js +130 -140
  112. package/dist/conversations/event-log.d.ts +39 -18
  113. package/dist/conversations/event-log.js +93 -27
  114. package/dist/conversations/events.d.ts +23 -3
  115. package/dist/conversations/events.js +26 -14
  116. package/dist/conversations/files.d.ts +10 -10
  117. package/dist/conversations/files.js +37 -11
  118. package/dist/conversations/idem-keys.d.ts +5 -0
  119. package/dist/conversations/idem-keys.js +5 -0
  120. package/dist/conversations/job-ids.d.ts +6 -0
  121. package/dist/conversations/job-ids.js +6 -0
  122. package/dist/conversations/outputs-read.d.ts +11 -11
  123. package/dist/conversations/outputs-read.js +31 -7
  124. package/dist/conversations/queue.d.ts +48 -56
  125. package/dist/conversations/queue.js +13 -289
  126. package/dist/conversations/queue.service.d.ts +60 -0
  127. package/dist/conversations/queue.service.js +343 -0
  128. package/dist/conversations/sandbox-status.d.ts +13 -10
  129. package/dist/conversations/sandbox-status.js +36 -8
  130. package/dist/conversations/titles.d.ts +71 -24
  131. package/dist/conversations/titles.js +159 -63
  132. package/dist/ctx/bus.js +9 -3
  133. package/dist/ctx/create-ctx.d.ts +6 -0
  134. package/dist/ctx/create-ctx.js +7 -9
  135. package/dist/ctx/lock.d.ts +7 -3
  136. package/dist/ctx/lock.js +9 -20
  137. package/dist/ctx/secrets.d.ts +10 -2
  138. package/dist/ctx/secrets.js +7 -3
  139. package/dist/db/kernel-schema.d.ts +4 -4
  140. package/dist/db/pool.d.ts +5 -0
  141. package/dist/db/pool.js +1 -0
  142. package/dist/errors.d.ts +1 -0
  143. package/dist/errors.js +1 -0
  144. package/dist/evals/budget.d.ts +42 -21
  145. package/dist/evals/budget.js +114 -62
  146. package/dist/evals/evals.module.d.ts +31 -0
  147. package/dist/evals/evals.module.js +114 -0
  148. package/dist/evals/jobs.d.ts +20 -0
  149. package/dist/evals/jobs.js +45 -0
  150. package/dist/evals/recorded-tools.d.ts +27 -1
  151. package/dist/evals/recorded-tools.js +85 -10
  152. package/dist/evals/run-replay.d.ts +61 -8
  153. package/dist/evals/run-replay.js +159 -85
  154. package/dist/evals/runs.controller.d.ts +1 -1
  155. package/dist/evals/runs.controller.js +17 -8
  156. package/dist/evals/runs.service.d.ts +23 -45
  157. package/dist/evals/runs.service.js +245 -234
  158. package/dist/evals/sets.controller.d.ts +1 -1
  159. package/dist/evals/sets.controller.js +17 -8
  160. package/dist/evals/sets.service.d.ts +22 -6
  161. package/dist/evals/sets.service.js +248 -194
  162. package/dist/evals/snapshot.d.ts +2 -2
  163. package/dist/evals/step-replay.d.ts +2 -2
  164. package/dist/evals/step-replay.js +1 -1
  165. package/dist/evals/trajectory.controller.d.ts +1 -1
  166. package/dist/evals/trajectory.controller.js +11 -7
  167. package/dist/evals/trajectory.d.ts +2 -2
  168. package/dist/evals/trajectory.service.d.ts +5 -4
  169. package/dist/evals/trajectory.service.js +30 -7
  170. package/dist/evals/worker.d.ts +44 -27
  171. package/dist/evals/worker.js +220 -121
  172. package/dist/extensions/admin-ops.d.ts +61 -33
  173. package/dist/extensions/admin-ops.js +248 -154
  174. package/dist/extensions/admin-view.d.ts +38 -27
  175. package/dist/extensions/admin-view.js +126 -55
  176. package/dist/extensions/approvals.d.ts +12 -8
  177. package/dist/extensions/approvals.js +73 -46
  178. package/dist/extensions/blobs.d.ts +27 -10
  179. package/dist/extensions/blobs.js +111 -45
  180. package/dist/extensions/bootstrap.d.ts +58 -31
  181. package/dist/extensions/bootstrap.js +175 -121
  182. package/dist/extensions/cli.d.ts +20 -10
  183. package/dist/extensions/cli.js +41 -96
  184. package/dist/extensions/config-issues.d.ts +7 -0
  185. package/dist/extensions/config-issues.js +31 -0
  186. package/dist/extensions/deployment-config-store.d.ts +49 -0
  187. package/dist/extensions/deployment-config-store.js +133 -0
  188. package/dist/extensions/deployment-config.d.ts +58 -67
  189. package/dist/extensions/deployment-config.js +202 -230
  190. package/dist/extensions/enabled.d.ts +5 -5
  191. package/dist/extensions/extensions.module.d.ts +8 -0
  192. package/dist/extensions/extensions.module.js +77 -0
  193. package/dist/extensions/hooks.d.ts +3 -2
  194. package/dist/extensions/hooks.js +1 -1
  195. package/dist/extensions/host.d.ts +72 -68
  196. package/dist/extensions/host.js +191 -152
  197. package/dist/extensions/installs.d.ts +49 -16
  198. package/dist/extensions/installs.js +128 -32
  199. package/dist/extensions/job-ids.d.ts +6 -0
  200. package/dist/extensions/job-ids.js +6 -0
  201. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  202. package/dist/extensions/lifecycle-topics.js +18 -0
  203. package/dist/extensions/lifecycle.d.ts +35 -47
  204. package/dist/extensions/lifecycle.js +103 -39
  205. package/dist/extensions/locks.d.ts +33 -0
  206. package/dist/extensions/locks.js +86 -0
  207. package/dist/extensions/migrate-lock.d.ts +3 -4
  208. package/dist/extensions/org-config.controller.d.ts +1 -1
  209. package/dist/extensions/org-config.controller.js +8 -5
  210. package/dist/extensions/org-config.d.ts +48 -46
  211. package/dist/extensions/org-config.js +284 -226
  212. package/dist/extensions/registry.d.ts +50 -2
  213. package/dist/extensions/registry.js +89 -4
  214. package/dist/extensions/sources.d.ts +12 -8
  215. package/dist/extensions/sources.js +34 -13
  216. package/dist/files/files.module.d.ts +3 -0
  217. package/dist/files/files.module.js +22 -0
  218. package/dist/files/previewers.controller.d.ts +7 -2
  219. package/dist/files/previewers.controller.js +17 -9
  220. package/dist/files/previewers.d.ts +13 -18
  221. package/dist/files/previewers.js +83 -36
  222. package/dist/http/adapter.d.ts +3 -0
  223. package/dist/http/adapter.js +25 -0
  224. package/dist/http/api.module.d.ts +3 -110
  225. package/dist/http/api.module.js +47 -355
  226. package/dist/http/app.d.ts +11 -15
  227. package/dist/http/app.js +17 -62
  228. package/dist/http/error-filter.module.d.ts +5 -0
  229. package/dist/http/error-filter.module.js +18 -0
  230. package/dist/http/error.filter.js +2 -2
  231. package/dist/identity/accounts.d.ts +82 -29
  232. package/dist/identity/accounts.js +294 -175
  233. package/dist/identity/api-tokens.d.ts +11 -7
  234. package/dist/identity/api-tokens.js +71 -44
  235. package/dist/identity/audit.d.ts +7 -4
  236. package/dist/identity/audit.js +5 -1
  237. package/dist/identity/auth.controller.d.ts +11 -10
  238. package/dist/identity/auth.controller.js +31 -25
  239. package/dist/identity/auth.guard.d.ts +3 -3
  240. package/dist/identity/auth.guard.js +6 -4
  241. package/dist/identity/binding.d.ts +9 -11
  242. package/dist/identity/binding.js +41 -13
  243. package/dist/identity/enterprise-admin.d.ts +18 -12
  244. package/dist/identity/enterprise-admin.js +67 -13
  245. package/dist/identity/external-identity-lock.d.ts +17 -0
  246. package/dist/identity/external-identity-lock.js +39 -0
  247. package/dist/identity/external.d.ts +19 -15
  248. package/dist/identity/external.js +163 -125
  249. package/dist/identity/identity.module.d.ts +6 -0
  250. package/dist/identity/identity.module.js +56 -0
  251. package/dist/identity/me.controller.d.ts +16 -15
  252. package/dist/identity/me.controller.js +37 -31
  253. package/dist/identity/sessions.d.ts +12 -10
  254. package/dist/identity/sessions.js +74 -42
  255. package/dist/identity/settings.d.ts +20 -14
  256. package/dist/identity/settings.js +86 -58
  257. package/dist/identity/sso.controller.d.ts +7 -7
  258. package/dist/identity/sso.controller.js +13 -9
  259. package/dist/identity/sso.d.ts +9 -12
  260. package/dist/identity/sso.js +54 -24
  261. package/dist/inbox/inbox.module.d.ts +3 -0
  262. package/dist/inbox/inbox.module.js +22 -0
  263. package/dist/inbox/inbox.service.d.ts +7 -9
  264. package/dist/inbox/inbox.service.js +32 -11
  265. package/dist/index.d.ts +16 -11
  266. package/dist/index.js +9 -6
  267. package/dist/infra/cache/cache.module.d.ts +3 -0
  268. package/dist/infra/cache/cache.module.js +16 -0
  269. package/dist/infra/cache/cache.service.d.ts +21 -0
  270. package/dist/infra/cache/cache.service.js +80 -0
  271. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  272. package/dist/infra/cache/cacheable.decorator.js +83 -0
  273. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  274. package/dist/infra/cli/kernel-cli.module.js +165 -0
  275. package/dist/infra/close-within.d.ts +15 -0
  276. package/dist/infra/close-within.js +36 -0
  277. package/dist/infra/config/config.module.d.ts +13 -0
  278. package/dist/infra/config/config.module.js +39 -0
  279. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  280. package/dist/infra/config/kernel-config.service.js +126 -0
  281. package/dist/infra/database/after-commit.d.ts +6 -0
  282. package/dist/infra/database/after-commit.js +9 -0
  283. package/dist/infra/database/database.module.d.ts +25 -0
  284. package/dist/infra/database/database.module.js +90 -0
  285. package/dist/infra/database/kernel-db.d.ts +22 -0
  286. package/dist/infra/database/kernel-db.js +65 -0
  287. package/dist/infra/database/transaction-host.d.ts +50 -0
  288. package/dist/infra/database/transaction-host.js +125 -0
  289. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  290. package/dist/infra/database/transactional.decorator.js +27 -0
  291. package/dist/infra/database/xact-lock.d.ts +17 -0
  292. package/dist/infra/database/xact-lock.js +43 -0
  293. package/dist/infra/events/kernel-events.d.ts +96 -0
  294. package/dist/infra/events/kernel-events.js +65 -0
  295. package/dist/infra/health/health.controller.d.ts +26 -0
  296. package/dist/infra/health/health.controller.js +104 -0
  297. package/dist/infra/health/health.module.d.ts +9 -0
  298. package/dist/infra/health/health.module.js +24 -0
  299. package/dist/infra/health/health.options.d.ts +10 -0
  300. package/dist/infra/health/health.options.js +15 -0
  301. package/dist/infra/health/shutdown-state.d.ts +6 -0
  302. package/dist/infra/health/shutdown-state.js +2 -0
  303. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  304. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  305. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  306. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  307. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  308. package/dist/infra/lifecycle/process-guards.js +86 -0
  309. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  310. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  311. package/dist/infra/lock/key-template.d.ts +13 -0
  312. package/dist/infra/lock/key-template.js +46 -0
  313. package/dist/infra/lock/lock.module.d.ts +3 -0
  314. package/dist/infra/lock/lock.module.js +16 -0
  315. package/dist/infra/lock/lock.service.d.ts +120 -0
  316. package/dist/infra/lock/lock.service.js +343 -0
  317. package/dist/infra/lock/shared-lease.d.ts +44 -0
  318. package/dist/infra/lock/shared-lease.js +121 -0
  319. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  320. package/dist/infra/lock/with-lock.decorator.js +49 -0
  321. package/dist/infra/logging/logging.module.d.ts +16 -0
  322. package/dist/infra/logging/logging.module.js +34 -0
  323. package/dist/infra/queue/configured-processor.d.ts +18 -0
  324. package/dist/infra/queue/configured-processor.js +23 -0
  325. package/dist/infra/queue/job-failure.d.ts +18 -0
  326. package/dist/infra/queue/job-failure.js +26 -0
  327. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  328. package/dist/infra/queue/queue-shutdown.js +81 -0
  329. package/dist/infra/queue/queue.module.d.ts +16 -0
  330. package/dist/infra/queue/queue.module.js +61 -0
  331. package/dist/infra/queue/redis-connection.d.ts +7 -0
  332. package/dist/infra/queue/redis-connection.js +18 -0
  333. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  334. package/dist/infra/queue/retired-schedulers.js +9 -0
  335. package/dist/infra/queue/run-job.d.ts +16 -0
  336. package/dist/infra/queue/run-job.js +19 -0
  337. package/dist/infra/redis/redis.module.d.ts +24 -0
  338. package/dist/infra/redis/redis.module.js +87 -0
  339. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  340. package/dist/infra/schedule/cron-tick.js +25 -0
  341. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  342. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  343. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  344. package/dist/infra/schedule/locked-interval.js +190 -0
  345. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  346. package/dist/infra/schedule/locked-tick.js +137 -0
  347. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  348. package/dist/infra/schedule/schedule.module.js +27 -0
  349. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  350. package/dist/infra/schedule/scheduled-runs.js +163 -0
  351. package/dist/infra/swagger/swagger.d.ts +16 -0
  352. package/dist/infra/swagger/swagger.js +31 -0
  353. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  354. package/dist/infra/throttler/credential-throttler.js +77 -0
  355. package/dist/infra/throttler/named-throttlers.d.ts +31 -0
  356. package/dist/infra/throttler/named-throttlers.js +119 -0
  357. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  358. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  359. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  360. package/dist/infra/throttler/throttler.guard.js +68 -0
  361. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  362. package/dist/infra/throttler/throttler.module.js +53 -0
  363. package/dist/infra/tokens.d.ts +15 -0
  364. package/dist/infra/tokens.js +15 -0
  365. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  366. package/dist/infra/validation/create-zod-dto.js +35 -0
  367. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  368. package/dist/infra/validation/parse-with-zod.js +12 -0
  369. package/dist/infra/validation/validation.module.d.ts +3 -0
  370. package/dist/infra/validation/validation.module.js +16 -0
  371. package/dist/infra/validation/zod-params.d.ts +7 -0
  372. package/dist/infra/validation/zod-params.js +42 -0
  373. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  374. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  375. package/dist/kernel.d.ts +9 -244
  376. package/dist/kernel.js +8 -1305
  377. package/dist/kernel.module.d.ts +17 -0
  378. package/dist/kernel.module.js +136 -0
  379. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  380. package/dist/lifecycle/kernel-lifecycle.js +456 -0
  381. package/dist/lifecycle/tokens.d.ts +3 -0
  382. package/dist/lifecycle/tokens.js +3 -0
  383. package/dist/log-context.d.ts +2 -0
  384. package/dist/log-context.js +4 -0
  385. package/dist/models/models.module.d.ts +3 -0
  386. package/dist/models/models.module.js +24 -0
  387. package/dist/models/prices.d.ts +8 -2
  388. package/dist/models/prices.js +65 -37
  389. package/dist/models/purposes.controller.d.ts +1 -1
  390. package/dist/models/purposes.controller.js +5 -6
  391. package/dist/models/purposes.d.ts +35 -13
  392. package/dist/models/purposes.js +101 -51
  393. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  394. package/dist/orgs/directory-sync.controller.js +2 -2
  395. package/dist/orgs/directory-sync.d.ts +61 -31
  396. package/dist/orgs/directory-sync.js +212 -125
  397. package/dist/orgs/invitations.controller.d.ts +8 -8
  398. package/dist/orgs/invitations.controller.js +27 -26
  399. package/dist/orgs/invitations.service.d.ts +12 -9
  400. package/dist/orgs/invitations.service.js +130 -92
  401. package/dist/orgs/job-ids.d.ts +8 -0
  402. package/dist/orgs/job-ids.js +8 -0
  403. package/dist/orgs/members.service.d.ts +19 -12
  404. package/dist/orgs/members.service.js +161 -117
  405. package/dist/orgs/offboarding.d.ts +54 -57
  406. package/dist/orgs/offboarding.js +161 -71
  407. package/dist/orgs/org-lock.d.ts +28 -19
  408. package/dist/orgs/org-lock.js +81 -35
  409. package/dist/orgs/org.guard.d.ts +1 -1
  410. package/dist/orgs/org.guard.js +2 -2
  411. package/dist/orgs/orgs.controller.d.ts +13 -13
  412. package/dist/orgs/orgs.controller.js +29 -17
  413. package/dist/orgs/orgs.module.d.ts +6 -0
  414. package/dist/orgs/orgs.module.js +68 -0
  415. package/dist/orgs/orgs.service.d.ts +30 -19
  416. package/dist/orgs/orgs.service.js +139 -86
  417. package/dist/orgs/settings.controller.d.ts +1 -1
  418. package/dist/orgs/settings.controller.js +8 -6
  419. package/dist/orgs/settings.service.d.ts +16 -10
  420. package/dist/orgs/settings.service.js +77 -48
  421. package/dist/overrides.d.ts +56 -0
  422. package/dist/overrides.js +30 -0
  423. package/dist/roles/gateway-role.d.ts +43 -0
  424. package/dist/roles/gateway-role.js +98 -0
  425. package/dist/roles/gateway.module.d.ts +8 -0
  426. package/dist/roles/gateway.module.js +28 -0
  427. package/dist/roles/worker-role.d.ts +63 -0
  428. package/dist/roles/worker-role.js +144 -0
  429. package/dist/roles/worker.module.d.ts +14 -0
  430. package/dist/roles/worker.module.js +90 -0
  431. package/dist/runtime/abort.js +19 -2
  432. package/dist/runtime/checkpointer.d.ts +8 -3
  433. package/dist/runtime/checkpointer.js +87 -55
  434. package/dist/runtime/context/build.d.ts +6 -6
  435. package/dist/runtime/context/build.js +18 -8
  436. package/dist/runtime/context/claude-tools.d.ts +2 -1
  437. package/dist/runtime/context/claude-tools.js +9 -10
  438. package/dist/runtime/context/legacy-text.d.ts +22 -0
  439. package/dist/runtime/context/legacy-text.js +37 -0
  440. package/dist/runtime/context/skills.d.ts +29 -11
  441. package/dist/runtime/context/skills.js +37 -30
  442. package/dist/runtime/conversation-lock.d.ts +20 -11
  443. package/dist/runtime/conversation-lock.js +62 -72
  444. package/dist/runtime/hook-calls.d.ts +3 -3
  445. package/dist/runtime/hook-calls.js +1 -6
  446. package/dist/runtime/job-ids.d.ts +10 -0
  447. package/dist/runtime/job-ids.js +10 -0
  448. package/dist/runtime/langgraph-loop.js +1 -1
  449. package/dist/runtime/loop.d.ts +8 -1
  450. package/dist/runtime/loop.js +14 -0
  451. package/dist/runtime/maintenance-queue.d.ts +10 -0
  452. package/dist/runtime/maintenance-queue.js +10 -0
  453. package/dist/runtime/maintenance.d.ts +45 -74
  454. package/dist/runtime/maintenance.js +139 -137
  455. package/dist/runtime/model-call.d.ts +7 -4
  456. package/dist/runtime/model-call.js +25 -58
  457. package/dist/runtime/providers.d.ts +17 -6
  458. package/dist/runtime/providers.js +66 -25
  459. package/dist/runtime/quota.d.ts +17 -3
  460. package/dist/runtime/quota.js +27 -2
  461. package/dist/runtime/retired-schedulers.d.ts +7 -0
  462. package/dist/runtime/retired-schedulers.js +31 -0
  463. package/dist/runtime/run-control.d.ts +33 -0
  464. package/dist/runtime/run-control.js +77 -0
  465. package/dist/runtime/run-finish.d.ts +27 -18
  466. package/dist/runtime/run-finish.js +98 -51
  467. package/dist/runtime/run-jobs.d.ts +48 -0
  468. package/dist/runtime/run-jobs.js +95 -0
  469. package/dist/runtime/run-processors.d.ts +60 -0
  470. package/dist/runtime/run-processors.js +185 -0
  471. package/dist/runtime/run-queue.d.ts +32 -57
  472. package/dist/runtime/run-queue.js +291 -295
  473. package/dist/runtime/run-steps.d.ts +39 -0
  474. package/dist/runtime/run-steps.js +96 -0
  475. package/dist/runtime/run-worker.d.ts +122 -76
  476. package/dist/runtime/run-worker.js +343 -229
  477. package/dist/runtime/runtime.module.d.ts +10 -0
  478. package/dist/runtime/runtime.module.js +112 -0
  479. package/dist/runtime/step-log.d.ts +40 -0
  480. package/dist/runtime/step-log.js +94 -0
  481. package/dist/runtime/stream.controller.d.ts +5 -8
  482. package/dist/runtime/stream.controller.js +14 -12
  483. package/dist/runtime/stream.d.ts +24 -6
  484. package/dist/runtime/stream.js +78 -7
  485. package/dist/runtime/subagents/child.d.ts +3 -44
  486. package/dist/runtime/subagents/child.js +0 -79
  487. package/dist/runtime/subagents/definition.d.ts +5 -10
  488. package/dist/runtime/subagents/definition.js +13 -14
  489. package/dist/runtime/subagents/dispatch.d.ts +89 -8
  490. package/dist/runtime/subagents/dispatch.js +137 -142
  491. package/dist/runtime/subagents/limits.d.ts +9 -4
  492. package/dist/runtime/subagents/limits.js +4 -2
  493. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  494. package/dist/runtime/subagents/org-agents.js +3 -2
  495. package/dist/runtime/subagents/progress.d.ts +2 -2
  496. package/dist/runtime/subagents/roster.d.ts +4 -4
  497. package/dist/runtime/subagents/roster.js +2 -2
  498. package/dist/runtime/subagents/skill-fork.d.ts +8 -9
  499. package/dist/runtime/subagents/skill-fork.js +17 -6
  500. package/dist/runtime/subagents/subagents.service.d.ts +40 -0
  501. package/dist/runtime/subagents/subagents.service.js +101 -0
  502. package/dist/runtime/usage-report.d.ts +94 -52
  503. package/dist/runtime/usage-report.js +200 -100
  504. package/dist/runtime/waits.d.ts +127 -59
  505. package/dist/runtime/waits.js +433 -210
  506. package/dist/sandbox/job-ids.d.ts +10 -0
  507. package/dist/sandbox/job-ids.js +10 -0
  508. package/dist/sandbox/jobs.d.ts +41 -0
  509. package/dist/sandbox/jobs.js +113 -0
  510. package/dist/sandbox/leases.d.ts +39 -31
  511. package/dist/sandbox/leases.js +117 -257
  512. package/dist/sandbox/providers.d.ts +19 -0
  513. package/dist/sandbox/providers.js +38 -0
  514. package/dist/sandbox/sandbox.module.d.ts +8 -0
  515. package/dist/sandbox/sandbox.module.js +30 -0
  516. package/dist/sandbox/sandbox.service.d.ts +24 -29
  517. package/dist/sandbox/sandbox.service.js +106 -75
  518. package/dist/skills/catalog.d.ts +37 -24
  519. package/dist/skills/catalog.js +100 -57
  520. package/dist/skills/changes.controller.d.ts +4 -4
  521. package/dist/skills/changes.controller.js +15 -9
  522. package/dist/skills/changes.service.d.ts +30 -20
  523. package/dist/skills/changes.service.js +425 -367
  524. package/dist/skills/invocable.controller.d.ts +1 -1
  525. package/dist/skills/invocable.controller.js +8 -5
  526. package/dist/skills/invocation-keys.d.ts +1 -1
  527. package/dist/skills/invocation-keys.js +1 -1
  528. package/dist/skills/invoke.d.ts +17 -16
  529. package/dist/skills/invoke.js +53 -21
  530. package/dist/skills/skills.controller.d.ts +1 -1
  531. package/dist/skills/skills.controller.js +11 -6
  532. package/dist/skills/skills.module.d.ts +6 -0
  533. package/dist/skills/skills.module.js +30 -0
  534. package/dist/skills/skills.service.d.ts +47 -30
  535. package/dist/skills/skills.service.js +221 -158
  536. package/dist/storage/job-ids.d.ts +6 -0
  537. package/dist/storage/job-ids.js +6 -0
  538. package/dist/storage/purge.d.ts +22 -7
  539. package/dist/storage/purge.js +55 -3
  540. package/dist/storage/storage.module.d.ts +6 -0
  541. package/dist/storage/storage.module.js +23 -0
  542. package/dist/storage/storage.service.d.ts +18 -4
  543. package/dist/storage/storage.service.js +44 -3
  544. package/dist/tools/approvals.controller.d.ts +1 -1
  545. package/dist/tools/approvals.controller.js +12 -8
  546. package/dist/tools/approvals.service.d.ts +33 -25
  547. package/dist/tools/approvals.service.js +343 -259
  548. package/dist/tools/breaker.d.ts +2 -2
  549. package/dist/tools/breaker.js +21 -3
  550. package/dist/tools/builtin-names.d.ts +73 -0
  551. package/dist/tools/builtin-names.js +116 -0
  552. package/dist/tools/builtins/agent.d.ts +7 -7
  553. package/dist/tools/builtins/agent.js +7 -11
  554. package/dist/tools/builtins/ask-user.d.ts +3 -3
  555. package/dist/tools/builtins/ask-user.js +3 -3
  556. package/dist/tools/builtins/builtin-tools.d.ts +21 -0
  557. package/dist/tools/builtins/builtin-tools.js +80 -0
  558. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  559. package/dist/tools/builtins/read-tool-output.js +3 -3
  560. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  561. package/dist/tools/builtins/sandbox/bash.js +33 -30
  562. package/dist/tools/builtins/sandbox/common.d.ts +5 -4
  563. package/dist/tools/builtins/sandbox/common.js +2 -2
  564. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  565. package/dist/tools/builtins/sandbox/deliver.js +13 -13
  566. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  567. package/dist/tools/builtins/sandbox/edit.js +42 -31
  568. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  569. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  570. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  571. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  572. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  573. package/dist/tools/builtins/sandbox/glob.js +6 -6
  574. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  575. package/dist/tools/builtins/sandbox/grep.js +149 -32
  576. package/dist/tools/builtins/sandbox/index.d.ts +1 -1
  577. package/dist/tools/builtins/sandbox/index.js +1 -1
  578. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  579. package/dist/tools/builtins/sandbox/read.js +22 -15
  580. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  581. package/dist/tools/builtins/sandbox/write.js +38 -34
  582. package/dist/tools/builtins/skill-load.d.ts +6 -6
  583. package/dist/tools/builtins/skill-load.js +33 -17
  584. package/dist/tools/builtins/skill-write.d.ts +4 -4
  585. package/dist/tools/builtins/skill-write.js +10 -10
  586. package/dist/tools/builtins/tool-search.d.ts +13 -9
  587. package/dist/tools/builtins/tool-search.js +25 -14
  588. package/dist/tools/canonical-json.d.ts +6 -0
  589. package/dist/tools/canonical-json.js +16 -0
  590. package/dist/tools/connector-content.controller.d.ts +1 -1
  591. package/dist/tools/connector-content.controller.js +11 -6
  592. package/dist/tools/connector-content.d.ts +12 -15
  593. package/dist/tools/connector-content.js +53 -18
  594. package/dist/tools/connectors.controller.d.ts +1 -1
  595. package/dist/tools/connectors.controller.js +21 -10
  596. package/dist/tools/connectors.service.d.ts +31 -13
  597. package/dist/tools/connectors.service.js +438 -348
  598. package/dist/tools/credentials.d.ts +17 -20
  599. package/dist/tools/credentials.js +55 -34
  600. package/dist/tools/display-names.d.ts +9 -0
  601. package/dist/tools/display-names.js +24 -0
  602. package/dist/tools/drift.d.ts +29 -41
  603. package/dist/tools/drift.js +116 -84
  604. package/dist/tools/elicitation.js +1 -1
  605. package/dist/tools/info.d.ts +32 -13
  606. package/dist/tools/info.js +88 -39
  607. package/dist/tools/job-ids.d.ts +13 -0
  608. package/dist/tools/job-ids.js +15 -0
  609. package/dist/tools/jobs.d.ts +24 -0
  610. package/dist/tools/jobs.js +69 -0
  611. package/dist/tools/legacy-data.d.ts +34 -0
  612. package/dist/tools/legacy-data.js +76 -0
  613. package/dist/tools/legacy-keys.d.ts +51 -0
  614. package/dist/tools/legacy-keys.js +115 -0
  615. package/dist/tools/naming.d.ts +1 -5
  616. package/dist/tools/naming.js +1 -7
  617. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  618. package/dist/tools/oauth/flow-paths.js +38 -0
  619. package/dist/tools/oauth/flow.d.ts +30 -30
  620. package/dist/tools/oauth/flow.js +109 -81
  621. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  622. package/dist/tools/oauth/oauth.controller.js +12 -9
  623. package/dist/tools/oauth/tokens.d.ts +11 -3
  624. package/dist/tools/oauth/tokens.js +15 -14
  625. package/dist/tools/outputs.d.ts +13 -4
  626. package/dist/tools/outputs.js +48 -4
  627. package/dist/tools/pipeline.d.ts +72 -50
  628. package/dist/tools/pipeline.js +239 -100
  629. package/dist/tools/policy.d.ts +3 -16
  630. package/dist/tools/policy.js +13 -19
  631. package/dist/tools/questions.controller.d.ts +2 -2
  632. package/dist/tools/questions.controller.js +9 -6
  633. package/dist/tools/questions.service.d.ts +26 -25
  634. package/dist/tools/questions.service.js +201 -142
  635. package/dist/tools/registry.d.ts +43 -38
  636. package/dist/tools/registry.js +100 -72
  637. package/dist/tools/resources.d.ts +1 -1
  638. package/dist/tools/resources.js +1 -1
  639. package/dist/tools/specs.d.ts +5 -4
  640. package/dist/tools/specs.js +3 -1
  641. package/dist/tools/tools.module.d.ts +10 -0
  642. package/dist/tools/tools.module.js +91 -0
  643. package/dist/ui/call-extension.d.ts +16 -0
  644. package/dist/ui/call-extension.js +38 -0
  645. package/dist/ui/embed-token.d.ts +9 -5
  646. package/dist/ui/embed-token.js +34 -6
  647. package/dist/ui/ui-stream.d.ts +22 -17
  648. package/dist/ui/ui-stream.js +72 -12
  649. package/dist/ui/ui.module.d.ts +7 -0
  650. package/dist/ui/ui.module.js +28 -0
  651. package/dist/ui/views.controller.d.ts +14 -12
  652. package/dist/ui/views.controller.js +32 -25
  653. package/dist/ui/views.d.ts +9 -57
  654. package/dist/ui/views.js +43 -45
  655. package/package.json +10 -3
  656. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  657. package/dist/http/health.controller.d.ts +0 -26
  658. package/dist/http/health.controller.js +0 -79
  659. package/dist/http/tokens.d.ts +0 -131
  660. package/dist/http/tokens.js +0 -131
  661. package/dist/http/zod.pipe.d.ts +0 -8
  662. package/dist/http/zod.pipe.js +0 -14
  663. package/dist/identity/rate-limit.d.ts +0 -55
  664. package/dist/identity/rate-limit.js +0 -121
  665. package/dist/sandbox/lifecycle.d.ts +0 -21
  666. package/dist/sandbox/lifecycle.js +0 -68
  667. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  668. package/dist/tools/builtins/sandbox/names.js +0 -20
  669. /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
  670. /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
@@ -0,0 +1,144 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { Inject, Injectable } from "@nestjs/common";
11
+ import { ChannelsProcessor } from "../channels/channels.module.js";
12
+ import { ChannelOutbound } from "../channels/outbound.js";
13
+ import { TitleQueue } from "../conversations/titles.js";
14
+ import { EvalsProcessor } from "../evals/evals.module.js";
15
+ import { EvalWorker } from "../evals/worker.js";
16
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
17
+ import { LockedIntervalScheduler } from "../infra/schedule/locked-interval.js";
18
+ import { ScheduledRuns } from "../infra/schedule/scheduled-runs.js";
19
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
20
+ import { MaintenanceProcessor } from "../runtime/maintenance.js";
21
+ import { RunsProcessor, SubagentRunsProcessor, TitleProcessor, UsageReportProcessor, } from "../runtime/run-processors.js";
22
+ import { RunWorker } from "../runtime/run-worker.js";
23
+ import { UsageReporter } from "../runtime/usage-report.js";
24
+ /**
25
+ * The worker role's parts, driven by `KernelLifecycle` at fixed points of its start order and stop
26
+ * phases (so they stay ordered after the extension load and before the extension host closes): the
27
+ * queue consumers (runs, sub-agent runs, evals, maintenance, channel deliveries, `usage.report`,
28
+ * titles) and the schedulers of the `@LockedCron` / `@LockedInterval` jobs. Provided only by
29
+ * `WorkerModule`, so a process without the worker role has none of them.
30
+ */
31
+ let WorkerRole = class WorkerRole {
32
+ log;
33
+ intervals;
34
+ scheduledRuns;
35
+ runWorker;
36
+ evalWorker;
37
+ usageReport;
38
+ titles;
39
+ channelOutbound;
40
+ runsProcessor;
41
+ subagentRunsProcessor;
42
+ usageProcessor;
43
+ titleProcessor;
44
+ channelsProcessor;
45
+ evalsProcessor;
46
+ maintenanceProcessor;
47
+ /** The startup config (the roles). */
48
+ config;
49
+ /** The run worker was started: the runs phase drains it. */
50
+ runsStarted = false;
51
+ /** The eval worker was started: the runs phase drains it. */
52
+ evalsStarted = false;
53
+ constructor(config, log, intervals, scheduledRuns, runWorker, evalWorker, usageReport, titles, channelOutbound, runsProcessor, subagentRunsProcessor, usageProcessor, titleProcessor, channelsProcessor, evalsProcessor, maintenanceProcessor) {
54
+ this.log = log;
55
+ this.intervals = intervals;
56
+ this.scheduledRuns = scheduledRuns;
57
+ this.runWorker = runWorker;
58
+ this.evalWorker = evalWorker;
59
+ this.usageReport = usageReport;
60
+ this.titles = titles;
61
+ this.channelOutbound = channelOutbound;
62
+ this.runsProcessor = runsProcessor;
63
+ this.subagentRunsProcessor = subagentRunsProcessor;
64
+ this.usageProcessor = usageProcessor;
65
+ this.titleProcessor = titleProcessor;
66
+ this.channelsProcessor = channelsProcessor;
67
+ this.evalsProcessor = evalsProcessor;
68
+ this.maintenanceProcessor = maintenanceProcessor;
69
+ this.config = config.get();
70
+ }
71
+ /**
72
+ * Starts the queue consumers (after the extension load), then opens the schedules' start gate:
73
+ * the cron and interval timers were armed at application bootstrap, but every tick before this
74
+ * point skipped (decision R21 of the Nest kernel spec); the `@LockedInterval({ runOnStart })`
75
+ * jobs run now, in the background (once across replicas starting together). `checkpoint` throws
76
+ * when a stop began meanwhile.
77
+ */
78
+ async start(checkpoint) {
79
+ // both run queues' @Processor workers (built with the run config, never autorun)
80
+ this.runWorker.start([this.runsProcessor.worker, this.subagentRunsProcessor.worker]);
81
+ this.runsStarted = true;
82
+ this.evalWorker.start(this.evalsProcessor.worker);
83
+ this.evalsStarted = true;
84
+ // The maintenance queue: remove the retired job schedulers (idempotent, harmless when several
85
+ // replicas do it), then start its one consumer. A failure is only logged and does not stop the
86
+ // start (like the workers' connection errors): any worker replica removes them on its next start.
87
+ try {
88
+ await this.maintenanceProcessor.removeRetiredSchedulers();
89
+ }
90
+ catch (err) {
91
+ this.log.error("cannot register maintenance job schedulers", { err });
92
+ }
93
+ checkpoint();
94
+ this.maintenanceProcessor.start();
95
+ this.channelOutbound.startWorker(this.channelsProcessor.worker);
96
+ this.usageReport.startWorker(this.usageProcessor.worker);
97
+ this.titles.startWorker(this.titleProcessor.worker);
98
+ if (!this.config.roles.includes("gateway")) {
99
+ this.log.info("this process runs the worker role without gateway; channel long connections are held only by processes with the gateway role", { roles: this.config.roles });
100
+ }
101
+ // The gate opens: from here on ticks run; the runOnStart jobs run once now, in the background
102
+ this.scheduledRuns.open();
103
+ this.intervals.runStartJobs();
104
+ }
105
+ /**
106
+ * Closes the start gate and stops the schedulers (no new tick; the runs in progress get the stop
107
+ * signal) and returns the wait for those runs, at most `budgetMs`.
108
+ */
109
+ stopSchedules(budgetMs) {
110
+ return this.scheduledRuns.stop(budgetMs);
111
+ }
112
+ /** The runs phase: this process's runs stop at their next step boundary (undefined: never started). */
113
+ drainRuns(budgetMs) {
114
+ return this.runsStarted ? this.runWorker.close(budgetMs) : undefined;
115
+ }
116
+ /** The eval cases in progress stop (undefined: never started). */
117
+ drainEvals(budgetMs) {
118
+ return this.evalsStarted ? this.evalWorker.close(budgetMs) : undefined;
119
+ }
120
+ /** Closes the maintenance queue's worker. */
121
+ closeMaintenance() {
122
+ return this.maintenanceProcessor.worker.close();
123
+ }
124
+ };
125
+ WorkerRole = __decorate([
126
+ Injectable(),
127
+ __param(0, Inject(KernelConfigService)),
128
+ __param(1, Inject(KERNEL_LOGGER)),
129
+ __param(2, Inject(LockedIntervalScheduler)),
130
+ __param(3, Inject(ScheduledRuns)),
131
+ __param(4, Inject(RunWorker)),
132
+ __param(5, Inject(EvalWorker)),
133
+ __param(6, Inject(UsageReporter)),
134
+ __param(7, Inject(TitleQueue)),
135
+ __param(8, Inject(ChannelOutbound)),
136
+ __param(9, Inject(RunsProcessor)),
137
+ __param(10, Inject(SubagentRunsProcessor)),
138
+ __param(11, Inject(UsageReportProcessor)),
139
+ __param(12, Inject(TitleProcessor)),
140
+ __param(13, Inject(ChannelsProcessor)),
141
+ __param(14, Inject(EvalsProcessor)),
142
+ __param(15, Inject(MaintenanceProcessor))
143
+ ], WorkerRole);
144
+ export { WorkerRole };
@@ -0,0 +1,14 @@
1
+ import { type DynamicModule } from "@nestjs/common";
2
+ import type { KernelConfig } from "../config/schema.js";
3
+ /**
4
+ * The worker role (nest kernel spec §2), imported by `KernelModule` only when `roles` includes
5
+ * `worker`: the cron scheduler and the `@LockedInterval` scheduler (`KernelScheduleModule`, the one
6
+ * place `ScheduleModule.forRoot` is imported), every fixed-period job (`@LockedCron` /
7
+ * `@LockedInterval`, each once per tick across replicas), every queue consumer (`@Processor`: runs,
8
+ * sub-agent runs, `usage.report`, titles, evals, maintenance, channel deliveries) and
9
+ * {@link WorkerRole}, which `KernelLifecycle` drives. A process without the worker role runs no cron
10
+ * and no BullMQ worker (the queues' producers exist on every role).
11
+ */
12
+ export declare class WorkerModule {
13
+ static forRoot(config: KernelConfig): DynamicModule;
14
+ }
@@ -0,0 +1,90 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var WorkerModule_1;
8
+ import { Module } from "@nestjs/common";
9
+ import { CatalogModule } from "../catalog/catalog.module.js";
10
+ import { CatalogJobs } from "../catalog/jobs.js";
11
+ import { ChannelsModule, ChannelWorkersModule } from "../channels/channels.module.js";
12
+ import { GatewayCheckJob } from "../channels/supervisor.js";
13
+ import { AttachmentsModule } from "../conversations/attachments.module.js";
14
+ import { AttachmentCleanupJob } from "../conversations/attachments.service.js";
15
+ import { TitlesModule } from "../conversations/titles.js";
16
+ import { EvalWorkersModule } from "../evals/evals.module.js";
17
+ import { ExtensionsModule } from "../extensions/extensions.module.js";
18
+ import { PluginsReconcileJob } from "../extensions/lifecycle.js";
19
+ import { KernelScheduleModule } from "../infra/schedule/schedule.module.js";
20
+ import { DirectoryScanJob } from "../orgs/directory-sync.js";
21
+ import { OffboardSweepJob } from "../orgs/offboarding.js";
22
+ import { OrgsModule } from "../orgs/orgs.module.js";
23
+ import { MaintenanceModule } from "../runtime/maintenance.js";
24
+ import { RuntimeWorkersModule } from "../runtime/run-processors.js";
25
+ import { RuntimeModule } from "../runtime/runtime.module.js";
26
+ import { UsageReportModule, UsageSweepJob } from "../runtime/usage-report.js";
27
+ import { WaitSweepJob } from "../runtime/waits.js";
28
+ import { SandboxSweepJobs } from "../sandbox/jobs.js";
29
+ import { SandboxModule } from "../sandbox/sandbox.module.js";
30
+ import { StoragePurgeJob } from "../storage/purge.js";
31
+ import { StorageModule } from "../storage/storage.module.js";
32
+ import { ToolJobs } from "../tools/jobs.js";
33
+ import { ToolsModule } from "../tools/tools.module.js";
34
+ import { WorkerRole } from "./worker-role.js";
35
+ /**
36
+ * The worker role (nest kernel spec §2), imported by `KernelModule` only when `roles` includes
37
+ * `worker`: the cron scheduler and the `@LockedInterval` scheduler (`KernelScheduleModule`, the one
38
+ * place `ScheduleModule.forRoot` is imported), every fixed-period job (`@LockedCron` /
39
+ * `@LockedInterval`, each once per tick across replicas), every queue consumer (`@Processor`: runs,
40
+ * sub-agent runs, `usage.report`, titles, evals, maintenance, channel deliveries) and
41
+ * {@link WorkerRole}, which `KernelLifecycle` drives. A process without the worker role runs no cron
42
+ * and no BullMQ worker (the queues' producers exist on every role).
43
+ */
44
+ let WorkerModule = WorkerModule_1 = class WorkerModule {
45
+ static forRoot(config) {
46
+ return {
47
+ module: WorkerModule_1,
48
+ imports: [
49
+ KernelScheduleModule,
50
+ // the queue consumers (their worker options come from the startup config)
51
+ RuntimeWorkersModule.forRoot(config),
52
+ EvalWorkersModule.forRoot(config),
53
+ ChannelWorkersModule.forRoot(config),
54
+ MaintenanceModule,
55
+ // the domains the fixed-period jobs call
56
+ RuntimeModule,
57
+ UsageReportModule,
58
+ TitlesModule,
59
+ AttachmentsModule,
60
+ StorageModule,
61
+ SandboxModule,
62
+ ToolsModule,
63
+ CatalogModule,
64
+ OrgsModule,
65
+ ExtensionsModule,
66
+ ChannelsModule,
67
+ ],
68
+ providers: [
69
+ WaitSweepJob,
70
+ UsageSweepJob,
71
+ AttachmentCleanupJob,
72
+ StoragePurgeJob,
73
+ SandboxSweepJobs,
74
+ ToolJobs,
75
+ CatalogJobs,
76
+ DirectoryScanJob,
77
+ OffboardSweepJob,
78
+ PluginsReconcileJob,
79
+ GatewayCheckJob,
80
+ WorkerRole,
81
+ ],
82
+ exports: [WorkerRole],
83
+ };
84
+ }
85
+ };
86
+ WorkerModule = WorkerModule_1 = __decorate([
87
+ Module({})
88
+ // biome-ignore lint/complexity/noStaticOnlyClass: a Nest dynamic module
89
+ ], WorkerModule);
90
+ export { WorkerModule };
@@ -1,3 +1,14 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { Inject, Injectable } from "@nestjs/common";
11
+ import { KERNEL_BUS, REDIS } from "../infra/tokens.js";
1
12
  /** 中止广播的内核 bus 主题。 */
2
13
  export const RUN_ABORT_TOPIC = "run.abort";
3
14
  /** 中止标记的保留时长(秒)。 */
@@ -15,7 +26,7 @@ const parseStored = (stored) => {
15
26
  * 跨副本中止(spec 4.3「中止信号经 Redis 广播」):`request` 先写标记键再广播;
16
27
  * `watch` 先订阅、再检查一次标记键,订阅之前发出的中止也不会丢。
17
28
  */
18
- export class RunAbort {
29
+ let RunAbort = class RunAbort {
19
30
  redis;
20
31
  bus;
21
32
  constructor(redis, bus) {
@@ -68,4 +79,10 @@ export class RunAbort {
68
79
  }
69
80
  return unsubscribe;
70
81
  }
71
- }
82
+ };
83
+ RunAbort = __decorate([
84
+ Injectable(),
85
+ __param(0, Inject(REDIS)),
86
+ __param(1, Inject(KERNEL_BUS))
87
+ ], RunAbort);
88
+ export { RunAbort };
@@ -1,6 +1,7 @@
1
1
  import type { RunnableConfig } from "@langchain/core/runnables";
2
2
  import { BaseCheckpointSaver, type ChannelVersions, type Checkpoint, type CheckpointListOptions, type CheckpointMetadata, type CheckpointTuple, type PendingWrite } from "@langchain/langgraph-checkpoint";
3
- import type { KernelDb } from "../db/kernel-schema.js";
3
+ import { KernelDb } from "../infra/database/kernel-db.js";
4
+ import { TransactionHost } from "../infra/database/transaction-host.js";
4
5
  /**
5
6
  * LangGraph checkpoint saver,存在内核 schema 的 `lg_checkpoints` / `lg_checkpoint_writes` 里(0007_checkpoints.sql)。
6
7
  *
@@ -10,12 +11,16 @@ import type { KernelDb } from "../db/kernel-schema.js";
10
11
  * - 所有状态都在 PG 里,不持有进程内状态,任意副本都能续跑。
11
12
  */
12
13
  export declare class KyselyCheckpointSaver extends BaseCheckpointSaver {
13
- private readonly db;
14
- constructor(db: KernelDb);
14
+ private readonly kdb;
15
+ readonly txHost: TransactionHost;
16
+ constructor(kdb: KernelDb, txHost: TransactionHost);
17
+ /** The context's handle (the transaction of a `@Transactional` method, else the pool). */
18
+ private get db();
15
19
  getTuple(config: RunnableConfig): Promise<CheckpointTuple | undefined>;
16
20
  list(config: RunnableConfig, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple>;
17
21
  put(config: RunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata, _newVersions: ChannelVersions): Promise<RunnableConfig>;
18
22
  putWrites(config: RunnableConfig, writes: PendingWrite[], taskId: string, taskPath?: string): Promise<void>;
23
+ private insertWrites;
19
24
  deleteThread(threadId: string): Promise<void>;
20
25
  /**
21
26
  * 一轮运行结束后调用:根命名空间(`checkpoint_ns = ''`)下只保留最新一个 checkpoint 及其 writes,
@@ -1,5 +1,18 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
1
10
  import { BaseCheckpointSaver, compareWritesSortKeys, copyCheckpoint, getCheckpointId, maxChannelVersion, TASKS, WRITES_IDX_MAP, writesSortKey, } from "@langchain/langgraph-checkpoint";
11
+ import { Inject, Injectable } from "@nestjs/common";
2
12
  import { sql } from "kysely";
13
+ import { KernelDb } from "../infra/database/kernel-db.js";
14
+ import { TransactionHost } from "../infra/database/transaction-host.js";
15
+ import { Transactional } from "../infra/database/transactional.decorator.js";
3
16
  const CHECKPOINT_COLUMNS = [
4
17
  "thread_id",
5
18
  "checkpoint_ns",
@@ -20,11 +33,17 @@ const idC = sql `checkpoint_id collate "C"`;
20
33
  * - thread_id 约定为 runId。
21
34
  * - 所有状态都在 PG 里,不持有进程内状态,任意副本都能续跑。
22
35
  */
23
- export class KyselyCheckpointSaver extends BaseCheckpointSaver {
24
- db;
25
- constructor(db) {
36
+ let KyselyCheckpointSaver = class KyselyCheckpointSaver extends BaseCheckpointSaver {
37
+ kdb;
38
+ txHost;
39
+ constructor(kdb, txHost) {
26
40
  super();
27
- this.db = db;
41
+ this.kdb = kdb;
42
+ this.txHost = txHost;
43
+ }
44
+ /** The context's handle (the transaction of a `@Transactional` method, else the pool). */
45
+ get db() {
46
+ return this.kdb.db;
28
47
  }
29
48
  async getTuple(config) {
30
49
  const threadId = config.configurable?.thread_id;
@@ -130,34 +149,33 @@ export class KyselyCheckpointSaver extends BaseCheckpointSaver {
130
149
  // 特殊 channel(错误、中断等,idx < 0)以最后一次为准;普通 write 已存在则保留先写入的。
131
150
  const special = rows.filter((r) => r.idx < 0);
132
151
  const regular = rows.filter((r) => r.idx >= 0);
152
+ await this.insertWrites(regular, special);
153
+ }
154
+ async insertWrites(regular, special) {
133
155
  const key = ["thread_id", "checkpoint_ns", "checkpoint_id", "task_id", "idx"];
134
- await this.db.transaction().execute(async (trx) => {
135
- if (regular.length > 0) {
136
- await trx
137
- .insertInto("lg_checkpoint_writes")
138
- .values(regular)
139
- .onConflict((oc) => oc.columns(key).doNothing())
140
- .execute();
141
- }
142
- if (special.length > 0) {
143
- await trx
144
- .insertInto("lg_checkpoint_writes")
145
- .values(special)
146
- .onConflict((oc) => oc.columns(key).doUpdateSet((eb) => ({
147
- channel: eb.ref("excluded.channel"),
148
- value_type: eb.ref("excluded.value_type"),
149
- value: eb.ref("excluded.value"),
150
- task_path: eb.ref("excluded.task_path"),
151
- })))
152
- .execute();
153
- }
154
- });
156
+ if (regular.length > 0) {
157
+ await this.db
158
+ .insertInto("lg_checkpoint_writes")
159
+ .values(regular)
160
+ .onConflict((oc) => oc.columns(key).doNothing())
161
+ .execute();
162
+ }
163
+ if (special.length > 0) {
164
+ await this.db
165
+ .insertInto("lg_checkpoint_writes")
166
+ .values(special)
167
+ .onConflict((oc) => oc.columns(key).doUpdateSet((eb) => ({
168
+ channel: eb.ref("excluded.channel"),
169
+ value_type: eb.ref("excluded.value_type"),
170
+ value: eb.ref("excluded.value"),
171
+ task_path: eb.ref("excluded.task_path"),
172
+ })))
173
+ .execute();
174
+ }
155
175
  }
156
176
  async deleteThread(threadId) {
157
- await this.db.transaction().execute(async (trx) => {
158
- await trx.deleteFrom("lg_checkpoint_writes").where("thread_id", "=", threadId).execute();
159
- await trx.deleteFrom("lg_checkpoints").where("thread_id", "=", threadId).execute();
160
- });
177
+ await this.db.deleteFrom("lg_checkpoint_writes").where("thread_id", "=", threadId).execute();
178
+ await this.db.deleteFrom("lg_checkpoints").where("thread_id", "=", threadId).execute();
161
179
  }
162
180
  /**
163
181
  * 一轮运行结束后调用:根命名空间(`checkpoint_ns = ''`)下只保留最新一个 checkpoint 及其 writes,
@@ -166,31 +184,30 @@ export class KyselyCheckpointSaver extends BaseCheckpointSaver {
166
184
  * 保留下来的 checkpoint 的 parent_checkpoint_id 原样保留(父 checkpoint 已不存在)。
167
185
  */
168
186
  async pruneToLatest(threadId) {
169
- return this.db.transaction().execute(async (trx) => {
170
- const latest = await trx
171
- .selectFrom("lg_checkpoints")
172
- .select("checkpoint_id")
173
- .where("thread_id", "=", threadId)
174
- .where("checkpoint_ns", "=", "")
175
- .orderBy(sql `${idC} desc`)
176
- .limit(1)
177
- .executeTakeFirst();
178
- if (!latest)
179
- return 0;
180
- await trx
181
- .deleteFrom("lg_checkpoint_writes")
182
- .where("thread_id", "=", threadId)
183
- .where("checkpoint_ns", "=", "")
184
- .where(idC, "<", latest.checkpoint_id)
185
- .execute();
186
- const res = await trx
187
- .deleteFrom("lg_checkpoints")
188
- .where("thread_id", "=", threadId)
189
- .where("checkpoint_ns", "=", "")
190
- .where(idC, "<", latest.checkpoint_id)
191
- .executeTakeFirst();
192
- return Number(res.numDeletedRows);
193
- });
187
+ const db = this.db;
188
+ const latest = await db
189
+ .selectFrom("lg_checkpoints")
190
+ .select("checkpoint_id")
191
+ .where("thread_id", "=", threadId)
192
+ .where("checkpoint_ns", "=", "")
193
+ .orderBy(sql `${idC} desc`)
194
+ .limit(1)
195
+ .executeTakeFirst();
196
+ if (!latest)
197
+ return 0;
198
+ await db
199
+ .deleteFrom("lg_checkpoint_writes")
200
+ .where("thread_id", "=", threadId)
201
+ .where("checkpoint_ns", "=", "")
202
+ .where(idC, "<", latest.checkpoint_id)
203
+ .execute();
204
+ const res = await db
205
+ .deleteFrom("lg_checkpoints")
206
+ .where("thread_id", "=", threadId)
207
+ .where("checkpoint_ns", "=", "")
208
+ .where(idC, "<", latest.checkpoint_id)
209
+ .executeTakeFirst();
210
+ return Number(res.numDeletedRows);
194
211
  }
195
212
  async toTuple(row, metadata) {
196
213
  const { thread_id, checkpoint_ns, checkpoint_id, parent_checkpoint_id } = row;
@@ -240,4 +257,19 @@ export class KyselyCheckpointSaver extends BaseCheckpointSaver {
240
257
  checkpoint.channel_versions[TASKS] =
241
258
  versions.length > 0 ? maxChannelVersion(...versions) : this.getNextVersion(undefined);
242
259
  }
243
- }
260
+ };
261
+ __decorate([
262
+ Transactional({ propagation: "requires_new" })
263
+ ], KyselyCheckpointSaver.prototype, "insertWrites", null);
264
+ __decorate([
265
+ Transactional({ propagation: "requires_new" })
266
+ ], KyselyCheckpointSaver.prototype, "deleteThread", null);
267
+ __decorate([
268
+ Transactional({ propagation: "requires_new" })
269
+ ], KyselyCheckpointSaver.prototype, "pruneToLatest", null);
270
+ KyselyCheckpointSaver = __decorate([
271
+ Injectable(),
272
+ __param(0, Inject(KernelDb)),
273
+ __param(1, Inject(TransactionHost))
274
+ ], KyselyCheckpointSaver);
275
+ export { KyselyCheckpointSaver };
@@ -25,13 +25,13 @@ export interface ModelCallMeta {
25
25
  params: Record<string, ParamValue>;
26
26
  /**
27
27
  * 请求带的工具(按发送顺序)及定义指纹;定义本身按指纹存在 `capybara.tool_specs`。
28
- * 未启用 tool_search 时按 key 排序;启用时见 {@link BuildModelRequestInput.toolSearch}。
28
+ * 未启用 ToolSearch 时按 key 排序;启用时见 {@link BuildModelRequestInput.toolSearch}。
29
29
  */
30
30
  tools: {
31
31
  key: string;
32
32
  specHash: string;
33
33
  }[];
34
- /** 启用 tool_search 时 system 第二块目录里的工具(按 key 排序)及定义指纹;未启用没有该字段。 */
34
+ /** 启用 ToolSearch 时 system 第二块目录里的工具(按 key 排序)及定义指纹;未启用没有该字段。 */
35
35
  catalog?: {
36
36
  key: string;
37
37
  specHash: string;
@@ -75,8 +75,8 @@ export interface BuildModelRequestInput {
75
75
  */
76
76
  tools?: RequestTool[];
77
77
  /**
78
- * 启用 tool_search(spec 5.5,由 `ToolRegistry.forAgent` 判定)。启用且有工具时:
79
- * - `tools` 只放内置工具(含 `tool_search`,按 key 排序)与**已加载**工具的完整定义;
78
+ * 启用 ToolSearch(spec 5.5,由 `ToolRegistry.forAgent` 判定)。启用且有工具时:
79
+ * - `tools` 只放内置工具(含 `ToolSearch`,按 key 排序)与**已加载**工具的完整定义;
80
80
  * 已加载 = 日志中全部 `tool_result.loadedTools` 的并集(含摘要之前的;不在本步可用工具中的忽略),
81
81
  * 按首次加载顺序追加在内置工具之后——新加载只在末尾追加,已发送的工具顺序不变;
82
82
  * - 其余工具(不论是否已加载)以目录形式放进 system 第二个块(按 key 排序,打缓存断点),
@@ -224,7 +224,7 @@ export declare function summaryText(summary: string): string;
224
224
  * 由会话事件日志 + agent 定义构建模型请求(纯函数,不做 I/O)。
225
225
  * - system:`BEHAVIOR_RULES + "\n\n" + agent.instructions` 一个块,打缓存断点(a sub-agent's log:
226
226
  * `BEHAVIOR_RULES`, its preamble and its instructions, all from its `subagent_started`);日志里第一份 `skills_catalog`
227
- * 快照在任何 `model_call` 之前时,技能目录接在这个块末尾(Ruling M17,见 ./skills.ts);启用 tool_search 时
227
+ * 快照在任何 `model_call` 之前时,技能目录接在这个块末尾(Ruling M17,见 ./skills.ts);启用 ToolSearch 时
228
228
  * 第二个块是工具目录(见 {@link BuildModelRequestInput.toolSearch});
229
229
  * - 之后的 `skills_catalog` 在所在位置渲染为 system 变更提醒;被压缩摘要覆盖的,若摘要时生效的目录与 system 里的
230
230
  * 不同,紧随摘要补一条完整的当前目录;
@@ -245,7 +245,7 @@ export declare function buildModelRequest(input: BuildModelRequestInput): {
245
245
  mediaTokens: number;
246
246
  };
247
247
  /**
248
- * 日志里 `tool_search` 加载过的工具 key(全部 `tool_result.loadedTools` 的并集,按首次出现顺序)。
248
+ * 日志里 `ToolSearch` 加载过的工具 key(全部 `tool_result.loadedTools` 的并集,按首次出现顺序)。
249
249
  * 不看压缩摘要的边界:加载过的工具在摘要之后仍保持加载(模型可能凭摘要继续使用它们,且已发送的工具列表只追加)。
250
250
  */
251
251
  export declare function loadedToolKeys(events: readonly ConversationEvent[]): string[];
@@ -1,7 +1,8 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { MEDIA_LIMITS, } from "@capybara-hq/plugin-sdk";
3
3
  import { catalogText, isAlwaysLoaded } from "../../tools/builtins/tool-search.js";
4
- import { invokedSkillNames, invokedSkillsText, skillsCatalogEvents, snapshotChangeText, snapshotCurrentText, snapshotSystemText, systemSkillsCatalog, } from "./skills.js";
4
+ import { LEGACY_CATALOG_HEADER, LEGACY_SKILL_TEXTS, usesLegacyToolNames } from "./legacy-text.js";
5
+ import { invokedSkillNames, invokedSkillsText, SKILL_TEXTS, skillsCatalogEvents, snapshotChangeText, snapshotCurrentText, snapshotSystemText, systemSkillsCatalog, } from "./skills.js";
5
6
  /**
6
7
  * 平台行为规范(模型可见,英文)。短而通用(spec 6 原则 5);不放时间戳、会话 ID 等会变化的内容,
7
8
  * 保证同一 agent 版本在所有会话中 system 前缀一致、可命中提示词缓存。改动它会让所有缓存失效。
@@ -322,7 +323,7 @@ export function summaryText(summary) {
322
323
  * 由会话事件日志 + agent 定义构建模型请求(纯函数,不做 I/O)。
323
324
  * - system:`BEHAVIOR_RULES + "\n\n" + agent.instructions` 一个块,打缓存断点(a sub-agent's log:
324
325
  * `BEHAVIOR_RULES`, its preamble and its instructions, all from its `subagent_started`);日志里第一份 `skills_catalog`
325
- * 快照在任何 `model_call` 之前时,技能目录接在这个块末尾(Ruling M17,见 ./skills.ts);启用 tool_search 时
326
+ * 快照在任何 `model_call` 之前时,技能目录接在这个块末尾(Ruling M17,见 ./skills.ts);启用 ToolSearch 时
326
327
  * 第二个块是工具目录(见 {@link BuildModelRequestInput.toolSearch});
327
328
  * - 之后的 `skills_catalog` 在所在位置渲染为 system 变更提醒;被压缩摘要覆盖的,若摘要时生效的目录与 system 里的
328
329
  * 不同,紧随摘要补一条完整的当前目录;
@@ -488,6 +489,10 @@ export function buildModelRequest(input) {
488
489
  if (!results.has(k))
489
490
  results.set(k, e.payload);
490
491
  }
492
+ // System texts naming a builtin: a request whose tools were recorded before the tool rename
493
+ // renders the frozen pre-rename wording, so it rebuilds exactly (tool naming spec §10)
494
+ const legacyNames = usesLegacyToolNames(input.tools ?? []);
495
+ const skillTexts = legacyNames ? LEGACY_SKILL_TEXTS : SKILL_TEXTS;
491
496
  // 技能目录(Ruling M17):第一份快照进 system;之后的每份在所在位置追加变更提醒(相对上一份快照)。
492
497
  const skillSnaps = skillsCatalogEvents(events);
493
498
  const systemSkills = systemSkillsCatalog(events);
@@ -504,12 +509,12 @@ export function buildModelRequest(input) {
504
509
  const covered = skillSnaps.filter((e) => e.seq <= after).at(-1);
505
510
  // (phase B: plus the current pinned skills and tool-name map when they differ from system's)
506
511
  if (covered && covered !== systemSkills) {
507
- const text = snapshotCurrentText(systemSkills?.payload, covered.payload);
512
+ const text = snapshotCurrentText(systemSkills?.payload, covered.payload, skillTexts);
508
513
  if (text !== "")
509
514
  messages.push({ role: "system", content: text });
510
515
  }
511
516
  // phase D: the skills a person invoked in the summarised range, by name (from the log only)
512
- const invoked = invokedSkillsText(invokedSkillNames(events, after));
517
+ const invoked = invokedSkillsText(invokedSkillNames(events, after), skillTexts);
513
518
  if (invoked !== "")
514
519
  messages.push({ role: "system", content: invoked });
515
520
  }
@@ -588,7 +593,7 @@ export function buildModelRequest(input) {
588
593
  break;
589
594
  case "skills_catalog":
590
595
  if (e !== systemSkills) {
591
- const text = snapshotChangeText(prevSnapshot.get(e.seq), e.payload);
596
+ const text = snapshotChangeText(prevSnapshot.get(e.seq), e.payload, skillTexts);
592
597
  if (text !== "")
593
598
  messages.push({ role: "system", content: text });
594
599
  }
@@ -608,7 +613,9 @@ export function buildModelRequest(input) {
608
613
  : `${BEHAVIOR_RULES}\n\n${agent.instructions}`;
609
614
  const system = [
610
615
  {
611
- text: systemSkills ? `${base}\n\n${snapshotSystemText(systemSkills.payload)}` : base,
616
+ text: systemSkills
617
+ ? `${base}\n\n${snapshotSystemText(systemSkills.payload, skillTexts)}`
618
+ : base,
612
619
  cache: true,
613
620
  },
614
621
  ];
@@ -622,7 +629,10 @@ export function buildModelRequest(input) {
622
629
  tools = [...sorted.filter((t) => isAlwaysLoaded(t.key)), ...loaded];
623
630
  if (deferred.length > 0) {
624
631
  catalog = deferred;
625
- system.push({ text: catalogText(deferred), cache: true });
632
+ system.push({
633
+ text: catalogText(deferred, legacyNames ? LEGACY_CATALOG_HEADER : undefined),
634
+ cache: true,
635
+ });
626
636
  }
627
637
  }
628
638
  const request = {
@@ -664,7 +674,7 @@ export function buildModelRequest(input) {
664
674
  return { request, meta, mediaTokens };
665
675
  }
666
676
  /**
667
- * 日志里 `tool_search` 加载过的工具 key(全部 `tool_result.loadedTools` 的并集,按首次出现顺序)。
677
+ * 日志里 `ToolSearch` 加载过的工具 key(全部 `tool_result.loadedTools` 的并集,按首次出现顺序)。
668
678
  * 不看压缩摘要的边界:加载过的工具在摘要之后仍保持加载(模型可能凭摘要继续使用它们,且已发送的工具列表只追加)。
669
679
  */
670
680
  export function loadedToolKeys(events) {
@@ -6,6 +6,7 @@
6
6
  * English, fixed (Decision 15: not tailored to the agent's tools; it says "when it is in your
7
7
  * tools" instead). Changing it only affects snapshots written afterwards: a conversation's next
8
8
  * run writes a new snapshot announcing the new map, and old snapshots keep their text (phase C
9
- * changed the Task / Agent line, sub-agents spec §16.5).
9
+ * changed the Task / Agent line, sub-agents spec §16.5; the tool-naming change shortened it to the
10
+ * Claude Code names, spec 2026-10-29 §6).
10
11
  */
11
12
  export declare const CLAUDE_CODE_TOOL_MAP: string;