@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
@@ -1,10 +1,11 @@
1
1
  import type { AuthInjection } from "@capybara-hq/plugin-sdk";
2
2
  import type { Redis } from "ioredis";
3
- import { type Transaction } from "kysely";
4
- import type { KernelConfig } from "../config/schema.js";
5
3
  import { type Keyring } from "../ctx/secrets.js";
6
- import type { KernelDatabase, KernelDb } from "../db/kernel-schema.js";
4
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
7
5
  import { ApiError } from "../errors.js";
6
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
7
+ import { KernelDb } from "../infra/database/kernel-db.js";
8
+ import { LockService } from "../infra/lock/lock.service.js";
8
9
  import type { KernelLogger } from "../log.js";
9
10
  import { type OAuthClientRecord, type OAuthTokenRecord } from "./oauth/tokens.js";
10
11
  export type Ownership = "org" | "personal";
@@ -75,52 +76,48 @@ export declare class CredentialMissing extends ApiError {
75
76
  * 删除某账号在该组织所有连接器上的个人凭据(`credentials:app:<connectorId>:user:<accountId>`,含已删除连接器残留的),
76
77
  * 成员离职时在其事务内调用(不解密,不需要密钥环)。返回删除条数。
77
78
  */
78
- export declare function clearAccountCredentials(db: KernelDb | Transaction<KernelDatabase>, orgId: string, accountId: string): Promise<number>;
79
- /** OAuth 刷新所需的依赖(锁在 Redis,往返限时与本机 http 放行取自配置)。 */
80
- export interface CredentialsOAuthDeps {
81
- redis: Redis;
82
- config: () => KernelConfig;
83
- }
79
+ export declare function clearAccountCredentials(db: KernelSchemaDb, orgId: string, accountId: string): Promise<number>;
84
80
  /**
85
81
  * 连接器凭据:信封加密存入 capybara.secrets,解密后只在构造注入头时出现。OAuth 连接器的 token 也存在这里
86
- * (个人 / 组织键,同静态凭据),OAuth 客户端存组织级的 `:client` 键;刷新见 oauth/tokens.ts。
82
+ * (个人 / 组织键,同静态凭据),OAuth 客户端存组织级的 `:client` 键;刷新见 oauth/tokens.ts(锁在 Redis,
83
+ * 往返限时与本机 http 放行取自配置)。Writes and deletes run on the context's handle (`KernelDb`): inside a
84
+ * caller's `@Transactional` they join its transaction (they live and die with the connector row and audit).
87
85
  */
88
86
  export declare class Credentials {
89
87
  private readonly db;
90
88
  private readonly keyring;
91
89
  private readonly log;
92
90
  private readonly tokens;
93
- constructor(db: KernelDb, keyring: Keyring, log: KernelLogger, oauth?: CredentialsOAuthDeps);
91
+ constructor(db: KernelDb, keyring: Keyring, log: KernelLogger, config: Pick<KernelConfigService, "get">, locks: Pick<LockService, "lease" | "releaseIf" | "renew">, redis: Pick<Redis, "exists">);
94
92
  private oauth;
95
93
  /** 读一条 JSON 凭据;不存在 / 解不开 → null(日志不带内容)。 */
96
94
  private readJson;
97
95
  /** OAuth 客户端与令牌里的密钥值登记日志打码(logger 只收 ≥ 12 的值)。 */
98
96
  private registerSecrets;
99
97
  oauthClient(orgId: string, connectorId: string): Promise<OAuthClientRecord | null>;
100
- setOAuthClient(orgId: string, connectorId: string, client: OAuthClientRecord, trx?: Transaction<KernelDatabase>): Promise<void>;
98
+ setOAuthClient(orgId: string, connectorId: string, client: OAuthClientRecord): Promise<void>;
101
99
  oauthTokens(orgId: string, connectorId: string, owner: CredentialOwner): Promise<OAuthTokenRecord | null>;
102
- setOAuthTokens(orgId: string, connectorId: string, owner: CredentialOwner, rec: OAuthTokenRecord, trx?: Transaction<KernelDatabase>): Promise<void>;
100
+ setOAuthTokens(orgId: string, connectorId: string, owner: CredentialOwner, rec: OAuthTokenRecord): Promise<void>;
101
+ /** The secrets store on the context's handle (the caller's transaction, else the pool). */
103
102
  private secrets;
104
103
  /**
105
104
  * 按认证方式校验凭据形状与归属;错误(`validation_failed`)只含路径与英文说明,不回显值。
106
105
  * 连接器创建时先用它校验、再拿内存中的值连接,连上之后才落库。
107
106
  */
108
107
  validate(auth: ConnectorAuth, owner: CredentialOwner, value: unknown): asserts value is StaticSecret;
109
- setStatic(orgId: string, connectorId: string, auth: ConnectorAuth, owner: CredentialOwner, value: StaticSecret,
110
- /** 传入时在调用方事务内写入(与连接器行 / 审计同生共死)。 */
111
- trx?: Transaction<KernelDatabase>): Promise<void>;
112
- clear(orgId: string, connectorId: string, owner: CredentialOwner, trx?: Transaction<KernelDatabase>): Promise<void>;
108
+ setStatic(orgId: string, connectorId: string, auth: ConnectorAuth, owner: CredentialOwner, value: StaticSecret): Promise<void>;
109
+ clear(orgId: string, connectorId: string, owner: CredentialOwner): Promise<void>;
113
110
  /** 删除某连接器的全部凭据(组织凭据与所有成员的个人凭据),连接器删除时调用。 */
114
- clearConnector(orgId: string, connectorId: string, trx?: Transaction<KernelDatabase>): Promise<void>;
111
+ clearConnector(orgId: string, connectorId: string): Promise<void>;
115
112
  /** 删除某账号在该组织所有连接器上的个人凭据,见 {@link clearAccountCredentials}。 */
116
- clearAccount(orgId: string, accountId: string, trx?: Transaction<KernelDatabase>): Promise<number>;
113
+ clearAccount(orgId: string, accountId: string): Promise<number>;
117
114
  /**
118
115
  * 持有该连接器个人凭据的**现任成员**(不解密),按凭据最近写入时间倒序(保存静态凭据、OAuth 连接与刷新 token
119
116
  * 都会更新写入时间),最多 `limit` 个。漂移检查用它挑个人凭据型连接器的凭据。
120
117
  */
121
118
  personalHolders(orgId: string, connectorId: string, limit: number): Promise<string[]>;
122
119
  /** 只看与 auth.ownership 对应的那一条凭据是否存在(不解密);none 恒为 connected。 */
123
- status(orgId: string, connectorId: string, auth: ConnectorAuth, accountId: string, trx?: Transaction<KernelDatabase>): Promise<"connected" | "missing">;
120
+ status(orgId: string, connectorId: string, auth: ConnectorAuth, accountId: string): Promise<"connected" | "missing">;
124
121
  /** 返回本次请求要注入的头 / 查询参数;缺凭据抛 CredentialMissing。 */
125
122
  injection(orgId: string, connectorId: string, auth: ConnectorAuth, accountId: string): Promise<AuthInjection>;
126
123
  /**
@@ -1,7 +1,21 @@
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";
1
11
  import { sql } from "kysely";
2
12
  import { z } from "zod";
3
13
  import { createSecrets } from "../ctx/secrets.js";
4
14
  import { ApiError } from "../errors.js";
15
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
16
+ import { KernelDb } from "../infra/database/kernel-db.js";
17
+ import { LockService } from "../infra/lock/lock.service.js";
18
+ import { KERNEL_LOGGER, KEYRING, REDIS } from "../infra/tokens.js";
5
19
  import { oauthHttpOptions } from "./oauth/discovery.js";
6
20
  import { OAuthReconnectRequired, OAuthTokens, } from "./oauth/tokens.js";
7
21
  import { injectionSecrets } from "./redact.js";
@@ -69,30 +83,28 @@ export async function clearAccountCredentials(db, orgId, accountId) {
69
83
  }
70
84
  /**
71
85
  * 连接器凭据:信封加密存入 capybara.secrets,解密后只在构造注入头时出现。OAuth 连接器的 token 也存在这里
72
- * (个人 / 组织键,同静态凭据),OAuth 客户端存组织级的 `:client` 键;刷新见 oauth/tokens.ts。
86
+ * (个人 / 组织键,同静态凭据),OAuth 客户端存组织级的 `:client` 键;刷新见 oauth/tokens.ts(锁在 Redis,
87
+ * 往返限时与本机 http 放行取自配置)。Writes and deletes run on the context's handle (`KernelDb`): inside a
88
+ * caller's `@Transactional` they join its transaction (they live and die with the connector row and audit).
73
89
  */
74
- export class Credentials {
90
+ let Credentials = class Credentials {
75
91
  db;
76
92
  keyring;
77
93
  log;
78
94
  tokens;
79
- constructor(db, keyring, log, oauth) {
95
+ constructor(db, keyring, log, config, locks, redis) {
80
96
  this.db = db;
81
97
  this.keyring = keyring;
82
98
  this.log = log;
83
- if (oauth) {
84
- const store = {
85
- readClient: (orgId, connectorId) => this.oauthClient(orgId, connectorId),
86
- readTokens: (orgId, connectorId, owner) => this.oauthTokens(orgId, connectorId, owner),
87
- writeTokens: (orgId, connectorId, owner, rec) => this.setOAuthTokens(orgId, connectorId, owner, rec),
88
- deleteTokens: (orgId, connectorId, owner) => this.clear(orgId, connectorId, owner),
89
- };
90
- this.tokens = new OAuthTokens(store, oauth.redis, () => oauthHttpOptions(oauth.config()), log);
91
- }
99
+ const store = {
100
+ readClient: (orgId, connectorId) => this.oauthClient(orgId, connectorId),
101
+ readTokens: (orgId, connectorId, owner) => this.oauthTokens(orgId, connectorId, owner),
102
+ writeTokens: (orgId, connectorId, owner, rec) => this.setOAuthTokens(orgId, connectorId, owner, rec),
103
+ deleteTokens: (orgId, connectorId, owner) => this.clear(orgId, connectorId, owner),
104
+ };
105
+ this.tokens = new OAuthTokens(store, locks, redis, () => oauthHttpOptions(config.get()), log);
92
106
  }
93
107
  oauth() {
94
- if (!this.tokens)
95
- throw new Error("credentials: OAuth is not configured");
96
108
  return this.tokens;
97
109
  }
98
110
  /** 读一条 JSON 凭据;不存在 / 解不开 → null(日志不带内容)。 */
@@ -119,9 +131,9 @@ export class Credentials {
119
131
  this.registerSecrets([v.clientSecret, v.registration?.accessToken]);
120
132
  return v;
121
133
  }
122
- async setOAuthClient(orgId, connectorId, client, trx) {
134
+ async setOAuthClient(orgId, connectorId, client) {
123
135
  this.registerSecrets([client.clientSecret, client.registration?.accessToken]);
124
- await this.secrets(trx).set(orgId, clientKey(connectorId), JSON.stringify(client));
136
+ await this.secrets().set(orgId, clientKey(connectorId), JSON.stringify(client));
125
137
  }
126
138
  async oauthTokens(orgId, connectorId, owner) {
127
139
  const v = (await this.readJson(orgId, keyOf(connectorId, owner), connectorId));
@@ -130,12 +142,13 @@ export class Credentials {
130
142
  this.registerSecrets([v.access_token, v.refresh_token]);
131
143
  return v;
132
144
  }
133
- async setOAuthTokens(orgId, connectorId, owner, rec, trx) {
145
+ async setOAuthTokens(orgId, connectorId, owner, rec) {
134
146
  this.registerSecrets([rec.access_token, rec.refresh_token]);
135
- await this.secrets(trx).set(orgId, keyOf(connectorId, owner), JSON.stringify(rec));
147
+ await this.secrets().set(orgId, keyOf(connectorId, owner), JSON.stringify(rec));
136
148
  }
137
- secrets(db = this.db) {
138
- return createSecrets(db, this.keyring, NAMESPACE);
149
+ /** The secrets store on the context's handle (the caller's transaction, else the pool). */
150
+ secrets() {
151
+ return createSecrets(this.db.db, this.keyring, NAMESPACE);
139
152
  }
140
153
  /**
141
154
  * 按认证方式校验凭据形状与归属;错误(`validation_failed`)只含路径与英文说明,不回显值。
@@ -189,19 +202,17 @@ export class Credentials {
189
202
  throw fail(r.error.issues.map((i) => ({ path: i.path.join("."), message: i.message })));
190
203
  }
191
204
  }
192
- async setStatic(orgId, connectorId, auth, owner, value,
193
- /** 传入时在调用方事务内写入(与连接器行 / 审计同生共死)。 */
194
- trx) {
205
+ async setStatic(orgId, connectorId, auth, owner, value) {
195
206
  this.validate(auth, owner, value);
196
- await this.secrets(trx).set(orgId, keyOf(connectorId, owner), JSON.stringify(value));
207
+ await this.secrets().set(orgId, keyOf(connectorId, owner), JSON.stringify(value));
197
208
  }
198
- async clear(orgId, connectorId, owner, trx) {
199
- await this.secrets(trx).delete(orgId, keyOf(connectorId, owner));
209
+ async clear(orgId, connectorId, owner) {
210
+ await this.secrets().delete(orgId, keyOf(connectorId, owner));
200
211
  }
201
212
  /** 删除某连接器的全部凭据(组织凭据与所有成员的个人凭据),连接器删除时调用。 */
202
- async clearConnector(orgId, connectorId, trx) {
213
+ async clearConnector(orgId, connectorId) {
203
214
  const prefix = orgKey(connectorId).slice(0, -"org".length);
204
- await (trx ?? this.db)
215
+ await this.db
205
216
  .deleteFrom("secrets")
206
217
  .where("namespace", "=", NAMESPACE)
207
218
  .where("org_id", "=", orgId)
@@ -209,8 +220,8 @@ export class Credentials {
209
220
  .execute();
210
221
  }
211
222
  /** 删除某账号在该组织所有连接器上的个人凭据,见 {@link clearAccountCredentials}。 */
212
- async clearAccount(orgId, accountId, trx) {
213
- return clearAccountCredentials(trx ?? this.db, orgId, accountId);
223
+ async clearAccount(orgId, accountId) {
224
+ return clearAccountCredentials(this.db.db, orgId, accountId);
214
225
  }
215
226
  /**
216
227
  * 持有该连接器个人凭据的**现任成员**(不解密),按凭据最近写入时间倒序(保存静态凭据、OAuth 连接与刷新 token
@@ -225,11 +236,11 @@ export class Credentials {
225
236
  WHERE s.namespace = ${NAMESPACE} AND s.org_id = ${orgId}
226
237
  AND left(s.key, ${prefix.length}) = ${prefix}
227
238
  ORDER BY s.updated_at DESC, m.account_id
228
- LIMIT ${limit}`.execute(this.db);
239
+ LIMIT ${limit}`.execute(this.db.db);
229
240
  return rows.rows.map((r) => r.account_id);
230
241
  }
231
242
  /** 只看与 auth.ownership 对应的那一条凭据是否存在(不解密);none 恒为 connected。 */
232
- async status(orgId, connectorId, auth, accountId, trx) {
243
+ async status(orgId, connectorId, auth, accountId) {
233
244
  if (auth.type === "none")
234
245
  return "connected";
235
246
  // 客户端凭据流:有客户端即可按需取 token
@@ -238,7 +249,7 @@ export class Credentials {
238
249
  : auth.ownership === "personal"
239
250
  ? userKey(connectorId, accountId)
240
251
  : orgKey(connectorId);
241
- const row = await (trx ?? this.db)
252
+ const row = await this.db
242
253
  .selectFrom("secrets")
243
254
  .select("key")
244
255
  .where("namespace", "=", NAMESPACE)
@@ -348,4 +359,14 @@ export class Credentials {
348
359
  }
349
360
  }
350
361
  }
351
- }
362
+ };
363
+ Credentials = __decorate([
364
+ Injectable(),
365
+ __param(0, Inject(KernelDb)),
366
+ __param(1, Inject(KEYRING)),
367
+ __param(2, Inject(KERNEL_LOGGER)),
368
+ __param(3, Inject(KernelConfigService)),
369
+ __param(4, Inject(LockService)),
370
+ __param(5, Inject(REDIS))
371
+ ], Credentials);
372
+ export { Credentials };
@@ -0,0 +1,9 @@
1
+ import type { LocalizedName } from "@capybara-hq/plugin-sdk";
2
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
3
+ /**
4
+ * The display names of plugins, for naming their extensions' tools (`<display name> [<tool>]`,
5
+ * tool naming spec §7): the live catalog item's `displayName`, else the plugin name in both
6
+ * languages (a bootstrap or uploaded plugin without a catalog item, or one without a display name).
7
+ * Display only.
8
+ */
9
+ export declare function pluginDisplayNames(db: KernelSchemaDb, names: readonly string[]): Promise<Map<string, LocalizedName>>;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The display names of plugins, for naming their extensions' tools (`<display name> [<tool>]`,
3
+ * tool naming spec §7): the live catalog item's `displayName`, else the plugin name in both
4
+ * languages (a bootstrap or uploaded plugin without a catalog item, or one without a display name).
5
+ * Display only.
6
+ */
7
+ export async function pluginDisplayNames(db, names) {
8
+ const unique = [...new Set(names)];
9
+ const out = new Map(unique.map((n) => [n, { zh: n, en: n }]));
10
+ if (unique.length === 0)
11
+ return out;
12
+ const rows = await db
13
+ .selectFrom("catalog_items")
14
+ .select(["name", "display_name"])
15
+ .where("name", "in", unique)
16
+ .where("deleted_at", "is", null)
17
+ .execute();
18
+ for (const r of rows) {
19
+ const d = r.display_name;
20
+ if (d && typeof d.zh === "string" && typeof d.en === "string" && d.zh !== "" && d.en !== "")
21
+ out.set(r.name, { zh: d.zh, en: d.en });
22
+ }
23
+ return out;
24
+ }
@@ -1,30 +1,11 @@
1
1
  import { type AuthInjection, type Logger, type ToolSpec } from "@capybara-hq/plugin-sdk";
2
- import { type Transaction } from "kysely";
3
- import type { KernelConfig } from "../config/schema.js";
4
- import type { KernelDatabase, KernelDb } from "../db/kernel-schema.js";
5
- import type { Maintenance } from "../runtime/maintenance.js";
6
- import { type Credentials } from "./credentials.js";
7
- import { type ToolRegistry } from "./registry.js";
8
- /**
9
- * 工具定义漂移检测(spec 7.3:新增 / 变化的工具在组织管理员复核前不可用,防 rug-pull / 工具投毒)。
10
- *
11
- * 与上次快照比对:新增 → 插入 `pending_review`;定义(spec_hash 或来源)变化 → `pending_review`,新定义存
12
- * `pending_spec`,旧定义留在 `spec` 供对比,复核通过才采用;消失 → `disabled` 并记 `missing_since`(行保留,
13
- * 又出现时按新增处理)。定义不合规(key 不合法等)的工具只能停用:新增时直接停用;复核过的工具变成不合规
14
- * 定义时新定义同样只进 `pending_spec`(停用,approve 被拒),`spec` 始终是上次复核通过的定义。
15
- * 从未复核过的工具(`reviewed_at` 为空)没有可比的旧定义:定义再变时直接替换 `spec`(仍待复核),不产生 pending。
16
- * 连接器从未拍过快照(`tools_synced_at` 为空且没有工具行,即 OAuth 授权码连接器安装时不 listTools,A16)时,
17
- * 首个快照按安装处理(直接启用)。
18
- *
19
- * 触发:维护队列的周期扫描(`tools.driftIntervalHours`)、连接器在会话中报告工具清单变了(MCP
20
- * `notifications/tools/list_changed`)、管理员手动刷新(`ConnectorsService.refresh`,走同一套比对)。
21
- * 授权(`tool_grants` / `conversation_tool_grants`)按 spec_hash 比对(D8),复核通过采用新指纹后旧授权自然失效。
22
- */
23
- /** 周期扫描:任务名与 job scheduler id(不含 `:`)。 */
24
- export declare const DRIFT_SCAN_JOB = "drift-scan";
25
- export declare const DRIFT_SCHEDULER_ID = "drift-scan-interval";
26
- /** 单个连接器的漂移检查任务名。 */
27
- export declare const DRIFT_CONNECTOR_JOB = "drift-connector";
2
+ import type { Queue } from "bullmq";
3
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
4
+ import { KernelDb } from "../infra/database/kernel-db.js";
5
+ import { TransactionHost } from "../infra/database/transaction-host.js";
6
+ import { Credentials } from "./credentials.js";
7
+ import { ToolRegistry } from "./registry.js";
8
+ export { DRIFT_CONNECTOR_JOB, DRIFT_SCAN_JOB, DRIFT_SCHEDULER_ID } from "./job-ids.js";
28
9
  /**
29
10
  * list_changed 触发的检查:jobId 按连接器与分钟桶去重(同一分钟内多次通知只检查一次;connectorId 为 UUID,不含 `:`)。
30
11
  */
@@ -46,7 +27,6 @@ export type DriftCheckResult = {
46
27
  status: "skipped";
47
28
  reason: "not_found" | "inactive" | "no_connector" | "no_credential" | "connect_failed";
48
29
  };
49
- type Trx = Transaction<KernelDatabase>;
50
30
  type ToolSource = "connector" | "resources";
51
31
  /** 快照中被停用 / 跳过的工具及英文原因。 */
52
32
  export interface ToolIssue {
@@ -87,19 +67,26 @@ export declare function snapshot(slug: string, specs: unknown, resources: boolea
87
67
  export declare function sanitizeToolTitle(raw: unknown): string | undefined;
88
68
  /** 工具当前不能启用的原因(视图、启用与复核校验共用)。 */
89
69
  export declare function toolIssue(slug: string, spec: ToolSpec): string | null;
90
- export interface ToolDriftDeps {
91
- db: KernelDb;
92
- registry: Pick<ToolRegistry, "findConnector">;
93
- credentials: Pick<Credentials, "injection" | "onUnauthorized" | "personalHolders">;
94
- config: () => KernelConfig;
95
- log: Logger;
96
- /** 维护队列(登记周期扫描与检查任务的处理函数;不给时只能同步调用 `check`)。 */
97
- maintenance?: Pick<Maintenance, "add" | "handle" | "schedule">;
70
+ /** The data of a `drift-connector` job. */
71
+ export interface DriftConnectorJobData {
72
+ orgId: string;
73
+ connectorId: string;
74
+ trigger: DriftTrigger;
98
75
  }
99
76
  export declare class ToolDrift {
100
- private readonly d;
101
- constructor(d: ToolDriftDeps);
102
- private intervalMs;
77
+ private readonly db;
78
+ private readonly registry;
79
+ private readonly credentials;
80
+ private readonly config;
81
+ private readonly log;
82
+ /** The maintenance queue's producer (`drift-connector` jobs). */
83
+ private readonly queue;
84
+ readonly txHost: TransactionHost;
85
+ constructor(db: KernelDb, registry: Pick<ToolRegistry, "findConnector">, credentials: Pick<Credentials, "injection" | "onUnauthorized" | "personalHolders">, config: Pick<KernelConfigService, "get">, log: Logger,
86
+ /** The maintenance queue's producer (`drift-connector` jobs). */
87
+ queue: Pick<Queue, "add">, txHost: TransactionHost);
88
+ /** The scan period (`tools.driftIntervalHours`). */
89
+ intervalMs(): number;
103
90
  /**
104
91
  * 打开一次会话拉工具清单,无论成败都关闭会话;会话带 `listResources` 即视为支持 resources。
105
92
  * 清单里回显的凭据按本次注入的值打码(见 redact.ts)。凭据缺失原样抛 `credential.missing`;
@@ -112,10 +99,10 @@ export declare class ToolDrift {
112
99
  resources: boolean;
113
100
  }>;
114
101
  /**
115
- * 把新快照与当前工具行比对并写入(调用方已在事务内锁住连接器行);返回按名排序的变化。
102
+ * 把新快照与当前工具行比对并写入(调用方已在事务内锁住连接器行:`mandatory`);返回按名排序的变化。
116
103
  * 规则见文件头。待复核的新定义也写进 `tool_specs`(内容寻址,只增不改)。
117
104
  */
118
- apply(t: Trx, app: {
105
+ apply(app: {
119
106
  id: string;
120
107
  tools_synced_at: Date | null;
121
108
  }, rows: SnapshotRow[]): Promise<DriftChanges>;
@@ -128,6 +115,8 @@ export declare class ToolDrift {
128
115
  * 连不上 / 都失败 → 跳过(不改快照,下个周期或下次通知再查)。
129
116
  */
130
117
  check(orgId: string, connectorId: string, trigger: DriftTrigger): Promise<DriftCheckResult>;
118
+ /** The locked compare-and-write of {@link check}, audited when something changed. */
119
+ private applyChecked;
131
120
  /**
132
121
  * 连接器在会话中报告工具清单变了:投递一次该连接器的检查(jobId 按分钟桶去重)。投递失败只记日志。
133
122
  */
@@ -138,4 +127,3 @@ export declare class ToolDrift {
138
127
  */
139
128
  scan(): Promise<number>;
140
129
  }
141
- export {};